langflow-base-nightly 1.7.0.dev30__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 (3570) hide show
  1. langflow/__main__.py +0 -1
  2. langflow/api/v1/endpoints.py +8 -0
  3. langflow/api/v1/files.py +6 -23
  4. langflow/frontend/assets/SlackIcon-BOQlO356.js +1 -0
  5. langflow/frontend/assets/Wikipedia-CvV_a9pP.js +1 -0
  6. langflow/frontend/assets/Wolfram-Bga5wGes.js +1 -0
  7. langflow/frontend/assets/a-arrow-down-B_Koo4zC.js +6 -0
  8. langflow/frontend/assets/a-arrow-up-BW0QcKsK.js +6 -0
  9. langflow/frontend/assets/a-large-small-ucjiZQiK.js +6 -0
  10. langflow/frontend/assets/accessibility-EcciPBwR.js +6 -0
  11. langflow/frontend/assets/activity-CrKqfQD-.js +6 -0
  12. langflow/frontend/assets/air-vent-BCa3b23U.js +6 -0
  13. langflow/frontend/assets/airplay-DCfF7SZV.js +6 -0
  14. langflow/frontend/assets/alarm-clock-RzlstqsJ.js +6 -0
  15. langflow/frontend/assets/alarm-clock-check-CwMgmNNJ.js +6 -0
  16. langflow/frontend/assets/alarm-clock-minus-BflHkQiF.js +6 -0
  17. langflow/frontend/assets/alarm-clock-off-CzEgHMBL.js +6 -0
  18. langflow/frontend/assets/alarm-clock-plus-Ds6zhqOK.js +6 -0
  19. langflow/frontend/assets/alarm-smoke-BcbzGiU2.js +6 -0
  20. langflow/frontend/assets/album-DzmD72fk.js +6 -0
  21. langflow/frontend/assets/align-center-BqY2xTlr.js +6 -0
  22. langflow/frontend/assets/align-center-horizontal-DmkABCrT.js +6 -0
  23. langflow/frontend/assets/align-center-vertical-Cj0rHV9y.js +6 -0
  24. langflow/frontend/assets/align-end-horizontal-sdhnIfXs.js +6 -0
  25. langflow/frontend/assets/align-end-vertical-Bo2dLk-T.js +6 -0
  26. langflow/frontend/assets/align-horizontal-distribute-center-DaUEjvIz.js +6 -0
  27. langflow/frontend/assets/align-horizontal-distribute-end-C0JiyIDc.js +6 -0
  28. langflow/frontend/assets/align-horizontal-distribute-start-BfITZIWd.js +6 -0
  29. langflow/frontend/assets/align-horizontal-justify-center-D1pbi0RJ.js +6 -0
  30. langflow/frontend/assets/align-horizontal-justify-end-Bi8rznCF.js +6 -0
  31. langflow/frontend/assets/align-horizontal-justify-start-CAdXCeLI.js +6 -0
  32. langflow/frontend/assets/align-horizontal-space-around-B3Uxws7g.js +6 -0
  33. langflow/frontend/assets/align-horizontal-space-between-Bwnxvzpe.js +6 -0
  34. langflow/frontend/assets/align-justify-C_FXp8AT.js +6 -0
  35. langflow/frontend/assets/align-left-7TpMg8pl.js +6 -0
  36. langflow/frontend/assets/align-right-DRccwkAH.js +6 -0
  37. langflow/frontend/assets/align-start-horizontal-4MaozdO4.js +6 -0
  38. langflow/frontend/assets/align-start-vertical-Ch-B9crm.js +6 -0
  39. langflow/frontend/assets/align-vertical-distribute-center-CKVBRrV6.js +6 -0
  40. langflow/frontend/assets/align-vertical-distribute-end-7MuPGlDS.js +6 -0
  41. langflow/frontend/assets/align-vertical-distribute-start-C1Qb1d3a.js +6 -0
  42. langflow/frontend/assets/align-vertical-justify-center-DC3rZBQB.js +6 -0
  43. langflow/frontend/assets/align-vertical-justify-end-fXgDna2a.js +6 -0
  44. langflow/frontend/assets/align-vertical-justify-start-DXcZjJBN.js +6 -0
  45. langflow/frontend/assets/align-vertical-space-around-Dg-JAOks.js +6 -0
  46. langflow/frontend/assets/align-vertical-space-between-BDMxqGqU.js +6 -0
  47. langflow/frontend/assets/ambulance-0Ecya-5l.js +6 -0
  48. langflow/frontend/assets/ampersand-CRcGXl3f.js +6 -0
  49. langflow/frontend/assets/ampersands-D0Idu38G.js +6 -0
  50. langflow/frontend/assets/amphora-DFGgoZY2.js +6 -0
  51. langflow/frontend/assets/anchor-u_3EgmNz.js +6 -0
  52. langflow/frontend/assets/angry-BP4SXdje.js +6 -0
  53. langflow/frontend/assets/annoyed-BuyRUwL5.js +6 -0
  54. langflow/frontend/assets/antenna-Cu3RwYeO.js +6 -0
  55. langflow/frontend/assets/anvil-9I8-Jyd_.js +6 -0
  56. langflow/frontend/assets/aperture-tpqGqn0E.js +6 -0
  57. langflow/frontend/assets/app-window-DKMrNJ9R.js +6 -0
  58. langflow/frontend/assets/app-window-mac-BZfh_1Ca.js +6 -0
  59. langflow/frontend/assets/apple-Bs8lgUba.js +6 -0
  60. langflow/frontend/assets/archive-DhJh-qyi.js +6 -0
  61. langflow/frontend/assets/archive-restore-c0ELxPGF.js +6 -0
  62. langflow/frontend/assets/archive-x-ANXtkJa1.js +6 -0
  63. langflow/frontend/assets/armchair-CObU7vzV.js +6 -0
  64. langflow/frontend/assets/arrow-big-down-CIWHcN6F.js +6 -0
  65. langflow/frontend/assets/arrow-big-down-dash-f5CbthPd.js +6 -0
  66. langflow/frontend/assets/arrow-big-left-BLKnRDB5.js +6 -0
  67. langflow/frontend/assets/arrow-big-left-dash-tcicsnbc.js +6 -0
  68. langflow/frontend/assets/arrow-big-right-BJyq-oJl.js +6 -0
  69. langflow/frontend/assets/arrow-big-right-dash-uGMAeogB.js +6 -0
  70. langflow/frontend/assets/arrow-big-up-DBJxx5Ie.js +6 -0
  71. langflow/frontend/assets/arrow-big-up-dash-BP_3-1d0.js +6 -0
  72. langflow/frontend/assets/arrow-down-0-1-C6oaXru6.js +6 -0
  73. langflow/frontend/assets/arrow-down-1-0-BZ_RaFIU.js +6 -0
  74. langflow/frontend/assets/arrow-down-O6BalwD_.js +6 -0
  75. langflow/frontend/assets/arrow-down-a-z-BJzf6yG_.js +6 -0
  76. langflow/frontend/assets/arrow-down-from-line-CxslNyRj.js +6 -0
  77. langflow/frontend/assets/arrow-down-left-CeKNd619.js +6 -0
  78. langflow/frontend/assets/arrow-down-narrow-wide-DLTUuqug.js +6 -0
  79. langflow/frontend/assets/arrow-down-right-CluTVNGc.js +6 -0
  80. langflow/frontend/assets/arrow-down-to-dot-BpL9xbQL.js +6 -0
  81. langflow/frontend/assets/arrow-down-to-line-Q5_t-jKM.js +6 -0
  82. langflow/frontend/assets/arrow-down-up-bgmdb3Wx.js +6 -0
  83. langflow/frontend/assets/arrow-down-wide-narrow-Du7kmgmL.js +6 -0
  84. langflow/frontend/assets/arrow-down-z-a-ZM-7ncmX.js +6 -0
  85. langflow/frontend/assets/arrow-left-Do3rGA2c.js +6 -0
  86. langflow/frontend/assets/arrow-left-from-line-HII84i9N.js +6 -0
  87. langflow/frontend/assets/arrow-left-right-DMQGX7x6.js +6 -0
  88. langflow/frontend/assets/arrow-left-to-line-DzvFhsi9.js +6 -0
  89. langflow/frontend/assets/arrow-right-from-line-BH4PYlWN.js +6 -0
  90. langflow/frontend/assets/arrow-right-left-CRuNAmnY.js +6 -0
  91. langflow/frontend/assets/arrow-right-to-line-U0DcRZ7E.js +6 -0
  92. langflow/frontend/assets/arrow-right-uxYoEv5W.js +6 -0
  93. langflow/frontend/assets/arrow-up-0-1-BwyOab23.js +6 -0
  94. langflow/frontend/assets/arrow-up-1-0-DCDvuERw.js +6 -0
  95. langflow/frontend/assets/arrow-up-CJFsk1yg.js +6 -0
  96. langflow/frontend/assets/arrow-up-a-z-CraB41hK.js +6 -0
  97. langflow/frontend/assets/arrow-up-down-rxslEmFP.js +6 -0
  98. langflow/frontend/assets/arrow-up-from-dot-BSfZtmAw.js +6 -0
  99. langflow/frontend/assets/arrow-up-from-line-tGpF8MZY.js +6 -0
  100. langflow/frontend/assets/arrow-up-left-DL9qGaCK.js +6 -0
  101. langflow/frontend/assets/arrow-up-narrow-wide-Bjpm-Pkz.js +6 -0
  102. langflow/frontend/assets/arrow-up-right-DlVTKyGr.js +6 -0
  103. langflow/frontend/assets/arrow-up-to-line-BAwhtA8F.js +6 -0
  104. langflow/frontend/assets/arrow-up-wide-narrow-C4r2omSV.js +6 -0
  105. langflow/frontend/assets/arrow-up-z-a-DTIPy5PJ.js +6 -0
  106. langflow/frontend/assets/arrows-up-from-line-D5VOhVn8.js +6 -0
  107. langflow/frontend/assets/asterisk-DN2Ip90W.js +6 -0
  108. langflow/frontend/assets/at-sign-BuspTGmp.js +6 -0
  109. langflow/frontend/assets/atom-5bKF2NZ7.js +6 -0
  110. langflow/frontend/assets/audio-lines-B4HV5hqs.js +6 -0
  111. langflow/frontend/assets/audio-waveform-Bs0_mKXf.js +6 -0
  112. langflow/frontend/assets/award-ERXFasNm.js +6 -0
  113. langflow/frontend/assets/axe-DXkCgML3.js +6 -0
  114. langflow/frontend/assets/axis-3d-DJNK8yXM.js +6 -0
  115. langflow/frontend/assets/baby-u4oVd8wc.js +6 -0
  116. langflow/frontend/assets/backpack-CZF5vzlR.js +6 -0
  117. langflow/frontend/assets/badge-alert-DhQ4OPQy.js +6 -0
  118. langflow/frontend/assets/badge-cent-D8jyMecQ.js +6 -0
  119. langflow/frontend/assets/badge-check-DsTtdwFl.js +6 -0
  120. langflow/frontend/assets/badge-cn3EqMgo.js +6 -0
  121. langflow/frontend/assets/badge-dollar-sign-CdWbjk0S.js +6 -0
  122. langflow/frontend/assets/badge-euro-CiQKiRt_.js +6 -0
  123. langflow/frontend/assets/badge-help-DzxZ6H68.js +6 -0
  124. langflow/frontend/assets/badge-indian-rupee-C6kO8FcO.js +6 -0
  125. langflow/frontend/assets/badge-info-CGnJeXcE.js +6 -0
  126. langflow/frontend/assets/badge-japanese-yen-BCyPN0Yz.js +6 -0
  127. langflow/frontend/assets/badge-minus-C1O31ocy.js +6 -0
  128. langflow/frontend/assets/badge-percent-q7bzdc5n.js +6 -0
  129. langflow/frontend/assets/badge-plus-D1H9IOFy.js +6 -0
  130. langflow/frontend/assets/badge-pound-sterling-BnflvS5N.js +6 -0
  131. langflow/frontend/assets/badge-russian-ruble-P4mkajQD.js +6 -0
  132. langflow/frontend/assets/badge-swiss-franc-BZJ_0RgY.js +6 -0
  133. langflow/frontend/assets/badge-x-bp5SwFS2.js +6 -0
  134. langflow/frontend/assets/baggage-claim-B3YG4UmA.js +6 -0
  135. langflow/frontend/assets/ban-CSZZ7bsv.js +6 -0
  136. langflow/frontend/assets/banana-CHgDoLwk.js +6 -0
  137. langflow/frontend/assets/bandage-C1FREvZ4.js +6 -0
  138. langflow/frontend/assets/banknote-arrow-down-Csvstn4a.js +6 -0
  139. langflow/frontend/assets/banknote-arrow-up-DqwiPgA6.js +6 -0
  140. langflow/frontend/assets/banknote-jon6y9PD.js +6 -0
  141. langflow/frontend/assets/banknote-x-WSawOQon.js +6 -0
  142. langflow/frontend/assets/barcode-BhaAUyyc.js +6 -0
  143. langflow/frontend/assets/baseline-MvPbqNww.js +6 -0
  144. langflow/frontend/assets/bath-DBo3s-Af.js +6 -0
  145. langflow/frontend/assets/battery-CXCkDUHX.js +6 -0
  146. langflow/frontend/assets/battery-charging-BKPcSY42.js +6 -0
  147. langflow/frontend/assets/battery-full-Cs9r_Y8s.js +6 -0
  148. langflow/frontend/assets/battery-low-DYAypDh9.js +6 -0
  149. langflow/frontend/assets/battery-medium-DlNOSChI.js +6 -0
  150. langflow/frontend/assets/battery-plus-CsCAC3H4.js +6 -0
  151. langflow/frontend/assets/battery-warning-Cmi4WSuJ.js +6 -0
  152. langflow/frontend/assets/beaker-ChyZj5d3.js +6 -0
  153. langflow/frontend/assets/bean-Bqsu084y.js +6 -0
  154. langflow/frontend/assets/bean-off-BDUc4tSe.js +6 -0
  155. langflow/frontend/assets/bed-dQVfr-Ho.js +6 -0
  156. langflow/frontend/assets/bed-double-C6QqEpJA.js +6 -0
  157. langflow/frontend/assets/bed-single-DWwIEJmE.js +6 -0
  158. langflow/frontend/assets/beef-JNKPj4G8.js +6 -0
  159. langflow/frontend/assets/beer-BSZsVh-k.js +6 -0
  160. langflow/frontend/assets/beer-off-BM1B3G3I.js +6 -0
  161. langflow/frontend/assets/bell-D7GwbPPk.js +6 -0
  162. langflow/frontend/assets/bell-dot-CnUV3T7C.js +6 -0
  163. langflow/frontend/assets/bell-electric-ics516at.js +6 -0
  164. langflow/frontend/assets/bell-minus-BET7zm6v.js +6 -0
  165. langflow/frontend/assets/bell-off-ClQbsoKo.js +6 -0
  166. langflow/frontend/assets/bell-plus-Rel_-C6Y.js +6 -0
  167. langflow/frontend/assets/bell-ring-BWWsV6vF.js +6 -0
  168. langflow/frontend/assets/between-horizontal-end-BXV8oPGu.js +6 -0
  169. langflow/frontend/assets/between-horizontal-start-BACB3IrD.js +6 -0
  170. langflow/frontend/assets/between-vertical-end-BsFQGh17.js +6 -0
  171. langflow/frontend/assets/between-vertical-start-7J4pzEhA.js +6 -0
  172. langflow/frontend/assets/biceps-flexed-Bdhkhn_4.js +6 -0
  173. langflow/frontend/assets/bike-NtOcsgzm.js +6 -0
  174. langflow/frontend/assets/binary-Dvs9I_Sw.js +6 -0
  175. langflow/frontend/assets/binoculars-BSt3UCjO.js +6 -0
  176. langflow/frontend/assets/biohazard-CECkmv5N.js +6 -0
  177. langflow/frontend/assets/bird-BzsnrUQJ.js +6 -0
  178. langflow/frontend/assets/bitcoin-DLnw3YtN.js +6 -0
  179. langflow/frontend/assets/blend-DrQpkrEx.js +6 -0
  180. langflow/frontend/assets/blinds-kjfaXyS8.js +6 -0
  181. langflow/frontend/assets/blocks-BeZist40.js +6 -0
  182. langflow/frontend/assets/bluetooth-Cz3WJdYT.js +6 -0
  183. langflow/frontend/assets/bluetooth-connected-BfZg0P1m.js +6 -0
  184. langflow/frontend/assets/bluetooth-off-DS3lcwZY.js +6 -0
  185. langflow/frontend/assets/bluetooth-searching-BgAw_NlU.js +6 -0
  186. langflow/frontend/assets/bold-BOuOCnrD.js +6 -0
  187. langflow/frontend/assets/bolt-NIua3Aic.js +6 -0
  188. langflow/frontend/assets/bomb-D8F0XE6x.js +6 -0
  189. langflow/frontend/assets/bone-Bh21fHgx.js +6 -0
  190. langflow/frontend/assets/book-79Z3Ij2T.js +6 -0
  191. langflow/frontend/assets/book-a-Belk865w.js +6 -0
  192. langflow/frontend/assets/book-audio-C4UE6uHN.js +6 -0
  193. langflow/frontend/assets/book-check-CQVoCFj2.js +6 -0
  194. langflow/frontend/assets/book-copy-BkFsD5Ny.js +6 -0
  195. langflow/frontend/assets/book-dashed-CCLW_PVv.js +6 -0
  196. langflow/frontend/assets/book-down-Cjl88VJ4.js +6 -0
  197. langflow/frontend/assets/book-headphones-B8rORwD-.js +6 -0
  198. langflow/frontend/assets/book-heart-CKo74Zsz.js +6 -0
  199. langflow/frontend/assets/book-image-_o-95yrF.js +6 -0
  200. langflow/frontend/assets/book-key-BrmADg8W.js +6 -0
  201. langflow/frontend/assets/book-lock-BZ4NzFdI.js +6 -0
  202. langflow/frontend/assets/book-marked-Bq1QiXYP.js +6 -0
  203. langflow/frontend/assets/book-minus-BBSwScRq.js +6 -0
  204. langflow/frontend/assets/book-open-DoTrKi70.js +6 -0
  205. langflow/frontend/assets/book-open-check-DL3MtQO4.js +6 -0
  206. langflow/frontend/assets/book-open-text-CCAuud2M.js +6 -0
  207. langflow/frontend/assets/book-plus-CEt0oBWi.js +6 -0
  208. langflow/frontend/assets/book-text-Br88GleF.js +6 -0
  209. langflow/frontend/assets/book-type-CPBQrait.js +6 -0
  210. langflow/frontend/assets/book-up-2-CTEs4KyT.js +6 -0
  211. langflow/frontend/assets/book-up-D-jB3oPk.js +6 -0
  212. langflow/frontend/assets/book-user--_1r_Or_.js +6 -0
  213. langflow/frontend/assets/book-x-BvQ8Q403.js +6 -0
  214. langflow/frontend/assets/bookmark-D8bmrKHV.js +6 -0
  215. langflow/frontend/assets/bookmark-check-d5al9KE4.js +6 -0
  216. langflow/frontend/assets/bookmark-minus-Coo4tpqY.js +6 -0
  217. langflow/frontend/assets/bookmark-plus-BZueGYLA.js +6 -0
  218. langflow/frontend/assets/bookmark-x-CjweFRqF.js +6 -0
  219. langflow/frontend/assets/boom-box-CT9mjsGg.js +6 -0
  220. langflow/frontend/assets/bot-BvNYj2Em.js +6 -0
  221. langflow/frontend/assets/bot-message-square-C3b0lgAa.js +6 -0
  222. langflow/frontend/assets/bot-off-CNWibg0a.js +6 -0
  223. langflow/frontend/assets/bow-arrow-BpmZT710.js +6 -0
  224. langflow/frontend/assets/box-jE03R8vb.js +6 -0
  225. langflow/frontend/assets/boxes-DhAOofAj.js +6 -0
  226. langflow/frontend/assets/braces-DFeV0p_s.js +6 -0
  227. langflow/frontend/assets/brackets-C5rVD6F8.js +6 -0
  228. langflow/frontend/assets/brain-RoQWszoZ.js +6 -0
  229. langflow/frontend/assets/brain-circuit-DI4twAqn.js +6 -0
  230. langflow/frontend/assets/brain-cog-Cos6AV-N.js +6 -0
  231. langflow/frontend/assets/brick-wall-BMzpXRNz.js +6 -0
  232. langflow/frontend/assets/brick-wall-fire-BtON7KwC.js +6 -0
  233. langflow/frontend/assets/briefcase-5PT5EUuQ.js +6 -0
  234. langflow/frontend/assets/briefcase-business-CEfC1-xT.js +6 -0
  235. langflow/frontend/assets/briefcase-conveyor-belt-UjTPM-my.js +6 -0
  236. langflow/frontend/assets/briefcase-medical-DI03zjJ8.js +6 -0
  237. langflow/frontend/assets/bring-to-front-DujgdQDb.js +6 -0
  238. langflow/frontend/assets/brush-ZCcdjTGd.js +6 -0
  239. langflow/frontend/assets/bubbles-CTYDu5b8.js +6 -0
  240. langflow/frontend/assets/bug-BKQqqOLC.js +6 -0
  241. langflow/frontend/assets/bug-off-MfMziADH.js +6 -0
  242. langflow/frontend/assets/bug-play-ChPFwfin.js +6 -0
  243. langflow/frontend/assets/building-2-DRWSH-b1.js +6 -0
  244. langflow/frontend/assets/building-eJWxdKTm.js +6 -0
  245. langflow/frontend/assets/bus-aIjQlpmA.js +6 -0
  246. langflow/frontend/assets/bus-front-Ct-HjDrK.js +6 -0
  247. langflow/frontend/assets/cable-D1uoqxh4.js +6 -0
  248. langflow/frontend/assets/cable-car-KCbEwK6F.js +6 -0
  249. langflow/frontend/assets/cake-ZlgsaGy3.js +6 -0
  250. langflow/frontend/assets/cake-slice-BBlLsWqG.js +6 -0
  251. langflow/frontend/assets/calculator-DxFUMVA1.js +6 -0
  252. langflow/frontend/assets/calendar-1-LTEq6nY8.js +6 -0
  253. langflow/frontend/assets/calendar-CmArxlsV.js +6 -0
  254. langflow/frontend/assets/calendar-arrow-down-L6VhYSn7.js +6 -0
  255. langflow/frontend/assets/calendar-arrow-up-D7iaQLx_.js +6 -0
  256. langflow/frontend/assets/calendar-check-2-GbENDIuY.js +6 -0
  257. langflow/frontend/assets/calendar-check-BLIpkp1q.js +6 -0
  258. langflow/frontend/assets/calendar-clock-DyNwiaNf.js +6 -0
  259. langflow/frontend/assets/calendar-cog-uPPt94Tm.js +6 -0
  260. langflow/frontend/assets/calendar-days-Cr5VKida.js +6 -0
  261. langflow/frontend/assets/calendar-fold-jdwJ62nV.js +6 -0
  262. langflow/frontend/assets/calendar-heart-B80_6cw1.js +6 -0
  263. langflow/frontend/assets/calendar-minus-2-D4z1Q0bq.js +6 -0
  264. langflow/frontend/assets/calendar-minus-Da-5vKpL.js +6 -0
  265. langflow/frontend/assets/calendar-off-Dy8YC5ds.js +6 -0
  266. langflow/frontend/assets/calendar-plus-2-2JG19xhW.js +6 -0
  267. langflow/frontend/assets/calendar-plus-7Ivivc9T.js +6 -0
  268. langflow/frontend/assets/calendar-range-By26q6f8.js +6 -0
  269. langflow/frontend/assets/calendar-search-BcOFYIrh.js +6 -0
  270. langflow/frontend/assets/calendar-sync-B2DW5wT7.js +6 -0
  271. langflow/frontend/assets/calendar-x-2-BMD2-vyV.js +6 -0
  272. langflow/frontend/assets/calendar-x-Do6-dM0d.js +6 -0
  273. langflow/frontend/assets/camera-off-BBSPnkdp.js +6 -0
  274. langflow/frontend/assets/camera-qiLsmLVX.js +6 -0
  275. langflow/frontend/assets/candy-B4BA10jH.js +6 -0
  276. langflow/frontend/assets/candy-cane-D6HA9NXh.js +6 -0
  277. langflow/frontend/assets/candy-off-Dy-BPQ3-.js +6 -0
  278. langflow/frontend/assets/cannabis-C6iAy2t3.js +6 -0
  279. langflow/frontend/assets/captions-CaUc7kgv.js +6 -0
  280. langflow/frontend/assets/captions-off-BA5wDWBJ.js +6 -0
  281. langflow/frontend/assets/car-DIrU0E9x.js +6 -0
  282. langflow/frontend/assets/car-front-Bxxk-ePn.js +6 -0
  283. langflow/frontend/assets/car-taxi-front-O8Ln1WOG.js +6 -0
  284. langflow/frontend/assets/caravan-B5DRoIlD.js +6 -0
  285. langflow/frontend/assets/carrot-CX59CIL1.js +6 -0
  286. langflow/frontend/assets/case-lower-DmA28Tv-.js +6 -0
  287. langflow/frontend/assets/case-sensitive-DdnZJ1Wr.js +6 -0
  288. langflow/frontend/assets/case-upper-ClpTkfcs.js +6 -0
  289. langflow/frontend/assets/cassette-tape-Ce1Cb2kK.js +6 -0
  290. langflow/frontend/assets/cast-D93-WQFe.js +6 -0
  291. langflow/frontend/assets/castle-BkqOGRz_.js +6 -0
  292. langflow/frontend/assets/cat-C-MhRjSD.js +6 -0
  293. langflow/frontend/assets/cctv-De3VPp9M.js +6 -0
  294. langflow/frontend/assets/chart-area-YHglV2II.js +6 -0
  295. langflow/frontend/assets/chart-bar-C6UDynnR.js +6 -0
  296. langflow/frontend/assets/chart-bar-big-Db7EGc7P.js +6 -0
  297. langflow/frontend/assets/chart-bar-decreasing-CKPa7Uo0.js +6 -0
  298. langflow/frontend/assets/chart-bar-increasing-CQzxJU-D.js +6 -0
  299. langflow/frontend/assets/chart-bar-stacked-DLscWW51.js +6 -0
  300. langflow/frontend/assets/chart-candlestick-BHuxivxM.js +6 -0
  301. langflow/frontend/assets/chart-column-BMQ1JA7J.js +6 -0
  302. langflow/frontend/assets/chart-column-big-KZT--AfO.js +6 -0
  303. langflow/frontend/assets/chart-column-decreasing-w6rYMD6C.js +6 -0
  304. langflow/frontend/assets/chart-column-increasing-BaXR6GQN.js +6 -0
  305. langflow/frontend/assets/chart-column-stacked-DoYR8Wxh.js +6 -0
  306. langflow/frontend/assets/chart-gantt-CP25M7FP.js +6 -0
  307. langflow/frontend/assets/chart-line-DMP0DrGa.js +6 -0
  308. langflow/frontend/assets/chart-network-D0t4_t7d.js +6 -0
  309. langflow/frontend/assets/chart-no-axes-column-DL9foSpP.js +6 -0
  310. langflow/frontend/assets/chart-no-axes-column-decreasing-wbMG3NAW.js +6 -0
  311. langflow/frontend/assets/chart-no-axes-column-increasing-tmUtkpor.js +6 -0
  312. langflow/frontend/assets/chart-no-axes-combined-ClDvWMmg.js +6 -0
  313. langflow/frontend/assets/chart-no-axes-gantt-BjARKI4S.js +6 -0
  314. langflow/frontend/assets/chart-pie-CCIHZ2cO.js +6 -0
  315. langflow/frontend/assets/chart-scatter-CualKh0G.js +6 -0
  316. langflow/frontend/assets/chart-spline-BiiudplP.js +6 -0
  317. langflow/frontend/assets/check-check-CBIs7R6R.js +6 -0
  318. langflow/frontend/assets/chef-hat-D1bxZ1mi.js +6 -0
  319. langflow/frontend/assets/cherry-BNILkH9j.js +6 -0
  320. langflow/frontend/assets/chevron-first-BgHg7Xjz.js +6 -0
  321. langflow/frontend/assets/chevron-last-BXqCydlK.js +6 -0
  322. langflow/frontend/assets/chevron-left-UaKSE6kU.js +6 -0
  323. langflow/frontend/assets/chevron-right-BFuZnFiM.js +6 -0
  324. langflow/frontend/assets/chevrons-down-D29MOzAj.js +6 -0
  325. langflow/frontend/assets/chevrons-down-up-BQTJeW2F.js +6 -0
  326. langflow/frontend/assets/chevrons-left-BIPYPgOF.js +6 -0
  327. langflow/frontend/assets/chevrons-left-right-C5acb8ie.js +6 -0
  328. langflow/frontend/assets/chevrons-left-right-ellipsis-DpecOGzS.js +6 -0
  329. langflow/frontend/assets/chevrons-right-BcN6vFa8.js +6 -0
  330. langflow/frontend/assets/chevrons-right-left-bjzgxMeQ.js +6 -0
  331. langflow/frontend/assets/chevrons-up-BNLxP5_t.js +6 -0
  332. langflow/frontend/assets/chrome-BacOBjwM.js +6 -0
  333. langflow/frontend/assets/church-BVt3CImR.js +6 -0
  334. langflow/frontend/assets/cigarette-m9Dmm9iv.js +6 -0
  335. langflow/frontend/assets/cigarette-off-xYWmmKBt.js +6 -0
  336. langflow/frontend/assets/circle-alert-Bq8GZGSu.js +6 -0
  337. langflow/frontend/assets/circle-arrow-down-C5Y6zD5M.js +6 -0
  338. langflow/frontend/assets/circle-arrow-left-BaobtaSG.js +6 -0
  339. langflow/frontend/assets/circle-arrow-out-down-left-D7kDp-T7.js +6 -0
  340. langflow/frontend/assets/circle-arrow-out-down-right-DObcNvRG.js +6 -0
  341. langflow/frontend/assets/circle-arrow-out-up-left-zs2tgDrK.js +6 -0
  342. langflow/frontend/assets/circle-arrow-out-up-right-zma3QBR1.js +6 -0
  343. langflow/frontend/assets/circle-arrow-right-Cx5EL6Dr.js +6 -0
  344. langflow/frontend/assets/circle-arrow-up-oiHYd-z3.js +6 -0
  345. langflow/frontend/assets/circle-check-DrSpk050.js +6 -0
  346. langflow/frontend/assets/circle-check-big-BGoa_XZ8.js +6 -0
  347. langflow/frontend/assets/circle-chevron-down-EgS7rNu4.js +6 -0
  348. langflow/frontend/assets/circle-chevron-left-Crqe3Dn5.js +6 -0
  349. langflow/frontend/assets/circle-chevron-right-wTxOu2U9.js +6 -0
  350. langflow/frontend/assets/circle-chevron-up-DCKx1dyP.js +6 -0
  351. langflow/frontend/assets/circle-dashed-DBXMBes_.js +6 -0
  352. langflow/frontend/assets/circle-divide-BpHxivF-.js +6 -0
  353. langflow/frontend/assets/circle-dollar-sign-RnsctHA0.js +6 -0
  354. langflow/frontend/assets/circle-dot-BtNTy8C4.js +6 -0
  355. langflow/frontend/assets/circle-dot-dashed-DEmE0J08.js +6 -0
  356. langflow/frontend/assets/circle-ellipsis-Bkj1e7uv.js +6 -0
  357. langflow/frontend/assets/circle-equal-DNdIf-_a.js +6 -0
  358. langflow/frontend/assets/circle-fading-arrow-up-CAFKxCeJ.js +6 -0
  359. langflow/frontend/assets/circle-fading-plus-Cij3QL3d.js +6 -0
  360. langflow/frontend/assets/circle-gauge-DTLJD5Fh.js +6 -0
  361. langflow/frontend/assets/circle-help-DTEN5hW3.js +6 -0
  362. langflow/frontend/assets/circle-minus-DicXdsqF.js +6 -0
  363. langflow/frontend/assets/circle-off-BhyXEGUX.js +6 -0
  364. langflow/frontend/assets/circle-parking-DuquDgdN.js +6 -0
  365. langflow/frontend/assets/circle-parking-off-BL6lfqAk.js +6 -0
  366. langflow/frontend/assets/circle-pause-DNojPJgy.js +6 -0
  367. langflow/frontend/assets/circle-percent-CZvCQ-NF.js +6 -0
  368. langflow/frontend/assets/circle-play-Dp09t3Aw.js +6 -0
  369. langflow/frontend/assets/circle-plus-DpzKFXhV.js +6 -0
  370. langflow/frontend/assets/circle-power-DzJF6FUe.js +6 -0
  371. langflow/frontend/assets/circle-slash-2-OjBndXt5.js +6 -0
  372. langflow/frontend/assets/circle-slash-CkVSIalR.js +6 -0
  373. langflow/frontend/assets/circle-small-BYaBQDGZ.js +6 -0
  374. langflow/frontend/assets/circle-stop-Bpodmhy6.js +6 -0
  375. langflow/frontend/assets/circle-user-CZ5X9Jgl.js +6 -0
  376. langflow/frontend/assets/circle-user-round-BmHnWhJc.js +6 -0
  377. langflow/frontend/assets/circuit-board-Ds_l5YcN.js +6 -0
  378. langflow/frontend/assets/citrus-CB2GCYHW.js +6 -0
  379. langflow/frontend/assets/clapperboard-CybBSQEP.js +6 -0
  380. langflow/frontend/assets/clipboard-BQbDHfvY.js +6 -0
  381. langflow/frontend/assets/clipboard-check-BdYU2vyf.js +6 -0
  382. langflow/frontend/assets/clipboard-copy-B_g47-5U.js +6 -0
  383. langflow/frontend/assets/clipboard-list-C0XYT_1Z.js +6 -0
  384. langflow/frontend/assets/clipboard-minus-DVe_eR96.js +6 -0
  385. langflow/frontend/assets/clipboard-paste-XQxk9AP5.js +6 -0
  386. langflow/frontend/assets/clipboard-pen-DlxdZzXK.js +6 -0
  387. langflow/frontend/assets/clipboard-pen-line-D_8TgOPp.js +6 -0
  388. langflow/frontend/assets/clipboard-plus-B_W2nvbm.js +6 -0
  389. langflow/frontend/assets/clipboard-type-DgHcy-Su.js +6 -0
  390. langflow/frontend/assets/clipboard-x-T3vLuKB0.js +6 -0
  391. langflow/frontend/assets/clock-1-BUUVqXI3.js +6 -0
  392. langflow/frontend/assets/clock-10-BGua-Djj.js +6 -0
  393. langflow/frontend/assets/clock-11-B_8sbMe8.js +6 -0
  394. langflow/frontend/assets/clock-12-Bbk-lr05.js +6 -0
  395. langflow/frontend/assets/clock-2-DDJksOgQ.js +6 -0
  396. langflow/frontend/assets/clock-3-D29vBKRG.js +6 -0
  397. langflow/frontend/assets/clock-4-CRL15e9F.js +6 -0
  398. langflow/frontend/assets/clock-5-CSfuZfPS.js +6 -0
  399. langflow/frontend/assets/clock-6-5NOuvTcP.js +6 -0
  400. langflow/frontend/assets/clock-7-O6m416fR.js +6 -0
  401. langflow/frontend/assets/clock-8-Bed-F6H0.js +6 -0
  402. langflow/frontend/assets/clock-9-CYXVCX9R.js +6 -0
  403. langflow/frontend/assets/clock-DszM8mN8.js +6 -0
  404. langflow/frontend/assets/clock-alert-C1ncYl_K.js +6 -0
  405. langflow/frontend/assets/clock-arrow-down-CmA2oLxL.js +6 -0
  406. langflow/frontend/assets/clock-arrow-up-B3lJPTZl.js +6 -0
  407. langflow/frontend/assets/clock-fading-eGYBDqOA.js +6 -0
  408. langflow/frontend/assets/cloud-C1c92_G7.js +6 -0
  409. langflow/frontend/assets/cloud-alert-DZPDNLh2.js +6 -0
  410. langflow/frontend/assets/cloud-cog-BDhb4Dm6.js +6 -0
  411. langflow/frontend/assets/cloud-download-8i0QZn2S.js +6 -0
  412. langflow/frontend/assets/cloud-drizzle-BBv1N5te.js +6 -0
  413. langflow/frontend/assets/cloud-fog-B8L1jVK3.js +6 -0
  414. langflow/frontend/assets/cloud-hail-DX6OhBEz.js +6 -0
  415. langflow/frontend/assets/cloud-lightning-DjaYifEm.js +6 -0
  416. langflow/frontend/assets/cloud-moon-h7sCuLGe.js +6 -0
  417. langflow/frontend/assets/cloud-moon-rain-BFipsjsy.js +6 -0
  418. langflow/frontend/assets/cloud-off-Ceq1ztAb.js +6 -0
  419. langflow/frontend/assets/cloud-rain-DIBPsBcb.js +6 -0
  420. langflow/frontend/assets/cloud-rain-wind-iXm_gSiw.js +6 -0
  421. langflow/frontend/assets/cloud-snow-BGRb3aGr.js +6 -0
  422. langflow/frontend/assets/cloud-sun-UVRVWtvc.js +6 -0
  423. langflow/frontend/assets/cloud-sun-rain-vX5b1ULS.js +6 -0
  424. langflow/frontend/assets/cloud-upload-Bcpc2E2Q.js +6 -0
  425. langflow/frontend/assets/cloudy-ChAYj0rU.js +6 -0
  426. langflow/frontend/assets/clover-Da4E51tG.js +6 -0
  427. langflow/frontend/assets/club-XxiP8VVl.js +6 -0
  428. langflow/frontend/assets/code-xml-DVNpwUug.js +6 -0
  429. langflow/frontend/assets/codepen-Pu6tFCfu.js +6 -0
  430. langflow/frontend/assets/codesandbox-BvlsKUIt.js +6 -0
  431. langflow/frontend/assets/coffee-BHDAhXDn.js +6 -0
  432. langflow/frontend/assets/cog-C9GiNMU-.js +6 -0
  433. langflow/frontend/assets/coins-6ZaT3Sq3.js +6 -0
  434. langflow/frontend/assets/columns-2-2x_YNs1L.js +6 -0
  435. langflow/frontend/assets/columns-3-CHmqwjHy.js +6 -0
  436. langflow/frontend/assets/columns-3-cog-CHqF9rvL.js +6 -0
  437. langflow/frontend/assets/columns-4-DxROtVN6.js +6 -0
  438. langflow/frontend/assets/combine-BPzAcchb.js +6 -0
  439. langflow/frontend/assets/command-D28aIlsp.js +6 -0
  440. langflow/frontend/assets/compass-BJPX5R9y.js +6 -0
  441. langflow/frontend/assets/component-DK_gvgva.js +6 -0
  442. langflow/frontend/assets/computer-BZwhmPa_.js +6 -0
  443. langflow/frontend/assets/concierge-bell-CF4Ja9aD.js +6 -0
  444. langflow/frontend/assets/cone-B2Gfjrtf.js +6 -0
  445. langflow/frontend/assets/construction-Cs7XcJgp.js +6 -0
  446. langflow/frontend/assets/contact-CDkRytGc.js +6 -0
  447. langflow/frontend/assets/contact-round-CPvBZDn9.js +6 -0
  448. langflow/frontend/assets/container-yDmmd0VI.js +6 -0
  449. langflow/frontend/assets/contrast-qw7lk-Vc.js +6 -0
  450. langflow/frontend/assets/cookie-D0gsli0e.js +6 -0
  451. langflow/frontend/assets/cooking-pot-B6WY7yAA.js +6 -0
  452. langflow/frontend/assets/copy-D-wW1R8Z.js +6 -0
  453. langflow/frontend/assets/copy-check-Bp04cnXT.js +6 -0
  454. langflow/frontend/assets/copy-minus-CMvTjRfx.js +6 -0
  455. langflow/frontend/assets/copy-plus-BPmZbj1d.js +6 -0
  456. langflow/frontend/assets/copy-slash-BiPlhjpo.js +6 -0
  457. langflow/frontend/assets/copy-x-ssyDEA4S.js +6 -0
  458. langflow/frontend/assets/copyleft-DSkwaU8-.js +6 -0
  459. langflow/frontend/assets/copyright-DONuv4BC.js +6 -0
  460. langflow/frontend/assets/corner-down-left-BipdwWk2.js +6 -0
  461. langflow/frontend/assets/corner-down-right-DJH31VKc.js +6 -0
  462. langflow/frontend/assets/corner-left-down-ChZzLnr7.js +6 -0
  463. langflow/frontend/assets/corner-left-up-CVhi21yN.js +6 -0
  464. langflow/frontend/assets/corner-right-down-339kuAF1.js +6 -0
  465. langflow/frontend/assets/corner-right-up-s1C3a_we.js +6 -0
  466. langflow/frontend/assets/corner-up-left-D2Nf7Jyy.js +6 -0
  467. langflow/frontend/assets/corner-up-right-lpiLeN8N.js +6 -0
  468. langflow/frontend/assets/cpu-BkRIaXhH.js +6 -0
  469. langflow/frontend/assets/creative-commons-QZhXyy7d.js +6 -0
  470. langflow/frontend/assets/credit-card-Cx1rFROm.js +6 -0
  471. langflow/frontend/assets/croissant-mOaXfwMp.js +6 -0
  472. langflow/frontend/assets/crop-_et0dNcx.js +6 -0
  473. langflow/frontend/assets/cross-B2e8pHqt.js +6 -0
  474. langflow/frontend/assets/crosshair-BSzYFCBK.js +6 -0
  475. langflow/frontend/assets/crown-DUngH9xg.js +6 -0
  476. langflow/frontend/assets/cuboid-DUznyWGx.js +6 -0
  477. langflow/frontend/assets/cup-soda-BCHuUuXd.js +6 -0
  478. langflow/frontend/assets/currency-SrCEXCUz.js +6 -0
  479. langflow/frontend/assets/cylinder-D39xciUn.js +6 -0
  480. langflow/frontend/assets/dam-En36A8lL.js +6 -0
  481. langflow/frontend/assets/database-backup-DfxkBMEc.js +6 -0
  482. langflow/frontend/assets/database-q-VCDP2B.js +6 -0
  483. langflow/frontend/assets/database-zap-DoZSFLj2.js +6 -0
  484. langflow/frontend/assets/decimals-arrow-left-C5L5qM0w.js +6 -0
  485. langflow/frontend/assets/decimals-arrow-right-Bp6FzsGR.js +6 -0
  486. langflow/frontend/assets/delete-B7LBB5Gd.js +6 -0
  487. langflow/frontend/assets/dessert-770L34TF.js +6 -0
  488. langflow/frontend/assets/diameter-CKpPsj53.js +6 -0
  489. langflow/frontend/assets/diamond-U2VrRa3M.js +6 -0
  490. langflow/frontend/assets/diamond-minus-5zWto3gb.js +6 -0
  491. langflow/frontend/assets/diamond-percent-DYC_YGlA.js +6 -0
  492. langflow/frontend/assets/diamond-plus-CSn0WvRY.js +6 -0
  493. langflow/frontend/assets/dice-1-OBFE1vFE.js +6 -0
  494. langflow/frontend/assets/dice-2-C0Ru0CR1.js +6 -0
  495. langflow/frontend/assets/dice-3-PY1sg2Bh.js +6 -0
  496. langflow/frontend/assets/dice-4-8gWk1vor.js +6 -0
  497. langflow/frontend/assets/dice-5-3VIr6uBn.js +6 -0
  498. langflow/frontend/assets/dice-6-CDB719HL.js +6 -0
  499. langflow/frontend/assets/dices-BxDQ3lHC.js +6 -0
  500. langflow/frontend/assets/diff-B_1ZAZTw.js +6 -0
  501. langflow/frontend/assets/disc-2-CO5YLGi4.js +6 -0
  502. langflow/frontend/assets/disc-3-BRHmiU6l.js +6 -0
  503. langflow/frontend/assets/disc-album-D1IxE316.js +6 -0
  504. langflow/frontend/assets/disc-xLUBiv_7.js +6 -0
  505. langflow/frontend/assets/divide-C3vt3dBi.js +6 -0
  506. langflow/frontend/assets/dna-Dl3EzKQm.js +6 -0
  507. langflow/frontend/assets/dna-off-A-cE4Hp-.js +6 -0
  508. langflow/frontend/assets/dock-h_lbWxpj.js +6 -0
  509. langflow/frontend/assets/dog-bLalftdF.js +6 -0
  510. langflow/frontend/assets/dollar-sign-CDQxBxz-.js +6 -0
  511. langflow/frontend/assets/donut-CxW3wvTr.js +6 -0
  512. langflow/frontend/assets/door-closed-wlqoPmkD.js +6 -0
  513. langflow/frontend/assets/door-open-BqM03bOR.js +6 -0
  514. langflow/frontend/assets/dot-BSC3ftqp.js +6 -0
  515. langflow/frontend/assets/download-B08IgWZP.js +6 -0
  516. langflow/frontend/assets/drafting-compass-WdJg0CJP.js +6 -0
  517. langflow/frontend/assets/drama-WW2DeEco.js +6 -0
  518. langflow/frontend/assets/dribbble-DH6brrXf.js +6 -0
  519. langflow/frontend/assets/drill-BZjuAWgY.js +6 -0
  520. langflow/frontend/assets/droplet-CovOtjG8.js +6 -0
  521. langflow/frontend/assets/droplet-off-mhGCel1L.js +6 -0
  522. langflow/frontend/assets/droplets-D5xf-WWU.js +6 -0
  523. langflow/frontend/assets/drum-CwhZ0rpN.js +6 -0
  524. langflow/frontend/assets/drumstick-DSyfgd5K.js +6 -0
  525. langflow/frontend/assets/dumbbell-B4ipPwus.js +6 -0
  526. langflow/frontend/assets/ear-CTCZXeoC.js +6 -0
  527. langflow/frontend/assets/ear-off-DI2w-Eig.js +6 -0
  528. langflow/frontend/assets/earth-CK8vrGmk.js +6 -0
  529. langflow/frontend/assets/earth-lock-sOuOw75L.js +6 -0
  530. langflow/frontend/assets/eclipse-DktM2cq7.js +6 -0
  531. langflow/frontend/assets/egg-DFalKwe7.js +6 -0
  532. langflow/frontend/assets/egg-fried-Cy8QIM-V.js +6 -0
  533. langflow/frontend/assets/egg-off-CTDgZfge.js +6 -0
  534. langflow/frontend/assets/ellipsis-BaV4WDj5.js +6 -0
  535. langflow/frontend/assets/ellipsis-vertical-Ci0QclNE.js +6 -0
  536. langflow/frontend/assets/equal-9vauAh6F.js +6 -0
  537. langflow/frontend/assets/equal-approximately-D7fT1ptR.js +6 -0
  538. langflow/frontend/assets/equal-not-BsZznlP_.js +6 -0
  539. langflow/frontend/assets/eraser-BWqEMOK_.js +6 -0
  540. langflow/frontend/assets/ethernet-port-JGDSZQFA.js +6 -0
  541. langflow/frontend/assets/euro-C32UVH3_.js +6 -0
  542. langflow/frontend/assets/expand-1n0nTP-Y.js +6 -0
  543. langflow/frontend/assets/eye-closed-DoZJ1Gcn.js +6 -0
  544. langflow/frontend/assets/eye-off-D-6Wv4jG.js +6 -0
  545. langflow/frontend/assets/eye-yIomm2Xs.js +6 -0
  546. langflow/frontend/assets/facebook-DjQ5NI1x.js +6 -0
  547. langflow/frontend/assets/factory-s-F6UwTs.js +6 -0
  548. langflow/frontend/assets/fan-gFlVpe9L.js +6 -0
  549. langflow/frontend/assets/fast-forward-CLw-62vb.js +6 -0
  550. langflow/frontend/assets/feather-ChVYo3xM.js +6 -0
  551. langflow/frontend/assets/fence-C045cCIt.js +6 -0
  552. langflow/frontend/assets/ferris-wheel-vzPUmhJC.js +6 -0
  553. langflow/frontend/assets/figma-CMHalEkY.js +6 -0
  554. langflow/frontend/assets/file-Bs_CNwMk.js +6 -0
  555. langflow/frontend/assets/file-archive-DGVV2kr9.js +6 -0
  556. langflow/frontend/assets/file-audio-2-Dgn8BBwY.js +6 -0
  557. langflow/frontend/assets/file-audio-_v4d4uPZ.js +6 -0
  558. langflow/frontend/assets/file-axis-3d-OhxZzLgy.js +6 -0
  559. langflow/frontend/assets/file-badge-2-BoJuEEVW.js +6 -0
  560. langflow/frontend/assets/file-badge-BUbnM6oE.js +6 -0
  561. langflow/frontend/assets/file-box-eIFVyQiO.js +6 -0
  562. langflow/frontend/assets/file-chart-column-DziCQMnl.js +6 -0
  563. langflow/frontend/assets/file-chart-column-increasing-CjmOhC2Q.js +6 -0
  564. langflow/frontend/assets/file-chart-line-BX-_oQCE.js +6 -0
  565. langflow/frontend/assets/file-chart-pie-5nag0vkd.js +6 -0
  566. langflow/frontend/assets/file-check-2-BTUoLNz9.js +6 -0
  567. langflow/frontend/assets/file-check-D9hDZV8X.js +6 -0
  568. langflow/frontend/assets/file-clock-D_09GQxt.js +6 -0
  569. langflow/frontend/assets/file-code-2-CB3TF1G-.js +6 -0
  570. langflow/frontend/assets/file-code-CEgJVFh9.js +6 -0
  571. langflow/frontend/assets/file-cog-DT5G-cYm.js +6 -0
  572. langflow/frontend/assets/file-diff-B6wstDcv.js +6 -0
  573. langflow/frontend/assets/file-digit-ChjooC_Z.js +6 -0
  574. langflow/frontend/assets/file-down-D2Hbggau.js +6 -0
  575. langflow/frontend/assets/file-heart-CSkk32RC.js +6 -0
  576. langflow/frontend/assets/file-image-DM-X9kMa.js +6 -0
  577. langflow/frontend/assets/file-input-DWVQYKs3.js +6 -0
  578. langflow/frontend/assets/file-json-2-BPi6FqL_.js +6 -0
  579. langflow/frontend/assets/file-json-LO0J2fpy.js +6 -0
  580. langflow/frontend/assets/file-key-2-BAVsdd6b.js +6 -0
  581. langflow/frontend/assets/file-key-gwEFc9qd.js +6 -0
  582. langflow/frontend/assets/file-lock-2-OwNs7osk.js +6 -0
  583. langflow/frontend/assets/file-lock-B_nwbYIr.js +6 -0
  584. langflow/frontend/assets/file-minus-2-SyKupTJZ.js +6 -0
  585. langflow/frontend/assets/file-minus-Cx6XjI_H.js +6 -0
  586. langflow/frontend/assets/file-music-C06ICT1X.js +6 -0
  587. langflow/frontend/assets/file-output-DP6B6Izm.js +6 -0
  588. langflow/frontend/assets/file-pen-BkmBlbWf.js +6 -0
  589. langflow/frontend/assets/file-pen-line-XUIVz2a2.js +6 -0
  590. langflow/frontend/assets/file-plus-2-BjJ1IaMe.js +6 -0
  591. langflow/frontend/assets/file-plus-V8HbTuF6.js +6 -0
  592. langflow/frontend/assets/file-question-C61Jge0o.js +6 -0
  593. langflow/frontend/assets/file-scan-Bj9BaLKz.js +6 -0
  594. langflow/frontend/assets/file-search-2-DVW_oElP.js +6 -0
  595. langflow/frontend/assets/file-search-BC0HBhJx.js +6 -0
  596. langflow/frontend/assets/file-sliders-Dvga08kf.js +6 -0
  597. langflow/frontend/assets/file-spreadsheet-DJr9_BW_.js +6 -0
  598. langflow/frontend/assets/file-stack-CCz1efXY.js +6 -0
  599. langflow/frontend/assets/file-symlink-D3T4NEpp.js +6 -0
  600. langflow/frontend/assets/file-terminal-CqSLK1Bh.js +6 -0
  601. langflow/frontend/assets/file-text-SSwK0T3f.js +6 -0
  602. langflow/frontend/assets/file-type-2-B9Qp51Lk.js +6 -0
  603. langflow/frontend/assets/file-type-sZFRySwk.js +6 -0
  604. langflow/frontend/assets/file-up-DTGyJZ9X.js +6 -0
  605. langflow/frontend/assets/file-user-DOUMGTUH.js +6 -0
  606. langflow/frontend/assets/file-video-2-BfIoI2FU.js +6 -0
  607. langflow/frontend/assets/file-video-DOahgVhe.js +6 -0
  608. langflow/frontend/assets/file-volume-2-D1nSeMgN.js +6 -0
  609. langflow/frontend/assets/file-volume-Bnsw4iEq.js +6 -0
  610. langflow/frontend/assets/file-warning-B-L2qrJJ.js +6 -0
  611. langflow/frontend/assets/file-x-2-BUU_8VYU.js +6 -0
  612. langflow/frontend/assets/file-x-DMtyVTKN.js +6 -0
  613. langflow/frontend/assets/files-BEnw0MB1.js +6 -0
  614. langflow/frontend/assets/film-BnO_JjTH.js +6 -0
  615. langflow/frontend/assets/fingerprint-Bz6sBAZC.js +6 -0
  616. langflow/frontend/assets/fire-extinguisher-_dimxvP7.js +6 -0
  617. langflow/frontend/assets/fish-D-B3EWCq.js +6 -0
  618. langflow/frontend/assets/fish-off-B_WFFHCL.js +6 -0
  619. langflow/frontend/assets/fish-symbol-D2TncWpP.js +6 -0
  620. langflow/frontend/assets/flag-CeM4lkYw.js +6 -0
  621. langflow/frontend/assets/flag-off-C08dVCnP.js +6 -0
  622. langflow/frontend/assets/flag-triangle-left-w5YQmAx-.js +6 -0
  623. langflow/frontend/assets/flag-triangle-right-D7BvJEm_.js +6 -0
  624. langflow/frontend/assets/flame-DDIhChvH.js +6 -0
  625. langflow/frontend/assets/flame-kindling-B4pdekHu.js +6 -0
  626. langflow/frontend/assets/flashlight-Bzn6xTeX.js +6 -0
  627. langflow/frontend/assets/flashlight-off-DMJ3cVj9.js +6 -0
  628. langflow/frontend/assets/flask-conical-NqyvhCqn.js +6 -0
  629. langflow/frontend/assets/flask-conical-off-BB5AMezW.js +6 -0
  630. langflow/frontend/assets/flask-round-DXHLeiFR.js +6 -0
  631. langflow/frontend/assets/flip-horizontal-2-Cn5VUcu0.js +6 -0
  632. langflow/frontend/assets/flip-horizontal-Mw6HKNWR.js +6 -0
  633. langflow/frontend/assets/flip-vertical-2-ICzNB_eQ.js +6 -0
  634. langflow/frontend/assets/flip-vertical-DgllUH7w.js +6 -0
  635. langflow/frontend/assets/flower-2-Csk20Bdv.js +6 -0
  636. langflow/frontend/assets/flower-DzIZK9Y4.js +6 -0
  637. langflow/frontend/assets/focus-DP1-SWuy.js +6 -0
  638. langflow/frontend/assets/fold-horizontal-C3Ptr0Zq.js +6 -0
  639. langflow/frontend/assets/fold-vertical-B17Oi5Bs.js +6 -0
  640. langflow/frontend/assets/folder-DSCNIB5K.js +6 -0
  641. langflow/frontend/assets/folder-archive-DBPT54uL.js +6 -0
  642. langflow/frontend/assets/folder-check-D0jhdnPr.js +6 -0
  643. langflow/frontend/assets/folder-clock-DFc575cl.js +6 -0
  644. langflow/frontend/assets/folder-closed-DJg_if5c.js +6 -0
  645. langflow/frontend/assets/folder-code-CLN12DPE.js +6 -0
  646. langflow/frontend/assets/folder-cog-kVESSZel.js +6 -0
  647. langflow/frontend/assets/folder-dot-zS5i2R3S.js +6 -0
  648. langflow/frontend/assets/folder-down-2nsFr_MH.js +6 -0
  649. langflow/frontend/assets/folder-git-2-55-a4IkI.js +6 -0
  650. langflow/frontend/assets/folder-git-CFbmcHAw.js +6 -0
  651. langflow/frontend/assets/folder-heart-CeYb5QQy.js +6 -0
  652. langflow/frontend/assets/folder-input-BdDyaI9Z.js +6 -0
  653. langflow/frontend/assets/folder-kanban-BNq1jk1I.js +6 -0
  654. langflow/frontend/assets/folder-key-BBYtvh4G.js +6 -0
  655. langflow/frontend/assets/folder-lock-DJKgkJnh.js +6 -0
  656. langflow/frontend/assets/folder-minus-CTArSyQX.js +6 -0
  657. langflow/frontend/assets/folder-open-HtSGy6Lj.js +6 -0
  658. langflow/frontend/assets/folder-open-dot-DaTOMmdB.js +6 -0
  659. langflow/frontend/assets/folder-output-D2ew_JFg.js +6 -0
  660. langflow/frontend/assets/folder-pen-BPCrthAz.js +6 -0
  661. langflow/frontend/assets/folder-plus-vpyAVBeW.js +6 -0
  662. langflow/frontend/assets/folder-root-BqUvF0r2.js +6 -0
  663. langflow/frontend/assets/folder-search-2-0LbceT3a.js +6 -0
  664. langflow/frontend/assets/folder-search-SjkLcz8G.js +6 -0
  665. langflow/frontend/assets/folder-symlink-CragaJBp.js +6 -0
  666. langflow/frontend/assets/folder-sync-BInaBBeH.js +6 -0
  667. langflow/frontend/assets/folder-tree-Iu0vPXr4.js +6 -0
  668. langflow/frontend/assets/folder-up-Bfzgvge6.js +6 -0
  669. langflow/frontend/assets/folder-x-bc97dLik.js +6 -0
  670. langflow/frontend/assets/folders-CZ1zEIjd.js +6 -0
  671. langflow/frontend/assets/footprints-D9M-34ri.js +6 -0
  672. langflow/frontend/assets/forklift-CsIR98Ms.js +6 -0
  673. langflow/frontend/assets/forward-3I59E7Fy.js +6 -0
  674. langflow/frontend/assets/frame-C8G4dRQz.js +6 -0
  675. langflow/frontend/assets/framer-Cez8yoon.js +6 -0
  676. langflow/frontend/assets/frown-DnV7arls.js +6 -0
  677. langflow/frontend/assets/fuel-1IC2KN9s.js +6 -0
  678. langflow/frontend/assets/fullscreen-BIIfu1mc.js +6 -0
  679. langflow/frontend/assets/funnel-DG_od6SB.js +6 -0
  680. langflow/frontend/assets/funnel-plus-OFVpTTvC.js +6 -0
  681. langflow/frontend/assets/funnel-x-ay2bD3_s.js +6 -0
  682. langflow/frontend/assets/gallery-horizontal-Cvi7NSTd.js +6 -0
  683. langflow/frontend/assets/gallery-horizontal-end-vJJPGWCt.js +6 -0
  684. langflow/frontend/assets/gallery-thumbnails-DlXWMv1p.js +6 -0
  685. langflow/frontend/assets/gallery-vertical-a8Jyxi_p.js +6 -0
  686. langflow/frontend/assets/gallery-vertical-end-CMWLOB_f.js +6 -0
  687. langflow/frontend/assets/gamepad-2-C1zSn0TD.js +6 -0
  688. langflow/frontend/assets/gamepad-P3E-0Ns2.js +6 -0
  689. langflow/frontend/assets/gauge-BMzL79Qk.js +6 -0
  690. langflow/frontend/assets/gavel-B2i9AmnT.js +6 -0
  691. langflow/frontend/assets/gem-F9gxK_zc.js +6 -0
  692. langflow/frontend/assets/ghost-C0SXQBJG.js +6 -0
  693. langflow/frontend/assets/gift-CoUizwey.js +6 -0
  694. langflow/frontend/assets/git-branch-Tm-OEeaD.js +6 -0
  695. langflow/frontend/assets/git-branch-plus-udwFcHam.js +6 -0
  696. langflow/frontend/assets/git-commit-horizontal-DbwyFWSA.js +6 -0
  697. langflow/frontend/assets/git-commit-vertical-BMZ-MkLo.js +6 -0
  698. langflow/frontend/assets/git-compare-DxXf-Nmi.js +6 -0
  699. langflow/frontend/assets/git-compare-arrows-C-UEejMo.js +6 -0
  700. langflow/frontend/assets/git-fork-Cc6VyW4u.js +6 -0
  701. langflow/frontend/assets/git-graph-mHVxImWH.js +6 -0
  702. langflow/frontend/assets/git-merge-MAjqL1AU.js +6 -0
  703. langflow/frontend/assets/git-pull-request-Dum4_jcC.js +6 -0
  704. langflow/frontend/assets/git-pull-request-arrow-BN4doaTn.js +6 -0
  705. langflow/frontend/assets/git-pull-request-closed-1zh34VPj.js +6 -0
  706. langflow/frontend/assets/git-pull-request-create-CRF_fbig.js +6 -0
  707. langflow/frontend/assets/git-pull-request-create-arrow-CWvDWpPi.js +6 -0
  708. langflow/frontend/assets/git-pull-request-draft-HTr4dLLz.js +6 -0
  709. langflow/frontend/assets/github-BJyHei_1.js +6 -0
  710. langflow/frontend/assets/gitlab-C2lr1S6L.js +6 -0
  711. langflow/frontend/assets/glass-water-68FWmdkX.js +6 -0
  712. langflow/frontend/assets/glasses-ySWouumi.js +6 -0
  713. langflow/frontend/assets/globe-Cn4MGVnY.js +6 -0
  714. langflow/frontend/assets/globe-lock-BWnl5bEO.js +6 -0
  715. langflow/frontend/assets/goal-B0g9NGEc.js +6 -0
  716. langflow/frontend/assets/grab-6WZBsqmq.js +6 -0
  717. langflow/frontend/assets/graduation-cap-Dustf1oJ.js +6 -0
  718. langflow/frontend/assets/grape-RY6Jb_8r.js +6 -0
  719. langflow/frontend/assets/grid-2x2-Bs_RKdT8.js +6 -0
  720. langflow/frontend/assets/grid-2x2-check-DwGLTMUG.js +6 -0
  721. langflow/frontend/assets/grid-2x2-plus-SZG4344H.js +6 -0
  722. langflow/frontend/assets/grid-2x2-x-V2D6GFzk.js +6 -0
  723. langflow/frontend/assets/grid-3x3-BqmWZQ75.js +6 -0
  724. langflow/frontend/assets/grip-4CYi2-cF.js +6 -0
  725. langflow/frontend/assets/grip-horizontal-DSfCabKE.js +6 -0
  726. langflow/frontend/assets/grip-vertical-EptrvT2w.js +6 -0
  727. langflow/frontend/assets/group-DoP8mGv_.js +6 -0
  728. langflow/frontend/assets/guitar-CHAg8ELW.js +6 -0
  729. langflow/frontend/assets/ham-CpzDDlxe.js +6 -0
  730. langflow/frontend/assets/hammer-ClNrd_cg.js +6 -0
  731. langflow/frontend/assets/hand-TJtpkRVO.js +6 -0
  732. langflow/frontend/assets/hand-coins-Cju9MBKM.js +6 -0
  733. langflow/frontend/assets/hand-heart-Bx8xbQ-b.js +6 -0
  734. langflow/frontend/assets/hand-helping-Dogu0Qok.js +6 -0
  735. langflow/frontend/assets/hand-metal-RBrNntuo.js +6 -0
  736. langflow/frontend/assets/hand-platter-DdfAC9Gs.js +6 -0
  737. langflow/frontend/assets/handshake-DpadS0jS.js +6 -0
  738. langflow/frontend/assets/hard-drive-D5wso_gM.js +6 -0
  739. langflow/frontend/assets/hard-drive-download-TzzVc5TF.js +6 -0
  740. langflow/frontend/assets/hard-drive-upload-DgaAaATA.js +6 -0
  741. langflow/frontend/assets/hard-hat-BhsoEIcy.js +6 -0
  742. langflow/frontend/assets/hash-C3QQzDS4.js +6 -0
  743. langflow/frontend/assets/haze-BE1QDFAD.js +6 -0
  744. langflow/frontend/assets/hdmi-port-B5BeHYFY.js +6 -0
  745. langflow/frontend/assets/heading-1-qmZBowHO.js +6 -0
  746. langflow/frontend/assets/heading-2-DjAipB3a.js +6 -0
  747. langflow/frontend/assets/heading-3-naSk7JbM.js +6 -0
  748. langflow/frontend/assets/heading-4-DWqLAApD.js +6 -0
  749. langflow/frontend/assets/heading-5-CzcTdWR4.js +6 -0
  750. langflow/frontend/assets/heading-6-DuXxICD9.js +6 -0
  751. langflow/frontend/assets/heading-DnIj_1aK.js +6 -0
  752. langflow/frontend/assets/headphone-off-0ZC0rndC.js +6 -0
  753. langflow/frontend/assets/headphones-Dje985kL.js +6 -0
  754. langflow/frontend/assets/headset-D-H0-VzY.js +6 -0
  755. langflow/frontend/assets/heart-B-QZKinP.js +6 -0
  756. langflow/frontend/assets/heart-crack-By31MeoG.js +6 -0
  757. langflow/frontend/assets/heart-handshake-CnoRJxP5.js +6 -0
  758. langflow/frontend/assets/heart-minus-CGG7k0Hy.js +6 -0
  759. langflow/frontend/assets/heart-off-CwPr8U0u.js +6 -0
  760. langflow/frontend/assets/heart-plus-CEFwSjki.js +6 -0
  761. langflow/frontend/assets/heart-pulse-BkbD6U8n.js +6 -0
  762. langflow/frontend/assets/heater-B4DmajOE.js +6 -0
  763. langflow/frontend/assets/hexagon-YMRZELSi.js +6 -0
  764. langflow/frontend/assets/highlighter-CoVbJEhg.js +6 -0
  765. langflow/frontend/assets/history-BGUyCLxM.js +6 -0
  766. langflow/frontend/assets/hop-CwRKI5Yq.js +6 -0
  767. langflow/frontend/assets/hop-off-eRliCZLm.js +6 -0
  768. langflow/frontend/assets/hospital-BEiAMbR_.js +6 -0
  769. langflow/frontend/assets/hotel-FOdonM5d.js +6 -0
  770. langflow/frontend/assets/hourglass-rYqENcWc.js +6 -0
  771. langflow/frontend/assets/house-BZHXPxdI.js +6 -0
  772. langflow/frontend/assets/house-plug-Dur9r8fl.js +6 -0
  773. langflow/frontend/assets/house-plus-z5c1ZGAu.js +6 -0
  774. langflow/frontend/assets/house-wifi-D5S7y7D_.js +6 -0
  775. langflow/frontend/assets/ice-cream-bowl-pKPfDKGn.js +6 -0
  776. langflow/frontend/assets/ice-cream-cone-LiY37lDD.js +6 -0
  777. langflow/frontend/assets/id-card-DZt7XCTV.js +6 -0
  778. langflow/frontend/assets/image-dT6JUgoL.js +6 -0
  779. langflow/frontend/assets/image-down-DSTS8lKT.js +6 -0
  780. langflow/frontend/assets/image-minus-DwD_zuJT.js +6 -0
  781. langflow/frontend/assets/image-off-qt2UvLOa.js +6 -0
  782. langflow/frontend/assets/image-play-Kqd_yNO1.js +6 -0
  783. langflow/frontend/assets/image-plus-Su7wXO-U.js +6 -0
  784. langflow/frontend/assets/image-up-IIEasEi6.js +6 -0
  785. langflow/frontend/assets/image-upscale-DNiP73zU.js +6 -0
  786. langflow/frontend/assets/images-_A--hagq.js +6 -0
  787. langflow/frontend/assets/import-1lkBsxMl.js +6 -0
  788. langflow/frontend/assets/inbox-DyxkEQv2.js +6 -0
  789. langflow/frontend/assets/indent-decrease-ShIJZXI6.js +6 -0
  790. langflow/frontend/assets/indent-increase-B_mPf6h5.js +6 -0
  791. langflow/frontend/assets/index--HiR8-eZ.js +1 -0
  792. langflow/frontend/assets/index--Yrf1V2T.js +1 -0
  793. langflow/frontend/assets/index-1-CP43KV.js +1 -0
  794. langflow/frontend/assets/index-11WvuS7Y.js +1 -0
  795. langflow/frontend/assets/index-2FDSX9Nc.js +1 -0
  796. langflow/frontend/assets/index-3wxXBlGZ.js +1 -0
  797. langflow/frontend/assets/index-5Z52W5Dd.js +1 -0
  798. langflow/frontend/assets/index-7zdNiGgW.js +1 -0
  799. langflow/frontend/assets/index-8Jj6xxR1.js +1 -0
  800. langflow/frontend/assets/index-8z9vJ-8q.js +1 -0
  801. langflow/frontend/assets/index-9gRoaK6J.js +1 -0
  802. langflow/frontend/assets/index-ASDdcGz8.js +1 -0
  803. langflow/frontend/assets/index-B-cdJsaQ.js +1 -0
  804. langflow/frontend/assets/index-B-ftxeVD.js +1 -0
  805. langflow/frontend/assets/index-B1yKxFsA.js +1 -0
  806. langflow/frontend/assets/index-B2QD5M4r.js +1 -0
  807. langflow/frontend/assets/index-B8SINqGZ.js +1 -0
  808. langflow/frontend/assets/index-B9Mno8b6.js +1 -0
  809. langflow/frontend/assets/index-BA0IHRtF.js +1 -0
  810. langflow/frontend/assets/index-BAC-iwYd.js +1 -0
  811. langflow/frontend/assets/index-BDx900Mw.js +1 -0
  812. langflow/frontend/assets/index-BGEPkv1W.js +1 -0
  813. langflow/frontend/assets/index-BIm5oDqO.js +1 -0
  814. langflow/frontend/assets/index-BL5-G87X.js +1 -0
  815. langflow/frontend/assets/index-BLnNz9vi.js +1 -0
  816. langflow/frontend/assets/index-BMtrBSb3.js +1 -0
  817. langflow/frontend/assets/index-BNOfzL9e.js +1 -0
  818. langflow/frontend/assets/index-BO3fZrkA.js +1 -0
  819. langflow/frontend/assets/index-BPBrD8il.js +185 -0
  820. langflow/frontend/assets/index-BPKV1cxI.js +1 -0
  821. langflow/frontend/assets/index-BPyLIbW3.js +1 -0
  822. langflow/frontend/assets/index-BPzTZ_bf.js +1 -0
  823. langflow/frontend/assets/index-BRJu089j.js +1 -0
  824. langflow/frontend/assets/index-BViwL0ae.js +1 -0
  825. langflow/frontend/assets/index-BWNdJYJL.js +1 -0
  826. langflow/frontend/assets/index-BZvoKkta.js +1 -0
  827. langflow/frontend/assets/index-BaKQz2aA.js +1 -0
  828. langflow/frontend/assets/index-BbNE-kUS.js +1 -0
  829. langflow/frontend/assets/index-Bbt15yxt.js +1 -0
  830. langflow/frontend/assets/index-BdlBwNUA.js +1 -0
  831. langflow/frontend/assets/index-Bdm5NArJ.js +1 -0
  832. langflow/frontend/assets/index-BfC38KQ8.js +1 -0
  833. langflow/frontend/assets/index-BfSmE6M4.js +1 -0
  834. langflow/frontend/assets/index-Bfl9LqAR.js +1 -0
  835. langflow/frontend/assets/index-BiWb3QMq.js +1 -0
  836. langflow/frontend/assets/index-BjWdeeAi.js +1 -0
  837. langflow/frontend/assets/index-BnN2_ovy.js +1 -0
  838. langflow/frontend/assets/index-BoGS-56X.js +1 -0
  839. langflow/frontend/assets/index-Bpaer_Lo.js +1 -0
  840. langflow/frontend/assets/index-BrL7nUYz.js +1 -0
  841. langflow/frontend/assets/index-BrxoWNy4.js +1 -0
  842. langflow/frontend/assets/index-Bs8o6jVP.js +1 -0
  843. langflow/frontend/assets/index-Bt9xhVBl.js +1 -0
  844. langflow/frontend/assets/index-BtqQb5Jl.js +1 -0
  845. langflow/frontend/assets/index-BvIjYGp8.js +1 -0
  846. langflow/frontend/assets/index-BvWJ7k7v.js +1 -0
  847. langflow/frontend/assets/index-BzU1yvgq.js +1 -0
  848. langflow/frontend/assets/index-Bzjciw0q.js +1 -0
  849. langflow/frontend/assets/index-C0BKnrGK.js +1 -0
  850. langflow/frontend/assets/index-C1RV_K7-.js +1 -0
  851. langflow/frontend/assets/index-C3yWUx5b.js +108 -0
  852. langflow/frontend/assets/index-C5Ck1mXL.js +1 -0
  853. langflow/frontend/assets/index-C5ZSa5rC.js +1 -0
  854. langflow/frontend/assets/index-C5fntoNZ.js +1 -0
  855. langflow/frontend/assets/index-C9cpvqsx.js +1 -0
  856. langflow/frontend/assets/index-CBgeLgWM.css +1 -0
  857. langflow/frontend/assets/index-CCF2Ji2I.js +1 -0
  858. langflow/frontend/assets/index-CDzHn87R.js +1 -0
  859. langflow/frontend/assets/index-CEoBDx-c.js +127 -0
  860. langflow/frontend/assets/index-CHcwgMF_.js +1 -0
  861. langflow/frontend/assets/index-CInVZzjb.js +1 -0
  862. langflow/frontend/assets/index-CJVeqrXp.js +1 -0
  863. langflow/frontend/assets/index-CJtIOcc1.js +1 -0
  864. langflow/frontend/assets/index-CM4obvu2.js +1 -0
  865. langflow/frontend/assets/index-CMs8ibqU.js +1 -0
  866. langflow/frontend/assets/index-CN3vZ2Hx.js +1 -0
  867. langflow/frontend/assets/index-CNwkIMrO.js +1 -0
  868. langflow/frontend/assets/index-CU8YV4tT.js +1 -0
  869. langflow/frontend/assets/index-CUTJnvCp.js +1 -0
  870. langflow/frontend/assets/index-CUkKHexR.js +399 -0
  871. langflow/frontend/assets/index-CUoF14Zx.js +1 -0
  872. langflow/frontend/assets/index-CWpcWm4D.js +1 -0
  873. langflow/frontend/assets/index-CYuR-MHI.js +1 -0
  874. langflow/frontend/assets/index-CZ22qtOd.js +1 -0
  875. langflow/frontend/assets/index-CZskcnAw.js +1 -0
  876. langflow/frontend/assets/index-C_JFZ5Cm.js +1 -0
  877. langflow/frontend/assets/index-CbQW_rUH.js +1 -0
  878. langflow/frontend/assets/index-CbTS2vc9.js +1 -0
  879. langflow/frontend/assets/index-Cbhu2m9p.js +1 -0
  880. langflow/frontend/assets/index-Cc_vHz0W.js +1 -0
  881. langflow/frontend/assets/index-CeEIYFNV.js +1 -0
  882. langflow/frontend/assets/index-CfNAq-8B.js +1 -0
  883. langflow/frontend/assets/index-CgLgnifu.js +1 -0
  884. langflow/frontend/assets/index-CgP9f3Tf.js +1 -0
  885. langflow/frontend/assets/index-ChOIrFmB.js +1 -0
  886. langflow/frontend/assets/index-Chn6k-Ac.js +1 -0
  887. langflow/frontend/assets/index-CjltcfkP.js +1 -0
  888. langflow/frontend/assets/index-CmiA48ev.js +1 -0
  889. langflow/frontend/assets/index-CpybjnUU.js +1 -0
  890. langflow/frontend/assets/index-Cq-sC6Qj.js +1 -0
  891. langflow/frontend/assets/index-Cq4f0e7x.js +1 -0
  892. langflow/frontend/assets/index-Cqfjx9Ot.js +1 -0
  893. langflow/frontend/assets/index-CucLaa5i.js +7322 -0
  894. langflow/frontend/assets/index-Cw9FUuuH.js +21 -0
  895. langflow/frontend/assets/index-Cwc-_hhU.js +1 -0
  896. langflow/frontend/assets/index-CyNA6rK5.js +1 -0
  897. langflow/frontend/assets/index-CyPoKLGG.js +1 -0
  898. langflow/frontend/assets/index-D-HjvNIb.js +7 -0
  899. langflow/frontend/assets/index-D1vXyPbO.js +1 -0
  900. langflow/frontend/assets/index-D2fy8Hbp.js +1 -0
  901. langflow/frontend/assets/index-D3-BoVDH.js +1 -0
  902. langflow/frontend/assets/index-D7fEEVb-.js +1 -0
  903. langflow/frontend/assets/index-D9eS83vv.js +1 -0
  904. langflow/frontend/assets/index-DAa99Uyl.js +1 -0
  905. langflow/frontend/assets/index-DAvQEULV.js +1 -0
  906. langflow/frontend/assets/index-DBp4U8vs.js +1 -0
  907. langflow/frontend/assets/index-DCLckSfi.js +1 -0
  908. langflow/frontend/assets/index-DFOyKoem.js +1 -0
  909. langflow/frontend/assets/index-DH-Koual.js +1 -0
  910. langflow/frontend/assets/index-DHYrhZM3.js +1 -0
  911. langflow/frontend/assets/index-DID-Zf-m.js +281 -0
  912. langflow/frontend/assets/index-DItjJGhS.js +1 -0
  913. langflow/frontend/assets/index-DJV0dcXU.js +1 -0
  914. langflow/frontend/assets/index-DLpn6jT5.js +1 -0
  915. langflow/frontend/assets/index-DO9krwyr.js +1 -0
  916. langflow/frontend/assets/index-DOeY8U9w.js +1 -0
  917. langflow/frontend/assets/index-DPOTsJbx.js +1 -0
  918. langflow/frontend/assets/index-DTRNviWO.js +1 -0
  919. langflow/frontend/assets/index-DXLkMEx7.js +1 -0
  920. langflow/frontend/assets/index-DXjipMdc.js +1 -0
  921. langflow/frontend/assets/index-D_jiuV-h.js +1 -0
  922. langflow/frontend/assets/index-Da4mZ3MU.js +1 -0
  923. langflow/frontend/assets/index-DaMrOlf8.js +1 -0
  924. langflow/frontend/assets/index-DcjOBFGn.js +1 -0
  925. langflow/frontend/assets/index-De58N2lH.js +205 -0
  926. langflow/frontend/assets/index-DfbXQ6RE.js +1 -0
  927. langflow/frontend/assets/index-Dhp9HphX.js +1 -0
  928. langflow/frontend/assets/index-DiNdd3f4.js +1 -0
  929. langflow/frontend/assets/index-DjyPmdlP.js +1 -0
  930. langflow/frontend/assets/index-DkrvPOc8.js +1 -0
  931. langflow/frontend/assets/index-DmrfHj6w.js +1 -0
  932. langflow/frontend/assets/index-Dn52Fdn7.js +1 -0
  933. langflow/frontend/assets/index-Dn5zvoNc.js +1 -0
  934. langflow/frontend/assets/index-DnkvQDVL.js +1 -0
  935. langflow/frontend/assets/index-DqPPYmz-.js +1 -0
  936. langflow/frontend/assets/index-DqYCgDoU.js +1 -0
  937. langflow/frontend/assets/index-Ds1cJ0-1.js +1 -0
  938. langflow/frontend/assets/index-DugDO7ZW.js +1 -0
  939. langflow/frontend/assets/index-Dx739uFZ.js +381 -0
  940. langflow/frontend/assets/index-Dyu-qh-z.js +1 -0
  941. langflow/frontend/assets/index-EK9FybII.js +1 -0
  942. langflow/frontend/assets/index-FC61DlvI.js +13 -0
  943. langflow/frontend/assets/index-Fr-BUYIe.js +20 -0
  944. langflow/frontend/assets/index-INRWF8lf.js +1 -0
  945. langflow/frontend/assets/index-N29Qubl8.js +1 -0
  946. langflow/frontend/assets/index-N_Op8ThT.js +1 -0
  947. langflow/frontend/assets/index-NuEUTtS6.js +1 -0
  948. langflow/frontend/assets/index-Ox8d44yp.js +1 -0
  949. langflow/frontend/assets/index-QkGn-zsF.js +1 -0
  950. langflow/frontend/assets/index-WJpadaMu.js +1 -0
  951. langflow/frontend/assets/index-YhXbk0Cl.js +1 -0
  952. langflow/frontend/assets/index-ZS4D4wBI.js +1 -0
  953. langflow/frontend/assets/index-ZlsJLQMV.js +1 -0
  954. langflow/frontend/assets/index-a2XY6qWX.js +1 -0
  955. langflow/frontend/assets/index-byj8jgUp.js +1 -0
  956. langflow/frontend/assets/index-eGDwByST.js +1 -0
  957. langflow/frontend/assets/index-emQICwFY.js +1 -0
  958. langflow/frontend/assets/index-fcuokN6I.js +495 -0
  959. langflow/frontend/assets/index-hPRP_abj.js +1 -0
  960. langflow/frontend/assets/index-jm0dGGuD.js +1 -0
  961. langflow/frontend/assets/index-mgpfv3an.js +2 -0
  962. langflow/frontend/assets/index-oYQVRY6w.js +1 -0
  963. langflow/frontend/assets/index-oj6LwcQF.js +1 -0
  964. langflow/frontend/assets/index-pFIVle3u.js +767 -0
  965. langflow/frontend/assets/index-pFo4WiRK.js +1 -0
  966. langflow/frontend/assets/index-qogxpcyN.js +1 -0
  967. langflow/frontend/assets/index-slpPBwR7.js +1 -0
  968. langflow/frontend/assets/index-t0KSWjS3.js +1 -0
  969. langflow/frontend/assets/index-tMu_OgYD.js +1 -0
  970. langflow/frontend/assets/index-tRnj7vKj.js +1 -0
  971. langflow/frontend/assets/index-thz88Vwg.js +1 -0
  972. langflow/frontend/assets/index-w2QmN1_F.js +1 -0
  973. langflow/frontend/assets/index-ynE4GBQc.js +1 -0
  974. langflow/frontend/assets/index-zcIco6gA.js +1 -0
  975. langflow/frontend/assets/indian-rupee-BVd8BGbQ.js +6 -0
  976. langflow/frontend/assets/infinity-C0YwWgky.js +6 -0
  977. langflow/frontend/assets/info-wzQrs_q_.js +6 -0
  978. langflow/frontend/assets/inspection-panel-Dy84IYro.js +6 -0
  979. langflow/frontend/assets/instagram-B0Ovhh_x.js +6 -0
  980. langflow/frontend/assets/italic-B9qv3nTG.js +6 -0
  981. langflow/frontend/assets/iteration-ccw-CqRlMZZk.js +6 -0
  982. langflow/frontend/assets/iteration-cw-S6Z7R-Hc.js +6 -0
  983. langflow/frontend/assets/japanese-yen-D1rCIe9r.js +6 -0
  984. langflow/frontend/assets/joystick-JlWSJV8Y.js +6 -0
  985. langflow/frontend/assets/kanban-Dh8ChpGE.js +6 -0
  986. langflow/frontend/assets/key-CW8g6jC7.js +6 -0
  987. langflow/frontend/assets/key-round-CIzwEgzo.js +6 -0
  988. langflow/frontend/assets/key-square-DhzkPMcs.js +6 -0
  989. langflow/frontend/assets/keyboard-Cu54BPlj.js +6 -0
  990. langflow/frontend/assets/keyboard-music--1VNS74Q.js +6 -0
  991. langflow/frontend/assets/keyboard-off-BL1i8t7b.js +6 -0
  992. langflow/frontend/assets/lamp-DnkxiEof.js +6 -0
  993. langflow/frontend/assets/lamp-ceiling-G9cxprMh.js +6 -0
  994. langflow/frontend/assets/lamp-desk-DisaiFcH.js +6 -0
  995. langflow/frontend/assets/lamp-floor-DayWMad8.js +6 -0
  996. langflow/frontend/assets/lamp-wall-down-DQru5rWt.js +6 -0
  997. langflow/frontend/assets/lamp-wall-up-CUuCGWLj.js +6 -0
  998. langflow/frontend/assets/land-plot-CS9SP9kk.js +6 -0
  999. langflow/frontend/assets/landmark-D6XeW7sP.js +6 -0
  1000. langflow/frontend/assets/languages-DSzNNYZH.js +6 -0
  1001. langflow/frontend/assets/laptop-DhnDVBC1.js +6 -0
  1002. langflow/frontend/assets/laptop-minimal-CrYSA6Ch.js +6 -0
  1003. langflow/frontend/assets/laptop-minimal-check-B9hh7mq5.js +6 -0
  1004. langflow/frontend/assets/lasso-BT3JP9B2.js +6 -0
  1005. langflow/frontend/assets/lasso-select-DTJEnE6D.js +6 -0
  1006. langflow/frontend/assets/laugh-D94G0YXY.js +6 -0
  1007. langflow/frontend/assets/layers-2-36AjYJft.js +6 -0
  1008. langflow/frontend/assets/layers-6eoqh9TQ.js +6 -0
  1009. langflow/frontend/assets/layout-dashboard-BSLyLSSD.js +6 -0
  1010. langflow/frontend/assets/layout-grid-B6nzyq22.js +6 -0
  1011. langflow/frontend/assets/layout-list-D6k8bM7q.js +6 -0
  1012. langflow/frontend/assets/layout-panel-left-DT-QFQPd.js +6 -0
  1013. langflow/frontend/assets/layout-panel-top-BGFfuR6d.js +6 -0
  1014. langflow/frontend/assets/layout-template-BxESk9Bt.js +6 -0
  1015. langflow/frontend/assets/lazyIconImports-BvOy0_CA.js +2 -0
  1016. langflow/frontend/assets/leaf-D07BUGPV.js +6 -0
  1017. langflow/frontend/assets/leafy-green-DjcNMI_X.js +6 -0
  1018. langflow/frontend/assets/lectern-C9LjfO6a.js +6 -0
  1019. langflow/frontend/assets/letter-text-BGn4nSkb.js +6 -0
  1020. langflow/frontend/assets/library-C-IrBa0T.js +6 -0
  1021. langflow/frontend/assets/library-big-CAl8sTzK.js +6 -0
  1022. langflow/frontend/assets/life-buoy-CMiBSE0q.js +6 -0
  1023. langflow/frontend/assets/ligature-DbT9FZa5.js +6 -0
  1024. langflow/frontend/assets/lightbulb-BvhHtdU3.js +6 -0
  1025. langflow/frontend/assets/lightbulb-off-Bf_y_2UP.js +6 -0
  1026. langflow/frontend/assets/link-2-DpiPwxnG.js +6 -0
  1027. langflow/frontend/assets/link-2-off-Damb0wOV.js +6 -0
  1028. langflow/frontend/assets/link-WENaeLEj.js +6 -0
  1029. langflow/frontend/assets/linkedin-C7O4LKOP.js +6 -0
  1030. langflow/frontend/assets/list-BxjxrZEL.js +6 -0
  1031. langflow/frontend/assets/list-check-Bx7cD9l6.js +6 -0
  1032. langflow/frontend/assets/list-checks-DY4myxVW.js +6 -0
  1033. langflow/frontend/assets/list-collapse-DFPP4_yQ.js +6 -0
  1034. langflow/frontend/assets/list-end-DzQStgGo.js +6 -0
  1035. langflow/frontend/assets/list-filter-plus-CnxIwX_U.js +6 -0
  1036. langflow/frontend/assets/list-filter-wqzRG951.js +6 -0
  1037. langflow/frontend/assets/list-minus-AzLzOwxW.js +6 -0
  1038. langflow/frontend/assets/list-music-C8EuuypH.js +6 -0
  1039. langflow/frontend/assets/list-ordered-ffdkyWx-.js +6 -0
  1040. langflow/frontend/assets/list-plus-lE8Rc6Xx.js +6 -0
  1041. langflow/frontend/assets/list-restart-BQyWKKv4.js +6 -0
  1042. langflow/frontend/assets/list-start-ysvs6Xng.js +6 -0
  1043. langflow/frontend/assets/list-todo-CBtMYzQy.js +6 -0
  1044. langflow/frontend/assets/list-tree-SdEMqRbV.js +6 -0
  1045. langflow/frontend/assets/list-video-DArMvQOZ.js +6 -0
  1046. langflow/frontend/assets/list-x-C2aPG1bo.js +6 -0
  1047. langflow/frontend/assets/loader-DX-4qgGP.js +6 -0
  1048. langflow/frontend/assets/loader-circle-Cw_F5IHx.js +6 -0
  1049. langflow/frontend/assets/loader-pinwheel-ocGJQjHF.js +6 -0
  1050. langflow/frontend/assets/locate-Dwb7XG0m.js +6 -0
  1051. langflow/frontend/assets/locate-fixed-WEju5zfl.js +6 -0
  1052. langflow/frontend/assets/locate-off-G7Q08tB5.js +6 -0
  1053. langflow/frontend/assets/location-edit-BtmVwCnm.js +6 -0
  1054. langflow/frontend/assets/lock-1VAobtat.js +6 -0
  1055. langflow/frontend/assets/lock-keyhole-2bBfcZ9u.js +6 -0
  1056. langflow/frontend/assets/lock-keyhole-open-CMMjFMW-.js +6 -0
  1057. langflow/frontend/assets/lock-open-C7tPkJh_.js +6 -0
  1058. langflow/frontend/assets/log-in-CnmTNt1Q.js +6 -0
  1059. langflow/frontend/assets/log-out-8frlZyfF.js +6 -0
  1060. langflow/frontend/assets/logs-CUV2Co5Y.js +6 -0
  1061. langflow/frontend/assets/lollipop-_BhtLXCT.js +6 -0
  1062. langflow/frontend/assets/luggage-CuAeSs3F.js +6 -0
  1063. langflow/frontend/assets/magnet-D0WzZa9t.js +6 -0
  1064. langflow/frontend/assets/mail-D6d5SeFR.js +6 -0
  1065. langflow/frontend/assets/mail-check-BYD77LYi.js +6 -0
  1066. langflow/frontend/assets/mail-minus-C0JBf4fH.js +6 -0
  1067. langflow/frontend/assets/mail-open-ghjJer8F.js +6 -0
  1068. langflow/frontend/assets/mail-plus-Dxw0XCGR.js +6 -0
  1069. langflow/frontend/assets/mail-question-LiGQtPMD.js +6 -0
  1070. langflow/frontend/assets/mail-search-CqpO1Wa7.js +6 -0
  1071. langflow/frontend/assets/mail-warning-CABRyaSb.js +6 -0
  1072. langflow/frontend/assets/mail-x-DmYcgA6N.js +6 -0
  1073. langflow/frontend/assets/mailbox-DYYEkivH.js +6 -0
  1074. langflow/frontend/assets/mails-BJF6w9p5.js +6 -0
  1075. langflow/frontend/assets/map-b2X50Www.js +6 -0
  1076. langflow/frontend/assets/map-pin-CdgQuGLg.js +6 -0
  1077. langflow/frontend/assets/map-pin-check-_LhDrtDM.js +6 -0
  1078. langflow/frontend/assets/map-pin-check-inside-DZuvBne9.js +6 -0
  1079. langflow/frontend/assets/map-pin-house-CeoJhQaN.js +6 -0
  1080. langflow/frontend/assets/map-pin-minus-inside-DVHVXa8X.js +6 -0
  1081. langflow/frontend/assets/map-pin-minus-oy2YCeMM.js +6 -0
  1082. langflow/frontend/assets/map-pin-off-CSKR4KAV.js +6 -0
  1083. langflow/frontend/assets/map-pin-plus-I6mRGAHd.js +6 -0
  1084. langflow/frontend/assets/map-pin-plus-inside-DimWfrWB.js +6 -0
  1085. langflow/frontend/assets/map-pin-x-B3CBswXc.js +6 -0
  1086. langflow/frontend/assets/map-pin-x-inside-Bx7nBFg9.js +6 -0
  1087. langflow/frontend/assets/map-pinned-_L6tdSqT.js +6 -0
  1088. langflow/frontend/assets/map-plus-e3tT9bJU.js +6 -0
  1089. langflow/frontend/assets/mars-D3n6iNJU.js +6 -0
  1090. langflow/frontend/assets/mars-stroke-SDf1BZzI.js +6 -0
  1091. langflow/frontend/assets/martini-Cso2cAtV.js +6 -0
  1092. langflow/frontend/assets/maximize-2-DHSk0cTD.js +6 -0
  1093. langflow/frontend/assets/maximize-CnGcTGWN.js +6 -0
  1094. langflow/frontend/assets/medal-CokAx9vO.js +6 -0
  1095. langflow/frontend/assets/megaphone-BtVT_cX4.js +6 -0
  1096. langflow/frontend/assets/megaphone-off-BEuERoS9.js +6 -0
  1097. langflow/frontend/assets/meh-Bzp4iIbB.js +6 -0
  1098. langflow/frontend/assets/memory-stick-CSdTTmgS.js +6 -0
  1099. langflow/frontend/assets/menu-DsC61_-Q.js +6 -0
  1100. langflow/frontend/assets/merge-CbcoEUxh.js +6 -0
  1101. langflow/frontend/assets/message-circle-BKLI0JbG.js +6 -0
  1102. langflow/frontend/assets/message-circle-code-B0jhPYIY.js +6 -0
  1103. langflow/frontend/assets/message-circle-dashed-CHRMKyR1.js +6 -0
  1104. langflow/frontend/assets/message-circle-heart-MKsLRvX7.js +6 -0
  1105. langflow/frontend/assets/message-circle-more-nZPelT-C.js +6 -0
  1106. langflow/frontend/assets/message-circle-off-8_n6qwdh.js +6 -0
  1107. langflow/frontend/assets/message-circle-plus-DlTBBhSL.js +6 -0
  1108. langflow/frontend/assets/message-circle-question-C6h9XJR-.js +6 -0
  1109. langflow/frontend/assets/message-circle-reply-DF53vecc.js +6 -0
  1110. langflow/frontend/assets/message-circle-warning-_gVkfPhY.js +6 -0
  1111. langflow/frontend/assets/message-circle-x-DnMCvT9U.js +6 -0
  1112. langflow/frontend/assets/message-square-DUbvrTew.js +6 -0
  1113. langflow/frontend/assets/message-square-code-CXHPICGq.js +6 -0
  1114. langflow/frontend/assets/message-square-dashed-BY3BbejF.js +6 -0
  1115. langflow/frontend/assets/message-square-diff-DTPf_rle.js +6 -0
  1116. langflow/frontend/assets/message-square-dot-CCU_hAid.js +6 -0
  1117. langflow/frontend/assets/message-square-heart-JaHDr68J.js +6 -0
  1118. langflow/frontend/assets/message-square-lock-Tq0lZr8h.js +6 -0
  1119. langflow/frontend/assets/message-square-more-D-Yveymk.js +6 -0
  1120. langflow/frontend/assets/message-square-off-CpKwab5y.js +6 -0
  1121. langflow/frontend/assets/message-square-plus-B8pCqs0N.js +6 -0
  1122. langflow/frontend/assets/message-square-quote-LA0Sf5YL.js +6 -0
  1123. langflow/frontend/assets/message-square-reply-D2gunwrf.js +6 -0
  1124. langflow/frontend/assets/message-square-share-CbRvGBAu.js +6 -0
  1125. langflow/frontend/assets/message-square-text-DGdfW6ZW.js +6 -0
  1126. langflow/frontend/assets/message-square-warning-CBHe5HQF.js +6 -0
  1127. langflow/frontend/assets/message-square-x-BZgCspIm.js +6 -0
  1128. langflow/frontend/assets/messages-square-BHeDiVuw.js +6 -0
  1129. langflow/frontend/assets/mic-BYU0RVS-.js +6 -0
  1130. langflow/frontend/assets/mic-off-DHByIDiz.js +6 -0
  1131. langflow/frontend/assets/mic-vocal-Ci9G5rLy.js +6 -0
  1132. langflow/frontend/assets/microchip-CDOdIk-0.js +6 -0
  1133. langflow/frontend/assets/microscope-j8JVE3rM.js +6 -0
  1134. langflow/frontend/assets/microwave-DN-B5ZU-.js +6 -0
  1135. langflow/frontend/assets/milestone-CLnQvtEc.js +6 -0
  1136. langflow/frontend/assets/milk-DKmDhVxQ.js +6 -0
  1137. langflow/frontend/assets/milk-off-W1ao98Ca.js +6 -0
  1138. langflow/frontend/assets/minimize-2-BquPqdN9.js +6 -0
  1139. langflow/frontend/assets/minimize-S8RUW79L.js +6 -0
  1140. langflow/frontend/assets/monitor-TgwLunHC.js +6 -0
  1141. langflow/frontend/assets/monitor-check-CW7ybwSo.js +6 -0
  1142. langflow/frontend/assets/monitor-cog-4stZL-NF.js +6 -0
  1143. langflow/frontend/assets/monitor-dot-BHFcstTz.js +6 -0
  1144. langflow/frontend/assets/monitor-down-Dm7TY7pJ.js +6 -0
  1145. langflow/frontend/assets/monitor-off-DPwblq5d.js +6 -0
  1146. langflow/frontend/assets/monitor-pause-BYfAj-vx.js +6 -0
  1147. langflow/frontend/assets/monitor-play-BcSaPO3l.js +6 -0
  1148. langflow/frontend/assets/monitor-smartphone-Da86SUFW.js +6 -0
  1149. langflow/frontend/assets/monitor-speaker-DCI9qZR2.js +6 -0
  1150. langflow/frontend/assets/monitor-stop-D4qYx5f2.js +6 -0
  1151. langflow/frontend/assets/monitor-up-61RBMYvU.js +6 -0
  1152. langflow/frontend/assets/monitor-x-B4hwJL2h.js +6 -0
  1153. langflow/frontend/assets/moon-star-Dzl7yjJa.js +6 -0
  1154. langflow/frontend/assets/moon-u9JML7e_.js +6 -0
  1155. langflow/frontend/assets/mountain-q1fxdCOV.js +6 -0
  1156. langflow/frontend/assets/mountain-snow-mSNlFeiH.js +6 -0
  1157. langflow/frontend/assets/mouse-DUgS4hAe.js +6 -0
  1158. langflow/frontend/assets/mouse-off-uiXC0OxT.js +6 -0
  1159. langflow/frontend/assets/mouse-pointer-2-H1Jadm8s.js +6 -0
  1160. langflow/frontend/assets/mouse-pointer-aOwFXl0P.js +6 -0
  1161. langflow/frontend/assets/mouse-pointer-ban-Bw_D94wo.js +6 -0
  1162. langflow/frontend/assets/mouse-pointer-click-FT63ceP5.js +6 -0
  1163. langflow/frontend/assets/move-3d-BUr00cdG.js +6 -0
  1164. langflow/frontend/assets/move-Dw0iPVGl.js +6 -0
  1165. langflow/frontend/assets/move-diagonal-2-C9i-E6eN.js +6 -0
  1166. langflow/frontend/assets/move-diagonal-bFxJ-Dxl.js +6 -0
  1167. langflow/frontend/assets/move-down-BYRcS_00.js +6 -0
  1168. langflow/frontend/assets/move-down-left-BaNhVRMq.js +6 -0
  1169. langflow/frontend/assets/move-down-right-zi-0KIKz.js +6 -0
  1170. langflow/frontend/assets/move-horizontal-C7TOtVnX.js +6 -0
  1171. langflow/frontend/assets/move-left-cPGUpRa3.js +6 -0
  1172. langflow/frontend/assets/move-right-BPfJg_Uj.js +6 -0
  1173. langflow/frontend/assets/move-up-DbtFCKRG.js +6 -0
  1174. langflow/frontend/assets/move-up-left-CK8_JnOt.js +6 -0
  1175. langflow/frontend/assets/move-up-right-u49J91bG.js +6 -0
  1176. langflow/frontend/assets/move-vertical-DxRDF4Ew.js +6 -0
  1177. langflow/frontend/assets/music-2-cNznDV1T.js +6 -0
  1178. langflow/frontend/assets/music-3-C3i4BTm-.js +6 -0
  1179. langflow/frontend/assets/music-4-DsDrqely.js +6 -0
  1180. langflow/frontend/assets/music-D5p_SYy1.js +6 -0
  1181. langflow/frontend/assets/navigation-2-CgU4pLVU.js +6 -0
  1182. langflow/frontend/assets/navigation-2-off-Btr1_Iog.js +6 -0
  1183. langflow/frontend/assets/navigation-Cy03l3Es.js +6 -0
  1184. langflow/frontend/assets/navigation-off-AND2F8a1.js +6 -0
  1185. langflow/frontend/assets/network-Cih4ujuq.js +6 -0
  1186. langflow/frontend/assets/newspaper-0HrHbH3l.js +6 -0
  1187. langflow/frontend/assets/nfc-B8E_m1JO.js +6 -0
  1188. langflow/frontend/assets/non-binary-BSbJqvu8.js +6 -0
  1189. langflow/frontend/assets/notebook-CyGqTsAE.js +6 -0
  1190. langflow/frontend/assets/notebook-pen-ChWeekac.js +6 -0
  1191. langflow/frontend/assets/notebook-tabs-DNBQQrVW.js +6 -0
  1192. langflow/frontend/assets/notebook-text-FsPAspl_.js +6 -0
  1193. langflow/frontend/assets/notepad-text-CsblEbUu.js +6 -0
  1194. langflow/frontend/assets/notepad-text-dashed-Ce3ofgNM.js +6 -0
  1195. langflow/frontend/assets/nut-CyA8wqIJ.js +6 -0
  1196. langflow/frontend/assets/nut-off-Z-SOlFzj.js +6 -0
  1197. langflow/frontend/assets/octagon-DoJxi7B_.js +6 -0
  1198. langflow/frontend/assets/octagon-alert-DwlPSjs5.js +6 -0
  1199. langflow/frontend/assets/octagon-minus-d3eC0J7m.js +6 -0
  1200. langflow/frontend/assets/octagon-pause-C7xo8Th3.js +6 -0
  1201. langflow/frontend/assets/octagon-x-Coijn-A8.js +6 -0
  1202. langflow/frontend/assets/omega-D_7GAlT6.js +6 -0
  1203. langflow/frontend/assets/option-Bm23Qxxw.js +6 -0
  1204. langflow/frontend/assets/orbit-CA9ab4Gd.js +6 -0
  1205. langflow/frontend/assets/origami-DDr3Ad-y.js +6 -0
  1206. langflow/frontend/assets/package-2-BJzXgXwK.js +6 -0
  1207. langflow/frontend/assets/package-DmnBNL3w.js +6 -0
  1208. langflow/frontend/assets/package-check-DR7rBo__.js +6 -0
  1209. langflow/frontend/assets/package-minus-CMQIoWv-.js +6 -0
  1210. langflow/frontend/assets/package-open-C6oI5bjy.js +6 -0
  1211. langflow/frontend/assets/package-plus-BiQPuiSf.js +6 -0
  1212. langflow/frontend/assets/package-search-xmLVZc5a.js +6 -0
  1213. langflow/frontend/assets/package-x-iZei1-yI.js +6 -0
  1214. langflow/frontend/assets/paint-bucket-B1ArbAp0.js +6 -0
  1215. langflow/frontend/assets/paint-roller-BwqD9QPu.js +6 -0
  1216. langflow/frontend/assets/paintbrush-Dn2epmVU.js +6 -0
  1217. langflow/frontend/assets/paintbrush-vertical-QDvk56aP.js +6 -0
  1218. langflow/frontend/assets/palette-CxYKVgKw.js +6 -0
  1219. langflow/frontend/assets/panel-bottom-B5O65dkk.js +6 -0
  1220. langflow/frontend/assets/panel-bottom-close-DVRUrKjP.js +6 -0
  1221. langflow/frontend/assets/panel-bottom-dashed-BZ33NsAe.js +6 -0
  1222. langflow/frontend/assets/panel-bottom-open-ChgeoiMb.js +6 -0
  1223. langflow/frontend/assets/panel-left-close-DJIMgFwg.js +6 -0
  1224. langflow/frontend/assets/panel-left-dashed-DB9LOBwh.js +6 -0
  1225. langflow/frontend/assets/panel-left-open-DO7wKR-c.js +6 -0
  1226. langflow/frontend/assets/panel-right-TkLeOwPF.js +6 -0
  1227. langflow/frontend/assets/panel-right-close-D6-ZwQs3.js +6 -0
  1228. langflow/frontend/assets/panel-right-dashed-lIsWCUXQ.js +6 -0
  1229. langflow/frontend/assets/panel-right-open-CmUTjWJV.js +6 -0
  1230. langflow/frontend/assets/panel-top-PItTdUcL.js +6 -0
  1231. langflow/frontend/assets/panel-top-close-AmpFhKhl.js +6 -0
  1232. langflow/frontend/assets/panel-top-dashed-CEPj7SBt.js +6 -0
  1233. langflow/frontend/assets/panel-top-open-DpZ4WXDh.js +6 -0
  1234. langflow/frontend/assets/panels-left-bottom-Dze6eotS.js +6 -0
  1235. langflow/frontend/assets/panels-right-bottom-DhkANjpa.js +6 -0
  1236. langflow/frontend/assets/panels-top-left-DnbQdHtc.js +6 -0
  1237. langflow/frontend/assets/paperclip-B8JYjhUO.js +6 -0
  1238. langflow/frontend/assets/parentheses-DXj-mR36.js +6 -0
  1239. langflow/frontend/assets/parking-meter-Dyf3woCo.js +6 -0
  1240. langflow/frontend/assets/party-popper-CFt4fxuN.js +6 -0
  1241. langflow/frontend/assets/pause-DXYzNNKG.js +6 -0
  1242. langflow/frontend/assets/paw-print-D96TWLLS.js +6 -0
  1243. langflow/frontend/assets/pc-case-BbLTuvEQ.js +6 -0
  1244. langflow/frontend/assets/pen-BxCrMLOT.js +6 -0
  1245. langflow/frontend/assets/pen-line-Dr2L8EU8.js +6 -0
  1246. langflow/frontend/assets/pen-off-BoHZROoW.js +6 -0
  1247. langflow/frontend/assets/pen-tool-CNR50Y_V.js +6 -0
  1248. langflow/frontend/assets/pencil-B6nujrxx.js +6 -0
  1249. langflow/frontend/assets/pencil-line-Cz6MwHpQ.js +6 -0
  1250. langflow/frontend/assets/pencil-off-EZPzHVOm.js +6 -0
  1251. langflow/frontend/assets/pencil-ruler-_6wJJipi.js +6 -0
  1252. langflow/frontend/assets/pentagon-MbLrUWqm.js +6 -0
  1253. langflow/frontend/assets/percent-D2bQF_UE.js +6 -0
  1254. langflow/frontend/assets/person-standing-B_zA-W28.js +6 -0
  1255. langflow/frontend/assets/philippine-peso-gSQug9tz.js +6 -0
  1256. langflow/frontend/assets/phone-DGe1z4aO.js +6 -0
  1257. langflow/frontend/assets/phone-call-9Lnc5sk9.js +6 -0
  1258. langflow/frontend/assets/phone-forwarded-BP_Xco9V.js +6 -0
  1259. langflow/frontend/assets/phone-incoming-BnN7JeGS.js +6 -0
  1260. langflow/frontend/assets/phone-missed-CxjuHhgE.js +6 -0
  1261. langflow/frontend/assets/phone-off-0h94g45c.js +6 -0
  1262. langflow/frontend/assets/phone-outgoing-YqnGMWE4.js +6 -0
  1263. langflow/frontend/assets/pi-rZiGG5Mt.js +6 -0
  1264. langflow/frontend/assets/piano-CUgi002u.js +6 -0
  1265. langflow/frontend/assets/pickaxe-LFAKkxF8.js +6 -0
  1266. langflow/frontend/assets/picture-in-picture-2-LUic8OvG.js +6 -0
  1267. langflow/frontend/assets/picture-in-picture-mZWRZ8dm.js +6 -0
  1268. langflow/frontend/assets/piggy-bank-CgRjS7L6.js +6 -0
  1269. langflow/frontend/assets/pilcrow-8oxT9LRF.js +6 -0
  1270. langflow/frontend/assets/pilcrow-left-vbzjIx9N.js +6 -0
  1271. langflow/frontend/assets/pilcrow-right-D4gz3lDq.js +6 -0
  1272. langflow/frontend/assets/pill-CW00bntu.js +6 -0
  1273. langflow/frontend/assets/pill-bottle-yDVEqGy3.js +6 -0
  1274. langflow/frontend/assets/pin-MlO3bTAS.js +6 -0
  1275. langflow/frontend/assets/pin-off-82a1A1bt.js +6 -0
  1276. langflow/frontend/assets/pipette-Bk4NLmv4.js +6 -0
  1277. langflow/frontend/assets/pizza-ToIH3tMd.js +6 -0
  1278. langflow/frontend/assets/plane-DspEWMZm.js +6 -0
  1279. langflow/frontend/assets/plane-landing-KcBe5hYB.js +6 -0
  1280. langflow/frontend/assets/plane-takeoff-FNKrioor.js +6 -0
  1281. langflow/frontend/assets/play-BHLevo9A.js +6 -0
  1282. langflow/frontend/assets/plug-2-DcEQoU17.js +6 -0
  1283. langflow/frontend/assets/plug-DpvQ-6Zi.js +6 -0
  1284. langflow/frontend/assets/plug-zap-BpqdQISN.js +6 -0
  1285. langflow/frontend/assets/pocket-At7m6mab.js +6 -0
  1286. langflow/frontend/assets/pocket-knife-BK4p4Ti2.js +6 -0
  1287. langflow/frontend/assets/podcast-D0ohzOgX.js +6 -0
  1288. langflow/frontend/assets/pointer-off-B-0X80ef.js +6 -0
  1289. langflow/frontend/assets/pointer-xZv1TKV0.js +6 -0
  1290. langflow/frontend/assets/popcorn-B2nfGi06.js +6 -0
  1291. langflow/frontend/assets/popsicle-Zg3WybsE.js +6 -0
  1292. langflow/frontend/assets/pound-sterling-CRDzzqXA.js +6 -0
  1293. langflow/frontend/assets/power-BMziFVVD.js +6 -0
  1294. langflow/frontend/assets/power-off-BPw7dgNf.js +6 -0
  1295. langflow/frontend/assets/presentation-BXElJD31.js +6 -0
  1296. langflow/frontend/assets/printer-I7fWmGxh.js +6 -0
  1297. langflow/frontend/assets/printer-check-ClcFa-BX.js +6 -0
  1298. langflow/frontend/assets/projector-UT_-K1JW.js +6 -0
  1299. langflow/frontend/assets/proportions-BjBb5aWZ.js +6 -0
  1300. langflow/frontend/assets/puzzle-hYLjpTTe.js +6 -0
  1301. langflow/frontend/assets/pyramid-Co-1ymza.js +6 -0
  1302. langflow/frontend/assets/qr-code-CcCcthY6.js +6 -0
  1303. langflow/frontend/assets/quote-BvFv33oE.js +6 -0
  1304. langflow/frontend/assets/rabbit-BnoYK_10.js +6 -0
  1305. langflow/frontend/assets/radar-ikaI7SeA.js +6 -0
  1306. langflow/frontend/assets/radiation-CnU3D7uJ.js +6 -0
  1307. langflow/frontend/assets/radical-CeqK9TwT.js +6 -0
  1308. langflow/frontend/assets/radio-CKQwQ9G5.js +6 -0
  1309. langflow/frontend/assets/radio-receiver-Bu2hR3WR.js +6 -0
  1310. langflow/frontend/assets/radio-tower-rc6ZMrZe.js +6 -0
  1311. langflow/frontend/assets/radius-Q3QXGZPv.js +6 -0
  1312. langflow/frontend/assets/rail-symbol-B0Gzn2Dq.js +6 -0
  1313. langflow/frontend/assets/rainbow-BzzFmBbp.js +6 -0
  1314. langflow/frontend/assets/rat-BrQcRhIb.js +6 -0
  1315. langflow/frontend/assets/ratio-Cp5Q8Suu.js +6 -0
  1316. langflow/frontend/assets/receipt-cent-B1uJfI5t.js +6 -0
  1317. langflow/frontend/assets/receipt-euro-BjU9TQZR.js +6 -0
  1318. langflow/frontend/assets/receipt-indian-rupee-DeGRpKFr.js +6 -0
  1319. langflow/frontend/assets/receipt-japanese-yen-CJYaI76z.js +6 -0
  1320. langflow/frontend/assets/receipt-koWGgKDe.js +6 -0
  1321. langflow/frontend/assets/receipt-pound-sterling-9haFrqZU.js +6 -0
  1322. langflow/frontend/assets/receipt-russian-ruble-CmwenUiq.js +6 -0
  1323. langflow/frontend/assets/receipt-swiss-franc-Da-CPp-L.js +6 -0
  1324. langflow/frontend/assets/receipt-text-CaSmgyFS.js +6 -0
  1325. langflow/frontend/assets/rectangle-ellipsis-Dv7wxYyx.js +6 -0
  1326. langflow/frontend/assets/rectangle-goggles-DYB1VtsR.js +6 -0
  1327. langflow/frontend/assets/rectangle-horizontal-DpF5Tn2e.js +6 -0
  1328. langflow/frontend/assets/rectangle-vertical-DgGJHYBk.js +6 -0
  1329. langflow/frontend/assets/recycle-BFmrl-uo.js +6 -0
  1330. langflow/frontend/assets/redo-2-I53B3VmB.js +6 -0
  1331. langflow/frontend/assets/redo-WwlhElI0.js +6 -0
  1332. langflow/frontend/assets/redo-dot-DrEylwtk.js +6 -0
  1333. langflow/frontend/assets/refresh-ccw-D4I57NoJ.js +6 -0
  1334. langflow/frontend/assets/refresh-ccw-dot-CRDK3AA7.js +6 -0
  1335. langflow/frontend/assets/refresh-cw-BF4kXegR.js +6 -0
  1336. langflow/frontend/assets/refresh-cw-off-Ddb-6LGJ.js +6 -0
  1337. langflow/frontend/assets/refrigerator-CqCs3gBS.js +6 -0
  1338. langflow/frontend/assets/regex-BDOGmlkd.js +6 -0
  1339. langflow/frontend/assets/remove-formatting-vJviEFGE.js +6 -0
  1340. langflow/frontend/assets/repeat-1-DYDTXNkl.js +6 -0
  1341. langflow/frontend/assets/repeat-2-DMsq5v-B.js +6 -0
  1342. langflow/frontend/assets/repeat-B1b9eVGG.js +6 -0
  1343. langflow/frontend/assets/replace-all-BaYtgz-_.js +6 -0
  1344. langflow/frontend/assets/replace-dpYVNaCV.js +6 -0
  1345. langflow/frontend/assets/reply-all-CdU4Kl59.js +6 -0
  1346. langflow/frontend/assets/reply-fAiYESAl.js +6 -0
  1347. langflow/frontend/assets/rewind-DJvtALd_.js +6 -0
  1348. langflow/frontend/assets/ribbon-BwJ0_M6l.js +6 -0
  1349. langflow/frontend/assets/rocket-B8c0mPJ-.js +6 -0
  1350. langflow/frontend/assets/rocking-chair-DG6p_IG8.js +6 -0
  1351. langflow/frontend/assets/roller-coaster-BDKzSMYR.js +6 -0
  1352. langflow/frontend/assets/rotate-3d-DwQauFPy.js +6 -0
  1353. langflow/frontend/assets/rotate-ccw-key-DlcpVCrV.js +6 -0
  1354. langflow/frontend/assets/rotate-ccw-rSbLWp0O.js +6 -0
  1355. langflow/frontend/assets/rotate-ccw-square-CINHrJJD.js +6 -0
  1356. langflow/frontend/assets/rotate-cw-9s4WV2Ss.js +6 -0
  1357. langflow/frontend/assets/rotate-cw-square-BfUM_xrz.js +6 -0
  1358. langflow/frontend/assets/route-By4kro_M.js +6 -0
  1359. langflow/frontend/assets/route-off-B0FV40WS.js +6 -0
  1360. langflow/frontend/assets/router-DtXUqabh.js +6 -0
  1361. langflow/frontend/assets/rows-2-PzWjsVzQ.js +6 -0
  1362. langflow/frontend/assets/rows-3-Cq2Ld3np.js +6 -0
  1363. langflow/frontend/assets/rows-4-UCHZRqV9.js +6 -0
  1364. langflow/frontend/assets/rss-2YE08DA_.js +6 -0
  1365. langflow/frontend/assets/ruler-D6EvUoXL.js +6 -0
  1366. langflow/frontend/assets/ruler-dimension-line-_E0McLCd.js +6 -0
  1367. langflow/frontend/assets/russian-ruble-BbWWqAzY.js +6 -0
  1368. langflow/frontend/assets/sailboat-TuadlhZz.js +6 -0
  1369. langflow/frontend/assets/salad-Cw66CLXD.js +6 -0
  1370. langflow/frontend/assets/sandwich-QRf8SkpN.js +6 -0
  1371. langflow/frontend/assets/satellite-bqIDJe-4.js +6 -0
  1372. langflow/frontend/assets/satellite-dish-BARKbqA3.js +6 -0
  1373. langflow/frontend/assets/saudi-riyal-DOctqb1E.js +6 -0
  1374. langflow/frontend/assets/save-C13IOu6R.js +6 -0
  1375. langflow/frontend/assets/save-all-CafpO6Fj.js +6 -0
  1376. langflow/frontend/assets/save-off-Db3hwQcI.js +6 -0
  1377. langflow/frontend/assets/scale-3d-BnBM6bbO.js +6 -0
  1378. langflow/frontend/assets/scale-DoxUrNaX.js +6 -0
  1379. langflow/frontend/assets/scaling-CvvpOJ27.js +6 -0
  1380. langflow/frontend/assets/scan-CUxHw60x.js +6 -0
  1381. langflow/frontend/assets/scan-barcode-DVC1pIvo.js +6 -0
  1382. langflow/frontend/assets/scan-eye-cJ_b3_rs.js +6 -0
  1383. langflow/frontend/assets/scan-face-BeYZj9i1.js +6 -0
  1384. langflow/frontend/assets/scan-heart-B5QVULNR.js +6 -0
  1385. langflow/frontend/assets/scan-line-DCe5lzP6.js +6 -0
  1386. langflow/frontend/assets/scan-qr-code-CyUlbhgh.js +6 -0
  1387. langflow/frontend/assets/scan-search-CudwFevV.js +6 -0
  1388. langflow/frontend/assets/scan-text-B1VlO1uZ.js +6 -0
  1389. langflow/frontend/assets/school-C8Ey8eIj.js +6 -0
  1390. langflow/frontend/assets/scissors-B_rfswxb.js +6 -0
  1391. langflow/frontend/assets/scissors-line-dashed-NTpM_2Zj.js +6 -0
  1392. langflow/frontend/assets/screen-share-ByKrVM-A.js +6 -0
  1393. langflow/frontend/assets/screen-share-off-CqxKixfz.js +6 -0
  1394. langflow/frontend/assets/scroll-CAmLNrlT.js +6 -0
  1395. langflow/frontend/assets/scroll-text-DHKWaVtk.js +6 -0
  1396. langflow/frontend/assets/search-check-DzpbETaN.js +6 -0
  1397. langflow/frontend/assets/search-code-vkW7JLnX.js +6 -0
  1398. langflow/frontend/assets/search-slash-UtBf5eFO.js +6 -0
  1399. langflow/frontend/assets/search-x-D0aStKy8.js +6 -0
  1400. langflow/frontend/assets/section-B3Apbsr5.js +6 -0
  1401. langflow/frontend/assets/send-Dcy0qqek.js +6 -0
  1402. langflow/frontend/assets/send-horizontal-BUaqrQZX.js +6 -0
  1403. langflow/frontend/assets/send-to-back-CAlrNU5z.js +6 -0
  1404. langflow/frontend/assets/separator-horizontal-p7xH0ovm.js +6 -0
  1405. langflow/frontend/assets/separator-vertical-8DyLhdAJ.js +6 -0
  1406. langflow/frontend/assets/server-AIRY4m_N.js +6 -0
  1407. langflow/frontend/assets/server-cog-DqDj0ewX.js +6 -0
  1408. langflow/frontend/assets/server-crash-Cc1Yw9Eu.js +6 -0
  1409. langflow/frontend/assets/server-off-Cam7b_8K.js +6 -0
  1410. langflow/frontend/assets/settings-2-BlcPZ1qG.js +6 -0
  1411. langflow/frontend/assets/settings-DgETg7eA.js +6 -0
  1412. langflow/frontend/assets/shapes-mJ5AEPp_.js +6 -0
  1413. langflow/frontend/assets/share-2-Nh6Weip8.js +6 -0
  1414. langflow/frontend/assets/share-O76aTk-h.js +6 -0
  1415. langflow/frontend/assets/sheet-CVV8x9w7.js +6 -0
  1416. langflow/frontend/assets/shell-CfPKzhf-.js +6 -0
  1417. langflow/frontend/assets/shield-CA-bPKyN.js +6 -0
  1418. langflow/frontend/assets/shield-alert-RD-ATIOm.js +6 -0
  1419. langflow/frontend/assets/shield-ban-C4dNjAYr.js +6 -0
  1420. langflow/frontend/assets/shield-check-DL1RpCFi.js +6 -0
  1421. langflow/frontend/assets/shield-ellipsis-CT76-Yc7.js +6 -0
  1422. langflow/frontend/assets/shield-half-CwR0c7-O.js +6 -0
  1423. langflow/frontend/assets/shield-minus-CH_2_xwd.js +6 -0
  1424. langflow/frontend/assets/shield-off-D42UdLeP.js +6 -0
  1425. langflow/frontend/assets/shield-plus-DV2e3NU2.js +6 -0
  1426. langflow/frontend/assets/shield-question-BHPF4pdj.js +6 -0
  1427. langflow/frontend/assets/shield-user-DNKM4LuY.js +6 -0
  1428. langflow/frontend/assets/shield-x-F2Eo9JvV.js +6 -0
  1429. langflow/frontend/assets/ship-BAW6vDRc.js +6 -0
  1430. langflow/frontend/assets/ship-wheel-mPgktKaL.js +6 -0
  1431. langflow/frontend/assets/shirt-CgIajWER.js +6 -0
  1432. langflow/frontend/assets/shopping-bag-CacAAVkR.js +6 -0
  1433. langflow/frontend/assets/shopping-basket-s8rInQu9.js +6 -0
  1434. langflow/frontend/assets/shopping-cart-C1Gzk9Tq.js +6 -0
  1435. langflow/frontend/assets/shovel-BxFpRbVM.js +6 -0
  1436. langflow/frontend/assets/shower-head-xViSLXdu.js +6 -0
  1437. langflow/frontend/assets/shredder-Cm0kLVA0.js +6 -0
  1438. langflow/frontend/assets/shrimp--_ofjQGj.js +6 -0
  1439. langflow/frontend/assets/shrink-DvcVP3T0.js +6 -0
  1440. langflow/frontend/assets/shrub-BZL96DRg.js +6 -0
  1441. langflow/frontend/assets/shuffle-D5Jd588i.js +6 -0
  1442. langflow/frontend/assets/sigma-BwcVom8A.js +6 -0
  1443. langflow/frontend/assets/signal-Bk6_BU63.js +6 -0
  1444. langflow/frontend/assets/signal-high-CwURO3f8.js +6 -0
  1445. langflow/frontend/assets/signal-low-CrSc8ykg.js +6 -0
  1446. langflow/frontend/assets/signal-medium-CjT7IjcN.js +6 -0
  1447. langflow/frontend/assets/signal-zero-DvGgUpTm.js +6 -0
  1448. langflow/frontend/assets/signature-DKKp8Xgg.js +6 -0
  1449. langflow/frontend/assets/signpost-CD0G_qKi.js +6 -0
  1450. langflow/frontend/assets/signpost-big-CjAt0rHs.js +6 -0
  1451. langflow/frontend/assets/siren-Cztc_Y_C.js +6 -0
  1452. langflow/frontend/assets/skip-back-BXch91XJ.js +6 -0
  1453. langflow/frontend/assets/skip-forward-BpaGcdGk.js +6 -0
  1454. langflow/frontend/assets/skull-89s-PUhK.js +6 -0
  1455. langflow/frontend/assets/slack-DA0H7ih5.js +6 -0
  1456. langflow/frontend/assets/slash-BBAEqAkG.js +6 -0
  1457. langflow/frontend/assets/slice-wO4szBCQ.js +6 -0
  1458. langflow/frontend/assets/sliders-horizontal-Cl3XxgrS.js +6 -0
  1459. langflow/frontend/assets/sliders-vertical-DP6mad4o.js +6 -0
  1460. langflow/frontend/assets/smartphone-DdlgIFJl.js +6 -0
  1461. langflow/frontend/assets/smartphone-charging-htYljDCV.js +6 -0
  1462. langflow/frontend/assets/smartphone-nfc-BQNZhdCt.js +6 -0
  1463. langflow/frontend/assets/smile-CnEe3PKH.js +6 -0
  1464. langflow/frontend/assets/smile-plus-DmW-yKH9.js +6 -0
  1465. langflow/frontend/assets/snail-CQymSKAb.js +6 -0
  1466. langflow/frontend/assets/snowflake-bv5SRkMd.js +6 -0
  1467. langflow/frontend/assets/sofa-vlR_2Dam.js +6 -0
  1468. langflow/frontend/assets/soup-BRm7rUNh.js +6 -0
  1469. langflow/frontend/assets/space-Djxwhlya.js +6 -0
  1470. langflow/frontend/assets/spade-KBDtVhB-.js +6 -0
  1471. langflow/frontend/assets/sparkle-CPDX03Rj.js +6 -0
  1472. langflow/frontend/assets/sparkles-Dey-8PKB.js +6 -0
  1473. langflow/frontend/assets/speaker-Ci2cauA7.js +6 -0
  1474. langflow/frontend/assets/speech-BWb-VIW0.js +6 -0
  1475. langflow/frontend/assets/spell-check-2-DhjDdIwW.js +6 -0
  1476. langflow/frontend/assets/spell-check-6cr0Hxii.js +6 -0
  1477. langflow/frontend/assets/spline-m3o9OS7h.js +6 -0
  1478. langflow/frontend/assets/spline-pointer-BqMAcqE7.js +6 -0
  1479. langflow/frontend/assets/split-CURK5DNx.js +6 -0
  1480. langflow/frontend/assets/spray-can-CVdOyo6i.js +6 -0
  1481. langflow/frontend/assets/sprout-Cpnpgn-A.js +6 -0
  1482. langflow/frontend/assets/square-CpzLCpyA.js +6 -0
  1483. langflow/frontend/assets/square-activity-pWJd5G5r.js +6 -0
  1484. langflow/frontend/assets/square-arrow-down-left-DQwjmb69.js +6 -0
  1485. langflow/frontend/assets/square-arrow-down-right-Ch52Mxu4.js +6 -0
  1486. langflow/frontend/assets/square-arrow-down-tCFL2uwb.js +6 -0
  1487. langflow/frontend/assets/square-arrow-left-C1r5qqGN.js +6 -0
  1488. langflow/frontend/assets/square-arrow-out-down-left-C0JdVE6P.js +6 -0
  1489. langflow/frontend/assets/square-arrow-out-down-right-caPuYO_6.js +6 -0
  1490. langflow/frontend/assets/square-arrow-out-up-left-CyXAOoEF.js +6 -0
  1491. langflow/frontend/assets/square-arrow-out-up-right-gjmIEA0y.js +6 -0
  1492. langflow/frontend/assets/square-arrow-right-DfBrwYUf.js +6 -0
  1493. langflow/frontend/assets/square-arrow-up-left-CimJAC8a.js +6 -0
  1494. langflow/frontend/assets/square-arrow-up-right-2UakHbc9.js +6 -0
  1495. langflow/frontend/assets/square-arrow-up-tUlp0wC9.js +6 -0
  1496. langflow/frontend/assets/square-asterisk-s_IQzkqy.js +6 -0
  1497. langflow/frontend/assets/square-bottom-dashed-scissors-BfDm20ZR.js +6 -0
  1498. langflow/frontend/assets/square-chart-gantt-D40tdHWB.js +6 -0
  1499. langflow/frontend/assets/square-check-big-9yoKtKUj.js +6 -0
  1500. langflow/frontend/assets/square-check-ptPZ-xY2.js +6 -0
  1501. langflow/frontend/assets/square-chevron-down-CsS-YuP8.js +6 -0
  1502. langflow/frontend/assets/square-chevron-left-BjYxd47_.js +6 -0
  1503. langflow/frontend/assets/square-chevron-right-KbS6df2Z.js +6 -0
  1504. langflow/frontend/assets/square-chevron-up-CrX2LVoW.js +6 -0
  1505. langflow/frontend/assets/square-code-BSqo5G-p.js +6 -0
  1506. langflow/frontend/assets/square-dashed-B-tlBE7l.js +6 -0
  1507. langflow/frontend/assets/square-dashed-bottom-DOAbBVEE.js +6 -0
  1508. langflow/frontend/assets/square-dashed-bottom-code-DwoNtFOg.js +6 -0
  1509. langflow/frontend/assets/square-dashed-kanban-BIxL4pf4.js +6 -0
  1510. langflow/frontend/assets/square-dashed-mouse-pointer-DrjTsK-1.js +6 -0
  1511. langflow/frontend/assets/square-divide-DJF2tfJQ.js +6 -0
  1512. langflow/frontend/assets/square-dot-D0iQZ9QW.js +6 -0
  1513. langflow/frontend/assets/square-equal-NcrUYZVl.js +6 -0
  1514. langflow/frontend/assets/square-function-BsD2IM1o.js +6 -0
  1515. langflow/frontend/assets/square-kanban-Do2KYGtR.js +6 -0
  1516. langflow/frontend/assets/square-library-CMzHZTLU.js +6 -0
  1517. langflow/frontend/assets/square-m-BIaqnsmP.js +6 -0
  1518. langflow/frontend/assets/square-menu-BHyG91lq.js +6 -0
  1519. langflow/frontend/assets/square-minus-NsS5C0Nn.js +6 -0
  1520. langflow/frontend/assets/square-mouse-pointer-Dzj13R1O.js +6 -0
  1521. langflow/frontend/assets/square-parking-AWNpFHUG.js +6 -0
  1522. langflow/frontend/assets/square-parking-off-KKsCw1XC.js +6 -0
  1523. langflow/frontend/assets/square-pen-bIAXzLf7.js +6 -0
  1524. langflow/frontend/assets/square-percent-BjgJwH8a.js +6 -0
  1525. langflow/frontend/assets/square-pi-DnNuDfq-.js +6 -0
  1526. langflow/frontend/assets/square-pilcrow-DANHwdVB.js +6 -0
  1527. langflow/frontend/assets/square-play-DAQtHGKc.js +6 -0
  1528. langflow/frontend/assets/square-plus-CRV705Ah.js +6 -0
  1529. langflow/frontend/assets/square-power-A0kogQV8.js +6 -0
  1530. langflow/frontend/assets/square-radical-eaw23tdn.js +6 -0
  1531. langflow/frontend/assets/square-round-corner-CaQUVGHP.js +6 -0
  1532. langflow/frontend/assets/square-scissors-BODLQ9Dp.js +6 -0
  1533. langflow/frontend/assets/square-sigma-B1u-ARdF.js +6 -0
  1534. langflow/frontend/assets/square-slash-DEWAT1cD.js +6 -0
  1535. langflow/frontend/assets/square-split-horizontal-9IrPhF2m.js +6 -0
  1536. langflow/frontend/assets/square-split-vertical-CmoW_zYQ.js +6 -0
  1537. langflow/frontend/assets/square-square-03LgbPbF.js +6 -0
  1538. langflow/frontend/assets/square-stack-DPV0jLeF.js +6 -0
  1539. langflow/frontend/assets/square-terminal-DUYv-_hG.js +6 -0
  1540. langflow/frontend/assets/square-user-C_jEsE6c.js +6 -0
  1541. langflow/frontend/assets/square-user-round-BBldtPsV.js +6 -0
  1542. langflow/frontend/assets/square-x-DWPMPGV3.js +6 -0
  1543. langflow/frontend/assets/squares-exclude-BbPPrz-T.js +6 -0
  1544. langflow/frontend/assets/squares-intersect-wUIKd6XE.js +6 -0
  1545. langflow/frontend/assets/squares-subtract-2h4wx5tk.js +6 -0
  1546. langflow/frontend/assets/squares-unite-C2IIuYjZ.js +6 -0
  1547. langflow/frontend/assets/squircle-de5xIKon.js +6 -0
  1548. langflow/frontend/assets/squirrel-Ci7Bkr9y.js +6 -0
  1549. langflow/frontend/assets/stamp-5LvZgzz7.js +6 -0
  1550. langflow/frontend/assets/star-Dh7YRFCk.js +6 -0
  1551. langflow/frontend/assets/star-half-15QaQeFV.js +6 -0
  1552. langflow/frontend/assets/star-off-Ccn18o6T.js +6 -0
  1553. langflow/frontend/assets/step-back-CAr0T2eP.js +6 -0
  1554. langflow/frontend/assets/step-forward-pg5Vs70-.js +6 -0
  1555. langflow/frontend/assets/stethoscope-O7jJW4_s.js +6 -0
  1556. langflow/frontend/assets/sticker-DNMSc6SG.js +6 -0
  1557. langflow/frontend/assets/sticky-note-BSV5Xo73.js +6 -0
  1558. langflow/frontend/assets/store-Ksjiebvs.js +6 -0
  1559. langflow/frontend/assets/stretch-horizontal-DGnuowms.js +6 -0
  1560. langflow/frontend/assets/stretch-vertical-Bx1tnRgx.js +6 -0
  1561. langflow/frontend/assets/strikethrough-CYL8OjPi.js +6 -0
  1562. langflow/frontend/assets/subscript-DNomll7F.js +6 -0
  1563. langflow/frontend/assets/sun-Dxq-Ohhh.js +6 -0
  1564. langflow/frontend/assets/sun-dim-DgUT5N3V.js +6 -0
  1565. langflow/frontend/assets/sun-medium-BOYB43_w.js +6 -0
  1566. langflow/frontend/assets/sun-moon-hILgDRIQ.js +6 -0
  1567. langflow/frontend/assets/sun-snow-BQlPecDu.js +6 -0
  1568. langflow/frontend/assets/sunrise-BGp4lB3z.js +6 -0
  1569. langflow/frontend/assets/sunset-ChYrw7Wb.js +6 -0
  1570. langflow/frontend/assets/superscript-B0UmpzUv.js +6 -0
  1571. langflow/frontend/assets/swatch-book-Wtax8E-5.js +6 -0
  1572. langflow/frontend/assets/swiss-franc-DLcXM4tm.js +6 -0
  1573. langflow/frontend/assets/switch-camera-Dk0zxvCV.js +6 -0
  1574. langflow/frontend/assets/sword-72KHd1ef.js +6 -0
  1575. langflow/frontend/assets/swords-DVXAqwwp.js +6 -0
  1576. langflow/frontend/assets/syringe-DNvdwoly.js +6 -0
  1577. langflow/frontend/assets/table-2-CZc1LX3c.js +6 -0
  1578. langflow/frontend/assets/table-C-2llZY-.js +6 -0
  1579. langflow/frontend/assets/table-cells-merge-CDj48a7h.js +6 -0
  1580. langflow/frontend/assets/table-cells-split-CUrsUsPS.js +6 -0
  1581. langflow/frontend/assets/table-columns-split-DdQaEWio.js +6 -0
  1582. langflow/frontend/assets/table-of-contents-Bh0NGJmh.js +6 -0
  1583. langflow/frontend/assets/table-properties-CEIctTRa.js +6 -0
  1584. langflow/frontend/assets/table-rows-split-BnOupp4b.js +6 -0
  1585. langflow/frontend/assets/tablet-D5UpVHIl.js +6 -0
  1586. langflow/frontend/assets/tablet-smartphone-CwLImyCD.js +6 -0
  1587. langflow/frontend/assets/tablets-vY3CmIJ6.js +6 -0
  1588. langflow/frontend/assets/tag-iG2OUXvJ.js +6 -0
  1589. langflow/frontend/assets/tags-of9ntFMT.js +6 -0
  1590. langflow/frontend/assets/tally-1-gPlQQCPM.js +6 -0
  1591. langflow/frontend/assets/tally-2-BAQlqNEl.js +6 -0
  1592. langflow/frontend/assets/tally-3-CaxBI5ht.js +6 -0
  1593. langflow/frontend/assets/tally-4-DtVq11s1.js +6 -0
  1594. langflow/frontend/assets/tally-5-D-28BeRf.js +6 -0
  1595. langflow/frontend/assets/tangent-DpcmJNpz.js +6 -0
  1596. langflow/frontend/assets/target-BQXi0bxz.js +6 -0
  1597. langflow/frontend/assets/telescope-BNhPOcRw.js +6 -0
  1598. langflow/frontend/assets/tent-CQkp1m_k.js +6 -0
  1599. langflow/frontend/assets/tent-tree-C5oPrIR0.js +6 -0
  1600. langflow/frontend/assets/terminal-B0zf8hyo.js +6 -0
  1601. langflow/frontend/assets/test-tube-CT5J7T0e.js +6 -0
  1602. langflow/frontend/assets/test-tube-diagonal-CfOqUxO1.js +6 -0
  1603. langflow/frontend/assets/test-tubes-BmfmGaUN.js +6 -0
  1604. langflow/frontend/assets/text-CK14rLCn.js +6 -0
  1605. langflow/frontend/assets/text-cursor-input-DwNagcp5.js +6 -0
  1606. langflow/frontend/assets/text-cursor-moEhxJoy.js +6 -0
  1607. langflow/frontend/assets/text-quote-gUnGzQFO.js +6 -0
  1608. langflow/frontend/assets/text-search-Bc3cFU3a.js +6 -0
  1609. langflow/frontend/assets/text-select-BMbnxIlq.js +6 -0
  1610. langflow/frontend/assets/theater-aGfXp4hK.js +6 -0
  1611. langflow/frontend/assets/thermometer-BmStjgyd.js +6 -0
  1612. langflow/frontend/assets/thermometer-snowflake-h45vHyZF.js +6 -0
  1613. langflow/frontend/assets/thermometer-sun-BeKRfnb_.js +6 -0
  1614. langflow/frontend/assets/thumbs-down-E0TSjbaK.js +6 -0
  1615. langflow/frontend/assets/thumbs-up-CWFKQ4ow.js +6 -0
  1616. langflow/frontend/assets/ticket-check-DT3Ye_4I.js +6 -0
  1617. langflow/frontend/assets/ticket-minus-DCLo1F0H.js +6 -0
  1618. langflow/frontend/assets/ticket-percent-BcnFPjYR.js +6 -0
  1619. langflow/frontend/assets/ticket-plus-yAbKSwTd.js +6 -0
  1620. langflow/frontend/assets/ticket-qip0D7TM.js +6 -0
  1621. langflow/frontend/assets/ticket-slash-CSdW0g9w.js +6 -0
  1622. langflow/frontend/assets/ticket-x-DUHO7YS1.js +6 -0
  1623. langflow/frontend/assets/tickets-DEMbbS2q.js +6 -0
  1624. langflow/frontend/assets/tickets-plane-5VX3QPZr.js +6 -0
  1625. langflow/frontend/assets/timer-D6Li7lhZ.js +6 -0
  1626. langflow/frontend/assets/timer-off-BKpPkCwn.js +6 -0
  1627. langflow/frontend/assets/timer-reset-C9EGVyna.js +6 -0
  1628. langflow/frontend/assets/toggle-left-BHNvxsJC.js +6 -0
  1629. langflow/frontend/assets/toggle-right-DfNNHJLs.js +6 -0
  1630. langflow/frontend/assets/toilet-D-syk7CV.js +6 -0
  1631. langflow/frontend/assets/tornado-CP1YGvH6.js +6 -0
  1632. langflow/frontend/assets/torus-MTmf4lIv.js +6 -0
  1633. langflow/frontend/assets/touchpad-off-ZP4Fl4ny.js +6 -0
  1634. langflow/frontend/assets/touchpad-y3CzD_gU.js +6 -0
  1635. langflow/frontend/assets/tower-control-d5N7CCVZ.js +6 -0
  1636. langflow/frontend/assets/toy-brick-cRRKM8Be.js +6 -0
  1637. langflow/frontend/assets/tractor-DEImBTtH.js +6 -0
  1638. langflow/frontend/assets/traffic-cone-Dlk_uTIw.js +6 -0
  1639. langflow/frontend/assets/train-front-Cyx_l2JP.js +6 -0
  1640. langflow/frontend/assets/train-front-tunnel-Dd2qZl3d.js +6 -0
  1641. langflow/frontend/assets/train-track-RFIxf_BI.js +6 -0
  1642. langflow/frontend/assets/tram-front-D-uKYpec.js +6 -0
  1643. langflow/frontend/assets/transgender-CPuQe4-c.js +6 -0
  1644. langflow/frontend/assets/trash-DOr0ifPU.js +6 -0
  1645. langflow/frontend/assets/tree-deciduous-BFZpcSQT.js +6 -0
  1646. langflow/frontend/assets/tree-palm-DnX0mawJ.js +6 -0
  1647. langflow/frontend/assets/tree-pine-Dih0lWR9.js +6 -0
  1648. langflow/frontend/assets/trees-Bbj-Gs_I.js +6 -0
  1649. langflow/frontend/assets/trello-D3zIGbrI.js +6 -0
  1650. langflow/frontend/assets/trending-down-DFL3EGlI.js +6 -0
  1651. langflow/frontend/assets/trending-up-D2HQpD7V.js +6 -0
  1652. langflow/frontend/assets/trending-up-down-D9b9_7Ho.js +6 -0
  1653. langflow/frontend/assets/triangle-BT7pFSmp.js +6 -0
  1654. langflow/frontend/assets/triangle-alert-CIql8jj5.js +6 -0
  1655. langflow/frontend/assets/triangle-dashed-DjPpRldC.js +6 -0
  1656. langflow/frontend/assets/triangle-right-6j_8CHWS.js +6 -0
  1657. langflow/frontend/assets/trophy-BAT-y5ml.js +6 -0
  1658. langflow/frontend/assets/truck-DrIX12Ue.js +6 -0
  1659. langflow/frontend/assets/truck-electric-DgnoMfNk.js +6 -0
  1660. langflow/frontend/assets/turtle-DeLAzqDm.js +6 -0
  1661. langflow/frontend/assets/tv-Curs1WiT.js +6 -0
  1662. langflow/frontend/assets/tv-minimal-B04rMhtY.js +6 -0
  1663. langflow/frontend/assets/tv-minimal-play-DgOwqhiO.js +6 -0
  1664. langflow/frontend/assets/twitch-iYIWj_I2.js +6 -0
  1665. langflow/frontend/assets/twitter-CRXMuki7.js +6 -0
  1666. langflow/frontend/assets/type-outline-Daw5BpQz.js +6 -0
  1667. langflow/frontend/assets/type-x_DG-nGV.js +6 -0
  1668. langflow/frontend/assets/umbrella-BPI2f9o2.js +6 -0
  1669. langflow/frontend/assets/umbrella-off-Dbl1zQIC.js +6 -0
  1670. langflow/frontend/assets/underline-C1hdnzSx.js +6 -0
  1671. langflow/frontend/assets/undo-2-Cq8oSBlF.js +6 -0
  1672. langflow/frontend/assets/undo-BF2jLrIe.js +6 -0
  1673. langflow/frontend/assets/undo-dot-BgaKFc4b.js +6 -0
  1674. langflow/frontend/assets/unfold-horizontal-qwjHNXtJ.js +6 -0
  1675. langflow/frontend/assets/unfold-vertical-DdTBnd_B.js +6 -0
  1676. langflow/frontend/assets/ungroup-Ba9hDBB6.js +6 -0
  1677. langflow/frontend/assets/university-C7Lw-bQr.js +6 -0
  1678. langflow/frontend/assets/unlink-2-4KrLCwfH.js +6 -0
  1679. langflow/frontend/assets/unlink-B2EXUDFT.js +6 -0
  1680. langflow/frontend/assets/unplug-DBjUwQ3o.js +6 -0
  1681. langflow/frontend/assets/upload-D-byidnT.js +6 -0
  1682. langflow/frontend/assets/usb-xoep_eP3.js +6 -0
  1683. langflow/frontend/assets/use-post-add-user-HAr_9Zwy.js +1 -0
  1684. langflow/frontend/assets/user-DIVUUJ4W.js +6 -0
  1685. langflow/frontend/assets/user-check-DLug8XQe.js +6 -0
  1686. langflow/frontend/assets/user-cog-Dd5HfQwz.js +6 -0
  1687. langflow/frontend/assets/user-lock-iwKz2Nhy.js +6 -0
  1688. langflow/frontend/assets/user-minus-DQy81ieL.js +6 -0
  1689. langflow/frontend/assets/user-pen-Di0xBJzU.js +6 -0
  1690. langflow/frontend/assets/user-plus-BYVABF7M.js +6 -0
  1691. langflow/frontend/assets/user-round-C3Ya_kBC.js +6 -0
  1692. langflow/frontend/assets/user-round-check-Dtr6LAFS.js +6 -0
  1693. langflow/frontend/assets/user-round-cog-DSksqIOo.js +6 -0
  1694. langflow/frontend/assets/user-round-minus-CXWYYQ_X.js +6 -0
  1695. langflow/frontend/assets/user-round-pen-CgPXfu3a.js +6 -0
  1696. langflow/frontend/assets/user-round-plus-C0lpKZzu.js +6 -0
  1697. langflow/frontend/assets/user-round-search-wjZtVgTg.js +6 -0
  1698. langflow/frontend/assets/user-round-x-B6Zboiwn.js +6 -0
  1699. langflow/frontend/assets/user-search-_lCTdMpr.js +6 -0
  1700. langflow/frontend/assets/user-x-Dn_Ocfl6.js +6 -0
  1701. langflow/frontend/assets/users-heOYQA1R.js +6 -0
  1702. langflow/frontend/assets/users-round-BVVIFzhr.js +6 -0
  1703. langflow/frontend/assets/utensils-XbJrHdru.js +6 -0
  1704. langflow/frontend/assets/utensils-crossed-BBY8g0HA.js +6 -0
  1705. langflow/frontend/assets/utility-pole-BI5Ta-_a.js +6 -0
  1706. langflow/frontend/assets/variable-CA_MVERi.js +6 -0
  1707. langflow/frontend/assets/vault-2Tlx4WMo.js +6 -0
  1708. langflow/frontend/assets/vegan-B9Cqe9nH.js +6 -0
  1709. langflow/frontend/assets/venetian-mask-BxgIZBpm.js +6 -0
  1710. langflow/frontend/assets/venus-and-mars-Daxj0WTR.js +6 -0
  1711. langflow/frontend/assets/venus-b9BINlCA.js +6 -0
  1712. langflow/frontend/assets/vibrate-9LpBBIWE.js +6 -0
  1713. langflow/frontend/assets/vibrate-off-DUzjHM1S.js +6 -0
  1714. langflow/frontend/assets/video-CPf7ZzyN.js +6 -0
  1715. langflow/frontend/assets/video-off-Ds7teCJ8.js +6 -0
  1716. langflow/frontend/assets/videotape-CLFHceNX.js +6 -0
  1717. langflow/frontend/assets/view-C2jlfzDp.js +6 -0
  1718. langflow/frontend/assets/voicemail-DCZBh3a9.js +6 -0
  1719. langflow/frontend/assets/volleyball-Dk332p9c.js +6 -0
  1720. langflow/frontend/assets/volume-1-B5HGPifY.js +6 -0
  1721. langflow/frontend/assets/volume-2-DMNN3Rru.js +6 -0
  1722. langflow/frontend/assets/volume-C5mwH_7w.js +6 -0
  1723. langflow/frontend/assets/volume-off-DZ1rdauc.js +6 -0
  1724. langflow/frontend/assets/volume-x-B4gWhRv7.js +6 -0
  1725. langflow/frontend/assets/vote-Ci7aq5e6.js +6 -0
  1726. langflow/frontend/assets/wallet-DFN3ek_K.js +6 -0
  1727. langflow/frontend/assets/wallet-cards-DOrS7_GK.js +6 -0
  1728. langflow/frontend/assets/wallet-minimal-C-Wk3VL5.js +6 -0
  1729. langflow/frontend/assets/wallpaper-Wagu6O8j.js +6 -0
  1730. langflow/frontend/assets/wand-mz4ZhdmT.js +6 -0
  1731. langflow/frontend/assets/wand-sparkles-CAdZzdpk.js +6 -0
  1732. langflow/frontend/assets/warehouse-DmHaifZY.js +6 -0
  1733. langflow/frontend/assets/washing-machine-DqDs5yOu.js +6 -0
  1734. langflow/frontend/assets/watch-EM9JFhXF.js +6 -0
  1735. langflow/frontend/assets/waves-BD_tMnXU.js +6 -0
  1736. langflow/frontend/assets/waves-ladder-Dzta3Ijt.js +6 -0
  1737. langflow/frontend/assets/waypoints-DM2s-zQ8.js +6 -0
  1738. langflow/frontend/assets/webcam-CrS1_Kkm.js +6 -0
  1739. langflow/frontend/assets/webhook-DW5zX6qY.js +6 -0
  1740. langflow/frontend/assets/webhook-off-BWla7Mbm.js +6 -0
  1741. langflow/frontend/assets/weight-DltF2fMZ.js +6 -0
  1742. langflow/frontend/assets/wheat-B6OP7dxf.js +6 -0
  1743. langflow/frontend/assets/wheat-off-CsVdAxYC.js +6 -0
  1744. langflow/frontend/assets/whole-word-D6gWJ1GO.js +6 -0
  1745. langflow/frontend/assets/wifi-DWXUQqjq.js +6 -0
  1746. langflow/frontend/assets/wifi-high-Dt5bfCxG.js +6 -0
  1747. langflow/frontend/assets/wifi-low-BeLXd0RQ.js +6 -0
  1748. langflow/frontend/assets/wifi-off-D8rKslRN.js +6 -0
  1749. langflow/frontend/assets/wifi-pen-Bxa22EfH.js +6 -0
  1750. langflow/frontend/assets/wifi-zero-fvrdlKGm.js +6 -0
  1751. langflow/frontend/assets/wind-BmALexf4.js +6 -0
  1752. langflow/frontend/assets/wind-arrow-down-5zqbz6-b.js +6 -0
  1753. langflow/frontend/assets/wine-BJ7CaVhy.js +6 -0
  1754. langflow/frontend/assets/wine-off-Bag8rgKL.js +6 -0
  1755. langflow/frontend/assets/workflow-pZAmI3l4.js +6 -0
  1756. langflow/frontend/assets/worm-CrDDNJYH.js +6 -0
  1757. langflow/frontend/assets/wrap-text-DMuTg5bi.js +6 -0
  1758. langflow/frontend/assets/wrench-DDpbLbNT.js +6 -0
  1759. langflow/frontend/assets/youtube-CVgAO7RC.js +6 -0
  1760. langflow/frontend/assets/zap-BZJrd7Yf.js +6 -0
  1761. langflow/frontend/assets/zap-off-rBA2AoNH.js +6 -0
  1762. langflow/frontend/assets/zoom-in-BttgfsG-.js +6 -0
  1763. langflow/frontend/assets/zoom-out-D__4HjOD.js +6 -0
  1764. langflow/frontend/index.html +2 -2
  1765. langflow/initial_setup/starter_projects/Basic Prompt Chaining.json +2 -2
  1766. langflow/initial_setup/starter_projects/Basic Prompting.json +2 -2
  1767. langflow/initial_setup/starter_projects/Blog Writer.json +2 -2
  1768. langflow/initial_setup/starter_projects/Custom Component Generator.json +2 -2
  1769. langflow/initial_setup/starter_projects/Document Q&A.json +3 -2
  1770. langflow/initial_setup/starter_projects/Financial Report Parser.json +4 -2
  1771. langflow/initial_setup/starter_projects/Hybrid Search RAG.json +4 -2
  1772. langflow/initial_setup/starter_projects/Image Sentiment Analysis.json +4 -2
  1773. langflow/initial_setup/starter_projects/Instagram Copywriter.json +38 -9
  1774. langflow/initial_setup/starter_projects/Invoice Summarizer.json +38 -9
  1775. langflow/initial_setup/starter_projects/Knowledge Retrieval.json +2 -2
  1776. langflow/initial_setup/starter_projects/Market Research.json +38 -10
  1777. langflow/initial_setup/starter_projects/Meeting Summary.json +6 -6
  1778. langflow/initial_setup/starter_projects/Memory Chatbot.json +2 -2
  1779. langflow/initial_setup/starter_projects/News Aggregator.json +43 -13
  1780. langflow/initial_setup/starter_projects/Nvidia Remix.json +59 -34
  1781. langflow/initial_setup/starter_projects/Pok/303/251dex Agent.json" +38 -9
  1782. langflow/initial_setup/starter_projects/Portfolio Website Code Generator.json +5 -2
  1783. langflow/initial_setup/starter_projects/Price Deal Finder.json +38 -9
  1784. langflow/initial_setup/starter_projects/Research Agent.json +38 -9
  1785. langflow/initial_setup/starter_projects/Research Translation Loop.json +2 -2
  1786. langflow/initial_setup/starter_projects/SEO Keyword Generator.json +2 -2
  1787. langflow/initial_setup/starter_projects/SaaS Pricing.json +38 -9
  1788. langflow/initial_setup/starter_projects/Search agent.json +38 -9
  1789. langflow/initial_setup/starter_projects/Sequential Tasks Agents.json +110 -26
  1790. langflow/initial_setup/starter_projects/Simple Agent.json +38 -10
  1791. langflow/initial_setup/starter_projects/Social Media Agent.json +38 -10
  1792. langflow/initial_setup/starter_projects/Text Sentiment Analysis.json +5 -4
  1793. langflow/initial_setup/starter_projects/Travel Planning Agents.json +110 -26
  1794. langflow/initial_setup/starter_projects/Twitter Thread Generator.json +2 -2
  1795. langflow/initial_setup/starter_projects/Vector Store RAG.json +3 -2
  1796. langflow/initial_setup/starter_projects/Youtube Analysis.json +40 -12
  1797. langflow/main.py +7 -12
  1798. langflow/processing/process.py +3 -7
  1799. langflow/server.py +10 -0
  1800. langflow/services/auth/utils.py +16 -5
  1801. langflow/services/database/models/api_key/crud.py +45 -2
  1802. langflow/services/deps.py +11 -6
  1803. langflow/utils/mcp_cleanup.py +125 -0
  1804. langflow_base_nightly-1.7.0.dev32.dist-info/METADATA +99 -0
  1805. langflow_base_nightly-1.7.0.dev32.dist-info/RECORD +2278 -0
  1806. langflow/frontend/assets/SlackIcon-C5JvGHVT.js +0 -1
  1807. langflow/frontend/assets/Wikipedia-DhKJmqxt.js +0 -1
  1808. langflow/frontend/assets/Wolfram-Ci6pq0HI.js +0 -1
  1809. langflow/frontend/assets/a-arrow-down-Du8_5Nq3.js +0 -6
  1810. langflow/frontend/assets/a-arrow-up-Cmt2ewMi.js +0 -6
  1811. langflow/frontend/assets/a-large-small-CuMOS1Hy.js +0 -6
  1812. langflow/frontend/assets/accessibility-Ok0Zzd65.js +0 -6
  1813. langflow/frontend/assets/activity-BzzKKkI6.js +0 -6
  1814. langflow/frontend/assets/air-vent-DJ9Diuvq.js +0 -6
  1815. langflow/frontend/assets/airplay-LzLvMpW8.js +0 -6
  1816. langflow/frontend/assets/alarm-clock-B9qV3ZO0.js +0 -6
  1817. langflow/frontend/assets/alarm-clock-check-BOS0Kp-K.js +0 -6
  1818. langflow/frontend/assets/alarm-clock-minus-DWJE9I8m.js +0 -6
  1819. langflow/frontend/assets/alarm-clock-off-D9WfjeNk.js +0 -6
  1820. langflow/frontend/assets/alarm-clock-plus-CIcgSxpZ.js +0 -6
  1821. langflow/frontend/assets/alarm-smoke-CvF5wd-R.js +0 -6
  1822. langflow/frontend/assets/album-DVLdDxQm.js +0 -6
  1823. langflow/frontend/assets/align-center-a32Y5vnk.js +0 -6
  1824. langflow/frontend/assets/align-center-horizontal-C0yCE10j.js +0 -6
  1825. langflow/frontend/assets/align-center-vertical-bGVCK623.js +0 -6
  1826. langflow/frontend/assets/align-end-horizontal-hLNql2RY.js +0 -6
  1827. langflow/frontend/assets/align-end-vertical-BhScYUsV.js +0 -6
  1828. langflow/frontend/assets/align-horizontal-distribute-center-DYWohtvQ.js +0 -6
  1829. langflow/frontend/assets/align-horizontal-distribute-end-CQ3vEZVo.js +0 -6
  1830. langflow/frontend/assets/align-horizontal-distribute-start-DEtHOKjr.js +0 -6
  1831. langflow/frontend/assets/align-horizontal-justify-center-CGaRXuCq.js +0 -6
  1832. langflow/frontend/assets/align-horizontal-justify-end-CCrqicrN.js +0 -6
  1833. langflow/frontend/assets/align-horizontal-justify-start-DxUmCXeH.js +0 -6
  1834. langflow/frontend/assets/align-horizontal-space-around-D2ZQQiqd.js +0 -6
  1835. langflow/frontend/assets/align-horizontal-space-between-D8R3WtK4.js +0 -6
  1836. langflow/frontend/assets/align-justify-BxzyTFMq.js +0 -6
  1837. langflow/frontend/assets/align-left-CkOVOFyl.js +0 -6
  1838. langflow/frontend/assets/align-right-DRftRii3.js +0 -6
  1839. langflow/frontend/assets/align-start-horizontal-X_xtkThw.js +0 -6
  1840. langflow/frontend/assets/align-start-vertical-BO2Js-52.js +0 -6
  1841. langflow/frontend/assets/align-vertical-distribute-center-trT0c_zP.js +0 -6
  1842. langflow/frontend/assets/align-vertical-distribute-end-XDHgCJ-M.js +0 -6
  1843. langflow/frontend/assets/align-vertical-distribute-start-NjUb-Fzg.js +0 -6
  1844. langflow/frontend/assets/align-vertical-justify-center-CinRAp6n.js +0 -6
  1845. langflow/frontend/assets/align-vertical-justify-end-Ckz2lQ1q.js +0 -6
  1846. langflow/frontend/assets/align-vertical-justify-start-F7HQhC9B.js +0 -6
  1847. langflow/frontend/assets/align-vertical-space-around-DRlkpwuD.js +0 -6
  1848. langflow/frontend/assets/align-vertical-space-between-CV8d9MNR.js +0 -6
  1849. langflow/frontend/assets/ambulance-DnSDkSD4.js +0 -6
  1850. langflow/frontend/assets/ampersand-O273QUaz.js +0 -6
  1851. langflow/frontend/assets/ampersands-BsGcLzQO.js +0 -6
  1852. langflow/frontend/assets/amphora-CqqSFpOL.js +0 -6
  1853. langflow/frontend/assets/anchor-DWepoGIQ.js +0 -6
  1854. langflow/frontend/assets/angry-QAkP1k6Y.js +0 -6
  1855. langflow/frontend/assets/annoyed-CmsgrzBW.js +0 -6
  1856. langflow/frontend/assets/antenna-C2eLvF7I.js +0 -6
  1857. langflow/frontend/assets/anvil-Dj7hK4U4.js +0 -6
  1858. langflow/frontend/assets/aperture-CTOA24F7.js +0 -6
  1859. langflow/frontend/assets/app-window-mac-BQOO_Q35.js +0 -6
  1860. langflow/frontend/assets/app-window-rhNZCZN-.js +0 -6
  1861. langflow/frontend/assets/apple-BCM0HWIW.js +0 -6
  1862. langflow/frontend/assets/archive-BSYN2Rny.js +0 -6
  1863. langflow/frontend/assets/archive-restore-CmQip0Na.js +0 -6
  1864. langflow/frontend/assets/archive-x-COvwKGSj.js +0 -6
  1865. langflow/frontend/assets/armchair-DmXKB1Dj.js +0 -6
  1866. langflow/frontend/assets/arrow-big-down-LXobAu6t.js +0 -6
  1867. langflow/frontend/assets/arrow-big-down-dash-BFPAnEiw.js +0 -6
  1868. langflow/frontend/assets/arrow-big-left-Dzmbm_B4.js +0 -6
  1869. langflow/frontend/assets/arrow-big-left-dash-C37kOxyP.js +0 -6
  1870. langflow/frontend/assets/arrow-big-right-DsSTjaeI.js +0 -6
  1871. langflow/frontend/assets/arrow-big-right-dash-DpFxZojT.js +0 -6
  1872. langflow/frontend/assets/arrow-big-up-8lH_qaFA.js +0 -6
  1873. langflow/frontend/assets/arrow-big-up-dash-B888Weim.js +0 -6
  1874. langflow/frontend/assets/arrow-down-0-1-BhyNs43R.js +0 -6
  1875. langflow/frontend/assets/arrow-down-1-0-Dt8k8u5l.js +0 -6
  1876. langflow/frontend/assets/arrow-down-Dzz0gYlE.js +0 -6
  1877. langflow/frontend/assets/arrow-down-a-z-BCWDeHTu.js +0 -6
  1878. langflow/frontend/assets/arrow-down-from-line-1jEkyL-V.js +0 -6
  1879. langflow/frontend/assets/arrow-down-left-C2T_3RUC.js +0 -6
  1880. langflow/frontend/assets/arrow-down-narrow-wide-Cq28gjVt.js +0 -6
  1881. langflow/frontend/assets/arrow-down-right-DQ74elfL.js +0 -6
  1882. langflow/frontend/assets/arrow-down-to-dot-DeuiU429.js +0 -6
  1883. langflow/frontend/assets/arrow-down-to-line-Ba8REMHd.js +0 -6
  1884. langflow/frontend/assets/arrow-down-up-B1BtKZqz.js +0 -6
  1885. langflow/frontend/assets/arrow-down-wide-narrow-BcKPyuXy.js +0 -6
  1886. langflow/frontend/assets/arrow-down-z-a-Bfb7uAgt.js +0 -6
  1887. langflow/frontend/assets/arrow-left-7XE9iZZk.js +0 -6
  1888. langflow/frontend/assets/arrow-left-from-line-HfiUQUsz.js +0 -6
  1889. langflow/frontend/assets/arrow-left-right-CBgAJlpG.js +0 -6
  1890. langflow/frontend/assets/arrow-left-to-line-BOOf7m9-.js +0 -6
  1891. langflow/frontend/assets/arrow-right-Cn8JsHgI.js +0 -6
  1892. langflow/frontend/assets/arrow-right-from-line-CZaCt3RG.js +0 -6
  1893. langflow/frontend/assets/arrow-right-left-IcCTnouO.js +0 -6
  1894. langflow/frontend/assets/arrow-right-to-line-D9_NkMmd.js +0 -6
  1895. langflow/frontend/assets/arrow-up-0-1-BztUvTGy.js +0 -6
  1896. langflow/frontend/assets/arrow-up-1-0-CKmA86kP.js +0 -6
  1897. langflow/frontend/assets/arrow-up-BVCdlClj.js +0 -6
  1898. langflow/frontend/assets/arrow-up-a-z-iqf2axpX.js +0 -6
  1899. langflow/frontend/assets/arrow-up-down-BTIZXr28.js +0 -6
  1900. langflow/frontend/assets/arrow-up-from-dot-Dje5fEMc.js +0 -6
  1901. langflow/frontend/assets/arrow-up-from-line-Bk9eg--_.js +0 -6
  1902. langflow/frontend/assets/arrow-up-left-C_eDh8Gd.js +0 -6
  1903. langflow/frontend/assets/arrow-up-narrow-wide-ekFFZl9s.js +0 -6
  1904. langflow/frontend/assets/arrow-up-right-DQKyBaOB.js +0 -6
  1905. langflow/frontend/assets/arrow-up-to-line-DonALs99.js +0 -6
  1906. langflow/frontend/assets/arrow-up-wide-narrow-Dk584Rxi.js +0 -6
  1907. langflow/frontend/assets/arrow-up-z-a-BT6cnODp.js +0 -6
  1908. langflow/frontend/assets/arrows-up-from-line-B0IIDd25.js +0 -6
  1909. langflow/frontend/assets/asterisk-D8NV9OVw.js +0 -6
  1910. langflow/frontend/assets/at-sign-B9JK8c6e.js +0 -6
  1911. langflow/frontend/assets/atom-DFAlSqy7.js +0 -6
  1912. langflow/frontend/assets/audio-lines-CF9t6j1_.js +0 -6
  1913. langflow/frontend/assets/audio-waveform-CDSrYQF4.js +0 -6
  1914. langflow/frontend/assets/award-XSGYgYEY.js +0 -6
  1915. langflow/frontend/assets/axe-CD7wpLeD.js +0 -6
  1916. langflow/frontend/assets/axis-3d-rQSBgV7X.js +0 -6
  1917. langflow/frontend/assets/baby-VT9FhoVu.js +0 -6
  1918. langflow/frontend/assets/backpack-CyNpNcsS.js +0 -6
  1919. langflow/frontend/assets/badge-CRrxpM3o.js +0 -6
  1920. langflow/frontend/assets/badge-alert-fjZxPoRs.js +0 -6
  1921. langflow/frontend/assets/badge-cent-CJwSWPGj.js +0 -6
  1922. langflow/frontend/assets/badge-check-DWzScxXe.js +0 -6
  1923. langflow/frontend/assets/badge-dollar-sign-6QUvFJuG.js +0 -6
  1924. langflow/frontend/assets/badge-euro-CvdA0cdY.js +0 -6
  1925. langflow/frontend/assets/badge-help-3GRzGMj8.js +0 -6
  1926. langflow/frontend/assets/badge-indian-rupee-Ce1tx_hw.js +0 -6
  1927. langflow/frontend/assets/badge-info-CiHFpZzo.js +0 -6
  1928. langflow/frontend/assets/badge-japanese-yen-Cwve69MZ.js +0 -6
  1929. langflow/frontend/assets/badge-minus-DQsiJXXX.js +0 -6
  1930. langflow/frontend/assets/badge-percent-DegDkRYI.js +0 -6
  1931. langflow/frontend/assets/badge-plus-Ca1KKC00.js +0 -6
  1932. langflow/frontend/assets/badge-pound-sterling-B_wrgMp8.js +0 -6
  1933. langflow/frontend/assets/badge-russian-ruble-CUB_ML_L.js +0 -6
  1934. langflow/frontend/assets/badge-swiss-franc-Cmlk48_5.js +0 -6
  1935. langflow/frontend/assets/badge-x-DLkZ9YxH.js +0 -6
  1936. langflow/frontend/assets/baggage-claim-zemv0SSQ.js +0 -6
  1937. langflow/frontend/assets/ban-GV-Wsqk4.js +0 -6
  1938. langflow/frontend/assets/banana-Cx7ex-_f.js +0 -6
  1939. langflow/frontend/assets/bandage-DFbFVz9q.js +0 -6
  1940. langflow/frontend/assets/banknote-DPht-Rbi.js +0 -6
  1941. langflow/frontend/assets/banknote-arrow-down-Dxa9ZBsx.js +0 -6
  1942. langflow/frontend/assets/banknote-arrow-up-mw8nueBm.js +0 -6
  1943. langflow/frontend/assets/banknote-x-BhEAwwoq.js +0 -6
  1944. langflow/frontend/assets/barcode-B0ZFnhvM.js +0 -6
  1945. langflow/frontend/assets/baseline-CtvFVHOS.js +0 -6
  1946. langflow/frontend/assets/bath-DsQU8Z5u.js +0 -6
  1947. langflow/frontend/assets/battery-GEmkyWq6.js +0 -6
  1948. langflow/frontend/assets/battery-charging-BS2AkHFC.js +0 -6
  1949. langflow/frontend/assets/battery-full-DK-oepOu.js +0 -6
  1950. langflow/frontend/assets/battery-low-ByTirZEF.js +0 -6
  1951. langflow/frontend/assets/battery-medium-Bp5Fr1EV.js +0 -6
  1952. langflow/frontend/assets/battery-plus-hYQF3Tnb.js +0 -6
  1953. langflow/frontend/assets/battery-warning-Ds9qvorF.js +0 -6
  1954. langflow/frontend/assets/beaker-Pu4T5BqL.js +0 -6
  1955. langflow/frontend/assets/bean-CeOt6RrO.js +0 -6
  1956. langflow/frontend/assets/bean-off-DEIJuUtg.js +0 -6
  1957. langflow/frontend/assets/bed-CeFDVjJI.js +0 -6
  1958. langflow/frontend/assets/bed-double-DQF8Qrph.js +0 -6
  1959. langflow/frontend/assets/bed-single-wANbI4Mg.js +0 -6
  1960. langflow/frontend/assets/beef-tFt8tR5p.js +0 -6
  1961. langflow/frontend/assets/beer-LmgaZvAZ.js +0 -6
  1962. langflow/frontend/assets/beer-off-D-MCfjdM.js +0 -6
  1963. langflow/frontend/assets/bell-CVH3VMHa.js +0 -6
  1964. langflow/frontend/assets/bell-dot-c8Rcj-tY.js +0 -6
  1965. langflow/frontend/assets/bell-electric-DyxLU_XF.js +0 -6
  1966. langflow/frontend/assets/bell-minus-CzbngbeJ.js +0 -6
  1967. langflow/frontend/assets/bell-off-CypVsdiN.js +0 -6
  1968. langflow/frontend/assets/bell-plus-MiSnPaqn.js +0 -6
  1969. langflow/frontend/assets/bell-ring-0Fqnxzx4.js +0 -6
  1970. langflow/frontend/assets/between-horizontal-end-CgOcsweX.js +0 -6
  1971. langflow/frontend/assets/between-horizontal-start-eIP3Tlld.js +0 -6
  1972. langflow/frontend/assets/between-vertical-end-bccQMJE2.js +0 -6
  1973. langflow/frontend/assets/between-vertical-start-CoFrPqda.js +0 -6
  1974. langflow/frontend/assets/biceps-flexed-DGoKcN6Z.js +0 -6
  1975. langflow/frontend/assets/bike-BzrOjtnc.js +0 -6
  1976. langflow/frontend/assets/binary-Dnd7Bxhb.js +0 -6
  1977. langflow/frontend/assets/binoculars-CEj5AZGJ.js +0 -6
  1978. langflow/frontend/assets/biohazard-Ch6kh9Qc.js +0 -6
  1979. langflow/frontend/assets/bird-jZ6niaj1.js +0 -6
  1980. langflow/frontend/assets/bitcoin-DDS8WeVJ.js +0 -6
  1981. langflow/frontend/assets/blend-B4AIClZH.js +0 -6
  1982. langflow/frontend/assets/blinds-CGZuGmfr.js +0 -6
  1983. langflow/frontend/assets/blocks-HsRig1Z9.js +0 -6
  1984. langflow/frontend/assets/bluetooth-CECXTFLO.js +0 -6
  1985. langflow/frontend/assets/bluetooth-connected-BgXIHp1W.js +0 -6
  1986. langflow/frontend/assets/bluetooth-off-B65umHdG.js +0 -6
  1987. langflow/frontend/assets/bluetooth-searching-BKNplBrH.js +0 -6
  1988. langflow/frontend/assets/bold-garu89Dk.js +0 -6
  1989. langflow/frontend/assets/bolt-Da64D5X3.js +0 -6
  1990. langflow/frontend/assets/bomb-D7tVGjCt.js +0 -6
  1991. langflow/frontend/assets/bone-FW9Anh5h.js +0 -6
  1992. langflow/frontend/assets/book-BaVBwOJX.js +0 -6
  1993. langflow/frontend/assets/book-a-BlwBd0aA.js +0 -6
  1994. langflow/frontend/assets/book-audio-CMyG4it4.js +0 -6
  1995. langflow/frontend/assets/book-check-BwZ22-To.js +0 -6
  1996. langflow/frontend/assets/book-copy-uRZAfDap.js +0 -6
  1997. langflow/frontend/assets/book-dashed-CPODX8sw.js +0 -6
  1998. langflow/frontend/assets/book-down-DC3tROQ3.js +0 -6
  1999. langflow/frontend/assets/book-headphones-DH3WBiKe.js +0 -6
  2000. langflow/frontend/assets/book-heart-C8IiuNEg.js +0 -6
  2001. langflow/frontend/assets/book-image-XF_X-LEz.js +0 -6
  2002. langflow/frontend/assets/book-key-BRQzZlFt.js +0 -6
  2003. langflow/frontend/assets/book-lock-C-d72JhZ.js +0 -6
  2004. langflow/frontend/assets/book-marked-To9jLzXk.js +0 -6
  2005. langflow/frontend/assets/book-minus-D9qHPehY.js +0 -6
  2006. langflow/frontend/assets/book-open-CZbwnq7F.js +0 -6
  2007. langflow/frontend/assets/book-open-check-BgOTp9k8.js +0 -6
  2008. langflow/frontend/assets/book-open-text--lqL7K-b.js +0 -6
  2009. langflow/frontend/assets/book-plus-DafanXOa.js +0 -6
  2010. langflow/frontend/assets/book-text-CZIgvWhu.js +0 -6
  2011. langflow/frontend/assets/book-type-DciugwBe.js +0 -6
  2012. langflow/frontend/assets/book-up-2-B27IV7YZ.js +0 -6
  2013. langflow/frontend/assets/book-up-D99zpI7P.js +0 -6
  2014. langflow/frontend/assets/book-user-CBxpgIis.js +0 -6
  2015. langflow/frontend/assets/book-x-Cvddb4De.js +0 -6
  2016. langflow/frontend/assets/bookmark-C7DSWoXc.js +0 -6
  2017. langflow/frontend/assets/bookmark-check-BZjgo08j.js +0 -6
  2018. langflow/frontend/assets/bookmark-minus-BSFpkP-_.js +0 -6
  2019. langflow/frontend/assets/bookmark-plus-DQusOO6K.js +0 -6
  2020. langflow/frontend/assets/bookmark-x-dZGXnB5w.js +0 -6
  2021. langflow/frontend/assets/boom-box-ByFS7WHz.js +0 -6
  2022. langflow/frontend/assets/bot-Txvyi5MB.js +0 -6
  2023. langflow/frontend/assets/bot-message-square-Cp2yXJfd.js +0 -6
  2024. langflow/frontend/assets/bot-off-F0KdpnEr.js +0 -6
  2025. langflow/frontend/assets/bow-arrow-BxlOdNLT.js +0 -6
  2026. langflow/frontend/assets/box-BoeczXpJ.js +0 -6
  2027. langflow/frontend/assets/boxes-D23361Ld.js +0 -6
  2028. langflow/frontend/assets/braces-C2X-xqdC.js +0 -6
  2029. langflow/frontend/assets/brackets-ZLSNLmhe.js +0 -6
  2030. langflow/frontend/assets/brain-BXct5sRa.js +0 -6
  2031. langflow/frontend/assets/brain-circuit-CeFS37_6.js +0 -6
  2032. langflow/frontend/assets/brain-cog-BVAEVZKY.js +0 -6
  2033. langflow/frontend/assets/brick-wall-BR2w9fF7.js +0 -6
  2034. langflow/frontend/assets/brick-wall-fire-BpN7Xln_.js +0 -6
  2035. langflow/frontend/assets/briefcase-RytVb1ZG.js +0 -6
  2036. langflow/frontend/assets/briefcase-business-BdSsD88B.js +0 -6
  2037. langflow/frontend/assets/briefcase-conveyor-belt-CSjfD1ZF.js +0 -6
  2038. langflow/frontend/assets/briefcase-medical-Wiz8Sk1T.js +0 -6
  2039. langflow/frontend/assets/bring-to-front-CRmFzE26.js +0 -6
  2040. langflow/frontend/assets/brush-DzCfJBg5.js +0 -6
  2041. langflow/frontend/assets/bubbles-C5n-dZvG.js +0 -6
  2042. langflow/frontend/assets/bug-ObOH22wB.js +0 -6
  2043. langflow/frontend/assets/bug-off-C8b8YKJ6.js +0 -6
  2044. langflow/frontend/assets/bug-play-DJ17PEFr.js +0 -6
  2045. langflow/frontend/assets/building-2-N5qQRAxW.js +0 -6
  2046. langflow/frontend/assets/building-dhLp28Em.js +0 -6
  2047. langflow/frontend/assets/bus-front-Cv_Udack.js +0 -6
  2048. langflow/frontend/assets/bus-vYHZDldY.js +0 -6
  2049. langflow/frontend/assets/cable-DlS043Gp.js +0 -6
  2050. langflow/frontend/assets/cable-car-CMcjixAi.js +0 -6
  2051. langflow/frontend/assets/cake-C5wzm65L.js +0 -6
  2052. langflow/frontend/assets/cake-slice-B3Kv4WRD.js +0 -6
  2053. langflow/frontend/assets/calculator-CwcRAa_G.js +0 -6
  2054. langflow/frontend/assets/calendar-1-OKpD16mb.js +0 -6
  2055. langflow/frontend/assets/calendar-BfAL84K1.js +0 -6
  2056. langflow/frontend/assets/calendar-arrow-down-AF04VQnT.js +0 -6
  2057. langflow/frontend/assets/calendar-arrow-up-CGCOjSNX.js +0 -6
  2058. langflow/frontend/assets/calendar-check-2-CjyZMz2Y.js +0 -6
  2059. langflow/frontend/assets/calendar-check-AKNsXEAP.js +0 -6
  2060. langflow/frontend/assets/calendar-clock-DP-0c-r-.js +0 -6
  2061. langflow/frontend/assets/calendar-cog-CADOnSPm.js +0 -6
  2062. langflow/frontend/assets/calendar-days-DQ8w64qg.js +0 -6
  2063. langflow/frontend/assets/calendar-fold--gi8fMXH.js +0 -6
  2064. langflow/frontend/assets/calendar-heart-JIF0STou.js +0 -6
  2065. langflow/frontend/assets/calendar-minus-2-CyAe19B6.js +0 -6
  2066. langflow/frontend/assets/calendar-minus-Bge6wIIh.js +0 -6
  2067. langflow/frontend/assets/calendar-off-C1XVTbh8.js +0 -6
  2068. langflow/frontend/assets/calendar-plus-2-CT8meRKq.js +0 -6
  2069. langflow/frontend/assets/calendar-plus-D1ne5G59.js +0 -6
  2070. langflow/frontend/assets/calendar-range-B09kh_3W.js +0 -6
  2071. langflow/frontend/assets/calendar-search-CiMVGhF6.js +0 -6
  2072. langflow/frontend/assets/calendar-sync-CMeWyqjd.js +0 -6
  2073. langflow/frontend/assets/calendar-x-2-Uh7X52qm.js +0 -6
  2074. langflow/frontend/assets/calendar-x-WURB3Cua.js +0 -6
  2075. langflow/frontend/assets/camera-DHbYtyhi.js +0 -6
  2076. langflow/frontend/assets/camera-off-BVbEvYQP.js +0 -6
  2077. langflow/frontend/assets/candy-C-fYEJz_.js +0 -6
  2078. langflow/frontend/assets/candy-cane-DW7GusBd.js +0 -6
  2079. langflow/frontend/assets/candy-off-D6eJJ8qA.js +0 -6
  2080. langflow/frontend/assets/cannabis-DDlYgh9R.js +0 -6
  2081. langflow/frontend/assets/captions-BhwDGRt3.js +0 -6
  2082. langflow/frontend/assets/captions-off-DwPUoeHC.js +0 -6
  2083. langflow/frontend/assets/car-C2KPz6-j.js +0 -6
  2084. langflow/frontend/assets/car-front-DBT3H9TT.js +0 -6
  2085. langflow/frontend/assets/car-taxi-front-DoxPtE7s.js +0 -6
  2086. langflow/frontend/assets/caravan-tmEqbhUp.js +0 -6
  2087. langflow/frontend/assets/carrot-DjGfCLVr.js +0 -6
  2088. langflow/frontend/assets/case-lower-GKNEXlBb.js +0 -6
  2089. langflow/frontend/assets/case-sensitive-D0DXefZW.js +0 -6
  2090. langflow/frontend/assets/case-upper-CO_blMzf.js +0 -6
  2091. langflow/frontend/assets/cassette-tape-c2wiT2WV.js +0 -6
  2092. langflow/frontend/assets/cast-oZBSRcJV.js +0 -6
  2093. langflow/frontend/assets/castle-nKzGkgwn.js +0 -6
  2094. langflow/frontend/assets/cat-C7yG7xci.js +0 -6
  2095. langflow/frontend/assets/cctv-_EZajsq3.js +0 -6
  2096. langflow/frontend/assets/chart-area-BDN94Uwe.js +0 -6
  2097. langflow/frontend/assets/chart-bar-CWmi-zL_.js +0 -6
  2098. langflow/frontend/assets/chart-bar-big-B7GpYjSf.js +0 -6
  2099. langflow/frontend/assets/chart-bar-decreasing-DZupZEPx.js +0 -6
  2100. langflow/frontend/assets/chart-bar-increasing-zXC-kAPj.js +0 -6
  2101. langflow/frontend/assets/chart-bar-stacked-C4VUlTHp.js +0 -6
  2102. langflow/frontend/assets/chart-candlestick-C3VHdCVr.js +0 -6
  2103. langflow/frontend/assets/chart-column-ChAVCM0W.js +0 -6
  2104. langflow/frontend/assets/chart-column-big-xsBSjPIM.js +0 -6
  2105. langflow/frontend/assets/chart-column-decreasing-CqBLxZbG.js +0 -6
  2106. langflow/frontend/assets/chart-column-increasing-YeO8Xvno.js +0 -6
  2107. langflow/frontend/assets/chart-column-stacked-YtsjRh__.js +0 -6
  2108. langflow/frontend/assets/chart-gantt-DKwhF2Ot.js +0 -6
  2109. langflow/frontend/assets/chart-line-BAlBS9po.js +0 -6
  2110. langflow/frontend/assets/chart-network-HGiYjkea.js +0 -6
  2111. langflow/frontend/assets/chart-no-axes-column-BCW8tkwu.js +0 -6
  2112. langflow/frontend/assets/chart-no-axes-column-decreasing-DWVxoxnP.js +0 -6
  2113. langflow/frontend/assets/chart-no-axes-column-increasing-uz-bxAOZ.js +0 -6
  2114. langflow/frontend/assets/chart-no-axes-combined-D8bjV9Qr.js +0 -6
  2115. langflow/frontend/assets/chart-no-axes-gantt-DousELV9.js +0 -6
  2116. langflow/frontend/assets/chart-pie-DVGWYFU0.js +0 -6
  2117. langflow/frontend/assets/chart-scatter-BXKWB1vr.js +0 -6
  2118. langflow/frontend/assets/chart-spline-BvJKfP0i.js +0 -6
  2119. langflow/frontend/assets/check-check-CpheOAtX.js +0 -6
  2120. langflow/frontend/assets/chef-hat-DChTgNIv.js +0 -6
  2121. langflow/frontend/assets/cherry-CizvtfLt.js +0 -6
  2122. langflow/frontend/assets/chevron-first-WYJkyUFH.js +0 -6
  2123. langflow/frontend/assets/chevron-last-Bl5G7Y8_.js +0 -6
  2124. langflow/frontend/assets/chevron-left-BGoprhmp.js +0 -6
  2125. langflow/frontend/assets/chevron-right-6wSTG8OR.js +0 -6
  2126. langflow/frontend/assets/chevrons-down-DzMU35X1.js +0 -6
  2127. langflow/frontend/assets/chevrons-down-up-DOnL2XAJ.js +0 -6
  2128. langflow/frontend/assets/chevrons-left-BT1xVp6K.js +0 -6
  2129. langflow/frontend/assets/chevrons-left-right-B2WlCikN.js +0 -6
  2130. langflow/frontend/assets/chevrons-left-right-ellipsis-BxPVnR4E.js +0 -6
  2131. langflow/frontend/assets/chevrons-right-CmnVjd8f.js +0 -6
  2132. langflow/frontend/assets/chevrons-right-left-DJlCB3D7.js +0 -6
  2133. langflow/frontend/assets/chevrons-up-BXoBnixo.js +0 -6
  2134. langflow/frontend/assets/chrome-MLuMBKvZ.js +0 -6
  2135. langflow/frontend/assets/church-CfFOeDzf.js +0 -6
  2136. langflow/frontend/assets/cigarette-BY0Ld_TP.js +0 -6
  2137. langflow/frontend/assets/cigarette-off-CUqITmyr.js +0 -6
  2138. langflow/frontend/assets/circle-alert-2_4FJj_N.js +0 -6
  2139. langflow/frontend/assets/circle-arrow-down-DNUpZJUT.js +0 -6
  2140. langflow/frontend/assets/circle-arrow-left-COoyuuhG.js +0 -6
  2141. langflow/frontend/assets/circle-arrow-out-down-left-CU8rYZy7.js +0 -6
  2142. langflow/frontend/assets/circle-arrow-out-down-right-f-QCFLH7.js +0 -6
  2143. langflow/frontend/assets/circle-arrow-out-up-left-C09-TAPk.js +0 -6
  2144. langflow/frontend/assets/circle-arrow-out-up-right-DisXp-ok.js +0 -6
  2145. langflow/frontend/assets/circle-arrow-right-CTUuYHK7.js +0 -6
  2146. langflow/frontend/assets/circle-arrow-up-OB29h_fS.js +0 -6
  2147. langflow/frontend/assets/circle-check-BcRxb5E3.js +0 -6
  2148. langflow/frontend/assets/circle-check-big-CQHYI4f2.js +0 -6
  2149. langflow/frontend/assets/circle-chevron-down-CdywPJiL.js +0 -6
  2150. langflow/frontend/assets/circle-chevron-left-bJywbBi1.js +0 -6
  2151. langflow/frontend/assets/circle-chevron-right-BjGS-bbR.js +0 -6
  2152. langflow/frontend/assets/circle-chevron-up-fJEGA2G9.js +0 -6
  2153. langflow/frontend/assets/circle-dashed-B4eCduGN.js +0 -6
  2154. langflow/frontend/assets/circle-divide-BRnLNU3R.js +0 -6
  2155. langflow/frontend/assets/circle-dollar-sign-D20l3kyE.js +0 -6
  2156. langflow/frontend/assets/circle-dot-D9zbAuLY.js +0 -6
  2157. langflow/frontend/assets/circle-dot-dashed-BwvDttnr.js +0 -6
  2158. langflow/frontend/assets/circle-ellipsis-CDUy3Pr7.js +0 -6
  2159. langflow/frontend/assets/circle-equal-BagKhvGq.js +0 -6
  2160. langflow/frontend/assets/circle-fading-arrow-up-Dejv-AAW.js +0 -6
  2161. langflow/frontend/assets/circle-fading-plus-Y17ShM5D.js +0 -6
  2162. langflow/frontend/assets/circle-gauge-B5UgdApG.js +0 -6
  2163. langflow/frontend/assets/circle-help-Dh1o7hTO.js +0 -6
  2164. langflow/frontend/assets/circle-minus-69GMoa2F.js +0 -6
  2165. langflow/frontend/assets/circle-off-Brhk5gQ6.js +0 -6
  2166. langflow/frontend/assets/circle-parking-C4zfscBU.js +0 -6
  2167. langflow/frontend/assets/circle-parking-off-DZMjDDWJ.js +0 -6
  2168. langflow/frontend/assets/circle-pause-B5Yv2eNl.js +0 -6
  2169. langflow/frontend/assets/circle-percent-C_fO8Z8x.js +0 -6
  2170. langflow/frontend/assets/circle-play-BJuIjOIJ.js +0 -6
  2171. langflow/frontend/assets/circle-plus-BoJHwzPQ.js +0 -6
  2172. langflow/frontend/assets/circle-power-BZpelruu.js +0 -6
  2173. langflow/frontend/assets/circle-slash-2-DWJQFJFa.js +0 -6
  2174. langflow/frontend/assets/circle-slash-BPw9aVMa.js +0 -6
  2175. langflow/frontend/assets/circle-small-Bmtun1kt.js +0 -6
  2176. langflow/frontend/assets/circle-stop-D3Cqh4d5.js +0 -6
  2177. langflow/frontend/assets/circle-user-Cd_sIIY_.js +0 -6
  2178. langflow/frontend/assets/circle-user-round-DdiEWOeX.js +0 -6
  2179. langflow/frontend/assets/circuit-board-BZa5cIbj.js +0 -6
  2180. langflow/frontend/assets/citrus-CQayHCWr.js +0 -6
  2181. langflow/frontend/assets/clapperboard-C_bW3w2Z.js +0 -6
  2182. langflow/frontend/assets/clipboard-B7KjZhMl.js +0 -6
  2183. langflow/frontend/assets/clipboard-check-B836L5Md.js +0 -6
  2184. langflow/frontend/assets/clipboard-copy-C-t-O3I5.js +0 -6
  2185. langflow/frontend/assets/clipboard-list-BUPXBEwQ.js +0 -6
  2186. langflow/frontend/assets/clipboard-minus-VOfkf2OK.js +0 -6
  2187. langflow/frontend/assets/clipboard-paste-CEtqXPym.js +0 -6
  2188. langflow/frontend/assets/clipboard-pen-UDWjr8Iq.js +0 -6
  2189. langflow/frontend/assets/clipboard-pen-line-87IxA4zN.js +0 -6
  2190. langflow/frontend/assets/clipboard-plus-Bdim0oRw.js +0 -6
  2191. langflow/frontend/assets/clipboard-type-C8MMZOtY.js +0 -6
  2192. langflow/frontend/assets/clipboard-x-CK1cgniq.js +0 -6
  2193. langflow/frontend/assets/clock-1-BPZaameZ.js +0 -6
  2194. langflow/frontend/assets/clock-10-D9HN68dA.js +0 -6
  2195. langflow/frontend/assets/clock-11-n9UoehPL.js +0 -6
  2196. langflow/frontend/assets/clock-12-B_bE_s4v.js +0 -6
  2197. langflow/frontend/assets/clock-2-B67knUJU.js +0 -6
  2198. langflow/frontend/assets/clock-3-zW_LLM0o.js +0 -6
  2199. langflow/frontend/assets/clock-4-C3WrY9WP.js +0 -6
  2200. langflow/frontend/assets/clock-5-CpKR0nkG.js +0 -6
  2201. langflow/frontend/assets/clock-6-De-lhVtN.js +0 -6
  2202. langflow/frontend/assets/clock-7-CCg_-2Ql.js +0 -6
  2203. langflow/frontend/assets/clock-8-B_KJFb1L.js +0 -6
  2204. langflow/frontend/assets/clock-9-C8unYDA7.js +0 -6
  2205. langflow/frontend/assets/clock-alert-CCCB3QcA.js +0 -6
  2206. langflow/frontend/assets/clock-arrow-down-DyiQQ8O9.js +0 -6
  2207. langflow/frontend/assets/clock-arrow-up-DBAimPVQ.js +0 -6
  2208. langflow/frontend/assets/clock-fading-Ds0A24yA.js +0 -6
  2209. langflow/frontend/assets/clock-tDvuBa1I.js +0 -6
  2210. langflow/frontend/assets/cloud-CEWNND-M.js +0 -6
  2211. langflow/frontend/assets/cloud-alert-Bd8T2mgm.js +0 -6
  2212. langflow/frontend/assets/cloud-cog-C23JSW9K.js +0 -6
  2213. langflow/frontend/assets/cloud-download-CMNFrHq_.js +0 -6
  2214. langflow/frontend/assets/cloud-drizzle-ByMVLkS-.js +0 -6
  2215. langflow/frontend/assets/cloud-fog-DH9egexL.js +0 -6
  2216. langflow/frontend/assets/cloud-hail-BPc7zHkK.js +0 -6
  2217. langflow/frontend/assets/cloud-lightning-CqvLoAnL.js +0 -6
  2218. langflow/frontend/assets/cloud-moon-jPd3Fccy.js +0 -6
  2219. langflow/frontend/assets/cloud-moon-rain-D6hAKQda.js +0 -6
  2220. langflow/frontend/assets/cloud-off-DsL52YnX.js +0 -6
  2221. langflow/frontend/assets/cloud-rain-D687o3gz.js +0 -6
  2222. langflow/frontend/assets/cloud-rain-wind-DIkjXEMC.js +0 -6
  2223. langflow/frontend/assets/cloud-snow-IaXaqaJ-.js +0 -6
  2224. langflow/frontend/assets/cloud-sun-fXVOr3bA.js +0 -6
  2225. langflow/frontend/assets/cloud-sun-rain-Cxzspx2e.js +0 -6
  2226. langflow/frontend/assets/cloud-upload-CO93Lee4.js +0 -6
  2227. langflow/frontend/assets/cloudy-DSrbTCHD.js +0 -6
  2228. langflow/frontend/assets/clover-BupVXV2L.js +0 -6
  2229. langflow/frontend/assets/club-DDjS-KXQ.js +0 -6
  2230. langflow/frontend/assets/code-xml-Bl4jLt2w.js +0 -6
  2231. langflow/frontend/assets/codepen-CWSKE4lo.js +0 -6
  2232. langflow/frontend/assets/codesandbox-CAbebHBB.js +0 -6
  2233. langflow/frontend/assets/coffee-iYnoAjuI.js +0 -6
  2234. langflow/frontend/assets/cog-BZzRO67j.js +0 -6
  2235. langflow/frontend/assets/coins-CXlgNMAH.js +0 -6
  2236. langflow/frontend/assets/columns-2-CY_-HKR1.js +0 -6
  2237. langflow/frontend/assets/columns-3-Wb5xfEo8.js +0 -6
  2238. langflow/frontend/assets/columns-3-cog-B4nI32-1.js +0 -6
  2239. langflow/frontend/assets/columns-4-CtP4jlm8.js +0 -6
  2240. langflow/frontend/assets/combine-CB275RH6.js +0 -6
  2241. langflow/frontend/assets/command-CGSCs3f0.js +0 -6
  2242. langflow/frontend/assets/compass-BN5Y8RYe.js +0 -6
  2243. langflow/frontend/assets/component-_eieuZ4P.js +0 -6
  2244. langflow/frontend/assets/computer-BYTBgdbC.js +0 -6
  2245. langflow/frontend/assets/concierge-bell-CR83CzD9.js +0 -6
  2246. langflow/frontend/assets/cone-CX9NuvPF.js +0 -6
  2247. langflow/frontend/assets/construction-B4riMUje.js +0 -6
  2248. langflow/frontend/assets/contact-N_sy9y1d.js +0 -6
  2249. langflow/frontend/assets/contact-round-BQHWc1h8.js +0 -6
  2250. langflow/frontend/assets/container-Ch2oJdc9.js +0 -6
  2251. langflow/frontend/assets/contrast-BQkJ2guh.js +0 -6
  2252. langflow/frontend/assets/cookie-C50YYYm0.js +0 -6
  2253. langflow/frontend/assets/cooking-pot-C-Okv4yC.js +0 -6
  2254. langflow/frontend/assets/copy-8ZslhzVD.js +0 -6
  2255. langflow/frontend/assets/copy-check-Cxkjc3o7.js +0 -6
  2256. langflow/frontend/assets/copy-minus-CqyGiSV-.js +0 -6
  2257. langflow/frontend/assets/copy-plus-C_bR3H_v.js +0 -6
  2258. langflow/frontend/assets/copy-slash-DZ6bKkUT.js +0 -6
  2259. langflow/frontend/assets/copy-x-BkVjQuJl.js +0 -6
  2260. langflow/frontend/assets/copyleft-UTEVSKkT.js +0 -6
  2261. langflow/frontend/assets/copyright-DoS7bgL9.js +0 -6
  2262. langflow/frontend/assets/corner-down-left-BVDdfIuz.js +0 -6
  2263. langflow/frontend/assets/corner-down-right-Bqj7hw0G.js +0 -6
  2264. langflow/frontend/assets/corner-left-down-B6nDF0XO.js +0 -6
  2265. langflow/frontend/assets/corner-left-up-F0zIp1Tq.js +0 -6
  2266. langflow/frontend/assets/corner-right-down-CvGhsmT1.js +0 -6
  2267. langflow/frontend/assets/corner-right-up-BSptF6ea.js +0 -6
  2268. langflow/frontend/assets/corner-up-left-CC2WvZE7.js +0 -6
  2269. langflow/frontend/assets/corner-up-right-BST7X43a.js +0 -6
  2270. langflow/frontend/assets/cpu-BPZDVaBD.js +0 -6
  2271. langflow/frontend/assets/creative-commons-DyHusSW4.js +0 -6
  2272. langflow/frontend/assets/credit-card-CygH8z2L.js +0 -6
  2273. langflow/frontend/assets/croissant-BxU_7_Ar.js +0 -6
  2274. langflow/frontend/assets/crop-BW-eOo8R.js +0 -6
  2275. langflow/frontend/assets/cross-DVfptoxu.js +0 -6
  2276. langflow/frontend/assets/crosshair-PODRWGSw.js +0 -6
  2277. langflow/frontend/assets/crown-Cef9LfXr.js +0 -6
  2278. langflow/frontend/assets/cuboid-Bqp_4ht1.js +0 -6
  2279. langflow/frontend/assets/cup-soda-DEO7lk8D.js +0 -6
  2280. langflow/frontend/assets/currency-CGPUh-GE.js +0 -6
  2281. langflow/frontend/assets/cylinder-BWw9LsOO.js +0 -6
  2282. langflow/frontend/assets/dam-BroAMNmM.js +0 -6
  2283. langflow/frontend/assets/database-BSZUTzSp.js +0 -6
  2284. langflow/frontend/assets/database-backup-BpmSWC1k.js +0 -6
  2285. langflow/frontend/assets/database-zap-Czz-z1Ld.js +0 -6
  2286. langflow/frontend/assets/decimals-arrow-left-DJRn4nxp.js +0 -6
  2287. langflow/frontend/assets/decimals-arrow-right-bF8NOnIj.js +0 -6
  2288. langflow/frontend/assets/delete-B_ofURoY.js +0 -6
  2289. langflow/frontend/assets/dessert-4G-OpTmx.js +0 -6
  2290. langflow/frontend/assets/diameter-DocvktNR.js +0 -6
  2291. langflow/frontend/assets/diamond-DsL0eCTo.js +0 -6
  2292. langflow/frontend/assets/diamond-minus-DpPrNiCW.js +0 -6
  2293. langflow/frontend/assets/diamond-percent-dMtCowJd.js +0 -6
  2294. langflow/frontend/assets/diamond-plus-Twa610o4.js +0 -6
  2295. langflow/frontend/assets/dice-1-BWpKFEL7.js +0 -6
  2296. langflow/frontend/assets/dice-2-Dsnb_ynY.js +0 -6
  2297. langflow/frontend/assets/dice-3-Bu4LXglt.js +0 -6
  2298. langflow/frontend/assets/dice-4-VVOhaevI.js +0 -6
  2299. langflow/frontend/assets/dice-5-Daar5UAd.js +0 -6
  2300. langflow/frontend/assets/dice-6-CDUAxys-.js +0 -6
  2301. langflow/frontend/assets/dices-Deq0MLBS.js +0 -6
  2302. langflow/frontend/assets/diff-CEshyR-n.js +0 -6
  2303. langflow/frontend/assets/disc-2-CfvpX2HO.js +0 -6
  2304. langflow/frontend/assets/disc-3-CjabXPol.js +0 -6
  2305. langflow/frontend/assets/disc-Do91ctQD.js +0 -6
  2306. langflow/frontend/assets/disc-album-D9Ognsbb.js +0 -6
  2307. langflow/frontend/assets/divide-K5AwwJ0Z.js +0 -6
  2308. langflow/frontend/assets/dna-Dqj3yZOX.js +0 -6
  2309. langflow/frontend/assets/dna-off-BNtt-5vo.js +0 -6
  2310. langflow/frontend/assets/dock-B42JVHPN.js +0 -6
  2311. langflow/frontend/assets/dog-B5mt1tnY.js +0 -6
  2312. langflow/frontend/assets/dollar-sign-NTAX1V1w.js +0 -6
  2313. langflow/frontend/assets/donut-BR4NFIkK.js +0 -6
  2314. langflow/frontend/assets/door-closed-COM1ogvo.js +0 -6
  2315. langflow/frontend/assets/door-open-CqFp4kCh.js +0 -6
  2316. langflow/frontend/assets/dot-C3vWbLU7.js +0 -6
  2317. langflow/frontend/assets/download-HRw6vFD3.js +0 -6
  2318. langflow/frontend/assets/drafting-compass-DZwFpyYA.js +0 -6
  2319. langflow/frontend/assets/drama-BKcHTPcS.js +0 -6
  2320. langflow/frontend/assets/dribbble-arzf-nQa.js +0 -6
  2321. langflow/frontend/assets/drill-DkLeOjdT.js +0 -6
  2322. langflow/frontend/assets/droplet-oUu-SG-R.js +0 -6
  2323. langflow/frontend/assets/droplet-off-CIdJALZ6.js +0 -6
  2324. langflow/frontend/assets/droplets-EPrcw5-M.js +0 -6
  2325. langflow/frontend/assets/drum-BuT5XdVh.js +0 -6
  2326. langflow/frontend/assets/drumstick-BYlA3c-q.js +0 -6
  2327. langflow/frontend/assets/dumbbell-L3Ge8ldF.js +0 -6
  2328. langflow/frontend/assets/ear-DhidmF06.js +0 -6
  2329. langflow/frontend/assets/ear-off-Db6Wocgg.js +0 -6
  2330. langflow/frontend/assets/earth-D--j_Rza.js +0 -6
  2331. langflow/frontend/assets/earth-lock-Bs-ZoIQd.js +0 -6
  2332. langflow/frontend/assets/eclipse-_i3vJRSl.js +0 -6
  2333. langflow/frontend/assets/egg-BbWgzysa.js +0 -6
  2334. langflow/frontend/assets/egg-fried-Bug5U7-h.js +0 -6
  2335. langflow/frontend/assets/egg-off-D-ls3cA4.js +0 -6
  2336. langflow/frontend/assets/ellipsis-B7WTCZl_.js +0 -6
  2337. langflow/frontend/assets/ellipsis-vertical-CQ1i--RV.js +0 -6
  2338. langflow/frontend/assets/equal-B_eWG38R.js +0 -6
  2339. langflow/frontend/assets/equal-approximately-Ccx0i8zO.js +0 -6
  2340. langflow/frontend/assets/equal-not-txdkmB30.js +0 -6
  2341. langflow/frontend/assets/eraser-CF3Nwbzq.js +0 -6
  2342. langflow/frontend/assets/ethernet-port-BlNDqU4x.js +0 -6
  2343. langflow/frontend/assets/euro-CtVbrusG.js +0 -6
  2344. langflow/frontend/assets/expand-Nah-q_NM.js +0 -6
  2345. langflow/frontend/assets/eye-closed-B4w8QN4H.js +0 -6
  2346. langflow/frontend/assets/eye-off-Dg4GNZFa.js +0 -6
  2347. langflow/frontend/assets/eye-te5Aty18.js +0 -6
  2348. langflow/frontend/assets/facebook-DfCZo-R8.js +0 -6
  2349. langflow/frontend/assets/factory-BUb8o95t.js +0 -6
  2350. langflow/frontend/assets/fan-2aPaMpol.js +0 -6
  2351. langflow/frontend/assets/fast-forward-COKQ_G-7.js +0 -6
  2352. langflow/frontend/assets/feather-Cph1Opf2.js +0 -6
  2353. langflow/frontend/assets/fence-dWdKMQ7S.js +0 -6
  2354. langflow/frontend/assets/ferris-wheel-CXZGjxSF.js +0 -6
  2355. langflow/frontend/assets/figma-PTYfYYx3.js +0 -6
  2356. langflow/frontend/assets/file-CFv2VplB.js +0 -6
  2357. langflow/frontend/assets/file-archive-DoE3Oz7Q.js +0 -6
  2358. langflow/frontend/assets/file-audio-2-CkYB_HbQ.js +0 -6
  2359. langflow/frontend/assets/file-audio-DprT0Mjt.js +0 -6
  2360. langflow/frontend/assets/file-axis-3d-CCky8MA_.js +0 -6
  2361. langflow/frontend/assets/file-badge-2-Cdt_D-vU.js +0 -6
  2362. langflow/frontend/assets/file-badge-C0uuo8ge.js +0 -6
  2363. langflow/frontend/assets/file-box-BCicxgij.js +0 -6
  2364. langflow/frontend/assets/file-chart-column-BRfDonHk.js +0 -6
  2365. langflow/frontend/assets/file-chart-column-increasing-CWwcgky6.js +0 -6
  2366. langflow/frontend/assets/file-chart-line-YZnvoTiB.js +0 -6
  2367. langflow/frontend/assets/file-chart-pie-C9wE5E2_.js +0 -6
  2368. langflow/frontend/assets/file-check-2-BjEdinb2.js +0 -6
  2369. langflow/frontend/assets/file-check-AdyW0ie3.js +0 -6
  2370. langflow/frontend/assets/file-clock-C6TLkorW.js +0 -6
  2371. langflow/frontend/assets/file-code-2-BQMoMCyk.js +0 -6
  2372. langflow/frontend/assets/file-code-GUOAOPmf.js +0 -6
  2373. langflow/frontend/assets/file-cog-gckKq8R3.js +0 -6
  2374. langflow/frontend/assets/file-diff-BO7kO3wQ.js +0 -6
  2375. langflow/frontend/assets/file-digit-DBmn-NAN.js +0 -6
  2376. langflow/frontend/assets/file-down-Cpj_JQ44.js +0 -6
  2377. langflow/frontend/assets/file-heart-B9bLDRyl.js +0 -6
  2378. langflow/frontend/assets/file-image-BbhSZCcu.js +0 -6
  2379. langflow/frontend/assets/file-input-kw13cNET.js +0 -6
  2380. langflow/frontend/assets/file-json-2-Danv3gv0.js +0 -6
  2381. langflow/frontend/assets/file-json-CdNiRddF.js +0 -6
  2382. langflow/frontend/assets/file-key-2-_lhrbwS0.js +0 -6
  2383. langflow/frontend/assets/file-key-C0xXlVfd.js +0 -6
  2384. langflow/frontend/assets/file-lock-2-BOTiZRaE.js +0 -6
  2385. langflow/frontend/assets/file-lock-D1QNon4f.js +0 -6
  2386. langflow/frontend/assets/file-minus-2-DjHe5CLf.js +0 -6
  2387. langflow/frontend/assets/file-minus-DKMNVQrX.js +0 -6
  2388. langflow/frontend/assets/file-music-C3VNGo36.js +0 -6
  2389. langflow/frontend/assets/file-output-CtF8gTp0.js +0 -6
  2390. langflow/frontend/assets/file-pen-CJ8rQsKZ.js +0 -6
  2391. langflow/frontend/assets/file-pen-line-D7iwsEfn.js +0 -6
  2392. langflow/frontend/assets/file-plus-2-Ct1mhczU.js +0 -6
  2393. langflow/frontend/assets/file-plus-DbQXbAYg.js +0 -6
  2394. langflow/frontend/assets/file-question-CZlTwuWW.js +0 -6
  2395. langflow/frontend/assets/file-scan-a4O4wVlp.js +0 -6
  2396. langflow/frontend/assets/file-search-2-INVP7Rr2.js +0 -6
  2397. langflow/frontend/assets/file-search-v4laLUdE.js +0 -6
  2398. langflow/frontend/assets/file-sliders-CI3ChCPf.js +0 -6
  2399. langflow/frontend/assets/file-spreadsheet-BanF0L1x.js +0 -6
  2400. langflow/frontend/assets/file-stack-BWJ8jFkF.js +0 -6
  2401. langflow/frontend/assets/file-symlink-BvlNbeqH.js +0 -6
  2402. langflow/frontend/assets/file-terminal-1Kluh8MK.js +0 -6
  2403. langflow/frontend/assets/file-text-DOr3rw62.js +0 -6
  2404. langflow/frontend/assets/file-type-2-DQQjkd_3.js +0 -6
  2405. langflow/frontend/assets/file-type-BsVXQnEw.js +0 -6
  2406. langflow/frontend/assets/file-up-Bykvje3M.js +0 -6
  2407. langflow/frontend/assets/file-user-DwUHsjMT.js +0 -6
  2408. langflow/frontend/assets/file-video-2-B5eGF0me.js +0 -6
  2409. langflow/frontend/assets/file-video-Dny2ZImN.js +0 -6
  2410. langflow/frontend/assets/file-volume-2-DOHJG224.js +0 -6
  2411. langflow/frontend/assets/file-volume-CDEcDAPj.js +0 -6
  2412. langflow/frontend/assets/file-warning-BBnVY_P5.js +0 -6
  2413. langflow/frontend/assets/file-x-2-CoW9VaZ-.js +0 -6
  2414. langflow/frontend/assets/file-x-BxhQIY0v.js +0 -6
  2415. langflow/frontend/assets/files-ChGVzsTZ.js +0 -6
  2416. langflow/frontend/assets/film-DEcQtiYV.js +0 -6
  2417. langflow/frontend/assets/fingerprint-TpfMoeWs.js +0 -6
  2418. langflow/frontend/assets/fire-extinguisher-DAAoM80h.js +0 -6
  2419. langflow/frontend/assets/fish-B1ZefdbT.js +0 -6
  2420. langflow/frontend/assets/fish-off-D1Z7ULz7.js +0 -6
  2421. langflow/frontend/assets/fish-symbol-K6fIlHiC.js +0 -6
  2422. langflow/frontend/assets/flag-C0t8XuzN.js +0 -6
  2423. langflow/frontend/assets/flag-off-DVGZHkTC.js +0 -6
  2424. langflow/frontend/assets/flag-triangle-left-DEmr3h_U.js +0 -6
  2425. langflow/frontend/assets/flag-triangle-right-D9mF7qS_.js +0 -6
  2426. langflow/frontend/assets/flame-D7KNDAbW.js +0 -6
  2427. langflow/frontend/assets/flame-kindling-DDZILA7c.js +0 -6
  2428. langflow/frontend/assets/flashlight-DnAlBFtq.js +0 -6
  2429. langflow/frontend/assets/flashlight-off-CaBqrqNz.js +0 -6
  2430. langflow/frontend/assets/flask-conical-579HsrLL.js +0 -6
  2431. langflow/frontend/assets/flask-conical-off-ChTL_2JI.js +0 -6
  2432. langflow/frontend/assets/flask-round-BxK3HnyC.js +0 -6
  2433. langflow/frontend/assets/flip-horizontal-2-Dc1uayYK.js +0 -6
  2434. langflow/frontend/assets/flip-horizontal-CfcUuyvu.js +0 -6
  2435. langflow/frontend/assets/flip-vertical-2-ahvBKDd8.js +0 -6
  2436. langflow/frontend/assets/flip-vertical-DKlHZhSC.js +0 -6
  2437. langflow/frontend/assets/flower-2-DljFwyrh.js +0 -6
  2438. langflow/frontend/assets/flower-GbCceBQj.js +0 -6
  2439. langflow/frontend/assets/focus-ZFnBEtIP.js +0 -6
  2440. langflow/frontend/assets/fold-horizontal-BcYAiLNo.js +0 -6
  2441. langflow/frontend/assets/fold-vertical-Btvrk1at.js +0 -6
  2442. langflow/frontend/assets/folder-C0RWWBif.js +0 -6
  2443. langflow/frontend/assets/folder-archive-BuFYQYwb.js +0 -6
  2444. langflow/frontend/assets/folder-check-CymeV4m-.js +0 -6
  2445. langflow/frontend/assets/folder-clock-BfbfvWrw.js +0 -6
  2446. langflow/frontend/assets/folder-closed-CILvcs1P.js +0 -6
  2447. langflow/frontend/assets/folder-code-Caen5R7_.js +0 -6
  2448. langflow/frontend/assets/folder-cog-C4niV-5N.js +0 -6
  2449. langflow/frontend/assets/folder-dot-B_PIjtY1.js +0 -6
  2450. langflow/frontend/assets/folder-down-DV92S3Pj.js +0 -6
  2451. langflow/frontend/assets/folder-git-2-BowJ5oNl.js +0 -6
  2452. langflow/frontend/assets/folder-git-Cjl04eKR.js +0 -6
  2453. langflow/frontend/assets/folder-heart-CVY1s9i2.js +0 -6
  2454. langflow/frontend/assets/folder-input-drI_gLXd.js +0 -6
  2455. langflow/frontend/assets/folder-kanban-bihCbzQr.js +0 -6
  2456. langflow/frontend/assets/folder-key-5gDP647M.js +0 -6
  2457. langflow/frontend/assets/folder-lock-SBjeml5D.js +0 -6
  2458. langflow/frontend/assets/folder-minus-CyWN47Hb.js +0 -6
  2459. langflow/frontend/assets/folder-open-Dlu9s1nh.js +0 -6
  2460. langflow/frontend/assets/folder-open-dot-B40kkxNH.js +0 -6
  2461. langflow/frontend/assets/folder-output-XrbWz0y-.js +0 -6
  2462. langflow/frontend/assets/folder-pen-3Dpgybz8.js +0 -6
  2463. langflow/frontend/assets/folder-plus-DOC_UAiM.js +0 -6
  2464. langflow/frontend/assets/folder-root-Dn_71Es2.js +0 -6
  2465. langflow/frontend/assets/folder-search-2-DG9x270K.js +0 -6
  2466. langflow/frontend/assets/folder-search-BDjX0u2J.js +0 -6
  2467. langflow/frontend/assets/folder-symlink-DXudnvmW.js +0 -6
  2468. langflow/frontend/assets/folder-sync-DKuVss19.js +0 -6
  2469. langflow/frontend/assets/folder-tree-DRJR0xY6.js +0 -6
  2470. langflow/frontend/assets/folder-up-CAKnsrV2.js +0 -6
  2471. langflow/frontend/assets/folder-x-D6mt5-bG.js +0 -6
  2472. langflow/frontend/assets/folders-p4nj-7yb.js +0 -6
  2473. langflow/frontend/assets/footprints-C8pSD5vA.js +0 -6
  2474. langflow/frontend/assets/forklift-DtgTwd0Y.js +0 -6
  2475. langflow/frontend/assets/forward-CDxRhjvU.js +0 -6
  2476. langflow/frontend/assets/frame-DVMMQwzw.js +0 -6
  2477. langflow/frontend/assets/framer-KHFOxqLs.js +0 -6
  2478. langflow/frontend/assets/frown-DmwvQIlD.js +0 -6
  2479. langflow/frontend/assets/fuel-D7sb3ia4.js +0 -6
  2480. langflow/frontend/assets/fullscreen-Zs3ZvCi6.js +0 -6
  2481. langflow/frontend/assets/funnel-CE86EVQa.js +0 -6
  2482. langflow/frontend/assets/funnel-plus-DwisN_0Y.js +0 -6
  2483. langflow/frontend/assets/funnel-x-CNTpUms9.js +0 -6
  2484. langflow/frontend/assets/gallery-horizontal-BgkdXEcH.js +0 -6
  2485. langflow/frontend/assets/gallery-horizontal-end-CHG0sCZa.js +0 -6
  2486. langflow/frontend/assets/gallery-thumbnails-DOIj_9V0.js +0 -6
  2487. langflow/frontend/assets/gallery-vertical-BuntLFnW.js +0 -6
  2488. langflow/frontend/assets/gallery-vertical-end-DFw8Bqyr.js +0 -6
  2489. langflow/frontend/assets/gamepad-2-Dt3GrDXJ.js +0 -6
  2490. langflow/frontend/assets/gamepad-BirbbUWJ.js +0 -6
  2491. langflow/frontend/assets/gauge-ClnyfbsU.js +0 -6
  2492. langflow/frontend/assets/gavel-BzxQtwb8.js +0 -6
  2493. langflow/frontend/assets/gem-BwHJBTuP.js +0 -6
  2494. langflow/frontend/assets/ghost-QLd1h_O9.js +0 -6
  2495. langflow/frontend/assets/gift-_vDDY7Q5.js +0 -6
  2496. langflow/frontend/assets/git-branch-Do4nHND_.js +0 -6
  2497. langflow/frontend/assets/git-branch-plus-LDo-5FG5.js +0 -6
  2498. langflow/frontend/assets/git-commit-horizontal-DsAbn1pT.js +0 -6
  2499. langflow/frontend/assets/git-commit-vertical-Cf63CU69.js +0 -6
  2500. langflow/frontend/assets/git-compare-DHJMxxfa.js +0 -6
  2501. langflow/frontend/assets/git-compare-arrows-C1E_1wQg.js +0 -6
  2502. langflow/frontend/assets/git-fork-Ho79NacG.js +0 -6
  2503. langflow/frontend/assets/git-graph-CzwH3auq.js +0 -6
  2504. langflow/frontend/assets/git-merge-BD5z5ypt.js +0 -6
  2505. langflow/frontend/assets/git-pull-request-B9bALMsJ.js +0 -6
  2506. langflow/frontend/assets/git-pull-request-arrow-CWmFVPI7.js +0 -6
  2507. langflow/frontend/assets/git-pull-request-closed-x-4B7RJZ.js +0 -6
  2508. langflow/frontend/assets/git-pull-request-create-CVqTiPj1.js +0 -6
  2509. langflow/frontend/assets/git-pull-request-create-arrow-BVv1WQA_.js +0 -6
  2510. langflow/frontend/assets/git-pull-request-draft-gWctFHOK.js +0 -6
  2511. langflow/frontend/assets/github-MyY3ZMM3.js +0 -6
  2512. langflow/frontend/assets/gitlab-C6kR-b5-.js +0 -6
  2513. langflow/frontend/assets/glass-water-Dv638Yzp.js +0 -6
  2514. langflow/frontend/assets/glasses-BAqA-rIt.js +0 -6
  2515. langflow/frontend/assets/globe-OVjIDj4k.js +0 -6
  2516. langflow/frontend/assets/globe-lock-SAVyHi23.js +0 -6
  2517. langflow/frontend/assets/goal-D9qNnmUF.js +0 -6
  2518. langflow/frontend/assets/grab-CSxFUk0J.js +0 -6
  2519. langflow/frontend/assets/graduation-cap-JFBxWb3j.js +0 -6
  2520. langflow/frontend/assets/grape-B0BWknPV.js +0 -6
  2521. langflow/frontend/assets/grid-2x2-1PDE2DZ8.js +0 -6
  2522. langflow/frontend/assets/grid-2x2-check-B4mMYpMN.js +0 -6
  2523. langflow/frontend/assets/grid-2x2-plus-CECgXIqV.js +0 -6
  2524. langflow/frontend/assets/grid-2x2-x-Br5jij3Q.js +0 -6
  2525. langflow/frontend/assets/grid-3x3-DYmPUtPh.js +0 -6
  2526. langflow/frontend/assets/grip-D61CrDmi.js +0 -6
  2527. langflow/frontend/assets/grip-horizontal-CG3nwPKB.js +0 -6
  2528. langflow/frontend/assets/grip-vertical-BcQBmN-Q.js +0 -6
  2529. langflow/frontend/assets/group-BgstyEj8.js +0 -6
  2530. langflow/frontend/assets/guitar-CA-RpaWI.js +0 -6
  2531. langflow/frontend/assets/ham-CZdvYRSd.js +0 -6
  2532. langflow/frontend/assets/hammer-DLYC4eNi.js +0 -6
  2533. langflow/frontend/assets/hand-BrvYsDo8.js +0 -6
  2534. langflow/frontend/assets/hand-coins-BiCEbX9N.js +0 -6
  2535. langflow/frontend/assets/hand-heart-B-fPRoRY.js +0 -6
  2536. langflow/frontend/assets/hand-helping-vRNpSjgr.js +0 -6
  2537. langflow/frontend/assets/hand-metal-BKCFuNTU.js +0 -6
  2538. langflow/frontend/assets/hand-platter-DdcU4K8E.js +0 -6
  2539. langflow/frontend/assets/handshake-DvGKGjEY.js +0 -6
  2540. langflow/frontend/assets/hard-drive-D6osG2ZF.js +0 -6
  2541. langflow/frontend/assets/hard-drive-download-XV9d9a9F.js +0 -6
  2542. langflow/frontend/assets/hard-drive-upload-BnXr77Eb.js +0 -6
  2543. langflow/frontend/assets/hard-hat-BMgO6T_Z.js +0 -6
  2544. langflow/frontend/assets/hash-ZP_bNYfp.js +0 -6
  2545. langflow/frontend/assets/haze-tXilYZkm.js +0 -6
  2546. langflow/frontend/assets/hdmi-port-A_C1QnoK.js +0 -6
  2547. langflow/frontend/assets/heading-1-CNRluy1C.js +0 -6
  2548. langflow/frontend/assets/heading-2-DcXdUsg6.js +0 -6
  2549. langflow/frontend/assets/heading-3-CoX_utud.js +0 -6
  2550. langflow/frontend/assets/heading-4-Dpvx7aXg.js +0 -6
  2551. langflow/frontend/assets/heading-5-BKyoY7_l.js +0 -6
  2552. langflow/frontend/assets/heading-6-D3b5734Y.js +0 -6
  2553. langflow/frontend/assets/heading-CyP_u9iL.js +0 -6
  2554. langflow/frontend/assets/headphone-off-8ipjsE3Q.js +0 -6
  2555. langflow/frontend/assets/headphones-B1b6C-mz.js +0 -6
  2556. langflow/frontend/assets/headset-7AYUbI0g.js +0 -6
  2557. langflow/frontend/assets/heart-BiZ_BxQG.js +0 -6
  2558. langflow/frontend/assets/heart-crack-DwwsvFvM.js +0 -6
  2559. langflow/frontend/assets/heart-handshake-CHR_MHVy.js +0 -6
  2560. langflow/frontend/assets/heart-minus-CoMhjyKk.js +0 -6
  2561. langflow/frontend/assets/heart-off-Bwbelz6H.js +0 -6
  2562. langflow/frontend/assets/heart-plus-DZkWfhof.js +0 -6
  2563. langflow/frontend/assets/heart-pulse-CgUXwAsG.js +0 -6
  2564. langflow/frontend/assets/heater-DFPPwhLA.js +0 -6
  2565. langflow/frontend/assets/hexagon-BJus94lO.js +0 -6
  2566. langflow/frontend/assets/highlighter-B97L2ZaD.js +0 -6
  2567. langflow/frontend/assets/history-CYIfWBls.js +0 -6
  2568. langflow/frontend/assets/hop-C43CVrDn.js +0 -6
  2569. langflow/frontend/assets/hop-off-DXsG3hd1.js +0 -6
  2570. langflow/frontend/assets/hospital-CF2VdPsZ.js +0 -6
  2571. langflow/frontend/assets/hotel-CzowVY04.js +0 -6
  2572. langflow/frontend/assets/hourglass-DIFpBIs0.js +0 -6
  2573. langflow/frontend/assets/house-BBs4-NXU.js +0 -6
  2574. langflow/frontend/assets/house-plug-DjhvK5Qj.js +0 -6
  2575. langflow/frontend/assets/house-plus-4UMzMk7D.js +0 -6
  2576. langflow/frontend/assets/house-wifi-CbcVoqFk.js +0 -6
  2577. langflow/frontend/assets/ice-cream-bowl-xUdYNDsZ.js +0 -6
  2578. langflow/frontend/assets/ice-cream-cone-Chmsve4H.js +0 -6
  2579. langflow/frontend/assets/id-card-D_gHgoE6.js +0 -6
  2580. langflow/frontend/assets/image-Dy8bf-9C.js +0 -6
  2581. langflow/frontend/assets/image-down-bud-u9tI.js +0 -6
  2582. langflow/frontend/assets/image-minus-DBLuSTX8.js +0 -6
  2583. langflow/frontend/assets/image-off-B4U3tcXP.js +0 -6
  2584. langflow/frontend/assets/image-play-CCMcIiK9.js +0 -6
  2585. langflow/frontend/assets/image-plus-QQO8euBp.js +0 -6
  2586. langflow/frontend/assets/image-up-Dnpb0WHh.js +0 -6
  2587. langflow/frontend/assets/image-upscale-DQivmAjt.js +0 -6
  2588. langflow/frontend/assets/images-PrEGP4Rd.js +0 -6
  2589. langflow/frontend/assets/import-C7NnNjWD.js +0 -6
  2590. langflow/frontend/assets/inbox-BKRJz50j.js +0 -6
  2591. langflow/frontend/assets/indent-decrease-vAVL4B-2.js +0 -6
  2592. langflow/frontend/assets/indent-increase-ddsPgprZ.js +0 -6
  2593. langflow/frontend/assets/index--ryZKk2A.js +0 -1
  2594. langflow/frontend/assets/index-0TvqIv-b.js +0 -1
  2595. langflow/frontend/assets/index-1-jteCub.js +0 -1
  2596. langflow/frontend/assets/index-1ardBTwz.js +0 -1
  2597. langflow/frontend/assets/index-3HYxARJr.js +0 -1
  2598. langflow/frontend/assets/index-72f4tz8t.js +0 -1
  2599. langflow/frontend/assets/index-7CilUK0e.js +0 -1
  2600. langflow/frontend/assets/index-8pk5GGG-.js +0 -1
  2601. langflow/frontend/assets/index-APj_DnfF.js +0 -1
  2602. langflow/frontend/assets/index-B-NQA0n2.js +0 -1
  2603. langflow/frontend/assets/index-B6pj0yL7.js +0 -1
  2604. langflow/frontend/assets/index-B9CEBLcZ.js +0 -127
  2605. langflow/frontend/assets/index-BB9wVErO.js +0 -1
  2606. langflow/frontend/assets/index-BD2YsHdq.js +0 -1
  2607. langflow/frontend/assets/index-BE8BViTb.js +0 -1
  2608. langflow/frontend/assets/index-BEVLmXHS.js +0 -1
  2609. langflow/frontend/assets/index-BGavCsth.js +0 -1
  2610. langflow/frontend/assets/index-BIv1vMsh.js +0 -1
  2611. langflow/frontend/assets/index-BJBTX4zk.js +0 -1
  2612. langflow/frontend/assets/index-BK3u8lSB.js +0 -1
  2613. langflow/frontend/assets/index-BK48-VvR.js +0 -1
  2614. langflow/frontend/assets/index-BKU5j2MC.js +0 -1
  2615. langflow/frontend/assets/index-BNhJNvL_.js +0 -1
  2616. langflow/frontend/assets/index-BNk-g6C4.js +0 -1
  2617. langflow/frontend/assets/index-BPZT13IU.js +0 -1
  2618. langflow/frontend/assets/index-BQptc6Q0.js +0 -1
  2619. langflow/frontend/assets/index-BSA2lLf4.js +0 -1
  2620. langflow/frontend/assets/index-BVjxduof.js +0 -1
  2621. langflow/frontend/assets/index-BWWNR6bX.js +0 -1
  2622. langflow/frontend/assets/index-BWrT1VZU.js +0 -1
  2623. langflow/frontend/assets/index-BXK8B_Ng.js +0 -1
  2624. langflow/frontend/assets/index-BY5_4CgK.js +0 -1
  2625. langflow/frontend/assets/index-BYNkKcSY.js +0 -1
  2626. langflow/frontend/assets/index-B_Ud-p2n.js +0 -495
  2627. langflow/frontend/assets/index-BaM3XikF.js +0 -1
  2628. langflow/frontend/assets/index-BasBVqTM.js +0 -1
  2629. langflow/frontend/assets/index-BbEkZjzk.js +0 -1
  2630. langflow/frontend/assets/index-BcWm5i27.js +0 -1
  2631. langflow/frontend/assets/index-Bh3djpnE.js +0 -1
  2632. langflow/frontend/assets/index-Bh9W4B2F.js +0 -1
  2633. langflow/frontend/assets/index-BihA0no7.js +0 -1
  2634. langflow/frontend/assets/index-BmJj2oHP.js +0 -1
  2635. langflow/frontend/assets/index-BneBDjUb.js +0 -21
  2636. langflow/frontend/assets/index-BoY6S9GF.js +0 -1
  2637. langflow/frontend/assets/index-Bo_DCx0K.js +0 -1
  2638. langflow/frontend/assets/index-BstmkMDg.js +0 -1
  2639. langflow/frontend/assets/index-BtcYlTML.js +0 -1
  2640. langflow/frontend/assets/index-Bvs-6JBz.js +0 -1
  2641. langflow/frontend/assets/index-BwN3WPto.js +0 -1
  2642. langflow/frontend/assets/index-BxMb0QVJ.js +0 -1
  2643. langflow/frontend/assets/index-ByxIcCIV.js +0 -1
  2644. langflow/frontend/assets/index-BzHfcmnB.js +0 -1
  2645. langflow/frontend/assets/index-C4EZdALd.js +0 -1
  2646. langflow/frontend/assets/index-C5BFMXr9.js +0 -1
  2647. langflow/frontend/assets/index-C5d2tnJQ.js +0 -1
  2648. langflow/frontend/assets/index-C6OXi5V0.js +0 -1
  2649. langflow/frontend/assets/index-C8K9d6yp.js +0 -1
  2650. langflow/frontend/assets/index-C9wPlfFZ.js +0 -1
  2651. langflow/frontend/assets/index-CAUtb6Yf.js +0 -1
  2652. langflow/frontend/assets/index-CBu9zIev.js +0 -1
  2653. langflow/frontend/assets/index-CCZFVbfS.js +0 -1
  2654. langflow/frontend/assets/index-CFQP_3uk.js +0 -1
  2655. langflow/frontend/assets/index-CHcVfPzP.js +0 -1
  2656. langflow/frontend/assets/index-CIiHPEFm.js +0 -1
  2657. langflow/frontend/assets/index-CJNbPi0l.js +0 -1
  2658. langflow/frontend/assets/index-CKUUy866.js +0 -1
  2659. langflow/frontend/assets/index-CLPdAaz0.js +0 -1
  2660. langflow/frontend/assets/index-CMoT1Xra.js +0 -1
  2661. langflow/frontend/assets/index-CNt3JHx5.js +0 -1
  2662. langflow/frontend/assets/index-COf7KEQ_.js +0 -1
  2663. langflow/frontend/assets/index-CPBhz8zZ.js +0 -381
  2664. langflow/frontend/assets/index-CPz4iw_D.js +0 -1
  2665. langflow/frontend/assets/index-CQkajgd-.js +0 -1
  2666. langflow/frontend/assets/index-CQsu_oCx.js +0 -1
  2667. langflow/frontend/assets/index-CQxFPIpl.js +0 -1
  2668. langflow/frontend/assets/index-CRTwUz_b.js +0 -20
  2669. langflow/frontend/assets/index-CSUA5Lof.js +0 -1
  2670. langflow/frontend/assets/index-CTXB_vBY.js +0 -1
  2671. langflow/frontend/assets/index-CVAs2qjr.js +0 -1
  2672. langflow/frontend/assets/index-CXe0dhZI.js +0 -1
  2673. langflow/frontend/assets/index-CZSzsbOA.js +0 -1
  2674. langflow/frontend/assets/index-C_VReGbC.js +0 -1
  2675. langflow/frontend/assets/index-CauVxSEL.js +0 -1
  2676. langflow/frontend/assets/index-Cc4STNAo.js +0 -1
  2677. langflow/frontend/assets/index-CcOB7oQk.js +0 -1
  2678. langflow/frontend/assets/index-CetUp3Ny.js +0 -1
  2679. langflow/frontend/assets/index-CfxvzrVy.js +0 -1
  2680. langflow/frontend/assets/index-Chu2XyqL.js +0 -1
  2681. langflow/frontend/assets/index-CjwuHSgE.js +0 -1
  2682. langflow/frontend/assets/index-CmIJ523o.js +0 -1
  2683. langflow/frontend/assets/index-CmWA9Lvr.js +0 -1
  2684. langflow/frontend/assets/index-CmsfMZo5.js +0 -1
  2685. langflow/frontend/assets/index-Cn41dVyq.js +0 -1
  2686. langflow/frontend/assets/index-CpSiFngt.js +0 -1
  2687. langflow/frontend/assets/index-Cpi7JYVs.js +0 -1
  2688. langflow/frontend/assets/index-Cu7Y5f7l.js +0 -1
  2689. langflow/frontend/assets/index-CuW5-tBl.js +0 -1
  2690. langflow/frontend/assets/index-D02tiQqp.js +0 -281
  2691. langflow/frontend/assets/index-D0R8G_F2.js +0 -1
  2692. langflow/frontend/assets/index-D0TCj2p4.js +0 -1
  2693. langflow/frontend/assets/index-D1ojERZR.css +0 -1
  2694. langflow/frontend/assets/index-D4AP6ijT.js +0 -1
  2695. langflow/frontend/assets/index-D4KCuMLd.js +0 -1
  2696. langflow/frontend/assets/index-D4YUd0kz.js +0 -1
  2697. langflow/frontend/assets/index-D5gt1mRp.js +0 -1
  2698. langflow/frontend/assets/index-DBHlxQz6.js +0 -1
  2699. langflow/frontend/assets/index-DCXL0U8l.js +0 -1
  2700. langflow/frontend/assets/index-DDThLEKy.js +0 -1
  2701. langflow/frontend/assets/index-DF5gnxKx.js +0 -1
  2702. langflow/frontend/assets/index-DHazfi5w.js +0 -1
  2703. langflow/frontend/assets/index-DIa39Hs4.js +0 -1
  2704. langflow/frontend/assets/index-DPUcZx27.js +0 -1
  2705. langflow/frontend/assets/index-DPveTTf-.js +0 -1
  2706. langflow/frontend/assets/index-DQzFlbiH.js +0 -1
  2707. langflow/frontend/assets/index-DRqqSRjD.js +0 -1
  2708. langflow/frontend/assets/index-DSrjNV4J.js +0 -1
  2709. langflow/frontend/assets/index-DWaX05x1.js +0 -1
  2710. langflow/frontend/assets/index-DXfF0vQR.js +0 -1
  2711. langflow/frontend/assets/index-DY2jGJqb.js +0 -1
  2712. langflow/frontend/assets/index-DZ6tcyJg.js +0 -1
  2713. langflow/frontend/assets/index-D_DeF3yd.js +0 -205
  2714. langflow/frontend/assets/index-D_WkSr4s.js +0 -1
  2715. langflow/frontend/assets/index-Damn4OIi.js +0 -1
  2716. langflow/frontend/assets/index-DaymB1bj.js +0 -1
  2717. langflow/frontend/assets/index-Deabp4px.js +0 -1
  2718. langflow/frontend/assets/index-DfcTAkyb.js +0 -1
  2719. langflow/frontend/assets/index-DfrX3zPf.js +0 -1
  2720. langflow/frontend/assets/index-Dfz_jbUc.js +0 -2
  2721. langflow/frontend/assets/index-Dg-oByq-.js +0 -1
  2722. langflow/frontend/assets/index-Dg06JSg2.js +0 -1
  2723. langflow/frontend/assets/index-DgY4ewik.js +0 -1
  2724. langflow/frontend/assets/index-DgsBGp7G.js +0 -1
  2725. langflow/frontend/assets/index-DjLYCZCM.js +0 -1
  2726. langflow/frontend/assets/index-DjMUzzEJ.js +0 -7321
  2727. langflow/frontend/assets/index-DlcEhHes.js +0 -1
  2728. langflow/frontend/assets/index-DmAiLOqf.js +0 -1
  2729. langflow/frontend/assets/index-DmONlOs9.js +0 -108
  2730. langflow/frontend/assets/index-DnwqEcas.js +0 -1
  2731. langflow/frontend/assets/index-DpJIi7J5.js +0 -1
  2732. langflow/frontend/assets/index-DpLpS53b.js +0 -1
  2733. langflow/frontend/assets/index-DuHNVvq4.js +0 -1
  2734. langflow/frontend/assets/index-Dukvwe_S.js +0 -1
  2735. langflow/frontend/assets/index-DvozaVxn.js +0 -1
  2736. langflow/frontend/assets/index-Dz24CfeM.js +0 -1
  2737. langflow/frontend/assets/index-DzNj52IF.js +0 -185
  2738. langflow/frontend/assets/index-EP_RwtR7.js +0 -1
  2739. langflow/frontend/assets/index-Es33KfN0.js +0 -1
  2740. langflow/frontend/assets/index-FeomfJt5.js +0 -1
  2741. langflow/frontend/assets/index-HwCQwlzz.js +0 -1
  2742. langflow/frontend/assets/index-Ic_TsdY0.js +0 -1
  2743. langflow/frontend/assets/index-JVM3KsU7.js +0 -1
  2744. langflow/frontend/assets/index-KGxLqNwq.js +0 -1
  2745. langflow/frontend/assets/index-L5R65uXs.js +0 -1
  2746. langflow/frontend/assets/index-L8lZCf1X.js +0 -767
  2747. langflow/frontend/assets/index-LVoZHOXp.js +0 -1
  2748. langflow/frontend/assets/index-OJrVUqex.js +0 -1
  2749. langflow/frontend/assets/index-PytA15id.js +0 -13
  2750. langflow/frontend/assets/index-QE__y1xm.js +0 -1
  2751. langflow/frontend/assets/index-TNsn2odj.js +0 -1
  2752. langflow/frontend/assets/index-UMXLhqX1.js +0 -1
  2753. langflow/frontend/assets/index-UNJc1DvY.js +0 -7
  2754. langflow/frontend/assets/index-URFjnCS1.js +0 -1
  2755. langflow/frontend/assets/index-UqIj3_pv.js +0 -1
  2756. langflow/frontend/assets/index-VSS2RAIW.js +0 -1
  2757. langflow/frontend/assets/index-_GWxbwRt.js +0 -1
  2758. langflow/frontend/assets/index-_ZO_tdlA.js +0 -1
  2759. langflow/frontend/assets/index-_rVkNNkF.js +0 -1
  2760. langflow/frontend/assets/index-dpze9uCV.js +0 -1
  2761. langflow/frontend/assets/index-ec8xi6Ud.js +0 -1
  2762. langflow/frontend/assets/index-fUY_XsaS.js +0 -1
  2763. langflow/frontend/assets/index-gHe9BhWi.js +0 -1
  2764. langflow/frontend/assets/index-h95E4J2n.js +0 -1
  2765. langflow/frontend/assets/index-hJtIFTPf.js +0 -1
  2766. langflow/frontend/assets/index-hTG5sDKH.js +0 -1
  2767. langflow/frontend/assets/index-hc6_NKtm.js +0 -1
  2768. langflow/frontend/assets/index-hpeO7aY3.js +0 -1
  2769. langflow/frontend/assets/index-i28zm-60.js +0 -1
  2770. langflow/frontend/assets/index-oq_MYoTn.js +0 -1
  2771. langflow/frontend/assets/index-pjeTn7Oz.js +0 -1
  2772. langflow/frontend/assets/index-rD-_pOMP.js +0 -1
  2773. langflow/frontend/assets/index-sPB9CCL6.js +0 -1
  2774. langflow/frontend/assets/index-tayweodu.js +0 -1
  2775. langflow/frontend/assets/index-y3l0Xzen.js +0 -399
  2776. langflow/frontend/assets/index-yNZyCKu5.js +0 -1
  2777. langflow/frontend/assets/index-zPCwKECo.js +0 -1
  2778. langflow/frontend/assets/indian-rupee-CH24wvfd.js +0 -6
  2779. langflow/frontend/assets/infinity-BUyGPF9c.js +0 -6
  2780. langflow/frontend/assets/info-C56khIqj.js +0 -6
  2781. langflow/frontend/assets/inspection-panel-DmHSoqC7.js +0 -6
  2782. langflow/frontend/assets/instagram-B2yKsUag.js +0 -6
  2783. langflow/frontend/assets/italic-Cj8uL0Rr.js +0 -6
  2784. langflow/frontend/assets/iteration-ccw-DAn59Qlb.js +0 -6
  2785. langflow/frontend/assets/iteration-cw-1XZDGYi7.js +0 -6
  2786. langflow/frontend/assets/japanese-yen-C7nxRUkn.js +0 -6
  2787. langflow/frontend/assets/joystick-B7a7EZRK.js +0 -6
  2788. langflow/frontend/assets/kanban-BPrQ4acr.js +0 -6
  2789. langflow/frontend/assets/key-pgFQ_Rlg.js +0 -6
  2790. langflow/frontend/assets/key-round-C3nj0eLK.js +0 -6
  2791. langflow/frontend/assets/key-square-ahhgQ9-s.js +0 -6
  2792. langflow/frontend/assets/keyboard-SdcsMDUP.js +0 -6
  2793. langflow/frontend/assets/keyboard-music-B9gU57CX.js +0 -6
  2794. langflow/frontend/assets/keyboard-off-s4AENAD7.js +0 -6
  2795. langflow/frontend/assets/lamp-A3h-CzCo.js +0 -6
  2796. langflow/frontend/assets/lamp-ceiling-CuW0Pje-.js +0 -6
  2797. langflow/frontend/assets/lamp-desk-B0gSz8f2.js +0 -6
  2798. langflow/frontend/assets/lamp-floor-CF4kEgFe.js +0 -6
  2799. langflow/frontend/assets/lamp-wall-down-CHEvFXjU.js +0 -6
  2800. langflow/frontend/assets/lamp-wall-up-BYfOipKe.js +0 -6
  2801. langflow/frontend/assets/land-plot-DJAcAwnI.js +0 -6
  2802. langflow/frontend/assets/landmark-DZ5l3yoz.js +0 -6
  2803. langflow/frontend/assets/languages-o13Tg3ks.js +0 -6
  2804. langflow/frontend/assets/laptop-C_-w1Zgr.js +0 -6
  2805. langflow/frontend/assets/laptop-minimal-DLD1VG_w.js +0 -6
  2806. langflow/frontend/assets/laptop-minimal-check-BcWarZRN.js +0 -6
  2807. langflow/frontend/assets/lasso-TZwlL10m.js +0 -6
  2808. langflow/frontend/assets/lasso-select-DZFm1dvr.js +0 -6
  2809. langflow/frontend/assets/laugh-0gs3v00G.js +0 -6
  2810. langflow/frontend/assets/layers-2-C9TwrAWY.js +0 -6
  2811. langflow/frontend/assets/layers-CEcSXAq9.js +0 -6
  2812. langflow/frontend/assets/layout-dashboard-CLBRy1uO.js +0 -6
  2813. langflow/frontend/assets/layout-grid-__6Sk9EF.js +0 -6
  2814. langflow/frontend/assets/layout-list-Bh236i6c.js +0 -6
  2815. langflow/frontend/assets/layout-panel-left-CgAdABFP.js +0 -6
  2816. langflow/frontend/assets/layout-panel-top-Bblv127D.js +0 -6
  2817. langflow/frontend/assets/layout-template-B2fEHrfk.js +0 -6
  2818. langflow/frontend/assets/lazyIconImports-CLD7MCnv.js +0 -2
  2819. langflow/frontend/assets/leaf-DSQc-_CE.js +0 -6
  2820. langflow/frontend/assets/leafy-green-D71B4IG4.js +0 -6
  2821. langflow/frontend/assets/lectern-D4Rjius5.js +0 -6
  2822. langflow/frontend/assets/letter-text-DdjtEAfr.js +0 -6
  2823. langflow/frontend/assets/library-BU14JsQK.js +0 -6
  2824. langflow/frontend/assets/library-big-C4BtxCYx.js +0 -6
  2825. langflow/frontend/assets/life-buoy-C25NN-O0.js +0 -6
  2826. langflow/frontend/assets/ligature-BDdhR98M.js +0 -6
  2827. langflow/frontend/assets/lightbulb-CYVKd8_i.js +0 -6
  2828. langflow/frontend/assets/lightbulb-off-yf-UxPfj.js +0 -6
  2829. langflow/frontend/assets/link-2-CB5bnI4B.js +0 -6
  2830. langflow/frontend/assets/link-2-off-BKDobe_B.js +0 -6
  2831. langflow/frontend/assets/link-PrB-FQNr.js +0 -6
  2832. langflow/frontend/assets/linkedin-BFtJhFp0.js +0 -6
  2833. langflow/frontend/assets/list-CQBR3Ohh.js +0 -6
  2834. langflow/frontend/assets/list-check-DlmBNOLm.js +0 -6
  2835. langflow/frontend/assets/list-checks-CHaNW2kH.js +0 -6
  2836. langflow/frontend/assets/list-collapse-Cyj_lJRp.js +0 -6
  2837. langflow/frontend/assets/list-end-CltNfQfi.js +0 -6
  2838. langflow/frontend/assets/list-filter-BrIMqkqz.js +0 -6
  2839. langflow/frontend/assets/list-filter-plus-Bzi87QP_.js +0 -6
  2840. langflow/frontend/assets/list-minus-CtsO-Sxz.js +0 -6
  2841. langflow/frontend/assets/list-music-Z33Qpe0L.js +0 -6
  2842. langflow/frontend/assets/list-ordered-C5QiJS9_.js +0 -6
  2843. langflow/frontend/assets/list-plus-DxEcUuF-.js +0 -6
  2844. langflow/frontend/assets/list-restart-BnpR7MX9.js +0 -6
  2845. langflow/frontend/assets/list-start-u_FURjr8.js +0 -6
  2846. langflow/frontend/assets/list-todo-BpCUDZvS.js +0 -6
  2847. langflow/frontend/assets/list-tree-Bx_-h_pQ.js +0 -6
  2848. langflow/frontend/assets/list-video-DP7lyYB4.js +0 -6
  2849. langflow/frontend/assets/list-x-Cyz5KM-j.js +0 -6
  2850. langflow/frontend/assets/loader-Cmtaae40.js +0 -6
  2851. langflow/frontend/assets/loader-circle-Cu8hS1-V.js +0 -6
  2852. langflow/frontend/assets/loader-pinwheel-VFfYuLTr.js +0 -6
  2853. langflow/frontend/assets/locate-DSzhKoLI.js +0 -6
  2854. langflow/frontend/assets/locate-fixed-CrV9RZ5Z.js +0 -6
  2855. langflow/frontend/assets/locate-off-Dnifs5t8.js +0 -6
  2856. langflow/frontend/assets/location-edit-Bvg0o27D.js +0 -6
  2857. langflow/frontend/assets/lock-FEICSN66.js +0 -6
  2858. langflow/frontend/assets/lock-keyhole-BVTpkV8M.js +0 -6
  2859. langflow/frontend/assets/lock-keyhole-open-CfEjgYw7.js +0 -6
  2860. langflow/frontend/assets/lock-open-CKbpJdMf.js +0 -6
  2861. langflow/frontend/assets/log-in-D1ns7wQm.js +0 -6
  2862. langflow/frontend/assets/log-out-CWsXBWIk.js +0 -6
  2863. langflow/frontend/assets/logs-DRXP6HRH.js +0 -6
  2864. langflow/frontend/assets/lollipop-DLt__LA0.js +0 -6
  2865. langflow/frontend/assets/luggage-D0O1jUpK.js +0 -6
  2866. langflow/frontend/assets/magnet-DOQucuF8.js +0 -6
  2867. langflow/frontend/assets/mail-BHhcWlzF.js +0 -6
  2868. langflow/frontend/assets/mail-check-Bllur3og.js +0 -6
  2869. langflow/frontend/assets/mail-minus-4IdE4gAH.js +0 -6
  2870. langflow/frontend/assets/mail-open-DoUkPHne.js +0 -6
  2871. langflow/frontend/assets/mail-plus-B9HaMrwZ.js +0 -6
  2872. langflow/frontend/assets/mail-question-DBYXhvaG.js +0 -6
  2873. langflow/frontend/assets/mail-search-COgJb_51.js +0 -6
  2874. langflow/frontend/assets/mail-warning-FVMlV9w8.js +0 -6
  2875. langflow/frontend/assets/mail-x-C-UBX8j_.js +0 -6
  2876. langflow/frontend/assets/mailbox-BMwljuGJ.js +0 -6
  2877. langflow/frontend/assets/mails-CBvgBqlL.js +0 -6
  2878. langflow/frontend/assets/map-2ZEdSJKz.js +0 -6
  2879. langflow/frontend/assets/map-pin-BH2xAwfK.js +0 -6
  2880. langflow/frontend/assets/map-pin-check-inside-Nd7ipyqr.js +0 -6
  2881. langflow/frontend/assets/map-pin-check-oy93zYD7.js +0 -6
  2882. langflow/frontend/assets/map-pin-house-_eL2J9ya.js +0 -6
  2883. langflow/frontend/assets/map-pin-minus-BQcPlPcA.js +0 -6
  2884. langflow/frontend/assets/map-pin-minus-inside-C_MgyibV.js +0 -6
  2885. langflow/frontend/assets/map-pin-off-fPcFat_c.js +0 -6
  2886. langflow/frontend/assets/map-pin-plus-BbFGBw9D.js +0 -6
  2887. langflow/frontend/assets/map-pin-plus-inside-CuQX5M6B.js +0 -6
  2888. langflow/frontend/assets/map-pin-x-C4VioXFC.js +0 -6
  2889. langflow/frontend/assets/map-pin-x-inside-DsTQem5G.js +0 -6
  2890. langflow/frontend/assets/map-pinned-CS197vMA.js +0 -6
  2891. langflow/frontend/assets/map-plus-C5nt5fxQ.js +0 -6
  2892. langflow/frontend/assets/mars-HmG7DwfW.js +0 -6
  2893. langflow/frontend/assets/mars-stroke-Cv45yyYS.js +0 -6
  2894. langflow/frontend/assets/martini-74YxP29j.js +0 -6
  2895. langflow/frontend/assets/maximize-2-BBR8Q8AX.js +0 -6
  2896. langflow/frontend/assets/maximize-BBteUCLq.js +0 -6
  2897. langflow/frontend/assets/medal-CVxzwXK1.js +0 -6
  2898. langflow/frontend/assets/megaphone-CWewH8O2.js +0 -6
  2899. langflow/frontend/assets/megaphone-off-DI674mdn.js +0 -6
  2900. langflow/frontend/assets/meh-CU9MNb-0.js +0 -6
  2901. langflow/frontend/assets/memory-stick-DY1Y4w55.js +0 -6
  2902. langflow/frontend/assets/menu-4GkLYVAP.js +0 -6
  2903. langflow/frontend/assets/merge-DNwCjkMz.js +0 -6
  2904. langflow/frontend/assets/message-circle-DLCvrYNR.js +0 -6
  2905. langflow/frontend/assets/message-circle-code-GupdQt2W.js +0 -6
  2906. langflow/frontend/assets/message-circle-dashed-67bYzw8l.js +0 -6
  2907. langflow/frontend/assets/message-circle-heart-B85ZBeEI.js +0 -6
  2908. langflow/frontend/assets/message-circle-more-M6qK0QU_.js +0 -6
  2909. langflow/frontend/assets/message-circle-off-Cl1eoidv.js +0 -6
  2910. langflow/frontend/assets/message-circle-plus-B1vadGfe.js +0 -6
  2911. langflow/frontend/assets/message-circle-question-CCYdL8ts.js +0 -6
  2912. langflow/frontend/assets/message-circle-reply-FGEU7jkF.js +0 -6
  2913. langflow/frontend/assets/message-circle-warning-MUIUPzAb.js +0 -6
  2914. langflow/frontend/assets/message-circle-x-DRvt_0Jv.js +0 -6
  2915. langflow/frontend/assets/message-square-code-CpiJVsLk.js +0 -6
  2916. langflow/frontend/assets/message-square-dashed-BEKvtMfA.js +0 -6
  2917. langflow/frontend/assets/message-square-diff-C-oqiS_n.js +0 -6
  2918. langflow/frontend/assets/message-square-dot-Bbc6g5vf.js +0 -6
  2919. langflow/frontend/assets/message-square-heart-wk9IWIQG.js +0 -6
  2920. langflow/frontend/assets/message-square-lock-CVwrV1Nu.js +0 -6
  2921. langflow/frontend/assets/message-square-more-C_Djc7Nh.js +0 -6
  2922. langflow/frontend/assets/message-square-off-BqQx6Nqj.js +0 -6
  2923. langflow/frontend/assets/message-square-plus-6ZxHnHP8.js +0 -6
  2924. langflow/frontend/assets/message-square-quote-HC4vYXVE.js +0 -6
  2925. langflow/frontend/assets/message-square-reply-2P6H89jb.js +0 -6
  2926. langflow/frontend/assets/message-square-share-CzgP9FTT.js +0 -6
  2927. langflow/frontend/assets/message-square-tCU-VasX.js +0 -6
  2928. langflow/frontend/assets/message-square-text-DewK7HOG.js +0 -6
  2929. langflow/frontend/assets/message-square-warning-BiG-grkM.js +0 -6
  2930. langflow/frontend/assets/message-square-x-DvMzivZb.js +0 -6
  2931. langflow/frontend/assets/messages-square-CmvfPHoh.js +0 -6
  2932. langflow/frontend/assets/mic-BU-iJrfW.js +0 -6
  2933. langflow/frontend/assets/mic-off-D33cCiBM.js +0 -6
  2934. langflow/frontend/assets/mic-vocal-CF-eDrbh.js +0 -6
  2935. langflow/frontend/assets/microchip-D2O5hTQU.js +0 -6
  2936. langflow/frontend/assets/microscope-C3ZRFXy7.js +0 -6
  2937. langflow/frontend/assets/microwave-BDD_RGRq.js +0 -6
  2938. langflow/frontend/assets/milestone-C7OhLhri.js +0 -6
  2939. langflow/frontend/assets/milk-Du81K-Ni.js +0 -6
  2940. langflow/frontend/assets/milk-off-BqLm_VtD.js +0 -6
  2941. langflow/frontend/assets/minimize-2-Cw9YVpOQ.js +0 -6
  2942. langflow/frontend/assets/minimize-D_UlCb-T.js +0 -6
  2943. langflow/frontend/assets/monitor-NZU5KjYN.js +0 -6
  2944. langflow/frontend/assets/monitor-check-BR2SXKF6.js +0 -6
  2945. langflow/frontend/assets/monitor-cog-BqusH5zn.js +0 -6
  2946. langflow/frontend/assets/monitor-dot-DVLNLP8h.js +0 -6
  2947. langflow/frontend/assets/monitor-down--XTdboiB.js +0 -6
  2948. langflow/frontend/assets/monitor-off-D9rwN6h6.js +0 -6
  2949. langflow/frontend/assets/monitor-pause-B_FJcF8R.js +0 -6
  2950. langflow/frontend/assets/monitor-play-CcmvwgqN.js +0 -6
  2951. langflow/frontend/assets/monitor-smartphone-CNybTyth.js +0 -6
  2952. langflow/frontend/assets/monitor-speaker-B7T7wM6k.js +0 -6
  2953. langflow/frontend/assets/monitor-stop-B2En-SDg.js +0 -6
  2954. langflow/frontend/assets/monitor-up-ByEb2qFg.js +0 -6
  2955. langflow/frontend/assets/monitor-x-EnCDfgcp.js +0 -6
  2956. langflow/frontend/assets/moon-DAEyOw2a.js +0 -6
  2957. langflow/frontend/assets/moon-star-KGRnw97Y.js +0 -6
  2958. langflow/frontend/assets/mountain-BQsTLNBK.js +0 -6
  2959. langflow/frontend/assets/mountain-snow-D4GXC7fE.js +0 -6
  2960. langflow/frontend/assets/mouse-gHIAmXRh.js +0 -6
  2961. langflow/frontend/assets/mouse-off-BBxweWsh.js +0 -6
  2962. langflow/frontend/assets/mouse-pointer-2-C7fm45_i.js +0 -6
  2963. langflow/frontend/assets/mouse-pointer-DQFY7zgR.js +0 -6
  2964. langflow/frontend/assets/mouse-pointer-ban-DWalDj1S.js +0 -6
  2965. langflow/frontend/assets/mouse-pointer-click-DRahiKG9.js +0 -6
  2966. langflow/frontend/assets/move-3d-DevCH49h.js +0 -6
  2967. langflow/frontend/assets/move-Bychn4Xq.js +0 -6
  2968. langflow/frontend/assets/move-diagonal-2-QmBU-EYZ.js +0 -6
  2969. langflow/frontend/assets/move-diagonal-mULQjXm-.js +0 -6
  2970. langflow/frontend/assets/move-down-Cf-8xJHz.js +0 -6
  2971. langflow/frontend/assets/move-down-left-D0IdNcQj.js +0 -6
  2972. langflow/frontend/assets/move-down-right-bsUiHRoi.js +0 -6
  2973. langflow/frontend/assets/move-horizontal-C62bJym8.js +0 -6
  2974. langflow/frontend/assets/move-left-BpiOG-Jd.js +0 -6
  2975. langflow/frontend/assets/move-right-D3JUdlA_.js +0 -6
  2976. langflow/frontend/assets/move-up-CrxoSZdy.js +0 -6
  2977. langflow/frontend/assets/move-up-left-BvM6TIRX.js +0 -6
  2978. langflow/frontend/assets/move-up-right-BCyrAjzU.js +0 -6
  2979. langflow/frontend/assets/move-vertical-DCGMPTcZ.js +0 -6
  2980. langflow/frontend/assets/music-2-uRHUqiKp.js +0 -6
  2981. langflow/frontend/assets/music-3-CRjJxV7a.js +0 -6
  2982. langflow/frontend/assets/music-4-CpQp7oLM.js +0 -6
  2983. langflow/frontend/assets/music-Bz8XQ9yo.js +0 -6
  2984. langflow/frontend/assets/navigation-2-DvC6GXOr.js +0 -6
  2985. langflow/frontend/assets/navigation-2-off-B7pS7kXz.js +0 -6
  2986. langflow/frontend/assets/navigation-krEuBOR5.js +0 -6
  2987. langflow/frontend/assets/navigation-off-DYvXDM8k.js +0 -6
  2988. langflow/frontend/assets/network-NbbjTPzx.js +0 -6
  2989. langflow/frontend/assets/newspaper-Bat8syVx.js +0 -6
  2990. langflow/frontend/assets/nfc-Ck_EfjEs.js +0 -6
  2991. langflow/frontend/assets/non-binary-C1a3tYjk.js +0 -6
  2992. langflow/frontend/assets/notebook-CYq4nN1L.js +0 -6
  2993. langflow/frontend/assets/notebook-pen-BfC-bVpa.js +0 -6
  2994. langflow/frontend/assets/notebook-tabs-DZGRk7gN.js +0 -6
  2995. langflow/frontend/assets/notebook-text-Bz8iDl4c.js +0 -6
  2996. langflow/frontend/assets/notepad-text-DW3fT_6Q.js +0 -6
  2997. langflow/frontend/assets/notepad-text-dashed-uxBFkVY5.js +0 -6
  2998. langflow/frontend/assets/nut-84DOF2vc.js +0 -6
  2999. langflow/frontend/assets/nut-off-Blj0Qib-.js +0 -6
  3000. langflow/frontend/assets/octagon-CxBqxkHW.js +0 -6
  3001. langflow/frontend/assets/octagon-alert-C_MicO6Z.js +0 -6
  3002. langflow/frontend/assets/octagon-minus-Dh34ZfKe.js +0 -6
  3003. langflow/frontend/assets/octagon-pause-CE3TAT55.js +0 -6
  3004. langflow/frontend/assets/octagon-x-DXD5HnNU.js +0 -6
  3005. langflow/frontend/assets/omega-coKQMWfT.js +0 -6
  3006. langflow/frontend/assets/option-C7JZRMxv.js +0 -6
  3007. langflow/frontend/assets/orbit-B4Eh-8Rp.js +0 -6
  3008. langflow/frontend/assets/origami-D-yOwIKo.js +0 -6
  3009. langflow/frontend/assets/package-2-BWsHwFJe.js +0 -6
  3010. langflow/frontend/assets/package-check-B8TF8iS9.js +0 -6
  3011. langflow/frontend/assets/package-minus-DcZ_-XSV.js +0 -6
  3012. langflow/frontend/assets/package-open-DisPx2TQ.js +0 -6
  3013. langflow/frontend/assets/package-plus-CefpEysG.js +0 -6
  3014. langflow/frontend/assets/package-search-DLbPBzFS.js +0 -6
  3015. langflow/frontend/assets/package-v0MNchcK.js +0 -6
  3016. langflow/frontend/assets/package-x-DL_VCYya.js +0 -6
  3017. langflow/frontend/assets/paint-bucket-Ct4jgy_6.js +0 -6
  3018. langflow/frontend/assets/paint-roller-CJYW2FAl.js +0 -6
  3019. langflow/frontend/assets/paintbrush-DrdRABdX.js +0 -6
  3020. langflow/frontend/assets/paintbrush-vertical-Cuz-FNyi.js +0 -6
  3021. langflow/frontend/assets/palette-LPTwxgmn.js +0 -6
  3022. langflow/frontend/assets/panel-bottom-C4_U90qc.js +0 -6
  3023. langflow/frontend/assets/panel-bottom-close-Cr77xt1p.js +0 -6
  3024. langflow/frontend/assets/panel-bottom-dashed-BFSIYvdN.js +0 -6
  3025. langflow/frontend/assets/panel-bottom-open-Cm5guQNe.js +0 -6
  3026. langflow/frontend/assets/panel-left-close-BcdQwvhI.js +0 -6
  3027. langflow/frontend/assets/panel-left-dashed-CShCu4e8.js +0 -6
  3028. langflow/frontend/assets/panel-left-open-oHSUly2d.js +0 -6
  3029. langflow/frontend/assets/panel-right-D6EFTvl0.js +0 -6
  3030. langflow/frontend/assets/panel-right-close-DSFapOxy.js +0 -6
  3031. langflow/frontend/assets/panel-right-dashed-BHrFGWhY.js +0 -6
  3032. langflow/frontend/assets/panel-right-open-CrbrE6LA.js +0 -6
  3033. langflow/frontend/assets/panel-top-CgCE1J2x.js +0 -6
  3034. langflow/frontend/assets/panel-top-close-4kYLiql7.js +0 -6
  3035. langflow/frontend/assets/panel-top-dashed-5yBgRiNp.js +0 -6
  3036. langflow/frontend/assets/panel-top-open-DKS0WOLf.js +0 -6
  3037. langflow/frontend/assets/panels-left-bottom-BNQ8olvc.js +0 -6
  3038. langflow/frontend/assets/panels-right-bottom-CduBkUgr.js +0 -6
  3039. langflow/frontend/assets/panels-top-left-BNL9MJeP.js +0 -6
  3040. langflow/frontend/assets/paperclip-DPcsFtxG.js +0 -6
  3041. langflow/frontend/assets/parentheses-ClvkHT1-.js +0 -6
  3042. langflow/frontend/assets/parking-meter-dXt2a2Z4.js +0 -6
  3043. langflow/frontend/assets/party-popper-jfiJ6nFW.js +0 -6
  3044. langflow/frontend/assets/pause-DPEStNp8.js +0 -6
  3045. langflow/frontend/assets/paw-print-s6b4Xzbf.js +0 -6
  3046. langflow/frontend/assets/pc-case-CEpqEnAg.js +0 -6
  3047. langflow/frontend/assets/pen-C8W6rr1b.js +0 -6
  3048. langflow/frontend/assets/pen-line-Cir29vtn.js +0 -6
  3049. langflow/frontend/assets/pen-off-CogtVTYK.js +0 -6
  3050. langflow/frontend/assets/pen-tool-Bv90B9da.js +0 -6
  3051. langflow/frontend/assets/pencil-CEKZG-4t.js +0 -6
  3052. langflow/frontend/assets/pencil-line-COJHbFUO.js +0 -6
  3053. langflow/frontend/assets/pencil-off-rGMOHiFp.js +0 -6
  3054. langflow/frontend/assets/pencil-ruler-CWNRk-1J.js +0 -6
  3055. langflow/frontend/assets/pentagon-BpFnUGkI.js +0 -6
  3056. langflow/frontend/assets/percent-xGuHobQW.js +0 -6
  3057. langflow/frontend/assets/person-standing-DxW_1Yzh.js +0 -6
  3058. langflow/frontend/assets/philippine-peso-BiacW8Wq.js +0 -6
  3059. langflow/frontend/assets/phone-SaWqxouE.js +0 -6
  3060. langflow/frontend/assets/phone-call-DhbCej8R.js +0 -6
  3061. langflow/frontend/assets/phone-forwarded-CKNaHHhk.js +0 -6
  3062. langflow/frontend/assets/phone-incoming-CXDFWqkP.js +0 -6
  3063. langflow/frontend/assets/phone-missed-BVNsWzVi.js +0 -6
  3064. langflow/frontend/assets/phone-off-DBSalt2d.js +0 -6
  3065. langflow/frontend/assets/phone-outgoing-BqLNDcWF.js +0 -6
  3066. langflow/frontend/assets/pi-D0ntK1iZ.js +0 -6
  3067. langflow/frontend/assets/piano-B5x5eI1D.js +0 -6
  3068. langflow/frontend/assets/pickaxe-DLoPxnpa.js +0 -6
  3069. langflow/frontend/assets/picture-in-picture-2-DWXTsax-.js +0 -6
  3070. langflow/frontend/assets/picture-in-picture-haYixbwt.js +0 -6
  3071. langflow/frontend/assets/piggy-bank-C6TY3w4j.js +0 -6
  3072. langflow/frontend/assets/pilcrow-CYvB1Z_E.js +0 -6
  3073. langflow/frontend/assets/pilcrow-left-C9lmlliK.js +0 -6
  3074. langflow/frontend/assets/pilcrow-right-wTlmqFtI.js +0 -6
  3075. langflow/frontend/assets/pill-BV7FHIRV.js +0 -6
  3076. langflow/frontend/assets/pill-bottle-DyPm0flW.js +0 -6
  3077. langflow/frontend/assets/pin-BQPFMk05.js +0 -6
  3078. langflow/frontend/assets/pin-off-CTk8rIsP.js +0 -6
  3079. langflow/frontend/assets/pipette-CRaGvsws.js +0 -6
  3080. langflow/frontend/assets/pizza-CmhR7ZYa.js +0 -6
  3081. langflow/frontend/assets/plane-BIVEKO6u.js +0 -6
  3082. langflow/frontend/assets/plane-landing-gwi8IEFD.js +0 -6
  3083. langflow/frontend/assets/plane-takeoff-Ab5pN7Sy.js +0 -6
  3084. langflow/frontend/assets/play-Cg03AZNv.js +0 -6
  3085. langflow/frontend/assets/plug-2-7xYJ9ZPL.js +0 -6
  3086. langflow/frontend/assets/plug-CPKlXP-Z.js +0 -6
  3087. langflow/frontend/assets/plug-zap-B_dzoUSp.js +0 -6
  3088. langflow/frontend/assets/pocket-BEJn1OUt.js +0 -6
  3089. langflow/frontend/assets/pocket-knife-DZW1UGFr.js +0 -6
  3090. langflow/frontend/assets/podcast-DMn2V1KU.js +0 -6
  3091. langflow/frontend/assets/pointer-DUS66DM_.js +0 -6
  3092. langflow/frontend/assets/pointer-off-CzGKqzYX.js +0 -6
  3093. langflow/frontend/assets/popcorn-DlYSizK6.js +0 -6
  3094. langflow/frontend/assets/popsicle-Denkv5OD.js +0 -6
  3095. langflow/frontend/assets/pound-sterling-Dx6eQZSe.js +0 -6
  3096. langflow/frontend/assets/power-DyYveOw3.js +0 -6
  3097. langflow/frontend/assets/power-off-NJ3NsEeq.js +0 -6
  3098. langflow/frontend/assets/presentation-BrKqQkrc.js +0 -6
  3099. langflow/frontend/assets/printer-Cr_WymwU.js +0 -6
  3100. langflow/frontend/assets/printer-check-kUdXJg9v.js +0 -6
  3101. langflow/frontend/assets/projector-DQieS7C0.js +0 -6
  3102. langflow/frontend/assets/proportions-CvN0j4pn.js +0 -6
  3103. langflow/frontend/assets/puzzle-CKTReqkp.js +0 -6
  3104. langflow/frontend/assets/pyramid-DEA7HIn1.js +0 -6
  3105. langflow/frontend/assets/qr-code-JEPc3vLj.js +0 -6
  3106. langflow/frontend/assets/quote-CHoFLDdS.js +0 -6
  3107. langflow/frontend/assets/rabbit-DM05fJlz.js +0 -6
  3108. langflow/frontend/assets/radar-C8IJaMW4.js +0 -6
  3109. langflow/frontend/assets/radiation-BigqftKv.js +0 -6
  3110. langflow/frontend/assets/radical-CaeDkYge.js +0 -6
  3111. langflow/frontend/assets/radio-Bd6MLcgl.js +0 -6
  3112. langflow/frontend/assets/radio-receiver-CmDh03oH.js +0 -6
  3113. langflow/frontend/assets/radio-tower-lZSJtKuk.js +0 -6
  3114. langflow/frontend/assets/radius-DCbmswU7.js +0 -6
  3115. langflow/frontend/assets/rail-symbol-DpobjD85.js +0 -6
  3116. langflow/frontend/assets/rainbow-gfLRuKdr.js +0 -6
  3117. langflow/frontend/assets/rat-B3WF22ie.js +0 -6
  3118. langflow/frontend/assets/ratio-BbY3kPrq.js +0 -6
  3119. langflow/frontend/assets/receipt-Cf4tIvHd.js +0 -6
  3120. langflow/frontend/assets/receipt-cent-BCusSgO0.js +0 -6
  3121. langflow/frontend/assets/receipt-euro-B1f6UHDQ.js +0 -6
  3122. langflow/frontend/assets/receipt-indian-rupee-DM_xzVoS.js +0 -6
  3123. langflow/frontend/assets/receipt-japanese-yen-1Lmajaei.js +0 -6
  3124. langflow/frontend/assets/receipt-pound-sterling-C-QOwaRJ.js +0 -6
  3125. langflow/frontend/assets/receipt-russian-ruble-B6x8xfMf.js +0 -6
  3126. langflow/frontend/assets/receipt-swiss-franc-BHzPb-Em.js +0 -6
  3127. langflow/frontend/assets/receipt-text-D9IjAm7N.js +0 -6
  3128. langflow/frontend/assets/rectangle-ellipsis-Buj9IU2x.js +0 -6
  3129. langflow/frontend/assets/rectangle-goggles-D0ZfI7na.js +0 -6
  3130. langflow/frontend/assets/rectangle-horizontal-BYJ-wqv0.js +0 -6
  3131. langflow/frontend/assets/rectangle-vertical-BL-VAYCv.js +0 -6
  3132. langflow/frontend/assets/recycle-C6ZfSrYc.js +0 -6
  3133. langflow/frontend/assets/redo-2-DwsGdiMi.js +0 -6
  3134. langflow/frontend/assets/redo-Cpww3zOS.js +0 -6
  3135. langflow/frontend/assets/redo-dot-BqhUWPgg.js +0 -6
  3136. langflow/frontend/assets/refresh-ccw-CZ7GaoCX.js +0 -6
  3137. langflow/frontend/assets/refresh-ccw-dot-CiBOl6nk.js +0 -6
  3138. langflow/frontend/assets/refresh-cw-off-P0NwKw-G.js +0 -6
  3139. langflow/frontend/assets/refresh-cw-vdhaCeNl.js +0 -6
  3140. langflow/frontend/assets/refrigerator-DHmU3EJx.js +0 -6
  3141. langflow/frontend/assets/regex-B8ojcXYx.js +0 -6
  3142. langflow/frontend/assets/remove-formatting-DoW4DZ_f.js +0 -6
  3143. langflow/frontend/assets/repeat-1-DqnI0w_q.js +0 -6
  3144. langflow/frontend/assets/repeat-2-Br9jvBam.js +0 -6
  3145. langflow/frontend/assets/repeat-BVdrzElc.js +0 -6
  3146. langflow/frontend/assets/replace-Cp6FavLW.js +0 -6
  3147. langflow/frontend/assets/replace-all-CehhMKqi.js +0 -6
  3148. langflow/frontend/assets/reply-Dm-xYGBL.js +0 -6
  3149. langflow/frontend/assets/reply-all-DGhnZqms.js +0 -6
  3150. langflow/frontend/assets/rewind-DrBQaUoa.js +0 -6
  3151. langflow/frontend/assets/ribbon-D4Hzpzmo.js +0 -6
  3152. langflow/frontend/assets/rocket-b1j0X1wA.js +0 -6
  3153. langflow/frontend/assets/rocking-chair-CpndLdNd.js +0 -6
  3154. langflow/frontend/assets/roller-coaster-C-6HDOib.js +0 -6
  3155. langflow/frontend/assets/rotate-3d-BWxYZOsG.js +0 -6
  3156. langflow/frontend/assets/rotate-ccw-DTX1eyUu.js +0 -6
  3157. langflow/frontend/assets/rotate-ccw-key-C8nVkv_o.js +0 -6
  3158. langflow/frontend/assets/rotate-ccw-square-CkTtklMA.js +0 -6
  3159. langflow/frontend/assets/rotate-cw-CguoLpXe.js +0 -6
  3160. langflow/frontend/assets/rotate-cw-square-BuB6SBZ6.js +0 -6
  3161. langflow/frontend/assets/route-C77Wn2Mz.js +0 -6
  3162. langflow/frontend/assets/route-off-CBjm3IMU.js +0 -6
  3163. langflow/frontend/assets/router-DInkPf5g.js +0 -6
  3164. langflow/frontend/assets/rows-2-B9oP-uPO.js +0 -6
  3165. langflow/frontend/assets/rows-3-Dbs_ard3.js +0 -6
  3166. langflow/frontend/assets/rows-4-DbcVmP9u.js +0 -6
  3167. langflow/frontend/assets/rss-B8dxFNaF.js +0 -6
  3168. langflow/frontend/assets/ruler-CKZ4BpZu.js +0 -6
  3169. langflow/frontend/assets/ruler-dimension-line-BJjSwBaR.js +0 -6
  3170. langflow/frontend/assets/russian-ruble-B7LfwYdU.js +0 -6
  3171. langflow/frontend/assets/sailboat-DkCX9aRI.js +0 -6
  3172. langflow/frontend/assets/salad-DpH3jTTo.js +0 -6
  3173. langflow/frontend/assets/sandwich-B8l3CZwN.js +0 -6
  3174. langflow/frontend/assets/satellite-CZX-rXCo.js +0 -6
  3175. langflow/frontend/assets/satellite-dish-iaZ-Pi3t.js +0 -6
  3176. langflow/frontend/assets/saudi-riyal-BK8OJTB0.js +0 -6
  3177. langflow/frontend/assets/save-DVmb2SyE.js +0 -6
  3178. langflow/frontend/assets/save-all-aos8jroE.js +0 -6
  3179. langflow/frontend/assets/save-off-D4UoeLzi.js +0 -6
  3180. langflow/frontend/assets/scale-3d-BLCroHMx.js +0 -6
  3181. langflow/frontend/assets/scale-Myzm-53S.js +0 -6
  3182. langflow/frontend/assets/scaling-BYVBuLh8.js +0 -6
  3183. langflow/frontend/assets/scan-DsLSQLM6.js +0 -6
  3184. langflow/frontend/assets/scan-barcode-BN7G95rt.js +0 -6
  3185. langflow/frontend/assets/scan-eye-CVWZjNTZ.js +0 -6
  3186. langflow/frontend/assets/scan-face-DRuNs54K.js +0 -6
  3187. langflow/frontend/assets/scan-heart-yHDap0A_.js +0 -6
  3188. langflow/frontend/assets/scan-line-Dz7F7CMJ.js +0 -6
  3189. langflow/frontend/assets/scan-qr-code-BCwaxp9C.js +0 -6
  3190. langflow/frontend/assets/scan-search-DlnoaHTD.js +0 -6
  3191. langflow/frontend/assets/scan-text-DBmMgqwS.js +0 -6
  3192. langflow/frontend/assets/school-DIFeMcFX.js +0 -6
  3193. langflow/frontend/assets/scissors-CHoHzT7D.js +0 -6
  3194. langflow/frontend/assets/scissors-line-dashed-CDko2_Gc.js +0 -6
  3195. langflow/frontend/assets/screen-share-BeCpt36Z.js +0 -6
  3196. langflow/frontend/assets/screen-share-off-px2XsB7y.js +0 -6
  3197. langflow/frontend/assets/scroll-CRgEX6fu.js +0 -6
  3198. langflow/frontend/assets/scroll-text-o6IcMYoq.js +0 -6
  3199. langflow/frontend/assets/search-check-CKBKI1Gj.js +0 -6
  3200. langflow/frontend/assets/search-code-Dv9K2drX.js +0 -6
  3201. langflow/frontend/assets/search-slash-CycQBA_O.js +0 -6
  3202. langflow/frontend/assets/search-x-ljulm3OF.js +0 -6
  3203. langflow/frontend/assets/section-DKuqeNkJ.js +0 -6
  3204. langflow/frontend/assets/send-2w8laZL9.js +0 -6
  3205. langflow/frontend/assets/send-horizontal-BlavubAS.js +0 -6
  3206. langflow/frontend/assets/send-to-back-CfN_yyTU.js +0 -6
  3207. langflow/frontend/assets/separator-horizontal-aZjzQKVv.js +0 -6
  3208. langflow/frontend/assets/separator-vertical-BXBezolX.js +0 -6
  3209. langflow/frontend/assets/server-4YW_uq94.js +0 -6
  3210. langflow/frontend/assets/server-cog-Divq2S3R.js +0 -6
  3211. langflow/frontend/assets/server-crash-CiL6FTJC.js +0 -6
  3212. langflow/frontend/assets/server-off-BV519F_x.js +0 -6
  3213. langflow/frontend/assets/settings-2-U3ZiKH2K.js +0 -6
  3214. langflow/frontend/assets/settings-BHtNu9az.js +0 -6
  3215. langflow/frontend/assets/shapes-D5jgbMlg.js +0 -6
  3216. langflow/frontend/assets/share-2-CnwH5PCU.js +0 -6
  3217. langflow/frontend/assets/share-BBOC9Y6R.js +0 -6
  3218. langflow/frontend/assets/sheet-B74d-JnA.js +0 -6
  3219. langflow/frontend/assets/shell-BRzNJQCw.js +0 -6
  3220. langflow/frontend/assets/shield-alert-DQ03HJsN.js +0 -6
  3221. langflow/frontend/assets/shield-ban-DIVqiyYM.js +0 -6
  3222. langflow/frontend/assets/shield-check-DKAsVa8M.js +0 -6
  3223. langflow/frontend/assets/shield-ellipsis-CRVh79_t.js +0 -6
  3224. langflow/frontend/assets/shield-half-kZ4LA3zf.js +0 -6
  3225. langflow/frontend/assets/shield-minus-DG9uD6rd.js +0 -6
  3226. langflow/frontend/assets/shield-off-BEfjusrf.js +0 -6
  3227. langflow/frontend/assets/shield-plus-kt2QuIyK.js +0 -6
  3228. langflow/frontend/assets/shield-question-BR9mosX3.js +0 -6
  3229. langflow/frontend/assets/shield-user-Dn0n3wK2.js +0 -6
  3230. langflow/frontend/assets/shield-x-YDXPdlMV.js +0 -6
  3231. langflow/frontend/assets/shield-xmtPeYVl.js +0 -6
  3232. langflow/frontend/assets/ship-Cit1XJk_.js +0 -6
  3233. langflow/frontend/assets/ship-wheel-BwRR87b-.js +0 -6
  3234. langflow/frontend/assets/shirt-B5jHTq3N.js +0 -6
  3235. langflow/frontend/assets/shopping-bag-60DQI2jr.js +0 -6
  3236. langflow/frontend/assets/shopping-basket-BBbQsBey.js +0 -6
  3237. langflow/frontend/assets/shopping-cart-Cj_l7pQe.js +0 -6
  3238. langflow/frontend/assets/shovel-CLtnALsm.js +0 -6
  3239. langflow/frontend/assets/shower-head-Cdf2DNio.js +0 -6
  3240. langflow/frontend/assets/shredder-CwP4a2Ao.js +0 -6
  3241. langflow/frontend/assets/shrimp-FlM3V3lv.js +0 -6
  3242. langflow/frontend/assets/shrink-Doomin48.js +0 -6
  3243. langflow/frontend/assets/shrub-D2jxIUoe.js +0 -6
  3244. langflow/frontend/assets/shuffle-Db4KaGX6.js +0 -6
  3245. langflow/frontend/assets/sigma-D78gMsrg.js +0 -6
  3246. langflow/frontend/assets/signal-CJw0Q6YV.js +0 -6
  3247. langflow/frontend/assets/signal-high-CfBO56Gs.js +0 -6
  3248. langflow/frontend/assets/signal-low-COOLPbIy.js +0 -6
  3249. langflow/frontend/assets/signal-medium-DHFeo6cP.js +0 -6
  3250. langflow/frontend/assets/signal-zero-95zGwHEy.js +0 -6
  3251. langflow/frontend/assets/signature-8nn5bJN7.js +0 -6
  3252. langflow/frontend/assets/signpost-big-BzVnuDF1.js +0 -6
  3253. langflow/frontend/assets/signpost-jv5awm2D.js +0 -6
  3254. langflow/frontend/assets/siren-D2i6hpoS.js +0 -6
  3255. langflow/frontend/assets/skip-back-DnKcKIcA.js +0 -6
  3256. langflow/frontend/assets/skip-forward-C_ryz2-2.js +0 -6
  3257. langflow/frontend/assets/skull-Dr59tILw.js +0 -6
  3258. langflow/frontend/assets/slack-BN9DnDt5.js +0 -6
  3259. langflow/frontend/assets/slash-BzIMpzxA.js +0 -6
  3260. langflow/frontend/assets/slice-C5NvbLH8.js +0 -6
  3261. langflow/frontend/assets/sliders-horizontal-CCqTtmco.js +0 -6
  3262. langflow/frontend/assets/sliders-vertical-Beu0Iwrj.js +0 -6
  3263. langflow/frontend/assets/smartphone-C8zH19Ey.js +0 -6
  3264. langflow/frontend/assets/smartphone-charging-CwNq_FJo.js +0 -6
  3265. langflow/frontend/assets/smartphone-nfc-D_XiELPJ.js +0 -6
  3266. langflow/frontend/assets/smile-D-B0wyP1.js +0 -6
  3267. langflow/frontend/assets/smile-plus-CYYHBH4a.js +0 -6
  3268. langflow/frontend/assets/snail-CyUMnzyS.js +0 -6
  3269. langflow/frontend/assets/snowflake-B2yezUkT.js +0 -6
  3270. langflow/frontend/assets/sofa-JXoXmoKb.js +0 -6
  3271. langflow/frontend/assets/soup-CmZgLR1S.js +0 -6
  3272. langflow/frontend/assets/space-CunKNbr-.js +0 -6
  3273. langflow/frontend/assets/spade-DEza63Qa.js +0 -6
  3274. langflow/frontend/assets/sparkle-HkN4zWqr.js +0 -6
  3275. langflow/frontend/assets/sparkles-DmQOxm0f.js +0 -6
  3276. langflow/frontend/assets/speaker-Cs_5oZDo.js +0 -6
  3277. langflow/frontend/assets/speech-BSytzHaN.js +0 -6
  3278. langflow/frontend/assets/spell-check-2-BQ2o5WTl.js +0 -6
  3279. langflow/frontend/assets/spell-check-BlePI3Lv.js +0 -6
  3280. langflow/frontend/assets/spline-BvNLK_9u.js +0 -6
  3281. langflow/frontend/assets/spline-pointer-D3Guzykj.js +0 -6
  3282. langflow/frontend/assets/split-CmFr02tK.js +0 -6
  3283. langflow/frontend/assets/spray-can-BPxlNy8G.js +0 -6
  3284. langflow/frontend/assets/sprout-DbeZwEUO.js +0 -6
  3285. langflow/frontend/assets/square-BlBgoxPi.js +0 -6
  3286. langflow/frontend/assets/square-activity-BFrC0pro.js +0 -6
  3287. langflow/frontend/assets/square-arrow-down-C4eIsUbs.js +0 -6
  3288. langflow/frontend/assets/square-arrow-down-left-V6JLej8R.js +0 -6
  3289. langflow/frontend/assets/square-arrow-down-right-wN7V1Fe2.js +0 -6
  3290. langflow/frontend/assets/square-arrow-left-DDwkibS_.js +0 -6
  3291. langflow/frontend/assets/square-arrow-out-down-left-DqElHhHx.js +0 -6
  3292. langflow/frontend/assets/square-arrow-out-down-right-C1EoKN6W.js +0 -6
  3293. langflow/frontend/assets/square-arrow-out-up-left-H7RgjOzy.js +0 -6
  3294. langflow/frontend/assets/square-arrow-out-up-right-BbzsL5A8.js +0 -6
  3295. langflow/frontend/assets/square-arrow-right-CVO0BS00.js +0 -6
  3296. langflow/frontend/assets/square-arrow-up-CvTY6PBa.js +0 -6
  3297. langflow/frontend/assets/square-arrow-up-left-CCYdUgbY.js +0 -6
  3298. langflow/frontend/assets/square-arrow-up-right-BhJwi5qy.js +0 -6
  3299. langflow/frontend/assets/square-asterisk-B84x83Rz.js +0 -6
  3300. langflow/frontend/assets/square-bottom-dashed-scissors-DUq-Ff1K.js +0 -6
  3301. langflow/frontend/assets/square-chart-gantt-D191i51Z.js +0 -6
  3302. langflow/frontend/assets/square-check-C81tDTX_.js +0 -6
  3303. langflow/frontend/assets/square-check-big-Cfvo-cRB.js +0 -6
  3304. langflow/frontend/assets/square-chevron-down-DznHaX0X.js +0 -6
  3305. langflow/frontend/assets/square-chevron-left-DjJW6zzf.js +0 -6
  3306. langflow/frontend/assets/square-chevron-right-BBCFRQCY.js +0 -6
  3307. langflow/frontend/assets/square-chevron-up-XeBE2r3e.js +0 -6
  3308. langflow/frontend/assets/square-code-DtHZO3E2.js +0 -6
  3309. langflow/frontend/assets/square-dashed-DCb9_o-N.js +0 -6
  3310. langflow/frontend/assets/square-dashed-bottom-BEHWpKy9.js +0 -6
  3311. langflow/frontend/assets/square-dashed-bottom-code-Dg4aDDmy.js +0 -6
  3312. langflow/frontend/assets/square-dashed-kanban-BxnkPmji.js +0 -6
  3313. langflow/frontend/assets/square-dashed-mouse-pointer-DgpGX-FE.js +0 -6
  3314. langflow/frontend/assets/square-divide-DfqFr1n1.js +0 -6
  3315. langflow/frontend/assets/square-dot-CwmGmpkL.js +0 -6
  3316. langflow/frontend/assets/square-equal-Dwq5DIse.js +0 -6
  3317. langflow/frontend/assets/square-function-Cs4w0UYY.js +0 -6
  3318. langflow/frontend/assets/square-kanban-JNJ3tJJl.js +0 -6
  3319. langflow/frontend/assets/square-library-CSrrTmOj.js +0 -6
  3320. langflow/frontend/assets/square-m-cwyKTmW7.js +0 -6
  3321. langflow/frontend/assets/square-menu-CofS4Jdh.js +0 -6
  3322. langflow/frontend/assets/square-minus-QP2YPLFE.js +0 -6
  3323. langflow/frontend/assets/square-mouse-pointer-CPb28_Av.js +0 -6
  3324. langflow/frontend/assets/square-parking-LRAQmZ3z.js +0 -6
  3325. langflow/frontend/assets/square-parking-off-DKyuXHGj.js +0 -6
  3326. langflow/frontend/assets/square-pen-D882q-0A.js +0 -6
  3327. langflow/frontend/assets/square-percent-CC-BM1MI.js +0 -6
  3328. langflow/frontend/assets/square-pi-CTLbhqlY.js +0 -6
  3329. langflow/frontend/assets/square-pilcrow-CMX28bVz.js +0 -6
  3330. langflow/frontend/assets/square-play-BC7C8dY-.js +0 -6
  3331. langflow/frontend/assets/square-plus-BUilRaN_.js +0 -6
  3332. langflow/frontend/assets/square-power-DIkAmWzc.js +0 -6
  3333. langflow/frontend/assets/square-radical-DnLv08-s.js +0 -6
  3334. langflow/frontend/assets/square-round-corner-BB3wcIDf.js +0 -6
  3335. langflow/frontend/assets/square-scissors-GIbyqoKc.js +0 -6
  3336. langflow/frontend/assets/square-sigma-C3i4obIF.js +0 -6
  3337. langflow/frontend/assets/square-slash-CyhZn8Cq.js +0 -6
  3338. langflow/frontend/assets/square-split-horizontal-Borhe4e7.js +0 -6
  3339. langflow/frontend/assets/square-split-vertical-BvntodjP.js +0 -6
  3340. langflow/frontend/assets/square-square-B9fytSIP.js +0 -6
  3341. langflow/frontend/assets/square-stack-CRjEjRe1.js +0 -6
  3342. langflow/frontend/assets/square-terminal-6JISJf-2.js +0 -6
  3343. langflow/frontend/assets/square-user-BQEc5R89.js +0 -6
  3344. langflow/frontend/assets/square-user-round-yFPaHBlM.js +0 -6
  3345. langflow/frontend/assets/square-x-CqRpUqZ0.js +0 -6
  3346. langflow/frontend/assets/squares-exclude-B0vq0dLW.js +0 -6
  3347. langflow/frontend/assets/squares-intersect-BtmeIxUs.js +0 -6
  3348. langflow/frontend/assets/squares-subtract-DGW_CmnN.js +0 -6
  3349. langflow/frontend/assets/squares-unite-DqCazc-b.js +0 -6
  3350. langflow/frontend/assets/squircle-Du8Ic38B.js +0 -6
  3351. langflow/frontend/assets/squirrel-BwMjUg00.js +0 -6
  3352. langflow/frontend/assets/stamp-Cjc-QLqW.js +0 -6
  3353. langflow/frontend/assets/star-YimC0doB.js +0 -6
  3354. langflow/frontend/assets/star-half-BpsPPRe8.js +0 -6
  3355. langflow/frontend/assets/star-off-BZgDQCMp.js +0 -6
  3356. langflow/frontend/assets/step-back-C4wlBc79.js +0 -6
  3357. langflow/frontend/assets/step-forward-BAPOEvlT.js +0 -6
  3358. langflow/frontend/assets/stethoscope-BTbCEz2e.js +0 -6
  3359. langflow/frontend/assets/sticker-MsSoLwkI.js +0 -6
  3360. langflow/frontend/assets/sticky-note-CqVrYxE3.js +0 -6
  3361. langflow/frontend/assets/store-BHHNl-LA.js +0 -6
  3362. langflow/frontend/assets/stretch-horizontal-KHaNXiVQ.js +0 -6
  3363. langflow/frontend/assets/stretch-vertical-CkTLnojq.js +0 -6
  3364. langflow/frontend/assets/strikethrough-neolJcVH.js +0 -6
  3365. langflow/frontend/assets/subscript-B5wRTGx-.js +0 -6
  3366. langflow/frontend/assets/sun-dim--tCsyV6K.js +0 -6
  3367. langflow/frontend/assets/sun-jCLGEI5S.js +0 -6
  3368. langflow/frontend/assets/sun-medium-Bu59LmGS.js +0 -6
  3369. langflow/frontend/assets/sun-moon-nEcSFr07.js +0 -6
  3370. langflow/frontend/assets/sun-snow-7iuEoPOW.js +0 -6
  3371. langflow/frontend/assets/sunrise-COPqX1MA.js +0 -6
  3372. langflow/frontend/assets/sunset-BkAWJDow.js +0 -6
  3373. langflow/frontend/assets/superscript-BeANkFb4.js +0 -6
  3374. langflow/frontend/assets/swatch-book-LyGIRyZs.js +0 -6
  3375. langflow/frontend/assets/swiss-franc-Tat2OoO7.js +0 -6
  3376. langflow/frontend/assets/switch-camera-B-cb-xfD.js +0 -6
  3377. langflow/frontend/assets/sword-BnCEJ4kj.js +0 -6
  3378. langflow/frontend/assets/swords-DAU66oRr.js +0 -6
  3379. langflow/frontend/assets/syringe-CK4PBqTY.js +0 -6
  3380. langflow/frontend/assets/table-2-BnuCiXOF.js +0 -6
  3381. langflow/frontend/assets/table-CWz_88HP.js +0 -6
  3382. langflow/frontend/assets/table-cells-merge-DPQo77iV.js +0 -6
  3383. langflow/frontend/assets/table-cells-split-BQMtVPcO.js +0 -6
  3384. langflow/frontend/assets/table-columns-split-eY5jFR_I.js +0 -6
  3385. langflow/frontend/assets/table-of-contents-Bg55qGO3.js +0 -6
  3386. langflow/frontend/assets/table-properties-CbtprbM7.js +0 -6
  3387. langflow/frontend/assets/table-rows-split-CfMPKfdF.js +0 -6
  3388. langflow/frontend/assets/tablet-2WI-Xtae.js +0 -6
  3389. langflow/frontend/assets/tablet-smartphone-BbbKFPGi.js +0 -6
  3390. langflow/frontend/assets/tablets-O1toG4NK.js +0 -6
  3391. langflow/frontend/assets/tag-54EIbwuP.js +0 -6
  3392. langflow/frontend/assets/tags-C5O_Rkcb.js +0 -6
  3393. langflow/frontend/assets/tally-1-CNv0xRjZ.js +0 -6
  3394. langflow/frontend/assets/tally-2-CiSfhu8q.js +0 -6
  3395. langflow/frontend/assets/tally-3-C-D9o1hR.js +0 -6
  3396. langflow/frontend/assets/tally-4-V2ZCZYie.js +0 -6
  3397. langflow/frontend/assets/tally-5-Wi78oTob.js +0 -6
  3398. langflow/frontend/assets/tangent-6r0rBYzU.js +0 -6
  3399. langflow/frontend/assets/target-CwRoWS0S.js +0 -6
  3400. langflow/frontend/assets/telescope-PLAnGdz5.js +0 -6
  3401. langflow/frontend/assets/tent-CTjgumki.js +0 -6
  3402. langflow/frontend/assets/tent-tree-B5Hrsem9.js +0 -6
  3403. langflow/frontend/assets/terminal-_DfDx_Gm.js +0 -6
  3404. langflow/frontend/assets/test-tube-BjpKBJB6.js +0 -6
  3405. langflow/frontend/assets/test-tube-diagonal-X2w63hGz.js +0 -6
  3406. langflow/frontend/assets/test-tubes-D9g6MvXw.js +0 -6
  3407. langflow/frontend/assets/text-BTttciWI.js +0 -6
  3408. langflow/frontend/assets/text-cursor-BiOIq_TK.js +0 -6
  3409. langflow/frontend/assets/text-cursor-input-BlmQhhdN.js +0 -6
  3410. langflow/frontend/assets/text-quote-6yqk6UK3.js +0 -6
  3411. langflow/frontend/assets/text-search-DViF9PWU.js +0 -6
  3412. langflow/frontend/assets/text-select-Bsmx45-v.js +0 -6
  3413. langflow/frontend/assets/theater-UjqGmUUQ.js +0 -6
  3414. langflow/frontend/assets/thermometer-b8fF6-2f.js +0 -6
  3415. langflow/frontend/assets/thermometer-snowflake-CnWT2Z03.js +0 -6
  3416. langflow/frontend/assets/thermometer-sun-5l-k-7R5.js +0 -6
  3417. langflow/frontend/assets/thumbs-down-CcUZmpWQ.js +0 -6
  3418. langflow/frontend/assets/thumbs-up-C-nbza2Q.js +0 -6
  3419. langflow/frontend/assets/ticket-D8eM3xER.js +0 -6
  3420. langflow/frontend/assets/ticket-check-Ba1BImoZ.js +0 -6
  3421. langflow/frontend/assets/ticket-minus-16NYFu_J.js +0 -6
  3422. langflow/frontend/assets/ticket-percent-BE-1RVPX.js +0 -6
  3423. langflow/frontend/assets/ticket-plus-WOlIdJbN.js +0 -6
  3424. langflow/frontend/assets/ticket-slash-D7Fyt7Yp.js +0 -6
  3425. langflow/frontend/assets/ticket-x-i-NId5Lv.js +0 -6
  3426. langflow/frontend/assets/tickets-eEsR9ldv.js +0 -6
  3427. langflow/frontend/assets/tickets-plane-D_MSmi-3.js +0 -6
  3428. langflow/frontend/assets/timer-CXwxKfmA.js +0 -6
  3429. langflow/frontend/assets/timer-off-BY9bGYwt.js +0 -6
  3430. langflow/frontend/assets/timer-reset-CXajZ_Vm.js +0 -6
  3431. langflow/frontend/assets/toggle-left-DDeEpnRn.js +0 -6
  3432. langflow/frontend/assets/toggle-right-BC-JipKK.js +0 -6
  3433. langflow/frontend/assets/toilet-D_-QkmL6.js +0 -6
  3434. langflow/frontend/assets/tornado-DJ2r4mwI.js +0 -6
  3435. langflow/frontend/assets/torus-mcH7cOYu.js +0 -6
  3436. langflow/frontend/assets/touchpad-BDKqmrsT.js +0 -6
  3437. langflow/frontend/assets/touchpad-off-DTnARWvz.js +0 -6
  3438. langflow/frontend/assets/tower-control-CcVK3ArT.js +0 -6
  3439. langflow/frontend/assets/toy-brick-BKjba094.js +0 -6
  3440. langflow/frontend/assets/tractor-D2MINhNC.js +0 -6
  3441. langflow/frontend/assets/traffic-cone-2pjL2w6-.js +0 -6
  3442. langflow/frontend/assets/train-front-lNaq4oxc.js +0 -6
  3443. langflow/frontend/assets/train-front-tunnel-BxBJWaFg.js +0 -6
  3444. langflow/frontend/assets/train-track-DB22DmXW.js +0 -6
  3445. langflow/frontend/assets/tram-front-DbB2Jwgv.js +0 -6
  3446. langflow/frontend/assets/transgender-DqzSqBNS.js +0 -6
  3447. langflow/frontend/assets/trash-C02-iims.js +0 -6
  3448. langflow/frontend/assets/tree-deciduous-B3EwnPfN.js +0 -6
  3449. langflow/frontend/assets/tree-palm-D0AGcSUj.js +0 -6
  3450. langflow/frontend/assets/tree-pine-EegiIDh2.js +0 -6
  3451. langflow/frontend/assets/trees-DvUJBPZT.js +0 -6
  3452. langflow/frontend/assets/trello-C7yvB1lX.js +0 -6
  3453. langflow/frontend/assets/trending-down-BoBVhMQz.js +0 -6
  3454. langflow/frontend/assets/trending-up-Cd7Q4btf.js +0 -6
  3455. langflow/frontend/assets/trending-up-down-DDPUFvuo.js +0 -6
  3456. langflow/frontend/assets/triangle-DWksNtrq.js +0 -6
  3457. langflow/frontend/assets/triangle-alert-ZktpwbrD.js +0 -6
  3458. langflow/frontend/assets/triangle-dashed-CT7-mc-Z.js +0 -6
  3459. langflow/frontend/assets/triangle-right-f8RiENDo.js +0 -6
  3460. langflow/frontend/assets/trophy-CXGrZve7.js +0 -6
  3461. langflow/frontend/assets/truck-Cny4ajCH.js +0 -6
  3462. langflow/frontend/assets/truck-electric-Dqe8VoeJ.js +0 -6
  3463. langflow/frontend/assets/turtle-BQjM-HzI.js +0 -6
  3464. langflow/frontend/assets/tv-BWsD18o7.js +0 -6
  3465. langflow/frontend/assets/tv-minimal-D2buxW6o.js +0 -6
  3466. langflow/frontend/assets/tv-minimal-play-DNAJSwYL.js +0 -6
  3467. langflow/frontend/assets/twitch-CyYNXrTi.js +0 -6
  3468. langflow/frontend/assets/twitter-CjKttUqY.js +0 -6
  3469. langflow/frontend/assets/type-DK0kKsd2.js +0 -6
  3470. langflow/frontend/assets/type-outline-B6RbUP75.js +0 -6
  3471. langflow/frontend/assets/umbrella-oLZdR26J.js +0 -6
  3472. langflow/frontend/assets/umbrella-off-C5MGdjMm.js +0 -6
  3473. langflow/frontend/assets/underline-D9zDHPUD.js +0 -6
  3474. langflow/frontend/assets/undo-2-DWNvriet.js +0 -6
  3475. langflow/frontend/assets/undo-De0lTMLX.js +0 -6
  3476. langflow/frontend/assets/undo-dot-Dx9tFT83.js +0 -6
  3477. langflow/frontend/assets/unfold-horizontal-CQ3nDj1d.js +0 -6
  3478. langflow/frontend/assets/unfold-vertical-ranEkBfQ.js +0 -6
  3479. langflow/frontend/assets/ungroup-Baq5-A_5.js +0 -6
  3480. langflow/frontend/assets/university-BxD0WGxX.js +0 -6
  3481. langflow/frontend/assets/unlink-2-DQTiHcH7.js +0 -6
  3482. langflow/frontend/assets/unlink-5GOEop6c.js +0 -6
  3483. langflow/frontend/assets/unplug-nD1ZrYbt.js +0 -6
  3484. langflow/frontend/assets/upload-C_NT-4Jx.js +0 -6
  3485. langflow/frontend/assets/usb--T_2IXbP.js +0 -6
  3486. langflow/frontend/assets/use-post-add-user-46A2cCNV.js +0 -1
  3487. langflow/frontend/assets/user-B_4IPnEB.js +0 -6
  3488. langflow/frontend/assets/user-check-mFlcdTcy.js +0 -6
  3489. langflow/frontend/assets/user-cog-Bwg8N02i.js +0 -6
  3490. langflow/frontend/assets/user-lock-_zs04IDa.js +0 -6
  3491. langflow/frontend/assets/user-minus-pAax4qTZ.js +0 -6
  3492. langflow/frontend/assets/user-pen-FaanVAZ2.js +0 -6
  3493. langflow/frontend/assets/user-plus-C4jShBLC.js +0 -6
  3494. langflow/frontend/assets/user-round-BpfSCNWk.js +0 -6
  3495. langflow/frontend/assets/user-round-check-DJ6ZZvXP.js +0 -6
  3496. langflow/frontend/assets/user-round-cog-B122oQxh.js +0 -6
  3497. langflow/frontend/assets/user-round-minus-kaeDkLR6.js +0 -6
  3498. langflow/frontend/assets/user-round-pen-8EdSwK1g.js +0 -6
  3499. langflow/frontend/assets/user-round-plus-CdimSaTo.js +0 -6
  3500. langflow/frontend/assets/user-round-search-CPPn0Mzd.js +0 -6
  3501. langflow/frontend/assets/user-round-x-xIG5FN7i.js +0 -6
  3502. langflow/frontend/assets/user-search-B_7s0lPH.js +0 -6
  3503. langflow/frontend/assets/user-x-CsApufX8.js +0 -6
  3504. langflow/frontend/assets/users-C-ebOnIn.js +0 -6
  3505. langflow/frontend/assets/users-round-B5J-hLU3.js +0 -6
  3506. langflow/frontend/assets/utensils-BVQiMFC8.js +0 -6
  3507. langflow/frontend/assets/utensils-crossed-BPa0tz76.js +0 -6
  3508. langflow/frontend/assets/utility-pole-B5I7MFat.js +0 -6
  3509. langflow/frontend/assets/variable-EV6tGFMq.js +0 -6
  3510. langflow/frontend/assets/vault-B-RGhTES.js +0 -6
  3511. langflow/frontend/assets/vegan-BfC3y4ga.js +0 -6
  3512. langflow/frontend/assets/venetian-mask-DmWfxb9c.js +0 -6
  3513. langflow/frontend/assets/venus-RvFO6sz3.js +0 -6
  3514. langflow/frontend/assets/venus-and-mars-CiOJpo6y.js +0 -6
  3515. langflow/frontend/assets/vibrate-1WhiGt9n.js +0 -6
  3516. langflow/frontend/assets/vibrate-off-B2p6HPqI.js +0 -6
  3517. langflow/frontend/assets/video-B1xikC0D.js +0 -6
  3518. langflow/frontend/assets/video-off-BfdtEXPL.js +0 -6
  3519. langflow/frontend/assets/videotape-Dpgx8hXq.js +0 -6
  3520. langflow/frontend/assets/view-CF1HRiVx.js +0 -6
  3521. langflow/frontend/assets/voicemail-DqVuHxqG.js +0 -6
  3522. langflow/frontend/assets/volleyball--xOUru5I.js +0 -6
  3523. langflow/frontend/assets/volume-1-BiTdyOLX.js +0 -6
  3524. langflow/frontend/assets/volume-2-BeaxB9YG.js +0 -6
  3525. langflow/frontend/assets/volume-D7xKonzS.js +0 -6
  3526. langflow/frontend/assets/volume-off-B33ivsB8.js +0 -6
  3527. langflow/frontend/assets/volume-x-CqaDmcOs.js +0 -6
  3528. langflow/frontend/assets/vote-Cfn06NT1.js +0 -6
  3529. langflow/frontend/assets/wallet-DSdVEiqg.js +0 -6
  3530. langflow/frontend/assets/wallet-cards-jAgwGOWo.js +0 -6
  3531. langflow/frontend/assets/wallet-minimal-3TRsKOll.js +0 -6
  3532. langflow/frontend/assets/wallpaper-GGLm4WrS.js +0 -6
  3533. langflow/frontend/assets/wand-DgZTSrfQ.js +0 -6
  3534. langflow/frontend/assets/wand-sparkles-H6tX1sCs.js +0 -6
  3535. langflow/frontend/assets/warehouse-BgUhuxP5.js +0 -6
  3536. langflow/frontend/assets/washing-machine-CS_OTJmd.js +0 -6
  3537. langflow/frontend/assets/watch-B6mByeBr.js +0 -6
  3538. langflow/frontend/assets/waves-BQXhi-gq.js +0 -6
  3539. langflow/frontend/assets/waves-ladder-C0UexJSG.js +0 -6
  3540. langflow/frontend/assets/waypoints-B5CB8GeY.js +0 -6
  3541. langflow/frontend/assets/webcam-BkfBJe3H.js +0 -6
  3542. langflow/frontend/assets/webhook-DjpEiRiq.js +0 -6
  3543. langflow/frontend/assets/webhook-off-Do1xSnFf.js +0 -6
  3544. langflow/frontend/assets/weight-BeDqmgI5.js +0 -6
  3545. langflow/frontend/assets/wheat-CMJKptAw.js +0 -6
  3546. langflow/frontend/assets/wheat-off-ML233b_1.js +0 -6
  3547. langflow/frontend/assets/whole-word-OwMOlobi.js +0 -6
  3548. langflow/frontend/assets/wifi-CGTXG3aj.js +0 -6
  3549. langflow/frontend/assets/wifi-high-CNqVMeHc.js +0 -6
  3550. langflow/frontend/assets/wifi-low-CDbC2Ejf.js +0 -6
  3551. langflow/frontend/assets/wifi-off-ImMngQfV.js +0 -6
  3552. langflow/frontend/assets/wifi-pen-CL8gzHjN.js +0 -6
  3553. langflow/frontend/assets/wifi-zero-B0W-F8K6.js +0 -6
  3554. langflow/frontend/assets/wind-C4PqW-zW.js +0 -6
  3555. langflow/frontend/assets/wind-arrow-down-CvEtrUnC.js +0 -6
  3556. langflow/frontend/assets/wine-B7VEAVgt.js +0 -6
  3557. langflow/frontend/assets/wine-off-fk2gnCkB.js +0 -6
  3558. langflow/frontend/assets/workflow-DLPIYsBq.js +0 -6
  3559. langflow/frontend/assets/worm-CTXkdaVR.js +0 -6
  3560. langflow/frontend/assets/wrap-text-Dne_wzgU.js +0 -6
  3561. langflow/frontend/assets/wrench-Cq_Puwyi.js +0 -6
  3562. langflow/frontend/assets/youtube-DS26oR2K.js +0 -6
  3563. langflow/frontend/assets/zap-Cm8afIig.js +0 -6
  3564. langflow/frontend/assets/zap-off-BwHG4Yed.js +0 -6
  3565. langflow/frontend/assets/zoom-in-DIa-IkQ2.js +0 -6
  3566. langflow/frontend/assets/zoom-out-v-bDwamo.js +0 -6
  3567. langflow_base_nightly-1.7.0.dev30.dist-info/METADATA +0 -99
  3568. langflow_base_nightly-1.7.0.dev30.dist-info/RECORD +0 -2278
  3569. {langflow_base_nightly-1.7.0.dev30.dist-info → langflow_base_nightly-1.7.0.dev32.dist-info}/WHEEL +0 -0
  3570. {langflow_base_nightly-1.7.0.dev30.dist-info → langflow_base_nightly-1.7.0.dev32.dist-info}/entry_points.txt +0 -0
@@ -498,7 +498,7 @@
498
498
  "legacy": false,
499
499
  "lf_version": "1.2.0",
500
500
  "metadata": {
501
- "code_hash": "cae45e2d53f6",
501
+ "code_hash": "8c87e536cca4",
502
502
  "dependencies": {
503
503
  "dependencies": [
504
504
  {
@@ -572,7 +572,7 @@
572
572
  "show": true,
573
573
  "title_case": false,
574
574
  "type": "code",
575
- "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"
575
+ "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"
576
576
  },
577
577
  "context_id": {
578
578
  "_input_type": "MessageTextInput",
@@ -1663,7 +1663,7 @@
1663
1663
  "icon": "bot",
1664
1664
  "legacy": false,
1665
1665
  "metadata": {
1666
- "code_hash": "d64b11c24a1c",
1666
+ "code_hash": "fba2d73636e5",
1667
1667
  "dependencies": {
1668
1668
  "dependencies": [
1669
1669
  {
@@ -1784,16 +1784,25 @@
1784
1784
  },
1785
1785
  {
1786
1786
  "icon": "OpenAI"
1787
+ },
1788
+ {
1789
+ "icon": "WatsonxAI"
1790
+ },
1791
+ {
1792
+ "icon": "Ollama"
1787
1793
  }
1788
1794
  ],
1795
+ "override_skip": false,
1789
1796
  "placeholder": "",
1790
1797
  "real_time_refresh": true,
1798
+ "refresh_button": false,
1791
1799
  "required": false,
1792
1800
  "show": true,
1793
1801
  "title_case": false,
1794
1802
  "toggle": false,
1795
1803
  "tool_mode": false,
1796
1804
  "trace_as_metadata": true,
1805
+ "track_in_telemetry": true,
1797
1806
  "type": "str",
1798
1807
  "value": "OpenAI"
1799
1808
  },
@@ -1825,6 +1834,7 @@
1825
1834
  "list_add_label": "Add More",
1826
1835
  "load_from_db": false,
1827
1836
  "name": "base_url",
1837
+ "override_skip": false,
1828
1838
  "placeholder": "",
1829
1839
  "required": true,
1830
1840
  "show": false,
@@ -1851,7 +1861,7 @@
1851
1861
  "show": true,
1852
1862
  "title_case": false,
1853
1863
  "type": "code",
1854
- "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"
1864
+ "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"
1855
1865
  },
1856
1866
  "context_id": {
1857
1867
  "_input_type": "MessageTextInput",
@@ -1969,6 +1979,7 @@
1969
1979
  "list": false,
1970
1980
  "list_add_label": "Add More",
1971
1981
  "name": "max_output_tokens",
1982
+ "override_skip": false,
1972
1983
  "placeholder": "",
1973
1984
  "required": false,
1974
1985
  "show": false,
@@ -1988,12 +1999,14 @@
1988
1999
  "list": false,
1989
2000
  "list_add_label": "Add More",
1990
2001
  "name": "max_retries",
2002
+ "override_skip": false,
1991
2003
  "placeholder": "",
1992
2004
  "required": false,
1993
2005
  "show": true,
1994
2006
  "title_case": false,
1995
2007
  "tool_mode": false,
1996
2008
  "trace_as_metadata": true,
2009
+ "track_in_telemetry": true,
1997
2010
  "type": "int",
1998
2011
  "value": 5
1999
2012
  },
@@ -2006,10 +2019,11 @@
2006
2019
  "list": false,
2007
2020
  "list_add_label": "Add More",
2008
2021
  "name": "max_tokens",
2022
+ "override_skip": false,
2009
2023
  "placeholder": "",
2010
2024
  "range_spec": {
2011
- "max": 128000,
2012
- "min": 0,
2025
+ "max": 128000.0,
2026
+ "min": 0.0,
2013
2027
  "step": 0.1,
2014
2028
  "step_type": "float"
2015
2029
  },
@@ -2018,6 +2032,7 @@
2018
2032
  "title_case": false,
2019
2033
  "tool_mode": false,
2020
2034
  "trace_as_metadata": true,
2035
+ "track_in_telemetry": true,
2021
2036
  "type": "int",
2022
2037
  "value": ""
2023
2038
  },
@@ -2030,12 +2045,14 @@
2030
2045
  "list": false,
2031
2046
  "list_add_label": "Add More",
2032
2047
  "name": "model_kwargs",
2048
+ "override_skip": false,
2033
2049
  "placeholder": "",
2034
2050
  "required": false,
2035
2051
  "show": true,
2036
2052
  "title_case": false,
2037
2053
  "tool_mode": false,
2038
2054
  "trace_as_input": true,
2055
+ "track_in_telemetry": false,
2039
2056
  "type": "dict",
2040
2057
  "value": {}
2041
2058
  },
@@ -2046,8 +2063,8 @@
2046
2063
  "dialog_inputs": {},
2047
2064
  "display_name": "Model Name",
2048
2065
  "dynamic": false,
2066
+ "external_options": {},
2049
2067
  "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.",
2050
- "load_from_db": false,
2051
2068
  "name": "model_name",
2052
2069
  "options": [
2053
2070
  "gpt-4o-mini",
@@ -2072,6 +2089,7 @@
2072
2089
  "o4-mini-high"
2073
2090
  ],
2074
2091
  "options_metadata": [],
2092
+ "override_skip": false,
2075
2093
  "placeholder": "",
2076
2094
  "real_time_refresh": false,
2077
2095
  "required": false,
@@ -2080,8 +2098,9 @@
2080
2098
  "toggle": false,
2081
2099
  "tool_mode": false,
2082
2100
  "trace_as_metadata": true,
2101
+ "track_in_telemetry": true,
2083
2102
  "type": "str",
2084
- "value": "gpt-4.1"
2103
+ "value": "gpt-4o-mini"
2085
2104
  },
2086
2105
  "n_messages": {
2087
2106
  "_input_type": "IntInput",
@@ -2111,12 +2130,14 @@
2111
2130
  "list_add_label": "Add More",
2112
2131
  "load_from_db": false,
2113
2132
  "name": "openai_api_base",
2133
+ "override_skip": false,
2114
2134
  "placeholder": "",
2115
2135
  "required": false,
2116
2136
  "show": true,
2117
2137
  "title_case": false,
2118
2138
  "tool_mode": false,
2119
2139
  "trace_as_metadata": true,
2140
+ "track_in_telemetry": false,
2120
2141
  "type": "str",
2121
2142
  "value": ""
2122
2143
  },
@@ -2192,6 +2213,7 @@
2192
2213
  "list_add_label": "Add More",
2193
2214
  "load_from_db": false,
2194
2215
  "name": "project_id",
2216
+ "override_skip": false,
2195
2217
  "placeholder": "",
2196
2218
  "required": true,
2197
2219
  "show": false,
@@ -2211,12 +2233,14 @@
2211
2233
  "list": false,
2212
2234
  "list_add_label": "Add More",
2213
2235
  "name": "seed",
2236
+ "override_skip": false,
2214
2237
  "placeholder": "",
2215
2238
  "required": false,
2216
2239
  "show": true,
2217
2240
  "title_case": false,
2218
2241
  "tool_mode": false,
2219
2242
  "trace_as_metadata": true,
2243
+ "track_in_telemetry": true,
2220
2244
  "type": "int",
2221
2245
  "value": 1
2222
2246
  },
@@ -2256,10 +2280,11 @@
2256
2280
  "min_label": "",
2257
2281
  "min_label_icon": "",
2258
2282
  "name": "temperature",
2283
+ "override_skip": false,
2259
2284
  "placeholder": "",
2260
2285
  "range_spec": {
2261
- "max": 1,
2262
- "min": 0,
2286
+ "max": 1.0,
2287
+ "min": 0.0,
2263
2288
  "step": 0.01,
2264
2289
  "step_type": "float"
2265
2290
  },
@@ -2270,6 +2295,7 @@
2270
2295
  "slider_input": false,
2271
2296
  "title_case": false,
2272
2297
  "tool_mode": false,
2298
+ "track_in_telemetry": false,
2273
2299
  "type": "slider",
2274
2300
  "value": 0.1
2275
2301
  },
@@ -2282,12 +2308,14 @@
2282
2308
  "list": false,
2283
2309
  "list_add_label": "Add More",
2284
2310
  "name": "timeout",
2311
+ "override_skip": false,
2285
2312
  "placeholder": "",
2286
2313
  "required": false,
2287
2314
  "show": true,
2288
2315
  "title_case": false,
2289
2316
  "tool_mode": false,
2290
2317
  "trace_as_metadata": true,
2318
+ "track_in_telemetry": true,
2291
2319
  "type": "int",
2292
2320
  "value": 700
2293
2321
  },
@@ -2389,7 +2417,7 @@
2389
2417
  "icon": "bot",
2390
2418
  "legacy": false,
2391
2419
  "metadata": {
2392
- "code_hash": "d64b11c24a1c",
2420
+ "code_hash": "fba2d73636e5",
2393
2421
  "dependencies": {
2394
2422
  "dependencies": [
2395
2423
  {
@@ -2510,16 +2538,25 @@
2510
2538
  },
2511
2539
  {
2512
2540
  "icon": "OpenAI"
2541
+ },
2542
+ {
2543
+ "icon": "WatsonxAI"
2544
+ },
2545
+ {
2546
+ "icon": "Ollama"
2513
2547
  }
2514
2548
  ],
2549
+ "override_skip": false,
2515
2550
  "placeholder": "",
2516
2551
  "real_time_refresh": true,
2552
+ "refresh_button": false,
2517
2553
  "required": false,
2518
2554
  "show": true,
2519
2555
  "title_case": false,
2520
2556
  "toggle": false,
2521
2557
  "tool_mode": false,
2522
2558
  "trace_as_metadata": true,
2559
+ "track_in_telemetry": true,
2523
2560
  "type": "str",
2524
2561
  "value": "OpenAI"
2525
2562
  },
@@ -2551,6 +2588,7 @@
2551
2588
  "list_add_label": "Add More",
2552
2589
  "load_from_db": false,
2553
2590
  "name": "base_url",
2591
+ "override_skip": false,
2554
2592
  "placeholder": "",
2555
2593
  "required": true,
2556
2594
  "show": false,
@@ -2577,7 +2615,7 @@
2577
2615
  "show": true,
2578
2616
  "title_case": false,
2579
2617
  "type": "code",
2580
- "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"
2618
+ "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"
2581
2619
  },
2582
2620
  "context_id": {
2583
2621
  "_input_type": "MessageTextInput",
@@ -2695,6 +2733,7 @@
2695
2733
  "list": false,
2696
2734
  "list_add_label": "Add More",
2697
2735
  "name": "max_output_tokens",
2736
+ "override_skip": false,
2698
2737
  "placeholder": "",
2699
2738
  "required": false,
2700
2739
  "show": false,
@@ -2714,12 +2753,14 @@
2714
2753
  "list": false,
2715
2754
  "list_add_label": "Add More",
2716
2755
  "name": "max_retries",
2756
+ "override_skip": false,
2717
2757
  "placeholder": "",
2718
2758
  "required": false,
2719
2759
  "show": true,
2720
2760
  "title_case": false,
2721
2761
  "tool_mode": false,
2722
2762
  "trace_as_metadata": true,
2763
+ "track_in_telemetry": true,
2723
2764
  "type": "int",
2724
2765
  "value": 5
2725
2766
  },
@@ -2732,10 +2773,11 @@
2732
2773
  "list": false,
2733
2774
  "list_add_label": "Add More",
2734
2775
  "name": "max_tokens",
2776
+ "override_skip": false,
2735
2777
  "placeholder": "",
2736
2778
  "range_spec": {
2737
- "max": 128000,
2738
- "min": 0,
2779
+ "max": 128000.0,
2780
+ "min": 0.0,
2739
2781
  "step": 0.1,
2740
2782
  "step_type": "float"
2741
2783
  },
@@ -2744,6 +2786,7 @@
2744
2786
  "title_case": false,
2745
2787
  "tool_mode": false,
2746
2788
  "trace_as_metadata": true,
2789
+ "track_in_telemetry": true,
2747
2790
  "type": "int",
2748
2791
  "value": ""
2749
2792
  },
@@ -2756,12 +2799,14 @@
2756
2799
  "list": false,
2757
2800
  "list_add_label": "Add More",
2758
2801
  "name": "model_kwargs",
2802
+ "override_skip": false,
2759
2803
  "placeholder": "",
2760
2804
  "required": false,
2761
2805
  "show": true,
2762
2806
  "title_case": false,
2763
2807
  "tool_mode": false,
2764
2808
  "trace_as_input": true,
2809
+ "track_in_telemetry": false,
2765
2810
  "type": "dict",
2766
2811
  "value": {}
2767
2812
  },
@@ -2772,8 +2817,8 @@
2772
2817
  "dialog_inputs": {},
2773
2818
  "display_name": "Model Name",
2774
2819
  "dynamic": false,
2820
+ "external_options": {},
2775
2821
  "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.",
2776
- "load_from_db": false,
2777
2822
  "name": "model_name",
2778
2823
  "options": [
2779
2824
  "gpt-4o-mini",
@@ -2798,6 +2843,7 @@
2798
2843
  "o4-mini-high"
2799
2844
  ],
2800
2845
  "options_metadata": [],
2846
+ "override_skip": false,
2801
2847
  "placeholder": "",
2802
2848
  "real_time_refresh": false,
2803
2849
  "required": false,
@@ -2806,8 +2852,9 @@
2806
2852
  "toggle": false,
2807
2853
  "tool_mode": false,
2808
2854
  "trace_as_metadata": true,
2855
+ "track_in_telemetry": true,
2809
2856
  "type": "str",
2810
- "value": "gpt-4.1"
2857
+ "value": "gpt-4o-mini"
2811
2858
  },
2812
2859
  "n_messages": {
2813
2860
  "_input_type": "IntInput",
@@ -2837,12 +2884,14 @@
2837
2884
  "list_add_label": "Add More",
2838
2885
  "load_from_db": false,
2839
2886
  "name": "openai_api_base",
2887
+ "override_skip": false,
2840
2888
  "placeholder": "",
2841
2889
  "required": false,
2842
2890
  "show": true,
2843
2891
  "title_case": false,
2844
2892
  "tool_mode": false,
2845
2893
  "trace_as_metadata": true,
2894
+ "track_in_telemetry": false,
2846
2895
  "type": "str",
2847
2896
  "value": ""
2848
2897
  },
@@ -2918,6 +2967,7 @@
2918
2967
  "list_add_label": "Add More",
2919
2968
  "load_from_db": false,
2920
2969
  "name": "project_id",
2970
+ "override_skip": false,
2921
2971
  "placeholder": "",
2922
2972
  "required": true,
2923
2973
  "show": false,
@@ -2937,12 +2987,14 @@
2937
2987
  "list": false,
2938
2988
  "list_add_label": "Add More",
2939
2989
  "name": "seed",
2990
+ "override_skip": false,
2940
2991
  "placeholder": "",
2941
2992
  "required": false,
2942
2993
  "show": true,
2943
2994
  "title_case": false,
2944
2995
  "tool_mode": false,
2945
2996
  "trace_as_metadata": true,
2997
+ "track_in_telemetry": true,
2946
2998
  "type": "int",
2947
2999
  "value": 1
2948
3000
  },
@@ -2982,10 +3034,11 @@
2982
3034
  "min_label": "",
2983
3035
  "min_label_icon": "",
2984
3036
  "name": "temperature",
3037
+ "override_skip": false,
2985
3038
  "placeholder": "",
2986
3039
  "range_spec": {
2987
- "max": 1,
2988
- "min": 0,
3040
+ "max": 1.0,
3041
+ "min": 0.0,
2989
3042
  "step": 0.01,
2990
3043
  "step_type": "float"
2991
3044
  },
@@ -2996,6 +3049,7 @@
2996
3049
  "slider_input": false,
2997
3050
  "title_case": false,
2998
3051
  "tool_mode": false,
3052
+ "track_in_telemetry": false,
2999
3053
  "type": "slider",
3000
3054
  "value": 0.1
3001
3055
  },
@@ -3008,12 +3062,14 @@
3008
3062
  "list": false,
3009
3063
  "list_add_label": "Add More",
3010
3064
  "name": "timeout",
3065
+ "override_skip": false,
3011
3066
  "placeholder": "",
3012
3067
  "required": false,
3013
3068
  "show": true,
3014
3069
  "title_case": false,
3015
3070
  "tool_mode": false,
3016
3071
  "trace_as_metadata": true,
3072
+ "track_in_telemetry": true,
3017
3073
  "type": "int",
3018
3074
  "value": 700
3019
3075
  },
@@ -3115,7 +3171,7 @@
3115
3171
  "icon": "bot",
3116
3172
  "legacy": false,
3117
3173
  "metadata": {
3118
- "code_hash": "d64b11c24a1c",
3174
+ "code_hash": "fba2d73636e5",
3119
3175
  "dependencies": {
3120
3176
  "dependencies": [
3121
3177
  {
@@ -3236,16 +3292,25 @@
3236
3292
  },
3237
3293
  {
3238
3294
  "icon": "OpenAI"
3295
+ },
3296
+ {
3297
+ "icon": "WatsonxAI"
3298
+ },
3299
+ {
3300
+ "icon": "Ollama"
3239
3301
  }
3240
3302
  ],
3303
+ "override_skip": false,
3241
3304
  "placeholder": "",
3242
3305
  "real_time_refresh": true,
3306
+ "refresh_button": false,
3243
3307
  "required": false,
3244
3308
  "show": true,
3245
3309
  "title_case": false,
3246
3310
  "toggle": false,
3247
3311
  "tool_mode": false,
3248
3312
  "trace_as_metadata": true,
3313
+ "track_in_telemetry": true,
3249
3314
  "type": "str",
3250
3315
  "value": "OpenAI"
3251
3316
  },
@@ -3277,6 +3342,7 @@
3277
3342
  "list_add_label": "Add More",
3278
3343
  "load_from_db": false,
3279
3344
  "name": "base_url",
3345
+ "override_skip": false,
3280
3346
  "placeholder": "",
3281
3347
  "required": true,
3282
3348
  "show": false,
@@ -3303,7 +3369,7 @@
3303
3369
  "show": true,
3304
3370
  "title_case": false,
3305
3371
  "type": "code",
3306
- "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"
3372
+ "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"
3307
3373
  },
3308
3374
  "context_id": {
3309
3375
  "_input_type": "MessageTextInput",
@@ -3421,6 +3487,7 @@
3421
3487
  "list": false,
3422
3488
  "list_add_label": "Add More",
3423
3489
  "name": "max_output_tokens",
3490
+ "override_skip": false,
3424
3491
  "placeholder": "",
3425
3492
  "required": false,
3426
3493
  "show": false,
@@ -3440,12 +3507,14 @@
3440
3507
  "list": false,
3441
3508
  "list_add_label": "Add More",
3442
3509
  "name": "max_retries",
3510
+ "override_skip": false,
3443
3511
  "placeholder": "",
3444
3512
  "required": false,
3445
3513
  "show": true,
3446
3514
  "title_case": false,
3447
3515
  "tool_mode": false,
3448
3516
  "trace_as_metadata": true,
3517
+ "track_in_telemetry": true,
3449
3518
  "type": "int",
3450
3519
  "value": 5
3451
3520
  },
@@ -3458,10 +3527,11 @@
3458
3527
  "list": false,
3459
3528
  "list_add_label": "Add More",
3460
3529
  "name": "max_tokens",
3530
+ "override_skip": false,
3461
3531
  "placeholder": "",
3462
3532
  "range_spec": {
3463
- "max": 128000,
3464
- "min": 0,
3533
+ "max": 128000.0,
3534
+ "min": 0.0,
3465
3535
  "step": 0.1,
3466
3536
  "step_type": "float"
3467
3537
  },
@@ -3470,6 +3540,7 @@
3470
3540
  "title_case": false,
3471
3541
  "tool_mode": false,
3472
3542
  "trace_as_metadata": true,
3543
+ "track_in_telemetry": true,
3473
3544
  "type": "int",
3474
3545
  "value": ""
3475
3546
  },
@@ -3482,12 +3553,14 @@
3482
3553
  "list": false,
3483
3554
  "list_add_label": "Add More",
3484
3555
  "name": "model_kwargs",
3556
+ "override_skip": false,
3485
3557
  "placeholder": "",
3486
3558
  "required": false,
3487
3559
  "show": true,
3488
3560
  "title_case": false,
3489
3561
  "tool_mode": false,
3490
3562
  "trace_as_input": true,
3563
+ "track_in_telemetry": false,
3491
3564
  "type": "dict",
3492
3565
  "value": {}
3493
3566
  },
@@ -3498,8 +3571,8 @@
3498
3571
  "dialog_inputs": {},
3499
3572
  "display_name": "Model Name",
3500
3573
  "dynamic": false,
3574
+ "external_options": {},
3501
3575
  "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.",
3502
- "load_from_db": false,
3503
3576
  "name": "model_name",
3504
3577
  "options": [
3505
3578
  "gpt-4o-mini",
@@ -3524,6 +3597,7 @@
3524
3597
  "o4-mini-high"
3525
3598
  ],
3526
3599
  "options_metadata": [],
3600
+ "override_skip": false,
3527
3601
  "placeholder": "",
3528
3602
  "real_time_refresh": false,
3529
3603
  "required": false,
@@ -3532,8 +3606,9 @@
3532
3606
  "toggle": false,
3533
3607
  "tool_mode": false,
3534
3608
  "trace_as_metadata": true,
3609
+ "track_in_telemetry": true,
3535
3610
  "type": "str",
3536
- "value": "gpt-4.1"
3611
+ "value": "gpt-4o-mini"
3537
3612
  },
3538
3613
  "n_messages": {
3539
3614
  "_input_type": "IntInput",
@@ -3563,12 +3638,14 @@
3563
3638
  "list_add_label": "Add More",
3564
3639
  "load_from_db": false,
3565
3640
  "name": "openai_api_base",
3641
+ "override_skip": false,
3566
3642
  "placeholder": "",
3567
3643
  "required": false,
3568
3644
  "show": true,
3569
3645
  "title_case": false,
3570
3646
  "tool_mode": false,
3571
3647
  "trace_as_metadata": true,
3648
+ "track_in_telemetry": false,
3572
3649
  "type": "str",
3573
3650
  "value": ""
3574
3651
  },
@@ -3644,6 +3721,7 @@
3644
3721
  "list_add_label": "Add More",
3645
3722
  "load_from_db": false,
3646
3723
  "name": "project_id",
3724
+ "override_skip": false,
3647
3725
  "placeholder": "",
3648
3726
  "required": true,
3649
3727
  "show": false,
@@ -3663,12 +3741,14 @@
3663
3741
  "list": false,
3664
3742
  "list_add_label": "Add More",
3665
3743
  "name": "seed",
3744
+ "override_skip": false,
3666
3745
  "placeholder": "",
3667
3746
  "required": false,
3668
3747
  "show": true,
3669
3748
  "title_case": false,
3670
3749
  "tool_mode": false,
3671
3750
  "trace_as_metadata": true,
3751
+ "track_in_telemetry": true,
3672
3752
  "type": "int",
3673
3753
  "value": 1
3674
3754
  },
@@ -3708,10 +3788,11 @@
3708
3788
  "min_label": "",
3709
3789
  "min_label_icon": "",
3710
3790
  "name": "temperature",
3791
+ "override_skip": false,
3711
3792
  "placeholder": "",
3712
3793
  "range_spec": {
3713
- "max": 1,
3714
- "min": 0,
3794
+ "max": 1.0,
3795
+ "min": 0.0,
3715
3796
  "step": 0.01,
3716
3797
  "step_type": "float"
3717
3798
  },
@@ -3722,6 +3803,7 @@
3722
3803
  "slider_input": false,
3723
3804
  "title_case": false,
3724
3805
  "tool_mode": false,
3806
+ "track_in_telemetry": false,
3725
3807
  "type": "slider",
3726
3808
  "value": 0.1
3727
3809
  },
@@ -3734,12 +3816,14 @@
3734
3816
  "list": false,
3735
3817
  "list_add_label": "Add More",
3736
3818
  "name": "timeout",
3819
+ "override_skip": false,
3737
3820
  "placeholder": "",
3738
3821
  "required": false,
3739
3822
  "show": true,
3740
3823
  "title_case": false,
3741
3824
  "tool_mode": false,
3742
3825
  "trace_as_metadata": true,
3826
+ "track_in_telemetry": true,
3743
3827
  "type": "int",
3744
3828
  "value": 700
3745
3829
  },