langflow-base-nightly 1.7.0.dev31__py3-none-any.whl → 1.7.0.dev32__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 (3566) hide show
  1. langflow/__main__.py +0 -1
  2. langflow/api/v1/files.py +6 -23
  3. langflow/frontend/assets/SlackIcon-BOQlO356.js +1 -0
  4. langflow/frontend/assets/Wikipedia-CvV_a9pP.js +1 -0
  5. langflow/frontend/assets/Wolfram-Bga5wGes.js +1 -0
  6. langflow/frontend/assets/a-arrow-down-B_Koo4zC.js +6 -0
  7. langflow/frontend/assets/a-arrow-up-BW0QcKsK.js +6 -0
  8. langflow/frontend/assets/a-large-small-ucjiZQiK.js +6 -0
  9. langflow/frontend/assets/accessibility-EcciPBwR.js +6 -0
  10. langflow/frontend/assets/activity-CrKqfQD-.js +6 -0
  11. langflow/frontend/assets/air-vent-BCa3b23U.js +6 -0
  12. langflow/frontend/assets/airplay-DCfF7SZV.js +6 -0
  13. langflow/frontend/assets/alarm-clock-RzlstqsJ.js +6 -0
  14. langflow/frontend/assets/alarm-clock-check-CwMgmNNJ.js +6 -0
  15. langflow/frontend/assets/alarm-clock-minus-BflHkQiF.js +6 -0
  16. langflow/frontend/assets/alarm-clock-off-CzEgHMBL.js +6 -0
  17. langflow/frontend/assets/alarm-clock-plus-Ds6zhqOK.js +6 -0
  18. langflow/frontend/assets/alarm-smoke-BcbzGiU2.js +6 -0
  19. langflow/frontend/assets/album-DzmD72fk.js +6 -0
  20. langflow/frontend/assets/align-center-BqY2xTlr.js +6 -0
  21. langflow/frontend/assets/align-center-horizontal-DmkABCrT.js +6 -0
  22. langflow/frontend/assets/align-center-vertical-Cj0rHV9y.js +6 -0
  23. langflow/frontend/assets/align-end-horizontal-sdhnIfXs.js +6 -0
  24. langflow/frontend/assets/align-end-vertical-Bo2dLk-T.js +6 -0
  25. langflow/frontend/assets/align-horizontal-distribute-center-DaUEjvIz.js +6 -0
  26. langflow/frontend/assets/align-horizontal-distribute-end-C0JiyIDc.js +6 -0
  27. langflow/frontend/assets/align-horizontal-distribute-start-BfITZIWd.js +6 -0
  28. langflow/frontend/assets/align-horizontal-justify-center-D1pbi0RJ.js +6 -0
  29. langflow/frontend/assets/align-horizontal-justify-end-Bi8rznCF.js +6 -0
  30. langflow/frontend/assets/align-horizontal-justify-start-CAdXCeLI.js +6 -0
  31. langflow/frontend/assets/align-horizontal-space-around-B3Uxws7g.js +6 -0
  32. langflow/frontend/assets/align-horizontal-space-between-Bwnxvzpe.js +6 -0
  33. langflow/frontend/assets/align-justify-C_FXp8AT.js +6 -0
  34. langflow/frontend/assets/align-left-7TpMg8pl.js +6 -0
  35. langflow/frontend/assets/align-right-DRccwkAH.js +6 -0
  36. langflow/frontend/assets/align-start-horizontal-4MaozdO4.js +6 -0
  37. langflow/frontend/assets/align-start-vertical-Ch-B9crm.js +6 -0
  38. langflow/frontend/assets/align-vertical-distribute-center-CKVBRrV6.js +6 -0
  39. langflow/frontend/assets/align-vertical-distribute-end-7MuPGlDS.js +6 -0
  40. langflow/frontend/assets/align-vertical-distribute-start-C1Qb1d3a.js +6 -0
  41. langflow/frontend/assets/align-vertical-justify-center-DC3rZBQB.js +6 -0
  42. langflow/frontend/assets/align-vertical-justify-end-fXgDna2a.js +6 -0
  43. langflow/frontend/assets/align-vertical-justify-start-DXcZjJBN.js +6 -0
  44. langflow/frontend/assets/align-vertical-space-around-Dg-JAOks.js +6 -0
  45. langflow/frontend/assets/align-vertical-space-between-BDMxqGqU.js +6 -0
  46. langflow/frontend/assets/ambulance-0Ecya-5l.js +6 -0
  47. langflow/frontend/assets/ampersand-CRcGXl3f.js +6 -0
  48. langflow/frontend/assets/ampersands-D0Idu38G.js +6 -0
  49. langflow/frontend/assets/amphora-DFGgoZY2.js +6 -0
  50. langflow/frontend/assets/anchor-u_3EgmNz.js +6 -0
  51. langflow/frontend/assets/angry-BP4SXdje.js +6 -0
  52. langflow/frontend/assets/annoyed-BuyRUwL5.js +6 -0
  53. langflow/frontend/assets/antenna-Cu3RwYeO.js +6 -0
  54. langflow/frontend/assets/anvil-9I8-Jyd_.js +6 -0
  55. langflow/frontend/assets/aperture-tpqGqn0E.js +6 -0
  56. langflow/frontend/assets/app-window-DKMrNJ9R.js +6 -0
  57. langflow/frontend/assets/app-window-mac-BZfh_1Ca.js +6 -0
  58. langflow/frontend/assets/apple-Bs8lgUba.js +6 -0
  59. langflow/frontend/assets/archive-DhJh-qyi.js +6 -0
  60. langflow/frontend/assets/archive-restore-c0ELxPGF.js +6 -0
  61. langflow/frontend/assets/archive-x-ANXtkJa1.js +6 -0
  62. langflow/frontend/assets/armchair-CObU7vzV.js +6 -0
  63. langflow/frontend/assets/arrow-big-down-CIWHcN6F.js +6 -0
  64. langflow/frontend/assets/arrow-big-down-dash-f5CbthPd.js +6 -0
  65. langflow/frontend/assets/arrow-big-left-BLKnRDB5.js +6 -0
  66. langflow/frontend/assets/arrow-big-left-dash-tcicsnbc.js +6 -0
  67. langflow/frontend/assets/arrow-big-right-BJyq-oJl.js +6 -0
  68. langflow/frontend/assets/arrow-big-right-dash-uGMAeogB.js +6 -0
  69. langflow/frontend/assets/arrow-big-up-DBJxx5Ie.js +6 -0
  70. langflow/frontend/assets/arrow-big-up-dash-BP_3-1d0.js +6 -0
  71. langflow/frontend/assets/arrow-down-0-1-C6oaXru6.js +6 -0
  72. langflow/frontend/assets/arrow-down-1-0-BZ_RaFIU.js +6 -0
  73. langflow/frontend/assets/arrow-down-O6BalwD_.js +6 -0
  74. langflow/frontend/assets/arrow-down-a-z-BJzf6yG_.js +6 -0
  75. langflow/frontend/assets/arrow-down-from-line-CxslNyRj.js +6 -0
  76. langflow/frontend/assets/arrow-down-left-CeKNd619.js +6 -0
  77. langflow/frontend/assets/arrow-down-narrow-wide-DLTUuqug.js +6 -0
  78. langflow/frontend/assets/arrow-down-right-CluTVNGc.js +6 -0
  79. langflow/frontend/assets/arrow-down-to-dot-BpL9xbQL.js +6 -0
  80. langflow/frontend/assets/arrow-down-to-line-Q5_t-jKM.js +6 -0
  81. langflow/frontend/assets/arrow-down-up-bgmdb3Wx.js +6 -0
  82. langflow/frontend/assets/arrow-down-wide-narrow-Du7kmgmL.js +6 -0
  83. langflow/frontend/assets/arrow-down-z-a-ZM-7ncmX.js +6 -0
  84. langflow/frontend/assets/arrow-left-Do3rGA2c.js +6 -0
  85. langflow/frontend/assets/arrow-left-from-line-HII84i9N.js +6 -0
  86. langflow/frontend/assets/arrow-left-right-DMQGX7x6.js +6 -0
  87. langflow/frontend/assets/arrow-left-to-line-DzvFhsi9.js +6 -0
  88. langflow/frontend/assets/arrow-right-from-line-BH4PYlWN.js +6 -0
  89. langflow/frontend/assets/arrow-right-left-CRuNAmnY.js +6 -0
  90. langflow/frontend/assets/arrow-right-to-line-U0DcRZ7E.js +6 -0
  91. langflow/frontend/assets/arrow-right-uxYoEv5W.js +6 -0
  92. langflow/frontend/assets/arrow-up-0-1-BwyOab23.js +6 -0
  93. langflow/frontend/assets/arrow-up-1-0-DCDvuERw.js +6 -0
  94. langflow/frontend/assets/arrow-up-CJFsk1yg.js +6 -0
  95. langflow/frontend/assets/arrow-up-a-z-CraB41hK.js +6 -0
  96. langflow/frontend/assets/arrow-up-down-rxslEmFP.js +6 -0
  97. langflow/frontend/assets/arrow-up-from-dot-BSfZtmAw.js +6 -0
  98. langflow/frontend/assets/arrow-up-from-line-tGpF8MZY.js +6 -0
  99. langflow/frontend/assets/arrow-up-left-DL9qGaCK.js +6 -0
  100. langflow/frontend/assets/arrow-up-narrow-wide-Bjpm-Pkz.js +6 -0
  101. langflow/frontend/assets/arrow-up-right-DlVTKyGr.js +6 -0
  102. langflow/frontend/assets/arrow-up-to-line-BAwhtA8F.js +6 -0
  103. langflow/frontend/assets/arrow-up-wide-narrow-C4r2omSV.js +6 -0
  104. langflow/frontend/assets/arrow-up-z-a-DTIPy5PJ.js +6 -0
  105. langflow/frontend/assets/arrows-up-from-line-D5VOhVn8.js +6 -0
  106. langflow/frontend/assets/asterisk-DN2Ip90W.js +6 -0
  107. langflow/frontend/assets/at-sign-BuspTGmp.js +6 -0
  108. langflow/frontend/assets/atom-5bKF2NZ7.js +6 -0
  109. langflow/frontend/assets/audio-lines-B4HV5hqs.js +6 -0
  110. langflow/frontend/assets/audio-waveform-Bs0_mKXf.js +6 -0
  111. langflow/frontend/assets/award-ERXFasNm.js +6 -0
  112. langflow/frontend/assets/axe-DXkCgML3.js +6 -0
  113. langflow/frontend/assets/axis-3d-DJNK8yXM.js +6 -0
  114. langflow/frontend/assets/baby-u4oVd8wc.js +6 -0
  115. langflow/frontend/assets/backpack-CZF5vzlR.js +6 -0
  116. langflow/frontend/assets/badge-alert-DhQ4OPQy.js +6 -0
  117. langflow/frontend/assets/badge-cent-D8jyMecQ.js +6 -0
  118. langflow/frontend/assets/badge-check-DsTtdwFl.js +6 -0
  119. langflow/frontend/assets/badge-cn3EqMgo.js +6 -0
  120. langflow/frontend/assets/badge-dollar-sign-CdWbjk0S.js +6 -0
  121. langflow/frontend/assets/badge-euro-CiQKiRt_.js +6 -0
  122. langflow/frontend/assets/badge-help-DzxZ6H68.js +6 -0
  123. langflow/frontend/assets/badge-indian-rupee-C6kO8FcO.js +6 -0
  124. langflow/frontend/assets/badge-info-CGnJeXcE.js +6 -0
  125. langflow/frontend/assets/badge-japanese-yen-BCyPN0Yz.js +6 -0
  126. langflow/frontend/assets/badge-minus-C1O31ocy.js +6 -0
  127. langflow/frontend/assets/badge-percent-q7bzdc5n.js +6 -0
  128. langflow/frontend/assets/badge-plus-D1H9IOFy.js +6 -0
  129. langflow/frontend/assets/badge-pound-sterling-BnflvS5N.js +6 -0
  130. langflow/frontend/assets/badge-russian-ruble-P4mkajQD.js +6 -0
  131. langflow/frontend/assets/badge-swiss-franc-BZJ_0RgY.js +6 -0
  132. langflow/frontend/assets/badge-x-bp5SwFS2.js +6 -0
  133. langflow/frontend/assets/baggage-claim-B3YG4UmA.js +6 -0
  134. langflow/frontend/assets/ban-CSZZ7bsv.js +6 -0
  135. langflow/frontend/assets/banana-CHgDoLwk.js +6 -0
  136. langflow/frontend/assets/bandage-C1FREvZ4.js +6 -0
  137. langflow/frontend/assets/banknote-arrow-down-Csvstn4a.js +6 -0
  138. langflow/frontend/assets/banknote-arrow-up-DqwiPgA6.js +6 -0
  139. langflow/frontend/assets/banknote-jon6y9PD.js +6 -0
  140. langflow/frontend/assets/banknote-x-WSawOQon.js +6 -0
  141. langflow/frontend/assets/barcode-BhaAUyyc.js +6 -0
  142. langflow/frontend/assets/baseline-MvPbqNww.js +6 -0
  143. langflow/frontend/assets/bath-DBo3s-Af.js +6 -0
  144. langflow/frontend/assets/battery-CXCkDUHX.js +6 -0
  145. langflow/frontend/assets/battery-charging-BKPcSY42.js +6 -0
  146. langflow/frontend/assets/battery-full-Cs9r_Y8s.js +6 -0
  147. langflow/frontend/assets/battery-low-DYAypDh9.js +6 -0
  148. langflow/frontend/assets/battery-medium-DlNOSChI.js +6 -0
  149. langflow/frontend/assets/battery-plus-CsCAC3H4.js +6 -0
  150. langflow/frontend/assets/battery-warning-Cmi4WSuJ.js +6 -0
  151. langflow/frontend/assets/beaker-ChyZj5d3.js +6 -0
  152. langflow/frontend/assets/bean-Bqsu084y.js +6 -0
  153. langflow/frontend/assets/bean-off-BDUc4tSe.js +6 -0
  154. langflow/frontend/assets/bed-dQVfr-Ho.js +6 -0
  155. langflow/frontend/assets/bed-double-C6QqEpJA.js +6 -0
  156. langflow/frontend/assets/bed-single-DWwIEJmE.js +6 -0
  157. langflow/frontend/assets/beef-JNKPj4G8.js +6 -0
  158. langflow/frontend/assets/beer-BSZsVh-k.js +6 -0
  159. langflow/frontend/assets/beer-off-BM1B3G3I.js +6 -0
  160. langflow/frontend/assets/bell-D7GwbPPk.js +6 -0
  161. langflow/frontend/assets/bell-dot-CnUV3T7C.js +6 -0
  162. langflow/frontend/assets/bell-electric-ics516at.js +6 -0
  163. langflow/frontend/assets/bell-minus-BET7zm6v.js +6 -0
  164. langflow/frontend/assets/bell-off-ClQbsoKo.js +6 -0
  165. langflow/frontend/assets/bell-plus-Rel_-C6Y.js +6 -0
  166. langflow/frontend/assets/bell-ring-BWWsV6vF.js +6 -0
  167. langflow/frontend/assets/between-horizontal-end-BXV8oPGu.js +6 -0
  168. langflow/frontend/assets/between-horizontal-start-BACB3IrD.js +6 -0
  169. langflow/frontend/assets/between-vertical-end-BsFQGh17.js +6 -0
  170. langflow/frontend/assets/between-vertical-start-7J4pzEhA.js +6 -0
  171. langflow/frontend/assets/biceps-flexed-Bdhkhn_4.js +6 -0
  172. langflow/frontend/assets/bike-NtOcsgzm.js +6 -0
  173. langflow/frontend/assets/binary-Dvs9I_Sw.js +6 -0
  174. langflow/frontend/assets/binoculars-BSt3UCjO.js +6 -0
  175. langflow/frontend/assets/biohazard-CECkmv5N.js +6 -0
  176. langflow/frontend/assets/bird-BzsnrUQJ.js +6 -0
  177. langflow/frontend/assets/bitcoin-DLnw3YtN.js +6 -0
  178. langflow/frontend/assets/blend-DrQpkrEx.js +6 -0
  179. langflow/frontend/assets/blinds-kjfaXyS8.js +6 -0
  180. langflow/frontend/assets/blocks-BeZist40.js +6 -0
  181. langflow/frontend/assets/bluetooth-Cz3WJdYT.js +6 -0
  182. langflow/frontend/assets/bluetooth-connected-BfZg0P1m.js +6 -0
  183. langflow/frontend/assets/bluetooth-off-DS3lcwZY.js +6 -0
  184. langflow/frontend/assets/bluetooth-searching-BgAw_NlU.js +6 -0
  185. langflow/frontend/assets/bold-BOuOCnrD.js +6 -0
  186. langflow/frontend/assets/bolt-NIua3Aic.js +6 -0
  187. langflow/frontend/assets/bomb-D8F0XE6x.js +6 -0
  188. langflow/frontend/assets/bone-Bh21fHgx.js +6 -0
  189. langflow/frontend/assets/book-79Z3Ij2T.js +6 -0
  190. langflow/frontend/assets/book-a-Belk865w.js +6 -0
  191. langflow/frontend/assets/book-audio-C4UE6uHN.js +6 -0
  192. langflow/frontend/assets/book-check-CQVoCFj2.js +6 -0
  193. langflow/frontend/assets/book-copy-BkFsD5Ny.js +6 -0
  194. langflow/frontend/assets/book-dashed-CCLW_PVv.js +6 -0
  195. langflow/frontend/assets/book-down-Cjl88VJ4.js +6 -0
  196. langflow/frontend/assets/book-headphones-B8rORwD-.js +6 -0
  197. langflow/frontend/assets/book-heart-CKo74Zsz.js +6 -0
  198. langflow/frontend/assets/book-image-_o-95yrF.js +6 -0
  199. langflow/frontend/assets/book-key-BrmADg8W.js +6 -0
  200. langflow/frontend/assets/book-lock-BZ4NzFdI.js +6 -0
  201. langflow/frontend/assets/book-marked-Bq1QiXYP.js +6 -0
  202. langflow/frontend/assets/book-minus-BBSwScRq.js +6 -0
  203. langflow/frontend/assets/book-open-DoTrKi70.js +6 -0
  204. langflow/frontend/assets/book-open-check-DL3MtQO4.js +6 -0
  205. langflow/frontend/assets/book-open-text-CCAuud2M.js +6 -0
  206. langflow/frontend/assets/book-plus-CEt0oBWi.js +6 -0
  207. langflow/frontend/assets/book-text-Br88GleF.js +6 -0
  208. langflow/frontend/assets/book-type-CPBQrait.js +6 -0
  209. langflow/frontend/assets/book-up-2-CTEs4KyT.js +6 -0
  210. langflow/frontend/assets/book-up-D-jB3oPk.js +6 -0
  211. langflow/frontend/assets/book-user--_1r_Or_.js +6 -0
  212. langflow/frontend/assets/book-x-BvQ8Q403.js +6 -0
  213. langflow/frontend/assets/bookmark-D8bmrKHV.js +6 -0
  214. langflow/frontend/assets/bookmark-check-d5al9KE4.js +6 -0
  215. langflow/frontend/assets/bookmark-minus-Coo4tpqY.js +6 -0
  216. langflow/frontend/assets/bookmark-plus-BZueGYLA.js +6 -0
  217. langflow/frontend/assets/bookmark-x-CjweFRqF.js +6 -0
  218. langflow/frontend/assets/boom-box-CT9mjsGg.js +6 -0
  219. langflow/frontend/assets/bot-BvNYj2Em.js +6 -0
  220. langflow/frontend/assets/bot-message-square-C3b0lgAa.js +6 -0
  221. langflow/frontend/assets/bot-off-CNWibg0a.js +6 -0
  222. langflow/frontend/assets/bow-arrow-BpmZT710.js +6 -0
  223. langflow/frontend/assets/box-jE03R8vb.js +6 -0
  224. langflow/frontend/assets/boxes-DhAOofAj.js +6 -0
  225. langflow/frontend/assets/braces-DFeV0p_s.js +6 -0
  226. langflow/frontend/assets/brackets-C5rVD6F8.js +6 -0
  227. langflow/frontend/assets/brain-RoQWszoZ.js +6 -0
  228. langflow/frontend/assets/brain-circuit-DI4twAqn.js +6 -0
  229. langflow/frontend/assets/brain-cog-Cos6AV-N.js +6 -0
  230. langflow/frontend/assets/brick-wall-BMzpXRNz.js +6 -0
  231. langflow/frontend/assets/brick-wall-fire-BtON7KwC.js +6 -0
  232. langflow/frontend/assets/briefcase-5PT5EUuQ.js +6 -0
  233. langflow/frontend/assets/briefcase-business-CEfC1-xT.js +6 -0
  234. langflow/frontend/assets/briefcase-conveyor-belt-UjTPM-my.js +6 -0
  235. langflow/frontend/assets/briefcase-medical-DI03zjJ8.js +6 -0
  236. langflow/frontend/assets/bring-to-front-DujgdQDb.js +6 -0
  237. langflow/frontend/assets/brush-ZCcdjTGd.js +6 -0
  238. langflow/frontend/assets/bubbles-CTYDu5b8.js +6 -0
  239. langflow/frontend/assets/bug-BKQqqOLC.js +6 -0
  240. langflow/frontend/assets/bug-off-MfMziADH.js +6 -0
  241. langflow/frontend/assets/bug-play-ChPFwfin.js +6 -0
  242. langflow/frontend/assets/building-2-DRWSH-b1.js +6 -0
  243. langflow/frontend/assets/building-eJWxdKTm.js +6 -0
  244. langflow/frontend/assets/bus-aIjQlpmA.js +6 -0
  245. langflow/frontend/assets/bus-front-Ct-HjDrK.js +6 -0
  246. langflow/frontend/assets/cable-D1uoqxh4.js +6 -0
  247. langflow/frontend/assets/cable-car-KCbEwK6F.js +6 -0
  248. langflow/frontend/assets/cake-ZlgsaGy3.js +6 -0
  249. langflow/frontend/assets/cake-slice-BBlLsWqG.js +6 -0
  250. langflow/frontend/assets/calculator-DxFUMVA1.js +6 -0
  251. langflow/frontend/assets/calendar-1-LTEq6nY8.js +6 -0
  252. langflow/frontend/assets/calendar-CmArxlsV.js +6 -0
  253. langflow/frontend/assets/calendar-arrow-down-L6VhYSn7.js +6 -0
  254. langflow/frontend/assets/calendar-arrow-up-D7iaQLx_.js +6 -0
  255. langflow/frontend/assets/calendar-check-2-GbENDIuY.js +6 -0
  256. langflow/frontend/assets/calendar-check-BLIpkp1q.js +6 -0
  257. langflow/frontend/assets/calendar-clock-DyNwiaNf.js +6 -0
  258. langflow/frontend/assets/calendar-cog-uPPt94Tm.js +6 -0
  259. langflow/frontend/assets/calendar-days-Cr5VKida.js +6 -0
  260. langflow/frontend/assets/calendar-fold-jdwJ62nV.js +6 -0
  261. langflow/frontend/assets/calendar-heart-B80_6cw1.js +6 -0
  262. langflow/frontend/assets/calendar-minus-2-D4z1Q0bq.js +6 -0
  263. langflow/frontend/assets/calendar-minus-Da-5vKpL.js +6 -0
  264. langflow/frontend/assets/calendar-off-Dy8YC5ds.js +6 -0
  265. langflow/frontend/assets/calendar-plus-2-2JG19xhW.js +6 -0
  266. langflow/frontend/assets/calendar-plus-7Ivivc9T.js +6 -0
  267. langflow/frontend/assets/calendar-range-By26q6f8.js +6 -0
  268. langflow/frontend/assets/calendar-search-BcOFYIrh.js +6 -0
  269. langflow/frontend/assets/calendar-sync-B2DW5wT7.js +6 -0
  270. langflow/frontend/assets/calendar-x-2-BMD2-vyV.js +6 -0
  271. langflow/frontend/assets/calendar-x-Do6-dM0d.js +6 -0
  272. langflow/frontend/assets/camera-off-BBSPnkdp.js +6 -0
  273. langflow/frontend/assets/camera-qiLsmLVX.js +6 -0
  274. langflow/frontend/assets/candy-B4BA10jH.js +6 -0
  275. langflow/frontend/assets/candy-cane-D6HA9NXh.js +6 -0
  276. langflow/frontend/assets/candy-off-Dy-BPQ3-.js +6 -0
  277. langflow/frontend/assets/cannabis-C6iAy2t3.js +6 -0
  278. langflow/frontend/assets/captions-CaUc7kgv.js +6 -0
  279. langflow/frontend/assets/captions-off-BA5wDWBJ.js +6 -0
  280. langflow/frontend/assets/car-DIrU0E9x.js +6 -0
  281. langflow/frontend/assets/car-front-Bxxk-ePn.js +6 -0
  282. langflow/frontend/assets/car-taxi-front-O8Ln1WOG.js +6 -0
  283. langflow/frontend/assets/caravan-B5DRoIlD.js +6 -0
  284. langflow/frontend/assets/carrot-CX59CIL1.js +6 -0
  285. langflow/frontend/assets/case-lower-DmA28Tv-.js +6 -0
  286. langflow/frontend/assets/case-sensitive-DdnZJ1Wr.js +6 -0
  287. langflow/frontend/assets/case-upper-ClpTkfcs.js +6 -0
  288. langflow/frontend/assets/cassette-tape-Ce1Cb2kK.js +6 -0
  289. langflow/frontend/assets/cast-D93-WQFe.js +6 -0
  290. langflow/frontend/assets/castle-BkqOGRz_.js +6 -0
  291. langflow/frontend/assets/cat-C-MhRjSD.js +6 -0
  292. langflow/frontend/assets/cctv-De3VPp9M.js +6 -0
  293. langflow/frontend/assets/chart-area-YHglV2II.js +6 -0
  294. langflow/frontend/assets/chart-bar-C6UDynnR.js +6 -0
  295. langflow/frontend/assets/chart-bar-big-Db7EGc7P.js +6 -0
  296. langflow/frontend/assets/chart-bar-decreasing-CKPa7Uo0.js +6 -0
  297. langflow/frontend/assets/chart-bar-increasing-CQzxJU-D.js +6 -0
  298. langflow/frontend/assets/chart-bar-stacked-DLscWW51.js +6 -0
  299. langflow/frontend/assets/chart-candlestick-BHuxivxM.js +6 -0
  300. langflow/frontend/assets/chart-column-BMQ1JA7J.js +6 -0
  301. langflow/frontend/assets/chart-column-big-KZT--AfO.js +6 -0
  302. langflow/frontend/assets/chart-column-decreasing-w6rYMD6C.js +6 -0
  303. langflow/frontend/assets/chart-column-increasing-BaXR6GQN.js +6 -0
  304. langflow/frontend/assets/chart-column-stacked-DoYR8Wxh.js +6 -0
  305. langflow/frontend/assets/chart-gantt-CP25M7FP.js +6 -0
  306. langflow/frontend/assets/chart-line-DMP0DrGa.js +6 -0
  307. langflow/frontend/assets/chart-network-D0t4_t7d.js +6 -0
  308. langflow/frontend/assets/chart-no-axes-column-DL9foSpP.js +6 -0
  309. langflow/frontend/assets/chart-no-axes-column-decreasing-wbMG3NAW.js +6 -0
  310. langflow/frontend/assets/chart-no-axes-column-increasing-tmUtkpor.js +6 -0
  311. langflow/frontend/assets/chart-no-axes-combined-ClDvWMmg.js +6 -0
  312. langflow/frontend/assets/chart-no-axes-gantt-BjARKI4S.js +6 -0
  313. langflow/frontend/assets/chart-pie-CCIHZ2cO.js +6 -0
  314. langflow/frontend/assets/chart-scatter-CualKh0G.js +6 -0
  315. langflow/frontend/assets/chart-spline-BiiudplP.js +6 -0
  316. langflow/frontend/assets/check-check-CBIs7R6R.js +6 -0
  317. langflow/frontend/assets/chef-hat-D1bxZ1mi.js +6 -0
  318. langflow/frontend/assets/cherry-BNILkH9j.js +6 -0
  319. langflow/frontend/assets/chevron-first-BgHg7Xjz.js +6 -0
  320. langflow/frontend/assets/chevron-last-BXqCydlK.js +6 -0
  321. langflow/frontend/assets/chevron-left-UaKSE6kU.js +6 -0
  322. langflow/frontend/assets/chevron-right-BFuZnFiM.js +6 -0
  323. langflow/frontend/assets/chevrons-down-D29MOzAj.js +6 -0
  324. langflow/frontend/assets/chevrons-down-up-BQTJeW2F.js +6 -0
  325. langflow/frontend/assets/chevrons-left-BIPYPgOF.js +6 -0
  326. langflow/frontend/assets/chevrons-left-right-C5acb8ie.js +6 -0
  327. langflow/frontend/assets/chevrons-left-right-ellipsis-DpecOGzS.js +6 -0
  328. langflow/frontend/assets/chevrons-right-BcN6vFa8.js +6 -0
  329. langflow/frontend/assets/chevrons-right-left-bjzgxMeQ.js +6 -0
  330. langflow/frontend/assets/chevrons-up-BNLxP5_t.js +6 -0
  331. langflow/frontend/assets/chrome-BacOBjwM.js +6 -0
  332. langflow/frontend/assets/church-BVt3CImR.js +6 -0
  333. langflow/frontend/assets/cigarette-m9Dmm9iv.js +6 -0
  334. langflow/frontend/assets/cigarette-off-xYWmmKBt.js +6 -0
  335. langflow/frontend/assets/circle-alert-Bq8GZGSu.js +6 -0
  336. langflow/frontend/assets/circle-arrow-down-C5Y6zD5M.js +6 -0
  337. langflow/frontend/assets/circle-arrow-left-BaobtaSG.js +6 -0
  338. langflow/frontend/assets/circle-arrow-out-down-left-D7kDp-T7.js +6 -0
  339. langflow/frontend/assets/circle-arrow-out-down-right-DObcNvRG.js +6 -0
  340. langflow/frontend/assets/circle-arrow-out-up-left-zs2tgDrK.js +6 -0
  341. langflow/frontend/assets/circle-arrow-out-up-right-zma3QBR1.js +6 -0
  342. langflow/frontend/assets/circle-arrow-right-Cx5EL6Dr.js +6 -0
  343. langflow/frontend/assets/circle-arrow-up-oiHYd-z3.js +6 -0
  344. langflow/frontend/assets/circle-check-DrSpk050.js +6 -0
  345. langflow/frontend/assets/circle-check-big-BGoa_XZ8.js +6 -0
  346. langflow/frontend/assets/circle-chevron-down-EgS7rNu4.js +6 -0
  347. langflow/frontend/assets/circle-chevron-left-Crqe3Dn5.js +6 -0
  348. langflow/frontend/assets/circle-chevron-right-wTxOu2U9.js +6 -0
  349. langflow/frontend/assets/circle-chevron-up-DCKx1dyP.js +6 -0
  350. langflow/frontend/assets/circle-dashed-DBXMBes_.js +6 -0
  351. langflow/frontend/assets/circle-divide-BpHxivF-.js +6 -0
  352. langflow/frontend/assets/circle-dollar-sign-RnsctHA0.js +6 -0
  353. langflow/frontend/assets/circle-dot-BtNTy8C4.js +6 -0
  354. langflow/frontend/assets/circle-dot-dashed-DEmE0J08.js +6 -0
  355. langflow/frontend/assets/circle-ellipsis-Bkj1e7uv.js +6 -0
  356. langflow/frontend/assets/circle-equal-DNdIf-_a.js +6 -0
  357. langflow/frontend/assets/circle-fading-arrow-up-CAFKxCeJ.js +6 -0
  358. langflow/frontend/assets/circle-fading-plus-Cij3QL3d.js +6 -0
  359. langflow/frontend/assets/circle-gauge-DTLJD5Fh.js +6 -0
  360. langflow/frontend/assets/circle-help-DTEN5hW3.js +6 -0
  361. langflow/frontend/assets/circle-minus-DicXdsqF.js +6 -0
  362. langflow/frontend/assets/circle-off-BhyXEGUX.js +6 -0
  363. langflow/frontend/assets/circle-parking-DuquDgdN.js +6 -0
  364. langflow/frontend/assets/circle-parking-off-BL6lfqAk.js +6 -0
  365. langflow/frontend/assets/circle-pause-DNojPJgy.js +6 -0
  366. langflow/frontend/assets/circle-percent-CZvCQ-NF.js +6 -0
  367. langflow/frontend/assets/circle-play-Dp09t3Aw.js +6 -0
  368. langflow/frontend/assets/circle-plus-DpzKFXhV.js +6 -0
  369. langflow/frontend/assets/circle-power-DzJF6FUe.js +6 -0
  370. langflow/frontend/assets/circle-slash-2-OjBndXt5.js +6 -0
  371. langflow/frontend/assets/circle-slash-CkVSIalR.js +6 -0
  372. langflow/frontend/assets/circle-small-BYaBQDGZ.js +6 -0
  373. langflow/frontend/assets/circle-stop-Bpodmhy6.js +6 -0
  374. langflow/frontend/assets/circle-user-CZ5X9Jgl.js +6 -0
  375. langflow/frontend/assets/circle-user-round-BmHnWhJc.js +6 -0
  376. langflow/frontend/assets/circuit-board-Ds_l5YcN.js +6 -0
  377. langflow/frontend/assets/citrus-CB2GCYHW.js +6 -0
  378. langflow/frontend/assets/clapperboard-CybBSQEP.js +6 -0
  379. langflow/frontend/assets/clipboard-BQbDHfvY.js +6 -0
  380. langflow/frontend/assets/clipboard-check-BdYU2vyf.js +6 -0
  381. langflow/frontend/assets/clipboard-copy-B_g47-5U.js +6 -0
  382. langflow/frontend/assets/clipboard-list-C0XYT_1Z.js +6 -0
  383. langflow/frontend/assets/clipboard-minus-DVe_eR96.js +6 -0
  384. langflow/frontend/assets/clipboard-paste-XQxk9AP5.js +6 -0
  385. langflow/frontend/assets/clipboard-pen-DlxdZzXK.js +6 -0
  386. langflow/frontend/assets/clipboard-pen-line-D_8TgOPp.js +6 -0
  387. langflow/frontend/assets/clipboard-plus-B_W2nvbm.js +6 -0
  388. langflow/frontend/assets/clipboard-type-DgHcy-Su.js +6 -0
  389. langflow/frontend/assets/clipboard-x-T3vLuKB0.js +6 -0
  390. langflow/frontend/assets/clock-1-BUUVqXI3.js +6 -0
  391. langflow/frontend/assets/clock-10-BGua-Djj.js +6 -0
  392. langflow/frontend/assets/clock-11-B_8sbMe8.js +6 -0
  393. langflow/frontend/assets/clock-12-Bbk-lr05.js +6 -0
  394. langflow/frontend/assets/clock-2-DDJksOgQ.js +6 -0
  395. langflow/frontend/assets/clock-3-D29vBKRG.js +6 -0
  396. langflow/frontend/assets/clock-4-CRL15e9F.js +6 -0
  397. langflow/frontend/assets/clock-5-CSfuZfPS.js +6 -0
  398. langflow/frontend/assets/clock-6-5NOuvTcP.js +6 -0
  399. langflow/frontend/assets/clock-7-O6m416fR.js +6 -0
  400. langflow/frontend/assets/clock-8-Bed-F6H0.js +6 -0
  401. langflow/frontend/assets/clock-9-CYXVCX9R.js +6 -0
  402. langflow/frontend/assets/clock-DszM8mN8.js +6 -0
  403. langflow/frontend/assets/clock-alert-C1ncYl_K.js +6 -0
  404. langflow/frontend/assets/clock-arrow-down-CmA2oLxL.js +6 -0
  405. langflow/frontend/assets/clock-arrow-up-B3lJPTZl.js +6 -0
  406. langflow/frontend/assets/clock-fading-eGYBDqOA.js +6 -0
  407. langflow/frontend/assets/cloud-C1c92_G7.js +6 -0
  408. langflow/frontend/assets/cloud-alert-DZPDNLh2.js +6 -0
  409. langflow/frontend/assets/cloud-cog-BDhb4Dm6.js +6 -0
  410. langflow/frontend/assets/cloud-download-8i0QZn2S.js +6 -0
  411. langflow/frontend/assets/cloud-drizzle-BBv1N5te.js +6 -0
  412. langflow/frontend/assets/cloud-fog-B8L1jVK3.js +6 -0
  413. langflow/frontend/assets/cloud-hail-DX6OhBEz.js +6 -0
  414. langflow/frontend/assets/cloud-lightning-DjaYifEm.js +6 -0
  415. langflow/frontend/assets/cloud-moon-h7sCuLGe.js +6 -0
  416. langflow/frontend/assets/cloud-moon-rain-BFipsjsy.js +6 -0
  417. langflow/frontend/assets/cloud-off-Ceq1ztAb.js +6 -0
  418. langflow/frontend/assets/cloud-rain-DIBPsBcb.js +6 -0
  419. langflow/frontend/assets/cloud-rain-wind-iXm_gSiw.js +6 -0
  420. langflow/frontend/assets/cloud-snow-BGRb3aGr.js +6 -0
  421. langflow/frontend/assets/cloud-sun-UVRVWtvc.js +6 -0
  422. langflow/frontend/assets/cloud-sun-rain-vX5b1ULS.js +6 -0
  423. langflow/frontend/assets/cloud-upload-Bcpc2E2Q.js +6 -0
  424. langflow/frontend/assets/cloudy-ChAYj0rU.js +6 -0
  425. langflow/frontend/assets/clover-Da4E51tG.js +6 -0
  426. langflow/frontend/assets/club-XxiP8VVl.js +6 -0
  427. langflow/frontend/assets/code-xml-DVNpwUug.js +6 -0
  428. langflow/frontend/assets/codepen-Pu6tFCfu.js +6 -0
  429. langflow/frontend/assets/codesandbox-BvlsKUIt.js +6 -0
  430. langflow/frontend/assets/coffee-BHDAhXDn.js +6 -0
  431. langflow/frontend/assets/cog-C9GiNMU-.js +6 -0
  432. langflow/frontend/assets/coins-6ZaT3Sq3.js +6 -0
  433. langflow/frontend/assets/columns-2-2x_YNs1L.js +6 -0
  434. langflow/frontend/assets/columns-3-CHmqwjHy.js +6 -0
  435. langflow/frontend/assets/columns-3-cog-CHqF9rvL.js +6 -0
  436. langflow/frontend/assets/columns-4-DxROtVN6.js +6 -0
  437. langflow/frontend/assets/combine-BPzAcchb.js +6 -0
  438. langflow/frontend/assets/command-D28aIlsp.js +6 -0
  439. langflow/frontend/assets/compass-BJPX5R9y.js +6 -0
  440. langflow/frontend/assets/component-DK_gvgva.js +6 -0
  441. langflow/frontend/assets/computer-BZwhmPa_.js +6 -0
  442. langflow/frontend/assets/concierge-bell-CF4Ja9aD.js +6 -0
  443. langflow/frontend/assets/cone-B2Gfjrtf.js +6 -0
  444. langflow/frontend/assets/construction-Cs7XcJgp.js +6 -0
  445. langflow/frontend/assets/contact-CDkRytGc.js +6 -0
  446. langflow/frontend/assets/contact-round-CPvBZDn9.js +6 -0
  447. langflow/frontend/assets/container-yDmmd0VI.js +6 -0
  448. langflow/frontend/assets/contrast-qw7lk-Vc.js +6 -0
  449. langflow/frontend/assets/cookie-D0gsli0e.js +6 -0
  450. langflow/frontend/assets/cooking-pot-B6WY7yAA.js +6 -0
  451. langflow/frontend/assets/copy-D-wW1R8Z.js +6 -0
  452. langflow/frontend/assets/copy-check-Bp04cnXT.js +6 -0
  453. langflow/frontend/assets/copy-minus-CMvTjRfx.js +6 -0
  454. langflow/frontend/assets/copy-plus-BPmZbj1d.js +6 -0
  455. langflow/frontend/assets/copy-slash-BiPlhjpo.js +6 -0
  456. langflow/frontend/assets/copy-x-ssyDEA4S.js +6 -0
  457. langflow/frontend/assets/copyleft-DSkwaU8-.js +6 -0
  458. langflow/frontend/assets/copyright-DONuv4BC.js +6 -0
  459. langflow/frontend/assets/corner-down-left-BipdwWk2.js +6 -0
  460. langflow/frontend/assets/corner-down-right-DJH31VKc.js +6 -0
  461. langflow/frontend/assets/corner-left-down-ChZzLnr7.js +6 -0
  462. langflow/frontend/assets/corner-left-up-CVhi21yN.js +6 -0
  463. langflow/frontend/assets/corner-right-down-339kuAF1.js +6 -0
  464. langflow/frontend/assets/corner-right-up-s1C3a_we.js +6 -0
  465. langflow/frontend/assets/corner-up-left-D2Nf7Jyy.js +6 -0
  466. langflow/frontend/assets/corner-up-right-lpiLeN8N.js +6 -0
  467. langflow/frontend/assets/cpu-BkRIaXhH.js +6 -0
  468. langflow/frontend/assets/creative-commons-QZhXyy7d.js +6 -0
  469. langflow/frontend/assets/credit-card-Cx1rFROm.js +6 -0
  470. langflow/frontend/assets/croissant-mOaXfwMp.js +6 -0
  471. langflow/frontend/assets/crop-_et0dNcx.js +6 -0
  472. langflow/frontend/assets/cross-B2e8pHqt.js +6 -0
  473. langflow/frontend/assets/crosshair-BSzYFCBK.js +6 -0
  474. langflow/frontend/assets/crown-DUngH9xg.js +6 -0
  475. langflow/frontend/assets/cuboid-DUznyWGx.js +6 -0
  476. langflow/frontend/assets/cup-soda-BCHuUuXd.js +6 -0
  477. langflow/frontend/assets/currency-SrCEXCUz.js +6 -0
  478. langflow/frontend/assets/cylinder-D39xciUn.js +6 -0
  479. langflow/frontend/assets/dam-En36A8lL.js +6 -0
  480. langflow/frontend/assets/database-backup-DfxkBMEc.js +6 -0
  481. langflow/frontend/assets/database-q-VCDP2B.js +6 -0
  482. langflow/frontend/assets/database-zap-DoZSFLj2.js +6 -0
  483. langflow/frontend/assets/decimals-arrow-left-C5L5qM0w.js +6 -0
  484. langflow/frontend/assets/decimals-arrow-right-Bp6FzsGR.js +6 -0
  485. langflow/frontend/assets/delete-B7LBB5Gd.js +6 -0
  486. langflow/frontend/assets/dessert-770L34TF.js +6 -0
  487. langflow/frontend/assets/diameter-CKpPsj53.js +6 -0
  488. langflow/frontend/assets/diamond-U2VrRa3M.js +6 -0
  489. langflow/frontend/assets/diamond-minus-5zWto3gb.js +6 -0
  490. langflow/frontend/assets/diamond-percent-DYC_YGlA.js +6 -0
  491. langflow/frontend/assets/diamond-plus-CSn0WvRY.js +6 -0
  492. langflow/frontend/assets/dice-1-OBFE1vFE.js +6 -0
  493. langflow/frontend/assets/dice-2-C0Ru0CR1.js +6 -0
  494. langflow/frontend/assets/dice-3-PY1sg2Bh.js +6 -0
  495. langflow/frontend/assets/dice-4-8gWk1vor.js +6 -0
  496. langflow/frontend/assets/dice-5-3VIr6uBn.js +6 -0
  497. langflow/frontend/assets/dice-6-CDB719HL.js +6 -0
  498. langflow/frontend/assets/dices-BxDQ3lHC.js +6 -0
  499. langflow/frontend/assets/diff-B_1ZAZTw.js +6 -0
  500. langflow/frontend/assets/disc-2-CO5YLGi4.js +6 -0
  501. langflow/frontend/assets/disc-3-BRHmiU6l.js +6 -0
  502. langflow/frontend/assets/disc-album-D1IxE316.js +6 -0
  503. langflow/frontend/assets/disc-xLUBiv_7.js +6 -0
  504. langflow/frontend/assets/divide-C3vt3dBi.js +6 -0
  505. langflow/frontend/assets/dna-Dl3EzKQm.js +6 -0
  506. langflow/frontend/assets/dna-off-A-cE4Hp-.js +6 -0
  507. langflow/frontend/assets/dock-h_lbWxpj.js +6 -0
  508. langflow/frontend/assets/dog-bLalftdF.js +6 -0
  509. langflow/frontend/assets/dollar-sign-CDQxBxz-.js +6 -0
  510. langflow/frontend/assets/donut-CxW3wvTr.js +6 -0
  511. langflow/frontend/assets/door-closed-wlqoPmkD.js +6 -0
  512. langflow/frontend/assets/door-open-BqM03bOR.js +6 -0
  513. langflow/frontend/assets/dot-BSC3ftqp.js +6 -0
  514. langflow/frontend/assets/download-B08IgWZP.js +6 -0
  515. langflow/frontend/assets/drafting-compass-WdJg0CJP.js +6 -0
  516. langflow/frontend/assets/drama-WW2DeEco.js +6 -0
  517. langflow/frontend/assets/dribbble-DH6brrXf.js +6 -0
  518. langflow/frontend/assets/drill-BZjuAWgY.js +6 -0
  519. langflow/frontend/assets/droplet-CovOtjG8.js +6 -0
  520. langflow/frontend/assets/droplet-off-mhGCel1L.js +6 -0
  521. langflow/frontend/assets/droplets-D5xf-WWU.js +6 -0
  522. langflow/frontend/assets/drum-CwhZ0rpN.js +6 -0
  523. langflow/frontend/assets/drumstick-DSyfgd5K.js +6 -0
  524. langflow/frontend/assets/dumbbell-B4ipPwus.js +6 -0
  525. langflow/frontend/assets/ear-CTCZXeoC.js +6 -0
  526. langflow/frontend/assets/ear-off-DI2w-Eig.js +6 -0
  527. langflow/frontend/assets/earth-CK8vrGmk.js +6 -0
  528. langflow/frontend/assets/earth-lock-sOuOw75L.js +6 -0
  529. langflow/frontend/assets/eclipse-DktM2cq7.js +6 -0
  530. langflow/frontend/assets/egg-DFalKwe7.js +6 -0
  531. langflow/frontend/assets/egg-fried-Cy8QIM-V.js +6 -0
  532. langflow/frontend/assets/egg-off-CTDgZfge.js +6 -0
  533. langflow/frontend/assets/ellipsis-BaV4WDj5.js +6 -0
  534. langflow/frontend/assets/ellipsis-vertical-Ci0QclNE.js +6 -0
  535. langflow/frontend/assets/equal-9vauAh6F.js +6 -0
  536. langflow/frontend/assets/equal-approximately-D7fT1ptR.js +6 -0
  537. langflow/frontend/assets/equal-not-BsZznlP_.js +6 -0
  538. langflow/frontend/assets/eraser-BWqEMOK_.js +6 -0
  539. langflow/frontend/assets/ethernet-port-JGDSZQFA.js +6 -0
  540. langflow/frontend/assets/euro-C32UVH3_.js +6 -0
  541. langflow/frontend/assets/expand-1n0nTP-Y.js +6 -0
  542. langflow/frontend/assets/eye-closed-DoZJ1Gcn.js +6 -0
  543. langflow/frontend/assets/eye-off-D-6Wv4jG.js +6 -0
  544. langflow/frontend/assets/eye-yIomm2Xs.js +6 -0
  545. langflow/frontend/assets/facebook-DjQ5NI1x.js +6 -0
  546. langflow/frontend/assets/factory-s-F6UwTs.js +6 -0
  547. langflow/frontend/assets/fan-gFlVpe9L.js +6 -0
  548. langflow/frontend/assets/fast-forward-CLw-62vb.js +6 -0
  549. langflow/frontend/assets/feather-ChVYo3xM.js +6 -0
  550. langflow/frontend/assets/fence-C045cCIt.js +6 -0
  551. langflow/frontend/assets/ferris-wheel-vzPUmhJC.js +6 -0
  552. langflow/frontend/assets/figma-CMHalEkY.js +6 -0
  553. langflow/frontend/assets/file-Bs_CNwMk.js +6 -0
  554. langflow/frontend/assets/file-archive-DGVV2kr9.js +6 -0
  555. langflow/frontend/assets/file-audio-2-Dgn8BBwY.js +6 -0
  556. langflow/frontend/assets/file-audio-_v4d4uPZ.js +6 -0
  557. langflow/frontend/assets/file-axis-3d-OhxZzLgy.js +6 -0
  558. langflow/frontend/assets/file-badge-2-BoJuEEVW.js +6 -0
  559. langflow/frontend/assets/file-badge-BUbnM6oE.js +6 -0
  560. langflow/frontend/assets/file-box-eIFVyQiO.js +6 -0
  561. langflow/frontend/assets/file-chart-column-DziCQMnl.js +6 -0
  562. langflow/frontend/assets/file-chart-column-increasing-CjmOhC2Q.js +6 -0
  563. langflow/frontend/assets/file-chart-line-BX-_oQCE.js +6 -0
  564. langflow/frontend/assets/file-chart-pie-5nag0vkd.js +6 -0
  565. langflow/frontend/assets/file-check-2-BTUoLNz9.js +6 -0
  566. langflow/frontend/assets/file-check-D9hDZV8X.js +6 -0
  567. langflow/frontend/assets/file-clock-D_09GQxt.js +6 -0
  568. langflow/frontend/assets/file-code-2-CB3TF1G-.js +6 -0
  569. langflow/frontend/assets/file-code-CEgJVFh9.js +6 -0
  570. langflow/frontend/assets/file-cog-DT5G-cYm.js +6 -0
  571. langflow/frontend/assets/file-diff-B6wstDcv.js +6 -0
  572. langflow/frontend/assets/file-digit-ChjooC_Z.js +6 -0
  573. langflow/frontend/assets/file-down-D2Hbggau.js +6 -0
  574. langflow/frontend/assets/file-heart-CSkk32RC.js +6 -0
  575. langflow/frontend/assets/file-image-DM-X9kMa.js +6 -0
  576. langflow/frontend/assets/file-input-DWVQYKs3.js +6 -0
  577. langflow/frontend/assets/file-json-2-BPi6FqL_.js +6 -0
  578. langflow/frontend/assets/file-json-LO0J2fpy.js +6 -0
  579. langflow/frontend/assets/file-key-2-BAVsdd6b.js +6 -0
  580. langflow/frontend/assets/file-key-gwEFc9qd.js +6 -0
  581. langflow/frontend/assets/file-lock-2-OwNs7osk.js +6 -0
  582. langflow/frontend/assets/file-lock-B_nwbYIr.js +6 -0
  583. langflow/frontend/assets/file-minus-2-SyKupTJZ.js +6 -0
  584. langflow/frontend/assets/file-minus-Cx6XjI_H.js +6 -0
  585. langflow/frontend/assets/file-music-C06ICT1X.js +6 -0
  586. langflow/frontend/assets/file-output-DP6B6Izm.js +6 -0
  587. langflow/frontend/assets/file-pen-BkmBlbWf.js +6 -0
  588. langflow/frontend/assets/file-pen-line-XUIVz2a2.js +6 -0
  589. langflow/frontend/assets/file-plus-2-BjJ1IaMe.js +6 -0
  590. langflow/frontend/assets/file-plus-V8HbTuF6.js +6 -0
  591. langflow/frontend/assets/file-question-C61Jge0o.js +6 -0
  592. langflow/frontend/assets/file-scan-Bj9BaLKz.js +6 -0
  593. langflow/frontend/assets/file-search-2-DVW_oElP.js +6 -0
  594. langflow/frontend/assets/file-search-BC0HBhJx.js +6 -0
  595. langflow/frontend/assets/file-sliders-Dvga08kf.js +6 -0
  596. langflow/frontend/assets/file-spreadsheet-DJr9_BW_.js +6 -0
  597. langflow/frontend/assets/file-stack-CCz1efXY.js +6 -0
  598. langflow/frontend/assets/file-symlink-D3T4NEpp.js +6 -0
  599. langflow/frontend/assets/file-terminal-CqSLK1Bh.js +6 -0
  600. langflow/frontend/assets/file-text-SSwK0T3f.js +6 -0
  601. langflow/frontend/assets/file-type-2-B9Qp51Lk.js +6 -0
  602. langflow/frontend/assets/file-type-sZFRySwk.js +6 -0
  603. langflow/frontend/assets/file-up-DTGyJZ9X.js +6 -0
  604. langflow/frontend/assets/file-user-DOUMGTUH.js +6 -0
  605. langflow/frontend/assets/file-video-2-BfIoI2FU.js +6 -0
  606. langflow/frontend/assets/file-video-DOahgVhe.js +6 -0
  607. langflow/frontend/assets/file-volume-2-D1nSeMgN.js +6 -0
  608. langflow/frontend/assets/file-volume-Bnsw4iEq.js +6 -0
  609. langflow/frontend/assets/file-warning-B-L2qrJJ.js +6 -0
  610. langflow/frontend/assets/file-x-2-BUU_8VYU.js +6 -0
  611. langflow/frontend/assets/file-x-DMtyVTKN.js +6 -0
  612. langflow/frontend/assets/files-BEnw0MB1.js +6 -0
  613. langflow/frontend/assets/film-BnO_JjTH.js +6 -0
  614. langflow/frontend/assets/fingerprint-Bz6sBAZC.js +6 -0
  615. langflow/frontend/assets/fire-extinguisher-_dimxvP7.js +6 -0
  616. langflow/frontend/assets/fish-D-B3EWCq.js +6 -0
  617. langflow/frontend/assets/fish-off-B_WFFHCL.js +6 -0
  618. langflow/frontend/assets/fish-symbol-D2TncWpP.js +6 -0
  619. langflow/frontend/assets/flag-CeM4lkYw.js +6 -0
  620. langflow/frontend/assets/flag-off-C08dVCnP.js +6 -0
  621. langflow/frontend/assets/flag-triangle-left-w5YQmAx-.js +6 -0
  622. langflow/frontend/assets/flag-triangle-right-D7BvJEm_.js +6 -0
  623. langflow/frontend/assets/flame-DDIhChvH.js +6 -0
  624. langflow/frontend/assets/flame-kindling-B4pdekHu.js +6 -0
  625. langflow/frontend/assets/flashlight-Bzn6xTeX.js +6 -0
  626. langflow/frontend/assets/flashlight-off-DMJ3cVj9.js +6 -0
  627. langflow/frontend/assets/flask-conical-NqyvhCqn.js +6 -0
  628. langflow/frontend/assets/flask-conical-off-BB5AMezW.js +6 -0
  629. langflow/frontend/assets/flask-round-DXHLeiFR.js +6 -0
  630. langflow/frontend/assets/flip-horizontal-2-Cn5VUcu0.js +6 -0
  631. langflow/frontend/assets/flip-horizontal-Mw6HKNWR.js +6 -0
  632. langflow/frontend/assets/flip-vertical-2-ICzNB_eQ.js +6 -0
  633. langflow/frontend/assets/flip-vertical-DgllUH7w.js +6 -0
  634. langflow/frontend/assets/flower-2-Csk20Bdv.js +6 -0
  635. langflow/frontend/assets/flower-DzIZK9Y4.js +6 -0
  636. langflow/frontend/assets/focus-DP1-SWuy.js +6 -0
  637. langflow/frontend/assets/fold-horizontal-C3Ptr0Zq.js +6 -0
  638. langflow/frontend/assets/fold-vertical-B17Oi5Bs.js +6 -0
  639. langflow/frontend/assets/folder-DSCNIB5K.js +6 -0
  640. langflow/frontend/assets/folder-archive-DBPT54uL.js +6 -0
  641. langflow/frontend/assets/folder-check-D0jhdnPr.js +6 -0
  642. langflow/frontend/assets/folder-clock-DFc575cl.js +6 -0
  643. langflow/frontend/assets/folder-closed-DJg_if5c.js +6 -0
  644. langflow/frontend/assets/folder-code-CLN12DPE.js +6 -0
  645. langflow/frontend/assets/folder-cog-kVESSZel.js +6 -0
  646. langflow/frontend/assets/folder-dot-zS5i2R3S.js +6 -0
  647. langflow/frontend/assets/folder-down-2nsFr_MH.js +6 -0
  648. langflow/frontend/assets/folder-git-2-55-a4IkI.js +6 -0
  649. langflow/frontend/assets/folder-git-CFbmcHAw.js +6 -0
  650. langflow/frontend/assets/folder-heart-CeYb5QQy.js +6 -0
  651. langflow/frontend/assets/folder-input-BdDyaI9Z.js +6 -0
  652. langflow/frontend/assets/folder-kanban-BNq1jk1I.js +6 -0
  653. langflow/frontend/assets/folder-key-BBYtvh4G.js +6 -0
  654. langflow/frontend/assets/folder-lock-DJKgkJnh.js +6 -0
  655. langflow/frontend/assets/folder-minus-CTArSyQX.js +6 -0
  656. langflow/frontend/assets/folder-open-HtSGy6Lj.js +6 -0
  657. langflow/frontend/assets/folder-open-dot-DaTOMmdB.js +6 -0
  658. langflow/frontend/assets/folder-output-D2ew_JFg.js +6 -0
  659. langflow/frontend/assets/folder-pen-BPCrthAz.js +6 -0
  660. langflow/frontend/assets/folder-plus-vpyAVBeW.js +6 -0
  661. langflow/frontend/assets/folder-root-BqUvF0r2.js +6 -0
  662. langflow/frontend/assets/folder-search-2-0LbceT3a.js +6 -0
  663. langflow/frontend/assets/folder-search-SjkLcz8G.js +6 -0
  664. langflow/frontend/assets/folder-symlink-CragaJBp.js +6 -0
  665. langflow/frontend/assets/folder-sync-BInaBBeH.js +6 -0
  666. langflow/frontend/assets/folder-tree-Iu0vPXr4.js +6 -0
  667. langflow/frontend/assets/folder-up-Bfzgvge6.js +6 -0
  668. langflow/frontend/assets/folder-x-bc97dLik.js +6 -0
  669. langflow/frontend/assets/folders-CZ1zEIjd.js +6 -0
  670. langflow/frontend/assets/footprints-D9M-34ri.js +6 -0
  671. langflow/frontend/assets/forklift-CsIR98Ms.js +6 -0
  672. langflow/frontend/assets/forward-3I59E7Fy.js +6 -0
  673. langflow/frontend/assets/frame-C8G4dRQz.js +6 -0
  674. langflow/frontend/assets/framer-Cez8yoon.js +6 -0
  675. langflow/frontend/assets/frown-DnV7arls.js +6 -0
  676. langflow/frontend/assets/fuel-1IC2KN9s.js +6 -0
  677. langflow/frontend/assets/fullscreen-BIIfu1mc.js +6 -0
  678. langflow/frontend/assets/funnel-DG_od6SB.js +6 -0
  679. langflow/frontend/assets/funnel-plus-OFVpTTvC.js +6 -0
  680. langflow/frontend/assets/funnel-x-ay2bD3_s.js +6 -0
  681. langflow/frontend/assets/gallery-horizontal-Cvi7NSTd.js +6 -0
  682. langflow/frontend/assets/gallery-horizontal-end-vJJPGWCt.js +6 -0
  683. langflow/frontend/assets/gallery-thumbnails-DlXWMv1p.js +6 -0
  684. langflow/frontend/assets/gallery-vertical-a8Jyxi_p.js +6 -0
  685. langflow/frontend/assets/gallery-vertical-end-CMWLOB_f.js +6 -0
  686. langflow/frontend/assets/gamepad-2-C1zSn0TD.js +6 -0
  687. langflow/frontend/assets/gamepad-P3E-0Ns2.js +6 -0
  688. langflow/frontend/assets/gauge-BMzL79Qk.js +6 -0
  689. langflow/frontend/assets/gavel-B2i9AmnT.js +6 -0
  690. langflow/frontend/assets/gem-F9gxK_zc.js +6 -0
  691. langflow/frontend/assets/ghost-C0SXQBJG.js +6 -0
  692. langflow/frontend/assets/gift-CoUizwey.js +6 -0
  693. langflow/frontend/assets/git-branch-Tm-OEeaD.js +6 -0
  694. langflow/frontend/assets/git-branch-plus-udwFcHam.js +6 -0
  695. langflow/frontend/assets/git-commit-horizontal-DbwyFWSA.js +6 -0
  696. langflow/frontend/assets/git-commit-vertical-BMZ-MkLo.js +6 -0
  697. langflow/frontend/assets/git-compare-DxXf-Nmi.js +6 -0
  698. langflow/frontend/assets/git-compare-arrows-C-UEejMo.js +6 -0
  699. langflow/frontend/assets/git-fork-Cc6VyW4u.js +6 -0
  700. langflow/frontend/assets/git-graph-mHVxImWH.js +6 -0
  701. langflow/frontend/assets/git-merge-MAjqL1AU.js +6 -0
  702. langflow/frontend/assets/git-pull-request-Dum4_jcC.js +6 -0
  703. langflow/frontend/assets/git-pull-request-arrow-BN4doaTn.js +6 -0
  704. langflow/frontend/assets/git-pull-request-closed-1zh34VPj.js +6 -0
  705. langflow/frontend/assets/git-pull-request-create-CRF_fbig.js +6 -0
  706. langflow/frontend/assets/git-pull-request-create-arrow-CWvDWpPi.js +6 -0
  707. langflow/frontend/assets/git-pull-request-draft-HTr4dLLz.js +6 -0
  708. langflow/frontend/assets/github-BJyHei_1.js +6 -0
  709. langflow/frontend/assets/gitlab-C2lr1S6L.js +6 -0
  710. langflow/frontend/assets/glass-water-68FWmdkX.js +6 -0
  711. langflow/frontend/assets/glasses-ySWouumi.js +6 -0
  712. langflow/frontend/assets/globe-Cn4MGVnY.js +6 -0
  713. langflow/frontend/assets/globe-lock-BWnl5bEO.js +6 -0
  714. langflow/frontend/assets/goal-B0g9NGEc.js +6 -0
  715. langflow/frontend/assets/grab-6WZBsqmq.js +6 -0
  716. langflow/frontend/assets/graduation-cap-Dustf1oJ.js +6 -0
  717. langflow/frontend/assets/grape-RY6Jb_8r.js +6 -0
  718. langflow/frontend/assets/grid-2x2-Bs_RKdT8.js +6 -0
  719. langflow/frontend/assets/grid-2x2-check-DwGLTMUG.js +6 -0
  720. langflow/frontend/assets/grid-2x2-plus-SZG4344H.js +6 -0
  721. langflow/frontend/assets/grid-2x2-x-V2D6GFzk.js +6 -0
  722. langflow/frontend/assets/grid-3x3-BqmWZQ75.js +6 -0
  723. langflow/frontend/assets/grip-4CYi2-cF.js +6 -0
  724. langflow/frontend/assets/grip-horizontal-DSfCabKE.js +6 -0
  725. langflow/frontend/assets/grip-vertical-EptrvT2w.js +6 -0
  726. langflow/frontend/assets/group-DoP8mGv_.js +6 -0
  727. langflow/frontend/assets/guitar-CHAg8ELW.js +6 -0
  728. langflow/frontend/assets/ham-CpzDDlxe.js +6 -0
  729. langflow/frontend/assets/hammer-ClNrd_cg.js +6 -0
  730. langflow/frontend/assets/hand-TJtpkRVO.js +6 -0
  731. langflow/frontend/assets/hand-coins-Cju9MBKM.js +6 -0
  732. langflow/frontend/assets/hand-heart-Bx8xbQ-b.js +6 -0
  733. langflow/frontend/assets/hand-helping-Dogu0Qok.js +6 -0
  734. langflow/frontend/assets/hand-metal-RBrNntuo.js +6 -0
  735. langflow/frontend/assets/hand-platter-DdfAC9Gs.js +6 -0
  736. langflow/frontend/assets/handshake-DpadS0jS.js +6 -0
  737. langflow/frontend/assets/hard-drive-D5wso_gM.js +6 -0
  738. langflow/frontend/assets/hard-drive-download-TzzVc5TF.js +6 -0
  739. langflow/frontend/assets/hard-drive-upload-DgaAaATA.js +6 -0
  740. langflow/frontend/assets/hard-hat-BhsoEIcy.js +6 -0
  741. langflow/frontend/assets/hash-C3QQzDS4.js +6 -0
  742. langflow/frontend/assets/haze-BE1QDFAD.js +6 -0
  743. langflow/frontend/assets/hdmi-port-B5BeHYFY.js +6 -0
  744. langflow/frontend/assets/heading-1-qmZBowHO.js +6 -0
  745. langflow/frontend/assets/heading-2-DjAipB3a.js +6 -0
  746. langflow/frontend/assets/heading-3-naSk7JbM.js +6 -0
  747. langflow/frontend/assets/heading-4-DWqLAApD.js +6 -0
  748. langflow/frontend/assets/heading-5-CzcTdWR4.js +6 -0
  749. langflow/frontend/assets/heading-6-DuXxICD9.js +6 -0
  750. langflow/frontend/assets/heading-DnIj_1aK.js +6 -0
  751. langflow/frontend/assets/headphone-off-0ZC0rndC.js +6 -0
  752. langflow/frontend/assets/headphones-Dje985kL.js +6 -0
  753. langflow/frontend/assets/headset-D-H0-VzY.js +6 -0
  754. langflow/frontend/assets/heart-B-QZKinP.js +6 -0
  755. langflow/frontend/assets/heart-crack-By31MeoG.js +6 -0
  756. langflow/frontend/assets/heart-handshake-CnoRJxP5.js +6 -0
  757. langflow/frontend/assets/heart-minus-CGG7k0Hy.js +6 -0
  758. langflow/frontend/assets/heart-off-CwPr8U0u.js +6 -0
  759. langflow/frontend/assets/heart-plus-CEFwSjki.js +6 -0
  760. langflow/frontend/assets/heart-pulse-BkbD6U8n.js +6 -0
  761. langflow/frontend/assets/heater-B4DmajOE.js +6 -0
  762. langflow/frontend/assets/hexagon-YMRZELSi.js +6 -0
  763. langflow/frontend/assets/highlighter-CoVbJEhg.js +6 -0
  764. langflow/frontend/assets/history-BGUyCLxM.js +6 -0
  765. langflow/frontend/assets/hop-CwRKI5Yq.js +6 -0
  766. langflow/frontend/assets/hop-off-eRliCZLm.js +6 -0
  767. langflow/frontend/assets/hospital-BEiAMbR_.js +6 -0
  768. langflow/frontend/assets/hotel-FOdonM5d.js +6 -0
  769. langflow/frontend/assets/hourglass-rYqENcWc.js +6 -0
  770. langflow/frontend/assets/house-BZHXPxdI.js +6 -0
  771. langflow/frontend/assets/house-plug-Dur9r8fl.js +6 -0
  772. langflow/frontend/assets/house-plus-z5c1ZGAu.js +6 -0
  773. langflow/frontend/assets/house-wifi-D5S7y7D_.js +6 -0
  774. langflow/frontend/assets/ice-cream-bowl-pKPfDKGn.js +6 -0
  775. langflow/frontend/assets/ice-cream-cone-LiY37lDD.js +6 -0
  776. langflow/frontend/assets/id-card-DZt7XCTV.js +6 -0
  777. langflow/frontend/assets/image-dT6JUgoL.js +6 -0
  778. langflow/frontend/assets/image-down-DSTS8lKT.js +6 -0
  779. langflow/frontend/assets/image-minus-DwD_zuJT.js +6 -0
  780. langflow/frontend/assets/image-off-qt2UvLOa.js +6 -0
  781. langflow/frontend/assets/image-play-Kqd_yNO1.js +6 -0
  782. langflow/frontend/assets/image-plus-Su7wXO-U.js +6 -0
  783. langflow/frontend/assets/image-up-IIEasEi6.js +6 -0
  784. langflow/frontend/assets/image-upscale-DNiP73zU.js +6 -0
  785. langflow/frontend/assets/images-_A--hagq.js +6 -0
  786. langflow/frontend/assets/import-1lkBsxMl.js +6 -0
  787. langflow/frontend/assets/inbox-DyxkEQv2.js +6 -0
  788. langflow/frontend/assets/indent-decrease-ShIJZXI6.js +6 -0
  789. langflow/frontend/assets/indent-increase-B_mPf6h5.js +6 -0
  790. langflow/frontend/assets/index--HiR8-eZ.js +1 -0
  791. langflow/frontend/assets/index--Yrf1V2T.js +1 -0
  792. langflow/frontend/assets/index-1-CP43KV.js +1 -0
  793. langflow/frontend/assets/index-11WvuS7Y.js +1 -0
  794. langflow/frontend/assets/index-2FDSX9Nc.js +1 -0
  795. langflow/frontend/assets/index-3wxXBlGZ.js +1 -0
  796. langflow/frontend/assets/index-5Z52W5Dd.js +1 -0
  797. langflow/frontend/assets/index-7zdNiGgW.js +1 -0
  798. langflow/frontend/assets/index-8Jj6xxR1.js +1 -0
  799. langflow/frontend/assets/index-8z9vJ-8q.js +1 -0
  800. langflow/frontend/assets/index-9gRoaK6J.js +1 -0
  801. langflow/frontend/assets/index-ASDdcGz8.js +1 -0
  802. langflow/frontend/assets/index-B-cdJsaQ.js +1 -0
  803. langflow/frontend/assets/index-B-ftxeVD.js +1 -0
  804. langflow/frontend/assets/index-B1yKxFsA.js +1 -0
  805. langflow/frontend/assets/index-B2QD5M4r.js +1 -0
  806. langflow/frontend/assets/index-B8SINqGZ.js +1 -0
  807. langflow/frontend/assets/index-B9Mno8b6.js +1 -0
  808. langflow/frontend/assets/index-BA0IHRtF.js +1 -0
  809. langflow/frontend/assets/index-BAC-iwYd.js +1 -0
  810. langflow/frontend/assets/index-BDx900Mw.js +1 -0
  811. langflow/frontend/assets/index-BGEPkv1W.js +1 -0
  812. langflow/frontend/assets/index-BIm5oDqO.js +1 -0
  813. langflow/frontend/assets/index-BL5-G87X.js +1 -0
  814. langflow/frontend/assets/index-BLnNz9vi.js +1 -0
  815. langflow/frontend/assets/index-BMtrBSb3.js +1 -0
  816. langflow/frontend/assets/index-BNOfzL9e.js +1 -0
  817. langflow/frontend/assets/index-BO3fZrkA.js +1 -0
  818. langflow/frontend/assets/index-BPBrD8il.js +185 -0
  819. langflow/frontend/assets/index-BPKV1cxI.js +1 -0
  820. langflow/frontend/assets/index-BPyLIbW3.js +1 -0
  821. langflow/frontend/assets/index-BPzTZ_bf.js +1 -0
  822. langflow/frontend/assets/index-BRJu089j.js +1 -0
  823. langflow/frontend/assets/index-BViwL0ae.js +1 -0
  824. langflow/frontend/assets/index-BWNdJYJL.js +1 -0
  825. langflow/frontend/assets/index-BZvoKkta.js +1 -0
  826. langflow/frontend/assets/index-BaKQz2aA.js +1 -0
  827. langflow/frontend/assets/index-BbNE-kUS.js +1 -0
  828. langflow/frontend/assets/index-Bbt15yxt.js +1 -0
  829. langflow/frontend/assets/index-BdlBwNUA.js +1 -0
  830. langflow/frontend/assets/index-Bdm5NArJ.js +1 -0
  831. langflow/frontend/assets/index-BfC38KQ8.js +1 -0
  832. langflow/frontend/assets/index-BfSmE6M4.js +1 -0
  833. langflow/frontend/assets/index-Bfl9LqAR.js +1 -0
  834. langflow/frontend/assets/index-BiWb3QMq.js +1 -0
  835. langflow/frontend/assets/index-BjWdeeAi.js +1 -0
  836. langflow/frontend/assets/index-BnN2_ovy.js +1 -0
  837. langflow/frontend/assets/index-BoGS-56X.js +1 -0
  838. langflow/frontend/assets/index-Bpaer_Lo.js +1 -0
  839. langflow/frontend/assets/index-BrL7nUYz.js +1 -0
  840. langflow/frontend/assets/index-BrxoWNy4.js +1 -0
  841. langflow/frontend/assets/index-Bs8o6jVP.js +1 -0
  842. langflow/frontend/assets/index-Bt9xhVBl.js +1 -0
  843. langflow/frontend/assets/index-BtqQb5Jl.js +1 -0
  844. langflow/frontend/assets/index-BvIjYGp8.js +1 -0
  845. langflow/frontend/assets/index-BvWJ7k7v.js +1 -0
  846. langflow/frontend/assets/index-BzU1yvgq.js +1 -0
  847. langflow/frontend/assets/index-Bzjciw0q.js +1 -0
  848. langflow/frontend/assets/index-C0BKnrGK.js +1 -0
  849. langflow/frontend/assets/index-C1RV_K7-.js +1 -0
  850. langflow/frontend/assets/index-C3yWUx5b.js +108 -0
  851. langflow/frontend/assets/index-C5Ck1mXL.js +1 -0
  852. langflow/frontend/assets/index-C5ZSa5rC.js +1 -0
  853. langflow/frontend/assets/index-C5fntoNZ.js +1 -0
  854. langflow/frontend/assets/index-C9cpvqsx.js +1 -0
  855. langflow/frontend/assets/index-CBgeLgWM.css +1 -0
  856. langflow/frontend/assets/index-CCF2Ji2I.js +1 -0
  857. langflow/frontend/assets/index-CDzHn87R.js +1 -0
  858. langflow/frontend/assets/index-CEoBDx-c.js +127 -0
  859. langflow/frontend/assets/index-CHcwgMF_.js +1 -0
  860. langflow/frontend/assets/index-CInVZzjb.js +1 -0
  861. langflow/frontend/assets/index-CJVeqrXp.js +1 -0
  862. langflow/frontend/assets/index-CJtIOcc1.js +1 -0
  863. langflow/frontend/assets/index-CM4obvu2.js +1 -0
  864. langflow/frontend/assets/index-CMs8ibqU.js +1 -0
  865. langflow/frontend/assets/index-CN3vZ2Hx.js +1 -0
  866. langflow/frontend/assets/index-CNwkIMrO.js +1 -0
  867. langflow/frontend/assets/index-CU8YV4tT.js +1 -0
  868. langflow/frontend/assets/index-CUTJnvCp.js +1 -0
  869. langflow/frontend/assets/index-CUkKHexR.js +399 -0
  870. langflow/frontend/assets/index-CUoF14Zx.js +1 -0
  871. langflow/frontend/assets/index-CWpcWm4D.js +1 -0
  872. langflow/frontend/assets/index-CYuR-MHI.js +1 -0
  873. langflow/frontend/assets/index-CZ22qtOd.js +1 -0
  874. langflow/frontend/assets/index-CZskcnAw.js +1 -0
  875. langflow/frontend/assets/index-C_JFZ5Cm.js +1 -0
  876. langflow/frontend/assets/index-CbQW_rUH.js +1 -0
  877. langflow/frontend/assets/index-CbTS2vc9.js +1 -0
  878. langflow/frontend/assets/index-Cbhu2m9p.js +1 -0
  879. langflow/frontend/assets/index-Cc_vHz0W.js +1 -0
  880. langflow/frontend/assets/index-CeEIYFNV.js +1 -0
  881. langflow/frontend/assets/index-CfNAq-8B.js +1 -0
  882. langflow/frontend/assets/index-CgLgnifu.js +1 -0
  883. langflow/frontend/assets/index-CgP9f3Tf.js +1 -0
  884. langflow/frontend/assets/index-ChOIrFmB.js +1 -0
  885. langflow/frontend/assets/index-Chn6k-Ac.js +1 -0
  886. langflow/frontend/assets/index-CjltcfkP.js +1 -0
  887. langflow/frontend/assets/index-CmiA48ev.js +1 -0
  888. langflow/frontend/assets/index-CpybjnUU.js +1 -0
  889. langflow/frontend/assets/index-Cq-sC6Qj.js +1 -0
  890. langflow/frontend/assets/index-Cq4f0e7x.js +1 -0
  891. langflow/frontend/assets/index-Cqfjx9Ot.js +1 -0
  892. langflow/frontend/assets/index-CucLaa5i.js +7322 -0
  893. langflow/frontend/assets/index-Cw9FUuuH.js +21 -0
  894. langflow/frontend/assets/index-Cwc-_hhU.js +1 -0
  895. langflow/frontend/assets/index-CyNA6rK5.js +1 -0
  896. langflow/frontend/assets/index-CyPoKLGG.js +1 -0
  897. langflow/frontend/assets/index-D-HjvNIb.js +7 -0
  898. langflow/frontend/assets/index-D1vXyPbO.js +1 -0
  899. langflow/frontend/assets/index-D2fy8Hbp.js +1 -0
  900. langflow/frontend/assets/index-D3-BoVDH.js +1 -0
  901. langflow/frontend/assets/index-D7fEEVb-.js +1 -0
  902. langflow/frontend/assets/index-D9eS83vv.js +1 -0
  903. langflow/frontend/assets/index-DAa99Uyl.js +1 -0
  904. langflow/frontend/assets/index-DAvQEULV.js +1 -0
  905. langflow/frontend/assets/index-DBp4U8vs.js +1 -0
  906. langflow/frontend/assets/index-DCLckSfi.js +1 -0
  907. langflow/frontend/assets/index-DFOyKoem.js +1 -0
  908. langflow/frontend/assets/index-DH-Koual.js +1 -0
  909. langflow/frontend/assets/index-DHYrhZM3.js +1 -0
  910. langflow/frontend/assets/index-DID-Zf-m.js +281 -0
  911. langflow/frontend/assets/index-DItjJGhS.js +1 -0
  912. langflow/frontend/assets/index-DJV0dcXU.js +1 -0
  913. langflow/frontend/assets/index-DLpn6jT5.js +1 -0
  914. langflow/frontend/assets/index-DO9krwyr.js +1 -0
  915. langflow/frontend/assets/index-DOeY8U9w.js +1 -0
  916. langflow/frontend/assets/index-DPOTsJbx.js +1 -0
  917. langflow/frontend/assets/index-DTRNviWO.js +1 -0
  918. langflow/frontend/assets/index-DXLkMEx7.js +1 -0
  919. langflow/frontend/assets/index-DXjipMdc.js +1 -0
  920. langflow/frontend/assets/index-D_jiuV-h.js +1 -0
  921. langflow/frontend/assets/index-Da4mZ3MU.js +1 -0
  922. langflow/frontend/assets/index-DaMrOlf8.js +1 -0
  923. langflow/frontend/assets/index-DcjOBFGn.js +1 -0
  924. langflow/frontend/assets/index-De58N2lH.js +205 -0
  925. langflow/frontend/assets/index-DfbXQ6RE.js +1 -0
  926. langflow/frontend/assets/index-Dhp9HphX.js +1 -0
  927. langflow/frontend/assets/index-DiNdd3f4.js +1 -0
  928. langflow/frontend/assets/index-DjyPmdlP.js +1 -0
  929. langflow/frontend/assets/index-DkrvPOc8.js +1 -0
  930. langflow/frontend/assets/index-DmrfHj6w.js +1 -0
  931. langflow/frontend/assets/index-Dn52Fdn7.js +1 -0
  932. langflow/frontend/assets/index-Dn5zvoNc.js +1 -0
  933. langflow/frontend/assets/index-DnkvQDVL.js +1 -0
  934. langflow/frontend/assets/index-DqPPYmz-.js +1 -0
  935. langflow/frontend/assets/index-DqYCgDoU.js +1 -0
  936. langflow/frontend/assets/index-Ds1cJ0-1.js +1 -0
  937. langflow/frontend/assets/index-DugDO7ZW.js +1 -0
  938. langflow/frontend/assets/index-Dx739uFZ.js +381 -0
  939. langflow/frontend/assets/index-Dyu-qh-z.js +1 -0
  940. langflow/frontend/assets/index-EK9FybII.js +1 -0
  941. langflow/frontend/assets/index-FC61DlvI.js +13 -0
  942. langflow/frontend/assets/index-Fr-BUYIe.js +20 -0
  943. langflow/frontend/assets/index-INRWF8lf.js +1 -0
  944. langflow/frontend/assets/index-N29Qubl8.js +1 -0
  945. langflow/frontend/assets/index-N_Op8ThT.js +1 -0
  946. langflow/frontend/assets/index-NuEUTtS6.js +1 -0
  947. langflow/frontend/assets/index-Ox8d44yp.js +1 -0
  948. langflow/frontend/assets/index-QkGn-zsF.js +1 -0
  949. langflow/frontend/assets/index-WJpadaMu.js +1 -0
  950. langflow/frontend/assets/index-YhXbk0Cl.js +1 -0
  951. langflow/frontend/assets/index-ZS4D4wBI.js +1 -0
  952. langflow/frontend/assets/index-ZlsJLQMV.js +1 -0
  953. langflow/frontend/assets/index-a2XY6qWX.js +1 -0
  954. langflow/frontend/assets/index-byj8jgUp.js +1 -0
  955. langflow/frontend/assets/index-eGDwByST.js +1 -0
  956. langflow/frontend/assets/index-emQICwFY.js +1 -0
  957. langflow/frontend/assets/index-fcuokN6I.js +495 -0
  958. langflow/frontend/assets/index-hPRP_abj.js +1 -0
  959. langflow/frontend/assets/index-jm0dGGuD.js +1 -0
  960. langflow/frontend/assets/index-mgpfv3an.js +2 -0
  961. langflow/frontend/assets/index-oYQVRY6w.js +1 -0
  962. langflow/frontend/assets/index-oj6LwcQF.js +1 -0
  963. langflow/frontend/assets/index-pFIVle3u.js +767 -0
  964. langflow/frontend/assets/index-pFo4WiRK.js +1 -0
  965. langflow/frontend/assets/index-qogxpcyN.js +1 -0
  966. langflow/frontend/assets/index-slpPBwR7.js +1 -0
  967. langflow/frontend/assets/index-t0KSWjS3.js +1 -0
  968. langflow/frontend/assets/index-tMu_OgYD.js +1 -0
  969. langflow/frontend/assets/index-tRnj7vKj.js +1 -0
  970. langflow/frontend/assets/index-thz88Vwg.js +1 -0
  971. langflow/frontend/assets/index-w2QmN1_F.js +1 -0
  972. langflow/frontend/assets/index-ynE4GBQc.js +1 -0
  973. langflow/frontend/assets/index-zcIco6gA.js +1 -0
  974. langflow/frontend/assets/indian-rupee-BVd8BGbQ.js +6 -0
  975. langflow/frontend/assets/infinity-C0YwWgky.js +6 -0
  976. langflow/frontend/assets/info-wzQrs_q_.js +6 -0
  977. langflow/frontend/assets/inspection-panel-Dy84IYro.js +6 -0
  978. langflow/frontend/assets/instagram-B0Ovhh_x.js +6 -0
  979. langflow/frontend/assets/italic-B9qv3nTG.js +6 -0
  980. langflow/frontend/assets/iteration-ccw-CqRlMZZk.js +6 -0
  981. langflow/frontend/assets/iteration-cw-S6Z7R-Hc.js +6 -0
  982. langflow/frontend/assets/japanese-yen-D1rCIe9r.js +6 -0
  983. langflow/frontend/assets/joystick-JlWSJV8Y.js +6 -0
  984. langflow/frontend/assets/kanban-Dh8ChpGE.js +6 -0
  985. langflow/frontend/assets/key-CW8g6jC7.js +6 -0
  986. langflow/frontend/assets/key-round-CIzwEgzo.js +6 -0
  987. langflow/frontend/assets/key-square-DhzkPMcs.js +6 -0
  988. langflow/frontend/assets/keyboard-Cu54BPlj.js +6 -0
  989. langflow/frontend/assets/keyboard-music--1VNS74Q.js +6 -0
  990. langflow/frontend/assets/keyboard-off-BL1i8t7b.js +6 -0
  991. langflow/frontend/assets/lamp-DnkxiEof.js +6 -0
  992. langflow/frontend/assets/lamp-ceiling-G9cxprMh.js +6 -0
  993. langflow/frontend/assets/lamp-desk-DisaiFcH.js +6 -0
  994. langflow/frontend/assets/lamp-floor-DayWMad8.js +6 -0
  995. langflow/frontend/assets/lamp-wall-down-DQru5rWt.js +6 -0
  996. langflow/frontend/assets/lamp-wall-up-CUuCGWLj.js +6 -0
  997. langflow/frontend/assets/land-plot-CS9SP9kk.js +6 -0
  998. langflow/frontend/assets/landmark-D6XeW7sP.js +6 -0
  999. langflow/frontend/assets/languages-DSzNNYZH.js +6 -0
  1000. langflow/frontend/assets/laptop-DhnDVBC1.js +6 -0
  1001. langflow/frontend/assets/laptop-minimal-CrYSA6Ch.js +6 -0
  1002. langflow/frontend/assets/laptop-minimal-check-B9hh7mq5.js +6 -0
  1003. langflow/frontend/assets/lasso-BT3JP9B2.js +6 -0
  1004. langflow/frontend/assets/lasso-select-DTJEnE6D.js +6 -0
  1005. langflow/frontend/assets/laugh-D94G0YXY.js +6 -0
  1006. langflow/frontend/assets/layers-2-36AjYJft.js +6 -0
  1007. langflow/frontend/assets/layers-6eoqh9TQ.js +6 -0
  1008. langflow/frontend/assets/layout-dashboard-BSLyLSSD.js +6 -0
  1009. langflow/frontend/assets/layout-grid-B6nzyq22.js +6 -0
  1010. langflow/frontend/assets/layout-list-D6k8bM7q.js +6 -0
  1011. langflow/frontend/assets/layout-panel-left-DT-QFQPd.js +6 -0
  1012. langflow/frontend/assets/layout-panel-top-BGFfuR6d.js +6 -0
  1013. langflow/frontend/assets/layout-template-BxESk9Bt.js +6 -0
  1014. langflow/frontend/assets/lazyIconImports-BvOy0_CA.js +2 -0
  1015. langflow/frontend/assets/leaf-D07BUGPV.js +6 -0
  1016. langflow/frontend/assets/leafy-green-DjcNMI_X.js +6 -0
  1017. langflow/frontend/assets/lectern-C9LjfO6a.js +6 -0
  1018. langflow/frontend/assets/letter-text-BGn4nSkb.js +6 -0
  1019. langflow/frontend/assets/library-C-IrBa0T.js +6 -0
  1020. langflow/frontend/assets/library-big-CAl8sTzK.js +6 -0
  1021. langflow/frontend/assets/life-buoy-CMiBSE0q.js +6 -0
  1022. langflow/frontend/assets/ligature-DbT9FZa5.js +6 -0
  1023. langflow/frontend/assets/lightbulb-BvhHtdU3.js +6 -0
  1024. langflow/frontend/assets/lightbulb-off-Bf_y_2UP.js +6 -0
  1025. langflow/frontend/assets/link-2-DpiPwxnG.js +6 -0
  1026. langflow/frontend/assets/link-2-off-Damb0wOV.js +6 -0
  1027. langflow/frontend/assets/link-WENaeLEj.js +6 -0
  1028. langflow/frontend/assets/linkedin-C7O4LKOP.js +6 -0
  1029. langflow/frontend/assets/list-BxjxrZEL.js +6 -0
  1030. langflow/frontend/assets/list-check-Bx7cD9l6.js +6 -0
  1031. langflow/frontend/assets/list-checks-DY4myxVW.js +6 -0
  1032. langflow/frontend/assets/list-collapse-DFPP4_yQ.js +6 -0
  1033. langflow/frontend/assets/list-end-DzQStgGo.js +6 -0
  1034. langflow/frontend/assets/list-filter-plus-CnxIwX_U.js +6 -0
  1035. langflow/frontend/assets/list-filter-wqzRG951.js +6 -0
  1036. langflow/frontend/assets/list-minus-AzLzOwxW.js +6 -0
  1037. langflow/frontend/assets/list-music-C8EuuypH.js +6 -0
  1038. langflow/frontend/assets/list-ordered-ffdkyWx-.js +6 -0
  1039. langflow/frontend/assets/list-plus-lE8Rc6Xx.js +6 -0
  1040. langflow/frontend/assets/list-restart-BQyWKKv4.js +6 -0
  1041. langflow/frontend/assets/list-start-ysvs6Xng.js +6 -0
  1042. langflow/frontend/assets/list-todo-CBtMYzQy.js +6 -0
  1043. langflow/frontend/assets/list-tree-SdEMqRbV.js +6 -0
  1044. langflow/frontend/assets/list-video-DArMvQOZ.js +6 -0
  1045. langflow/frontend/assets/list-x-C2aPG1bo.js +6 -0
  1046. langflow/frontend/assets/loader-DX-4qgGP.js +6 -0
  1047. langflow/frontend/assets/loader-circle-Cw_F5IHx.js +6 -0
  1048. langflow/frontend/assets/loader-pinwheel-ocGJQjHF.js +6 -0
  1049. langflow/frontend/assets/locate-Dwb7XG0m.js +6 -0
  1050. langflow/frontend/assets/locate-fixed-WEju5zfl.js +6 -0
  1051. langflow/frontend/assets/locate-off-G7Q08tB5.js +6 -0
  1052. langflow/frontend/assets/location-edit-BtmVwCnm.js +6 -0
  1053. langflow/frontend/assets/lock-1VAobtat.js +6 -0
  1054. langflow/frontend/assets/lock-keyhole-2bBfcZ9u.js +6 -0
  1055. langflow/frontend/assets/lock-keyhole-open-CMMjFMW-.js +6 -0
  1056. langflow/frontend/assets/lock-open-C7tPkJh_.js +6 -0
  1057. langflow/frontend/assets/log-in-CnmTNt1Q.js +6 -0
  1058. langflow/frontend/assets/log-out-8frlZyfF.js +6 -0
  1059. langflow/frontend/assets/logs-CUV2Co5Y.js +6 -0
  1060. langflow/frontend/assets/lollipop-_BhtLXCT.js +6 -0
  1061. langflow/frontend/assets/luggage-CuAeSs3F.js +6 -0
  1062. langflow/frontend/assets/magnet-D0WzZa9t.js +6 -0
  1063. langflow/frontend/assets/mail-D6d5SeFR.js +6 -0
  1064. langflow/frontend/assets/mail-check-BYD77LYi.js +6 -0
  1065. langflow/frontend/assets/mail-minus-C0JBf4fH.js +6 -0
  1066. langflow/frontend/assets/mail-open-ghjJer8F.js +6 -0
  1067. langflow/frontend/assets/mail-plus-Dxw0XCGR.js +6 -0
  1068. langflow/frontend/assets/mail-question-LiGQtPMD.js +6 -0
  1069. langflow/frontend/assets/mail-search-CqpO1Wa7.js +6 -0
  1070. langflow/frontend/assets/mail-warning-CABRyaSb.js +6 -0
  1071. langflow/frontend/assets/mail-x-DmYcgA6N.js +6 -0
  1072. langflow/frontend/assets/mailbox-DYYEkivH.js +6 -0
  1073. langflow/frontend/assets/mails-BJF6w9p5.js +6 -0
  1074. langflow/frontend/assets/map-b2X50Www.js +6 -0
  1075. langflow/frontend/assets/map-pin-CdgQuGLg.js +6 -0
  1076. langflow/frontend/assets/map-pin-check-_LhDrtDM.js +6 -0
  1077. langflow/frontend/assets/map-pin-check-inside-DZuvBne9.js +6 -0
  1078. langflow/frontend/assets/map-pin-house-CeoJhQaN.js +6 -0
  1079. langflow/frontend/assets/map-pin-minus-inside-DVHVXa8X.js +6 -0
  1080. langflow/frontend/assets/map-pin-minus-oy2YCeMM.js +6 -0
  1081. langflow/frontend/assets/map-pin-off-CSKR4KAV.js +6 -0
  1082. langflow/frontend/assets/map-pin-plus-I6mRGAHd.js +6 -0
  1083. langflow/frontend/assets/map-pin-plus-inside-DimWfrWB.js +6 -0
  1084. langflow/frontend/assets/map-pin-x-B3CBswXc.js +6 -0
  1085. langflow/frontend/assets/map-pin-x-inside-Bx7nBFg9.js +6 -0
  1086. langflow/frontend/assets/map-pinned-_L6tdSqT.js +6 -0
  1087. langflow/frontend/assets/map-plus-e3tT9bJU.js +6 -0
  1088. langflow/frontend/assets/mars-D3n6iNJU.js +6 -0
  1089. langflow/frontend/assets/mars-stroke-SDf1BZzI.js +6 -0
  1090. langflow/frontend/assets/martini-Cso2cAtV.js +6 -0
  1091. langflow/frontend/assets/maximize-2-DHSk0cTD.js +6 -0
  1092. langflow/frontend/assets/maximize-CnGcTGWN.js +6 -0
  1093. langflow/frontend/assets/medal-CokAx9vO.js +6 -0
  1094. langflow/frontend/assets/megaphone-BtVT_cX4.js +6 -0
  1095. langflow/frontend/assets/megaphone-off-BEuERoS9.js +6 -0
  1096. langflow/frontend/assets/meh-Bzp4iIbB.js +6 -0
  1097. langflow/frontend/assets/memory-stick-CSdTTmgS.js +6 -0
  1098. langflow/frontend/assets/menu-DsC61_-Q.js +6 -0
  1099. langflow/frontend/assets/merge-CbcoEUxh.js +6 -0
  1100. langflow/frontend/assets/message-circle-BKLI0JbG.js +6 -0
  1101. langflow/frontend/assets/message-circle-code-B0jhPYIY.js +6 -0
  1102. langflow/frontend/assets/message-circle-dashed-CHRMKyR1.js +6 -0
  1103. langflow/frontend/assets/message-circle-heart-MKsLRvX7.js +6 -0
  1104. langflow/frontend/assets/message-circle-more-nZPelT-C.js +6 -0
  1105. langflow/frontend/assets/message-circle-off-8_n6qwdh.js +6 -0
  1106. langflow/frontend/assets/message-circle-plus-DlTBBhSL.js +6 -0
  1107. langflow/frontend/assets/message-circle-question-C6h9XJR-.js +6 -0
  1108. langflow/frontend/assets/message-circle-reply-DF53vecc.js +6 -0
  1109. langflow/frontend/assets/message-circle-warning-_gVkfPhY.js +6 -0
  1110. langflow/frontend/assets/message-circle-x-DnMCvT9U.js +6 -0
  1111. langflow/frontend/assets/message-square-DUbvrTew.js +6 -0
  1112. langflow/frontend/assets/message-square-code-CXHPICGq.js +6 -0
  1113. langflow/frontend/assets/message-square-dashed-BY3BbejF.js +6 -0
  1114. langflow/frontend/assets/message-square-diff-DTPf_rle.js +6 -0
  1115. langflow/frontend/assets/message-square-dot-CCU_hAid.js +6 -0
  1116. langflow/frontend/assets/message-square-heart-JaHDr68J.js +6 -0
  1117. langflow/frontend/assets/message-square-lock-Tq0lZr8h.js +6 -0
  1118. langflow/frontend/assets/message-square-more-D-Yveymk.js +6 -0
  1119. langflow/frontend/assets/message-square-off-CpKwab5y.js +6 -0
  1120. langflow/frontend/assets/message-square-plus-B8pCqs0N.js +6 -0
  1121. langflow/frontend/assets/message-square-quote-LA0Sf5YL.js +6 -0
  1122. langflow/frontend/assets/message-square-reply-D2gunwrf.js +6 -0
  1123. langflow/frontend/assets/message-square-share-CbRvGBAu.js +6 -0
  1124. langflow/frontend/assets/message-square-text-DGdfW6ZW.js +6 -0
  1125. langflow/frontend/assets/message-square-warning-CBHe5HQF.js +6 -0
  1126. langflow/frontend/assets/message-square-x-BZgCspIm.js +6 -0
  1127. langflow/frontend/assets/messages-square-BHeDiVuw.js +6 -0
  1128. langflow/frontend/assets/mic-BYU0RVS-.js +6 -0
  1129. langflow/frontend/assets/mic-off-DHByIDiz.js +6 -0
  1130. langflow/frontend/assets/mic-vocal-Ci9G5rLy.js +6 -0
  1131. langflow/frontend/assets/microchip-CDOdIk-0.js +6 -0
  1132. langflow/frontend/assets/microscope-j8JVE3rM.js +6 -0
  1133. langflow/frontend/assets/microwave-DN-B5ZU-.js +6 -0
  1134. langflow/frontend/assets/milestone-CLnQvtEc.js +6 -0
  1135. langflow/frontend/assets/milk-DKmDhVxQ.js +6 -0
  1136. langflow/frontend/assets/milk-off-W1ao98Ca.js +6 -0
  1137. langflow/frontend/assets/minimize-2-BquPqdN9.js +6 -0
  1138. langflow/frontend/assets/minimize-S8RUW79L.js +6 -0
  1139. langflow/frontend/assets/monitor-TgwLunHC.js +6 -0
  1140. langflow/frontend/assets/monitor-check-CW7ybwSo.js +6 -0
  1141. langflow/frontend/assets/monitor-cog-4stZL-NF.js +6 -0
  1142. langflow/frontend/assets/monitor-dot-BHFcstTz.js +6 -0
  1143. langflow/frontend/assets/monitor-down-Dm7TY7pJ.js +6 -0
  1144. langflow/frontend/assets/monitor-off-DPwblq5d.js +6 -0
  1145. langflow/frontend/assets/monitor-pause-BYfAj-vx.js +6 -0
  1146. langflow/frontend/assets/monitor-play-BcSaPO3l.js +6 -0
  1147. langflow/frontend/assets/monitor-smartphone-Da86SUFW.js +6 -0
  1148. langflow/frontend/assets/monitor-speaker-DCI9qZR2.js +6 -0
  1149. langflow/frontend/assets/monitor-stop-D4qYx5f2.js +6 -0
  1150. langflow/frontend/assets/monitor-up-61RBMYvU.js +6 -0
  1151. langflow/frontend/assets/monitor-x-B4hwJL2h.js +6 -0
  1152. langflow/frontend/assets/moon-star-Dzl7yjJa.js +6 -0
  1153. langflow/frontend/assets/moon-u9JML7e_.js +6 -0
  1154. langflow/frontend/assets/mountain-q1fxdCOV.js +6 -0
  1155. langflow/frontend/assets/mountain-snow-mSNlFeiH.js +6 -0
  1156. langflow/frontend/assets/mouse-DUgS4hAe.js +6 -0
  1157. langflow/frontend/assets/mouse-off-uiXC0OxT.js +6 -0
  1158. langflow/frontend/assets/mouse-pointer-2-H1Jadm8s.js +6 -0
  1159. langflow/frontend/assets/mouse-pointer-aOwFXl0P.js +6 -0
  1160. langflow/frontend/assets/mouse-pointer-ban-Bw_D94wo.js +6 -0
  1161. langflow/frontend/assets/mouse-pointer-click-FT63ceP5.js +6 -0
  1162. langflow/frontend/assets/move-3d-BUr00cdG.js +6 -0
  1163. langflow/frontend/assets/move-Dw0iPVGl.js +6 -0
  1164. langflow/frontend/assets/move-diagonal-2-C9i-E6eN.js +6 -0
  1165. langflow/frontend/assets/move-diagonal-bFxJ-Dxl.js +6 -0
  1166. langflow/frontend/assets/move-down-BYRcS_00.js +6 -0
  1167. langflow/frontend/assets/move-down-left-BaNhVRMq.js +6 -0
  1168. langflow/frontend/assets/move-down-right-zi-0KIKz.js +6 -0
  1169. langflow/frontend/assets/move-horizontal-C7TOtVnX.js +6 -0
  1170. langflow/frontend/assets/move-left-cPGUpRa3.js +6 -0
  1171. langflow/frontend/assets/move-right-BPfJg_Uj.js +6 -0
  1172. langflow/frontend/assets/move-up-DbtFCKRG.js +6 -0
  1173. langflow/frontend/assets/move-up-left-CK8_JnOt.js +6 -0
  1174. langflow/frontend/assets/move-up-right-u49J91bG.js +6 -0
  1175. langflow/frontend/assets/move-vertical-DxRDF4Ew.js +6 -0
  1176. langflow/frontend/assets/music-2-cNznDV1T.js +6 -0
  1177. langflow/frontend/assets/music-3-C3i4BTm-.js +6 -0
  1178. langflow/frontend/assets/music-4-DsDrqely.js +6 -0
  1179. langflow/frontend/assets/music-D5p_SYy1.js +6 -0
  1180. langflow/frontend/assets/navigation-2-CgU4pLVU.js +6 -0
  1181. langflow/frontend/assets/navigation-2-off-Btr1_Iog.js +6 -0
  1182. langflow/frontend/assets/navigation-Cy03l3Es.js +6 -0
  1183. langflow/frontend/assets/navigation-off-AND2F8a1.js +6 -0
  1184. langflow/frontend/assets/network-Cih4ujuq.js +6 -0
  1185. langflow/frontend/assets/newspaper-0HrHbH3l.js +6 -0
  1186. langflow/frontend/assets/nfc-B8E_m1JO.js +6 -0
  1187. langflow/frontend/assets/non-binary-BSbJqvu8.js +6 -0
  1188. langflow/frontend/assets/notebook-CyGqTsAE.js +6 -0
  1189. langflow/frontend/assets/notebook-pen-ChWeekac.js +6 -0
  1190. langflow/frontend/assets/notebook-tabs-DNBQQrVW.js +6 -0
  1191. langflow/frontend/assets/notebook-text-FsPAspl_.js +6 -0
  1192. langflow/frontend/assets/notepad-text-CsblEbUu.js +6 -0
  1193. langflow/frontend/assets/notepad-text-dashed-Ce3ofgNM.js +6 -0
  1194. langflow/frontend/assets/nut-CyA8wqIJ.js +6 -0
  1195. langflow/frontend/assets/nut-off-Z-SOlFzj.js +6 -0
  1196. langflow/frontend/assets/octagon-DoJxi7B_.js +6 -0
  1197. langflow/frontend/assets/octagon-alert-DwlPSjs5.js +6 -0
  1198. langflow/frontend/assets/octagon-minus-d3eC0J7m.js +6 -0
  1199. langflow/frontend/assets/octagon-pause-C7xo8Th3.js +6 -0
  1200. langflow/frontend/assets/octagon-x-Coijn-A8.js +6 -0
  1201. langflow/frontend/assets/omega-D_7GAlT6.js +6 -0
  1202. langflow/frontend/assets/option-Bm23Qxxw.js +6 -0
  1203. langflow/frontend/assets/orbit-CA9ab4Gd.js +6 -0
  1204. langflow/frontend/assets/origami-DDr3Ad-y.js +6 -0
  1205. langflow/frontend/assets/package-2-BJzXgXwK.js +6 -0
  1206. langflow/frontend/assets/package-DmnBNL3w.js +6 -0
  1207. langflow/frontend/assets/package-check-DR7rBo__.js +6 -0
  1208. langflow/frontend/assets/package-minus-CMQIoWv-.js +6 -0
  1209. langflow/frontend/assets/package-open-C6oI5bjy.js +6 -0
  1210. langflow/frontend/assets/package-plus-BiQPuiSf.js +6 -0
  1211. langflow/frontend/assets/package-search-xmLVZc5a.js +6 -0
  1212. langflow/frontend/assets/package-x-iZei1-yI.js +6 -0
  1213. langflow/frontend/assets/paint-bucket-B1ArbAp0.js +6 -0
  1214. langflow/frontend/assets/paint-roller-BwqD9QPu.js +6 -0
  1215. langflow/frontend/assets/paintbrush-Dn2epmVU.js +6 -0
  1216. langflow/frontend/assets/paintbrush-vertical-QDvk56aP.js +6 -0
  1217. langflow/frontend/assets/palette-CxYKVgKw.js +6 -0
  1218. langflow/frontend/assets/panel-bottom-B5O65dkk.js +6 -0
  1219. langflow/frontend/assets/panel-bottom-close-DVRUrKjP.js +6 -0
  1220. langflow/frontend/assets/panel-bottom-dashed-BZ33NsAe.js +6 -0
  1221. langflow/frontend/assets/panel-bottom-open-ChgeoiMb.js +6 -0
  1222. langflow/frontend/assets/panel-left-close-DJIMgFwg.js +6 -0
  1223. langflow/frontend/assets/panel-left-dashed-DB9LOBwh.js +6 -0
  1224. langflow/frontend/assets/panel-left-open-DO7wKR-c.js +6 -0
  1225. langflow/frontend/assets/panel-right-TkLeOwPF.js +6 -0
  1226. langflow/frontend/assets/panel-right-close-D6-ZwQs3.js +6 -0
  1227. langflow/frontend/assets/panel-right-dashed-lIsWCUXQ.js +6 -0
  1228. langflow/frontend/assets/panel-right-open-CmUTjWJV.js +6 -0
  1229. langflow/frontend/assets/panel-top-PItTdUcL.js +6 -0
  1230. langflow/frontend/assets/panel-top-close-AmpFhKhl.js +6 -0
  1231. langflow/frontend/assets/panel-top-dashed-CEPj7SBt.js +6 -0
  1232. langflow/frontend/assets/panel-top-open-DpZ4WXDh.js +6 -0
  1233. langflow/frontend/assets/panels-left-bottom-Dze6eotS.js +6 -0
  1234. langflow/frontend/assets/panels-right-bottom-DhkANjpa.js +6 -0
  1235. langflow/frontend/assets/panels-top-left-DnbQdHtc.js +6 -0
  1236. langflow/frontend/assets/paperclip-B8JYjhUO.js +6 -0
  1237. langflow/frontend/assets/parentheses-DXj-mR36.js +6 -0
  1238. langflow/frontend/assets/parking-meter-Dyf3woCo.js +6 -0
  1239. langflow/frontend/assets/party-popper-CFt4fxuN.js +6 -0
  1240. langflow/frontend/assets/pause-DXYzNNKG.js +6 -0
  1241. langflow/frontend/assets/paw-print-D96TWLLS.js +6 -0
  1242. langflow/frontend/assets/pc-case-BbLTuvEQ.js +6 -0
  1243. langflow/frontend/assets/pen-BxCrMLOT.js +6 -0
  1244. langflow/frontend/assets/pen-line-Dr2L8EU8.js +6 -0
  1245. langflow/frontend/assets/pen-off-BoHZROoW.js +6 -0
  1246. langflow/frontend/assets/pen-tool-CNR50Y_V.js +6 -0
  1247. langflow/frontend/assets/pencil-B6nujrxx.js +6 -0
  1248. langflow/frontend/assets/pencil-line-Cz6MwHpQ.js +6 -0
  1249. langflow/frontend/assets/pencil-off-EZPzHVOm.js +6 -0
  1250. langflow/frontend/assets/pencil-ruler-_6wJJipi.js +6 -0
  1251. langflow/frontend/assets/pentagon-MbLrUWqm.js +6 -0
  1252. langflow/frontend/assets/percent-D2bQF_UE.js +6 -0
  1253. langflow/frontend/assets/person-standing-B_zA-W28.js +6 -0
  1254. langflow/frontend/assets/philippine-peso-gSQug9tz.js +6 -0
  1255. langflow/frontend/assets/phone-DGe1z4aO.js +6 -0
  1256. langflow/frontend/assets/phone-call-9Lnc5sk9.js +6 -0
  1257. langflow/frontend/assets/phone-forwarded-BP_Xco9V.js +6 -0
  1258. langflow/frontend/assets/phone-incoming-BnN7JeGS.js +6 -0
  1259. langflow/frontend/assets/phone-missed-CxjuHhgE.js +6 -0
  1260. langflow/frontend/assets/phone-off-0h94g45c.js +6 -0
  1261. langflow/frontend/assets/phone-outgoing-YqnGMWE4.js +6 -0
  1262. langflow/frontend/assets/pi-rZiGG5Mt.js +6 -0
  1263. langflow/frontend/assets/piano-CUgi002u.js +6 -0
  1264. langflow/frontend/assets/pickaxe-LFAKkxF8.js +6 -0
  1265. langflow/frontend/assets/picture-in-picture-2-LUic8OvG.js +6 -0
  1266. langflow/frontend/assets/picture-in-picture-mZWRZ8dm.js +6 -0
  1267. langflow/frontend/assets/piggy-bank-CgRjS7L6.js +6 -0
  1268. langflow/frontend/assets/pilcrow-8oxT9LRF.js +6 -0
  1269. langflow/frontend/assets/pilcrow-left-vbzjIx9N.js +6 -0
  1270. langflow/frontend/assets/pilcrow-right-D4gz3lDq.js +6 -0
  1271. langflow/frontend/assets/pill-CW00bntu.js +6 -0
  1272. langflow/frontend/assets/pill-bottle-yDVEqGy3.js +6 -0
  1273. langflow/frontend/assets/pin-MlO3bTAS.js +6 -0
  1274. langflow/frontend/assets/pin-off-82a1A1bt.js +6 -0
  1275. langflow/frontend/assets/pipette-Bk4NLmv4.js +6 -0
  1276. langflow/frontend/assets/pizza-ToIH3tMd.js +6 -0
  1277. langflow/frontend/assets/plane-DspEWMZm.js +6 -0
  1278. langflow/frontend/assets/plane-landing-KcBe5hYB.js +6 -0
  1279. langflow/frontend/assets/plane-takeoff-FNKrioor.js +6 -0
  1280. langflow/frontend/assets/play-BHLevo9A.js +6 -0
  1281. langflow/frontend/assets/plug-2-DcEQoU17.js +6 -0
  1282. langflow/frontend/assets/plug-DpvQ-6Zi.js +6 -0
  1283. langflow/frontend/assets/plug-zap-BpqdQISN.js +6 -0
  1284. langflow/frontend/assets/pocket-At7m6mab.js +6 -0
  1285. langflow/frontend/assets/pocket-knife-BK4p4Ti2.js +6 -0
  1286. langflow/frontend/assets/podcast-D0ohzOgX.js +6 -0
  1287. langflow/frontend/assets/pointer-off-B-0X80ef.js +6 -0
  1288. langflow/frontend/assets/pointer-xZv1TKV0.js +6 -0
  1289. langflow/frontend/assets/popcorn-B2nfGi06.js +6 -0
  1290. langflow/frontend/assets/popsicle-Zg3WybsE.js +6 -0
  1291. langflow/frontend/assets/pound-sterling-CRDzzqXA.js +6 -0
  1292. langflow/frontend/assets/power-BMziFVVD.js +6 -0
  1293. langflow/frontend/assets/power-off-BPw7dgNf.js +6 -0
  1294. langflow/frontend/assets/presentation-BXElJD31.js +6 -0
  1295. langflow/frontend/assets/printer-I7fWmGxh.js +6 -0
  1296. langflow/frontend/assets/printer-check-ClcFa-BX.js +6 -0
  1297. langflow/frontend/assets/projector-UT_-K1JW.js +6 -0
  1298. langflow/frontend/assets/proportions-BjBb5aWZ.js +6 -0
  1299. langflow/frontend/assets/puzzle-hYLjpTTe.js +6 -0
  1300. langflow/frontend/assets/pyramid-Co-1ymza.js +6 -0
  1301. langflow/frontend/assets/qr-code-CcCcthY6.js +6 -0
  1302. langflow/frontend/assets/quote-BvFv33oE.js +6 -0
  1303. langflow/frontend/assets/rabbit-BnoYK_10.js +6 -0
  1304. langflow/frontend/assets/radar-ikaI7SeA.js +6 -0
  1305. langflow/frontend/assets/radiation-CnU3D7uJ.js +6 -0
  1306. langflow/frontend/assets/radical-CeqK9TwT.js +6 -0
  1307. langflow/frontend/assets/radio-CKQwQ9G5.js +6 -0
  1308. langflow/frontend/assets/radio-receiver-Bu2hR3WR.js +6 -0
  1309. langflow/frontend/assets/radio-tower-rc6ZMrZe.js +6 -0
  1310. langflow/frontend/assets/radius-Q3QXGZPv.js +6 -0
  1311. langflow/frontend/assets/rail-symbol-B0Gzn2Dq.js +6 -0
  1312. langflow/frontend/assets/rainbow-BzzFmBbp.js +6 -0
  1313. langflow/frontend/assets/rat-BrQcRhIb.js +6 -0
  1314. langflow/frontend/assets/ratio-Cp5Q8Suu.js +6 -0
  1315. langflow/frontend/assets/receipt-cent-B1uJfI5t.js +6 -0
  1316. langflow/frontend/assets/receipt-euro-BjU9TQZR.js +6 -0
  1317. langflow/frontend/assets/receipt-indian-rupee-DeGRpKFr.js +6 -0
  1318. langflow/frontend/assets/receipt-japanese-yen-CJYaI76z.js +6 -0
  1319. langflow/frontend/assets/receipt-koWGgKDe.js +6 -0
  1320. langflow/frontend/assets/receipt-pound-sterling-9haFrqZU.js +6 -0
  1321. langflow/frontend/assets/receipt-russian-ruble-CmwenUiq.js +6 -0
  1322. langflow/frontend/assets/receipt-swiss-franc-Da-CPp-L.js +6 -0
  1323. langflow/frontend/assets/receipt-text-CaSmgyFS.js +6 -0
  1324. langflow/frontend/assets/rectangle-ellipsis-Dv7wxYyx.js +6 -0
  1325. langflow/frontend/assets/rectangle-goggles-DYB1VtsR.js +6 -0
  1326. langflow/frontend/assets/rectangle-horizontal-DpF5Tn2e.js +6 -0
  1327. langflow/frontend/assets/rectangle-vertical-DgGJHYBk.js +6 -0
  1328. langflow/frontend/assets/recycle-BFmrl-uo.js +6 -0
  1329. langflow/frontend/assets/redo-2-I53B3VmB.js +6 -0
  1330. langflow/frontend/assets/redo-WwlhElI0.js +6 -0
  1331. langflow/frontend/assets/redo-dot-DrEylwtk.js +6 -0
  1332. langflow/frontend/assets/refresh-ccw-D4I57NoJ.js +6 -0
  1333. langflow/frontend/assets/refresh-ccw-dot-CRDK3AA7.js +6 -0
  1334. langflow/frontend/assets/refresh-cw-BF4kXegR.js +6 -0
  1335. langflow/frontend/assets/refresh-cw-off-Ddb-6LGJ.js +6 -0
  1336. langflow/frontend/assets/refrigerator-CqCs3gBS.js +6 -0
  1337. langflow/frontend/assets/regex-BDOGmlkd.js +6 -0
  1338. langflow/frontend/assets/remove-formatting-vJviEFGE.js +6 -0
  1339. langflow/frontend/assets/repeat-1-DYDTXNkl.js +6 -0
  1340. langflow/frontend/assets/repeat-2-DMsq5v-B.js +6 -0
  1341. langflow/frontend/assets/repeat-B1b9eVGG.js +6 -0
  1342. langflow/frontend/assets/replace-all-BaYtgz-_.js +6 -0
  1343. langflow/frontend/assets/replace-dpYVNaCV.js +6 -0
  1344. langflow/frontend/assets/reply-all-CdU4Kl59.js +6 -0
  1345. langflow/frontend/assets/reply-fAiYESAl.js +6 -0
  1346. langflow/frontend/assets/rewind-DJvtALd_.js +6 -0
  1347. langflow/frontend/assets/ribbon-BwJ0_M6l.js +6 -0
  1348. langflow/frontend/assets/rocket-B8c0mPJ-.js +6 -0
  1349. langflow/frontend/assets/rocking-chair-DG6p_IG8.js +6 -0
  1350. langflow/frontend/assets/roller-coaster-BDKzSMYR.js +6 -0
  1351. langflow/frontend/assets/rotate-3d-DwQauFPy.js +6 -0
  1352. langflow/frontend/assets/rotate-ccw-key-DlcpVCrV.js +6 -0
  1353. langflow/frontend/assets/rotate-ccw-rSbLWp0O.js +6 -0
  1354. langflow/frontend/assets/rotate-ccw-square-CINHrJJD.js +6 -0
  1355. langflow/frontend/assets/rotate-cw-9s4WV2Ss.js +6 -0
  1356. langflow/frontend/assets/rotate-cw-square-BfUM_xrz.js +6 -0
  1357. langflow/frontend/assets/route-By4kro_M.js +6 -0
  1358. langflow/frontend/assets/route-off-B0FV40WS.js +6 -0
  1359. langflow/frontend/assets/router-DtXUqabh.js +6 -0
  1360. langflow/frontend/assets/rows-2-PzWjsVzQ.js +6 -0
  1361. langflow/frontend/assets/rows-3-Cq2Ld3np.js +6 -0
  1362. langflow/frontend/assets/rows-4-UCHZRqV9.js +6 -0
  1363. langflow/frontend/assets/rss-2YE08DA_.js +6 -0
  1364. langflow/frontend/assets/ruler-D6EvUoXL.js +6 -0
  1365. langflow/frontend/assets/ruler-dimension-line-_E0McLCd.js +6 -0
  1366. langflow/frontend/assets/russian-ruble-BbWWqAzY.js +6 -0
  1367. langflow/frontend/assets/sailboat-TuadlhZz.js +6 -0
  1368. langflow/frontend/assets/salad-Cw66CLXD.js +6 -0
  1369. langflow/frontend/assets/sandwich-QRf8SkpN.js +6 -0
  1370. langflow/frontend/assets/satellite-bqIDJe-4.js +6 -0
  1371. langflow/frontend/assets/satellite-dish-BARKbqA3.js +6 -0
  1372. langflow/frontend/assets/saudi-riyal-DOctqb1E.js +6 -0
  1373. langflow/frontend/assets/save-C13IOu6R.js +6 -0
  1374. langflow/frontend/assets/save-all-CafpO6Fj.js +6 -0
  1375. langflow/frontend/assets/save-off-Db3hwQcI.js +6 -0
  1376. langflow/frontend/assets/scale-3d-BnBM6bbO.js +6 -0
  1377. langflow/frontend/assets/scale-DoxUrNaX.js +6 -0
  1378. langflow/frontend/assets/scaling-CvvpOJ27.js +6 -0
  1379. langflow/frontend/assets/scan-CUxHw60x.js +6 -0
  1380. langflow/frontend/assets/scan-barcode-DVC1pIvo.js +6 -0
  1381. langflow/frontend/assets/scan-eye-cJ_b3_rs.js +6 -0
  1382. langflow/frontend/assets/scan-face-BeYZj9i1.js +6 -0
  1383. langflow/frontend/assets/scan-heart-B5QVULNR.js +6 -0
  1384. langflow/frontend/assets/scan-line-DCe5lzP6.js +6 -0
  1385. langflow/frontend/assets/scan-qr-code-CyUlbhgh.js +6 -0
  1386. langflow/frontend/assets/scan-search-CudwFevV.js +6 -0
  1387. langflow/frontend/assets/scan-text-B1VlO1uZ.js +6 -0
  1388. langflow/frontend/assets/school-C8Ey8eIj.js +6 -0
  1389. langflow/frontend/assets/scissors-B_rfswxb.js +6 -0
  1390. langflow/frontend/assets/scissors-line-dashed-NTpM_2Zj.js +6 -0
  1391. langflow/frontend/assets/screen-share-ByKrVM-A.js +6 -0
  1392. langflow/frontend/assets/screen-share-off-CqxKixfz.js +6 -0
  1393. langflow/frontend/assets/scroll-CAmLNrlT.js +6 -0
  1394. langflow/frontend/assets/scroll-text-DHKWaVtk.js +6 -0
  1395. langflow/frontend/assets/search-check-DzpbETaN.js +6 -0
  1396. langflow/frontend/assets/search-code-vkW7JLnX.js +6 -0
  1397. langflow/frontend/assets/search-slash-UtBf5eFO.js +6 -0
  1398. langflow/frontend/assets/search-x-D0aStKy8.js +6 -0
  1399. langflow/frontend/assets/section-B3Apbsr5.js +6 -0
  1400. langflow/frontend/assets/send-Dcy0qqek.js +6 -0
  1401. langflow/frontend/assets/send-horizontal-BUaqrQZX.js +6 -0
  1402. langflow/frontend/assets/send-to-back-CAlrNU5z.js +6 -0
  1403. langflow/frontend/assets/separator-horizontal-p7xH0ovm.js +6 -0
  1404. langflow/frontend/assets/separator-vertical-8DyLhdAJ.js +6 -0
  1405. langflow/frontend/assets/server-AIRY4m_N.js +6 -0
  1406. langflow/frontend/assets/server-cog-DqDj0ewX.js +6 -0
  1407. langflow/frontend/assets/server-crash-Cc1Yw9Eu.js +6 -0
  1408. langflow/frontend/assets/server-off-Cam7b_8K.js +6 -0
  1409. langflow/frontend/assets/settings-2-BlcPZ1qG.js +6 -0
  1410. langflow/frontend/assets/settings-DgETg7eA.js +6 -0
  1411. langflow/frontend/assets/shapes-mJ5AEPp_.js +6 -0
  1412. langflow/frontend/assets/share-2-Nh6Weip8.js +6 -0
  1413. langflow/frontend/assets/share-O76aTk-h.js +6 -0
  1414. langflow/frontend/assets/sheet-CVV8x9w7.js +6 -0
  1415. langflow/frontend/assets/shell-CfPKzhf-.js +6 -0
  1416. langflow/frontend/assets/shield-CA-bPKyN.js +6 -0
  1417. langflow/frontend/assets/shield-alert-RD-ATIOm.js +6 -0
  1418. langflow/frontend/assets/shield-ban-C4dNjAYr.js +6 -0
  1419. langflow/frontend/assets/shield-check-DL1RpCFi.js +6 -0
  1420. langflow/frontend/assets/shield-ellipsis-CT76-Yc7.js +6 -0
  1421. langflow/frontend/assets/shield-half-CwR0c7-O.js +6 -0
  1422. langflow/frontend/assets/shield-minus-CH_2_xwd.js +6 -0
  1423. langflow/frontend/assets/shield-off-D42UdLeP.js +6 -0
  1424. langflow/frontend/assets/shield-plus-DV2e3NU2.js +6 -0
  1425. langflow/frontend/assets/shield-question-BHPF4pdj.js +6 -0
  1426. langflow/frontend/assets/shield-user-DNKM4LuY.js +6 -0
  1427. langflow/frontend/assets/shield-x-F2Eo9JvV.js +6 -0
  1428. langflow/frontend/assets/ship-BAW6vDRc.js +6 -0
  1429. langflow/frontend/assets/ship-wheel-mPgktKaL.js +6 -0
  1430. langflow/frontend/assets/shirt-CgIajWER.js +6 -0
  1431. langflow/frontend/assets/shopping-bag-CacAAVkR.js +6 -0
  1432. langflow/frontend/assets/shopping-basket-s8rInQu9.js +6 -0
  1433. langflow/frontend/assets/shopping-cart-C1Gzk9Tq.js +6 -0
  1434. langflow/frontend/assets/shovel-BxFpRbVM.js +6 -0
  1435. langflow/frontend/assets/shower-head-xViSLXdu.js +6 -0
  1436. langflow/frontend/assets/shredder-Cm0kLVA0.js +6 -0
  1437. langflow/frontend/assets/shrimp--_ofjQGj.js +6 -0
  1438. langflow/frontend/assets/shrink-DvcVP3T0.js +6 -0
  1439. langflow/frontend/assets/shrub-BZL96DRg.js +6 -0
  1440. langflow/frontend/assets/shuffle-D5Jd588i.js +6 -0
  1441. langflow/frontend/assets/sigma-BwcVom8A.js +6 -0
  1442. langflow/frontend/assets/signal-Bk6_BU63.js +6 -0
  1443. langflow/frontend/assets/signal-high-CwURO3f8.js +6 -0
  1444. langflow/frontend/assets/signal-low-CrSc8ykg.js +6 -0
  1445. langflow/frontend/assets/signal-medium-CjT7IjcN.js +6 -0
  1446. langflow/frontend/assets/signal-zero-DvGgUpTm.js +6 -0
  1447. langflow/frontend/assets/signature-DKKp8Xgg.js +6 -0
  1448. langflow/frontend/assets/signpost-CD0G_qKi.js +6 -0
  1449. langflow/frontend/assets/signpost-big-CjAt0rHs.js +6 -0
  1450. langflow/frontend/assets/siren-Cztc_Y_C.js +6 -0
  1451. langflow/frontend/assets/skip-back-BXch91XJ.js +6 -0
  1452. langflow/frontend/assets/skip-forward-BpaGcdGk.js +6 -0
  1453. langflow/frontend/assets/skull-89s-PUhK.js +6 -0
  1454. langflow/frontend/assets/slack-DA0H7ih5.js +6 -0
  1455. langflow/frontend/assets/slash-BBAEqAkG.js +6 -0
  1456. langflow/frontend/assets/slice-wO4szBCQ.js +6 -0
  1457. langflow/frontend/assets/sliders-horizontal-Cl3XxgrS.js +6 -0
  1458. langflow/frontend/assets/sliders-vertical-DP6mad4o.js +6 -0
  1459. langflow/frontend/assets/smartphone-DdlgIFJl.js +6 -0
  1460. langflow/frontend/assets/smartphone-charging-htYljDCV.js +6 -0
  1461. langflow/frontend/assets/smartphone-nfc-BQNZhdCt.js +6 -0
  1462. langflow/frontend/assets/smile-CnEe3PKH.js +6 -0
  1463. langflow/frontend/assets/smile-plus-DmW-yKH9.js +6 -0
  1464. langflow/frontend/assets/snail-CQymSKAb.js +6 -0
  1465. langflow/frontend/assets/snowflake-bv5SRkMd.js +6 -0
  1466. langflow/frontend/assets/sofa-vlR_2Dam.js +6 -0
  1467. langflow/frontend/assets/soup-BRm7rUNh.js +6 -0
  1468. langflow/frontend/assets/space-Djxwhlya.js +6 -0
  1469. langflow/frontend/assets/spade-KBDtVhB-.js +6 -0
  1470. langflow/frontend/assets/sparkle-CPDX03Rj.js +6 -0
  1471. langflow/frontend/assets/sparkles-Dey-8PKB.js +6 -0
  1472. langflow/frontend/assets/speaker-Ci2cauA7.js +6 -0
  1473. langflow/frontend/assets/speech-BWb-VIW0.js +6 -0
  1474. langflow/frontend/assets/spell-check-2-DhjDdIwW.js +6 -0
  1475. langflow/frontend/assets/spell-check-6cr0Hxii.js +6 -0
  1476. langflow/frontend/assets/spline-m3o9OS7h.js +6 -0
  1477. langflow/frontend/assets/spline-pointer-BqMAcqE7.js +6 -0
  1478. langflow/frontend/assets/split-CURK5DNx.js +6 -0
  1479. langflow/frontend/assets/spray-can-CVdOyo6i.js +6 -0
  1480. langflow/frontend/assets/sprout-Cpnpgn-A.js +6 -0
  1481. langflow/frontend/assets/square-CpzLCpyA.js +6 -0
  1482. langflow/frontend/assets/square-activity-pWJd5G5r.js +6 -0
  1483. langflow/frontend/assets/square-arrow-down-left-DQwjmb69.js +6 -0
  1484. langflow/frontend/assets/square-arrow-down-right-Ch52Mxu4.js +6 -0
  1485. langflow/frontend/assets/square-arrow-down-tCFL2uwb.js +6 -0
  1486. langflow/frontend/assets/square-arrow-left-C1r5qqGN.js +6 -0
  1487. langflow/frontend/assets/square-arrow-out-down-left-C0JdVE6P.js +6 -0
  1488. langflow/frontend/assets/square-arrow-out-down-right-caPuYO_6.js +6 -0
  1489. langflow/frontend/assets/square-arrow-out-up-left-CyXAOoEF.js +6 -0
  1490. langflow/frontend/assets/square-arrow-out-up-right-gjmIEA0y.js +6 -0
  1491. langflow/frontend/assets/square-arrow-right-DfBrwYUf.js +6 -0
  1492. langflow/frontend/assets/square-arrow-up-left-CimJAC8a.js +6 -0
  1493. langflow/frontend/assets/square-arrow-up-right-2UakHbc9.js +6 -0
  1494. langflow/frontend/assets/square-arrow-up-tUlp0wC9.js +6 -0
  1495. langflow/frontend/assets/square-asterisk-s_IQzkqy.js +6 -0
  1496. langflow/frontend/assets/square-bottom-dashed-scissors-BfDm20ZR.js +6 -0
  1497. langflow/frontend/assets/square-chart-gantt-D40tdHWB.js +6 -0
  1498. langflow/frontend/assets/square-check-big-9yoKtKUj.js +6 -0
  1499. langflow/frontend/assets/square-check-ptPZ-xY2.js +6 -0
  1500. langflow/frontend/assets/square-chevron-down-CsS-YuP8.js +6 -0
  1501. langflow/frontend/assets/square-chevron-left-BjYxd47_.js +6 -0
  1502. langflow/frontend/assets/square-chevron-right-KbS6df2Z.js +6 -0
  1503. langflow/frontend/assets/square-chevron-up-CrX2LVoW.js +6 -0
  1504. langflow/frontend/assets/square-code-BSqo5G-p.js +6 -0
  1505. langflow/frontend/assets/square-dashed-B-tlBE7l.js +6 -0
  1506. langflow/frontend/assets/square-dashed-bottom-DOAbBVEE.js +6 -0
  1507. langflow/frontend/assets/square-dashed-bottom-code-DwoNtFOg.js +6 -0
  1508. langflow/frontend/assets/square-dashed-kanban-BIxL4pf4.js +6 -0
  1509. langflow/frontend/assets/square-dashed-mouse-pointer-DrjTsK-1.js +6 -0
  1510. langflow/frontend/assets/square-divide-DJF2tfJQ.js +6 -0
  1511. langflow/frontend/assets/square-dot-D0iQZ9QW.js +6 -0
  1512. langflow/frontend/assets/square-equal-NcrUYZVl.js +6 -0
  1513. langflow/frontend/assets/square-function-BsD2IM1o.js +6 -0
  1514. langflow/frontend/assets/square-kanban-Do2KYGtR.js +6 -0
  1515. langflow/frontend/assets/square-library-CMzHZTLU.js +6 -0
  1516. langflow/frontend/assets/square-m-BIaqnsmP.js +6 -0
  1517. langflow/frontend/assets/square-menu-BHyG91lq.js +6 -0
  1518. langflow/frontend/assets/square-minus-NsS5C0Nn.js +6 -0
  1519. langflow/frontend/assets/square-mouse-pointer-Dzj13R1O.js +6 -0
  1520. langflow/frontend/assets/square-parking-AWNpFHUG.js +6 -0
  1521. langflow/frontend/assets/square-parking-off-KKsCw1XC.js +6 -0
  1522. langflow/frontend/assets/square-pen-bIAXzLf7.js +6 -0
  1523. langflow/frontend/assets/square-percent-BjgJwH8a.js +6 -0
  1524. langflow/frontend/assets/square-pi-DnNuDfq-.js +6 -0
  1525. langflow/frontend/assets/square-pilcrow-DANHwdVB.js +6 -0
  1526. langflow/frontend/assets/square-play-DAQtHGKc.js +6 -0
  1527. langflow/frontend/assets/square-plus-CRV705Ah.js +6 -0
  1528. langflow/frontend/assets/square-power-A0kogQV8.js +6 -0
  1529. langflow/frontend/assets/square-radical-eaw23tdn.js +6 -0
  1530. langflow/frontend/assets/square-round-corner-CaQUVGHP.js +6 -0
  1531. langflow/frontend/assets/square-scissors-BODLQ9Dp.js +6 -0
  1532. langflow/frontend/assets/square-sigma-B1u-ARdF.js +6 -0
  1533. langflow/frontend/assets/square-slash-DEWAT1cD.js +6 -0
  1534. langflow/frontend/assets/square-split-horizontal-9IrPhF2m.js +6 -0
  1535. langflow/frontend/assets/square-split-vertical-CmoW_zYQ.js +6 -0
  1536. langflow/frontend/assets/square-square-03LgbPbF.js +6 -0
  1537. langflow/frontend/assets/square-stack-DPV0jLeF.js +6 -0
  1538. langflow/frontend/assets/square-terminal-DUYv-_hG.js +6 -0
  1539. langflow/frontend/assets/square-user-C_jEsE6c.js +6 -0
  1540. langflow/frontend/assets/square-user-round-BBldtPsV.js +6 -0
  1541. langflow/frontend/assets/square-x-DWPMPGV3.js +6 -0
  1542. langflow/frontend/assets/squares-exclude-BbPPrz-T.js +6 -0
  1543. langflow/frontend/assets/squares-intersect-wUIKd6XE.js +6 -0
  1544. langflow/frontend/assets/squares-subtract-2h4wx5tk.js +6 -0
  1545. langflow/frontend/assets/squares-unite-C2IIuYjZ.js +6 -0
  1546. langflow/frontend/assets/squircle-de5xIKon.js +6 -0
  1547. langflow/frontend/assets/squirrel-Ci7Bkr9y.js +6 -0
  1548. langflow/frontend/assets/stamp-5LvZgzz7.js +6 -0
  1549. langflow/frontend/assets/star-Dh7YRFCk.js +6 -0
  1550. langflow/frontend/assets/star-half-15QaQeFV.js +6 -0
  1551. langflow/frontend/assets/star-off-Ccn18o6T.js +6 -0
  1552. langflow/frontend/assets/step-back-CAr0T2eP.js +6 -0
  1553. langflow/frontend/assets/step-forward-pg5Vs70-.js +6 -0
  1554. langflow/frontend/assets/stethoscope-O7jJW4_s.js +6 -0
  1555. langflow/frontend/assets/sticker-DNMSc6SG.js +6 -0
  1556. langflow/frontend/assets/sticky-note-BSV5Xo73.js +6 -0
  1557. langflow/frontend/assets/store-Ksjiebvs.js +6 -0
  1558. langflow/frontend/assets/stretch-horizontal-DGnuowms.js +6 -0
  1559. langflow/frontend/assets/stretch-vertical-Bx1tnRgx.js +6 -0
  1560. langflow/frontend/assets/strikethrough-CYL8OjPi.js +6 -0
  1561. langflow/frontend/assets/subscript-DNomll7F.js +6 -0
  1562. langflow/frontend/assets/sun-Dxq-Ohhh.js +6 -0
  1563. langflow/frontend/assets/sun-dim-DgUT5N3V.js +6 -0
  1564. langflow/frontend/assets/sun-medium-BOYB43_w.js +6 -0
  1565. langflow/frontend/assets/sun-moon-hILgDRIQ.js +6 -0
  1566. langflow/frontend/assets/sun-snow-BQlPecDu.js +6 -0
  1567. langflow/frontend/assets/sunrise-BGp4lB3z.js +6 -0
  1568. langflow/frontend/assets/sunset-ChYrw7Wb.js +6 -0
  1569. langflow/frontend/assets/superscript-B0UmpzUv.js +6 -0
  1570. langflow/frontend/assets/swatch-book-Wtax8E-5.js +6 -0
  1571. langflow/frontend/assets/swiss-franc-DLcXM4tm.js +6 -0
  1572. langflow/frontend/assets/switch-camera-Dk0zxvCV.js +6 -0
  1573. langflow/frontend/assets/sword-72KHd1ef.js +6 -0
  1574. langflow/frontend/assets/swords-DVXAqwwp.js +6 -0
  1575. langflow/frontend/assets/syringe-DNvdwoly.js +6 -0
  1576. langflow/frontend/assets/table-2-CZc1LX3c.js +6 -0
  1577. langflow/frontend/assets/table-C-2llZY-.js +6 -0
  1578. langflow/frontend/assets/table-cells-merge-CDj48a7h.js +6 -0
  1579. langflow/frontend/assets/table-cells-split-CUrsUsPS.js +6 -0
  1580. langflow/frontend/assets/table-columns-split-DdQaEWio.js +6 -0
  1581. langflow/frontend/assets/table-of-contents-Bh0NGJmh.js +6 -0
  1582. langflow/frontend/assets/table-properties-CEIctTRa.js +6 -0
  1583. langflow/frontend/assets/table-rows-split-BnOupp4b.js +6 -0
  1584. langflow/frontend/assets/tablet-D5UpVHIl.js +6 -0
  1585. langflow/frontend/assets/tablet-smartphone-CwLImyCD.js +6 -0
  1586. langflow/frontend/assets/tablets-vY3CmIJ6.js +6 -0
  1587. langflow/frontend/assets/tag-iG2OUXvJ.js +6 -0
  1588. langflow/frontend/assets/tags-of9ntFMT.js +6 -0
  1589. langflow/frontend/assets/tally-1-gPlQQCPM.js +6 -0
  1590. langflow/frontend/assets/tally-2-BAQlqNEl.js +6 -0
  1591. langflow/frontend/assets/tally-3-CaxBI5ht.js +6 -0
  1592. langflow/frontend/assets/tally-4-DtVq11s1.js +6 -0
  1593. langflow/frontend/assets/tally-5-D-28BeRf.js +6 -0
  1594. langflow/frontend/assets/tangent-DpcmJNpz.js +6 -0
  1595. langflow/frontend/assets/target-BQXi0bxz.js +6 -0
  1596. langflow/frontend/assets/telescope-BNhPOcRw.js +6 -0
  1597. langflow/frontend/assets/tent-CQkp1m_k.js +6 -0
  1598. langflow/frontend/assets/tent-tree-C5oPrIR0.js +6 -0
  1599. langflow/frontend/assets/terminal-B0zf8hyo.js +6 -0
  1600. langflow/frontend/assets/test-tube-CT5J7T0e.js +6 -0
  1601. langflow/frontend/assets/test-tube-diagonal-CfOqUxO1.js +6 -0
  1602. langflow/frontend/assets/test-tubes-BmfmGaUN.js +6 -0
  1603. langflow/frontend/assets/text-CK14rLCn.js +6 -0
  1604. langflow/frontend/assets/text-cursor-input-DwNagcp5.js +6 -0
  1605. langflow/frontend/assets/text-cursor-moEhxJoy.js +6 -0
  1606. langflow/frontend/assets/text-quote-gUnGzQFO.js +6 -0
  1607. langflow/frontend/assets/text-search-Bc3cFU3a.js +6 -0
  1608. langflow/frontend/assets/text-select-BMbnxIlq.js +6 -0
  1609. langflow/frontend/assets/theater-aGfXp4hK.js +6 -0
  1610. langflow/frontend/assets/thermometer-BmStjgyd.js +6 -0
  1611. langflow/frontend/assets/thermometer-snowflake-h45vHyZF.js +6 -0
  1612. langflow/frontend/assets/thermometer-sun-BeKRfnb_.js +6 -0
  1613. langflow/frontend/assets/thumbs-down-E0TSjbaK.js +6 -0
  1614. langflow/frontend/assets/thumbs-up-CWFKQ4ow.js +6 -0
  1615. langflow/frontend/assets/ticket-check-DT3Ye_4I.js +6 -0
  1616. langflow/frontend/assets/ticket-minus-DCLo1F0H.js +6 -0
  1617. langflow/frontend/assets/ticket-percent-BcnFPjYR.js +6 -0
  1618. langflow/frontend/assets/ticket-plus-yAbKSwTd.js +6 -0
  1619. langflow/frontend/assets/ticket-qip0D7TM.js +6 -0
  1620. langflow/frontend/assets/ticket-slash-CSdW0g9w.js +6 -0
  1621. langflow/frontend/assets/ticket-x-DUHO7YS1.js +6 -0
  1622. langflow/frontend/assets/tickets-DEMbbS2q.js +6 -0
  1623. langflow/frontend/assets/tickets-plane-5VX3QPZr.js +6 -0
  1624. langflow/frontend/assets/timer-D6Li7lhZ.js +6 -0
  1625. langflow/frontend/assets/timer-off-BKpPkCwn.js +6 -0
  1626. langflow/frontend/assets/timer-reset-C9EGVyna.js +6 -0
  1627. langflow/frontend/assets/toggle-left-BHNvxsJC.js +6 -0
  1628. langflow/frontend/assets/toggle-right-DfNNHJLs.js +6 -0
  1629. langflow/frontend/assets/toilet-D-syk7CV.js +6 -0
  1630. langflow/frontend/assets/tornado-CP1YGvH6.js +6 -0
  1631. langflow/frontend/assets/torus-MTmf4lIv.js +6 -0
  1632. langflow/frontend/assets/touchpad-off-ZP4Fl4ny.js +6 -0
  1633. langflow/frontend/assets/touchpad-y3CzD_gU.js +6 -0
  1634. langflow/frontend/assets/tower-control-d5N7CCVZ.js +6 -0
  1635. langflow/frontend/assets/toy-brick-cRRKM8Be.js +6 -0
  1636. langflow/frontend/assets/tractor-DEImBTtH.js +6 -0
  1637. langflow/frontend/assets/traffic-cone-Dlk_uTIw.js +6 -0
  1638. langflow/frontend/assets/train-front-Cyx_l2JP.js +6 -0
  1639. langflow/frontend/assets/train-front-tunnel-Dd2qZl3d.js +6 -0
  1640. langflow/frontend/assets/train-track-RFIxf_BI.js +6 -0
  1641. langflow/frontend/assets/tram-front-D-uKYpec.js +6 -0
  1642. langflow/frontend/assets/transgender-CPuQe4-c.js +6 -0
  1643. langflow/frontend/assets/trash-DOr0ifPU.js +6 -0
  1644. langflow/frontend/assets/tree-deciduous-BFZpcSQT.js +6 -0
  1645. langflow/frontend/assets/tree-palm-DnX0mawJ.js +6 -0
  1646. langflow/frontend/assets/tree-pine-Dih0lWR9.js +6 -0
  1647. langflow/frontend/assets/trees-Bbj-Gs_I.js +6 -0
  1648. langflow/frontend/assets/trello-D3zIGbrI.js +6 -0
  1649. langflow/frontend/assets/trending-down-DFL3EGlI.js +6 -0
  1650. langflow/frontend/assets/trending-up-D2HQpD7V.js +6 -0
  1651. langflow/frontend/assets/trending-up-down-D9b9_7Ho.js +6 -0
  1652. langflow/frontend/assets/triangle-BT7pFSmp.js +6 -0
  1653. langflow/frontend/assets/triangle-alert-CIql8jj5.js +6 -0
  1654. langflow/frontend/assets/triangle-dashed-DjPpRldC.js +6 -0
  1655. langflow/frontend/assets/triangle-right-6j_8CHWS.js +6 -0
  1656. langflow/frontend/assets/trophy-BAT-y5ml.js +6 -0
  1657. langflow/frontend/assets/truck-DrIX12Ue.js +6 -0
  1658. langflow/frontend/assets/truck-electric-DgnoMfNk.js +6 -0
  1659. langflow/frontend/assets/turtle-DeLAzqDm.js +6 -0
  1660. langflow/frontend/assets/tv-Curs1WiT.js +6 -0
  1661. langflow/frontend/assets/tv-minimal-B04rMhtY.js +6 -0
  1662. langflow/frontend/assets/tv-minimal-play-DgOwqhiO.js +6 -0
  1663. langflow/frontend/assets/twitch-iYIWj_I2.js +6 -0
  1664. langflow/frontend/assets/twitter-CRXMuki7.js +6 -0
  1665. langflow/frontend/assets/type-outline-Daw5BpQz.js +6 -0
  1666. langflow/frontend/assets/type-x_DG-nGV.js +6 -0
  1667. langflow/frontend/assets/umbrella-BPI2f9o2.js +6 -0
  1668. langflow/frontend/assets/umbrella-off-Dbl1zQIC.js +6 -0
  1669. langflow/frontend/assets/underline-C1hdnzSx.js +6 -0
  1670. langflow/frontend/assets/undo-2-Cq8oSBlF.js +6 -0
  1671. langflow/frontend/assets/undo-BF2jLrIe.js +6 -0
  1672. langflow/frontend/assets/undo-dot-BgaKFc4b.js +6 -0
  1673. langflow/frontend/assets/unfold-horizontal-qwjHNXtJ.js +6 -0
  1674. langflow/frontend/assets/unfold-vertical-DdTBnd_B.js +6 -0
  1675. langflow/frontend/assets/ungroup-Ba9hDBB6.js +6 -0
  1676. langflow/frontend/assets/university-C7Lw-bQr.js +6 -0
  1677. langflow/frontend/assets/unlink-2-4KrLCwfH.js +6 -0
  1678. langflow/frontend/assets/unlink-B2EXUDFT.js +6 -0
  1679. langflow/frontend/assets/unplug-DBjUwQ3o.js +6 -0
  1680. langflow/frontend/assets/upload-D-byidnT.js +6 -0
  1681. langflow/frontend/assets/usb-xoep_eP3.js +6 -0
  1682. langflow/frontend/assets/use-post-add-user-HAr_9Zwy.js +1 -0
  1683. langflow/frontend/assets/user-DIVUUJ4W.js +6 -0
  1684. langflow/frontend/assets/user-check-DLug8XQe.js +6 -0
  1685. langflow/frontend/assets/user-cog-Dd5HfQwz.js +6 -0
  1686. langflow/frontend/assets/user-lock-iwKz2Nhy.js +6 -0
  1687. langflow/frontend/assets/user-minus-DQy81ieL.js +6 -0
  1688. langflow/frontend/assets/user-pen-Di0xBJzU.js +6 -0
  1689. langflow/frontend/assets/user-plus-BYVABF7M.js +6 -0
  1690. langflow/frontend/assets/user-round-C3Ya_kBC.js +6 -0
  1691. langflow/frontend/assets/user-round-check-Dtr6LAFS.js +6 -0
  1692. langflow/frontend/assets/user-round-cog-DSksqIOo.js +6 -0
  1693. langflow/frontend/assets/user-round-minus-CXWYYQ_X.js +6 -0
  1694. langflow/frontend/assets/user-round-pen-CgPXfu3a.js +6 -0
  1695. langflow/frontend/assets/user-round-plus-C0lpKZzu.js +6 -0
  1696. langflow/frontend/assets/user-round-search-wjZtVgTg.js +6 -0
  1697. langflow/frontend/assets/user-round-x-B6Zboiwn.js +6 -0
  1698. langflow/frontend/assets/user-search-_lCTdMpr.js +6 -0
  1699. langflow/frontend/assets/user-x-Dn_Ocfl6.js +6 -0
  1700. langflow/frontend/assets/users-heOYQA1R.js +6 -0
  1701. langflow/frontend/assets/users-round-BVVIFzhr.js +6 -0
  1702. langflow/frontend/assets/utensils-XbJrHdru.js +6 -0
  1703. langflow/frontend/assets/utensils-crossed-BBY8g0HA.js +6 -0
  1704. langflow/frontend/assets/utility-pole-BI5Ta-_a.js +6 -0
  1705. langflow/frontend/assets/variable-CA_MVERi.js +6 -0
  1706. langflow/frontend/assets/vault-2Tlx4WMo.js +6 -0
  1707. langflow/frontend/assets/vegan-B9Cqe9nH.js +6 -0
  1708. langflow/frontend/assets/venetian-mask-BxgIZBpm.js +6 -0
  1709. langflow/frontend/assets/venus-and-mars-Daxj0WTR.js +6 -0
  1710. langflow/frontend/assets/venus-b9BINlCA.js +6 -0
  1711. langflow/frontend/assets/vibrate-9LpBBIWE.js +6 -0
  1712. langflow/frontend/assets/vibrate-off-DUzjHM1S.js +6 -0
  1713. langflow/frontend/assets/video-CPf7ZzyN.js +6 -0
  1714. langflow/frontend/assets/video-off-Ds7teCJ8.js +6 -0
  1715. langflow/frontend/assets/videotape-CLFHceNX.js +6 -0
  1716. langflow/frontend/assets/view-C2jlfzDp.js +6 -0
  1717. langflow/frontend/assets/voicemail-DCZBh3a9.js +6 -0
  1718. langflow/frontend/assets/volleyball-Dk332p9c.js +6 -0
  1719. langflow/frontend/assets/volume-1-B5HGPifY.js +6 -0
  1720. langflow/frontend/assets/volume-2-DMNN3Rru.js +6 -0
  1721. langflow/frontend/assets/volume-C5mwH_7w.js +6 -0
  1722. langflow/frontend/assets/volume-off-DZ1rdauc.js +6 -0
  1723. langflow/frontend/assets/volume-x-B4gWhRv7.js +6 -0
  1724. langflow/frontend/assets/vote-Ci7aq5e6.js +6 -0
  1725. langflow/frontend/assets/wallet-DFN3ek_K.js +6 -0
  1726. langflow/frontend/assets/wallet-cards-DOrS7_GK.js +6 -0
  1727. langflow/frontend/assets/wallet-minimal-C-Wk3VL5.js +6 -0
  1728. langflow/frontend/assets/wallpaper-Wagu6O8j.js +6 -0
  1729. langflow/frontend/assets/wand-mz4ZhdmT.js +6 -0
  1730. langflow/frontend/assets/wand-sparkles-CAdZzdpk.js +6 -0
  1731. langflow/frontend/assets/warehouse-DmHaifZY.js +6 -0
  1732. langflow/frontend/assets/washing-machine-DqDs5yOu.js +6 -0
  1733. langflow/frontend/assets/watch-EM9JFhXF.js +6 -0
  1734. langflow/frontend/assets/waves-BD_tMnXU.js +6 -0
  1735. langflow/frontend/assets/waves-ladder-Dzta3Ijt.js +6 -0
  1736. langflow/frontend/assets/waypoints-DM2s-zQ8.js +6 -0
  1737. langflow/frontend/assets/webcam-CrS1_Kkm.js +6 -0
  1738. langflow/frontend/assets/webhook-DW5zX6qY.js +6 -0
  1739. langflow/frontend/assets/webhook-off-BWla7Mbm.js +6 -0
  1740. langflow/frontend/assets/weight-DltF2fMZ.js +6 -0
  1741. langflow/frontend/assets/wheat-B6OP7dxf.js +6 -0
  1742. langflow/frontend/assets/wheat-off-CsVdAxYC.js +6 -0
  1743. langflow/frontend/assets/whole-word-D6gWJ1GO.js +6 -0
  1744. langflow/frontend/assets/wifi-DWXUQqjq.js +6 -0
  1745. langflow/frontend/assets/wifi-high-Dt5bfCxG.js +6 -0
  1746. langflow/frontend/assets/wifi-low-BeLXd0RQ.js +6 -0
  1747. langflow/frontend/assets/wifi-off-D8rKslRN.js +6 -0
  1748. langflow/frontend/assets/wifi-pen-Bxa22EfH.js +6 -0
  1749. langflow/frontend/assets/wifi-zero-fvrdlKGm.js +6 -0
  1750. langflow/frontend/assets/wind-BmALexf4.js +6 -0
  1751. langflow/frontend/assets/wind-arrow-down-5zqbz6-b.js +6 -0
  1752. langflow/frontend/assets/wine-BJ7CaVhy.js +6 -0
  1753. langflow/frontend/assets/wine-off-Bag8rgKL.js +6 -0
  1754. langflow/frontend/assets/workflow-pZAmI3l4.js +6 -0
  1755. langflow/frontend/assets/worm-CrDDNJYH.js +6 -0
  1756. langflow/frontend/assets/wrap-text-DMuTg5bi.js +6 -0
  1757. langflow/frontend/assets/wrench-DDpbLbNT.js +6 -0
  1758. langflow/frontend/assets/youtube-CVgAO7RC.js +6 -0
  1759. langflow/frontend/assets/zap-BZJrd7Yf.js +6 -0
  1760. langflow/frontend/assets/zap-off-rBA2AoNH.js +6 -0
  1761. langflow/frontend/assets/zoom-in-BttgfsG-.js +6 -0
  1762. langflow/frontend/assets/zoom-out-D__4HjOD.js +6 -0
  1763. langflow/frontend/index.html +2 -2
  1764. langflow/initial_setup/starter_projects/Basic Prompt Chaining.json +2 -2
  1765. langflow/initial_setup/starter_projects/Basic Prompting.json +2 -2
  1766. langflow/initial_setup/starter_projects/Blog Writer.json +2 -2
  1767. langflow/initial_setup/starter_projects/Custom Component Generator.json +2 -2
  1768. langflow/initial_setup/starter_projects/Document Q&A.json +1690 -1591
  1769. langflow/initial_setup/starter_projects/Financial Report Parser.json +4 -2
  1770. langflow/initial_setup/starter_projects/Hybrid Search RAG.json +4 -2
  1771. langflow/initial_setup/starter_projects/Image Sentiment Analysis.json +4 -2
  1772. langflow/initial_setup/starter_projects/Instagram Copywriter.json +38 -9
  1773. langflow/initial_setup/starter_projects/Invoice Summarizer.json +38 -9
  1774. langflow/initial_setup/starter_projects/Knowledge Retrieval.json +2 -2
  1775. langflow/initial_setup/starter_projects/Market Research.json +38 -10
  1776. langflow/initial_setup/starter_projects/Meeting Summary.json +6 -6
  1777. langflow/initial_setup/starter_projects/Memory Chatbot.json +2 -2
  1778. langflow/initial_setup/starter_projects/News Aggregator.json +39 -9
  1779. langflow/initial_setup/starter_projects/Nvidia Remix.json +59 -34
  1780. langflow/initial_setup/starter_projects/Pok/303/251dex Agent.json" +38 -9
  1781. langflow/initial_setup/starter_projects/Portfolio Website Code Generator.json +2447 -2302
  1782. langflow/initial_setup/starter_projects/Price Deal Finder.json +38 -9
  1783. langflow/initial_setup/starter_projects/Research Agent.json +38 -9
  1784. langflow/initial_setup/starter_projects/Research Translation Loop.json +2 -2
  1785. langflow/initial_setup/starter_projects/SEO Keyword Generator.json +2 -2
  1786. langflow/initial_setup/starter_projects/SaaS Pricing.json +38 -9
  1787. langflow/initial_setup/starter_projects/Search agent.json +38 -9
  1788. langflow/initial_setup/starter_projects/Sequential Tasks Agents.json +110 -26
  1789. langflow/initial_setup/starter_projects/Simple Agent.json +38 -10
  1790. langflow/initial_setup/starter_projects/Social Media Agent.json +38 -10
  1791. langflow/initial_setup/starter_projects/Text Sentiment Analysis.json +2819 -2647
  1792. langflow/initial_setup/starter_projects/Travel Planning Agents.json +110 -26
  1793. langflow/initial_setup/starter_projects/Twitter Thread Generator.json +2 -2
  1794. langflow/initial_setup/starter_projects/Vector Store RAG.json +5110 -4849
  1795. langflow/initial_setup/starter_projects/Youtube Analysis.json +40 -12
  1796. langflow/main.py +7 -12
  1797. langflow/processing/process.py +3 -7
  1798. langflow/services/deps.py +11 -6
  1799. langflow/utils/mcp_cleanup.py +125 -0
  1800. langflow_base_nightly-1.7.0.dev32.dist-info/METADATA +99 -0
  1801. langflow_base_nightly-1.7.0.dev32.dist-info/RECORD +2278 -0
  1802. langflow/frontend/assets/SlackIcon-G2S_bCox.js +0 -1
  1803. langflow/frontend/assets/Wikipedia-B_AEASB5.js +0 -1
  1804. langflow/frontend/assets/Wolfram-pZ5x7eYJ.js +0 -1
  1805. langflow/frontend/assets/a-arrow-down-Duv2bs5w.js +0 -6
  1806. langflow/frontend/assets/a-arrow-up-DbMZDks_.js +0 -6
  1807. langflow/frontend/assets/a-large-small-Bod0qcyC.js +0 -6
  1808. langflow/frontend/assets/accessibility-dHxJ0f95.js +0 -6
  1809. langflow/frontend/assets/activity-C6E159oA.js +0 -6
  1810. langflow/frontend/assets/air-vent-D2R6MeNG.js +0 -6
  1811. langflow/frontend/assets/airplay-iBwGPVS6.js +0 -6
  1812. langflow/frontend/assets/alarm-clock-B6C5DRS5.js +0 -6
  1813. langflow/frontend/assets/alarm-clock-check-CJQ4z6pi.js +0 -6
  1814. langflow/frontend/assets/alarm-clock-minus-BoLBeIrf.js +0 -6
  1815. langflow/frontend/assets/alarm-clock-off-5SgyJUyh.js +0 -6
  1816. langflow/frontend/assets/alarm-clock-plus-CrRXytnW.js +0 -6
  1817. langflow/frontend/assets/alarm-smoke-C3eUEN_X.js +0 -6
  1818. langflow/frontend/assets/album-Dk0aoeeR.js +0 -6
  1819. langflow/frontend/assets/align-center-BgxcpYDg.js +0 -6
  1820. langflow/frontend/assets/align-center-horizontal-D5b_BHoa.js +0 -6
  1821. langflow/frontend/assets/align-center-vertical-f3HnSZFD.js +0 -6
  1822. langflow/frontend/assets/align-end-horizontal-Dm-2A1b-.js +0 -6
  1823. langflow/frontend/assets/align-end-vertical-DEjcnjr9.js +0 -6
  1824. langflow/frontend/assets/align-horizontal-distribute-center-BQJEIObp.js +0 -6
  1825. langflow/frontend/assets/align-horizontal-distribute-end-DytX-LtG.js +0 -6
  1826. langflow/frontend/assets/align-horizontal-distribute-start-CTZ04c8g.js +0 -6
  1827. langflow/frontend/assets/align-horizontal-justify-center-C-xSntJ9.js +0 -6
  1828. langflow/frontend/assets/align-horizontal-justify-end-BcxSTq3D.js +0 -6
  1829. langflow/frontend/assets/align-horizontal-justify-start-LaNi3rK8.js +0 -6
  1830. langflow/frontend/assets/align-horizontal-space-around-cCzkfbo1.js +0 -6
  1831. langflow/frontend/assets/align-horizontal-space-between-CjhA8njV.js +0 -6
  1832. langflow/frontend/assets/align-justify-D5zERueE.js +0 -6
  1833. langflow/frontend/assets/align-left-3ptrswG-.js +0 -6
  1834. langflow/frontend/assets/align-right-DuCbTEzL.js +0 -6
  1835. langflow/frontend/assets/align-start-horizontal-BLgQQjYw.js +0 -6
  1836. langflow/frontend/assets/align-start-vertical-BmqoinBJ.js +0 -6
  1837. langflow/frontend/assets/align-vertical-distribute-center-DK5YtOoV.js +0 -6
  1838. langflow/frontend/assets/align-vertical-distribute-end-DQuQnoH8.js +0 -6
  1839. langflow/frontend/assets/align-vertical-distribute-start-D0km_dX4.js +0 -6
  1840. langflow/frontend/assets/align-vertical-justify-center-II-FXf0R.js +0 -6
  1841. langflow/frontend/assets/align-vertical-justify-end-Bb36bglW.js +0 -6
  1842. langflow/frontend/assets/align-vertical-justify-start-sUoV33a0.js +0 -6
  1843. langflow/frontend/assets/align-vertical-space-around-Rz8SiDzI.js +0 -6
  1844. langflow/frontend/assets/align-vertical-space-between-DWHcAsVs.js +0 -6
  1845. langflow/frontend/assets/ambulance-CBRXv4BP.js +0 -6
  1846. langflow/frontend/assets/ampersand-gK7_DxFx.js +0 -6
  1847. langflow/frontend/assets/ampersands-DfPFTnYc.js +0 -6
  1848. langflow/frontend/assets/amphora-DhqlYGiP.js +0 -6
  1849. langflow/frontend/assets/anchor-Pryb4g_L.js +0 -6
  1850. langflow/frontend/assets/angry-Clvcw9I2.js +0 -6
  1851. langflow/frontend/assets/annoyed-CSTCqMFC.js +0 -6
  1852. langflow/frontend/assets/antenna-BQKwVw88.js +0 -6
  1853. langflow/frontend/assets/anvil-D_Zt0AjG.js +0 -6
  1854. langflow/frontend/assets/aperture-CyNREctR.js +0 -6
  1855. langflow/frontend/assets/app-window-Ci_3Pjwo.js +0 -6
  1856. langflow/frontend/assets/app-window-mac-BZ6HzNLo.js +0 -6
  1857. langflow/frontend/assets/apple-Didx6xWQ.js +0 -6
  1858. langflow/frontend/assets/archive-C1LAh0xk.js +0 -6
  1859. langflow/frontend/assets/archive-restore-CAlJhOPr.js +0 -6
  1860. langflow/frontend/assets/archive-x-BhRmuG6a.js +0 -6
  1861. langflow/frontend/assets/armchair-BjwQ-L18.js +0 -6
  1862. langflow/frontend/assets/arrow-big-down-BH_HJWRF.js +0 -6
  1863. langflow/frontend/assets/arrow-big-down-dash-OtcguFmg.js +0 -6
  1864. langflow/frontend/assets/arrow-big-left-dash-BmpL8aVH.js +0 -6
  1865. langflow/frontend/assets/arrow-big-left-oRsdooJP.js +0 -6
  1866. langflow/frontend/assets/arrow-big-right-BWMrwLcz.js +0 -6
  1867. langflow/frontend/assets/arrow-big-right-dash-CI-F8ITb.js +0 -6
  1868. langflow/frontend/assets/arrow-big-up-D3GJ0Q03.js +0 -6
  1869. langflow/frontend/assets/arrow-big-up-dash-ok5-Cgaj.js +0 -6
  1870. langflow/frontend/assets/arrow-down-0-1-BrJQcjQ8.js +0 -6
  1871. langflow/frontend/assets/arrow-down-1-0-DLdmjxp3.js +0 -6
  1872. langflow/frontend/assets/arrow-down-a-z-BITX7ILG.js +0 -6
  1873. langflow/frontend/assets/arrow-down-from-line-olCnw9E0.js +0 -6
  1874. langflow/frontend/assets/arrow-down-left-DjyO39AP.js +0 -6
  1875. langflow/frontend/assets/arrow-down-narrow-wide-BwqpJoh-.js +0 -6
  1876. langflow/frontend/assets/arrow-down-right-RkANGvlA.js +0 -6
  1877. langflow/frontend/assets/arrow-down-tjihr6Hv.js +0 -6
  1878. langflow/frontend/assets/arrow-down-to-dot-Cbp3pWuX.js +0 -6
  1879. langflow/frontend/assets/arrow-down-to-line-DWOGWiWP.js +0 -6
  1880. langflow/frontend/assets/arrow-down-up-BuH8-7Vq.js +0 -6
  1881. langflow/frontend/assets/arrow-down-wide-narrow-DiWyVAZn.js +0 -6
  1882. langflow/frontend/assets/arrow-down-z-a-DylbJzrp.js +0 -6
  1883. langflow/frontend/assets/arrow-left-B8qKS_-S.js +0 -6
  1884. langflow/frontend/assets/arrow-left-from-line-2-R_gt_R.js +0 -6
  1885. langflow/frontend/assets/arrow-left-right-Bd9qcJO-.js +0 -6
  1886. langflow/frontend/assets/arrow-left-to-line-dneBsZ1a.js +0 -6
  1887. langflow/frontend/assets/arrow-right-BC64dA1v.js +0 -6
  1888. langflow/frontend/assets/arrow-right-from-line-BvI4oT0P.js +0 -6
  1889. langflow/frontend/assets/arrow-right-left-D_dxzIDR.js +0 -6
  1890. langflow/frontend/assets/arrow-right-to-line-nCQoVvW3.js +0 -6
  1891. langflow/frontend/assets/arrow-up-0-1-HmfnhTeX.js +0 -6
  1892. langflow/frontend/assets/arrow-up-1-0-v7ys4Uhc.js +0 -6
  1893. langflow/frontend/assets/arrow-up-3oTNmG8W.js +0 -6
  1894. langflow/frontend/assets/arrow-up-a-z-CrWiS_IE.js +0 -6
  1895. langflow/frontend/assets/arrow-up-down-Xk--U_2q.js +0 -6
  1896. langflow/frontend/assets/arrow-up-from-dot-CER1dkf3.js +0 -6
  1897. langflow/frontend/assets/arrow-up-from-line-Qjy5dxjA.js +0 -6
  1898. langflow/frontend/assets/arrow-up-left-yYkQA7gA.js +0 -6
  1899. langflow/frontend/assets/arrow-up-narrow-wide-BXKJIcx1.js +0 -6
  1900. langflow/frontend/assets/arrow-up-right-DT5nMbNv.js +0 -6
  1901. langflow/frontend/assets/arrow-up-to-line-CwVaKRpl.js +0 -6
  1902. langflow/frontend/assets/arrow-up-wide-narrow-CmK2sdOj.js +0 -6
  1903. langflow/frontend/assets/arrow-up-z-a-B3KLr66S.js +0 -6
  1904. langflow/frontend/assets/arrows-up-from-line-CNYgrIna.js +0 -6
  1905. langflow/frontend/assets/asterisk-D3FmiyVg.js +0 -6
  1906. langflow/frontend/assets/at-sign-DnHlYoDS.js +0 -6
  1907. langflow/frontend/assets/atom-BDFWg7Hb.js +0 -6
  1908. langflow/frontend/assets/audio-lines-soAB3SKZ.js +0 -6
  1909. langflow/frontend/assets/audio-waveform-VH-RhXeu.js +0 -6
  1910. langflow/frontend/assets/award-Y0b5pkZ4.js +0 -6
  1911. langflow/frontend/assets/axe-DcELqYH_.js +0 -6
  1912. langflow/frontend/assets/axis-3d-B4W8wp-R.js +0 -6
  1913. langflow/frontend/assets/baby-CzPHRkqg.js +0 -6
  1914. langflow/frontend/assets/backpack-UmA9ZQOs.js +0 -6
  1915. langflow/frontend/assets/badge-Q8kcCoLy.js +0 -6
  1916. langflow/frontend/assets/badge-alert-BldtZ2Ss.js +0 -6
  1917. langflow/frontend/assets/badge-cent-CjZbEOIu.js +0 -6
  1918. langflow/frontend/assets/badge-check-Dw2OIwnu.js +0 -6
  1919. langflow/frontend/assets/badge-dollar-sign-8FVJ4Sj4.js +0 -6
  1920. langflow/frontend/assets/badge-euro-jq0d6OA2.js +0 -6
  1921. langflow/frontend/assets/badge-help-DzSdXfUF.js +0 -6
  1922. langflow/frontend/assets/badge-indian-rupee-CP7hMho6.js +0 -6
  1923. langflow/frontend/assets/badge-info-OrR0Q0Vt.js +0 -6
  1924. langflow/frontend/assets/badge-japanese-yen-CYZlxCpb.js +0 -6
  1925. langflow/frontend/assets/badge-minus-dJll4zYV.js +0 -6
  1926. langflow/frontend/assets/badge-percent-DJmEeLEm.js +0 -6
  1927. langflow/frontend/assets/badge-plus-Jw-bEe_V.js +0 -6
  1928. langflow/frontend/assets/badge-pound-sterling-BpR6VaU9.js +0 -6
  1929. langflow/frontend/assets/badge-russian-ruble-ggq6Uyz8.js +0 -6
  1930. langflow/frontend/assets/badge-swiss-franc-D56lVC2X.js +0 -6
  1931. langflow/frontend/assets/badge-x-4F5XcnLF.js +0 -6
  1932. langflow/frontend/assets/baggage-claim-BldvAQ6D.js +0 -6
  1933. langflow/frontend/assets/ban-ExLzcG0f.js +0 -6
  1934. langflow/frontend/assets/banana-dPncqJJh.js +0 -6
  1935. langflow/frontend/assets/bandage-DzawO54x.js +0 -6
  1936. langflow/frontend/assets/banknote-DrPgkzKv.js +0 -6
  1937. langflow/frontend/assets/banknote-arrow-down-DeAe0eF_.js +0 -6
  1938. langflow/frontend/assets/banknote-arrow-up-CoglFWin.js +0 -6
  1939. langflow/frontend/assets/banknote-x-DvuobxRP.js +0 -6
  1940. langflow/frontend/assets/barcode-CGEV5y3R.js +0 -6
  1941. langflow/frontend/assets/baseline-DbU-ZjkV.js +0 -6
  1942. langflow/frontend/assets/bath-BsC_9_Iy.js +0 -6
  1943. langflow/frontend/assets/battery-charging-Cuoi_Saf.js +0 -6
  1944. langflow/frontend/assets/battery-full-DYdkmo4J.js +0 -6
  1945. langflow/frontend/assets/battery-low-m69LykhY.js +0 -6
  1946. langflow/frontend/assets/battery-medium-C0XOd9Hc.js +0 -6
  1947. langflow/frontend/assets/battery-plus-LZF_cc31.js +0 -6
  1948. langflow/frontend/assets/battery-vHrKo45i.js +0 -6
  1949. langflow/frontend/assets/battery-warning-C0MebJXd.js +0 -6
  1950. langflow/frontend/assets/beaker-DPP5JZCa.js +0 -6
  1951. langflow/frontend/assets/bean-Dpfp_RfT.js +0 -6
  1952. langflow/frontend/assets/bean-off-D8j8hqmt.js +0 -6
  1953. langflow/frontend/assets/bed-Je4kYrhF.js +0 -6
  1954. langflow/frontend/assets/bed-double-DcFK0ABw.js +0 -6
  1955. langflow/frontend/assets/bed-single-CDPpiC2Z.js +0 -6
  1956. langflow/frontend/assets/beef-CyqOuFkh.js +0 -6
  1957. langflow/frontend/assets/beer-DYSl9g66.js +0 -6
  1958. langflow/frontend/assets/beer-off-BXHsTxEE.js +0 -6
  1959. langflow/frontend/assets/bell-BtQP4njc.js +0 -6
  1960. langflow/frontend/assets/bell-dot-DiPQyHL_.js +0 -6
  1961. langflow/frontend/assets/bell-electric-CsO3gcXs.js +0 -6
  1962. langflow/frontend/assets/bell-minus-BPoeVHwA.js +0 -6
  1963. langflow/frontend/assets/bell-off-C_v9O2Bl.js +0 -6
  1964. langflow/frontend/assets/bell-plus-B6Vp6j3o.js +0 -6
  1965. langflow/frontend/assets/bell-ring-CxgNX1nn.js +0 -6
  1966. langflow/frontend/assets/between-horizontal-end-IQ-PfUeZ.js +0 -6
  1967. langflow/frontend/assets/between-horizontal-start-DYSzoJTc.js +0 -6
  1968. langflow/frontend/assets/between-vertical-end-CASbT4sq.js +0 -6
  1969. langflow/frontend/assets/between-vertical-start-DMJX5zKE.js +0 -6
  1970. langflow/frontend/assets/biceps-flexed-bMdgFlGB.js +0 -6
  1971. langflow/frontend/assets/bike-DBirwNOq.js +0 -6
  1972. langflow/frontend/assets/binary-BmJgc0um.js +0 -6
  1973. langflow/frontend/assets/binoculars-D7mzog3f.js +0 -6
  1974. langflow/frontend/assets/biohazard-CX2k_jot.js +0 -6
  1975. langflow/frontend/assets/bird-B4vrqAp6.js +0 -6
  1976. langflow/frontend/assets/bitcoin-3TIPHHHt.js +0 -6
  1977. langflow/frontend/assets/blend-B3y-eiL7.js +0 -6
  1978. langflow/frontend/assets/blinds-8MX8ks4X.js +0 -6
  1979. langflow/frontend/assets/blocks-weq9hE53.js +0 -6
  1980. langflow/frontend/assets/bluetooth-B7nXOx0U.js +0 -6
  1981. langflow/frontend/assets/bluetooth-connected-DTv34pRm.js +0 -6
  1982. langflow/frontend/assets/bluetooth-off-DV0aXjKc.js +0 -6
  1983. langflow/frontend/assets/bluetooth-searching-CkmZHqrf.js +0 -6
  1984. langflow/frontend/assets/bold-DCmI3dcA.js +0 -6
  1985. langflow/frontend/assets/bolt-B-RwzsAl.js +0 -6
  1986. langflow/frontend/assets/bomb-CE-SONFe.js +0 -6
  1987. langflow/frontend/assets/bone-GVsMS54u.js +0 -6
  1988. langflow/frontend/assets/book-CyFbZHg7.js +0 -6
  1989. langflow/frontend/assets/book-a-DXqmvul2.js +0 -6
  1990. langflow/frontend/assets/book-audio-BSTqP7F-.js +0 -6
  1991. langflow/frontend/assets/book-check-DmniL0Ny.js +0 -6
  1992. langflow/frontend/assets/book-copy-CXbLQDlc.js +0 -6
  1993. langflow/frontend/assets/book-dashed-uTj4e459.js +0 -6
  1994. langflow/frontend/assets/book-down-DjnQKNjS.js +0 -6
  1995. langflow/frontend/assets/book-headphones-CQhWp-tu.js +0 -6
  1996. langflow/frontend/assets/book-heart-BbkLJtA_.js +0 -6
  1997. langflow/frontend/assets/book-image-CQiu9GkS.js +0 -6
  1998. langflow/frontend/assets/book-key-DSLEGI_T.js +0 -6
  1999. langflow/frontend/assets/book-lock-CpK08mOT.js +0 -6
  2000. langflow/frontend/assets/book-marked-D5qL3CLH.js +0 -6
  2001. langflow/frontend/assets/book-minus-BBa3wuBP.js +0 -6
  2002. langflow/frontend/assets/book-open-Dm5zc4sc.js +0 -6
  2003. langflow/frontend/assets/book-open-check-vX7tOz12.js +0 -6
  2004. langflow/frontend/assets/book-open-text-fbOtdA56.js +0 -6
  2005. langflow/frontend/assets/book-plus-R7jk7n5R.js +0 -6
  2006. langflow/frontend/assets/book-text-C8Wx4oTo.js +0 -6
  2007. langflow/frontend/assets/book-type-BiyBTBCC.js +0 -6
  2008. langflow/frontend/assets/book-up-2-Cerree_p.js +0 -6
  2009. langflow/frontend/assets/book-up-Cw2dVWwc.js +0 -6
  2010. langflow/frontend/assets/book-user-DxGbdnt6.js +0 -6
  2011. langflow/frontend/assets/book-x-D0AUhFLA.js +0 -6
  2012. langflow/frontend/assets/bookmark-BQyvYo-X.js +0 -6
  2013. langflow/frontend/assets/bookmark-check-CTK69BlQ.js +0 -6
  2014. langflow/frontend/assets/bookmark-minus-DLURqTHe.js +0 -6
  2015. langflow/frontend/assets/bookmark-plus-CFuPv2Re.js +0 -6
  2016. langflow/frontend/assets/bookmark-x-9ftHAcp8.js +0 -6
  2017. langflow/frontend/assets/boom-box-B-N4KziX.js +0 -6
  2018. langflow/frontend/assets/bot-CesS0TV0.js +0 -6
  2019. langflow/frontend/assets/bot-message-square-BRXeS4Id.js +0 -6
  2020. langflow/frontend/assets/bot-off-CjmGIQPm.js +0 -6
  2021. langflow/frontend/assets/bow-arrow-B8imFCky.js +0 -6
  2022. langflow/frontend/assets/box-B8vJ0qli.js +0 -6
  2023. langflow/frontend/assets/boxes-dAoyZFTm.js +0 -6
  2024. langflow/frontend/assets/braces-CMC7CWA6.js +0 -6
  2025. langflow/frontend/assets/brackets-DXMq4V3m.js +0 -6
  2026. langflow/frontend/assets/brain-BYQ2gUtx.js +0 -6
  2027. langflow/frontend/assets/brain-circuit-DzPvfiGV.js +0 -6
  2028. langflow/frontend/assets/brain-cog-XvHk9_vz.js +0 -6
  2029. langflow/frontend/assets/brick-wall-Bm1rMhXV.js +0 -6
  2030. langflow/frontend/assets/brick-wall-fire-CvOztddK.js +0 -6
  2031. langflow/frontend/assets/briefcase-SiXLCIh0.js +0 -6
  2032. langflow/frontend/assets/briefcase-business-8CdvUlgN.js +0 -6
  2033. langflow/frontend/assets/briefcase-conveyor-belt-DH2Kg4GM.js +0 -6
  2034. langflow/frontend/assets/briefcase-medical-DZ_i4my1.js +0 -6
  2035. langflow/frontend/assets/bring-to-front-Bm8ZBSJH.js +0 -6
  2036. langflow/frontend/assets/brush-pQ9WlXUv.js +0 -6
  2037. langflow/frontend/assets/bubbles-DHPaBrhS.js +0 -6
  2038. langflow/frontend/assets/bug-CKbUls5M.js +0 -6
  2039. langflow/frontend/assets/bug-off-Cpg5oVZP.js +0 -6
  2040. langflow/frontend/assets/bug-play-Bj15xvB2.js +0 -6
  2041. langflow/frontend/assets/building-2-CLAfCwR2.js +0 -6
  2042. langflow/frontend/assets/building-CNY9xIiI.js +0 -6
  2043. langflow/frontend/assets/bus-DRijDIHT.js +0 -6
  2044. langflow/frontend/assets/bus-front-C8zy_ZAx.js +0 -6
  2045. langflow/frontend/assets/cable-car-CKuhQDo6.js +0 -6
  2046. langflow/frontend/assets/cable-kX9yYisM.js +0 -6
  2047. langflow/frontend/assets/cake-CPggL9m8.js +0 -6
  2048. langflow/frontend/assets/cake-slice-DzSkK2Du.js +0 -6
  2049. langflow/frontend/assets/calculator-TBbkn6Lw.js +0 -6
  2050. langflow/frontend/assets/calendar-1-Bk34b2-v.js +0 -6
  2051. langflow/frontend/assets/calendar-D_J3eF6y.js +0 -6
  2052. langflow/frontend/assets/calendar-arrow-down-AdHCa0GM.js +0 -6
  2053. langflow/frontend/assets/calendar-arrow-up-Do2VtaT7.js +0 -6
  2054. langflow/frontend/assets/calendar-check-2-tPUqt6Hx.js +0 -6
  2055. langflow/frontend/assets/calendar-check-CvIBlIYc.js +0 -6
  2056. langflow/frontend/assets/calendar-clock-COv8e0on.js +0 -6
  2057. langflow/frontend/assets/calendar-cog-Bmfe62G_.js +0 -6
  2058. langflow/frontend/assets/calendar-days-BrUdPPAY.js +0 -6
  2059. langflow/frontend/assets/calendar-fold-BE3Yp08Z.js +0 -6
  2060. langflow/frontend/assets/calendar-heart-CKP1Jit9.js +0 -6
  2061. langflow/frontend/assets/calendar-minus-2-B8RQ3dCf.js +0 -6
  2062. langflow/frontend/assets/calendar-minus-C1ZcCvVA.js +0 -6
  2063. langflow/frontend/assets/calendar-off-DbCLq2kw.js +0 -6
  2064. langflow/frontend/assets/calendar-plus-2-C0mp9yfv.js +0 -6
  2065. langflow/frontend/assets/calendar-plus-MP4jApKP.js +0 -6
  2066. langflow/frontend/assets/calendar-range-Cw0G9Q3w.js +0 -6
  2067. langflow/frontend/assets/calendar-search-jAviaul_.js +0 -6
  2068. langflow/frontend/assets/calendar-sync-Bhdfl5mM.js +0 -6
  2069. langflow/frontend/assets/calendar-x-2-Ceck6Z2a.js +0 -6
  2070. langflow/frontend/assets/calendar-x-CEV72rB-.js +0 -6
  2071. langflow/frontend/assets/camera-BX8eeMEC.js +0 -6
  2072. langflow/frontend/assets/camera-off-C8Fo4jJ2.js +0 -6
  2073. langflow/frontend/assets/candy-Cs0WhnDc.js +0 -6
  2074. langflow/frontend/assets/candy-cane-CxNAZPe3.js +0 -6
  2075. langflow/frontend/assets/candy-off-BNc_51EL.js +0 -6
  2076. langflow/frontend/assets/cannabis-KeunmFKi.js +0 -6
  2077. langflow/frontend/assets/captions-BMThyrM9.js +0 -6
  2078. langflow/frontend/assets/captions-off-CBB-y5Wz.js +0 -6
  2079. langflow/frontend/assets/car-D2IuMCFd.js +0 -6
  2080. langflow/frontend/assets/car-front-B5dmY5DE.js +0 -6
  2081. langflow/frontend/assets/car-taxi-front-CZONU5YG.js +0 -6
  2082. langflow/frontend/assets/caravan-DRQeMOo6.js +0 -6
  2083. langflow/frontend/assets/carrot-CTcsK8C1.js +0 -6
  2084. langflow/frontend/assets/case-lower-C9Dkwjwj.js +0 -6
  2085. langflow/frontend/assets/case-sensitive-DX2BIc3m.js +0 -6
  2086. langflow/frontend/assets/case-upper-D6J7sWZP.js +0 -6
  2087. langflow/frontend/assets/cassette-tape-B4q2doLI.js +0 -6
  2088. langflow/frontend/assets/cast-DpjAM3H9.js +0 -6
  2089. langflow/frontend/assets/castle-iznKZUW5.js +0 -6
  2090. langflow/frontend/assets/cat-Dm0EqhjP.js +0 -6
  2091. langflow/frontend/assets/cctv-BKJ4PDYi.js +0 -6
  2092. langflow/frontend/assets/chart-area-D9WSelTk.js +0 -6
  2093. langflow/frontend/assets/chart-bar-CwVUMHvx.js +0 -6
  2094. langflow/frontend/assets/chart-bar-big-B-PjP81N.js +0 -6
  2095. langflow/frontend/assets/chart-bar-decreasing-C0-nMCFS.js +0 -6
  2096. langflow/frontend/assets/chart-bar-increasing-DNC0AY-L.js +0 -6
  2097. langflow/frontend/assets/chart-bar-stacked-BvdZr8uq.js +0 -6
  2098. langflow/frontend/assets/chart-candlestick-BzQg2vSd.js +0 -6
  2099. langflow/frontend/assets/chart-column-Ca8RYY0t.js +0 -6
  2100. langflow/frontend/assets/chart-column-big-ogOV9WLu.js +0 -6
  2101. langflow/frontend/assets/chart-column-decreasing--Cc_NaHp.js +0 -6
  2102. langflow/frontend/assets/chart-column-increasing-Dkd865Sm.js +0 -6
  2103. langflow/frontend/assets/chart-column-stacked-RV-q9H6v.js +0 -6
  2104. langflow/frontend/assets/chart-gantt-4X6Jsp5U.js +0 -6
  2105. langflow/frontend/assets/chart-line-IJ1Ubv6L.js +0 -6
  2106. langflow/frontend/assets/chart-network-DBosFLce.js +0 -6
  2107. langflow/frontend/assets/chart-no-axes-column-decreasing-Cc2M1GNc.js +0 -6
  2108. langflow/frontend/assets/chart-no-axes-column-increasing-D7ithiC-.js +0 -6
  2109. langflow/frontend/assets/chart-no-axes-column-nArCjaVr.js +0 -6
  2110. langflow/frontend/assets/chart-no-axes-combined-CsZ6rTQU.js +0 -6
  2111. langflow/frontend/assets/chart-no-axes-gantt-xbP_7kVH.js +0 -6
  2112. langflow/frontend/assets/chart-pie-Bv4ZpMkx.js +0 -6
  2113. langflow/frontend/assets/chart-scatter-ByZbi6zq.js +0 -6
  2114. langflow/frontend/assets/chart-spline-B0oylpmk.js +0 -6
  2115. langflow/frontend/assets/check-check-DxK_ryZF.js +0 -6
  2116. langflow/frontend/assets/chef-hat-DbbEf3Mc.js +0 -6
  2117. langflow/frontend/assets/cherry-67plORak.js +0 -6
  2118. langflow/frontend/assets/chevron-first-DUQ2vuWW.js +0 -6
  2119. langflow/frontend/assets/chevron-last-Bis2pQWl.js +0 -6
  2120. langflow/frontend/assets/chevron-left-41wwU4bo.js +0 -6
  2121. langflow/frontend/assets/chevron-right-Dh9mMuzf.js +0 -6
  2122. langflow/frontend/assets/chevrons-down-pu1Zmzv8.js +0 -6
  2123. langflow/frontend/assets/chevrons-down-up-rYr3cJ-M.js +0 -6
  2124. langflow/frontend/assets/chevrons-left-DUvhD-Uq.js +0 -6
  2125. langflow/frontend/assets/chevrons-left-right-CCB4CSvW.js +0 -6
  2126. langflow/frontend/assets/chevrons-left-right-ellipsis-Cv2YWE0P.js +0 -6
  2127. langflow/frontend/assets/chevrons-right-0efN4yAz.js +0 -6
  2128. langflow/frontend/assets/chevrons-right-left-G4qFZDd0.js +0 -6
  2129. langflow/frontend/assets/chevrons-up-CLmfjqMS.js +0 -6
  2130. langflow/frontend/assets/chrome-Bo5ffzuV.js +0 -6
  2131. langflow/frontend/assets/church-BkP4cTtP.js +0 -6
  2132. langflow/frontend/assets/cigarette-BGElZ6yF.js +0 -6
  2133. langflow/frontend/assets/cigarette-off-BBWpV7gi.js +0 -6
  2134. langflow/frontend/assets/circle-alert-BBZzeQbd.js +0 -6
  2135. langflow/frontend/assets/circle-arrow-down-C14E0ERv.js +0 -6
  2136. langflow/frontend/assets/circle-arrow-left-CLZW9QB2.js +0 -6
  2137. langflow/frontend/assets/circle-arrow-out-down-left-BV0fIhs0.js +0 -6
  2138. langflow/frontend/assets/circle-arrow-out-down-right-C_aqv8qP.js +0 -6
  2139. langflow/frontend/assets/circle-arrow-out-up-left-MMz8AHLL.js +0 -6
  2140. langflow/frontend/assets/circle-arrow-out-up-right-BS_Tbf5h.js +0 -6
  2141. langflow/frontend/assets/circle-arrow-right-B1o0tQEH.js +0 -6
  2142. langflow/frontend/assets/circle-arrow-up-DXRdieGn.js +0 -6
  2143. langflow/frontend/assets/circle-check-B5unmRao.js +0 -6
  2144. langflow/frontend/assets/circle-check-big-BUcyegV1.js +0 -6
  2145. langflow/frontend/assets/circle-chevron-down-h8nD5WC0.js +0 -6
  2146. langflow/frontend/assets/circle-chevron-left-BcVSOpRZ.js +0 -6
  2147. langflow/frontend/assets/circle-chevron-right-B8C8bzSY.js +0 -6
  2148. langflow/frontend/assets/circle-chevron-up-Y5p6wGpV.js +0 -6
  2149. langflow/frontend/assets/circle-dashed-Cfqw7PiM.js +0 -6
  2150. langflow/frontend/assets/circle-divide-E37-nFJG.js +0 -6
  2151. langflow/frontend/assets/circle-dollar-sign-CTT1exxX.js +0 -6
  2152. langflow/frontend/assets/circle-dot-DCntgvFi.js +0 -6
  2153. langflow/frontend/assets/circle-dot-dashed-DEKimjtP.js +0 -6
  2154. langflow/frontend/assets/circle-ellipsis-DNhOQxO4.js +0 -6
  2155. langflow/frontend/assets/circle-equal-D4BUYhVP.js +0 -6
  2156. langflow/frontend/assets/circle-fading-arrow-up-D_pQ475U.js +0 -6
  2157. langflow/frontend/assets/circle-fading-plus-DwasXMs_.js +0 -6
  2158. langflow/frontend/assets/circle-gauge-DurDZlZH.js +0 -6
  2159. langflow/frontend/assets/circle-help-zUTfFOXl.js +0 -6
  2160. langflow/frontend/assets/circle-minus-CLxj3XRq.js +0 -6
  2161. langflow/frontend/assets/circle-off-DF7gMh2O.js +0 -6
  2162. langflow/frontend/assets/circle-parking-DBiBEIM2.js +0 -6
  2163. langflow/frontend/assets/circle-parking-off-aVBQNlzK.js +0 -6
  2164. langflow/frontend/assets/circle-pause-9ZQqDgLG.js +0 -6
  2165. langflow/frontend/assets/circle-percent-DqybFLw5.js +0 -6
  2166. langflow/frontend/assets/circle-play-uPLQiSkI.js +0 -6
  2167. langflow/frontend/assets/circle-plus-BTY_dOP5.js +0 -6
  2168. langflow/frontend/assets/circle-power-C7hnJCg5.js +0 -6
  2169. langflow/frontend/assets/circle-slash-2-BZPEm9lT.js +0 -6
  2170. langflow/frontend/assets/circle-slash-CGkMTnFn.js +0 -6
  2171. langflow/frontend/assets/circle-small-DSHLjR6H.js +0 -6
  2172. langflow/frontend/assets/circle-stop-iD7Qnka5.js +0 -6
  2173. langflow/frontend/assets/circle-user-MUfEP22y.js +0 -6
  2174. langflow/frontend/assets/circle-user-round-CnNSivrX.js +0 -6
  2175. langflow/frontend/assets/circuit-board-mxk0Fm4J.js +0 -6
  2176. langflow/frontend/assets/citrus-CkeD2Fc2.js +0 -6
  2177. langflow/frontend/assets/clapperboard-DTjdwx8Y.js +0 -6
  2178. langflow/frontend/assets/clipboard-D0CjWi7l.js +0 -6
  2179. langflow/frontend/assets/clipboard-check-Dli_Y_nQ.js +0 -6
  2180. langflow/frontend/assets/clipboard-copy-DNZAeE_a.js +0 -6
  2181. langflow/frontend/assets/clipboard-list-DA7zM9Hz.js +0 -6
  2182. langflow/frontend/assets/clipboard-minus-BANPBG5u.js +0 -6
  2183. langflow/frontend/assets/clipboard-paste-BXCjoxMJ.js +0 -6
  2184. langflow/frontend/assets/clipboard-pen-line-Drsmwx-C.js +0 -6
  2185. langflow/frontend/assets/clipboard-pen-xvEeR19y.js +0 -6
  2186. langflow/frontend/assets/clipboard-plus-DrvqVnQ8.js +0 -6
  2187. langflow/frontend/assets/clipboard-type-D5aEj3i4.js +0 -6
  2188. langflow/frontend/assets/clipboard-x-Cc27g2FM.js +0 -6
  2189. langflow/frontend/assets/clock-1-D3t1loYu.js +0 -6
  2190. langflow/frontend/assets/clock-10-DE96JiSp.js +0 -6
  2191. langflow/frontend/assets/clock-11-_kuPxfKL.js +0 -6
  2192. langflow/frontend/assets/clock-12-CApTUbZO.js +0 -6
  2193. langflow/frontend/assets/clock-2-DAfJEwTi.js +0 -6
  2194. langflow/frontend/assets/clock-3-XtastUdB.js +0 -6
  2195. langflow/frontend/assets/clock-4-CAL4vpZE.js +0 -6
  2196. langflow/frontend/assets/clock-5-DF1zdnrk.js +0 -6
  2197. langflow/frontend/assets/clock-6-BOp3JNXk.js +0 -6
  2198. langflow/frontend/assets/clock-7-Dx6t12uz.js +0 -6
  2199. langflow/frontend/assets/clock-8-CvBlUPX9.js +0 -6
  2200. langflow/frontend/assets/clock-9-Dv-Fr7QM.js +0 -6
  2201. langflow/frontend/assets/clock-Co-Q5-8g.js +0 -6
  2202. langflow/frontend/assets/clock-alert-CJwNdScP.js +0 -6
  2203. langflow/frontend/assets/clock-arrow-down-Q_329JeL.js +0 -6
  2204. langflow/frontend/assets/clock-arrow-up-Bu51C0MN.js +0 -6
  2205. langflow/frontend/assets/clock-fading-BB6Z93o_.js +0 -6
  2206. langflow/frontend/assets/cloud-alert-WzB0zhYA.js +0 -6
  2207. langflow/frontend/assets/cloud-cog-itJRhXLN.js +0 -6
  2208. langflow/frontend/assets/cloud-download-D29nKk2W.js +0 -6
  2209. langflow/frontend/assets/cloud-drizzle-CbVh_APS.js +0 -6
  2210. langflow/frontend/assets/cloud-fog-BNaFzDi2.js +0 -6
  2211. langflow/frontend/assets/cloud-hail-BaRiYmap.js +0 -6
  2212. langflow/frontend/assets/cloud-lightning-CHfNrZtm.js +0 -6
  2213. langflow/frontend/assets/cloud-moon-eQy6QoHc.js +0 -6
  2214. langflow/frontend/assets/cloud-moon-rain-DpORmjol.js +0 -6
  2215. langflow/frontend/assets/cloud-off-CNLgOkWb.js +0 -6
  2216. langflow/frontend/assets/cloud-piQAQOB6.js +0 -6
  2217. langflow/frontend/assets/cloud-rain-CyHB49GX.js +0 -6
  2218. langflow/frontend/assets/cloud-rain-wind-GWqqxsaj.js +0 -6
  2219. langflow/frontend/assets/cloud-snow-CH_fi-kL.js +0 -6
  2220. langflow/frontend/assets/cloud-sun-D5zUdlmo.js +0 -6
  2221. langflow/frontend/assets/cloud-sun-rain-DRTjarwX.js +0 -6
  2222. langflow/frontend/assets/cloud-upload-K7FTRy4x.js +0 -6
  2223. langflow/frontend/assets/cloudy-DYpwDVTM.js +0 -6
  2224. langflow/frontend/assets/clover-Y6JxbL5c.js +0 -6
  2225. langflow/frontend/assets/club-D7sD2-KU.js +0 -6
  2226. langflow/frontend/assets/code-xml-CmPefvQG.js +0 -6
  2227. langflow/frontend/assets/codepen-B1D0bdie.js +0 -6
  2228. langflow/frontend/assets/codesandbox-Ba0ZeTO3.js +0 -6
  2229. langflow/frontend/assets/coffee-Dr7nH9vk.js +0 -6
  2230. langflow/frontend/assets/cog-CzK1hRse.js +0 -6
  2231. langflow/frontend/assets/coins-BL1LYgI4.js +0 -6
  2232. langflow/frontend/assets/columns-2-F2Ut0LEz.js +0 -6
  2233. langflow/frontend/assets/columns-3-BcnH1gE0.js +0 -6
  2234. langflow/frontend/assets/columns-3-cog-BPWc4S2R.js +0 -6
  2235. langflow/frontend/assets/columns-4-BCRuFrsK.js +0 -6
  2236. langflow/frontend/assets/combine-CMTryxlO.js +0 -6
  2237. langflow/frontend/assets/command-63yosLkH.js +0 -6
  2238. langflow/frontend/assets/compass--o98Zd71.js +0 -6
  2239. langflow/frontend/assets/component-CTEhuzpr.js +0 -6
  2240. langflow/frontend/assets/computer-Dkx01VOe.js +0 -6
  2241. langflow/frontend/assets/concierge-bell-BXIbt6qw.js +0 -6
  2242. langflow/frontend/assets/cone-B18QUmGx.js +0 -6
  2243. langflow/frontend/assets/construction-HQiUNksz.js +0 -6
  2244. langflow/frontend/assets/contact-C41NYGfe.js +0 -6
  2245. langflow/frontend/assets/contact-round-B9hN6sSu.js +0 -6
  2246. langflow/frontend/assets/container-DjP026NW.js +0 -6
  2247. langflow/frontend/assets/contrast-Bb8MLl_-.js +0 -6
  2248. langflow/frontend/assets/cookie-DgufpWQb.js +0 -6
  2249. langflow/frontend/assets/cooking-pot-D5wPBrGL.js +0 -6
  2250. langflow/frontend/assets/copy-BFMZbUe4.js +0 -6
  2251. langflow/frontend/assets/copy-check-fjqNuCvz.js +0 -6
  2252. langflow/frontend/assets/copy-minus-OdwZOpbw.js +0 -6
  2253. langflow/frontend/assets/copy-plus-CScAEeHK.js +0 -6
  2254. langflow/frontend/assets/copy-slash-BqaChz7Y.js +0 -6
  2255. langflow/frontend/assets/copy-x-BqBM7j5J.js +0 -6
  2256. langflow/frontend/assets/copyleft-BC7uTHMC.js +0 -6
  2257. langflow/frontend/assets/copyright-BF5CVhru.js +0 -6
  2258. langflow/frontend/assets/corner-down-left-Bv6857xe.js +0 -6
  2259. langflow/frontend/assets/corner-down-right-BjkSA7AX.js +0 -6
  2260. langflow/frontend/assets/corner-left-down-CM7WxoZf.js +0 -6
  2261. langflow/frontend/assets/corner-left-up-8VmPZwqm.js +0 -6
  2262. langflow/frontend/assets/corner-right-down-BEmTfm0U.js +0 -6
  2263. langflow/frontend/assets/corner-right-up-BxU9EBLw.js +0 -6
  2264. langflow/frontend/assets/corner-up-left-D2cd6Pvr.js +0 -6
  2265. langflow/frontend/assets/corner-up-right-DVJm7hQi.js +0 -6
  2266. langflow/frontend/assets/cpu-B15npQ-E.js +0 -6
  2267. langflow/frontend/assets/creative-commons-B3BzOImZ.js +0 -6
  2268. langflow/frontend/assets/credit-card-BqHqbmjT.js +0 -6
  2269. langflow/frontend/assets/croissant-cbqbKCPf.js +0 -6
  2270. langflow/frontend/assets/crop-DtTuHcXE.js +0 -6
  2271. langflow/frontend/assets/cross-BOZJwmyn.js +0 -6
  2272. langflow/frontend/assets/crosshair-Dvi_BaHi.js +0 -6
  2273. langflow/frontend/assets/crown-CMCrHf7v.js +0 -6
  2274. langflow/frontend/assets/cuboid-DCkSG_ra.js +0 -6
  2275. langflow/frontend/assets/cup-soda-CpMwffYq.js +0 -6
  2276. langflow/frontend/assets/currency-CJdBAHh2.js +0 -6
  2277. langflow/frontend/assets/cylinder-CbHOTJwB.js +0 -6
  2278. langflow/frontend/assets/dam-OJFTu_lu.js +0 -6
  2279. langflow/frontend/assets/database-B8HKpYM7.js +0 -6
  2280. langflow/frontend/assets/database-backup-i-Bn4C7r.js +0 -6
  2281. langflow/frontend/assets/database-zap-ByfzSrQQ.js +0 -6
  2282. langflow/frontend/assets/decimals-arrow-left-DxnTGAQY.js +0 -6
  2283. langflow/frontend/assets/decimals-arrow-right-JQIkebrf.js +0 -6
  2284. langflow/frontend/assets/delete-Dkw942V5.js +0 -6
  2285. langflow/frontend/assets/dessert-C9A1s7SK.js +0 -6
  2286. langflow/frontend/assets/diameter-C5nsEIuV.js +0 -6
  2287. langflow/frontend/assets/diamond-CxdN0LDi.js +0 -6
  2288. langflow/frontend/assets/diamond-minus-DJsp9Bgk.js +0 -6
  2289. langflow/frontend/assets/diamond-percent-S76LHXHR.js +0 -6
  2290. langflow/frontend/assets/diamond-plus-BQuUCgeQ.js +0 -6
  2291. langflow/frontend/assets/dice-1-BVG__Ecy.js +0 -6
  2292. langflow/frontend/assets/dice-2-HO32HPU0.js +0 -6
  2293. langflow/frontend/assets/dice-3-5EWZZ-cL.js +0 -6
  2294. langflow/frontend/assets/dice-4-BJbfwgPh.js +0 -6
  2295. langflow/frontend/assets/dice-5-BcVUpWSn.js +0 -6
  2296. langflow/frontend/assets/dice-6-DwgbMPZt.js +0 -6
  2297. langflow/frontend/assets/dices-BzP17xM2.js +0 -6
  2298. langflow/frontend/assets/diff-VHJeo5H5.js +0 -6
  2299. langflow/frontend/assets/disc-2-BtxbiMcs.js +0 -6
  2300. langflow/frontend/assets/disc-3-DxZm_rMJ.js +0 -6
  2301. langflow/frontend/assets/disc-YOLI4zx0.js +0 -6
  2302. langflow/frontend/assets/disc-album-XjBUmNbH.js +0 -6
  2303. langflow/frontend/assets/divide-DqiWapq-.js +0 -6
  2304. langflow/frontend/assets/dna-BU6gZL5A.js +0 -6
  2305. langflow/frontend/assets/dna-off-aRgNThGn.js +0 -6
  2306. langflow/frontend/assets/dock-BZY-5kv4.js +0 -6
  2307. langflow/frontend/assets/dog-DAaA7o-a.js +0 -6
  2308. langflow/frontend/assets/dollar-sign-DeOqGiIV.js +0 -6
  2309. langflow/frontend/assets/donut-BjZ79cZX.js +0 -6
  2310. langflow/frontend/assets/door-closed-IIUweq_m.js +0 -6
  2311. langflow/frontend/assets/door-open-ByfK4q0p.js +0 -6
  2312. langflow/frontend/assets/dot-D6Wu7Ra5.js +0 -6
  2313. langflow/frontend/assets/download-CNOYLPyK.js +0 -6
  2314. langflow/frontend/assets/drafting-compass-DWlax0zl.js +0 -6
  2315. langflow/frontend/assets/drama-C30U0hCd.js +0 -6
  2316. langflow/frontend/assets/dribbble-9FRs5NdP.js +0 -6
  2317. langflow/frontend/assets/drill-4wlkciec.js +0 -6
  2318. langflow/frontend/assets/droplet-B78S0udU.js +0 -6
  2319. langflow/frontend/assets/droplet-off-BHfABNGA.js +0 -6
  2320. langflow/frontend/assets/droplets-PQJj6n_f.js +0 -6
  2321. langflow/frontend/assets/drum-DdeN77sa.js +0 -6
  2322. langflow/frontend/assets/drumstick-BM8ET_xW.js +0 -6
  2323. langflow/frontend/assets/dumbbell-DFn3rDBN.js +0 -6
  2324. langflow/frontend/assets/ear-B0_YhVzh.js +0 -6
  2325. langflow/frontend/assets/ear-off-BgZ6MgTc.js +0 -6
  2326. langflow/frontend/assets/earth-DJqDLPjp.js +0 -6
  2327. langflow/frontend/assets/earth-lock-CIX_MGnB.js +0 -6
  2328. langflow/frontend/assets/eclipse-Bzb6PazK.js +0 -6
  2329. langflow/frontend/assets/egg-DC7XbDJg.js +0 -6
  2330. langflow/frontend/assets/egg-fried-Co6TACF8.js +0 -6
  2331. langflow/frontend/assets/egg-off-D-ubWTzT.js +0 -6
  2332. langflow/frontend/assets/ellipsis-CoipEO3_.js +0 -6
  2333. langflow/frontend/assets/ellipsis-vertical-DiplUaPY.js +0 -6
  2334. langflow/frontend/assets/equal-DL16eWeM.js +0 -6
  2335. langflow/frontend/assets/equal-approximately-Cgwrc8s7.js +0 -6
  2336. langflow/frontend/assets/equal-not-BtmqH-sN.js +0 -6
  2337. langflow/frontend/assets/eraser-l4nBYeON.js +0 -6
  2338. langflow/frontend/assets/ethernet-port-Ds0WUwwz.js +0 -6
  2339. langflow/frontend/assets/euro-CKGyCPZf.js +0 -6
  2340. langflow/frontend/assets/expand-xbcDl8aE.js +0 -6
  2341. langflow/frontend/assets/eye-W5EdJQDf.js +0 -6
  2342. langflow/frontend/assets/eye-closed-nxzbmB1h.js +0 -6
  2343. langflow/frontend/assets/eye-off-DDeIzn66.js +0 -6
  2344. langflow/frontend/assets/facebook-xcXlSxa9.js +0 -6
  2345. langflow/frontend/assets/factory-Bhod3HEj.js +0 -6
  2346. langflow/frontend/assets/fan-Ex6s-D6n.js +0 -6
  2347. langflow/frontend/assets/fast-forward-CrhqE1Ln.js +0 -6
  2348. langflow/frontend/assets/feather-CpLnrC2e.js +0 -6
  2349. langflow/frontend/assets/fence-hvw5StJY.js +0 -6
  2350. langflow/frontend/assets/ferris-wheel-D5jWVJf9.js +0 -6
  2351. langflow/frontend/assets/figma-BQz2ntgq.js +0 -6
  2352. langflow/frontend/assets/file-T4b4luDv.js +0 -6
  2353. langflow/frontend/assets/file-archive-DWjAzMVc.js +0 -6
  2354. langflow/frontend/assets/file-audio-2-CQxq9p_9.js +0 -6
  2355. langflow/frontend/assets/file-audio-Ds5cTHG0.js +0 -6
  2356. langflow/frontend/assets/file-axis-3d-m5X9DXSU.js +0 -6
  2357. langflow/frontend/assets/file-badge-2-in0Jmo8-.js +0 -6
  2358. langflow/frontend/assets/file-badge-BGxev9vs.js +0 -6
  2359. langflow/frontend/assets/file-box-BWtpHh-l.js +0 -6
  2360. langflow/frontend/assets/file-chart-column-CK_L4PyW.js +0 -6
  2361. langflow/frontend/assets/file-chart-column-increasing-ChzZbTPE.js +0 -6
  2362. langflow/frontend/assets/file-chart-line-Bo5oe-Yz.js +0 -6
  2363. langflow/frontend/assets/file-chart-pie-CRb1PPNH.js +0 -6
  2364. langflow/frontend/assets/file-check-2-DG49RBE-.js +0 -6
  2365. langflow/frontend/assets/file-check-CNpXtp0F.js +0 -6
  2366. langflow/frontend/assets/file-clock-Di7Kvbub.js +0 -6
  2367. langflow/frontend/assets/file-code-2-D-fT7k9C.js +0 -6
  2368. langflow/frontend/assets/file-code-Bgah3w__.js +0 -6
  2369. langflow/frontend/assets/file-cog-BFzqqmhP.js +0 -6
  2370. langflow/frontend/assets/file-diff-CiK8B0Ut.js +0 -6
  2371. langflow/frontend/assets/file-digit-BeZ9MxFr.js +0 -6
  2372. langflow/frontend/assets/file-down-CyOak8l5.js +0 -6
  2373. langflow/frontend/assets/file-heart-auLr7bBZ.js +0 -6
  2374. langflow/frontend/assets/file-image-Ccg_RFn8.js +0 -6
  2375. langflow/frontend/assets/file-input-O52-rmWN.js +0 -6
  2376. langflow/frontend/assets/file-json-2-CSrNwLbd.js +0 -6
  2377. langflow/frontend/assets/file-json-DMZL3dl9.js +0 -6
  2378. langflow/frontend/assets/file-key-2-BEUgufjn.js +0 -6
  2379. langflow/frontend/assets/file-key-BWtR8QUh.js +0 -6
  2380. langflow/frontend/assets/file-lock-2-b4qXvEP9.js +0 -6
  2381. langflow/frontend/assets/file-lock-Bq3--OXP.js +0 -6
  2382. langflow/frontend/assets/file-minus-2-DZXAG4vk.js +0 -6
  2383. langflow/frontend/assets/file-minus-DTx9mI7i.js +0 -6
  2384. langflow/frontend/assets/file-music-BVvsM65X.js +0 -6
  2385. langflow/frontend/assets/file-output-CXRWBxH6.js +0 -6
  2386. langflow/frontend/assets/file-pen-CS2sRBTa.js +0 -6
  2387. langflow/frontend/assets/file-pen-line-BHHi4stJ.js +0 -6
  2388. langflow/frontend/assets/file-plus-2-DR5qFX8E.js +0 -6
  2389. langflow/frontend/assets/file-plus-C4ZHgz0z.js +0 -6
  2390. langflow/frontend/assets/file-question-DTdSqHOm.js +0 -6
  2391. langflow/frontend/assets/file-scan-DYUUildo.js +0 -6
  2392. langflow/frontend/assets/file-search-2-Dv5n8USZ.js +0 -6
  2393. langflow/frontend/assets/file-search-hnDsSRh1.js +0 -6
  2394. langflow/frontend/assets/file-sliders-C03f_8Qr.js +0 -6
  2395. langflow/frontend/assets/file-spreadsheet-DyEv7WhX.js +0 -6
  2396. langflow/frontend/assets/file-stack-Co1gcFct.js +0 -6
  2397. langflow/frontend/assets/file-symlink-Boxy3f9H.js +0 -6
  2398. langflow/frontend/assets/file-terminal-Khwsr27a.js +0 -6
  2399. langflow/frontend/assets/file-text-BO88C19J.js +0 -6
  2400. langflow/frontend/assets/file-type-2-BzPh6AKY.js +0 -6
  2401. langflow/frontend/assets/file-type-mf27tsSc.js +0 -6
  2402. langflow/frontend/assets/file-up-KDgWUDQx.js +0 -6
  2403. langflow/frontend/assets/file-user-QkqGyh_B.js +0 -6
  2404. langflow/frontend/assets/file-video-2-D0FfKpHI.js +0 -6
  2405. langflow/frontend/assets/file-video-ZeBbeqku.js +0 -6
  2406. langflow/frontend/assets/file-volume-2-D9dXkWV3.js +0 -6
  2407. langflow/frontend/assets/file-volume-Bo45pJ-w.js +0 -6
  2408. langflow/frontend/assets/file-warning-BJOtravd.js +0 -6
  2409. langflow/frontend/assets/file-x-2-fSHGKvw_.js +0 -6
  2410. langflow/frontend/assets/file-x-CdgKFhQQ.js +0 -6
  2411. langflow/frontend/assets/files-DOxz4aQo.js +0 -6
  2412. langflow/frontend/assets/film-giURfyAy.js +0 -6
  2413. langflow/frontend/assets/fingerprint-RsrIqU0V.js +0 -6
  2414. langflow/frontend/assets/fire-extinguisher-Cw2sJj6q.js +0 -6
  2415. langflow/frontend/assets/fish-DvfOLtmn.js +0 -6
  2416. langflow/frontend/assets/fish-off-CTVtsofO.js +0 -6
  2417. langflow/frontend/assets/fish-symbol-zD7oPiYZ.js +0 -6
  2418. langflow/frontend/assets/flag-B0B3ebvf.js +0 -6
  2419. langflow/frontend/assets/flag-off-CasOM0LS.js +0 -6
  2420. langflow/frontend/assets/flag-triangle-left-D0M8xhFv.js +0 -6
  2421. langflow/frontend/assets/flag-triangle-right-CVCMKE1T.js +0 -6
  2422. langflow/frontend/assets/flame-BiS6y3tG.js +0 -6
  2423. langflow/frontend/assets/flame-kindling-DUkK-8JI.js +0 -6
  2424. langflow/frontend/assets/flashlight-KZwqcr44.js +0 -6
  2425. langflow/frontend/assets/flashlight-off-D70VvyOp.js +0 -6
  2426. langflow/frontend/assets/flask-conical-BdiNBspI.js +0 -6
  2427. langflow/frontend/assets/flask-conical-off-BHTNINTd.js +0 -6
  2428. langflow/frontend/assets/flask-round-sqqzYRcI.js +0 -6
  2429. langflow/frontend/assets/flip-horizontal-2-1HOA5dc-.js +0 -6
  2430. langflow/frontend/assets/flip-horizontal-d710-Txr.js +0 -6
  2431. langflow/frontend/assets/flip-vertical-2-DmUhBXjO.js +0 -6
  2432. langflow/frontend/assets/flip-vertical-BNagmghs.js +0 -6
  2433. langflow/frontend/assets/flower-2-D4iQRiF7.js +0 -6
  2434. langflow/frontend/assets/flower-FR5EUxOV.js +0 -6
  2435. langflow/frontend/assets/focus-CEdzhJEp.js +0 -6
  2436. langflow/frontend/assets/fold-horizontal-sjv357Km.js +0 -6
  2437. langflow/frontend/assets/fold-vertical-BG9tapYW.js +0 -6
  2438. langflow/frontend/assets/folder-6F21jlJ5.js +0 -6
  2439. langflow/frontend/assets/folder-archive-BXWop4PZ.js +0 -6
  2440. langflow/frontend/assets/folder-check-BrjcH6iR.js +0 -6
  2441. langflow/frontend/assets/folder-clock-DlyPDoVl.js +0 -6
  2442. langflow/frontend/assets/folder-closed-SLqJ0hp4.js +0 -6
  2443. langflow/frontend/assets/folder-code-Cgll669b.js +0 -6
  2444. langflow/frontend/assets/folder-cog-CM5Ni7lc.js +0 -6
  2445. langflow/frontend/assets/folder-dot-GhJPfSKO.js +0 -6
  2446. langflow/frontend/assets/folder-down-iDJ-he-Y.js +0 -6
  2447. langflow/frontend/assets/folder-git-2-6jQGaX_w.js +0 -6
  2448. langflow/frontend/assets/folder-git-BOTIFJgV.js +0 -6
  2449. langflow/frontend/assets/folder-heart-Cgg77VNc.js +0 -6
  2450. langflow/frontend/assets/folder-input-BKhNOJU_.js +0 -6
  2451. langflow/frontend/assets/folder-kanban-fv8Jrp2U.js +0 -6
  2452. langflow/frontend/assets/folder-key-PYfiriKT.js +0 -6
  2453. langflow/frontend/assets/folder-lock-BGyM5Npe.js +0 -6
  2454. langflow/frontend/assets/folder-minus-DlEmjGRz.js +0 -6
  2455. langflow/frontend/assets/folder-open-D_8MEAT-.js +0 -6
  2456. langflow/frontend/assets/folder-open-dot-0YxeDftz.js +0 -6
  2457. langflow/frontend/assets/folder-output-Ip4GIG6F.js +0 -6
  2458. langflow/frontend/assets/folder-pen-CI1BXQvW.js +0 -6
  2459. langflow/frontend/assets/folder-plus-BXQA2Jc6.js +0 -6
  2460. langflow/frontend/assets/folder-root-CswagEKg.js +0 -6
  2461. langflow/frontend/assets/folder-search-2-BLnmfHuU.js +0 -6
  2462. langflow/frontend/assets/folder-search-DwB49w2B.js +0 -6
  2463. langflow/frontend/assets/folder-symlink-2B_nCLqd.js +0 -6
  2464. langflow/frontend/assets/folder-sync-3TAp4igp.js +0 -6
  2465. langflow/frontend/assets/folder-tree-BkjuuQqW.js +0 -6
  2466. langflow/frontend/assets/folder-up-mO0Hvnrm.js +0 -6
  2467. langflow/frontend/assets/folder-x-AjVCWque.js +0 -6
  2468. langflow/frontend/assets/folders-al5YezTX.js +0 -6
  2469. langflow/frontend/assets/footprints-DrrZALsZ.js +0 -6
  2470. langflow/frontend/assets/forklift-BzNVmN4d.js +0 -6
  2471. langflow/frontend/assets/forward-OI1X5QKx.js +0 -6
  2472. langflow/frontend/assets/frame-D5P4ivt5.js +0 -6
  2473. langflow/frontend/assets/framer-DpWjqiRU.js +0 -6
  2474. langflow/frontend/assets/frown-BlslPFiH.js +0 -6
  2475. langflow/frontend/assets/fuel-DONOj8NN.js +0 -6
  2476. langflow/frontend/assets/fullscreen-CLc8fw66.js +0 -6
  2477. langflow/frontend/assets/funnel-BfCcjVzm.js +0 -6
  2478. langflow/frontend/assets/funnel-plus-iHX8HjPr.js +0 -6
  2479. langflow/frontend/assets/funnel-x-CIEKVpNe.js +0 -6
  2480. langflow/frontend/assets/gallery-horizontal-COliPXNI.js +0 -6
  2481. langflow/frontend/assets/gallery-horizontal-end-CjDpwI4Z.js +0 -6
  2482. langflow/frontend/assets/gallery-thumbnails-Vlzntlmh.js +0 -6
  2483. langflow/frontend/assets/gallery-vertical-C-KLdu2P.js +0 -6
  2484. langflow/frontend/assets/gallery-vertical-end-BJQVNpt8.js +0 -6
  2485. langflow/frontend/assets/gamepad-2-C3i-ycUd.js +0 -6
  2486. langflow/frontend/assets/gamepad-Cp4q-Roh.js +0 -6
  2487. langflow/frontend/assets/gauge--kKZSSu9.js +0 -6
  2488. langflow/frontend/assets/gavel-BIEK3APv.js +0 -6
  2489. langflow/frontend/assets/gem-Dx4uC_w2.js +0 -6
  2490. langflow/frontend/assets/ghost-Dov1Y-de.js +0 -6
  2491. langflow/frontend/assets/gift-BelO3Qmf.js +0 -6
  2492. langflow/frontend/assets/git-branch-BkN8h4fN.js +0 -6
  2493. langflow/frontend/assets/git-branch-plus-D_zBYEg-.js +0 -6
  2494. langflow/frontend/assets/git-commit-horizontal-Bt9U6uSG.js +0 -6
  2495. langflow/frontend/assets/git-commit-vertical-BESiu48F.js +0 -6
  2496. langflow/frontend/assets/git-compare-CqGKVCWV.js +0 -6
  2497. langflow/frontend/assets/git-compare-arrows-DnhCAtoP.js +0 -6
  2498. langflow/frontend/assets/git-fork-ByuREAkc.js +0 -6
  2499. langflow/frontend/assets/git-graph-CsfzwNQj.js +0 -6
  2500. langflow/frontend/assets/git-merge-Ox2IDtML.js +0 -6
  2501. langflow/frontend/assets/git-pull-request-CsSp-mVu.js +0 -6
  2502. langflow/frontend/assets/git-pull-request-arrow-WKbFjL9E.js +0 -6
  2503. langflow/frontend/assets/git-pull-request-closed-rnsiWfdO.js +0 -6
  2504. langflow/frontend/assets/git-pull-request-create-Y2qCd1_g.js +0 -6
  2505. langflow/frontend/assets/git-pull-request-create-arrow-CBZZ5jCv.js +0 -6
  2506. langflow/frontend/assets/git-pull-request-draft-CqCAqp59.js +0 -6
  2507. langflow/frontend/assets/github-CEHtZKll.js +0 -6
  2508. langflow/frontend/assets/gitlab-tTM5an9-.js +0 -6
  2509. langflow/frontend/assets/glass-water-8L7BNj2U.js +0 -6
  2510. langflow/frontend/assets/glasses-MXOTMx7t.js +0 -6
  2511. langflow/frontend/assets/globe-DeRFdmvr.js +0 -6
  2512. langflow/frontend/assets/globe-lock-Cl7O5IgE.js +0 -6
  2513. langflow/frontend/assets/goal-BoE-1Agh.js +0 -6
  2514. langflow/frontend/assets/grab-Dk-k7seL.js +0 -6
  2515. langflow/frontend/assets/graduation-cap-ukeS2vPI.js +0 -6
  2516. langflow/frontend/assets/grape-RR9CGvv1.js +0 -6
  2517. langflow/frontend/assets/grid-2x2-check-B5PCiyEe.js +0 -6
  2518. langflow/frontend/assets/grid-2x2-ePcIc7GO.js +0 -6
  2519. langflow/frontend/assets/grid-2x2-plus-BVcsJdml.js +0 -6
  2520. langflow/frontend/assets/grid-2x2-x-mkN8Cnrc.js +0 -6
  2521. langflow/frontend/assets/grid-3x3-CBgJuY9h.js +0 -6
  2522. langflow/frontend/assets/grip-horizontal-B_5Y0YGx.js +0 -6
  2523. langflow/frontend/assets/grip-v5P9JI5s.js +0 -6
  2524. langflow/frontend/assets/grip-vertical-BLr2o7NE.js +0 -6
  2525. langflow/frontend/assets/group-DoCa0onn.js +0 -6
  2526. langflow/frontend/assets/guitar-7Jx6OXCj.js +0 -6
  2527. langflow/frontend/assets/ham-C41betjc.js +0 -6
  2528. langflow/frontend/assets/hammer-vwngLHqS.js +0 -6
  2529. langflow/frontend/assets/hand-Ctf-6cYY.js +0 -6
  2530. langflow/frontend/assets/hand-coins-D0QsykUE.js +0 -6
  2531. langflow/frontend/assets/hand-heart-DsYMEvok.js +0 -6
  2532. langflow/frontend/assets/hand-helping-DemeZNPO.js +0 -6
  2533. langflow/frontend/assets/hand-metal-Hshzhn1T.js +0 -6
  2534. langflow/frontend/assets/hand-platter-Dmpu-THx.js +0 -6
  2535. langflow/frontend/assets/handshake-Bk7rmJwL.js +0 -6
  2536. langflow/frontend/assets/hard-drive-BU-erljQ.js +0 -6
  2537. langflow/frontend/assets/hard-drive-download-QQYhqYjD.js +0 -6
  2538. langflow/frontend/assets/hard-drive-upload-B5OYhbhv.js +0 -6
  2539. langflow/frontend/assets/hard-hat-CaqLRRTX.js +0 -6
  2540. langflow/frontend/assets/hash-nEKayUPS.js +0 -6
  2541. langflow/frontend/assets/haze-KOORlixv.js +0 -6
  2542. langflow/frontend/assets/hdmi-port-DGg9sO3x.js +0 -6
  2543. langflow/frontend/assets/heading-1-D2Z6m-Ua.js +0 -6
  2544. langflow/frontend/assets/heading-2-CVkzYkfn.js +0 -6
  2545. langflow/frontend/assets/heading-3-BRv_WflL.js +0 -6
  2546. langflow/frontend/assets/heading-4-Ca5Gq6He.js +0 -6
  2547. langflow/frontend/assets/heading-5-gYwXq6T3.js +0 -6
  2548. langflow/frontend/assets/heading-6-C1UCFgVt.js +0 -6
  2549. langflow/frontend/assets/heading-BLxe8Wv2.js +0 -6
  2550. langflow/frontend/assets/headphone-off-LLLOkVJ7.js +0 -6
  2551. langflow/frontend/assets/headphones-CPvdYgUH.js +0 -6
  2552. langflow/frontend/assets/headset-Bj_434Va.js +0 -6
  2553. langflow/frontend/assets/heart-CumEfnSC.js +0 -6
  2554. langflow/frontend/assets/heart-crack-Duh2JjZm.js +0 -6
  2555. langflow/frontend/assets/heart-handshake-CqMtP3Zk.js +0 -6
  2556. langflow/frontend/assets/heart-minus-Dq8UvDw_.js +0 -6
  2557. langflow/frontend/assets/heart-off-CBry1WsN.js +0 -6
  2558. langflow/frontend/assets/heart-plus-Cz1UpBOw.js +0 -6
  2559. langflow/frontend/assets/heart-pulse-BuVRv5Xj.js +0 -6
  2560. langflow/frontend/assets/heater-BtEBNuEy.js +0 -6
  2561. langflow/frontend/assets/hexagon-B6lKdqA3.js +0 -6
  2562. langflow/frontend/assets/highlighter-DIGyvCcy.js +0 -6
  2563. langflow/frontend/assets/history-CZ3wClBG.js +0 -6
  2564. langflow/frontend/assets/hop-Ca2tlRgT.js +0 -6
  2565. langflow/frontend/assets/hop-off-DCYGmbLW.js +0 -6
  2566. langflow/frontend/assets/hospital-DEJrYqhq.js +0 -6
  2567. langflow/frontend/assets/hotel-CrtHOlA7.js +0 -6
  2568. langflow/frontend/assets/hourglass-DgNc42oD.js +0 -6
  2569. langflow/frontend/assets/house-DYc0-xig.js +0 -6
  2570. langflow/frontend/assets/house-plug-C5giS3j0.js +0 -6
  2571. langflow/frontend/assets/house-plus-DORSqk04.js +0 -6
  2572. langflow/frontend/assets/house-wifi-B2g6jIqq.js +0 -6
  2573. langflow/frontend/assets/ice-cream-bowl-SMMOH_we.js +0 -6
  2574. langflow/frontend/assets/ice-cream-cone-CKjNFeKH.js +0 -6
  2575. langflow/frontend/assets/id-card-DUYjoO0r.js +0 -6
  2576. langflow/frontend/assets/image-CV7HvmMV.js +0 -6
  2577. langflow/frontend/assets/image-down-Ct087KHX.js +0 -6
  2578. langflow/frontend/assets/image-minus-Bo7J4RV_.js +0 -6
  2579. langflow/frontend/assets/image-off-eOEy5G4s.js +0 -6
  2580. langflow/frontend/assets/image-play-Benr_6Vq.js +0 -6
  2581. langflow/frontend/assets/image-plus-BzhbDyq8.js +0 -6
  2582. langflow/frontend/assets/image-up-BTHp5ZhP.js +0 -6
  2583. langflow/frontend/assets/image-upscale-CdhHtFnS.js +0 -6
  2584. langflow/frontend/assets/images-IvJDhz6o.js +0 -6
  2585. langflow/frontend/assets/import-UVGJ7Rp9.js +0 -6
  2586. langflow/frontend/assets/inbox-BxaqqPtP.js +0 -6
  2587. langflow/frontend/assets/indent-decrease-C_DJMTS9.js +0 -6
  2588. langflow/frontend/assets/indent-increase-dVs4YFpv.js +0 -6
  2589. langflow/frontend/assets/index-1Mw7Vw3r.js +0 -1
  2590. langflow/frontend/assets/index-2jRviEPS.js +0 -185
  2591. langflow/frontend/assets/index-349AHlCG.js +0 -1
  2592. langflow/frontend/assets/index-47fm3soY.js +0 -1
  2593. langflow/frontend/assets/index-5PykuO9O.js +0 -1
  2594. langflow/frontend/assets/index-5n2x9J6r.js +0 -1
  2595. langflow/frontend/assets/index-6vq4OQ-M.js +0 -1
  2596. langflow/frontend/assets/index-9AByWEZ8.js +0 -1
  2597. langflow/frontend/assets/index-9Q-68jY1.js +0 -20
  2598. langflow/frontend/assets/index-B-q_K0xC.js +0 -1
  2599. langflow/frontend/assets/index-B0XfeJ00.js +0 -1
  2600. langflow/frontend/assets/index-B1CappOX.js +0 -1
  2601. langflow/frontend/assets/index-B2kEaw41.js +0 -1
  2602. langflow/frontend/assets/index-B3juoW4v.js +0 -1
  2603. langflow/frontend/assets/index-B3soLr0D.js +0 -1
  2604. langflow/frontend/assets/index-B44vtOI5.js +0 -1
  2605. langflow/frontend/assets/index-B4UnFUjK.js +0 -1
  2606. langflow/frontend/assets/index-B4w8stgm.js +0 -1
  2607. langflow/frontend/assets/index-B9hruGfL.js +0 -1
  2608. langflow/frontend/assets/index-BCfihEEo.js +0 -1
  2609. langflow/frontend/assets/index-BGiVuj_e.js +0 -1
  2610. langflow/frontend/assets/index-BHKHrNFB.js +0 -1
  2611. langflow/frontend/assets/index-BHRXCx68.js +0 -1
  2612. langflow/frontend/assets/index-BI0ylCrl.js +0 -1
  2613. langflow/frontend/assets/index-BI8FaGjY.js +0 -1
  2614. langflow/frontend/assets/index-BIbIFfZb.js +0 -1
  2615. langflow/frontend/assets/index-BKKQHD_h.js +0 -1
  2616. langflow/frontend/assets/index-BL7So-xj.js +0 -1
  2617. langflow/frontend/assets/index-BLWSPwda.js +0 -1
  2618. langflow/frontend/assets/index-BMXFwAV2.js +0 -1
  2619. langflow/frontend/assets/index-BN3UZmhd.js +0 -1
  2620. langflow/frontend/assets/index-BPFgkugw.js +0 -1
  2621. langflow/frontend/assets/index-BPxGOZ6v.js +0 -1
  2622. langflow/frontend/assets/index-BQYVtZIS.js +0 -1
  2623. langflow/frontend/assets/index-BRrJJanw.js +0 -1
  2624. langflow/frontend/assets/index-BTOpPyn4.js +0 -1
  2625. langflow/frontend/assets/index-BVXKimfz.js +0 -1
  2626. langflow/frontend/assets/index-BWkU8uKo.js +0 -127
  2627. langflow/frontend/assets/index-Ba-k8lo4.js +0 -1
  2628. langflow/frontend/assets/index-BaZliEEV.js +0 -1
  2629. langflow/frontend/assets/index-Baz8v8_-.js +0 -1
  2630. langflow/frontend/assets/index-BctLsw5K.js +0 -1
  2631. langflow/frontend/assets/index-Bd8AX0IG.js +0 -1
  2632. langflow/frontend/assets/index-BfWZ9V-p.js +0 -1
  2633. langflow/frontend/assets/index-Bg9QSfJr.js +0 -1
  2634. langflow/frontend/assets/index-BhEVd6N7.js +0 -1
  2635. langflow/frontend/assets/index-BhrgB7nJ.js +0 -1
  2636. langflow/frontend/assets/index-Bi9YeKYt.js +0 -1
  2637. langflow/frontend/assets/index-BiHxZLJP.js +0 -1
  2638. langflow/frontend/assets/index-BkP9hd8Q.js +0 -1
  2639. langflow/frontend/assets/index-Bkh_cC78.js +0 -1
  2640. langflow/frontend/assets/index-BkyAJPYl.js +0 -1
  2641. langflow/frontend/assets/index-BmVPGG8l.js +0 -1
  2642. langflow/frontend/assets/index-Bn8aYQ5X.js +0 -1
  2643. langflow/frontend/assets/index-Br0rx4Ce.js +0 -1
  2644. langflow/frontend/assets/index-BtH45xWh.js +0 -1
  2645. langflow/frontend/assets/index-Bu5C2SCw.js +0 -2
  2646. langflow/frontend/assets/index-BuhIHC7U.js +0 -1
  2647. langflow/frontend/assets/index-BvVaHjUM.js +0 -1
  2648. langflow/frontend/assets/index-BwOd6ykg.js +0 -1
  2649. langflow/frontend/assets/index-BwjYolNk.js +0 -7321
  2650. langflow/frontend/assets/index-BxTj8RF0.js +0 -1
  2651. langflow/frontend/assets/index-By8xUJkG.js +0 -205
  2652. langflow/frontend/assets/index-ByqxqYL8.js +0 -1
  2653. langflow/frontend/assets/index-BzCz0VuO.js +0 -1
  2654. langflow/frontend/assets/index-BzJIA1GK.js +0 -1
  2655. langflow/frontend/assets/index-C-COg-ts.js +0 -1
  2656. langflow/frontend/assets/index-C-Yis6I_.js +0 -281
  2657. langflow/frontend/assets/index-C1YfswWz.js +0 -1
  2658. langflow/frontend/assets/index-C7RHLVvs.js +0 -1
  2659. langflow/frontend/assets/index-CBgao1jh.js +0 -1
  2660. langflow/frontend/assets/index-CBk32l6v.js +0 -1
  2661. langflow/frontend/assets/index-CCC1-T3t.js +0 -1
  2662. langflow/frontend/assets/index-CDqm05gD.js +0 -1
  2663. langflow/frontend/assets/index-CECJw2Ml.js +0 -1
  2664. langflow/frontend/assets/index-CFM48U4I.js +0 -1
  2665. langflow/frontend/assets/index-CGkK6geD.js +0 -1
  2666. langflow/frontend/assets/index-CLZcCtq4.js +0 -1
  2667. langflow/frontend/assets/index-CNLbJGVV.js +0 -1
  2668. langflow/frontend/assets/index-CO0N9ySx.js +0 -1
  2669. langflow/frontend/assets/index-CPp-_jD4.js +0 -1
  2670. langflow/frontend/assets/index-CQ5bFfaa.js +0 -1
  2671. langflow/frontend/assets/index-CStfimJb.js +0 -1
  2672. langflow/frontend/assets/index-CWCXDuG1.js +0 -1
  2673. langflow/frontend/assets/index-CWowzSNz.js +0 -1
  2674. langflow/frontend/assets/index-CYJjzQL2.js +0 -1
  2675. langflow/frontend/assets/index-CZhEUDwl.js +0 -1
  2676. langflow/frontend/assets/index-CahT9IU9.js +0 -1
  2677. langflow/frontend/assets/index-Cj9P0g_X.js +0 -1
  2678. langflow/frontend/assets/index-CmH4R86R.js +0 -1
  2679. langflow/frontend/assets/index-CnHFupk4.js +0 -1
  2680. langflow/frontend/assets/index-CnUnu34W.js +0 -1
  2681. langflow/frontend/assets/index-CogUcMiO.js +0 -1
  2682. langflow/frontend/assets/index-CpEB-3ob.js +0 -1
  2683. langflow/frontend/assets/index-CsOZ5Dzh.js +0 -1
  2684. langflow/frontend/assets/index-CsYeVuIl.js +0 -1
  2685. langflow/frontend/assets/index-CtLZmoSS.js +0 -1
  2686. langflow/frontend/assets/index-CvAjlEzY.js +0 -1
  2687. langflow/frontend/assets/index-Cvc1_Jwh.js +0 -1
  2688. langflow/frontend/assets/index-CxK_7UoZ.js +0 -1
  2689. langflow/frontend/assets/index-D1G-dKqq.js +0 -1
  2690. langflow/frontend/assets/index-D1f6mOIg.js +0 -1
  2691. langflow/frontend/assets/index-D1ojERZR.css +0 -1
  2692. langflow/frontend/assets/index-DA-CLZqW.js +0 -1
  2693. langflow/frontend/assets/index-DAGj8fMy.js +0 -1
  2694. langflow/frontend/assets/index-DBvd7O3h.js +0 -1
  2695. langflow/frontend/assets/index-DCtMVyry.js +0 -1
  2696. langflow/frontend/assets/index-DFL8e28J.js +0 -1
  2697. langflow/frontend/assets/index-DHYXAk1D.js +0 -1
  2698. langflow/frontend/assets/index-DIELMbx4.js +0 -1
  2699. langflow/frontend/assets/index-DIL72sOa.js +0 -1
  2700. langflow/frontend/assets/index-DJ2PWjVi.js +0 -1
  2701. langflow/frontend/assets/index-DMc_kDqA.js +0 -1
  2702. langflow/frontend/assets/index-DNdpWtdp.js +0 -21
  2703. langflow/frontend/assets/index-DQkS-tne.js +0 -1
  2704. langflow/frontend/assets/index-DQuUz2wx.js +0 -1
  2705. langflow/frontend/assets/index-DUO-lIA1.js +0 -1
  2706. langflow/frontend/assets/index-DXe5269H.js +0 -399
  2707. langflow/frontend/assets/index-DZZhD_yj.js +0 -1
  2708. langflow/frontend/assets/index-DZjIcuZf.js +0 -1
  2709. langflow/frontend/assets/index-D_lzMaUN.js +0 -7
  2710. langflow/frontend/assets/index-DauYypWK.js +0 -1
  2711. langflow/frontend/assets/index-DcISBEjw.js +0 -1
  2712. langflow/frontend/assets/index-Dd1nOWl9.js +0 -1
  2713. langflow/frontend/assets/index-DhQMPChw.js +0 -1
  2714. langflow/frontend/assets/index-DhiHXAnm.js +0 -13
  2715. langflow/frontend/assets/index-Di8VmVNy.js +0 -1
  2716. langflow/frontend/assets/index-DkFxPKzj.js +0 -1
  2717. langflow/frontend/assets/index-Dm3ijVkt.js +0 -1
  2718. langflow/frontend/assets/index-DmloBOoY.js +0 -1
  2719. langflow/frontend/assets/index-DnGEuYdL.js +0 -1
  2720. langflow/frontend/assets/index-DpHa6Qpa.js +0 -381
  2721. langflow/frontend/assets/index-DpogeYz6.js +0 -1
  2722. langflow/frontend/assets/index-DumeEJbM.js +0 -1
  2723. langflow/frontend/assets/index-DvSpA-Dq.js +0 -1
  2724. langflow/frontend/assets/index-DvagYzdp.js +0 -1
  2725. langflow/frontend/assets/index-DwEhasMX.js +0 -1
  2726. langflow/frontend/assets/index-DwMLOGxu.js +0 -1
  2727. langflow/frontend/assets/index-DwPovqLE.js +0 -1
  2728. langflow/frontend/assets/index-Dwbg9qI6.js +0 -1
  2729. langflow/frontend/assets/index-DxjwZ61P.js +0 -1
  2730. langflow/frontend/assets/index-Dxvw-NPS.js +0 -1
  2731. langflow/frontend/assets/index-Dyr24aW-.js +0 -1
  2732. langflow/frontend/assets/index-EDqW3ZzJ.js +0 -1
  2733. langflow/frontend/assets/index-FZUw3cRc.js +0 -1
  2734. langflow/frontend/assets/index-FcMz3-IE.js +0 -1
  2735. langflow/frontend/assets/index-Fp-ag5CW.js +0 -1
  2736. langflow/frontend/assets/index-GcWdRt65.js +0 -1
  2737. langflow/frontend/assets/index-Hh7WBYYS.js +0 -1
  2738. langflow/frontend/assets/index-IccUT6YP.js +0 -1
  2739. langflow/frontend/assets/index-JX9ShpGX.js +0 -1
  2740. langflow/frontend/assets/index-JpdA80tj.js +0 -1
  2741. langflow/frontend/assets/index-LgQVrGHQ.js +0 -1
  2742. langflow/frontend/assets/index-Ljs2yZGV.js +0 -1
  2743. langflow/frontend/assets/index-O1TAAhtq.js +0 -767
  2744. langflow/frontend/assets/index-OOIEphTv.js +0 -1
  2745. langflow/frontend/assets/index-Ql906Jg8.js +0 -1
  2746. langflow/frontend/assets/index-QvcVKINb.js +0 -1
  2747. langflow/frontend/assets/index-SnxwDFQx.js +0 -1
  2748. langflow/frontend/assets/index-ToKn2GQI.js +0 -1
  2749. langflow/frontend/assets/index-Upgz0Xsh.js +0 -1
  2750. langflow/frontend/assets/index-Vflt5G-3.js +0 -1
  2751. langflow/frontend/assets/index-WTzYJQYK.js +0 -1
  2752. langflow/frontend/assets/index-WfLlwc7M.js +0 -1
  2753. langflow/frontend/assets/index-ZpzvGK6m.js +0 -1
  2754. langflow/frontend/assets/index-_WfJ6fzc.js +0 -1
  2755. langflow/frontend/assets/index-abhjhX2F.js +0 -1
  2756. langflow/frontend/assets/index-bL4AkUWU.js +0 -1
  2757. langflow/frontend/assets/index-dJa-mehk.js +0 -1
  2758. langflow/frontend/assets/index-dlphU78K.js +0 -1
  2759. langflow/frontend/assets/index-iVeYxM3M.js +0 -1
  2760. langflow/frontend/assets/index-jpjjXaaM.js +0 -1
  2761. langflow/frontend/assets/index-js-87xsA.js +0 -108
  2762. langflow/frontend/assets/index-k4plJMAx.js +0 -1
  2763. langflow/frontend/assets/index-mA2wBnVm.js +0 -1
  2764. langflow/frontend/assets/index-mQBR112-.js +0 -1
  2765. langflow/frontend/assets/index-nQY5vy8o.js +0 -495
  2766. langflow/frontend/assets/index-ssob-ev5.js +0 -1
  2767. langflow/frontend/assets/index-tlnZa8X-.js +0 -1
  2768. langflow/frontend/assets/index-tpHhKnV7.js +0 -1
  2769. langflow/frontend/assets/index-vE-UiPI6.js +0 -1
  2770. langflow/frontend/assets/index-vIBdsgRf.js +0 -1
  2771. langflow/frontend/assets/index-wglKpsbY.js +0 -1
  2772. langflow/frontend/assets/index-yo7HU5Cb.js +0 -1
  2773. langflow/frontend/assets/index-zovBKI77.js +0 -1
  2774. langflow/frontend/assets/indian-rupee-DHXMGmE1.js +0 -6
  2775. langflow/frontend/assets/infinity-CQEtLQ9b.js +0 -6
  2776. langflow/frontend/assets/info-Br1QbmXA.js +0 -6
  2777. langflow/frontend/assets/inspection-panel-JwUG_nf7.js +0 -6
  2778. langflow/frontend/assets/instagram-BoP2hNHd.js +0 -6
  2779. langflow/frontend/assets/italic-eDC9bi0g.js +0 -6
  2780. langflow/frontend/assets/iteration-ccw-BU0Q1hQb.js +0 -6
  2781. langflow/frontend/assets/iteration-cw-CPN5pFCy.js +0 -6
  2782. langflow/frontend/assets/japanese-yen-DN2DnDM3.js +0 -6
  2783. langflow/frontend/assets/joystick-DlKM5lpe.js +0 -6
  2784. langflow/frontend/assets/kanban-DO2eAVyD.js +0 -6
  2785. langflow/frontend/assets/key-D1x_qaSI.js +0 -6
  2786. langflow/frontend/assets/key-round-BEfHOdGO.js +0 -6
  2787. langflow/frontend/assets/key-square-C-y6VvsH.js +0 -6
  2788. langflow/frontend/assets/keyboard-DpadZy3T.js +0 -6
  2789. langflow/frontend/assets/keyboard-music-DqTPACvE.js +0 -6
  2790. langflow/frontend/assets/keyboard-off-DkEUDxx0.js +0 -6
  2791. langflow/frontend/assets/lamp-DJyS2EMt.js +0 -6
  2792. langflow/frontend/assets/lamp-ceiling-S_jsju6_.js +0 -6
  2793. langflow/frontend/assets/lamp-desk-B3R_BHVQ.js +0 -6
  2794. langflow/frontend/assets/lamp-floor-ixvOSnrn.js +0 -6
  2795. langflow/frontend/assets/lamp-wall-down-DXew4w6s.js +0 -6
  2796. langflow/frontend/assets/lamp-wall-up-BWgZpYLC.js +0 -6
  2797. langflow/frontend/assets/land-plot-Domeu8YX.js +0 -6
  2798. langflow/frontend/assets/landmark-D27t8IL1.js +0 -6
  2799. langflow/frontend/assets/languages-CWkr-o3w.js +0 -6
  2800. langflow/frontend/assets/laptop-DuZIiW5h.js +0 -6
  2801. langflow/frontend/assets/laptop-minimal-DfROFxFA.js +0 -6
  2802. langflow/frontend/assets/laptop-minimal-check-D-W2L8vT.js +0 -6
  2803. langflow/frontend/assets/lasso-CekokLYo.js +0 -6
  2804. langflow/frontend/assets/lasso-select-C-3j2a-D.js +0 -6
  2805. langflow/frontend/assets/laugh-BAq58OBr.js +0 -6
  2806. langflow/frontend/assets/layers-2-DuYXfofW.js +0 -6
  2807. langflow/frontend/assets/layers-BPSI1G12.js +0 -6
  2808. langflow/frontend/assets/layout-dashboard-Dq3j63Nd.js +0 -6
  2809. langflow/frontend/assets/layout-grid-BguocgLl.js +0 -6
  2810. langflow/frontend/assets/layout-list-CH2oHEbe.js +0 -6
  2811. langflow/frontend/assets/layout-panel-left-Bxok1eyA.js +0 -6
  2812. langflow/frontend/assets/layout-panel-top-CMpiDuFd.js +0 -6
  2813. langflow/frontend/assets/layout-template-_sMT4oFG.js +0 -6
  2814. langflow/frontend/assets/lazyIconImports-C6qRJZQ8.js +0 -2
  2815. langflow/frontend/assets/leaf-B24smda8.js +0 -6
  2816. langflow/frontend/assets/leafy-green-BWVRWXrR.js +0 -6
  2817. langflow/frontend/assets/lectern-CG4EAvuB.js +0 -6
  2818. langflow/frontend/assets/letter-text-BPaN-lrz.js +0 -6
  2819. langflow/frontend/assets/library-BJh8KdzW.js +0 -6
  2820. langflow/frontend/assets/library-big-R7igrlT1.js +0 -6
  2821. langflow/frontend/assets/life-buoy-n8vAeHlR.js +0 -6
  2822. langflow/frontend/assets/ligature-C5mj_bUu.js +0 -6
  2823. langflow/frontend/assets/lightbulb-D9pIQwKz.js +0 -6
  2824. langflow/frontend/assets/lightbulb-off-BhH65aDI.js +0 -6
  2825. langflow/frontend/assets/link-2-ClAvlNZg.js +0 -6
  2826. langflow/frontend/assets/link-2-off-nV8YMQzH.js +0 -6
  2827. langflow/frontend/assets/link-DIgazVwi.js +0 -6
  2828. langflow/frontend/assets/linkedin-DlilMxaW.js +0 -6
  2829. langflow/frontend/assets/list-BObo6ruz.js +0 -6
  2830. langflow/frontend/assets/list-check-Cyvorbha.js +0 -6
  2831. langflow/frontend/assets/list-checks-Af0PI3sP.js +0 -6
  2832. langflow/frontend/assets/list-collapse-Z0liE_51.js +0 -6
  2833. langflow/frontend/assets/list-end-CtT5iEnm.js +0 -6
  2834. langflow/frontend/assets/list-filter-BZpUCdV5.js +0 -6
  2835. langflow/frontend/assets/list-filter-plus-DD-AV3tO.js +0 -6
  2836. langflow/frontend/assets/list-minus-Dy4NC9Ez.js +0 -6
  2837. langflow/frontend/assets/list-music-BV1N-gvH.js +0 -6
  2838. langflow/frontend/assets/list-ordered-CEZDZIxy.js +0 -6
  2839. langflow/frontend/assets/list-plus-Bf-cKjOW.js +0 -6
  2840. langflow/frontend/assets/list-restart-DMNhI5yW.js +0 -6
  2841. langflow/frontend/assets/list-start-B1DZK6CZ.js +0 -6
  2842. langflow/frontend/assets/list-todo-C1veT8Wx.js +0 -6
  2843. langflow/frontend/assets/list-tree-DZcJnXgm.js +0 -6
  2844. langflow/frontend/assets/list-video-07d5zHGY.js +0 -6
  2845. langflow/frontend/assets/list-x-7y76cCK1.js +0 -6
  2846. langflow/frontend/assets/loader-CpGugn8z.js +0 -6
  2847. langflow/frontend/assets/loader-circle-C7vMxeTk.js +0 -6
  2848. langflow/frontend/assets/loader-pinwheel-B5vJZA-b.js +0 -6
  2849. langflow/frontend/assets/locate-CXSabGb2.js +0 -6
  2850. langflow/frontend/assets/locate-fixed-CZrvPTNn.js +0 -6
  2851. langflow/frontend/assets/locate-off-CpwakunO.js +0 -6
  2852. langflow/frontend/assets/location-edit-C7IHa5Lc.js +0 -6
  2853. langflow/frontend/assets/lock-BVRhimI5.js +0 -6
  2854. langflow/frontend/assets/lock-keyhole-open-DA2kOlPq.js +0 -6
  2855. langflow/frontend/assets/lock-keyhole-xETfdiwy.js +0 -6
  2856. langflow/frontend/assets/lock-open-UkNwovJL.js +0 -6
  2857. langflow/frontend/assets/log-in-x8E7GJHV.js +0 -6
  2858. langflow/frontend/assets/log-out-CAq4ff7L.js +0 -6
  2859. langflow/frontend/assets/logs-CGF67BGI.js +0 -6
  2860. langflow/frontend/assets/lollipop-CVLOYWMz.js +0 -6
  2861. langflow/frontend/assets/luggage-BVGyNgfQ.js +0 -6
  2862. langflow/frontend/assets/magnet-DwymTCxp.js +0 -6
  2863. langflow/frontend/assets/mail-CPlChRk9.js +0 -6
  2864. langflow/frontend/assets/mail-check-DqQDfU2v.js +0 -6
  2865. langflow/frontend/assets/mail-minus-CVob_17v.js +0 -6
  2866. langflow/frontend/assets/mail-open-CM2BYn09.js +0 -6
  2867. langflow/frontend/assets/mail-plus-CLxpY08G.js +0 -6
  2868. langflow/frontend/assets/mail-question-C64lNeAr.js +0 -6
  2869. langflow/frontend/assets/mail-search-D0XxyCHX.js +0 -6
  2870. langflow/frontend/assets/mail-warning-Dgs4-yQ5.js +0 -6
  2871. langflow/frontend/assets/mail-x-BC8iC4lr.js +0 -6
  2872. langflow/frontend/assets/mailbox-D4MMsF0d.js +0 -6
  2873. langflow/frontend/assets/mails-B_tzYfjx.js +0 -6
  2874. langflow/frontend/assets/map-CLbSj8B9.js +0 -6
  2875. langflow/frontend/assets/map-pin-BC3-cJZx.js +0 -6
  2876. langflow/frontend/assets/map-pin-check-inside-C2AMWhlJ.js +0 -6
  2877. langflow/frontend/assets/map-pin-check-rrKImA8z.js +0 -6
  2878. langflow/frontend/assets/map-pin-house-BSvGB51J.js +0 -6
  2879. langflow/frontend/assets/map-pin-minus-BsL-qE9I.js +0 -6
  2880. langflow/frontend/assets/map-pin-minus-inside-C1YoJvjn.js +0 -6
  2881. langflow/frontend/assets/map-pin-off-BuFEbWWi.js +0 -6
  2882. langflow/frontend/assets/map-pin-plus-BdeCOsPN.js +0 -6
  2883. langflow/frontend/assets/map-pin-plus-inside-OdRqsmu-.js +0 -6
  2884. langflow/frontend/assets/map-pin-x-BrN2P93n.js +0 -6
  2885. langflow/frontend/assets/map-pin-x-inside-Bvmhalao.js +0 -6
  2886. langflow/frontend/assets/map-pinned-CH31o_hf.js +0 -6
  2887. langflow/frontend/assets/map-plus-CzP_HQjM.js +0 -6
  2888. langflow/frontend/assets/mars-DhNzmMbi.js +0 -6
  2889. langflow/frontend/assets/mars-stroke-DlLuMDKO.js +0 -6
  2890. langflow/frontend/assets/martini-BxydynG5.js +0 -6
  2891. langflow/frontend/assets/maximize-2-c9xO8wQ7.js +0 -6
  2892. langflow/frontend/assets/maximize-B9hHTFgt.js +0 -6
  2893. langflow/frontend/assets/medal-qNiT5NCC.js +0 -6
  2894. langflow/frontend/assets/megaphone-C_9Nmkbf.js +0 -6
  2895. langflow/frontend/assets/megaphone-off-DUUiA0Q4.js +0 -6
  2896. langflow/frontend/assets/meh-Cib1ijXf.js +0 -6
  2897. langflow/frontend/assets/memory-stick-BBVdoNkO.js +0 -6
  2898. langflow/frontend/assets/menu-PkCcIsCE.js +0 -6
  2899. langflow/frontend/assets/merge-AuWPSLmr.js +0 -6
  2900. langflow/frontend/assets/message-circle-CA_WY-rm.js +0 -6
  2901. langflow/frontend/assets/message-circle-code-V4ZhVqBu.js +0 -6
  2902. langflow/frontend/assets/message-circle-dashed-DF1nlkD8.js +0 -6
  2903. langflow/frontend/assets/message-circle-heart-RaKP4Lbi.js +0 -6
  2904. langflow/frontend/assets/message-circle-more-C4kf8cZR.js +0 -6
  2905. langflow/frontend/assets/message-circle-off-dZiCtBk2.js +0 -6
  2906. langflow/frontend/assets/message-circle-plus-DetlDmDB.js +0 -6
  2907. langflow/frontend/assets/message-circle-question-CJbzhjks.js +0 -6
  2908. langflow/frontend/assets/message-circle-reply-1yb9lUBy.js +0 -6
  2909. langflow/frontend/assets/message-circle-warning-BfMxVida.js +0 -6
  2910. langflow/frontend/assets/message-circle-x-CdJc9Wob.js +0 -6
  2911. langflow/frontend/assets/message-square-D-W-dMWE.js +0 -6
  2912. langflow/frontend/assets/message-square-code-BuOT2ldU.js +0 -6
  2913. langflow/frontend/assets/message-square-dashed-a6BagiZp.js +0 -6
  2914. langflow/frontend/assets/message-square-diff-aoyZz41j.js +0 -6
  2915. langflow/frontend/assets/message-square-dot-D0ECnD4K.js +0 -6
  2916. langflow/frontend/assets/message-square-heart-BCJ8RRCc.js +0 -6
  2917. langflow/frontend/assets/message-square-lock-BlGitIkU.js +0 -6
  2918. langflow/frontend/assets/message-square-more-DMsYM8Bs.js +0 -6
  2919. langflow/frontend/assets/message-square-off-CLI88553.js +0 -6
  2920. langflow/frontend/assets/message-square-plus-CRk_dHln.js +0 -6
  2921. langflow/frontend/assets/message-square-quote-DqT17MEl.js +0 -6
  2922. langflow/frontend/assets/message-square-reply-D0V6GiHl.js +0 -6
  2923. langflow/frontend/assets/message-square-share-T8jRu79e.js +0 -6
  2924. langflow/frontend/assets/message-square-text-CjrX8Bo9.js +0 -6
  2925. langflow/frontend/assets/message-square-warning-De32GwHO.js +0 -6
  2926. langflow/frontend/assets/message-square-x-C-65Rx5Y.js +0 -6
  2927. langflow/frontend/assets/messages-square-BivCEltF.js +0 -6
  2928. langflow/frontend/assets/mic-CC3sDP_w.js +0 -6
  2929. langflow/frontend/assets/mic-off-Babbic2H.js +0 -6
  2930. langflow/frontend/assets/mic-vocal-BvvGQ8MH.js +0 -6
  2931. langflow/frontend/assets/microchip-BlMhLr81.js +0 -6
  2932. langflow/frontend/assets/microscope-D5AwhtB4.js +0 -6
  2933. langflow/frontend/assets/microwave-CDhCbdV6.js +0 -6
  2934. langflow/frontend/assets/milestone-DAryc5Eh.js +0 -6
  2935. langflow/frontend/assets/milk-CXaSy3hZ.js +0 -6
  2936. langflow/frontend/assets/milk-off-AVTQIqLw.js +0 -6
  2937. langflow/frontend/assets/minimize-2-QRsIfbH1.js +0 -6
  2938. langflow/frontend/assets/minimize-LLqVTFaC.js +0 -6
  2939. langflow/frontend/assets/monitor-C_gf_0WP.js +0 -6
  2940. langflow/frontend/assets/monitor-check-3E4wOt1R.js +0 -6
  2941. langflow/frontend/assets/monitor-cog-BIZ-00w1.js +0 -6
  2942. langflow/frontend/assets/monitor-dot-BeMmkQMI.js +0 -6
  2943. langflow/frontend/assets/monitor-down-B_h-krrH.js +0 -6
  2944. langflow/frontend/assets/monitor-off-CoCP0S62.js +0 -6
  2945. langflow/frontend/assets/monitor-pause-DVhs8SMW.js +0 -6
  2946. langflow/frontend/assets/monitor-play--NKo3f35.js +0 -6
  2947. langflow/frontend/assets/monitor-smartphone-Bm-dV2tl.js +0 -6
  2948. langflow/frontend/assets/monitor-speaker-DArSI55w.js +0 -6
  2949. langflow/frontend/assets/monitor-stop-BHY8jV0d.js +0 -6
  2950. langflow/frontend/assets/monitor-up-8BVjnNWp.js +0 -6
  2951. langflow/frontend/assets/monitor-x-CB4Vu5VD.js +0 -6
  2952. langflow/frontend/assets/moon-DxmA-HNm.js +0 -6
  2953. langflow/frontend/assets/moon-star-wFi5y6yM.js +0 -6
  2954. langflow/frontend/assets/mountain-MlsHxfGU.js +0 -6
  2955. langflow/frontend/assets/mountain-snow-D-3_n84Z.js +0 -6
  2956. langflow/frontend/assets/mouse-CByAEZ1_.js +0 -6
  2957. langflow/frontend/assets/mouse-off-DwKkWq1Q.js +0 -6
  2958. langflow/frontend/assets/mouse-pointer-2-4IJr7lJT.js +0 -6
  2959. langflow/frontend/assets/mouse-pointer-DbgCJ5eG.js +0 -6
  2960. langflow/frontend/assets/mouse-pointer-ban-C9ZHmKoI.js +0 -6
  2961. langflow/frontend/assets/mouse-pointer-click-CcOY-njr.js +0 -6
  2962. langflow/frontend/assets/move-3d-B0FKZUUi.js +0 -6
  2963. langflow/frontend/assets/move-JTxjRI_W.js +0 -6
  2964. langflow/frontend/assets/move-diagonal-2-BYqCVnfB.js +0 -6
  2965. langflow/frontend/assets/move-diagonal-B8vBEtRz.js +0 -6
  2966. langflow/frontend/assets/move-down-AGUXOYwL.js +0 -6
  2967. langflow/frontend/assets/move-down-left-BYO6EwCB.js +0 -6
  2968. langflow/frontend/assets/move-down-right-DQFzAvpw.js +0 -6
  2969. langflow/frontend/assets/move-horizontal-BrMfK8-_.js +0 -6
  2970. langflow/frontend/assets/move-left-CK41HD3w.js +0 -6
  2971. langflow/frontend/assets/move-right-Bgu7dBjl.js +0 -6
  2972. langflow/frontend/assets/move-up-CsL9s1id.js +0 -6
  2973. langflow/frontend/assets/move-up-left-evjLkoW5.js +0 -6
  2974. langflow/frontend/assets/move-up-right-BOxmpdgs.js +0 -6
  2975. langflow/frontend/assets/move-vertical-Byea2r03.js +0 -6
  2976. langflow/frontend/assets/music-2-D8e9xH0e.js +0 -6
  2977. langflow/frontend/assets/music-3-ChZFSSfK.js +0 -6
  2978. langflow/frontend/assets/music-4-CevdyU4n.js +0 -6
  2979. langflow/frontend/assets/music-C9dkVRVD.js +0 -6
  2980. langflow/frontend/assets/navigation-2-ZjJF3uqn.js +0 -6
  2981. langflow/frontend/assets/navigation-2-off-CYgbEnXp.js +0 -6
  2982. langflow/frontend/assets/navigation-DS9fYE6I.js +0 -6
  2983. langflow/frontend/assets/navigation-off-DczymGf6.js +0 -6
  2984. langflow/frontend/assets/network-Dd8OnsAk.js +0 -6
  2985. langflow/frontend/assets/newspaper-D2EhM9Lr.js +0 -6
  2986. langflow/frontend/assets/nfc-Xg6NC2FN.js +0 -6
  2987. langflow/frontend/assets/non-binary-CJwL5Zwo.js +0 -6
  2988. langflow/frontend/assets/notebook-bNc7jfHi.js +0 -6
  2989. langflow/frontend/assets/notebook-pen-Bc5pNhJt.js +0 -6
  2990. langflow/frontend/assets/notebook-tabs-B6eO9QbY.js +0 -6
  2991. langflow/frontend/assets/notebook-text-DrYopc4c.js +0 -6
  2992. langflow/frontend/assets/notepad-text-DL1SUW4r.js +0 -6
  2993. langflow/frontend/assets/notepad-text-dashed-BZi8SNuV.js +0 -6
  2994. langflow/frontend/assets/nut-DTCFbnum.js +0 -6
  2995. langflow/frontend/assets/nut-off-CYAouHtt.js +0 -6
  2996. langflow/frontend/assets/octagon-BkS49b66.js +0 -6
  2997. langflow/frontend/assets/octagon-alert-BAjsOvmM.js +0 -6
  2998. langflow/frontend/assets/octagon-minus-Ds7hlCmP.js +0 -6
  2999. langflow/frontend/assets/octagon-pause-Cg8FrctV.js +0 -6
  3000. langflow/frontend/assets/octagon-x-DpnwRPht.js +0 -6
  3001. langflow/frontend/assets/omega-CXxen_P_.js +0 -6
  3002. langflow/frontend/assets/option-Zeawjg3G.js +0 -6
  3003. langflow/frontend/assets/orbit-D7FMIan5.js +0 -6
  3004. langflow/frontend/assets/origami-CWuZwA0W.js +0 -6
  3005. langflow/frontend/assets/package-2-BypbWahh.js +0 -6
  3006. langflow/frontend/assets/package-CZ9eGc1K.js +0 -6
  3007. langflow/frontend/assets/package-check-oIyDRq_D.js +0 -6
  3008. langflow/frontend/assets/package-minus-DVTfgNNw.js +0 -6
  3009. langflow/frontend/assets/package-open-DlHD6pu2.js +0 -6
  3010. langflow/frontend/assets/package-plus-Pad6E5Qt.js +0 -6
  3011. langflow/frontend/assets/package-search-CuImPWNL.js +0 -6
  3012. langflow/frontend/assets/package-x-BybiasZ-.js +0 -6
  3013. langflow/frontend/assets/paint-bucket-C9fsWn4e.js +0 -6
  3014. langflow/frontend/assets/paint-roller-D1XIuhy5.js +0 -6
  3015. langflow/frontend/assets/paintbrush-muvUXi3T.js +0 -6
  3016. langflow/frontend/assets/paintbrush-vertical-CBjON0lk.js +0 -6
  3017. langflow/frontend/assets/palette-DCHtDWzA.js +0 -6
  3018. langflow/frontend/assets/panel-bottom-VdkRyvaV.js +0 -6
  3019. langflow/frontend/assets/panel-bottom-close-Cn0VwQVd.js +0 -6
  3020. langflow/frontend/assets/panel-bottom-dashed-BNQ5qmRT.js +0 -6
  3021. langflow/frontend/assets/panel-bottom-open-8Lt0MK2n.js +0 -6
  3022. langflow/frontend/assets/panel-left-close-Di0Y1aVs.js +0 -6
  3023. langflow/frontend/assets/panel-left-dashed-eeP16LT4.js +0 -6
  3024. langflow/frontend/assets/panel-left-open-BFhH8ArN.js +0 -6
  3025. langflow/frontend/assets/panel-right-close-ChNr22xm.js +0 -6
  3026. langflow/frontend/assets/panel-right-dashed-9McZyqBo.js +0 -6
  3027. langflow/frontend/assets/panel-right-open-CqEbh2nC.js +0 -6
  3028. langflow/frontend/assets/panel-right-xH3_J8jh.js +0 -6
  3029. langflow/frontend/assets/panel-top-BES_HqrL.js +0 -6
  3030. langflow/frontend/assets/panel-top-close-D6MmxSV_.js +0 -6
  3031. langflow/frontend/assets/panel-top-dashed-79FwQiDq.js +0 -6
  3032. langflow/frontend/assets/panel-top-open-FzTUDITs.js +0 -6
  3033. langflow/frontend/assets/panels-left-bottom-CyjV3fD8.js +0 -6
  3034. langflow/frontend/assets/panels-right-bottom-BxDrTN-x.js +0 -6
  3035. langflow/frontend/assets/panels-top-left-BYFhg7sb.js +0 -6
  3036. langflow/frontend/assets/paperclip-BFt6ptVB.js +0 -6
  3037. langflow/frontend/assets/parentheses-Cec0ptKF.js +0 -6
  3038. langflow/frontend/assets/parking-meter-CoZXHuql.js +0 -6
  3039. langflow/frontend/assets/party-popper-zOXdxHY4.js +0 -6
  3040. langflow/frontend/assets/pause-Dq2G7VLH.js +0 -6
  3041. langflow/frontend/assets/paw-print-DHq3vsZB.js +0 -6
  3042. langflow/frontend/assets/pc-case-BYJbixJr.js +0 -6
  3043. langflow/frontend/assets/pen-line-BENCJKEM.js +0 -6
  3044. langflow/frontend/assets/pen-off-35SspMXI.js +0 -6
  3045. langflow/frontend/assets/pen-tool-DkKUJ2rs.js +0 -6
  3046. langflow/frontend/assets/pen-vT0ntcXq.js +0 -6
  3047. langflow/frontend/assets/pencil-CYjinBx-.js +0 -6
  3048. langflow/frontend/assets/pencil-line-Br2Vny27.js +0 -6
  3049. langflow/frontend/assets/pencil-off-KlrlJ7TA.js +0 -6
  3050. langflow/frontend/assets/pencil-ruler-qayaUVoL.js +0 -6
  3051. langflow/frontend/assets/pentagon-CaXtFQGf.js +0 -6
  3052. langflow/frontend/assets/percent-DiwSWW79.js +0 -6
  3053. langflow/frontend/assets/person-standing-C-Oj55Ki.js +0 -6
  3054. langflow/frontend/assets/philippine-peso-DHcxt1pq.js +0 -6
  3055. langflow/frontend/assets/phone-CnavbniL.js +0 -6
  3056. langflow/frontend/assets/phone-call-BaJeG4Oz.js +0 -6
  3057. langflow/frontend/assets/phone-forwarded-CTUAAOqA.js +0 -6
  3058. langflow/frontend/assets/phone-incoming-BY9n18Xl.js +0 -6
  3059. langflow/frontend/assets/phone-missed-JN4YK4wk.js +0 -6
  3060. langflow/frontend/assets/phone-off-D29CLUXD.js +0 -6
  3061. langflow/frontend/assets/phone-outgoing-C_h0OcCg.js +0 -6
  3062. langflow/frontend/assets/pi-E--szl6r.js +0 -6
  3063. langflow/frontend/assets/piano-GCVUDLaK.js +0 -6
  3064. langflow/frontend/assets/pickaxe-0xmEs66N.js +0 -6
  3065. langflow/frontend/assets/picture-in-picture-2-DGRK_siY.js +0 -6
  3066. langflow/frontend/assets/picture-in-picture-ftIQ57-J.js +0 -6
  3067. langflow/frontend/assets/piggy-bank-Dzktlezx.js +0 -6
  3068. langflow/frontend/assets/pilcrow-left-zVovPsML.js +0 -6
  3069. langflow/frontend/assets/pilcrow-loXMZ_Cc.js +0 -6
  3070. langflow/frontend/assets/pilcrow-right-TcwBQYaL.js +0 -6
  3071. langflow/frontend/assets/pill-DeW0uERQ.js +0 -6
  3072. langflow/frontend/assets/pill-bottle-PjyO9Q4O.js +0 -6
  3073. langflow/frontend/assets/pin-C_gl3qU6.js +0 -6
  3074. langflow/frontend/assets/pin-off-YAWnWjXM.js +0 -6
  3075. langflow/frontend/assets/pipette-CkreHDwE.js +0 -6
  3076. langflow/frontend/assets/pizza-_-w62IP5.js +0 -6
  3077. langflow/frontend/assets/plane-dhjZBSaS.js +0 -6
  3078. langflow/frontend/assets/plane-landing-DymFNAaC.js +0 -6
  3079. langflow/frontend/assets/plane-takeoff-DsvimvQU.js +0 -6
  3080. langflow/frontend/assets/play-D5gDZHf2.js +0 -6
  3081. langflow/frontend/assets/plug-2--jPsA3Ag.js +0 -6
  3082. langflow/frontend/assets/plug-fZlRq3aR.js +0 -6
  3083. langflow/frontend/assets/plug-zap-CrKE55uN.js +0 -6
  3084. langflow/frontend/assets/pocket-DXP2FkBk.js +0 -6
  3085. langflow/frontend/assets/pocket-knife-DK0-xJls.js +0 -6
  3086. langflow/frontend/assets/podcast-s4hkb5YG.js +0 -6
  3087. langflow/frontend/assets/pointer-D58cag1f.js +0 -6
  3088. langflow/frontend/assets/pointer-off-CLjqzUWW.js +0 -6
  3089. langflow/frontend/assets/popcorn-4nuwkupX.js +0 -6
  3090. langflow/frontend/assets/popsicle-CCuctRXA.js +0 -6
  3091. langflow/frontend/assets/pound-sterling-D1zwjbii.js +0 -6
  3092. langflow/frontend/assets/power-B-vUfi4W.js +0 -6
  3093. langflow/frontend/assets/power-off-LTq9SPHZ.js +0 -6
  3094. langflow/frontend/assets/presentation-BYdaYeKg.js +0 -6
  3095. langflow/frontend/assets/printer-Brtbe02_.js +0 -6
  3096. langflow/frontend/assets/printer-check-BCeOeuBm.js +0 -6
  3097. langflow/frontend/assets/projector-B-yE4zsa.js +0 -6
  3098. langflow/frontend/assets/proportions-Ddxn1VxX.js +0 -6
  3099. langflow/frontend/assets/puzzle-C7tkZhe6.js +0 -6
  3100. langflow/frontend/assets/pyramid-lDev8HUx.js +0 -6
  3101. langflow/frontend/assets/qr-code-dBZ2TcF4.js +0 -6
  3102. langflow/frontend/assets/quote-CGLj0NS9.js +0 -6
  3103. langflow/frontend/assets/rabbit-D9oz4LtB.js +0 -6
  3104. langflow/frontend/assets/radar-DcWna0zb.js +0 -6
  3105. langflow/frontend/assets/radiation-DeXaL4AQ.js +0 -6
  3106. langflow/frontend/assets/radical-CtZlpDi9.js +0 -6
  3107. langflow/frontend/assets/radio-eNITmlSo.js +0 -6
  3108. langflow/frontend/assets/radio-receiver-BfV2Dmvf.js +0 -6
  3109. langflow/frontend/assets/radio-tower-D1SCwNo2.js +0 -6
  3110. langflow/frontend/assets/radius-Bu-QVZYV.js +0 -6
  3111. langflow/frontend/assets/rail-symbol-vxsC3zrN.js +0 -6
  3112. langflow/frontend/assets/rainbow-Yt1lS5xo.js +0 -6
  3113. langflow/frontend/assets/rat-BAwrMl5F.js +0 -6
  3114. langflow/frontend/assets/ratio-CsZZN9V5.js +0 -6
  3115. langflow/frontend/assets/receipt-Du96GvVL.js +0 -6
  3116. langflow/frontend/assets/receipt-cent--UPZZiZb.js +0 -6
  3117. langflow/frontend/assets/receipt-euro-BRG9JZ-X.js +0 -6
  3118. langflow/frontend/assets/receipt-indian-rupee-CiC54S7Q.js +0 -6
  3119. langflow/frontend/assets/receipt-japanese-yen-Dp0THOcF.js +0 -6
  3120. langflow/frontend/assets/receipt-pound-sterling-z68WWrAg.js +0 -6
  3121. langflow/frontend/assets/receipt-russian-ruble-BeK9NhsQ.js +0 -6
  3122. langflow/frontend/assets/receipt-swiss-franc-V5GUJUv8.js +0 -6
  3123. langflow/frontend/assets/receipt-text-D2MKKFu7.js +0 -6
  3124. langflow/frontend/assets/rectangle-ellipsis-YPDb3pNJ.js +0 -6
  3125. langflow/frontend/assets/rectangle-goggles-D5ZS6Gn2.js +0 -6
  3126. langflow/frontend/assets/rectangle-horizontal-DJRtghG-.js +0 -6
  3127. langflow/frontend/assets/rectangle-vertical-BFFAXZAi.js +0 -6
  3128. langflow/frontend/assets/recycle-zRxgRzDR.js +0 -6
  3129. langflow/frontend/assets/redo-2-DQ5Z3Cci.js +0 -6
  3130. langflow/frontend/assets/redo-BW6eHdSm.js +0 -6
  3131. langflow/frontend/assets/redo-dot-BzlMmsHg.js +0 -6
  3132. langflow/frontend/assets/refresh-ccw-CALK_-YP.js +0 -6
  3133. langflow/frontend/assets/refresh-ccw-dot-B406vMsZ.js +0 -6
  3134. langflow/frontend/assets/refresh-cw-DSScbrmt.js +0 -6
  3135. langflow/frontend/assets/refresh-cw-off-BGd1KgB_.js +0 -6
  3136. langflow/frontend/assets/refrigerator-DCA_SnC1.js +0 -6
  3137. langflow/frontend/assets/regex-CrK02sS4.js +0 -6
  3138. langflow/frontend/assets/remove-formatting-BptMkJc_.js +0 -6
  3139. langflow/frontend/assets/repeat-1-Cv75yG6O.js +0 -6
  3140. langflow/frontend/assets/repeat-2-DOTh4JU6.js +0 -6
  3141. langflow/frontend/assets/repeat-XtH2UVpb.js +0 -6
  3142. langflow/frontend/assets/replace-C4xEXyFV.js +0 -6
  3143. langflow/frontend/assets/replace-all-D18yuVPB.js +0 -6
  3144. langflow/frontend/assets/reply-DAja57Qs.js +0 -6
  3145. langflow/frontend/assets/reply-all-DbWCsZaY.js +0 -6
  3146. langflow/frontend/assets/rewind-cXAmx0C4.js +0 -6
  3147. langflow/frontend/assets/ribbon-DawERbfg.js +0 -6
  3148. langflow/frontend/assets/rocket-C4Jz5n-T.js +0 -6
  3149. langflow/frontend/assets/rocking-chair-Chlnw0Dd.js +0 -6
  3150. langflow/frontend/assets/roller-coaster-CgA5W9bP.js +0 -6
  3151. langflow/frontend/assets/rotate-3d-Bf2rLGc5.js +0 -6
  3152. langflow/frontend/assets/rotate-ccw-TRweReNB.js +0 -6
  3153. langflow/frontend/assets/rotate-ccw-key-CyDADQeO.js +0 -6
  3154. langflow/frontend/assets/rotate-ccw-square-B2XFXTV1.js +0 -6
  3155. langflow/frontend/assets/rotate-cw-lCXZZv51.js +0 -6
  3156. langflow/frontend/assets/rotate-cw-square-VIMyKF2T.js +0 -6
  3157. langflow/frontend/assets/route-off-0c8EziAm.js +0 -6
  3158. langflow/frontend/assets/route-zmT8eEXb.js +0 -6
  3159. langflow/frontend/assets/router--rrfSmGE.js +0 -6
  3160. langflow/frontend/assets/rows-2-Bu_ZA68s.js +0 -6
  3161. langflow/frontend/assets/rows-3-sWz9f4XY.js +0 -6
  3162. langflow/frontend/assets/rows-4-CqYQya9n.js +0 -6
  3163. langflow/frontend/assets/rss-fUSKKSH4.js +0 -6
  3164. langflow/frontend/assets/ruler-VS1FoLkp.js +0 -6
  3165. langflow/frontend/assets/ruler-dimension-line-DvW6HeNu.js +0 -6
  3166. langflow/frontend/assets/russian-ruble-B3D7yZuM.js +0 -6
  3167. langflow/frontend/assets/sailboat-C5o5EuPP.js +0 -6
  3168. langflow/frontend/assets/salad-5J7rqLkJ.js +0 -6
  3169. langflow/frontend/assets/sandwich-BdIfbNOT.js +0 -6
  3170. langflow/frontend/assets/satellite-B_Y1zaG5.js +0 -6
  3171. langflow/frontend/assets/satellite-dish-D80HNYgK.js +0 -6
  3172. langflow/frontend/assets/saudi-riyal-CUYg1wXB.js +0 -6
  3173. langflow/frontend/assets/save-CoakK4fb.js +0 -6
  3174. langflow/frontend/assets/save-all-Bl_EP68d.js +0 -6
  3175. langflow/frontend/assets/save-off-BKjN49Lb.js +0 -6
  3176. langflow/frontend/assets/scale-3d-T_X35jYT.js +0 -6
  3177. langflow/frontend/assets/scale-HVvm0fQQ.js +0 -6
  3178. langflow/frontend/assets/scaling-BfP1C9yz.js +0 -6
  3179. langflow/frontend/assets/scan-C-mQQMRM.js +0 -6
  3180. langflow/frontend/assets/scan-barcode-pfZboiQu.js +0 -6
  3181. langflow/frontend/assets/scan-eye-B-cJFsJ7.js +0 -6
  3182. langflow/frontend/assets/scan-face-DJ3aK047.js +0 -6
  3183. langflow/frontend/assets/scan-heart-CARk6m4o.js +0 -6
  3184. langflow/frontend/assets/scan-line-D3-IGFxM.js +0 -6
  3185. langflow/frontend/assets/scan-qr-code-AgHzHSFb.js +0 -6
  3186. langflow/frontend/assets/scan-search-BwOv2eQD.js +0 -6
  3187. langflow/frontend/assets/scan-text-DhcCKw7S.js +0 -6
  3188. langflow/frontend/assets/school-Dmfg7NhR.js +0 -6
  3189. langflow/frontend/assets/scissors-BYimjgZo.js +0 -6
  3190. langflow/frontend/assets/scissors-line-dashed-DaX5tfK6.js +0 -6
  3191. langflow/frontend/assets/screen-share-B0Rwjn3h.js +0 -6
  3192. langflow/frontend/assets/screen-share-off-i7pi2qye.js +0 -6
  3193. langflow/frontend/assets/scroll-CsqDpzVt.js +0 -6
  3194. langflow/frontend/assets/scroll-text-B5PrShKY.js +0 -6
  3195. langflow/frontend/assets/search-check-gu2OyofH.js +0 -6
  3196. langflow/frontend/assets/search-code-epHF21rL.js +0 -6
  3197. langflow/frontend/assets/search-slash-CjiwoSE4.js +0 -6
  3198. langflow/frontend/assets/search-x-BIh9a7Ur.js +0 -6
  3199. langflow/frontend/assets/section-L4IyrrL2.js +0 -6
  3200. langflow/frontend/assets/send-DL1suzMz.js +0 -6
  3201. langflow/frontend/assets/send-horizontal-BpW9nr1o.js +0 -6
  3202. langflow/frontend/assets/send-to-back-DgKOeExP.js +0 -6
  3203. langflow/frontend/assets/separator-horizontal-CDBVEzhR.js +0 -6
  3204. langflow/frontend/assets/separator-vertical-DxTroJHz.js +0 -6
  3205. langflow/frontend/assets/server-DsuCkB32.js +0 -6
  3206. langflow/frontend/assets/server-cog-BRbXijaF.js +0 -6
  3207. langflow/frontend/assets/server-crash-UxPljINH.js +0 -6
  3208. langflow/frontend/assets/server-off-DwfWrs-f.js +0 -6
  3209. langflow/frontend/assets/settings-2-BG_iHF0S.js +0 -6
  3210. langflow/frontend/assets/settings-CDkVqrbN.js +0 -6
  3211. langflow/frontend/assets/shapes-Bu2WeI3N.js +0 -6
  3212. langflow/frontend/assets/share-2-D-rHncwy.js +0 -6
  3213. langflow/frontend/assets/share-DxpQzX_z.js +0 -6
  3214. langflow/frontend/assets/sheet-ECa8uo_1.js +0 -6
  3215. langflow/frontend/assets/shell-XXc6sjjP.js +0 -6
  3216. langflow/frontend/assets/shield-3Aayk0Yd.js +0 -6
  3217. langflow/frontend/assets/shield-alert-BdlGkUkx.js +0 -6
  3218. langflow/frontend/assets/shield-ban-R2neGhCl.js +0 -6
  3219. langflow/frontend/assets/shield-check-CzBw3P2u.js +0 -6
  3220. langflow/frontend/assets/shield-ellipsis-C9Kw0CW8.js +0 -6
  3221. langflow/frontend/assets/shield-half-BNoL-3x6.js +0 -6
  3222. langflow/frontend/assets/shield-minus-BFAW_Eai.js +0 -6
  3223. langflow/frontend/assets/shield-off-iWp3tpoR.js +0 -6
  3224. langflow/frontend/assets/shield-plus-DHBeRYXV.js +0 -6
  3225. langflow/frontend/assets/shield-question-Cyjh0hkh.js +0 -6
  3226. langflow/frontend/assets/shield-user-DaqxPw39.js +0 -6
  3227. langflow/frontend/assets/shield-x-Dpox2fuO.js +0 -6
  3228. langflow/frontend/assets/ship-BhFgFdPH.js +0 -6
  3229. langflow/frontend/assets/ship-wheel-Br-GjEBv.js +0 -6
  3230. langflow/frontend/assets/shirt-Bd9Hoj94.js +0 -6
  3231. langflow/frontend/assets/shopping-bag-GSZDKnH1.js +0 -6
  3232. langflow/frontend/assets/shopping-basket-CUdTcC1G.js +0 -6
  3233. langflow/frontend/assets/shopping-cart-Z04jhrfv.js +0 -6
  3234. langflow/frontend/assets/shovel-CUQ9PmeB.js +0 -6
  3235. langflow/frontend/assets/shower-head-CogSox1i.js +0 -6
  3236. langflow/frontend/assets/shredder-BY6GwMsz.js +0 -6
  3237. langflow/frontend/assets/shrimp-BA3ZLeWy.js +0 -6
  3238. langflow/frontend/assets/shrink-GUz1tu84.js +0 -6
  3239. langflow/frontend/assets/shrub-y2Qx3v3E.js +0 -6
  3240. langflow/frontend/assets/shuffle-D5p1Bpg9.js +0 -6
  3241. langflow/frontend/assets/sigma-B2eN1d7E.js +0 -6
  3242. langflow/frontend/assets/signal-UlorrJdP.js +0 -6
  3243. langflow/frontend/assets/signal-high-F1FccLN0.js +0 -6
  3244. langflow/frontend/assets/signal-low-BL9XhCMm.js +0 -6
  3245. langflow/frontend/assets/signal-medium-Clu5gXBc.js +0 -6
  3246. langflow/frontend/assets/signal-zero-C7KdVsK3.js +0 -6
  3247. langflow/frontend/assets/signature-CSD8ev4A.js +0 -6
  3248. langflow/frontend/assets/signpost-DdWHqH2D.js +0 -6
  3249. langflow/frontend/assets/signpost-big-DRCG--SV.js +0 -6
  3250. langflow/frontend/assets/siren-BGwrZMIj.js +0 -6
  3251. langflow/frontend/assets/skip-back-DlblP2G5.js +0 -6
  3252. langflow/frontend/assets/skip-forward-DLfy_ztd.js +0 -6
  3253. langflow/frontend/assets/skull-lhjinvU8.js +0 -6
  3254. langflow/frontend/assets/slack-BdO5jWeW.js +0 -6
  3255. langflow/frontend/assets/slash-DFhkEdsT.js +0 -6
  3256. langflow/frontend/assets/slice-MCZT2E4k.js +0 -6
  3257. langflow/frontend/assets/sliders-horizontal-DGzpjC7g.js +0 -6
  3258. langflow/frontend/assets/sliders-vertical-Dif2HDCu.js +0 -6
  3259. langflow/frontend/assets/smartphone-CQ9bvrNd.js +0 -6
  3260. langflow/frontend/assets/smartphone-charging-Dv2EhhuZ.js +0 -6
  3261. langflow/frontend/assets/smartphone-nfc-CjZu00Xh.js +0 -6
  3262. langflow/frontend/assets/smile-plus-D8oKz8Zm.js +0 -6
  3263. langflow/frontend/assets/smile-uAPZf9k0.js +0 -6
  3264. langflow/frontend/assets/snail-DGlA84il.js +0 -6
  3265. langflow/frontend/assets/snowflake-DICaRo92.js +0 -6
  3266. langflow/frontend/assets/sofa-gJvsMob1.js +0 -6
  3267. langflow/frontend/assets/soup-CbrVbNAY.js +0 -6
  3268. langflow/frontend/assets/space-Bbf8aoTJ.js +0 -6
  3269. langflow/frontend/assets/spade-BGuX9G6I.js +0 -6
  3270. langflow/frontend/assets/sparkle-BG_kwf3j.js +0 -6
  3271. langflow/frontend/assets/sparkles-DzwVAcTw.js +0 -6
  3272. langflow/frontend/assets/speaker-BoWrB9Wf.js +0 -6
  3273. langflow/frontend/assets/speech-V2RhB1KX.js +0 -6
  3274. langflow/frontend/assets/spell-check-2-CVcS9zAH.js +0 -6
  3275. langflow/frontend/assets/spell-check-8ehsA2FJ.js +0 -6
  3276. langflow/frontend/assets/spline-BL13po73.js +0 -6
  3277. langflow/frontend/assets/spline-pointer-u3nKJQC3.js +0 -6
  3278. langflow/frontend/assets/split-BfPqExd8.js +0 -6
  3279. langflow/frontend/assets/spray-can-1M_61FlY.js +0 -6
  3280. langflow/frontend/assets/sprout-CaTgQF9N.js +0 -6
  3281. langflow/frontend/assets/square-CiRS54H9.js +0 -6
  3282. langflow/frontend/assets/square-activity-BYCjPTDg.js +0 -6
  3283. langflow/frontend/assets/square-arrow-down-C6jERBST.js +0 -6
  3284. langflow/frontend/assets/square-arrow-down-left-B9kocYrO.js +0 -6
  3285. langflow/frontend/assets/square-arrow-down-right-C5vRLApA.js +0 -6
  3286. langflow/frontend/assets/square-arrow-left-CYJGBAro.js +0 -6
  3287. langflow/frontend/assets/square-arrow-out-down-left-Bc1hFgCC.js +0 -6
  3288. langflow/frontend/assets/square-arrow-out-down-right-mKLvhs-o.js +0 -6
  3289. langflow/frontend/assets/square-arrow-out-up-left-BSmvvSln.js +0 -6
  3290. langflow/frontend/assets/square-arrow-out-up-right-BJ0xeLsR.js +0 -6
  3291. langflow/frontend/assets/square-arrow-right-PJaqErcJ.js +0 -6
  3292. langflow/frontend/assets/square-arrow-up-DE4La2Nc.js +0 -6
  3293. langflow/frontend/assets/square-arrow-up-left-DjPJ3r5D.js +0 -6
  3294. langflow/frontend/assets/square-arrow-up-right-xRgWNaaG.js +0 -6
  3295. langflow/frontend/assets/square-asterisk-C_vozkbL.js +0 -6
  3296. langflow/frontend/assets/square-bottom-dashed-scissors-CGl9zwKs.js +0 -6
  3297. langflow/frontend/assets/square-chart-gantt-546uyef5.js +0 -6
  3298. langflow/frontend/assets/square-check-BJYB9b0m.js +0 -6
  3299. langflow/frontend/assets/square-check-big-HNnbZj-_.js +0 -6
  3300. langflow/frontend/assets/square-chevron-down-oKoBli6U.js +0 -6
  3301. langflow/frontend/assets/square-chevron-left-CIKFESWe.js +0 -6
  3302. langflow/frontend/assets/square-chevron-right-BQ0NuYvg.js +0 -6
  3303. langflow/frontend/assets/square-chevron-up-BVUcidlw.js +0 -6
  3304. langflow/frontend/assets/square-code-Bieukj3A.js +0 -6
  3305. langflow/frontend/assets/square-dashed-C94ZDJKM.js +0 -6
  3306. langflow/frontend/assets/square-dashed-bottom-DPXHJFJH.js +0 -6
  3307. langflow/frontend/assets/square-dashed-bottom-code-DAj0S6eV.js +0 -6
  3308. langflow/frontend/assets/square-dashed-kanban-BkyJc69X.js +0 -6
  3309. langflow/frontend/assets/square-dashed-mouse-pointer-C9tm2aEF.js +0 -6
  3310. langflow/frontend/assets/square-divide-Dut6p2g0.js +0 -6
  3311. langflow/frontend/assets/square-dot-BeWCo-V3.js +0 -6
  3312. langflow/frontend/assets/square-equal-CBYunfZw.js +0 -6
  3313. langflow/frontend/assets/square-function-jQvdlj1-.js +0 -6
  3314. langflow/frontend/assets/square-kanban-B0Ro_WqQ.js +0 -6
  3315. langflow/frontend/assets/square-library-CnUicpII.js +0 -6
  3316. langflow/frontend/assets/square-m-DzIp4npM.js +0 -6
  3317. langflow/frontend/assets/square-menu-D0F_J6ur.js +0 -6
  3318. langflow/frontend/assets/square-minus-pByJ6-YF.js +0 -6
  3319. langflow/frontend/assets/square-mouse-pointer-_o6zqnV9.js +0 -6
  3320. langflow/frontend/assets/square-parking-DiFA9aLL.js +0 -6
  3321. langflow/frontend/assets/square-parking-off-C55f_ASK.js +0 -6
  3322. langflow/frontend/assets/square-pen-CsjqR7ls.js +0 -6
  3323. langflow/frontend/assets/square-percent-YGQuhxBH.js +0 -6
  3324. langflow/frontend/assets/square-pi-CAMLTOQb.js +0 -6
  3325. langflow/frontend/assets/square-pilcrow-B10MLbaA.js +0 -6
  3326. langflow/frontend/assets/square-play-vHD8BkWO.js +0 -6
  3327. langflow/frontend/assets/square-plus-BYaRJttI.js +0 -6
  3328. langflow/frontend/assets/square-power-CSYlEi8e.js +0 -6
  3329. langflow/frontend/assets/square-radical-CNfscaSI.js +0 -6
  3330. langflow/frontend/assets/square-round-corner-BRgCPIwr.js +0 -6
  3331. langflow/frontend/assets/square-scissors-CL_H-PDM.js +0 -6
  3332. langflow/frontend/assets/square-sigma-NJT_PH03.js +0 -6
  3333. langflow/frontend/assets/square-slash-DNfIEpB0.js +0 -6
  3334. langflow/frontend/assets/square-split-horizontal-BfkOKgBa.js +0 -6
  3335. langflow/frontend/assets/square-split-vertical-DyA7wTPw.js +0 -6
  3336. langflow/frontend/assets/square-square-BdMTLn87.js +0 -6
  3337. langflow/frontend/assets/square-stack-mMh4lpqb.js +0 -6
  3338. langflow/frontend/assets/square-terminal-BbEPtocu.js +0 -6
  3339. langflow/frontend/assets/square-user-CTxiLiSI.js +0 -6
  3340. langflow/frontend/assets/square-user-round-DlC5QB8r.js +0 -6
  3341. langflow/frontend/assets/square-x-BYJmO-m6.js +0 -6
  3342. langflow/frontend/assets/squares-exclude-C9ZJDeYs.js +0 -6
  3343. langflow/frontend/assets/squares-intersect-DEUS0nFu.js +0 -6
  3344. langflow/frontend/assets/squares-subtract-B32O4rKl.js +0 -6
  3345. langflow/frontend/assets/squares-unite-BG_gDtOb.js +0 -6
  3346. langflow/frontend/assets/squircle-dL7sDobZ.js +0 -6
  3347. langflow/frontend/assets/squirrel-BZCjWmeD.js +0 -6
  3348. langflow/frontend/assets/stamp-oHnO_pTZ.js +0 -6
  3349. langflow/frontend/assets/star-B4jAcwRs.js +0 -6
  3350. langflow/frontend/assets/star-half-CsgSa_hT.js +0 -6
  3351. langflow/frontend/assets/star-off-D09b_nTZ.js +0 -6
  3352. langflow/frontend/assets/step-back-D_5AOKCd.js +0 -6
  3353. langflow/frontend/assets/step-forward-7cwql0M0.js +0 -6
  3354. langflow/frontend/assets/stethoscope-BQ_wf-sr.js +0 -6
  3355. langflow/frontend/assets/sticker-CRyee7d1.js +0 -6
  3356. langflow/frontend/assets/sticky-note-D0q7U88T.js +0 -6
  3357. langflow/frontend/assets/store-SKBFUzmU.js +0 -6
  3358. langflow/frontend/assets/stretch-horizontal-Cp-xZFtY.js +0 -6
  3359. langflow/frontend/assets/stretch-vertical-P1lpwsMV.js +0 -6
  3360. langflow/frontend/assets/strikethrough-BkE7KrzB.js +0 -6
  3361. langflow/frontend/assets/subscript-CGSLlzhj.js +0 -6
  3362. langflow/frontend/assets/sun-B9A0hQHX.js +0 -6
  3363. langflow/frontend/assets/sun-dim-oHZ4_-q3.js +0 -6
  3364. langflow/frontend/assets/sun-medium-C2KpYFz7.js +0 -6
  3365. langflow/frontend/assets/sun-moon-ujDUPicI.js +0 -6
  3366. langflow/frontend/assets/sun-snow-BiaZEX_c.js +0 -6
  3367. langflow/frontend/assets/sunrise-DOx9yfZL.js +0 -6
  3368. langflow/frontend/assets/sunset-sDk0OkbI.js +0 -6
  3369. langflow/frontend/assets/superscript-BRCkEkc9.js +0 -6
  3370. langflow/frontend/assets/swatch-book-D1y_-4Zs.js +0 -6
  3371. langflow/frontend/assets/swiss-franc-BjEgE4UI.js +0 -6
  3372. langflow/frontend/assets/switch-camera-B1F1bLBo.js +0 -6
  3373. langflow/frontend/assets/sword-C4latnr4.js +0 -6
  3374. langflow/frontend/assets/swords-D2S7kVHu.js +0 -6
  3375. langflow/frontend/assets/syringe-C6kDEBG4.js +0 -6
  3376. langflow/frontend/assets/table-2-j1Emn9zu.js +0 -6
  3377. langflow/frontend/assets/table-cells-merge-Bhupjz9V.js +0 -6
  3378. langflow/frontend/assets/table-cells-split-p8cXV9kq.js +0 -6
  3379. langflow/frontend/assets/table-columns-split-eoXCHlKR.js +0 -6
  3380. langflow/frontend/assets/table-dW_CebvZ.js +0 -6
  3381. langflow/frontend/assets/table-of-contents-DkFCpMQ_.js +0 -6
  3382. langflow/frontend/assets/table-properties-CADm8Uoi.js +0 -6
  3383. langflow/frontend/assets/table-rows-split-Zu7MJMCS.js +0 -6
  3384. langflow/frontend/assets/tablet-CzzfeM_Q.js +0 -6
  3385. langflow/frontend/assets/tablet-smartphone-CzC1PWm5.js +0 -6
  3386. langflow/frontend/assets/tablets-DcUD6e87.js +0 -6
  3387. langflow/frontend/assets/tag-EqU7DJTa.js +0 -6
  3388. langflow/frontend/assets/tags-1lDSfADY.js +0 -6
  3389. langflow/frontend/assets/tally-1-zR9MsoJP.js +0 -6
  3390. langflow/frontend/assets/tally-2-7wSGtfuA.js +0 -6
  3391. langflow/frontend/assets/tally-3-Dq6I04h1.js +0 -6
  3392. langflow/frontend/assets/tally-4-DpyYQWJP.js +0 -6
  3393. langflow/frontend/assets/tally-5-SPdcQRYG.js +0 -6
  3394. langflow/frontend/assets/tangent-2zTVDFlW.js +0 -6
  3395. langflow/frontend/assets/target-CKzHU84Q.js +0 -6
  3396. langflow/frontend/assets/telescope-D1vqO67I.js +0 -6
  3397. langflow/frontend/assets/tent-BbnxNRdd.js +0 -6
  3398. langflow/frontend/assets/tent-tree-DQNJyopL.js +0 -6
  3399. langflow/frontend/assets/terminal-DTkaqOrf.js +0 -6
  3400. langflow/frontend/assets/test-tube-DnNr_09V.js +0 -6
  3401. langflow/frontend/assets/test-tube-diagonal-BtMR3eB7.js +0 -6
  3402. langflow/frontend/assets/test-tubes-DXMcDsMn.js +0 -6
  3403. langflow/frontend/assets/text-Bf1N7d-M.js +0 -6
  3404. langflow/frontend/assets/text-cursor-CLNpu_kd.js +0 -6
  3405. langflow/frontend/assets/text-cursor-input-Bk-AU6Cf.js +0 -6
  3406. langflow/frontend/assets/text-quote-DBSQO1VR.js +0 -6
  3407. langflow/frontend/assets/text-search-D9RUZKeM.js +0 -6
  3408. langflow/frontend/assets/text-select-aTtdlZWF.js +0 -6
  3409. langflow/frontend/assets/theater-CwCWVp7I.js +0 -6
  3410. langflow/frontend/assets/thermometer-hzns_6ni.js +0 -6
  3411. langflow/frontend/assets/thermometer-snowflake-DpcCqTz4.js +0 -6
  3412. langflow/frontend/assets/thermometer-sun-DOBlWl9P.js +0 -6
  3413. langflow/frontend/assets/thumbs-down-DL3FEEfD.js +0 -6
  3414. langflow/frontend/assets/thumbs-up-CiKU1CNV.js +0 -6
  3415. langflow/frontend/assets/ticket-DwHSi8UB.js +0 -6
  3416. langflow/frontend/assets/ticket-check-I0e1m6y-.js +0 -6
  3417. langflow/frontend/assets/ticket-minus-BRvl7itn.js +0 -6
  3418. langflow/frontend/assets/ticket-percent-Cac2P5dy.js +0 -6
  3419. langflow/frontend/assets/ticket-plus-Tv2_UivY.js +0 -6
  3420. langflow/frontend/assets/ticket-slash-CvSfXFfn.js +0 -6
  3421. langflow/frontend/assets/ticket-x-9rs_JXic.js +0 -6
  3422. langflow/frontend/assets/tickets-BT--dPwG.js +0 -6
  3423. langflow/frontend/assets/tickets-plane-VeC3tbnK.js +0 -6
  3424. langflow/frontend/assets/timer-H9s86Qqs.js +0 -6
  3425. langflow/frontend/assets/timer-off-U0BNfLJq.js +0 -6
  3426. langflow/frontend/assets/timer-reset-CMzc-vbv.js +0 -6
  3427. langflow/frontend/assets/toggle-left-B2ylpS6K.js +0 -6
  3428. langflow/frontend/assets/toggle-right-Beu7KghC.js +0 -6
  3429. langflow/frontend/assets/toilet-DfltNKFr.js +0 -6
  3430. langflow/frontend/assets/tornado-BpWqf6i5.js +0 -6
  3431. langflow/frontend/assets/torus-C0_DrjUk.js +0 -6
  3432. langflow/frontend/assets/touchpad-BjGyf7Yz.js +0 -6
  3433. langflow/frontend/assets/touchpad-off-BH5XWKGo.js +0 -6
  3434. langflow/frontend/assets/tower-control-5xOvJyYb.js +0 -6
  3435. langflow/frontend/assets/toy-brick-BCAcauMw.js +0 -6
  3436. langflow/frontend/assets/tractor-5fknRX-d.js +0 -6
  3437. langflow/frontend/assets/traffic-cone-CVA5NVWm.js +0 -6
  3438. langflow/frontend/assets/train-front-BnYiBj56.js +0 -6
  3439. langflow/frontend/assets/train-front-tunnel-D1RdKaSj.js +0 -6
  3440. langflow/frontend/assets/train-track-vRQYgJcN.js +0 -6
  3441. langflow/frontend/assets/tram-front-RQeFxa2I.js +0 -6
  3442. langflow/frontend/assets/transgender-DF22xvKz.js +0 -6
  3443. langflow/frontend/assets/trash-nfOwC-KV.js +0 -6
  3444. langflow/frontend/assets/tree-deciduous-h6Ju6le4.js +0 -6
  3445. langflow/frontend/assets/tree-palm-CHp2IhHP.js +0 -6
  3446. langflow/frontend/assets/tree-pine-gLzPuswJ.js +0 -6
  3447. langflow/frontend/assets/trees-WcJvyaXv.js +0 -6
  3448. langflow/frontend/assets/trello-Cv3pYIlu.js +0 -6
  3449. langflow/frontend/assets/trending-down-BD4jb1UB.js +0 -6
  3450. langflow/frontend/assets/trending-up-D5nHTeTi.js +0 -6
  3451. langflow/frontend/assets/trending-up-down-DzgLdaRw.js +0 -6
  3452. langflow/frontend/assets/triangle-CSLbBbjG.js +0 -6
  3453. langflow/frontend/assets/triangle-alert-DgJpD4Tl.js +0 -6
  3454. langflow/frontend/assets/triangle-dashed-BhGdvPja.js +0 -6
  3455. langflow/frontend/assets/triangle-right-Dct3GWL0.js +0 -6
  3456. langflow/frontend/assets/trophy-D0I1WmuD.js +0 -6
  3457. langflow/frontend/assets/truck-DObhablI.js +0 -6
  3458. langflow/frontend/assets/truck-electric-XfmrkSOz.js +0 -6
  3459. langflow/frontend/assets/turtle-BnzN3TOE.js +0 -6
  3460. langflow/frontend/assets/tv-CNPt-qNS.js +0 -6
  3461. langflow/frontend/assets/tv-minimal-CIDq9j5_.js +0 -6
  3462. langflow/frontend/assets/tv-minimal-play-sQqfLtCn.js +0 -6
  3463. langflow/frontend/assets/twitch-DRE4pvOM.js +0 -6
  3464. langflow/frontend/assets/twitter-D4p3Pqdl.js +0 -6
  3465. langflow/frontend/assets/type-CTvCXn9J.js +0 -6
  3466. langflow/frontend/assets/type-outline-CpnLCOgA.js +0 -6
  3467. langflow/frontend/assets/umbrella-C-zw7Syd.js +0 -6
  3468. langflow/frontend/assets/umbrella-off-755fLq6o.js +0 -6
  3469. langflow/frontend/assets/underline-CcPFOeGI.js +0 -6
  3470. langflow/frontend/assets/undo-2-BZHMHHmG.js +0 -6
  3471. langflow/frontend/assets/undo-Cl4-wmgq.js +0 -6
  3472. langflow/frontend/assets/undo-dot-BF5rz-wr.js +0 -6
  3473. langflow/frontend/assets/unfold-horizontal-mdCN8DLC.js +0 -6
  3474. langflow/frontend/assets/unfold-vertical-PWdcWLG_.js +0 -6
  3475. langflow/frontend/assets/ungroup-BJS96Txv.js +0 -6
  3476. langflow/frontend/assets/university-BkntjugK.js +0 -6
  3477. langflow/frontend/assets/unlink-2-D3Y0pAuQ.js +0 -6
  3478. langflow/frontend/assets/unlink-pAV6FOb0.js +0 -6
  3479. langflow/frontend/assets/unplug-BkeK2mWv.js +0 -6
  3480. langflow/frontend/assets/upload-1f5O9125.js +0 -6
  3481. langflow/frontend/assets/usb-CF8wJDQR.js +0 -6
  3482. langflow/frontend/assets/use-post-add-user-C4WqtpxM.js +0 -1
  3483. langflow/frontend/assets/user-Bic5yvLy.js +0 -6
  3484. langflow/frontend/assets/user-check-DY_YNtmB.js +0 -6
  3485. langflow/frontend/assets/user-cog-BClJhfjM.js +0 -6
  3486. langflow/frontend/assets/user-lock-Brk9U6kw.js +0 -6
  3487. langflow/frontend/assets/user-minus-BbcRLzhL.js +0 -6
  3488. langflow/frontend/assets/user-pen-BXgx8z91.js +0 -6
  3489. langflow/frontend/assets/user-plus-BIcSlYmk.js +0 -6
  3490. langflow/frontend/assets/user-round-check-BsX_FvYW.js +0 -6
  3491. langflow/frontend/assets/user-round-cog-T1GDeStH.js +0 -6
  3492. langflow/frontend/assets/user-round-mgUdAkHF.js +0 -6
  3493. langflow/frontend/assets/user-round-minus-B_Glk5Zg.js +0 -6
  3494. langflow/frontend/assets/user-round-pen-S34JShxV.js +0 -6
  3495. langflow/frontend/assets/user-round-plus-DCjLOs-z.js +0 -6
  3496. langflow/frontend/assets/user-round-search-BSeyDTFM.js +0 -6
  3497. langflow/frontend/assets/user-round-x-DZLGy8Ph.js +0 -6
  3498. langflow/frontend/assets/user-search-BedjLqi3.js +0 -6
  3499. langflow/frontend/assets/user-x-D88eEk6K.js +0 -6
  3500. langflow/frontend/assets/users-pWGMXNZh.js +0 -6
  3501. langflow/frontend/assets/users-round-DbgBKZdu.js +0 -6
  3502. langflow/frontend/assets/utensils-Dqq4hVTv.js +0 -6
  3503. langflow/frontend/assets/utensils-crossed-_81sOAxq.js +0 -6
  3504. langflow/frontend/assets/utility-pole-CIPpPgpb.js +0 -6
  3505. langflow/frontend/assets/variable-LMJLKdjJ.js +0 -6
  3506. langflow/frontend/assets/vault-DPMK6piu.js +0 -6
  3507. langflow/frontend/assets/vegan-B4XpHZVF.js +0 -6
  3508. langflow/frontend/assets/venetian-mask-CbxOF3Tu.js +0 -6
  3509. langflow/frontend/assets/venus-J5tZjMrM.js +0 -6
  3510. langflow/frontend/assets/venus-and-mars-BEUUFxJu.js +0 -6
  3511. langflow/frontend/assets/vibrate-KFQRiwsj.js +0 -6
  3512. langflow/frontend/assets/vibrate-off-Cn5JH3ZD.js +0 -6
  3513. langflow/frontend/assets/video-lXcwTx_-.js +0 -6
  3514. langflow/frontend/assets/video-off-Dc8Jv-tC.js +0 -6
  3515. langflow/frontend/assets/videotape-DNlWBfh1.js +0 -6
  3516. langflow/frontend/assets/view-CmuYUhAR.js +0 -6
  3517. langflow/frontend/assets/voicemail-COPMB5z7.js +0 -6
  3518. langflow/frontend/assets/volleyball-C9uisC-z.js +0 -6
  3519. langflow/frontend/assets/volume-1-KOKL1-i9.js +0 -6
  3520. langflow/frontend/assets/volume-2-X0uYhM8O.js +0 -6
  3521. langflow/frontend/assets/volume-2B0PRhI9.js +0 -6
  3522. langflow/frontend/assets/volume-off-C3uUgUx4.js +0 -6
  3523. langflow/frontend/assets/volume-x-BPIrWM64.js +0 -6
  3524. langflow/frontend/assets/vote-DQeVRp_U.js +0 -6
  3525. langflow/frontend/assets/wallet-BPAth10_.js +0 -6
  3526. langflow/frontend/assets/wallet-cards-cbarGB_-.js +0 -6
  3527. langflow/frontend/assets/wallet-minimal-BjxMcy-r.js +0 -6
  3528. langflow/frontend/assets/wallpaper-ChFWmjtw.js +0 -6
  3529. langflow/frontend/assets/wand-BkXBz4u5.js +0 -6
  3530. langflow/frontend/assets/wand-sparkles-BPBum_eP.js +0 -6
  3531. langflow/frontend/assets/warehouse-BOCu1IQ-.js +0 -6
  3532. langflow/frontend/assets/washing-machine-C7Fb3XvU.js +0 -6
  3533. langflow/frontend/assets/watch-DbeMYLJl.js +0 -6
  3534. langflow/frontend/assets/waves-9sDCesp2.js +0 -6
  3535. langflow/frontend/assets/waves-ladder-WEhHXVK0.js +0 -6
  3536. langflow/frontend/assets/waypoints-DFxWiuNn.js +0 -6
  3537. langflow/frontend/assets/webcam-CRbeV8b5.js +0 -6
  3538. langflow/frontend/assets/webhook-VRKKva0l.js +0 -6
  3539. langflow/frontend/assets/webhook-off-CM1ExdBr.js +0 -6
  3540. langflow/frontend/assets/weight-B-0cYlc2.js +0 -6
  3541. langflow/frontend/assets/wheat-RqZt-hei.js +0 -6
  3542. langflow/frontend/assets/wheat-off-DiqwnFif.js +0 -6
  3543. langflow/frontend/assets/whole-word-BEu16aCM.js +0 -6
  3544. langflow/frontend/assets/wifi-LtrZ2uhL.js +0 -6
  3545. langflow/frontend/assets/wifi-high-Dcc-PYFc.js +0 -6
  3546. langflow/frontend/assets/wifi-low-X9AnXq31.js +0 -6
  3547. langflow/frontend/assets/wifi-off-Be3NelHp.js +0 -6
  3548. langflow/frontend/assets/wifi-pen-CUalVdGR.js +0 -6
  3549. langflow/frontend/assets/wifi-zero-Cq9kp3ix.js +0 -6
  3550. langflow/frontend/assets/wind-arrow-down-1487GD5B.js +0 -6
  3551. langflow/frontend/assets/wind-uib-Duc7.js +0 -6
  3552. langflow/frontend/assets/wine-kPsEXsMT.js +0 -6
  3553. langflow/frontend/assets/wine-off-bAo4npJD.js +0 -6
  3554. langflow/frontend/assets/workflow-eQT12alU.js +0 -6
  3555. langflow/frontend/assets/worm-B1HQrkff.js +0 -6
  3556. langflow/frontend/assets/wrap-text-T0xRSY9R.js +0 -6
  3557. langflow/frontend/assets/wrench-BZ5VcEhN.js +0 -6
  3558. langflow/frontend/assets/youtube-Bb8JELOB.js +0 -6
  3559. langflow/frontend/assets/zap-4N-dsLKQ.js +0 -6
  3560. langflow/frontend/assets/zap-off-D7hXYskn.js +0 -6
  3561. langflow/frontend/assets/zoom-in-C7w1RH8y.js +0 -6
  3562. langflow/frontend/assets/zoom-out-CGHcBloG.js +0 -6
  3563. langflow_base_nightly-1.7.0.dev31.dist-info/METADATA +0 -99
  3564. langflow_base_nightly-1.7.0.dev31.dist-info/RECORD +0 -2278
  3565. {langflow_base_nightly-1.7.0.dev31.dist-info → langflow_base_nightly-1.7.0.dev32.dist-info}/WHEEL +0 -0
  3566. {langflow_base_nightly-1.7.0.dev31.dist-info → langflow_base_nightly-1.7.0.dev32.dist-info}/entry_points.txt +0 -0
@@ -357,7 +357,7 @@
357
357
  "icon": "bot",
358
358
  "legacy": false,
359
359
  "metadata": {
360
- "code_hash": "d64b11c24a1c",
360
+ "code_hash": "fba2d73636e5",
361
361
  "dependencies": {
362
362
  "dependencies": [
363
363
  {
@@ -478,16 +478,25 @@
478
478
  },
479
479
  {
480
480
  "icon": "OpenAI"
481
+ },
482
+ {
483
+ "icon": "WatsonxAI"
484
+ },
485
+ {
486
+ "icon": "Ollama"
481
487
  }
482
488
  ],
489
+ "override_skip": false,
483
490
  "placeholder": "",
484
491
  "real_time_refresh": true,
492
+ "refresh_button": false,
485
493
  "required": false,
486
494
  "show": true,
487
495
  "title_case": false,
488
496
  "toggle": false,
489
497
  "tool_mode": false,
490
498
  "trace_as_metadata": true,
499
+ "track_in_telemetry": true,
491
500
  "type": "str",
492
501
  "value": "OpenAI"
493
502
  },
@@ -519,6 +528,7 @@
519
528
  "list_add_label": "Add More",
520
529
  "load_from_db": false,
521
530
  "name": "base_url",
531
+ "override_skip": false,
522
532
  "placeholder": "",
523
533
  "required": true,
524
534
  "show": false,
@@ -545,7 +555,7 @@
545
555
  "show": true,
546
556
  "title_case": false,
547
557
  "type": "code",
548
- "value": "import json\nimport re\n\nfrom langchain_core.tools import StructuredTool, Tool\nfrom pydantic import ValidationError\n\nfrom lfx.base.agents.agent import LCToolsAgentComponent\nfrom lfx.base.agents.events import ExceptionWithMessageError\nfrom lfx.base.models.model_input_constants import (\n ALL_PROVIDER_FIELDS,\n MODEL_DYNAMIC_UPDATE_FIELDS,\n MODEL_PROVIDERS_DICT,\n MODEL_PROVIDERS_LIST,\n MODELS_METADATA,\n)\nfrom lfx.base.models.model_utils import get_model_name\nfrom lfx.components.helpers import CurrentDateComponent\nfrom lfx.components.langchain_utilities.tool_calling import ToolCallingAgentComponent\nfrom lfx.components.models_and_agents.memory import MemoryComponent\nfrom lfx.custom.custom_component.component import get_component_toolkit\nfrom lfx.custom.utils import update_component_build_config\nfrom lfx.helpers.base_model import build_model_from_schema\nfrom lfx.inputs.inputs import BoolInput, SecretStrInput, StrInput\nfrom lfx.io import DropdownInput, IntInput, MessageTextInput, MultilineInput, Output, TableInput\nfrom lfx.log.logger import logger\nfrom lfx.schema.data import Data\nfrom lfx.schema.dotdict import dotdict\nfrom lfx.schema.message import Message\nfrom lfx.schema.table import EditMode\n\n\ndef set_advanced_true(component_input):\n component_input.advanced = True\n return component_input\n\n\nclass AgentComponent(ToolCallingAgentComponent):\n display_name: str = \"Agent\"\n description: str = \"Define the agent's instructions, then enter a task to complete using tools.\"\n documentation: str = \"https://docs.langflow.org/agents\"\n icon = \"bot\"\n beta = False\n name = \"Agent\"\n\n memory_inputs = [set_advanced_true(component_input) for component_input in MemoryComponent().inputs]\n\n # Filter out json_mode from OpenAI inputs since we handle structured output differently\n if \"OpenAI\" in MODEL_PROVIDERS_DICT:\n openai_inputs_filtered = [\n input_field\n for input_field in MODEL_PROVIDERS_DICT[\"OpenAI\"][\"inputs\"]\n if not (hasattr(input_field, \"name\") and input_field.name == \"json_mode\")\n ]\n else:\n openai_inputs_filtered = []\n\n inputs = [\n DropdownInput(\n name=\"agent_llm\",\n display_name=\"Model Provider\",\n info=\"The provider of the language model that the agent will use to generate responses.\",\n options=[*MODEL_PROVIDERS_LIST],\n value=\"OpenAI\",\n real_time_refresh=True,\n refresh_button=False,\n input_types=[],\n options_metadata=[MODELS_METADATA[key] for key in MODEL_PROVIDERS_LIST if key in MODELS_METADATA],\n external_options={\n \"fields\": {\n \"data\": {\n \"node\": {\n \"name\": \"connect_other_models\",\n \"display_name\": \"Connect other models\",\n \"icon\": \"CornerDownLeft\",\n }\n }\n },\n },\n ),\n SecretStrInput(\n name=\"api_key\",\n display_name=\"API Key\",\n info=\"The API key to use for the model.\",\n required=True,\n ),\n StrInput(\n name=\"base_url\",\n display_name=\"Base URL\",\n info=\"The base URL of the API.\",\n required=True,\n show=False,\n ),\n StrInput(\n name=\"project_id\",\n display_name=\"Project ID\",\n info=\"The project ID of the model.\",\n required=True,\n show=False,\n ),\n IntInput(\n name=\"max_output_tokens\",\n display_name=\"Max Output Tokens\",\n info=\"The maximum number of tokens to generate.\",\n show=False,\n ),\n *openai_inputs_filtered,\n MultilineInput(\n name=\"system_prompt\",\n display_name=\"Agent Instructions\",\n info=\"System Prompt: Initial instructions and context provided to guide the agent's behavior.\",\n value=\"You are a helpful assistant that can use tools to answer questions and perform tasks.\",\n advanced=False,\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 IntInput(\n name=\"n_messages\",\n display_name=\"Number of Chat History Messages\",\n value=100,\n info=\"Number of chat history messages to retrieve.\",\n advanced=True,\n show=True,\n ),\n MultilineInput(\n name=\"format_instructions\",\n display_name=\"Output Format Instructions\",\n info=\"Generic Template for structured output formatting. Valid only with Structured response.\",\n value=(\n \"You are an AI that extracts structured JSON objects from unstructured text. \"\n \"Use a predefined schema with expected types (str, int, float, bool, dict). \"\n \"Extract ALL relevant instances that match the schema - if multiple patterns exist, capture them all. \"\n \"Fill missing or ambiguous values with defaults: null for missing values. \"\n \"Remove exact duplicates but keep variations that have different field values. \"\n \"Always return valid JSON in the expected format, never throw errors. \"\n \"If multiple objects can be extracted, return them all in the structured format.\"\n ),\n advanced=True,\n ),\n TableInput(\n name=\"output_schema\",\n display_name=\"Output Schema\",\n info=(\n \"Schema Validation: Define the structure and data types for structured output. \"\n \"No validation if no output schema.\"\n ),\n advanced=True,\n required=False,\n value=[],\n table_schema=[\n {\n \"name\": \"name\",\n \"display_name\": \"Name\",\n \"type\": \"str\",\n \"description\": \"Specify the name of the output field.\",\n \"default\": \"field\",\n \"edit_mode\": EditMode.INLINE,\n },\n {\n \"name\": \"description\",\n \"display_name\": \"Description\",\n \"type\": \"str\",\n \"description\": \"Describe the purpose of the output field.\",\n \"default\": \"description of field\",\n \"edit_mode\": EditMode.POPOVER,\n },\n {\n \"name\": \"type\",\n \"display_name\": \"Type\",\n \"type\": \"str\",\n \"edit_mode\": EditMode.INLINE,\n \"description\": (\"Indicate the data type of the output field (e.g., str, int, float, bool, dict).\"),\n \"options\": [\"str\", \"int\", \"float\", \"bool\", \"dict\"],\n \"default\": \"str\",\n },\n {\n \"name\": \"multiple\",\n \"display_name\": \"As List\",\n \"type\": \"boolean\",\n \"description\": \"Set to True if this output field should be a list of the specified type.\",\n \"default\": \"False\",\n \"edit_mode\": EditMode.INLINE,\n },\n ],\n ),\n *LCToolsAgentComponent.get_base_inputs(),\n # removed memory inputs from agent component\n # *memory_inputs,\n BoolInput(\n name=\"add_current_date_tool\",\n display_name=\"Current Date\",\n advanced=True,\n info=\"If true, will add a tool to the agent that returns the current date.\",\n value=True,\n ),\n ]\n outputs = [\n Output(name=\"response\", display_name=\"Response\", method=\"message_response\"),\n ]\n\n async def get_agent_requirements(self):\n \"\"\"Get the agent requirements for the agent.\"\"\"\n llm_model, display_name = await self.get_llm()\n if llm_model is None:\n msg = \"No language model selected. Please choose a model to proceed.\"\n raise ValueError(msg)\n self.model_name = get_model_name(llm_model, display_name=display_name)\n\n # Get memory data\n self.chat_history = await self.get_memory_data()\n await logger.adebug(f\"Retrieved {len(self.chat_history)} chat history messages\")\n if isinstance(self.chat_history, Message):\n self.chat_history = [self.chat_history]\n\n # Add current date tool if enabled\n if self.add_current_date_tool:\n if not isinstance(self.tools, list): # type: ignore[has-type]\n self.tools = []\n current_date_tool = (await CurrentDateComponent(**self.get_base_args()).to_toolkit()).pop(0)\n\n if not isinstance(current_date_tool, StructuredTool):\n msg = \"CurrentDateComponent must be converted to a StructuredTool\"\n raise TypeError(msg)\n self.tools.append(current_date_tool)\n\n # Set shared callbacks for tracing the tools used by the agent\n self.set_tools_callbacks(self.tools, self._get_shared_callbacks())\n\n return llm_model, self.chat_history, self.tools\n\n async def message_response(self) -> Message:\n try:\n llm_model, self.chat_history, self.tools = await self.get_agent_requirements()\n # Set up and run agent\n self.set(\n llm=llm_model,\n tools=self.tools or [],\n chat_history=self.chat_history,\n input_value=self.input_value,\n system_prompt=self.system_prompt,\n )\n agent = self.create_agent_runnable()\n result = await self.run_agent(agent)\n\n # Store result for potential JSON output\n self._agent_result = result\n\n except (ValueError, TypeError, KeyError) as e:\n await logger.aerror(f\"{type(e).__name__}: {e!s}\")\n raise\n except ExceptionWithMessageError as e:\n await logger.aerror(f\"ExceptionWithMessageError occurred: {e}\")\n raise\n # Avoid catching blind Exception; let truly unexpected exceptions propagate\n except Exception as e:\n await logger.aerror(f\"Unexpected error: {e!s}\")\n raise\n else:\n return result\n\n def _preprocess_schema(self, schema):\n \"\"\"Preprocess schema to ensure correct data types for build_model_from_schema.\"\"\"\n processed_schema = []\n for field in schema:\n processed_field = {\n \"name\": str(field.get(\"name\", \"field\")),\n \"type\": str(field.get(\"type\", \"str\")),\n \"description\": str(field.get(\"description\", \"\")),\n \"multiple\": field.get(\"multiple\", False),\n }\n # Ensure multiple is handled correctly\n if isinstance(processed_field[\"multiple\"], str):\n processed_field[\"multiple\"] = processed_field[\"multiple\"].lower() in [\n \"true\",\n \"1\",\n \"t\",\n \"y\",\n \"yes\",\n ]\n processed_schema.append(processed_field)\n return processed_schema\n\n async def build_structured_output_base(self, content: str):\n \"\"\"Build structured output with optional BaseModel validation.\"\"\"\n json_pattern = r\"\\{.*\\}\"\n schema_error_msg = \"Try setting an output schema\"\n\n # Try to parse content as JSON first\n json_data = None\n try:\n json_data = json.loads(content)\n except json.JSONDecodeError:\n json_match = re.search(json_pattern, content, re.DOTALL)\n if json_match:\n try:\n json_data = json.loads(json_match.group())\n except json.JSONDecodeError:\n return {\"content\": content, \"error\": schema_error_msg}\n else:\n return {\"content\": content, \"error\": schema_error_msg}\n\n # If no output schema provided, return parsed JSON without validation\n if not hasattr(self, \"output_schema\") or not self.output_schema or len(self.output_schema) == 0:\n return json_data\n\n # Use BaseModel validation with schema\n try:\n processed_schema = self._preprocess_schema(self.output_schema)\n output_model = build_model_from_schema(processed_schema)\n\n # Validate against the schema\n if isinstance(json_data, list):\n # Multiple objects\n validated_objects = []\n for item in json_data:\n try:\n validated_obj = output_model.model_validate(item)\n validated_objects.append(validated_obj.model_dump())\n except ValidationError as e:\n await logger.aerror(f\"Validation error for item: {e}\")\n # Include invalid items with error info\n validated_objects.append({\"data\": item, \"validation_error\": str(e)})\n return validated_objects\n\n # Single object\n try:\n validated_obj = output_model.model_validate(json_data)\n return [validated_obj.model_dump()] # Return as list for consistency\n except ValidationError as e:\n await logger.aerror(f\"Validation error: {e}\")\n return [{\"data\": json_data, \"validation_error\": str(e)}]\n\n except (TypeError, ValueError) as e:\n await logger.aerror(f\"Error building structured output: {e}\")\n # Fallback to parsed JSON without validation\n return json_data\n\n async def json_response(self) -> Data:\n \"\"\"Convert agent response to structured JSON Data output with schema validation.\"\"\"\n # Always use structured chat agent for JSON response mode for better JSON formatting\n try:\n system_components = []\n\n # 1. Agent Instructions (system_prompt)\n agent_instructions = getattr(self, \"system_prompt\", \"\") or \"\"\n if agent_instructions:\n system_components.append(f\"{agent_instructions}\")\n\n # 2. Format Instructions\n format_instructions = getattr(self, \"format_instructions\", \"\") or \"\"\n if format_instructions:\n system_components.append(f\"Format instructions: {format_instructions}\")\n\n # 3. Schema Information from BaseModel\n if hasattr(self, \"output_schema\") and self.output_schema and len(self.output_schema) > 0:\n try:\n processed_schema = self._preprocess_schema(self.output_schema)\n output_model = build_model_from_schema(processed_schema)\n schema_dict = output_model.model_json_schema()\n schema_info = (\n \"You are given some text that may include format instructions, \"\n \"explanations, or other content alongside a JSON schema.\\n\\n\"\n \"Your task:\\n\"\n \"- Extract only the JSON schema.\\n\"\n \"- Return it as valid JSON.\\n\"\n \"- Do not include format instructions, explanations, or extra text.\\n\\n\"\n \"Input:\\n\"\n f\"{json.dumps(schema_dict, indent=2)}\\n\\n\"\n \"Output (only JSON schema):\"\n )\n system_components.append(schema_info)\n except (ValidationError, ValueError, TypeError, KeyError) as e:\n await logger.aerror(f\"Could not build schema for prompt: {e}\", exc_info=True)\n\n # Combine all components\n combined_instructions = \"\\n\\n\".join(system_components) if system_components else \"\"\n llm_model, self.chat_history, self.tools = await self.get_agent_requirements()\n self.set(\n llm=llm_model,\n tools=self.tools or [],\n chat_history=self.chat_history,\n input_value=self.input_value,\n system_prompt=combined_instructions,\n )\n\n # Create and run structured chat agent\n try:\n structured_agent = self.create_agent_runnable()\n except (NotImplementedError, ValueError, TypeError) as e:\n await logger.aerror(f\"Error with structured chat agent: {e}\")\n raise\n try:\n result = await self.run_agent(structured_agent)\n except (\n ExceptionWithMessageError,\n ValueError,\n TypeError,\n RuntimeError,\n ) as e:\n await logger.aerror(f\"Error with structured agent result: {e}\")\n raise\n # Extract content from structured agent result\n if hasattr(result, \"content\"):\n content = result.content\n elif hasattr(result, \"text\"):\n content = result.text\n else:\n content = str(result)\n\n except (\n ExceptionWithMessageError,\n ValueError,\n TypeError,\n NotImplementedError,\n AttributeError,\n ) as e:\n await logger.aerror(f\"Error with structured chat agent: {e}\")\n # Fallback to regular agent\n content_str = \"No content returned from agent\"\n return Data(data={\"content\": content_str, \"error\": str(e)})\n\n # Process with structured output validation\n try:\n structured_output = await self.build_structured_output_base(content)\n\n # Handle different output formats\n if isinstance(structured_output, list) and structured_output:\n if len(structured_output) == 1:\n return Data(data=structured_output[0])\n return Data(data={\"results\": structured_output})\n if isinstance(structured_output, dict):\n return Data(data=structured_output)\n return Data(data={\"content\": content})\n\n except (ValueError, TypeError) as e:\n await logger.aerror(f\"Error in structured output processing: {e}\")\n return Data(data={\"content\": content, \"error\": str(e)})\n\n async def get_memory_data(self):\n # TODO: This is a temporary fix to avoid message duplication. We should develop a function for this.\n messages = (\n await MemoryComponent(**self.get_base_args())\n .set(\n session_id=self.graph.session_id,\n context_id=self.context_id,\n order=\"Ascending\",\n n_messages=self.n_messages,\n )\n .retrieve_messages()\n )\n return [\n message for message in messages if getattr(message, \"id\", None) != getattr(self.input_value, \"id\", None)\n ]\n\n async def get_llm(self):\n if not isinstance(self.agent_llm, str):\n return self.agent_llm, None\n\n try:\n provider_info = MODEL_PROVIDERS_DICT.get(self.agent_llm)\n if not provider_info:\n msg = f\"Invalid model provider: {self.agent_llm}\"\n raise ValueError(msg)\n\n component_class = provider_info.get(\"component_class\")\n display_name = component_class.display_name\n inputs = provider_info.get(\"inputs\")\n prefix = provider_info.get(\"prefix\", \"\")\n\n return self._build_llm_model(component_class, inputs, prefix), display_name\n\n except (AttributeError, ValueError, TypeError, RuntimeError) as e:\n await logger.aerror(f\"Error building {self.agent_llm} language model: {e!s}\")\n msg = f\"Failed to initialize language model: {e!s}\"\n raise ValueError(msg) from e\n\n def _build_llm_model(self, component, inputs, prefix=\"\"):\n model_kwargs = {}\n for input_ in inputs:\n if hasattr(self, f\"{prefix}{input_.name}\"):\n model_kwargs[input_.name] = getattr(self, f\"{prefix}{input_.name}\")\n return component.set(**model_kwargs).build_model()\n\n def set_component_params(self, component):\n provider_info = MODEL_PROVIDERS_DICT.get(self.agent_llm)\n if provider_info:\n inputs = provider_info.get(\"inputs\")\n prefix = provider_info.get(\"prefix\")\n # Filter out json_mode and only use attributes that exist on this component\n model_kwargs = {}\n for input_ in inputs:\n if hasattr(self, f\"{prefix}{input_.name}\"):\n model_kwargs[input_.name] = getattr(self, f\"{prefix}{input_.name}\")\n\n return component.set(**model_kwargs)\n return component\n\n def delete_fields(self, build_config: dotdict, fields: dict | list[str]) -> None:\n \"\"\"Delete specified fields from build_config.\"\"\"\n for field in fields:\n if build_config is not None and field in build_config:\n build_config.pop(field, None)\n\n def update_input_types(self, build_config: dotdict) -> dotdict:\n \"\"\"Update input types for all fields in build_config.\"\"\"\n for key, value in build_config.items():\n if isinstance(value, dict):\n if value.get(\"input_types\") is None:\n build_config[key][\"input_types\"] = []\n elif hasattr(value, \"input_types\") and value.input_types is None:\n value.input_types = []\n return build_config\n\n async def update_build_config(\n self, build_config: dotdict, field_value: str, field_name: str | None = None\n ) -> dotdict:\n # Iterate over all providers in the MODEL_PROVIDERS_DICT\n # Existing logic for updating build_config\n if field_name in (\"agent_llm\",):\n build_config[\"agent_llm\"][\"value\"] = field_value\n provider_info = MODEL_PROVIDERS_DICT.get(field_value)\n if provider_info:\n component_class = provider_info.get(\"component_class\")\n if component_class and hasattr(component_class, \"update_build_config\"):\n # Call the component class's update_build_config method\n build_config = await update_component_build_config(\n component_class, build_config, field_value, \"model_name\"\n )\n\n provider_configs: dict[str, tuple[dict, list[dict]]] = {\n provider: (\n MODEL_PROVIDERS_DICT[provider][\"fields\"],\n [\n MODEL_PROVIDERS_DICT[other_provider][\"fields\"]\n for other_provider in MODEL_PROVIDERS_DICT\n if other_provider != provider\n ],\n )\n for provider in MODEL_PROVIDERS_DICT\n }\n if field_value in provider_configs:\n fields_to_add, fields_to_delete = provider_configs[field_value]\n\n # Delete fields from other providers\n for fields in fields_to_delete:\n self.delete_fields(build_config, fields)\n\n # Add provider-specific fields\n if field_value == \"OpenAI\" and not any(field in build_config for field in fields_to_add):\n build_config.update(fields_to_add)\n else:\n build_config.update(fields_to_add)\n # Reset input types for agent_llm\n build_config[\"agent_llm\"][\"input_types\"] = []\n build_config[\"agent_llm\"][\"display_name\"] = \"Model Provider\"\n elif field_value == \"connect_other_models\":\n # Delete all provider fields\n self.delete_fields(build_config, ALL_PROVIDER_FIELDS)\n # # Update with custom component\n custom_component = DropdownInput(\n name=\"agent_llm\",\n display_name=\"Language Model\",\n info=\"The provider of the language model that the agent will use to generate responses.\",\n options=[*MODEL_PROVIDERS_LIST],\n real_time_refresh=True,\n refresh_button=False,\n input_types=[\"LanguageModel\"],\n placeholder=\"Awaiting model input.\",\n options_metadata=[MODELS_METADATA[key] for key in MODEL_PROVIDERS_LIST if key in MODELS_METADATA],\n external_options={\n \"fields\": {\n \"data\": {\n \"node\": {\n \"name\": \"connect_other_models\",\n \"display_name\": \"Connect other models\",\n \"icon\": \"CornerDownLeft\",\n },\n }\n },\n },\n )\n build_config.update({\"agent_llm\": custom_component.to_dict()})\n # Update input types for all fields\n build_config = self.update_input_types(build_config)\n\n # Validate required keys\n default_keys = [\n \"code\",\n \"_type\",\n \"agent_llm\",\n \"tools\",\n \"input_value\",\n \"add_current_date_tool\",\n \"system_prompt\",\n \"agent_description\",\n \"max_iterations\",\n \"handle_parsing_errors\",\n \"verbose\",\n ]\n missing_keys = [key for key in default_keys if key not in build_config]\n if missing_keys:\n msg = f\"Missing required keys in build_config: {missing_keys}\"\n raise ValueError(msg)\n if (\n isinstance(self.agent_llm, str)\n and self.agent_llm in MODEL_PROVIDERS_DICT\n and field_name in MODEL_DYNAMIC_UPDATE_FIELDS\n ):\n provider_info = MODEL_PROVIDERS_DICT.get(self.agent_llm)\n if provider_info:\n component_class = provider_info.get(\"component_class\")\n component_class = self.set_component_params(component_class)\n prefix = provider_info.get(\"prefix\")\n if component_class and hasattr(component_class, \"update_build_config\"):\n # Call each component class's update_build_config method\n # remove the prefix from the field_name\n if isinstance(field_name, str) and isinstance(prefix, str):\n field_name = field_name.replace(prefix, \"\")\n build_config = await update_component_build_config(\n component_class, build_config, field_value, \"model_name\"\n )\n return dotdict({k: v.to_dict() if hasattr(v, \"to_dict\") else v for k, v in build_config.items()})\n\n async def _get_tools(self) -> list[Tool]:\n component_toolkit = get_component_toolkit()\n tools_names = self._build_tools_names()\n agent_description = self.get_tool_description()\n # TODO: Agent Description Depreciated Feature to be removed\n description = f\"{agent_description}{tools_names}\"\n\n tools = component_toolkit(component=self).get_tools(\n tool_name=\"Call_Agent\",\n tool_description=description,\n # here we do not use the shared callbacks as we are exposing the agent as a tool\n callbacks=self.get_langchain_callbacks(),\n )\n if hasattr(self, \"tools_metadata\"):\n tools = component_toolkit(component=self, metadata=self.tools_metadata).update_tools_metadata(tools=tools)\n\n return tools\n"
558
+ "value": "import json\nimport re\n\nfrom langchain_core.tools import StructuredTool, Tool\nfrom pydantic import ValidationError\n\nfrom lfx.base.agents.agent import LCToolsAgentComponent\nfrom lfx.base.agents.events import ExceptionWithMessageError\nfrom lfx.base.models.model_input_constants import (\n ALL_PROVIDER_FIELDS,\n MODEL_DYNAMIC_UPDATE_FIELDS,\n MODEL_PROVIDERS_DICT,\n MODEL_PROVIDERS_LIST,\n MODELS_METADATA,\n)\nfrom lfx.base.models.model_utils import get_model_name\nfrom lfx.components.helpers import CurrentDateComponent\nfrom lfx.components.langchain_utilities.tool_calling import ToolCallingAgentComponent\nfrom lfx.components.models_and_agents.memory import MemoryComponent\nfrom lfx.custom.custom_component.component import get_component_toolkit\nfrom lfx.custom.utils import update_component_build_config\nfrom lfx.helpers.base_model import build_model_from_schema\nfrom lfx.inputs.inputs import BoolInput, SecretStrInput, StrInput\nfrom lfx.io import DropdownInput, IntInput, MessageTextInput, MultilineInput, Output, TableInput\nfrom lfx.log.logger import logger\nfrom lfx.schema.data import Data\nfrom lfx.schema.dotdict import dotdict\nfrom lfx.schema.message import Message\nfrom lfx.schema.table import EditMode\n\n\ndef set_advanced_true(component_input):\n component_input.advanced = True\n return component_input\n\n\nclass AgentComponent(ToolCallingAgentComponent):\n display_name: str = \"Agent\"\n description: str = \"Define the agent's instructions, then enter a task to complete using tools.\"\n documentation: str = \"https://docs.langflow.org/agents\"\n icon = \"bot\"\n beta = False\n name = \"Agent\"\n\n memory_inputs = [set_advanced_true(component_input) for component_input in MemoryComponent().inputs]\n\n # Filter out json_mode from OpenAI inputs since we handle structured output differently\n if \"OpenAI\" in MODEL_PROVIDERS_DICT:\n openai_inputs_filtered = [\n input_field\n for input_field in MODEL_PROVIDERS_DICT[\"OpenAI\"][\"inputs\"]\n if not (hasattr(input_field, \"name\") and input_field.name == \"json_mode\")\n ]\n else:\n openai_inputs_filtered = []\n\n inputs = [\n DropdownInput(\n name=\"agent_llm\",\n display_name=\"Model Provider\",\n info=\"The provider of the language model that the agent will use to generate responses.\",\n options=[*MODEL_PROVIDERS_LIST],\n value=\"OpenAI\",\n real_time_refresh=True,\n refresh_button=False,\n input_types=[],\n options_metadata=[MODELS_METADATA[key] for key in MODEL_PROVIDERS_LIST if key in MODELS_METADATA],\n external_options={\n \"fields\": {\n \"data\": {\n \"node\": {\n \"name\": \"connect_other_models\",\n \"display_name\": \"Connect other models\",\n \"icon\": \"CornerDownLeft\",\n }\n }\n },\n },\n ),\n SecretStrInput(\n name=\"api_key\",\n display_name=\"API Key\",\n info=\"The API key to use for the model.\",\n required=True,\n ),\n StrInput(\n name=\"base_url\",\n display_name=\"Base URL\",\n info=\"The base URL of the API.\",\n required=True,\n show=False,\n ),\n StrInput(\n name=\"project_id\",\n display_name=\"Project ID\",\n info=\"The project ID of the model.\",\n required=True,\n show=False,\n ),\n IntInput(\n name=\"max_output_tokens\",\n display_name=\"Max Output Tokens\",\n info=\"The maximum number of tokens to generate.\",\n show=False,\n ),\n *openai_inputs_filtered,\n MultilineInput(\n name=\"system_prompt\",\n display_name=\"Agent Instructions\",\n info=\"System Prompt: Initial instructions and context provided to guide the agent's behavior.\",\n value=\"You are a helpful assistant that can use tools to answer questions and perform tasks.\",\n advanced=False,\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 IntInput(\n name=\"n_messages\",\n display_name=\"Number of Chat History Messages\",\n value=100,\n info=\"Number of chat history messages to retrieve.\",\n advanced=True,\n show=True,\n ),\n MultilineInput(\n name=\"format_instructions\",\n display_name=\"Output Format Instructions\",\n info=\"Generic Template for structured output formatting. Valid only with Structured response.\",\n value=(\n \"You are an AI that extracts structured JSON objects from unstructured text. \"\n \"Use a predefined schema with expected types (str, int, float, bool, dict). \"\n \"Extract ALL relevant instances that match the schema - if multiple patterns exist, capture them all. \"\n \"Fill missing or ambiguous values with defaults: null for missing values. \"\n \"Remove exact duplicates but keep variations that have different field values. \"\n \"Always return valid JSON in the expected format, never throw errors. \"\n \"If multiple objects can be extracted, return them all in the structured format.\"\n ),\n advanced=True,\n ),\n TableInput(\n name=\"output_schema\",\n display_name=\"Output Schema\",\n info=(\n \"Schema Validation: Define the structure and data types for structured output. \"\n \"No validation if no output schema.\"\n ),\n advanced=True,\n required=False,\n value=[],\n table_schema=[\n {\n \"name\": \"name\",\n \"display_name\": \"Name\",\n \"type\": \"str\",\n \"description\": \"Specify the name of the output field.\",\n \"default\": \"field\",\n \"edit_mode\": EditMode.INLINE,\n },\n {\n \"name\": \"description\",\n \"display_name\": \"Description\",\n \"type\": \"str\",\n \"description\": \"Describe the purpose of the output field.\",\n \"default\": \"description of field\",\n \"edit_mode\": EditMode.POPOVER,\n },\n {\n \"name\": \"type\",\n \"display_name\": \"Type\",\n \"type\": \"str\",\n \"edit_mode\": EditMode.INLINE,\n \"description\": (\"Indicate the data type of the output field (e.g., str, int, float, bool, dict).\"),\n \"options\": [\"str\", \"int\", \"float\", \"bool\", \"dict\"],\n \"default\": \"str\",\n },\n {\n \"name\": \"multiple\",\n \"display_name\": \"As List\",\n \"type\": \"boolean\",\n \"description\": \"Set to True if this output field should be a list of the specified type.\",\n \"default\": \"False\",\n \"edit_mode\": EditMode.INLINE,\n },\n ],\n ),\n *LCToolsAgentComponent.get_base_inputs(),\n # removed memory inputs from agent component\n # *memory_inputs,\n BoolInput(\n name=\"add_current_date_tool\",\n display_name=\"Current Date\",\n advanced=True,\n info=\"If true, will add a tool to the agent that returns the current date.\",\n value=True,\n ),\n ]\n outputs = [\n Output(name=\"response\", display_name=\"Response\", method=\"message_response\"),\n ]\n\n async def get_agent_requirements(self):\n \"\"\"Get the agent requirements for the agent.\"\"\"\n llm_model, display_name = await self.get_llm()\n if llm_model is None:\n msg = \"No language model selected. Please choose a model to proceed.\"\n raise ValueError(msg)\n self.model_name = get_model_name(llm_model, display_name=display_name)\n\n # Get memory data\n self.chat_history = await self.get_memory_data()\n await logger.adebug(f\"Retrieved {len(self.chat_history)} chat history messages\")\n if isinstance(self.chat_history, Message):\n self.chat_history = [self.chat_history]\n\n # Add current date tool if enabled\n if self.add_current_date_tool:\n if not isinstance(self.tools, list): # type: ignore[has-type]\n self.tools = []\n current_date_tool = (await CurrentDateComponent(**self.get_base_args()).to_toolkit()).pop(0)\n\n if not isinstance(current_date_tool, StructuredTool):\n msg = \"CurrentDateComponent must be converted to a StructuredTool\"\n raise TypeError(msg)\n self.tools.append(current_date_tool)\n\n # Set shared callbacks for tracing the tools used by the agent\n self.set_tools_callbacks(self.tools, self._get_shared_callbacks())\n\n return llm_model, self.chat_history, self.tools\n\n async def message_response(self) -> Message:\n try:\n llm_model, self.chat_history, self.tools = await self.get_agent_requirements()\n # Set up and run agent\n self.set(\n llm=llm_model,\n tools=self.tools or [],\n chat_history=self.chat_history,\n input_value=self.input_value,\n system_prompt=self.system_prompt,\n )\n agent = self.create_agent_runnable()\n result = await self.run_agent(agent)\n\n # Store result for potential JSON output\n self._agent_result = result\n\n except (ValueError, TypeError, KeyError) as e:\n await logger.aerror(f\"{type(e).__name__}: {e!s}\")\n raise\n except ExceptionWithMessageError as e:\n await logger.aerror(f\"ExceptionWithMessageError occurred: {e}\")\n raise\n # Avoid catching blind Exception; let truly unexpected exceptions propagate\n except Exception as e:\n await logger.aerror(f\"Unexpected error: {e!s}\")\n raise\n else:\n return result\n\n def _preprocess_schema(self, schema):\n \"\"\"Preprocess schema to ensure correct data types for build_model_from_schema.\"\"\"\n processed_schema = []\n for field in schema:\n processed_field = {\n \"name\": str(field.get(\"name\", \"field\")),\n \"type\": str(field.get(\"type\", \"str\")),\n \"description\": str(field.get(\"description\", \"\")),\n \"multiple\": field.get(\"multiple\", False),\n }\n # Ensure multiple is handled correctly\n if isinstance(processed_field[\"multiple\"], str):\n processed_field[\"multiple\"] = processed_field[\"multiple\"].lower() in [\n \"true\",\n \"1\",\n \"t\",\n \"y\",\n \"yes\",\n ]\n processed_schema.append(processed_field)\n return processed_schema\n\n async def build_structured_output_base(self, content: str):\n \"\"\"Build structured output with optional BaseModel validation.\"\"\"\n json_pattern = r\"\\{.*\\}\"\n schema_error_msg = \"Try setting an output schema\"\n\n # Try to parse content as JSON first\n json_data = None\n try:\n json_data = json.loads(content)\n except json.JSONDecodeError:\n json_match = re.search(json_pattern, content, re.DOTALL)\n if json_match:\n try:\n json_data = json.loads(json_match.group())\n except json.JSONDecodeError:\n return {\"content\": content, \"error\": schema_error_msg}\n else:\n return {\"content\": content, \"error\": schema_error_msg}\n\n # If no output schema provided, return parsed JSON without validation\n if not hasattr(self, \"output_schema\") or not self.output_schema or len(self.output_schema) == 0:\n return json_data\n\n # Use BaseModel validation with schema\n try:\n processed_schema = self._preprocess_schema(self.output_schema)\n output_model = build_model_from_schema(processed_schema)\n\n # Validate against the schema\n if isinstance(json_data, list):\n # Multiple objects\n validated_objects = []\n for item in json_data:\n try:\n validated_obj = output_model.model_validate(item)\n validated_objects.append(validated_obj.model_dump())\n except ValidationError as e:\n await logger.aerror(f\"Validation error for item: {e}\")\n # Include invalid items with error info\n validated_objects.append({\"data\": item, \"validation_error\": str(e)})\n return validated_objects\n\n # Single object\n try:\n validated_obj = output_model.model_validate(json_data)\n return [validated_obj.model_dump()] # Return as list for consistency\n except ValidationError as e:\n await logger.aerror(f\"Validation error: {e}\")\n return [{\"data\": json_data, \"validation_error\": str(e)}]\n\n except (TypeError, ValueError) as e:\n await logger.aerror(f\"Error building structured output: {e}\")\n # Fallback to parsed JSON without validation\n return json_data\n\n async def json_response(self) -> Data:\n \"\"\"Convert agent response to structured JSON Data output with schema validation.\"\"\"\n # Always use structured chat agent for JSON response mode for better JSON formatting\n try:\n system_components = []\n\n # 1. Agent Instructions (system_prompt)\n agent_instructions = getattr(self, \"system_prompt\", \"\") or \"\"\n if agent_instructions:\n system_components.append(f\"{agent_instructions}\")\n\n # 2. Format Instructions\n format_instructions = getattr(self, \"format_instructions\", \"\") or \"\"\n if format_instructions:\n system_components.append(f\"Format instructions: {format_instructions}\")\n\n # 3. Schema Information from BaseModel\n if hasattr(self, \"output_schema\") and self.output_schema and len(self.output_schema) > 0:\n try:\n processed_schema = self._preprocess_schema(self.output_schema)\n output_model = build_model_from_schema(processed_schema)\n schema_dict = output_model.model_json_schema()\n schema_info = (\n \"You are given some text that may include format instructions, \"\n \"explanations, or other content alongside a JSON schema.\\n\\n\"\n \"Your task:\\n\"\n \"- Extract only the JSON schema.\\n\"\n \"- Return it as valid JSON.\\n\"\n \"- Do not include format instructions, explanations, or extra text.\\n\\n\"\n \"Input:\\n\"\n f\"{json.dumps(schema_dict, indent=2)}\\n\\n\"\n \"Output (only JSON schema):\"\n )\n system_components.append(schema_info)\n except (ValidationError, ValueError, TypeError, KeyError) as e:\n await logger.aerror(f\"Could not build schema for prompt: {e}\", exc_info=True)\n\n # Combine all components\n combined_instructions = \"\\n\\n\".join(system_components) if system_components else \"\"\n llm_model, self.chat_history, self.tools = await self.get_agent_requirements()\n self.set(\n llm=llm_model,\n tools=self.tools or [],\n chat_history=self.chat_history,\n input_value=self.input_value,\n system_prompt=combined_instructions,\n )\n\n # Create and run structured chat agent\n try:\n structured_agent = self.create_agent_runnable()\n except (NotImplementedError, ValueError, TypeError) as e:\n await logger.aerror(f\"Error with structured chat agent: {e}\")\n raise\n try:\n result = await self.run_agent(structured_agent)\n except (\n ExceptionWithMessageError,\n ValueError,\n TypeError,\n RuntimeError,\n ) as e:\n await logger.aerror(f\"Error with structured agent result: {e}\")\n raise\n # Extract content from structured agent result\n if hasattr(result, \"content\"):\n content = result.content\n elif hasattr(result, \"text\"):\n content = result.text\n else:\n content = str(result)\n\n except (\n ExceptionWithMessageError,\n ValueError,\n TypeError,\n NotImplementedError,\n AttributeError,\n ) as e:\n await logger.aerror(f\"Error with structured chat agent: {e}\")\n # Fallback to regular agent\n content_str = \"No content returned from agent\"\n return Data(data={\"content\": content_str, \"error\": str(e)})\n\n # Process with structured output validation\n try:\n structured_output = await self.build_structured_output_base(content)\n\n # Handle different output formats\n if isinstance(structured_output, list) and structured_output:\n if len(structured_output) == 1:\n return Data(data=structured_output[0])\n return Data(data={\"results\": structured_output})\n if isinstance(structured_output, dict):\n return Data(data=structured_output)\n return Data(data={\"content\": content})\n\n except (ValueError, TypeError) as e:\n await logger.aerror(f\"Error in structured output processing: {e}\")\n return Data(data={\"content\": content, \"error\": str(e)})\n\n async def get_memory_data(self):\n # TODO: This is a temporary fix to avoid message duplication. We should develop a function for this.\n messages = (\n await MemoryComponent(**self.get_base_args())\n .set(\n session_id=self.graph.session_id,\n context_id=self.context_id,\n order=\"Ascending\",\n n_messages=self.n_messages,\n )\n .retrieve_messages()\n )\n return [\n message for message in messages if getattr(message, \"id\", None) != getattr(self.input_value, \"id\", None)\n ]\n\n async def get_llm(self):\n if not isinstance(self.agent_llm, str):\n return self.agent_llm, None\n\n try:\n provider_info = MODEL_PROVIDERS_DICT.get(self.agent_llm)\n if not provider_info:\n msg = f\"Invalid model provider: {self.agent_llm}\"\n raise ValueError(msg)\n\n component_class = provider_info.get(\"component_class\")\n display_name = component_class.display_name\n inputs = provider_info.get(\"inputs\")\n prefix = provider_info.get(\"prefix\", \"\")\n\n return self._build_llm_model(component_class, inputs, prefix), display_name\n\n except (AttributeError, ValueError, TypeError, RuntimeError) as e:\n await logger.aerror(f\"Error building {self.agent_llm} language model: {e!s}\")\n msg = f\"Failed to initialize language model: {e!s}\"\n raise ValueError(msg) from e\n\n def _build_llm_model(self, component, inputs, prefix=\"\"):\n model_kwargs = {}\n for input_ in inputs:\n if hasattr(self, f\"{prefix}{input_.name}\"):\n model_kwargs[input_.name] = getattr(self, f\"{prefix}{input_.name}\")\n return component.set(**model_kwargs).build_model()\n\n def set_component_params(self, component):\n provider_info = MODEL_PROVIDERS_DICT.get(self.agent_llm)\n if provider_info:\n inputs = provider_info.get(\"inputs\")\n prefix = provider_info.get(\"prefix\")\n # Filter out json_mode and only use attributes that exist on this component\n model_kwargs = {}\n for input_ in inputs:\n if hasattr(self, f\"{prefix}{input_.name}\"):\n model_kwargs[input_.name] = getattr(self, f\"{prefix}{input_.name}\")\n\n return component.set(**model_kwargs)\n return component\n\n def delete_fields(self, build_config: dotdict, fields: dict | list[str]) -> None:\n \"\"\"Delete specified fields from build_config.\"\"\"\n for field in fields:\n if build_config is not None and field in build_config:\n build_config.pop(field, None)\n\n def update_input_types(self, build_config: dotdict) -> dotdict:\n \"\"\"Update input types for all fields in build_config.\"\"\"\n for key, value in build_config.items():\n if isinstance(value, dict):\n if value.get(\"input_types\") is None:\n build_config[key][\"input_types\"] = []\n elif hasattr(value, \"input_types\") and value.input_types is None:\n value.input_types = []\n return build_config\n\n async def update_build_config(\n self, build_config: dotdict, field_value: str, field_name: str | None = None\n ) -> dotdict:\n # Iterate over all providers in the MODEL_PROVIDERS_DICT\n # Existing logic for updating build_config\n if field_name in (\"agent_llm\",):\n build_config[\"agent_llm\"][\"value\"] = field_value\n provider_info = MODEL_PROVIDERS_DICT.get(field_value)\n if provider_info:\n component_class = provider_info.get(\"component_class\")\n if component_class and hasattr(component_class, \"update_build_config\"):\n # Call the component class's update_build_config method\n build_config = await update_component_build_config(\n component_class, build_config, field_value, \"model_name\"\n )\n\n provider_configs: dict[str, tuple[dict, list[dict]]] = {\n provider: (\n MODEL_PROVIDERS_DICT[provider][\"fields\"],\n [\n MODEL_PROVIDERS_DICT[other_provider][\"fields\"]\n for other_provider in MODEL_PROVIDERS_DICT\n if other_provider != provider\n ],\n )\n for provider in MODEL_PROVIDERS_DICT\n }\n if field_value in provider_configs:\n fields_to_add, fields_to_delete = provider_configs[field_value]\n\n # Delete fields from other providers\n for fields in fields_to_delete:\n self.delete_fields(build_config, fields)\n\n # Add provider-specific fields\n if field_value == \"OpenAI\" and not any(field in build_config for field in fields_to_add):\n build_config.update(fields_to_add)\n else:\n build_config.update(fields_to_add)\n # Reset input types for agent_llm\n build_config[\"agent_llm\"][\"input_types\"] = []\n build_config[\"agent_llm\"][\"display_name\"] = \"Model Provider\"\n elif field_value == \"connect_other_models\":\n # Delete all provider fields\n self.delete_fields(build_config, ALL_PROVIDER_FIELDS)\n # # Update with custom component\n custom_component = DropdownInput(\n name=\"agent_llm\",\n display_name=\"Language Model\",\n info=\"The provider of the language model that the agent will use to generate responses.\",\n options=[*MODEL_PROVIDERS_LIST],\n real_time_refresh=True,\n refresh_button=False,\n input_types=[\"LanguageModel\"],\n placeholder=\"Awaiting model input.\",\n options_metadata=[MODELS_METADATA[key] for key in MODEL_PROVIDERS_LIST if key in MODELS_METADATA],\n external_options={\n \"fields\": {\n \"data\": {\n \"node\": {\n \"name\": \"connect_other_models\",\n \"display_name\": \"Connect other models\",\n \"icon\": \"CornerDownLeft\",\n },\n }\n },\n },\n )\n build_config.update({\"agent_llm\": custom_component.to_dict()})\n # Update input types for all fields\n build_config = self.update_input_types(build_config)\n\n # Validate required keys\n default_keys = [\n \"code\",\n \"_type\",\n \"agent_llm\",\n \"tools\",\n \"input_value\",\n \"add_current_date_tool\",\n \"system_prompt\",\n \"agent_description\",\n \"max_iterations\",\n \"handle_parsing_errors\",\n \"verbose\",\n ]\n missing_keys = [key for key in default_keys if key not in build_config]\n if missing_keys:\n msg = f\"Missing required keys in build_config: {missing_keys}\"\n raise ValueError(msg)\n if (\n isinstance(self.agent_llm, str)\n and self.agent_llm in MODEL_PROVIDERS_DICT\n and field_name in MODEL_DYNAMIC_UPDATE_FIELDS\n ):\n provider_info = MODEL_PROVIDERS_DICT.get(self.agent_llm)\n if provider_info:\n component_class = provider_info.get(\"component_class\")\n component_class = self.set_component_params(component_class)\n prefix = provider_info.get(\"prefix\")\n if component_class and hasattr(component_class, \"update_build_config\"):\n # Call each component class's update_build_config method\n # remove the prefix from the field_name\n if isinstance(field_name, str) and isinstance(prefix, str):\n field_name_without_prefix = field_name.replace(prefix, \"\")\n else:\n field_name_without_prefix = field_name\n build_config = await update_component_build_config(\n component_class, build_config, field_value, field_name_without_prefix\n )\n return dotdict({k: v.to_dict() if hasattr(v, \"to_dict\") else v for k, v in build_config.items()})\n\n async def _get_tools(self) -> list[Tool]:\n component_toolkit = get_component_toolkit()\n tools_names = self._build_tools_names()\n agent_description = self.get_tool_description()\n # TODO: Agent Description Depreciated Feature to be removed\n description = f\"{agent_description}{tools_names}\"\n\n tools = component_toolkit(component=self).get_tools(\n tool_name=\"Call_Agent\",\n tool_description=description,\n # here we do not use the shared callbacks as we are exposing the agent as a tool\n callbacks=self.get_langchain_callbacks(),\n )\n if hasattr(self, \"tools_metadata\"):\n tools = component_toolkit(component=self, metadata=self.tools_metadata).update_tools_metadata(tools=tools)\n\n return tools\n"
549
559
  },
550
560
  "context_id": {
551
561
  "_input_type": "MessageTextInput",
@@ -663,6 +673,7 @@
663
673
  "list": false,
664
674
  "list_add_label": "Add More",
665
675
  "name": "max_output_tokens",
676
+ "override_skip": false,
666
677
  "placeholder": "",
667
678
  "required": false,
668
679
  "show": false,
@@ -682,12 +693,14 @@
682
693
  "list": false,
683
694
  "list_add_label": "Add More",
684
695
  "name": "max_retries",
696
+ "override_skip": false,
685
697
  "placeholder": "",
686
698
  "required": false,
687
699
  "show": true,
688
700
  "title_case": false,
689
701
  "tool_mode": false,
690
702
  "trace_as_metadata": true,
703
+ "track_in_telemetry": true,
691
704
  "type": "int",
692
705
  "value": 5
693
706
  },
@@ -700,10 +713,11 @@
700
713
  "list": false,
701
714
  "list_add_label": "Add More",
702
715
  "name": "max_tokens",
716
+ "override_skip": false,
703
717
  "placeholder": "",
704
718
  "range_spec": {
705
- "max": 128000,
706
- "min": 0,
719
+ "max": 128000.0,
720
+ "min": 0.0,
707
721
  "step": 0.1,
708
722
  "step_type": "float"
709
723
  },
@@ -712,6 +726,7 @@
712
726
  "title_case": false,
713
727
  "tool_mode": false,
714
728
  "trace_as_metadata": true,
729
+ "track_in_telemetry": true,
715
730
  "type": "int",
716
731
  "value": ""
717
732
  },
@@ -724,12 +739,14 @@
724
739
  "list": false,
725
740
  "list_add_label": "Add More",
726
741
  "name": "model_kwargs",
742
+ "override_skip": false,
727
743
  "placeholder": "",
728
744
  "required": false,
729
745
  "show": true,
730
746
  "title_case": false,
731
747
  "tool_mode": false,
732
748
  "trace_as_input": true,
749
+ "track_in_telemetry": false,
733
750
  "type": "dict",
734
751
  "value": {}
735
752
  },
@@ -740,8 +757,8 @@
740
757
  "dialog_inputs": {},
741
758
  "display_name": "Model Name",
742
759
  "dynamic": false,
760
+ "external_options": {},
743
761
  "info": "To see the model names, first choose a provider. Then, enter your API key and click the refresh button next to the model name.",
744
- "load_from_db": false,
745
762
  "name": "model_name",
746
763
  "options": [
747
764
  "gpt-4o-mini",
@@ -766,6 +783,7 @@
766
783
  "o4-mini-high"
767
784
  ],
768
785
  "options_metadata": [],
786
+ "override_skip": false,
769
787
  "placeholder": "",
770
788
  "real_time_refresh": false,
771
789
  "required": false,
@@ -774,8 +792,9 @@
774
792
  "toggle": false,
775
793
  "tool_mode": false,
776
794
  "trace_as_metadata": true,
795
+ "track_in_telemetry": true,
777
796
  "type": "str",
778
- "value": "gpt-4.1-mini"
797
+ "value": "gpt-4o-mini"
779
798
  },
780
799
  "n_messages": {
781
800
  "_input_type": "IntInput",
@@ -805,12 +824,14 @@
805
824
  "list_add_label": "Add More",
806
825
  "load_from_db": false,
807
826
  "name": "openai_api_base",
827
+ "override_skip": false,
808
828
  "placeholder": "",
809
829
  "required": false,
810
830
  "show": true,
811
831
  "title_case": false,
812
832
  "tool_mode": false,
813
833
  "trace_as_metadata": true,
834
+ "track_in_telemetry": false,
814
835
  "type": "str",
815
836
  "value": ""
816
837
  },
@@ -886,6 +907,7 @@
886
907
  "list_add_label": "Add More",
887
908
  "load_from_db": false,
888
909
  "name": "project_id",
910
+ "override_skip": false,
889
911
  "placeholder": "",
890
912
  "required": true,
891
913
  "show": false,
@@ -905,12 +927,14 @@
905
927
  "list": false,
906
928
  "list_add_label": "Add More",
907
929
  "name": "seed",
930
+ "override_skip": false,
908
931
  "placeholder": "",
909
932
  "required": false,
910
933
  "show": true,
911
934
  "title_case": false,
912
935
  "tool_mode": false,
913
936
  "trace_as_metadata": true,
937
+ "track_in_telemetry": true,
914
938
  "type": "int",
915
939
  "value": 1
916
940
  },
@@ -950,10 +974,11 @@
950
974
  "min_label": "",
951
975
  "min_label_icon": "",
952
976
  "name": "temperature",
977
+ "override_skip": false,
953
978
  "placeholder": "",
954
979
  "range_spec": {
955
- "max": 1,
956
- "min": 0,
980
+ "max": 1.0,
981
+ "min": 0.0,
957
982
  "step": 0.01,
958
983
  "step_type": "float"
959
984
  },
@@ -964,6 +989,7 @@
964
989
  "slider_input": false,
965
990
  "title_case": false,
966
991
  "tool_mode": false,
992
+ "track_in_telemetry": false,
967
993
  "type": "slider",
968
994
  "value": 0.1
969
995
  },
@@ -976,12 +1002,14 @@
976
1002
  "list": false,
977
1003
  "list_add_label": "Add More",
978
1004
  "name": "timeout",
1005
+ "override_skip": false,
979
1006
  "placeholder": "",
980
1007
  "required": false,
981
1008
  "show": true,
982
1009
  "title_case": false,
983
1010
  "tool_mode": false,
984
1011
  "trace_as_metadata": true,
1012
+ "track_in_telemetry": true,
985
1013
  "type": "int",
986
1014
  "value": 700
987
1015
  },
@@ -1090,7 +1118,7 @@
1090
1118
  "icon": "bot",
1091
1119
  "legacy": false,
1092
1120
  "metadata": {
1093
- "code_hash": "d64b11c24a1c",
1121
+ "code_hash": "fba2d73636e5",
1094
1122
  "dependencies": {
1095
1123
  "dependencies": [
1096
1124
  {
@@ -1211,16 +1239,25 @@
1211
1239
  },
1212
1240
  {
1213
1241
  "icon": "OpenAI"
1242
+ },
1243
+ {
1244
+ "icon": "WatsonxAI"
1245
+ },
1246
+ {
1247
+ "icon": "Ollama"
1214
1248
  }
1215
1249
  ],
1250
+ "override_skip": false,
1216
1251
  "placeholder": "",
1217
1252
  "real_time_refresh": true,
1253
+ "refresh_button": false,
1218
1254
  "required": false,
1219
1255
  "show": true,
1220
1256
  "title_case": false,
1221
1257
  "toggle": false,
1222
1258
  "tool_mode": false,
1223
1259
  "trace_as_metadata": true,
1260
+ "track_in_telemetry": true,
1224
1261
  "type": "str",
1225
1262
  "value": "OpenAI"
1226
1263
  },
@@ -1252,6 +1289,7 @@
1252
1289
  "list_add_label": "Add More",
1253
1290
  "load_from_db": false,
1254
1291
  "name": "base_url",
1292
+ "override_skip": false,
1255
1293
  "placeholder": "",
1256
1294
  "required": true,
1257
1295
  "show": false,
@@ -1278,7 +1316,7 @@
1278
1316
  "show": true,
1279
1317
  "title_case": false,
1280
1318
  "type": "code",
1281
- "value": "import json\nimport re\n\nfrom langchain_core.tools import StructuredTool, Tool\nfrom pydantic import ValidationError\n\nfrom lfx.base.agents.agent import LCToolsAgentComponent\nfrom lfx.base.agents.events import ExceptionWithMessageError\nfrom lfx.base.models.model_input_constants import (\n ALL_PROVIDER_FIELDS,\n MODEL_DYNAMIC_UPDATE_FIELDS,\n MODEL_PROVIDERS_DICT,\n MODEL_PROVIDERS_LIST,\n MODELS_METADATA,\n)\nfrom lfx.base.models.model_utils import get_model_name\nfrom lfx.components.helpers import CurrentDateComponent\nfrom lfx.components.langchain_utilities.tool_calling import ToolCallingAgentComponent\nfrom lfx.components.models_and_agents.memory import MemoryComponent\nfrom lfx.custom.custom_component.component import get_component_toolkit\nfrom lfx.custom.utils import update_component_build_config\nfrom lfx.helpers.base_model import build_model_from_schema\nfrom lfx.inputs.inputs import BoolInput, SecretStrInput, StrInput\nfrom lfx.io import DropdownInput, IntInput, MessageTextInput, MultilineInput, Output, TableInput\nfrom lfx.log.logger import logger\nfrom lfx.schema.data import Data\nfrom lfx.schema.dotdict import dotdict\nfrom lfx.schema.message import Message\nfrom lfx.schema.table import EditMode\n\n\ndef set_advanced_true(component_input):\n component_input.advanced = True\n return component_input\n\n\nclass AgentComponent(ToolCallingAgentComponent):\n display_name: str = \"Agent\"\n description: str = \"Define the agent's instructions, then enter a task to complete using tools.\"\n documentation: str = \"https://docs.langflow.org/agents\"\n icon = \"bot\"\n beta = False\n name = \"Agent\"\n\n memory_inputs = [set_advanced_true(component_input) for component_input in MemoryComponent().inputs]\n\n # Filter out json_mode from OpenAI inputs since we handle structured output differently\n if \"OpenAI\" in MODEL_PROVIDERS_DICT:\n openai_inputs_filtered = [\n input_field\n for input_field in MODEL_PROVIDERS_DICT[\"OpenAI\"][\"inputs\"]\n if not (hasattr(input_field, \"name\") and input_field.name == \"json_mode\")\n ]\n else:\n openai_inputs_filtered = []\n\n inputs = [\n DropdownInput(\n name=\"agent_llm\",\n display_name=\"Model Provider\",\n info=\"The provider of the language model that the agent will use to generate responses.\",\n options=[*MODEL_PROVIDERS_LIST],\n value=\"OpenAI\",\n real_time_refresh=True,\n refresh_button=False,\n input_types=[],\n options_metadata=[MODELS_METADATA[key] for key in MODEL_PROVIDERS_LIST if key in MODELS_METADATA],\n external_options={\n \"fields\": {\n \"data\": {\n \"node\": {\n \"name\": \"connect_other_models\",\n \"display_name\": \"Connect other models\",\n \"icon\": \"CornerDownLeft\",\n }\n }\n },\n },\n ),\n SecretStrInput(\n name=\"api_key\",\n display_name=\"API Key\",\n info=\"The API key to use for the model.\",\n required=True,\n ),\n StrInput(\n name=\"base_url\",\n display_name=\"Base URL\",\n info=\"The base URL of the API.\",\n required=True,\n show=False,\n ),\n StrInput(\n name=\"project_id\",\n display_name=\"Project ID\",\n info=\"The project ID of the model.\",\n required=True,\n show=False,\n ),\n IntInput(\n name=\"max_output_tokens\",\n display_name=\"Max Output Tokens\",\n info=\"The maximum number of tokens to generate.\",\n show=False,\n ),\n *openai_inputs_filtered,\n MultilineInput(\n name=\"system_prompt\",\n display_name=\"Agent Instructions\",\n info=\"System Prompt: Initial instructions and context provided to guide the agent's behavior.\",\n value=\"You are a helpful assistant that can use tools to answer questions and perform tasks.\",\n advanced=False,\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 IntInput(\n name=\"n_messages\",\n display_name=\"Number of Chat History Messages\",\n value=100,\n info=\"Number of chat history messages to retrieve.\",\n advanced=True,\n show=True,\n ),\n MultilineInput(\n name=\"format_instructions\",\n display_name=\"Output Format Instructions\",\n info=\"Generic Template for structured output formatting. Valid only with Structured response.\",\n value=(\n \"You are an AI that extracts structured JSON objects from unstructured text. \"\n \"Use a predefined schema with expected types (str, int, float, bool, dict). \"\n \"Extract ALL relevant instances that match the schema - if multiple patterns exist, capture them all. \"\n \"Fill missing or ambiguous values with defaults: null for missing values. \"\n \"Remove exact duplicates but keep variations that have different field values. \"\n \"Always return valid JSON in the expected format, never throw errors. \"\n \"If multiple objects can be extracted, return them all in the structured format.\"\n ),\n advanced=True,\n ),\n TableInput(\n name=\"output_schema\",\n display_name=\"Output Schema\",\n info=(\n \"Schema Validation: Define the structure and data types for structured output. \"\n \"No validation if no output schema.\"\n ),\n advanced=True,\n required=False,\n value=[],\n table_schema=[\n {\n \"name\": \"name\",\n \"display_name\": \"Name\",\n \"type\": \"str\",\n \"description\": \"Specify the name of the output field.\",\n \"default\": \"field\",\n \"edit_mode\": EditMode.INLINE,\n },\n {\n \"name\": \"description\",\n \"display_name\": \"Description\",\n \"type\": \"str\",\n \"description\": \"Describe the purpose of the output field.\",\n \"default\": \"description of field\",\n \"edit_mode\": EditMode.POPOVER,\n },\n {\n \"name\": \"type\",\n \"display_name\": \"Type\",\n \"type\": \"str\",\n \"edit_mode\": EditMode.INLINE,\n \"description\": (\"Indicate the data type of the output field (e.g., str, int, float, bool, dict).\"),\n \"options\": [\"str\", \"int\", \"float\", \"bool\", \"dict\"],\n \"default\": \"str\",\n },\n {\n \"name\": \"multiple\",\n \"display_name\": \"As List\",\n \"type\": \"boolean\",\n \"description\": \"Set to True if this output field should be a list of the specified type.\",\n \"default\": \"False\",\n \"edit_mode\": EditMode.INLINE,\n },\n ],\n ),\n *LCToolsAgentComponent.get_base_inputs(),\n # removed memory inputs from agent component\n # *memory_inputs,\n BoolInput(\n name=\"add_current_date_tool\",\n display_name=\"Current Date\",\n advanced=True,\n info=\"If true, will add a tool to the agent that returns the current date.\",\n value=True,\n ),\n ]\n outputs = [\n Output(name=\"response\", display_name=\"Response\", method=\"message_response\"),\n ]\n\n async def get_agent_requirements(self):\n \"\"\"Get the agent requirements for the agent.\"\"\"\n llm_model, display_name = await self.get_llm()\n if llm_model is None:\n msg = \"No language model selected. Please choose a model to proceed.\"\n raise ValueError(msg)\n self.model_name = get_model_name(llm_model, display_name=display_name)\n\n # Get memory data\n self.chat_history = await self.get_memory_data()\n await logger.adebug(f\"Retrieved {len(self.chat_history)} chat history messages\")\n if isinstance(self.chat_history, Message):\n self.chat_history = [self.chat_history]\n\n # Add current date tool if enabled\n if self.add_current_date_tool:\n if not isinstance(self.tools, list): # type: ignore[has-type]\n self.tools = []\n current_date_tool = (await CurrentDateComponent(**self.get_base_args()).to_toolkit()).pop(0)\n\n if not isinstance(current_date_tool, StructuredTool):\n msg = \"CurrentDateComponent must be converted to a StructuredTool\"\n raise TypeError(msg)\n self.tools.append(current_date_tool)\n\n # Set shared callbacks for tracing the tools used by the agent\n self.set_tools_callbacks(self.tools, self._get_shared_callbacks())\n\n return llm_model, self.chat_history, self.tools\n\n async def message_response(self) -> Message:\n try:\n llm_model, self.chat_history, self.tools = await self.get_agent_requirements()\n # Set up and run agent\n self.set(\n llm=llm_model,\n tools=self.tools or [],\n chat_history=self.chat_history,\n input_value=self.input_value,\n system_prompt=self.system_prompt,\n )\n agent = self.create_agent_runnable()\n result = await self.run_agent(agent)\n\n # Store result for potential JSON output\n self._agent_result = result\n\n except (ValueError, TypeError, KeyError) as e:\n await logger.aerror(f\"{type(e).__name__}: {e!s}\")\n raise\n except ExceptionWithMessageError as e:\n await logger.aerror(f\"ExceptionWithMessageError occurred: {e}\")\n raise\n # Avoid catching blind Exception; let truly unexpected exceptions propagate\n except Exception as e:\n await logger.aerror(f\"Unexpected error: {e!s}\")\n raise\n else:\n return result\n\n def _preprocess_schema(self, schema):\n \"\"\"Preprocess schema to ensure correct data types for build_model_from_schema.\"\"\"\n processed_schema = []\n for field in schema:\n processed_field = {\n \"name\": str(field.get(\"name\", \"field\")),\n \"type\": str(field.get(\"type\", \"str\")),\n \"description\": str(field.get(\"description\", \"\")),\n \"multiple\": field.get(\"multiple\", False),\n }\n # Ensure multiple is handled correctly\n if isinstance(processed_field[\"multiple\"], str):\n processed_field[\"multiple\"] = processed_field[\"multiple\"].lower() in [\n \"true\",\n \"1\",\n \"t\",\n \"y\",\n \"yes\",\n ]\n processed_schema.append(processed_field)\n return processed_schema\n\n async def build_structured_output_base(self, content: str):\n \"\"\"Build structured output with optional BaseModel validation.\"\"\"\n json_pattern = r\"\\{.*\\}\"\n schema_error_msg = \"Try setting an output schema\"\n\n # Try to parse content as JSON first\n json_data = None\n try:\n json_data = json.loads(content)\n except json.JSONDecodeError:\n json_match = re.search(json_pattern, content, re.DOTALL)\n if json_match:\n try:\n json_data = json.loads(json_match.group())\n except json.JSONDecodeError:\n return {\"content\": content, \"error\": schema_error_msg}\n else:\n return {\"content\": content, \"error\": schema_error_msg}\n\n # If no output schema provided, return parsed JSON without validation\n if not hasattr(self, \"output_schema\") or not self.output_schema or len(self.output_schema) == 0:\n return json_data\n\n # Use BaseModel validation with schema\n try:\n processed_schema = self._preprocess_schema(self.output_schema)\n output_model = build_model_from_schema(processed_schema)\n\n # Validate against the schema\n if isinstance(json_data, list):\n # Multiple objects\n validated_objects = []\n for item in json_data:\n try:\n validated_obj = output_model.model_validate(item)\n validated_objects.append(validated_obj.model_dump())\n except ValidationError as e:\n await logger.aerror(f\"Validation error for item: {e}\")\n # Include invalid items with error info\n validated_objects.append({\"data\": item, \"validation_error\": str(e)})\n return validated_objects\n\n # Single object\n try:\n validated_obj = output_model.model_validate(json_data)\n return [validated_obj.model_dump()] # Return as list for consistency\n except ValidationError as e:\n await logger.aerror(f\"Validation error: {e}\")\n return [{\"data\": json_data, \"validation_error\": str(e)}]\n\n except (TypeError, ValueError) as e:\n await logger.aerror(f\"Error building structured output: {e}\")\n # Fallback to parsed JSON without validation\n return json_data\n\n async def json_response(self) -> Data:\n \"\"\"Convert agent response to structured JSON Data output with schema validation.\"\"\"\n # Always use structured chat agent for JSON response mode for better JSON formatting\n try:\n system_components = []\n\n # 1. Agent Instructions (system_prompt)\n agent_instructions = getattr(self, \"system_prompt\", \"\") or \"\"\n if agent_instructions:\n system_components.append(f\"{agent_instructions}\")\n\n # 2. Format Instructions\n format_instructions = getattr(self, \"format_instructions\", \"\") or \"\"\n if format_instructions:\n system_components.append(f\"Format instructions: {format_instructions}\")\n\n # 3. Schema Information from BaseModel\n if hasattr(self, \"output_schema\") and self.output_schema and len(self.output_schema) > 0:\n try:\n processed_schema = self._preprocess_schema(self.output_schema)\n output_model = build_model_from_schema(processed_schema)\n schema_dict = output_model.model_json_schema()\n schema_info = (\n \"You are given some text that may include format instructions, \"\n \"explanations, or other content alongside a JSON schema.\\n\\n\"\n \"Your task:\\n\"\n \"- Extract only the JSON schema.\\n\"\n \"- Return it as valid JSON.\\n\"\n \"- Do not include format instructions, explanations, or extra text.\\n\\n\"\n \"Input:\\n\"\n f\"{json.dumps(schema_dict, indent=2)}\\n\\n\"\n \"Output (only JSON schema):\"\n )\n system_components.append(schema_info)\n except (ValidationError, ValueError, TypeError, KeyError) as e:\n await logger.aerror(f\"Could not build schema for prompt: {e}\", exc_info=True)\n\n # Combine all components\n combined_instructions = \"\\n\\n\".join(system_components) if system_components else \"\"\n llm_model, self.chat_history, self.tools = await self.get_agent_requirements()\n self.set(\n llm=llm_model,\n tools=self.tools or [],\n chat_history=self.chat_history,\n input_value=self.input_value,\n system_prompt=combined_instructions,\n )\n\n # Create and run structured chat agent\n try:\n structured_agent = self.create_agent_runnable()\n except (NotImplementedError, ValueError, TypeError) as e:\n await logger.aerror(f\"Error with structured chat agent: {e}\")\n raise\n try:\n result = await self.run_agent(structured_agent)\n except (\n ExceptionWithMessageError,\n ValueError,\n TypeError,\n RuntimeError,\n ) as e:\n await logger.aerror(f\"Error with structured agent result: {e}\")\n raise\n # Extract content from structured agent result\n if hasattr(result, \"content\"):\n content = result.content\n elif hasattr(result, \"text\"):\n content = result.text\n else:\n content = str(result)\n\n except (\n ExceptionWithMessageError,\n ValueError,\n TypeError,\n NotImplementedError,\n AttributeError,\n ) as e:\n await logger.aerror(f\"Error with structured chat agent: {e}\")\n # Fallback to regular agent\n content_str = \"No content returned from agent\"\n return Data(data={\"content\": content_str, \"error\": str(e)})\n\n # Process with structured output validation\n try:\n structured_output = await self.build_structured_output_base(content)\n\n # Handle different output formats\n if isinstance(structured_output, list) and structured_output:\n if len(structured_output) == 1:\n return Data(data=structured_output[0])\n return Data(data={\"results\": structured_output})\n if isinstance(structured_output, dict):\n return Data(data=structured_output)\n return Data(data={\"content\": content})\n\n except (ValueError, TypeError) as e:\n await logger.aerror(f\"Error in structured output processing: {e}\")\n return Data(data={\"content\": content, \"error\": str(e)})\n\n async def get_memory_data(self):\n # TODO: This is a temporary fix to avoid message duplication. We should develop a function for this.\n messages = (\n await MemoryComponent(**self.get_base_args())\n .set(\n session_id=self.graph.session_id,\n context_id=self.context_id,\n order=\"Ascending\",\n n_messages=self.n_messages,\n )\n .retrieve_messages()\n )\n return [\n message for message in messages if getattr(message, \"id\", None) != getattr(self.input_value, \"id\", None)\n ]\n\n async def get_llm(self):\n if not isinstance(self.agent_llm, str):\n return self.agent_llm, None\n\n try:\n provider_info = MODEL_PROVIDERS_DICT.get(self.agent_llm)\n if not provider_info:\n msg = f\"Invalid model provider: {self.agent_llm}\"\n raise ValueError(msg)\n\n component_class = provider_info.get(\"component_class\")\n display_name = component_class.display_name\n inputs = provider_info.get(\"inputs\")\n prefix = provider_info.get(\"prefix\", \"\")\n\n return self._build_llm_model(component_class, inputs, prefix), display_name\n\n except (AttributeError, ValueError, TypeError, RuntimeError) as e:\n await logger.aerror(f\"Error building {self.agent_llm} language model: {e!s}\")\n msg = f\"Failed to initialize language model: {e!s}\"\n raise ValueError(msg) from e\n\n def _build_llm_model(self, component, inputs, prefix=\"\"):\n model_kwargs = {}\n for input_ in inputs:\n if hasattr(self, f\"{prefix}{input_.name}\"):\n model_kwargs[input_.name] = getattr(self, f\"{prefix}{input_.name}\")\n return component.set(**model_kwargs).build_model()\n\n def set_component_params(self, component):\n provider_info = MODEL_PROVIDERS_DICT.get(self.agent_llm)\n if provider_info:\n inputs = provider_info.get(\"inputs\")\n prefix = provider_info.get(\"prefix\")\n # Filter out json_mode and only use attributes that exist on this component\n model_kwargs = {}\n for input_ in inputs:\n if hasattr(self, f\"{prefix}{input_.name}\"):\n model_kwargs[input_.name] = getattr(self, f\"{prefix}{input_.name}\")\n\n return component.set(**model_kwargs)\n return component\n\n def delete_fields(self, build_config: dotdict, fields: dict | list[str]) -> None:\n \"\"\"Delete specified fields from build_config.\"\"\"\n for field in fields:\n if build_config is not None and field in build_config:\n build_config.pop(field, None)\n\n def update_input_types(self, build_config: dotdict) -> dotdict:\n \"\"\"Update input types for all fields in build_config.\"\"\"\n for key, value in build_config.items():\n if isinstance(value, dict):\n if value.get(\"input_types\") is None:\n build_config[key][\"input_types\"] = []\n elif hasattr(value, \"input_types\") and value.input_types is None:\n value.input_types = []\n return build_config\n\n async def update_build_config(\n self, build_config: dotdict, field_value: str, field_name: str | None = None\n ) -> dotdict:\n # Iterate over all providers in the MODEL_PROVIDERS_DICT\n # Existing logic for updating build_config\n if field_name in (\"agent_llm\",):\n build_config[\"agent_llm\"][\"value\"] = field_value\n provider_info = MODEL_PROVIDERS_DICT.get(field_value)\n if provider_info:\n component_class = provider_info.get(\"component_class\")\n if component_class and hasattr(component_class, \"update_build_config\"):\n # Call the component class's update_build_config method\n build_config = await update_component_build_config(\n component_class, build_config, field_value, \"model_name\"\n )\n\n provider_configs: dict[str, tuple[dict, list[dict]]] = {\n provider: (\n MODEL_PROVIDERS_DICT[provider][\"fields\"],\n [\n MODEL_PROVIDERS_DICT[other_provider][\"fields\"]\n for other_provider in MODEL_PROVIDERS_DICT\n if other_provider != provider\n ],\n )\n for provider in MODEL_PROVIDERS_DICT\n }\n if field_value in provider_configs:\n fields_to_add, fields_to_delete = provider_configs[field_value]\n\n # Delete fields from other providers\n for fields in fields_to_delete:\n self.delete_fields(build_config, fields)\n\n # Add provider-specific fields\n if field_value == \"OpenAI\" and not any(field in build_config for field in fields_to_add):\n build_config.update(fields_to_add)\n else:\n build_config.update(fields_to_add)\n # Reset input types for agent_llm\n build_config[\"agent_llm\"][\"input_types\"] = []\n build_config[\"agent_llm\"][\"display_name\"] = \"Model Provider\"\n elif field_value == \"connect_other_models\":\n # Delete all provider fields\n self.delete_fields(build_config, ALL_PROVIDER_FIELDS)\n # # Update with custom component\n custom_component = DropdownInput(\n name=\"agent_llm\",\n display_name=\"Language Model\",\n info=\"The provider of the language model that the agent will use to generate responses.\",\n options=[*MODEL_PROVIDERS_LIST],\n real_time_refresh=True,\n refresh_button=False,\n input_types=[\"LanguageModel\"],\n placeholder=\"Awaiting model input.\",\n options_metadata=[MODELS_METADATA[key] for key in MODEL_PROVIDERS_LIST if key in MODELS_METADATA],\n external_options={\n \"fields\": {\n \"data\": {\n \"node\": {\n \"name\": \"connect_other_models\",\n \"display_name\": \"Connect other models\",\n \"icon\": \"CornerDownLeft\",\n },\n }\n },\n },\n )\n build_config.update({\"agent_llm\": custom_component.to_dict()})\n # Update input types for all fields\n build_config = self.update_input_types(build_config)\n\n # Validate required keys\n default_keys = [\n \"code\",\n \"_type\",\n \"agent_llm\",\n \"tools\",\n \"input_value\",\n \"add_current_date_tool\",\n \"system_prompt\",\n \"agent_description\",\n \"max_iterations\",\n \"handle_parsing_errors\",\n \"verbose\",\n ]\n missing_keys = [key for key in default_keys if key not in build_config]\n if missing_keys:\n msg = f\"Missing required keys in build_config: {missing_keys}\"\n raise ValueError(msg)\n if (\n isinstance(self.agent_llm, str)\n and self.agent_llm in MODEL_PROVIDERS_DICT\n and field_name in MODEL_DYNAMIC_UPDATE_FIELDS\n ):\n provider_info = MODEL_PROVIDERS_DICT.get(self.agent_llm)\n if provider_info:\n component_class = provider_info.get(\"component_class\")\n component_class = self.set_component_params(component_class)\n prefix = provider_info.get(\"prefix\")\n if component_class and hasattr(component_class, \"update_build_config\"):\n # Call each component class's update_build_config method\n # remove the prefix from the field_name\n if isinstance(field_name, str) and isinstance(prefix, str):\n field_name = field_name.replace(prefix, \"\")\n build_config = await update_component_build_config(\n component_class, build_config, field_value, \"model_name\"\n )\n return dotdict({k: v.to_dict() if hasattr(v, \"to_dict\") else v for k, v in build_config.items()})\n\n async def _get_tools(self) -> list[Tool]:\n component_toolkit = get_component_toolkit()\n tools_names = self._build_tools_names()\n agent_description = self.get_tool_description()\n # TODO: Agent Description Depreciated Feature to be removed\n description = f\"{agent_description}{tools_names}\"\n\n tools = component_toolkit(component=self).get_tools(\n tool_name=\"Call_Agent\",\n tool_description=description,\n # here we do not use the shared callbacks as we are exposing the agent as a tool\n callbacks=self.get_langchain_callbacks(),\n )\n if hasattr(self, \"tools_metadata\"):\n tools = component_toolkit(component=self, metadata=self.tools_metadata).update_tools_metadata(tools=tools)\n\n return tools\n"
1319
+ "value": "import json\nimport re\n\nfrom langchain_core.tools import StructuredTool, Tool\nfrom pydantic import ValidationError\n\nfrom lfx.base.agents.agent import LCToolsAgentComponent\nfrom lfx.base.agents.events import ExceptionWithMessageError\nfrom lfx.base.models.model_input_constants import (\n ALL_PROVIDER_FIELDS,\n MODEL_DYNAMIC_UPDATE_FIELDS,\n MODEL_PROVIDERS_DICT,\n MODEL_PROVIDERS_LIST,\n MODELS_METADATA,\n)\nfrom lfx.base.models.model_utils import get_model_name\nfrom lfx.components.helpers import CurrentDateComponent\nfrom lfx.components.langchain_utilities.tool_calling import ToolCallingAgentComponent\nfrom lfx.components.models_and_agents.memory import MemoryComponent\nfrom lfx.custom.custom_component.component import get_component_toolkit\nfrom lfx.custom.utils import update_component_build_config\nfrom lfx.helpers.base_model import build_model_from_schema\nfrom lfx.inputs.inputs import BoolInput, SecretStrInput, StrInput\nfrom lfx.io import DropdownInput, IntInput, MessageTextInput, MultilineInput, Output, TableInput\nfrom lfx.log.logger import logger\nfrom lfx.schema.data import Data\nfrom lfx.schema.dotdict import dotdict\nfrom lfx.schema.message import Message\nfrom lfx.schema.table import EditMode\n\n\ndef set_advanced_true(component_input):\n component_input.advanced = True\n return component_input\n\n\nclass AgentComponent(ToolCallingAgentComponent):\n display_name: str = \"Agent\"\n description: str = \"Define the agent's instructions, then enter a task to complete using tools.\"\n documentation: str = \"https://docs.langflow.org/agents\"\n icon = \"bot\"\n beta = False\n name = \"Agent\"\n\n memory_inputs = [set_advanced_true(component_input) for component_input in MemoryComponent().inputs]\n\n # Filter out json_mode from OpenAI inputs since we handle structured output differently\n if \"OpenAI\" in MODEL_PROVIDERS_DICT:\n openai_inputs_filtered = [\n input_field\n for input_field in MODEL_PROVIDERS_DICT[\"OpenAI\"][\"inputs\"]\n if not (hasattr(input_field, \"name\") and input_field.name == \"json_mode\")\n ]\n else:\n openai_inputs_filtered = []\n\n inputs = [\n DropdownInput(\n name=\"agent_llm\",\n display_name=\"Model Provider\",\n info=\"The provider of the language model that the agent will use to generate responses.\",\n options=[*MODEL_PROVIDERS_LIST],\n value=\"OpenAI\",\n real_time_refresh=True,\n refresh_button=False,\n input_types=[],\n options_metadata=[MODELS_METADATA[key] for key in MODEL_PROVIDERS_LIST if key in MODELS_METADATA],\n external_options={\n \"fields\": {\n \"data\": {\n \"node\": {\n \"name\": \"connect_other_models\",\n \"display_name\": \"Connect other models\",\n \"icon\": \"CornerDownLeft\",\n }\n }\n },\n },\n ),\n SecretStrInput(\n name=\"api_key\",\n display_name=\"API Key\",\n info=\"The API key to use for the model.\",\n required=True,\n ),\n StrInput(\n name=\"base_url\",\n display_name=\"Base URL\",\n info=\"The base URL of the API.\",\n required=True,\n show=False,\n ),\n StrInput(\n name=\"project_id\",\n display_name=\"Project ID\",\n info=\"The project ID of the model.\",\n required=True,\n show=False,\n ),\n IntInput(\n name=\"max_output_tokens\",\n display_name=\"Max Output Tokens\",\n info=\"The maximum number of tokens to generate.\",\n show=False,\n ),\n *openai_inputs_filtered,\n MultilineInput(\n name=\"system_prompt\",\n display_name=\"Agent Instructions\",\n info=\"System Prompt: Initial instructions and context provided to guide the agent's behavior.\",\n value=\"You are a helpful assistant that can use tools to answer questions and perform tasks.\",\n advanced=False,\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 IntInput(\n name=\"n_messages\",\n display_name=\"Number of Chat History Messages\",\n value=100,\n info=\"Number of chat history messages to retrieve.\",\n advanced=True,\n show=True,\n ),\n MultilineInput(\n name=\"format_instructions\",\n display_name=\"Output Format Instructions\",\n info=\"Generic Template for structured output formatting. Valid only with Structured response.\",\n value=(\n \"You are an AI that extracts structured JSON objects from unstructured text. \"\n \"Use a predefined schema with expected types (str, int, float, bool, dict). \"\n \"Extract ALL relevant instances that match the schema - if multiple patterns exist, capture them all. \"\n \"Fill missing or ambiguous values with defaults: null for missing values. \"\n \"Remove exact duplicates but keep variations that have different field values. \"\n \"Always return valid JSON in the expected format, never throw errors. \"\n \"If multiple objects can be extracted, return them all in the structured format.\"\n ),\n advanced=True,\n ),\n TableInput(\n name=\"output_schema\",\n display_name=\"Output Schema\",\n info=(\n \"Schema Validation: Define the structure and data types for structured output. \"\n \"No validation if no output schema.\"\n ),\n advanced=True,\n required=False,\n value=[],\n table_schema=[\n {\n \"name\": \"name\",\n \"display_name\": \"Name\",\n \"type\": \"str\",\n \"description\": \"Specify the name of the output field.\",\n \"default\": \"field\",\n \"edit_mode\": EditMode.INLINE,\n },\n {\n \"name\": \"description\",\n \"display_name\": \"Description\",\n \"type\": \"str\",\n \"description\": \"Describe the purpose of the output field.\",\n \"default\": \"description of field\",\n \"edit_mode\": EditMode.POPOVER,\n },\n {\n \"name\": \"type\",\n \"display_name\": \"Type\",\n \"type\": \"str\",\n \"edit_mode\": EditMode.INLINE,\n \"description\": (\"Indicate the data type of the output field (e.g., str, int, float, bool, dict).\"),\n \"options\": [\"str\", \"int\", \"float\", \"bool\", \"dict\"],\n \"default\": \"str\",\n },\n {\n \"name\": \"multiple\",\n \"display_name\": \"As List\",\n \"type\": \"boolean\",\n \"description\": \"Set to True if this output field should be a list of the specified type.\",\n \"default\": \"False\",\n \"edit_mode\": EditMode.INLINE,\n },\n ],\n ),\n *LCToolsAgentComponent.get_base_inputs(),\n # removed memory inputs from agent component\n # *memory_inputs,\n BoolInput(\n name=\"add_current_date_tool\",\n display_name=\"Current Date\",\n advanced=True,\n info=\"If true, will add a tool to the agent that returns the current date.\",\n value=True,\n ),\n ]\n outputs = [\n Output(name=\"response\", display_name=\"Response\", method=\"message_response\"),\n ]\n\n async def get_agent_requirements(self):\n \"\"\"Get the agent requirements for the agent.\"\"\"\n llm_model, display_name = await self.get_llm()\n if llm_model is None:\n msg = \"No language model selected. Please choose a model to proceed.\"\n raise ValueError(msg)\n self.model_name = get_model_name(llm_model, display_name=display_name)\n\n # Get memory data\n self.chat_history = await self.get_memory_data()\n await logger.adebug(f\"Retrieved {len(self.chat_history)} chat history messages\")\n if isinstance(self.chat_history, Message):\n self.chat_history = [self.chat_history]\n\n # Add current date tool if enabled\n if self.add_current_date_tool:\n if not isinstance(self.tools, list): # type: ignore[has-type]\n self.tools = []\n current_date_tool = (await CurrentDateComponent(**self.get_base_args()).to_toolkit()).pop(0)\n\n if not isinstance(current_date_tool, StructuredTool):\n msg = \"CurrentDateComponent must be converted to a StructuredTool\"\n raise TypeError(msg)\n self.tools.append(current_date_tool)\n\n # Set shared callbacks for tracing the tools used by the agent\n self.set_tools_callbacks(self.tools, self._get_shared_callbacks())\n\n return llm_model, self.chat_history, self.tools\n\n async def message_response(self) -> Message:\n try:\n llm_model, self.chat_history, self.tools = await self.get_agent_requirements()\n # Set up and run agent\n self.set(\n llm=llm_model,\n tools=self.tools or [],\n chat_history=self.chat_history,\n input_value=self.input_value,\n system_prompt=self.system_prompt,\n )\n agent = self.create_agent_runnable()\n result = await self.run_agent(agent)\n\n # Store result for potential JSON output\n self._agent_result = result\n\n except (ValueError, TypeError, KeyError) as e:\n await logger.aerror(f\"{type(e).__name__}: {e!s}\")\n raise\n except ExceptionWithMessageError as e:\n await logger.aerror(f\"ExceptionWithMessageError occurred: {e}\")\n raise\n # Avoid catching blind Exception; let truly unexpected exceptions propagate\n except Exception as e:\n await logger.aerror(f\"Unexpected error: {e!s}\")\n raise\n else:\n return result\n\n def _preprocess_schema(self, schema):\n \"\"\"Preprocess schema to ensure correct data types for build_model_from_schema.\"\"\"\n processed_schema = []\n for field in schema:\n processed_field = {\n \"name\": str(field.get(\"name\", \"field\")),\n \"type\": str(field.get(\"type\", \"str\")),\n \"description\": str(field.get(\"description\", \"\")),\n \"multiple\": field.get(\"multiple\", False),\n }\n # Ensure multiple is handled correctly\n if isinstance(processed_field[\"multiple\"], str):\n processed_field[\"multiple\"] = processed_field[\"multiple\"].lower() in [\n \"true\",\n \"1\",\n \"t\",\n \"y\",\n \"yes\",\n ]\n processed_schema.append(processed_field)\n return processed_schema\n\n async def build_structured_output_base(self, content: str):\n \"\"\"Build structured output with optional BaseModel validation.\"\"\"\n json_pattern = r\"\\{.*\\}\"\n schema_error_msg = \"Try setting an output schema\"\n\n # Try to parse content as JSON first\n json_data = None\n try:\n json_data = json.loads(content)\n except json.JSONDecodeError:\n json_match = re.search(json_pattern, content, re.DOTALL)\n if json_match:\n try:\n json_data = json.loads(json_match.group())\n except json.JSONDecodeError:\n return {\"content\": content, \"error\": schema_error_msg}\n else:\n return {\"content\": content, \"error\": schema_error_msg}\n\n # If no output schema provided, return parsed JSON without validation\n if not hasattr(self, \"output_schema\") or not self.output_schema or len(self.output_schema) == 0:\n return json_data\n\n # Use BaseModel validation with schema\n try:\n processed_schema = self._preprocess_schema(self.output_schema)\n output_model = build_model_from_schema(processed_schema)\n\n # Validate against the schema\n if isinstance(json_data, list):\n # Multiple objects\n validated_objects = []\n for item in json_data:\n try:\n validated_obj = output_model.model_validate(item)\n validated_objects.append(validated_obj.model_dump())\n except ValidationError as e:\n await logger.aerror(f\"Validation error for item: {e}\")\n # Include invalid items with error info\n validated_objects.append({\"data\": item, \"validation_error\": str(e)})\n return validated_objects\n\n # Single object\n try:\n validated_obj = output_model.model_validate(json_data)\n return [validated_obj.model_dump()] # Return as list for consistency\n except ValidationError as e:\n await logger.aerror(f\"Validation error: {e}\")\n return [{\"data\": json_data, \"validation_error\": str(e)}]\n\n except (TypeError, ValueError) as e:\n await logger.aerror(f\"Error building structured output: {e}\")\n # Fallback to parsed JSON without validation\n return json_data\n\n async def json_response(self) -> Data:\n \"\"\"Convert agent response to structured JSON Data output with schema validation.\"\"\"\n # Always use structured chat agent for JSON response mode for better JSON formatting\n try:\n system_components = []\n\n # 1. Agent Instructions (system_prompt)\n agent_instructions = getattr(self, \"system_prompt\", \"\") or \"\"\n if agent_instructions:\n system_components.append(f\"{agent_instructions}\")\n\n # 2. Format Instructions\n format_instructions = getattr(self, \"format_instructions\", \"\") or \"\"\n if format_instructions:\n system_components.append(f\"Format instructions: {format_instructions}\")\n\n # 3. Schema Information from BaseModel\n if hasattr(self, \"output_schema\") and self.output_schema and len(self.output_schema) > 0:\n try:\n processed_schema = self._preprocess_schema(self.output_schema)\n output_model = build_model_from_schema(processed_schema)\n schema_dict = output_model.model_json_schema()\n schema_info = (\n \"You are given some text that may include format instructions, \"\n \"explanations, or other content alongside a JSON schema.\\n\\n\"\n \"Your task:\\n\"\n \"- Extract only the JSON schema.\\n\"\n \"- Return it as valid JSON.\\n\"\n \"- Do not include format instructions, explanations, or extra text.\\n\\n\"\n \"Input:\\n\"\n f\"{json.dumps(schema_dict, indent=2)}\\n\\n\"\n \"Output (only JSON schema):\"\n )\n system_components.append(schema_info)\n except (ValidationError, ValueError, TypeError, KeyError) as e:\n await logger.aerror(f\"Could not build schema for prompt: {e}\", exc_info=True)\n\n # Combine all components\n combined_instructions = \"\\n\\n\".join(system_components) if system_components else \"\"\n llm_model, self.chat_history, self.tools = await self.get_agent_requirements()\n self.set(\n llm=llm_model,\n tools=self.tools or [],\n chat_history=self.chat_history,\n input_value=self.input_value,\n system_prompt=combined_instructions,\n )\n\n # Create and run structured chat agent\n try:\n structured_agent = self.create_agent_runnable()\n except (NotImplementedError, ValueError, TypeError) as e:\n await logger.aerror(f\"Error with structured chat agent: {e}\")\n raise\n try:\n result = await self.run_agent(structured_agent)\n except (\n ExceptionWithMessageError,\n ValueError,\n TypeError,\n RuntimeError,\n ) as e:\n await logger.aerror(f\"Error with structured agent result: {e}\")\n raise\n # Extract content from structured agent result\n if hasattr(result, \"content\"):\n content = result.content\n elif hasattr(result, \"text\"):\n content = result.text\n else:\n content = str(result)\n\n except (\n ExceptionWithMessageError,\n ValueError,\n TypeError,\n NotImplementedError,\n AttributeError,\n ) as e:\n await logger.aerror(f\"Error with structured chat agent: {e}\")\n # Fallback to regular agent\n content_str = \"No content returned from agent\"\n return Data(data={\"content\": content_str, \"error\": str(e)})\n\n # Process with structured output validation\n try:\n structured_output = await self.build_structured_output_base(content)\n\n # Handle different output formats\n if isinstance(structured_output, list) and structured_output:\n if len(structured_output) == 1:\n return Data(data=structured_output[0])\n return Data(data={\"results\": structured_output})\n if isinstance(structured_output, dict):\n return Data(data=structured_output)\n return Data(data={\"content\": content})\n\n except (ValueError, TypeError) as e:\n await logger.aerror(f\"Error in structured output processing: {e}\")\n return Data(data={\"content\": content, \"error\": str(e)})\n\n async def get_memory_data(self):\n # TODO: This is a temporary fix to avoid message duplication. We should develop a function for this.\n messages = (\n await MemoryComponent(**self.get_base_args())\n .set(\n session_id=self.graph.session_id,\n context_id=self.context_id,\n order=\"Ascending\",\n n_messages=self.n_messages,\n )\n .retrieve_messages()\n )\n return [\n message for message in messages if getattr(message, \"id\", None) != getattr(self.input_value, \"id\", None)\n ]\n\n async def get_llm(self):\n if not isinstance(self.agent_llm, str):\n return self.agent_llm, None\n\n try:\n provider_info = MODEL_PROVIDERS_DICT.get(self.agent_llm)\n if not provider_info:\n msg = f\"Invalid model provider: {self.agent_llm}\"\n raise ValueError(msg)\n\n component_class = provider_info.get(\"component_class\")\n display_name = component_class.display_name\n inputs = provider_info.get(\"inputs\")\n prefix = provider_info.get(\"prefix\", \"\")\n\n return self._build_llm_model(component_class, inputs, prefix), display_name\n\n except (AttributeError, ValueError, TypeError, RuntimeError) as e:\n await logger.aerror(f\"Error building {self.agent_llm} language model: {e!s}\")\n msg = f\"Failed to initialize language model: {e!s}\"\n raise ValueError(msg) from e\n\n def _build_llm_model(self, component, inputs, prefix=\"\"):\n model_kwargs = {}\n for input_ in inputs:\n if hasattr(self, f\"{prefix}{input_.name}\"):\n model_kwargs[input_.name] = getattr(self, f\"{prefix}{input_.name}\")\n return component.set(**model_kwargs).build_model()\n\n def set_component_params(self, component):\n provider_info = MODEL_PROVIDERS_DICT.get(self.agent_llm)\n if provider_info:\n inputs = provider_info.get(\"inputs\")\n prefix = provider_info.get(\"prefix\")\n # Filter out json_mode and only use attributes that exist on this component\n model_kwargs = {}\n for input_ in inputs:\n if hasattr(self, f\"{prefix}{input_.name}\"):\n model_kwargs[input_.name] = getattr(self, f\"{prefix}{input_.name}\")\n\n return component.set(**model_kwargs)\n return component\n\n def delete_fields(self, build_config: dotdict, fields: dict | list[str]) -> None:\n \"\"\"Delete specified fields from build_config.\"\"\"\n for field in fields:\n if build_config is not None and field in build_config:\n build_config.pop(field, None)\n\n def update_input_types(self, build_config: dotdict) -> dotdict:\n \"\"\"Update input types for all fields in build_config.\"\"\"\n for key, value in build_config.items():\n if isinstance(value, dict):\n if value.get(\"input_types\") is None:\n build_config[key][\"input_types\"] = []\n elif hasattr(value, \"input_types\") and value.input_types is None:\n value.input_types = []\n return build_config\n\n async def update_build_config(\n self, build_config: dotdict, field_value: str, field_name: str | None = None\n ) -> dotdict:\n # Iterate over all providers in the MODEL_PROVIDERS_DICT\n # Existing logic for updating build_config\n if field_name in (\"agent_llm\",):\n build_config[\"agent_llm\"][\"value\"] = field_value\n provider_info = MODEL_PROVIDERS_DICT.get(field_value)\n if provider_info:\n component_class = provider_info.get(\"component_class\")\n if component_class and hasattr(component_class, \"update_build_config\"):\n # Call the component class's update_build_config method\n build_config = await update_component_build_config(\n component_class, build_config, field_value, \"model_name\"\n )\n\n provider_configs: dict[str, tuple[dict, list[dict]]] = {\n provider: (\n MODEL_PROVIDERS_DICT[provider][\"fields\"],\n [\n MODEL_PROVIDERS_DICT[other_provider][\"fields\"]\n for other_provider in MODEL_PROVIDERS_DICT\n if other_provider != provider\n ],\n )\n for provider in MODEL_PROVIDERS_DICT\n }\n if field_value in provider_configs:\n fields_to_add, fields_to_delete = provider_configs[field_value]\n\n # Delete fields from other providers\n for fields in fields_to_delete:\n self.delete_fields(build_config, fields)\n\n # Add provider-specific fields\n if field_value == \"OpenAI\" and not any(field in build_config for field in fields_to_add):\n build_config.update(fields_to_add)\n else:\n build_config.update(fields_to_add)\n # Reset input types for agent_llm\n build_config[\"agent_llm\"][\"input_types\"] = []\n build_config[\"agent_llm\"][\"display_name\"] = \"Model Provider\"\n elif field_value == \"connect_other_models\":\n # Delete all provider fields\n self.delete_fields(build_config, ALL_PROVIDER_FIELDS)\n # # Update with custom component\n custom_component = DropdownInput(\n name=\"agent_llm\",\n display_name=\"Language Model\",\n info=\"The provider of the language model that the agent will use to generate responses.\",\n options=[*MODEL_PROVIDERS_LIST],\n real_time_refresh=True,\n refresh_button=False,\n input_types=[\"LanguageModel\"],\n placeholder=\"Awaiting model input.\",\n options_metadata=[MODELS_METADATA[key] for key in MODEL_PROVIDERS_LIST if key in MODELS_METADATA],\n external_options={\n \"fields\": {\n \"data\": {\n \"node\": {\n \"name\": \"connect_other_models\",\n \"display_name\": \"Connect other models\",\n \"icon\": \"CornerDownLeft\",\n },\n }\n },\n },\n )\n build_config.update({\"agent_llm\": custom_component.to_dict()})\n # Update input types for all fields\n build_config = self.update_input_types(build_config)\n\n # Validate required keys\n default_keys = [\n \"code\",\n \"_type\",\n \"agent_llm\",\n \"tools\",\n \"input_value\",\n \"add_current_date_tool\",\n \"system_prompt\",\n \"agent_description\",\n \"max_iterations\",\n \"handle_parsing_errors\",\n \"verbose\",\n ]\n missing_keys = [key for key in default_keys if key not in build_config]\n if missing_keys:\n msg = f\"Missing required keys in build_config: {missing_keys}\"\n raise ValueError(msg)\n if (\n isinstance(self.agent_llm, str)\n and self.agent_llm in MODEL_PROVIDERS_DICT\n and field_name in MODEL_DYNAMIC_UPDATE_FIELDS\n ):\n provider_info = MODEL_PROVIDERS_DICT.get(self.agent_llm)\n if provider_info:\n component_class = provider_info.get(\"component_class\")\n component_class = self.set_component_params(component_class)\n prefix = provider_info.get(\"prefix\")\n if component_class and hasattr(component_class, \"update_build_config\"):\n # Call each component class's update_build_config method\n # remove the prefix from the field_name\n if isinstance(field_name, str) and isinstance(prefix, str):\n field_name_without_prefix = field_name.replace(prefix, \"\")\n else:\n field_name_without_prefix = field_name\n build_config = await update_component_build_config(\n component_class, build_config, field_value, field_name_without_prefix\n )\n return dotdict({k: v.to_dict() if hasattr(v, \"to_dict\") else v for k, v in build_config.items()})\n\n async def _get_tools(self) -> list[Tool]:\n component_toolkit = get_component_toolkit()\n tools_names = self._build_tools_names()\n agent_description = self.get_tool_description()\n # TODO: Agent Description Depreciated Feature to be removed\n description = f\"{agent_description}{tools_names}\"\n\n tools = component_toolkit(component=self).get_tools(\n tool_name=\"Call_Agent\",\n tool_description=description,\n # here we do not use the shared callbacks as we are exposing the agent as a tool\n callbacks=self.get_langchain_callbacks(),\n )\n if hasattr(self, \"tools_metadata\"):\n tools = component_toolkit(component=self, metadata=self.tools_metadata).update_tools_metadata(tools=tools)\n\n return tools\n"
1282
1320
  },
1283
1321
  "context_id": {
1284
1322
  "_input_type": "MessageTextInput",
@@ -1396,6 +1434,7 @@
1396
1434
  "list": false,
1397
1435
  "list_add_label": "Add More",
1398
1436
  "name": "max_output_tokens",
1437
+ "override_skip": false,
1399
1438
  "placeholder": "",
1400
1439
  "required": false,
1401
1440
  "show": false,
@@ -1415,12 +1454,14 @@
1415
1454
  "list": false,
1416
1455
  "list_add_label": "Add More",
1417
1456
  "name": "max_retries",
1457
+ "override_skip": false,
1418
1458
  "placeholder": "",
1419
1459
  "required": false,
1420
1460
  "show": true,
1421
1461
  "title_case": false,
1422
1462
  "tool_mode": false,
1423
1463
  "trace_as_metadata": true,
1464
+ "track_in_telemetry": true,
1424
1465
  "type": "int",
1425
1466
  "value": 5
1426
1467
  },
@@ -1433,10 +1474,11 @@
1433
1474
  "list": false,
1434
1475
  "list_add_label": "Add More",
1435
1476
  "name": "max_tokens",
1477
+ "override_skip": false,
1436
1478
  "placeholder": "",
1437
1479
  "range_spec": {
1438
- "max": 128000,
1439
- "min": 0,
1480
+ "max": 128000.0,
1481
+ "min": 0.0,
1440
1482
  "step": 0.1,
1441
1483
  "step_type": "float"
1442
1484
  },
@@ -1445,6 +1487,7 @@
1445
1487
  "title_case": false,
1446
1488
  "tool_mode": false,
1447
1489
  "trace_as_metadata": true,
1490
+ "track_in_telemetry": true,
1448
1491
  "type": "int",
1449
1492
  "value": ""
1450
1493
  },
@@ -1457,12 +1500,14 @@
1457
1500
  "list": false,
1458
1501
  "list_add_label": "Add More",
1459
1502
  "name": "model_kwargs",
1503
+ "override_skip": false,
1460
1504
  "placeholder": "",
1461
1505
  "required": false,
1462
1506
  "show": true,
1463
1507
  "title_case": false,
1464
1508
  "tool_mode": false,
1465
1509
  "trace_as_input": true,
1510
+ "track_in_telemetry": false,
1466
1511
  "type": "dict",
1467
1512
  "value": {}
1468
1513
  },
@@ -1473,8 +1518,8 @@
1473
1518
  "dialog_inputs": {},
1474
1519
  "display_name": "Model Name",
1475
1520
  "dynamic": false,
1521
+ "external_options": {},
1476
1522
  "info": "To see the model names, first choose a provider. Then, enter your API key and click the refresh button next to the model name.",
1477
- "load_from_db": false,
1478
1523
  "name": "model_name",
1479
1524
  "options": [
1480
1525
  "gpt-4o-mini",
@@ -1499,6 +1544,7 @@
1499
1544
  "o4-mini-high"
1500
1545
  ],
1501
1546
  "options_metadata": [],
1547
+ "override_skip": false,
1502
1548
  "placeholder": "",
1503
1549
  "real_time_refresh": false,
1504
1550
  "required": false,
@@ -1507,8 +1553,9 @@
1507
1553
  "toggle": false,
1508
1554
  "tool_mode": false,
1509
1555
  "trace_as_metadata": true,
1556
+ "track_in_telemetry": true,
1510
1557
  "type": "str",
1511
- "value": "gpt-4.1-mini"
1558
+ "value": "gpt-4o-mini"
1512
1559
  },
1513
1560
  "n_messages": {
1514
1561
  "_input_type": "IntInput",
@@ -1538,12 +1585,14 @@
1538
1585
  "list_add_label": "Add More",
1539
1586
  "load_from_db": false,
1540
1587
  "name": "openai_api_base",
1588
+ "override_skip": false,
1541
1589
  "placeholder": "",
1542
1590
  "required": false,
1543
1591
  "show": true,
1544
1592
  "title_case": false,
1545
1593
  "tool_mode": false,
1546
1594
  "trace_as_metadata": true,
1595
+ "track_in_telemetry": false,
1547
1596
  "type": "str",
1548
1597
  "value": ""
1549
1598
  },
@@ -1619,6 +1668,7 @@
1619
1668
  "list_add_label": "Add More",
1620
1669
  "load_from_db": false,
1621
1670
  "name": "project_id",
1671
+ "override_skip": false,
1622
1672
  "placeholder": "",
1623
1673
  "required": true,
1624
1674
  "show": false,
@@ -1638,12 +1688,14 @@
1638
1688
  "list": false,
1639
1689
  "list_add_label": "Add More",
1640
1690
  "name": "seed",
1691
+ "override_skip": false,
1641
1692
  "placeholder": "",
1642
1693
  "required": false,
1643
1694
  "show": true,
1644
1695
  "title_case": false,
1645
1696
  "tool_mode": false,
1646
1697
  "trace_as_metadata": true,
1698
+ "track_in_telemetry": true,
1647
1699
  "type": "int",
1648
1700
  "value": 1
1649
1701
  },
@@ -1683,10 +1735,11 @@
1683
1735
  "min_label": "",
1684
1736
  "min_label_icon": "",
1685
1737
  "name": "temperature",
1738
+ "override_skip": false,
1686
1739
  "placeholder": "",
1687
1740
  "range_spec": {
1688
- "max": 1,
1689
- "min": 0,
1741
+ "max": 1.0,
1742
+ "min": 0.0,
1690
1743
  "step": 0.01,
1691
1744
  "step_type": "float"
1692
1745
  },
@@ -1697,6 +1750,7 @@
1697
1750
  "slider_input": false,
1698
1751
  "title_case": false,
1699
1752
  "tool_mode": false,
1753
+ "track_in_telemetry": false,
1700
1754
  "type": "slider",
1701
1755
  "value": 0.1
1702
1756
  },
@@ -1709,12 +1763,14 @@
1709
1763
  "list": false,
1710
1764
  "list_add_label": "Add More",
1711
1765
  "name": "timeout",
1766
+ "override_skip": false,
1712
1767
  "placeholder": "",
1713
1768
  "required": false,
1714
1769
  "show": true,
1715
1770
  "title_case": false,
1716
1771
  "tool_mode": false,
1717
1772
  "trace_as_metadata": true,
1773
+ "track_in_telemetry": true,
1718
1774
  "type": "int",
1719
1775
  "value": 700
1720
1776
  },
@@ -2594,7 +2650,7 @@
2594
2650
  "icon": "bot",
2595
2651
  "legacy": false,
2596
2652
  "metadata": {
2597
- "code_hash": "d64b11c24a1c",
2653
+ "code_hash": "fba2d73636e5",
2598
2654
  "dependencies": {
2599
2655
  "dependencies": [
2600
2656
  {
@@ -2715,16 +2771,25 @@
2715
2771
  },
2716
2772
  {
2717
2773
  "icon": "OpenAI"
2774
+ },
2775
+ {
2776
+ "icon": "WatsonxAI"
2777
+ },
2778
+ {
2779
+ "icon": "Ollama"
2718
2780
  }
2719
2781
  ],
2782
+ "override_skip": false,
2720
2783
  "placeholder": "",
2721
2784
  "real_time_refresh": true,
2785
+ "refresh_button": false,
2722
2786
  "required": false,
2723
2787
  "show": true,
2724
2788
  "title_case": false,
2725
2789
  "toggle": false,
2726
2790
  "tool_mode": false,
2727
2791
  "trace_as_metadata": true,
2792
+ "track_in_telemetry": true,
2728
2793
  "type": "str",
2729
2794
  "value": "OpenAI"
2730
2795
  },
@@ -2756,6 +2821,7 @@
2756
2821
  "list_add_label": "Add More",
2757
2822
  "load_from_db": false,
2758
2823
  "name": "base_url",
2824
+ "override_skip": false,
2759
2825
  "placeholder": "",
2760
2826
  "required": true,
2761
2827
  "show": false,
@@ -2782,7 +2848,7 @@
2782
2848
  "show": true,
2783
2849
  "title_case": false,
2784
2850
  "type": "code",
2785
- "value": "import json\nimport re\n\nfrom langchain_core.tools import StructuredTool, Tool\nfrom pydantic import ValidationError\n\nfrom lfx.base.agents.agent import LCToolsAgentComponent\nfrom lfx.base.agents.events import ExceptionWithMessageError\nfrom lfx.base.models.model_input_constants import (\n ALL_PROVIDER_FIELDS,\n MODEL_DYNAMIC_UPDATE_FIELDS,\n MODEL_PROVIDERS_DICT,\n MODEL_PROVIDERS_LIST,\n MODELS_METADATA,\n)\nfrom lfx.base.models.model_utils import get_model_name\nfrom lfx.components.helpers import CurrentDateComponent\nfrom lfx.components.langchain_utilities.tool_calling import ToolCallingAgentComponent\nfrom lfx.components.models_and_agents.memory import MemoryComponent\nfrom lfx.custom.custom_component.component import get_component_toolkit\nfrom lfx.custom.utils import update_component_build_config\nfrom lfx.helpers.base_model import build_model_from_schema\nfrom lfx.inputs.inputs import BoolInput, SecretStrInput, StrInput\nfrom lfx.io import DropdownInput, IntInput, MessageTextInput, MultilineInput, Output, TableInput\nfrom lfx.log.logger import logger\nfrom lfx.schema.data import Data\nfrom lfx.schema.dotdict import dotdict\nfrom lfx.schema.message import Message\nfrom lfx.schema.table import EditMode\n\n\ndef set_advanced_true(component_input):\n component_input.advanced = True\n return component_input\n\n\nclass AgentComponent(ToolCallingAgentComponent):\n display_name: str = \"Agent\"\n description: str = \"Define the agent's instructions, then enter a task to complete using tools.\"\n documentation: str = \"https://docs.langflow.org/agents\"\n icon = \"bot\"\n beta = False\n name = \"Agent\"\n\n memory_inputs = [set_advanced_true(component_input) for component_input in MemoryComponent().inputs]\n\n # Filter out json_mode from OpenAI inputs since we handle structured output differently\n if \"OpenAI\" in MODEL_PROVIDERS_DICT:\n openai_inputs_filtered = [\n input_field\n for input_field in MODEL_PROVIDERS_DICT[\"OpenAI\"][\"inputs\"]\n if not (hasattr(input_field, \"name\") and input_field.name == \"json_mode\")\n ]\n else:\n openai_inputs_filtered = []\n\n inputs = [\n DropdownInput(\n name=\"agent_llm\",\n display_name=\"Model Provider\",\n info=\"The provider of the language model that the agent will use to generate responses.\",\n options=[*MODEL_PROVIDERS_LIST],\n value=\"OpenAI\",\n real_time_refresh=True,\n refresh_button=False,\n input_types=[],\n options_metadata=[MODELS_METADATA[key] for key in MODEL_PROVIDERS_LIST if key in MODELS_METADATA],\n external_options={\n \"fields\": {\n \"data\": {\n \"node\": {\n \"name\": \"connect_other_models\",\n \"display_name\": \"Connect other models\",\n \"icon\": \"CornerDownLeft\",\n }\n }\n },\n },\n ),\n SecretStrInput(\n name=\"api_key\",\n display_name=\"API Key\",\n info=\"The API key to use for the model.\",\n required=True,\n ),\n StrInput(\n name=\"base_url\",\n display_name=\"Base URL\",\n info=\"The base URL of the API.\",\n required=True,\n show=False,\n ),\n StrInput(\n name=\"project_id\",\n display_name=\"Project ID\",\n info=\"The project ID of the model.\",\n required=True,\n show=False,\n ),\n IntInput(\n name=\"max_output_tokens\",\n display_name=\"Max Output Tokens\",\n info=\"The maximum number of tokens to generate.\",\n show=False,\n ),\n *openai_inputs_filtered,\n MultilineInput(\n name=\"system_prompt\",\n display_name=\"Agent Instructions\",\n info=\"System Prompt: Initial instructions and context provided to guide the agent's behavior.\",\n value=\"You are a helpful assistant that can use tools to answer questions and perform tasks.\",\n advanced=False,\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 IntInput(\n name=\"n_messages\",\n display_name=\"Number of Chat History Messages\",\n value=100,\n info=\"Number of chat history messages to retrieve.\",\n advanced=True,\n show=True,\n ),\n MultilineInput(\n name=\"format_instructions\",\n display_name=\"Output Format Instructions\",\n info=\"Generic Template for structured output formatting. Valid only with Structured response.\",\n value=(\n \"You are an AI that extracts structured JSON objects from unstructured text. \"\n \"Use a predefined schema with expected types (str, int, float, bool, dict). \"\n \"Extract ALL relevant instances that match the schema - if multiple patterns exist, capture them all. \"\n \"Fill missing or ambiguous values with defaults: null for missing values. \"\n \"Remove exact duplicates but keep variations that have different field values. \"\n \"Always return valid JSON in the expected format, never throw errors. \"\n \"If multiple objects can be extracted, return them all in the structured format.\"\n ),\n advanced=True,\n ),\n TableInput(\n name=\"output_schema\",\n display_name=\"Output Schema\",\n info=(\n \"Schema Validation: Define the structure and data types for structured output. \"\n \"No validation if no output schema.\"\n ),\n advanced=True,\n required=False,\n value=[],\n table_schema=[\n {\n \"name\": \"name\",\n \"display_name\": \"Name\",\n \"type\": \"str\",\n \"description\": \"Specify the name of the output field.\",\n \"default\": \"field\",\n \"edit_mode\": EditMode.INLINE,\n },\n {\n \"name\": \"description\",\n \"display_name\": \"Description\",\n \"type\": \"str\",\n \"description\": \"Describe the purpose of the output field.\",\n \"default\": \"description of field\",\n \"edit_mode\": EditMode.POPOVER,\n },\n {\n \"name\": \"type\",\n \"display_name\": \"Type\",\n \"type\": \"str\",\n \"edit_mode\": EditMode.INLINE,\n \"description\": (\"Indicate the data type of the output field (e.g., str, int, float, bool, dict).\"),\n \"options\": [\"str\", \"int\", \"float\", \"bool\", \"dict\"],\n \"default\": \"str\",\n },\n {\n \"name\": \"multiple\",\n \"display_name\": \"As List\",\n \"type\": \"boolean\",\n \"description\": \"Set to True if this output field should be a list of the specified type.\",\n \"default\": \"False\",\n \"edit_mode\": EditMode.INLINE,\n },\n ],\n ),\n *LCToolsAgentComponent.get_base_inputs(),\n # removed memory inputs from agent component\n # *memory_inputs,\n BoolInput(\n name=\"add_current_date_tool\",\n display_name=\"Current Date\",\n advanced=True,\n info=\"If true, will add a tool to the agent that returns the current date.\",\n value=True,\n ),\n ]\n outputs = [\n Output(name=\"response\", display_name=\"Response\", method=\"message_response\"),\n ]\n\n async def get_agent_requirements(self):\n \"\"\"Get the agent requirements for the agent.\"\"\"\n llm_model, display_name = await self.get_llm()\n if llm_model is None:\n msg = \"No language model selected. Please choose a model to proceed.\"\n raise ValueError(msg)\n self.model_name = get_model_name(llm_model, display_name=display_name)\n\n # Get memory data\n self.chat_history = await self.get_memory_data()\n await logger.adebug(f\"Retrieved {len(self.chat_history)} chat history messages\")\n if isinstance(self.chat_history, Message):\n self.chat_history = [self.chat_history]\n\n # Add current date tool if enabled\n if self.add_current_date_tool:\n if not isinstance(self.tools, list): # type: ignore[has-type]\n self.tools = []\n current_date_tool = (await CurrentDateComponent(**self.get_base_args()).to_toolkit()).pop(0)\n\n if not isinstance(current_date_tool, StructuredTool):\n msg = \"CurrentDateComponent must be converted to a StructuredTool\"\n raise TypeError(msg)\n self.tools.append(current_date_tool)\n\n # Set shared callbacks for tracing the tools used by the agent\n self.set_tools_callbacks(self.tools, self._get_shared_callbacks())\n\n return llm_model, self.chat_history, self.tools\n\n async def message_response(self) -> Message:\n try:\n llm_model, self.chat_history, self.tools = await self.get_agent_requirements()\n # Set up and run agent\n self.set(\n llm=llm_model,\n tools=self.tools or [],\n chat_history=self.chat_history,\n input_value=self.input_value,\n system_prompt=self.system_prompt,\n )\n agent = self.create_agent_runnable()\n result = await self.run_agent(agent)\n\n # Store result for potential JSON output\n self._agent_result = result\n\n except (ValueError, TypeError, KeyError) as e:\n await logger.aerror(f\"{type(e).__name__}: {e!s}\")\n raise\n except ExceptionWithMessageError as e:\n await logger.aerror(f\"ExceptionWithMessageError occurred: {e}\")\n raise\n # Avoid catching blind Exception; let truly unexpected exceptions propagate\n except Exception as e:\n await logger.aerror(f\"Unexpected error: {e!s}\")\n raise\n else:\n return result\n\n def _preprocess_schema(self, schema):\n \"\"\"Preprocess schema to ensure correct data types for build_model_from_schema.\"\"\"\n processed_schema = []\n for field in schema:\n processed_field = {\n \"name\": str(field.get(\"name\", \"field\")),\n \"type\": str(field.get(\"type\", \"str\")),\n \"description\": str(field.get(\"description\", \"\")),\n \"multiple\": field.get(\"multiple\", False),\n }\n # Ensure multiple is handled correctly\n if isinstance(processed_field[\"multiple\"], str):\n processed_field[\"multiple\"] = processed_field[\"multiple\"].lower() in [\n \"true\",\n \"1\",\n \"t\",\n \"y\",\n \"yes\",\n ]\n processed_schema.append(processed_field)\n return processed_schema\n\n async def build_structured_output_base(self, content: str):\n \"\"\"Build structured output with optional BaseModel validation.\"\"\"\n json_pattern = r\"\\{.*\\}\"\n schema_error_msg = \"Try setting an output schema\"\n\n # Try to parse content as JSON first\n json_data = None\n try:\n json_data = json.loads(content)\n except json.JSONDecodeError:\n json_match = re.search(json_pattern, content, re.DOTALL)\n if json_match:\n try:\n json_data = json.loads(json_match.group())\n except json.JSONDecodeError:\n return {\"content\": content, \"error\": schema_error_msg}\n else:\n return {\"content\": content, \"error\": schema_error_msg}\n\n # If no output schema provided, return parsed JSON without validation\n if not hasattr(self, \"output_schema\") or not self.output_schema or len(self.output_schema) == 0:\n return json_data\n\n # Use BaseModel validation with schema\n try:\n processed_schema = self._preprocess_schema(self.output_schema)\n output_model = build_model_from_schema(processed_schema)\n\n # Validate against the schema\n if isinstance(json_data, list):\n # Multiple objects\n validated_objects = []\n for item in json_data:\n try:\n validated_obj = output_model.model_validate(item)\n validated_objects.append(validated_obj.model_dump())\n except ValidationError as e:\n await logger.aerror(f\"Validation error for item: {e}\")\n # Include invalid items with error info\n validated_objects.append({\"data\": item, \"validation_error\": str(e)})\n return validated_objects\n\n # Single object\n try:\n validated_obj = output_model.model_validate(json_data)\n return [validated_obj.model_dump()] # Return as list for consistency\n except ValidationError as e:\n await logger.aerror(f\"Validation error: {e}\")\n return [{\"data\": json_data, \"validation_error\": str(e)}]\n\n except (TypeError, ValueError) as e:\n await logger.aerror(f\"Error building structured output: {e}\")\n # Fallback to parsed JSON without validation\n return json_data\n\n async def json_response(self) -> Data:\n \"\"\"Convert agent response to structured JSON Data output with schema validation.\"\"\"\n # Always use structured chat agent for JSON response mode for better JSON formatting\n try:\n system_components = []\n\n # 1. Agent Instructions (system_prompt)\n agent_instructions = getattr(self, \"system_prompt\", \"\") or \"\"\n if agent_instructions:\n system_components.append(f\"{agent_instructions}\")\n\n # 2. Format Instructions\n format_instructions = getattr(self, \"format_instructions\", \"\") or \"\"\n if format_instructions:\n system_components.append(f\"Format instructions: {format_instructions}\")\n\n # 3. Schema Information from BaseModel\n if hasattr(self, \"output_schema\") and self.output_schema and len(self.output_schema) > 0:\n try:\n processed_schema = self._preprocess_schema(self.output_schema)\n output_model = build_model_from_schema(processed_schema)\n schema_dict = output_model.model_json_schema()\n schema_info = (\n \"You are given some text that may include format instructions, \"\n \"explanations, or other content alongside a JSON schema.\\n\\n\"\n \"Your task:\\n\"\n \"- Extract only the JSON schema.\\n\"\n \"- Return it as valid JSON.\\n\"\n \"- Do not include format instructions, explanations, or extra text.\\n\\n\"\n \"Input:\\n\"\n f\"{json.dumps(schema_dict, indent=2)}\\n\\n\"\n \"Output (only JSON schema):\"\n )\n system_components.append(schema_info)\n except (ValidationError, ValueError, TypeError, KeyError) as e:\n await logger.aerror(f\"Could not build schema for prompt: {e}\", exc_info=True)\n\n # Combine all components\n combined_instructions = \"\\n\\n\".join(system_components) if system_components else \"\"\n llm_model, self.chat_history, self.tools = await self.get_agent_requirements()\n self.set(\n llm=llm_model,\n tools=self.tools or [],\n chat_history=self.chat_history,\n input_value=self.input_value,\n system_prompt=combined_instructions,\n )\n\n # Create and run structured chat agent\n try:\n structured_agent = self.create_agent_runnable()\n except (NotImplementedError, ValueError, TypeError) as e:\n await logger.aerror(f\"Error with structured chat agent: {e}\")\n raise\n try:\n result = await self.run_agent(structured_agent)\n except (\n ExceptionWithMessageError,\n ValueError,\n TypeError,\n RuntimeError,\n ) as e:\n await logger.aerror(f\"Error with structured agent result: {e}\")\n raise\n # Extract content from structured agent result\n if hasattr(result, \"content\"):\n content = result.content\n elif hasattr(result, \"text\"):\n content = result.text\n else:\n content = str(result)\n\n except (\n ExceptionWithMessageError,\n ValueError,\n TypeError,\n NotImplementedError,\n AttributeError,\n ) as e:\n await logger.aerror(f\"Error with structured chat agent: {e}\")\n # Fallback to regular agent\n content_str = \"No content returned from agent\"\n return Data(data={\"content\": content_str, \"error\": str(e)})\n\n # Process with structured output validation\n try:\n structured_output = await self.build_structured_output_base(content)\n\n # Handle different output formats\n if isinstance(structured_output, list) and structured_output:\n if len(structured_output) == 1:\n return Data(data=structured_output[0])\n return Data(data={\"results\": structured_output})\n if isinstance(structured_output, dict):\n return Data(data=structured_output)\n return Data(data={\"content\": content})\n\n except (ValueError, TypeError) as e:\n await logger.aerror(f\"Error in structured output processing: {e}\")\n return Data(data={\"content\": content, \"error\": str(e)})\n\n async def get_memory_data(self):\n # TODO: This is a temporary fix to avoid message duplication. We should develop a function for this.\n messages = (\n await MemoryComponent(**self.get_base_args())\n .set(\n session_id=self.graph.session_id,\n context_id=self.context_id,\n order=\"Ascending\",\n n_messages=self.n_messages,\n )\n .retrieve_messages()\n )\n return [\n message for message in messages if getattr(message, \"id\", None) != getattr(self.input_value, \"id\", None)\n ]\n\n async def get_llm(self):\n if not isinstance(self.agent_llm, str):\n return self.agent_llm, None\n\n try:\n provider_info = MODEL_PROVIDERS_DICT.get(self.agent_llm)\n if not provider_info:\n msg = f\"Invalid model provider: {self.agent_llm}\"\n raise ValueError(msg)\n\n component_class = provider_info.get(\"component_class\")\n display_name = component_class.display_name\n inputs = provider_info.get(\"inputs\")\n prefix = provider_info.get(\"prefix\", \"\")\n\n return self._build_llm_model(component_class, inputs, prefix), display_name\n\n except (AttributeError, ValueError, TypeError, RuntimeError) as e:\n await logger.aerror(f\"Error building {self.agent_llm} language model: {e!s}\")\n msg = f\"Failed to initialize language model: {e!s}\"\n raise ValueError(msg) from e\n\n def _build_llm_model(self, component, inputs, prefix=\"\"):\n model_kwargs = {}\n for input_ in inputs:\n if hasattr(self, f\"{prefix}{input_.name}\"):\n model_kwargs[input_.name] = getattr(self, f\"{prefix}{input_.name}\")\n return component.set(**model_kwargs).build_model()\n\n def set_component_params(self, component):\n provider_info = MODEL_PROVIDERS_DICT.get(self.agent_llm)\n if provider_info:\n inputs = provider_info.get(\"inputs\")\n prefix = provider_info.get(\"prefix\")\n # Filter out json_mode and only use attributes that exist on this component\n model_kwargs = {}\n for input_ in inputs:\n if hasattr(self, f\"{prefix}{input_.name}\"):\n model_kwargs[input_.name] = getattr(self, f\"{prefix}{input_.name}\")\n\n return component.set(**model_kwargs)\n return component\n\n def delete_fields(self, build_config: dotdict, fields: dict | list[str]) -> None:\n \"\"\"Delete specified fields from build_config.\"\"\"\n for field in fields:\n if build_config is not None and field in build_config:\n build_config.pop(field, None)\n\n def update_input_types(self, build_config: dotdict) -> dotdict:\n \"\"\"Update input types for all fields in build_config.\"\"\"\n for key, value in build_config.items():\n if isinstance(value, dict):\n if value.get(\"input_types\") is None:\n build_config[key][\"input_types\"] = []\n elif hasattr(value, \"input_types\") and value.input_types is None:\n value.input_types = []\n return build_config\n\n async def update_build_config(\n self, build_config: dotdict, field_value: str, field_name: str | None = None\n ) -> dotdict:\n # Iterate over all providers in the MODEL_PROVIDERS_DICT\n # Existing logic for updating build_config\n if field_name in (\"agent_llm\",):\n build_config[\"agent_llm\"][\"value\"] = field_value\n provider_info = MODEL_PROVIDERS_DICT.get(field_value)\n if provider_info:\n component_class = provider_info.get(\"component_class\")\n if component_class and hasattr(component_class, \"update_build_config\"):\n # Call the component class's update_build_config method\n build_config = await update_component_build_config(\n component_class, build_config, field_value, \"model_name\"\n )\n\n provider_configs: dict[str, tuple[dict, list[dict]]] = {\n provider: (\n MODEL_PROVIDERS_DICT[provider][\"fields\"],\n [\n MODEL_PROVIDERS_DICT[other_provider][\"fields\"]\n for other_provider in MODEL_PROVIDERS_DICT\n if other_provider != provider\n ],\n )\n for provider in MODEL_PROVIDERS_DICT\n }\n if field_value in provider_configs:\n fields_to_add, fields_to_delete = provider_configs[field_value]\n\n # Delete fields from other providers\n for fields in fields_to_delete:\n self.delete_fields(build_config, fields)\n\n # Add provider-specific fields\n if field_value == \"OpenAI\" and not any(field in build_config for field in fields_to_add):\n build_config.update(fields_to_add)\n else:\n build_config.update(fields_to_add)\n # Reset input types for agent_llm\n build_config[\"agent_llm\"][\"input_types\"] = []\n build_config[\"agent_llm\"][\"display_name\"] = \"Model Provider\"\n elif field_value == \"connect_other_models\":\n # Delete all provider fields\n self.delete_fields(build_config, ALL_PROVIDER_FIELDS)\n # # Update with custom component\n custom_component = DropdownInput(\n name=\"agent_llm\",\n display_name=\"Language Model\",\n info=\"The provider of the language model that the agent will use to generate responses.\",\n options=[*MODEL_PROVIDERS_LIST],\n real_time_refresh=True,\n refresh_button=False,\n input_types=[\"LanguageModel\"],\n placeholder=\"Awaiting model input.\",\n options_metadata=[MODELS_METADATA[key] for key in MODEL_PROVIDERS_LIST if key in MODELS_METADATA],\n external_options={\n \"fields\": {\n \"data\": {\n \"node\": {\n \"name\": \"connect_other_models\",\n \"display_name\": \"Connect other models\",\n \"icon\": \"CornerDownLeft\",\n },\n }\n },\n },\n )\n build_config.update({\"agent_llm\": custom_component.to_dict()})\n # Update input types for all fields\n build_config = self.update_input_types(build_config)\n\n # Validate required keys\n default_keys = [\n \"code\",\n \"_type\",\n \"agent_llm\",\n \"tools\",\n \"input_value\",\n \"add_current_date_tool\",\n \"system_prompt\",\n \"agent_description\",\n \"max_iterations\",\n \"handle_parsing_errors\",\n \"verbose\",\n ]\n missing_keys = [key for key in default_keys if key not in build_config]\n if missing_keys:\n msg = f\"Missing required keys in build_config: {missing_keys}\"\n raise ValueError(msg)\n if (\n isinstance(self.agent_llm, str)\n and self.agent_llm in MODEL_PROVIDERS_DICT\n and field_name in MODEL_DYNAMIC_UPDATE_FIELDS\n ):\n provider_info = MODEL_PROVIDERS_DICT.get(self.agent_llm)\n if provider_info:\n component_class = provider_info.get(\"component_class\")\n component_class = self.set_component_params(component_class)\n prefix = provider_info.get(\"prefix\")\n if component_class and hasattr(component_class, \"update_build_config\"):\n # Call each component class's update_build_config method\n # remove the prefix from the field_name\n if isinstance(field_name, str) and isinstance(prefix, str):\n field_name = field_name.replace(prefix, \"\")\n build_config = await update_component_build_config(\n component_class, build_config, field_value, \"model_name\"\n )\n return dotdict({k: v.to_dict() if hasattr(v, \"to_dict\") else v for k, v in build_config.items()})\n\n async def _get_tools(self) -> list[Tool]:\n component_toolkit = get_component_toolkit()\n tools_names = self._build_tools_names()\n agent_description = self.get_tool_description()\n # TODO: Agent Description Depreciated Feature to be removed\n description = f\"{agent_description}{tools_names}\"\n\n tools = component_toolkit(component=self).get_tools(\n tool_name=\"Call_Agent\",\n tool_description=description,\n # here we do not use the shared callbacks as we are exposing the agent as a tool\n callbacks=self.get_langchain_callbacks(),\n )\n if hasattr(self, \"tools_metadata\"):\n tools = component_toolkit(component=self, metadata=self.tools_metadata).update_tools_metadata(tools=tools)\n\n return tools\n"
2851
+ "value": "import json\nimport re\n\nfrom langchain_core.tools import StructuredTool, Tool\nfrom pydantic import ValidationError\n\nfrom lfx.base.agents.agent import LCToolsAgentComponent\nfrom lfx.base.agents.events import ExceptionWithMessageError\nfrom lfx.base.models.model_input_constants import (\n ALL_PROVIDER_FIELDS,\n MODEL_DYNAMIC_UPDATE_FIELDS,\n MODEL_PROVIDERS_DICT,\n MODEL_PROVIDERS_LIST,\n MODELS_METADATA,\n)\nfrom lfx.base.models.model_utils import get_model_name\nfrom lfx.components.helpers import CurrentDateComponent\nfrom lfx.components.langchain_utilities.tool_calling import ToolCallingAgentComponent\nfrom lfx.components.models_and_agents.memory import MemoryComponent\nfrom lfx.custom.custom_component.component import get_component_toolkit\nfrom lfx.custom.utils import update_component_build_config\nfrom lfx.helpers.base_model import build_model_from_schema\nfrom lfx.inputs.inputs import BoolInput, SecretStrInput, StrInput\nfrom lfx.io import DropdownInput, IntInput, MessageTextInput, MultilineInput, Output, TableInput\nfrom lfx.log.logger import logger\nfrom lfx.schema.data import Data\nfrom lfx.schema.dotdict import dotdict\nfrom lfx.schema.message import Message\nfrom lfx.schema.table import EditMode\n\n\ndef set_advanced_true(component_input):\n component_input.advanced = True\n return component_input\n\n\nclass AgentComponent(ToolCallingAgentComponent):\n display_name: str = \"Agent\"\n description: str = \"Define the agent's instructions, then enter a task to complete using tools.\"\n documentation: str = \"https://docs.langflow.org/agents\"\n icon = \"bot\"\n beta = False\n name = \"Agent\"\n\n memory_inputs = [set_advanced_true(component_input) for component_input in MemoryComponent().inputs]\n\n # Filter out json_mode from OpenAI inputs since we handle structured output differently\n if \"OpenAI\" in MODEL_PROVIDERS_DICT:\n openai_inputs_filtered = [\n input_field\n for input_field in MODEL_PROVIDERS_DICT[\"OpenAI\"][\"inputs\"]\n if not (hasattr(input_field, \"name\") and input_field.name == \"json_mode\")\n ]\n else:\n openai_inputs_filtered = []\n\n inputs = [\n DropdownInput(\n name=\"agent_llm\",\n display_name=\"Model Provider\",\n info=\"The provider of the language model that the agent will use to generate responses.\",\n options=[*MODEL_PROVIDERS_LIST],\n value=\"OpenAI\",\n real_time_refresh=True,\n refresh_button=False,\n input_types=[],\n options_metadata=[MODELS_METADATA[key] for key in MODEL_PROVIDERS_LIST if key in MODELS_METADATA],\n external_options={\n \"fields\": {\n \"data\": {\n \"node\": {\n \"name\": \"connect_other_models\",\n \"display_name\": \"Connect other models\",\n \"icon\": \"CornerDownLeft\",\n }\n }\n },\n },\n ),\n SecretStrInput(\n name=\"api_key\",\n display_name=\"API Key\",\n info=\"The API key to use for the model.\",\n required=True,\n ),\n StrInput(\n name=\"base_url\",\n display_name=\"Base URL\",\n info=\"The base URL of the API.\",\n required=True,\n show=False,\n ),\n StrInput(\n name=\"project_id\",\n display_name=\"Project ID\",\n info=\"The project ID of the model.\",\n required=True,\n show=False,\n ),\n IntInput(\n name=\"max_output_tokens\",\n display_name=\"Max Output Tokens\",\n info=\"The maximum number of tokens to generate.\",\n show=False,\n ),\n *openai_inputs_filtered,\n MultilineInput(\n name=\"system_prompt\",\n display_name=\"Agent Instructions\",\n info=\"System Prompt: Initial instructions and context provided to guide the agent's behavior.\",\n value=\"You are a helpful assistant that can use tools to answer questions and perform tasks.\",\n advanced=False,\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 IntInput(\n name=\"n_messages\",\n display_name=\"Number of Chat History Messages\",\n value=100,\n info=\"Number of chat history messages to retrieve.\",\n advanced=True,\n show=True,\n ),\n MultilineInput(\n name=\"format_instructions\",\n display_name=\"Output Format Instructions\",\n info=\"Generic Template for structured output formatting. Valid only with Structured response.\",\n value=(\n \"You are an AI that extracts structured JSON objects from unstructured text. \"\n \"Use a predefined schema with expected types (str, int, float, bool, dict). \"\n \"Extract ALL relevant instances that match the schema - if multiple patterns exist, capture them all. \"\n \"Fill missing or ambiguous values with defaults: null for missing values. \"\n \"Remove exact duplicates but keep variations that have different field values. \"\n \"Always return valid JSON in the expected format, never throw errors. \"\n \"If multiple objects can be extracted, return them all in the structured format.\"\n ),\n advanced=True,\n ),\n TableInput(\n name=\"output_schema\",\n display_name=\"Output Schema\",\n info=(\n \"Schema Validation: Define the structure and data types for structured output. \"\n \"No validation if no output schema.\"\n ),\n advanced=True,\n required=False,\n value=[],\n table_schema=[\n {\n \"name\": \"name\",\n \"display_name\": \"Name\",\n \"type\": \"str\",\n \"description\": \"Specify the name of the output field.\",\n \"default\": \"field\",\n \"edit_mode\": EditMode.INLINE,\n },\n {\n \"name\": \"description\",\n \"display_name\": \"Description\",\n \"type\": \"str\",\n \"description\": \"Describe the purpose of the output field.\",\n \"default\": \"description of field\",\n \"edit_mode\": EditMode.POPOVER,\n },\n {\n \"name\": \"type\",\n \"display_name\": \"Type\",\n \"type\": \"str\",\n \"edit_mode\": EditMode.INLINE,\n \"description\": (\"Indicate the data type of the output field (e.g., str, int, float, bool, dict).\"),\n \"options\": [\"str\", \"int\", \"float\", \"bool\", \"dict\"],\n \"default\": \"str\",\n },\n {\n \"name\": \"multiple\",\n \"display_name\": \"As List\",\n \"type\": \"boolean\",\n \"description\": \"Set to True if this output field should be a list of the specified type.\",\n \"default\": \"False\",\n \"edit_mode\": EditMode.INLINE,\n },\n ],\n ),\n *LCToolsAgentComponent.get_base_inputs(),\n # removed memory inputs from agent component\n # *memory_inputs,\n BoolInput(\n name=\"add_current_date_tool\",\n display_name=\"Current Date\",\n advanced=True,\n info=\"If true, will add a tool to the agent that returns the current date.\",\n value=True,\n ),\n ]\n outputs = [\n Output(name=\"response\", display_name=\"Response\", method=\"message_response\"),\n ]\n\n async def get_agent_requirements(self):\n \"\"\"Get the agent requirements for the agent.\"\"\"\n llm_model, display_name = await self.get_llm()\n if llm_model is None:\n msg = \"No language model selected. Please choose a model to proceed.\"\n raise ValueError(msg)\n self.model_name = get_model_name(llm_model, display_name=display_name)\n\n # Get memory data\n self.chat_history = await self.get_memory_data()\n await logger.adebug(f\"Retrieved {len(self.chat_history)} chat history messages\")\n if isinstance(self.chat_history, Message):\n self.chat_history = [self.chat_history]\n\n # Add current date tool if enabled\n if self.add_current_date_tool:\n if not isinstance(self.tools, list): # type: ignore[has-type]\n self.tools = []\n current_date_tool = (await CurrentDateComponent(**self.get_base_args()).to_toolkit()).pop(0)\n\n if not isinstance(current_date_tool, StructuredTool):\n msg = \"CurrentDateComponent must be converted to a StructuredTool\"\n raise TypeError(msg)\n self.tools.append(current_date_tool)\n\n # Set shared callbacks for tracing the tools used by the agent\n self.set_tools_callbacks(self.tools, self._get_shared_callbacks())\n\n return llm_model, self.chat_history, self.tools\n\n async def message_response(self) -> Message:\n try:\n llm_model, self.chat_history, self.tools = await self.get_agent_requirements()\n # Set up and run agent\n self.set(\n llm=llm_model,\n tools=self.tools or [],\n chat_history=self.chat_history,\n input_value=self.input_value,\n system_prompt=self.system_prompt,\n )\n agent = self.create_agent_runnable()\n result = await self.run_agent(agent)\n\n # Store result for potential JSON output\n self._agent_result = result\n\n except (ValueError, TypeError, KeyError) as e:\n await logger.aerror(f\"{type(e).__name__}: {e!s}\")\n raise\n except ExceptionWithMessageError as e:\n await logger.aerror(f\"ExceptionWithMessageError occurred: {e}\")\n raise\n # Avoid catching blind Exception; let truly unexpected exceptions propagate\n except Exception as e:\n await logger.aerror(f\"Unexpected error: {e!s}\")\n raise\n else:\n return result\n\n def _preprocess_schema(self, schema):\n \"\"\"Preprocess schema to ensure correct data types for build_model_from_schema.\"\"\"\n processed_schema = []\n for field in schema:\n processed_field = {\n \"name\": str(field.get(\"name\", \"field\")),\n \"type\": str(field.get(\"type\", \"str\")),\n \"description\": str(field.get(\"description\", \"\")),\n \"multiple\": field.get(\"multiple\", False),\n }\n # Ensure multiple is handled correctly\n if isinstance(processed_field[\"multiple\"], str):\n processed_field[\"multiple\"] = processed_field[\"multiple\"].lower() in [\n \"true\",\n \"1\",\n \"t\",\n \"y\",\n \"yes\",\n ]\n processed_schema.append(processed_field)\n return processed_schema\n\n async def build_structured_output_base(self, content: str):\n \"\"\"Build structured output with optional BaseModel validation.\"\"\"\n json_pattern = r\"\\{.*\\}\"\n schema_error_msg = \"Try setting an output schema\"\n\n # Try to parse content as JSON first\n json_data = None\n try:\n json_data = json.loads(content)\n except json.JSONDecodeError:\n json_match = re.search(json_pattern, content, re.DOTALL)\n if json_match:\n try:\n json_data = json.loads(json_match.group())\n except json.JSONDecodeError:\n return {\"content\": content, \"error\": schema_error_msg}\n else:\n return {\"content\": content, \"error\": schema_error_msg}\n\n # If no output schema provided, return parsed JSON without validation\n if not hasattr(self, \"output_schema\") or not self.output_schema or len(self.output_schema) == 0:\n return json_data\n\n # Use BaseModel validation with schema\n try:\n processed_schema = self._preprocess_schema(self.output_schema)\n output_model = build_model_from_schema(processed_schema)\n\n # Validate against the schema\n if isinstance(json_data, list):\n # Multiple objects\n validated_objects = []\n for item in json_data:\n try:\n validated_obj = output_model.model_validate(item)\n validated_objects.append(validated_obj.model_dump())\n except ValidationError as e:\n await logger.aerror(f\"Validation error for item: {e}\")\n # Include invalid items with error info\n validated_objects.append({\"data\": item, \"validation_error\": str(e)})\n return validated_objects\n\n # Single object\n try:\n validated_obj = output_model.model_validate(json_data)\n return [validated_obj.model_dump()] # Return as list for consistency\n except ValidationError as e:\n await logger.aerror(f\"Validation error: {e}\")\n return [{\"data\": json_data, \"validation_error\": str(e)}]\n\n except (TypeError, ValueError) as e:\n await logger.aerror(f\"Error building structured output: {e}\")\n # Fallback to parsed JSON without validation\n return json_data\n\n async def json_response(self) -> Data:\n \"\"\"Convert agent response to structured JSON Data output with schema validation.\"\"\"\n # Always use structured chat agent for JSON response mode for better JSON formatting\n try:\n system_components = []\n\n # 1. Agent Instructions (system_prompt)\n agent_instructions = getattr(self, \"system_prompt\", \"\") or \"\"\n if agent_instructions:\n system_components.append(f\"{agent_instructions}\")\n\n # 2. Format Instructions\n format_instructions = getattr(self, \"format_instructions\", \"\") or \"\"\n if format_instructions:\n system_components.append(f\"Format instructions: {format_instructions}\")\n\n # 3. Schema Information from BaseModel\n if hasattr(self, \"output_schema\") and self.output_schema and len(self.output_schema) > 0:\n try:\n processed_schema = self._preprocess_schema(self.output_schema)\n output_model = build_model_from_schema(processed_schema)\n schema_dict = output_model.model_json_schema()\n schema_info = (\n \"You are given some text that may include format instructions, \"\n \"explanations, or other content alongside a JSON schema.\\n\\n\"\n \"Your task:\\n\"\n \"- Extract only the JSON schema.\\n\"\n \"- Return it as valid JSON.\\n\"\n \"- Do not include format instructions, explanations, or extra text.\\n\\n\"\n \"Input:\\n\"\n f\"{json.dumps(schema_dict, indent=2)}\\n\\n\"\n \"Output (only JSON schema):\"\n )\n system_components.append(schema_info)\n except (ValidationError, ValueError, TypeError, KeyError) as e:\n await logger.aerror(f\"Could not build schema for prompt: {e}\", exc_info=True)\n\n # Combine all components\n combined_instructions = \"\\n\\n\".join(system_components) if system_components else \"\"\n llm_model, self.chat_history, self.tools = await self.get_agent_requirements()\n self.set(\n llm=llm_model,\n tools=self.tools or [],\n chat_history=self.chat_history,\n input_value=self.input_value,\n system_prompt=combined_instructions,\n )\n\n # Create and run structured chat agent\n try:\n structured_agent = self.create_agent_runnable()\n except (NotImplementedError, ValueError, TypeError) as e:\n await logger.aerror(f\"Error with structured chat agent: {e}\")\n raise\n try:\n result = await self.run_agent(structured_agent)\n except (\n ExceptionWithMessageError,\n ValueError,\n TypeError,\n RuntimeError,\n ) as e:\n await logger.aerror(f\"Error with structured agent result: {e}\")\n raise\n # Extract content from structured agent result\n if hasattr(result, \"content\"):\n content = result.content\n elif hasattr(result, \"text\"):\n content = result.text\n else:\n content = str(result)\n\n except (\n ExceptionWithMessageError,\n ValueError,\n TypeError,\n NotImplementedError,\n AttributeError,\n ) as e:\n await logger.aerror(f\"Error with structured chat agent: {e}\")\n # Fallback to regular agent\n content_str = \"No content returned from agent\"\n return Data(data={\"content\": content_str, \"error\": str(e)})\n\n # Process with structured output validation\n try:\n structured_output = await self.build_structured_output_base(content)\n\n # Handle different output formats\n if isinstance(structured_output, list) and structured_output:\n if len(structured_output) == 1:\n return Data(data=structured_output[0])\n return Data(data={\"results\": structured_output})\n if isinstance(structured_output, dict):\n return Data(data=structured_output)\n return Data(data={\"content\": content})\n\n except (ValueError, TypeError) as e:\n await logger.aerror(f\"Error in structured output processing: {e}\")\n return Data(data={\"content\": content, \"error\": str(e)})\n\n async def get_memory_data(self):\n # TODO: This is a temporary fix to avoid message duplication. We should develop a function for this.\n messages = (\n await MemoryComponent(**self.get_base_args())\n .set(\n session_id=self.graph.session_id,\n context_id=self.context_id,\n order=\"Ascending\",\n n_messages=self.n_messages,\n )\n .retrieve_messages()\n )\n return [\n message for message in messages if getattr(message, \"id\", None) != getattr(self.input_value, \"id\", None)\n ]\n\n async def get_llm(self):\n if not isinstance(self.agent_llm, str):\n return self.agent_llm, None\n\n try:\n provider_info = MODEL_PROVIDERS_DICT.get(self.agent_llm)\n if not provider_info:\n msg = f\"Invalid model provider: {self.agent_llm}\"\n raise ValueError(msg)\n\n component_class = provider_info.get(\"component_class\")\n display_name = component_class.display_name\n inputs = provider_info.get(\"inputs\")\n prefix = provider_info.get(\"prefix\", \"\")\n\n return self._build_llm_model(component_class, inputs, prefix), display_name\n\n except (AttributeError, ValueError, TypeError, RuntimeError) as e:\n await logger.aerror(f\"Error building {self.agent_llm} language model: {e!s}\")\n msg = f\"Failed to initialize language model: {e!s}\"\n raise ValueError(msg) from e\n\n def _build_llm_model(self, component, inputs, prefix=\"\"):\n model_kwargs = {}\n for input_ in inputs:\n if hasattr(self, f\"{prefix}{input_.name}\"):\n model_kwargs[input_.name] = getattr(self, f\"{prefix}{input_.name}\")\n return component.set(**model_kwargs).build_model()\n\n def set_component_params(self, component):\n provider_info = MODEL_PROVIDERS_DICT.get(self.agent_llm)\n if provider_info:\n inputs = provider_info.get(\"inputs\")\n prefix = provider_info.get(\"prefix\")\n # Filter out json_mode and only use attributes that exist on this component\n model_kwargs = {}\n for input_ in inputs:\n if hasattr(self, f\"{prefix}{input_.name}\"):\n model_kwargs[input_.name] = getattr(self, f\"{prefix}{input_.name}\")\n\n return component.set(**model_kwargs)\n return component\n\n def delete_fields(self, build_config: dotdict, fields: dict | list[str]) -> None:\n \"\"\"Delete specified fields from build_config.\"\"\"\n for field in fields:\n if build_config is not None and field in build_config:\n build_config.pop(field, None)\n\n def update_input_types(self, build_config: dotdict) -> dotdict:\n \"\"\"Update input types for all fields in build_config.\"\"\"\n for key, value in build_config.items():\n if isinstance(value, dict):\n if value.get(\"input_types\") is None:\n build_config[key][\"input_types\"] = []\n elif hasattr(value, \"input_types\") and value.input_types is None:\n value.input_types = []\n return build_config\n\n async def update_build_config(\n self, build_config: dotdict, field_value: str, field_name: str | None = None\n ) -> dotdict:\n # Iterate over all providers in the MODEL_PROVIDERS_DICT\n # Existing logic for updating build_config\n if field_name in (\"agent_llm\",):\n build_config[\"agent_llm\"][\"value\"] = field_value\n provider_info = MODEL_PROVIDERS_DICT.get(field_value)\n if provider_info:\n component_class = provider_info.get(\"component_class\")\n if component_class and hasattr(component_class, \"update_build_config\"):\n # Call the component class's update_build_config method\n build_config = await update_component_build_config(\n component_class, build_config, field_value, \"model_name\"\n )\n\n provider_configs: dict[str, tuple[dict, list[dict]]] = {\n provider: (\n MODEL_PROVIDERS_DICT[provider][\"fields\"],\n [\n MODEL_PROVIDERS_DICT[other_provider][\"fields\"]\n for other_provider in MODEL_PROVIDERS_DICT\n if other_provider != provider\n ],\n )\n for provider in MODEL_PROVIDERS_DICT\n }\n if field_value in provider_configs:\n fields_to_add, fields_to_delete = provider_configs[field_value]\n\n # Delete fields from other providers\n for fields in fields_to_delete:\n self.delete_fields(build_config, fields)\n\n # Add provider-specific fields\n if field_value == \"OpenAI\" and not any(field in build_config for field in fields_to_add):\n build_config.update(fields_to_add)\n else:\n build_config.update(fields_to_add)\n # Reset input types for agent_llm\n build_config[\"agent_llm\"][\"input_types\"] = []\n build_config[\"agent_llm\"][\"display_name\"] = \"Model Provider\"\n elif field_value == \"connect_other_models\":\n # Delete all provider fields\n self.delete_fields(build_config, ALL_PROVIDER_FIELDS)\n # # Update with custom component\n custom_component = DropdownInput(\n name=\"agent_llm\",\n display_name=\"Language Model\",\n info=\"The provider of the language model that the agent will use to generate responses.\",\n options=[*MODEL_PROVIDERS_LIST],\n real_time_refresh=True,\n refresh_button=False,\n input_types=[\"LanguageModel\"],\n placeholder=\"Awaiting model input.\",\n options_metadata=[MODELS_METADATA[key] for key in MODEL_PROVIDERS_LIST if key in MODELS_METADATA],\n external_options={\n \"fields\": {\n \"data\": {\n \"node\": {\n \"name\": \"connect_other_models\",\n \"display_name\": \"Connect other models\",\n \"icon\": \"CornerDownLeft\",\n },\n }\n },\n },\n )\n build_config.update({\"agent_llm\": custom_component.to_dict()})\n # Update input types for all fields\n build_config = self.update_input_types(build_config)\n\n # Validate required keys\n default_keys = [\n \"code\",\n \"_type\",\n \"agent_llm\",\n \"tools\",\n \"input_value\",\n \"add_current_date_tool\",\n \"system_prompt\",\n \"agent_description\",\n \"max_iterations\",\n \"handle_parsing_errors\",\n \"verbose\",\n ]\n missing_keys = [key for key in default_keys if key not in build_config]\n if missing_keys:\n msg = f\"Missing required keys in build_config: {missing_keys}\"\n raise ValueError(msg)\n if (\n isinstance(self.agent_llm, str)\n and self.agent_llm in MODEL_PROVIDERS_DICT\n and field_name in MODEL_DYNAMIC_UPDATE_FIELDS\n ):\n provider_info = MODEL_PROVIDERS_DICT.get(self.agent_llm)\n if provider_info:\n component_class = provider_info.get(\"component_class\")\n component_class = self.set_component_params(component_class)\n prefix = provider_info.get(\"prefix\")\n if component_class and hasattr(component_class, \"update_build_config\"):\n # Call each component class's update_build_config method\n # remove the prefix from the field_name\n if isinstance(field_name, str) and isinstance(prefix, str):\n field_name_without_prefix = field_name.replace(prefix, \"\")\n else:\n field_name_without_prefix = field_name\n build_config = await update_component_build_config(\n component_class, build_config, field_value, field_name_without_prefix\n )\n return dotdict({k: v.to_dict() if hasattr(v, \"to_dict\") else v for k, v in build_config.items()})\n\n async def _get_tools(self) -> list[Tool]:\n component_toolkit = get_component_toolkit()\n tools_names = self._build_tools_names()\n agent_description = self.get_tool_description()\n # TODO: Agent Description Depreciated Feature to be removed\n description = f\"{agent_description}{tools_names}\"\n\n tools = component_toolkit(component=self).get_tools(\n tool_name=\"Call_Agent\",\n tool_description=description,\n # here we do not use the shared callbacks as we are exposing the agent as a tool\n callbacks=self.get_langchain_callbacks(),\n )\n if hasattr(self, \"tools_metadata\"):\n tools = component_toolkit(component=self, metadata=self.tools_metadata).update_tools_metadata(tools=tools)\n\n return tools\n"
2786
2852
  },
2787
2853
  "context_id": {
2788
2854
  "_input_type": "MessageTextInput",
@@ -2900,6 +2966,7 @@
2900
2966
  "list": false,
2901
2967
  "list_add_label": "Add More",
2902
2968
  "name": "max_output_tokens",
2969
+ "override_skip": false,
2903
2970
  "placeholder": "",
2904
2971
  "required": false,
2905
2972
  "show": false,
@@ -2919,12 +2986,14 @@
2919
2986
  "list": false,
2920
2987
  "list_add_label": "Add More",
2921
2988
  "name": "max_retries",
2989
+ "override_skip": false,
2922
2990
  "placeholder": "",
2923
2991
  "required": false,
2924
2992
  "show": true,
2925
2993
  "title_case": false,
2926
2994
  "tool_mode": false,
2927
2995
  "trace_as_metadata": true,
2996
+ "track_in_telemetry": true,
2928
2997
  "type": "int",
2929
2998
  "value": 5
2930
2999
  },
@@ -2937,10 +3006,11 @@
2937
3006
  "list": false,
2938
3007
  "list_add_label": "Add More",
2939
3008
  "name": "max_tokens",
3009
+ "override_skip": false,
2940
3010
  "placeholder": "",
2941
3011
  "range_spec": {
2942
- "max": 128000,
2943
- "min": 0,
3012
+ "max": 128000.0,
3013
+ "min": 0.0,
2944
3014
  "step": 0.1,
2945
3015
  "step_type": "float"
2946
3016
  },
@@ -2949,6 +3019,7 @@
2949
3019
  "title_case": false,
2950
3020
  "tool_mode": false,
2951
3021
  "trace_as_metadata": true,
3022
+ "track_in_telemetry": true,
2952
3023
  "type": "int",
2953
3024
  "value": ""
2954
3025
  },
@@ -2961,12 +3032,14 @@
2961
3032
  "list": false,
2962
3033
  "list_add_label": "Add More",
2963
3034
  "name": "model_kwargs",
3035
+ "override_skip": false,
2964
3036
  "placeholder": "",
2965
3037
  "required": false,
2966
3038
  "show": true,
2967
3039
  "title_case": false,
2968
3040
  "tool_mode": false,
2969
3041
  "trace_as_input": true,
3042
+ "track_in_telemetry": false,
2970
3043
  "type": "dict",
2971
3044
  "value": {}
2972
3045
  },
@@ -2977,8 +3050,8 @@
2977
3050
  "dialog_inputs": {},
2978
3051
  "display_name": "Model Name",
2979
3052
  "dynamic": false,
3053
+ "external_options": {},
2980
3054
  "info": "To see the model names, first choose a provider. Then, enter your API key and click the refresh button next to the model name.",
2981
- "load_from_db": false,
2982
3055
  "name": "model_name",
2983
3056
  "options": [
2984
3057
  "gpt-4o-mini",
@@ -3003,6 +3076,7 @@
3003
3076
  "o4-mini-high"
3004
3077
  ],
3005
3078
  "options_metadata": [],
3079
+ "override_skip": false,
3006
3080
  "placeholder": "",
3007
3081
  "real_time_refresh": false,
3008
3082
  "required": false,
@@ -3011,8 +3085,9 @@
3011
3085
  "toggle": false,
3012
3086
  "tool_mode": false,
3013
3087
  "trace_as_metadata": true,
3088
+ "track_in_telemetry": true,
3014
3089
  "type": "str",
3015
- "value": "gpt-4.1-mini"
3090
+ "value": "gpt-4o-mini"
3016
3091
  },
3017
3092
  "n_messages": {
3018
3093
  "_input_type": "IntInput",
@@ -3042,12 +3117,14 @@
3042
3117
  "list_add_label": "Add More",
3043
3118
  "load_from_db": false,
3044
3119
  "name": "openai_api_base",
3120
+ "override_skip": false,
3045
3121
  "placeholder": "",
3046
3122
  "required": false,
3047
3123
  "show": true,
3048
3124
  "title_case": false,
3049
3125
  "tool_mode": false,
3050
3126
  "trace_as_metadata": true,
3127
+ "track_in_telemetry": false,
3051
3128
  "type": "str",
3052
3129
  "value": ""
3053
3130
  },
@@ -3123,6 +3200,7 @@
3123
3200
  "list_add_label": "Add More",
3124
3201
  "load_from_db": false,
3125
3202
  "name": "project_id",
3203
+ "override_skip": false,
3126
3204
  "placeholder": "",
3127
3205
  "required": true,
3128
3206
  "show": false,
@@ -3142,12 +3220,14 @@
3142
3220
  "list": false,
3143
3221
  "list_add_label": "Add More",
3144
3222
  "name": "seed",
3223
+ "override_skip": false,
3145
3224
  "placeholder": "",
3146
3225
  "required": false,
3147
3226
  "show": true,
3148
3227
  "title_case": false,
3149
3228
  "tool_mode": false,
3150
3229
  "trace_as_metadata": true,
3230
+ "track_in_telemetry": true,
3151
3231
  "type": "int",
3152
3232
  "value": 1
3153
3233
  },
@@ -3187,10 +3267,11 @@
3187
3267
  "min_label": "",
3188
3268
  "min_label_icon": "",
3189
3269
  "name": "temperature",
3270
+ "override_skip": false,
3190
3271
  "placeholder": "",
3191
3272
  "range_spec": {
3192
- "max": 1,
3193
- "min": 0,
3273
+ "max": 1.0,
3274
+ "min": 0.0,
3194
3275
  "step": 0.01,
3195
3276
  "step_type": "float"
3196
3277
  },
@@ -3201,6 +3282,7 @@
3201
3282
  "slider_input": false,
3202
3283
  "title_case": false,
3203
3284
  "tool_mode": false,
3285
+ "track_in_telemetry": false,
3204
3286
  "type": "slider",
3205
3287
  "value": 0.1
3206
3288
  },
@@ -3213,12 +3295,14 @@
3213
3295
  "list": false,
3214
3296
  "list_add_label": "Add More",
3215
3297
  "name": "timeout",
3298
+ "override_skip": false,
3216
3299
  "placeholder": "",
3217
3300
  "required": false,
3218
3301
  "show": true,
3219
3302
  "title_case": false,
3220
3303
  "tool_mode": false,
3221
3304
  "trace_as_metadata": true,
3305
+ "track_in_telemetry": true,
3222
3306
  "type": "int",
3223
3307
  "value": 700
3224
3308
  },
@@ -4126,7 +4210,7 @@
4126
4210
  "key": "ChatOutput",
4127
4211
  "legacy": false,
4128
4212
  "metadata": {
4129
- "code_hash": "cae45e2d53f6",
4213
+ "code_hash": "8c87e536cca4",
4130
4214
  "dependencies": {
4131
4215
  "dependencies": [
4132
4216
  {
@@ -4202,7 +4286,7 @@
4202
4286
  "show": true,
4203
4287
  "title_case": false,
4204
4288
  "type": "code",
4205
- "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"
4289
+ "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 # Preserve existing session_id from the incoming message if it exists\n existing_session_id = message.session_id\n else:\n message = Message(text=text)\n existing_session_id = None\n\n # Set message properties\n message.sender = self.sender\n message.sender_name = self.sender_name\n # Preserve session_id from incoming message, or use component/graph session_id\n message.session_id = (\n self.session_id or existing_session_id or (self.graph.session_id if hasattr(self, \"graph\") else None) or \"\"\n )\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"
4206
4290
  },
4207
4291
  "context_id": {
4208
4292
  "_input_type": "MessageTextInput",