langflow-base-nightly 1.7.0.dev26__py3-none-any.whl → 1.7.0.dev34__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.
- langflow/__main__.py +0 -1
- langflow/api/utils/mcp/__init__.py +9 -1
- langflow/api/utils/mcp/config_utils.py +63 -10
- langflow/api/v1/endpoints.py +8 -0
- langflow/api/v1/mcp.py +135 -12
- langflow/api/v1/mcp_projects.py +369 -88
- langflow/api/v1/mcp_utils.py +39 -3
- langflow/api/v1/projects.py +17 -6
- langflow/api/v1/schemas.py +11 -0
- langflow/api/v2/files.py +10 -11
- langflow/frontend/assets/SlackIcon-DxeiF11S.js +1 -0
- langflow/frontend/assets/Wikipedia-CL057I0S.js +1 -0
- langflow/frontend/assets/Wolfram-Y47vX2rm.js +1 -0
- langflow/frontend/assets/a-arrow-down-DBh7LmeN.js +6 -0
- langflow/frontend/assets/a-arrow-up-B2eX2b8O.js +6 -0
- langflow/frontend/assets/a-large-small-D71NS_iy.js +6 -0
- langflow/frontend/assets/accessibility-DejBYKIW.js +6 -0
- langflow/frontend/assets/activity-CBhxWrMS.js +6 -0
- langflow/frontend/assets/air-vent-Bije1W2Q.js +6 -0
- langflow/frontend/assets/airplay-C5-lPX0O.js +6 -0
- langflow/frontend/assets/alarm-clock-CGfG-USV.js +6 -0
- langflow/frontend/assets/alarm-clock-check-BM4PTWEv.js +6 -0
- langflow/frontend/assets/alarm-clock-minus-B9rwzGwU.js +6 -0
- langflow/frontend/assets/alarm-clock-off-CLSxhrlq.js +6 -0
- langflow/frontend/assets/alarm-clock-plus-CLXdmxkI.js +6 -0
- langflow/frontend/assets/alarm-smoke-BlJtr7Z3.js +6 -0
- langflow/frontend/assets/album-DoYJ3V06.js +6 -0
- langflow/frontend/assets/align-center-C2HHGvzP.js +6 -0
- langflow/frontend/assets/align-center-horizontal-DeG4x0PQ.js +6 -0
- langflow/frontend/assets/align-center-vertical-Df0IJka2.js +6 -0
- langflow/frontend/assets/align-end-horizontal-BOdJ4Ttg.js +6 -0
- langflow/frontend/assets/align-end-vertical-ClyoN3h1.js +6 -0
- langflow/frontend/assets/align-horizontal-distribute-center-CFbJUuMS.js +6 -0
- langflow/frontend/assets/align-horizontal-distribute-end-BLYD4D6D.js +6 -0
- langflow/frontend/assets/align-horizontal-distribute-start-B6m_uTg9.js +6 -0
- langflow/frontend/assets/align-horizontal-justify-center-Ds5Je_LT.js +6 -0
- langflow/frontend/assets/align-horizontal-justify-end-BMJ38us6.js +6 -0
- langflow/frontend/assets/align-horizontal-justify-start-DpXqI56J.js +6 -0
- langflow/frontend/assets/align-horizontal-space-around-3E3L-HGf.js +6 -0
- langflow/frontend/assets/align-horizontal-space-between-C_Ffde9E.js +6 -0
- langflow/frontend/assets/align-justify-hsCZmlA4.js +6 -0
- langflow/frontend/assets/align-left-BbEmnOsJ.js +6 -0
- langflow/frontend/assets/align-right-nxpfT04G.js +6 -0
- langflow/frontend/assets/align-start-horizontal-S4fef6va.js +6 -0
- langflow/frontend/assets/align-start-vertical-rHMRcqan.js +6 -0
- langflow/frontend/assets/align-vertical-distribute-center-Ojt_8EW6.js +6 -0
- langflow/frontend/assets/align-vertical-distribute-end-DJovMEVR.js +6 -0
- langflow/frontend/assets/align-vertical-distribute-start-CCQz6usf.js +6 -0
- langflow/frontend/assets/align-vertical-justify-center-DgCfsVdt.js +6 -0
- langflow/frontend/assets/align-vertical-justify-end-402CJ8G5.js +6 -0
- langflow/frontend/assets/align-vertical-justify-start-7PSLlmlS.js +6 -0
- langflow/frontend/assets/align-vertical-space-around-BJTBy73m.js +6 -0
- langflow/frontend/assets/align-vertical-space-between-DN6Wohqm.js +6 -0
- langflow/frontend/assets/ambulance-Czh1qVns.js +6 -0
- langflow/frontend/assets/ampersand-X2fAuSDg.js +6 -0
- langflow/frontend/assets/ampersands-C54WvK0C.js +6 -0
- langflow/frontend/assets/amphora-DjPF4sK2.js +6 -0
- langflow/frontend/assets/anchor-sUIvYc3m.js +6 -0
- langflow/frontend/assets/angry-BNwCM4ZE.js +6 -0
- langflow/frontend/assets/annoyed-CtiQ5OxF.js +6 -0
- langflow/frontend/assets/antenna-D8fo-ZGm.js +6 -0
- langflow/frontend/assets/anvil-DY5rjtl8.js +6 -0
- langflow/frontend/assets/aperture-Bdlz8QP6.js +6 -0
- langflow/frontend/assets/app-window-0117De3i.js +6 -0
- langflow/frontend/assets/app-window-mac-bCYlgHaE.js +6 -0
- langflow/frontend/assets/apple-CzKnQMQh.js +6 -0
- langflow/frontend/assets/archive-B_2Wouil.js +6 -0
- langflow/frontend/assets/archive-restore-BkrRxkyA.js +6 -0
- langflow/frontend/assets/archive-x-C8lt_i2G.js +6 -0
- langflow/frontend/assets/armchair-Cyl6HafZ.js +6 -0
- langflow/frontend/assets/arrow-big-down-2M-KplbC.js +6 -0
- langflow/frontend/assets/arrow-big-down-dash-BI23IxbO.js +6 -0
- langflow/frontend/assets/arrow-big-left-SZRqVBg4.js +6 -0
- langflow/frontend/assets/arrow-big-left-dash-DbufjKSL.js +6 -0
- langflow/frontend/assets/arrow-big-right-6tuR-Vgz.js +6 -0
- langflow/frontend/assets/arrow-big-right-dash-DK3qRXWr.js +6 -0
- langflow/frontend/assets/arrow-big-up-CrGi99gh.js +6 -0
- langflow/frontend/assets/arrow-big-up-dash-hpXiTPqM.js +6 -0
- langflow/frontend/assets/arrow-down-0-1-B3hd-6CC.js +6 -0
- langflow/frontend/assets/arrow-down-1-0-BDKBZ144.js +6 -0
- langflow/frontend/assets/arrow-down-JFp-p3S5.js +6 -0
- langflow/frontend/assets/arrow-down-a-z-DQsyQ7g8.js +6 -0
- langflow/frontend/assets/arrow-down-from-line-D4KY_4CE.js +6 -0
- langflow/frontend/assets/arrow-down-left-DRzxz0QB.js +6 -0
- langflow/frontend/assets/arrow-down-narrow-wide-wQLpH6NB.js +6 -0
- langflow/frontend/assets/arrow-down-right-CPuxcr08.js +6 -0
- langflow/frontend/assets/arrow-down-to-dot-C69LacFY.js +6 -0
- langflow/frontend/assets/arrow-down-to-line-CSpWbosA.js +6 -0
- langflow/frontend/assets/arrow-down-up-BcxjZam7.js +6 -0
- langflow/frontend/assets/arrow-down-wide-narrow-D3BSb915.js +6 -0
- langflow/frontend/assets/arrow-down-z-a-D6XKU4U-.js +6 -0
- langflow/frontend/assets/arrow-left-dQ06o7IA.js +6 -0
- langflow/frontend/assets/arrow-left-from-line-CCFQM55O.js +6 -0
- langflow/frontend/assets/arrow-left-right-B7Ukf5wF.js +6 -0
- langflow/frontend/assets/arrow-left-to-line-CFilt37J.js +6 -0
- langflow/frontend/assets/arrow-right-WBWOrvaZ.js +6 -0
- langflow/frontend/assets/arrow-right-from-line-Bg898FB7.js +6 -0
- langflow/frontend/assets/arrow-right-left-Cff_QITA.js +6 -0
- langflow/frontend/assets/arrow-right-to-line-DcqaW91t.js +6 -0
- langflow/frontend/assets/arrow-up-0-1-Dc7LJPYu.js +6 -0
- langflow/frontend/assets/arrow-up-1-0-BiszJGRE.js +6 -0
- langflow/frontend/assets/arrow-up-DG_Otqiz.js +6 -0
- langflow/frontend/assets/arrow-up-a-z-DP6tRQRG.js +6 -0
- langflow/frontend/assets/arrow-up-down-DolNTKdS.js +6 -0
- langflow/frontend/assets/arrow-up-from-dot-Drl_9HMj.js +6 -0
- langflow/frontend/assets/arrow-up-from-line-BrAPikcJ.js +6 -0
- langflow/frontend/assets/arrow-up-left-BZRzxQzy.js +6 -0
- langflow/frontend/assets/arrow-up-narrow-wide-CkVf9bNB.js +6 -0
- langflow/frontend/assets/arrow-up-right-B-BSr1Ws.js +6 -0
- langflow/frontend/assets/arrow-up-to-line-D6smTEWb.js +6 -0
- langflow/frontend/assets/arrow-up-wide-narrow-D3Dtq4mr.js +6 -0
- langflow/frontend/assets/arrow-up-z-a-JFNLMZlz.js +6 -0
- langflow/frontend/assets/arrows-up-from-line-B3LglwuY.js +6 -0
- langflow/frontend/assets/asterisk-sevDYo6o.js +6 -0
- langflow/frontend/assets/at-sign-GgDMd0Qi.js +6 -0
- langflow/frontend/assets/atom-CEtdvvGt.js +6 -0
- langflow/frontend/assets/audio-lines-D_miCqSc.js +6 -0
- langflow/frontend/assets/audio-waveform-BjuqZ7Jn.js +6 -0
- langflow/frontend/assets/award-DUrNffCa.js +6 -0
- langflow/frontend/assets/axe-D7V3R7d5.js +6 -0
- langflow/frontend/assets/axis-3d-eTTKwZlH.js +6 -0
- langflow/frontend/assets/baby-DRM3Lrnw.js +6 -0
- langflow/frontend/assets/backpack-KJicz1GR.js +6 -0
- langflow/frontend/assets/badge-B04CV2If.js +6 -0
- langflow/frontend/assets/badge-alert-CWDtQON7.js +6 -0
- langflow/frontend/assets/badge-cent-CFJhhI4B.js +6 -0
- langflow/frontend/assets/badge-check-BHUu7qv9.js +6 -0
- langflow/frontend/assets/badge-dollar-sign-lBC5KbUG.js +6 -0
- langflow/frontend/assets/badge-euro-5tgZxT7W.js +6 -0
- langflow/frontend/assets/badge-help-B_EoyAYN.js +6 -0
- langflow/frontend/assets/badge-indian-rupee-DE1D2o4o.js +6 -0
- langflow/frontend/assets/badge-info-CWIT59a4.js +6 -0
- langflow/frontend/assets/badge-japanese-yen-Scx7KEaI.js +6 -0
- langflow/frontend/assets/badge-minus-BcDPaheO.js +6 -0
- langflow/frontend/assets/badge-percent-CGGUFyO7.js +6 -0
- langflow/frontend/assets/badge-plus-CqxweG81.js +6 -0
- langflow/frontend/assets/badge-pound-sterling-5dExV2Ao.js +6 -0
- langflow/frontend/assets/badge-russian-ruble-BvUOH5Hp.js +6 -0
- langflow/frontend/assets/badge-swiss-franc-CMFn1IiB.js +6 -0
- langflow/frontend/assets/badge-x-mcPiqmVQ.js +6 -0
- langflow/frontend/assets/baggage-claim-BsVAdNXY.js +6 -0
- langflow/frontend/assets/ban-Dt_l00UL.js +6 -0
- langflow/frontend/assets/banana-DHpAUj_8.js +6 -0
- langflow/frontend/assets/bandage-CelKh6dq.js +6 -0
- langflow/frontend/assets/banknote-D0jPJCpJ.js +6 -0
- langflow/frontend/assets/banknote-arrow-down-Cs48fyIr.js +6 -0
- langflow/frontend/assets/banknote-arrow-up-BzDx0B1W.js +6 -0
- langflow/frontend/assets/banknote-x-DjVFGOIV.js +6 -0
- langflow/frontend/assets/barcode-D6iou9vT.js +6 -0
- langflow/frontend/assets/baseline-CKaJz7Oi.js +6 -0
- langflow/frontend/assets/bath--y_1FlCk.js +6 -0
- langflow/frontend/assets/battery-CneZ6QoF.js +6 -0
- langflow/frontend/assets/battery-charging-DNJEqXsD.js +6 -0
- langflow/frontend/assets/battery-full-DQSLo0Jt.js +6 -0
- langflow/frontend/assets/battery-low-PmiZgiTy.js +6 -0
- langflow/frontend/assets/battery-medium-yyTqXWk5.js +6 -0
- langflow/frontend/assets/battery-plus-_0AGfo5z.js +6 -0
- langflow/frontend/assets/battery-warning-CUjuiWjD.js +6 -0
- langflow/frontend/assets/beaker-D61PIkBZ.js +6 -0
- langflow/frontend/assets/bean-BK7oI0zG.js +6 -0
- langflow/frontend/assets/bean-off-CvR7yfVA.js +6 -0
- langflow/frontend/assets/bed-BVVXzPew.js +6 -0
- langflow/frontend/assets/bed-double-BZFjLTrO.js +6 -0
- langflow/frontend/assets/bed-single-C2V5A3B3.js +6 -0
- langflow/frontend/assets/beef-BgZjy9fG.js +6 -0
- langflow/frontend/assets/beer-IVi5Xzv3.js +6 -0
- langflow/frontend/assets/beer-off-DSnsKDMt.js +6 -0
- langflow/frontend/assets/bell-dot-BrHcQMbP.js +6 -0
- langflow/frontend/assets/bell-electric-DJqDFOL3.js +6 -0
- langflow/frontend/assets/bell-lEreP7tR.js +6 -0
- langflow/frontend/assets/bell-minus-QYIBJi4f.js +6 -0
- langflow/frontend/assets/bell-off-BKed9yfd.js +6 -0
- langflow/frontend/assets/bell-plus-0dv9TTmG.js +6 -0
- langflow/frontend/assets/bell-ring-DNObKcuJ.js +6 -0
- langflow/frontend/assets/between-horizontal-end-Zv7kNZb0.js +6 -0
- langflow/frontend/assets/between-horizontal-start-DvlaWccq.js +6 -0
- langflow/frontend/assets/between-vertical-end-3CPT19eY.js +6 -0
- langflow/frontend/assets/between-vertical-start-BX3SDYB7.js +6 -0
- langflow/frontend/assets/biceps-flexed-BVJynZxJ.js +6 -0
- langflow/frontend/assets/bike-CUtRPWU_.js +6 -0
- langflow/frontend/assets/binary-BquvG9dk.js +6 -0
- langflow/frontend/assets/binoculars-BlocDK2N.js +6 -0
- langflow/frontend/assets/biohazard-DWytM12v.js +6 -0
- langflow/frontend/assets/bird-DNWq1I0H.js +6 -0
- langflow/frontend/assets/bitcoin-CVDwYKa6.js +6 -0
- langflow/frontend/assets/blend-BbKg0NUx.js +6 -0
- langflow/frontend/assets/blinds-Ckwq8Uva.js +6 -0
- langflow/frontend/assets/blocks-CYvsIeks.js +6 -0
- langflow/frontend/assets/bluetooth-BSoEcnra.js +6 -0
- langflow/frontend/assets/bluetooth-connected-CmjVk1AC.js +6 -0
- langflow/frontend/assets/bluetooth-off-CwtdjnVK.js +6 -0
- langflow/frontend/assets/bluetooth-searching-B4suRAtZ.js +6 -0
- langflow/frontend/assets/bold-3b-m9bcR.js +6 -0
- langflow/frontend/assets/bolt-DseVhxF9.js +6 -0
- langflow/frontend/assets/bomb-DCNXfxZT.js +6 -0
- langflow/frontend/assets/bone-CV1F6zJn.js +6 -0
- langflow/frontend/assets/book-Dbpa-Uja.js +6 -0
- langflow/frontend/assets/book-a-D3rJnD0B.js +6 -0
- langflow/frontend/assets/book-audio-iLfnN4kU.js +6 -0
- langflow/frontend/assets/book-check-COJQ2YZW.js +6 -0
- langflow/frontend/assets/book-copy-cMcoTR1n.js +6 -0
- langflow/frontend/assets/book-dashed-MbJNs-GH.js +6 -0
- langflow/frontend/assets/book-down-ByJv0nL3.js +6 -0
- langflow/frontend/assets/book-headphones-BxzTRFn2.js +6 -0
- langflow/frontend/assets/book-heart-BVqK7mch.js +6 -0
- langflow/frontend/assets/book-image-CiaDapH3.js +6 -0
- langflow/frontend/assets/book-key-p6_sj_yG.js +6 -0
- langflow/frontend/assets/book-lock-BjPqHEtm.js +6 -0
- langflow/frontend/assets/book-marked-CAQjzueS.js +6 -0
- langflow/frontend/assets/book-minus-DOH9QvBv.js +6 -0
- langflow/frontend/assets/book-open-CGNIbHU5.js +6 -0
- langflow/frontend/assets/book-open-check-DjqtVpmN.js +6 -0
- langflow/frontend/assets/book-open-text-DDVbYVrG.js +6 -0
- langflow/frontend/assets/book-plus-Da7NQxFB.js +6 -0
- langflow/frontend/assets/book-text--zDqhxv1.js +6 -0
- langflow/frontend/assets/book-type-BJdg9Dv3.js +6 -0
- langflow/frontend/assets/book-up-2-B-VfBNjB.js +6 -0
- langflow/frontend/assets/book-up-D8OW_6CJ.js +6 -0
- langflow/frontend/assets/book-user-DLPYmG82.js +6 -0
- langflow/frontend/assets/book-x-CCFp35D2.js +6 -0
- langflow/frontend/assets/bookmark-GayDp0Km.js +6 -0
- langflow/frontend/assets/bookmark-check-qfKxf_Z5.js +6 -0
- langflow/frontend/assets/bookmark-minus-DWxJ7Uhc.js +6 -0
- langflow/frontend/assets/bookmark-plus-Dn2wr_Vg.js +6 -0
- langflow/frontend/assets/bookmark-x-DNgOunxy.js +6 -0
- langflow/frontend/assets/boom-box-CI_jDZQZ.js +6 -0
- langflow/frontend/assets/bot-eSVt6O4U.js +6 -0
- langflow/frontend/assets/bot-message-square-CHa9u5rX.js +6 -0
- langflow/frontend/assets/bot-off-ClWedJIK.js +6 -0
- langflow/frontend/assets/bow-arrow-SyP9Xf_a.js +6 -0
- langflow/frontend/assets/box-Bcpi3mTE.js +6 -0
- langflow/frontend/assets/boxes-B-NM4ZKS.js +6 -0
- langflow/frontend/assets/braces-BZEXL4yO.js +6 -0
- langflow/frontend/assets/brackets-BeRhNvjJ.js +6 -0
- langflow/frontend/assets/brain-ToU322mx.js +6 -0
- langflow/frontend/assets/brain-circuit-BzQpON5C.js +6 -0
- langflow/frontend/assets/brain-cog-DWnVOQlI.js +6 -0
- langflow/frontend/assets/brick-wall-DBt5Pfjd.js +6 -0
- langflow/frontend/assets/brick-wall-fire-CEUCF0DO.js +6 -0
- langflow/frontend/assets/briefcase-ArmzhwWE.js +6 -0
- langflow/frontend/assets/briefcase-business-D8gzg7vI.js +6 -0
- langflow/frontend/assets/briefcase-conveyor-belt-DgFnRtz0.js +6 -0
- langflow/frontend/assets/briefcase-medical--LAkZWpv.js +6 -0
- langflow/frontend/assets/bring-to-front-BhDeBA39.js +6 -0
- langflow/frontend/assets/brush-wYLsr8Z5.js +6 -0
- langflow/frontend/assets/bubbles-BhhYsOC8.js +6 -0
- langflow/frontend/assets/bug-off-DGukWOJC.js +6 -0
- langflow/frontend/assets/bug-play-vpJzzMxP.js +6 -0
- langflow/frontend/assets/bug-sEPkFdM5.js +6 -0
- langflow/frontend/assets/building-2-CxtFQSVr.js +6 -0
- langflow/frontend/assets/building-tSbGypyK.js +6 -0
- langflow/frontend/assets/bus-CBGFh_Wa.js +6 -0
- langflow/frontend/assets/bus-front-Cc7wLuGB.js +6 -0
- langflow/frontend/assets/cable-GWMeNbG0.js +6 -0
- langflow/frontend/assets/cable-car-D8Fr-RTi.js +6 -0
- langflow/frontend/assets/cake-DXEAzGY6.js +6 -0
- langflow/frontend/assets/cake-slice-Dpd_J2iJ.js +6 -0
- langflow/frontend/assets/calculator-BqhLwtkt.js +6 -0
- langflow/frontend/assets/calendar-1-qyzx_ULy.js +6 -0
- langflow/frontend/assets/calendar-CJ9Sn6MB.js +6 -0
- langflow/frontend/assets/calendar-arrow-down-DavEH0OJ.js +6 -0
- langflow/frontend/assets/calendar-arrow-up-CBA0JH15.js +6 -0
- langflow/frontend/assets/calendar-check-2-Cn_UrmzU.js +6 -0
- langflow/frontend/assets/calendar-check-RmS0twh1.js +6 -0
- langflow/frontend/assets/calendar-clock-D6A-187P.js +6 -0
- langflow/frontend/assets/calendar-cog-DI_B_as-.js +6 -0
- langflow/frontend/assets/calendar-days-4u7HGS4T.js +6 -0
- langflow/frontend/assets/calendar-fold-DSdeBROE.js +6 -0
- langflow/frontend/assets/calendar-heart-CVkqtUJC.js +6 -0
- langflow/frontend/assets/calendar-minus-2-BHy6uySS.js +6 -0
- langflow/frontend/assets/calendar-minus-B6T7Ea3Y.js +6 -0
- langflow/frontend/assets/calendar-off-HCiaBW0i.js +6 -0
- langflow/frontend/assets/calendar-plus-2-DNhMnVIi.js +6 -0
- langflow/frontend/assets/calendar-plus-ConfP0hr.js +6 -0
- langflow/frontend/assets/calendar-range-CIBsJZoE.js +6 -0
- langflow/frontend/assets/calendar-search-C0HrZV_1.js +6 -0
- langflow/frontend/assets/calendar-sync-hdj75m4L.js +6 -0
- langflow/frontend/assets/calendar-x-2-D1UOpi0W.js +6 -0
- langflow/frontend/assets/calendar-x-CIpboE2N.js +6 -0
- langflow/frontend/assets/camera-BPS1DieH.js +6 -0
- langflow/frontend/assets/camera-off-DIBjn2H3.js +6 -0
- langflow/frontend/assets/candy-DEpluBs6.js +6 -0
- langflow/frontend/assets/candy-cane-CkjpFwxh.js +6 -0
- langflow/frontend/assets/candy-off-B6hum46I.js +6 -0
- langflow/frontend/assets/cannabis-CtVONHEV.js +6 -0
- langflow/frontend/assets/captions-DANKSwfC.js +6 -0
- langflow/frontend/assets/captions-off-DeoLvfo9.js +6 -0
- langflow/frontend/assets/car-9HLei4Hv.js +6 -0
- langflow/frontend/assets/car-front-J6Noie-j.js +6 -0
- langflow/frontend/assets/car-taxi-front-RA2hKhiR.js +6 -0
- langflow/frontend/assets/caravan-CkjBjdtg.js +6 -0
- langflow/frontend/assets/carrot-ulrd_6LN.js +6 -0
- langflow/frontend/assets/case-lower-Br0J7a4d.js +6 -0
- langflow/frontend/assets/case-sensitive-C8shX4E7.js +6 -0
- langflow/frontend/assets/case-upper-CafHl48-.js +6 -0
- langflow/frontend/assets/cassette-tape-BK8iVOWF.js +6 -0
- langflow/frontend/assets/cast-Bh325kjl.js +6 -0
- langflow/frontend/assets/castle-CmoR-s34.js +6 -0
- langflow/frontend/assets/cat-DPpAOdfV.js +6 -0
- langflow/frontend/assets/cctv-BL_zGX-s.js +6 -0
- langflow/frontend/assets/chart-area-C995Oxw6.js +6 -0
- langflow/frontend/assets/chart-bar-DQMfOU3_.js +6 -0
- langflow/frontend/assets/chart-bar-big-CFl6XgUV.js +6 -0
- langflow/frontend/assets/chart-bar-decreasing-NxIyFK_2.js +6 -0
- langflow/frontend/assets/chart-bar-increasing-RZUxx8mo.js +6 -0
- langflow/frontend/assets/chart-bar-stacked-iETEe4fL.js +6 -0
- langflow/frontend/assets/chart-candlestick-5l7ThDln.js +6 -0
- langflow/frontend/assets/chart-column--iDrRodw.js +6 -0
- langflow/frontend/assets/chart-column-big-CU_-RivP.js +6 -0
- langflow/frontend/assets/chart-column-decreasing-DPi_v84E.js +6 -0
- langflow/frontend/assets/chart-column-increasing-BP5gUkNW.js +6 -0
- langflow/frontend/assets/chart-column-stacked-DKitm9Ti.js +6 -0
- langflow/frontend/assets/chart-gantt-Cley4rkj.js +6 -0
- langflow/frontend/assets/chart-line-tZWw8u2J.js +6 -0
- langflow/frontend/assets/chart-network-C2UDaMfO.js +6 -0
- langflow/frontend/assets/chart-no-axes-column-C6TFmrQ5.js +6 -0
- langflow/frontend/assets/chart-no-axes-column-decreasing-VKhllkqJ.js +6 -0
- langflow/frontend/assets/chart-no-axes-column-increasing-B5v_BWEJ.js +6 -0
- langflow/frontend/assets/chart-no-axes-combined-j-mhlpWV.js +6 -0
- langflow/frontend/assets/chart-no-axes-gantt-CEB5mb_u.js +6 -0
- langflow/frontend/assets/chart-pie-n6Q0JPNW.js +6 -0
- langflow/frontend/assets/chart-scatter-DyPYUY56.js +6 -0
- langflow/frontend/assets/chart-spline-XKh58KNN.js +6 -0
- langflow/frontend/assets/check-check-BNN6_0Rj.js +6 -0
- langflow/frontend/assets/chef-hat-D4Co1ZWw.js +6 -0
- langflow/frontend/assets/cherry-Cjx7gkiP.js +6 -0
- langflow/frontend/assets/chevron-first-B3ylKLbi.js +6 -0
- langflow/frontend/assets/chevron-last-CiAN9zi-.js +6 -0
- langflow/frontend/assets/chevron-left-RheViS6J.js +6 -0
- langflow/frontend/assets/chevron-right-CXgGJffD.js +6 -0
- langflow/frontend/assets/chevrons-down-CdpR5KE1.js +6 -0
- langflow/frontend/assets/chevrons-down-up-CXJk1S3G.js +6 -0
- langflow/frontend/assets/chevrons-left-BUKDVdX5.js +6 -0
- langflow/frontend/assets/chevrons-left-right-DUDu6_fC.js +6 -0
- langflow/frontend/assets/chevrons-left-right-ellipsis-BRzu4LVI.js +6 -0
- langflow/frontend/assets/chevrons-right-CfwBOT7g.js +6 -0
- langflow/frontend/assets/chevrons-right-left-BKSopM-I.js +6 -0
- langflow/frontend/assets/chevrons-up-qt_DNVzo.js +6 -0
- langflow/frontend/assets/chrome-L2I8b0lG.js +6 -0
- langflow/frontend/assets/church-CYjkjBDT.js +6 -0
- langflow/frontend/assets/cigarette-Br5Jo_9m.js +6 -0
- langflow/frontend/assets/cigarette-off-B_T_RXW9.js +6 -0
- langflow/frontend/assets/circle-alert-DBHQcwdU.js +6 -0
- langflow/frontend/assets/circle-arrow-down-Clp-eZ_M.js +6 -0
- langflow/frontend/assets/circle-arrow-left-B4pKnhTM.js +6 -0
- langflow/frontend/assets/circle-arrow-out-down-left-DZPNH7R0.js +6 -0
- langflow/frontend/assets/circle-arrow-out-down-right-Bgpg74k1.js +6 -0
- langflow/frontend/assets/circle-arrow-out-up-left-BCr--TqD.js +6 -0
- langflow/frontend/assets/circle-arrow-out-up-right-D_e_XSe_.js +6 -0
- langflow/frontend/assets/circle-arrow-right-gDS4F2j0.js +6 -0
- langflow/frontend/assets/circle-arrow-up-D2dsOQ1V.js +6 -0
- langflow/frontend/assets/circle-check-D4R2ePtI.js +6 -0
- langflow/frontend/assets/circle-check-big-DPW3GukQ.js +6 -0
- langflow/frontend/assets/circle-chevron-down-BAjqeojN.js +6 -0
- langflow/frontend/assets/circle-chevron-left-BKKBAjLY.js +6 -0
- langflow/frontend/assets/circle-chevron-right-zx9M3hgY.js +6 -0
- langflow/frontend/assets/circle-chevron-up-DgW85RH9.js +6 -0
- langflow/frontend/assets/circle-dashed-BPi4XXtX.js +6 -0
- langflow/frontend/assets/circle-divide-CUTOrvoi.js +6 -0
- langflow/frontend/assets/circle-dollar-sign-Dx0Ok9AW.js +6 -0
- langflow/frontend/assets/circle-dot-BRifmIFm.js +6 -0
- langflow/frontend/assets/circle-dot-dashed-tFv9ialF.js +6 -0
- langflow/frontend/assets/circle-ellipsis-CXr9Q1_w.js +6 -0
- langflow/frontend/assets/circle-equal-CqXnZaYI.js +6 -0
- langflow/frontend/assets/circle-fading-arrow-up-DJ4q-J-u.js +6 -0
- langflow/frontend/assets/circle-fading-plus-CXb1gwJP.js +6 -0
- langflow/frontend/assets/circle-gauge-BykIpOw7.js +6 -0
- langflow/frontend/assets/circle-help-C5j5avQw.js +6 -0
- langflow/frontend/assets/circle-minus-Cvti7R36.js +6 -0
- langflow/frontend/assets/circle-off-D72mS0CU.js +6 -0
- langflow/frontend/assets/circle-parking-C5QTGouB.js +6 -0
- langflow/frontend/assets/circle-parking-off-DDnlUAva.js +6 -0
- langflow/frontend/assets/circle-pause-Cxy5TZFL.js +6 -0
- langflow/frontend/assets/circle-percent-Bl4mJ5-3.js +6 -0
- langflow/frontend/assets/circle-play-D_kHv4yw.js +6 -0
- langflow/frontend/assets/circle-plus-DfDc9bpc.js +6 -0
- langflow/frontend/assets/circle-power-CZXirOP-.js +6 -0
- langflow/frontend/assets/circle-slash-2-B5KbC7c4.js +6 -0
- langflow/frontend/assets/circle-slash-BkbbQ-s5.js +6 -0
- langflow/frontend/assets/circle-small-BIQk-8XN.js +6 -0
- langflow/frontend/assets/circle-stop-rs1ivDwh.js +6 -0
- langflow/frontend/assets/circle-user-BkDNFXEn.js +6 -0
- langflow/frontend/assets/circle-user-round-BmpCPcb2.js +6 -0
- langflow/frontend/assets/circuit-board-BSnA2Mxj.js +6 -0
- langflow/frontend/assets/citrus-BvBmHu1u.js +6 -0
- langflow/frontend/assets/clapperboard-CBuB68Fv.js +6 -0
- langflow/frontend/assets/clipboard-CN7kKJ-W.js +6 -0
- langflow/frontend/assets/clipboard-check-CKUFxVfD.js +6 -0
- langflow/frontend/assets/clipboard-copy-Doeuc8kJ.js +6 -0
- langflow/frontend/assets/clipboard-list-BhEJa9ly.js +6 -0
- langflow/frontend/assets/clipboard-minus-CLvEQm-W.js +6 -0
- langflow/frontend/assets/clipboard-paste-CyjU5x_c.js +6 -0
- langflow/frontend/assets/clipboard-pen-CoQd_4ri.js +6 -0
- langflow/frontend/assets/clipboard-pen-line-CwtDCC8c.js +6 -0
- langflow/frontend/assets/clipboard-plus-lvo3b6Oa.js +6 -0
- langflow/frontend/assets/clipboard-type-DlYvzPAQ.js +6 -0
- langflow/frontend/assets/clipboard-x-k0IkREXF.js +6 -0
- langflow/frontend/assets/clock-1-CinDfcOX.js +6 -0
- langflow/frontend/assets/clock-10-DVs3JYkZ.js +6 -0
- langflow/frontend/assets/clock-11-BbZVIuWr.js +6 -0
- langflow/frontend/assets/clock-12-D-e6SqkT.js +6 -0
- langflow/frontend/assets/clock-2-CeL_3C3H.js +6 -0
- langflow/frontend/assets/clock-3-CqTpHzLg.js +6 -0
- langflow/frontend/assets/clock-4-VADvb-9S.js +6 -0
- langflow/frontend/assets/clock-5-Dg17OyXW.js +6 -0
- langflow/frontend/assets/clock-6-DWERqLSb.js +6 -0
- langflow/frontend/assets/clock-7-xUF63Kv8.js +6 -0
- langflow/frontend/assets/clock-8-C7FsZSds.js +6 -0
- langflow/frontend/assets/clock-9-BwgUJ5D6.js +6 -0
- langflow/frontend/assets/clock-Ds7cVIMY.js +6 -0
- langflow/frontend/assets/clock-alert-DpjLLgJ4.js +6 -0
- langflow/frontend/assets/clock-arrow-down-JgLY4dKZ.js +6 -0
- langflow/frontend/assets/clock-arrow-up-Bdk3oQko.js +6 -0
- langflow/frontend/assets/clock-fading-CAW_lm7C.js +6 -0
- langflow/frontend/assets/cloud-COLHF0R0.js +6 -0
- langflow/frontend/assets/cloud-alert-BCxJcePw.js +6 -0
- langflow/frontend/assets/cloud-cog-BOmJ2kHd.js +6 -0
- langflow/frontend/assets/cloud-download-fJpElRQy.js +6 -0
- langflow/frontend/assets/cloud-drizzle-BU3N-FNI.js +6 -0
- langflow/frontend/assets/cloud-fog-IrRpfTSL.js +6 -0
- langflow/frontend/assets/cloud-hail-D0-eeFxy.js +6 -0
- langflow/frontend/assets/cloud-lightning-DEbEITa7.js +6 -0
- langflow/frontend/assets/cloud-moon-Det1nP8s.js +6 -0
- langflow/frontend/assets/cloud-moon-rain-BRp6Gktk.js +6 -0
- langflow/frontend/assets/cloud-off-Dwxm5Chr.js +6 -0
- langflow/frontend/assets/cloud-rain-DTmNA2S-.js +6 -0
- langflow/frontend/assets/cloud-rain-wind-C9nt0mNU.js +6 -0
- langflow/frontend/assets/cloud-snow-C2fJZAfK.js +6 -0
- langflow/frontend/assets/cloud-sun-DMcS2wwe.js +6 -0
- langflow/frontend/assets/cloud-sun-rain-CuxdqZXf.js +6 -0
- langflow/frontend/assets/cloud-upload-C8zRGatr.js +6 -0
- langflow/frontend/assets/cloudy-zj9N0UAm.js +6 -0
- langflow/frontend/assets/clover-vNTa8bPv.js +6 -0
- langflow/frontend/assets/club-B1DebGu_.js +6 -0
- langflow/frontend/assets/code-xml-B77K_T-U.js +6 -0
- langflow/frontend/assets/codepen-pYuswNsI.js +6 -0
- langflow/frontend/assets/codesandbox-he0WP9c8.js +6 -0
- langflow/frontend/assets/coffee-_8X9Hmmc.js +6 -0
- langflow/frontend/assets/cog-GmKO9BDX.js +6 -0
- langflow/frontend/assets/coins-CmGo4o5A.js +6 -0
- langflow/frontend/assets/columns-2-CpwX7P3Q.js +6 -0
- langflow/frontend/assets/columns-3-7w0vKLGq.js +6 -0
- langflow/frontend/assets/columns-3-cog-C7esZg6z.js +6 -0
- langflow/frontend/assets/columns-4-TcGhh_CN.js +6 -0
- langflow/frontend/assets/combine-DLeIcxn6.js +6 -0
- langflow/frontend/assets/command-IqVufxp8.js +6 -0
- langflow/frontend/assets/compass-tqd8C9Qw.js +6 -0
- langflow/frontend/assets/component-BZt8Y-N8.js +6 -0
- langflow/frontend/assets/computer-CU_wH9Xc.js +6 -0
- langflow/frontend/assets/concierge-bell-CnptsCh4.js +6 -0
- langflow/frontend/assets/cone-C5FM4OlP.js +6 -0
- langflow/frontend/assets/construction-BH3g1alp.js +6 -0
- langflow/frontend/assets/contact-B1nhHtZ2.js +6 -0
- langflow/frontend/assets/contact-round-DXu8A8Zt.js +6 -0
- langflow/frontend/assets/container-CWz-b31Z.js +6 -0
- langflow/frontend/assets/contrast-BghDfdG9.js +6 -0
- langflow/frontend/assets/cookie-BJ3x64mD.js +6 -0
- langflow/frontend/assets/cooking-pot-CnsQVH0H.js +6 -0
- langflow/frontend/assets/copy-Bnv-E_ya.js +6 -0
- langflow/frontend/assets/copy-check-D_OuVBTf.js +6 -0
- langflow/frontend/assets/copy-minus-DiKtnzCV.js +6 -0
- langflow/frontend/assets/copy-plus-B7ma9OPS.js +6 -0
- langflow/frontend/assets/copy-slash-Bh59Ixl3.js +6 -0
- langflow/frontend/assets/copy-x-D0TowW2w.js +6 -0
- langflow/frontend/assets/copyleft-DwKthBuT.js +6 -0
- langflow/frontend/assets/copyright-Dn8XexoW.js +6 -0
- langflow/frontend/assets/corner-down-left-CzISeIKO.js +6 -0
- langflow/frontend/assets/corner-down-right-CVg0G7Zq.js +6 -0
- langflow/frontend/assets/corner-left-down-DCwWVggN.js +6 -0
- langflow/frontend/assets/corner-left-up-bGS3BgJA.js +6 -0
- langflow/frontend/assets/corner-right-down-Dqb4vBfA.js +6 -0
- langflow/frontend/assets/corner-right-up-DQcxPBkH.js +6 -0
- langflow/frontend/assets/corner-up-left-B5pLhzlm.js +6 -0
- langflow/frontend/assets/corner-up-right-CLN-Zb3p.js +6 -0
- langflow/frontend/assets/cpu-DMdDhhag.js +6 -0
- langflow/frontend/assets/creative-commons-DxSIDsi8.js +6 -0
- langflow/frontend/assets/credit-card-C0RboWFF.js +6 -0
- langflow/frontend/assets/croissant-CYWgwKDX.js +6 -0
- langflow/frontend/assets/crop-B_CSDNJK.js +6 -0
- langflow/frontend/assets/cross-z5YJ1HcN.js +6 -0
- langflow/frontend/assets/crosshair-FfzvO5yr.js +6 -0
- langflow/frontend/assets/crown-J5rlh_K5.js +6 -0
- langflow/frontend/assets/cuboid-DRv1dr3_.js +6 -0
- langflow/frontend/assets/cup-soda-m1DBv4nF.js +6 -0
- langflow/frontend/assets/currency-UeO0ErYb.js +6 -0
- langflow/frontend/assets/cylinder-olSWvA15.js +6 -0
- langflow/frontend/assets/dam-D5nWNN0m.js +6 -0
- langflow/frontend/assets/database-DJaC9ErT.js +6 -0
- langflow/frontend/assets/database-backup-BP7Ma08L.js +6 -0
- langflow/frontend/assets/database-zap-DtMyqsqb.js +6 -0
- langflow/frontend/assets/decimals-arrow-left-RclWcXTj.js +6 -0
- langflow/frontend/assets/decimals-arrow-right-DFhPveyN.js +6 -0
- langflow/frontend/assets/delete-BOomWok4.js +6 -0
- langflow/frontend/assets/dessert-CQbU57JM.js +6 -0
- langflow/frontend/assets/diameter-Cbta8bFs.js +6 -0
- langflow/frontend/assets/diamond-fWtfwEYx.js +6 -0
- langflow/frontend/assets/diamond-minus-b8-Fh7yx.js +6 -0
- langflow/frontend/assets/diamond-percent-IxOyPwfT.js +6 -0
- langflow/frontend/assets/diamond-plus-8WEyzjaT.js +6 -0
- langflow/frontend/assets/dice-1-Cf8dp9Q1.js +6 -0
- langflow/frontend/assets/dice-2-BbEjysmM.js +6 -0
- langflow/frontend/assets/dice-3-6NjBaVtN.js +6 -0
- langflow/frontend/assets/dice-4-CKq5LPne.js +6 -0
- langflow/frontend/assets/dice-5-DW74Prob.js +6 -0
- langflow/frontend/assets/dice-6-lumlllS_.js +6 -0
- langflow/frontend/assets/dices-B4C1Ad5d.js +6 -0
- langflow/frontend/assets/diff-BenjDhyP.js +6 -0
- langflow/frontend/assets/disc-2-B0peU-h3.js +6 -0
- langflow/frontend/assets/disc-3-DH7ApUrP.js +6 -0
- langflow/frontend/assets/disc-DjbzbUmM.js +6 -0
- langflow/frontend/assets/disc-album-Dh6wVX48.js +6 -0
- langflow/frontend/assets/divide-Di88Eupj.js +6 -0
- langflow/frontend/assets/dna-DwpRkjtd.js +6 -0
- langflow/frontend/assets/dna-off-CM-Y2kHH.js +6 -0
- langflow/frontend/assets/dock-DA7I6Imn.js +6 -0
- langflow/frontend/assets/dog-BozbvxDT.js +6 -0
- langflow/frontend/assets/dollar-sign-CJD_z_LB.js +6 -0
- langflow/frontend/assets/donut-D-buVWQX.js +6 -0
- langflow/frontend/assets/door-closed-D2mUeVod.js +6 -0
- langflow/frontend/assets/door-open-CiTXcXeR.js +6 -0
- langflow/frontend/assets/dot-CL0wcBdx.js +6 -0
- langflow/frontend/assets/download-DJAxHLCY.js +6 -0
- langflow/frontend/assets/drafting-compass-Cc8e7dbj.js +6 -0
- langflow/frontend/assets/drama-CZ_jVDex.js +6 -0
- langflow/frontend/assets/dribbble-D_nmj25K.js +6 -0
- langflow/frontend/assets/drill-Dj174wvi.js +6 -0
- langflow/frontend/assets/droplet-j6b8rfzj.js +6 -0
- langflow/frontend/assets/droplet-off-LX6_ToL8.js +6 -0
- langflow/frontend/assets/droplets-C57Y8lOL.js +6 -0
- langflow/frontend/assets/drum-QNuN_J_Y.js +6 -0
- langflow/frontend/assets/drumstick-nK04791Q.js +6 -0
- langflow/frontend/assets/dumbbell-DvVT1xEb.js +6 -0
- langflow/frontend/assets/ear-CMBKcKhb.js +6 -0
- langflow/frontend/assets/ear-off-C4UjfmDG.js +6 -0
- langflow/frontend/assets/earth-DCjK9NkZ.js +6 -0
- langflow/frontend/assets/earth-lock-Cv1PQMus.js +6 -0
- langflow/frontend/assets/eclipse-DZuJPv8F.js +6 -0
- langflow/frontend/assets/egg-CsuoI-ED.js +6 -0
- langflow/frontend/assets/egg-fried--spBHwvj.js +6 -0
- langflow/frontend/assets/egg-off-D5djUixs.js +6 -0
- langflow/frontend/assets/ellipsis-D787OK1E.js +6 -0
- langflow/frontend/assets/ellipsis-vertical-bJtCGC-X.js +6 -0
- langflow/frontend/assets/equal-CjC85R-P.js +6 -0
- langflow/frontend/assets/equal-approximately-DRGnjO4E.js +6 -0
- langflow/frontend/assets/equal-not-DrZUOA_Y.js +6 -0
- langflow/frontend/assets/eraser-CHxgEsj6.js +6 -0
- langflow/frontend/assets/ethernet-port-CHU3CU9z.js +6 -0
- langflow/frontend/assets/euro-BnKyqv4x.js +6 -0
- langflow/frontend/assets/expand-RPUfPFXL.js +6 -0
- langflow/frontend/assets/eye-DQEZk31D.js +6 -0
- langflow/frontend/assets/eye-closed-DvSUrwe2.js +6 -0
- langflow/frontend/assets/eye-off-Bjxpl-YA.js +6 -0
- langflow/frontend/assets/facebook-C0qUaD1y.js +6 -0
- langflow/frontend/assets/factory-WIkBqxDe.js +6 -0
- langflow/frontend/assets/fan-C8Hg5MS1.js +6 -0
- langflow/frontend/assets/fast-forward-CwjCF7r4.js +6 -0
- langflow/frontend/assets/feather-BhHKpyAP.js +6 -0
- langflow/frontend/assets/fence-C8Eryww9.js +6 -0
- langflow/frontend/assets/ferris-wheel-C9J8fDvl.js +6 -0
- langflow/frontend/assets/figma-CPGEhgNV.js +6 -0
- langflow/frontend/assets/file-B1TMCQq7.js +6 -0
- langflow/frontend/assets/file-archive-Gkz2d9vl.js +6 -0
- langflow/frontend/assets/file-audio-2-CDpUBOu3.js +6 -0
- langflow/frontend/assets/file-audio-DDf2SM9o.js +6 -0
- langflow/frontend/assets/file-axis-3d-CUWQIi2f.js +6 -0
- langflow/frontend/assets/file-badge-2-DP9f4i34.js +6 -0
- langflow/frontend/assets/file-badge-hddZRjOV.js +6 -0
- langflow/frontend/assets/file-box-CYR3w5Ed.js +6 -0
- langflow/frontend/assets/file-chart-column-BQQXJFO9.js +6 -0
- langflow/frontend/assets/file-chart-column-increasing-CmluxvJp.js +6 -0
- langflow/frontend/assets/file-chart-line-CaAvlWuz.js +6 -0
- langflow/frontend/assets/file-chart-pie-Bjf2AMwU.js +6 -0
- langflow/frontend/assets/file-check-2-v-WSLQsU.js +6 -0
- langflow/frontend/assets/file-check-BhUK7hHz.js +6 -0
- langflow/frontend/assets/file-clock-BDJVblWy.js +6 -0
- langflow/frontend/assets/file-code-2-C3sqhDwo.js +6 -0
- langflow/frontend/assets/file-code-hBjOuLH3.js +6 -0
- langflow/frontend/assets/file-cog-C3N74DiE.js +6 -0
- langflow/frontend/assets/file-diff-DUDa5NaP.js +6 -0
- langflow/frontend/assets/file-digit-6CR13LCb.js +6 -0
- langflow/frontend/assets/file-down-DhuCA4zb.js +6 -0
- langflow/frontend/assets/file-heart-CAJkZyNd.js +6 -0
- langflow/frontend/assets/file-image-BmxdfHOS.js +6 -0
- langflow/frontend/assets/file-input-CXEhlr3W.js +6 -0
- langflow/frontend/assets/file-json-2-BA7lSgdU.js +6 -0
- langflow/frontend/assets/file-json-z0ZtPu_t.js +6 -0
- langflow/frontend/assets/file-key-2-CDnvlou1.js +6 -0
- langflow/frontend/assets/file-key-B5IVJp3F.js +6 -0
- langflow/frontend/assets/file-lock-2-xQdX_umY.js +6 -0
- langflow/frontend/assets/file-lock-CmnMJWi4.js +6 -0
- langflow/frontend/assets/file-minus-2-B2AFAt6o.js +6 -0
- langflow/frontend/assets/file-minus-a2OEyZVz.js +6 -0
- langflow/frontend/assets/file-music-sqlgRIZe.js +6 -0
- langflow/frontend/assets/file-output-CvOxWf72.js +6 -0
- langflow/frontend/assets/file-pen-Rj8XZuJg.js +6 -0
- langflow/frontend/assets/file-pen-line-DhwIe0uX.js +6 -0
- langflow/frontend/assets/file-plus-2-BSuWP0p0.js +6 -0
- langflow/frontend/assets/file-plus-DSswv4zF.js +6 -0
- langflow/frontend/assets/file-question-RmjggO-g.js +6 -0
- langflow/frontend/assets/file-scan-DRnbhlsX.js +6 -0
- langflow/frontend/assets/file-search-2-DHcGFRnU.js +6 -0
- langflow/frontend/assets/file-search-_iYU1mOT.js +6 -0
- langflow/frontend/assets/file-sliders-DBg9UN8w.js +6 -0
- langflow/frontend/assets/file-spreadsheet-CEcQq8ed.js +6 -0
- langflow/frontend/assets/file-stack-hZmSIdel.js +6 -0
- langflow/frontend/assets/file-symlink-DxmAsy0z.js +6 -0
- langflow/frontend/assets/file-terminal-BPPnpDjB.js +6 -0
- langflow/frontend/assets/file-text-BaQvl1vW.js +6 -0
- langflow/frontend/assets/file-type-2-e9nAaxvW.js +6 -0
- langflow/frontend/assets/file-type-BTDeDhNx.js +6 -0
- langflow/frontend/assets/file-up-IG_95vVB.js +6 -0
- langflow/frontend/assets/file-user-mogo1jxG.js +6 -0
- langflow/frontend/assets/file-video-2-CfuG2Lpu.js +6 -0
- langflow/frontend/assets/file-video-DdP7ZynD.js +6 -0
- langflow/frontend/assets/file-volume-2-CqutiwF-.js +6 -0
- langflow/frontend/assets/file-volume-Ch2DQVu_.js +6 -0
- langflow/frontend/assets/file-warning-DxMGAAgD.js +6 -0
- langflow/frontend/assets/file-x-2-CSzo8PWS.js +6 -0
- langflow/frontend/assets/file-x-D-5MzBdA.js +6 -0
- langflow/frontend/assets/files-D5oKDyo2.js +6 -0
- langflow/frontend/assets/film-KAOKMhnG.js +6 -0
- langflow/frontend/assets/fingerprint-CWMJjMfR.js +6 -0
- langflow/frontend/assets/fire-extinguisher-rH9nJWdL.js +6 -0
- langflow/frontend/assets/fish-SJPZntLZ.js +6 -0
- langflow/frontend/assets/fish-off-m6yiMH-J.js +6 -0
- langflow/frontend/assets/fish-symbol-DlN3KLxn.js +6 -0
- langflow/frontend/assets/flag-CgQiQ4L2.js +6 -0
- langflow/frontend/assets/flag-off-ssjQYhVD.js +6 -0
- langflow/frontend/assets/flag-triangle-left-BnDvhvS1.js +6 -0
- langflow/frontend/assets/flag-triangle-right-DrRjVCQO.js +6 -0
- langflow/frontend/assets/flame-kindling-D3bCCM0k.js +6 -0
- langflow/frontend/assets/flame-vxuWzg79.js +6 -0
- langflow/frontend/assets/flashlight-DXY4p7BC.js +6 -0
- langflow/frontend/assets/flashlight-off-CFIat-ui.js +6 -0
- langflow/frontend/assets/flask-conical-off-C2pMYXNO.js +6 -0
- langflow/frontend/assets/flask-conical-qeuVeaUV.js +6 -0
- langflow/frontend/assets/flask-round-mg0G5Zis.js +6 -0
- langflow/frontend/assets/flip-horizontal-2-DeuwfpO3.js +6 -0
- langflow/frontend/assets/flip-horizontal-BkHPjX7j.js +6 -0
- langflow/frontend/assets/flip-vertical-2-B6tcGvJJ.js +6 -0
- langflow/frontend/assets/flip-vertical-BrJ5sFRj.js +6 -0
- langflow/frontend/assets/flower-2-DjdcFdRK.js +6 -0
- langflow/frontend/assets/flower-DIgt5_lo.js +6 -0
- langflow/frontend/assets/focus-IziXQi2j.js +6 -0
- langflow/frontend/assets/fold-horizontal-rRM0hxGv.js +6 -0
- langflow/frontend/assets/fold-vertical-DoB3xfdL.js +6 -0
- langflow/frontend/assets/folder-DJf-kIpw.js +6 -0
- langflow/frontend/assets/folder-archive-TVE-mQql.js +6 -0
- langflow/frontend/assets/folder-check-B7NLv5e4.js +6 -0
- langflow/frontend/assets/folder-clock-CBQw2o8u.js +6 -0
- langflow/frontend/assets/folder-closed-BTQjwIh1.js +6 -0
- langflow/frontend/assets/folder-code-BH5w6EKl.js +6 -0
- langflow/frontend/assets/folder-cog-B-f0XsQy.js +6 -0
- langflow/frontend/assets/folder-dot-dYHd_iIm.js +6 -0
- langflow/frontend/assets/folder-down-Cm1iBv0j.js +6 -0
- langflow/frontend/assets/folder-git-2-3IwS_2lb.js +6 -0
- langflow/frontend/assets/folder-git-BEFrv2ty.js +6 -0
- langflow/frontend/assets/folder-heart-DS4W7K4g.js +6 -0
- langflow/frontend/assets/folder-input-Dizp4rBH.js +6 -0
- langflow/frontend/assets/folder-kanban-BSLv0fcQ.js +6 -0
- langflow/frontend/assets/folder-key-DLdbI_De.js +6 -0
- langflow/frontend/assets/folder-lock--savdJeR.js +6 -0
- langflow/frontend/assets/folder-minus-D6Shx1-z.js +6 -0
- langflow/frontend/assets/folder-open-B3hcE9q9.js +6 -0
- langflow/frontend/assets/folder-open-dot-CP2YtSAe.js +6 -0
- langflow/frontend/assets/folder-output-BAzpBIdP.js +6 -0
- langflow/frontend/assets/folder-pen-CAU0htoW.js +6 -0
- langflow/frontend/assets/folder-plus-B0SchJ5k.js +6 -0
- langflow/frontend/assets/folder-root-C2IZ_ZkF.js +6 -0
- langflow/frontend/assets/folder-search-2-DkC3u0u9.js +6 -0
- langflow/frontend/assets/folder-search-DkBM6coH.js +6 -0
- langflow/frontend/assets/folder-symlink-D3BbBXV-.js +6 -0
- langflow/frontend/assets/folder-sync-wrpHF5bu.js +6 -0
- langflow/frontend/assets/folder-tree-C0DUAJcc.js +6 -0
- langflow/frontend/assets/folder-up-gvf1DRx2.js +6 -0
- langflow/frontend/assets/folder-x-szEaKpBc.js +6 -0
- langflow/frontend/assets/folders-DY55X7MD.js +6 -0
- langflow/frontend/assets/footprints-BQWIcDMd.js +6 -0
- langflow/frontend/assets/forklift-COLXhpER.js +6 -0
- langflow/frontend/assets/forward-CrUgayej.js +6 -0
- langflow/frontend/assets/frame-CY5W0jC5.js +6 -0
- langflow/frontend/assets/framer-CEhtw71R.js +6 -0
- langflow/frontend/assets/frown-suOQpZpQ.js +6 -0
- langflow/frontend/assets/fuel-PDUpHGTU.js +6 -0
- langflow/frontend/assets/fullscreen-DzxwumhI.js +6 -0
- langflow/frontend/assets/funnel-4uXu1rUt.js +6 -0
- langflow/frontend/assets/funnel-plus-CVA4DInU.js +6 -0
- langflow/frontend/assets/funnel-x-Lqh6HQHA.js +6 -0
- langflow/frontend/assets/gallery-horizontal-C4PA9Azu.js +6 -0
- langflow/frontend/assets/gallery-horizontal-end-DgBr-iBr.js +6 -0
- langflow/frontend/assets/gallery-thumbnails-DdKFI83F.js +6 -0
- langflow/frontend/assets/gallery-vertical-BShvR0Mt.js +6 -0
- langflow/frontend/assets/gallery-vertical-end-lBPtCroK.js +6 -0
- langflow/frontend/assets/gamepad-2-BdhKTHRL.js +6 -0
- langflow/frontend/assets/gamepad-B_O767Pi.js +6 -0
- langflow/frontend/assets/gauge-S5gY8CL_.js +6 -0
- langflow/frontend/assets/gavel-BELVX2U7.js +6 -0
- langflow/frontend/assets/gem-NlWHzVP8.js +6 -0
- langflow/frontend/assets/ghost-BEpFJGdL.js +6 -0
- langflow/frontend/assets/gift-U9yHXros.js +6 -0
- langflow/frontend/assets/git-branch-BYbm4mzH.js +6 -0
- langflow/frontend/assets/git-branch-plus-DtQxQOd8.js +6 -0
- langflow/frontend/assets/git-commit-horizontal-DT9dkrfG.js +6 -0
- langflow/frontend/assets/git-commit-vertical-BC_NBNvg.js +6 -0
- langflow/frontend/assets/git-compare-CN_WgIps.js +6 -0
- langflow/frontend/assets/git-compare-arrows-D-F_Uxqj.js +6 -0
- langflow/frontend/assets/git-fork-Dt_eK6XL.js +6 -0
- langflow/frontend/assets/git-graph-BT67x77M.js +6 -0
- langflow/frontend/assets/git-merge-CNhvMLtl.js +6 -0
- langflow/frontend/assets/git-pull-request-CTikO1Lj.js +6 -0
- langflow/frontend/assets/git-pull-request-arrow-BZDXzFw-.js +6 -0
- langflow/frontend/assets/git-pull-request-closed-Duuw-tno.js +6 -0
- langflow/frontend/assets/git-pull-request-create-C2W7fedt.js +6 -0
- langflow/frontend/assets/git-pull-request-create-arrow-DwuXUPPE.js +6 -0
- langflow/frontend/assets/git-pull-request-draft-JUPTJBqc.js +6 -0
- langflow/frontend/assets/github-BSeb8I9e.js +6 -0
- langflow/frontend/assets/gitlab-ConXcJWJ.js +6 -0
- langflow/frontend/assets/glass-water-Bvf18iuh.js +6 -0
- langflow/frontend/assets/glasses-BeiKKX5r.js +6 -0
- langflow/frontend/assets/globe-B42EdvUr.js +6 -0
- langflow/frontend/assets/globe-lock-dkmTX-sh.js +6 -0
- langflow/frontend/assets/goal-BeXveO-3.js +6 -0
- langflow/frontend/assets/grab-BLs0jQon.js +6 -0
- langflow/frontend/assets/graduation-cap-CUn_DxQ_.js +6 -0
- langflow/frontend/assets/grape-C2KaH8gU.js +6 -0
- langflow/frontend/assets/grid-2x2-C3nVPaII.js +6 -0
- langflow/frontend/assets/grid-2x2-check-Cvr9knvg.js +6 -0
- langflow/frontend/assets/grid-2x2-plus-Ckdcc96Y.js +6 -0
- langflow/frontend/assets/grid-2x2-x-BMQSsaSE.js +6 -0
- langflow/frontend/assets/grid-3x3-BjYKt-_O.js +6 -0
- langflow/frontend/assets/grip-CZ085X_W.js +6 -0
- langflow/frontend/assets/grip-horizontal-Y3NmvBFT.js +6 -0
- langflow/frontend/assets/grip-vertical-B59p2u11.js +6 -0
- langflow/frontend/assets/group-DdPMzqVI.js +6 -0
- langflow/frontend/assets/guitar-DQ7x86FX.js +6 -0
- langflow/frontend/assets/ham-6f3kXdqf.js +6 -0
- langflow/frontend/assets/hammer-B2_p1_fC.js +6 -0
- langflow/frontend/assets/hand-BbCqitxB.js +6 -0
- langflow/frontend/assets/hand-coins-Dgz1etza.js +6 -0
- langflow/frontend/assets/hand-heart-BID2sKBu.js +6 -0
- langflow/frontend/assets/hand-helping-BOkMrsVe.js +6 -0
- langflow/frontend/assets/hand-metal-D-GVXTrf.js +6 -0
- langflow/frontend/assets/hand-platter-Dg1bz__b.js +6 -0
- langflow/frontend/assets/handshake-DlQL_wxY.js +6 -0
- langflow/frontend/assets/hard-drive-BPgtBe00.js +6 -0
- langflow/frontend/assets/hard-drive-download-CNHAeFg-.js +6 -0
- langflow/frontend/assets/hard-drive-upload-i3wjY1_o.js +6 -0
- langflow/frontend/assets/hard-hat-DNb0v-3h.js +6 -0
- langflow/frontend/assets/hash-DsD4g6oN.js +6 -0
- langflow/frontend/assets/haze-BP2TP8MM.js +6 -0
- langflow/frontend/assets/hdmi-port-DTmhhB2G.js +6 -0
- langflow/frontend/assets/heading-1-BVcDSi5E.js +6 -0
- langflow/frontend/assets/heading-2-CeiJZqhQ.js +6 -0
- langflow/frontend/assets/heading-3-m2OM67gz.js +6 -0
- langflow/frontend/assets/heading-4-DNknO4Bp.js +6 -0
- langflow/frontend/assets/heading-5-D3heTetS.js +6 -0
- langflow/frontend/assets/heading-6-CM-UO3Bs.js +6 -0
- langflow/frontend/assets/heading-JJt6R8xE.js +6 -0
- langflow/frontend/assets/headphone-off-CXowa7_x.js +6 -0
- langflow/frontend/assets/headphones-BUXqccDP.js +6 -0
- langflow/frontend/assets/headset-bMzSarpm.js +6 -0
- langflow/frontend/assets/heart-Bmt9fYs6.js +6 -0
- langflow/frontend/assets/heart-crack-CAYemD8u.js +6 -0
- langflow/frontend/assets/heart-handshake-Dhcf5-3Y.js +6 -0
- langflow/frontend/assets/heart-minus-DcqARxpE.js +6 -0
- langflow/frontend/assets/heart-off-Clcu0Mpd.js +6 -0
- langflow/frontend/assets/heart-plus-DB-Wl3oW.js +6 -0
- langflow/frontend/assets/heart-pulse-d06qZHKp.js +6 -0
- langflow/frontend/assets/heater-542sNqst.js +6 -0
- langflow/frontend/assets/hexagon-CUGRShr9.js +6 -0
- langflow/frontend/assets/highlighter-Jl4viTI6.js +6 -0
- langflow/frontend/assets/history-B5GVxYJY.js +6 -0
- langflow/frontend/assets/hop-BKkLEzjI.js +6 -0
- langflow/frontend/assets/hop-off-CDTiL-ei.js +6 -0
- langflow/frontend/assets/hospital-B9rcr2ws.js +6 -0
- langflow/frontend/assets/hotel-fzU9ScaP.js +6 -0
- langflow/frontend/assets/hourglass-Df3oo_TW.js +6 -0
- langflow/frontend/assets/house-CEARqOdS.js +6 -0
- langflow/frontend/assets/house-plug-DNgJV6-Y.js +6 -0
- langflow/frontend/assets/house-plus-CPUoPJjK.js +6 -0
- langflow/frontend/assets/house-wifi-BRPUuAmJ.js +6 -0
- langflow/frontend/assets/ice-cream-bowl-BlUbZ4XN.js +6 -0
- langflow/frontend/assets/ice-cream-cone-Du4-djqA.js +6 -0
- langflow/frontend/assets/id-card-Bpg0Cav-.js +6 -0
- langflow/frontend/assets/image-D9Ukq8qF.js +6 -0
- langflow/frontend/assets/image-down-BvUIk1t6.js +6 -0
- langflow/frontend/assets/image-minus-DV4mn4f8.js +6 -0
- langflow/frontend/assets/image-off-Xte6-uZu.js +6 -0
- langflow/frontend/assets/image-play-BOQx_NsS.js +6 -0
- langflow/frontend/assets/image-plus-R8NojlfI.js +6 -0
- langflow/frontend/assets/image-up-13p2JyRG.js +6 -0
- langflow/frontend/assets/image-upscale-BCUXrYGW.js +6 -0
- langflow/frontend/assets/images-kRLBeAue.js +6 -0
- langflow/frontend/assets/import-BGWDkYJx.js +6 -0
- langflow/frontend/assets/inbox-DYqtp0ox.js +6 -0
- langflow/frontend/assets/indent-decrease-Cj8lr_U7.js +6 -0
- langflow/frontend/assets/indent-increase-C5_175ZN.js +6 -0
- langflow/frontend/assets/index-13Zoxzau.js +1 -0
- langflow/frontend/assets/index-2YMfJOO9.js +1 -0
- langflow/frontend/assets/index-2eM8vO_1.js +1 -0
- langflow/frontend/assets/index-3QvNfsNU.js +1 -0
- langflow/frontend/assets/index-8u6aKtXg.js +1 -0
- langflow/frontend/assets/index-8yC068Iv.js +1 -0
- langflow/frontend/assets/index-B0awTqqA.js +1 -0
- langflow/frontend/assets/index-B0cKUHO8.js +1 -0
- langflow/frontend/assets/index-B3RFMxT4.js +1 -0
- langflow/frontend/assets/index-B6-sqx2X.js +1 -0
- langflow/frontend/assets/index-B7KOcBzN.js +1 -0
- langflow/frontend/assets/index-B8ibz5hD.js +1 -0
- langflow/frontend/assets/index-B9A6jOQb.js +1 -0
- langflow/frontend/assets/index-BAGp2bya.js +1 -0
- langflow/frontend/assets/index-BAl_AzRL.js +1 -0
- langflow/frontend/assets/index-BBgD30VE.js +1 -0
- langflow/frontend/assets/index-BDlfTCYJ.js +1 -0
- langflow/frontend/assets/index-BEl-OOS0.js +1 -0
- langflow/frontend/assets/index-BFuvzLil.js +1 -0
- langflow/frontend/assets/index-BGRq8GJv.js +1 -0
- langflow/frontend/assets/index-BHnC351X.js +1 -0
- langflow/frontend/assets/index-BIEgG0ul.js +1 -0
- langflow/frontend/assets/index-BLtkDnaL.css +1 -0
- langflow/frontend/assets/index-BNenYBjs.js +1 -0
- langflow/frontend/assets/index-BNq7uHms.js +1 -0
- langflow/frontend/assets/index-BOjy0CSm.js +1 -0
- langflow/frontend/assets/index-BRCmp6Oh.js +1 -0
- langflow/frontend/assets/index-BSqEs9t3.js +1 -0
- langflow/frontend/assets/index-BUaHG4bV.js +1 -0
- langflow/frontend/assets/index-BVUScOdp.js +1 -0
- langflow/frontend/assets/index-BWSLLhBG.js +1 -0
- langflow/frontend/assets/index-BWzys5Ay.js +205 -0
- langflow/frontend/assets/index-BYQbwYlG.js +1 -0
- langflow/frontend/assets/index-BZ9uH2EJ.js +1 -0
- langflow/frontend/assets/index-B_7P7sEd.js +1 -0
- langflow/frontend/assets/index-B_JHg8Sk.js +13 -0
- langflow/frontend/assets/index-B_JSt491.js +1 -0
- langflow/frontend/assets/index-Ba1dNWA_.js +1 -0
- langflow/frontend/assets/index-Bb1wQDOw.js +127 -0
- langflow/frontend/assets/index-BbPlJYBb.js +1 -0
- langflow/frontend/assets/index-BblsE5ia.js +1 -0
- langflow/frontend/assets/index-BfocII0q.js +1 -0
- langflow/frontend/assets/index-Bgj0vE6c.js +1 -0
- langflow/frontend/assets/index-Bi_jQlqa.js +1 -0
- langflow/frontend/assets/index-Bj4iOyxK.js +1 -0
- langflow/frontend/assets/index-BjG5uWvH.js +1 -0
- langflow/frontend/assets/index-BkXxgTei.js +1 -0
- langflow/frontend/assets/index-BolOOsCp.js +1 -0
- langflow/frontend/assets/index-Bp-ms0PK.js +1 -0
- langflow/frontend/assets/index-Bqv37pOh.js +1 -0
- langflow/frontend/assets/index-BslwGWYB.js +1 -0
- langflow/frontend/assets/index-BssfzxG_.js +1 -0
- langflow/frontend/assets/index-BtPFrYYI.js +1 -0
- langflow/frontend/assets/index-C-RQmcwa.js +1 -0
- langflow/frontend/assets/index-C-ftkZ_l.js +1 -0
- langflow/frontend/assets/index-C13FitId.js +1 -0
- langflow/frontend/assets/index-C1s7CWMo.js +108 -0
- langflow/frontend/assets/index-C23jtRJn.js +1 -0
- langflow/frontend/assets/index-C355Z4EH.js +1 -0
- langflow/frontend/assets/index-C3Oh3vba.js +1 -0
- langflow/frontend/assets/index-C3bbZCwL.js +1 -0
- langflow/frontend/assets/index-C7F922c1.js +1 -0
- langflow/frontend/assets/index-C7QSsrvO.js +1 -0
- langflow/frontend/assets/index-C95OWZZc.js +1 -0
- langflow/frontend/assets/index-C9gVXdCS.js +1 -0
- langflow/frontend/assets/index-CAEEzMHo.js +495 -0
- langflow/frontend/assets/index-CBAfSWes.js +1 -0
- langflow/frontend/assets/index-CCX51czF.js +1 -0
- langflow/frontend/assets/index-CDBtGipg.js +1 -0
- langflow/frontend/assets/index-CEqbV9aW.js +1 -0
- langflow/frontend/assets/index-CG45SIG8.js +1 -0
- langflow/frontend/assets/index-CJZsr-fn.js +1 -0
- langflow/frontend/assets/index-CLqP4ThV.js +1 -0
- langflow/frontend/assets/index-CML0f0w4.js +281 -0
- langflow/frontend/assets/index-CNm6A6BM.js +185 -0
- langflow/frontend/assets/index-CO_jLIgI.js +1 -0
- langflow/frontend/assets/index-CRtzdAeu.js +1 -0
- langflow/frontend/assets/index-CS3Ngw83.js +1 -0
- langflow/frontend/assets/index-CTdC4lzt.js +1 -0
- langflow/frontend/assets/index-CTvkPi7K.js +1 -0
- langflow/frontend/assets/index-CU71A7YK.js +1 -0
- langflow/frontend/assets/index-CUD8QZLu.js +1 -0
- langflow/frontend/assets/index-CUzVk5As.js +1 -0
- langflow/frontend/assets/index-CVIYh5_p.js +1 -0
- langflow/frontend/assets/index-CWaWp_Le.js +1 -0
- langflow/frontend/assets/index-CX1TURzi.js +20 -0
- langflow/frontend/assets/index-CXGNUmlu.js +1 -0
- langflow/frontend/assets/index-CYoBMsTw.js +1 -0
- langflow/frontend/assets/index-CYzZkuJS.js +1 -0
- langflow/frontend/assets/index-CZ9UunKI.js +1 -0
- langflow/frontend/assets/index-C_7L2FMd.js +399 -0
- langflow/frontend/assets/index-C_lmeAGO.js +1 -0
- langflow/frontend/assets/index-Ca_qLqOH.js +1 -0
- langflow/frontend/assets/index-Cauz08_3.js +1 -0
- langflow/frontend/assets/index-CbZNwtS6.js +1 -0
- langflow/frontend/assets/index-Cd8oScAT.js +1 -0
- langflow/frontend/assets/index-Ce0gZhoH.js +1 -0
- langflow/frontend/assets/index-CfGiJBXr.js +1 -0
- langflow/frontend/assets/index-CfmrQMPR.js +1 -0
- langflow/frontend/assets/index-CgB19o0o.js +1 -0
- langflow/frontend/assets/index-CgF60jG5.js +767 -0
- langflow/frontend/assets/index-Ch4Ib2yi.js +1 -0
- langflow/frontend/assets/index-Chja5J5w.js +1 -0
- langflow/frontend/assets/index-Ci89-uPP.js +1 -0
- langflow/frontend/assets/index-Cij7mB1m.js +1 -0
- langflow/frontend/assets/index-Cip3CnxH.js +1 -0
- langflow/frontend/assets/index-ClFTrXZ8.js +1 -0
- langflow/frontend/assets/index-CnnkmUAF.js +1 -0
- langflow/frontend/assets/index-CoOe4v4a.js +1 -0
- langflow/frontend/assets/index-Cp5zqFeU.js +1 -0
- langflow/frontend/assets/index-Cp7QGwHe.js +1 -0
- langflow/frontend/assets/index-CsKpt96d.js +21 -0
- langflow/frontend/assets/index-Ct42xKTH.js +1 -0
- langflow/frontend/assets/index-CtAdB3RY.js +1 -0
- langflow/frontend/assets/index-CtJkBI21.js +1 -0
- langflow/frontend/assets/index-CwJ4yyjb.js +1 -0
- langflow/frontend/assets/index-CwVenOEP.js +1 -0
- langflow/frontend/assets/index-CxN5wJRu.js +1 -0
- langflow/frontend/assets/index-CyEcCmD1.js +1 -0
- langflow/frontend/assets/index-CyMdXWsx.js +1 -0
- langflow/frontend/assets/index-CyaqTQFh.js +1 -0
- langflow/frontend/assets/index-CzDoTQpR.js +1 -0
- langflow/frontend/assets/index-CzsMJ6Tk.js +1 -0
- langflow/frontend/assets/index-D0BV6pYe.js +1 -0
- langflow/frontend/assets/index-D0WUX5nc.js +1 -0
- langflow/frontend/assets/index-D1mWbUSj.js +1 -0
- langflow/frontend/assets/index-D2E6EWX6.js +1 -0
- langflow/frontend/assets/index-D5VxUdyH.js +1 -0
- langflow/frontend/assets/index-D6wnim8h.js +1 -0
- langflow/frontend/assets/index-DAZlpEsn.js +1 -0
- langflow/frontend/assets/index-DER2phOk.js +1 -0
- langflow/frontend/assets/index-DHwszsy_.js +1 -0
- langflow/frontend/assets/index-DIlf-UcK.js +1 -0
- langflow/frontend/assets/index-DJpmWZ8W.js +1 -0
- langflow/frontend/assets/index-DNlwCArs.js +1 -0
- langflow/frontend/assets/index-DS0zJxcJ.js +1 -0
- langflow/frontend/assets/index-DS8M_eNa.js +1 -0
- langflow/frontend/assets/index-DS_YcLKm.js +1 -0
- langflow/frontend/assets/index-DUxZ9sGb.js +1 -0
- langflow/frontend/assets/index-DW8b83iR.js +1 -0
- langflow/frontend/assets/index-DWOHEjbo.js +1 -0
- langflow/frontend/assets/index-DXdfsLsS.js +1 -0
- langflow/frontend/assets/index-DYgxrIRb.js +1 -0
- langflow/frontend/assets/index-DYo11wRx.js +1 -0
- langflow/frontend/assets/index-DcdYpXR7.js +1 -0
- langflow/frontend/assets/index-DeDDojCx.js +1 -0
- langflow/frontend/assets/index-DlxH0T7N.js +1 -0
- langflow/frontend/assets/index-DopCCHg1.js +1 -0
- langflow/frontend/assets/index-DsCyojdY.js +1 -0
- langflow/frontend/assets/index-Du1dTies.js +1 -0
- langflow/frontend/assets/index-DvQFd0fy.js +1 -0
- langflow/frontend/assets/index-DyqDlc4f.js +1 -0
- langflow/frontend/assets/index-FA5vt2_f.js +1 -0
- langflow/frontend/assets/index-FcQSIPAt.js +1 -0
- langflow/frontend/assets/index-G1YA_n78.js +1 -0
- langflow/frontend/assets/index-HfWWGGaG.js +1 -0
- langflow/frontend/assets/index-LsncXH1g.js +1 -0
- langflow/frontend/assets/index-MJURXou6.js +1 -0
- langflow/frontend/assets/index-MqcmMzAn.js +1 -0
- langflow/frontend/assets/index-OQM9QNyk.js +1 -0
- langflow/frontend/assets/index-QDCZLeI9.js +1 -0
- langflow/frontend/assets/index-S1qYDQ8G.js +1 -0
- langflow/frontend/assets/index-S7Rj3EPW.js +1 -0
- langflow/frontend/assets/index-TgWuwOJE.js +1 -0
- langflow/frontend/assets/index-YEyD4xA9.js +1 -0
- langflow/frontend/assets/index-YxUE82M7.js +1 -0
- langflow/frontend/assets/index-ZzxioQaX.js +1 -0
- langflow/frontend/assets/index-g2fAdVrS.js +1 -0
- langflow/frontend/assets/index-g_3RyeJ6.js +1 -0
- langflow/frontend/assets/index-iDSR0kJw.js +1 -0
- langflow/frontend/assets/index-kUdJ68dS.js +7 -0
- langflow/frontend/assets/index-lfWR3tut.js +1 -0
- langflow/frontend/assets/index-m14nOorE.js +1 -0
- langflow/frontend/assets/index-mK71J8fG.js +1 -0
- langflow/frontend/assets/index-mbMtLzSx.js +7322 -0
- langflow/frontend/assets/index-n0JQvrKh.js +381 -0
- langflow/frontend/assets/index-o0QSKLWN.js +1 -0
- langflow/frontend/assets/index-oTA3vzYD.js +1 -0
- langflow/frontend/assets/index-ogSlMmAD.js +1 -0
- langflow/frontend/assets/index-q6t1dndo.js +1 -0
- langflow/frontend/assets/index-xi5FCBF4.js +2 -0
- langflow/frontend/assets/index-yGkmYyDe.js +1 -0
- langflow/frontend/assets/index-yMoZ4cpa.js +1 -0
- langflow/frontend/assets/index-zGPB8voY.js +1 -0
- langflow/frontend/assets/indian-rupee-zJgOcLlR.js +6 -0
- langflow/frontend/assets/infinity-CvHj69bZ.js +6 -0
- langflow/frontend/assets/info-B-7KceRp.js +6 -0
- langflow/frontend/assets/inspection-panel-B-qqDQOn.js +6 -0
- langflow/frontend/assets/instagram-BXNi4Q3J.js +6 -0
- langflow/frontend/assets/italic-BF8slRrC.js +6 -0
- langflow/frontend/assets/iteration-ccw-BZ5c9OlZ.js +6 -0
- langflow/frontend/assets/iteration-cw-BS4XZXeO.js +6 -0
- langflow/frontend/assets/japanese-yen-DkRlagmh.js +6 -0
- langflow/frontend/assets/joystick-Co46lfJr.js +6 -0
- langflow/frontend/assets/kanban-DsXGVhmQ.js +6 -0
- langflow/frontend/assets/key-BZJIF1Tn.js +6 -0
- langflow/frontend/assets/key-round-C0PdOpFy.js +6 -0
- langflow/frontend/assets/key-square-Dsqy49WD.js +6 -0
- langflow/frontend/assets/keyboard-CNdrfG4M.js +6 -0
- langflow/frontend/assets/keyboard-music-CLM7d_Oh.js +6 -0
- langflow/frontend/assets/keyboard-off-7mcbANH6.js +6 -0
- langflow/frontend/assets/lamp-CbtQDMmM.js +6 -0
- langflow/frontend/assets/lamp-ceiling-C9Ixf3cT.js +6 -0
- langflow/frontend/assets/lamp-desk-QJm7TEwE.js +6 -0
- langflow/frontend/assets/lamp-floor-A97jfL-w.js +6 -0
- langflow/frontend/assets/lamp-wall-down-9Bb-cEg7.js +6 -0
- langflow/frontend/assets/lamp-wall-up-mTabuHtc.js +6 -0
- langflow/frontend/assets/land-plot-Df890GI2.js +6 -0
- langflow/frontend/assets/landmark-Dn_hcjHd.js +6 -0
- langflow/frontend/assets/languages-DFZD0QaT.js +6 -0
- langflow/frontend/assets/laptop-BsQGVR1I.js +6 -0
- langflow/frontend/assets/laptop-minimal-Bfh4C2GF.js +6 -0
- langflow/frontend/assets/laptop-minimal-check-D88HdUd3.js +6 -0
- langflow/frontend/assets/lasso-CHCr-Q6-.js +6 -0
- langflow/frontend/assets/lasso-select-WhWIk2m8.js +6 -0
- langflow/frontend/assets/laugh-B6DjKjHK.js +6 -0
- langflow/frontend/assets/layers-2-tpnDdg6M.js +6 -0
- langflow/frontend/assets/layers-bvstOshc.js +6 -0
- langflow/frontend/assets/layout-dashboard-5gRuygC1.js +6 -0
- langflow/frontend/assets/layout-grid-NKDqqMJN.js +6 -0
- langflow/frontend/assets/layout-list-CxX_BCTH.js +6 -0
- langflow/frontend/assets/layout-panel-left-D-TpgqW9.js +6 -0
- langflow/frontend/assets/layout-panel-top-Ccb4Utts.js +6 -0
- langflow/frontend/assets/layout-template-DsVgfWw5.js +6 -0
- langflow/frontend/assets/lazyIconImports-jYcYgZUq.js +2 -0
- langflow/frontend/assets/leaf-D8kusSQj.js +6 -0
- langflow/frontend/assets/leafy-green-B4ktdJgT.js +6 -0
- langflow/frontend/assets/lectern-vEn0Wbe4.js +6 -0
- langflow/frontend/assets/letter-text-CQ9S23a3.js +6 -0
- langflow/frontend/assets/library-BQNCezsr.js +6 -0
- langflow/frontend/assets/library-big-Bj3MGz0g.js +6 -0
- langflow/frontend/assets/life-buoy-C6FYqe22.js +6 -0
- langflow/frontend/assets/ligature-CE7B61Pu.js +6 -0
- langflow/frontend/assets/lightbulb-CEw1rI_9.js +6 -0
- langflow/frontend/assets/lightbulb-off-D-riwFpV.js +6 -0
- langflow/frontend/assets/link-2-C5VJPZHp.js +6 -0
- langflow/frontend/assets/link-2-off-fJGa_97b.js +6 -0
- langflow/frontend/assets/link-DN4GBilj.js +6 -0
- langflow/frontend/assets/linkedin-M2Tn8aeM.js +6 -0
- langflow/frontend/assets/list-check-hokUTD0j.js +6 -0
- langflow/frontend/assets/list-checks-t2B2mzs1.js +6 -0
- langflow/frontend/assets/list-collapse-D4_BL4A8.js +6 -0
- langflow/frontend/assets/list-end-CGaajUXD.js +6 -0
- langflow/frontend/assets/list-f8QmLbF-.js +6 -0
- langflow/frontend/assets/list-filter-CayB_9LJ.js +6 -0
- langflow/frontend/assets/list-filter-plus-COuo04Bq.js +6 -0
- langflow/frontend/assets/list-minus-Cs4HCaHv.js +6 -0
- langflow/frontend/assets/list-music-CX9HFuvz.js +6 -0
- langflow/frontend/assets/list-ordered-DkSX7Rnm.js +6 -0
- langflow/frontend/assets/list-plus-CVerU0Mb.js +6 -0
- langflow/frontend/assets/list-restart-BxApb3y3.js +6 -0
- langflow/frontend/assets/list-start-DqNS40mb.js +6 -0
- langflow/frontend/assets/list-todo-CJK4_fyE.js +6 -0
- langflow/frontend/assets/list-tree-CX8sFdAG.js +6 -0
- langflow/frontend/assets/list-video-DfFCwmtY.js +6 -0
- langflow/frontend/assets/list-x-BptaFsAa.js +6 -0
- langflow/frontend/assets/loader-CRSFunYW.js +6 -0
- langflow/frontend/assets/loader-circle-0LkUtuiB.js +6 -0
- langflow/frontend/assets/loader-pinwheel-DLHH0rfD.js +6 -0
- langflow/frontend/assets/locate-DD5VbapP.js +6 -0
- langflow/frontend/assets/locate-fixed-B_SEz1p1.js +6 -0
- langflow/frontend/assets/locate-off-CWKW4dme.js +6 -0
- langflow/frontend/assets/location-edit-BpcKMwVP.js +6 -0
- langflow/frontend/assets/lock-D7vOuFMx.js +6 -0
- langflow/frontend/assets/lock-keyhole-CsTzGP7N.js +6 -0
- langflow/frontend/assets/lock-keyhole-open-eNTqtYO7.js +6 -0
- langflow/frontend/assets/lock-open-DaT1TwPu.js +6 -0
- langflow/frontend/assets/log-in-CaGW87bb.js +6 -0
- langflow/frontend/assets/log-out-Don196Ow.js +6 -0
- langflow/frontend/assets/logs-LFCx9RB_.js +6 -0
- langflow/frontend/assets/lollipop-COKRhh7t.js +6 -0
- langflow/frontend/assets/luggage-DyrDd6fd.js +6 -0
- langflow/frontend/assets/magnet-B0a-sDJx.js +6 -0
- langflow/frontend/assets/mail-XvAnaTY5.js +6 -0
- langflow/frontend/assets/mail-check-DcGd2a0s.js +6 -0
- langflow/frontend/assets/mail-minus-5bENyY3v.js +6 -0
- langflow/frontend/assets/mail-open-ug2t-Vv3.js +6 -0
- langflow/frontend/assets/mail-plus-CcB3ROKv.js +6 -0
- langflow/frontend/assets/mail-question-OKq-XTi1.js +6 -0
- langflow/frontend/assets/mail-search-IJou4MLI.js +6 -0
- langflow/frontend/assets/mail-warning-K9EnhQSg.js +6 -0
- langflow/frontend/assets/mail-x-FSWI9Fnh.js +6 -0
- langflow/frontend/assets/mailbox-BeLDP2Xk.js +6 -0
- langflow/frontend/assets/mails-znGn5KH4.js +6 -0
- langflow/frontend/assets/map-pin-CdTN4uMO.js +6 -0
- langflow/frontend/assets/map-pin-check-D--L7E5O.js +6 -0
- langflow/frontend/assets/map-pin-check-inside-xOyNBlKX.js +6 -0
- langflow/frontend/assets/map-pin-house-BsfQnX5U.js +6 -0
- langflow/frontend/assets/map-pin-minus-DbGNmAqz.js +6 -0
- langflow/frontend/assets/map-pin-minus-inside-C2bo7x40.js +6 -0
- langflow/frontend/assets/map-pin-off-Bg5tjKyo.js +6 -0
- langflow/frontend/assets/map-pin-plus-BMp-VnQU.js +6 -0
- langflow/frontend/assets/map-pin-plus-inside-VfL2v9_X.js +6 -0
- langflow/frontend/assets/map-pin-x-WzpN4WMZ.js +6 -0
- langflow/frontend/assets/map-pin-x-inside-lbeeobIE.js +6 -0
- langflow/frontend/assets/map-pinned-DegJgpJO.js +6 -0
- langflow/frontend/assets/map-plus-B81ZQJ-u.js +6 -0
- langflow/frontend/assets/map-t3zI6Ezo.js +6 -0
- langflow/frontend/assets/mars-Dp-PcrSW.js +6 -0
- langflow/frontend/assets/mars-stroke-DQxw9rVE.js +6 -0
- langflow/frontend/assets/martini-B4rQn1UE.js +6 -0
- langflow/frontend/assets/maximize-2-D1jufgFj.js +6 -0
- langflow/frontend/assets/maximize-CNXWWTwP.js +6 -0
- langflow/frontend/assets/medal-DfcqecF9.js +6 -0
- langflow/frontend/assets/megaphone-ClOQ6pv2.js +6 -0
- langflow/frontend/assets/megaphone-off-C288cqYu.js +6 -0
- langflow/frontend/assets/meh-BAJYzNJ3.js +6 -0
- langflow/frontend/assets/memory-stick-cY6X5E0y.js +6 -0
- langflow/frontend/assets/menu-CeKeZCCn.js +6 -0
- langflow/frontend/assets/merge--PPwvYbV.js +6 -0
- langflow/frontend/assets/message-circle-code-BmSmfrvp.js +6 -0
- langflow/frontend/assets/message-circle-dashed-CIJFvzOR.js +6 -0
- langflow/frontend/assets/message-circle-heart-M4l7Lq2g.js +6 -0
- langflow/frontend/assets/message-circle-iIdjiaM4.js +6 -0
- langflow/frontend/assets/message-circle-more-Dpg5LAF-.js +6 -0
- langflow/frontend/assets/message-circle-off-CHsgIDiw.js +6 -0
- langflow/frontend/assets/message-circle-plus-77D8kuTb.js +6 -0
- langflow/frontend/assets/message-circle-question-CXuvhmVI.js +6 -0
- langflow/frontend/assets/message-circle-reply-B6wk4uSS.js +6 -0
- langflow/frontend/assets/message-circle-warning-DAZlTuzX.js +6 -0
- langflow/frontend/assets/message-circle-x-DNWIiylq.js +6 -0
- langflow/frontend/assets/message-square-DZD7THfY.js +6 -0
- langflow/frontend/assets/message-square-code-B_lhrlz1.js +6 -0
- langflow/frontend/assets/message-square-dashed-C14pkxzA.js +6 -0
- langflow/frontend/assets/message-square-diff-BQ4Q4uOS.js +6 -0
- langflow/frontend/assets/message-square-dot-BBGGmSCH.js +6 -0
- langflow/frontend/assets/message-square-heart-C_GNBsKZ.js +6 -0
- langflow/frontend/assets/message-square-lock-DmFTamDZ.js +6 -0
- langflow/frontend/assets/message-square-more-CGM5cxQL.js +6 -0
- langflow/frontend/assets/message-square-off-Dw32KmRA.js +6 -0
- langflow/frontend/assets/message-square-plus-BSO9POxX.js +6 -0
- langflow/frontend/assets/message-square-quote-Drf4R-vX.js +6 -0
- langflow/frontend/assets/message-square-reply-Dm5bdHd-.js +6 -0
- langflow/frontend/assets/message-square-share-DgoItwHq.js +6 -0
- langflow/frontend/assets/message-square-text-CJnYTNkV.js +6 -0
- langflow/frontend/assets/message-square-warning-5DzAM4m5.js +6 -0
- langflow/frontend/assets/message-square-x-Ja82L-Lg.js +6 -0
- langflow/frontend/assets/messages-square-BulGT2lX.js +6 -0
- langflow/frontend/assets/mic-3vdGrfQZ.js +6 -0
- langflow/frontend/assets/mic-off-BEdTNPnB.js +6 -0
- langflow/frontend/assets/mic-vocal-CtfHfAwv.js +6 -0
- langflow/frontend/assets/microchip-CmlTNL96.js +6 -0
- langflow/frontend/assets/microscope-C5J4I9OP.js +6 -0
- langflow/frontend/assets/microwave-B3NU1aov.js +6 -0
- langflow/frontend/assets/milestone-DjAZ2oFU.js +6 -0
- langflow/frontend/assets/milk-ChDct91d.js +6 -0
- langflow/frontend/assets/milk-off-B22LvqkH.js +6 -0
- langflow/frontend/assets/minimize-2-ewvzYPNd.js +6 -0
- langflow/frontend/assets/minimize-C0Y0-58O.js +6 -0
- langflow/frontend/assets/monitor-DDOQRbHw.js +6 -0
- langflow/frontend/assets/monitor-check-CxUebj9S.js +6 -0
- langflow/frontend/assets/monitor-cog-YF13OORq.js +6 -0
- langflow/frontend/assets/monitor-dot-Cc82F286.js +6 -0
- langflow/frontend/assets/monitor-down-CtqEhtU5.js +6 -0
- langflow/frontend/assets/monitor-off-Bw7Ty3-I.js +6 -0
- langflow/frontend/assets/monitor-pause-Dg89MSxJ.js +6 -0
- langflow/frontend/assets/monitor-play-D506SCSi.js +6 -0
- langflow/frontend/assets/monitor-smartphone-DU54faq2.js +6 -0
- langflow/frontend/assets/monitor-speaker-EZfx0r9O.js +6 -0
- langflow/frontend/assets/monitor-stop-BRgMxgFF.js +6 -0
- langflow/frontend/assets/monitor-up-CDxhd4R5.js +6 -0
- langflow/frontend/assets/monitor-x-CdYRDl5w.js +6 -0
- langflow/frontend/assets/moon-hVZiHztG.js +6 -0
- langflow/frontend/assets/moon-star-CxGlaBYE.js +6 -0
- langflow/frontend/assets/mountain-DIHUnzV7.js +6 -0
- langflow/frontend/assets/mountain-snow-CV5KEfto.js +6 -0
- langflow/frontend/assets/mouse-D5IxaWj4.js +6 -0
- langflow/frontend/assets/mouse-off-BP-8VuEF.js +6 -0
- langflow/frontend/assets/mouse-pointer-2-DPNU0AlS.js +6 -0
- langflow/frontend/assets/mouse-pointer-DTV0Lt-u.js +6 -0
- langflow/frontend/assets/mouse-pointer-ban-8tzGIPhn.js +6 -0
- langflow/frontend/assets/mouse-pointer-click-Dfdzt1J4.js +6 -0
- langflow/frontend/assets/move-3d-DpyjEzLl.js +6 -0
- langflow/frontend/assets/move-CKOyzdP1.js +6 -0
- langflow/frontend/assets/move-diagonal-2-tiBVBFsk.js +6 -0
- langflow/frontend/assets/move-diagonal-dIJnF1uB.js +6 -0
- langflow/frontend/assets/move-down-bxp1hUKY.js +6 -0
- langflow/frontend/assets/move-down-left-9RfE88vO.js +6 -0
- langflow/frontend/assets/move-down-right-pNxyVuYx.js +6 -0
- langflow/frontend/assets/move-horizontal-BR3j8GvG.js +6 -0
- langflow/frontend/assets/move-left-B_JTbBvp.js +6 -0
- langflow/frontend/assets/move-right-Cnc0MMHM.js +6 -0
- langflow/frontend/assets/move-up-C5xXA1sr.js +6 -0
- langflow/frontend/assets/move-up-left-CCrMYqp2.js +6 -0
- langflow/frontend/assets/move-up-right-CV6MlpIA.js +6 -0
- langflow/frontend/assets/move-vertical-CVvn0VvO.js +6 -0
- langflow/frontend/assets/music-2-C8zticfA.js +6 -0
- langflow/frontend/assets/music-3-9GbaJYhH.js +6 -0
- langflow/frontend/assets/music-4-Ce_sMfg6.js +6 -0
- langflow/frontend/assets/music-BLkfznVn.js +6 -0
- langflow/frontend/assets/navigation-2-DCAE9iyE.js +6 -0
- langflow/frontend/assets/navigation-2-off-zyubRS6s.js +6 -0
- langflow/frontend/assets/navigation-Ccdse-fC.js +6 -0
- langflow/frontend/assets/navigation-off-BmhPvLwJ.js +6 -0
- langflow/frontend/assets/network-BzeEXHLI.js +6 -0
- langflow/frontend/assets/newspaper-DiBxbO8j.js +6 -0
- langflow/frontend/assets/nfc-BdvWoCYb.js +6 -0
- langflow/frontend/assets/non-binary-pY9-4hjY.js +6 -0
- langflow/frontend/assets/notebook-Dpqn-n-l.js +6 -0
- langflow/frontend/assets/notebook-pen-CWFzSs7K.js +6 -0
- langflow/frontend/assets/notebook-tabs-p4B0fwNZ.js +6 -0
- langflow/frontend/assets/notebook-text-DmWmNbDF.js +6 -0
- langflow/frontend/assets/notepad-text-B0sn1sgX.js +6 -0
- langflow/frontend/assets/notepad-text-dashed-DJ0HLb26.js +6 -0
- langflow/frontend/assets/nut-DlyZy_ec.js +6 -0
- langflow/frontend/assets/nut-off-CzKhPbb9.js +6 -0
- langflow/frontend/assets/octagon-DOllS3E2.js +6 -0
- langflow/frontend/assets/octagon-alert-md8Oao7u.js +6 -0
- langflow/frontend/assets/octagon-minus-Cc_gHYtC.js +6 -0
- langflow/frontend/assets/octagon-pause-C7MUZYuh.js +6 -0
- langflow/frontend/assets/octagon-x-BQYO8GMn.js +6 -0
- langflow/frontend/assets/omega-CU1MpvJU.js +6 -0
- langflow/frontend/assets/option-C5Rg07Sl.js +6 -0
- langflow/frontend/assets/orbit-B3ocM8-d.js +6 -0
- langflow/frontend/assets/origami-JzHXL6Dk.js +6 -0
- langflow/frontend/assets/package-2-DO44AWHc.js +6 -0
- langflow/frontend/assets/package-CwrFrAMu.js +6 -0
- langflow/frontend/assets/package-check-BRxPtA5p.js +6 -0
- langflow/frontend/assets/package-minus-YFaS6BaX.js +6 -0
- langflow/frontend/assets/package-open-FnJmHpJv.js +6 -0
- langflow/frontend/assets/package-plus-CAjmdTne.js +6 -0
- langflow/frontend/assets/package-search-CdBJetKl.js +6 -0
- langflow/frontend/assets/package-x-BLKjO2eq.js +6 -0
- langflow/frontend/assets/paint-bucket-DoOTrFVu.js +6 -0
- langflow/frontend/assets/paint-roller-Cb2MSctw.js +6 -0
- langflow/frontend/assets/paintbrush-dnz2OAMR.js +6 -0
- langflow/frontend/assets/paintbrush-vertical-C5UrMLvF.js +6 -0
- langflow/frontend/assets/palette-BxqFp5t2.js +6 -0
- langflow/frontend/assets/panel-bottom-close-ncnmJhg8.js +6 -0
- langflow/frontend/assets/panel-bottom-dashed-UdmaCgY7.js +6 -0
- langflow/frontend/assets/panel-bottom-eTZmuraY.js +6 -0
- langflow/frontend/assets/panel-bottom-open-Dbs_WqhR.js +6 -0
- langflow/frontend/assets/panel-left-close-DV4DR3ie.js +6 -0
- langflow/frontend/assets/panel-left-dashed-C1sCc2jK.js +6 -0
- langflow/frontend/assets/panel-left-open-BQnsccxM.js +6 -0
- langflow/frontend/assets/panel-right-BFuTI62x.js +6 -0
- langflow/frontend/assets/panel-right-close-bod1-jOq.js +6 -0
- langflow/frontend/assets/panel-right-dashed-MxJPl1lQ.js +6 -0
- langflow/frontend/assets/panel-right-open-CDgnWaIW.js +6 -0
- langflow/frontend/assets/panel-top-CenicwIv.js +6 -0
- langflow/frontend/assets/panel-top-close-Cq2nC7LP.js +6 -0
- langflow/frontend/assets/panel-top-dashed-CzMSCT2o.js +6 -0
- langflow/frontend/assets/panel-top-open-fg5kvR48.js +6 -0
- langflow/frontend/assets/panels-left-bottom-T5CveQA4.js +6 -0
- langflow/frontend/assets/panels-right-bottom-acfqz5Hm.js +6 -0
- langflow/frontend/assets/panels-top-left-BeWxDQBs.js +6 -0
- langflow/frontend/assets/paperclip-D2MRSHHN.js +6 -0
- langflow/frontend/assets/parentheses-CQmWAgPc.js +6 -0
- langflow/frontend/assets/parking-meter-ib6v0j9a.js +6 -0
- langflow/frontend/assets/party-popper-CBwSjWoy.js +6 -0
- langflow/frontend/assets/pause-4ik9vRpz.js +6 -0
- langflow/frontend/assets/paw-print-Bi51_Rdl.js +6 -0
- langflow/frontend/assets/pc-case-Dd2iFvhG.js +6 -0
- langflow/frontend/assets/pen-BsVMrYOM.js +6 -0
- langflow/frontend/assets/pen-line-CfSYJk5k.js +6 -0
- langflow/frontend/assets/pen-off-DmI4mxKO.js +6 -0
- langflow/frontend/assets/pen-tool-DpN5IQqK.js +6 -0
- langflow/frontend/assets/pencil-CnvSqq9E.js +6 -0
- langflow/frontend/assets/pencil-line-Cv2Q45K5.js +6 -0
- langflow/frontend/assets/pencil-off-C49fCIW7.js +6 -0
- langflow/frontend/assets/pencil-ruler-DAeg2bdi.js +6 -0
- langflow/frontend/assets/pentagon-D_2Fd2hP.js +6 -0
- langflow/frontend/assets/percent-CxnPPS9D.js +6 -0
- langflow/frontend/assets/person-standing-BmeKuCs0.js +6 -0
- langflow/frontend/assets/philippine-peso-BUadQ7aL.js +6 -0
- langflow/frontend/assets/phone-Dc0-XP1y.js +6 -0
- langflow/frontend/assets/phone-call-C1VXoEvz.js +6 -0
- langflow/frontend/assets/phone-forwarded-CItqQhbm.js +6 -0
- langflow/frontend/assets/phone-incoming-DvtXIK_d.js +6 -0
- langflow/frontend/assets/phone-missed-BSgT0ES_.js +6 -0
- langflow/frontend/assets/phone-off-BLfKEnqS.js +6 -0
- langflow/frontend/assets/phone-outgoing-CB9jO0wi.js +6 -0
- langflow/frontend/assets/pi-D8lV65pI.js +6 -0
- langflow/frontend/assets/piano-ym7-VfOd.js +6 -0
- langflow/frontend/assets/pickaxe-xGhSTRIS.js +6 -0
- langflow/frontend/assets/picture-in-picture-2-DYP4WRm-.js +6 -0
- langflow/frontend/assets/picture-in-picture-Dq9rZO4x.js +6 -0
- langflow/frontend/assets/piggy-bank-BCCB1R4A.js +6 -0
- langflow/frontend/assets/pilcrow-CU7Rv-8i.js +6 -0
- langflow/frontend/assets/pilcrow-left-BIfybUyH.js +6 -0
- langflow/frontend/assets/pilcrow-right-DvZgqqvx.js +6 -0
- langflow/frontend/assets/pill-CaKp9nyY.js +6 -0
- langflow/frontend/assets/pill-bottle-CBf4Z-OM.js +6 -0
- langflow/frontend/assets/pin-BeZjDACi.js +6 -0
- langflow/frontend/assets/pin-off-TSQkgKaQ.js +6 -0
- langflow/frontend/assets/pipette-CI5r7aID.js +6 -0
- langflow/frontend/assets/pizza-DIdkWDbC.js +6 -0
- langflow/frontend/assets/plane-DasyaaeG.js +6 -0
- langflow/frontend/assets/plane-landing-DY8EBUup.js +6 -0
- langflow/frontend/assets/plane-takeoff-DWRMHcUu.js +6 -0
- langflow/frontend/assets/play-BHvJZ-tK.js +6 -0
- langflow/frontend/assets/plug-2-DYFrpJRx.js +6 -0
- langflow/frontend/assets/plug-D74j5l8U.js +6 -0
- langflow/frontend/assets/plug-zap-PX9X-ieh.js +6 -0
- langflow/frontend/assets/pocket-BuhWmNdN.js +6 -0
- langflow/frontend/assets/pocket-knife-8QhaEEq2.js +6 -0
- langflow/frontend/assets/podcast-Ds4Zox1G.js +6 -0
- langflow/frontend/assets/pointer-BQ50bTCS.js +6 -0
- langflow/frontend/assets/pointer-off-C7_83iBT.js +6 -0
- langflow/frontend/assets/popcorn-wzvIrx8u.js +6 -0
- langflow/frontend/assets/popsicle-MwkE2Aee.js +6 -0
- langflow/frontend/assets/pound-sterling-Bn-sGQ1C.js +6 -0
- langflow/frontend/assets/power-BMEfl_mV.js +6 -0
- langflow/frontend/assets/power-off-Cy6CcHqh.js +6 -0
- langflow/frontend/assets/presentation-FcvaTax4.js +6 -0
- langflow/frontend/assets/printer-C_9Hzhe-.js +6 -0
- langflow/frontend/assets/printer-check-D9LFftoB.js +6 -0
- langflow/frontend/assets/projector-ByOYTWy6.js +6 -0
- langflow/frontend/assets/proportions-DZ1pcxxR.js +6 -0
- langflow/frontend/assets/puzzle-Cb7C_lxv.js +6 -0
- langflow/frontend/assets/pyramid-DGX6Ikl-.js +6 -0
- langflow/frontend/assets/qr-code-CYlOb1Hm.js +6 -0
- langflow/frontend/assets/quote-BpeCXW04.js +6 -0
- langflow/frontend/assets/rabbit-Dy4wj8w9.js +6 -0
- langflow/frontend/assets/radar-Cqq2P4fW.js +6 -0
- langflow/frontend/assets/radiation-TavajO3t.js +6 -0
- langflow/frontend/assets/radical-CNj7CXiI.js +6 -0
- langflow/frontend/assets/radio-B1SQYPzL.js +6 -0
- langflow/frontend/assets/radio-receiver-BpKzb-rN.js +6 -0
- langflow/frontend/assets/radio-tower-Civ7am11.js +6 -0
- langflow/frontend/assets/radius-DelXvZFb.js +6 -0
- langflow/frontend/assets/rail-symbol-B6EGzEUL.js +6 -0
- langflow/frontend/assets/rainbow-Mum3y2K8.js +6 -0
- langflow/frontend/assets/rat-BQkQBdtC.js +6 -0
- langflow/frontend/assets/ratio-B0hNnb8h.js +6 -0
- langflow/frontend/assets/receipt-NheD0Ao7.js +6 -0
- langflow/frontend/assets/receipt-cent-8DaAbSV_.js +6 -0
- langflow/frontend/assets/receipt-euro-c2YO7kB0.js +6 -0
- langflow/frontend/assets/receipt-indian-rupee-BsgzYTIw.js +6 -0
- langflow/frontend/assets/receipt-japanese-yen-BP4fBfYx.js +6 -0
- langflow/frontend/assets/receipt-pound-sterling-CUtyAkvm.js +6 -0
- langflow/frontend/assets/receipt-russian-ruble-Wlih9_yF.js +6 -0
- langflow/frontend/assets/receipt-swiss-franc-DWJOU2sF.js +6 -0
- langflow/frontend/assets/receipt-text-WlDOUmGq.js +6 -0
- langflow/frontend/assets/rectangle-ellipsis-DrWCArBe.js +6 -0
- langflow/frontend/assets/rectangle-goggles-Byxj78Cj.js +6 -0
- langflow/frontend/assets/rectangle-horizontal-B3mv0dAV.js +6 -0
- langflow/frontend/assets/rectangle-vertical-lqaaALf_.js +6 -0
- langflow/frontend/assets/recycle-aeVxe9ox.js +6 -0
- langflow/frontend/assets/redo-2-BkHbS3Ol.js +6 -0
- langflow/frontend/assets/redo-C_26RijB.js +6 -0
- langflow/frontend/assets/redo-dot-BeGXpkFE.js +6 -0
- langflow/frontend/assets/refresh-ccw-BF4urLmN.js +6 -0
- langflow/frontend/assets/refresh-ccw-dot-CqhgyLBB.js +6 -0
- langflow/frontend/assets/refresh-cw-92xD8szx.js +6 -0
- langflow/frontend/assets/refresh-cw-off-CcODXuaZ.js +6 -0
- langflow/frontend/assets/refrigerator-D1WV19AY.js +6 -0
- langflow/frontend/assets/regex-CEhziw9j.js +6 -0
- langflow/frontend/assets/remove-formatting-CrWZY5zo.js +6 -0
- langflow/frontend/assets/repeat-1-DoopLbsZ.js +6 -0
- langflow/frontend/assets/repeat-2-CmM6Xe4n.js +6 -0
- langflow/frontend/assets/repeat-CBnSNzwD.js +6 -0
- langflow/frontend/assets/replace-DIjMhOu3.js +6 -0
- langflow/frontend/assets/replace-all-DRH83F7a.js +6 -0
- langflow/frontend/assets/reply-B4mXB-Wv.js +6 -0
- langflow/frontend/assets/reply-all-ChQ85rpD.js +6 -0
- langflow/frontend/assets/rewind-DX7H_a9y.js +6 -0
- langflow/frontend/assets/ribbon-gu8wh58M.js +6 -0
- langflow/frontend/assets/rocket-DLR5-Yxm.js +6 -0
- langflow/frontend/assets/rocking-chair-BT25Twcp.js +6 -0
- langflow/frontend/assets/roller-coaster-CW4P8ueW.js +6 -0
- langflow/frontend/assets/rotate-3d-DllU6r2A.js +6 -0
- langflow/frontend/assets/rotate-ccw-DJKy3x_z.js +6 -0
- langflow/frontend/assets/rotate-ccw-key-C6dpwRcQ.js +6 -0
- langflow/frontend/assets/rotate-ccw-square-DGIgmdjQ.js +6 -0
- langflow/frontend/assets/rotate-cw-CuOYYnRd.js +6 -0
- langflow/frontend/assets/rotate-cw-square-DExBGsLt.js +6 -0
- langflow/frontend/assets/route-BuYQuGvp.js +6 -0
- langflow/frontend/assets/route-off-CQaPgX8f.js +6 -0
- langflow/frontend/assets/router-DSykRBBM.js +6 -0
- langflow/frontend/assets/rows-2-BvK7htUX.js +6 -0
- langflow/frontend/assets/rows-3-B4dmLbIf.js +6 -0
- langflow/frontend/assets/rows-4-izngHmxQ.js +6 -0
- langflow/frontend/assets/rss-BUuvJaxP.js +6 -0
- langflow/frontend/assets/ruler-CUrLlh8A.js +6 -0
- langflow/frontend/assets/ruler-dimension-line-Ib8nUefi.js +6 -0
- langflow/frontend/assets/russian-ruble-vEWDBqfj.js +6 -0
- langflow/frontend/assets/sailboat-BHW70xlU.js +6 -0
- langflow/frontend/assets/salad-CshAsVBT.js +6 -0
- langflow/frontend/assets/sandwich-DcbdAEEq.js +6 -0
- langflow/frontend/assets/satellite-CfVgkpZy.js +6 -0
- langflow/frontend/assets/satellite-dish-yH0GJkPf.js +6 -0
- langflow/frontend/assets/saudi-riyal-D5aH3cXo.js +6 -0
- langflow/frontend/assets/save-CtvXsL6M.js +6 -0
- langflow/frontend/assets/save-all-Dmog_kSn.js +6 -0
- langflow/frontend/assets/save-off-BEi0Jd7s.js +6 -0
- langflow/frontend/assets/scale-3d-DUxdspRp.js +6 -0
- langflow/frontend/assets/scale-D58nk3AP.js +6 -0
- langflow/frontend/assets/scaling-DaZsBNp5.js +6 -0
- langflow/frontend/assets/scan-CvM3oDXH.js +6 -0
- langflow/frontend/assets/scan-barcode-C_nBCUzn.js +6 -0
- langflow/frontend/assets/scan-eye-BKW4Xqqi.js +6 -0
- langflow/frontend/assets/scan-face-DeFh5a4D.js +6 -0
- langflow/frontend/assets/scan-heart-DY3uqm29.js +6 -0
- langflow/frontend/assets/scan-line-BCvKraXq.js +6 -0
- langflow/frontend/assets/scan-qr-code-YkxbT531.js +6 -0
- langflow/frontend/assets/scan-search-BNvPOaGn.js +6 -0
- langflow/frontend/assets/scan-text-rGK4NP72.js +6 -0
- langflow/frontend/assets/school-etj3P8BW.js +6 -0
- langflow/frontend/assets/scissors-CX4bEm4e.js +6 -0
- langflow/frontend/assets/scissors-line-dashed-CZ32xsQz.js +6 -0
- langflow/frontend/assets/screen-share-DUmcrUWR.js +6 -0
- langflow/frontend/assets/screen-share-off-DLTixjT7.js +6 -0
- langflow/frontend/assets/scroll-DFumuDXh.js +6 -0
- langflow/frontend/assets/scroll-text-1CUpG1NV.js +6 -0
- langflow/frontend/assets/search-check-c21LgDct.js +6 -0
- langflow/frontend/assets/search-code-CGzVNaMf.js +6 -0
- langflow/frontend/assets/search-slash-BLQ1zmHQ.js +6 -0
- langflow/frontend/assets/search-x-DjZCUKUJ.js +6 -0
- langflow/frontend/assets/section-xm9xMjek.js +6 -0
- langflow/frontend/assets/send-BHelvKY_.js +6 -0
- langflow/frontend/assets/send-horizontal-wy-Qzi2A.js +6 -0
- langflow/frontend/assets/send-to-back-DVRpXzLe.js +6 -0
- langflow/frontend/assets/separator-horizontal-DO8ekX7H.js +6 -0
- langflow/frontend/assets/separator-vertical-BCHM8Wyi.js +6 -0
- langflow/frontend/assets/server-cog--68U9lLF.js +6 -0
- langflow/frontend/assets/server-crash-BaQMAnKA.js +6 -0
- langflow/frontend/assets/server-dwFSj7D0.js +6 -0
- langflow/frontend/assets/server-off-BXtT97Nv.js +6 -0
- langflow/frontend/assets/settings-2-eEtVHl6k.js +6 -0
- langflow/frontend/assets/settings-jwYcmQvx.js +6 -0
- langflow/frontend/assets/shapes-D1HxbBPB.js +6 -0
- langflow/frontend/assets/share-2-CNVWHA5X.js +6 -0
- langflow/frontend/assets/share-_Ss_O_jS.js +6 -0
- langflow/frontend/assets/sheet-MEH0l2Ny.js +6 -0
- langflow/frontend/assets/shell-C8mdjaAA.js +6 -0
- langflow/frontend/assets/shield-Bufhr6Q2.js +6 -0
- langflow/frontend/assets/shield-alert-BQPlyrOK.js +6 -0
- langflow/frontend/assets/shield-ban-B88Z73tF.js +6 -0
- langflow/frontend/assets/shield-check-nhhnEDqb.js +6 -0
- langflow/frontend/assets/shield-ellipsis-BB6VWr4x.js +6 -0
- langflow/frontend/assets/shield-half-eLHWev2O.js +6 -0
- langflow/frontend/assets/shield-minus-CL_xkTJ7.js +6 -0
- langflow/frontend/assets/shield-off-DhzzXg--.js +6 -0
- langflow/frontend/assets/shield-plus-BF4xQJUC.js +6 -0
- langflow/frontend/assets/shield-question-zJhYxmUP.js +6 -0
- langflow/frontend/assets/shield-user-DDteWWIP.js +6 -0
- langflow/frontend/assets/shield-x-Bm3s2HiU.js +6 -0
- langflow/frontend/assets/ship-B_g_km-p.js +6 -0
- langflow/frontend/assets/ship-wheel-DnLTel39.js +6 -0
- langflow/frontend/assets/shirt-CiyOZV3M.js +6 -0
- langflow/frontend/assets/shopping-bag-CAr5PPfq.js +6 -0
- langflow/frontend/assets/shopping-basket-BZfeOXa8.js +6 -0
- langflow/frontend/assets/shopping-cart-Zq3eXsD2.js +6 -0
- langflow/frontend/assets/shovel-CasOPdTj.js +6 -0
- langflow/frontend/assets/shower-head-O9YDKQWC.js +6 -0
- langflow/frontend/assets/shredder-JZE1u-vD.js +6 -0
- langflow/frontend/assets/shrimp-L_AF8TRX.js +6 -0
- langflow/frontend/assets/shrink-Dt2ya0tf.js +6 -0
- langflow/frontend/assets/shrub-BSrl1hBI.js +6 -0
- langflow/frontend/assets/shuffle-DE9sRcfW.js +6 -0
- langflow/frontend/assets/sigma-ZZ_ZLube.js +6 -0
- langflow/frontend/assets/signal-BQ2QYa9H.js +6 -0
- langflow/frontend/assets/signal-high-C-jFYN1Z.js +6 -0
- langflow/frontend/assets/signal-low-BRaWc0NI.js +6 -0
- langflow/frontend/assets/signal-medium-DjJWv463.js +6 -0
- langflow/frontend/assets/signal-zero-D6y8ETIN.js +6 -0
- langflow/frontend/assets/signature-CuWsQQh-.js +6 -0
- langflow/frontend/assets/signpost-Cx4YXYKD.js +6 -0
- langflow/frontend/assets/signpost-big-CL_aHuNJ.js +6 -0
- langflow/frontend/assets/siren-CtCi-8ad.js +6 -0
- langflow/frontend/assets/skip-back--whDhpwj.js +6 -0
- langflow/frontend/assets/skip-forward-B9Hg6t4g.js +6 -0
- langflow/frontend/assets/skull-PQgjtsF0.js +6 -0
- langflow/frontend/assets/slack-BWRzy8-p.js +6 -0
- langflow/frontend/assets/slash-BEfBn9_V.js +6 -0
- langflow/frontend/assets/slice-CxQNkK0K.js +6 -0
- langflow/frontend/assets/sliders-horizontal-BEI8Gtum.js +6 -0
- langflow/frontend/assets/sliders-vertical-D2TlIu3E.js +6 -0
- langflow/frontend/assets/smartphone-DLpNZv2_.js +6 -0
- langflow/frontend/assets/smartphone-charging-jDUjQVuW.js +6 -0
- langflow/frontend/assets/smartphone-nfc-Cq83AszU.js +6 -0
- langflow/frontend/assets/smile-DKjVIgOp.js +6 -0
- langflow/frontend/assets/smile-plus-1IsKgG2X.js +6 -0
- langflow/frontend/assets/snail-DC8tQ4-g.js +6 -0
- langflow/frontend/assets/snowflake-CP8A7Nxu.js +6 -0
- langflow/frontend/assets/sofa-D2KnnvJl.js +6 -0
- langflow/frontend/assets/soup-BTKzUjpe.js +6 -0
- langflow/frontend/assets/space-VkR5jeU4.js +6 -0
- langflow/frontend/assets/spade-BW0kGNh3.js +6 -0
- langflow/frontend/assets/sparkle-K8qo8h3I.js +6 -0
- langflow/frontend/assets/sparkles-DTjfFniJ.js +6 -0
- langflow/frontend/assets/speaker-CRtL_E0x.js +6 -0
- langflow/frontend/assets/speech-BeB3sEp6.js +6 -0
- langflow/frontend/assets/spell-check-2-BDBt2H-d.js +6 -0
- langflow/frontend/assets/spell-check-DU3zIsvq.js +6 -0
- langflow/frontend/assets/spline-gs-J2kwo.js +6 -0
- langflow/frontend/assets/spline-pointer-CSzNxuiA.js +6 -0
- langflow/frontend/assets/split-BmR8fHnr.js +6 -0
- langflow/frontend/assets/spray-can-CrxDKZ--.js +6 -0
- langflow/frontend/assets/sprout-ca131VKi.js +6 -0
- langflow/frontend/assets/square-DzZwRfMN.js +6 -0
- langflow/frontend/assets/square-activity-Cfp0ukpr.js +6 -0
- langflow/frontend/assets/square-arrow-down-C1aZu0lU.js +6 -0
- langflow/frontend/assets/square-arrow-down-left-MPNOcAv_.js +6 -0
- langflow/frontend/assets/square-arrow-down-right-CBYggFOh.js +6 -0
- langflow/frontend/assets/square-arrow-left-CWFMHl8M.js +6 -0
- langflow/frontend/assets/square-arrow-out-down-left-Cmvg3FIf.js +6 -0
- langflow/frontend/assets/square-arrow-out-down-right-PgvOFxoY.js +6 -0
- langflow/frontend/assets/square-arrow-out-up-left-C6K5lRCv.js +6 -0
- langflow/frontend/assets/square-arrow-out-up-right-BXvVF3cD.js +6 -0
- langflow/frontend/assets/square-arrow-right-DrkASAmw.js +6 -0
- langflow/frontend/assets/square-arrow-up-Bjd9Tbol.js +6 -0
- langflow/frontend/assets/square-arrow-up-left-BL-LB113.js +6 -0
- langflow/frontend/assets/square-arrow-up-right-pZ0V5jyg.js +6 -0
- langflow/frontend/assets/square-asterisk-B_plChlc.js +6 -0
- langflow/frontend/assets/square-bottom-dashed-scissors-DXBaRY1E.js +6 -0
- langflow/frontend/assets/square-chart-gantt-32rgZyX9.js +6 -0
- langflow/frontend/assets/square-check-3_0Ldgr6.js +6 -0
- langflow/frontend/assets/square-check-big-D81Cxzf5.js +6 -0
- langflow/frontend/assets/square-chevron-down-Cj6V2eY9.js +6 -0
- langflow/frontend/assets/square-chevron-left-BsywNms_.js +6 -0
- langflow/frontend/assets/square-chevron-right-DvTaw9DJ.js +6 -0
- langflow/frontend/assets/square-chevron-up-DpIZqmdv.js +6 -0
- langflow/frontend/assets/square-code-BeB8Fj2Y.js +6 -0
- langflow/frontend/assets/square-dashed-DX3GQ9F3.js +6 -0
- langflow/frontend/assets/square-dashed-bottom-WTuQCeLI.js +6 -0
- langflow/frontend/assets/square-dashed-bottom-code-Bp2-lk5t.js +6 -0
- langflow/frontend/assets/square-dashed-kanban-C_uZCArJ.js +6 -0
- langflow/frontend/assets/square-dashed-mouse-pointer-BZRXTDhM.js +6 -0
- langflow/frontend/assets/square-divide-DSVGoj9G.js +6 -0
- langflow/frontend/assets/square-dot-CXa5DhFh.js +6 -0
- langflow/frontend/assets/square-equal-BqWlOTEn.js +6 -0
- langflow/frontend/assets/square-function-D284HdUu.js +6 -0
- langflow/frontend/assets/square-kanban-DUOvQnUH.js +6 -0
- langflow/frontend/assets/square-library-DDXw44wI.js +6 -0
- langflow/frontend/assets/square-m-BF_TQ9Cf.js +6 -0
- langflow/frontend/assets/square-menu-B-dB2eM6.js +6 -0
- langflow/frontend/assets/square-minus-HfnCHWdD.js +6 -0
- langflow/frontend/assets/square-mouse-pointer-Dt-RWrXN.js +6 -0
- langflow/frontend/assets/square-parking-BvrIdmig.js +6 -0
- langflow/frontend/assets/square-parking-off-8FVQFwCx.js +6 -0
- langflow/frontend/assets/square-pen-CLnMBjnx.js +6 -0
- langflow/frontend/assets/square-percent-CdTlqfp3.js +6 -0
- langflow/frontend/assets/square-pi-CsvibBVl.js +6 -0
- langflow/frontend/assets/square-pilcrow-pS5Ul-bK.js +6 -0
- langflow/frontend/assets/square-play-DI134_AO.js +6 -0
- langflow/frontend/assets/square-plus-D4UcrriC.js +6 -0
- langflow/frontend/assets/square-power-BcftUNEC.js +6 -0
- langflow/frontend/assets/square-radical-D1Qj2mLw.js +6 -0
- langflow/frontend/assets/square-round-corner-uTJh6kyi.js +6 -0
- langflow/frontend/assets/square-scissors-DZWmZQt3.js +6 -0
- langflow/frontend/assets/square-sigma-D30LygvT.js +6 -0
- langflow/frontend/assets/square-slash-GLHug1Bf.js +6 -0
- langflow/frontend/assets/square-split-horizontal-CVQOp8wE.js +6 -0
- langflow/frontend/assets/square-split-vertical-C0jBnjl6.js +6 -0
- langflow/frontend/assets/square-square-BqSqlkC1.js +6 -0
- langflow/frontend/assets/square-stack-9Y2YO8T1.js +6 -0
- langflow/frontend/assets/square-terminal-DiUYFcJv.js +6 -0
- langflow/frontend/assets/square-user-BAUZZsCx.js +6 -0
- langflow/frontend/assets/square-user-round-Bzx1c4LE.js +6 -0
- langflow/frontend/assets/square-x-C_y-SDM1.js +6 -0
- langflow/frontend/assets/squares-exclude-BO9MBffP.js +6 -0
- langflow/frontend/assets/squares-intersect-Br9MQtTg.js +6 -0
- langflow/frontend/assets/squares-subtract-psRhckWt.js +6 -0
- langflow/frontend/assets/squares-unite-DyOgW2Vx.js +6 -0
- langflow/frontend/assets/squircle-BW0qUEDC.js +6 -0
- langflow/frontend/assets/squirrel-B1PCZcX7.js +6 -0
- langflow/frontend/assets/stamp-DwQmPbPr.js +6 -0
- langflow/frontend/assets/star-fFP8t_7q.js +6 -0
- langflow/frontend/assets/star-half-BpzaPZ-q.js +6 -0
- langflow/frontend/assets/star-off-BvshgrKR.js +6 -0
- langflow/frontend/assets/step-back-BY-Bsa9s.js +6 -0
- langflow/frontend/assets/step-forward-CIIzpXm5.js +6 -0
- langflow/frontend/assets/stethoscope-DAEc3st8.js +6 -0
- langflow/frontend/assets/sticker-BMHaQMId.js +6 -0
- langflow/frontend/assets/sticky-note-DDileyAQ.js +6 -0
- langflow/frontend/assets/store-DfBKA6fi.js +6 -0
- langflow/frontend/assets/stretch-horizontal-jQFmuGYU.js +6 -0
- langflow/frontend/assets/stretch-vertical-Byei0NbT.js +6 -0
- langflow/frontend/assets/strikethrough-A4fL3iV4.js +6 -0
- langflow/frontend/assets/subscript-DK_SS4pt.js +6 -0
- langflow/frontend/assets/sun-4fd6LvWs.js +6 -0
- langflow/frontend/assets/sun-dim-HhMydcHP.js +6 -0
- langflow/frontend/assets/sun-medium-DjxBBoh2.js +6 -0
- langflow/frontend/assets/sun-moon-BWpyhr-3.js +6 -0
- langflow/frontend/assets/sun-snow-BeLTEmYc.js +6 -0
- langflow/frontend/assets/sunrise-CX8TqGnP.js +6 -0
- langflow/frontend/assets/sunset-BpC3NXGb.js +6 -0
- langflow/frontend/assets/superscript-D9RddX1l.js +6 -0
- langflow/frontend/assets/swatch-book-DJ8i0JWb.js +6 -0
- langflow/frontend/assets/swiss-franc-SW-LCYYq.js +6 -0
- langflow/frontend/assets/switch-camera-CjruoEXV.js +6 -0
- langflow/frontend/assets/sword-DmrZIU8a.js +6 -0
- langflow/frontend/assets/swords-DEcGiJG7.js +6 -0
- langflow/frontend/assets/syringe-CDVMo3E1.js +6 -0
- langflow/frontend/assets/table-2-vNkNX7y9.js +6 -0
- langflow/frontend/assets/table-BDb0iTH8.js +6 -0
- langflow/frontend/assets/table-cells-merge-tBicSBqx.js +6 -0
- langflow/frontend/assets/table-cells-split-k0pm8r-z.js +6 -0
- langflow/frontend/assets/table-columns-split-Dov8Wc3R.js +6 -0
- langflow/frontend/assets/table-of-contents-DeqJlN_X.js +6 -0
- langflow/frontend/assets/table-properties-Cp0ivTQn.js +6 -0
- langflow/frontend/assets/table-rows-split-D2EEPbX-.js +6 -0
- langflow/frontend/assets/tablet-CtXXR51w.js +6 -0
- langflow/frontend/assets/tablet-smartphone-CHjkzAcr.js +6 -0
- langflow/frontend/assets/tablets-BGkOgo0p.js +6 -0
- langflow/frontend/assets/tag-C88BOFe6.js +6 -0
- langflow/frontend/assets/tags-7TOEs5rh.js +6 -0
- langflow/frontend/assets/tally-1-CMskgLGB.js +6 -0
- langflow/frontend/assets/tally-2-DaIOVDfb.js +6 -0
- langflow/frontend/assets/tally-3-BbvkFqwf.js +6 -0
- langflow/frontend/assets/tally-4-Cq0tWGV0.js +6 -0
- langflow/frontend/assets/tally-5-u8pBx1l9.js +6 -0
- langflow/frontend/assets/tangent-C_v48U-g.js +6 -0
- langflow/frontend/assets/target-CB2HrkPb.js +6 -0
- langflow/frontend/assets/telescope-Dm2PswZ7.js +6 -0
- langflow/frontend/assets/tent-DCbJTRn2.js +6 -0
- langflow/frontend/assets/tent-tree-dBK1jEo4.js +6 -0
- langflow/frontend/assets/terminal-pOIul2oS.js +6 -0
- langflow/frontend/assets/test-tube-BVXifMPd.js +6 -0
- langflow/frontend/assets/test-tube-diagonal-Cc6H-LMb.js +6 -0
- langflow/frontend/assets/test-tubes-Bd1XLhNz.js +6 -0
- langflow/frontend/assets/text-CF6hsYkQ.js +6 -0
- langflow/frontend/assets/text-cursor-DgrUmcwn.js +6 -0
- langflow/frontend/assets/text-cursor-input-BRBxmm3_.js +6 -0
- langflow/frontend/assets/text-quote-Ck3bSo7l.js +6 -0
- langflow/frontend/assets/text-search-Q8TrkYhl.js +6 -0
- langflow/frontend/assets/text-select-Ccuj1wh7.js +6 -0
- langflow/frontend/assets/theater-DQ_LLEiM.js +6 -0
- langflow/frontend/assets/thermometer-7vrUwdxo.js +6 -0
- langflow/frontend/assets/thermometer-snowflake-C0meu6Q5.js +6 -0
- langflow/frontend/assets/thermometer-sun-D73Y0MEA.js +6 -0
- langflow/frontend/assets/thumbs-down-CtLO2jHG.js +6 -0
- langflow/frontend/assets/thumbs-up-C3Td1jRD.js +6 -0
- langflow/frontend/assets/ticket-B-_7V3ku.js +6 -0
- langflow/frontend/assets/ticket-check-CDTR_0Xo.js +6 -0
- langflow/frontend/assets/ticket-minus-DU-f7iPB.js +6 -0
- langflow/frontend/assets/ticket-percent-Bmf_L17_.js +6 -0
- langflow/frontend/assets/ticket-plus-zywecdfp.js +6 -0
- langflow/frontend/assets/ticket-slash-DYRDEJ3N.js +6 -0
- langflow/frontend/assets/ticket-x-CaQznpCb.js +6 -0
- langflow/frontend/assets/tickets-D-cpkNHE.js +6 -0
- langflow/frontend/assets/tickets-plane-DbKB6xam.js +6 -0
- langflow/frontend/assets/timer-C5amVrwm.js +6 -0
- langflow/frontend/assets/timer-off-BPyCq6IB.js +6 -0
- langflow/frontend/assets/timer-reset-D5TcpPAv.js +6 -0
- langflow/frontend/assets/toggle-left-D98XWh2D.js +6 -0
- langflow/frontend/assets/toggle-right-KRKjuPT_.js +6 -0
- langflow/frontend/assets/toilet-YWNlUSw0.js +6 -0
- langflow/frontend/assets/tornado-BhCM1F4n.js +6 -0
- langflow/frontend/assets/torus-BLq85o-3.js +6 -0
- langflow/frontend/assets/touchpad-CLplDfXD.js +6 -0
- langflow/frontend/assets/touchpad-off-TJIdK87T.js +6 -0
- langflow/frontend/assets/tower-control-Dlwjcxoj.js +6 -0
- langflow/frontend/assets/toy-brick-CXqEbnyo.js +6 -0
- langflow/frontend/assets/tractor-D6b52dj_.js +6 -0
- langflow/frontend/assets/traffic-cone-BEmASxIw.js +6 -0
- langflow/frontend/assets/train-front-Cc7j-mZK.js +6 -0
- langflow/frontend/assets/train-front-tunnel-19z4RXsT.js +6 -0
- langflow/frontend/assets/train-track-CAAfEbqV.js +6 -0
- langflow/frontend/assets/tram-front-BUg3imga.js +6 -0
- langflow/frontend/assets/transgender-BA_FSj-u.js +6 -0
- langflow/frontend/assets/trash-2OeKKrxP.js +6 -0
- langflow/frontend/assets/tree-deciduous-DAI28UoR.js +6 -0
- langflow/frontend/assets/tree-palm-ByDsq_iJ.js +6 -0
- langflow/frontend/assets/tree-pine-BoPibGar.js +6 -0
- langflow/frontend/assets/trees-DHxVjS2D.js +6 -0
- langflow/frontend/assets/trello-DC9xQlgy.js +6 -0
- langflow/frontend/assets/trending-down-fnwk1gYn.js +6 -0
- langflow/frontend/assets/trending-up-BiFprBoY.js +6 -0
- langflow/frontend/assets/trending-up-down-tL00exws.js +6 -0
- langflow/frontend/assets/triangle-alert-CUgkF9bT.js +6 -0
- langflow/frontend/assets/triangle-dashed-CCl-Ou-q.js +6 -0
- langflow/frontend/assets/triangle-right-HXK9dggf.js +6 -0
- langflow/frontend/assets/triangle-wWFGnoXq.js +6 -0
- langflow/frontend/assets/trophy-B4r9FOcN.js +6 -0
- langflow/frontend/assets/truck-BIqbPrdA.js +6 -0
- langflow/frontend/assets/truck-electric-BNLEjUHH.js +6 -0
- langflow/frontend/assets/turtle-CLYisEUb.js +6 -0
- langflow/frontend/assets/tv-DE1XLcDO.js +6 -0
- langflow/frontend/assets/tv-minimal-CkGt4oeG.js +6 -0
- langflow/frontend/assets/tv-minimal-play-C4QNBnnM.js +6 -0
- langflow/frontend/assets/twitch-4zpjzKnn.js +6 -0
- langflow/frontend/assets/twitter-DtjE68Po.js +6 -0
- langflow/frontend/assets/type-D3fPDZEV.js +6 -0
- langflow/frontend/assets/type-outline-Cb1ZJZxR.js +6 -0
- langflow/frontend/assets/umbrella-jyxnt8Uh.js +6 -0
- langflow/frontend/assets/umbrella-off-Dcj1kxHM.js +6 -0
- langflow/frontend/assets/underline-CTJUoQ5A.js +6 -0
- langflow/frontend/assets/undo-2-D6pABNuv.js +6 -0
- langflow/frontend/assets/undo-CW0Ru-vR.js +6 -0
- langflow/frontend/assets/undo-dot-D5TUrOm8.js +6 -0
- langflow/frontend/assets/unfold-horizontal-Cyi9PjqF.js +6 -0
- langflow/frontend/assets/unfold-vertical-Bw4jY5BU.js +6 -0
- langflow/frontend/assets/ungroup-Dg1Nxn55.js +6 -0
- langflow/frontend/assets/university-Cpja84hz.js +6 -0
- langflow/frontend/assets/unlink-2-CfeUGqaL.js +6 -0
- langflow/frontend/assets/unlink-CRsYGeiQ.js +6 -0
- langflow/frontend/assets/unplug-kArckE87.js +6 -0
- langflow/frontend/assets/upload-C0z1tMv3.js +6 -0
- langflow/frontend/assets/usb-pK0x_msM.js +6 -0
- langflow/frontend/assets/use-post-add-user-CTfvdDgm.js +1 -0
- langflow/frontend/assets/user-CYb6I--K.js +6 -0
- langflow/frontend/assets/user-check-DN8PVcKH.js +6 -0
- langflow/frontend/assets/user-cog-BfAoVBIQ.js +6 -0
- langflow/frontend/assets/user-lock-CN7zPQp1.js +6 -0
- langflow/frontend/assets/user-minus-CLA5rUgw.js +6 -0
- langflow/frontend/assets/user-pen-Cqeh6kZs.js +6 -0
- langflow/frontend/assets/user-plus-DEvzlwVk.js +6 -0
- langflow/frontend/assets/user-round-C5iZ0qgG.js +6 -0
- langflow/frontend/assets/user-round-check-BH6wPJr_.js +6 -0
- langflow/frontend/assets/user-round-cog-CmDgAgBT.js +6 -0
- langflow/frontend/assets/user-round-minus-Dzs93aa6.js +6 -0
- langflow/frontend/assets/user-round-pen-jFl6zE5l.js +6 -0
- langflow/frontend/assets/user-round-plus-B5kF24c0.js +6 -0
- langflow/frontend/assets/user-round-search-Ufud_H7Y.js +6 -0
- langflow/frontend/assets/user-round-x-DemWmMk-.js +6 -0
- langflow/frontend/assets/user-search-DyqY3Z4p.js +6 -0
- langflow/frontend/assets/user-x-xWe2LSq5.js +6 -0
- langflow/frontend/assets/users-CIF2XMyV.js +6 -0
- langflow/frontend/assets/users-round-CLF1tj52.js +6 -0
- langflow/frontend/assets/utensils-BNRwEKXS.js +6 -0
- langflow/frontend/assets/utensils-crossed-tx85c0By.js +6 -0
- langflow/frontend/assets/utility-pole-DaA7pMEn.js +6 -0
- langflow/frontend/assets/variable-Bk9JiMUE.js +6 -0
- langflow/frontend/assets/vault-CWh3Z9NS.js +6 -0
- langflow/frontend/assets/vegan-DA9rwDh2.js +6 -0
- langflow/frontend/assets/venetian-mask-D1mUQEf8.js +6 -0
- langflow/frontend/assets/venus-BhPEaBFw.js +6 -0
- langflow/frontend/assets/venus-and-mars-7wCgnbVZ.js +6 -0
- langflow/frontend/assets/vibrate-Bf4kWHhY.js +6 -0
- langflow/frontend/assets/vibrate-off-DVkA2Blb.js +6 -0
- langflow/frontend/assets/video-BWErFYI_.js +6 -0
- langflow/frontend/assets/video-off-CCKPb-AI.js +6 -0
- langflow/frontend/assets/videotape-BCw1JQVM.js +6 -0
- langflow/frontend/assets/view-DqsSMcxt.js +6 -0
- langflow/frontend/assets/voicemail-D2G5-58w.js +6 -0
- langflow/frontend/assets/volleyball-BahQ9nyT.js +6 -0
- langflow/frontend/assets/volume-1-Cy4QFQfu.js +6 -0
- langflow/frontend/assets/volume-2-T_S9aJt9.js +6 -0
- langflow/frontend/assets/volume-DhmwFLZM.js +6 -0
- langflow/frontend/assets/volume-off-CHG2yHRE.js +6 -0
- langflow/frontend/assets/volume-x-CMkcbeRe.js +6 -0
- langflow/frontend/assets/vote-CgdG8REW.js +6 -0
- langflow/frontend/assets/wallet-CgCQyNuC.js +6 -0
- langflow/frontend/assets/wallet-cards-fAcGhH4Y.js +6 -0
- langflow/frontend/assets/wallet-minimal-BNVD81ho.js +6 -0
- langflow/frontend/assets/wallpaper-znA5Uz2A.js +6 -0
- langflow/frontend/assets/wand-aEWmHs_4.js +6 -0
- langflow/frontend/assets/wand-sparkles-DDxUZvPE.js +6 -0
- langflow/frontend/assets/warehouse-yPUPZYQm.js +6 -0
- langflow/frontend/assets/washing-machine-DidsRoGX.js +6 -0
- langflow/frontend/assets/watch-CYZ_ICBe.js +6 -0
- langflow/frontend/assets/waves-BKd3_mCd.js +6 -0
- langflow/frontend/assets/waves-ladder-BvRkpGLO.js +6 -0
- langflow/frontend/assets/waypoints-K6NXLstp.js +6 -0
- langflow/frontend/assets/webcam-CLPXO_mE.js +6 -0
- langflow/frontend/assets/webhook-DUc3CJ6T.js +6 -0
- langflow/frontend/assets/webhook-off-DZgAywhC.js +6 -0
- langflow/frontend/assets/weight-GSWIcGSY.js +6 -0
- langflow/frontend/assets/wheat-Cz6eOCnV.js +6 -0
- langflow/frontend/assets/wheat-off-EjilPRfB.js +6 -0
- langflow/frontend/assets/whole-word-D2sASkSi.js +6 -0
- langflow/frontend/assets/wifi-PcQXXyHp.js +6 -0
- langflow/frontend/assets/wifi-high-CngcsB2O.js +6 -0
- langflow/frontend/assets/wifi-low-C5_B2LFd.js +6 -0
- langflow/frontend/assets/wifi-off-Doon60lY.js +6 -0
- langflow/frontend/assets/wifi-pen-CXUcIzeE.js +6 -0
- langflow/frontend/assets/wifi-zero-jr0jJZb9.js +6 -0
- langflow/frontend/assets/wind-77C2ub3B.js +6 -0
- langflow/frontend/assets/wind-arrow-down-CkKGxyqD.js +6 -0
- langflow/frontend/assets/wine-DSpVTz3i.js +6 -0
- langflow/frontend/assets/wine-off-DVaivXhq.js +6 -0
- langflow/frontend/assets/workflow-Dd00LJqw.js +6 -0
- langflow/frontend/assets/worm-B8umq2e7.js +6 -0
- langflow/frontend/assets/wrap-text-DXDAFdFQ.js +6 -0
- langflow/frontend/assets/wrench-DPKXsb9A.js +6 -0
- langflow/frontend/assets/youtube-DLP7NXOq.js +6 -0
- langflow/frontend/assets/zap-DM63C_Ti.js +6 -0
- langflow/frontend/assets/zap-off-BUNzQm5k.js +6 -0
- langflow/frontend/assets/zoom-in-pTV2KHhw.js +6 -0
- langflow/frontend/assets/zoom-out-BOhst0SA.js +6 -0
- langflow/frontend/index.html +2 -2
- langflow/initial_setup/starter_projects/Basic Prompt Chaining.json +3 -3
- langflow/initial_setup/starter_projects/Basic Prompting.json +3 -3
- langflow/initial_setup/starter_projects/Blog Writer.json +3 -3
- langflow/initial_setup/starter_projects/Custom Component Generator.json +3 -3
- langflow/initial_setup/starter_projects/Document Q&A.json +16 -7
- langflow/initial_setup/starter_projects/Financial Report Parser.json +5 -3
- langflow/initial_setup/starter_projects/Hybrid Search RAG.json +6 -4
- langflow/initial_setup/starter_projects/Image Sentiment Analysis.json +5 -3
- langflow/initial_setup/starter_projects/Instagram Copywriter.json +40 -11
- langflow/initial_setup/starter_projects/Invoice Summarizer.json +40 -11
- langflow/initial_setup/starter_projects/Knowledge Ingestion.json +1 -1
- langflow/initial_setup/starter_projects/Knowledge Retrieval.json +4 -4
- langflow/initial_setup/starter_projects/Market Research.json +40 -12
- langflow/initial_setup/starter_projects/Meeting Summary.json +9 -9
- langflow/initial_setup/starter_projects/Memory Chatbot.json +3 -3
- langflow/initial_setup/starter_projects/News Aggregator.json +47 -17
- langflow/initial_setup/starter_projects/Nvidia Remix.json +62 -16
- langflow/initial_setup/starter_projects/Pok/303/251dex Agent.json" +40 -11
- langflow/initial_setup/starter_projects/Portfolio Website Code Generator.json +18 -7
- langflow/initial_setup/starter_projects/Price Deal Finder.json +40 -11
- langflow/initial_setup/starter_projects/Research Agent.json +40 -11
- langflow/initial_setup/starter_projects/Research Translation Loop.json +3 -3
- langflow/initial_setup/starter_projects/SEO Keyword Generator.json +3 -3
- langflow/initial_setup/starter_projects/SaaS Pricing.json +40 -11
- langflow/initial_setup/starter_projects/Search agent.json +41 -12
- langflow/initial_setup/starter_projects/Sequential Tasks Agents.json +115 -31
- langflow/initial_setup/starter_projects/Simple Agent.json +40 -12
- langflow/initial_setup/starter_projects/Social Media Agent.json +42 -14
- langflow/initial_setup/starter_projects/Text Sentiment Analysis.json +19 -10
- langflow/initial_setup/starter_projects/Travel Planning Agents.json +114 -30
- langflow/initial_setup/starter_projects/Twitter Thread Generator.json +3 -3
- langflow/initial_setup/starter_projects/Vector Store RAG.json +18 -9
- langflow/initial_setup/starter_projects/Youtube Analysis.json +43 -15
- langflow/main.py +29 -13
- langflow/server.py +10 -0
- langflow/services/auth/utils.py +16 -5
- langflow/services/database/models/api_key/crud.py +45 -2
- langflow/services/deps.py +11 -6
- langflow/services/storage/local.py +35 -1
- langflow/services/storage/s3.py +30 -0
- langflow/services/storage/service.py +36 -0
- langflow/utils/mcp_cleanup.py +125 -0
- langflow_base_nightly-1.7.0.dev34.dist-info/METADATA +99 -0
- langflow_base_nightly-1.7.0.dev34.dist-info/RECORD +2278 -0
- langflow/frontend/assets/SlackIcon-CEF_Lfgx.js +0 -1
- langflow/frontend/assets/Wikipedia-l89g58MW.js +0 -1
- langflow/frontend/assets/Wolfram-B0u7kBCd.js +0 -1
- langflow/frontend/assets/a-arrow-down-C1MR1UMk.js +0 -6
- langflow/frontend/assets/a-arrow-up-CMZerhaE.js +0 -6
- langflow/frontend/assets/a-large-small-Bv7wOVZp.js +0 -6
- langflow/frontend/assets/accessibility-BrEGjJ3h.js +0 -6
- langflow/frontend/assets/activity-D-a4MWi-.js +0 -6
- langflow/frontend/assets/air-vent-myzlVebI.js +0 -6
- langflow/frontend/assets/airplay-DyNG71LB.js +0 -6
- langflow/frontend/assets/alarm-clock-DH1LaNKu.js +0 -6
- langflow/frontend/assets/alarm-clock-check-C7zLrHCl.js +0 -6
- langflow/frontend/assets/alarm-clock-minus-B9sLdpi9.js +0 -6
- langflow/frontend/assets/alarm-clock-off-COlkkF3b.js +0 -6
- langflow/frontend/assets/alarm-clock-plus-DxfQCpS0.js +0 -6
- langflow/frontend/assets/alarm-smoke-DOKB4jdQ.js +0 -6
- langflow/frontend/assets/album-CbhFkW2K.js +0 -6
- langflow/frontend/assets/align-center-D4bRdbdX.js +0 -6
- langflow/frontend/assets/align-center-horizontal-DRKr69Bu.js +0 -6
- langflow/frontend/assets/align-center-vertical-B7CTn1nz.js +0 -6
- langflow/frontend/assets/align-end-horizontal-CgCdy2MI.js +0 -6
- langflow/frontend/assets/align-end-vertical-DnzR3Jh8.js +0 -6
- langflow/frontend/assets/align-horizontal-distribute-center-DcI8WEBg.js +0 -6
- langflow/frontend/assets/align-horizontal-distribute-end-ocyg2Ism.js +0 -6
- langflow/frontend/assets/align-horizontal-distribute-start-0cj83d0Q.js +0 -6
- langflow/frontend/assets/align-horizontal-justify-center-ELZCJfLJ.js +0 -6
- langflow/frontend/assets/align-horizontal-justify-end-CAvLzWix.js +0 -6
- langflow/frontend/assets/align-horizontal-justify-start-THFMmtW8.js +0 -6
- langflow/frontend/assets/align-horizontal-space-around-DM87J1lM.js +0 -6
- langflow/frontend/assets/align-horizontal-space-between-CWBgfaSR.js +0 -6
- langflow/frontend/assets/align-justify-BZr4mv6M.js +0 -6
- langflow/frontend/assets/align-left-DDKaY-tD.js +0 -6
- langflow/frontend/assets/align-right-UFsrS9ty.js +0 -6
- langflow/frontend/assets/align-start-horizontal-CDMo5O5J.js +0 -6
- langflow/frontend/assets/align-start-vertical-mfpy9Ha8.js +0 -6
- langflow/frontend/assets/align-vertical-distribute-center-D35O90hK.js +0 -6
- langflow/frontend/assets/align-vertical-distribute-end-BOhCSYqd.js +0 -6
- langflow/frontend/assets/align-vertical-distribute-start-CRtaDGO3.js +0 -6
- langflow/frontend/assets/align-vertical-justify-center-BEDLBLzr.js +0 -6
- langflow/frontend/assets/align-vertical-justify-end-CpmZIv_b.js +0 -6
- langflow/frontend/assets/align-vertical-justify-start-BaQPjHDD.js +0 -6
- langflow/frontend/assets/align-vertical-space-around-DN8HaVwe.js +0 -6
- langflow/frontend/assets/align-vertical-space-between-CtfMVSNs.js +0 -6
- langflow/frontend/assets/ambulance-EysJPjDH.js +0 -6
- langflow/frontend/assets/ampersand-De5P08QL.js +0 -6
- langflow/frontend/assets/ampersands-BFEb_UYl.js +0 -6
- langflow/frontend/assets/amphora-CeQeqX39.js +0 -6
- langflow/frontend/assets/anchor-Bmj6G_T-.js +0 -6
- langflow/frontend/assets/angry-BJ4OZ8cf.js +0 -6
- langflow/frontend/assets/annoyed-CnuYiPsR.js +0 -6
- langflow/frontend/assets/antenna-BF54KX6Q.js +0 -6
- langflow/frontend/assets/anvil-BDp882_x.js +0 -6
- langflow/frontend/assets/aperture-C-RXeV-R.js +0 -6
- langflow/frontend/assets/app-window-CnWdW7Z8.js +0 -6
- langflow/frontend/assets/app-window-mac-BWkyg2Dt.js +0 -6
- langflow/frontend/assets/apple-Cy1_Ygqa.js +0 -6
- langflow/frontend/assets/archive-DQM1ljrp.js +0 -6
- langflow/frontend/assets/archive-restore-CR7ZCkrs.js +0 -6
- langflow/frontend/assets/archive-x-Cah6BUmC.js +0 -6
- langflow/frontend/assets/armchair-CI__vHrc.js +0 -6
- langflow/frontend/assets/arrow-big-down-dash-Cexbrdd1.js +0 -6
- langflow/frontend/assets/arrow-big-down-es-qZLrf.js +0 -6
- langflow/frontend/assets/arrow-big-left-BNfP62tw.js +0 -6
- langflow/frontend/assets/arrow-big-left-dash-CDo880bt.js +0 -6
- langflow/frontend/assets/arrow-big-right-Cw4xK1An.js +0 -6
- langflow/frontend/assets/arrow-big-right-dash-Bv-LrLEi.js +0 -6
- langflow/frontend/assets/arrow-big-up-1D3Ok-B4.js +0 -6
- langflow/frontend/assets/arrow-big-up-dash-DkwHTfuU.js +0 -6
- langflow/frontend/assets/arrow-down-0-1-sOAZahEa.js +0 -6
- langflow/frontend/assets/arrow-down-1-0-jFkfLsFL.js +0 -6
- langflow/frontend/assets/arrow-down-DiLgk_Lv.js +0 -6
- langflow/frontend/assets/arrow-down-a-z-yfXUaZlY.js +0 -6
- langflow/frontend/assets/arrow-down-from-line-JwLxfDLL.js +0 -6
- langflow/frontend/assets/arrow-down-left-9rqXt219.js +0 -6
- langflow/frontend/assets/arrow-down-narrow-wide-DNQQfWSk.js +0 -6
- langflow/frontend/assets/arrow-down-right-C04MAksZ.js +0 -6
- langflow/frontend/assets/arrow-down-to-dot-BIQNg3lP.js +0 -6
- langflow/frontend/assets/arrow-down-to-line-AiuzCgPl.js +0 -6
- langflow/frontend/assets/arrow-down-up-BUl4CwHw.js +0 -6
- langflow/frontend/assets/arrow-down-wide-narrow-BEWv2A3j.js +0 -6
- langflow/frontend/assets/arrow-down-z-a-C-my0MFx.js +0 -6
- langflow/frontend/assets/arrow-left-DraCa3qF.js +0 -6
- langflow/frontend/assets/arrow-left-from-line-Cf8elz8N.js +0 -6
- langflow/frontend/assets/arrow-left-right-DnMFkXhG.js +0 -6
- langflow/frontend/assets/arrow-left-to-line-DqC6UI7j.js +0 -6
- langflow/frontend/assets/arrow-right-DjiPPpgB.js +0 -6
- langflow/frontend/assets/arrow-right-from-line-Dc9a1Fow.js +0 -6
- langflow/frontend/assets/arrow-right-left-DX4SFlaz.js +0 -6
- langflow/frontend/assets/arrow-right-to-line-QDmBsM4R.js +0 -6
- langflow/frontend/assets/arrow-up-0-1-B6al2yLS.js +0 -6
- langflow/frontend/assets/arrow-up-1-0-C6aJcw3B.js +0 -6
- langflow/frontend/assets/arrow-up-CjPYprhI.js +0 -6
- langflow/frontend/assets/arrow-up-a-z-BE7k_Es_.js +0 -6
- langflow/frontend/assets/arrow-up-down-nqmOlLPp.js +0 -6
- langflow/frontend/assets/arrow-up-from-dot-C3rxzunA.js +0 -6
- langflow/frontend/assets/arrow-up-from-line-KUrGFQEP.js +0 -6
- langflow/frontend/assets/arrow-up-left-DfnfqUsI.js +0 -6
- langflow/frontend/assets/arrow-up-narrow-wide-BxqaRTna.js +0 -6
- langflow/frontend/assets/arrow-up-right-XuwyPu6F.js +0 -6
- langflow/frontend/assets/arrow-up-to-line-ClQGsei8.js +0 -6
- langflow/frontend/assets/arrow-up-wide-narrow-Df4gI9kX.js +0 -6
- langflow/frontend/assets/arrow-up-z-a-BCD-rCLh.js +0 -6
- langflow/frontend/assets/arrows-up-from-line-BEVbeabp.js +0 -6
- langflow/frontend/assets/asterisk-DbNqMHXe.js +0 -6
- langflow/frontend/assets/at-sign-D6oIhdLE.js +0 -6
- langflow/frontend/assets/atom-BwKR6eUj.js +0 -6
- langflow/frontend/assets/audio-lines-DuaD6im4.js +0 -6
- langflow/frontend/assets/audio-waveform-BhXwvbto.js +0 -6
- langflow/frontend/assets/award-5kfq8rkw.js +0 -6
- langflow/frontend/assets/axe-BOOglolb.js +0 -6
- langflow/frontend/assets/axis-3d-DOFH7kHD.js +0 -6
- langflow/frontend/assets/baby-BEYKunXX.js +0 -6
- langflow/frontend/assets/backpack-_Qlx18_V.js +0 -6
- langflow/frontend/assets/badge-BOuSs5_H.js +0 -6
- langflow/frontend/assets/badge-alert-CckKfyfr.js +0 -6
- langflow/frontend/assets/badge-cent-BCVyiQHU.js +0 -6
- langflow/frontend/assets/badge-check-evlQm0SD.js +0 -6
- langflow/frontend/assets/badge-dollar-sign-Cs3GeUxH.js +0 -6
- langflow/frontend/assets/badge-euro-Bkq-NiJ5.js +0 -6
- langflow/frontend/assets/badge-help-CZrCA_Ar.js +0 -6
- langflow/frontend/assets/badge-indian-rupee-CGIxUK6a.js +0 -6
- langflow/frontend/assets/badge-info-tIeShHl2.js +0 -6
- langflow/frontend/assets/badge-japanese-yen-DC-UA7pC.js +0 -6
- langflow/frontend/assets/badge-minus-mAxFYDfn.js +0 -6
- langflow/frontend/assets/badge-percent-DInhOlwC.js +0 -6
- langflow/frontend/assets/badge-plus-Drx8vtQY.js +0 -6
- langflow/frontend/assets/badge-pound-sterling-SFaXfQwH.js +0 -6
- langflow/frontend/assets/badge-russian-ruble-Y4OZSJrU.js +0 -6
- langflow/frontend/assets/badge-swiss-franc-5KScJ4ZB.js +0 -6
- langflow/frontend/assets/badge-x-CntBKY-i.js +0 -6
- langflow/frontend/assets/baggage-claim-Bb6waYF4.js +0 -6
- langflow/frontend/assets/ban-Dr4CWBPj.js +0 -6
- langflow/frontend/assets/banana-C4ML2xXp.js +0 -6
- langflow/frontend/assets/bandage-BD0CHios.js +0 -6
- langflow/frontend/assets/banknote-DIcM5_C6.js +0 -6
- langflow/frontend/assets/banknote-arrow-down-v4zeqRIU.js +0 -6
- langflow/frontend/assets/banknote-arrow-up-BykOKE4i.js +0 -6
- langflow/frontend/assets/banknote-x-CpYx8SrC.js +0 -6
- langflow/frontend/assets/barcode-C9KJv53a.js +0 -6
- langflow/frontend/assets/baseline-BUk7-Xi7.js +0 -6
- langflow/frontend/assets/bath-Dg8LjUwx.js +0 -6
- langflow/frontend/assets/battery-CgmqlOl8.js +0 -6
- langflow/frontend/assets/battery-charging-pD-mMKPn.js +0 -6
- langflow/frontend/assets/battery-full-BWR4eBlS.js +0 -6
- langflow/frontend/assets/battery-low-CO0zIMLQ.js +0 -6
- langflow/frontend/assets/battery-medium-BDNKPIlP.js +0 -6
- langflow/frontend/assets/battery-plus-CDftjdMy.js +0 -6
- langflow/frontend/assets/battery-warning-BX8PdyQx.js +0 -6
- langflow/frontend/assets/beaker-DPQTIavx.js +0 -6
- langflow/frontend/assets/bean-Buf4iRsl.js +0 -6
- langflow/frontend/assets/bean-off-BdpjedQD.js +0 -6
- langflow/frontend/assets/bed-DbluJBcJ.js +0 -6
- langflow/frontend/assets/bed-double-ChlRO7Um.js +0 -6
- langflow/frontend/assets/bed-single-5Vz7P4KL.js +0 -6
- langflow/frontend/assets/beef-DLcY3ztG.js +0 -6
- langflow/frontend/assets/beer-CbZf1CLh.js +0 -6
- langflow/frontend/assets/beer-off-DQt9-Yvf.js +0 -6
- langflow/frontend/assets/bell-Dbx9wwOK.js +0 -6
- langflow/frontend/assets/bell-dot-KP_Rh9L4.js +0 -6
- langflow/frontend/assets/bell-electric-DYZym3Iv.js +0 -6
- langflow/frontend/assets/bell-minus-BZGjCom7.js +0 -6
- langflow/frontend/assets/bell-off-BAvH_HuW.js +0 -6
- langflow/frontend/assets/bell-plus-DPFkXHZc.js +0 -6
- langflow/frontend/assets/bell-ring-DuesEJGI.js +0 -6
- langflow/frontend/assets/between-horizontal-end-BPoYnPxc.js +0 -6
- langflow/frontend/assets/between-horizontal-start-DVqlwINr.js +0 -6
- langflow/frontend/assets/between-vertical-end-CGwEFKvW.js +0 -6
- langflow/frontend/assets/between-vertical-start-CTFQjVNF.js +0 -6
- langflow/frontend/assets/biceps-flexed-B2vA7PZV.js +0 -6
- langflow/frontend/assets/bike-Br2K_Koa.js +0 -6
- langflow/frontend/assets/binary-BHLdLb2-.js +0 -6
- langflow/frontend/assets/binoculars-DuKZH8Zh.js +0 -6
- langflow/frontend/assets/biohazard-B8FjW09n.js +0 -6
- langflow/frontend/assets/bird-itw24Hbj.js +0 -6
- langflow/frontend/assets/bitcoin-DgG8rKcA.js +0 -6
- langflow/frontend/assets/blend-CG2CKs-3.js +0 -6
- langflow/frontend/assets/blinds-BvB5LjVo.js +0 -6
- langflow/frontend/assets/blocks-NmxNFC3J.js +0 -6
- langflow/frontend/assets/bluetooth-CyLo6vyP.js +0 -6
- langflow/frontend/assets/bluetooth-connected-CW0EZSjS.js +0 -6
- langflow/frontend/assets/bluetooth-off-CLA2FgtZ.js +0 -6
- langflow/frontend/assets/bluetooth-searching-D39nzp26.js +0 -6
- langflow/frontend/assets/bold-Mwjfwd6i.js +0 -6
- langflow/frontend/assets/bolt-CCG6giOU.js +0 -6
- langflow/frontend/assets/bomb-CmW9GByV.js +0 -6
- langflow/frontend/assets/bone-B-ftIZZC.js +0 -6
- langflow/frontend/assets/book-C9k3ZOBc.js +0 -6
- langflow/frontend/assets/book-a-JtyovsEF.js +0 -6
- langflow/frontend/assets/book-audio-D4ca-u-T.js +0 -6
- langflow/frontend/assets/book-check-BeS3k1s2.js +0 -6
- langflow/frontend/assets/book-copy-C4XYhOc3.js +0 -6
- langflow/frontend/assets/book-dashed-B4RKCqvz.js +0 -6
- langflow/frontend/assets/book-down-C7cuvnxL.js +0 -6
- langflow/frontend/assets/book-headphones-W0HUkTzm.js +0 -6
- langflow/frontend/assets/book-heart-PLiTcr-b.js +0 -6
- langflow/frontend/assets/book-image-CwGwbb3g.js +0 -6
- langflow/frontend/assets/book-key-7traCCG2.js +0 -6
- langflow/frontend/assets/book-lock-Dlltc43Y.js +0 -6
- langflow/frontend/assets/book-marked-CdTsOLQX.js +0 -6
- langflow/frontend/assets/book-minus-6JqstP_B.js +0 -6
- langflow/frontend/assets/book-open--eSp397E.js +0 -6
- langflow/frontend/assets/book-open-check-Bkp4i0Z6.js +0 -6
- langflow/frontend/assets/book-open-text-BIWmd2fT.js +0 -6
- langflow/frontend/assets/book-plus-CflK6Aqe.js +0 -6
- langflow/frontend/assets/book-text-ByR7Lfzl.js +0 -6
- langflow/frontend/assets/book-type-Bq-Jm1g2.js +0 -6
- langflow/frontend/assets/book-up-2-DZZJTQeK.js +0 -6
- langflow/frontend/assets/book-up-ieUJxufA.js +0 -6
- langflow/frontend/assets/book-user-DJC4YpOj.js +0 -6
- langflow/frontend/assets/book-x-BYw2JmSg.js +0 -6
- langflow/frontend/assets/bookmark-DmgojVBV.js +0 -6
- langflow/frontend/assets/bookmark-check-BWmkNODf.js +0 -6
- langflow/frontend/assets/bookmark-minus-Opo6htKF.js +0 -6
- langflow/frontend/assets/bookmark-plus-Cmq9o8rG.js +0 -6
- langflow/frontend/assets/bookmark-x-Bbo75e-_.js +0 -6
- langflow/frontend/assets/boom-box-BUwW6n9i.js +0 -6
- langflow/frontend/assets/bot-DQCZD09Z.js +0 -6
- langflow/frontend/assets/bot-message-square-Qg8qf_Vo.js +0 -6
- langflow/frontend/assets/bot-off-CWhYg4QH.js +0 -6
- langflow/frontend/assets/bow-arrow-2G8YQj8T.js +0 -6
- langflow/frontend/assets/box-DI6aYfMK.js +0 -6
- langflow/frontend/assets/boxes-BtNp1YLT.js +0 -6
- langflow/frontend/assets/braces-BLcS_5vG.js +0 -6
- langflow/frontend/assets/brackets-Cv8xrRQf.js +0 -6
- langflow/frontend/assets/brain-DgRUprQ7.js +0 -6
- langflow/frontend/assets/brain-circuit-BtOL0kFy.js +0 -6
- langflow/frontend/assets/brain-cog-zXypBGqp.js +0 -6
- langflow/frontend/assets/brick-wall-CFFET0Vi.js +0 -6
- langflow/frontend/assets/brick-wall-fire-ZpPxxgvZ.js +0 -6
- langflow/frontend/assets/briefcase-Bbqle57g.js +0 -6
- langflow/frontend/assets/briefcase-business-EvgZ-pGn.js +0 -6
- langflow/frontend/assets/briefcase-conveyor-belt-B71ya1iU.js +0 -6
- langflow/frontend/assets/briefcase-medical-0jat9rYx.js +0 -6
- langflow/frontend/assets/bring-to-front-Cy8Ad0pA.js +0 -6
- langflow/frontend/assets/brush-5lcMFo2M.js +0 -6
- langflow/frontend/assets/bubbles--ZENXIG2.js +0 -6
- langflow/frontend/assets/bug-DRy9Jp16.js +0 -6
- langflow/frontend/assets/bug-off-BxN14Ao_.js +0 -6
- langflow/frontend/assets/bug-play-Dleid9nE.js +0 -6
- langflow/frontend/assets/building-2-CK8gdrCW.js +0 -6
- langflow/frontend/assets/building-DnAh38ZD.js +0 -6
- langflow/frontend/assets/bus-BDx_jniJ.js +0 -6
- langflow/frontend/assets/bus-front-B8mPAPPF.js +0 -6
- langflow/frontend/assets/cable-D1OmUrR-.js +0 -6
- langflow/frontend/assets/cable-car-tPhitjsJ.js +0 -6
- langflow/frontend/assets/cake-C6nHJ4UH.js +0 -6
- langflow/frontend/assets/cake-slice-BgiXTSq6.js +0 -6
- langflow/frontend/assets/calculator-DinCzLLu.js +0 -6
- langflow/frontend/assets/calendar-1-p13BBdjX.js +0 -6
- langflow/frontend/assets/calendar-B51W3LkW.js +0 -6
- langflow/frontend/assets/calendar-arrow-down-D4GLmFd6.js +0 -6
- langflow/frontend/assets/calendar-arrow-up-RlAgBFVb.js +0 -6
- langflow/frontend/assets/calendar-check-2-OzKJ28SZ.js +0 -6
- langflow/frontend/assets/calendar-check-DBkCCqIF.js +0 -6
- langflow/frontend/assets/calendar-clock-CPmhjPfI.js +0 -6
- langflow/frontend/assets/calendar-cog-DNf29O6g.js +0 -6
- langflow/frontend/assets/calendar-days-DM_qi8g0.js +0 -6
- langflow/frontend/assets/calendar-fold-DSBrdaqJ.js +0 -6
- langflow/frontend/assets/calendar-heart-CAtCjdjQ.js +0 -6
- langflow/frontend/assets/calendar-minus-2-hox-wOZr.js +0 -6
- langflow/frontend/assets/calendar-minus-DbKbHYOA.js +0 -6
- langflow/frontend/assets/calendar-off-DlYG3mA6.js +0 -6
- langflow/frontend/assets/calendar-plus-2-Ch9-ovuL.js +0 -6
- langflow/frontend/assets/calendar-plus-BN4Db129.js +0 -6
- langflow/frontend/assets/calendar-range-CJ4VugmU.js +0 -6
- langflow/frontend/assets/calendar-search-DHIkS4iK.js +0 -6
- langflow/frontend/assets/calendar-sync-CbzQX2UF.js +0 -6
- langflow/frontend/assets/calendar-x-2-BNmHDi_X.js +0 -6
- langflow/frontend/assets/calendar-x-LrNbzdAM.js +0 -6
- langflow/frontend/assets/camera-BseIeAZa.js +0 -6
- langflow/frontend/assets/camera-off-0d9MQnAK.js +0 -6
- langflow/frontend/assets/candy-DBuvO51G.js +0 -6
- langflow/frontend/assets/candy-cane-BhKAIRPp.js +0 -6
- langflow/frontend/assets/candy-off-xFO9zAdm.js +0 -6
- langflow/frontend/assets/cannabis-CECNWfs7.js +0 -6
- langflow/frontend/assets/captions-CZdZrpN9.js +0 -6
- langflow/frontend/assets/captions-off-ehI1itMu.js +0 -6
- langflow/frontend/assets/car-D0xYW2KF.js +0 -6
- langflow/frontend/assets/car-front-rr7hWrV5.js +0 -6
- langflow/frontend/assets/car-taxi-front-CQDj7ceR.js +0 -6
- langflow/frontend/assets/caravan-BI0wWOjB.js +0 -6
- langflow/frontend/assets/carrot-NTCSh6Bi.js +0 -6
- langflow/frontend/assets/case-lower-C0v-UmoB.js +0 -6
- langflow/frontend/assets/case-sensitive-CEBMjxQ0.js +0 -6
- langflow/frontend/assets/case-upper-qnPCGODe.js +0 -6
- langflow/frontend/assets/cassette-tape-o1NC2smT.js +0 -6
- langflow/frontend/assets/cast-DoGbtlSh.js +0 -6
- langflow/frontend/assets/castle-CDLhRCwv.js +0 -6
- langflow/frontend/assets/cat-ZE7MBg12.js +0 -6
- langflow/frontend/assets/cctv-BzSWabyA.js +0 -6
- langflow/frontend/assets/chart-area-BAWqnveI.js +0 -6
- langflow/frontend/assets/chart-bar-DQQ3LQU3.js +0 -6
- langflow/frontend/assets/chart-bar-big-D7MR2ePA.js +0 -6
- langflow/frontend/assets/chart-bar-decreasing-Vr_wGqvM.js +0 -6
- langflow/frontend/assets/chart-bar-increasing-DgEFeop5.js +0 -6
- langflow/frontend/assets/chart-bar-stacked-DnRijZKC.js +0 -6
- langflow/frontend/assets/chart-candlestick-DxGYDF5k.js +0 -6
- langflow/frontend/assets/chart-column-Et99item.js +0 -6
- langflow/frontend/assets/chart-column-big-yyRSq6kX.js +0 -6
- langflow/frontend/assets/chart-column-decreasing-CVvjizfE.js +0 -6
- langflow/frontend/assets/chart-column-increasing-CfeF2c-6.js +0 -6
- langflow/frontend/assets/chart-column-stacked-CF9zvWY4.js +0 -6
- langflow/frontend/assets/chart-gantt-BouGwyFq.js +0 -6
- langflow/frontend/assets/chart-line-Dk3EdrPb.js +0 -6
- langflow/frontend/assets/chart-network-CN4xGFXA.js +0 -6
- langflow/frontend/assets/chart-no-axes-column-BcQyHdMD.js +0 -6
- langflow/frontend/assets/chart-no-axes-column-decreasing-BgUclvV3.js +0 -6
- langflow/frontend/assets/chart-no-axes-column-increasing-DNTPc9wN.js +0 -6
- langflow/frontend/assets/chart-no-axes-combined-DF25ksrL.js +0 -6
- langflow/frontend/assets/chart-no-axes-gantt-BaC_vlS6.js +0 -6
- langflow/frontend/assets/chart-pie-B95LBWmZ.js +0 -6
- langflow/frontend/assets/chart-scatter-D8SFnMu1.js +0 -6
- langflow/frontend/assets/chart-spline-ClrgbOlE.js +0 -6
- langflow/frontend/assets/check-check-BXqbwrkO.js +0 -6
- langflow/frontend/assets/chef-hat-BjGOghzL.js +0 -6
- langflow/frontend/assets/cherry-CJB4mtL5.js +0 -6
- langflow/frontend/assets/chevron-first-2oTPGrLc.js +0 -6
- langflow/frontend/assets/chevron-last-3pCmFTmU.js +0 -6
- langflow/frontend/assets/chevron-left-ClDOQQjV.js +0 -6
- langflow/frontend/assets/chevron-right-C711qfbS.js +0 -6
- langflow/frontend/assets/chevrons-down-QCuIa8Yp.js +0 -6
- langflow/frontend/assets/chevrons-down-up-J6xSXJkb.js +0 -6
- langflow/frontend/assets/chevrons-left-NITQoGwJ.js +0 -6
- langflow/frontend/assets/chevrons-left-right-CYcrBR6M.js +0 -6
- langflow/frontend/assets/chevrons-left-right-ellipsis-Br8VMnkg.js +0 -6
- langflow/frontend/assets/chevrons-right-Cs2_g8bG.js +0 -6
- langflow/frontend/assets/chevrons-right-left-DtGiQ_O0.js +0 -6
- langflow/frontend/assets/chevrons-up-BMLMeGVh.js +0 -6
- langflow/frontend/assets/chrome-nvIjs2xZ.js +0 -6
- langflow/frontend/assets/church-Qq4UHf_z.js +0 -6
- langflow/frontend/assets/cigarette-CXfG_56T.js +0 -6
- langflow/frontend/assets/cigarette-off-CdYeRZyX.js +0 -6
- langflow/frontend/assets/circle-alert-DT5NKy9u.js +0 -6
- langflow/frontend/assets/circle-arrow-down-B2qM-Tuw.js +0 -6
- langflow/frontend/assets/circle-arrow-left-CBLpt9nA.js +0 -6
- langflow/frontend/assets/circle-arrow-out-down-left-gA68XlUY.js +0 -6
- langflow/frontend/assets/circle-arrow-out-down-right-HKXxeeQC.js +0 -6
- langflow/frontend/assets/circle-arrow-out-up-left-Cq1LyJKa.js +0 -6
- langflow/frontend/assets/circle-arrow-out-up-right-BUvVbJA7.js +0 -6
- langflow/frontend/assets/circle-arrow-right-D7t8P6ad.js +0 -6
- langflow/frontend/assets/circle-arrow-up-MHzCg4I0.js +0 -6
- langflow/frontend/assets/circle-check-B91Zb0zk.js +0 -6
- langflow/frontend/assets/circle-check-big-BVKtiAhQ.js +0 -6
- langflow/frontend/assets/circle-chevron-down-DNh3bpzK.js +0 -6
- langflow/frontend/assets/circle-chevron-left-BJb7vji3.js +0 -6
- langflow/frontend/assets/circle-chevron-right-CHmsilV-.js +0 -6
- langflow/frontend/assets/circle-chevron-up-Bj9nIZx9.js +0 -6
- langflow/frontend/assets/circle-dashed-DzEIY_5d.js +0 -6
- langflow/frontend/assets/circle-divide-BuJbzWip.js +0 -6
- langflow/frontend/assets/circle-dollar-sign-DdF9J_EI.js +0 -6
- langflow/frontend/assets/circle-dot-DitPRly6.js +0 -6
- langflow/frontend/assets/circle-dot-dashed-OHoDDXoS.js +0 -6
- langflow/frontend/assets/circle-ellipsis-Co5wf0tj.js +0 -6
- langflow/frontend/assets/circle-equal-qGSgRMn6.js +0 -6
- langflow/frontend/assets/circle-fading-arrow-up-DSM4N2tt.js +0 -6
- langflow/frontend/assets/circle-fading-plus-CTQq46rS.js +0 -6
- langflow/frontend/assets/circle-gauge-CisUMCG0.js +0 -6
- langflow/frontend/assets/circle-help-BF5hRBkX.js +0 -6
- langflow/frontend/assets/circle-minus-C3fjtT26.js +0 -6
- langflow/frontend/assets/circle-off-_zmE8lRn.js +0 -6
- langflow/frontend/assets/circle-parking-BLDdyc9C.js +0 -6
- langflow/frontend/assets/circle-parking-off-CxEO8auk.js +0 -6
- langflow/frontend/assets/circle-pause-CsP1hqTY.js +0 -6
- langflow/frontend/assets/circle-percent-CppecgnG.js +0 -6
- langflow/frontend/assets/circle-play-CElAyvGy.js +0 -6
- langflow/frontend/assets/circle-plus-DxOSr_qE.js +0 -6
- langflow/frontend/assets/circle-power-CX9PhDfK.js +0 -6
- langflow/frontend/assets/circle-slash-2--Mme5qmH.js +0 -6
- langflow/frontend/assets/circle-slash-BsqGhDcj.js +0 -6
- langflow/frontend/assets/circle-small-DQ5WLdC1.js +0 -6
- langflow/frontend/assets/circle-stop-5W_dFAx7.js +0 -6
- langflow/frontend/assets/circle-user-cdgPpsDB.js +0 -6
- langflow/frontend/assets/circle-user-round-DpFUTXdt.js +0 -6
- langflow/frontend/assets/circuit-board-Bzpo8k7-.js +0 -6
- langflow/frontend/assets/citrus-BD7KeVpe.js +0 -6
- langflow/frontend/assets/clapperboard-DJq3crx6.js +0 -6
- langflow/frontend/assets/clipboard-check-CzW6HoZg.js +0 -6
- langflow/frontend/assets/clipboard-copy-CuDmr3UP.js +0 -6
- langflow/frontend/assets/clipboard-list-blWwAWhj.js +0 -6
- langflow/frontend/assets/clipboard-minus-MDDcL-JV.js +0 -6
- langflow/frontend/assets/clipboard-paste-BALmGJWd.js +0 -6
- langflow/frontend/assets/clipboard-pen-CKtqpJ-f.js +0 -6
- langflow/frontend/assets/clipboard-pen-line-B8g42LUo.js +0 -6
- langflow/frontend/assets/clipboard-plus-DdcrgHOb.js +0 -6
- langflow/frontend/assets/clipboard-sn1jUIDV.js +0 -6
- langflow/frontend/assets/clipboard-type-DNViKiGe.js +0 -6
- langflow/frontend/assets/clipboard-x-BL6o1EDk.js +0 -6
- langflow/frontend/assets/clock-1-D_Xsorkr.js +0 -6
- langflow/frontend/assets/clock-10-C5lfthCJ.js +0 -6
- langflow/frontend/assets/clock-11-CrzatXPC.js +0 -6
- langflow/frontend/assets/clock-12-CB-3YTlR.js +0 -6
- langflow/frontend/assets/clock-2-CAjJbwpA.js +0 -6
- langflow/frontend/assets/clock-3-BkqbnGC2.js +0 -6
- langflow/frontend/assets/clock-4-B1iR-wjF.js +0 -6
- langflow/frontend/assets/clock-5-hqy_7zzP.js +0 -6
- langflow/frontend/assets/clock-6-COiBqCUV.js +0 -6
- langflow/frontend/assets/clock-7-D8H9-5o2.js +0 -6
- langflow/frontend/assets/clock-8-DmFZf8EJ.js +0 -6
- langflow/frontend/assets/clock-9-5vuBxoOH.js +0 -6
- langflow/frontend/assets/clock-CvX75A0g.js +0 -6
- langflow/frontend/assets/clock-alert-B4zpxMYp.js +0 -6
- langflow/frontend/assets/clock-arrow-down-Cp38KxCZ.js +0 -6
- langflow/frontend/assets/clock-arrow-up-Cu2Eqxj_.js +0 -6
- langflow/frontend/assets/clock-fading-DBqbXrNN.js +0 -6
- langflow/frontend/assets/cloud-alert-C8axZqAX.js +0 -6
- langflow/frontend/assets/cloud-cog-DH4WJaQY.js +0 -6
- langflow/frontend/assets/cloud-download-aSd93OOq.js +0 -6
- langflow/frontend/assets/cloud-drizzle-BoOXY0Vf.js +0 -6
- langflow/frontend/assets/cloud-ePqAv-Nj.js +0 -6
- langflow/frontend/assets/cloud-fog-DgOBgtbG.js +0 -6
- langflow/frontend/assets/cloud-hail-EUTfUsOC.js +0 -6
- langflow/frontend/assets/cloud-lightning-Bq38iQ8R.js +0 -6
- langflow/frontend/assets/cloud-moon-CEZa2582.js +0 -6
- langflow/frontend/assets/cloud-moon-rain-ViKAyE90.js +0 -6
- langflow/frontend/assets/cloud-off-BeDtlaCJ.js +0 -6
- langflow/frontend/assets/cloud-rain-BGFNQif7.js +0 -6
- langflow/frontend/assets/cloud-rain-wind-BJr3MNMX.js +0 -6
- langflow/frontend/assets/cloud-snow-B_NNumLp.js +0 -6
- langflow/frontend/assets/cloud-sun-CSeibAw_.js +0 -6
- langflow/frontend/assets/cloud-sun-rain-CmhhxE4C.js +0 -6
- langflow/frontend/assets/cloud-upload-DGtwHF2g.js +0 -6
- langflow/frontend/assets/cloudy-CZkWi5KD.js +0 -6
- langflow/frontend/assets/clover-DHTKeS-5.js +0 -6
- langflow/frontend/assets/club-BpMaUsgO.js +0 -6
- langflow/frontend/assets/code-xml-CAUmexA-.js +0 -6
- langflow/frontend/assets/codepen-ikBrTpKJ.js +0 -6
- langflow/frontend/assets/codesandbox-C08d09l6.js +0 -6
- langflow/frontend/assets/coffee-CvposdVX.js +0 -6
- langflow/frontend/assets/cog-C64LYrMn.js +0 -6
- langflow/frontend/assets/coins-UEx29OeF.js +0 -6
- langflow/frontend/assets/columns-2-Bsdbp-EE.js +0 -6
- langflow/frontend/assets/columns-3-DXwsg-oz.js +0 -6
- langflow/frontend/assets/columns-3-cog-DtVF6mVc.js +0 -6
- langflow/frontend/assets/columns-4-BRbvUIE-.js +0 -6
- langflow/frontend/assets/combine-BgQxFGO5.js +0 -6
- langflow/frontend/assets/command-B9cAeenh.js +0 -6
- langflow/frontend/assets/compass-pMFWbZJw.js +0 -6
- langflow/frontend/assets/component-BgLZWmP7.js +0 -6
- langflow/frontend/assets/computer-BXGdV9Gt.js +0 -6
- langflow/frontend/assets/concierge-bell-CbQqTx0G.js +0 -6
- langflow/frontend/assets/cone-CZ631cjP.js +0 -6
- langflow/frontend/assets/construction-DpDSFi2C.js +0 -6
- langflow/frontend/assets/contact-Bf_js1wR.js +0 -6
- langflow/frontend/assets/contact-round-CbjK6rc4.js +0 -6
- langflow/frontend/assets/container-SHkUJELq.js +0 -6
- langflow/frontend/assets/contrast-BrqH_HsS.js +0 -6
- langflow/frontend/assets/cookie-7yhFStaP.js +0 -6
- langflow/frontend/assets/cooking-pot-CtXq_mXS.js +0 -6
- langflow/frontend/assets/copy-D33RCBtr.js +0 -6
- langflow/frontend/assets/copy-check-BHsM9R9p.js +0 -6
- langflow/frontend/assets/copy-minus-DzHvDhtg.js +0 -6
- langflow/frontend/assets/copy-plus-D9aWk5ZC.js +0 -6
- langflow/frontend/assets/copy-slash-VkGSZ_CE.js +0 -6
- langflow/frontend/assets/copy-x-C4i424Hw.js +0 -6
- langflow/frontend/assets/copyleft-CqaewALy.js +0 -6
- langflow/frontend/assets/copyright-Bu0x5oIe.js +0 -6
- langflow/frontend/assets/corner-down-left-D6PAN-4K.js +0 -6
- langflow/frontend/assets/corner-down-right-Bn8MOthV.js +0 -6
- langflow/frontend/assets/corner-left-down-D5RxfmoN.js +0 -6
- langflow/frontend/assets/corner-left-up-C8TixmVG.js +0 -6
- langflow/frontend/assets/corner-right-down-CtmEwD6C.js +0 -6
- langflow/frontend/assets/corner-right-up-DG-F1pH2.js +0 -6
- langflow/frontend/assets/corner-up-left-QznD74yA.js +0 -6
- langflow/frontend/assets/corner-up-right-Bhkr_6ta.js +0 -6
- langflow/frontend/assets/cpu-CW82VU4w.js +0 -6
- langflow/frontend/assets/creative-commons-Bh5sqgki.js +0 -6
- langflow/frontend/assets/credit-card-1pfgVrv3.js +0 -6
- langflow/frontend/assets/croissant-DpBBx0pw.js +0 -6
- langflow/frontend/assets/crop-X7W6m64J.js +0 -6
- langflow/frontend/assets/cross-D542UVw8.js +0 -6
- langflow/frontend/assets/crosshair-B6mNFuS-.js +0 -6
- langflow/frontend/assets/crown-D6_nEBly.js +0 -6
- langflow/frontend/assets/cuboid-CyvwAGks.js +0 -6
- langflow/frontend/assets/cup-soda-lE90KQWF.js +0 -6
- langflow/frontend/assets/currency-CvqLSG-s.js +0 -6
- langflow/frontend/assets/cylinder-Dan7kvg6.js +0 -6
- langflow/frontend/assets/dam-BpbkiwPc.js +0 -6
- langflow/frontend/assets/database-CZ11Soos.js +0 -6
- langflow/frontend/assets/database-backup-ueaXvg29.js +0 -6
- langflow/frontend/assets/database-zap-CLyrj98z.js +0 -6
- langflow/frontend/assets/decimals-arrow-left-C4FshaZA.js +0 -6
- langflow/frontend/assets/decimals-arrow-right-BYKeQJvg.js +0 -6
- langflow/frontend/assets/delete-DGp28GjS.js +0 -6
- langflow/frontend/assets/dessert-vafoRC_I.js +0 -6
- langflow/frontend/assets/diameter-CpWKi4bQ.js +0 -6
- langflow/frontend/assets/diamond-D4sYlxiq.js +0 -6
- langflow/frontend/assets/diamond-minus-Dc9_xvul.js +0 -6
- langflow/frontend/assets/diamond-percent-Bls-21yM.js +0 -6
- langflow/frontend/assets/diamond-plus-DUfp2PhN.js +0 -6
- langflow/frontend/assets/dice-1-B5g_tzYc.js +0 -6
- langflow/frontend/assets/dice-2-DbCHSxL8.js +0 -6
- langflow/frontend/assets/dice-3-Bjv-XMP3.js +0 -6
- langflow/frontend/assets/dice-4-ChbYiYkR.js +0 -6
- langflow/frontend/assets/dice-5-CUmwrcU2.js +0 -6
- langflow/frontend/assets/dice-6-2a_DEvNP.js +0 -6
- langflow/frontend/assets/dices-Bfp6xf1T.js +0 -6
- langflow/frontend/assets/diff-DWrr4PgL.js +0 -6
- langflow/frontend/assets/disc-2-BKIHWtvV.js +0 -6
- langflow/frontend/assets/disc-3-C-YNVgLt.js +0 -6
- langflow/frontend/assets/disc-DcpBQ1vZ.js +0 -6
- langflow/frontend/assets/disc-album-BHqF8E8z.js +0 -6
- langflow/frontend/assets/divide-BowweBYy.js +0 -6
- langflow/frontend/assets/dna-CKx2UX_q.js +0 -6
- langflow/frontend/assets/dna-off-6vz4JWoY.js +0 -6
- langflow/frontend/assets/dock-CSWNUNEN.js +0 -6
- langflow/frontend/assets/dog-Brgy9TeF.js +0 -6
- langflow/frontend/assets/dollar-sign-BvVnYnyE.js +0 -6
- langflow/frontend/assets/donut-yE1ohHN1.js +0 -6
- langflow/frontend/assets/door-closed-DbQTZK_Z.js +0 -6
- langflow/frontend/assets/door-open-kU4MiMrV.js +0 -6
- langflow/frontend/assets/dot-BoAAat-a.js +0 -6
- langflow/frontend/assets/download-spnr31G_.js +0 -6
- langflow/frontend/assets/drafting-compass-BVLRoE9p.js +0 -6
- langflow/frontend/assets/drama-DH0VK2y4.js +0 -6
- langflow/frontend/assets/dribbble-BsRD_dOV.js +0 -6
- langflow/frontend/assets/drill-BQ8s8Ovp.js +0 -6
- langflow/frontend/assets/droplet-DgVYu4iw.js +0 -6
- langflow/frontend/assets/droplet-off-CWfFq3Y4.js +0 -6
- langflow/frontend/assets/droplets-BImhG8YB.js +0 -6
- langflow/frontend/assets/drum-CUBUrT-P.js +0 -6
- langflow/frontend/assets/drumstick-BdzvGI3x.js +0 -6
- langflow/frontend/assets/dumbbell-uzNP-XjP.js +0 -6
- langflow/frontend/assets/ear-DG1WWYBD.js +0 -6
- langflow/frontend/assets/ear-off-CnLtouCs.js +0 -6
- langflow/frontend/assets/earth-BLY47zLG.js +0 -6
- langflow/frontend/assets/earth-lock-C_4WyhYm.js +0 -6
- langflow/frontend/assets/eclipse-DotUntyW.js +0 -6
- langflow/frontend/assets/egg-D0p6D8iJ.js +0 -6
- langflow/frontend/assets/egg-fried-D8ZYWDd8.js +0 -6
- langflow/frontend/assets/egg-off-COi0Zq6A.js +0 -6
- langflow/frontend/assets/ellipsis-BqKuKkUq.js +0 -6
- langflow/frontend/assets/ellipsis-vertical-DLAiRoTI.js +0 -6
- langflow/frontend/assets/equal-BPZTCCOR.js +0 -6
- langflow/frontend/assets/equal-approximately-Ci9wlW7H.js +0 -6
- langflow/frontend/assets/equal-not-BbjIRsV9.js +0 -6
- langflow/frontend/assets/eraser-kryVNVEd.js +0 -6
- langflow/frontend/assets/ethernet-port-DY0h8gUB.js +0 -6
- langflow/frontend/assets/euro-CcGvvYEu.js +0 -6
- langflow/frontend/assets/expand-BT1hO_Gd.js +0 -6
- langflow/frontend/assets/eye-0Uepj1qe.js +0 -6
- langflow/frontend/assets/eye-closed-DhVJCZQy.js +0 -6
- langflow/frontend/assets/eye-off-DMZQc0_N.js +0 -6
- langflow/frontend/assets/facebook-BYV_s-7j.js +0 -6
- langflow/frontend/assets/factory-HMK58m9C.js +0 -6
- langflow/frontend/assets/fan-MiojL-un.js +0 -6
- langflow/frontend/assets/fast-forward-CP1NpIFe.js +0 -6
- langflow/frontend/assets/feather-BSp2xn9F.js +0 -6
- langflow/frontend/assets/fence-CBJziCGR.js +0 -6
- langflow/frontend/assets/ferris-wheel-Dc4hXImA.js +0 -6
- langflow/frontend/assets/figma-D1WZZKxq.js +0 -6
- langflow/frontend/assets/file-BJeOmSAw.js +0 -6
- langflow/frontend/assets/file-archive-CYnlcCTN.js +0 -6
- langflow/frontend/assets/file-audio-2-CFgbi0zE.js +0 -6
- langflow/frontend/assets/file-audio-UXcSArn5.js +0 -6
- langflow/frontend/assets/file-axis-3d-BkpPUlaa.js +0 -6
- langflow/frontend/assets/file-badge-2-DxqhO2Ge.js +0 -6
- langflow/frontend/assets/file-badge-R64auIUU.js +0 -6
- langflow/frontend/assets/file-box-BHVs20bG.js +0 -6
- langflow/frontend/assets/file-chart-column-DSBEh916.js +0 -6
- langflow/frontend/assets/file-chart-column-increasing-BLEWUcgJ.js +0 -6
- langflow/frontend/assets/file-chart-line-CkAf2P_o.js +0 -6
- langflow/frontend/assets/file-chart-pie-C6JyaHLt.js +0 -6
- langflow/frontend/assets/file-check-2-Ep64Ldje.js +0 -6
- langflow/frontend/assets/file-check-CfwhdRf-.js +0 -6
- langflow/frontend/assets/file-clock-yuvRB4zR.js +0 -6
- langflow/frontend/assets/file-code-2-DJSRSqgI.js +0 -6
- langflow/frontend/assets/file-code-tTXJt3y7.js +0 -6
- langflow/frontend/assets/file-cog-C3Bke8nN.js +0 -6
- langflow/frontend/assets/file-diff-07-zDqLK.js +0 -6
- langflow/frontend/assets/file-digit-C-TZ6TMx.js +0 -6
- langflow/frontend/assets/file-down-C_21auWB.js +0 -6
- langflow/frontend/assets/file-heart-BUWO_Ubq.js +0 -6
- langflow/frontend/assets/file-image-DeGNhVbH.js +0 -6
- langflow/frontend/assets/file-input-DC648sVv.js +0 -6
- langflow/frontend/assets/file-json-2-BleUm6B-.js +0 -6
- langflow/frontend/assets/file-json-DvYkA26T.js +0 -6
- langflow/frontend/assets/file-key-2-Df3DueKg.js +0 -6
- langflow/frontend/assets/file-key-D25uIzEV.js +0 -6
- langflow/frontend/assets/file-lock-2-CRuvNTc_.js +0 -6
- langflow/frontend/assets/file-lock-CSpPgoDZ.js +0 -6
- langflow/frontend/assets/file-minus-2-DYnr-vtz.js +0 -6
- langflow/frontend/assets/file-minus-CwO2J7XK.js +0 -6
- langflow/frontend/assets/file-music-frXWNJoK.js +0 -6
- langflow/frontend/assets/file-output-BCvl7eUX.js +0 -6
- langflow/frontend/assets/file-pen-CAaJniG8.js +0 -6
- langflow/frontend/assets/file-pen-line-Cgv1i6mY.js +0 -6
- langflow/frontend/assets/file-plus-2-BSvGeJIg.js +0 -6
- langflow/frontend/assets/file-plus-Bh-AJgy4.js +0 -6
- langflow/frontend/assets/file-question-DEVapx4f.js +0 -6
- langflow/frontend/assets/file-scan-t-aTKHOe.js +0 -6
- langflow/frontend/assets/file-search-2-Bh2Lyxdg.js +0 -6
- langflow/frontend/assets/file-search-B2BT1IJF.js +0 -6
- langflow/frontend/assets/file-sliders-BDrWWLnj.js +0 -6
- langflow/frontend/assets/file-spreadsheet-CMHqeLFl.js +0 -6
- langflow/frontend/assets/file-stack-DzWV1JJQ.js +0 -6
- langflow/frontend/assets/file-symlink-m0SuHMbb.js +0 -6
- langflow/frontend/assets/file-terminal-RtBqsz8t.js +0 -6
- langflow/frontend/assets/file-text-DcnfhlJS.js +0 -6
- langflow/frontend/assets/file-type-2-HgN3usQi.js +0 -6
- langflow/frontend/assets/file-type-Wo4mXDEa.js +0 -6
- langflow/frontend/assets/file-up-Ah5Vlblk.js +0 -6
- langflow/frontend/assets/file-user-C10BV3-F.js +0 -6
- langflow/frontend/assets/file-video-2-D60PR2tb.js +0 -6
- langflow/frontend/assets/file-video-D1LP9ceq.js +0 -6
- langflow/frontend/assets/file-volume-2-DWd0pH87.js +0 -6
- langflow/frontend/assets/file-volume-Dx1qqTPj.js +0 -6
- langflow/frontend/assets/file-warning-CntAQ03q.js +0 -6
- langflow/frontend/assets/file-x-2-D7pJdGQ4.js +0 -6
- langflow/frontend/assets/file-x-w3PSwPaN.js +0 -6
- langflow/frontend/assets/files-Ba_FZh9m.js +0 -6
- langflow/frontend/assets/film-CSV5uKAX.js +0 -6
- langflow/frontend/assets/fingerprint-BIoRa0QM.js +0 -6
- langflow/frontend/assets/fire-extinguisher-9pJExz54.js +0 -6
- langflow/frontend/assets/fish-D2IHyGo1.js +0 -6
- langflow/frontend/assets/fish-off-B1AV5M6o.js +0 -6
- langflow/frontend/assets/fish-symbol-1FtOa4Ff.js +0 -6
- langflow/frontend/assets/flag-DeciN7ml.js +0 -6
- langflow/frontend/assets/flag-off-DUP9GpZR.js +0 -6
- langflow/frontend/assets/flag-triangle-left-BFwEeuS_.js +0 -6
- langflow/frontend/assets/flag-triangle-right-CI_SLj86.js +0 -6
- langflow/frontend/assets/flame-GFGSOHNO.js +0 -6
- langflow/frontend/assets/flame-kindling-D8mfrPga.js +0 -6
- langflow/frontend/assets/flashlight-lOh9FijK.js +0 -6
- langflow/frontend/assets/flashlight-off-Bsi5bvDr.js +0 -6
- langflow/frontend/assets/flask-conical-Da2dFJgy.js +0 -6
- langflow/frontend/assets/flask-conical-off-BmBZh8li.js +0 -6
- langflow/frontend/assets/flask-round-DCNbM1Xr.js +0 -6
- langflow/frontend/assets/flip-horizontal-2-DjIxLldP.js +0 -6
- langflow/frontend/assets/flip-horizontal-Y1hdy1M8.js +0 -6
- langflow/frontend/assets/flip-vertical-2-CUzfycnQ.js +0 -6
- langflow/frontend/assets/flip-vertical-D-fZiBdV.js +0 -6
- langflow/frontend/assets/flower-2-DpuYXaI0.js +0 -6
- langflow/frontend/assets/flower-D7VN2vRV.js +0 -6
- langflow/frontend/assets/focus-CgjGqIlO.js +0 -6
- langflow/frontend/assets/fold-horizontal-DHM5GPi5.js +0 -6
- langflow/frontend/assets/fold-vertical-C9gKvqOi.js +0 -6
- langflow/frontend/assets/folder-DHBzBNi6.js +0 -6
- langflow/frontend/assets/folder-archive-Bg0p1BGr.js +0 -6
- langflow/frontend/assets/folder-check-C_J-pqhC.js +0 -6
- langflow/frontend/assets/folder-clock-Bdt0bWYb.js +0 -6
- langflow/frontend/assets/folder-closed-CpG_goS_.js +0 -6
- langflow/frontend/assets/folder-code-BfrcjBiJ.js +0 -6
- langflow/frontend/assets/folder-cog-D0HSZlUk.js +0 -6
- langflow/frontend/assets/folder-dot-Bl6Z8yRd.js +0 -6
- langflow/frontend/assets/folder-down-Cd5yX2hR.js +0 -6
- langflow/frontend/assets/folder-git-2-DW-8izzy.js +0 -6
- langflow/frontend/assets/folder-git-Dl6cI4x0.js +0 -6
- langflow/frontend/assets/folder-heart-BcWNEM_h.js +0 -6
- langflow/frontend/assets/folder-input-D08-f3t3.js +0 -6
- langflow/frontend/assets/folder-kanban-nzQd-lfD.js +0 -6
- langflow/frontend/assets/folder-key-DpznQOiZ.js +0 -6
- langflow/frontend/assets/folder-lock-SUBi7sWw.js +0 -6
- langflow/frontend/assets/folder-minus-DTAhS5kW.js +0 -6
- langflow/frontend/assets/folder-open-P_5T1_df.js +0 -6
- langflow/frontend/assets/folder-open-dot-DLsuij9P.js +0 -6
- langflow/frontend/assets/folder-output-Hoz7C5Sg.js +0 -6
- langflow/frontend/assets/folder-pen-CEFhZuKm.js +0 -6
- langflow/frontend/assets/folder-plus-DYMoWZt-.js +0 -6
- langflow/frontend/assets/folder-root-BTXEc8rM.js +0 -6
- langflow/frontend/assets/folder-search-2-CI2Sxf-y.js +0 -6
- langflow/frontend/assets/folder-search-CF6bJDV6.js +0 -6
- langflow/frontend/assets/folder-symlink-Dc7hVPyd.js +0 -6
- langflow/frontend/assets/folder-sync-BPBUfGnX.js +0 -6
- langflow/frontend/assets/folder-tree-DY4Ftj6k.js +0 -6
- langflow/frontend/assets/folder-up-BE_eC_UH.js +0 -6
- langflow/frontend/assets/folder-x--YzsyTv2.js +0 -6
- langflow/frontend/assets/folders-DBj-mUxf.js +0 -6
- langflow/frontend/assets/footprints-B3LklTMW.js +0 -6
- langflow/frontend/assets/forklift-C5LPpWzy.js +0 -6
- langflow/frontend/assets/forward-C0afMWvu.js +0 -6
- langflow/frontend/assets/frame-CuPcpGgS.js +0 -6
- langflow/frontend/assets/framer-CbCQQsmt.js +0 -6
- langflow/frontend/assets/frown-DxEX23Hm.js +0 -6
- langflow/frontend/assets/fuel-D1xGHjwV.js +0 -6
- langflow/frontend/assets/fullscreen-BIGq91ZI.js +0 -6
- langflow/frontend/assets/funnel-C-NQV0mL.js +0 -6
- langflow/frontend/assets/funnel-plus-D_vUHLvt.js +0 -6
- langflow/frontend/assets/funnel-x-DGu21bT2.js +0 -6
- langflow/frontend/assets/gallery-horizontal-BBiE0_x0.js +0 -6
- langflow/frontend/assets/gallery-horizontal-end-CnMgJ5DS.js +0 -6
- langflow/frontend/assets/gallery-thumbnails-CtOySXe1.js +0 -6
- langflow/frontend/assets/gallery-vertical-CV_I5Zfu.js +0 -6
- langflow/frontend/assets/gallery-vertical-end-4-jdBsGn.js +0 -6
- langflow/frontend/assets/gamepad-2-BvFzOQpx.js +0 -6
- langflow/frontend/assets/gamepad-DJe6Thxy.js +0 -6
- langflow/frontend/assets/gauge-DEzKFfM7.js +0 -6
- langflow/frontend/assets/gavel-CsTDuJw1.js +0 -6
- langflow/frontend/assets/gem-Bypt3rj7.js +0 -6
- langflow/frontend/assets/ghost-CG8V_Wik.js +0 -6
- langflow/frontend/assets/gift-D3Bw3K_w.js +0 -6
- langflow/frontend/assets/git-branch-DQvQg83e.js +0 -6
- langflow/frontend/assets/git-branch-plus-DnKO-rdL.js +0 -6
- langflow/frontend/assets/git-commit-horizontal-BSHVqLrs.js +0 -6
- langflow/frontend/assets/git-commit-vertical-CreWnTSn.js +0 -6
- langflow/frontend/assets/git-compare-B0PwMWpM.js +0 -6
- langflow/frontend/assets/git-compare-arrows-VgtsGNFF.js +0 -6
- langflow/frontend/assets/git-fork-DJZ2qmdu.js +0 -6
- langflow/frontend/assets/git-graph-D8PXH9s_.js +0 -6
- langflow/frontend/assets/git-merge-By9Qd2wm.js +0 -6
- langflow/frontend/assets/git-pull-request-C88DIeQ6.js +0 -6
- langflow/frontend/assets/git-pull-request-arrow-DG1SpKMq.js +0 -6
- langflow/frontend/assets/git-pull-request-closed-T8i53LyB.js +0 -6
- langflow/frontend/assets/git-pull-request-create-Vb2ZcmTQ.js +0 -6
- langflow/frontend/assets/git-pull-request-create-arrow-SiyvlJvG.js +0 -6
- langflow/frontend/assets/git-pull-request-draft-DUHB6Xxe.js +0 -6
- langflow/frontend/assets/github-C8ujlSn8.js +0 -6
- langflow/frontend/assets/gitlab-DY2Q3s_L.js +0 -6
- langflow/frontend/assets/glass-water-DshGksYS.js +0 -6
- langflow/frontend/assets/glasses-B8fR6VRZ.js +0 -6
- langflow/frontend/assets/globe-BOqIf5Wv.js +0 -6
- langflow/frontend/assets/globe-lock-CzUC5IEW.js +0 -6
- langflow/frontend/assets/goal-Vg3Wc1hY.js +0 -6
- langflow/frontend/assets/grab-Dxi_6jkO.js +0 -6
- langflow/frontend/assets/graduation-cap-BwucrBc9.js +0 -6
- langflow/frontend/assets/grape-OktxCY9q.js +0 -6
- langflow/frontend/assets/grid-2x2-CZ4LTCFd.js +0 -6
- langflow/frontend/assets/grid-2x2-check-CMnb1a9J.js +0 -6
- langflow/frontend/assets/grid-2x2-plus-BmbiTZxi.js +0 -6
- langflow/frontend/assets/grid-2x2-x-N-uF1q56.js +0 -6
- langflow/frontend/assets/grid-3x3-DIA7EVIA.js +0 -6
- langflow/frontend/assets/grip-B0YsYJKI.js +0 -6
- langflow/frontend/assets/grip-horizontal-CrMHt-nA.js +0 -6
- langflow/frontend/assets/grip-vertical-CzW6eTXD.js +0 -6
- langflow/frontend/assets/group-FSnIJ4jE.js +0 -6
- langflow/frontend/assets/guitar-CGwJlYgR.js +0 -6
- langflow/frontend/assets/ham-2r9Ls8Vw.js +0 -6
- langflow/frontend/assets/hammer-Dui_gaQL.js +0 -6
- langflow/frontend/assets/hand-BVXVxL5m.js +0 -6
- langflow/frontend/assets/hand-coins-B1hPR1t0.js +0 -6
- langflow/frontend/assets/hand-heart-CFSUyE4-.js +0 -6
- langflow/frontend/assets/hand-helping-BC9Nsi9A.js +0 -6
- langflow/frontend/assets/hand-metal-DlApbOIj.js +0 -6
- langflow/frontend/assets/hand-platter-B5Fh8FyW.js +0 -6
- langflow/frontend/assets/handshake-B7QevLMo.js +0 -6
- langflow/frontend/assets/hard-drive-P7jt4ry6.js +0 -6
- langflow/frontend/assets/hard-drive-download-CGLjKx8_.js +0 -6
- langflow/frontend/assets/hard-drive-upload-BVR4a8dK.js +0 -6
- langflow/frontend/assets/hard-hat-BVHmLBWZ.js +0 -6
- langflow/frontend/assets/hash-Cy_nIGAs.js +0 -6
- langflow/frontend/assets/haze-C0IHpJQl.js +0 -6
- langflow/frontend/assets/hdmi-port-DQdigNCk.js +0 -6
- langflow/frontend/assets/heading-1-y80kG5je.js +0 -6
- langflow/frontend/assets/heading-2-DheBF6n8.js +0 -6
- langflow/frontend/assets/heading-3-jkgnS7dK.js +0 -6
- langflow/frontend/assets/heading-4-BpvVn18-.js +0 -6
- langflow/frontend/assets/heading-5-DH3G5xNX.js +0 -6
- langflow/frontend/assets/heading-6-D2HSUEY3.js +0 -6
- langflow/frontend/assets/heading-Bp2VrhJ9.js +0 -6
- langflow/frontend/assets/headphone-off-CpbOzIOQ.js +0 -6
- langflow/frontend/assets/headphones-CNZ6eFL8.js +0 -6
- langflow/frontend/assets/headset-CoIAhYny.js +0 -6
- langflow/frontend/assets/heart-5gd2ViSB.js +0 -6
- langflow/frontend/assets/heart-crack-aYzz14B5.js +0 -6
- langflow/frontend/assets/heart-handshake-BMKYy31S.js +0 -6
- langflow/frontend/assets/heart-minus-AklI9-MR.js +0 -6
- langflow/frontend/assets/heart-off-Cf0U8ha5.js +0 -6
- langflow/frontend/assets/heart-plus-BKwZH_J0.js +0 -6
- langflow/frontend/assets/heart-pulse-_7ddh519.js +0 -6
- langflow/frontend/assets/heater-Diw3EYfF.js +0 -6
- langflow/frontend/assets/hexagon-BTBf8idD.js +0 -6
- langflow/frontend/assets/highlighter-B0YDF2wa.js +0 -6
- langflow/frontend/assets/history-BDIXPh9_.js +0 -6
- langflow/frontend/assets/hop-CGA6q8Vm.js +0 -6
- langflow/frontend/assets/hop-off-CspGh94X.js +0 -6
- langflow/frontend/assets/hospital-CkxwUPZX.js +0 -6
- langflow/frontend/assets/hotel-DiRHLl0N.js +0 -6
- langflow/frontend/assets/hourglass-7QgnnBxF.js +0 -6
- langflow/frontend/assets/house-PmIvwCGE.js +0 -6
- langflow/frontend/assets/house-plug-D6-CvbzS.js +0 -6
- langflow/frontend/assets/house-plus-fnF0Q1S5.js +0 -6
- langflow/frontend/assets/house-wifi-D5DbD8CC.js +0 -6
- langflow/frontend/assets/ice-cream-bowl-DG7h7X7a.js +0 -6
- langflow/frontend/assets/ice-cream-cone-jr_R23US.js +0 -6
- langflow/frontend/assets/id-card-Kj7Yhkme.js +0 -6
- langflow/frontend/assets/image-CT8Z1KiI.js +0 -6
- langflow/frontend/assets/image-down-BXlsHkdJ.js +0 -6
- langflow/frontend/assets/image-minus-Dx3wFWFv.js +0 -6
- langflow/frontend/assets/image-off-0xSbW3dO.js +0 -6
- langflow/frontend/assets/image-play-INW5qgbJ.js +0 -6
- langflow/frontend/assets/image-plus-B9upvJbV.js +0 -6
- langflow/frontend/assets/image-up-Wgvg5K6c.js +0 -6
- langflow/frontend/assets/image-upscale-eBe3IrfA.js +0 -6
- langflow/frontend/assets/images-CKmX8_ZE.js +0 -6
- langflow/frontend/assets/import-DiSVaG7N.js +0 -6
- langflow/frontend/assets/inbox-CdOX8Icw.js +0 -6
- langflow/frontend/assets/indent-decrease-C7QHjBRg.js +0 -6
- langflow/frontend/assets/indent-increase-Ce0og9UZ.js +0 -6
- langflow/frontend/assets/index-2QKfOwQz.js +0 -1
- langflow/frontend/assets/index-2uQUhMEj.js +0 -1
- langflow/frontend/assets/index-4Mlswa0P.js +0 -1
- langflow/frontend/assets/index-B-KzTSjm.js +0 -1
- langflow/frontend/assets/index-B0rTFfBY.js +0 -1
- langflow/frontend/assets/index-B3BImWpa.js +0 -1
- langflow/frontend/assets/index-B3MGOMPg.js +0 -1
- langflow/frontend/assets/index-B41GnrGb.js +0 -21
- langflow/frontend/assets/index-B61Iucc2.js +0 -1
- langflow/frontend/assets/index-B7-I86_o.js +0 -1
- langflow/frontend/assets/index-B9tZ1GT6.js +0 -1
- langflow/frontend/assets/index-B9ywHEr5.js +0 -381
- langflow/frontend/assets/index-BA5Th8o9.js +0 -399
- langflow/frontend/assets/index-BAtp7_bt.js +0 -1
- langflow/frontend/assets/index-BBsMQR56.js +0 -20
- langflow/frontend/assets/index-BEa6tC2W.js +0 -7
- langflow/frontend/assets/index-BFItMCuU.js +0 -1
- langflow/frontend/assets/index-BFzVY7Nm.js +0 -1
- langflow/frontend/assets/index-BIZ_KOfj.js +0 -1
- langflow/frontend/assets/index-BJ_urhma.js +0 -1
- langflow/frontend/assets/index-BKJwmaxy.js +0 -1
- langflow/frontend/assets/index-BMzmXi7X.js +0 -1
- langflow/frontend/assets/index-BNh7b_1z.js +0 -1
- langflow/frontend/assets/index-BQETpRDP.js +0 -1
- langflow/frontend/assets/index-BQU253FX.js +0 -1
- langflow/frontend/assets/index-BQm6cH0D.js +0 -1
- langflow/frontend/assets/index-BRL6AvWi.js +0 -1
- langflow/frontend/assets/index-BRa3jhDA.js +0 -1
- langflow/frontend/assets/index-BTKi0LQE.js +0 -1
- langflow/frontend/assets/index-BTl_euDg.js +0 -1
- langflow/frontend/assets/index-BU6Vg5LE.js +0 -1
- langflow/frontend/assets/index-BUY4svgp.js +0 -1
- langflow/frontend/assets/index-BVeuK3hL.js +0 -1
- langflow/frontend/assets/index-BW6B6HXq.js +0 -1
- langflow/frontend/assets/index-BW8s5aZH.js +0 -1
- langflow/frontend/assets/index-BXM7wXF_.js +0 -185
- langflow/frontend/assets/index-BXs3aDj7.js +0 -1
- langflow/frontend/assets/index-B__vQOiE.js +0 -1
- langflow/frontend/assets/index-B_gQg1Ia.js +0 -1
- langflow/frontend/assets/index-BhgSwFHy.js +0 -1
- langflow/frontend/assets/index-BiHOs6w-.js +0 -1
- langflow/frontend/assets/index-BjNu8Slh.js +0 -1
- langflow/frontend/assets/index-BjVxHGPh.js +0 -1
- langflow/frontend/assets/index-BkIxy5hm.js +0 -1
- langflow/frontend/assets/index-Bmp8MMKQ.js +0 -1
- langflow/frontend/assets/index-BolQxU0J.js +0 -1
- langflow/frontend/assets/index-BrukvKtm.js +0 -1
- langflow/frontend/assets/index-Buc1fNZf.js +0 -1
- langflow/frontend/assets/index-BwLqtGH-.js +0 -1
- langflow/frontend/assets/index-BwOvHZia.js +0 -1
- langflow/frontend/assets/index-By-Q8tRv.js +0 -1
- langflow/frontend/assets/index-BzFZ-RLv.js +0 -1
- langflow/frontend/assets/index-BzUZ7LvQ.js +0 -767
- langflow/frontend/assets/index-C-LO-qz3.js +0 -1
- langflow/frontend/assets/index-C-pqZWxL.js +0 -1
- langflow/frontend/assets/index-C28aHVop.js +0 -1
- langflow/frontend/assets/index-C29JhKMO.js +0 -1
- langflow/frontend/assets/index-C35CcHFW.js +0 -1
- langflow/frontend/assets/index-C47EGVaO.js +0 -1
- langflow/frontend/assets/index-C5MlvNqt.js +0 -1
- langflow/frontend/assets/index-CBkOCjun.js +0 -205
- langflow/frontend/assets/index-CD0y3pmC.js +0 -1
- langflow/frontend/assets/index-CF5bkPY1.js +0 -1
- langflow/frontend/assets/index-CK8XfBh9.js +0 -1
- langflow/frontend/assets/index-CKNlB8-x.js +0 -1
- langflow/frontend/assets/index-CMoadJdI.js +0 -1
- langflow/frontend/assets/index-CNktQBsO.js +0 -1
- langflow/frontend/assets/index-CR5len4K.css +0 -1
- langflow/frontend/assets/index-CSKTxg0h.js +0 -1
- langflow/frontend/assets/index-CVWSTnX7.js +0 -1
- langflow/frontend/assets/index-CXgT5tuh.js +0 -1
- langflow/frontend/assets/index-CXi-kvMN.js +0 -1
- langflow/frontend/assets/index-CYWr1RTE.js +0 -1
- langflow/frontend/assets/index-CYsVGGsn.js +0 -1
- langflow/frontend/assets/index-C_jiTpRt.js +0 -1
- langflow/frontend/assets/index-CajLPh7J.js +0 -1
- langflow/frontend/assets/index-Cbswwof2.js +0 -1
- langflow/frontend/assets/index-CdGEh5Dd.js +0 -1
- langflow/frontend/assets/index-Cg8JGhuO.js +0 -1
- langflow/frontend/assets/index-Cgt3Y-Xc.js +0 -1
- langflow/frontend/assets/index-ChjP_lcd.js +0 -1
- langflow/frontend/assets/index-CjCZfoPa.js +0 -1
- langflow/frontend/assets/index-CkP6dNdd.js +0 -1
- langflow/frontend/assets/index-CksU1mCy.js +0 -1
- langflow/frontend/assets/index-CldV8cHX.js +0 -1
- langflow/frontend/assets/index-CmnAXW2M.js +0 -1
- langflow/frontend/assets/index-CnTe-ib8.js +0 -1
- langflow/frontend/assets/index-CppXkyAI.js +0 -1
- langflow/frontend/assets/index-CtlV5QSP.js +0 -1
- langflow/frontend/assets/index-Ctz536xU.js +0 -1
- langflow/frontend/assets/index-CumvaFGa.js +0 -1
- langflow/frontend/assets/index-CwHrfmT4.js +0 -1
- langflow/frontend/assets/index-CxThPLLM.js +0 -1
- langflow/frontend/assets/index-CygHHaG2.js +0 -1
- langflow/frontend/assets/index-D-Xdt1WZ.js +0 -1
- langflow/frontend/assets/index-D0rileO3.js +0 -127
- langflow/frontend/assets/index-D13KZztq.js +0 -1
- langflow/frontend/assets/index-D37V2bzg.js +0 -1
- langflow/frontend/assets/index-D3LYZj5R.js +0 -1
- langflow/frontend/assets/index-D3PL-v55.js +0 -1
- langflow/frontend/assets/index-D3k8ERHA.js +0 -1
- langflow/frontend/assets/index-D3xD_Vi3.js +0 -1
- langflow/frontend/assets/index-D4KStq-y.js +0 -1
- langflow/frontend/assets/index-D6IWUtCW.js +0 -1
- langflow/frontend/assets/index-D9EYpYAn.js +0 -1
- langflow/frontend/assets/index-D9pRkBVQ.js +0 -1
- langflow/frontend/assets/index-DBYJSBIJ.js +0 -108
- langflow/frontend/assets/index-DCBcV8DO.js +0 -1
- langflow/frontend/assets/index-DGMmz1qB.js +0 -1
- langflow/frontend/assets/index-DIIpP9BC.js +0 -1
- langflow/frontend/assets/index-DK0SpiSw.js +0 -1
- langflow/frontend/assets/index-DKiew9tJ.js +0 -1
- langflow/frontend/assets/index-DLiLtnQb.js +0 -1
- langflow/frontend/assets/index-DLsjc7AJ.js +0 -1
- langflow/frontend/assets/index-DMo7t1c2.js +0 -1
- langflow/frontend/assets/index-DNnbYSjo.js +0 -1
- langflow/frontend/assets/index-DPXTlNhX.js +0 -1
- langflow/frontend/assets/index-DPwI8ASU.js +0 -1
- langflow/frontend/assets/index-DR86Lsio.js +0 -1
- langflow/frontend/assets/index-DRGpD-Cf.js +0 -1
- langflow/frontend/assets/index-DTjOvZoy.js +0 -1
- langflow/frontend/assets/index-DUIyyegl.js +0 -1
- langflow/frontend/assets/index-DVTTJ573.js +0 -1
- langflow/frontend/assets/index-DWD-qFGN.js +0 -1
- langflow/frontend/assets/index-DXC9SGLO.js +0 -1
- langflow/frontend/assets/index-DXGrBtIm.js +0 -2
- langflow/frontend/assets/index-DcthS0OS.js +0 -1
- langflow/frontend/assets/index-DeO1TmoJ.js +0 -1
- langflow/frontend/assets/index-DfdXqTkC.js +0 -1
- langflow/frontend/assets/index-DgEsHHbn.js +0 -1
- langflow/frontend/assets/index-DiPdSAb-.js +0 -1
- langflow/frontend/assets/index-Dj1_1AVu.js +0 -1
- langflow/frontend/assets/index-DjX3Rlg0.js +0 -1
- langflow/frontend/assets/index-Dp665wgU.js +0 -1
- langflow/frontend/assets/index-DpUVtJBm.js +0 -7321
- langflow/frontend/assets/index-DqykhdBR.js +0 -1
- langflow/frontend/assets/index-DrCxi3rC.js +0 -1
- langflow/frontend/assets/index-DrVyWfLb.js +0 -1
- langflow/frontend/assets/index-Ds909mc5.js +0 -1
- langflow/frontend/assets/index-DtssSJxD.js +0 -1
- langflow/frontend/assets/index-Dunq7Fbc.js +0 -1
- langflow/frontend/assets/index-Dv5PD2q_.js +0 -1
- langflow/frontend/assets/index-DvbGYJtn.js +0 -1
- langflow/frontend/assets/index-Dxa1dBKG.js +0 -1
- langflow/frontend/assets/index-DxlRpmOX.js +0 -13
- langflow/frontend/assets/index-DyF-bhai.js +0 -1
- langflow/frontend/assets/index-DywEJqhX.js +0 -1
- langflow/frontend/assets/index-EG_OxGv1.js +0 -1
- langflow/frontend/assets/index-EzafEE3l.js +0 -1
- langflow/frontend/assets/index-F3rYC31i.js +0 -1
- langflow/frontend/assets/index-FSWmLCr-.js +0 -1
- langflow/frontend/assets/index-HTtZBzMC.js +0 -1
- langflow/frontend/assets/index-In_88aci.js +0 -1
- langflow/frontend/assets/index-J48O83cO.js +0 -1
- langflow/frontend/assets/index-JHNbfi9f.js +0 -1
- langflow/frontend/assets/index-JRpZxXX0.js +0 -1
- langflow/frontend/assets/index-Ku1RDlBy.js +0 -1
- langflow/frontend/assets/index-LJXUrkrg.js +0 -1
- langflow/frontend/assets/index-LfoCLlQg.js +0 -1
- langflow/frontend/assets/index-MUTJNp7V.js +0 -1
- langflow/frontend/assets/index-OD2aObmN.js +0 -1
- langflow/frontend/assets/index-Ocb9xE6f.js +0 -1
- langflow/frontend/assets/index-OveD7Elj.js +0 -1
- langflow/frontend/assets/index-Q2ERMfmI.js +0 -1
- langflow/frontend/assets/index-U8072tZG.js +0 -1
- langflow/frontend/assets/index-UYJ_RoEv.js +0 -1
- langflow/frontend/assets/index-VQoziAj6.js +0 -1
- langflow/frontend/assets/index-XGbXMbq1.js +0 -281
- langflow/frontend/assets/index-_LYoMZUZ.js +0 -1
- langflow/frontend/assets/index-_RoBlfFQ.js +0 -1
- langflow/frontend/assets/index-anR8pASH.js +0 -1
- langflow/frontend/assets/index-e_gCJGBV.js +0 -1
- langflow/frontend/assets/index-el6qZ4-I.js +0 -1
- langflow/frontend/assets/index-exua16zz.js +0 -1
- langflow/frontend/assets/index-exxjib9E.js +0 -1
- langflow/frontend/assets/index-jJhmhzvv.js +0 -1
- langflow/frontend/assets/index-kgyZ5iib.js +0 -1
- langflow/frontend/assets/index-mObAeoAH.js +0 -1
- langflow/frontend/assets/index-nAPqAw8J.js +0 -1
- langflow/frontend/assets/index-pkt4K6Im.js +0 -1
- langflow/frontend/assets/index-sjbu-dD7.js +0 -1
- langflow/frontend/assets/index-t9AMFJoS.js +0 -1
- langflow/frontend/assets/index-ukXwm0mA.js +0 -1
- langflow/frontend/assets/index-wID9VtBj.js +0 -495
- langflow/frontend/assets/indian-rupee-dfWATytK.js +0 -6
- langflow/frontend/assets/infinity-CjUe5ivd.js +0 -6
- langflow/frontend/assets/info-B_LE7L7E.js +0 -6
- langflow/frontend/assets/inspection-panel-ZKvlddDX.js +0 -6
- langflow/frontend/assets/instagram-BsiiTwbe.js +0 -6
- langflow/frontend/assets/italic-DuNznHfD.js +0 -6
- langflow/frontend/assets/iteration-ccw-D_X6Ncpd.js +0 -6
- langflow/frontend/assets/iteration-cw-CtI6sO4s.js +0 -6
- langflow/frontend/assets/japanese-yen-CpXpceuO.js +0 -6
- langflow/frontend/assets/joystick-C2Ky6Mbv.js +0 -6
- langflow/frontend/assets/kanban-C9Ycd6s4.js +0 -6
- langflow/frontend/assets/key-DRVIdukA.js +0 -6
- langflow/frontend/assets/key-round-DNOaaSPy.js +0 -6
- langflow/frontend/assets/key-square-DwMHFAtk.js +0 -6
- langflow/frontend/assets/keyboard-C6CFUeHB.js +0 -6
- langflow/frontend/assets/keyboard-music-CKIVnkdm.js +0 -6
- langflow/frontend/assets/keyboard-off-C7O7DrK0.js +0 -6
- langflow/frontend/assets/lamp-B5kXYX3W.js +0 -6
- langflow/frontend/assets/lamp-ceiling-Bc2MBOMS.js +0 -6
- langflow/frontend/assets/lamp-desk-Cj4cV5p0.js +0 -6
- langflow/frontend/assets/lamp-floor-BmWaN3gA.js +0 -6
- langflow/frontend/assets/lamp-wall-down-DptQKLOl.js +0 -6
- langflow/frontend/assets/lamp-wall-up-D--Xk8Uc.js +0 -6
- langflow/frontend/assets/land-plot-BbZVsEO6.js +0 -6
- langflow/frontend/assets/landmark-CcoCKSRy.js +0 -6
- langflow/frontend/assets/languages-DJmiOypY.js +0 -6
- langflow/frontend/assets/laptop-BH2ES5zs.js +0 -6
- langflow/frontend/assets/laptop-minimal-BViwcE0p.js +0 -6
- langflow/frontend/assets/laptop-minimal-check-BGIW2iZy.js +0 -6
- langflow/frontend/assets/lasso-BmP9amC_.js +0 -6
- langflow/frontend/assets/lasso-select-Be4Nr3Hx.js +0 -6
- langflow/frontend/assets/laugh-C_Mx1EnJ.js +0 -6
- langflow/frontend/assets/layers-2-CQ1eeSl_.js +0 -6
- langflow/frontend/assets/layers-Bpl575qt.js +0 -6
- langflow/frontend/assets/layout-dashboard-DzHGzN63.js +0 -6
- langflow/frontend/assets/layout-grid-BJ0cVgDn.js +0 -6
- langflow/frontend/assets/layout-list-2TpTYkoP.js +0 -6
- langflow/frontend/assets/layout-panel-left-NBHLcbEc.js +0 -6
- langflow/frontend/assets/layout-panel-top-C15hIwEQ.js +0 -6
- langflow/frontend/assets/layout-template-C_2m978f.js +0 -6
- langflow/frontend/assets/lazyIconImports-C1Cwzm74.js +0 -2
- langflow/frontend/assets/leaf-C7I-gNqN.js +0 -6
- langflow/frontend/assets/leafy-green-DxfIltJY.js +0 -6
- langflow/frontend/assets/lectern-BWPxyWG5.js +0 -6
- langflow/frontend/assets/letter-text-CojX37RF.js +0 -6
- langflow/frontend/assets/library-_tOxFRdG.js +0 -6
- langflow/frontend/assets/library-big-V_be0egg.js +0 -6
- langflow/frontend/assets/life-buoy-SLaOKPui.js +0 -6
- langflow/frontend/assets/ligature-DI3N5Sgh.js +0 -6
- langflow/frontend/assets/lightbulb-BJ-u5yNj.js +0 -6
- langflow/frontend/assets/lightbulb-off-CYZZK-Ca.js +0 -6
- langflow/frontend/assets/link-2-C2f9vuOw.js +0 -6
- langflow/frontend/assets/link-2-off-Cznc1x59.js +0 -6
- langflow/frontend/assets/link-D8ffI3Bx.js +0 -6
- langflow/frontend/assets/linkedin-Da0zZOYR.js +0 -6
- langflow/frontend/assets/list-Dbxyd6FK.js +0 -6
- langflow/frontend/assets/list-check-BfuWLRhW.js +0 -6
- langflow/frontend/assets/list-checks-5qGsxHLJ.js +0 -6
- langflow/frontend/assets/list-collapse-CtnPbel8.js +0 -6
- langflow/frontend/assets/list-end-DUboME14.js +0 -6
- langflow/frontend/assets/list-filter-CmoSv9ih.js +0 -6
- langflow/frontend/assets/list-filter-plus-DH53x-KE.js +0 -6
- langflow/frontend/assets/list-minus-rsN5dKeL.js +0 -6
- langflow/frontend/assets/list-music-y6LRVp3R.js +0 -6
- langflow/frontend/assets/list-ordered-CFYedrtq.js +0 -6
- langflow/frontend/assets/list-plus-C1kZwFsM.js +0 -6
- langflow/frontend/assets/list-restart-DH7cBD12.js +0 -6
- langflow/frontend/assets/list-start-CjF0LNBk.js +0 -6
- langflow/frontend/assets/list-todo-D6S7Eq2U.js +0 -6
- langflow/frontend/assets/list-tree-BV3Jr4p1.js +0 -6
- langflow/frontend/assets/list-video-DQuDt4_H.js +0 -6
- langflow/frontend/assets/list-x-SyN4p91y.js +0 -6
- langflow/frontend/assets/loader-CW6ghXpM.js +0 -6
- langflow/frontend/assets/loader-circle-BIdiuIo8.js +0 -6
- langflow/frontend/assets/loader-pinwheel-DN59gqDR.js +0 -6
- langflow/frontend/assets/locate-B1rV_Eud.js +0 -6
- langflow/frontend/assets/locate-fixed-mm8d2I_1.js +0 -6
- langflow/frontend/assets/locate-off-DuwOZuVD.js +0 -6
- langflow/frontend/assets/location-edit-BVWsMtc0.js +0 -6
- langflow/frontend/assets/lock-B_mVf9AO.js +0 -6
- langflow/frontend/assets/lock-keyhole-CZBU_htP.js +0 -6
- langflow/frontend/assets/lock-keyhole-open-BmeFZtQo.js +0 -6
- langflow/frontend/assets/lock-open-B9vea4fd.js +0 -6
- langflow/frontend/assets/log-in-Dp5MKXJ6.js +0 -6
- langflow/frontend/assets/log-out-CnwhIFCV.js +0 -6
- langflow/frontend/assets/logs-CutF0a3A.js +0 -6
- langflow/frontend/assets/lollipop-CKVurF-h.js +0 -6
- langflow/frontend/assets/luggage-SGX9v5BA.js +0 -6
- langflow/frontend/assets/magnet-k1e_jfjF.js +0 -6
- langflow/frontend/assets/mail-CpHB9s87.js +0 -6
- langflow/frontend/assets/mail-check-BGq22NGF.js +0 -6
- langflow/frontend/assets/mail-minus-RCkfM2oU.js +0 -6
- langflow/frontend/assets/mail-open-wYro5Hao.js +0 -6
- langflow/frontend/assets/mail-plus-BlMpIq4Y.js +0 -6
- langflow/frontend/assets/mail-question-DARRLllg.js +0 -6
- langflow/frontend/assets/mail-search-BHPgf9Sg.js +0 -6
- langflow/frontend/assets/mail-warning-B8ppePDz.js +0 -6
- langflow/frontend/assets/mail-x-CaFLEt3S.js +0 -6
- langflow/frontend/assets/mailbox-BvqRfE85.js +0 -6
- langflow/frontend/assets/mails-D0K7EC5r.js +0 -6
- langflow/frontend/assets/map-BWe2j5uV.js +0 -6
- langflow/frontend/assets/map-pin-BIIQp1ny.js +0 -6
- langflow/frontend/assets/map-pin-check-DVigOmJy.js +0 -6
- langflow/frontend/assets/map-pin-check-inside-DAW-jmer.js +0 -6
- langflow/frontend/assets/map-pin-house-BjJGaZ_W.js +0 -6
- langflow/frontend/assets/map-pin-minus-inside-NU3kjUaq.js +0 -6
- langflow/frontend/assets/map-pin-minus-qSJvtAyu.js +0 -6
- langflow/frontend/assets/map-pin-off-D_XWqwUL.js +0 -6
- langflow/frontend/assets/map-pin-plus-BvtSdwiT.js +0 -6
- langflow/frontend/assets/map-pin-plus-inside-B8N0JWVa.js +0 -6
- langflow/frontend/assets/map-pin-x-CzkkzM8C.js +0 -6
- langflow/frontend/assets/map-pin-x-inside-Ch3mMXj3.js +0 -6
- langflow/frontend/assets/map-pinned-BFY8xjWv.js +0 -6
- langflow/frontend/assets/map-plus-C7VchZnk.js +0 -6
- langflow/frontend/assets/mars-CeY3O5YK.js +0 -6
- langflow/frontend/assets/mars-stroke-HXdX2iNQ.js +0 -6
- langflow/frontend/assets/martini-Dpn_2_XE.js +0 -6
- langflow/frontend/assets/maximize-2-CsbNYzxf.js +0 -6
- langflow/frontend/assets/maximize-D87I_lS3.js +0 -6
- langflow/frontend/assets/medal-C-rwKc2p.js +0 -6
- langflow/frontend/assets/megaphone-BmitnmNV.js +0 -6
- langflow/frontend/assets/megaphone-off-Dp38EeVm.js +0 -6
- langflow/frontend/assets/meh-Wl2qG9mS.js +0 -6
- langflow/frontend/assets/memory-stick-DjVuofBU.js +0 -6
- langflow/frontend/assets/menu-C_ZnFtke.js +0 -6
- langflow/frontend/assets/merge-CVxYdOU6.js +0 -6
- langflow/frontend/assets/message-circle-BCFKIVaG.js +0 -6
- langflow/frontend/assets/message-circle-code-ByC3xlrm.js +0 -6
- langflow/frontend/assets/message-circle-dashed-BGf6wc2q.js +0 -6
- langflow/frontend/assets/message-circle-heart-CJe2hG5I.js +0 -6
- langflow/frontend/assets/message-circle-more-DlkXYzwc.js +0 -6
- langflow/frontend/assets/message-circle-off-BXNwVK73.js +0 -6
- langflow/frontend/assets/message-circle-plus-BvVDEWER.js +0 -6
- langflow/frontend/assets/message-circle-question-F_PDi40-.js +0 -6
- langflow/frontend/assets/message-circle-reply-DBVvbcYc.js +0 -6
- langflow/frontend/assets/message-circle-warning-C6owxiSU.js +0 -6
- langflow/frontend/assets/message-circle-x-V7F92TlD.js +0 -6
- langflow/frontend/assets/message-square-DXqIv5-T.js +0 -6
- langflow/frontend/assets/message-square-code-Cnybl1gQ.js +0 -6
- langflow/frontend/assets/message-square-dashed-Dyhajt9A.js +0 -6
- langflow/frontend/assets/message-square-diff-DUvtcPyO.js +0 -6
- langflow/frontend/assets/message-square-dot-C_SriCts.js +0 -6
- langflow/frontend/assets/message-square-heart-eWRT_k_U.js +0 -6
- langflow/frontend/assets/message-square-lock-BbEknDit.js +0 -6
- langflow/frontend/assets/message-square-more-BIWp7spD.js +0 -6
- langflow/frontend/assets/message-square-off-AdEUq_kZ.js +0 -6
- langflow/frontend/assets/message-square-plus-CsVRuGMd.js +0 -6
- langflow/frontend/assets/message-square-quote-CLJ-6YBF.js +0 -6
- langflow/frontend/assets/message-square-reply-COdDGZlL.js +0 -6
- langflow/frontend/assets/message-square-share-Babk5o3W.js +0 -6
- langflow/frontend/assets/message-square-text-KEj0QhlY.js +0 -6
- langflow/frontend/assets/message-square-warning-DbMBK25A.js +0 -6
- langflow/frontend/assets/message-square-x-Dlmu05x-.js +0 -6
- langflow/frontend/assets/messages-square-BLHXkvXu.js +0 -6
- langflow/frontend/assets/mic-CkGvjoA6.js +0 -6
- langflow/frontend/assets/mic-off-BF7T6uJG.js +0 -6
- langflow/frontend/assets/mic-vocal-D63-pkbV.js +0 -6
- langflow/frontend/assets/microchip-BdgsWAAt.js +0 -6
- langflow/frontend/assets/microscope-BIZdt6qa.js +0 -6
- langflow/frontend/assets/microwave-ljjNyijf.js +0 -6
- langflow/frontend/assets/milestone-Z7ApTXoY.js +0 -6
- langflow/frontend/assets/milk-C94MudXv.js +0 -6
- langflow/frontend/assets/milk-off-Bks8F3Rh.js +0 -6
- langflow/frontend/assets/minimize-0iR8d_wz.js +0 -6
- langflow/frontend/assets/minimize-2-4bKQDiPS.js +0 -6
- langflow/frontend/assets/monitor-CzM786BJ.js +0 -6
- langflow/frontend/assets/monitor-check-BumJuy9o.js +0 -6
- langflow/frontend/assets/monitor-cog-CCmf8Cx_.js +0 -6
- langflow/frontend/assets/monitor-dot-CppOnLLF.js +0 -6
- langflow/frontend/assets/monitor-down-VT--09JI.js +0 -6
- langflow/frontend/assets/monitor-off-DsGxBfLz.js +0 -6
- langflow/frontend/assets/monitor-pause-lkcsR8rF.js +0 -6
- langflow/frontend/assets/monitor-play-qe460Ine.js +0 -6
- langflow/frontend/assets/monitor-smartphone-z2JHsU8j.js +0 -6
- langflow/frontend/assets/monitor-speaker-BVDiZULG.js +0 -6
- langflow/frontend/assets/monitor-stop-Ds8yehE1.js +0 -6
- langflow/frontend/assets/monitor-up-BlZtuUw9.js +0 -6
- langflow/frontend/assets/monitor-x-JBkUDpDd.js +0 -6
- langflow/frontend/assets/moon-WoYIfO4w.js +0 -6
- langflow/frontend/assets/moon-star-CNHQKOUR.js +0 -6
- langflow/frontend/assets/mountain-D9FRFvIA.js +0 -6
- langflow/frontend/assets/mountain-snow-DVA_gd64.js +0 -6
- langflow/frontend/assets/mouse-867O2vOv.js +0 -6
- langflow/frontend/assets/mouse-off-BawwNju4.js +0 -6
- langflow/frontend/assets/mouse-pointer-2-DLgsfHFL.js +0 -6
- langflow/frontend/assets/mouse-pointer-C7z_bkYM.js +0 -6
- langflow/frontend/assets/mouse-pointer-ban-CQhj6Cwn.js +0 -6
- langflow/frontend/assets/mouse-pointer-click-BxuJ2b0V.js +0 -6
- langflow/frontend/assets/move-3d-dlIqQaWp.js +0 -6
- langflow/frontend/assets/move-B4Ds2cBm.js +0 -6
- langflow/frontend/assets/move-diagonal-2-BHA9O73b.js +0 -6
- langflow/frontend/assets/move-diagonal-D60wM06u.js +0 -6
- langflow/frontend/assets/move-down-Dx-PFKUb.js +0 -6
- langflow/frontend/assets/move-down-left-Bo5FgvGr.js +0 -6
- langflow/frontend/assets/move-down-right-CH_PsfhD.js +0 -6
- langflow/frontend/assets/move-horizontal-DLrS0Kpz.js +0 -6
- langflow/frontend/assets/move-left-oY8FtBG5.js +0 -6
- langflow/frontend/assets/move-right-Cr4sR_bt.js +0 -6
- langflow/frontend/assets/move-up-left-D7oJ2J8_.js +0 -6
- langflow/frontend/assets/move-up-right-CJJYlUX1.js +0 -6
- langflow/frontend/assets/move-up-w5CKBeD9.js +0 -6
- langflow/frontend/assets/move-vertical-BqfrZ7dN.js +0 -6
- langflow/frontend/assets/music-2-_WHrMLLg.js +0 -6
- langflow/frontend/assets/music-3-DJRE06-A.js +0 -6
- langflow/frontend/assets/music-4-BkKWffDU.js +0 -6
- langflow/frontend/assets/music-DeKSHmIS.js +0 -6
- langflow/frontend/assets/navigation-2-BwK7Ko0h.js +0 -6
- langflow/frontend/assets/navigation-2-off-u3MSWrGH.js +0 -6
- langflow/frontend/assets/navigation-BpGnSiAE.js +0 -6
- langflow/frontend/assets/navigation-off-dsN-pPUd.js +0 -6
- langflow/frontend/assets/network-Dq6lJHXU.js +0 -6
- langflow/frontend/assets/newspaper-30MRjhu7.js +0 -6
- langflow/frontend/assets/nfc-C0BJPdwh.js +0 -6
- langflow/frontend/assets/non-binary-CLGP-iiC.js +0 -6
- langflow/frontend/assets/notebook-CgaWNAFz.js +0 -6
- langflow/frontend/assets/notebook-pen-CYm6Ghk1.js +0 -6
- langflow/frontend/assets/notebook-tabs-Bk5eQyL5.js +0 -6
- langflow/frontend/assets/notebook-text-BLkbIk44.js +0 -6
- langflow/frontend/assets/notepad-text-Cjoga3oN.js +0 -6
- langflow/frontend/assets/notepad-text-dashed-C5hD1-Fe.js +0 -6
- langflow/frontend/assets/nut-CYsTlL60.js +0 -6
- langflow/frontend/assets/nut-off-msUVlCzb.js +0 -6
- langflow/frontend/assets/octagon-CM-nuNqQ.js +0 -6
- langflow/frontend/assets/octagon-alert-DXa35bCO.js +0 -6
- langflow/frontend/assets/octagon-minus-JM9PGbZV.js +0 -6
- langflow/frontend/assets/octagon-pause-M0CjOmJu.js +0 -6
- langflow/frontend/assets/octagon-x-E1ygK_P1.js +0 -6
- langflow/frontend/assets/omega-BjqV4fX1.js +0 -6
- langflow/frontend/assets/option-BIcrDVbD.js +0 -6
- langflow/frontend/assets/orbit-BikgSX0-.js +0 -6
- langflow/frontend/assets/origami-BQ5XI6j8.js +0 -6
- langflow/frontend/assets/package-2-XU3yxTGl.js +0 -6
- langflow/frontend/assets/package-4EiKsge0.js +0 -6
- langflow/frontend/assets/package-check-CfdAe0GF.js +0 -6
- langflow/frontend/assets/package-minus-BvKhdHSB.js +0 -6
- langflow/frontend/assets/package-open-CKh_I0fr.js +0 -6
- langflow/frontend/assets/package-plus-DxVNDWFo.js +0 -6
- langflow/frontend/assets/package-search-G8fpx_ZL.js +0 -6
- langflow/frontend/assets/package-x-DTd2nbYB.js +0 -6
- langflow/frontend/assets/paint-bucket-16FRhKgt.js +0 -6
- langflow/frontend/assets/paint-roller-CkA54Lft.js +0 -6
- langflow/frontend/assets/paintbrush-DiQd2006.js +0 -6
- langflow/frontend/assets/paintbrush-vertical-RVs4ZAcf.js +0 -6
- langflow/frontend/assets/palette-63ZAp8jT.js +0 -6
- langflow/frontend/assets/panel-bottom-BRSGITkZ.js +0 -6
- langflow/frontend/assets/panel-bottom-close-BKhC1IPs.js +0 -6
- langflow/frontend/assets/panel-bottom-dashed-DDmIVEyF.js +0 -6
- langflow/frontend/assets/panel-bottom-open-DNB3w9jB.js +0 -6
- langflow/frontend/assets/panel-left-close-2wcAhQC8.js +0 -6
- langflow/frontend/assets/panel-left-dashed-P-yRaAfE.js +0 -6
- langflow/frontend/assets/panel-left-open-C8Z5Ex7t.js +0 -6
- langflow/frontend/assets/panel-right-DhqTAxzZ.js +0 -6
- langflow/frontend/assets/panel-right-close-D-4tz-fa.js +0 -6
- langflow/frontend/assets/panel-right-dashed-oSwbzusJ.js +0 -6
- langflow/frontend/assets/panel-right-open-D3Vfnad1.js +0 -6
- langflow/frontend/assets/panel-top-BiDhuHAU.js +0 -6
- langflow/frontend/assets/panel-top-close-DXTUcegA.js +0 -6
- langflow/frontend/assets/panel-top-dashed-GiUGeBeB.js +0 -6
- langflow/frontend/assets/panel-top-open-6PMe_rzg.js +0 -6
- langflow/frontend/assets/panels-left-bottom-BLaYgiWe.js +0 -6
- langflow/frontend/assets/panels-right-bottom-CAOwjL6I.js +0 -6
- langflow/frontend/assets/panels-top-left-C7JFKzm4.js +0 -6
- langflow/frontend/assets/paperclip-C2jDvuaB.js +0 -6
- langflow/frontend/assets/parentheses-DpyyMTil.js +0 -6
- langflow/frontend/assets/parking-meter-Br1Avhl7.js +0 -6
- langflow/frontend/assets/party-popper-ml82k9Oh.js +0 -6
- langflow/frontend/assets/pause-CNE8dZxo.js +0 -6
- langflow/frontend/assets/paw-print-f_-GBH01.js +0 -6
- langflow/frontend/assets/pc-case-Chy1tZyO.js +0 -6
- langflow/frontend/assets/pen-CWOC_G5w.js +0 -6
- langflow/frontend/assets/pen-line-CbSvGV_f.js +0 -6
- langflow/frontend/assets/pen-off-CRlhISzF.js +0 -6
- langflow/frontend/assets/pen-tool-BCBDxitS.js +0 -6
- langflow/frontend/assets/pencil-lCJvvWYR.js +0 -6
- langflow/frontend/assets/pencil-line-DuQsld7D.js +0 -6
- langflow/frontend/assets/pencil-off-D9SAANhb.js +0 -6
- langflow/frontend/assets/pencil-ruler-BZ7rwkjR.js +0 -6
- langflow/frontend/assets/pentagon-CMdRJpyU.js +0 -6
- langflow/frontend/assets/percent-DUcp_Hu-.js +0 -6
- langflow/frontend/assets/person-standing-Ur3pkyWF.js +0 -6
- langflow/frontend/assets/philippine-peso-DYnLi4za.js +0 -6
- langflow/frontend/assets/phone-DU0nN01j.js +0 -6
- langflow/frontend/assets/phone-call-CpzfUvCS.js +0 -6
- langflow/frontend/assets/phone-forwarded-BhIeiw1L.js +0 -6
- langflow/frontend/assets/phone-incoming--bMxOKL_.js +0 -6
- langflow/frontend/assets/phone-missed-CLZnCkx0.js +0 -6
- langflow/frontend/assets/phone-off-D2N1--DK.js +0 -6
- langflow/frontend/assets/phone-outgoing-BttSf1Mf.js +0 -6
- langflow/frontend/assets/pi-0ZqHUNvQ.js +0 -6
- langflow/frontend/assets/piano-O0okyq-q.js +0 -6
- langflow/frontend/assets/pickaxe-BBq80IDk.js +0 -6
- langflow/frontend/assets/picture-in-picture-2-BRD22oaq.js +0 -6
- langflow/frontend/assets/picture-in-picture-aMu6X4he.js +0 -6
- langflow/frontend/assets/piggy-bank-Ba5KpW-R.js +0 -6
- langflow/frontend/assets/pilcrow-jO5PkN9u.js +0 -6
- langflow/frontend/assets/pilcrow-left-DIbvdJ4q.js +0 -6
- langflow/frontend/assets/pilcrow-right-Cn9D7hDF.js +0 -6
- langflow/frontend/assets/pill-D-42rIOW.js +0 -6
- langflow/frontend/assets/pill-bottle-DsJKKNcA.js +0 -6
- langflow/frontend/assets/pin-DfAVbRNJ.js +0 -6
- langflow/frontend/assets/pin-off-CJNWcHaA.js +0 -6
- langflow/frontend/assets/pipette-B7tJT2kJ.js +0 -6
- langflow/frontend/assets/pizza-CnrmNK8m.js +0 -6
- langflow/frontend/assets/plane-Dn27nhFg.js +0 -6
- langflow/frontend/assets/plane-landing-D0PYnEJh.js +0 -6
- langflow/frontend/assets/plane-takeoff-C9ORUKgO.js +0 -6
- langflow/frontend/assets/play-fRIv90Vb.js +0 -6
- langflow/frontend/assets/plug-2-D8fXOKQU.js +0 -6
- langflow/frontend/assets/plug-i5tCOxoY.js +0 -6
- langflow/frontend/assets/plug-zap-DUkZjazY.js +0 -6
- langflow/frontend/assets/pocket-Baxk-icN.js +0 -6
- langflow/frontend/assets/pocket-knife-vflNgCDB.js +0 -6
- langflow/frontend/assets/podcast-CGBp0he6.js +0 -6
- langflow/frontend/assets/pointer-BAlqPHUA.js +0 -6
- langflow/frontend/assets/pointer-off-Dr4nsB_n.js +0 -6
- langflow/frontend/assets/popcorn-CkYbqF6n.js +0 -6
- langflow/frontend/assets/popsicle-DQx7XFEX.js +0 -6
- langflow/frontend/assets/pound-sterling-D-7ovrEl.js +0 -6
- langflow/frontend/assets/power-CjdszFge.js +0 -6
- langflow/frontend/assets/power-off-DXTNJRDM.js +0 -6
- langflow/frontend/assets/presentation-BUFQUUad.js +0 -6
- langflow/frontend/assets/printer-DlXrt59N.js +0 -6
- langflow/frontend/assets/printer-check-CNpp-7a2.js +0 -6
- langflow/frontend/assets/projector-CejJOabJ.js +0 -6
- langflow/frontend/assets/proportions-DhzsgWUR.js +0 -6
- langflow/frontend/assets/puzzle-CIUZmh73.js +0 -6
- langflow/frontend/assets/pyramid-B1EU302T.js +0 -6
- langflow/frontend/assets/qr-code-B3ueAf2a.js +0 -6
- langflow/frontend/assets/quote-DnSAw5GA.js +0 -6
- langflow/frontend/assets/rabbit-D_w405-3.js +0 -6
- langflow/frontend/assets/radar-mMKrjXiq.js +0 -6
- langflow/frontend/assets/radiation-BKZhrAsf.js +0 -6
- langflow/frontend/assets/radical-DiyXLgcs.js +0 -6
- langflow/frontend/assets/radio-FZqpRcOY.js +0 -6
- langflow/frontend/assets/radio-receiver-DoqS8xe3.js +0 -6
- langflow/frontend/assets/radio-tower-DzcmNTOD.js +0 -6
- langflow/frontend/assets/radius-WO6Uuofn.js +0 -6
- langflow/frontend/assets/rail-symbol-Blp5Z6mm.js +0 -6
- langflow/frontend/assets/rainbow-BcpREq76.js +0 -6
- langflow/frontend/assets/rat-C_6nvO9X.js +0 -6
- langflow/frontend/assets/ratio-B2vtZEP1.js +0 -6
- langflow/frontend/assets/receipt-WM0uZGH2.js +0 -6
- langflow/frontend/assets/receipt-cent-BsFZulIa.js +0 -6
- langflow/frontend/assets/receipt-euro-JyQiZVY6.js +0 -6
- langflow/frontend/assets/receipt-indian-rupee-fTOVSpHz.js +0 -6
- langflow/frontend/assets/receipt-japanese-yen-D8DfDeDK.js +0 -6
- langflow/frontend/assets/receipt-pound-sterling-DaKscCMf.js +0 -6
- langflow/frontend/assets/receipt-russian-ruble-Buf0_3Kt.js +0 -6
- langflow/frontend/assets/receipt-swiss-franc-Bem-z2ls.js +0 -6
- langflow/frontend/assets/receipt-text-Bwc10qHQ.js +0 -6
- langflow/frontend/assets/rectangle-ellipsis-CeJcpjOB.js +0 -6
- langflow/frontend/assets/rectangle-goggles-DOshY7hS.js +0 -6
- langflow/frontend/assets/rectangle-horizontal-BkYka3pL.js +0 -6
- langflow/frontend/assets/rectangle-vertical-DzlIazB7.js +0 -6
- langflow/frontend/assets/recycle-BYgswKLN.js +0 -6
- langflow/frontend/assets/redo-2-BZ3Hs4ln.js +0 -6
- langflow/frontend/assets/redo-BU2dMbQ2.js +0 -6
- langflow/frontend/assets/redo-dot-BZUxEEyF.js +0 -6
- langflow/frontend/assets/refresh-ccw-dot-Cz65nUFZ.js +0 -6
- langflow/frontend/assets/refresh-ccw-mpgTt4cp.js +0 -6
- langflow/frontend/assets/refresh-cw-ACMLi-4b.js +0 -6
- langflow/frontend/assets/refresh-cw-off-BrGN63Qm.js +0 -6
- langflow/frontend/assets/refrigerator-BFChB889.js +0 -6
- langflow/frontend/assets/regex-C8kDLEV-.js +0 -6
- langflow/frontend/assets/remove-formatting-4xIOGsHV.js +0 -6
- langflow/frontend/assets/repeat-1-C5gQ8b_d.js +0 -6
- langflow/frontend/assets/repeat-2-YlU_Z8sF.js +0 -6
- langflow/frontend/assets/repeat-BYHb23Jr.js +0 -6
- langflow/frontend/assets/replace-DrXxrUoA.js +0 -6
- langflow/frontend/assets/replace-all-_qSvipH9.js +0 -6
- langflow/frontend/assets/reply-D3kS0lZA.js +0 -6
- langflow/frontend/assets/reply-all-C9Q_Q7RN.js +0 -6
- langflow/frontend/assets/rewind-C6LCP7LR.js +0 -6
- langflow/frontend/assets/ribbon-8h1u3qoT.js +0 -6
- langflow/frontend/assets/rocket-6Gkkhs52.js +0 -6
- langflow/frontend/assets/rocking-chair-Ds11M0kh.js +0 -6
- langflow/frontend/assets/roller-coaster-B1FJdn_M.js +0 -6
- langflow/frontend/assets/rotate-3d-BMruZsY9.js +0 -6
- langflow/frontend/assets/rotate-ccw-DXeuJ4SS.js +0 -6
- langflow/frontend/assets/rotate-ccw-key-D8tWaFpf.js +0 -6
- langflow/frontend/assets/rotate-ccw-square-DqcG1yyF.js +0 -6
- langflow/frontend/assets/rotate-cw-JxVkjAiv.js +0 -6
- langflow/frontend/assets/rotate-cw-square-DIFQHpgn.js +0 -6
- langflow/frontend/assets/route-CyvYbs4s.js +0 -6
- langflow/frontend/assets/route-off-DaW9NN2P.js +0 -6
- langflow/frontend/assets/router-Dj4Gk-iP.js +0 -6
- langflow/frontend/assets/rows-2-Bz25-LGn.js +0 -6
- langflow/frontend/assets/rows-3-BjF2fk8b.js +0 -6
- langflow/frontend/assets/rows-4-CdbGj4cO.js +0 -6
- langflow/frontend/assets/rss-BqrD36sY.js +0 -6
- langflow/frontend/assets/ruler-DDUQN13b.js +0 -6
- langflow/frontend/assets/ruler-dimension-line-B7pClM0L.js +0 -6
- langflow/frontend/assets/russian-ruble-B8-eH9Vh.js +0 -6
- langflow/frontend/assets/sailboat-BNh0r77k.js +0 -6
- langflow/frontend/assets/salad-DYdtRABF.js +0 -6
- langflow/frontend/assets/sandwich-BM6ZxGik.js +0 -6
- langflow/frontend/assets/satellite-bn5mBvGZ.js +0 -6
- langflow/frontend/assets/satellite-dish-CInF6yLC.js +0 -6
- langflow/frontend/assets/saudi-riyal-DXjre3xO.js +0 -6
- langflow/frontend/assets/save-CnwN2YAE.js +0 -6
- langflow/frontend/assets/save-all-Drrj35Ia.js +0 -6
- langflow/frontend/assets/save-off-M8ohigKB.js +0 -6
- langflow/frontend/assets/scale-3d-CaKlEBy5.js +0 -6
- langflow/frontend/assets/scale-Cu8-QWt2.js +0 -6
- langflow/frontend/assets/scaling-BoA8uGVv.js +0 -6
- langflow/frontend/assets/scan-C_H_s3YU.js +0 -6
- langflow/frontend/assets/scan-barcode-CrdT66Ss.js +0 -6
- langflow/frontend/assets/scan-eye-DVxu5yMg.js +0 -6
- langflow/frontend/assets/scan-face-C-BbOdW7.js +0 -6
- langflow/frontend/assets/scan-heart-BDP49vL1.js +0 -6
- langflow/frontend/assets/scan-line-CvXcAKFz.js +0 -6
- langflow/frontend/assets/scan-qr-code-CGmOxmjp.js +0 -6
- langflow/frontend/assets/scan-search-lVHucfuL.js +0 -6
- langflow/frontend/assets/scan-text-BWlFO81f.js +0 -6
- langflow/frontend/assets/school-DIrnM4NK.js +0 -6
- langflow/frontend/assets/scissors-D_tqn99a.js +0 -6
- langflow/frontend/assets/scissors-line-dashed-BmzyE8L6.js +0 -6
- langflow/frontend/assets/screen-share-QrqusLrN.js +0 -6
- langflow/frontend/assets/screen-share-off-CChuEPW1.js +0 -6
- langflow/frontend/assets/scroll-CJKwovV_.js +0 -6
- langflow/frontend/assets/scroll-text-DrBBLd5M.js +0 -6
- langflow/frontend/assets/search-check-pd5Z-lqD.js +0 -6
- langflow/frontend/assets/search-code-Dv1aBkEZ.js +0 -6
- langflow/frontend/assets/search-slash-C7hA1-is.js +0 -6
- langflow/frontend/assets/search-x-BBxtqy3_.js +0 -6
- langflow/frontend/assets/section-BQnHgm0Z.js +0 -6
- langflow/frontend/assets/send-Bic93nFl.js +0 -6
- langflow/frontend/assets/send-horizontal-Djz0F2nb.js +0 -6
- langflow/frontend/assets/send-to-back-Du3rjlDy.js +0 -6
- langflow/frontend/assets/separator-horizontal-DK0ZpL2Q.js +0 -6
- langflow/frontend/assets/separator-vertical-Zxsg5S5s.js +0 -6
- langflow/frontend/assets/server-cog-DgcA3tg2.js +0 -6
- langflow/frontend/assets/server-crash-Lc5DjUjZ.js +0 -6
- langflow/frontend/assets/server-cxBG8tpy.js +0 -6
- langflow/frontend/assets/server-off-C1-ZzWKv.js +0 -6
- langflow/frontend/assets/settings-2-BZ95YTfB.js +0 -6
- langflow/frontend/assets/settings-DbTdPIpg.js +0 -6
- langflow/frontend/assets/shapes-DhvVOUty.js +0 -6
- langflow/frontend/assets/share-2-CgsPoN9M.js +0 -6
- langflow/frontend/assets/share-BMMVZ7rL.js +0 -6
- langflow/frontend/assets/sheet-DoAFHBc2.js +0 -6
- langflow/frontend/assets/shell-DVTOAKsK.js +0 -6
- langflow/frontend/assets/shield-CdOo33h6.js +0 -6
- langflow/frontend/assets/shield-alert-DBjHf6ln.js +0 -6
- langflow/frontend/assets/shield-ban-iaGkidPw.js +0 -6
- langflow/frontend/assets/shield-check-BcYNKKvn.js +0 -6
- langflow/frontend/assets/shield-ellipsis-CeuabAd1.js +0 -6
- langflow/frontend/assets/shield-half-DslM6pvI.js +0 -6
- langflow/frontend/assets/shield-minus-5D5bC80R.js +0 -6
- langflow/frontend/assets/shield-off-Bs6Dw1oj.js +0 -6
- langflow/frontend/assets/shield-plus-BYTPSZ_j.js +0 -6
- langflow/frontend/assets/shield-question-8di04eB9.js +0 -6
- langflow/frontend/assets/shield-user-BjZpNWs-.js +0 -6
- langflow/frontend/assets/shield-x-DtMjrAR6.js +0 -6
- langflow/frontend/assets/ship-B1FS-0wt.js +0 -6
- langflow/frontend/assets/ship-wheel-CWwqGxuS.js +0 -6
- langflow/frontend/assets/shirt-DDY_cBLI.js +0 -6
- langflow/frontend/assets/shopping-bag-C8yUBVA3.js +0 -6
- langflow/frontend/assets/shopping-basket-DuQiTq_R.js +0 -6
- langflow/frontend/assets/shopping-cart-DXQDHvOm.js +0 -6
- langflow/frontend/assets/shovel-BX6j4P4r.js +0 -6
- langflow/frontend/assets/shower-head-CnHgENtR.js +0 -6
- langflow/frontend/assets/shredder-CNaGhMYw.js +0 -6
- langflow/frontend/assets/shrimp-BKwZUqsk.js +0 -6
- langflow/frontend/assets/shrink-DtBGdGCI.js +0 -6
- langflow/frontend/assets/shrub-BHoEVOKE.js +0 -6
- langflow/frontend/assets/shuffle-ewdvGbAy.js +0 -6
- langflow/frontend/assets/sigma-KzfEfHDJ.js +0 -6
- langflow/frontend/assets/signal-Cty6boDC.js +0 -6
- langflow/frontend/assets/signal-high-o0UeLOaX.js +0 -6
- langflow/frontend/assets/signal-low-BlXUWkId.js +0 -6
- langflow/frontend/assets/signal-medium-Cb-EZQHK.js +0 -6
- langflow/frontend/assets/signal-zero-WgiDibfW.js +0 -6
- langflow/frontend/assets/signature-D6cLBZaG.js +0 -6
- langflow/frontend/assets/signpost-DCNWRGGD.js +0 -6
- langflow/frontend/assets/signpost-big-BRAZrCYB.js +0 -6
- langflow/frontend/assets/siren-CmgQp-ZJ.js +0 -6
- langflow/frontend/assets/skip-back-BiBdMTVG.js +0 -6
- langflow/frontend/assets/skip-forward-DnMYJ9X6.js +0 -6
- langflow/frontend/assets/skull-CvtoSbMr.js +0 -6
- langflow/frontend/assets/slack-C_8L2fXg.js +0 -6
- langflow/frontend/assets/slash-BuhBmsx0.js +0 -6
- langflow/frontend/assets/slice-C33iA43B.js +0 -6
- langflow/frontend/assets/sliders-horizontal-DzuvDOHu.js +0 -6
- langflow/frontend/assets/sliders-vertical-DswThdIG.js +0 -6
- langflow/frontend/assets/smartphone-DLfmh6zg.js +0 -6
- langflow/frontend/assets/smartphone-charging-DM5gpvRw.js +0 -6
- langflow/frontend/assets/smartphone-nfc-4FHMN64h.js +0 -6
- langflow/frontend/assets/smile-DfMqFt_h.js +0 -6
- langflow/frontend/assets/smile-plus-vdR01AAo.js +0 -6
- langflow/frontend/assets/snail-BSe4rGOt.js +0 -6
- langflow/frontend/assets/snowflake-jjr9o6Xt.js +0 -6
- langflow/frontend/assets/sofa-CSdha_xf.js +0 -6
- langflow/frontend/assets/soup-DZaUMUi7.js +0 -6
- langflow/frontend/assets/space-CtU_wGsw.js +0 -6
- langflow/frontend/assets/spade-D6c1SnhI.js +0 -6
- langflow/frontend/assets/sparkle-D4Y-hgf0.js +0 -6
- langflow/frontend/assets/sparkles-D6LCSr3Q.js +0 -6
- langflow/frontend/assets/speaker-cIby5NbL.js +0 -6
- langflow/frontend/assets/speech-BcZoNsRO.js +0 -6
- langflow/frontend/assets/spell-check-2-gCrGa94o.js +0 -6
- langflow/frontend/assets/spell-check-C4VH_2Qb.js +0 -6
- langflow/frontend/assets/spline-30bTTImI.js +0 -6
- langflow/frontend/assets/spline-pointer-cKwSQ01W.js +0 -6
- langflow/frontend/assets/split-CNrHGI-P.js +0 -6
- langflow/frontend/assets/spray-can-MY8gc3Gg.js +0 -6
- langflow/frontend/assets/sprout-CTMnmXTl.js +0 -6
- langflow/frontend/assets/square-DAYnpPeo.js +0 -6
- langflow/frontend/assets/square-activity-BkP8wsck.js +0 -6
- langflow/frontend/assets/square-arrow-down-left-BJCokILI.js +0 -6
- langflow/frontend/assets/square-arrow-down-right-D21bwU3d.js +0 -6
- langflow/frontend/assets/square-arrow-down-wjq_PHOs.js +0 -6
- langflow/frontend/assets/square-arrow-left-ffOKr4VO.js +0 -6
- langflow/frontend/assets/square-arrow-out-down-left-BezNJDBn.js +0 -6
- langflow/frontend/assets/square-arrow-out-down-right-BPuETIWj.js +0 -6
- langflow/frontend/assets/square-arrow-out-up-left-DLD7WE_w.js +0 -6
- langflow/frontend/assets/square-arrow-out-up-right-DA0PM5tU.js +0 -6
- langflow/frontend/assets/square-arrow-right-B4b1_-rA.js +0 -6
- langflow/frontend/assets/square-arrow-up-D1JuObvy.js +0 -6
- langflow/frontend/assets/square-arrow-up-left-C4rWW6J5.js +0 -6
- langflow/frontend/assets/square-arrow-up-right-BccXA4Y9.js +0 -6
- langflow/frontend/assets/square-asterisk-CrzQn13y.js +0 -6
- langflow/frontend/assets/square-bottom-dashed-scissors-DnW0XK0f.js +0 -6
- langflow/frontend/assets/square-chart-gantt-C8R1N8RH.js +0 -6
- langflow/frontend/assets/square-check-D4l21ciO.js +0 -6
- langflow/frontend/assets/square-check-big-DjzIbmzH.js +0 -6
- langflow/frontend/assets/square-chevron-down-BPkxVX0b.js +0 -6
- langflow/frontend/assets/square-chevron-left-ExTGsTLo.js +0 -6
- langflow/frontend/assets/square-chevron-right-BBaghHnR.js +0 -6
- langflow/frontend/assets/square-chevron-up-DkVUGfLD.js +0 -6
- langflow/frontend/assets/square-code-CQFZqV73.js +0 -6
- langflow/frontend/assets/square-dashed-D_wWm-82.js +0 -6
- langflow/frontend/assets/square-dashed-bottom-Bqr8MwXl.js +0 -6
- langflow/frontend/assets/square-dashed-bottom-code-Bjjim6HD.js +0 -6
- langflow/frontend/assets/square-dashed-kanban-CCab8Xca.js +0 -6
- langflow/frontend/assets/square-dashed-mouse-pointer-BxGXrsme.js +0 -6
- langflow/frontend/assets/square-divide-CKI-Up8y.js +0 -6
- langflow/frontend/assets/square-dot-DgcJzw1Q.js +0 -6
- langflow/frontend/assets/square-equal-CSDXQXyV.js +0 -6
- langflow/frontend/assets/square-function-D6lS9fXm.js +0 -6
- langflow/frontend/assets/square-kanban-D1wJC8dg.js +0 -6
- langflow/frontend/assets/square-library-oxh7GiX_.js +0 -6
- langflow/frontend/assets/square-m-D3E68E4o.js +0 -6
- langflow/frontend/assets/square-menu-DkvQRppR.js +0 -6
- langflow/frontend/assets/square-minus-D3EZtgoZ.js +0 -6
- langflow/frontend/assets/square-mouse-pointer-Djj-JU4h.js +0 -6
- langflow/frontend/assets/square-parking-D9m5K58Z.js +0 -6
- langflow/frontend/assets/square-parking-off-Br2o87Vn.js +0 -6
- langflow/frontend/assets/square-pen-54_TzMVB.js +0 -6
- langflow/frontend/assets/square-percent-Pi7Do-mI.js +0 -6
- langflow/frontend/assets/square-pi-d8AE2n6O.js +0 -6
- langflow/frontend/assets/square-pilcrow-CHkd54Ay.js +0 -6
- langflow/frontend/assets/square-play-C7NhfVmU.js +0 -6
- langflow/frontend/assets/square-plus-7W1vqpS2.js +0 -6
- langflow/frontend/assets/square-power-d73kfd02.js +0 -6
- langflow/frontend/assets/square-radical-B_WKpw6e.js +0 -6
- langflow/frontend/assets/square-round-corner-Bt24eSa-.js +0 -6
- langflow/frontend/assets/square-scissors-BPBlO8tj.js +0 -6
- langflow/frontend/assets/square-sigma-B408Hcot.js +0 -6
- langflow/frontend/assets/square-slash-oyzWpALk.js +0 -6
- langflow/frontend/assets/square-split-horizontal-BwcBVle3.js +0 -6
- langflow/frontend/assets/square-split-vertical-D1ATm8h5.js +0 -6
- langflow/frontend/assets/square-square-Y0bNlAeu.js +0 -6
- langflow/frontend/assets/square-stack-DIcbRSYB.js +0 -6
- langflow/frontend/assets/square-terminal-DNbwvTum.js +0 -6
- langflow/frontend/assets/square-user-C6j9Cm_b.js +0 -6
- langflow/frontend/assets/square-user-round-CGV7arDL.js +0 -6
- langflow/frontend/assets/square-x-BSlFsooC.js +0 -6
- langflow/frontend/assets/squares-exclude-BWlUU_LN.js +0 -6
- langflow/frontend/assets/squares-intersect-DC96-VnH.js +0 -6
- langflow/frontend/assets/squares-subtract-V_tzjsIa.js +0 -6
- langflow/frontend/assets/squares-unite-DDAWTUUz.js +0 -6
- langflow/frontend/assets/squircle-CWI8bpGs.js +0 -6
- langflow/frontend/assets/squirrel-DexGqqHj.js +0 -6
- langflow/frontend/assets/stamp-Da9eG7P8.js +0 -6
- langflow/frontend/assets/star-CjU7PovP.js +0 -6
- langflow/frontend/assets/star-half-BEdJF7rh.js +0 -6
- langflow/frontend/assets/star-off-DEHoRhIC.js +0 -6
- langflow/frontend/assets/step-back-BGv8ki_W.js +0 -6
- langflow/frontend/assets/step-forward-CXeF6y97.js +0 -6
- langflow/frontend/assets/stethoscope-B_z5mVjV.js +0 -6
- langflow/frontend/assets/sticker-R-n9lbNf.js +0 -6
- langflow/frontend/assets/sticky-note-at6ea9az.js +0 -6
- langflow/frontend/assets/store-DnHo-Dvu.js +0 -6
- langflow/frontend/assets/stretch-horizontal-zg63Pwn2.js +0 -6
- langflow/frontend/assets/stretch-vertical-CB9Cr8wu.js +0 -6
- langflow/frontend/assets/strikethrough-B3J3AT-j.js +0 -6
- langflow/frontend/assets/subscript-wOCgwyoJ.js +0 -6
- langflow/frontend/assets/sun-1UeCQOnL.js +0 -6
- langflow/frontend/assets/sun-dim-B0YsfXD6.js +0 -6
- langflow/frontend/assets/sun-medium-CUw1fOHy.js +0 -6
- langflow/frontend/assets/sun-moon-BkXUm2zc.js +0 -6
- langflow/frontend/assets/sun-snow-AD_NFDlL.js +0 -6
- langflow/frontend/assets/sunrise-DrRDOJnx.js +0 -6
- langflow/frontend/assets/sunset-BmTyIBYG.js +0 -6
- langflow/frontend/assets/superscript-DAkv6GWV.js +0 -6
- langflow/frontend/assets/swatch-book-PuFO7fNf.js +0 -6
- langflow/frontend/assets/swiss-franc-CvCwlH-1.js +0 -6
- langflow/frontend/assets/switch-camera-CVKjOYy0.js +0 -6
- langflow/frontend/assets/sword-Dl4xK_Hg.js +0 -6
- langflow/frontend/assets/swords-B2bEsoTz.js +0 -6
- langflow/frontend/assets/syringe-CWwiBNw1.js +0 -6
- langflow/frontend/assets/table-2-5Ub1Hp1X.js +0 -6
- langflow/frontend/assets/table-cQlSPuPD.js +0 -6
- langflow/frontend/assets/table-cells-merge-5Lwptgjx.js +0 -6
- langflow/frontend/assets/table-cells-split-D5HaR7Ur.js +0 -6
- langflow/frontend/assets/table-columns-split-Br2xOFx-.js +0 -6
- langflow/frontend/assets/table-of-contents-J33-4h_p.js +0 -6
- langflow/frontend/assets/table-properties-lG9kds2q.js +0 -6
- langflow/frontend/assets/table-rows-split-NcY8df44.js +0 -6
- langflow/frontend/assets/tablet-bAWYk7ZU.js +0 -6
- langflow/frontend/assets/tablet-smartphone-CFUKE6kR.js +0 -6
- langflow/frontend/assets/tablets-P6mDX7J9.js +0 -6
- langflow/frontend/assets/tag-CQdskkfZ.js +0 -6
- langflow/frontend/assets/tags-BxGGU895.js +0 -6
- langflow/frontend/assets/tally-1-SqGUi5E_.js +0 -6
- langflow/frontend/assets/tally-2-DeYyaYLG.js +0 -6
- langflow/frontend/assets/tally-3-CaXs59HO.js +0 -6
- langflow/frontend/assets/tally-4-CmBeVOUP.js +0 -6
- langflow/frontend/assets/tally-5-Cp6xqAlX.js +0 -6
- langflow/frontend/assets/tangent-Bu8LuRAW.js +0 -6
- langflow/frontend/assets/target-CatpZfLc.js +0 -6
- langflow/frontend/assets/telescope-BPZqaaPb.js +0 -6
- langflow/frontend/assets/tent-qOuOFpz4.js +0 -6
- langflow/frontend/assets/tent-tree-DmiIwVgi.js +0 -6
- langflow/frontend/assets/terminal-BYbGvjDK.js +0 -6
- langflow/frontend/assets/test-tube-D_FhTaaq.js +0 -6
- langflow/frontend/assets/test-tube-diagonal-CCU3bG1X.js +0 -6
- langflow/frontend/assets/test-tubes-DukEK2vU.js +0 -6
- langflow/frontend/assets/text-CwwKm1R0.js +0 -6
- langflow/frontend/assets/text-cursor-BimJjGf3.js +0 -6
- langflow/frontend/assets/text-cursor-input-B_kXpYRl.js +0 -6
- langflow/frontend/assets/text-quote-CBAkQ8QD.js +0 -6
- langflow/frontend/assets/text-search-B7Sl0pKm.js +0 -6
- langflow/frontend/assets/text-select-DjpMY6Y4.js +0 -6
- langflow/frontend/assets/theater-Bo3HTTbl.js +0 -6
- langflow/frontend/assets/thermometer-Bu6gSpo-.js +0 -6
- langflow/frontend/assets/thermometer-snowflake-hm8pKZNQ.js +0 -6
- langflow/frontend/assets/thermometer-sun-DP-3bkYe.js +0 -6
- langflow/frontend/assets/thumbs-down-BN2xuLtF.js +0 -6
- langflow/frontend/assets/thumbs-up-CvtaTShj.js +0 -6
- langflow/frontend/assets/ticket-B8jfAFNy.js +0 -6
- langflow/frontend/assets/ticket-check-MV1S9SUz.js +0 -6
- langflow/frontend/assets/ticket-minus-D9NRuCuh.js +0 -6
- langflow/frontend/assets/ticket-percent-Cx11tpWt.js +0 -6
- langflow/frontend/assets/ticket-plus-B4SeZsFv.js +0 -6
- langflow/frontend/assets/ticket-slash-DmFj6_tZ.js +0 -6
- langflow/frontend/assets/ticket-x-BV_YZPkD.js +0 -6
- langflow/frontend/assets/tickets-BuIASBDi.js +0 -6
- langflow/frontend/assets/tickets-plane-BVCZthgO.js +0 -6
- langflow/frontend/assets/timer-5MEGKA2T.js +0 -6
- langflow/frontend/assets/timer-off-C-i8-CA1.js +0 -6
- langflow/frontend/assets/timer-reset-DN9eZBRg.js +0 -6
- langflow/frontend/assets/toggle-left-BCOe-Uk4.js +0 -6
- langflow/frontend/assets/toggle-right-ersa9_T2.js +0 -6
- langflow/frontend/assets/toilet-DpxVM3Ui.js +0 -6
- langflow/frontend/assets/tornado-JM7DbumL.js +0 -6
- langflow/frontend/assets/torus-Bei_YR1p.js +0 -6
- langflow/frontend/assets/touchpad-CXUqWqt1.js +0 -6
- langflow/frontend/assets/touchpad-off-DyO9VlXZ.js +0 -6
- langflow/frontend/assets/tower-control-BKAIg-Wk.js +0 -6
- langflow/frontend/assets/toy-brick-DcGrcKQp.js +0 -6
- langflow/frontend/assets/tractor-B2dLboVj.js +0 -6
- langflow/frontend/assets/traffic-cone-BEvlA0ug.js +0 -6
- langflow/frontend/assets/train-front-CxEtDqw-.js +0 -6
- langflow/frontend/assets/train-front-tunnel-6851wkpJ.js +0 -6
- langflow/frontend/assets/train-track-Cgy3PJec.js +0 -6
- langflow/frontend/assets/tram-front-C5eL4T0U.js +0 -6
- langflow/frontend/assets/transgender-W81LXVG9.js +0 -6
- langflow/frontend/assets/trash-C-jmCiLI.js +0 -6
- langflow/frontend/assets/tree-deciduous-DYmfvFfP.js +0 -6
- langflow/frontend/assets/tree-palm-Bv1YDrxR.js +0 -6
- langflow/frontend/assets/tree-pine-F7CHJhUF.js +0 -6
- langflow/frontend/assets/trees-CQI05VGt.js +0 -6
- langflow/frontend/assets/trello-D1yKllL-.js +0 -6
- langflow/frontend/assets/trending-down-7BR48si1.js +0 -6
- langflow/frontend/assets/trending-up-DxGJGJI4.js +0 -6
- langflow/frontend/assets/trending-up-down-Bv-0EkEM.js +0 -6
- langflow/frontend/assets/triangle-CqL0BuIo.js +0 -6
- langflow/frontend/assets/triangle-alert-BurSbX0E.js +0 -6
- langflow/frontend/assets/triangle-dashed-D0AlVMT4.js +0 -6
- langflow/frontend/assets/triangle-right-Cjlm7XfT.js +0 -6
- langflow/frontend/assets/trophy-DlqrTI3t.js +0 -6
- langflow/frontend/assets/truck-Be0AHBIn.js +0 -6
- langflow/frontend/assets/truck-electric-CTzzAU12.js +0 -6
- langflow/frontend/assets/turtle-CwgcW4BG.js +0 -6
- langflow/frontend/assets/tv-Cvkiuwa4.js +0 -6
- langflow/frontend/assets/tv-minimal-BKMMXObd.js +0 -6
- langflow/frontend/assets/tv-minimal-play-C2zC8Mf7.js +0 -6
- langflow/frontend/assets/twitch-BaNtc3ms.js +0 -6
- langflow/frontend/assets/twitter-D8cJDYlb.js +0 -6
- langflow/frontend/assets/type-B6-SVmrS.js +0 -6
- langflow/frontend/assets/type-outline-DF201kHQ.js +0 -6
- langflow/frontend/assets/umbrella-CUjrRZLn.js +0 -6
- langflow/frontend/assets/umbrella-off-DUIvDGWF.js +0 -6
- langflow/frontend/assets/underline-BZYW7kZe.js +0 -6
- langflow/frontend/assets/undo-2-_LSGuM6A.js +0 -6
- langflow/frontend/assets/undo-D0ua0irY.js +0 -6
- langflow/frontend/assets/undo-dot-DHpoiELc.js +0 -6
- langflow/frontend/assets/unfold-horizontal-Baz2NDym.js +0 -6
- langflow/frontend/assets/unfold-vertical-B5z_zoi2.js +0 -6
- langflow/frontend/assets/ungroup-Byf-HoMq.js +0 -6
- langflow/frontend/assets/university-BfeHsa2H.js +0 -6
- langflow/frontend/assets/unlink-2-Bf6hkBxc.js +0 -6
- langflow/frontend/assets/unlink-PTIP9C1t.js +0 -6
- langflow/frontend/assets/unplug-dq9vW1e5.js +0 -6
- langflow/frontend/assets/upload-ClL_xcHX.js +0 -6
- langflow/frontend/assets/usb-CMQz5Bbx.js +0 -6
- langflow/frontend/assets/use-post-add-user-CijdM3CW.js +0 -1
- langflow/frontend/assets/user-CJbOlfYO.js +0 -6
- langflow/frontend/assets/user-check-D2TJIdbC.js +0 -6
- langflow/frontend/assets/user-cog-xgFL0Fjx.js +0 -6
- langflow/frontend/assets/user-lock-4Ccl2f31.js +0 -6
- langflow/frontend/assets/user-minus-3-XA_v8O.js +0 -6
- langflow/frontend/assets/user-pen-B6_m96L5.js +0 -6
- langflow/frontend/assets/user-plus-DcRRk4IL.js +0 -6
- langflow/frontend/assets/user-round-B4Dz_J0y.js +0 -6
- langflow/frontend/assets/user-round-check-BuqG6Tln.js +0 -6
- langflow/frontend/assets/user-round-cog-CkomKcE0.js +0 -6
- langflow/frontend/assets/user-round-minus-BOY_xYco.js +0 -6
- langflow/frontend/assets/user-round-pen-QbRIGglu.js +0 -6
- langflow/frontend/assets/user-round-plus-BC1vyhU-.js +0 -6
- langflow/frontend/assets/user-round-search-CDMrfpLU.js +0 -6
- langflow/frontend/assets/user-round-x-B3E2RJ6I.js +0 -6
- langflow/frontend/assets/user-search-DF_KLVhe.js +0 -6
- langflow/frontend/assets/user-x-DgFDuuYq.js +0 -6
- langflow/frontend/assets/users-C9tV3bcv.js +0 -6
- langflow/frontend/assets/users-round-m5S3NT8N.js +0 -6
- langflow/frontend/assets/utensils-CNMxOrnM.js +0 -6
- langflow/frontend/assets/utensils-crossed-CWsvzFyf.js +0 -6
- langflow/frontend/assets/utility-pole-PSm7b5qq.js +0 -6
- langflow/frontend/assets/variable-Dosn3l0Q.js +0 -6
- langflow/frontend/assets/vault-DJCdrDkA.js +0 -6
- langflow/frontend/assets/vegan-BzI5fdli.js +0 -6
- langflow/frontend/assets/venetian-mask-DhNCjf4N.js +0 -6
- langflow/frontend/assets/venus-Dz-DpZXp.js +0 -6
- langflow/frontend/assets/venus-and-mars-Bl6thHIW.js +0 -6
- langflow/frontend/assets/vibrate-BtFaim1I.js +0 -6
- langflow/frontend/assets/vibrate-off-CrxEKLLu.js +0 -6
- langflow/frontend/assets/video-CskvLdG0.js +0 -6
- langflow/frontend/assets/video-off-BLD65TIj.js +0 -6
- langflow/frontend/assets/videotape-CFtB6Y7N.js +0 -6
- langflow/frontend/assets/view-vJgBVvc1.js +0 -6
- langflow/frontend/assets/voicemail-BLTEEoA_.js +0 -6
- langflow/frontend/assets/volleyball-CmsNUAQG.js +0 -6
- langflow/frontend/assets/volume-1-GNgUvREd.js +0 -6
- langflow/frontend/assets/volume-2--ZL1-glW.js +0 -6
- langflow/frontend/assets/volume-Cb0M2vA7.js +0 -6
- langflow/frontend/assets/volume-off-B0WaOdRU.js +0 -6
- langflow/frontend/assets/volume-x-N8PIRYGP.js +0 -6
- langflow/frontend/assets/vote-BybNJmTk.js +0 -6
- langflow/frontend/assets/wallet--kGpRM2_.js +0 -6
- langflow/frontend/assets/wallet-cards-DlB31LM8.js +0 -6
- langflow/frontend/assets/wallet-minimal-Bi8ZraZE.js +0 -6
- langflow/frontend/assets/wallpaper-DtDpeCXF.js +0 -6
- langflow/frontend/assets/wand-DCe0uAlf.js +0 -6
- langflow/frontend/assets/wand-sparkles-3r2BJJrS.js +0 -6
- langflow/frontend/assets/warehouse-BKHflVjD.js +0 -6
- langflow/frontend/assets/washing-machine-DX7eBIvZ.js +0 -6
- langflow/frontend/assets/watch-DtXtjDr9.js +0 -6
- langflow/frontend/assets/waves-CiYh0DqU.js +0 -6
- langflow/frontend/assets/waves-ladder-Yzo4x2dv.js +0 -6
- langflow/frontend/assets/waypoints-Be0aFt5U.js +0 -6
- langflow/frontend/assets/webcam-BrDmzAmL.js +0 -6
- langflow/frontend/assets/webhook-DJlX-3N-.js +0 -6
- langflow/frontend/assets/webhook-off-B7Eotjfb.js +0 -6
- langflow/frontend/assets/weight-DEkTHimE.js +0 -6
- langflow/frontend/assets/wheat-BinBJSa-.js +0 -6
- langflow/frontend/assets/wheat-off-DOI2qhbr.js +0 -6
- langflow/frontend/assets/whole-word-DoiXEyAQ.js +0 -6
- langflow/frontend/assets/wifi-C5iLP1z0.js +0 -6
- langflow/frontend/assets/wifi-high-WCT9uviK.js +0 -6
- langflow/frontend/assets/wifi-low-bhDZjYYt.js +0 -6
- langflow/frontend/assets/wifi-off-DybtTHDv.js +0 -6
- langflow/frontend/assets/wifi-pen-YZxtC-1t.js +0 -6
- langflow/frontend/assets/wifi-zero-Ck1ckTXM.js +0 -6
- langflow/frontend/assets/wind-DpU4CZZc.js +0 -6
- langflow/frontend/assets/wind-arrow-down-CF-PTBQL.js +0 -6
- langflow/frontend/assets/wine-DZzgE7cg.js +0 -6
- langflow/frontend/assets/wine-off-CKFsTdqQ.js +0 -6
- langflow/frontend/assets/workflow-B9ICwfQ9.js +0 -6
- langflow/frontend/assets/worm-B9DE2nB9.js +0 -6
- langflow/frontend/assets/wrap-text-GILhD4dN.js +0 -6
- langflow/frontend/assets/wrench-BVYdz0EV.js +0 -6
- langflow/frontend/assets/youtube-6WX8K7Zb.js +0 -6
- langflow/frontend/assets/zap-BZEXKDc5.js +0 -6
- langflow/frontend/assets/zap-off-B4uFrIUs.js +0 -6
- langflow/frontend/assets/zoom-in-CWEynbHp.js +0 -6
- langflow/frontend/assets/zoom-out-3VosI-6u.js +0 -6
- langflow_base_nightly-1.7.0.dev26.dist-info/METADATA +0 -99
- langflow_base_nightly-1.7.0.dev26.dist-info/RECORD +0 -2277
- {langflow_base_nightly-1.7.0.dev26.dist-info → langflow_base_nightly-1.7.0.dev34.dist-info}/WHEEL +0 -0
- {langflow_base_nightly-1.7.0.dev26.dist-info → langflow_base_nightly-1.7.0.dev34.dist-info}/entry_points.txt +0 -0
|
@@ -411,7 +411,7 @@
|
|
|
411
411
|
"legacy": false,
|
|
412
412
|
"lf_version": "1.4.3",
|
|
413
413
|
"metadata": {
|
|
414
|
-
"code_hash": "
|
|
414
|
+
"code_hash": "8c87e536cca4",
|
|
415
415
|
"dependencies": {
|
|
416
416
|
"dependencies": [
|
|
417
417
|
{
|
|
@@ -420,7 +420,7 @@
|
|
|
420
420
|
},
|
|
421
421
|
{
|
|
422
422
|
"name": "fastapi",
|
|
423
|
-
"version": "0.
|
|
423
|
+
"version": "0.123.0"
|
|
424
424
|
},
|
|
425
425
|
{
|
|
426
426
|
"name": "lfx",
|
|
@@ -485,7 +485,7 @@
|
|
|
485
485
|
"show": true,
|
|
486
486
|
"title_case": false,
|
|
487
487
|
"type": "code",
|
|
488
|
-
"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"
|
|
488
|
+
"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"
|
|
489
489
|
},
|
|
490
490
|
"context_id": {
|
|
491
491
|
"_input_type": "MessageTextInput",
|
|
@@ -1187,7 +1187,7 @@
|
|
|
1187
1187
|
"beta": false,
|
|
1188
1188
|
"conditional_paths": [],
|
|
1189
1189
|
"custom_fields": {},
|
|
1190
|
-
"description": "Loads content from
|
|
1190
|
+
"description": "Loads and returns the content from uploaded files.",
|
|
1191
1191
|
"display_name": "File",
|
|
1192
1192
|
"documentation": "",
|
|
1193
1193
|
"edited": false,
|
|
@@ -1207,15 +1207,23 @@
|
|
|
1207
1207
|
"legacy": false,
|
|
1208
1208
|
"lf_version": "1.4.3",
|
|
1209
1209
|
"metadata": {
|
|
1210
|
-
"code_hash": "
|
|
1210
|
+
"code_hash": "1d81b3a4d764",
|
|
1211
1211
|
"dependencies": {
|
|
1212
1212
|
"dependencies": [
|
|
1213
1213
|
{
|
|
1214
1214
|
"name": "lfx",
|
|
1215
1215
|
"version": null
|
|
1216
|
+
},
|
|
1217
|
+
{
|
|
1218
|
+
"name": "langchain_core",
|
|
1219
|
+
"version": "0.3.80"
|
|
1220
|
+
},
|
|
1221
|
+
{
|
|
1222
|
+
"name": "pydantic",
|
|
1223
|
+
"version": "2.11.10"
|
|
1216
1224
|
}
|
|
1217
1225
|
],
|
|
1218
|
-
"total_dependencies":
|
|
1226
|
+
"total_dependencies": 3
|
|
1219
1227
|
},
|
|
1220
1228
|
"module": "lfx.components.files_and_knowledge.file.FileComponent"
|
|
1221
1229
|
},
|
|
@@ -1275,7 +1283,7 @@
|
|
|
1275
1283
|
"show": true,
|
|
1276
1284
|
"title_case": false,
|
|
1277
1285
|
"type": "code",
|
|
1278
|
-
"value": "\"\"\"Enhanced file component with Docling support and process isolation.\n\nNotes:\n-----\n- ALL Docling parsing/export runs in a separate OS process to prevent memory\n growth and native library state from impacting the main Langflow process.\n- Standard text/structured parsing continues to use existing BaseFileComponent\n utilities (and optional threading via `parallel_load_data`).\n\"\"\"\n\nfrom __future__ import annotations\n\nimport contextlib\nimport json\nimport subprocess\nimport sys\nimport textwrap\nfrom copy import deepcopy\nfrom pathlib import Path\nfrom tempfile import NamedTemporaryFile\nfrom typing import Any\n\nfrom lfx.base.data.base_file import BaseFileComponent\nfrom lfx.base.data.storage_utils import parse_storage_path\nfrom lfx.base.data.utils import TEXT_FILE_TYPES, parallel_load_data, parse_text_file_to_data\nfrom lfx.inputs.inputs import DropdownInput, MessageTextInput, StrInput\nfrom lfx.io import BoolInput, FileInput, IntInput, Output\nfrom lfx.schema.data import Data\nfrom lfx.schema.dataframe import DataFrame # noqa: TC001\nfrom lfx.schema.message import Message\nfrom lfx.services.deps import get_settings_service, get_storage_service\nfrom lfx.utils.async_helpers import run_until_complete\n\n\nclass FileComponent(BaseFileComponent):\n \"\"\"File component with optional Docling processing (isolated in a subprocess).\"\"\"\n\n display_name = \"Read File\"\n description = \"Loads content from one or more files.\"\n documentation: str = \"https://docs.langflow.org/read-file\"\n icon = \"file-text\"\n name = \"File\"\n\n # Extensions that can be processed without Docling (using standard text parsing)\n TEXT_EXTENSIONS = TEXT_FILE_TYPES\n\n # Extensions that require Docling for processing (images, advanced office formats, etc.)\n DOCLING_ONLY_EXTENSIONS = [\n \"adoc\",\n \"asciidoc\",\n \"asc\",\n \"bmp\",\n \"dotx\",\n \"dotm\",\n \"docm\",\n \"jpg\",\n \"jpeg\",\n \"png\",\n \"potx\",\n \"ppsx\",\n \"pptm\",\n \"potm\",\n \"ppsm\",\n \"pptx\",\n \"tiff\",\n \"xls\",\n \"xlsx\",\n \"xhtml\",\n \"webp\",\n ]\n\n # Docling-supported/compatible extensions; TEXT_FILE_TYPES are supported by the base loader.\n VALID_EXTENSIONS = [\n *TEXT_EXTENSIONS,\n *DOCLING_ONLY_EXTENSIONS,\n ]\n\n # Fixed export settings used when markdown export is requested.\n EXPORT_FORMAT = \"Markdown\"\n IMAGE_MODE = \"placeholder\"\n\n _base_inputs = deepcopy(BaseFileComponent.get_base_inputs())\n\n for input_item in _base_inputs:\n if isinstance(input_item, FileInput) and input_item.name == \"path\":\n input_item.real_time_refresh = True\n input_item.tool_mode = False # Disable tool mode for file upload input\n input_item.required = False # Make it optional so it doesn't error in tool mode\n break\n\n inputs = [\n *_base_inputs,\n StrInput(\n name=\"file_path_str\",\n display_name=\"File Path\",\n info=(\n \"Path to the file to read. Used when component is called as a tool. \"\n \"If not provided, will use the uploaded file from 'path' input.\"\n ),\n show=False,\n advanced=True,\n tool_mode=True,\n required=False,\n ),\n BoolInput(\n name=\"advanced_mode\",\n display_name=\"Advanced Parser\",\n value=False,\n real_time_refresh=True,\n info=(\n \"Enable advanced document processing and export with Docling for PDFs, images, and office documents. \"\n \"Note that advanced document processing can consume significant resources.\"\n ),\n show=True,\n ),\n DropdownInput(\n name=\"pipeline\",\n display_name=\"Pipeline\",\n info=\"Docling pipeline to use\",\n options=[\"standard\", \"vlm\"],\n value=\"standard\",\n advanced=True,\n real_time_refresh=True,\n ),\n DropdownInput(\n name=\"ocr_engine\",\n display_name=\"OCR Engine\",\n info=\"OCR engine to use. Only available when pipeline is set to 'standard'.\",\n options=[\"None\", \"easyocr\"],\n value=\"easyocr\",\n show=False,\n advanced=True,\n ),\n StrInput(\n name=\"md_image_placeholder\",\n display_name=\"Image placeholder\",\n info=\"Specify the image placeholder for markdown exports.\",\n value=\"<!-- image -->\",\n advanced=True,\n show=False,\n ),\n StrInput(\n name=\"md_page_break_placeholder\",\n display_name=\"Page break placeholder\",\n info=\"Add this placeholder between pages in the markdown output.\",\n value=\"\",\n advanced=True,\n show=False,\n ),\n MessageTextInput(\n name=\"doc_key\",\n display_name=\"Doc Key\",\n info=\"The key to use for the DoclingDocument column.\",\n value=\"doc\",\n advanced=True,\n show=False,\n ),\n # Deprecated input retained for backward-compatibility.\n BoolInput(\n name=\"use_multithreading\",\n display_name=\"[Deprecated] Use Multithreading\",\n advanced=True,\n value=True,\n info=\"Set 'Processing Concurrency' greater than 1 to enable multithreading.\",\n ),\n IntInput(\n name=\"concurrency_multithreading\",\n display_name=\"Processing Concurrency\",\n advanced=True,\n info=\"When multiple files are being processed, the number of files to process concurrently.\",\n value=1,\n ),\n BoolInput(\n name=\"markdown\",\n display_name=\"Markdown Export\",\n info=\"Export processed documents to Markdown format. Only available when advanced mode is enabled.\",\n value=False,\n show=False,\n ),\n ]\n\n outputs = [\n Output(display_name=\"Raw Content\", name=\"message\", method=\"load_files_message\", tool_mode=True),\n ]\n\n # ------------------------------ UI helpers --------------------------------------\n\n def _path_value(self, template: dict) -> list[str]:\n \"\"\"Return the list of currently selected file paths from the template.\"\"\"\n return template.get(\"path\", {}).get(\"file_path\", [])\n\n def update_build_config(\n self,\n build_config: dict[str, Any],\n field_value: Any,\n field_name: str | None = None,\n ) -> dict[str, Any]:\n \"\"\"Show/hide Advanced Parser and related fields based on selection context.\"\"\"\n if field_name == \"path\":\n paths = self._path_value(build_config)\n\n # If all files can be processed by docling, do so\n allow_advanced = all(not file_path.endswith((\".csv\", \".xlsx\", \".parquet\")) for file_path in paths)\n build_config[\"advanced_mode\"][\"show\"] = allow_advanced\n if not allow_advanced:\n build_config[\"advanced_mode\"][\"value\"] = False\n for f in (\"pipeline\", \"ocr_engine\", \"doc_key\", \"md_image_placeholder\", \"md_page_break_placeholder\"):\n if f in build_config:\n build_config[f][\"show\"] = False\n\n # Docling Processing\n elif field_name == \"advanced_mode\":\n for f in (\"pipeline\", \"ocr_engine\", \"doc_key\", \"md_image_placeholder\", \"md_page_break_placeholder\"):\n if f in build_config:\n build_config[f][\"show\"] = bool(field_value)\n if f == \"pipeline\":\n build_config[f][\"advanced\"] = not bool(field_value)\n\n elif field_name == \"pipeline\":\n if field_value == \"standard\":\n build_config[\"ocr_engine\"][\"show\"] = True\n build_config[\"ocr_engine\"][\"value\"] = \"easyocr\"\n else:\n build_config[\"ocr_engine\"][\"show\"] = False\n build_config[\"ocr_engine\"][\"value\"] = \"None\"\n\n return build_config\n\n def update_outputs(self, frontend_node: dict[str, Any], field_name: str, field_value: Any) -> dict[str, Any]: # noqa: ARG002\n \"\"\"Dynamically show outputs based on file count/type and advanced mode.\"\"\"\n if field_name not in [\"path\", \"advanced_mode\", \"pipeline\"]:\n return frontend_node\n\n template = frontend_node.get(\"template\", {})\n paths = self._path_value(template)\n if not paths:\n return frontend_node\n\n frontend_node[\"outputs\"] = []\n if len(paths) == 1:\n file_path = paths[0] if field_name == \"path\" else frontend_node[\"template\"][\"path\"][\"file_path\"][0]\n if file_path.endswith((\".csv\", \".xlsx\", \".parquet\")):\n frontend_node[\"outputs\"].append(\n Output(\n display_name=\"Structured Content\",\n name=\"dataframe\",\n method=\"load_files_structured\",\n tool_mode=True,\n ),\n )\n elif file_path.endswith(\".json\"):\n frontend_node[\"outputs\"].append(\n Output(display_name=\"Structured Content\", name=\"json\", method=\"load_files_json\", tool_mode=True),\n )\n\n advanced_mode = frontend_node.get(\"template\", {}).get(\"advanced_mode\", {}).get(\"value\", False)\n if advanced_mode:\n frontend_node[\"outputs\"].append(\n Output(\n display_name=\"Structured Output\",\n name=\"advanced_dataframe\",\n method=\"load_files_dataframe\",\n tool_mode=True,\n ),\n )\n frontend_node[\"outputs\"].append(\n Output(\n display_name=\"Markdown\", name=\"advanced_markdown\", method=\"load_files_markdown\", tool_mode=True\n ),\n )\n frontend_node[\"outputs\"].append(\n Output(display_name=\"File Path\", name=\"path\", method=\"load_files_path\", tool_mode=True),\n )\n else:\n frontend_node[\"outputs\"].append(\n Output(display_name=\"Raw Content\", name=\"message\", method=\"load_files_message\", tool_mode=True),\n )\n frontend_node[\"outputs\"].append(\n Output(display_name=\"File Path\", name=\"path\", method=\"load_files_path\", tool_mode=True),\n )\n else:\n # Multiple files => DataFrame output; advanced parser disabled\n frontend_node[\"outputs\"].append(\n Output(display_name=\"Files\", name=\"dataframe\", method=\"load_files\", tool_mode=True)\n )\n\n return frontend_node\n\n # ------------------------------ Core processing ----------------------------------\n\n def _validate_and_resolve_paths(self) -> list[BaseFileComponent.BaseFile]:\n \"\"\"Override to handle file_path_str input from tool mode.\n\n When called as a tool, the file_path_str parameter can be set.\n If not provided, it will fall back to using the path FileInput (uploaded file).\n Priority:\n 1. file_path_str (if provided by the tool call)\n 2. path (uploaded file from UI)\n \"\"\"\n # Check if file_path_str is provided (from tool mode)\n file_path_str = getattr(self, \"file_path_str\", None)\n if file_path_str:\n # Use the string path from tool mode\n from pathlib import Path\n\n from lfx.schema.data import Data\n\n resolved_path = Path(self.resolve_path(file_path_str))\n if not resolved_path.exists():\n msg = f\"File or directory not found: {file_path_str}\"\n self.log(msg)\n if not self.silent_errors:\n raise ValueError(msg)\n return []\n\n data_obj = Data(data={self.SERVER_FILE_PATH_FIELDNAME: str(resolved_path)})\n return [BaseFileComponent.BaseFile(data_obj, resolved_path, delete_after_processing=False)]\n\n # Otherwise use the default implementation (uses path FileInput)\n return super()._validate_and_resolve_paths()\n\n def _is_docling_compatible(self, file_path: str) -> bool:\n \"\"\"Lightweight extension gate for Docling-compatible types.\"\"\"\n docling_exts = (\n \".adoc\",\n \".asciidoc\",\n \".asc\",\n \".bmp\",\n \".csv\",\n \".dotx\",\n \".dotm\",\n \".docm\",\n \".docx\",\n \".htm\",\n \".html\",\n \".jpg\",\n \".jpeg\",\n \".json\",\n \".md\",\n \".pdf\",\n \".png\",\n \".potx\",\n \".ppsx\",\n \".pptm\",\n \".potm\",\n \".ppsm\",\n \".pptx\",\n \".tiff\",\n \".txt\",\n \".xls\",\n \".xlsx\",\n \".xhtml\",\n \".xml\",\n \".webp\",\n )\n return file_path.lower().endswith(docling_exts)\n\n async def _get_local_file_for_docling(self, file_path: str) -> tuple[str, bool]:\n \"\"\"Get a local file path for Docling processing, downloading from S3 if needed.\n\n Args:\n file_path: Either a local path or S3 key (format \"flow_id/filename\")\n\n Returns:\n tuple[str, bool]: (local_path, should_delete) where should_delete indicates\n if this is a temporary file that should be cleaned up\n \"\"\"\n settings = get_settings_service().settings\n if settings.storage_type == \"local\":\n return file_path, False\n\n # S3 storage - download to temp file\n parsed = parse_storage_path(file_path)\n if not parsed:\n msg = f\"Invalid S3 path format: {file_path}. Expected 'flow_id/filename'\"\n raise ValueError(msg)\n\n storage_service = get_storage_service()\n flow_id, filename = parsed\n\n # Get file content from S3\n content = await storage_service.get_file(flow_id, filename)\n\n suffix = Path(filename).suffix\n with NamedTemporaryFile(mode=\"wb\", suffix=suffix, delete=False) as tmp_file:\n tmp_file.write(content)\n temp_path = tmp_file.name\n\n return temp_path, True\n\n def _process_docling_in_subprocess(self, file_path: str) -> Data | None:\n \"\"\"Run Docling in a separate OS process and map the result to a Data object.\n\n We avoid multiprocessing pickling by launching `python -c \"<script>\"` and\n passing JSON config via stdin. The child prints a JSON result to stdout.\n\n For S3 storage, the file is downloaded to a temp file first.\n \"\"\"\n if not file_path:\n return None\n\n settings = get_settings_service().settings\n if settings.storage_type == \"s3\":\n local_path, should_delete = run_until_complete(self._get_local_file_for_docling(file_path))\n else:\n local_path = file_path\n should_delete = False\n\n try:\n return self._process_docling_subprocess_impl(local_path, file_path)\n finally:\n # Clean up temp file if we created one\n if should_delete:\n with contextlib.suppress(Exception):\n Path(local_path).unlink() # Ignore cleanup errors\n\n def _process_docling_subprocess_impl(self, local_file_path: str, original_file_path: str) -> Data | None:\n \"\"\"Implementation of Docling subprocess processing.\n\n Args:\n local_file_path: Path to local file to process\n original_file_path: Original file path to include in metadata\n Returns:\n Data object with processed content\n \"\"\"\n args: dict[str, Any] = {\n \"file_path\": local_file_path,\n \"markdown\": bool(self.markdown),\n \"image_mode\": str(self.IMAGE_MODE),\n \"md_image_placeholder\": str(self.md_image_placeholder),\n \"md_page_break_placeholder\": str(self.md_page_break_placeholder),\n \"pipeline\": str(self.pipeline),\n \"ocr_engine\": (\n self.ocr_engine if self.ocr_engine and self.ocr_engine != \"None\" and self.pipeline != \"vlm\" else None\n ),\n }\n\n self.log(f\"Starting Docling subprocess for file: {local_file_path}\")\n self.log(args)\n\n # Child script for isolating the docling processing\n child_script = textwrap.dedent(\n r\"\"\"\n import json, sys\n\n def try_imports():\n try:\n from docling.datamodel.base_models import ConversionStatus, InputFormat # type: ignore\n from docling.document_converter import DocumentConverter # type: ignore\n from docling_core.types.doc import ImageRefMode # type: ignore\n return ConversionStatus, InputFormat, DocumentConverter, ImageRefMode, \"latest\"\n except Exception as e:\n raise e\n\n def create_converter(strategy, input_format, DocumentConverter, pipeline, ocr_engine):\n # --- Standard PDF/IMAGE pipeline (your existing behavior), with optional OCR ---\n if pipeline == \"standard\":\n try:\n from docling.datamodel.pipeline_options import PdfPipelineOptions # type: ignore\n from docling.document_converter import PdfFormatOption # type: ignore\n\n pipe = PdfPipelineOptions()\n pipe.do_ocr = False\n\n if ocr_engine:\n try:\n from docling.models.factories import get_ocr_factory # type: ignore\n pipe.do_ocr = True\n fac = get_ocr_factory(allow_external_plugins=False)\n pipe.ocr_options = fac.create_options(kind=ocr_engine)\n except Exception:\n # If OCR setup fails, disable it\n pipe.do_ocr = False\n\n fmt = {}\n if hasattr(input_format, \"PDF\"):\n fmt[getattr(input_format, \"PDF\")] = PdfFormatOption(pipeline_options=pipe)\n if hasattr(input_format, \"IMAGE\"):\n fmt[getattr(input_format, \"IMAGE\")] = PdfFormatOption(pipeline_options=pipe)\n\n return DocumentConverter(format_options=fmt)\n except Exception:\n return DocumentConverter()\n\n # --- Vision-Language Model (VLM) pipeline ---\n if pipeline == \"vlm\":\n try:\n from docling.datamodel.pipeline_options import VlmPipelineOptions\n from docling.datamodel.vlm_model_specs import GRANITEDOCLING_MLX, GRANITEDOCLING_TRANSFORMERS\n from docling.document_converter import PdfFormatOption\n from docling.pipeline.vlm_pipeline import VlmPipeline\n\n vl_pipe = VlmPipelineOptions(\n vlm_options=GRANITEDOCLING_TRANSFORMERS,\n )\n\n if sys.platform == \"darwin\":\n try:\n import mlx_vlm\n vl_pipe.vlm_options = GRANITEDOCLING_MLX\n except ImportError as e:\n raise e\n\n # VLM paths generally don't need OCR; keep OCR off by default here.\n fmt = {}\n if hasattr(input_format, \"PDF\"):\n fmt[getattr(input_format, \"PDF\")] = PdfFormatOption(\n pipeline_cls=VlmPipeline,\n pipeline_options=vl_pipe\n )\n if hasattr(input_format, \"IMAGE\"):\n fmt[getattr(input_format, \"IMAGE\")] = PdfFormatOption(\n pipeline_cls=VlmPipeline,\n pipeline_options=vl_pipe\n )\n\n return DocumentConverter(format_options=fmt)\n except Exception as e:\n raise e\n\n # --- Fallback: default converter with no special options ---\n return DocumentConverter()\n\n def export_markdown(document, ImageRefMode, image_mode, img_ph, pg_ph):\n try:\n mode = getattr(ImageRefMode, image_mode.upper(), image_mode)\n return document.export_to_markdown(\n image_mode=mode,\n image_placeholder=img_ph,\n page_break_placeholder=pg_ph,\n )\n except Exception:\n try:\n return document.export_to_text()\n except Exception:\n return str(document)\n\n def to_rows(doc_dict):\n rows = []\n for t in doc_dict.get(\"texts\", []):\n prov = t.get(\"prov\") or []\n page_no = None\n if prov and isinstance(prov, list) and isinstance(prov[0], dict):\n page_no = prov[0].get(\"page_no\")\n rows.append({\n \"page_no\": page_no,\n \"label\": t.get(\"label\"),\n \"text\": t.get(\"text\"),\n \"level\": t.get(\"level\"),\n })\n return rows\n\n def main():\n cfg = json.loads(sys.stdin.read())\n file_path = cfg[\"file_path\"]\n markdown = cfg[\"markdown\"]\n image_mode = cfg[\"image_mode\"]\n img_ph = cfg[\"md_image_placeholder\"]\n pg_ph = cfg[\"md_page_break_placeholder\"]\n pipeline = cfg[\"pipeline\"]\n ocr_engine = cfg.get(\"ocr_engine\")\n meta = {\"file_path\": file_path}\n\n try:\n ConversionStatus, InputFormat, DocumentConverter, ImageRefMode, strategy = try_imports()\n converter = create_converter(strategy, InputFormat, DocumentConverter, pipeline, ocr_engine)\n try:\n res = converter.convert(file_path)\n except Exception as e:\n print(json.dumps({\"ok\": False, \"error\": f\"Docling conversion error: {e}\", \"meta\": meta}))\n return\n\n ok = False\n if hasattr(res, \"status\"):\n try:\n ok = (res.status == ConversionStatus.SUCCESS) or (str(res.status).lower() == \"success\")\n except Exception:\n ok = (str(res.status).lower() == \"success\")\n if not ok and hasattr(res, \"document\"):\n ok = getattr(res, \"document\", None) is not None\n if not ok:\n print(json.dumps({\"ok\": False, \"error\": \"Docling conversion failed\", \"meta\": meta}))\n return\n\n doc = getattr(res, \"document\", None)\n if doc is None:\n print(json.dumps({\"ok\": False, \"error\": \"Docling produced no document\", \"meta\": meta}))\n return\n\n if markdown:\n text = export_markdown(doc, ImageRefMode, image_mode, img_ph, pg_ph)\n print(json.dumps({\"ok\": True, \"mode\": \"markdown\", \"text\": text, \"meta\": meta}))\n return\n\n # structured\n try:\n doc_dict = doc.export_to_dict()\n except Exception as e:\n print(json.dumps({\"ok\": False, \"error\": f\"Docling export_to_dict failed: {e}\", \"meta\": meta}))\n return\n\n rows = to_rows(doc_dict)\n print(json.dumps({\"ok\": True, \"mode\": \"structured\", \"doc\": rows, \"meta\": meta}))\n except Exception as e:\n print(\n json.dumps({\n \"ok\": False,\n \"error\": f\"Docling processing error: {e}\",\n \"meta\": {\"file_path\": file_path},\n })\n )\n\n if __name__ == \"__main__\":\n main()\n \"\"\"\n )\n\n # Validate file_path to avoid command injection or unsafe input\n if not isinstance(args[\"file_path\"], str) or any(c in args[\"file_path\"] for c in [\";\", \"|\", \"&\", \"$\", \"`\"]):\n return Data(data={\"error\": \"Unsafe file path detected.\", \"file_path\": args[\"file_path\"]})\n\n proc = subprocess.run( # noqa: S603\n [sys.executable, \"-u\", \"-c\", child_script],\n input=json.dumps(args).encode(\"utf-8\"),\n capture_output=True,\n check=False,\n )\n\n if not proc.stdout:\n err_msg = proc.stderr.decode(\"utf-8\", errors=\"replace\") or \"no output from child process\"\n return Data(data={\"error\": f\"Docling subprocess error: {err_msg}\", \"file_path\": original_file_path})\n\n try:\n result = json.loads(proc.stdout.decode(\"utf-8\"))\n except Exception as e: # noqa: BLE001\n err_msg = proc.stderr.decode(\"utf-8\", errors=\"replace\")\n return Data(\n data={\n \"error\": f\"Invalid JSON from Docling subprocess: {e}. stderr={err_msg}\",\n \"file_path\": original_file_path,\n },\n )\n\n if not result.get(\"ok\"):\n return Data(data={\"error\": result.get(\"error\", \"Unknown Docling error\"), **result.get(\"meta\", {})})\n\n meta = result.get(\"meta\", {})\n if result.get(\"mode\") == \"markdown\":\n exported_content = str(result.get(\"text\", \"\"))\n return Data(\n text=exported_content,\n data={\"exported_content\": exported_content, \"export_format\": self.EXPORT_FORMAT, **meta},\n )\n\n rows = list(result.get(\"doc\", []))\n return Data(data={\"doc\": rows, \"export_format\": self.EXPORT_FORMAT, **meta})\n\n def process_files(\n self,\n file_list: list[BaseFileComponent.BaseFile],\n ) -> list[BaseFileComponent.BaseFile]:\n \"\"\"Process input files.\n\n - advanced_mode => Docling in a separate process.\n - Otherwise => standard parsing in current process (optionally threaded).\n \"\"\"\n if not file_list:\n msg = \"No files to process.\"\n raise ValueError(msg)\n\n # Validate that files requiring Docling are only processed when advanced mode is enabled\n if not self.advanced_mode:\n for file in file_list:\n extension = file.path.suffix[1:].lower()\n if extension in self.DOCLING_ONLY_EXTENSIONS:\n msg = (\n f\"File '{file.path.name}' has extension '.{extension}' which requires \"\n f\"Advanced Parser mode. Please enable 'Advanced Parser' to process this file.\"\n )\n self.log(msg)\n raise ValueError(msg)\n\n def process_file_standard(file_path: str, *, silent_errors: bool = False) -> Data | None:\n try:\n return parse_text_file_to_data(file_path, silent_errors=silent_errors)\n except FileNotFoundError as e:\n self.log(f\"File not found: {file_path}. Error: {e}\")\n if not silent_errors:\n raise\n return None\n except Exception as e:\n self.log(f\"Unexpected error processing {file_path}: {e}\")\n if not silent_errors:\n raise\n return None\n\n docling_compatible = all(self._is_docling_compatible(str(f.path)) for f in file_list)\n\n # Advanced path: Check if ALL files are compatible with Docling\n if self.advanced_mode and docling_compatible:\n final_return: list[BaseFileComponent.BaseFile] = []\n for file in file_list:\n file_path = str(file.path)\n advanced_data: Data | None = self._process_docling_in_subprocess(file_path)\n\n # --- UNNEST: expand each element in `doc` to its own Data row\n payload = getattr(advanced_data, \"data\", {}) or {}\n doc_rows = payload.get(\"doc\")\n if isinstance(doc_rows, list):\n rows: list[Data | None] = [\n Data(\n data={\n \"file_path\": file_path,\n **(item if isinstance(item, dict) else {\"value\": item}),\n },\n )\n for item in doc_rows\n ]\n final_return.extend(self.rollup_data(file_list, rows))\n else:\n # If not structured, keep as-is (e.g., markdown export or error dict)\n final_return.extend(self.rollup_data(file_list, [advanced_data]))\n return final_return\n\n # Standard multi-file (or single non-advanced) path\n concurrency = 1 if not self.use_multithreading else max(1, self.concurrency_multithreading)\n\n file_paths = [str(f.path) for f in file_list]\n self.log(f\"Starting parallel processing of {len(file_paths)} files with concurrency: {concurrency}.\")\n my_data = parallel_load_data(\n file_paths,\n silent_errors=self.silent_errors,\n load_function=process_file_standard,\n max_concurrency=concurrency,\n )\n return self.rollup_data(file_list, my_data)\n\n # ------------------------------ Output helpers -----------------------------------\n\n def load_files_helper(self) -> DataFrame:\n result = self.load_files()\n\n # Error condition - raise error if no text and an error is present\n if not hasattr(result, \"text\"):\n if hasattr(result, \"error\"):\n raise ValueError(result.error[0])\n msg = \"Could not extract content from the provided file(s).\"\n raise ValueError(msg)\n\n return result\n\n def load_files_dataframe(self) -> DataFrame:\n \"\"\"Load files using advanced Docling processing and export to DataFrame format.\"\"\"\n self.markdown = False\n return self.load_files_helper()\n\n def load_files_markdown(self) -> Message:\n \"\"\"Load files using advanced Docling processing and export to Markdown format.\"\"\"\n self.markdown = True\n result = self.load_files_helper()\n return Message(text=str(result.text[0]))\n"
|
|
1286
|
+
"value": "\"\"\"Enhanced file component with Docling support and process isolation.\n\nNotes:\n-----\n- ALL Docling parsing/export runs in a separate OS process to prevent memory\n growth and native library state from impacting the main Langflow process.\n- Standard text/structured parsing continues to use existing BaseFileComponent\n utilities (and optional threading via `parallel_load_data`).\n\"\"\"\n\nfrom __future__ import annotations\n\nimport contextlib\nimport json\nimport subprocess\nimport sys\nimport textwrap\nfrom copy import deepcopy\nfrom pathlib import Path\nfrom tempfile import NamedTemporaryFile\nfrom typing import Any\n\nfrom lfx.base.data.base_file import BaseFileComponent\nfrom lfx.base.data.storage_utils import parse_storage_path, validate_image_content_type\nfrom lfx.base.data.utils import TEXT_FILE_TYPES, parallel_load_data, parse_text_file_to_data\nfrom lfx.inputs.inputs import DropdownInput, MessageTextInput, StrInput\nfrom lfx.io import BoolInput, FileInput, IntInput, Output\nfrom lfx.schema.data import Data\nfrom lfx.schema.dataframe import DataFrame # noqa: TC001\nfrom lfx.schema.message import Message\nfrom lfx.services.deps import get_settings_service, get_storage_service\nfrom lfx.utils.async_helpers import run_until_complete\n\n\nclass FileComponent(BaseFileComponent):\n \"\"\"File component with optional Docling processing (isolated in a subprocess).\"\"\"\n\n display_name = \"Read File\"\n # description is now a dynamic property - see get_tool_description()\n _base_description = \"Loads content from one or more files.\"\n documentation: str = \"https://docs.langflow.org/read-file\"\n icon = \"file-text\"\n name = \"File\"\n add_tool_output = True # Enable tool mode toggle without requiring tool_mode inputs\n\n # Extensions that can be processed without Docling (using standard text parsing)\n TEXT_EXTENSIONS = TEXT_FILE_TYPES\n\n # Extensions that require Docling for processing (images, advanced office formats, etc.)\n DOCLING_ONLY_EXTENSIONS = [\n \"adoc\",\n \"asciidoc\",\n \"asc\",\n \"bmp\",\n \"dotx\",\n \"dotm\",\n \"docm\",\n \"jpg\",\n \"jpeg\",\n \"png\",\n \"potx\",\n \"ppsx\",\n \"pptm\",\n \"potm\",\n \"ppsm\",\n \"pptx\",\n \"tiff\",\n \"xls\",\n \"xlsx\",\n \"xhtml\",\n \"webp\",\n ]\n\n # Docling-supported/compatible extensions; TEXT_FILE_TYPES are supported by the base loader.\n VALID_EXTENSIONS = [\n *TEXT_EXTENSIONS,\n *DOCLING_ONLY_EXTENSIONS,\n ]\n\n # Fixed export settings used when markdown export is requested.\n EXPORT_FORMAT = \"Markdown\"\n IMAGE_MODE = \"placeholder\"\n\n _base_inputs = deepcopy(BaseFileComponent.get_base_inputs())\n\n for input_item in _base_inputs:\n if isinstance(input_item, FileInput) and input_item.name == \"path\":\n input_item.real_time_refresh = True\n input_item.tool_mode = False # Disable tool mode for file upload input\n input_item.required = False # Make it optional so it doesn't error in tool mode\n break\n\n inputs = [\n *_base_inputs,\n StrInput(\n name=\"file_path_str\",\n display_name=\"File Path\",\n info=(\n \"Path to the file to read. Used when component is called as a tool. \"\n \"If not provided, will use the uploaded file from 'path' input.\"\n ),\n show=False,\n advanced=True,\n tool_mode=True, # Required for Toolset toggle, but _get_tools() ignores this parameter\n required=False,\n ),\n BoolInput(\n name=\"advanced_mode\",\n display_name=\"Advanced Parser\",\n value=False,\n real_time_refresh=True,\n info=(\n \"Enable advanced document processing and export with Docling for PDFs, images, and office documents. \"\n \"Note that advanced document processing can consume significant resources.\"\n ),\n show=True,\n ),\n DropdownInput(\n name=\"pipeline\",\n display_name=\"Pipeline\",\n info=\"Docling pipeline to use\",\n options=[\"standard\", \"vlm\"],\n value=\"standard\",\n advanced=True,\n real_time_refresh=True,\n ),\n DropdownInput(\n name=\"ocr_engine\",\n display_name=\"OCR Engine\",\n info=\"OCR engine to use. Only available when pipeline is set to 'standard'.\",\n options=[\"None\", \"easyocr\"],\n value=\"easyocr\",\n show=False,\n advanced=True,\n ),\n StrInput(\n name=\"md_image_placeholder\",\n display_name=\"Image placeholder\",\n info=\"Specify the image placeholder for markdown exports.\",\n value=\"<!-- image -->\",\n advanced=True,\n show=False,\n ),\n StrInput(\n name=\"md_page_break_placeholder\",\n display_name=\"Page break placeholder\",\n info=\"Add this placeholder between pages in the markdown output.\",\n value=\"\",\n advanced=True,\n show=False,\n ),\n MessageTextInput(\n name=\"doc_key\",\n display_name=\"Doc Key\",\n info=\"The key to use for the DoclingDocument column.\",\n value=\"doc\",\n advanced=True,\n show=False,\n ),\n # Deprecated input retained for backward-compatibility.\n BoolInput(\n name=\"use_multithreading\",\n display_name=\"[Deprecated] Use Multithreading\",\n advanced=True,\n value=True,\n info=\"Set 'Processing Concurrency' greater than 1 to enable multithreading.\",\n ),\n IntInput(\n name=\"concurrency_multithreading\",\n display_name=\"Processing Concurrency\",\n advanced=True,\n info=\"When multiple files are being processed, the number of files to process concurrently.\",\n value=1,\n ),\n BoolInput(\n name=\"markdown\",\n display_name=\"Markdown Export\",\n info=\"Export processed documents to Markdown format. Only available when advanced mode is enabled.\",\n value=False,\n show=False,\n ),\n ]\n\n outputs = [\n Output(display_name=\"Raw Content\", name=\"message\", method=\"load_files_message\", tool_mode=True),\n ]\n\n # ------------------------------ Tool description with file names --------------\n\n def get_tool_description(self) -> str:\n \"\"\"Return a dynamic description that includes the names of uploaded files.\n\n This helps the Agent understand which files are available to read.\n \"\"\"\n base_description = \"Loads and returns the content from uploaded files.\"\n\n # Get the list of uploaded file paths\n file_paths = getattr(self, \"path\", None)\n if not file_paths:\n return base_description\n\n # Ensure it's a list\n if not isinstance(file_paths, list):\n file_paths = [file_paths]\n\n # Extract just the file names from the paths\n file_names = []\n for fp in file_paths:\n if fp:\n name = Path(fp).name\n file_names.append(name)\n\n if file_names:\n files_str = \", \".join(file_names)\n return f\"{base_description} Available files: {files_str}. Call this tool to read these files.\"\n\n return base_description\n\n @property\n def description(self) -> str:\n \"\"\"Dynamic description property that includes uploaded file names.\"\"\"\n return self.get_tool_description()\n\n async def _get_tools(self) -> list:\n \"\"\"Override to create a tool without parameters.\n\n The Read File component should use the files already uploaded via UI,\n not accept file paths from the Agent (which wouldn't know the internal paths).\n \"\"\"\n from langchain_core.tools import StructuredTool\n from pydantic import BaseModel\n\n # Empty schema - no parameters needed\n class EmptySchema(BaseModel):\n \"\"\"No parameters required - uses pre-uploaded files.\"\"\"\n\n async def read_files_tool() -> str:\n \"\"\"Read the content of uploaded files.\"\"\"\n try:\n result = self.load_files_message()\n if hasattr(result, \"get_text\"):\n return result.get_text()\n if hasattr(result, \"text\"):\n return result.text\n return str(result)\n except (FileNotFoundError, ValueError, OSError, RuntimeError) as e:\n return f\"Error reading files: {e}\"\n\n description = self.get_tool_description()\n\n tool = StructuredTool(\n name=\"load_files_message\",\n description=description,\n coroutine=read_files_tool,\n args_schema=EmptySchema,\n handle_tool_error=True,\n tags=[\"load_files_message\"],\n metadata={\n \"display_name\": \"Read File\",\n \"display_description\": description,\n },\n )\n\n return [tool]\n\n # ------------------------------ UI helpers --------------------------------------\n\n def _path_value(self, template: dict) -> list[str]:\n \"\"\"Return the list of currently selected file paths from the template.\"\"\"\n return template.get(\"path\", {}).get(\"file_path\", [])\n\n def update_build_config(\n self,\n build_config: dict[str, Any],\n field_value: Any,\n field_name: str | None = None,\n ) -> dict[str, Any]:\n \"\"\"Show/hide Advanced Parser and related fields based on selection context.\"\"\"\n if field_name == \"path\":\n paths = self._path_value(build_config)\n\n # If all files can be processed by docling, do so\n allow_advanced = all(not file_path.endswith((\".csv\", \".xlsx\", \".parquet\")) for file_path in paths)\n build_config[\"advanced_mode\"][\"show\"] = allow_advanced\n if not allow_advanced:\n build_config[\"advanced_mode\"][\"value\"] = False\n for f in (\"pipeline\", \"ocr_engine\", \"doc_key\", \"md_image_placeholder\", \"md_page_break_placeholder\"):\n if f in build_config:\n build_config[f][\"show\"] = False\n\n # Docling Processing\n elif field_name == \"advanced_mode\":\n for f in (\"pipeline\", \"ocr_engine\", \"doc_key\", \"md_image_placeholder\", \"md_page_break_placeholder\"):\n if f in build_config:\n build_config[f][\"show\"] = bool(field_value)\n if f == \"pipeline\":\n build_config[f][\"advanced\"] = not bool(field_value)\n\n elif field_name == \"pipeline\":\n if field_value == \"standard\":\n build_config[\"ocr_engine\"][\"show\"] = True\n build_config[\"ocr_engine\"][\"value\"] = \"easyocr\"\n else:\n build_config[\"ocr_engine\"][\"show\"] = False\n build_config[\"ocr_engine\"][\"value\"] = \"None\"\n\n return build_config\n\n def update_outputs(self, frontend_node: dict[str, Any], field_name: str, field_value: Any) -> dict[str, Any]: # noqa: ARG002\n \"\"\"Dynamically show outputs based on file count/type and advanced mode.\"\"\"\n if field_name not in [\"path\", \"advanced_mode\", \"pipeline\"]:\n return frontend_node\n\n template = frontend_node.get(\"template\", {})\n paths = self._path_value(template)\n if not paths:\n return frontend_node\n\n frontend_node[\"outputs\"] = []\n if len(paths) == 1:\n file_path = paths[0] if field_name == \"path\" else frontend_node[\"template\"][\"path\"][\"file_path\"][0]\n if file_path.endswith((\".csv\", \".xlsx\", \".parquet\")):\n frontend_node[\"outputs\"].append(\n Output(\n display_name=\"Structured Content\",\n name=\"dataframe\",\n method=\"load_files_structured\",\n tool_mode=True,\n ),\n )\n elif file_path.endswith(\".json\"):\n frontend_node[\"outputs\"].append(\n Output(display_name=\"Structured Content\", name=\"json\", method=\"load_files_json\", tool_mode=True),\n )\n\n advanced_mode = frontend_node.get(\"template\", {}).get(\"advanced_mode\", {}).get(\"value\", False)\n if advanced_mode:\n frontend_node[\"outputs\"].append(\n Output(\n display_name=\"Structured Output\",\n name=\"advanced_dataframe\",\n method=\"load_files_dataframe\",\n tool_mode=True,\n ),\n )\n frontend_node[\"outputs\"].append(\n Output(\n display_name=\"Markdown\", name=\"advanced_markdown\", method=\"load_files_markdown\", tool_mode=True\n ),\n )\n frontend_node[\"outputs\"].append(\n Output(display_name=\"File Path\", name=\"path\", method=\"load_files_path\", tool_mode=True),\n )\n else:\n frontend_node[\"outputs\"].append(\n Output(display_name=\"Raw Content\", name=\"message\", method=\"load_files_message\", tool_mode=True),\n )\n frontend_node[\"outputs\"].append(\n Output(display_name=\"File Path\", name=\"path\", method=\"load_files_path\", tool_mode=True),\n )\n else:\n # Multiple files => DataFrame output; advanced parser disabled\n frontend_node[\"outputs\"].append(\n Output(display_name=\"Files\", name=\"dataframe\", method=\"load_files\", tool_mode=True)\n )\n\n return frontend_node\n\n # ------------------------------ Core processing ----------------------------------\n\n def _validate_and_resolve_paths(self) -> list[BaseFileComponent.BaseFile]:\n \"\"\"Override to handle file_path_str input from tool mode.\n\n When called as a tool, the file_path_str parameter can be set.\n If not provided, it will fall back to using the path FileInput (uploaded file).\n Priority:\n 1. file_path_str (if provided by the tool call)\n 2. path (uploaded file from UI)\n \"\"\"\n # Check if file_path_str is provided (from tool mode)\n file_path_str = getattr(self, \"file_path_str\", None)\n if file_path_str:\n # Use the string path from tool mode\n from pathlib import Path\n\n from lfx.schema.data import Data\n\n resolved_path = Path(self.resolve_path(file_path_str))\n if not resolved_path.exists():\n msg = f\"File or directory not found: {file_path_str}\"\n self.log(msg)\n if not self.silent_errors:\n raise ValueError(msg)\n return []\n\n data_obj = Data(data={self.SERVER_FILE_PATH_FIELDNAME: str(resolved_path)})\n return [BaseFileComponent.BaseFile(data_obj, resolved_path, delete_after_processing=False)]\n\n # Otherwise use the default implementation (uses path FileInput)\n return super()._validate_and_resolve_paths()\n\n def _is_docling_compatible(self, file_path: str) -> bool:\n \"\"\"Lightweight extension gate for Docling-compatible types.\"\"\"\n docling_exts = (\n \".adoc\",\n \".asciidoc\",\n \".asc\",\n \".bmp\",\n \".csv\",\n \".dotx\",\n \".dotm\",\n \".docm\",\n \".docx\",\n \".htm\",\n \".html\",\n \".jpg\",\n \".jpeg\",\n \".json\",\n \".md\",\n \".pdf\",\n \".png\",\n \".potx\",\n \".ppsx\",\n \".pptm\",\n \".potm\",\n \".ppsm\",\n \".pptx\",\n \".tiff\",\n \".txt\",\n \".xls\",\n \".xlsx\",\n \".xhtml\",\n \".xml\",\n \".webp\",\n )\n return file_path.lower().endswith(docling_exts)\n\n async def _get_local_file_for_docling(self, file_path: str) -> tuple[str, bool]:\n \"\"\"Get a local file path for Docling processing, downloading from S3 if needed.\n\n Args:\n file_path: Either a local path or S3 key (format \"flow_id/filename\")\n\n Returns:\n tuple[str, bool]: (local_path, should_delete) where should_delete indicates\n if this is a temporary file that should be cleaned up\n \"\"\"\n settings = get_settings_service().settings\n if settings.storage_type == \"local\":\n return file_path, False\n\n # S3 storage - download to temp file\n parsed = parse_storage_path(file_path)\n if not parsed:\n msg = f\"Invalid S3 path format: {file_path}. Expected 'flow_id/filename'\"\n raise ValueError(msg)\n\n storage_service = get_storage_service()\n flow_id, filename = parsed\n\n # Get file content from S3\n content = await storage_service.get_file(flow_id, filename)\n\n suffix = Path(filename).suffix\n with NamedTemporaryFile(mode=\"wb\", suffix=suffix, delete=False) as tmp_file:\n tmp_file.write(content)\n temp_path = tmp_file.name\n\n return temp_path, True\n\n def _process_docling_in_subprocess(self, file_path: str) -> Data | None:\n \"\"\"Run Docling in a separate OS process and map the result to a Data object.\n\n We avoid multiprocessing pickling by launching `python -c \"<script>\"` and\n passing JSON config via stdin. The child prints a JSON result to stdout.\n\n For S3 storage, the file is downloaded to a temp file first.\n \"\"\"\n if not file_path:\n return None\n\n settings = get_settings_service().settings\n if settings.storage_type == \"s3\":\n local_path, should_delete = run_until_complete(self._get_local_file_for_docling(file_path))\n else:\n local_path = file_path\n should_delete = False\n\n try:\n return self._process_docling_subprocess_impl(local_path, file_path)\n finally:\n # Clean up temp file if we created one\n if should_delete:\n with contextlib.suppress(Exception):\n Path(local_path).unlink() # Ignore cleanup errors\n\n def _process_docling_subprocess_impl(self, local_file_path: str, original_file_path: str) -> Data | None:\n \"\"\"Implementation of Docling subprocess processing.\n\n Args:\n local_file_path: Path to local file to process\n original_file_path: Original file path to include in metadata\n Returns:\n Data object with processed content\n \"\"\"\n args: dict[str, Any] = {\n \"file_path\": local_file_path,\n \"markdown\": bool(self.markdown),\n \"image_mode\": str(self.IMAGE_MODE),\n \"md_image_placeholder\": str(self.md_image_placeholder),\n \"md_page_break_placeholder\": str(self.md_page_break_placeholder),\n \"pipeline\": str(self.pipeline),\n \"ocr_engine\": (\n self.ocr_engine if self.ocr_engine and self.ocr_engine != \"None\" and self.pipeline != \"vlm\" else None\n ),\n }\n\n self.log(f\"Starting Docling subprocess for file: {local_file_path}\")\n self.log(args)\n\n # Child script for isolating the docling processing\n child_script = textwrap.dedent(\n r\"\"\"\n import json, sys\n\n def try_imports():\n try:\n from docling.datamodel.base_models import ConversionStatus, InputFormat # type: ignore\n from docling.document_converter import DocumentConverter # type: ignore\n from docling_core.types.doc import ImageRefMode # type: ignore\n return ConversionStatus, InputFormat, DocumentConverter, ImageRefMode, \"latest\"\n except Exception as e:\n raise e\n\n def create_converter(strategy, input_format, DocumentConverter, pipeline, ocr_engine):\n # --- Standard PDF/IMAGE pipeline (your existing behavior), with optional OCR ---\n if pipeline == \"standard\":\n try:\n from docling.datamodel.pipeline_options import PdfPipelineOptions # type: ignore\n from docling.document_converter import PdfFormatOption # type: ignore\n\n pipe = PdfPipelineOptions()\n pipe.do_ocr = False\n\n if ocr_engine:\n try:\n from docling.models.factories import get_ocr_factory # type: ignore\n pipe.do_ocr = True\n fac = get_ocr_factory(allow_external_plugins=False)\n pipe.ocr_options = fac.create_options(kind=ocr_engine)\n except Exception:\n # If OCR setup fails, disable it\n pipe.do_ocr = False\n\n fmt = {}\n if hasattr(input_format, \"PDF\"):\n fmt[getattr(input_format, \"PDF\")] = PdfFormatOption(pipeline_options=pipe)\n if hasattr(input_format, \"IMAGE\"):\n fmt[getattr(input_format, \"IMAGE\")] = PdfFormatOption(pipeline_options=pipe)\n\n return DocumentConverter(format_options=fmt)\n except Exception:\n return DocumentConverter()\n\n # --- Vision-Language Model (VLM) pipeline ---\n if pipeline == \"vlm\":\n try:\n from docling.datamodel.pipeline_options import VlmPipelineOptions\n from docling.datamodel.vlm_model_specs import GRANITEDOCLING_MLX, GRANITEDOCLING_TRANSFORMERS\n from docling.document_converter import PdfFormatOption\n from docling.pipeline.vlm_pipeline import VlmPipeline\n\n vl_pipe = VlmPipelineOptions(\n vlm_options=GRANITEDOCLING_TRANSFORMERS,\n )\n\n if sys.platform == \"darwin\":\n try:\n import mlx_vlm\n vl_pipe.vlm_options = GRANITEDOCLING_MLX\n except ImportError as e:\n raise e\n\n # VLM paths generally don't need OCR; keep OCR off by default here.\n fmt = {}\n if hasattr(input_format, \"PDF\"):\n fmt[getattr(input_format, \"PDF\")] = PdfFormatOption(\n pipeline_cls=VlmPipeline,\n pipeline_options=vl_pipe\n )\n if hasattr(input_format, \"IMAGE\"):\n fmt[getattr(input_format, \"IMAGE\")] = PdfFormatOption(\n pipeline_cls=VlmPipeline,\n pipeline_options=vl_pipe\n )\n\n return DocumentConverter(format_options=fmt)\n except Exception as e:\n raise e\n\n # --- Fallback: default converter with no special options ---\n return DocumentConverter()\n\n def export_markdown(document, ImageRefMode, image_mode, img_ph, pg_ph):\n try:\n mode = getattr(ImageRefMode, image_mode.upper(), image_mode)\n return document.export_to_markdown(\n image_mode=mode,\n image_placeholder=img_ph,\n page_break_placeholder=pg_ph,\n )\n except Exception:\n try:\n return document.export_to_text()\n except Exception:\n return str(document)\n\n def to_rows(doc_dict):\n rows = []\n for t in doc_dict.get(\"texts\", []):\n prov = t.get(\"prov\") or []\n page_no = None\n if prov and isinstance(prov, list) and isinstance(prov[0], dict):\n page_no = prov[0].get(\"page_no\")\n rows.append({\n \"page_no\": page_no,\n \"label\": t.get(\"label\"),\n \"text\": t.get(\"text\"),\n \"level\": t.get(\"level\"),\n })\n return rows\n\n def main():\n cfg = json.loads(sys.stdin.read())\n file_path = cfg[\"file_path\"]\n markdown = cfg[\"markdown\"]\n image_mode = cfg[\"image_mode\"]\n img_ph = cfg[\"md_image_placeholder\"]\n pg_ph = cfg[\"md_page_break_placeholder\"]\n pipeline = cfg[\"pipeline\"]\n ocr_engine = cfg.get(\"ocr_engine\")\n meta = {\"file_path\": file_path}\n\n try:\n ConversionStatus, InputFormat, DocumentConverter, ImageRefMode, strategy = try_imports()\n converter = create_converter(strategy, InputFormat, DocumentConverter, pipeline, ocr_engine)\n try:\n res = converter.convert(file_path)\n except Exception as e:\n print(json.dumps({\"ok\": False, \"error\": f\"Docling conversion error: {e}\", \"meta\": meta}))\n return\n\n ok = False\n if hasattr(res, \"status\"):\n try:\n ok = (res.status == ConversionStatus.SUCCESS) or (str(res.status).lower() == \"success\")\n except Exception:\n ok = (str(res.status).lower() == \"success\")\n if not ok and hasattr(res, \"document\"):\n ok = getattr(res, \"document\", None) is not None\n if not ok:\n print(json.dumps({\"ok\": False, \"error\": \"Docling conversion failed\", \"meta\": meta}))\n return\n\n doc = getattr(res, \"document\", None)\n if doc is None:\n print(json.dumps({\"ok\": False, \"error\": \"Docling produced no document\", \"meta\": meta}))\n return\n\n if markdown:\n text = export_markdown(doc, ImageRefMode, image_mode, img_ph, pg_ph)\n print(json.dumps({\"ok\": True, \"mode\": \"markdown\", \"text\": text, \"meta\": meta}))\n return\n\n # structured\n try:\n doc_dict = doc.export_to_dict()\n except Exception as e:\n print(json.dumps({\"ok\": False, \"error\": f\"Docling export_to_dict failed: {e}\", \"meta\": meta}))\n return\n\n rows = to_rows(doc_dict)\n print(json.dumps({\"ok\": True, \"mode\": \"structured\", \"doc\": rows, \"meta\": meta}))\n except Exception as e:\n print(\n json.dumps({\n \"ok\": False,\n \"error\": f\"Docling processing error: {e}\",\n \"meta\": {\"file_path\": file_path},\n })\n )\n\n if __name__ == \"__main__\":\n main()\n \"\"\"\n )\n\n # Validate file_path to avoid command injection or unsafe input\n if not isinstance(args[\"file_path\"], str) or any(c in args[\"file_path\"] for c in [\";\", \"|\", \"&\", \"$\", \"`\"]):\n return Data(data={\"error\": \"Unsafe file path detected.\", \"file_path\": args[\"file_path\"]})\n\n proc = subprocess.run( # noqa: S603\n [sys.executable, \"-u\", \"-c\", child_script],\n input=json.dumps(args).encode(\"utf-8\"),\n capture_output=True,\n check=False,\n )\n\n if not proc.stdout:\n err_msg = proc.stderr.decode(\"utf-8\", errors=\"replace\") or \"no output from child process\"\n return Data(data={\"error\": f\"Docling subprocess error: {err_msg}\", \"file_path\": original_file_path})\n\n try:\n result = json.loads(proc.stdout.decode(\"utf-8\"))\n except Exception as e: # noqa: BLE001\n err_msg = proc.stderr.decode(\"utf-8\", errors=\"replace\")\n return Data(\n data={\n \"error\": f\"Invalid JSON from Docling subprocess: {e}. stderr={err_msg}\",\n \"file_path\": original_file_path,\n },\n )\n\n if not result.get(\"ok\"):\n return Data(data={\"error\": result.get(\"error\", \"Unknown Docling error\"), **result.get(\"meta\", {})})\n\n meta = result.get(\"meta\", {})\n if result.get(\"mode\") == \"markdown\":\n exported_content = str(result.get(\"text\", \"\"))\n return Data(\n text=exported_content,\n data={\"exported_content\": exported_content, \"export_format\": self.EXPORT_FORMAT, **meta},\n )\n\n rows = list(result.get(\"doc\", []))\n return Data(data={\"doc\": rows, \"export_format\": self.EXPORT_FORMAT, **meta})\n\n def process_files(\n self,\n file_list: list[BaseFileComponent.BaseFile],\n ) -> list[BaseFileComponent.BaseFile]:\n \"\"\"Process input files.\n\n - advanced_mode => Docling in a separate process.\n - Otherwise => standard parsing in current process (optionally threaded).\n \"\"\"\n if not file_list:\n msg = \"No files to process.\"\n raise ValueError(msg)\n\n # Validate image files to detect content/extension mismatches\n # This prevents API errors like \"Image does not match the provided media type\"\n image_extensions = {\"jpeg\", \"jpg\", \"png\", \"gif\", \"webp\", \"bmp\", \"tiff\"}\n for file in file_list:\n extension = file.path.suffix[1:].lower()\n if extension in image_extensions:\n # file.path is already resolved, read bytes directly\n try:\n content = file.path.read_bytes()\n is_valid, error_msg = validate_image_content_type(\n str(file.path),\n content=content,\n )\n if not is_valid:\n self.log(error_msg)\n if not self.silent_errors:\n raise ValueError(error_msg)\n except OSError as e:\n self.log(f\"Could not read file for validation: {e}\")\n # Continue - let it fail later with better error\n\n # Validate that files requiring Docling are only processed when advanced mode is enabled\n if not self.advanced_mode:\n for file in file_list:\n extension = file.path.suffix[1:].lower()\n if extension in self.DOCLING_ONLY_EXTENSIONS:\n msg = (\n f\"File '{file.path.name}' has extension '.{extension}' which requires \"\n f\"Advanced Parser mode. Please enable 'Advanced Parser' to process this file.\"\n )\n self.log(msg)\n raise ValueError(msg)\n\n def process_file_standard(file_path: str, *, silent_errors: bool = False) -> Data | None:\n try:\n return parse_text_file_to_data(file_path, silent_errors=silent_errors)\n except FileNotFoundError as e:\n self.log(f\"File not found: {file_path}. Error: {e}\")\n if not silent_errors:\n raise\n return None\n except Exception as e:\n self.log(f\"Unexpected error processing {file_path}: {e}\")\n if not silent_errors:\n raise\n return None\n\n docling_compatible = all(self._is_docling_compatible(str(f.path)) for f in file_list)\n\n # Advanced path: Check if ALL files are compatible with Docling\n if self.advanced_mode and docling_compatible:\n final_return: list[BaseFileComponent.BaseFile] = []\n for file in file_list:\n file_path = str(file.path)\n advanced_data: Data | None = self._process_docling_in_subprocess(file_path)\n\n # --- UNNEST: expand each element in `doc` to its own Data row\n payload = getattr(advanced_data, \"data\", {}) or {}\n doc_rows = payload.get(\"doc\")\n if isinstance(doc_rows, list) and doc_rows:\n # Non-empty list of structured rows\n rows: list[Data | None] = [\n Data(\n data={\n \"file_path\": file_path,\n **(item if isinstance(item, dict) else {\"value\": item}),\n },\n )\n for item in doc_rows\n ]\n final_return.extend(self.rollup_data(file_list, rows))\n elif isinstance(doc_rows, list) and not doc_rows:\n # Empty list - file was processed but no text content found\n # Create a Data object indicating no content was extracted\n self.log(f\"No text extracted from '{file_path}', creating placeholder data\")\n empty_data = Data(\n data={\n \"file_path\": file_path,\n \"text\": \"(No text content extracted from image)\",\n \"info\": \"Image processed successfully but contained no extractable text\",\n **{k: v for k, v in payload.items() if k != \"doc\"},\n },\n )\n final_return.extend(self.rollup_data([file], [empty_data]))\n else:\n # If not structured, keep as-is (e.g., markdown export or error dict)\n final_return.extend(self.rollup_data(file_list, [advanced_data]))\n return final_return\n\n # Standard multi-file (or single non-advanced) path\n concurrency = 1 if not self.use_multithreading else max(1, self.concurrency_multithreading)\n\n file_paths = [str(f.path) for f in file_list]\n self.log(f\"Starting parallel processing of {len(file_paths)} files with concurrency: {concurrency}.\")\n my_data = parallel_load_data(\n file_paths,\n silent_errors=self.silent_errors,\n load_function=process_file_standard,\n max_concurrency=concurrency,\n )\n return self.rollup_data(file_list, my_data)\n\n # ------------------------------ Output helpers -----------------------------------\n\n def load_files_helper(self) -> DataFrame:\n result = self.load_files()\n\n # Result is a DataFrame - check if it has any rows\n if result.empty:\n msg = \"Could not extract content from the provided file(s).\"\n raise ValueError(msg)\n\n # Check for error column with error messages\n if \"error\" in result.columns:\n errors = result[\"error\"].dropna().tolist()\n if errors and not any(col in result.columns for col in [\"text\", \"doc\", \"exported_content\"]):\n raise ValueError(errors[0])\n\n return result\n\n def load_files_dataframe(self) -> DataFrame:\n \"\"\"Load files using advanced Docling processing and export to DataFrame format.\"\"\"\n self.markdown = False\n return self.load_files_helper()\n\n def load_files_markdown(self) -> Message:\n \"\"\"Load files using advanced Docling processing and export to Markdown format.\"\"\"\n self.markdown = True\n result = self.load_files_helper()\n\n # Result is a DataFrame - check for text or exported_content columns\n if \"text\" in result.columns and not result[\"text\"].isna().all():\n text_values = result[\"text\"].dropna().tolist()\n if text_values:\n return Message(text=str(text_values[0]))\n\n if \"exported_content\" in result.columns and not result[\"exported_content\"].isna().all():\n content_values = result[\"exported_content\"].dropna().tolist()\n if content_values:\n return Message(text=str(content_values[0]))\n\n # Return empty message with info that no text was found\n return Message(text=\"(No text content extracted from file)\")\n"
|
|
1279
1287
|
},
|
|
1280
1288
|
"concurrency_multithreading": {
|
|
1281
1289
|
"_input_type": "IntInput",
|
|
@@ -1367,6 +1375,7 @@
|
|
|
1367
1375
|
"list_add_label": "Add More",
|
|
1368
1376
|
"load_from_db": false,
|
|
1369
1377
|
"name": "file_path_str",
|
|
1378
|
+
"override_skip": false,
|
|
1370
1379
|
"placeholder": "",
|
|
1371
1380
|
"required": false,
|
|
1372
1381
|
"show": false,
|
|
@@ -150,7 +150,7 @@
|
|
|
150
150
|
"legacy": false,
|
|
151
151
|
"lf_version": "1.6.0",
|
|
152
152
|
"metadata": {
|
|
153
|
-
"code_hash": "
|
|
153
|
+
"code_hash": "8c87e536cca4",
|
|
154
154
|
"dependencies": {
|
|
155
155
|
"dependencies": [
|
|
156
156
|
{
|
|
@@ -159,7 +159,7 @@
|
|
|
159
159
|
},
|
|
160
160
|
{
|
|
161
161
|
"name": "fastapi",
|
|
162
|
-
"version": "0.
|
|
162
|
+
"version": "0.123.0"
|
|
163
163
|
},
|
|
164
164
|
{
|
|
165
165
|
"name": "lfx",
|
|
@@ -226,7 +226,7 @@
|
|
|
226
226
|
"show": true,
|
|
227
227
|
"title_case": false,
|
|
228
228
|
"type": "code",
|
|
229
|
-
"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"
|
|
229
|
+
"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"
|
|
230
230
|
},
|
|
231
231
|
"context_id": {
|
|
232
232
|
"_input_type": "MessageTextInput",
|
|
@@ -1199,11 +1199,13 @@
|
|
|
1199
1199
|
"list": false,
|
|
1200
1200
|
"list_add_label": "Add More",
|
|
1201
1201
|
"name": "llm",
|
|
1202
|
+
"override_skip": false,
|
|
1202
1203
|
"placeholder": "",
|
|
1203
1204
|
"required": true,
|
|
1204
1205
|
"show": true,
|
|
1205
1206
|
"title_case": false,
|
|
1206
1207
|
"trace_as_metadata": true,
|
|
1208
|
+
"track_in_telemetry": false,
|
|
1207
1209
|
"type": "other",
|
|
1208
1210
|
"value": ""
|
|
1209
1211
|
},
|
|
@@ -725,7 +725,7 @@
|
|
|
725
725
|
"legacy": false,
|
|
726
726
|
"lf_version": "1.6.0",
|
|
727
727
|
"metadata": {
|
|
728
|
-
"code_hash": "
|
|
728
|
+
"code_hash": "8c87e536cca4",
|
|
729
729
|
"dependencies": {
|
|
730
730
|
"dependencies": [
|
|
731
731
|
{
|
|
@@ -734,7 +734,7 @@
|
|
|
734
734
|
},
|
|
735
735
|
{
|
|
736
736
|
"name": "fastapi",
|
|
737
|
-
"version": "0.
|
|
737
|
+
"version": "0.123.0"
|
|
738
738
|
},
|
|
739
739
|
{
|
|
740
740
|
"name": "lfx",
|
|
@@ -800,7 +800,7 @@
|
|
|
800
800
|
"show": true,
|
|
801
801
|
"title_case": false,
|
|
802
802
|
"type": "code",
|
|
803
|
-
"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"
|
|
803
|
+
"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"
|
|
804
804
|
},
|
|
805
805
|
"context_id": {
|
|
806
806
|
"_input_type": "MessageTextInput",
|
|
@@ -1897,7 +1897,7 @@
|
|
|
1897
1897
|
},
|
|
1898
1898
|
{
|
|
1899
1899
|
"name": "langchain_core",
|
|
1900
|
-
"version": "0.3.
|
|
1900
|
+
"version": "0.3.80"
|
|
1901
1901
|
},
|
|
1902
1902
|
{
|
|
1903
1903
|
"name": "lfx",
|
|
@@ -2805,11 +2805,13 @@
|
|
|
2805
2805
|
"list": false,
|
|
2806
2806
|
"list_add_label": "Add More",
|
|
2807
2807
|
"name": "llm",
|
|
2808
|
+
"override_skip": false,
|
|
2808
2809
|
"placeholder": "",
|
|
2809
2810
|
"required": true,
|
|
2810
2811
|
"show": true,
|
|
2811
2812
|
"title_case": false,
|
|
2812
2813
|
"trace_as_metadata": true,
|
|
2814
|
+
"track_in_telemetry": false,
|
|
2813
2815
|
"type": "other",
|
|
2814
2816
|
"value": ""
|
|
2815
2817
|
},
|
|
@@ -508,7 +508,7 @@
|
|
|
508
508
|
"legacy": false,
|
|
509
509
|
"lf_version": "1.6.0",
|
|
510
510
|
"metadata": {
|
|
511
|
-
"code_hash": "
|
|
511
|
+
"code_hash": "8c87e536cca4",
|
|
512
512
|
"dependencies": {
|
|
513
513
|
"dependencies": [
|
|
514
514
|
{
|
|
@@ -517,7 +517,7 @@
|
|
|
517
517
|
},
|
|
518
518
|
{
|
|
519
519
|
"name": "fastapi",
|
|
520
|
-
"version": "0.
|
|
520
|
+
"version": "0.123.0"
|
|
521
521
|
},
|
|
522
522
|
{
|
|
523
523
|
"name": "lfx",
|
|
@@ -582,7 +582,7 @@
|
|
|
582
582
|
"show": true,
|
|
583
583
|
"title_case": false,
|
|
584
584
|
"type": "code",
|
|
585
|
-
"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"
|
|
585
|
+
"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"
|
|
586
586
|
},
|
|
587
587
|
"context_id": {
|
|
588
588
|
"_input_type": "MessageTextInput",
|
|
@@ -1885,11 +1885,13 @@
|
|
|
1885
1885
|
"list": false,
|
|
1886
1886
|
"list_add_label": "Add More",
|
|
1887
1887
|
"name": "llm",
|
|
1888
|
+
"override_skip": false,
|
|
1888
1889
|
"placeholder": "",
|
|
1889
1890
|
"required": true,
|
|
1890
1891
|
"show": true,
|
|
1891
1892
|
"title_case": false,
|
|
1892
1893
|
"trace_as_metadata": true,
|
|
1894
|
+
"track_in_telemetry": false,
|
|
1893
1895
|
"type": "other",
|
|
1894
1896
|
"value": ""
|
|
1895
1897
|
},
|