langflow-base-nightly 1.7.0.dev52__py3-none-any.whl → 1.7.0.dev55__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/agentic/utils/template_create.py +4 -2
- langflow/api/router.py +4 -0
- langflow/api/utils/core.py +1 -1
- langflow/api/utils/mcp/agentic_mcp.py +8 -7
- langflow/api/v1/__init__.py +4 -0
- langflow/api/v1/flows.py +122 -19
- langflow/api/v1/login.py +9 -7
- langflow/api/v1/model_options.py +22 -0
- langflow/api/v1/models.py +757 -0
- langflow/api/v1/monitor.py +4 -17
- langflow/api/v1/openai_responses.py +9 -0
- langflow/api/v1/schemas.py +9 -1
- langflow/api/v1/variable.py +137 -4
- langflow/frontend/assets/SlackIcon-CiDRMRPJ.js +1 -0
- langflow/frontend/assets/Wikipedia-Dy2BbcVZ.js +1 -0
- langflow/frontend/assets/Wolfram-Cqcm65J8.js +1 -0
- langflow/frontend/assets/a-arrow-down-D0QDfPwx.js +6 -0
- langflow/frontend/assets/a-arrow-up-DToMBqme.js +6 -0
- langflow/frontend/assets/a-large-small-DoI6Lbmh.js +6 -0
- langflow/frontend/assets/accessibility-Cw-mNMt4.js +6 -0
- langflow/frontend/assets/activity-hWot7v0y.js +6 -0
- langflow/frontend/assets/air-vent-Byvqj6UO.js +6 -0
- langflow/frontend/assets/airplay-DHukvi2i.js +6 -0
- langflow/frontend/assets/alarm-clock-DtrrEQBq.js +6 -0
- langflow/frontend/assets/alarm-clock-check-D6AI3OPX.js +6 -0
- langflow/frontend/assets/alarm-clock-minus-BL3qcCTv.js +6 -0
- langflow/frontend/assets/alarm-clock-off-Cp1EL8zC.js +6 -0
- langflow/frontend/assets/alarm-clock-plus-kX0kuGbg.js +6 -0
- langflow/frontend/assets/alarm-smoke-B_ihQo4m.js +6 -0
- langflow/frontend/assets/album-C7gkxb6p.js +6 -0
- langflow/frontend/assets/align-center-DtKFvIp-.js +6 -0
- langflow/frontend/assets/align-center-horizontal-CmKZBJ3p.js +6 -0
- langflow/frontend/assets/align-center-vertical-BVHpQ5jm.js +6 -0
- langflow/frontend/assets/align-end-horizontal-CnTv9v1g.js +6 -0
- langflow/frontend/assets/align-end-vertical-DOXV_CPn.js +6 -0
- langflow/frontend/assets/align-horizontal-distribute-center-Gp4cXira.js +6 -0
- langflow/frontend/assets/align-horizontal-distribute-end-TJv5yc-l.js +6 -0
- langflow/frontend/assets/align-horizontal-distribute-start-Dma5h49X.js +6 -0
- langflow/frontend/assets/align-horizontal-justify-center-D_Va6wiK.js +6 -0
- langflow/frontend/assets/align-horizontal-justify-end-C6QiubjB.js +6 -0
- langflow/frontend/assets/align-horizontal-justify-start-XdwaVYgG.js +6 -0
- langflow/frontend/assets/align-horizontal-space-around-X1tLLrkW.js +6 -0
- langflow/frontend/assets/align-horizontal-space-between-Dh3018_K.js +6 -0
- langflow/frontend/assets/align-justify-DHg8_U1g.js +6 -0
- langflow/frontend/assets/align-left-DhwQkbhk.js +6 -0
- langflow/frontend/assets/align-right-BPRo6jGb.js +6 -0
- langflow/frontend/assets/align-start-horizontal-BCuSphdX.js +6 -0
- langflow/frontend/assets/align-start-vertical-ab2DXCS5.js +6 -0
- langflow/frontend/assets/align-vertical-distribute-center-DFhGK-rN.js +6 -0
- langflow/frontend/assets/align-vertical-distribute-end-Dfe56eVW.js +6 -0
- langflow/frontend/assets/align-vertical-distribute-start-URfCfDOt.js +6 -0
- langflow/frontend/assets/align-vertical-justify-center-Io8SQ_x_.js +6 -0
- langflow/frontend/assets/align-vertical-justify-end-BRreSma-.js +6 -0
- langflow/frontend/assets/align-vertical-justify-start-BKE4PAN5.js +6 -0
- langflow/frontend/assets/align-vertical-space-around-BUAWwmKu.js +6 -0
- langflow/frontend/assets/align-vertical-space-between-D0dmJ62l.js +6 -0
- langflow/frontend/assets/ambulance-CBSM6r9I.js +6 -0
- langflow/frontend/assets/ampersand-OwbxfSoT.js +6 -0
- langflow/frontend/assets/ampersands-phDhbc5_.js +6 -0
- langflow/frontend/assets/amphora-XJ0wSntH.js +6 -0
- langflow/frontend/assets/anchor-YZR9yXb1.js +6 -0
- langflow/frontend/assets/angry-7RJyr8Ks.js +6 -0
- langflow/frontend/assets/annoyed-CQgFRIXq.js +6 -0
- langflow/frontend/assets/antenna-DWt3JquC.js +6 -0
- langflow/frontend/assets/anvil-oydRBR5k.js +6 -0
- langflow/frontend/assets/aperture-ConT4Ais.js +6 -0
- langflow/frontend/assets/app-window-BEQBdken.js +6 -0
- langflow/frontend/assets/app-window-mac-derfeq8Q.js +6 -0
- langflow/frontend/assets/apple-oQkXFKHk.js +6 -0
- langflow/frontend/assets/archive-DL4Jju_X.js +6 -0
- langflow/frontend/assets/archive-restore-tbbdtHnz.js +6 -0
- langflow/frontend/assets/archive-x-B9xJPjFQ.js +6 -0
- langflow/frontend/assets/armchair-BZsNazfR.js +6 -0
- langflow/frontend/assets/arrow-big-down-_w3gYubJ.js +6 -0
- langflow/frontend/assets/arrow-big-down-dash-ZWzf7_Vm.js +6 -0
- langflow/frontend/assets/arrow-big-left-CwRD-vU8.js +6 -0
- langflow/frontend/assets/arrow-big-left-dash-CLj6et2F.js +6 -0
- langflow/frontend/assets/arrow-big-right-BU1ZIOoI.js +6 -0
- langflow/frontend/assets/arrow-big-right-dash-mVNtCmy4.js +6 -0
- langflow/frontend/assets/arrow-big-up-MZBxWcLb.js +6 -0
- langflow/frontend/assets/arrow-big-up-dash-BTSaZ3rL.js +6 -0
- langflow/frontend/assets/arrow-down-0-1-CtQvLh_F.js +6 -0
- langflow/frontend/assets/arrow-down-1-0-G0DV_-jJ.js +6 -0
- langflow/frontend/assets/arrow-down-B-l93xHD.js +6 -0
- langflow/frontend/assets/arrow-down-a-z-Tzg5tpD_.js +6 -0
- langflow/frontend/assets/arrow-down-from-line-B66kDVSw.js +6 -0
- langflow/frontend/assets/arrow-down-left-Bb9_3CCF.js +6 -0
- langflow/frontend/assets/arrow-down-narrow-wide-DVQ_iZIB.js +6 -0
- langflow/frontend/assets/arrow-down-right-BrFOGPEk.js +6 -0
- langflow/frontend/assets/arrow-down-to-dot-BUHlbyD0.js +6 -0
- langflow/frontend/assets/arrow-down-to-line-CUx9iPzf.js +6 -0
- langflow/frontend/assets/arrow-down-up-DEGIbqld.js +6 -0
- langflow/frontend/assets/arrow-down-wide-narrow-BDGmkk1h.js +6 -0
- langflow/frontend/assets/arrow-down-z-a-CZLqKUx0.js +6 -0
- langflow/frontend/assets/arrow-left-B_OBt03y.js +6 -0
- langflow/frontend/assets/arrow-left-from-line-9ufi0ecO.js +6 -0
- langflow/frontend/assets/arrow-left-right-gOh2Y7oY.js +6 -0
- langflow/frontend/assets/arrow-left-to-line-D70iFjNH.js +6 -0
- langflow/frontend/assets/arrow-right-CKq9pdal.js +6 -0
- langflow/frontend/assets/arrow-right-from-line-DvnunoU0.js +6 -0
- langflow/frontend/assets/arrow-right-left-_2oF7m9r.js +6 -0
- langflow/frontend/assets/arrow-right-to-line-BxWsuvcP.js +6 -0
- langflow/frontend/assets/arrow-up-0-1-UrjSfDJn.js +6 -0
- langflow/frontend/assets/arrow-up-1-0-CM2dh3AB.js +6 -0
- langflow/frontend/assets/arrow-up-D_Y7BGJZ.js +6 -0
- langflow/frontend/assets/arrow-up-a-z-CZ5_KOss.js +6 -0
- langflow/frontend/assets/arrow-up-down-D-WPBja4.js +6 -0
- langflow/frontend/assets/arrow-up-from-dot-C1ebyeMB.js +6 -0
- langflow/frontend/assets/arrow-up-from-line-BGDFNOIe.js +6 -0
- langflow/frontend/assets/arrow-up-left-oYJa1lK6.js +6 -0
- langflow/frontend/assets/arrow-up-narrow-wide-CL-SemHX.js +6 -0
- langflow/frontend/assets/arrow-up-right-q5RfBzKt.js +6 -0
- langflow/frontend/assets/arrow-up-to-line-D9O_vbe8.js +6 -0
- langflow/frontend/assets/arrow-up-wide-narrow-C1Q3vBuZ.js +6 -0
- langflow/frontend/assets/arrow-up-z-a-D-kVvjSu.js +6 -0
- langflow/frontend/assets/arrows-up-from-line-DJQdeKsZ.js +6 -0
- langflow/frontend/assets/asterisk-Ca3MsPZE.js +6 -0
- langflow/frontend/assets/at-sign-BAJSJ1qU.js +6 -0
- langflow/frontend/assets/atom-BvwGZJ3B.js +6 -0
- langflow/frontend/assets/audio-lines-Du741dSy.js +6 -0
- langflow/frontend/assets/audio-waveform-esSOCFic.js +6 -0
- langflow/frontend/assets/award-B4Q8oZG_.js +6 -0
- langflow/frontend/assets/axe-CVfqqqJ0.js +6 -0
- langflow/frontend/assets/axis-3d-DeT-zV7X.js +6 -0
- langflow/frontend/assets/baby-BdI6Bx5H.js +6 -0
- langflow/frontend/assets/backpack-YYgLRu05.js +6 -0
- langflow/frontend/assets/badge-CtIB0t_6.js +6 -0
- langflow/frontend/assets/badge-alert-BqPiZdq9.js +6 -0
- langflow/frontend/assets/badge-cent-Dzwmq_lP.js +6 -0
- langflow/frontend/assets/badge-check-DszgZEqQ.js +6 -0
- langflow/frontend/assets/badge-dollar-sign-D6_EslRQ.js +6 -0
- langflow/frontend/assets/badge-euro-BQql-pg0.js +6 -0
- langflow/frontend/assets/badge-help-BnNCR5F0.js +6 -0
- langflow/frontend/assets/badge-indian-rupee-BIYCaJCb.js +6 -0
- langflow/frontend/assets/badge-info-Dri8mwgT.js +6 -0
- langflow/frontend/assets/badge-japanese-yen-BwcOCoeZ.js +6 -0
- langflow/frontend/assets/badge-minus-DBkvvSwv.js +6 -0
- langflow/frontend/assets/badge-percent-Cxy2Fo-N.js +6 -0
- langflow/frontend/assets/badge-plus-DE8fShhE.js +6 -0
- langflow/frontend/assets/badge-pound-sterling-BofEzkg2.js +6 -0
- langflow/frontend/assets/badge-russian-ruble-Cm0gaD62.js +6 -0
- langflow/frontend/assets/badge-swiss-franc-DrYVhggb.js +6 -0
- langflow/frontend/assets/badge-x-BX5JqZV7.js +6 -0
- langflow/frontend/assets/baggage-claim-DvpoauZf.js +6 -0
- langflow/frontend/assets/ban-B1KHPWy2.js +6 -0
- langflow/frontend/assets/banana-CfdacHC0.js +6 -0
- langflow/frontend/assets/bandage-D_DmeXTQ.js +6 -0
- langflow/frontend/assets/banknote-CGf35Nu_.js +6 -0
- langflow/frontend/assets/banknote-arrow-down-Bsk5AYgW.js +6 -0
- langflow/frontend/assets/banknote-arrow-up-DxrrWbYd.js +6 -0
- langflow/frontend/assets/banknote-x-CNLoLyte.js +6 -0
- langflow/frontend/assets/barcode-CkAiQpv_.js +6 -0
- langflow/frontend/assets/baseline-DmSN7vJT.js +6 -0
- langflow/frontend/assets/bath-BVUupyhv.js +6 -0
- langflow/frontend/assets/battery-CEAwSkFP.js +6 -0
- langflow/frontend/assets/battery-charging-BfLCX2-h.js +6 -0
- langflow/frontend/assets/battery-full-0iDVp-o0.js +6 -0
- langflow/frontend/assets/battery-low-BcZQ08Dw.js +6 -0
- langflow/frontend/assets/battery-medium-DGqJYD1t.js +6 -0
- langflow/frontend/assets/battery-plus-BOSFZqZe.js +6 -0
- langflow/frontend/assets/battery-warning-ic4lJJVp.js +6 -0
- langflow/frontend/assets/beaker-BFuons2p.js +6 -0
- langflow/frontend/assets/bean-8vnDx1I9.js +6 -0
- langflow/frontend/assets/bean-off-Ysohtf4O.js +6 -0
- langflow/frontend/assets/bed-DuqIrPmN.js +6 -0
- langflow/frontend/assets/bed-double-BAIWPGsm.js +6 -0
- langflow/frontend/assets/bed-single-YYvXUljj.js +6 -0
- langflow/frontend/assets/beef-CK-4EOk9.js +6 -0
- langflow/frontend/assets/beer-DxRkOXll.js +6 -0
- langflow/frontend/assets/beer-off-ca2uo1xU.js +6 -0
- langflow/frontend/assets/bell-Udiy8X0N.js +6 -0
- langflow/frontend/assets/bell-dot-BBHKkc5C.js +6 -0
- langflow/frontend/assets/bell-electric-gUJz2OHW.js +6 -0
- langflow/frontend/assets/bell-minus-CVq_mjkN.js +6 -0
- langflow/frontend/assets/bell-off-0qN--6Yo.js +6 -0
- langflow/frontend/assets/bell-plus-BhRzK6QJ.js +6 -0
- langflow/frontend/assets/bell-ring-DjQSsyYE.js +6 -0
- langflow/frontend/assets/between-horizontal-end-NpyCdfOE.js +6 -0
- langflow/frontend/assets/between-horizontal-start-Dnpc4BAO.js +6 -0
- langflow/frontend/assets/between-vertical-end-CHrjEpfS.js +6 -0
- langflow/frontend/assets/between-vertical-start-DKJs53Sx.js +6 -0
- langflow/frontend/assets/biceps-flexed-CsE7dV3u.js +6 -0
- langflow/frontend/assets/bike-CVR0RzpQ.js +6 -0
- langflow/frontend/assets/binary-Bcih0o69.js +6 -0
- langflow/frontend/assets/binoculars-ICtPwNib.js +6 -0
- langflow/frontend/assets/biohazard-D03rerME.js +6 -0
- langflow/frontend/assets/bird-B5I4-Y1a.js +6 -0
- langflow/frontend/assets/bitcoin-CY0RUO73.js +6 -0
- langflow/frontend/assets/blend-ByVWGP-D.js +6 -0
- langflow/frontend/assets/blinds-8P6aWn71.js +6 -0
- langflow/frontend/assets/blocks-C7fg3_Sh.js +6 -0
- langflow/frontend/assets/bluetooth-DF_2-I3H.js +6 -0
- langflow/frontend/assets/bluetooth-connected-C7eddUdy.js +6 -0
- langflow/frontend/assets/bluetooth-off-Br88awpS.js +6 -0
- langflow/frontend/assets/bluetooth-searching-B4WptJbX.js +6 -0
- langflow/frontend/assets/bold-CqjK5dvo.js +6 -0
- langflow/frontend/assets/bolt-D9ewNwxl.js +6 -0
- langflow/frontend/assets/bomb-D89BBj0x.js +6 -0
- langflow/frontend/assets/bone-DZfW0e9X.js +6 -0
- langflow/frontend/assets/book-CU5lbLsx.js +6 -0
- langflow/frontend/assets/book-a-DyEiNbAO.js +6 -0
- langflow/frontend/assets/book-audio-BOz0SK3h.js +6 -0
- langflow/frontend/assets/book-check-bAiLk1v0.js +6 -0
- langflow/frontend/assets/book-copy-Bjyl8Dxj.js +6 -0
- langflow/frontend/assets/book-dashed-87-hTIj-.js +6 -0
- langflow/frontend/assets/book-down-DMGDvX6c.js +6 -0
- langflow/frontend/assets/book-headphones-DxzgLbtY.js +6 -0
- langflow/frontend/assets/book-heart-CoddRiQc.js +6 -0
- langflow/frontend/assets/book-image-Bvm0otFu.js +6 -0
- langflow/frontend/assets/book-key-Crv25-1b.js +6 -0
- langflow/frontend/assets/book-lock-CE-TUGNT.js +6 -0
- langflow/frontend/assets/book-marked-DyXwsEf8.js +6 -0
- langflow/frontend/assets/book-minus-B4Q7tkGf.js +6 -0
- langflow/frontend/assets/book-open-BwdF_mSV.js +6 -0
- langflow/frontend/assets/book-open-check-DAKXiQog.js +6 -0
- langflow/frontend/assets/book-open-text-DmYpNWDa.js +6 -0
- langflow/frontend/assets/book-plus-nDtW0juH.js +6 -0
- langflow/frontend/assets/book-text-A0c-fc0P.js +6 -0
- langflow/frontend/assets/book-type-Byqm2yjx.js +6 -0
- langflow/frontend/assets/book-up-2-CoIJp0vk.js +6 -0
- langflow/frontend/assets/book-up-PCEt_ENQ.js +6 -0
- langflow/frontend/assets/book-user-TA8Et36C.js +6 -0
- langflow/frontend/assets/book-x-BFRasTEI.js +6 -0
- langflow/frontend/assets/bookmark-BJ6wtUhD.js +6 -0
- langflow/frontend/assets/bookmark-check-CxMqJ7-P.js +6 -0
- langflow/frontend/assets/bookmark-minus-B0_-EHIw.js +6 -0
- langflow/frontend/assets/bookmark-plus-CZbCCZjc.js +6 -0
- langflow/frontend/assets/bookmark-x-CXVmt1v4.js +6 -0
- langflow/frontend/assets/boom-box-CgZrwetT.js +6 -0
- langflow/frontend/assets/bot-DQRMipsE.js +6 -0
- langflow/frontend/assets/bot-message-square-CZBvDG_-.js +6 -0
- langflow/frontend/assets/bot-off-vPdD2RlP.js +6 -0
- langflow/frontend/assets/bow-arrow-EPgHlepf.js +6 -0
- langflow/frontend/assets/box-BgDOdcN1.js +6 -0
- langflow/frontend/assets/boxes-1Ph2c29h.js +6 -0
- langflow/frontend/assets/braces-C3gETHIP.js +6 -0
- langflow/frontend/assets/brackets-DQQ4xUwP.js +6 -0
- langflow/frontend/assets/brain-CKgUPawu.js +6 -0
- langflow/frontend/assets/brain-circuit-71o2XFnH.js +6 -0
- langflow/frontend/assets/brain-cog-CkwmrEVa.js +6 -0
- langflow/frontend/assets/brick-wall-CIfP2291.js +6 -0
- langflow/frontend/assets/brick-wall-fire-CVapRCpF.js +6 -0
- langflow/frontend/assets/briefcase-CUCjqLGO.js +6 -0
- langflow/frontend/assets/briefcase-business-C6KvOrlm.js +6 -0
- langflow/frontend/assets/briefcase-conveyor-belt-D8-KT8xV.js +6 -0
- langflow/frontend/assets/briefcase-medical-BMcjLsMG.js +6 -0
- langflow/frontend/assets/bring-to-front-BglFFtX9.js +6 -0
- langflow/frontend/assets/brush-BlEF7vZs.js +6 -0
- langflow/frontend/assets/bubbles-Cm5afSpk.js +6 -0
- langflow/frontend/assets/bug-CROT4EB9.js +6 -0
- langflow/frontend/assets/bug-off-B5pdze6F.js +6 -0
- langflow/frontend/assets/bug-play-B6XD7tsh.js +6 -0
- langflow/frontend/assets/building-2-CsWtjYjF.js +6 -0
- langflow/frontend/assets/building-CzrfPDJV.js +6 -0
- langflow/frontend/assets/bus-C-85lnrJ.js +6 -0
- langflow/frontend/assets/bus-front-Cxmu9qEn.js +6 -0
- langflow/frontend/assets/cable-B58qv4J-.js +6 -0
- langflow/frontend/assets/cable-car-BHokOmFT.js +6 -0
- langflow/frontend/assets/cake-CGFaGIrC.js +6 -0
- langflow/frontend/assets/cake-slice-BBjohR7D.js +6 -0
- langflow/frontend/assets/calculator-B-0BeATJ.js +6 -0
- langflow/frontend/assets/calendar-1-cuaB_r0e.js +6 -0
- langflow/frontend/assets/calendar-DTeTAlFN.js +6 -0
- langflow/frontend/assets/calendar-arrow-down-C-nN5_4E.js +6 -0
- langflow/frontend/assets/calendar-arrow-up-friUOxYZ.js +6 -0
- langflow/frontend/assets/calendar-check-2-Ddx3rWxC.js +6 -0
- langflow/frontend/assets/calendar-check-CVcw0Oaa.js +6 -0
- langflow/frontend/assets/calendar-clock-DB3BqPqH.js +6 -0
- langflow/frontend/assets/calendar-cog-qufoRfNY.js +6 -0
- langflow/frontend/assets/calendar-days-JGKw613e.js +6 -0
- langflow/frontend/assets/calendar-fold-xVSKci71.js +6 -0
- langflow/frontend/assets/calendar-heart-DVc8QSMQ.js +6 -0
- langflow/frontend/assets/calendar-minus-2-XIDnJ8bN.js +6 -0
- langflow/frontend/assets/calendar-minus-BG-9Gyu2.js +6 -0
- langflow/frontend/assets/calendar-off-U_58_9a9.js +6 -0
- langflow/frontend/assets/calendar-plus-2-DlZ32tDq.js +6 -0
- langflow/frontend/assets/calendar-plus-wPVwP8XH.js +6 -0
- langflow/frontend/assets/calendar-range-Dh3Mn4wk.js +6 -0
- langflow/frontend/assets/calendar-search-BYxcN8lZ.js +6 -0
- langflow/frontend/assets/calendar-sync-Dml9hu0M.js +6 -0
- langflow/frontend/assets/calendar-x-2-BCfg_6G9.js +6 -0
- langflow/frontend/assets/calendar-x-_X2UsDsD.js +6 -0
- langflow/frontend/assets/camera-Bq6YMUSz.js +6 -0
- langflow/frontend/assets/camera-off-D87mM-V8.js +6 -0
- langflow/frontend/assets/candy-B-0zd1zJ.js +6 -0
- langflow/frontend/assets/candy-cane-B02xZ8Yh.js +6 -0
- langflow/frontend/assets/candy-off-B31YgP4X.js +6 -0
- langflow/frontend/assets/cannabis-vbR60kvp.js +6 -0
- langflow/frontend/assets/captions-IapwnCWY.js +6 -0
- langflow/frontend/assets/captions-off-Cqyp0BCZ.js +6 -0
- langflow/frontend/assets/car-CFU8YDmN.js +6 -0
- langflow/frontend/assets/car-front-uwGBK8Yy.js +6 -0
- langflow/frontend/assets/car-taxi-front-9uT_Py1s.js +6 -0
- langflow/frontend/assets/caravan-CucvY9fQ.js +6 -0
- langflow/frontend/assets/carrot-Bb2TYO_E.js +6 -0
- langflow/frontend/assets/case-lower-DAlIbIk7.js +6 -0
- langflow/frontend/assets/case-sensitive-DVwMfk_g.js +6 -0
- langflow/frontend/assets/case-upper-DCIiTCMq.js +6 -0
- langflow/frontend/assets/cassette-tape-Bdfd7Nu2.js +6 -0
- langflow/frontend/assets/cast-C703ktdG.js +6 -0
- langflow/frontend/assets/castle-CMOrKjig.js +6 -0
- langflow/frontend/assets/cat-BAQE-Uvu.js +6 -0
- langflow/frontend/assets/cctv-Bm1ksqgN.js +6 -0
- langflow/frontend/assets/chart-area-0ZVeQsVc.js +6 -0
- langflow/frontend/assets/chart-bar-D9XeOk_i.js +6 -0
- langflow/frontend/assets/chart-bar-big-CW3qe26X.js +6 -0
- langflow/frontend/assets/chart-bar-decreasing-C0-1_ZyP.js +6 -0
- langflow/frontend/assets/chart-bar-increasing-CkeXMrpE.js +6 -0
- langflow/frontend/assets/chart-bar-stacked-LJjgMToq.js +6 -0
- langflow/frontend/assets/chart-candlestick-k1gVX8Te.js +6 -0
- langflow/frontend/assets/chart-column-BBJrPy0c.js +6 -0
- langflow/frontend/assets/chart-column-big-DcVBLwTs.js +6 -0
- langflow/frontend/assets/chart-column-decreasing-Cadd5KDq.js +6 -0
- langflow/frontend/assets/chart-column-increasing-CVGwOZ7O.js +6 -0
- langflow/frontend/assets/chart-column-stacked-nkTWIhS7.js +6 -0
- langflow/frontend/assets/chart-gantt-CDUJnFDM.js +6 -0
- langflow/frontend/assets/chart-line-CZBVm0lz.js +6 -0
- langflow/frontend/assets/chart-network-35pXQTAP.js +6 -0
- langflow/frontend/assets/chart-no-axes-column-cNjR2jbE.js +6 -0
- langflow/frontend/assets/chart-no-axes-column-decreasing-BOmLD1-Q.js +6 -0
- langflow/frontend/assets/chart-no-axes-column-increasing-yAD6_Y5Q.js +6 -0
- langflow/frontend/assets/chart-no-axes-combined-BkyhRYPE.js +6 -0
- langflow/frontend/assets/chart-no-axes-gantt-BnnWuplR.js +6 -0
- langflow/frontend/assets/chart-pie-D345szvo.js +6 -0
- langflow/frontend/assets/chart-scatter-BCE828AF.js +6 -0
- langflow/frontend/assets/chart-spline-DezWqFYo.js +6 -0
- langflow/frontend/assets/check-check-jYR0NdUS.js +6 -0
- langflow/frontend/assets/chef-hat-dWKJciCE.js +6 -0
- langflow/frontend/assets/cherry-C1B8wlvn.js +6 -0
- langflow/frontend/assets/chevron-first-DMbVTlgQ.js +6 -0
- langflow/frontend/assets/chevron-last-DUFi9nfs.js +6 -0
- langflow/frontend/assets/chevron-left-YByHwjJF.js +6 -0
- langflow/frontend/assets/chevron-right-BY1WKmJZ.js +6 -0
- langflow/frontend/assets/chevrons-down-CrEwkPTZ.js +6 -0
- langflow/frontend/assets/chevrons-down-up-B5omkIRL.js +6 -0
- langflow/frontend/assets/chevrons-left-CM5G6uIl.js +6 -0
- langflow/frontend/assets/chevrons-left-right-B3JKONgK.js +6 -0
- langflow/frontend/assets/chevrons-left-right-ellipsis-BsM6mFG_.js +6 -0
- langflow/frontend/assets/chevrons-right-fATY3ztz.js +6 -0
- langflow/frontend/assets/chevrons-right-left-CByP6P6z.js +6 -0
- langflow/frontend/assets/chevrons-up-CbWgePoj.js +6 -0
- langflow/frontend/assets/chrome-CWus5OOn.js +6 -0
- langflow/frontend/assets/church-DpYoZOhe.js +6 -0
- langflow/frontend/assets/cigarette-BmmVmlkc.js +6 -0
- langflow/frontend/assets/cigarette-off-CIEgMxHs.js +6 -0
- langflow/frontend/assets/circle-alert-CGmUq1ya.js +6 -0
- langflow/frontend/assets/circle-arrow-down-8jMDMeCm.js +6 -0
- langflow/frontend/assets/circle-arrow-left-CWYEEHDb.js +6 -0
- langflow/frontend/assets/circle-arrow-out-down-left-PqJt80DA.js +6 -0
- langflow/frontend/assets/circle-arrow-out-down-right-Bo9MkoPr.js +6 -0
- langflow/frontend/assets/circle-arrow-out-up-left-Bc0KGGYv.js +6 -0
- langflow/frontend/assets/circle-arrow-out-up-right-ByDZT4Rk.js +6 -0
- langflow/frontend/assets/circle-arrow-right-HbEOzhU9.js +6 -0
- langflow/frontend/assets/circle-arrow-up-ytUDzbm6.js +6 -0
- langflow/frontend/assets/circle-check-big-CXyZID9v.js +6 -0
- langflow/frontend/assets/circle-check-pEV54vM8.js +6 -0
- langflow/frontend/assets/circle-chevron-down-DS_rpf-8.js +6 -0
- langflow/frontend/assets/circle-chevron-left-CKeX3Rs-.js +6 -0
- langflow/frontend/assets/circle-chevron-right-DCI9ueTi.js +6 -0
- langflow/frontend/assets/circle-chevron-up-CptWpWQz.js +6 -0
- langflow/frontend/assets/circle-dashed-BYSh0yLh.js +6 -0
- langflow/frontend/assets/circle-divide-CaJ8BhKC.js +6 -0
- langflow/frontend/assets/circle-dollar-sign-bP6otW6i.js +6 -0
- langflow/frontend/assets/circle-dot-Dm-xR7J-.js +6 -0
- langflow/frontend/assets/circle-dot-dashed-DgOLrW-Y.js +6 -0
- langflow/frontend/assets/circle-ellipsis-CyuQbkx5.js +6 -0
- langflow/frontend/assets/circle-equal-ssfZnjeF.js +6 -0
- langflow/frontend/assets/circle-fading-arrow-up-CySl1dVh.js +6 -0
- langflow/frontend/assets/circle-fading-plus-DMkF1waP.js +6 -0
- langflow/frontend/assets/circle-gauge-BGrOst9L.js +6 -0
- langflow/frontend/assets/circle-help-CdMXDZFr.js +6 -0
- langflow/frontend/assets/circle-minus-DXLI43-p.js +6 -0
- langflow/frontend/assets/circle-off-C0JmuYH0.js +6 -0
- langflow/frontend/assets/circle-parking-CaoT_oV9.js +6 -0
- langflow/frontend/assets/circle-parking-off-Wl6mU15R.js +6 -0
- langflow/frontend/assets/circle-pause-nra2vq3x.js +6 -0
- langflow/frontend/assets/circle-percent-BtjKjrfI.js +6 -0
- langflow/frontend/assets/circle-play-BE-c8K8S.js +6 -0
- langflow/frontend/assets/circle-plus-PzFpxIZH.js +6 -0
- langflow/frontend/assets/circle-power-Ha2F1tSB.js +6 -0
- langflow/frontend/assets/circle-slash-2-DHcrnWlR.js +6 -0
- langflow/frontend/assets/circle-slash-CA-S0W4g.js +6 -0
- langflow/frontend/assets/circle-small-BvhryrIK.js +6 -0
- langflow/frontend/assets/circle-stop-Ct35yBZk.js +6 -0
- langflow/frontend/assets/circle-user-CPz8bqCl.js +6 -0
- langflow/frontend/assets/circle-user-round-yXIR-WgU.js +6 -0
- langflow/frontend/assets/circuit-board-CVkWlM5E.js +6 -0
- langflow/frontend/assets/citrus-BZCxNd7O.js +6 -0
- langflow/frontend/assets/clapperboard-dK4xZgsP.js +6 -0
- langflow/frontend/assets/clipboard-Ds5Z07sv.js +6 -0
- langflow/frontend/assets/clipboard-check-CT7rgWE7.js +6 -0
- langflow/frontend/assets/clipboard-copy-7ubC4Yza.js +6 -0
- langflow/frontend/assets/clipboard-list-o0oDhA77.js +6 -0
- langflow/frontend/assets/clipboard-minus-0Tz_adOm.js +6 -0
- langflow/frontend/assets/clipboard-paste-CoL1xZzr.js +6 -0
- langflow/frontend/assets/clipboard-pen-DuFR5bFR.js +6 -0
- langflow/frontend/assets/clipboard-pen-line-DGQtHbq3.js +6 -0
- langflow/frontend/assets/clipboard-plus-Y_fHUXMT.js +6 -0
- langflow/frontend/assets/clipboard-type-Du6tDpB5.js +6 -0
- langflow/frontend/assets/clipboard-x-CXlHspQq.js +6 -0
- langflow/frontend/assets/clock-1-Cy6_CrM-.js +6 -0
- langflow/frontend/assets/clock-10-DsU4PSzZ.js +6 -0
- langflow/frontend/assets/clock-11-DW5wXcwz.js +6 -0
- langflow/frontend/assets/clock-12-DRROOWaF.js +6 -0
- langflow/frontend/assets/clock-2-BYx-WvG0.js +6 -0
- langflow/frontend/assets/clock-3-BuBfWBH5.js +6 -0
- langflow/frontend/assets/clock-4-YZVu0Ndv.js +6 -0
- langflow/frontend/assets/clock-4ZjirP4v.js +6 -0
- langflow/frontend/assets/clock-5-OFWQOHb4.js +6 -0
- langflow/frontend/assets/clock-6-DxeICftX.js +6 -0
- langflow/frontend/assets/clock-7-CXQOXN6H.js +6 -0
- langflow/frontend/assets/clock-8-3KkUcd3O.js +6 -0
- langflow/frontend/assets/clock-9-6wbf25s1.js +6 -0
- langflow/frontend/assets/clock-alert-D452LIEg.js +6 -0
- langflow/frontend/assets/clock-arrow-down-TZUf1BSr.js +6 -0
- langflow/frontend/assets/clock-arrow-up-FXv7ULpb.js +6 -0
- langflow/frontend/assets/clock-fading-Da23qbqo.js +6 -0
- langflow/frontend/assets/cloud-Bo7mxJI_.js +6 -0
- langflow/frontend/assets/cloud-alert-BS8A9duL.js +6 -0
- langflow/frontend/assets/cloud-cog-Dpz4nFHS.js +6 -0
- langflow/frontend/assets/cloud-download-BVDMyr-G.js +6 -0
- langflow/frontend/assets/cloud-drizzle-BF3Y0HIk.js +6 -0
- langflow/frontend/assets/cloud-fog-B36RLGg6.js +6 -0
- langflow/frontend/assets/cloud-hail-CIDuu6t8.js +6 -0
- langflow/frontend/assets/cloud-lightning-CAi65H2c.js +6 -0
- langflow/frontend/assets/cloud-moon-qTvrUE7I.js +6 -0
- langflow/frontend/assets/cloud-moon-rain-ow_c2stP.js +6 -0
- langflow/frontend/assets/cloud-off-BLZed7la.js +6 -0
- langflow/frontend/assets/cloud-rain-CkjUfBVa.js +6 -0
- langflow/frontend/assets/cloud-rain-wind-B8R8wlV5.js +6 -0
- langflow/frontend/assets/cloud-snow-jnovgErB.js +6 -0
- langflow/frontend/assets/cloud-sun-Bfiu6mlL.js +6 -0
- langflow/frontend/assets/cloud-sun-rain-DHrnuDTE.js +6 -0
- langflow/frontend/assets/cloud-upload-E5DtpyCY.js +6 -0
- langflow/frontend/assets/cloudy-DpXNakKX.js +6 -0
- langflow/frontend/assets/clover-CSiWVDIr.js +6 -0
- langflow/frontend/assets/club-BwR217MS.js +6 -0
- langflow/frontend/assets/code-xml-DlFYVj3F.js +6 -0
- langflow/frontend/assets/codepen-UiUQU8WH.js +6 -0
- langflow/frontend/assets/codesandbox-B_mdLC3X.js +6 -0
- langflow/frontend/assets/coffee-DikHS02J.js +6 -0
- langflow/frontend/assets/cog-D2FSybxc.js +6 -0
- langflow/frontend/assets/coins-B3Ya8Atq.js +6 -0
- langflow/frontend/assets/columns-2-Drto25WB.js +6 -0
- langflow/frontend/assets/columns-3-CmrffVop.js +6 -0
- langflow/frontend/assets/columns-3-cog-CoWf_Nd8.js +6 -0
- langflow/frontend/assets/columns-4-H_EZ1mDg.js +6 -0
- langflow/frontend/assets/combine-mDtTaynV.js +6 -0
- langflow/frontend/assets/command-DSyz5JVi.js +6 -0
- langflow/frontend/assets/compass-BUS0JqW-.js +6 -0
- langflow/frontend/assets/component-CfzKr799.js +6 -0
- langflow/frontend/assets/computer-CN82ro8w.js +6 -0
- langflow/frontend/assets/concierge-bell-ByYUTkOH.js +6 -0
- langflow/frontend/assets/cone-D28CyZL2.js +6 -0
- langflow/frontend/assets/construction-BXaUJNkf.js +6 -0
- langflow/frontend/assets/contact-BODZSa_7.js +6 -0
- langflow/frontend/assets/contact-round-vAysxw5u.js +6 -0
- langflow/frontend/assets/container-i-a2gr02.js +6 -0
- langflow/frontend/assets/contrast-CbcHXjip.js +6 -0
- langflow/frontend/assets/cookie-hLfPjk6N.js +6 -0
- langflow/frontend/assets/cooking-pot-B4uLRrHG.js +6 -0
- langflow/frontend/assets/copy-4ZcB4prM.js +6 -0
- langflow/frontend/assets/copy-check-CUGgeRgc.js +6 -0
- langflow/frontend/assets/copy-minus-CB5xeyvB.js +6 -0
- langflow/frontend/assets/copy-plus-B8G2k-oB.js +6 -0
- langflow/frontend/assets/copy-slash-5Ap4tA3k.js +6 -0
- langflow/frontend/assets/copy-x-BhfHJzxP.js +6 -0
- langflow/frontend/assets/copyleft-CXRD8E9w.js +6 -0
- langflow/frontend/assets/copyright-BiA3grV6.js +6 -0
- langflow/frontend/assets/corner-down-left-ClJMDHI0.js +6 -0
- langflow/frontend/assets/corner-down-right-DCRPuYSm.js +6 -0
- langflow/frontend/assets/corner-left-down-BvS0G4W9.js +6 -0
- langflow/frontend/assets/corner-left-up-DWHo1WXV.js +6 -0
- langflow/frontend/assets/corner-right-down-BBB10evG.js +6 -0
- langflow/frontend/assets/corner-right-up-DXbv20S0.js +6 -0
- langflow/frontend/assets/corner-up-left-DomYLrA5.js +6 -0
- langflow/frontend/assets/corner-up-right-DEtvY6ys.js +6 -0
- langflow/frontend/assets/cpu-Dh88Q9fD.js +6 -0
- langflow/frontend/assets/creative-commons-BAe3nwZQ.js +6 -0
- langflow/frontend/assets/credit-card-DaB3cpBZ.js +6 -0
- langflow/frontend/assets/croissant-D96TGpzu.js +6 -0
- langflow/frontend/assets/crop-C8FxaeL1.js +6 -0
- langflow/frontend/assets/cross-5bdVltt9.js +6 -0
- langflow/frontend/assets/crosshair-CyZbfDct.js +6 -0
- langflow/frontend/assets/crown-BZnnOYwP.js +6 -0
- langflow/frontend/assets/cuboid-BqWogU5y.js +6 -0
- langflow/frontend/assets/cup-soda-Dz7NtIvF.js +6 -0
- langflow/frontend/assets/currency-5tPdc9Zh.js +6 -0
- langflow/frontend/assets/cylinder-B4mmn8ns.js +6 -0
- langflow/frontend/assets/dam-C2fbdkPV.js +6 -0
- langflow/frontend/assets/database-C8DmijcH.js +6 -0
- langflow/frontend/assets/database-backup-71ce-aHZ.js +6 -0
- langflow/frontend/assets/database-zap-DzH5GBmm.js +6 -0
- langflow/frontend/assets/decimals-arrow-left-DlR2OMIu.js +6 -0
- langflow/frontend/assets/decimals-arrow-right-Dx4ObfYv.js +6 -0
- langflow/frontend/assets/delete-BHxYtCY6.js +6 -0
- langflow/frontend/assets/dessert-CfOk8Cm8.js +6 -0
- langflow/frontend/assets/diameter-PFK47COt.js +6 -0
- langflow/frontend/assets/diamond-D2hRkW3R.js +6 -0
- langflow/frontend/assets/diamond-minus-BmmkztHK.js +6 -0
- langflow/frontend/assets/diamond-percent-Um3urkva.js +6 -0
- langflow/frontend/assets/diamond-plus-BctFfXFQ.js +6 -0
- langflow/frontend/assets/dice-1-iAashtM4.js +6 -0
- langflow/frontend/assets/dice-2-DYFUv-fQ.js +6 -0
- langflow/frontend/assets/dice-3-BKhH_7UE.js +6 -0
- langflow/frontend/assets/dice-4-DXL3N_4x.js +6 -0
- langflow/frontend/assets/dice-5-DnplP8dS.js +6 -0
- langflow/frontend/assets/dice-6-B60nh8vo.js +6 -0
- langflow/frontend/assets/dices-Dhvt0dI6.js +6 -0
- langflow/frontend/assets/diff-C0ITnBBr.js +6 -0
- langflow/frontend/assets/disc-2-BuaKHZRj.js +6 -0
- langflow/frontend/assets/disc-3-NMQNF-ZM.js +6 -0
- langflow/frontend/assets/disc-album-BcLrWjhq.js +6 -0
- langflow/frontend/assets/disc-yALpXpks.js +6 -0
- langflow/frontend/assets/divide-Dh7ujBOW.js +6 -0
- langflow/frontend/assets/dna-Bjifao3X.js +6 -0
- langflow/frontend/assets/dna-off-BUJlgzYb.js +6 -0
- langflow/frontend/assets/dock-B7EXITnl.js +6 -0
- langflow/frontend/assets/dog-B7U04mka.js +6 -0
- langflow/frontend/assets/dollar-sign-BMgFrD98.js +6 -0
- langflow/frontend/assets/donut-Bi1ebPXI.js +6 -0
- langflow/frontend/assets/door-closed-CSJ7S_5P.js +6 -0
- langflow/frontend/assets/door-open-DETl8Hsq.js +6 -0
- langflow/frontend/assets/dot-D3t9y3Ei.js +6 -0
- langflow/frontend/assets/download-QVQHjJbn.js +6 -0
- langflow/frontend/assets/drafting-compass-C_G_-w6o.js +6 -0
- langflow/frontend/assets/drama-C3d5snUt.js +6 -0
- langflow/frontend/assets/dribbble-gc8Hu2iM.js +6 -0
- langflow/frontend/assets/drill-C-_x7kVx.js +6 -0
- langflow/frontend/assets/droplet-CGpBURa1.js +6 -0
- langflow/frontend/assets/droplet-off-Pzyqut0G.js +6 -0
- langflow/frontend/assets/droplets-DUbFcMnM.js +6 -0
- langflow/frontend/assets/drum-Dc54lUwD.js +6 -0
- langflow/frontend/assets/drumstick-HKILk0Ot.js +6 -0
- langflow/frontend/assets/dumbbell-CW1875td.js +6 -0
- langflow/frontend/assets/ear-0Ch7ti8X.js +6 -0
- langflow/frontend/assets/ear-off-DraFLzw1.js +6 -0
- langflow/frontend/assets/earth-CFLvTzOE.js +6 -0
- langflow/frontend/assets/earth-lock-DnZmTPsn.js +6 -0
- langflow/frontend/assets/eclipse-CUbD3Qmh.js +6 -0
- langflow/frontend/assets/egg-Cbjn6S80.js +6 -0
- langflow/frontend/assets/egg-fried-CdBx5g4H.js +6 -0
- langflow/frontend/assets/egg-off-CxJ1u2w-.js +6 -0
- langflow/frontend/assets/ellipsis-BlbxdKlT.js +6 -0
- langflow/frontend/assets/ellipsis-vertical-COL6TUrg.js +6 -0
- langflow/frontend/assets/equal-BAjxFHm9.js +6 -0
- langflow/frontend/assets/equal-approximately-C_CIwv4D.js +6 -0
- langflow/frontend/assets/equal-not-Do3tztaX.js +6 -0
- langflow/frontend/assets/eraser-DF0f0uKS.js +6 -0
- langflow/frontend/assets/ethernet-port-WBTFOR3g.js +6 -0
- langflow/frontend/assets/euro-CEzliHoa.js +6 -0
- langflow/frontend/assets/expand-CuqWvmGR.js +6 -0
- langflow/frontend/assets/eye-BGqdGvP5.js +6 -0
- langflow/frontend/assets/eye-closed-DLJqwgv0.js +6 -0
- langflow/frontend/assets/eye-off-KDImmRkJ.js +6 -0
- langflow/frontend/assets/facebook-CYcXd9Iu.js +6 -0
- langflow/frontend/assets/factory-BWOF7gQH.js +6 -0
- langflow/frontend/assets/fan-CbdBZoHh.js +6 -0
- langflow/frontend/assets/fast-forward-nZ4kgGaR.js +6 -0
- langflow/frontend/assets/feather-Bpthyo1u.js +6 -0
- langflow/frontend/assets/fence-Cme7hk6F.js +6 -0
- langflow/frontend/assets/ferris-wheel-jGi85-Eg.js +6 -0
- langflow/frontend/assets/figma-Cjv8Tt79.js +6 -0
- langflow/frontend/assets/file-archive-Dly_3YF2.js +6 -0
- langflow/frontend/assets/file-audio-2-xj82e07p.js +6 -0
- langflow/frontend/assets/file-audio-9pU0xORZ.js +6 -0
- langflow/frontend/assets/file-axis-3d-BnYGLTM3.js +6 -0
- langflow/frontend/assets/file-badge-2-D0HG_ejF.js +6 -0
- langflow/frontend/assets/file-badge-BuHpQjAI.js +6 -0
- langflow/frontend/assets/file-box-D1VeNtpk.js +6 -0
- langflow/frontend/assets/file-chart-column-CnCcp9LE.js +6 -0
- langflow/frontend/assets/file-chart-column-increasing-C1rCConI.js +6 -0
- langflow/frontend/assets/file-chart-line-hgrAAx_4.js +6 -0
- langflow/frontend/assets/file-chart-pie-Dib4XDbW.js +6 -0
- langflow/frontend/assets/file-check-2-rLTogQx4.js +6 -0
- langflow/frontend/assets/file-check-DsnWAUT2.js +6 -0
- langflow/frontend/assets/file-clock---MrJeyO.js +6 -0
- langflow/frontend/assets/file-code-2-BdBTEdln.js +6 -0
- langflow/frontend/assets/file-code-BSD6ungW.js +6 -0
- langflow/frontend/assets/file-cog-BZQy-ba9.js +6 -0
- langflow/frontend/assets/file-dKQZYwuH.js +6 -0
- langflow/frontend/assets/file-diff-CH7EDtJC.js +6 -0
- langflow/frontend/assets/file-digit-D7_d-0CW.js +6 -0
- langflow/frontend/assets/file-down-Dt_7usLA.js +6 -0
- langflow/frontend/assets/file-heart-DT8xufAg.js +6 -0
- langflow/frontend/assets/file-image-DxvKruYd.js +6 -0
- langflow/frontend/assets/file-input-DxHp4Alf.js +6 -0
- langflow/frontend/assets/file-json-1-XvNhLQ.js +6 -0
- langflow/frontend/assets/file-json-2-DRiAa60m.js +6 -0
- langflow/frontend/assets/file-key-2-MRdv5jhW.js +6 -0
- langflow/frontend/assets/file-key-BzyIQNd6.js +6 -0
- langflow/frontend/assets/file-lock-2-Bkidiloq.js +6 -0
- langflow/frontend/assets/file-lock-D7DhBd2i.js +6 -0
- langflow/frontend/assets/file-minus-2-DyXNKy2T.js +6 -0
- langflow/frontend/assets/file-minus-DF3g9dIu.js +6 -0
- langflow/frontend/assets/file-music-DqiM-iAp.js +6 -0
- langflow/frontend/assets/file-output-D_Wg1CeJ.js +6 -0
- langflow/frontend/assets/file-pen-Bxm1mc6w.js +6 -0
- langflow/frontend/assets/file-pen-line-C4OMd3fE.js +6 -0
- langflow/frontend/assets/file-plus-2-kLdziRLd.js +6 -0
- langflow/frontend/assets/file-plus-CTa-OXIp.js +6 -0
- langflow/frontend/assets/file-question-CfxvLxIm.js +6 -0
- langflow/frontend/assets/file-scan-pgmy9fvz.js +6 -0
- langflow/frontend/assets/file-search-2-BwkJ5R6W.js +6 -0
- langflow/frontend/assets/file-search-DgBAyK6K.js +6 -0
- langflow/frontend/assets/file-sliders-B_OpLmha.js +6 -0
- langflow/frontend/assets/file-spreadsheet-DOtP8Gg9.js +6 -0
- langflow/frontend/assets/file-stack-DgDtpiMd.js +6 -0
- langflow/frontend/assets/file-symlink-vbXhuo8H.js +6 -0
- langflow/frontend/assets/file-terminal-DVvboZq6.js +6 -0
- langflow/frontend/assets/file-text-DGC7sdsW.js +6 -0
- langflow/frontend/assets/file-type-2-CfUahUxh.js +6 -0
- langflow/frontend/assets/file-type-BfSvTYPv.js +6 -0
- langflow/frontend/assets/file-up-Bvvikwm4.js +6 -0
- langflow/frontend/assets/file-user-DaUm7IPn.js +6 -0
- langflow/frontend/assets/file-video-2-DKvfIpuU.js +6 -0
- langflow/frontend/assets/file-video-Bu3OwNfA.js +6 -0
- langflow/frontend/assets/file-volume-2-9TCupQJ0.js +6 -0
- langflow/frontend/assets/file-volume-B79HFEYG.js +6 -0
- langflow/frontend/assets/file-warning-ox5Dn4wi.js +6 -0
- langflow/frontend/assets/file-x-2-BIUsvjws.js +6 -0
- langflow/frontend/assets/file-x-BbofT8LN.js +6 -0
- langflow/frontend/assets/files-DDq74A_H.js +6 -0
- langflow/frontend/assets/film-Cc-5l2Ug.js +6 -0
- langflow/frontend/assets/fingerprint-Bk43daa2.js +6 -0
- langflow/frontend/assets/fire-extinguisher-BpYWRcDE.js +6 -0
- langflow/frontend/assets/fish-CcgTXDr0.js +6 -0
- langflow/frontend/assets/fish-off-CTSoMjtL.js +6 -0
- langflow/frontend/assets/fish-symbol-4qaq4eUT.js +6 -0
- langflow/frontend/assets/flag-off-B6WIJPdA.js +6 -0
- langflow/frontend/assets/flag-s8A97f1C.js +6 -0
- langflow/frontend/assets/flag-triangle-left-Cb13gKSR.js +6 -0
- langflow/frontend/assets/flag-triangle-right-B2eU89J-.js +6 -0
- langflow/frontend/assets/flame-BdBUc1r8.js +6 -0
- langflow/frontend/assets/flame-kindling-B7n5jjlj.js +6 -0
- langflow/frontend/assets/flashlight-fNk35AiJ.js +6 -0
- langflow/frontend/assets/flashlight-off-D_RazXUc.js +6 -0
- langflow/frontend/assets/flask-conical-BGnLLMGf.js +6 -0
- langflow/frontend/assets/flask-conical-off-CnQAoWVR.js +6 -0
- langflow/frontend/assets/flask-round-fIBIuEdL.js +6 -0
- langflow/frontend/assets/flip-horizontal-2-CrrY3ni3.js +6 -0
- langflow/frontend/assets/flip-horizontal-hx2JiivV.js +6 -0
- langflow/frontend/assets/flip-vertical-2-DwP6Bzum.js +6 -0
- langflow/frontend/assets/flip-vertical-DcWXhqJt.js +6 -0
- langflow/frontend/assets/flower-2-BVqurWNh.js +6 -0
- langflow/frontend/assets/flower-DJSvFbmv.js +6 -0
- langflow/frontend/assets/focus-DdtKbmAh.js +6 -0
- langflow/frontend/assets/fold-horizontal-ZEKAo_f5.js +6 -0
- langflow/frontend/assets/fold-vertical-tn9KV2gT.js +6 -0
- langflow/frontend/assets/folder-D65_ctxW.js +6 -0
- langflow/frontend/assets/folder-archive-CSZUIv0L.js +6 -0
- langflow/frontend/assets/folder-check-DAD0Wbb0.js +6 -0
- langflow/frontend/assets/folder-clock-DKBSEbt1.js +6 -0
- langflow/frontend/assets/folder-closed-Da_IyQl-.js +6 -0
- langflow/frontend/assets/folder-code-BjK12yQl.js +6 -0
- langflow/frontend/assets/folder-cog-gMICaCve.js +6 -0
- langflow/frontend/assets/folder-dot-YKXGT1nq.js +6 -0
- langflow/frontend/assets/folder-down-U1ORGhse.js +6 -0
- langflow/frontend/assets/folder-git-2-CbITkZ8X.js +6 -0
- langflow/frontend/assets/folder-git-DqiNhlgf.js +6 -0
- langflow/frontend/assets/folder-heart-D3Oj_-2a.js +6 -0
- langflow/frontend/assets/folder-input-nAAMicET.js +6 -0
- langflow/frontend/assets/folder-kanban-CSdvrbDp.js +6 -0
- langflow/frontend/assets/folder-key-DLXTk8pJ.js +6 -0
- langflow/frontend/assets/folder-lock-WUABa7Oe.js +6 -0
- langflow/frontend/assets/folder-minus-B5xGdFAn.js +6 -0
- langflow/frontend/assets/folder-open-Bgv6WmI3.js +6 -0
- langflow/frontend/assets/folder-open-dot-DC2HgEPN.js +6 -0
- langflow/frontend/assets/folder-output-DwyLKy4X.js +6 -0
- langflow/frontend/assets/folder-pen-tcF02hyr.js +6 -0
- langflow/frontend/assets/folder-plus-B9_vaYDU.js +6 -0
- langflow/frontend/assets/folder-root-VwCr5OUC.js +6 -0
- langflow/frontend/assets/folder-search-2-BfQXzu7L.js +6 -0
- langflow/frontend/assets/folder-search-paV45aMl.js +6 -0
- langflow/frontend/assets/folder-symlink-COgmF5VW.js +6 -0
- langflow/frontend/assets/folder-sync-DrURUnNI.js +6 -0
- langflow/frontend/assets/folder-tree-CdICwYAj.js +6 -0
- langflow/frontend/assets/folder-up-D4WwIsp_.js +6 -0
- langflow/frontend/assets/folder-x-J2_4fdUF.js +6 -0
- langflow/frontend/assets/folders-7Xpsj7jV.js +6 -0
- langflow/frontend/assets/footprints-DVRSLXMk.js +6 -0
- langflow/frontend/assets/forklift-VMigNBFJ.js +6 -0
- langflow/frontend/assets/forward-CE54kWRO.js +6 -0
- langflow/frontend/assets/frame-BdXE1XDm.js +6 -0
- langflow/frontend/assets/framer-CA5fZhO7.js +6 -0
- langflow/frontend/assets/frown-oWG9DrD9.js +6 -0
- langflow/frontend/assets/fuel-ClmPVHZi.js +6 -0
- langflow/frontend/assets/fullscreen-DZIeVmwf.js +6 -0
- langflow/frontend/assets/funnel-DXZIwh3S.js +6 -0
- langflow/frontend/assets/funnel-plus-I5y8cnUa.js +6 -0
- langflow/frontend/assets/funnel-x-BRv8lJ4W.js +6 -0
- langflow/frontend/assets/gallery-horizontal-CTWQRiwE.js +6 -0
- langflow/frontend/assets/gallery-horizontal-end-CgCNLcQc.js +6 -0
- langflow/frontend/assets/gallery-thumbnails-DN-r2ZhB.js +6 -0
- langflow/frontend/assets/gallery-vertical-BsYEUvUD.js +6 -0
- langflow/frontend/assets/gallery-vertical-end-B3eXPsrk.js +6 -0
- langflow/frontend/assets/gamepad-2-Dw8h7uZr.js +6 -0
- langflow/frontend/assets/gamepad-CCft0e71.js +6 -0
- langflow/frontend/assets/gauge-mS-OblJR.js +6 -0
- langflow/frontend/assets/gavel-CupBXWg7.js +6 -0
- langflow/frontend/assets/gem-BUEaPolw.js +6 -0
- langflow/frontend/assets/ghost-3ME0nRk0.js +6 -0
- langflow/frontend/assets/gift-BtPeSI-o.js +6 -0
- langflow/frontend/assets/git-branch-D6kfZJaL.js +6 -0
- langflow/frontend/assets/git-branch-plus-3njkIJRK.js +6 -0
- langflow/frontend/assets/git-commit-horizontal-CFXGXdxi.js +6 -0
- langflow/frontend/assets/git-commit-vertical-CodAcvyH.js +6 -0
- langflow/frontend/assets/git-compare-DFPGVUFR.js +6 -0
- langflow/frontend/assets/git-compare-arrows-G2uE17iL.js +6 -0
- langflow/frontend/assets/git-fork-QJnff6sK.js +6 -0
- langflow/frontend/assets/git-graph-BucU4GOG.js +6 -0
- langflow/frontend/assets/git-merge-B0MmNtRI.js +6 -0
- langflow/frontend/assets/git-pull-request-DSB5VAZk.js +6 -0
- langflow/frontend/assets/git-pull-request-arrow-CmrmZgBw.js +6 -0
- langflow/frontend/assets/git-pull-request-closed-IdMIAzQ5.js +6 -0
- langflow/frontend/assets/git-pull-request-create-BaiY-zu7.js +6 -0
- langflow/frontend/assets/git-pull-request-create-arrow-Boj2Q1Ag.js +6 -0
- langflow/frontend/assets/git-pull-request-draft-BrbDUuPH.js +6 -0
- langflow/frontend/assets/github-B_uKXLGN.js +6 -0
- langflow/frontend/assets/gitlab-Dssfz-7b.js +6 -0
- langflow/frontend/assets/glass-water-DctUWtdy.js +6 -0
- langflow/frontend/assets/glasses-CJUqREJR.js +6 -0
- langflow/frontend/assets/globe-CW-N7YFg.js +6 -0
- langflow/frontend/assets/globe-lock-DmWaI8LB.js +6 -0
- langflow/frontend/assets/goal-C-A92vzq.js +6 -0
- langflow/frontend/assets/grab-DXNtbqNu.js +6 -0
- langflow/frontend/assets/graduation-cap-BvKxds3-.js +6 -0
- langflow/frontend/assets/grape-vxg-QmAa.js +6 -0
- langflow/frontend/assets/grid-2x2-Bda9xvw8.js +6 -0
- langflow/frontend/assets/grid-2x2-check-Cq4oXCG_.js +6 -0
- langflow/frontend/assets/grid-2x2-plus-DlbSyK4w.js +6 -0
- langflow/frontend/assets/grid-2x2-x-COkPyLW2.js +6 -0
- langflow/frontend/assets/grid-3x3-P5m98H0I.js +6 -0
- langflow/frontend/assets/grip-C8l1seJj.js +6 -0
- langflow/frontend/assets/grip-horizontal-C8xf9EqD.js +6 -0
- langflow/frontend/assets/grip-vertical-Dp8b3qVy.js +6 -0
- langflow/frontend/assets/group-NMh_xbhf.js +6 -0
- langflow/frontend/assets/guitar-Dohq_76_.js +6 -0
- langflow/frontend/assets/ham-CmDFmjBB.js +6 -0
- langflow/frontend/assets/hammer-_CGQRxth.js +6 -0
- langflow/frontend/assets/hand-CHd9erzR.js +6 -0
- langflow/frontend/assets/hand-coins-BhEGokvW.js +6 -0
- langflow/frontend/assets/hand-heart-7Oby7SAS.js +6 -0
- langflow/frontend/assets/hand-helping-CXMrHB_F.js +6 -0
- langflow/frontend/assets/hand-metal-C6MrIW5O.js +6 -0
- langflow/frontend/assets/hand-platter-Cbs2yD55.js +6 -0
- langflow/frontend/assets/handshake-DnW2f3e-.js +6 -0
- langflow/frontend/assets/hard-drive-B5MqVYDD.js +6 -0
- langflow/frontend/assets/hard-drive-download-DQm3Jx-J.js +6 -0
- langflow/frontend/assets/hard-drive-upload-UyeC7okZ.js +6 -0
- langflow/frontend/assets/hard-hat-DuBdE6ld.js +6 -0
- langflow/frontend/assets/hash-41NgbFLv.js +6 -0
- langflow/frontend/assets/haze-BoMT93pB.js +6 -0
- langflow/frontend/assets/hdmi-port-CKp8ZzL2.js +6 -0
- langflow/frontend/assets/heading-1-OsGkodnl.js +6 -0
- langflow/frontend/assets/heading-2-ByrEnN6x.js +6 -0
- langflow/frontend/assets/heading-3-C5NsklPz.js +6 -0
- langflow/frontend/assets/heading-4-Bhl4hzbe.js +6 -0
- langflow/frontend/assets/heading-5-DBI6pawb.js +6 -0
- langflow/frontend/assets/heading-6-DfxwQfT7.js +6 -0
- langflow/frontend/assets/heading-zd0OZwON.js +6 -0
- langflow/frontend/assets/headphone-off-mURIsBWJ.js +6 -0
- langflow/frontend/assets/headphones-BFe-lgHV.js +6 -0
- langflow/frontend/assets/headset-Bwf3fpi7.js +6 -0
- langflow/frontend/assets/heart-Dq1D84te.js +6 -0
- langflow/frontend/assets/heart-crack-CG--JiGk.js +6 -0
- langflow/frontend/assets/heart-handshake-oDkkGSno.js +6 -0
- langflow/frontend/assets/heart-minus-CCNRC1c0.js +6 -0
- langflow/frontend/assets/heart-off-BAPYXlds.js +6 -0
- langflow/frontend/assets/heart-plus-CvC3EhpP.js +6 -0
- langflow/frontend/assets/heart-pulse-DF-ORHct.js +6 -0
- langflow/frontend/assets/heater-eJfnwYYQ.js +6 -0
- langflow/frontend/assets/hexagon-BcDEx4Wb.js +6 -0
- langflow/frontend/assets/highlighter-j24gyp2u.js +6 -0
- langflow/frontend/assets/history-myIN6jVF.js +6 -0
- langflow/frontend/assets/hop-DSJJg5IW.js +6 -0
- langflow/frontend/assets/hop-off-CDIpY23y.js +6 -0
- langflow/frontend/assets/hospital-C2kjtT3N.js +6 -0
- langflow/frontend/assets/hotel-BiI9qopK.js +6 -0
- langflow/frontend/assets/hourglass-DdgptFb-.js +6 -0
- langflow/frontend/assets/house-D9nykhn2.js +6 -0
- langflow/frontend/assets/house-plug-CE2Jg8bl.js +6 -0
- langflow/frontend/assets/house-plus-DT80fPIW.js +6 -0
- langflow/frontend/assets/house-wifi-BB9Ytt9Q.js +6 -0
- langflow/frontend/assets/ice-cream-bowl-BtGfB4bc.js +6 -0
- langflow/frontend/assets/ice-cream-cone-q1HuFU8K.js +6 -0
- langflow/frontend/assets/id-card-CT13zAKZ.js +6 -0
- langflow/frontend/assets/image-D0ZjsAQs.js +6 -0
- langflow/frontend/assets/image-down-Du2TxYUV.js +6 -0
- langflow/frontend/assets/image-minus-DtJgK1SX.js +6 -0
- langflow/frontend/assets/image-off-CJM0L0Pm.js +6 -0
- langflow/frontend/assets/image-play-rO_sigy3.js +6 -0
- langflow/frontend/assets/image-plus-BtHXKAhF.js +6 -0
- langflow/frontend/assets/image-up-BedomcGK.js +6 -0
- langflow/frontend/assets/image-upscale-CTytoZQ7.js +6 -0
- langflow/frontend/assets/images-DQdzA8PB.js +6 -0
- langflow/frontend/assets/import-BSj_tVee.js +6 -0
- langflow/frontend/assets/inbox-CLdA6iO6.js +6 -0
- langflow/frontend/assets/indent-decrease-eBOWpxsA.js +6 -0
- langflow/frontend/assets/indent-increase-PUZyQsBH.js +6 -0
- langflow/frontend/assets/index--3O3NqKN.js +1 -0
- langflow/frontend/assets/index--IHrpBoo.js +1 -0
- langflow/frontend/assets/index-2kWQOuop.js +1 -0
- langflow/frontend/assets/index-5KYiBJ4r.js +1 -0
- langflow/frontend/assets/index-7l4lKqCJ.js +1 -0
- langflow/frontend/assets/index-8zD_EsG6.js +1 -0
- langflow/frontend/assets/index-9-TuTYSh.js +1 -0
- langflow/frontend/assets/index-Ayc8Z_Hb.js +1 -0
- langflow/frontend/assets/index-B0jfUxmL.js +1 -0
- langflow/frontend/assets/index-B12iJWz4.js +1 -0
- langflow/frontend/assets/index-B2tpdHrx.js +1 -0
- langflow/frontend/assets/index-B5ecjJUs.js +1 -0
- langflow/frontend/assets/index-B8V3us4q.js +1 -0
- langflow/frontend/assets/index-B94OQ3jt.js +1 -0
- langflow/frontend/assets/index-B9ommOZl.js +1 -0
- langflow/frontend/assets/index-BCAS0lQ_.js +1 -0
- langflow/frontend/assets/index-BDRoIsie.js +1 -0
- langflow/frontend/assets/index-BEDcwmO-.js +1 -0
- langflow/frontend/assets/index-BG8kF-GV.js +1 -0
- langflow/frontend/assets/index-BHAQc8Wu.js +1 -0
- langflow/frontend/assets/index-BI78KkAp.js +1 -0
- langflow/frontend/assets/index-BIK_Gncf.js +1 -0
- langflow/frontend/assets/index-BIitGLYF.js +1 -0
- langflow/frontend/assets/index-BJ2E8Jz2.js +1 -0
- langflow/frontend/assets/index-BJJAM1fq.js +1 -0
- langflow/frontend/assets/index-BJvXXLH0.js +1 -0
- langflow/frontend/assets/index-BK7ASEdZ.js +1 -0
- langflow/frontend/assets/index-BL9t0aq2.js +1 -0
- langflow/frontend/assets/index-BMw6t_pn.js +1 -0
- langflow/frontend/assets/index-BN_YNwOx.js +1 -0
- langflow/frontend/assets/index-BPkpEYRa.js +1 -0
- langflow/frontend/assets/index-BPoAfmHl.js +1 -0
- langflow/frontend/assets/index-BQ4YbPOt.js +1 -0
- langflow/frontend/assets/index-BRWCSHPL.js +1 -0
- langflow/frontend/assets/index-BTIO2Hd1.js +1 -0
- langflow/frontend/assets/index-BTn9ARUB.js +13 -0
- langflow/frontend/assets/index-BVLcStRP.js +1 -0
- langflow/frontend/assets/index-BVTk2F-Y.js +1 -0
- langflow/frontend/assets/index-BVnY-2eL.js +1 -0
- langflow/frontend/assets/index-BW_0_NQR.js +1 -0
- langflow/frontend/assets/index-BYGyku6g.js +1 -0
- langflow/frontend/assets/index-BYVzErJa.js +1 -0
- langflow/frontend/assets/index-BYaZbRmc.js +1 -0
- langflow/frontend/assets/index-BYnidR2j.js +1 -0
- langflow/frontend/assets/index-B_WRaKpb.js +1 -0
- langflow/frontend/assets/index-Bbd-X_I4.js +1 -0
- langflow/frontend/assets/index-Bd02jzx4.css +1 -0
- langflow/frontend/assets/index-BebbP1_3.js +2 -0
- langflow/frontend/assets/index-BfpDvtx9.js +1 -0
- langflow/frontend/assets/index-BguOvTIt.js +1 -0
- langflow/frontend/assets/index-Bh4jFZOt.js +1 -0
- langflow/frontend/assets/index-BlbxL0_F.js +1 -0
- langflow/frontend/assets/index-BlpMuHC1.js +1 -0
- langflow/frontend/assets/index-BmILSNO1.js +1 -0
- langflow/frontend/assets/index-Bnb_9gFT.js +1 -0
- langflow/frontend/assets/index-BnhOQvim.js +1 -0
- langflow/frontend/assets/index-BpQ_FwEx.js +1 -0
- langflow/frontend/assets/index-BrhCPWHl.js +1 -0
- langflow/frontend/assets/index-Bs66S-cg.js +1 -0
- langflow/frontend/assets/index-Bt8ozu-9.js +1 -0
- langflow/frontend/assets/index-Bte_MSlg.js +21 -0
- langflow/frontend/assets/index-Bu9UBPcf.js +1 -0
- langflow/frontend/assets/index-BuWUz5Es.js +1 -0
- langflow/frontend/assets/index-BxDCY7GA.js +1 -0
- langflow/frontend/assets/index-ByYWULC4.js +1 -0
- langflow/frontend/assets/index-Bylvmlsj.js +399 -0
- langflow/frontend/assets/index-BzcJzsWn.js +1 -0
- langflow/frontend/assets/index-C6jWT2p-.js +1 -0
- langflow/frontend/assets/index-C9Y1VV1M.js +1 -0
- langflow/frontend/assets/index-C9k7xHBe.js +1 -0
- langflow/frontend/assets/index-CB1BfuBr.js +1 -0
- langflow/frontend/assets/index-CDtwENIK.js +1 -0
- langflow/frontend/assets/index-CE488wQD.js +1 -0
- langflow/frontend/assets/index-CGvfR3yr.js +1 -0
- langflow/frontend/assets/index-CHJ-CBzq.js +1 -0
- langflow/frontend/assets/index-CHZjBnIE.js +1 -0
- langflow/frontend/assets/index-CI-vC5Lq.js +1 -0
- langflow/frontend/assets/index-CIZmTxGi.js +1 -0
- langflow/frontend/assets/index-CIcq7OmA.js +1 -0
- langflow/frontend/assets/index-CKMr8E1p.js +1 -0
- langflow/frontend/assets/index-CKTmIMMn.js +1 -0
- langflow/frontend/assets/index-CKpOimEN.js +381 -0
- langflow/frontend/assets/index-CLcE4nRm.js +1 -0
- langflow/frontend/assets/index-CM1jxAtr.js +1 -0
- langflow/frontend/assets/index-CM9ccl8R.js +1 -0
- langflow/frontend/assets/index-CN1xk2bm.js +1 -0
- langflow/frontend/assets/index-CPhJ9MJ3.js +1 -0
- langflow/frontend/assets/index-CPq9Cq75.js +1 -0
- langflow/frontend/assets/index-CQLuLC1H.js +1 -0
- langflow/frontend/assets/index-CQtCkREE.js +1 -0
- langflow/frontend/assets/index-CRzDwBcv.js +1 -0
- langflow/frontend/assets/index-CSKeDy3F.js +1 -0
- langflow/frontend/assets/index-CTTFx3hy.js +1 -0
- langflow/frontend/assets/index-CWO6aLRj.js +1 -0
- langflow/frontend/assets/index-CXJx-x2V.js +1 -0
- langflow/frontend/assets/index-CY8ExIlC.js +1 -0
- langflow/frontend/assets/index-CYS-koZD.js +1 -0
- langflow/frontend/assets/index-CYlls8yU.js +1 -0
- langflow/frontend/assets/index-CZDezo23.js +1 -0
- langflow/frontend/assets/index-Cc6LQgxi.js +1 -0
- langflow/frontend/assets/index-Cea1VdoP.js +20 -0
- langflow/frontend/assets/index-Ch73zLO7.js +1 -0
- langflow/frontend/assets/index-Chvm9gnt.js +1 -0
- langflow/frontend/assets/index-CiMhzwVm.js +1 -0
- langflow/frontend/assets/index-CjIpaN28.js +1 -0
- langflow/frontend/assets/index-Cmqey3tV.js +1 -0
- langflow/frontend/assets/index-CpKrIPML.js +205 -0
- langflow/frontend/assets/index-CpXuZ5Yj.js +1 -0
- langflow/frontend/assets/index-Cql8nLGl.js +1 -0
- langflow/frontend/assets/index-Cu5di6tV.js +1 -0
- langflow/frontend/assets/index-Cy2hauYT.js +185 -0
- langflow/frontend/assets/index-CyPXGUjM.js +1 -0
- langflow/frontend/assets/index-CzVx1ZZG.js +1 -0
- langflow/frontend/assets/index-D-sbAj3-.js +767 -0
- langflow/frontend/assets/index-D0faXIRw.js +1 -0
- langflow/frontend/assets/index-D2F1nNcS.js +1 -0
- langflow/frontend/assets/index-D6rNZM8d.js +1 -0
- langflow/frontend/assets/index-D7c71Ncp.js +7323 -0
- langflow/frontend/assets/index-D7nicSdX.js +1 -0
- langflow/frontend/assets/index-D8b32AEu.js +1 -0
- langflow/frontend/assets/index-DAp88IjZ.js +1 -0
- langflow/frontend/assets/index-DBLewSdZ.js +1 -0
- langflow/frontend/assets/index-DCAYv_9J.js +1 -0
- langflow/frontend/assets/index-DCdIQCmd.js +281 -0
- langflow/frontend/assets/index-DCjaZqzk.js +1 -0
- langflow/frontend/assets/index-DFsk-5F7.js +1 -0
- langflow/frontend/assets/index-DGHIyISG.js +1 -0
- langflow/frontend/assets/index-DHr2zhC0.js +1 -0
- langflow/frontend/assets/index-DJYsexlm.js +1 -0
- langflow/frontend/assets/index-DK6ZzpFl.js +1 -0
- langflow/frontend/assets/index-DL-XWPcx.js +7 -0
- langflow/frontend/assets/index-DNRIGLMN.js +1 -0
- langflow/frontend/assets/index-DORDRALN.js +1 -0
- langflow/frontend/assets/index-DOVsIs1Y.js +1 -0
- langflow/frontend/assets/index-DOYJ_CZN.js +1 -0
- langflow/frontend/assets/index-DQvsXVLs.js +1 -0
- langflow/frontend/assets/index-DThcEP2S.js +1 -0
- langflow/frontend/assets/index-DWW4i1mS.js +1 -0
- langflow/frontend/assets/index-DZydxXk-.js +1 -0
- langflow/frontend/assets/index-Daw8xyJf.js +1 -0
- langflow/frontend/assets/index-Dc0nF4D_.js +1 -0
- langflow/frontend/assets/index-DctkFwnK.js +108 -0
- langflow/frontend/assets/index-DjCcbnqJ.js +127 -0
- langflow/frontend/assets/index-DjG319lz.js +1 -0
- langflow/frontend/assets/index-DkxwwfUL.js +1 -0
- langflow/frontend/assets/index-DlNYEnyO.js +1 -0
- langflow/frontend/assets/index-DpNGpygE.js +14 -0
- langflow/frontend/assets/index-DwGroZ5i.js +1 -0
- langflow/frontend/assets/index-DwdF4A_k.js +1 -0
- langflow/frontend/assets/index-DwupFUE1.js +1 -0
- langflow/frontend/assets/index-DyFJaxvz.js +1 -0
- langflow/frontend/assets/index-DylRhyva.js +1 -0
- langflow/frontend/assets/index-Dz6LtjFc.js +1 -0
- langflow/frontend/assets/index-E_woFm9H.js +1 -0
- langflow/frontend/assets/index-IYvFl1oN.js +1 -0
- langflow/frontend/assets/index-KWmSW1LE.js +1 -0
- langflow/frontend/assets/index-KyJaEIZu.js +495 -0
- langflow/frontend/assets/index-L2r_nVW-.js +1 -0
- langflow/frontend/assets/index-LKY1_Kuv.js +1 -0
- langflow/frontend/assets/index-LykvuH3z.js +1 -0
- langflow/frontend/assets/index-PgeGlQPr.js +1 -0
- langflow/frontend/assets/index-Pj0GaUuE.js +1 -0
- langflow/frontend/assets/index-RHN6mdhz.js +1 -0
- langflow/frontend/assets/index-T-7O_UCg.js +1 -0
- langflow/frontend/assets/index-TaFYKyCQ.js +1 -0
- langflow/frontend/assets/index-V652fUKL.js +1 -0
- langflow/frontend/assets/index-WVOTQJ09.js +1 -0
- langflow/frontend/assets/index-WuyU7hfS.js +1 -0
- langflow/frontend/assets/index-XdlnxfM1.js +1 -0
- langflow/frontend/assets/index-Zb3do5-I.js +1 -0
- langflow/frontend/assets/index-_msEUPyj.js +1 -0
- langflow/frontend/assets/index-cP7Rj7nE.js +1 -0
- langflow/frontend/assets/index-dHzQlvPn.js +1 -0
- langflow/frontend/assets/index-gItsUULG.js +1 -0
- langflow/frontend/assets/index-heRrRQYO.js +1 -0
- langflow/frontend/assets/index-iP58GKwK.js +1 -0
- langflow/frontend/assets/index-iwuC6nMx.js +1 -0
- langflow/frontend/assets/index-jONH7mX0.js +1 -0
- langflow/frontend/assets/index-mj8XK9Tl.js +1 -0
- langflow/frontend/assets/index-oiBWx4w9.js +1 -0
- langflow/frontend/assets/index-pKCSZFwa.js +1 -0
- langflow/frontend/assets/index-qF5m8J6W.js +1 -0
- langflow/frontend/assets/index-s2HlLerd.js +1 -0
- langflow/frontend/assets/index-sDM3dLyW.js +1 -0
- langflow/frontend/assets/index-twqYNsoX.js +1 -0
- langflow/frontend/assets/index-ukjxiqG1.js +1 -0
- langflow/frontend/assets/indian-rupee-DDsHHnpw.js +6 -0
- langflow/frontend/assets/infinity-BBPXbhl6.js +6 -0
- langflow/frontend/assets/info-pijX_lAI.js +6 -0
- langflow/frontend/assets/inspection-panel-B3s01EPS.js +6 -0
- langflow/frontend/assets/instagram-DQjEVc1a.js +6 -0
- langflow/frontend/assets/italic-DmZqJc3s.js +6 -0
- langflow/frontend/assets/iteration-ccw-Btg_E23q.js +6 -0
- langflow/frontend/assets/iteration-cw-Db00y5_M.js +6 -0
- langflow/frontend/assets/japanese-yen-GDtYmkLT.js +6 -0
- langflow/frontend/assets/joystick-oCzqrBnq.js +6 -0
- langflow/frontend/assets/kanban-we0yz9mS.js +6 -0
- langflow/frontend/assets/key-DAr2T7wP.js +6 -0
- langflow/frontend/assets/key-round-BlVlTn-g.js +6 -0
- langflow/frontend/assets/key-square-QfUsUzpk.js +6 -0
- langflow/frontend/assets/keyboard-BU9Zjv_Y.js +6 -0
- langflow/frontend/assets/keyboard-music-Gpxy8HJ1.js +6 -0
- langflow/frontend/assets/keyboard-off-DyG_chgi.js +6 -0
- langflow/frontend/assets/lamp-CHwGph0N.js +6 -0
- langflow/frontend/assets/lamp-ceiling-BvzzpZjI.js +6 -0
- langflow/frontend/assets/lamp-desk-wFruCDAT.js +6 -0
- langflow/frontend/assets/lamp-floor-BmL4iQON.js +6 -0
- langflow/frontend/assets/lamp-wall-down-CqQUSQrD.js +6 -0
- langflow/frontend/assets/lamp-wall-up-DaIm2ZHs.js +6 -0
- langflow/frontend/assets/land-plot-BOPhLWQf.js +6 -0
- langflow/frontend/assets/landmark-CDhFL2--.js +6 -0
- langflow/frontend/assets/languages-DeYdLiLU.js +6 -0
- langflow/frontend/assets/laptop-bZpl3U9i.js +6 -0
- langflow/frontend/assets/laptop-minimal-D3HG41A6.js +6 -0
- langflow/frontend/assets/laptop-minimal-check-BCTwuOkq.js +6 -0
- langflow/frontend/assets/lasso-8Rzjwdvb.js +6 -0
- langflow/frontend/assets/lasso-select-KR_FJ8Sz.js +6 -0
- langflow/frontend/assets/laugh-DPLw2kQc.js +6 -0
- langflow/frontend/assets/layers-2-ccTMvAQJ.js +6 -0
- langflow/frontend/assets/layers-C9PBhMbR.js +6 -0
- langflow/frontend/assets/layout-dashboard-DWhDHJLb.js +6 -0
- langflow/frontend/assets/layout-grid-j545VrOo.js +6 -0
- langflow/frontend/assets/layout-list-B6mdFVQM.js +6 -0
- langflow/frontend/assets/layout-panel-left-DNm1Lb-C.js +6 -0
- langflow/frontend/assets/layout-panel-top--RhZXVol.js +6 -0
- langflow/frontend/assets/layout-template-Bqrsfj6g.js +6 -0
- langflow/frontend/assets/lazyIconImports-DRfFaNPB.js +2 -0
- langflow/frontend/assets/leaf-C4sMkYhR.js +6 -0
- langflow/frontend/assets/leafy-green-C6iBk6n7.js +6 -0
- langflow/frontend/assets/lectern-D_jCIZYa.js +6 -0
- langflow/frontend/assets/letter-text-C20LU8vc.js +6 -0
- langflow/frontend/assets/library-C6q6nxw1.js +6 -0
- langflow/frontend/assets/library-big-BMOPwYLP.js +6 -0
- langflow/frontend/assets/life-buoy-BdTs-3qm.js +6 -0
- langflow/frontend/assets/ligature-59BNBdFO.js +6 -0
- langflow/frontend/assets/lightbulb-B6rFe3OL.js +6 -0
- langflow/frontend/assets/lightbulb-off-B21C0ap6.js +6 -0
- langflow/frontend/assets/link-2-DFDRgD6E.js +6 -0
- langflow/frontend/assets/link-2-off-DuyJz9Te.js +6 -0
- langflow/frontend/assets/link-BW7ikAR2.js +6 -0
- langflow/frontend/assets/linkedin-BC54gln0.js +6 -0
- langflow/frontend/assets/list-D9uknRtj.js +6 -0
- langflow/frontend/assets/list-check-CZp0P9j8.js +6 -0
- langflow/frontend/assets/list-checks-DtbWypeT.js +6 -0
- langflow/frontend/assets/list-collapse-BYTfMbYt.js +6 -0
- langflow/frontend/assets/list-end-CNOAFpq7.js +6 -0
- langflow/frontend/assets/list-filter-B0frV5dv.js +6 -0
- langflow/frontend/assets/list-filter-plus-CK5Lcsa4.js +6 -0
- langflow/frontend/assets/list-minus-C6ulm7vt.js +6 -0
- langflow/frontend/assets/list-music-B4L-9duN.js +6 -0
- langflow/frontend/assets/list-ordered-C86H0C6g.js +6 -0
- langflow/frontend/assets/list-plus-D78K3DjW.js +6 -0
- langflow/frontend/assets/list-restart-CVZZyeJ2.js +6 -0
- langflow/frontend/assets/list-start-gDuX8tMg.js +6 -0
- langflow/frontend/assets/list-todo-DtkFXzaW.js +6 -0
- langflow/frontend/assets/list-tree-Oi6vkVwR.js +6 -0
- langflow/frontend/assets/list-video-DE73_LYJ.js +6 -0
- langflow/frontend/assets/list-x-CgQzsjRB.js +6 -0
- langflow/frontend/assets/loader-RDvq_gck.js +6 -0
- langflow/frontend/assets/loader-circle-DkJY-7be.js +6 -0
- langflow/frontend/assets/loader-pinwheel-DqLtT1OW.js +6 -0
- langflow/frontend/assets/locate-27R1wayC.js +6 -0
- langflow/frontend/assets/locate-fixed-B25GqMPm.js +6 -0
- langflow/frontend/assets/locate-off-DxcIo3ue.js +6 -0
- langflow/frontend/assets/location-edit-C8GKuWlO.js +6 -0
- langflow/frontend/assets/lock-DbdTPRie.js +6 -0
- langflow/frontend/assets/lock-keyhole-Cx4a6BYs.js +6 -0
- langflow/frontend/assets/lock-keyhole-open-DTLQHZiP.js +6 -0
- langflow/frontend/assets/lock-open-CnTQhpTU.js +6 -0
- langflow/frontend/assets/log-in-DEu4f9CT.js +6 -0
- langflow/frontend/assets/log-out-Rw31_grB.js +6 -0
- langflow/frontend/assets/logs-C_xcALe5.js +6 -0
- langflow/frontend/assets/lollipop-B6UBSkOr.js +6 -0
- langflow/frontend/assets/luggage-B759at-b.js +6 -0
- langflow/frontend/assets/magnet-CeNQFjoD.js +6 -0
- langflow/frontend/assets/mail-De4rBGVq.js +6 -0
- langflow/frontend/assets/mail-check-CbJ1IOaN.js +6 -0
- langflow/frontend/assets/mail-minus-RnPcqZ0v.js +6 -0
- langflow/frontend/assets/mail-open-D9M_LY0y.js +6 -0
- langflow/frontend/assets/mail-plus-BT5pdOrC.js +6 -0
- langflow/frontend/assets/mail-question-C2SIW5_-.js +6 -0
- langflow/frontend/assets/mail-search-Cyt39aW3.js +6 -0
- langflow/frontend/assets/mail-warning-DeMRXgCc.js +6 -0
- langflow/frontend/assets/mail-x-B8pe3ypI.js +6 -0
- langflow/frontend/assets/mailbox-DOr4Jgda.js +6 -0
- langflow/frontend/assets/mails-Ce7xii1i.js +6 -0
- langflow/frontend/assets/map-DpiPYH-Q.js +6 -0
- langflow/frontend/assets/map-pin-Cc26OxY-.js +6 -0
- langflow/frontend/assets/map-pin-check-CByGWxEF.js +6 -0
- langflow/frontend/assets/map-pin-check-inside-DiG2kXfQ.js +6 -0
- langflow/frontend/assets/map-pin-house-23Gzpmu2.js +6 -0
- langflow/frontend/assets/map-pin-minus-ITQdHJk5.js +6 -0
- langflow/frontend/assets/map-pin-minus-inside-B679vGwS.js +6 -0
- langflow/frontend/assets/map-pin-off-CWKH97P5.js +6 -0
- langflow/frontend/assets/map-pin-plus-DfAOd7pB.js +6 -0
- langflow/frontend/assets/map-pin-plus-inside-JzHwlP76.js +6 -0
- langflow/frontend/assets/map-pin-x-DUyBhfDm.js +6 -0
- langflow/frontend/assets/map-pin-x-inside-C6k1KmNh.js +6 -0
- langflow/frontend/assets/map-pinned-BpuyCi6Y.js +6 -0
- langflow/frontend/assets/map-plus-DO7OUsBp.js +6 -0
- langflow/frontend/assets/mars-09Pgjyim.js +6 -0
- langflow/frontend/assets/mars-stroke-DoS_IHT5.js +6 -0
- langflow/frontend/assets/martini-C4dLdwZz.js +6 -0
- langflow/frontend/assets/maximize-2-BgGWLpMa.js +6 -0
- langflow/frontend/assets/maximize-BnmFD7Ea.js +6 -0
- langflow/frontend/assets/medal-CVtEX92m.js +6 -0
- langflow/frontend/assets/megaphone-B_S1jdP6.js +6 -0
- langflow/frontend/assets/megaphone-off-CRjvXD1m.js +6 -0
- langflow/frontend/assets/meh-C8uPKyUp.js +6 -0
- langflow/frontend/assets/memory-stick-Bj3nN5dk.js +6 -0
- langflow/frontend/assets/menu-B9s_-3BK.js +6 -0
- langflow/frontend/assets/merge-J8TxoB_I.js +6 -0
- langflow/frontend/assets/message-circle-code-f4mtGDDw.js +6 -0
- langflow/frontend/assets/message-circle-dashed-r3VtirOd.js +6 -0
- langflow/frontend/assets/message-circle-heart-Bgz1ew21.js +6 -0
- langflow/frontend/assets/message-circle-jUyFs-es.js +6 -0
- langflow/frontend/assets/message-circle-more-Bla7Vdfj.js +6 -0
- langflow/frontend/assets/message-circle-off-CLEvmyW9.js +6 -0
- langflow/frontend/assets/message-circle-plus-a11z-ovw.js +6 -0
- langflow/frontend/assets/message-circle-question-B5_XYWTb.js +6 -0
- langflow/frontend/assets/message-circle-reply-CPOzJ66g.js +6 -0
- langflow/frontend/assets/message-circle-warning-DRIi-daa.js +6 -0
- langflow/frontend/assets/message-circle-x-CIBETEKZ.js +6 -0
- langflow/frontend/assets/message-square-code-B2wt6I5-.js +6 -0
- langflow/frontend/assets/message-square-dashed-4X0h0pQb.js +6 -0
- langflow/frontend/assets/message-square-diff-xWeaewsx.js +6 -0
- langflow/frontend/assets/message-square-dot--0-tnQXG.js +6 -0
- langflow/frontend/assets/message-square-heart-5g8BhHmh.js +6 -0
- langflow/frontend/assets/message-square-k6VTaNBS.js +6 -0
- langflow/frontend/assets/message-square-lock-RQv6B-95.js +6 -0
- langflow/frontend/assets/message-square-more-CG788VX0.js +6 -0
- langflow/frontend/assets/message-square-off-BhjWfl1b.js +6 -0
- langflow/frontend/assets/message-square-plus-BI-H6jxM.js +6 -0
- langflow/frontend/assets/message-square-quote-Cp8iAUVq.js +6 -0
- langflow/frontend/assets/message-square-reply-ciwL0PNR.js +6 -0
- langflow/frontend/assets/message-square-share-BtRNOwXY.js +6 -0
- langflow/frontend/assets/message-square-text-CQcrmsOB.js +6 -0
- langflow/frontend/assets/message-square-warning-BW_paLfj.js +6 -0
- langflow/frontend/assets/message-square-x-CzT3l51X.js +6 -0
- langflow/frontend/assets/messages-square-Bk4KnQ8F.js +6 -0
- langflow/frontend/assets/mic-CVjPC0nA.js +6 -0
- langflow/frontend/assets/mic-off-cvNpAnCO.js +6 -0
- langflow/frontend/assets/mic-vocal-Bvu_7-1P.js +6 -0
- langflow/frontend/assets/microchip-CL7Q_1xX.js +6 -0
- langflow/frontend/assets/microscope-DRVScFmr.js +6 -0
- langflow/frontend/assets/microwave--4oIy06y.js +6 -0
- langflow/frontend/assets/milestone-KpASYh3p.js +6 -0
- langflow/frontend/assets/milk-ZOs_y1PL.js +6 -0
- langflow/frontend/assets/milk-off-CvETS96K.js +6 -0
- langflow/frontend/assets/minimize-2-ZcENftRc.js +6 -0
- langflow/frontend/assets/minimize-D7d37njo.js +6 -0
- langflow/frontend/assets/monitor-DOlbFky5.js +6 -0
- langflow/frontend/assets/monitor-check-DmUCeR9A.js +6 -0
- langflow/frontend/assets/monitor-cog-m74VAarh.js +6 -0
- langflow/frontend/assets/monitor-dot-CaDHU0F7.js +6 -0
- langflow/frontend/assets/monitor-down-5IIJ7Hp3.js +6 -0
- langflow/frontend/assets/monitor-off-BF07OCtl.js +6 -0
- langflow/frontend/assets/monitor-pause-BWHoCkC-.js +6 -0
- langflow/frontend/assets/monitor-play-xck1Q3K3.js +6 -0
- langflow/frontend/assets/monitor-smartphone-BAz_rtXC.js +6 -0
- langflow/frontend/assets/monitor-speaker-CSzIdDUR.js +6 -0
- langflow/frontend/assets/monitor-stop-Cg4Yysvq.js +6 -0
- langflow/frontend/assets/monitor-up-BibsRz8A.js +6 -0
- langflow/frontend/assets/monitor-x-CnIc-XPo.js +6 -0
- langflow/frontend/assets/moon-CwBh9jCb.js +6 -0
- langflow/frontend/assets/moon-star-Cqz6Au_k.js +6 -0
- langflow/frontend/assets/mountain-DBNjOkPk.js +6 -0
- langflow/frontend/assets/mountain-snow-o4r6usrx.js +6 -0
- langflow/frontend/assets/mouse-C1nhRUcr.js +6 -0
- langflow/frontend/assets/mouse-off-CASRo_QW.js +6 -0
- langflow/frontend/assets/mouse-pointer-2-Mb8VGr0o.js +6 -0
- langflow/frontend/assets/mouse-pointer-D94fPNG2.js +6 -0
- langflow/frontend/assets/mouse-pointer-ban-KUQlGU-A.js +6 -0
- langflow/frontend/assets/mouse-pointer-click-CaZdrkEQ.js +6 -0
- langflow/frontend/assets/move-3d-C0T67La1.js +6 -0
- langflow/frontend/assets/move-Bpi1PuOT.js +6 -0
- langflow/frontend/assets/move-diagonal-2-uxLMwSLU.js +6 -0
- langflow/frontend/assets/move-diagonal-BI_kq6Ri.js +6 -0
- langflow/frontend/assets/move-down-BaiJALD6.js +6 -0
- langflow/frontend/assets/move-down-left-DvHTc324.js +6 -0
- langflow/frontend/assets/move-down-right-bDhB8pmN.js +6 -0
- langflow/frontend/assets/move-horizontal-Gg4hQwWM.js +6 -0
- langflow/frontend/assets/move-left-DyKB1bwc.js +6 -0
- langflow/frontend/assets/move-right-BA7N--Qc.js +6 -0
- langflow/frontend/assets/move-up-DFrSH8tg.js +6 -0
- langflow/frontend/assets/move-up-left-BTjfll8R.js +6 -0
- langflow/frontend/assets/move-up-right-CtNx6SNy.js +6 -0
- langflow/frontend/assets/move-vertical-DL7X4ZR7.js +6 -0
- langflow/frontend/assets/music-2-mR0Ncuz9.js +6 -0
- langflow/frontend/assets/music-3-D5hWNdP9.js +6 -0
- langflow/frontend/assets/music-4-C02EtyPP.js +6 -0
- langflow/frontend/assets/music-JFE7Sjcf.js +6 -0
- langflow/frontend/assets/navigation-2-BdKxOaeL.js +6 -0
- langflow/frontend/assets/navigation-2-off-DRqqqtsH.js +6 -0
- langflow/frontend/assets/navigation-BXXLD9fO.js +6 -0
- langflow/frontend/assets/navigation-off-BXq2L8Di.js +6 -0
- langflow/frontend/assets/network-B0vJejCu.js +6 -0
- langflow/frontend/assets/newspaper-DOjvrahU.js +6 -0
- langflow/frontend/assets/nfc-DjQCvvsE.js +6 -0
- langflow/frontend/assets/non-binary-D9LpkBPk.js +6 -0
- langflow/frontend/assets/notebook-DndOO5LI.js +6 -0
- langflow/frontend/assets/notebook-pen-BUm3h1SI.js +6 -0
- langflow/frontend/assets/notebook-tabs-K5Tr_Osa.js +6 -0
- langflow/frontend/assets/notebook-text-eJKgVHF9.js +6 -0
- langflow/frontend/assets/notepad-text-DdGjs0YI.js +6 -0
- langflow/frontend/assets/notepad-text-dashed-CAnbEisZ.js +6 -0
- langflow/frontend/assets/nut-B_EAyVRW.js +6 -0
- langflow/frontend/assets/nut-off-Dj7aFgNZ.js +6 -0
- langflow/frontend/assets/octagon-BkhRt-4I.js +6 -0
- langflow/frontend/assets/octagon-alert-CqRFnA7H.js +6 -0
- langflow/frontend/assets/octagon-minus-DLVOuzms.js +6 -0
- langflow/frontend/assets/octagon-pause-js4QzBZA.js +6 -0
- langflow/frontend/assets/octagon-x-Dk9a4j2g.js +6 -0
- langflow/frontend/assets/omega-mYamy5wP.js +6 -0
- langflow/frontend/assets/option-CUYRIOMu.js +6 -0
- langflow/frontend/assets/orbit-CKv-3NP9.js +6 -0
- langflow/frontend/assets/origami-Db03P-HH.js +6 -0
- langflow/frontend/assets/package-2-2Juwg_5K.js +6 -0
- langflow/frontend/assets/package-BRGSHC5m.js +6 -0
- langflow/frontend/assets/package-check-B2UvoBTd.js +6 -0
- langflow/frontend/assets/package-minus-eCu1HcH4.js +6 -0
- langflow/frontend/assets/package-open-D5apDq0b.js +6 -0
- langflow/frontend/assets/package-plus-DcmauE5Y.js +6 -0
- langflow/frontend/assets/package-search-DPrIAldx.js +6 -0
- langflow/frontend/assets/package-x-XPlCRqVg.js +6 -0
- langflow/frontend/assets/paint-bucket-Dtt7DipG.js +6 -0
- langflow/frontend/assets/paint-roller-D54hQ9EL.js +6 -0
- langflow/frontend/assets/paintbrush-D6DVlQY-.js +6 -0
- langflow/frontend/assets/paintbrush-vertical-Cvrh0dv8.js +6 -0
- langflow/frontend/assets/palette-DZjLqWEE.js +6 -0
- langflow/frontend/assets/panel-bottom-DKkfhNbE.js +6 -0
- langflow/frontend/assets/panel-bottom-close-Y9inZ-Lg.js +6 -0
- langflow/frontend/assets/panel-bottom-dashed-BkJIn8pA.js +6 -0
- langflow/frontend/assets/panel-bottom-open-q4f0GVbZ.js +6 -0
- langflow/frontend/assets/panel-left-close-BmtAQrKJ.js +6 -0
- langflow/frontend/assets/panel-left-dashed-ChlwFy74.js +6 -0
- langflow/frontend/assets/panel-left-open-XHXZVNWv.js +6 -0
- langflow/frontend/assets/panel-right-B_GO73R6.js +6 -0
- langflow/frontend/assets/panel-right-close-CjTH2SAn.js +6 -0
- langflow/frontend/assets/panel-right-dashed-L5Yp190t.js +6 -0
- langflow/frontend/assets/panel-right-open--iHtcOYZ.js +6 -0
- langflow/frontend/assets/panel-top-DOXfrMML.js +6 -0
- langflow/frontend/assets/panel-top-close-CfDHwCd3.js +6 -0
- langflow/frontend/assets/panel-top-dashed-CLOfFL5Y.js +6 -0
- langflow/frontend/assets/panel-top-open-C6x3bGks.js +6 -0
- langflow/frontend/assets/panels-left-bottom-DErJphT8.js +6 -0
- langflow/frontend/assets/panels-right-bottom-D81AMxRS.js +6 -0
- langflow/frontend/assets/panels-top-left-C2K8WXtA.js +6 -0
- langflow/frontend/assets/paperclip-DoulwVXo.js +6 -0
- langflow/frontend/assets/parentheses-D1sMSJok.js +6 -0
- langflow/frontend/assets/parking-meter-kicxVB57.js +6 -0
- langflow/frontend/assets/party-popper-DOehfOsh.js +6 -0
- langflow/frontend/assets/pause-DC3AS1_H.js +6 -0
- langflow/frontend/assets/paw-print-DjOLImjW.js +6 -0
- langflow/frontend/assets/pc-case-DQC3GYeR.js +6 -0
- langflow/frontend/assets/pen-DM7kR0Jw.js +6 -0
- langflow/frontend/assets/pen-line-Bsvdd4jV.js +6 -0
- langflow/frontend/assets/pen-off-CAEWPqXv.js +6 -0
- langflow/frontend/assets/pen-tool-BcVfRopU.js +6 -0
- langflow/frontend/assets/pencil-BlUEec4X.js +6 -0
- langflow/frontend/assets/pencil-line-L2QYrPj8.js +6 -0
- langflow/frontend/assets/pencil-off-CGzZM-T2.js +6 -0
- langflow/frontend/assets/pencil-ruler-B3oatjJU.js +6 -0
- langflow/frontend/assets/pentagon-BLB278_6.js +6 -0
- langflow/frontend/assets/percent-BDXmF2EC.js +6 -0
- langflow/frontend/assets/person-standing-Dzk1Z3_N.js +6 -0
- langflow/frontend/assets/philippine-peso-8pW6097O.js +6 -0
- langflow/frontend/assets/phone-BSB5gkXg.js +6 -0
- langflow/frontend/assets/phone-call-DaUk93Y4.js +6 -0
- langflow/frontend/assets/phone-forwarded-Dc7TrVMY.js +6 -0
- langflow/frontend/assets/phone-incoming-BDqjCVEn.js +6 -0
- langflow/frontend/assets/phone-missed-C6jXid_r.js +6 -0
- langflow/frontend/assets/phone-off-DX2bd0Rz.js +6 -0
- langflow/frontend/assets/phone-outgoing-CIBRSzlg.js +6 -0
- langflow/frontend/assets/pi-DFvu6Rvd.js +6 -0
- langflow/frontend/assets/piano-BrBrplYm.js +6 -0
- langflow/frontend/assets/pickaxe-C-_uD3S4.js +6 -0
- langflow/frontend/assets/picture-in-picture-2-CYPLZgIz.js +6 -0
- langflow/frontend/assets/picture-in-picture-CzJMCFL0.js +6 -0
- langflow/frontend/assets/piggy-bank-VrsksHBR.js +6 -0
- langflow/frontend/assets/pilcrow-CRVQVjXq.js +6 -0
- langflow/frontend/assets/pilcrow-left-Bw5MDtcD.js +6 -0
- langflow/frontend/assets/pilcrow-right-BSvYW3Bs.js +6 -0
- langflow/frontend/assets/pill-CCgZIZaU.js +6 -0
- langflow/frontend/assets/pill-bottle-Bz8L-myc.js +6 -0
- langflow/frontend/assets/pin-CpcZfyaQ.js +6 -0
- langflow/frontend/assets/pin-off-BWxMlSF9.js +6 -0
- langflow/frontend/assets/pipette-DIOU6U4M.js +6 -0
- langflow/frontend/assets/pizza-DPndoBkE.js +6 -0
- langflow/frontend/assets/plane-BjKU1SMi.js +6 -0
- langflow/frontend/assets/plane-landing-BwaoIaxM.js +6 -0
- langflow/frontend/assets/plane-takeoff-cJrbN5JR.js +6 -0
- langflow/frontend/assets/play-JWwcgO_a.js +6 -0
- langflow/frontend/assets/plug-2-BkULzhLG.js +6 -0
- langflow/frontend/assets/plug-EGvNpePB.js +6 -0
- langflow/frontend/assets/plug-zap-PocgL_HA.js +6 -0
- langflow/frontend/assets/pocket-B1PYQMj8.js +6 -0
- langflow/frontend/assets/pocket-knife-W8PnIhO8.js +6 -0
- langflow/frontend/assets/podcast-Bn9vBhTr.js +6 -0
- langflow/frontend/assets/pointer-ZXX5ydr8.js +6 -0
- langflow/frontend/assets/pointer-off-DGMoG6N9.js +6 -0
- langflow/frontend/assets/popcorn-CjKmsViy.js +6 -0
- langflow/frontend/assets/popsicle-CEJfaRsa.js +6 -0
- langflow/frontend/assets/pound-sterling-4pIuM8qN.js +6 -0
- langflow/frontend/assets/power-Ce_RpKLS.js +6 -0
- langflow/frontend/assets/power-off-BTk6a4jN.js +6 -0
- langflow/frontend/assets/presentation-zDaQAcCi.js +6 -0
- langflow/frontend/assets/printer-DiHhWOSl.js +6 -0
- langflow/frontend/assets/printer-check-DD2-75np.js +6 -0
- langflow/frontend/assets/projector-BPXyhKc4.js +6 -0
- langflow/frontend/assets/proportions-CMaVT9lx.js +6 -0
- langflow/frontend/assets/puzzle-Dt6QmOyl.js +6 -0
- langflow/frontend/assets/pyramid-Bv9KPys4.js +6 -0
- langflow/frontend/assets/qr-code-BQh4vsHb.js +6 -0
- langflow/frontend/assets/quote-BIyJsKFu.js +6 -0
- langflow/frontend/assets/rabbit-CwpQ58xh.js +6 -0
- langflow/frontend/assets/radar-BPXLopgw.js +6 -0
- langflow/frontend/assets/radiation-XiU5J_0y.js +6 -0
- langflow/frontend/assets/radical-DBsO9JOZ.js +6 -0
- langflow/frontend/assets/radio-8plMkBKD.js +6 -0
- langflow/frontend/assets/radio-receiver-DGCIRtlV.js +6 -0
- langflow/frontend/assets/radio-tower-D-K-Dq1j.js +6 -0
- langflow/frontend/assets/radius-BtxdGraC.js +6 -0
- langflow/frontend/assets/rail-symbol-2saYAXmw.js +6 -0
- langflow/frontend/assets/rainbow-D-vQhn_P.js +6 -0
- langflow/frontend/assets/rat-ksp-2Opn.js +6 -0
- langflow/frontend/assets/ratio-b2pIUzfC.js +6 -0
- langflow/frontend/assets/receipt-DnxW2sTC.js +6 -0
- langflow/frontend/assets/receipt-cent-DgTFiFsN.js +6 -0
- langflow/frontend/assets/receipt-euro-CroU75OQ.js +6 -0
- langflow/frontend/assets/receipt-indian-rupee-BelGNdhL.js +6 -0
- langflow/frontend/assets/receipt-japanese-yen-Dneos7wW.js +6 -0
- langflow/frontend/assets/receipt-pound-sterling-D9oMyPW3.js +6 -0
- langflow/frontend/assets/receipt-russian-ruble-BaAMI2z5.js +6 -0
- langflow/frontend/assets/receipt-swiss-franc-CApWMWoy.js +6 -0
- langflow/frontend/assets/receipt-text-DWaWoT63.js +6 -0
- langflow/frontend/assets/rectangle-ellipsis-Dy7FN8ah.js +6 -0
- langflow/frontend/assets/rectangle-goggles-BZVdtly_.js +6 -0
- langflow/frontend/assets/rectangle-horizontal-DhnV4Cu8.js +6 -0
- langflow/frontend/assets/rectangle-vertical-SWDCzzA3.js +6 -0
- langflow/frontend/assets/recycle-BXD3AUyp.js +6 -0
- langflow/frontend/assets/redo-2-W_Any8U_.js +6 -0
- langflow/frontend/assets/redo-BxyriiyO.js +6 -0
- langflow/frontend/assets/redo-dot-DXqHkWDY.js +6 -0
- langflow/frontend/assets/refresh-ccw-DDJPywZK.js +6 -0
- langflow/frontend/assets/refresh-ccw-dot-CaQZuaz7.js +6 -0
- langflow/frontend/assets/refresh-cw-off-BAgYS8rV.js +6 -0
- langflow/frontend/assets/refresh-cw-qPmtnxQM.js +6 -0
- langflow/frontend/assets/refrigerator-79QxWziD.js +6 -0
- langflow/frontend/assets/regex-DAMPVDJy.js +6 -0
- langflow/frontend/assets/remove-formatting-Bzr7ewLV.js +6 -0
- langflow/frontend/assets/repeat-1-CoOD4iUH.js +6 -0
- langflow/frontend/assets/repeat-2-go-DpP_V.js +6 -0
- langflow/frontend/assets/repeat-Cb229YM9.js +6 -0
- langflow/frontend/assets/replace-CEVfl2u6.js +6 -0
- langflow/frontend/assets/replace-all-DWkdmDKo.js +6 -0
- langflow/frontend/assets/reply-7f-PQSmd.js +6 -0
- langflow/frontend/assets/reply-all-REIVdVRK.js +6 -0
- langflow/frontend/assets/rewind-jMTQjdh4.js +6 -0
- langflow/frontend/assets/ribbon-DwOcydsj.js +6 -0
- langflow/frontend/assets/rocket-B3qiDK0E.js +6 -0
- langflow/frontend/assets/rocking-chair-DVFxjG7x.js +6 -0
- langflow/frontend/assets/roller-coaster-B_hAk2yh.js +6 -0
- langflow/frontend/assets/rotate-3d-CJDyYXfO.js +6 -0
- langflow/frontend/assets/rotate-ccw-DTYUML5q.js +6 -0
- langflow/frontend/assets/rotate-ccw-key-B6lAxVk3.js +6 -0
- langflow/frontend/assets/rotate-ccw-square-ZpzHg3BG.js +6 -0
- langflow/frontend/assets/rotate-cw--goANcZb.js +6 -0
- langflow/frontend/assets/rotate-cw-square-CQme4RDc.js +6 -0
- langflow/frontend/assets/route-U0PdlpK1.js +6 -0
- langflow/frontend/assets/route-off-Dmd6qmJr.js +6 -0
- langflow/frontend/assets/router-CqVHwsp4.js +6 -0
- langflow/frontend/assets/rows-2-DZd3r_d1.js +6 -0
- langflow/frontend/assets/rows-3-DlRhRNBS.js +6 -0
- langflow/frontend/assets/rows-4-Bnr3F5Ig.js +6 -0
- langflow/frontend/assets/rss-hfQ63sRl.js +6 -0
- langflow/frontend/assets/ruler-CNOWvm8e.js +6 -0
- langflow/frontend/assets/ruler-dimension-line-B-_7fa-e.js +6 -0
- langflow/frontend/assets/russian-ruble-CWj2DXGa.js +6 -0
- langflow/frontend/assets/sailboat-BN755CkX.js +6 -0
- langflow/frontend/assets/salad-B1FASsWL.js +6 -0
- langflow/frontend/assets/sandwich-B8Gbp6Uu.js +6 -0
- langflow/frontend/assets/satellite-DJ_-Qrkd.js +6 -0
- langflow/frontend/assets/satellite-dish-C5W00Cw4.js +6 -0
- langflow/frontend/assets/saudi-riyal-BaHsEeX2.js +6 -0
- langflow/frontend/assets/save-all-Cq-IUzX0.js +6 -0
- langflow/frontend/assets/save-off-BFUHSfZB.js +6 -0
- langflow/frontend/assets/save-rUXWuhsE.js +6 -0
- langflow/frontend/assets/scale-3d-DRHbTf94.js +6 -0
- langflow/frontend/assets/scale-Bwvd5eQq.js +6 -0
- langflow/frontend/assets/scaling-T7W3r6OS.js +6 -0
- langflow/frontend/assets/scan-BYcsyfUO.js +6 -0
- langflow/frontend/assets/scan-barcode-WDmK-SAE.js +6 -0
- langflow/frontend/assets/scan-eye-DvLqoQk9.js +6 -0
- langflow/frontend/assets/scan-face-ErJORfeD.js +6 -0
- langflow/frontend/assets/scan-heart-B17SEF1b.js +6 -0
- langflow/frontend/assets/scan-line-DJVPfHlj.js +6 -0
- langflow/frontend/assets/scan-qr-code-Dp5pDTe9.js +6 -0
- langflow/frontend/assets/scan-search-CyMMc6uG.js +6 -0
- langflow/frontend/assets/scan-text-BvfPVvZd.js +6 -0
- langflow/frontend/assets/school-6RZvHm3Y.js +6 -0
- langflow/frontend/assets/scissors-BnZH5FLV.js +6 -0
- langflow/frontend/assets/scissors-line-dashed-B8CnhLpp.js +6 -0
- langflow/frontend/assets/screen-share-B-IdJsWf.js +6 -0
- langflow/frontend/assets/screen-share-off-BcLgB-QY.js +6 -0
- langflow/frontend/assets/scroll-BAbvzFhw.js +6 -0
- langflow/frontend/assets/scroll-text-CTyVAGzP.js +6 -0
- langflow/frontend/assets/search-check-ZLjbC5QE.js +6 -0
- langflow/frontend/assets/search-code-Dz2bEMJ1.js +6 -0
- langflow/frontend/assets/search-slash-C0GPHmeV.js +6 -0
- langflow/frontend/assets/search-x-DSRVo8Q0.js +6 -0
- langflow/frontend/assets/section-BXtLLfVB.js +6 -0
- langflow/frontend/assets/send-horizontal-Bk0C5xTn.js +6 -0
- langflow/frontend/assets/send-to-back-DVDTCTmY.js +6 -0
- langflow/frontend/assets/send-y3xac-Z8.js +6 -0
- langflow/frontend/assets/separator-horizontal-DjhyGqlL.js +6 -0
- langflow/frontend/assets/separator-vertical-C8yHKi3A.js +6 -0
- langflow/frontend/assets/server-DLMBtLRi.js +6 -0
- langflow/frontend/assets/server-cog-C_acTz3o.js +6 -0
- langflow/frontend/assets/server-crash-DiB_eAS0.js +6 -0
- langflow/frontend/assets/server-off-Ce2m2PO8.js +6 -0
- langflow/frontend/assets/settings-2-BXS8p9yd.js +6 -0
- langflow/frontend/assets/settings-CECtcUku.js +6 -0
- langflow/frontend/assets/shapes-CyAdB2p1.js +6 -0
- langflow/frontend/assets/share-2-CkR2XJ4w.js +6 -0
- langflow/frontend/assets/share-aU1oQycm.js +6 -0
- langflow/frontend/assets/sheet-wd6yVF1G.js +6 -0
- langflow/frontend/assets/shell-BsVxCNun.js +6 -0
- langflow/frontend/assets/shield-BYup7Kta.js +6 -0
- langflow/frontend/assets/shield-alert-jWbvzd7t.js +6 -0
- langflow/frontend/assets/shield-ban-CMOWtw6F.js +6 -0
- langflow/frontend/assets/shield-check-CGQOVQ5t.js +6 -0
- langflow/frontend/assets/shield-ellipsis-BjZtu1ZK.js +6 -0
- langflow/frontend/assets/shield-half-hSgNZ-Dk.js +6 -0
- langflow/frontend/assets/shield-minus-vA1GzWXQ.js +6 -0
- langflow/frontend/assets/shield-off-BI1Unp0c.js +6 -0
- langflow/frontend/assets/shield-plus-jS3THPuG.js +6 -0
- langflow/frontend/assets/shield-question-CvfF4Pzd.js +6 -0
- langflow/frontend/assets/shield-user-BET3N5mT.js +6 -0
- langflow/frontend/assets/shield-x-COkQc8o5.js +6 -0
- langflow/frontend/assets/ship-CcNhSIdY.js +6 -0
- langflow/frontend/assets/ship-wheel-Bw6rSHjc.js +6 -0
- langflow/frontend/assets/shirt-C5JGmzKr.js +6 -0
- langflow/frontend/assets/shopping-bag-BQ76dBeS.js +6 -0
- langflow/frontend/assets/shopping-basket-Dblk_9d-.js +6 -0
- langflow/frontend/assets/shopping-cart-CZAlfqop.js +6 -0
- langflow/frontend/assets/shovel-CDBUKSze.js +6 -0
- langflow/frontend/assets/shower-head-CpzqDVGY.js +6 -0
- langflow/frontend/assets/shredder-JSFjoB_H.js +6 -0
- langflow/frontend/assets/shrimp-CFl1_DR9.js +6 -0
- langflow/frontend/assets/shrink-hfrXOzVx.js +6 -0
- langflow/frontend/assets/shrub-qz_D8MIN.js +6 -0
- langflow/frontend/assets/shuffle-B0RZ6qeq.js +6 -0
- langflow/frontend/assets/sigma-DgOloNah.js +6 -0
- langflow/frontend/assets/signal-MDPVUvhX.js +6 -0
- langflow/frontend/assets/signal-high-D1zK4rF8.js +6 -0
- langflow/frontend/assets/signal-low-Dua5YeAL.js +6 -0
- langflow/frontend/assets/signal-medium-BmB_4ag4.js +6 -0
- langflow/frontend/assets/signal-zero-D3JYrbLc.js +6 -0
- langflow/frontend/assets/signature-BfLVCz_j.js +6 -0
- langflow/frontend/assets/signpost-C9alkE0N.js +6 -0
- langflow/frontend/assets/signpost-big-CZqm-mwM.js +6 -0
- langflow/frontend/assets/siren-C5_yv4zf.js +6 -0
- langflow/frontend/assets/skip-back-CoBWwFvy.js +6 -0
- langflow/frontend/assets/skip-forward-BvNbx8_A.js +6 -0
- langflow/frontend/assets/skull-CoN9k39Z.js +6 -0
- langflow/frontend/assets/slack-DR-xhp_D.js +6 -0
- langflow/frontend/assets/slash-YOt-xLyu.js +6 -0
- langflow/frontend/assets/slice-CTm9mXYF.js +6 -0
- langflow/frontend/assets/sliders-horizontal-Bbllrlfg.js +6 -0
- langflow/frontend/assets/sliders-vertical-BqJXkXug.js +6 -0
- langflow/frontend/assets/smartphone-charging-qqe-f_oj.js +6 -0
- langflow/frontend/assets/smartphone-nfc-gg3LXEcw.js +6 -0
- langflow/frontend/assets/smartphone-pTpD7ZG6.js +6 -0
- langflow/frontend/assets/smile-C9kL5Bua.js +6 -0
- langflow/frontend/assets/smile-plus-btM6Cy_d.js +6 -0
- langflow/frontend/assets/snail-CGrap-4v.js +6 -0
- langflow/frontend/assets/snowflake-CVgE3j4c.js +6 -0
- langflow/frontend/assets/sofa-B9ORaq0V.js +6 -0
- langflow/frontend/assets/soup-9KCvJm6J.js +6 -0
- langflow/frontend/assets/space-CawtjWB3.js +6 -0
- langflow/frontend/assets/spade-W3RW53k8.js +6 -0
- langflow/frontend/assets/sparkle-C0YNDR10.js +6 -0
- langflow/frontend/assets/sparkles-BAmY14PC.js +6 -0
- langflow/frontend/assets/speaker-CLczsiCK.js +6 -0
- langflow/frontend/assets/speech-LrPI1Bg8.js +6 -0
- langflow/frontend/assets/spell-check-2-vl6PmkgZ.js +6 -0
- langflow/frontend/assets/spell-check-B6_0sdGp.js +6 -0
- langflow/frontend/assets/spline-Cps3LTJ7.js +6 -0
- langflow/frontend/assets/spline-pointer-CgACMmpv.js +6 -0
- langflow/frontend/assets/split-Du8iRMG7.js +6 -0
- langflow/frontend/assets/spray-can-CRoAiiwu.js +6 -0
- langflow/frontend/assets/sprout-CMvJ56QM.js +6 -0
- langflow/frontend/assets/square-CkroTjSQ.js +6 -0
- langflow/frontend/assets/square-activity-CcOSYBrS.js +6 -0
- langflow/frontend/assets/square-arrow-down-BVdJOZEJ.js +6 -0
- langflow/frontend/assets/square-arrow-down-left-Cmzi6p1x.js +6 -0
- langflow/frontend/assets/square-arrow-down-right-CZLHVnQz.js +6 -0
- langflow/frontend/assets/square-arrow-left-DjVpjsrO.js +6 -0
- langflow/frontend/assets/square-arrow-out-down-left-wXj5IWRk.js +6 -0
- langflow/frontend/assets/square-arrow-out-down-right-CwtDp41D.js +6 -0
- langflow/frontend/assets/square-arrow-out-up-left-FRvjXB1a.js +6 -0
- langflow/frontend/assets/square-arrow-out-up-right-DlPfPEyw.js +6 -0
- langflow/frontend/assets/square-arrow-right-CXsKizML.js +6 -0
- langflow/frontend/assets/square-arrow-up-CEkTBxex.js +6 -0
- langflow/frontend/assets/square-arrow-up-left-BP02lXAS.js +6 -0
- langflow/frontend/assets/square-arrow-up-right-BmSDFkDr.js +6 -0
- langflow/frontend/assets/square-asterisk-hbwvBM2B.js +6 -0
- langflow/frontend/assets/square-bottom-dashed-scissors-DYKrJw1y.js +6 -0
- langflow/frontend/assets/square-chart-gantt-Vwnfo_Pn.js +6 -0
- langflow/frontend/assets/square-check-C04cs5ZB.js +6 -0
- langflow/frontend/assets/square-check-big-BF3AAHOB.js +6 -0
- langflow/frontend/assets/square-chevron-down-DmNdYA3q.js +6 -0
- langflow/frontend/assets/square-chevron-left-BtlOVCVY.js +6 -0
- langflow/frontend/assets/square-chevron-right-GIZBQEzx.js +6 -0
- langflow/frontend/assets/square-chevron-up-CQEO5ONV.js +6 -0
- langflow/frontend/assets/square-code-CD0gAgvN.js +6 -0
- langflow/frontend/assets/square-dashed-BDrI1c-R.js +6 -0
- langflow/frontend/assets/square-dashed-bottom-BJL9d4pa.js +6 -0
- langflow/frontend/assets/square-dashed-bottom-code-BeOBZkR0.js +6 -0
- langflow/frontend/assets/square-dashed-kanban-CErbmiES.js +6 -0
- langflow/frontend/assets/square-dashed-mouse-pointer-Zmi5agfp.js +6 -0
- langflow/frontend/assets/square-divide-B6A6zkw1.js +6 -0
- langflow/frontend/assets/square-dot-P6fcdHPf.js +6 -0
- langflow/frontend/assets/square-equal-WJbHP_t4.js +6 -0
- langflow/frontend/assets/square-function-CettiR3X.js +6 -0
- langflow/frontend/assets/square-kanban-BsXU8E_y.js +6 -0
- langflow/frontend/assets/square-library-BmQ3hTyB.js +6 -0
- langflow/frontend/assets/square-m-DwfZ-vok.js +6 -0
- langflow/frontend/assets/square-menu-Dpthf6jm.js +6 -0
- langflow/frontend/assets/square-minus-Tj5ClIqx.js +6 -0
- langflow/frontend/assets/square-mouse-pointer-mr8timW7.js +6 -0
- langflow/frontend/assets/square-parking-Bk9SzHc8.js +6 -0
- langflow/frontend/assets/square-parking-off-IrrpobT0.js +6 -0
- langflow/frontend/assets/square-pen-KiRrTvtS.js +6 -0
- langflow/frontend/assets/square-percent-C8aOSpg0.js +6 -0
- langflow/frontend/assets/square-pi-DgKhv0At.js +6 -0
- langflow/frontend/assets/square-pilcrow-COH3OK9n.js +6 -0
- langflow/frontend/assets/square-play-CAUGl-72.js +6 -0
- langflow/frontend/assets/square-plus-CRlzaeG6.js +6 -0
- langflow/frontend/assets/square-power-BUV-DpO9.js +6 -0
- langflow/frontend/assets/square-radical-mDbhE1Jp.js +6 -0
- langflow/frontend/assets/square-round-corner-D8ikBzW8.js +6 -0
- langflow/frontend/assets/square-scissors-sOPUwUTq.js +6 -0
- langflow/frontend/assets/square-sigma-pZR7i2en.js +6 -0
- langflow/frontend/assets/square-slash-CecdJ-2g.js +6 -0
- langflow/frontend/assets/square-split-horizontal-Cn1YMMw-.js +6 -0
- langflow/frontend/assets/square-split-vertical-C3Z8n5KC.js +6 -0
- langflow/frontend/assets/square-square-CiXxR3Ie.js +6 -0
- langflow/frontend/assets/square-stack-B2uKFYXm.js +6 -0
- langflow/frontend/assets/square-terminal-DE1v-WES.js +6 -0
- langflow/frontend/assets/square-user-CdQ5nItk.js +6 -0
- langflow/frontend/assets/square-user-round-BAGRGZ4p.js +6 -0
- langflow/frontend/assets/square-x-BI3Pn3yZ.js +6 -0
- langflow/frontend/assets/squares-exclude-CBt3NOOB.js +6 -0
- langflow/frontend/assets/squares-intersect-C1ol5eE2.js +6 -0
- langflow/frontend/assets/squares-subtract-CxQ-opYW.js +6 -0
- langflow/frontend/assets/squares-unite-bHbJjImE.js +6 -0
- langflow/frontend/assets/squircle-BKxd9XrI.js +6 -0
- langflow/frontend/assets/squirrel-BdGL91Qm.js +6 -0
- langflow/frontend/assets/stamp-BIQg-SUE.js +6 -0
- langflow/frontend/assets/star-Cpa4WlZd.js +6 -0
- langflow/frontend/assets/star-half-BnsiPaVT.js +6 -0
- langflow/frontend/assets/star-off-AO1QRqoS.js +6 -0
- langflow/frontend/assets/step-back-CcOvZiFD.js +6 -0
- langflow/frontend/assets/step-forward-C4x-q-G6.js +6 -0
- langflow/frontend/assets/stethoscope-CANnOOAi.js +6 -0
- langflow/frontend/assets/sticker-Q5M0hcLB.js +6 -0
- langflow/frontend/assets/sticky-note-C4QwXCe_.js +6 -0
- langflow/frontend/assets/store-CJCVnYZH.js +6 -0
- langflow/frontend/assets/stretch-horizontal-3ZhE2sCc.js +6 -0
- langflow/frontend/assets/stretch-vertical-mf41Xa4e.js +6 -0
- langflow/frontend/assets/strikethrough-yFT7jPwx.js +6 -0
- langflow/frontend/assets/subscript-VCxtxqO7.js +6 -0
- langflow/frontend/assets/sun-dim-4VSc0tI8.js +6 -0
- langflow/frontend/assets/sun-medium-CJ4xVMuF.js +6 -0
- langflow/frontend/assets/sun-moon-BO47Jkl4.js +6 -0
- langflow/frontend/assets/sun-rRloNURd.js +6 -0
- langflow/frontend/assets/sun-snow-BlSdUi7g.js +6 -0
- langflow/frontend/assets/sunrise-sO4wXyPP.js +6 -0
- langflow/frontend/assets/sunset-E9GFs51P.js +6 -0
- langflow/frontend/assets/superscript-BWmyCaUT.js +6 -0
- langflow/frontend/assets/swatch-book-BmWfAu49.js +6 -0
- langflow/frontend/assets/swiss-franc-hV1KP_fg.js +6 -0
- langflow/frontend/assets/switch-camera-BWkYvwXl.js +6 -0
- langflow/frontend/assets/sword-BDSHehSN.js +6 -0
- langflow/frontend/assets/swords-BRibwz0-.js +6 -0
- langflow/frontend/assets/syringe-C7_FV9Po.js +6 -0
- langflow/frontend/assets/table-2-CkYqc62r.js +6 -0
- langflow/frontend/assets/table-CASDU2H0.js +6 -0
- langflow/frontend/assets/table-cells-merge-DpXjO7d-.js +6 -0
- langflow/frontend/assets/table-cells-split-aydpayp8.js +6 -0
- langflow/frontend/assets/table-columns-split-B8VrYcuj.js +6 -0
- langflow/frontend/assets/table-of-contents-oGuU6U6i.js +6 -0
- langflow/frontend/assets/table-properties-DAgm8rqw.js +6 -0
- langflow/frontend/assets/table-rows-split-BFIJj2J8.js +6 -0
- langflow/frontend/assets/tablet-BliqtQBM.js +6 -0
- langflow/frontend/assets/tablet-smartphone-CE2tqU0B.js +6 -0
- langflow/frontend/assets/tablets-CswnoDNg.js +6 -0
- langflow/frontend/assets/tag-BerZ0133.js +6 -0
- langflow/frontend/assets/tags-DYlK_nbG.js +6 -0
- langflow/frontend/assets/tally-1-IN24qgmu.js +6 -0
- langflow/frontend/assets/tally-2-D02oV5rO.js +6 -0
- langflow/frontend/assets/tally-3-DYlGnbrA.js +6 -0
- langflow/frontend/assets/tally-4-D2KLKgKj.js +6 -0
- langflow/frontend/assets/tally-5-Cd0kRXrn.js +6 -0
- langflow/frontend/assets/tangent-G01MUkHP.js +6 -0
- langflow/frontend/assets/target-DbUvoffS.js +6 -0
- langflow/frontend/assets/telescope-KhvkA8ff.js +6 -0
- langflow/frontend/assets/tent-BgTD0ty8.js +6 -0
- langflow/frontend/assets/tent-tree-_R3-gT0M.js +6 -0
- langflow/frontend/assets/terminal-CqO1pA0S.js +6 -0
- langflow/frontend/assets/test-tube-Cosu5dmV.js +6 -0
- langflow/frontend/assets/test-tube-diagonal-BdAA9XeL.js +6 -0
- langflow/frontend/assets/test-tubes-Cd4n2GvV.js +6 -0
- langflow/frontend/assets/text-B0Xnj4ft.js +6 -0
- langflow/frontend/assets/text-cursor-Cy8p6TjV.js +6 -0
- langflow/frontend/assets/text-cursor-input-DgOo4wY8.js +6 -0
- langflow/frontend/assets/text-quote-C92ek5Lo.js +6 -0
- langflow/frontend/assets/text-search-Cy6e1fBt.js +6 -0
- langflow/frontend/assets/text-select-BdMHFJow.js +6 -0
- langflow/frontend/assets/theater-DK0cChU_.js +6 -0
- langflow/frontend/assets/thermometer-BcSnLB44.js +6 -0
- langflow/frontend/assets/thermometer-snowflake-BFFQB-J0.js +6 -0
- langflow/frontend/assets/thermometer-sun-By6M7z2S.js +6 -0
- langflow/frontend/assets/thumbs-down-DpArakqZ.js +6 -0
- langflow/frontend/assets/thumbs-up-OCTYaIsr.js +6 -0
- langflow/frontend/assets/ticket-DKk9KFsa.js +6 -0
- langflow/frontend/assets/ticket-check-CxlmH0TZ.js +6 -0
- langflow/frontend/assets/ticket-minus-yYNVgAXv.js +6 -0
- langflow/frontend/assets/ticket-percent-DTK_Eij8.js +6 -0
- langflow/frontend/assets/ticket-plus-DZH6kdc0.js +6 -0
- langflow/frontend/assets/ticket-slash-DaT9cJnH.js +6 -0
- langflow/frontend/assets/ticket-x-C91cugzp.js +6 -0
- langflow/frontend/assets/tickets-D8_swpjZ.js +6 -0
- langflow/frontend/assets/tickets-plane-Bs7N6tut.js +6 -0
- langflow/frontend/assets/timer-D1A5dgcp.js +6 -0
- langflow/frontend/assets/timer-off-Bnj53uqH.js +6 -0
- langflow/frontend/assets/timer-reset-CH2_6LXB.js +6 -0
- langflow/frontend/assets/toggle-left-Bms5HJPp.js +6 -0
- langflow/frontend/assets/toggle-right-Cm22-5tq.js +6 -0
- langflow/frontend/assets/toilet-B_EZH3rv.js +6 -0
- langflow/frontend/assets/tornado-DH7xrdf8.js +6 -0
- langflow/frontend/assets/torus-CeDcEzNl.js +6 -0
- langflow/frontend/assets/touchpad-BkFD1ONX.js +6 -0
- langflow/frontend/assets/touchpad-off-B0uLi6UN.js +6 -0
- langflow/frontend/assets/tower-control-vAS-GcnT.js +6 -0
- langflow/frontend/assets/toy-brick-Cp_hT2tX.js +6 -0
- langflow/frontend/assets/tractor-C6J-q888.js +6 -0
- langflow/frontend/assets/traffic-cone-Bf6tu1aR.js +6 -0
- langflow/frontend/assets/train-front-DFS_gdr7.js +6 -0
- langflow/frontend/assets/train-front-tunnel-B_B45p2C.js +6 -0
- langflow/frontend/assets/train-track-BYxDcy6T.js +6 -0
- langflow/frontend/assets/tram-front-mrGC7NJo.js +6 -0
- langflow/frontend/assets/transgender-imH1_ahf.js +6 -0
- langflow/frontend/assets/trash-CLIJ7hzA.js +6 -0
- langflow/frontend/assets/tree-deciduous-CcMF7uqB.js +6 -0
- langflow/frontend/assets/tree-palm-Cz7loG-5.js +6 -0
- langflow/frontend/assets/tree-pine-_KnmdDVv.js +6 -0
- langflow/frontend/assets/trees-DcMR2K_M.js +6 -0
- langflow/frontend/assets/trello-BNZfFWYi.js +6 -0
- langflow/frontend/assets/trending-down-BWrM4zQ0.js +6 -0
- langflow/frontend/assets/trending-up-BWgdc-K5.js +6 -0
- langflow/frontend/assets/trending-up-down-DQhSV3Za.js +6 -0
- langflow/frontend/assets/triangle-BQ6LFOFJ.js +6 -0
- langflow/frontend/assets/triangle-alert-BdJuJY-l.js +6 -0
- langflow/frontend/assets/triangle-dashed-Ch_AzxG9.js +6 -0
- langflow/frontend/assets/triangle-right-DqHR4ZXG.js +6 -0
- langflow/frontend/assets/trophy-eLjuXzFa.js +6 -0
- langflow/frontend/assets/truck-DXuqRqEe.js +6 -0
- langflow/frontend/assets/truck-electric-D3HyVQnU.js +6 -0
- langflow/frontend/assets/turtle-BuFnjN3h.js +6 -0
- langflow/frontend/assets/tv-BlUmv2d2.js +6 -0
- langflow/frontend/assets/tv-minimal-CpWoecoV.js +6 -0
- langflow/frontend/assets/tv-minimal-play-CPnVQl2f.js +6 -0
- langflow/frontend/assets/twitch-BkdmleL2.js +6 -0
- langflow/frontend/assets/twitter-05QHmZD0.js +6 -0
- langflow/frontend/assets/type-DNr3dfa5.js +6 -0
- langflow/frontend/assets/type-outline-CIrmdXWg.js +6 -0
- langflow/frontend/assets/umbrella-BdhvIGDz.js +6 -0
- langflow/frontend/assets/umbrella-off-BHSI8Bue.js +6 -0
- langflow/frontend/assets/underline-BslkaCEJ.js +6 -0
- langflow/frontend/assets/undo-2-BMx3oDcQ.js +6 -0
- langflow/frontend/assets/undo-CH0IX0A-.js +6 -0
- langflow/frontend/assets/undo-dot-B6yP9J8b.js +6 -0
- langflow/frontend/assets/unfold-horizontal-qqXqOLiN.js +6 -0
- langflow/frontend/assets/unfold-vertical-CLJkyOZ8.js +6 -0
- langflow/frontend/assets/ungroup--gpU_yyB.js +6 -0
- langflow/frontend/assets/university-DcMAR2QE.js +6 -0
- langflow/frontend/assets/unlink-2-DgHQM-Ol.js +6 -0
- langflow/frontend/assets/unlink-CFlKKKjg.js +6 -0
- langflow/frontend/assets/unplug-t7thfy3A.js +6 -0
- langflow/frontend/assets/upload-B47QANX4.js +6 -0
- langflow/frontend/assets/usb-Bao-9jlF.js +6 -0
- langflow/frontend/assets/use-post-add-user-DcUHAOql.js +1 -0
- langflow/frontend/assets/user-Drfvifu4.js +6 -0
- langflow/frontend/assets/user-check-Cl2Cugpa.js +6 -0
- langflow/frontend/assets/user-cog-yKYAgaSS.js +6 -0
- langflow/frontend/assets/user-lock-BspYeCuz.js +6 -0
- langflow/frontend/assets/user-minus-AkYkI7UT.js +6 -0
- langflow/frontend/assets/user-pen-nm0syYEm.js +6 -0
- langflow/frontend/assets/user-plus-ClieQhai.js +6 -0
- langflow/frontend/assets/user-round-DOm2Rvec.js +6 -0
- langflow/frontend/assets/user-round-check-CkC7KhO_.js +6 -0
- langflow/frontend/assets/user-round-cog-B40OFz4y.js +6 -0
- langflow/frontend/assets/user-round-minus-DzKXVvj5.js +6 -0
- langflow/frontend/assets/user-round-pen-B7Hx7T-z.js +6 -0
- langflow/frontend/assets/user-round-plus-gPUNVs5p.js +6 -0
- langflow/frontend/assets/user-round-search-BuCrN7rk.js +6 -0
- langflow/frontend/assets/user-round-x-Clw_HKFu.js +6 -0
- langflow/frontend/assets/user-search-7r9kPJdn.js +6 -0
- langflow/frontend/assets/user-x-D-08UDtO.js +6 -0
- langflow/frontend/assets/users-C4G9vyGr.js +6 -0
- langflow/frontend/assets/users-round-C3zj8mhR.js +6 -0
- langflow/frontend/assets/utensils-BVhMMIp4.js +6 -0
- langflow/frontend/assets/utensils-crossed-DwXOXddJ.js +6 -0
- langflow/frontend/assets/utility-pole-CPmMsN8O.js +6 -0
- langflow/frontend/assets/variable-ihOqLInK.js +6 -0
- langflow/frontend/assets/vault-BL-zlOyC.js +6 -0
- langflow/frontend/assets/vegan-HSv936HT.js +6 -0
- langflow/frontend/assets/venetian-mask-CPF9ez22.js +6 -0
- langflow/frontend/assets/venus-WD9kncdm.js +6 -0
- langflow/frontend/assets/venus-and-mars-DJuedjXD.js +6 -0
- langflow/frontend/assets/vibrate-BlIj-Jgh.js +6 -0
- langflow/frontend/assets/vibrate-off-Bs5X_4sP.js +6 -0
- langflow/frontend/assets/video-Cp1GFFC_.js +6 -0
- langflow/frontend/assets/video-off-BYJF_42a.js +6 -0
- langflow/frontend/assets/videotape-CuedGIlK.js +6 -0
- langflow/frontend/assets/view-uwAlPOmt.js +6 -0
- langflow/frontend/assets/voicemail-IRTIXCuv.js +6 -0
- langflow/frontend/assets/volleyball-Dm8hJeFi.js +6 -0
- langflow/frontend/assets/volume-1-B7dG7AaQ.js +6 -0
- langflow/frontend/assets/volume-1UMvsCQJ.js +6 -0
- langflow/frontend/assets/volume-2-Dbb7rUtl.js +6 -0
- langflow/frontend/assets/volume-off-kXe4C-Hg.js +6 -0
- langflow/frontend/assets/volume-x-Bd5C5IxT.js +6 -0
- langflow/frontend/assets/vote-CBtMBPq5.js +6 -0
- langflow/frontend/assets/wallet-D8Q8uawC.js +6 -0
- langflow/frontend/assets/wallet-cards-_GGB7vF_.js +6 -0
- langflow/frontend/assets/wallet-minimal-CucBi0Jd.js +6 -0
- langflow/frontend/assets/wallpaper-C_9hKf-n.js +6 -0
- langflow/frontend/assets/wand-DPL3CBte.js +6 -0
- langflow/frontend/assets/wand-sparkles-Cl_E8IQM.js +6 -0
- langflow/frontend/assets/warehouse-si5e0uad.js +6 -0
- langflow/frontend/assets/washing-machine-DAoYXz8S.js +6 -0
- langflow/frontend/assets/watch-vHRKFSRo.js +6 -0
- langflow/frontend/assets/waves-DIE8r4QU.js +6 -0
- langflow/frontend/assets/waves-ladder-DmCrSafi.js +6 -0
- langflow/frontend/assets/waypoints-BxAb3sb6.js +6 -0
- langflow/frontend/assets/webcam-DXKnwxjx.js +6 -0
- langflow/frontend/assets/webhook-DIcfjt0z.js +6 -0
- langflow/frontend/assets/webhook-off-Cizw6u19.js +6 -0
- langflow/frontend/assets/weight-C8waPDsY.js +6 -0
- langflow/frontend/assets/wheat-DjhsGbzN.js +6 -0
- langflow/frontend/assets/wheat-off-D159TbMR.js +6 -0
- langflow/frontend/assets/whole-word-BWpJx-dg.js +6 -0
- langflow/frontend/assets/wifi-Bvv6U9Hi.js +6 -0
- langflow/frontend/assets/wifi-high-Ct1ZekJ4.js +6 -0
- langflow/frontend/assets/wifi-low-BfylmAcn.js +6 -0
- langflow/frontend/assets/wifi-off-BD5Wk1pw.js +6 -0
- langflow/frontend/assets/wifi-pen-Bxkh4qXC.js +6 -0
- langflow/frontend/assets/wifi-zero-CqfrN4bl.js +6 -0
- langflow/frontend/assets/wind-D6hRFy66.js +6 -0
- langflow/frontend/assets/wind-arrow-down-DGVpj5j-.js +6 -0
- langflow/frontend/assets/wine-Dbt_7b9f.js +6 -0
- langflow/frontend/assets/wine-off-BuB0kkR9.js +6 -0
- langflow/frontend/assets/workflow-Cfb_GZf0.js +6 -0
- langflow/frontend/assets/worm-B7O5ml_A.js +6 -0
- langflow/frontend/assets/wrap-text-Pa-62zfV.js +6 -0
- langflow/frontend/assets/wrench-BIR5N1wl.js +6 -0
- langflow/frontend/assets/youtube-DvEYbar7.js +6 -0
- langflow/frontend/assets/zap-B7FF_DHv.js +6 -0
- langflow/frontend/assets/zap-off-ZtPxT6cL.js +6 -0
- langflow/frontend/assets/zoom-in-B0wOuivz.js +6 -0
- langflow/frontend/assets/zoom-out-DEmL9kzZ.js +6 -0
- langflow/frontend/index.html +2 -2
- langflow/initial_setup/setup.py +9 -1
- langflow/initial_setup/starter_projects/Basic Prompt Chaining.json +8 -18
- langflow/initial_setup/starter_projects/Basic Prompting.json +4 -10
- langflow/initial_setup/starter_projects/Blog Writer.json +4 -10
- langflow/initial_setup/starter_projects/Custom Component Generator.json +6 -16
- langflow/initial_setup/starter_projects/Document Q&A.json +6 -12
- langflow/initial_setup/starter_projects/Financial Report Parser.json +45 -10
- langflow/initial_setup/starter_projects/Hybrid Search RAG.json +46 -11
- langflow/initial_setup/starter_projects/Image Sentiment Analysis.json +49 -20
- langflow/initial_setup/starter_projects/Instagram Copywriter.json +41 -340
- langflow/initial_setup/starter_projects/Invoice Summarizer.json +33 -320
- langflow/initial_setup/starter_projects/Knowledge Ingestion.json +2 -2
- langflow/initial_setup/starter_projects/Knowledge Retrieval.json +2 -2
- langflow/initial_setup/starter_projects/Market Research.json +80 -336
- langflow/initial_setup/starter_projects/Meeting Summary.json +2 -2
- langflow/initial_setup/starter_projects/Memory Chatbot.json +4 -10
- langflow/initial_setup/starter_projects/News Aggregator.json +33 -320
- langflow/initial_setup/starter_projects/Nvidia Remix.json +45 -417
- langflow/initial_setup/starter_projects/Pok/303/251dex Agent.json" +35 -322
- langflow/initial_setup/starter_projects/Portfolio Website Code Generator.json +48 -13
- langflow/initial_setup/starter_projects/Price Deal Finder.json +33 -320
- langflow/initial_setup/starter_projects/Research Agent.json +40 -337
- langflow/initial_setup/starter_projects/Research Translation Loop.json +342 -362
- langflow/initial_setup/starter_projects/SEO Keyword Generator.json +4 -10
- langflow/initial_setup/starter_projects/SaaS Pricing.json +35 -326
- langflow/initial_setup/starter_projects/Search agent.json +33 -320
- langflow/initial_setup/starter_projects/Sequential Tasks Agents.json +118 -993
- langflow/initial_setup/starter_projects/Simple Agent.json +33 -320
- langflow/initial_setup/starter_projects/Social Media Agent.json +33 -320
- langflow/initial_setup/starter_projects/Text Sentiment Analysis.json +5 -5
- langflow/initial_setup/starter_projects/Travel Planning Agents.json +103 -969
- langflow/initial_setup/starter_projects/Twitter Thread Generator.json +10 -28
- langflow/initial_setup/starter_projects/Vector Store RAG.json +9 -21
- langflow/initial_setup/starter_projects/Youtube Analysis.json +57 -324
- langflow/inputs/__init__.py +2 -0
- langflow/inputs/inputs.py +2 -0
- langflow/main.py +5 -0
- langflow/memory.py +2 -6
- langflow/processing/process.py +7 -3
- langflow/services/database/models/variable/model.py +1 -2
- langflow/services/deps.py +2 -2
- langflow/services/tracing/arize_phoenix.py +63 -12
- langflow/services/variable/base.py +43 -1
- langflow/services/variable/kubernetes.py +65 -1
- langflow/services/variable/service.py +119 -15
- langflow/tests/api/v1/__init__.py +0 -0
- langflow/tests/api/v1/test_openai_responses_error.py +98 -0
- langflow_base_nightly-1.7.0.dev55.dist-info/METADATA +99 -0
- langflow_base_nightly-1.7.0.dev55.dist-info/RECORD +2283 -0
- langflow/base/models/openai_constants.py +0 -7
- langflow/frontend/assets/SlackIcon-2tL0BoK4.js +0 -1
- langflow/frontend/assets/Wikipedia-Dw5Rv487.js +0 -1
- langflow/frontend/assets/Wolfram-Vsga0g9P.js +0 -1
- langflow/frontend/assets/a-arrow-down-CtCPHkgr.js +0 -6
- langflow/frontend/assets/a-arrow-up-CCRqaxh3.js +0 -6
- langflow/frontend/assets/a-large-small-Ds4nmckW.js +0 -6
- langflow/frontend/assets/accessibility-CFQ3RZ22.js +0 -6
- langflow/frontend/assets/activity-BG2mngNA.js +0 -6
- langflow/frontend/assets/air-vent-D1H2ntZC.js +0 -6
- langflow/frontend/assets/airplay-CgtC06sx.js +0 -6
- langflow/frontend/assets/alarm-clock-B2ebS7mK.js +0 -6
- langflow/frontend/assets/alarm-clock-check-DN7RJ7In.js +0 -6
- langflow/frontend/assets/alarm-clock-minus-Dv054kv7.js +0 -6
- langflow/frontend/assets/alarm-clock-off-Cs_lq2yR.js +0 -6
- langflow/frontend/assets/alarm-clock-plus-CWqRI2eI.js +0 -6
- langflow/frontend/assets/alarm-smoke-DRMoUyKJ.js +0 -6
- langflow/frontend/assets/album-BOrmg-Fc.js +0 -6
- langflow/frontend/assets/align-center-aNn9ipln.js +0 -6
- langflow/frontend/assets/align-center-horizontal-YdLHi16A.js +0 -6
- langflow/frontend/assets/align-center-vertical-DlfgmMi5.js +0 -6
- langflow/frontend/assets/align-end-horizontal-C4HYPLli.js +0 -6
- langflow/frontend/assets/align-end-vertical-C9QD7_Ub.js +0 -6
- langflow/frontend/assets/align-horizontal-distribute-center-B2vfqgL8.js +0 -6
- langflow/frontend/assets/align-horizontal-distribute-end-DF7ZLFgo.js +0 -6
- langflow/frontend/assets/align-horizontal-distribute-start-Bsxg7Skv.js +0 -6
- langflow/frontend/assets/align-horizontal-justify-center-DPTf56Nd.js +0 -6
- langflow/frontend/assets/align-horizontal-justify-end-CqLsMuy2.js +0 -6
- langflow/frontend/assets/align-horizontal-justify-start-Uk3K2-_R.js +0 -6
- langflow/frontend/assets/align-horizontal-space-around-Dam48X6y.js +0 -6
- langflow/frontend/assets/align-horizontal-space-between-BCyYRzlS.js +0 -6
- langflow/frontend/assets/align-justify-BBQFCtzK.js +0 -6
- langflow/frontend/assets/align-left-BL1htpd_.js +0 -6
- langflow/frontend/assets/align-right-D5DOlRYC.js +0 -6
- langflow/frontend/assets/align-start-horizontal-D3b3WlfA.js +0 -6
- langflow/frontend/assets/align-start-vertical-DUfOeO71.js +0 -6
- langflow/frontend/assets/align-vertical-distribute-center-BNZy0POQ.js +0 -6
- langflow/frontend/assets/align-vertical-distribute-end-OzsHhNCw.js +0 -6
- langflow/frontend/assets/align-vertical-distribute-start-CxD4XYMO.js +0 -6
- langflow/frontend/assets/align-vertical-justify-center-CuD52dRx.js +0 -6
- langflow/frontend/assets/align-vertical-justify-end-CtKklri1.js +0 -6
- langflow/frontend/assets/align-vertical-justify-start-CPw57gyF.js +0 -6
- langflow/frontend/assets/align-vertical-space-around-DpZXdBsT.js +0 -6
- langflow/frontend/assets/align-vertical-space-between-w2JF7Uh-.js +0 -6
- langflow/frontend/assets/ambulance-VkAHfUCz.js +0 -6
- langflow/frontend/assets/ampersand-Du3Kk5nC.js +0 -6
- langflow/frontend/assets/ampersands-KWvMoTzu.js +0 -6
- langflow/frontend/assets/amphora-CzPrQ0gj.js +0 -6
- langflow/frontend/assets/anchor-zMpUjhzP.js +0 -6
- langflow/frontend/assets/angry-p89nHJ5X.js +0 -6
- langflow/frontend/assets/annoyed-BuY415Wh.js +0 -6
- langflow/frontend/assets/antenna-up4E5x8_.js +0 -6
- langflow/frontend/assets/anvil-DuuW3Sc2.js +0 -6
- langflow/frontend/assets/aperture-BWiAz6MA.js +0 -6
- langflow/frontend/assets/app-window-D1KK3Nkd.js +0 -6
- langflow/frontend/assets/app-window-mac-DIEf1Vhe.js +0 -6
- langflow/frontend/assets/apple-BKbGAPMT.js +0 -6
- langflow/frontend/assets/archive-nl-4wwcv.js +0 -6
- langflow/frontend/assets/archive-restore-CUFEvkX4.js +0 -6
- langflow/frontend/assets/archive-x-BMUxaj-5.js +0 -6
- langflow/frontend/assets/armchair-BughlihF.js +0 -6
- langflow/frontend/assets/arrow-big-down-C6W0jqjt.js +0 -6
- langflow/frontend/assets/arrow-big-down-dash-4SsEGiEr.js +0 -6
- langflow/frontend/assets/arrow-big-left-Bfj36Xuj.js +0 -6
- langflow/frontend/assets/arrow-big-left-dash-2diQgbSm.js +0 -6
- langflow/frontend/assets/arrow-big-right-DaoNh42J.js +0 -6
- langflow/frontend/assets/arrow-big-right-dash-By3aDv6Z.js +0 -6
- langflow/frontend/assets/arrow-big-up-Cf8AnIXN.js +0 -6
- langflow/frontend/assets/arrow-big-up-dash-BDtm1M0h.js +0 -6
- langflow/frontend/assets/arrow-down-0-1-DGG7H-P_.js +0 -6
- langflow/frontend/assets/arrow-down-1-0-C1QHag0Q.js +0 -6
- langflow/frontend/assets/arrow-down-C4X7neKy.js +0 -6
- langflow/frontend/assets/arrow-down-a-z-D1V0VBM6.js +0 -6
- langflow/frontend/assets/arrow-down-from-line-Tqy33Jn5.js +0 -6
- langflow/frontend/assets/arrow-down-left-Bg9dfH4j.js +0 -6
- langflow/frontend/assets/arrow-down-narrow-wide-Z1qxj7P_.js +0 -6
- langflow/frontend/assets/arrow-down-right-Bz-AlXge.js +0 -6
- langflow/frontend/assets/arrow-down-to-dot-a-6DY7b3.js +0 -6
- langflow/frontend/assets/arrow-down-to-line-BlR_nLQ5.js +0 -6
- langflow/frontend/assets/arrow-down-up-BW5-D-uV.js +0 -6
- langflow/frontend/assets/arrow-down-wide-narrow-CLlp3bQ4.js +0 -6
- langflow/frontend/assets/arrow-down-z-a-BdmSATHR.js +0 -6
- langflow/frontend/assets/arrow-left-DPAAl7dH.js +0 -6
- langflow/frontend/assets/arrow-left-from-line-Iq3thc0m.js +0 -6
- langflow/frontend/assets/arrow-left-right-Cp8sQ-fa.js +0 -6
- langflow/frontend/assets/arrow-left-to-line-DiIc-bIa.js +0 -6
- langflow/frontend/assets/arrow-right-HaVKQEd-.js +0 -6
- langflow/frontend/assets/arrow-right-from-line-B6dsw318.js +0 -6
- langflow/frontend/assets/arrow-right-left-l8CeAnC9.js +0 -6
- langflow/frontend/assets/arrow-right-to-line-BXqcRvfu.js +0 -6
- langflow/frontend/assets/arrow-up-0-1-lgHriEc5.js +0 -6
- langflow/frontend/assets/arrow-up-1-0-DbhnhtOe.js +0 -6
- langflow/frontend/assets/arrow-up-a-z-DXEkdnlz.js +0 -6
- langflow/frontend/assets/arrow-up-down-W95JpeW_.js +0 -6
- langflow/frontend/assets/arrow-up-from-dot-8xXJpTeh.js +0 -6
- langflow/frontend/assets/arrow-up-from-line-Ehlp11Oq.js +0 -6
- langflow/frontend/assets/arrow-up-gcEvpUBt.js +0 -6
- langflow/frontend/assets/arrow-up-left-CUc2Nurf.js +0 -6
- langflow/frontend/assets/arrow-up-narrow-wide-CDEqt6dn.js +0 -6
- langflow/frontend/assets/arrow-up-right-C8LUMgyi.js +0 -6
- langflow/frontend/assets/arrow-up-to-line-kMqd0Krh.js +0 -6
- langflow/frontend/assets/arrow-up-wide-narrow-Ca-4HU4E.js +0 -6
- langflow/frontend/assets/arrow-up-z-a-WdYks7-u.js +0 -6
- langflow/frontend/assets/arrows-up-from-line-CmgQtZjw.js +0 -6
- langflow/frontend/assets/asterisk-D2fam27C.js +0 -6
- langflow/frontend/assets/at-sign-UX6734bA.js +0 -6
- langflow/frontend/assets/atom-D9VA82hQ.js +0 -6
- langflow/frontend/assets/audio-lines-zw9eqKuz.js +0 -6
- langflow/frontend/assets/audio-waveform-DjUMj6Xm.js +0 -6
- langflow/frontend/assets/award-D5kHVTMP.js +0 -6
- langflow/frontend/assets/axe-DnF5vULo.js +0 -6
- langflow/frontend/assets/axis-3d-CcrPEX8P.js +0 -6
- langflow/frontend/assets/baby-jchF2TWh.js +0 -6
- langflow/frontend/assets/backpack-BFgkgPXP.js +0 -6
- langflow/frontend/assets/badge-SlXVA9sA.js +0 -6
- langflow/frontend/assets/badge-alert-HQeDA_BM.js +0 -6
- langflow/frontend/assets/badge-cent-BI2UoOWa.js +0 -6
- langflow/frontend/assets/badge-check-1wcvAore.js +0 -6
- langflow/frontend/assets/badge-dollar-sign-t5mVxT-7.js +0 -6
- langflow/frontend/assets/badge-euro-CuQbYA0Q.js +0 -6
- langflow/frontend/assets/badge-help-CVSoNVlm.js +0 -6
- langflow/frontend/assets/badge-indian-rupee-BfFBeVC1.js +0 -6
- langflow/frontend/assets/badge-info-CIKPyIoh.js +0 -6
- langflow/frontend/assets/badge-japanese-yen-gIuEDd3y.js +0 -6
- langflow/frontend/assets/badge-minus-QFER_1tr.js +0 -6
- langflow/frontend/assets/badge-percent-CYi2iiOM.js +0 -6
- langflow/frontend/assets/badge-plus-BOBnAhWZ.js +0 -6
- langflow/frontend/assets/badge-pound-sterling-CDDk4Clp.js +0 -6
- langflow/frontend/assets/badge-russian-ruble-Cw2zeVY6.js +0 -6
- langflow/frontend/assets/badge-swiss-franc-BNaHyFBF.js +0 -6
- langflow/frontend/assets/badge-x-INaZjGBv.js +0 -6
- langflow/frontend/assets/baggage-claim-BuCzaLUK.js +0 -6
- langflow/frontend/assets/ban-C0_KH0xx.js +0 -6
- langflow/frontend/assets/banana-JaSLI-eN.js +0 -6
- langflow/frontend/assets/bandage-BLq5FbwZ.js +0 -6
- langflow/frontend/assets/banknote-CcWSwsXX.js +0 -6
- langflow/frontend/assets/banknote-arrow-down-yYDB5YRe.js +0 -6
- langflow/frontend/assets/banknote-arrow-up-cP9YOTlq.js +0 -6
- langflow/frontend/assets/banknote-x-BLetLkx8.js +0 -6
- langflow/frontend/assets/barcode-TBNucGW-.js +0 -6
- langflow/frontend/assets/baseline-CxbI_Ryx.js +0 -6
- langflow/frontend/assets/bath-B0wQiu7v.js +0 -6
- langflow/frontend/assets/battery-DygTKT09.js +0 -6
- langflow/frontend/assets/battery-charging-Bpu1nXid.js +0 -6
- langflow/frontend/assets/battery-full-DG7mNFn1.js +0 -6
- langflow/frontend/assets/battery-low-CGnrPGIZ.js +0 -6
- langflow/frontend/assets/battery-medium-2JaYO87F.js +0 -6
- langflow/frontend/assets/battery-plus-Q_eqIrSE.js +0 -6
- langflow/frontend/assets/battery-warning-CQxD-Dhz.js +0 -6
- langflow/frontend/assets/beaker-DFbKvt8K.js +0 -6
- langflow/frontend/assets/bean-Cdl6jl6W.js +0 -6
- langflow/frontend/assets/bean-off-D_8urmiA.js +0 -6
- langflow/frontend/assets/bed-BmkmEhct.js +0 -6
- langflow/frontend/assets/bed-double-BB_aBwdj.js +0 -6
- langflow/frontend/assets/bed-single-jV6zkSeY.js +0 -6
- langflow/frontend/assets/beef-BnEyO_PD.js +0 -6
- langflow/frontend/assets/beer-CbBgcz-w.js +0 -6
- langflow/frontend/assets/beer-off-BJJuRDVu.js +0 -6
- langflow/frontend/assets/bell-DiADno6X.js +0 -6
- langflow/frontend/assets/bell-dot-BJZcEZCk.js +0 -6
- langflow/frontend/assets/bell-electric-YB2kEu6w.js +0 -6
- langflow/frontend/assets/bell-minus-CcaDnyzi.js +0 -6
- langflow/frontend/assets/bell-off-BgHN2ufQ.js +0 -6
- langflow/frontend/assets/bell-plus-Bbu7et3O.js +0 -6
- langflow/frontend/assets/bell-ring-DsnFMVte.js +0 -6
- langflow/frontend/assets/between-horizontal-end-Aw5uRfrp.js +0 -6
- langflow/frontend/assets/between-horizontal-start-BlpAv55e.js +0 -6
- langflow/frontend/assets/between-vertical-end-B9evwoxW.js +0 -6
- langflow/frontend/assets/between-vertical-start-jLR0hN4S.js +0 -6
- langflow/frontend/assets/biceps-flexed-lEiRddud.js +0 -6
- langflow/frontend/assets/bike-CVItDlq_.js +0 -6
- langflow/frontend/assets/binary-QU98JXFD.js +0 -6
- langflow/frontend/assets/binoculars-Ca4_VNEP.js +0 -6
- langflow/frontend/assets/biohazard-k30hEyRQ.js +0 -6
- langflow/frontend/assets/bird-DHBHGvUU.js +0 -6
- langflow/frontend/assets/bitcoin-BS428A8y.js +0 -6
- langflow/frontend/assets/blend-BUucrrRp.js +0 -6
- langflow/frontend/assets/blinds-DACp4fUy.js +0 -6
- langflow/frontend/assets/blocks-DbFLBEIs.js +0 -6
- langflow/frontend/assets/bluetooth-BsO-Fp_k.js +0 -6
- langflow/frontend/assets/bluetooth-connected-DBX2rvgB.js +0 -6
- langflow/frontend/assets/bluetooth-off-CGx_M-Y5.js +0 -6
- langflow/frontend/assets/bluetooth-searching-DM4PPvxZ.js +0 -6
- langflow/frontend/assets/bold-Di484--c.js +0 -6
- langflow/frontend/assets/bolt-CsIGutbM.js +0 -6
- langflow/frontend/assets/bomb-Dmvj27RW.js +0 -6
- langflow/frontend/assets/bone-CTPrfpcz.js +0 -6
- langflow/frontend/assets/book-C0WSUBUR.js +0 -6
- langflow/frontend/assets/book-a-CwmRjeAV.js +0 -6
- langflow/frontend/assets/book-audio-DAtoSRde.js +0 -6
- langflow/frontend/assets/book-check-Mp7bATps.js +0 -6
- langflow/frontend/assets/book-copy-C-OiHUrx.js +0 -6
- langflow/frontend/assets/book-dashed-wex_u7RN.js +0 -6
- langflow/frontend/assets/book-down-B9fqXXLP.js +0 -6
- langflow/frontend/assets/book-headphones-CKDXG8Fr.js +0 -6
- langflow/frontend/assets/book-heart-ClG6w6SX.js +0 -6
- langflow/frontend/assets/book-image-5u05Fo77.js +0 -6
- langflow/frontend/assets/book-key-Bpq9plwo.js +0 -6
- langflow/frontend/assets/book-lock-CT6mwrMm.js +0 -6
- langflow/frontend/assets/book-marked-BIiQ1ukl.js +0 -6
- langflow/frontend/assets/book-minus-SWjp7P_W.js +0 -6
- langflow/frontend/assets/book-open-DfNQZzHi.js +0 -6
- langflow/frontend/assets/book-open-check-CY30kKMC.js +0 -6
- langflow/frontend/assets/book-open-text-DPzMwevc.js +0 -6
- langflow/frontend/assets/book-plus-WVs1bePp.js +0 -6
- langflow/frontend/assets/book-text-CzbbJ9LG.js +0 -6
- langflow/frontend/assets/book-type-BN35WPrW.js +0 -6
- langflow/frontend/assets/book-up-2-KiLiu1-m.js +0 -6
- langflow/frontend/assets/book-up-ZglUa_h-.js +0 -6
- langflow/frontend/assets/book-user-C2Up4w08.js +0 -6
- langflow/frontend/assets/book-x-WO5AX9sT.js +0 -6
- langflow/frontend/assets/bookmark-CSQGhHtO.js +0 -6
- langflow/frontend/assets/bookmark-check-BXYJi0NT.js +0 -6
- langflow/frontend/assets/bookmark-minus-BUmp-MGP.js +0 -6
- langflow/frontend/assets/bookmark-plus-D-twXCK7.js +0 -6
- langflow/frontend/assets/bookmark-x-BvH3SL1B.js +0 -6
- langflow/frontend/assets/boom-box-DMHnaqRR.js +0 -6
- langflow/frontend/assets/bot-DSLqSL9g.js +0 -6
- langflow/frontend/assets/bot-message-square-BGaJzhjF.js +0 -6
- langflow/frontend/assets/bot-off-CqToOHdG.js +0 -6
- langflow/frontend/assets/bow-arrow-Bt2ER62q.js +0 -6
- langflow/frontend/assets/box-DXpjqKuH.js +0 -6
- langflow/frontend/assets/boxes-DeB16DNE.js +0 -6
- langflow/frontend/assets/braces-BCzJ3MYq.js +0 -6
- langflow/frontend/assets/brackets-C4FNuXta.js +0 -6
- langflow/frontend/assets/brain-DFLv0Ew1.js +0 -6
- langflow/frontend/assets/brain-circuit-Dr0NCFcL.js +0 -6
- langflow/frontend/assets/brain-cog-0rWbmbOW.js +0 -6
- langflow/frontend/assets/brick-wall-CLo5MeED.js +0 -6
- langflow/frontend/assets/brick-wall-fire-CcXKADrC.js +0 -6
- langflow/frontend/assets/briefcase-CANcl425.js +0 -6
- langflow/frontend/assets/briefcase-business-CWy5tOof.js +0 -6
- langflow/frontend/assets/briefcase-conveyor-belt-D_wc2LYv.js +0 -6
- langflow/frontend/assets/briefcase-medical-HkLm_YOd.js +0 -6
- langflow/frontend/assets/bring-to-front-D-5n0cQh.js +0 -6
- langflow/frontend/assets/brush-XErknzPu.js +0 -6
- langflow/frontend/assets/bubbles-mqIRxseg.js +0 -6
- langflow/frontend/assets/bug-4ZaBkI0g.js +0 -6
- langflow/frontend/assets/bug-off-x2PjBwDj.js +0 -6
- langflow/frontend/assets/bug-play-DIwO_WwF.js +0 -6
- langflow/frontend/assets/building-2-ByEAjLQd.js +0 -6
- langflow/frontend/assets/building-Bd5Xs1LN.js +0 -6
- langflow/frontend/assets/bus-front-DpybCoBw.js +0 -6
- langflow/frontend/assets/bus-nSu5Yghx.js +0 -6
- langflow/frontend/assets/cable-5DILgzkz.js +0 -6
- langflow/frontend/assets/cable-car-DxxaWY1w.js +0 -6
- langflow/frontend/assets/cake-Clhth2Va.js +0 -6
- langflow/frontend/assets/cake-slice-vpfVB8xx.js +0 -6
- langflow/frontend/assets/calculator-BNmc2lEZ.js +0 -6
- langflow/frontend/assets/calendar-1-C00Irhv9.js +0 -6
- langflow/frontend/assets/calendar-BV9IwxUy.js +0 -6
- langflow/frontend/assets/calendar-arrow-down-RVRQhCwj.js +0 -6
- langflow/frontend/assets/calendar-arrow-up-CngrUVjc.js +0 -6
- langflow/frontend/assets/calendar-check-2-FpbvvuY1.js +0 -6
- langflow/frontend/assets/calendar-check-CBlNgO10.js +0 -6
- langflow/frontend/assets/calendar-clock-D4GyGUNY.js +0 -6
- langflow/frontend/assets/calendar-cog-NdDLy0rY.js +0 -6
- langflow/frontend/assets/calendar-days-B9Lzu7Pp.js +0 -6
- langflow/frontend/assets/calendar-fold-Be2nT1G5.js +0 -6
- langflow/frontend/assets/calendar-heart-CEIJdPUF.js +0 -6
- langflow/frontend/assets/calendar-minus-2-frWEUEgu.js +0 -6
- langflow/frontend/assets/calendar-minus-Bp_a49SQ.js +0 -6
- langflow/frontend/assets/calendar-off-D0KQGf9i.js +0 -6
- langflow/frontend/assets/calendar-plus-2-CedJAZCW.js +0 -6
- langflow/frontend/assets/calendar-plus-C0GWj3qf.js +0 -6
- langflow/frontend/assets/calendar-range-B519OcK6.js +0 -6
- langflow/frontend/assets/calendar-search-6DPLiS45.js +0 -6
- langflow/frontend/assets/calendar-sync-pvExHh22.js +0 -6
- langflow/frontend/assets/calendar-x-2-CI80rOaP.js +0 -6
- langflow/frontend/assets/calendar-x-DyJVDIMK.js +0 -6
- langflow/frontend/assets/camera-C7qFVCW7.js +0 -6
- langflow/frontend/assets/camera-off-CLS5AOT2.js +0 -6
- langflow/frontend/assets/candy-DPrpiC8M.js +0 -6
- langflow/frontend/assets/candy-cane-CK6wx2af.js +0 -6
- langflow/frontend/assets/candy-off-CRqid0h0.js +0 -6
- langflow/frontend/assets/cannabis-CN5EchX-.js +0 -6
- langflow/frontend/assets/captions-CGBpcQVT.js +0 -6
- langflow/frontend/assets/captions-off-Dr8mtWu2.js +0 -6
- langflow/frontend/assets/car-D7kdtjCP.js +0 -6
- langflow/frontend/assets/car-front-C9J-mmQr.js +0 -6
- langflow/frontend/assets/car-taxi-front-CcwpWzgG.js +0 -6
- langflow/frontend/assets/caravan-D2iG73yW.js +0 -6
- langflow/frontend/assets/carrot-COPqTYxk.js +0 -6
- langflow/frontend/assets/case-lower-DVN3prZZ.js +0 -6
- langflow/frontend/assets/case-sensitive-jaTHM7kD.js +0 -6
- langflow/frontend/assets/case-upper-zDLQctHY.js +0 -6
- langflow/frontend/assets/cassette-tape-XBVc5S2S.js +0 -6
- langflow/frontend/assets/cast-FpSLV9nh.js +0 -6
- langflow/frontend/assets/castle-mhUc3Sa7.js +0 -6
- langflow/frontend/assets/cat-MlrlJF7V.js +0 -6
- langflow/frontend/assets/cctv-Bo3Gq1sP.js +0 -6
- langflow/frontend/assets/chart-area-DKgJngK6.js +0 -6
- langflow/frontend/assets/chart-bar-C9CxjWgM.js +0 -6
- langflow/frontend/assets/chart-bar-big-CCxPgjFr.js +0 -6
- langflow/frontend/assets/chart-bar-decreasing-NaEbZY3u.js +0 -6
- langflow/frontend/assets/chart-bar-increasing-Sw1AbJuH.js +0 -6
- langflow/frontend/assets/chart-bar-stacked-jeK6f5No.js +0 -6
- langflow/frontend/assets/chart-candlestick-azHfH7D7.js +0 -6
- langflow/frontend/assets/chart-column-big-CfVzAcJS.js +0 -6
- langflow/frontend/assets/chart-column-bxAdhgLd.js +0 -6
- langflow/frontend/assets/chart-column-decreasing-wNdMoBal.js +0 -6
- langflow/frontend/assets/chart-column-increasing-BiOQfUbI.js +0 -6
- langflow/frontend/assets/chart-column-stacked-CfuZmPkv.js +0 -6
- langflow/frontend/assets/chart-gantt-XebrMfT0.js +0 -6
- langflow/frontend/assets/chart-line-BqzGA7_U.js +0 -6
- langflow/frontend/assets/chart-network-B6SE-MbP.js +0 -6
- langflow/frontend/assets/chart-no-axes-column-decreasing-dKkdagVp.js +0 -6
- langflow/frontend/assets/chart-no-axes-column-increasing-ZGWI5eFL.js +0 -6
- langflow/frontend/assets/chart-no-axes-column-lxCQO5Sz.js +0 -6
- langflow/frontend/assets/chart-no-axes-combined-D_ojxnc_.js +0 -6
- langflow/frontend/assets/chart-no-axes-gantt-DBNney9_.js +0 -6
- langflow/frontend/assets/chart-pie-B_yT36Ep.js +0 -6
- langflow/frontend/assets/chart-scatter-4EkeZnGv.js +0 -6
- langflow/frontend/assets/chart-spline-BlR_Utwj.js +0 -6
- langflow/frontend/assets/check-check-mjvBs4hp.js +0 -6
- langflow/frontend/assets/chef-hat-B5L-WaDA.js +0 -6
- langflow/frontend/assets/cherry-Ch61XZPa.js +0 -6
- langflow/frontend/assets/chevron-first-wAAVqtUY.js +0 -6
- langflow/frontend/assets/chevron-last-zAcQaPuR.js +0 -6
- langflow/frontend/assets/chevron-left-Cr1bv0gY.js +0 -6
- langflow/frontend/assets/chevron-right-DIgt3AeP.js +0 -6
- langflow/frontend/assets/chevrons-down-BNaVPrEa.js +0 -6
- langflow/frontend/assets/chevrons-down-up-CeENTSlN.js +0 -6
- langflow/frontend/assets/chevrons-left-D8K24j17.js +0 -6
- langflow/frontend/assets/chevrons-left-right-ellipsis-C1Z-bVSM.js +0 -6
- langflow/frontend/assets/chevrons-left-right-iM7Q1uj8.js +0 -6
- langflow/frontend/assets/chevrons-right-CgPqkzi_.js +0 -6
- langflow/frontend/assets/chevrons-right-left-CUpBdX_-.js +0 -6
- langflow/frontend/assets/chevrons-up-CaVyxK6a.js +0 -6
- langflow/frontend/assets/chrome-Bt5-4_H_.js +0 -6
- langflow/frontend/assets/church-DdkDjgks.js +0 -6
- langflow/frontend/assets/cigarette-DqL9Cjvu.js +0 -6
- langflow/frontend/assets/cigarette-off-I5I89xh1.js +0 -6
- langflow/frontend/assets/circle-alert-BJZZ6CO5.js +0 -6
- langflow/frontend/assets/circle-arrow-down-CTOimXb4.js +0 -6
- langflow/frontend/assets/circle-arrow-left-Dk5OY4Uh.js +0 -6
- langflow/frontend/assets/circle-arrow-out-down-left-BpkzawyV.js +0 -6
- langflow/frontend/assets/circle-arrow-out-down-right-CidgXyBq.js +0 -6
- langflow/frontend/assets/circle-arrow-out-up-left-DRpCQvgG.js +0 -6
- langflow/frontend/assets/circle-arrow-out-up-right-CW5LRpAW.js +0 -6
- langflow/frontend/assets/circle-arrow-right-C3Zd06oq.js +0 -6
- langflow/frontend/assets/circle-arrow-up-Dds4-Gqg.js +0 -6
- langflow/frontend/assets/circle-check-C-PYs05d.js +0 -6
- langflow/frontend/assets/circle-check-big-CygsBNqe.js +0 -6
- langflow/frontend/assets/circle-chevron-down-lvNfB3ez.js +0 -6
- langflow/frontend/assets/circle-chevron-left-1PPcojcN.js +0 -6
- langflow/frontend/assets/circle-chevron-right-j3pY_Mxs.js +0 -6
- langflow/frontend/assets/circle-chevron-up-CDckgjCL.js +0 -6
- langflow/frontend/assets/circle-dashed-BaI69AOK.js +0 -6
- langflow/frontend/assets/circle-divide-B5CPfVbp.js +0 -6
- langflow/frontend/assets/circle-dollar-sign-Bp7pbLvl.js +0 -6
- langflow/frontend/assets/circle-dot-C7xCjxhN.js +0 -6
- langflow/frontend/assets/circle-dot-dashed-DVJN1RfK.js +0 -6
- langflow/frontend/assets/circle-ellipsis-Wj3512-X.js +0 -6
- langflow/frontend/assets/circle-equal-CVspIQ-T.js +0 -6
- langflow/frontend/assets/circle-fading-arrow-up-4XPTqKP-.js +0 -6
- langflow/frontend/assets/circle-fading-plus-k068hbcc.js +0 -6
- langflow/frontend/assets/circle-gauge-BqlhJFC6.js +0 -6
- langflow/frontend/assets/circle-help-BGQkusPB.js +0 -6
- langflow/frontend/assets/circle-minus-B3xEYd3J.js +0 -6
- langflow/frontend/assets/circle-off-DISfMryN.js +0 -6
- langflow/frontend/assets/circle-parking-Drj98qPb.js +0 -6
- langflow/frontend/assets/circle-parking-off-ZJJvH3Mz.js +0 -6
- langflow/frontend/assets/circle-pause-DJiqJR71.js +0 -6
- langflow/frontend/assets/circle-percent-BLl-oEAZ.js +0 -6
- langflow/frontend/assets/circle-play-BhmSYr8V.js +0 -6
- langflow/frontend/assets/circle-plus-D-iSwALE.js +0 -6
- langflow/frontend/assets/circle-power-C4SsikU1.js +0 -6
- langflow/frontend/assets/circle-slash-2-DM0X_FvC.js +0 -6
- langflow/frontend/assets/circle-slash-CsEYnPZ_.js +0 -6
- langflow/frontend/assets/circle-small-nq2KJRbI.js +0 -6
- langflow/frontend/assets/circle-stop-DHpR4Exj.js +0 -6
- langflow/frontend/assets/circle-user-round-CPdDJgym.js +0 -6
- langflow/frontend/assets/circle-user-vySTUTfe.js +0 -6
- langflow/frontend/assets/circuit-board-C6MASNwG.js +0 -6
- langflow/frontend/assets/citrus-4s-La7fq.js +0 -6
- langflow/frontend/assets/clapperboard-Cm3_2ZAe.js +0 -6
- langflow/frontend/assets/clipboard-B_CddeJZ.js +0 -6
- langflow/frontend/assets/clipboard-check-DQLHZEhO.js +0 -6
- langflow/frontend/assets/clipboard-copy-Wkp10wfJ.js +0 -6
- langflow/frontend/assets/clipboard-list-DTjvLiis.js +0 -6
- langflow/frontend/assets/clipboard-minus-9Mtcennl.js +0 -6
- langflow/frontend/assets/clipboard-paste-D9O3Ylr7.js +0 -6
- langflow/frontend/assets/clipboard-pen-BMsMKD2E.js +0 -6
- langflow/frontend/assets/clipboard-pen-line-BMqQ6TEF.js +0 -6
- langflow/frontend/assets/clipboard-plus-DToSFtda.js +0 -6
- langflow/frontend/assets/clipboard-type-BUAJGhbt.js +0 -6
- langflow/frontend/assets/clipboard-x-UXuP7iFz.js +0 -6
- langflow/frontend/assets/clock-1-DC05Gf9x.js +0 -6
- langflow/frontend/assets/clock-10-CUsZ-pQX.js +0 -6
- langflow/frontend/assets/clock-11-B02Ke-8J.js +0 -6
- langflow/frontend/assets/clock-12-Di6togjy.js +0 -6
- langflow/frontend/assets/clock-2-DQR12kNA.js +0 -6
- langflow/frontend/assets/clock-3-Bp-StvZ1.js +0 -6
- langflow/frontend/assets/clock-4-BFseYkQo.js +0 -6
- langflow/frontend/assets/clock-5-DAr7BU6j.js +0 -6
- langflow/frontend/assets/clock-6-Z_qV9P3A.js +0 -6
- langflow/frontend/assets/clock-7-D82hLWju.js +0 -6
- langflow/frontend/assets/clock-8-Degkhg1B.js +0 -6
- langflow/frontend/assets/clock-9-CB_xmTKJ.js +0 -6
- langflow/frontend/assets/clock-Dwr8Maiz.js +0 -6
- langflow/frontend/assets/clock-alert-Cyvoz8nE.js +0 -6
- langflow/frontend/assets/clock-arrow-down-BFZLdybm.js +0 -6
- langflow/frontend/assets/clock-arrow-up-DvXlJ-05.js +0 -6
- langflow/frontend/assets/clock-fading-BflG8l3I.js +0 -6
- langflow/frontend/assets/cloud-DjN7iGQU.js +0 -6
- langflow/frontend/assets/cloud-alert-Cnxn036m.js +0 -6
- langflow/frontend/assets/cloud-cog-DSR0q3-t.js +0 -6
- langflow/frontend/assets/cloud-download-m6j-tfyW.js +0 -6
- langflow/frontend/assets/cloud-drizzle-B--SoqIh.js +0 -6
- langflow/frontend/assets/cloud-fog-CUu05M5x.js +0 -6
- langflow/frontend/assets/cloud-hail-D93BL0E6.js +0 -6
- langflow/frontend/assets/cloud-lightning-Qrpo-CpL.js +0 -6
- langflow/frontend/assets/cloud-moon-CJ4K-LoM.js +0 -6
- langflow/frontend/assets/cloud-moon-rain-BEOCPFQC.js +0 -6
- langflow/frontend/assets/cloud-off-CBKavV70.js +0 -6
- langflow/frontend/assets/cloud-rain-Bzf3tp-U.js +0 -6
- langflow/frontend/assets/cloud-rain-wind-CufkoFAV.js +0 -6
- langflow/frontend/assets/cloud-snow-D-5b0vs5.js +0 -6
- langflow/frontend/assets/cloud-sun-Bd1Mw8DI.js +0 -6
- langflow/frontend/assets/cloud-sun-rain-B7by-4h4.js +0 -6
- langflow/frontend/assets/cloud-upload-JgcFevtG.js +0 -6
- langflow/frontend/assets/cloudy-k1L-aZmY.js +0 -6
- langflow/frontend/assets/clover-9wPrYs0-.js +0 -6
- langflow/frontend/assets/club-Czxfd3St.js +0 -6
- langflow/frontend/assets/code-xml-CPtClBo2.js +0 -6
- langflow/frontend/assets/codepen-kxAgvgvA.js +0 -6
- langflow/frontend/assets/codesandbox-48JkoYcs.js +0 -6
- langflow/frontend/assets/coffee-WchMaWeO.js +0 -6
- langflow/frontend/assets/cog-Bkt4M04y.js +0 -6
- langflow/frontend/assets/coins-CJ4VxQxb.js +0 -6
- langflow/frontend/assets/columns-2-gJIRvHiD.js +0 -6
- langflow/frontend/assets/columns-3-91Za2kQq.js +0 -6
- langflow/frontend/assets/columns-3-cog-1YJVHWoE.js +0 -6
- langflow/frontend/assets/columns-4-BBkw9Zg6.js +0 -6
- langflow/frontend/assets/combine-BnqLlAns.js +0 -6
- langflow/frontend/assets/command-D2mXrc-p.js +0 -6
- langflow/frontend/assets/compass-B9gERr7w.js +0 -6
- langflow/frontend/assets/component-DaSz19fb.js +0 -6
- langflow/frontend/assets/computer-B7swJrTu.js +0 -6
- langflow/frontend/assets/concierge-bell-CdSgH9ky.js +0 -6
- langflow/frontend/assets/cone-CcuQIKYg.js +0 -6
- langflow/frontend/assets/construction-DhgyGiSE.js +0 -6
- langflow/frontend/assets/contact-BIJeu_J9.js +0 -6
- langflow/frontend/assets/contact-round-D_iM1wvy.js +0 -6
- langflow/frontend/assets/container-BLrXsA-m.js +0 -6
- langflow/frontend/assets/contrast-DEFAvvhZ.js +0 -6
- langflow/frontend/assets/cookie-CHwSogHF.js +0 -6
- langflow/frontend/assets/cooking-pot-D3iUj8u2.js +0 -6
- langflow/frontend/assets/copy-CwNuREWX.js +0 -6
- langflow/frontend/assets/copy-check-D3quPX4X.js +0 -6
- langflow/frontend/assets/copy-minus-C9zYd6zO.js +0 -6
- langflow/frontend/assets/copy-plus-BTb20aN4.js +0 -6
- langflow/frontend/assets/copy-slash-BRVuZVOd.js +0 -6
- langflow/frontend/assets/copy-x-DU75SNBd.js +0 -6
- langflow/frontend/assets/copyleft-Dtxh7KEo.js +0 -6
- langflow/frontend/assets/copyright-CQy2heJn.js +0 -6
- langflow/frontend/assets/corner-down-left-BoDQuj5S.js +0 -6
- langflow/frontend/assets/corner-down-right-apUyoyNA.js +0 -6
- langflow/frontend/assets/corner-left-down-Dh5dA0fk.js +0 -6
- langflow/frontend/assets/corner-left-up-CgYh0wMR.js +0 -6
- langflow/frontend/assets/corner-right-down-B9owL0Do.js +0 -6
- langflow/frontend/assets/corner-right-up-CMrbI2-d.js +0 -6
- langflow/frontend/assets/corner-up-left-CqjYa9Uv.js +0 -6
- langflow/frontend/assets/corner-up-right-BQVECb6W.js +0 -6
- langflow/frontend/assets/cpu-B6RhNtuj.js +0 -6
- langflow/frontend/assets/creative-commons-BtVZRGqV.js +0 -6
- langflow/frontend/assets/credit-card-DWjdwAWf.js +0 -6
- langflow/frontend/assets/croissant-qAQouZLG.js +0 -6
- langflow/frontend/assets/crop-DOmAVCOW.js +0 -6
- langflow/frontend/assets/cross-DXkRc22j.js +0 -6
- langflow/frontend/assets/crosshair-B6JLZ3Vx.js +0 -6
- langflow/frontend/assets/crown-CUvy0ktj.js +0 -6
- langflow/frontend/assets/cuboid-f1CibVbz.js +0 -6
- langflow/frontend/assets/cup-soda-Bt1IlYlB.js +0 -6
- langflow/frontend/assets/currency-D0L0RRED.js +0 -6
- langflow/frontend/assets/cylinder-CCprMMHe.js +0 -6
- langflow/frontend/assets/dam-Fh6j-Qfc.js +0 -6
- langflow/frontend/assets/database-DKRbMusQ.js +0 -6
- langflow/frontend/assets/database-backup-B-K32lif.js +0 -6
- langflow/frontend/assets/database-zap-VSPmpIKP.js +0 -6
- langflow/frontend/assets/decimals-arrow-left-DY7vtsGW.js +0 -6
- langflow/frontend/assets/decimals-arrow-right-CnGHroQg.js +0 -6
- langflow/frontend/assets/delete-CGD2yO4V.js +0 -6
- langflow/frontend/assets/dessert-eI1vSC2l.js +0 -6
- langflow/frontend/assets/diameter-D13_YLfb.js +0 -6
- langflow/frontend/assets/diamond-B2yFvfo2.js +0 -6
- langflow/frontend/assets/diamond-minus-BH-Avc4T.js +0 -6
- langflow/frontend/assets/diamond-percent-Dijtk8Hw.js +0 -6
- langflow/frontend/assets/diamond-plus-a6BhC0zt.js +0 -6
- langflow/frontend/assets/dice-1-CXPlHvMH.js +0 -6
- langflow/frontend/assets/dice-2-CLT6U_Lh.js +0 -6
- langflow/frontend/assets/dice-3-BJxV1W4c.js +0 -6
- langflow/frontend/assets/dice-4-Ce_vcqav.js +0 -6
- langflow/frontend/assets/dice-5-BO9ipxYh.js +0 -6
- langflow/frontend/assets/dice-6-DLN1Zl06.js +0 -6
- langflow/frontend/assets/dices-Cc_38rFb.js +0 -6
- langflow/frontend/assets/diff-BUIyH3-S.js +0 -6
- langflow/frontend/assets/disc-2-DzYUjpQ-.js +0 -6
- langflow/frontend/assets/disc-3-DAZeIh0u.js +0 -6
- langflow/frontend/assets/disc-DfRimuXy.js +0 -6
- langflow/frontend/assets/disc-album-C3g5DzCJ.js +0 -6
- langflow/frontend/assets/divide-QCSCPsoM.js +0 -6
- langflow/frontend/assets/dna-Sn3aMbqS.js +0 -6
- langflow/frontend/assets/dna-off-D2I4BOPi.js +0 -6
- langflow/frontend/assets/dock-ByKdD_Tm.js +0 -6
- langflow/frontend/assets/dog-e8Qqz08m.js +0 -6
- langflow/frontend/assets/dollar-sign-C7pnHZKm.js +0 -6
- langflow/frontend/assets/donut-BkldCOtc.js +0 -6
- langflow/frontend/assets/door-closed-XI3yg4jo.js +0 -6
- langflow/frontend/assets/door-open-D4CrkHK-.js +0 -6
- langflow/frontend/assets/dot-DBBgVHtb.js +0 -6
- langflow/frontend/assets/download-0RP7mkqc.js +0 -6
- langflow/frontend/assets/drafting-compass-Cf5UdMsb.js +0 -6
- langflow/frontend/assets/drama-BvmC4kCm.js +0 -6
- langflow/frontend/assets/dribbble-CXxeUg_k.js +0 -6
- langflow/frontend/assets/drill-CHzbrLT6.js +0 -6
- langflow/frontend/assets/droplet-mcHiEm1e.js +0 -6
- langflow/frontend/assets/droplet-off-Bip4k7cL.js +0 -6
- langflow/frontend/assets/droplets-BSoMqs46.js +0 -6
- langflow/frontend/assets/drum-5y1z3qoL.js +0 -6
- langflow/frontend/assets/drumstick-DO-dpLMz.js +0 -6
- langflow/frontend/assets/dumbbell-DaAY0ZMd.js +0 -6
- langflow/frontend/assets/ear-DEOATkGx.js +0 -6
- langflow/frontend/assets/ear-off-CkAk_Z6W.js +0 -6
- langflow/frontend/assets/earth-DUfIsOLc.js +0 -6
- langflow/frontend/assets/earth-lock-DjBR2B2w.js +0 -6
- langflow/frontend/assets/eclipse-CG5Spe7E.js +0 -6
- langflow/frontend/assets/egg-CzYmR2Eb.js +0 -6
- langflow/frontend/assets/egg-fried-CaR1xs1C.js +0 -6
- langflow/frontend/assets/egg-off-BqiRbbax.js +0 -6
- langflow/frontend/assets/ellipsis-Zb5OdEJM.js +0 -6
- langflow/frontend/assets/ellipsis-vertical-UjAFDINY.js +0 -6
- langflow/frontend/assets/equal-BN0BnQTF.js +0 -6
- langflow/frontend/assets/equal-approximately-Dy8R6sCg.js +0 -6
- langflow/frontend/assets/equal-not-BVuYG0T3.js +0 -6
- langflow/frontend/assets/eraser-IyC5f2Pg.js +0 -6
- langflow/frontend/assets/ethernet-port-CcvPnxEp.js +0 -6
- langflow/frontend/assets/euro-kvVySsWo.js +0 -6
- langflow/frontend/assets/expand-CZSEs3he.js +0 -6
- langflow/frontend/assets/eye-5XqoPBmL.js +0 -6
- langflow/frontend/assets/eye-closed-tLUeGcQl.js +0 -6
- langflow/frontend/assets/eye-off-DyvbxiJx.js +0 -6
- langflow/frontend/assets/facebook-DUtKHx_t.js +0 -6
- langflow/frontend/assets/factory-BMzxQdhr.js +0 -6
- langflow/frontend/assets/fan-Ce9beViF.js +0 -6
- langflow/frontend/assets/fast-forward-BmBdNZMt.js +0 -6
- langflow/frontend/assets/feather-DwrsAQUR.js +0 -6
- langflow/frontend/assets/fence-C28vXtQv.js +0 -6
- langflow/frontend/assets/ferris-wheel-BPCpMIZ3.js +0 -6
- langflow/frontend/assets/figma-CrjuLC3o.js +0 -6
- langflow/frontend/assets/file-775e9FsS.js +0 -6
- langflow/frontend/assets/file-archive-DvCLZ4Bd.js +0 -6
- langflow/frontend/assets/file-audio-2-D9_dkewe.js +0 -6
- langflow/frontend/assets/file-audio-CCoup7q0.js +0 -6
- langflow/frontend/assets/file-axis-3d-Way_tv-d.js +0 -6
- langflow/frontend/assets/file-badge-2-BjnvMGUB.js +0 -6
- langflow/frontend/assets/file-badge-CvDdEfsc.js +0 -6
- langflow/frontend/assets/file-box-CIR7b-wX.js +0 -6
- langflow/frontend/assets/file-chart-column-Dy-svbrO.js +0 -6
- langflow/frontend/assets/file-chart-column-increasing-BYEzzZYd.js +0 -6
- langflow/frontend/assets/file-chart-line-nssg-w6l.js +0 -6
- langflow/frontend/assets/file-chart-pie-Dy1eEqq8.js +0 -6
- langflow/frontend/assets/file-check-2-DnKCtjYa.js +0 -6
- langflow/frontend/assets/file-check-C1li3p_J.js +0 -6
- langflow/frontend/assets/file-clock-Bt8ozlbn.js +0 -6
- langflow/frontend/assets/file-code-2-DS9jmEqy.js +0 -6
- langflow/frontend/assets/file-code-X-0cj2HC.js +0 -6
- langflow/frontend/assets/file-cog-B1c6vttd.js +0 -6
- langflow/frontend/assets/file-diff-C0_1OmL8.js +0 -6
- langflow/frontend/assets/file-digit-mu3srpOU.js +0 -6
- langflow/frontend/assets/file-down-D4p_S5i4.js +0 -6
- langflow/frontend/assets/file-heart-ViSEX3tH.js +0 -6
- langflow/frontend/assets/file-image-DpX3JkBq.js +0 -6
- langflow/frontend/assets/file-input-D1yXzkMP.js +0 -6
- langflow/frontend/assets/file-json-2-CCt1zDTo.js +0 -6
- langflow/frontend/assets/file-json-keLvrAHj.js +0 -6
- langflow/frontend/assets/file-key-2-Bvx5KAUC.js +0 -6
- langflow/frontend/assets/file-key-Dwpwv-bi.js +0 -6
- langflow/frontend/assets/file-lock-2-BiG8pTpF.js +0 -6
- langflow/frontend/assets/file-lock-DyeJ_y_W.js +0 -6
- langflow/frontend/assets/file-minus-2-CPYOt8eu.js +0 -6
- langflow/frontend/assets/file-minus-CRMGvpk8.js +0 -6
- langflow/frontend/assets/file-music-WVDX8HFp.js +0 -6
- langflow/frontend/assets/file-output-1ShsYv8R.js +0 -6
- langflow/frontend/assets/file-pen-CWxE47_Z.js +0 -6
- langflow/frontend/assets/file-pen-line-184rJjYh.js +0 -6
- langflow/frontend/assets/file-plus-2-D7b5KUnz.js +0 -6
- langflow/frontend/assets/file-plus-6WosvkZk.js +0 -6
- langflow/frontend/assets/file-question-Dwf4_Wde.js +0 -6
- langflow/frontend/assets/file-scan-CiVyMyiX.js +0 -6
- langflow/frontend/assets/file-search-2-C6QsjxtT.js +0 -6
- langflow/frontend/assets/file-search-Bp2w_7MR.js +0 -6
- langflow/frontend/assets/file-sliders-NSODbjCA.js +0 -6
- langflow/frontend/assets/file-spreadsheet-DBqsagaK.js +0 -6
- langflow/frontend/assets/file-stack-DDo3st9X.js +0 -6
- langflow/frontend/assets/file-symlink-Z5TXUq6Q.js +0 -6
- langflow/frontend/assets/file-terminal-COLvqDGL.js +0 -6
- langflow/frontend/assets/file-text-COxgrRB7.js +0 -6
- langflow/frontend/assets/file-type-2-ByBSA-Vh.js +0 -6
- langflow/frontend/assets/file-type-CppSoo5t.js +0 -6
- langflow/frontend/assets/file-up-BS16X30d.js +0 -6
- langflow/frontend/assets/file-user-RmpHfsna.js +0 -6
- langflow/frontend/assets/file-video-2-CGowHWdI.js +0 -6
- langflow/frontend/assets/file-video-Bnd5OWo1.js +0 -6
- langflow/frontend/assets/file-volume-2-BCpdt1QC.js +0 -6
- langflow/frontend/assets/file-volume-BCQL9YVr.js +0 -6
- langflow/frontend/assets/file-warning-CkPrdFLk.js +0 -6
- langflow/frontend/assets/file-x-2-e4CmOLMg.js +0 -6
- langflow/frontend/assets/file-x-ByfgTRgf.js +0 -6
- langflow/frontend/assets/files-CwI6Xavy.js +0 -6
- langflow/frontend/assets/film-M3anFLzZ.js +0 -6
- langflow/frontend/assets/fingerprint-DkJhwQdn.js +0 -6
- langflow/frontend/assets/fire-extinguisher-aB3x2NBU.js +0 -6
- langflow/frontend/assets/fish-MfhZb_pI.js +0 -6
- langflow/frontend/assets/fish-off-B3YrU4bN.js +0 -6
- langflow/frontend/assets/fish-symbol-BPBDboM5.js +0 -6
- langflow/frontend/assets/flag-DPBH2KQa.js +0 -6
- langflow/frontend/assets/flag-off-B-JMfyQQ.js +0 -6
- langflow/frontend/assets/flag-triangle-left-Bax5Pi2c.js +0 -6
- langflow/frontend/assets/flag-triangle-right-C7YNhxr0.js +0 -6
- langflow/frontend/assets/flame-CWN--iwe.js +0 -6
- langflow/frontend/assets/flame-kindling-DXWIIq3U.js +0 -6
- langflow/frontend/assets/flashlight-DQw4NvfW.js +0 -6
- langflow/frontend/assets/flashlight-off-CouCcKj5.js +0 -6
- langflow/frontend/assets/flask-conical-CaMRiHi2.js +0 -6
- langflow/frontend/assets/flask-conical-off-CGtqWvwZ.js +0 -6
- langflow/frontend/assets/flask-round-By-We2UU.js +0 -6
- langflow/frontend/assets/flip-horizontal-2-Cqi9gy_Q.js +0 -6
- langflow/frontend/assets/flip-horizontal-CeX9391Y.js +0 -6
- langflow/frontend/assets/flip-vertical-2-C1oVyQ-i.js +0 -6
- langflow/frontend/assets/flip-vertical-D6in1WfD.js +0 -6
- langflow/frontend/assets/flower-2-DkiGUffp.js +0 -6
- langflow/frontend/assets/flower-BzWC05zr.js +0 -6
- langflow/frontend/assets/focus-BDb91_18.js +0 -6
- langflow/frontend/assets/fold-horizontal-CxCADeKL.js +0 -6
- langflow/frontend/assets/fold-vertical-XKHK_6gl.js +0 -6
- langflow/frontend/assets/folder-C4kr4Yii.js +0 -6
- langflow/frontend/assets/folder-archive-B2RnglTS.js +0 -6
- langflow/frontend/assets/folder-check-B18f92-T.js +0 -6
- langflow/frontend/assets/folder-clock-BvwxO4ca.js +0 -6
- langflow/frontend/assets/folder-closed-D1-y1tJX.js +0 -6
- langflow/frontend/assets/folder-code-BBQ8TLJw.js +0 -6
- langflow/frontend/assets/folder-cog-DsgTMOuN.js +0 -6
- langflow/frontend/assets/folder-dot-Bi4KPwwF.js +0 -6
- langflow/frontend/assets/folder-down-BW3L5XJB.js +0 -6
- langflow/frontend/assets/folder-git-2-DOF28Rao.js +0 -6
- langflow/frontend/assets/folder-git-CgFjGLg_.js +0 -6
- langflow/frontend/assets/folder-heart-6gTexi-_.js +0 -6
- langflow/frontend/assets/folder-input-wNYvr0vF.js +0 -6
- langflow/frontend/assets/folder-kanban-BxM_3Tba.js +0 -6
- langflow/frontend/assets/folder-key-C6y0hRNt.js +0 -6
- langflow/frontend/assets/folder-lock-DckEWHHY.js +0 -6
- langflow/frontend/assets/folder-minus-BU2HlAd9.js +0 -6
- langflow/frontend/assets/folder-open-DGO1bVJt.js +0 -6
- langflow/frontend/assets/folder-open-dot-Us4QKiZC.js +0 -6
- langflow/frontend/assets/folder-output-Cfu88Wh6.js +0 -6
- langflow/frontend/assets/folder-pen-B0uiM4Qa.js +0 -6
- langflow/frontend/assets/folder-plus-Bj8JxXqN.js +0 -6
- langflow/frontend/assets/folder-root-DfSSUXA7.js +0 -6
- langflow/frontend/assets/folder-search-2-D7BSPdpT.js +0 -6
- langflow/frontend/assets/folder-search-CJ8WwGUy.js +0 -6
- langflow/frontend/assets/folder-symlink-B56qWa2h.js +0 -6
- langflow/frontend/assets/folder-sync-B4DlI5De.js +0 -6
- langflow/frontend/assets/folder-tree-CovpJwth.js +0 -6
- langflow/frontend/assets/folder-up-AEhgOKku.js +0 -6
- langflow/frontend/assets/folder-x-CuLCnUjC.js +0 -6
- langflow/frontend/assets/folders-DJkGilme.js +0 -6
- langflow/frontend/assets/footprints-C_YamkTa.js +0 -6
- langflow/frontend/assets/forklift-Bb2m9Z9X.js +0 -6
- langflow/frontend/assets/forward-D1aRQrMC.js +0 -6
- langflow/frontend/assets/frame-B7kgJ5pk.js +0 -6
- langflow/frontend/assets/framer-C9xmBpZN.js +0 -6
- langflow/frontend/assets/frown-CODYs-DB.js +0 -6
- langflow/frontend/assets/fuel-BUC1c6xp.js +0 -6
- langflow/frontend/assets/fullscreen-D6qZ1dCZ.js +0 -6
- langflow/frontend/assets/funnel-NmGpyDBe.js +0 -6
- langflow/frontend/assets/funnel-plus-CinXg476.js +0 -6
- langflow/frontend/assets/funnel-x-Cytobkse.js +0 -6
- langflow/frontend/assets/gallery-horizontal-Dd_Oyhlh.js +0 -6
- langflow/frontend/assets/gallery-horizontal-end-Bz8VboGY.js +0 -6
- langflow/frontend/assets/gallery-thumbnails-CSByasiY.js +0 -6
- langflow/frontend/assets/gallery-vertical-BshJa-Ww.js +0 -6
- langflow/frontend/assets/gallery-vertical-end-D_zaBwZV.js +0 -6
- langflow/frontend/assets/gamepad-2-CYQNQQg9.js +0 -6
- langflow/frontend/assets/gamepad-BEWoxbkC.js +0 -6
- langflow/frontend/assets/gauge-IMlzM7Zz.js +0 -6
- langflow/frontend/assets/gavel-Di3NsTKn.js +0 -6
- langflow/frontend/assets/gem-BrsC4xPD.js +0 -6
- langflow/frontend/assets/ghost-D2uWMo1c.js +0 -6
- langflow/frontend/assets/gift-BJEYG-A4.js +0 -6
- langflow/frontend/assets/git-branch-BN8nBxYI.js +0 -6
- langflow/frontend/assets/git-branch-plus-B9V5vY5I.js +0 -6
- langflow/frontend/assets/git-commit-horizontal-BRv_Mvgr.js +0 -6
- langflow/frontend/assets/git-commit-vertical-Bj8QydSr.js +0 -6
- langflow/frontend/assets/git-compare-BdkAjRpn.js +0 -6
- langflow/frontend/assets/git-compare-arrows-BH5e4pQK.js +0 -6
- langflow/frontend/assets/git-fork-DSpd2wcF.js +0 -6
- langflow/frontend/assets/git-graph-BciM89t9.js +0 -6
- langflow/frontend/assets/git-merge-CInir8lX.js +0 -6
- langflow/frontend/assets/git-pull-request-DlZtAKT0.js +0 -6
- langflow/frontend/assets/git-pull-request-arrow-CYfhUyQZ.js +0 -6
- langflow/frontend/assets/git-pull-request-closed-BsIWaKg9.js +0 -6
- langflow/frontend/assets/git-pull-request-create-DdvEC6GD.js +0 -6
- langflow/frontend/assets/git-pull-request-create-arrow-DmoLW0L2.js +0 -6
- langflow/frontend/assets/git-pull-request-draft-CxPKYdCn.js +0 -6
- langflow/frontend/assets/github-C6bhzgOH.js +0 -6
- langflow/frontend/assets/gitlab-rQ7eE7z0.js +0 -6
- langflow/frontend/assets/glass-water-CLnYoscl.js +0 -6
- langflow/frontend/assets/glasses-DCkfO2Zg.js +0 -6
- langflow/frontend/assets/globe-BpOkFfqi.js +0 -6
- langflow/frontend/assets/globe-lock-DLO0UL5k.js +0 -6
- langflow/frontend/assets/goal-C4i0Tmci.js +0 -6
- langflow/frontend/assets/grab-CI8OiCgx.js +0 -6
- langflow/frontend/assets/graduation-cap-B8X2Bs26.js +0 -6
- langflow/frontend/assets/grape-CRxw6ljU.js +0 -6
- langflow/frontend/assets/grid-2x2-D8bDkG_F.js +0 -6
- langflow/frontend/assets/grid-2x2-check-ry9ms7kr.js +0 -6
- langflow/frontend/assets/grid-2x2-plus-BBgrN9WP.js +0 -6
- langflow/frontend/assets/grid-2x2-x-DDei7ORU.js +0 -6
- langflow/frontend/assets/grid-3x3-BHXVk3AI.js +0 -6
- langflow/frontend/assets/grip-BXaaYhK_.js +0 -6
- langflow/frontend/assets/grip-horizontal-DOo9psID.js +0 -6
- langflow/frontend/assets/grip-vertical-Yru2-H-3.js +0 -6
- langflow/frontend/assets/group-CjFb75Jl.js +0 -6
- langflow/frontend/assets/guitar-6C2vdiFb.js +0 -6
- langflow/frontend/assets/ham-BTttcqse.js +0 -6
- langflow/frontend/assets/hammer-B8kElYjx.js +0 -6
- langflow/frontend/assets/hand-7mR0KOU8.js +0 -6
- langflow/frontend/assets/hand-coins-D5bXR1qE.js +0 -6
- langflow/frontend/assets/hand-heart-Bf_qk4AJ.js +0 -6
- langflow/frontend/assets/hand-helping-DwPTCwCz.js +0 -6
- langflow/frontend/assets/hand-metal-CdPh6gkj.js +0 -6
- langflow/frontend/assets/hand-platter-iTTTCgch.js +0 -6
- langflow/frontend/assets/handshake-DEKKKmFA.js +0 -6
- langflow/frontend/assets/hard-drive-DwWsOW-s.js +0 -6
- langflow/frontend/assets/hard-drive-download-CZ952Fw0.js +0 -6
- langflow/frontend/assets/hard-drive-upload-C3C6VQ91.js +0 -6
- langflow/frontend/assets/hard-hat-bT5D4G2Q.js +0 -6
- langflow/frontend/assets/hash-CSioKy0P.js +0 -6
- langflow/frontend/assets/haze-C_6eoFr9.js +0 -6
- langflow/frontend/assets/hdmi-port-BrAKz3tl.js +0 -6
- langflow/frontend/assets/heading-1-Cm4uwsSQ.js +0 -6
- langflow/frontend/assets/heading-2-eFZ1zYX5.js +0 -6
- langflow/frontend/assets/heading-3-CnsMyMTO.js +0 -6
- langflow/frontend/assets/heading-4-Bj3lqLc1.js +0 -6
- langflow/frontend/assets/heading-5-B5VefvDM.js +0 -6
- langflow/frontend/assets/heading-6-CvMLWdpc.js +0 -6
- langflow/frontend/assets/heading-Cn8wA1K8.js +0 -6
- langflow/frontend/assets/headphone-off-B3nJD_Av.js +0 -6
- langflow/frontend/assets/headphones-CGVnX7E9.js +0 -6
- langflow/frontend/assets/headset-DwzCWj9O.js +0 -6
- langflow/frontend/assets/heart-D4LLBQB9.js +0 -6
- langflow/frontend/assets/heart-crack-BhDDBIpE.js +0 -6
- langflow/frontend/assets/heart-handshake-CToIE0FU.js +0 -6
- langflow/frontend/assets/heart-minus-CoXH9SAu.js +0 -6
- langflow/frontend/assets/heart-off-BcREpstq.js +0 -6
- langflow/frontend/assets/heart-plus-Bf3OK1pt.js +0 -6
- langflow/frontend/assets/heart-pulse-CbkUJVNa.js +0 -6
- langflow/frontend/assets/heater-DD8DZ6At.js +0 -6
- langflow/frontend/assets/hexagon-DZnqx_O5.js +0 -6
- langflow/frontend/assets/highlighter-ChtNrau4.js +0 -6
- langflow/frontend/assets/history-B6O21AGa.js +0 -6
- langflow/frontend/assets/hop-DC6q-iit.js +0 -6
- langflow/frontend/assets/hop-off-B881EoK_.js +0 -6
- langflow/frontend/assets/hospital-_I9yNusu.js +0 -6
- langflow/frontend/assets/hotel-M6hj2WnQ.js +0 -6
- langflow/frontend/assets/hourglass-Cic7XeB_.js +0 -6
- langflow/frontend/assets/house-BUHY4X5A.js +0 -6
- langflow/frontend/assets/house-plug-yG_gTn3T.js +0 -6
- langflow/frontend/assets/house-plus-BByw5g5k.js +0 -6
- langflow/frontend/assets/house-wifi-DYmeNpbK.js +0 -6
- langflow/frontend/assets/ice-cream-bowl-BggIogGa.js +0 -6
- langflow/frontend/assets/ice-cream-cone-B5wkhWeA.js +0 -6
- langflow/frontend/assets/id-card-Bfy0HSx5.js +0 -6
- langflow/frontend/assets/image-DSL4UUHn.js +0 -6
- langflow/frontend/assets/image-down-DmwX5RE8.js +0 -6
- langflow/frontend/assets/image-minus-D1B7qEbk.js +0 -6
- langflow/frontend/assets/image-off-8TF7LUuy.js +0 -6
- langflow/frontend/assets/image-play-TBf432Ol.js +0 -6
- langflow/frontend/assets/image-plus-B2_YnhBR.js +0 -6
- langflow/frontend/assets/image-up-CfC1AKHj.js +0 -6
- langflow/frontend/assets/image-upscale-QQ6bmkYu.js +0 -6
- langflow/frontend/assets/images-BCDCCNB_.js +0 -6
- langflow/frontend/assets/import-O8KNetzv.js +0 -6
- langflow/frontend/assets/inbox-CaxjVG6P.js +0 -6
- langflow/frontend/assets/indent-decrease-CJ4hfRcn.js +0 -6
- langflow/frontend/assets/indent-increase-Cu9yDmbp.js +0 -6
- langflow/frontend/assets/index--3gV7rCD.js +0 -1
- langflow/frontend/assets/index-0YKmtVW6.js +0 -1
- langflow/frontend/assets/index-0mWG3PZo.js +0 -1
- langflow/frontend/assets/index-1H6ZgCyv.js +0 -1
- langflow/frontend/assets/index-2_a5igZb.js +0 -1
- langflow/frontend/assets/index-4HG7wLAf.js +0 -1
- langflow/frontend/assets/index-6WS40jWN.js +0 -1
- langflow/frontend/assets/index-74K4GOMO.js +0 -1
- langflow/frontend/assets/index-8TKmKX-5.js +0 -1
- langflow/frontend/assets/index-A9b6ZfHf.js +0 -1
- langflow/frontend/assets/index-B0bSADPk.js +0 -1
- langflow/frontend/assets/index-B3eP4cUB.js +0 -1
- langflow/frontend/assets/index-B40iEZ9U.js +0 -1
- langflow/frontend/assets/index-B4NxF5gq.js +0 -1
- langflow/frontend/assets/index-B5NxWXI_.js +0 -1
- langflow/frontend/assets/index-B5xkE5Dp.js +0 -185
- langflow/frontend/assets/index-B7YfhZGf.js +0 -1
- langflow/frontend/assets/index-B8LNFr4a.js +0 -1
- langflow/frontend/assets/index-B9FJd-7v.js +0 -1
- langflow/frontend/assets/index-B9LPAgT7.js +0 -1
- langflow/frontend/assets/index-B9LtaQjA.js +0 -1
- langflow/frontend/assets/index-BADDEMXw.js +0 -1
- langflow/frontend/assets/index-BBsghJUT.js +0 -1
- langflow/frontend/assets/index-BCDXXreA.js +0 -1
- langflow/frontend/assets/index-BCVK3zTe.js +0 -1
- langflow/frontend/assets/index-BFC4khO6.js +0 -1
- langflow/frontend/assets/index-BI2VzYOd.js +0 -1
- langflow/frontend/assets/index-BIjCQDQH.js +0 -1
- langflow/frontend/assets/index-BLsmS-RO.js +0 -7
- langflow/frontend/assets/index-BLtkDnaL.css +0 -1
- langflow/frontend/assets/index-BLuEFOWC.js +0 -281
- langflow/frontend/assets/index-BM2YzGYb.js +0 -1
- langflow/frontend/assets/index-BMUtLdUf.js +0 -1
- langflow/frontend/assets/index-BNB45uNs.js +0 -1
- langflow/frontend/assets/index-BOs02Xm7.js +0 -1
- langflow/frontend/assets/index-BOyK_V6Y.js +0 -1
- langflow/frontend/assets/index-BP_8EDe_.js +0 -1
- langflow/frontend/assets/index-BSf9WcPF.js +0 -1
- langflow/frontend/assets/index-BUoqrFjF.js +0 -1
- langflow/frontend/assets/index-BWEOo0An.js +0 -1
- langflow/frontend/assets/index-BX2NSIP7.js +0 -1
- langflow/frontend/assets/index-BX4kfz-h.js +0 -1
- langflow/frontend/assets/index-BXsbGYTZ.js +0 -1
- langflow/frontend/assets/index-BZ118y8y.js +0 -1
- langflow/frontend/assets/index-B_5ttNw_.js +0 -1
- langflow/frontend/assets/index-Bb6VCv4x.js +0 -1
- langflow/frontend/assets/index-BbDjIh3p.js +0 -1
- langflow/frontend/assets/index-Be6iW0kT.js +0 -1
- langflow/frontend/assets/index-BfkUC5sq.js +0 -1
- langflow/frontend/assets/index-BhW3dn9V.js +0 -1
- langflow/frontend/assets/index-BiteWVAf.js +0 -1
- langflow/frontend/assets/index-BjMPvpmE.js +0 -1
- langflow/frontend/assets/index-BjQCXmxz.js +0 -1
- langflow/frontend/assets/index-Bk3EWRyC.js +0 -381
- langflow/frontend/assets/index-BkLZjjF-.js +0 -1
- langflow/frontend/assets/index-BlKubfyS.js +0 -205
- langflow/frontend/assets/index-Br2_x2Sb.js +0 -767
- langflow/frontend/assets/index-BsAX4xrP.js +0 -1
- langflow/frontend/assets/index-Bt7PA0RM.js +0 -1
- langflow/frontend/assets/index-Btzsi1-V.js +0 -1
- langflow/frontend/assets/index-BvigoCn0.js +0 -108
- langflow/frontend/assets/index-BxAMRMAU.js +0 -1
- langflow/frontend/assets/index-BxvBRm2_.js +0 -1
- langflow/frontend/assets/index-C-rzMfJg.js +0 -1
- langflow/frontend/assets/index-C0i80GG8.js +0 -1
- langflow/frontend/assets/index-C0lIHsbS.js +0 -1
- langflow/frontend/assets/index-C6c-Yen7.js +0 -1
- langflow/frontend/assets/index-C7_U2_ZM.js +0 -7322
- langflow/frontend/assets/index-C7zZGqlQ.js +0 -1
- langflow/frontend/assets/index-CC1WVKVn.js +0 -1
- langflow/frontend/assets/index-CD6CpHXs.js +0 -1
- langflow/frontend/assets/index-CDdR2nB4.js +0 -1
- langflow/frontend/assets/index-CE3xUvpF.js +0 -1
- langflow/frontend/assets/index-CECINQe4.js +0 -1
- langflow/frontend/assets/index-CGuQN8g5.js +0 -1
- langflow/frontend/assets/index-CK6xR2Dk.js +0 -1
- langflow/frontend/assets/index-CLIsd6aw.js +0 -1
- langflow/frontend/assets/index-CMVgrBIO.js +0 -1
- langflow/frontend/assets/index-CMVxBPvf.js +0 -1
- langflow/frontend/assets/index-CNveoZuD.js +0 -1
- langflow/frontend/assets/index-CODoMRwd.js +0 -1
- langflow/frontend/assets/index-CP5_2aSr.js +0 -1
- langflow/frontend/assets/index-CS2p65kX.js +0 -1
- langflow/frontend/assets/index-CS85Qssq.js +0 -1
- langflow/frontend/assets/index-CSjRBQo9.js +0 -1
- langflow/frontend/assets/index-CTLk1uys.js +0 -1
- langflow/frontend/assets/index-CVHTBHe8.js +0 -1
- langflow/frontend/assets/index-CWMKfQPi.js +0 -1
- langflow/frontend/assets/index-CXPZRRbs.js +0 -1
- langflow/frontend/assets/index-CXwNq39y.js +0 -1
- langflow/frontend/assets/index-CYsaz2n6.js +0 -1
- langflow/frontend/assets/index-Cai7opH_.js +0 -1
- langflow/frontend/assets/index-CbDaouuG.js +0 -1
- langflow/frontend/assets/index-CbgddlPN.js +0 -1
- langflow/frontend/assets/index-Ccr7CgJi.js +0 -1
- langflow/frontend/assets/index-CdB1B3_j.js +0 -1
- langflow/frontend/assets/index-CfEtvlIY.js +0 -1
- langflow/frontend/assets/index-Cfo5O_SK.js +0 -1
- langflow/frontend/assets/index-CgXa5sTr.js +0 -1
- langflow/frontend/assets/index-ChxlOA_I.js +0 -1
- langflow/frontend/assets/index-CiL800BL.js +0 -1
- langflow/frontend/assets/index-CiQjjlbl.js +0 -495
- langflow/frontend/assets/index-Ck3ev9I6.js +0 -1
- langflow/frontend/assets/index-Ck74ZEbx.js +0 -1
- langflow/frontend/assets/index-Ck_RuENf.js +0 -1
- langflow/frontend/assets/index-ClHmEQtn.js +0 -1
- langflow/frontend/assets/index-CmSP2bv6.js +0 -1
- langflow/frontend/assets/index-Cn3UZ1a5.js +0 -1
- langflow/frontend/assets/index-CoZ4T4md.js +0 -1
- langflow/frontend/assets/index-CrAA9e94.js +0 -1
- langflow/frontend/assets/index-CrHrTxY3.js +0 -1
- langflow/frontend/assets/index-CxjsVmbN.js +0 -1
- langflow/frontend/assets/index-Cz9OqsuF.js +0 -399
- langflow/frontend/assets/index-D-QNoyxA.js +0 -1
- langflow/frontend/assets/index-D-Yw-cAX.js +0 -1
- langflow/frontend/assets/index-D247NBZ_.js +0 -1
- langflow/frontend/assets/index-D31Bu6tT.js +0 -1
- langflow/frontend/assets/index-D3i5bEw0.js +0 -1
- langflow/frontend/assets/index-D5ooBhm5.js +0 -1
- langflow/frontend/assets/index-D6z0Xyqf.js +0 -1
- langflow/frontend/assets/index-D822mY-E.js +0 -1
- langflow/frontend/assets/index-DA6SD-VO.js +0 -1
- langflow/frontend/assets/index-DBjIKmb3.js +0 -1
- langflow/frontend/assets/index-DEBCKV0u.js +0 -1
- langflow/frontend/assets/index-DJ83-A6j.js +0 -1
- langflow/frontend/assets/index-DJFCvst2.js +0 -1
- langflow/frontend/assets/index-DOb6iHVe.js +0 -1
- langflow/frontend/assets/index-DQ8pea33.js +0 -1
- langflow/frontend/assets/index-DQF09isZ.js +0 -1
- langflow/frontend/assets/index-DQZqSAUz.js +0 -1
- langflow/frontend/assets/index-DRZ-m5J8.js +0 -1
- langflow/frontend/assets/index-DSOzljGe.js +0 -21
- langflow/frontend/assets/index-DT5Gj8Hy.js +0 -1
- langflow/frontend/assets/index-DTnR1pfr.js +0 -1
- langflow/frontend/assets/index-DU5zlPfd.js +0 -1
- langflow/frontend/assets/index-DVKOYHlY.js +0 -1
- langflow/frontend/assets/index-DYTRIosc.js +0 -1
- langflow/frontend/assets/index-DchlI23-.js +0 -1
- langflow/frontend/assets/index-Ddscyq5K.js +0 -1
- langflow/frontend/assets/index-Dg7xB1bS.js +0 -1
- langflow/frontend/assets/index-DgMVj5wD.js +0 -1
- langflow/frontend/assets/index-DhLTa2H-.js +0 -13
- langflow/frontend/assets/index-DiLXwFnx.js +0 -1
- langflow/frontend/assets/index-DicUsAP7.js +0 -1
- langflow/frontend/assets/index-DjsXS0eD.js +0 -1
- langflow/frontend/assets/index-DlVOavxp.js +0 -1
- langflow/frontend/assets/index-DmFO-jtr.js +0 -1
- langflow/frontend/assets/index-Dperwg8a.js +0 -1
- langflow/frontend/assets/index-Dprjlr2r.js +0 -1
- langflow/frontend/assets/index-DuSsA-8a.js +0 -1
- langflow/frontend/assets/index-DyDX-PtY.js +0 -1
- langflow/frontend/assets/index-DyfjRUTO.js +0 -1
- langflow/frontend/assets/index-DzNHMPVR.js +0 -1
- langflow/frontend/assets/index-EO5jfG_p.js +0 -1
- langflow/frontend/assets/index-IAMHthNG.js +0 -1
- langflow/frontend/assets/index-LByp0vrK.js +0 -1
- langflow/frontend/assets/index-LOgjizon.js +0 -1
- langflow/frontend/assets/index-Lf-EjJVl.js +0 -1
- langflow/frontend/assets/index-M1IRQt_Q.js +0 -1
- langflow/frontend/assets/index-MTLgayGT.js +0 -2
- langflow/frontend/assets/index-Ng1NKN_z.js +0 -1
- langflow/frontend/assets/index-O57qTeHw.js +0 -1
- langflow/frontend/assets/index-OMQVVDm6.js +0 -1
- langflow/frontend/assets/index-PcvnBUF3.js +0 -1
- langflow/frontend/assets/index-RlVff2u1.js +0 -1
- langflow/frontend/assets/index-SHsaTYxY.js +0 -1
- langflow/frontend/assets/index-TDwWWvr2.js +0 -1
- langflow/frontend/assets/index-UEkc8KhM.js +0 -1
- langflow/frontend/assets/index-UjNKqj38.js +0 -127
- langflow/frontend/assets/index-W4HR3lti.js +0 -1
- langflow/frontend/assets/index-WEUJ9tXZ.js +0 -1
- langflow/frontend/assets/index-XMBsUtbe.js +0 -1
- langflow/frontend/assets/index-XymNA0xd.js +0 -1
- langflow/frontend/assets/index-_85X7JuF.js +0 -1
- langflow/frontend/assets/index-_lGgW6DK.js +0 -1
- langflow/frontend/assets/index-e32RF9qm.js +0 -1
- langflow/frontend/assets/index-eWgvebzR.js +0 -20
- langflow/frontend/assets/index-lhxpdMtR.js +0 -1
- langflow/frontend/assets/index-qYcmTfA2.js +0 -1
- langflow/frontend/assets/index-r_z6jw3I.js +0 -1
- langflow/frontend/assets/index-u5-4KBZb.js +0 -1
- langflow/frontend/assets/index-uUxZTu1H.js +0 -1
- langflow/frontend/assets/index-wTI74G_l.js +0 -1
- langflow/frontend/assets/index-zRmak2Vu.js +0 -1
- langflow/frontend/assets/indian-rupee-BJgxlYc5.js +0 -6
- langflow/frontend/assets/infinity-C7IeWGAo.js +0 -6
- langflow/frontend/assets/info-D9iPSDPH.js +0 -6
- langflow/frontend/assets/inspection-panel-CQyCpPK3.js +0 -6
- langflow/frontend/assets/instagram-DSTYbTEX.js +0 -6
- langflow/frontend/assets/italic-xycmyUQ8.js +0 -6
- langflow/frontend/assets/iteration-ccw-YCcbhGC_.js +0 -6
- langflow/frontend/assets/iteration-cw-DUevi2KD.js +0 -6
- langflow/frontend/assets/japanese-yen-ydgkmwhN.js +0 -6
- langflow/frontend/assets/joystick-kXjyInjJ.js +0 -6
- langflow/frontend/assets/kanban-W5UQy_jy.js +0 -6
- langflow/frontend/assets/key-3GDozPgJ.js +0 -6
- langflow/frontend/assets/key-round-vs89v3Jh.js +0 -6
- langflow/frontend/assets/key-square-DS6MUEvP.js +0 -6
- langflow/frontend/assets/keyboard-DLezeASj.js +0 -6
- langflow/frontend/assets/keyboard-music-DXFCFuQf.js +0 -6
- langflow/frontend/assets/keyboard-off-DZoaddpG.js +0 -6
- langflow/frontend/assets/lamp-DjzhF5wP.js +0 -6
- langflow/frontend/assets/lamp-ceiling-oz5DIV4I.js +0 -6
- langflow/frontend/assets/lamp-desk-DSvj5OJD.js +0 -6
- langflow/frontend/assets/lamp-floor-Crf1KlYg.js +0 -6
- langflow/frontend/assets/lamp-wall-down-C9EIJjho.js +0 -6
- langflow/frontend/assets/lamp-wall-up-sfszju7d.js +0 -6
- langflow/frontend/assets/land-plot-ChdFk66-.js +0 -6
- langflow/frontend/assets/landmark-B6JkXgpA.js +0 -6
- langflow/frontend/assets/languages-BGnyv8im.js +0 -6
- langflow/frontend/assets/laptop-DeMiO2Fc.js +0 -6
- langflow/frontend/assets/laptop-minimal-BSKEiZu7.js +0 -6
- langflow/frontend/assets/laptop-minimal-check-DzrqcbdL.js +0 -6
- langflow/frontend/assets/lasso-CiP2Lrto.js +0 -6
- langflow/frontend/assets/lasso-select-BmKysTFZ.js +0 -6
- langflow/frontend/assets/laugh-DY9685iy.js +0 -6
- langflow/frontend/assets/layers-2-DmgK8VJ2.js +0 -6
- langflow/frontend/assets/layers-C7s3_aAR.js +0 -6
- langflow/frontend/assets/layout-dashboard-CJUf-VVz.js +0 -6
- langflow/frontend/assets/layout-grid-rNmCwSL-.js +0 -6
- langflow/frontend/assets/layout-list-DJ-6dA3E.js +0 -6
- langflow/frontend/assets/layout-panel-left-Bkx3-XKI.js +0 -6
- langflow/frontend/assets/layout-panel-top-Bq_5HbL2.js +0 -6
- langflow/frontend/assets/layout-template-BQ9KU4kY.js +0 -6
- langflow/frontend/assets/lazyIconImports-C-AI1paP.js +0 -2
- langflow/frontend/assets/leaf-CKRO-uXn.js +0 -6
- langflow/frontend/assets/leafy-green-TYJKJuSE.js +0 -6
- langflow/frontend/assets/lectern-D7WzgpCI.js +0 -6
- langflow/frontend/assets/letter-text-DyOpunwi.js +0 -6
- langflow/frontend/assets/library-Ba2WQdb9.js +0 -6
- langflow/frontend/assets/library-big-BDb88yZU.js +0 -6
- langflow/frontend/assets/life-buoy-CpMkiuL0.js +0 -6
- langflow/frontend/assets/ligature-bgH58XUI.js +0 -6
- langflow/frontend/assets/lightbulb-BdsTMQxl.js +0 -6
- langflow/frontend/assets/lightbulb-off-rbyDvWRe.js +0 -6
- langflow/frontend/assets/link-2-DhTbbEz_.js +0 -6
- langflow/frontend/assets/link-2-off-BfETUtEz.js +0 -6
- langflow/frontend/assets/link-CcQZ1jfw.js +0 -6
- langflow/frontend/assets/linkedin-CEyAFVAH.js +0 -6
- langflow/frontend/assets/list-BnJMbteE.js +0 -6
- langflow/frontend/assets/list-check-Bse5eS25.js +0 -6
- langflow/frontend/assets/list-checks-CUW1X6ey.js +0 -6
- langflow/frontend/assets/list-collapse-cPLboM87.js +0 -6
- langflow/frontend/assets/list-end-CWzEITqO.js +0 -6
- langflow/frontend/assets/list-filter-VBnrg6Gr.js +0 -6
- langflow/frontend/assets/list-filter-plus-wA0ooYg5.js +0 -6
- langflow/frontend/assets/list-minus-BlaNdM3S.js +0 -6
- langflow/frontend/assets/list-music-DR80y7Ig.js +0 -6
- langflow/frontend/assets/list-ordered-vvaKlmpG.js +0 -6
- langflow/frontend/assets/list-plus-DLxI1GLR.js +0 -6
- langflow/frontend/assets/list-restart-C2akjdn9.js +0 -6
- langflow/frontend/assets/list-start-Dveai694.js +0 -6
- langflow/frontend/assets/list-todo-DnYIEpys.js +0 -6
- langflow/frontend/assets/list-tree-D8H7QJY8.js +0 -6
- langflow/frontend/assets/list-video-dtp8GdM4.js +0 -6
- langflow/frontend/assets/list-x-Xc73BW9W.js +0 -6
- langflow/frontend/assets/loader-BG5SqKap.js +0 -6
- langflow/frontend/assets/loader-circle-BV9FnS4J.js +0 -6
- langflow/frontend/assets/loader-pinwheel-BY76cSBp.js +0 -6
- langflow/frontend/assets/locate-_oqqNc-F.js +0 -6
- langflow/frontend/assets/locate-fixed-CpYE2lNA.js +0 -6
- langflow/frontend/assets/locate-off-D6BkCdaZ.js +0 -6
- langflow/frontend/assets/location-edit-DUGWeEBn.js +0 -6
- langflow/frontend/assets/lock-CIIECZ_y.js +0 -6
- langflow/frontend/assets/lock-keyhole-B84UqGHZ.js +0 -6
- langflow/frontend/assets/lock-keyhole-open-D1csvcxJ.js +0 -6
- langflow/frontend/assets/lock-open-CibuEOd1.js +0 -6
- langflow/frontend/assets/log-in-CIJC28Zs.js +0 -6
- langflow/frontend/assets/log-out-BMcpuxgZ.js +0 -6
- langflow/frontend/assets/logs-BundlPcG.js +0 -6
- langflow/frontend/assets/lollipop-M0ZWNRGZ.js +0 -6
- langflow/frontend/assets/luggage-BHDmxakx.js +0 -6
- langflow/frontend/assets/magnet-BbzHhtcX.js +0 -6
- langflow/frontend/assets/mail-DsI1b2Sl.js +0 -6
- langflow/frontend/assets/mail-check-c6DAqMCJ.js +0 -6
- langflow/frontend/assets/mail-minus-B_ORq69v.js +0 -6
- langflow/frontend/assets/mail-open-DkF2gbv0.js +0 -6
- langflow/frontend/assets/mail-plus-DLy6lDZ-.js +0 -6
- langflow/frontend/assets/mail-question-BniWlEow.js +0 -6
- langflow/frontend/assets/mail-search-CiM15Y-A.js +0 -6
- langflow/frontend/assets/mail-warning-B2PzAYxL.js +0 -6
- langflow/frontend/assets/mail-x-CkVyqbro.js +0 -6
- langflow/frontend/assets/mailbox-CzZCaasz.js +0 -6
- langflow/frontend/assets/mails-DbRz1ZoE.js +0 -6
- langflow/frontend/assets/map-DiIIng_l.js +0 -6
- langflow/frontend/assets/map-pin-CRfNVjwo.js +0 -6
- langflow/frontend/assets/map-pin-check-CD5ECGah.js +0 -6
- langflow/frontend/assets/map-pin-check-inside-B14Btfhp.js +0 -6
- langflow/frontend/assets/map-pin-house-BGwkPK11.js +0 -6
- langflow/frontend/assets/map-pin-minus-B7LyQKwD.js +0 -6
- langflow/frontend/assets/map-pin-minus-inside-DYmfeZ52.js +0 -6
- langflow/frontend/assets/map-pin-off-CclKjFO4.js +0 -6
- langflow/frontend/assets/map-pin-plus-CejWQmbJ.js +0 -6
- langflow/frontend/assets/map-pin-plus-inside-BzNva5vZ.js +0 -6
- langflow/frontend/assets/map-pin-x-CQJuOeTu.js +0 -6
- langflow/frontend/assets/map-pin-x-inside-BkS7wNzk.js +0 -6
- langflow/frontend/assets/map-pinned-CYl_mWai.js +0 -6
- langflow/frontend/assets/map-plus-D-4QggmL.js +0 -6
- langflow/frontend/assets/mars-l8Z9FjFm.js +0 -6
- langflow/frontend/assets/mars-stroke-DKRIIW3K.js +0 -6
- langflow/frontend/assets/martini-DLaGHwAE.js +0 -6
- langflow/frontend/assets/maximize-2-CgRJ-WxU.js +0 -6
- langflow/frontend/assets/maximize-BE9yszgs.js +0 -6
- langflow/frontend/assets/medal-cxx0uQk1.js +0 -6
- langflow/frontend/assets/megaphone-BWeA_icL.js +0 -6
- langflow/frontend/assets/megaphone-off-AutSYw6s.js +0 -6
- langflow/frontend/assets/meh-aZfQLyJo.js +0 -6
- langflow/frontend/assets/memory-stick-CoBt60ML.js +0 -6
- langflow/frontend/assets/menu-DQfCjGlO.js +0 -6
- langflow/frontend/assets/merge-vWcRachC.js +0 -6
- langflow/frontend/assets/message-circle-BTcAV-Ej.js +0 -6
- langflow/frontend/assets/message-circle-code-BDY4aQ-e.js +0 -6
- langflow/frontend/assets/message-circle-dashed-BUYXqXrB.js +0 -6
- langflow/frontend/assets/message-circle-heart-CD7H6LOP.js +0 -6
- langflow/frontend/assets/message-circle-more-D74dNSRA.js +0 -6
- langflow/frontend/assets/message-circle-off-AR3f4YvB.js +0 -6
- langflow/frontend/assets/message-circle-plus-HH66gkm5.js +0 -6
- langflow/frontend/assets/message-circle-question-BZD1Wrwu.js +0 -6
- langflow/frontend/assets/message-circle-reply-CLC2HEtB.js +0 -6
- langflow/frontend/assets/message-circle-warning-Co_yXv8R.js +0 -6
- langflow/frontend/assets/message-circle-x-BTxHj511.js +0 -6
- langflow/frontend/assets/message-square-CyQWJT3j.js +0 -6
- langflow/frontend/assets/message-square-code-DEXlyRbL.js +0 -6
- langflow/frontend/assets/message-square-dashed-CFbzDEOq.js +0 -6
- langflow/frontend/assets/message-square-diff-Co-qYuXQ.js +0 -6
- langflow/frontend/assets/message-square-dot-D9tS90jO.js +0 -6
- langflow/frontend/assets/message-square-heart-CFbt0_VY.js +0 -6
- langflow/frontend/assets/message-square-lock-DL3Dm5hQ.js +0 -6
- langflow/frontend/assets/message-square-more-DlSudYPp.js +0 -6
- langflow/frontend/assets/message-square-off-DR0EpX-c.js +0 -6
- langflow/frontend/assets/message-square-plus-pAt43OIO.js +0 -6
- langflow/frontend/assets/message-square-quote-BhsYThYn.js +0 -6
- langflow/frontend/assets/message-square-reply-Dg8LKJw9.js +0 -6
- langflow/frontend/assets/message-square-share-C_k-Lwv7.js +0 -6
- langflow/frontend/assets/message-square-text-BBbOWAb7.js +0 -6
- langflow/frontend/assets/message-square-warning-BIJF4XM_.js +0 -6
- langflow/frontend/assets/message-square-x-CwH3LJhW.js +0 -6
- langflow/frontend/assets/messages-square-CPsbQ3bl.js +0 -6
- langflow/frontend/assets/mic-CccM8OCN.js +0 -6
- langflow/frontend/assets/mic-off-BvN8E_Di.js +0 -6
- langflow/frontend/assets/mic-vocal-CWFRkDl6.js +0 -6
- langflow/frontend/assets/microchip-D8fQeuL5.js +0 -6
- langflow/frontend/assets/microscope-BsB19BJX.js +0 -6
- langflow/frontend/assets/microwave-DX4tH5rB.js +0 -6
- langflow/frontend/assets/milestone-B7_-oO9w.js +0 -6
- langflow/frontend/assets/milk-CX8Tqzn5.js +0 -6
- langflow/frontend/assets/milk-off-DLhtA-bN.js +0 -6
- langflow/frontend/assets/minimize-2-CuZ8X4DU.js +0 -6
- langflow/frontend/assets/minimize-DyV-cO4j.js +0 -6
- langflow/frontend/assets/monitor-BIFDRVT-.js +0 -6
- langflow/frontend/assets/monitor-check-BqZjAu3A.js +0 -6
- langflow/frontend/assets/monitor-cog-BWufeT7Q.js +0 -6
- langflow/frontend/assets/monitor-dot-DtFwhKid.js +0 -6
- langflow/frontend/assets/monitor-down-a1FPnquS.js +0 -6
- langflow/frontend/assets/monitor-off-CFZ3Bcia.js +0 -6
- langflow/frontend/assets/monitor-pause-BhdR0uGT.js +0 -6
- langflow/frontend/assets/monitor-play-LfxY_Ou4.js +0 -6
- langflow/frontend/assets/monitor-smartphone-B6QFV7Gp.js +0 -6
- langflow/frontend/assets/monitor-speaker-3dv39rE8.js +0 -6
- langflow/frontend/assets/monitor-stop-Dmu-dlu7.js +0 -6
- langflow/frontend/assets/monitor-up-zDpfxNPD.js +0 -6
- langflow/frontend/assets/monitor-x-BAp987wG.js +0 -6
- langflow/frontend/assets/moon-czBu3_xv.js +0 -6
- langflow/frontend/assets/moon-star-gEbYeYbK.js +0 -6
- langflow/frontend/assets/mountain-BXYJ77Rn.js +0 -6
- langflow/frontend/assets/mountain-snow-B653pqAn.js +0 -6
- langflow/frontend/assets/mouse-off-0aif-NJL.js +0 -6
- langflow/frontend/assets/mouse-pointer-2-epUIV-er.js +0 -6
- langflow/frontend/assets/mouse-pointer-ban-1xsxr2Cn.js +0 -6
- langflow/frontend/assets/mouse-pointer-click-syh3orrJ.js +0 -6
- langflow/frontend/assets/mouse-pointer-e26nfqwR.js +0 -6
- langflow/frontend/assets/mouse-s8bNpYm0.js +0 -6
- langflow/frontend/assets/move-3d-BvtPL499.js +0 -6
- langflow/frontend/assets/move-DvVQsW2_.js +0 -6
- langflow/frontend/assets/move-diagonal-2-CW3Jv6He.js +0 -6
- langflow/frontend/assets/move-diagonal-BgPsj6d3.js +0 -6
- langflow/frontend/assets/move-down-BLyzLZPr.js +0 -6
- langflow/frontend/assets/move-down-left-CdmUNW0U.js +0 -6
- langflow/frontend/assets/move-down-right-CxXmXUca.js +0 -6
- langflow/frontend/assets/move-horizontal-BgyNOSGe.js +0 -6
- langflow/frontend/assets/move-left-De41EPwt.js +0 -6
- langflow/frontend/assets/move-right-BMS3qOaU.js +0 -6
- langflow/frontend/assets/move-up-DDaHGEdA.js +0 -6
- langflow/frontend/assets/move-up-left-C3KUnQFi.js +0 -6
- langflow/frontend/assets/move-up-right-wSqt1zdT.js +0 -6
- langflow/frontend/assets/move-vertical-CruvB0f0.js +0 -6
- langflow/frontend/assets/music-2-DErLeopY.js +0 -6
- langflow/frontend/assets/music-3-DLLxoeBk.js +0 -6
- langflow/frontend/assets/music-4-Dviu0uet.js +0 -6
- langflow/frontend/assets/music-73Va2bTb.js +0 -6
- langflow/frontend/assets/navigation-2-Dp0cIWmF.js +0 -6
- langflow/frontend/assets/navigation-2-off-ChVwk_zM.js +0 -6
- langflow/frontend/assets/navigation-kxQ1Fqub.js +0 -6
- langflow/frontend/assets/navigation-off-DFeAofya.js +0 -6
- langflow/frontend/assets/network-CaEVNcVM.js +0 -6
- langflow/frontend/assets/newspaper-CFb6rc28.js +0 -6
- langflow/frontend/assets/nfc-BnyLtVma.js +0 -6
- langflow/frontend/assets/non-binary-C0JMDXPn.js +0 -6
- langflow/frontend/assets/notebook-CRVO5PgM.js +0 -6
- langflow/frontend/assets/notebook-pen-ClK03ekN.js +0 -6
- langflow/frontend/assets/notebook-tabs-DCvciMOE.js +0 -6
- langflow/frontend/assets/notebook-text-BWJ-gCI-.js +0 -6
- langflow/frontend/assets/notepad-text-CjLATBY3.js +0 -6
- langflow/frontend/assets/notepad-text-dashed-Dgh4J08Y.js +0 -6
- langflow/frontend/assets/nut-SWU70a-q.js +0 -6
- langflow/frontend/assets/nut-off-DRKo1Idp.js +0 -6
- langflow/frontend/assets/octagon-DUTVMubP.js +0 -6
- langflow/frontend/assets/octagon-alert-C5O9ApjH.js +0 -6
- langflow/frontend/assets/octagon-minus-C1oerlu8.js +0 -6
- langflow/frontend/assets/octagon-pause-DuNMfhi5.js +0 -6
- langflow/frontend/assets/octagon-x-HJ9YsWgj.js +0 -6
- langflow/frontend/assets/omega-CC_uLjYz.js +0 -6
- langflow/frontend/assets/option-D-_joiz2.js +0 -6
- langflow/frontend/assets/orbit-DiGlLPJM.js +0 -6
- langflow/frontend/assets/origami-BbIcjyKs.js +0 -6
- langflow/frontend/assets/package-2-BgQcmmcD.js +0 -6
- langflow/frontend/assets/package-BtFqWy1B.js +0 -6
- langflow/frontend/assets/package-check-BI6DglxF.js +0 -6
- langflow/frontend/assets/package-minus-bgC3f6fw.js +0 -6
- langflow/frontend/assets/package-open-BWwO8irc.js +0 -6
- langflow/frontend/assets/package-plus-BTZ9zBFV.js +0 -6
- langflow/frontend/assets/package-search-BeSVBfSK.js +0 -6
- langflow/frontend/assets/package-x-DwBmnRRB.js +0 -6
- langflow/frontend/assets/paint-bucket-BQahE9bZ.js +0 -6
- langflow/frontend/assets/paint-roller-pjsM9YFD.js +0 -6
- langflow/frontend/assets/paintbrush-C08C-QKC.js +0 -6
- langflow/frontend/assets/paintbrush-vertical-CZXzKU1Q.js +0 -6
- langflow/frontend/assets/palette-BRZOleDF.js +0 -6
- langflow/frontend/assets/panel-bottom-CxNaYrTU.js +0 -6
- langflow/frontend/assets/panel-bottom-close-CDEp0NvM.js +0 -6
- langflow/frontend/assets/panel-bottom-dashed-CMeDPGMr.js +0 -6
- langflow/frontend/assets/panel-bottom-open-CZIHe0UT.js +0 -6
- langflow/frontend/assets/panel-left-close-BXI4BGwP.js +0 -6
- langflow/frontend/assets/panel-left-dashed-C03n5lCs.js +0 -6
- langflow/frontend/assets/panel-left-open-06lsrBtO.js +0 -6
- langflow/frontend/assets/panel-right-CMfbehJ1.js +0 -6
- langflow/frontend/assets/panel-right-close-C7tPaKSv.js +0 -6
- langflow/frontend/assets/panel-right-dashed-C9RkAVyT.js +0 -6
- langflow/frontend/assets/panel-right-open-CNpNPOYm.js +0 -6
- langflow/frontend/assets/panel-top-Da0u_Hkh.js +0 -6
- langflow/frontend/assets/panel-top-close-BnztDTyd.js +0 -6
- langflow/frontend/assets/panel-top-dashed-Bh3ZC_bF.js +0 -6
- langflow/frontend/assets/panel-top-open-Bj5nFjLg.js +0 -6
- langflow/frontend/assets/panels-left-bottom-DSyoIQv_.js +0 -6
- langflow/frontend/assets/panels-right-bottom-CIDoNP-l.js +0 -6
- langflow/frontend/assets/panels-top-left-CE5VOoBt.js +0 -6
- langflow/frontend/assets/paperclip-DD8lPxhn.js +0 -6
- langflow/frontend/assets/parentheses-C4xK4oyy.js +0 -6
- langflow/frontend/assets/parking-meter-OZjlKzY8.js +0 -6
- langflow/frontend/assets/party-popper-CkTcLdcc.js +0 -6
- langflow/frontend/assets/pause-Cb1EXrgy.js +0 -6
- langflow/frontend/assets/paw-print-BEKnghuQ.js +0 -6
- langflow/frontend/assets/pc-case-CpzFJ-Xp.js +0 -6
- langflow/frontend/assets/pen-COnz-_cH.js +0 -6
- langflow/frontend/assets/pen-line-C4zNmJFH.js +0 -6
- langflow/frontend/assets/pen-off-VUoykf6s.js +0 -6
- langflow/frontend/assets/pen-tool-D4FZSygW.js +0 -6
- langflow/frontend/assets/pencil-ByPKRMmq.js +0 -6
- langflow/frontend/assets/pencil-line-Bv9je-vI.js +0 -6
- langflow/frontend/assets/pencil-off-CiZ7AhV_.js +0 -6
- langflow/frontend/assets/pencil-ruler-BHLMuNMv.js +0 -6
- langflow/frontend/assets/pentagon-CUI4YzSr.js +0 -6
- langflow/frontend/assets/percent-YOQjWteA.js +0 -6
- langflow/frontend/assets/person-standing-DqB1SUPk.js +0 -6
- langflow/frontend/assets/philippine-peso-D20f1BOA.js +0 -6
- langflow/frontend/assets/phone-5ocAjAeA.js +0 -6
- langflow/frontend/assets/phone-call-_ZG7-CAB.js +0 -6
- langflow/frontend/assets/phone-forwarded-CgnJsqjh.js +0 -6
- langflow/frontend/assets/phone-incoming-BoccloKk.js +0 -6
- langflow/frontend/assets/phone-missed-H7zfYDh-.js +0 -6
- langflow/frontend/assets/phone-off-ByW5LAJG.js +0 -6
- langflow/frontend/assets/phone-outgoing-DNzoWzfU.js +0 -6
- langflow/frontend/assets/pi-DfB2iqyH.js +0 -6
- langflow/frontend/assets/piano-DwFcC0JU.js +0 -6
- langflow/frontend/assets/pickaxe-Bg0aL2jN.js +0 -6
- langflow/frontend/assets/picture-in-picture-2-C8kFaPgp.js +0 -6
- langflow/frontend/assets/picture-in-picture-D39ISPrR.js +0 -6
- langflow/frontend/assets/piggy-bank-DlTvkJoR.js +0 -6
- langflow/frontend/assets/pilcrow-left-dzYwLdX_.js +0 -6
- langflow/frontend/assets/pilcrow-nbTh8hD5.js +0 -6
- langflow/frontend/assets/pilcrow-right-C70t14lp.js +0 -6
- langflow/frontend/assets/pill-CdYW6M-g.js +0 -6
- langflow/frontend/assets/pill-bottle-D_nhWd9Q.js +0 -6
- langflow/frontend/assets/pin-off-Crm0xbt8.js +0 -6
- langflow/frontend/assets/pin-vgdy6tSf.js +0 -6
- langflow/frontend/assets/pipette-C2BmXW7M.js +0 -6
- langflow/frontend/assets/pizza-DXeU5s7P.js +0 -6
- langflow/frontend/assets/plane-DTSQkNpR.js +0 -6
- langflow/frontend/assets/plane-landing-hc8Xagim.js +0 -6
- langflow/frontend/assets/plane-takeoff-DUJr8dpo.js +0 -6
- langflow/frontend/assets/play-B6y6WOMM.js +0 -6
- langflow/frontend/assets/plug-2-BA03G-3z.js +0 -6
- langflow/frontend/assets/plug-wJRSXj2b.js +0 -6
- langflow/frontend/assets/plug-zap-0WFLOl5w.js +0 -6
- langflow/frontend/assets/pocket-DsKmk-0s.js +0 -6
- langflow/frontend/assets/pocket-knife-CExwfU6i.js +0 -6
- langflow/frontend/assets/podcast-DqNXzQVP.js +0 -6
- langflow/frontend/assets/pointer-DYXGfH8h.js +0 -6
- langflow/frontend/assets/pointer-off-DzibPpLF.js +0 -6
- langflow/frontend/assets/popcorn-BX7PJk1X.js +0 -6
- langflow/frontend/assets/popsicle-BMI0Dhp1.js +0 -6
- langflow/frontend/assets/pound-sterling-D9niYSEY.js +0 -6
- langflow/frontend/assets/power-CFY25KOZ.js +0 -6
- langflow/frontend/assets/power-off-CgbhJZIb.js +0 -6
- langflow/frontend/assets/presentation-15n5C93j.js +0 -6
- langflow/frontend/assets/printer-CrtLAfFr.js +0 -6
- langflow/frontend/assets/printer-check-Biw-qkdA.js +0 -6
- langflow/frontend/assets/projector-C-rWGn6Y.js +0 -6
- langflow/frontend/assets/proportions-CPKUKklF.js +0 -6
- langflow/frontend/assets/puzzle-BogCZndg.js +0 -6
- langflow/frontend/assets/pyramid-CLmULo-F.js +0 -6
- langflow/frontend/assets/qr-code-CNa3svnh.js +0 -6
- langflow/frontend/assets/quote-D7jbb2LO.js +0 -6
- langflow/frontend/assets/rabbit-w-WHu6bn.js +0 -6
- langflow/frontend/assets/radar-D5VHDH4S.js +0 -6
- langflow/frontend/assets/radiation-D6ABhSfJ.js +0 -6
- langflow/frontend/assets/radical-D49gJE7n.js +0 -6
- langflow/frontend/assets/radio-CA3RpggF.js +0 -6
- langflow/frontend/assets/radio-receiver-D-OBUKVX.js +0 -6
- langflow/frontend/assets/radio-tower-kOimQjiP.js +0 -6
- langflow/frontend/assets/radius-CapQG2SA.js +0 -6
- langflow/frontend/assets/rail-symbol-BQK_EzBv.js +0 -6
- langflow/frontend/assets/rainbow-DlSxTS29.js +0 -6
- langflow/frontend/assets/rat-pwEP0WRp.js +0 -6
- langflow/frontend/assets/ratio-BoliHhGa.js +0 -6
- langflow/frontend/assets/receipt-0hyA5eQ1.js +0 -6
- langflow/frontend/assets/receipt-cent-CEPPAQwQ.js +0 -6
- langflow/frontend/assets/receipt-euro-BwvzJIOF.js +0 -6
- langflow/frontend/assets/receipt-indian-rupee-C7IskKR5.js +0 -6
- langflow/frontend/assets/receipt-japanese-yen-WHwwOvl3.js +0 -6
- langflow/frontend/assets/receipt-pound-sterling-0QGPXozW.js +0 -6
- langflow/frontend/assets/receipt-russian-ruble-DPHoHE69.js +0 -6
- langflow/frontend/assets/receipt-swiss-franc-C1iPXZhb.js +0 -6
- langflow/frontend/assets/receipt-text-Dtb9o-kd.js +0 -6
- langflow/frontend/assets/rectangle-ellipsis-CxkqTyix.js +0 -6
- langflow/frontend/assets/rectangle-goggles-dvjfDeEX.js +0 -6
- langflow/frontend/assets/rectangle-horizontal-QZkUKJrX.js +0 -6
- langflow/frontend/assets/rectangle-vertical-BtQflQd9.js +0 -6
- langflow/frontend/assets/recycle-DFlIs0OV.js +0 -6
- langflow/frontend/assets/redo-2-DstL0EhV.js +0 -6
- langflow/frontend/assets/redo-C_adLbRf.js +0 -6
- langflow/frontend/assets/redo-dot-CGKqOmku.js +0 -6
- langflow/frontend/assets/refresh-ccw-BPYFTW79.js +0 -6
- langflow/frontend/assets/refresh-ccw-dot-BXACMqs9.js +0 -6
- langflow/frontend/assets/refresh-cw-DAv6ZUS3.js +0 -6
- langflow/frontend/assets/refresh-cw-off-C-Wpc23l.js +0 -6
- langflow/frontend/assets/refrigerator-B0bkJiOw.js +0 -6
- langflow/frontend/assets/regex-mbvApI9p.js +0 -6
- langflow/frontend/assets/remove-formatting-CNEktcFe.js +0 -6
- langflow/frontend/assets/repeat-1-DXu_VBHj.js +0 -6
- langflow/frontend/assets/repeat-2-DY5JPWfY.js +0 -6
- langflow/frontend/assets/repeat-Cd62-KlF.js +0 -6
- langflow/frontend/assets/replace-Dn-tvVSY.js +0 -6
- langflow/frontend/assets/replace-all-77fjD3kB.js +0 -6
- langflow/frontend/assets/reply-C2Z4d4Nn.js +0 -6
- langflow/frontend/assets/reply-all-CYkr-Ezo.js +0 -6
- langflow/frontend/assets/rewind-BX_Isy0P.js +0 -6
- langflow/frontend/assets/ribbon-B1560qAp.js +0 -6
- langflow/frontend/assets/rocket-DCKMPh3d.js +0 -6
- langflow/frontend/assets/rocking-chair-BBKn-hHt.js +0 -6
- langflow/frontend/assets/roller-coaster-eHsQDfbt.js +0 -6
- langflow/frontend/assets/rotate-3d-CEwwXBRY.js +0 -6
- langflow/frontend/assets/rotate-ccw-goVjAV9D.js +0 -6
- langflow/frontend/assets/rotate-ccw-key-ClbAsofo.js +0 -6
- langflow/frontend/assets/rotate-ccw-square-BT8R5yIu.js +0 -6
- langflow/frontend/assets/rotate-cw-Fxk1arE0.js +0 -6
- langflow/frontend/assets/rotate-cw-square-Clk9CPUd.js +0 -6
- langflow/frontend/assets/route-D0MxIbyh.js +0 -6
- langflow/frontend/assets/route-off-D944yCCo.js +0 -6
- langflow/frontend/assets/router-mOydy9En.js +0 -6
- langflow/frontend/assets/rows-2-3jKBWiam.js +0 -6
- langflow/frontend/assets/rows-3-0auyW8JV.js +0 -6
- langflow/frontend/assets/rows-4-uiEjyQOS.js +0 -6
- langflow/frontend/assets/rss-CjinSlis.js +0 -6
- langflow/frontend/assets/ruler-B1nxL7cH.js +0 -6
- langflow/frontend/assets/ruler-dimension-line-C0zf-jrE.js +0 -6
- langflow/frontend/assets/russian-ruble-w_K_2IIP.js +0 -6
- langflow/frontend/assets/sailboat-DszVLWz_.js +0 -6
- langflow/frontend/assets/salad-w6JrktMQ.js +0 -6
- langflow/frontend/assets/sandwich-DyyfXt64.js +0 -6
- langflow/frontend/assets/satellite-dish-Ca1uwri2.js +0 -6
- langflow/frontend/assets/satellite-kkWQLUWk.js +0 -6
- langflow/frontend/assets/saudi-riyal-3bJzW9F4.js +0 -6
- langflow/frontend/assets/save-C6Y1vEfu.js +0 -6
- langflow/frontend/assets/save-all-CUgPISmt.js +0 -6
- langflow/frontend/assets/save-off-Bpj1MiTh.js +0 -6
- langflow/frontend/assets/scale-3d-zr9uX072.js +0 -6
- langflow/frontend/assets/scale-BfuIy9Sl.js +0 -6
- langflow/frontend/assets/scaling-xQoqSjyV.js +0 -6
- langflow/frontend/assets/scan-DbCBoZaq.js +0 -6
- langflow/frontend/assets/scan-barcode-CW3cIC2N.js +0 -6
- langflow/frontend/assets/scan-eye-ByThVhf4.js +0 -6
- langflow/frontend/assets/scan-face-JmKVfBG4.js +0 -6
- langflow/frontend/assets/scan-heart-mqL7QZA-.js +0 -6
- langflow/frontend/assets/scan-line-CdWIOXtx.js +0 -6
- langflow/frontend/assets/scan-qr-code-B_unCDs0.js +0 -6
- langflow/frontend/assets/scan-search-CGiNO2Cy.js +0 -6
- langflow/frontend/assets/scan-text-DU0JJ5dm.js +0 -6
- langflow/frontend/assets/school-BH0_MXxO.js +0 -6
- langflow/frontend/assets/scissors-line-dashed-B0XvPJ63.js +0 -6
- langflow/frontend/assets/scissors-mCSfqw30.js +0 -6
- langflow/frontend/assets/screen-share-B-3Xl50_.js +0 -6
- langflow/frontend/assets/screen-share-off-DDolhYm3.js +0 -6
- langflow/frontend/assets/scroll-B76UEdE7.js +0 -6
- langflow/frontend/assets/scroll-text-a3oScRcz.js +0 -6
- langflow/frontend/assets/search-check-C2hY5Rzo.js +0 -6
- langflow/frontend/assets/search-code-DEx2xD9W.js +0 -6
- langflow/frontend/assets/search-slash-LKU7Oduu.js +0 -6
- langflow/frontend/assets/search-x-BisLyQeU.js +0 -6
- langflow/frontend/assets/section-CRklQaDI.js +0 -6
- langflow/frontend/assets/send-B6crGI_G.js +0 -6
- langflow/frontend/assets/send-horizontal-DNyJrWQp.js +0 -6
- langflow/frontend/assets/send-to-back-DiGkUbBy.js +0 -6
- langflow/frontend/assets/separator-horizontal-DLksqhEW.js +0 -6
- langflow/frontend/assets/separator-vertical-Cm1AYxun.js +0 -6
- langflow/frontend/assets/server-BlhoNPZy.js +0 -6
- langflow/frontend/assets/server-cog-CproYMFp.js +0 -6
- langflow/frontend/assets/server-crash-ub5HRrYs.js +0 -6
- langflow/frontend/assets/server-off-D7MU9sKQ.js +0 -6
- langflow/frontend/assets/settings-2-CQsbvdlt.js +0 -6
- langflow/frontend/assets/settings-Blki0Ds-.js +0 -6
- langflow/frontend/assets/shapes-D3ozuUP1.js +0 -6
- langflow/frontend/assets/share-2-CBrk81py.js +0 -6
- langflow/frontend/assets/share-CJnTtMB7.js +0 -6
- langflow/frontend/assets/sheet-CC0wtY6g.js +0 -6
- langflow/frontend/assets/shell-95iFj5f0.js +0 -6
- langflow/frontend/assets/shield-C0FL8-4j.js +0 -6
- langflow/frontend/assets/shield-alert-CZDBHehH.js +0 -6
- langflow/frontend/assets/shield-ban-Dt6kiQXF.js +0 -6
- langflow/frontend/assets/shield-check-0wXPWliZ.js +0 -6
- langflow/frontend/assets/shield-ellipsis-DUCDILqJ.js +0 -6
- langflow/frontend/assets/shield-half-BfBkuvx2.js +0 -6
- langflow/frontend/assets/shield-minus-BnOuQdkj.js +0 -6
- langflow/frontend/assets/shield-off-gvj0346C.js +0 -6
- langflow/frontend/assets/shield-plus-R3MJntqy.js +0 -6
- langflow/frontend/assets/shield-question-ChMCft8_.js +0 -6
- langflow/frontend/assets/shield-user-CMekySdS.js +0 -6
- langflow/frontend/assets/shield-x-D_BGwcsd.js +0 -6
- langflow/frontend/assets/ship-CmTaVyrb.js +0 -6
- langflow/frontend/assets/ship-wheel-hbyU2XL4.js +0 -6
- langflow/frontend/assets/shirt-BMkOyAQk.js +0 -6
- langflow/frontend/assets/shopping-bag-C8_w1pQu.js +0 -6
- langflow/frontend/assets/shopping-basket-BzkbInuz.js +0 -6
- langflow/frontend/assets/shopping-cart-BYtIsqBi.js +0 -6
- langflow/frontend/assets/shovel-sKsBv4E3.js +0 -6
- langflow/frontend/assets/shower-head-BFClr4Ic.js +0 -6
- langflow/frontend/assets/shredder-C0ZIIEgm.js +0 -6
- langflow/frontend/assets/shrimp-CanAqt7B.js +0 -6
- langflow/frontend/assets/shrink-BoAjraIm.js +0 -6
- langflow/frontend/assets/shrub-Bfq9DRu9.js +0 -6
- langflow/frontend/assets/shuffle-BMbh_Pqk.js +0 -6
- langflow/frontend/assets/sigma-CGNjuJWU.js +0 -6
- langflow/frontend/assets/signal-Cfr3xVyp.js +0 -6
- langflow/frontend/assets/signal-high-EyI0DBZJ.js +0 -6
- langflow/frontend/assets/signal-low-C5RcWTNp.js +0 -6
- langflow/frontend/assets/signal-medium-BBKKj0dm.js +0 -6
- langflow/frontend/assets/signal-zero-YMullcG2.js +0 -6
- langflow/frontend/assets/signature-DZqXd_zV.js +0 -6
- langflow/frontend/assets/signpost-big-BbRjoIBo.js +0 -6
- langflow/frontend/assets/signpost-x3iyurYF.js +0 -6
- langflow/frontend/assets/siren-ClV3xjKe.js +0 -6
- langflow/frontend/assets/skip-back-CqLkAFxw.js +0 -6
- langflow/frontend/assets/skip-forward-ClOpr2Ly.js +0 -6
- langflow/frontend/assets/skull-C2ACnWJk.js +0 -6
- langflow/frontend/assets/slack-CXnbfIYn.js +0 -6
- langflow/frontend/assets/slash-BSUxseCA.js +0 -6
- langflow/frontend/assets/slice-DmfCGJ4i.js +0 -6
- langflow/frontend/assets/sliders-horizontal-D0XUXE6T.js +0 -6
- langflow/frontend/assets/sliders-vertical-XLmMbKcx.js +0 -6
- langflow/frontend/assets/smartphone-ClIPaj9J.js +0 -6
- langflow/frontend/assets/smartphone-charging-CRsJ8fbd.js +0 -6
- langflow/frontend/assets/smartphone-nfc-OuQXtX2F.js +0 -6
- langflow/frontend/assets/smile-DxOJNG8w.js +0 -6
- langflow/frontend/assets/smile-plus-CnfhYkMt.js +0 -6
- langflow/frontend/assets/snail-ADdYB0Dk.js +0 -6
- langflow/frontend/assets/snowflake-BhW3JdpK.js +0 -6
- langflow/frontend/assets/sofa-Mb-UbGH5.js +0 -6
- langflow/frontend/assets/soup-CUWnWjoV.js +0 -6
- langflow/frontend/assets/space-CrOQ2Mw3.js +0 -6
- langflow/frontend/assets/spade-DdI35uM9.js +0 -6
- langflow/frontend/assets/sparkle-D2V2VxRK.js +0 -6
- langflow/frontend/assets/sparkles-EWtzE2pt.js +0 -6
- langflow/frontend/assets/speaker-B27eUKDO.js +0 -6
- langflow/frontend/assets/speech-aDCiTzxo.js +0 -6
- langflow/frontend/assets/spell-check-2-CaOzgHR6.js +0 -6
- langflow/frontend/assets/spell-check-i5NmZ_4F.js +0 -6
- langflow/frontend/assets/spline-6L3BurK6.js +0 -6
- langflow/frontend/assets/spline-pointer-D8x002P1.js +0 -6
- langflow/frontend/assets/split-sF7j9wdJ.js +0 -6
- langflow/frontend/assets/spray-can-BiluaeKC.js +0 -6
- langflow/frontend/assets/sprout-mo-k6WFU.js +0 -6
- langflow/frontend/assets/square-Cg5b3I31.js +0 -6
- langflow/frontend/assets/square-activity-Bay5Z9hn.js +0 -6
- langflow/frontend/assets/square-arrow-down-CiA08_E5.js +0 -6
- langflow/frontend/assets/square-arrow-down-left-B7WYag99.js +0 -6
- langflow/frontend/assets/square-arrow-down-right-7We3sc-R.js +0 -6
- langflow/frontend/assets/square-arrow-left-BqmjGxPj.js +0 -6
- langflow/frontend/assets/square-arrow-out-down-left-CBRTbm_i.js +0 -6
- langflow/frontend/assets/square-arrow-out-down-right-3US-tDUG.js +0 -6
- langflow/frontend/assets/square-arrow-out-up-left-S_QuNqDP.js +0 -6
- langflow/frontend/assets/square-arrow-out-up-right-COzKBKps.js +0 -6
- langflow/frontend/assets/square-arrow-right-X6-zbNND.js +0 -6
- langflow/frontend/assets/square-arrow-up-B6i5TxFp.js +0 -6
- langflow/frontend/assets/square-arrow-up-left-DUKCB95k.js +0 -6
- langflow/frontend/assets/square-arrow-up-right-BP531IK3.js +0 -6
- langflow/frontend/assets/square-asterisk-CdZRv003.js +0 -6
- langflow/frontend/assets/square-bottom-dashed-scissors-B457ujeN.js +0 -6
- langflow/frontend/assets/square-chart-gantt-CDO8CVkz.js +0 -6
- langflow/frontend/assets/square-check-DWRTDfjZ.js +0 -6
- langflow/frontend/assets/square-check-big-DGAJ_xR5.js +0 -6
- langflow/frontend/assets/square-chevron-down-CGV1PW-m.js +0 -6
- langflow/frontend/assets/square-chevron-left-DvogyU6O.js +0 -6
- langflow/frontend/assets/square-chevron-right-Db4MxZI3.js +0 -6
- langflow/frontend/assets/square-chevron-up-Dw9J-Zmx.js +0 -6
- langflow/frontend/assets/square-code-YWoMKMs1.js +0 -6
- langflow/frontend/assets/square-dashed-DKwuPQBv.js +0 -6
- langflow/frontend/assets/square-dashed-bottom-DHcB6149.js +0 -6
- langflow/frontend/assets/square-dashed-bottom-code-Ru51JJHN.js +0 -6
- langflow/frontend/assets/square-dashed-kanban-Bx5hjW3v.js +0 -6
- langflow/frontend/assets/square-dashed-mouse-pointer-BVWy-ijI.js +0 -6
- langflow/frontend/assets/square-divide-D81ViHR4.js +0 -6
- langflow/frontend/assets/square-dot-CmS8y1AH.js +0 -6
- langflow/frontend/assets/square-equal-h7OfUibz.js +0 -6
- langflow/frontend/assets/square-function-FmKr_qA9.js +0 -6
- langflow/frontend/assets/square-kanban-DO1M6u5f.js +0 -6
- langflow/frontend/assets/square-library-nIRQfXRT.js +0 -6
- langflow/frontend/assets/square-m-CPEqAqx2.js +0 -6
- langflow/frontend/assets/square-menu-BqiFDkFm.js +0 -6
- langflow/frontend/assets/square-minus-Do0SkTCl.js +0 -6
- langflow/frontend/assets/square-mouse-pointer-y_mHMWko.js +0 -6
- langflow/frontend/assets/square-parking-BSlt1GoK.js +0 -6
- langflow/frontend/assets/square-parking-off-BZ_cp3aG.js +0 -6
- langflow/frontend/assets/square-pen-B-1TDB3t.js +0 -6
- langflow/frontend/assets/square-percent-B49erIWi.js +0 -6
- langflow/frontend/assets/square-pi-CNlM28Qq.js +0 -6
- langflow/frontend/assets/square-pilcrow-CoAjX8F-.js +0 -6
- langflow/frontend/assets/square-play-BSSDUBaT.js +0 -6
- langflow/frontend/assets/square-plus-DjsO049R.js +0 -6
- langflow/frontend/assets/square-power-40jdYYQa.js +0 -6
- langflow/frontend/assets/square-radical-CxAio9qb.js +0 -6
- langflow/frontend/assets/square-round-corner-DAIo12UZ.js +0 -6
- langflow/frontend/assets/square-scissors-BqM2ApW5.js +0 -6
- langflow/frontend/assets/square-sigma-PBQHXnRy.js +0 -6
- langflow/frontend/assets/square-slash-CG9gnL_b.js +0 -6
- langflow/frontend/assets/square-split-horizontal-CHq0E2VP.js +0 -6
- langflow/frontend/assets/square-split-vertical-DR-m68oF.js +0 -6
- langflow/frontend/assets/square-square-CHfwNCHF.js +0 -6
- langflow/frontend/assets/square-stack-K1A5ahG6.js +0 -6
- langflow/frontend/assets/square-terminal-DQkUaPcW.js +0 -6
- langflow/frontend/assets/square-user-MvhzBJjw.js +0 -6
- langflow/frontend/assets/square-user-round-DElo7lNu.js +0 -6
- langflow/frontend/assets/square-x-Der7dxTy.js +0 -6
- langflow/frontend/assets/squares-exclude-DIXrxfpq.js +0 -6
- langflow/frontend/assets/squares-intersect-CwDm0w68.js +0 -6
- langflow/frontend/assets/squares-subtract-D0AgrDSl.js +0 -6
- langflow/frontend/assets/squares-unite-FOsu-pqI.js +0 -6
- langflow/frontend/assets/squircle-B8wMhbiq.js +0 -6
- langflow/frontend/assets/squirrel-xFqEwvv2.js +0 -6
- langflow/frontend/assets/stamp-BI4Q1U7M.js +0 -6
- langflow/frontend/assets/star-DDrBV0z8.js +0 -6
- langflow/frontend/assets/star-half-5u_gljBw.js +0 -6
- langflow/frontend/assets/star-off-DeC0I6-M.js +0 -6
- langflow/frontend/assets/step-back-Df8gO4mw.js +0 -6
- langflow/frontend/assets/step-forward-DPEfnIoR.js +0 -6
- langflow/frontend/assets/stethoscope-DfmfNJtA.js +0 -6
- langflow/frontend/assets/sticker-s2E0f7sK.js +0 -6
- langflow/frontend/assets/sticky-note-CU7sAppk.js +0 -6
- langflow/frontend/assets/store-DVPLpNNW.js +0 -6
- langflow/frontend/assets/stretch-horizontal-D7i8_SJT.js +0 -6
- langflow/frontend/assets/stretch-vertical-CVA_xVYc.js +0 -6
- langflow/frontend/assets/strikethrough-Dk6iQKVd.js +0 -6
- langflow/frontend/assets/subscript-_h26d4A6.js +0 -6
- langflow/frontend/assets/sun-BCB2uZSD.js +0 -6
- langflow/frontend/assets/sun-dim-WVcIn4mw.js +0 -6
- langflow/frontend/assets/sun-medium-CaP_n--X.js +0 -6
- langflow/frontend/assets/sun-moon-C4BdHEoR.js +0 -6
- langflow/frontend/assets/sun-snow-CFo2A2KW.js +0 -6
- langflow/frontend/assets/sunrise-CCkUcpOP.js +0 -6
- langflow/frontend/assets/sunset-DEXEkljK.js +0 -6
- langflow/frontend/assets/superscript-Da6P82Z-.js +0 -6
- langflow/frontend/assets/swatch-book-DI5lpKtR.js +0 -6
- langflow/frontend/assets/swiss-franc-NRWY6J9w.js +0 -6
- langflow/frontend/assets/switch-camera-yuyRgkDh.js +0 -6
- langflow/frontend/assets/sword-BnUxF2cm.js +0 -6
- langflow/frontend/assets/swords-BbCX-ySC.js +0 -6
- langflow/frontend/assets/syringe-HePt9NFz.js +0 -6
- langflow/frontend/assets/table-2-D3bdM62y.js +0 -6
- langflow/frontend/assets/table-CjuI5Y97.js +0 -6
- langflow/frontend/assets/table-cells-merge-B3kBSpBh.js +0 -6
- langflow/frontend/assets/table-cells-split-CIb9RCXh.js +0 -6
- langflow/frontend/assets/table-columns-split-DXmJRFF7.js +0 -6
- langflow/frontend/assets/table-of-contents-Darr8VJW.js +0 -6
- langflow/frontend/assets/table-properties-Dxa3G4Yj.js +0 -6
- langflow/frontend/assets/table-rows-split-qphdvVSu.js +0 -6
- langflow/frontend/assets/tablet-DIWZcatK.js +0 -6
- langflow/frontend/assets/tablet-smartphone-YkbCfOG6.js +0 -6
- langflow/frontend/assets/tablets-D-uVQv9p.js +0 -6
- langflow/frontend/assets/tag-BrEzUpzu.js +0 -6
- langflow/frontend/assets/tags-B_HIAY9Z.js +0 -6
- langflow/frontend/assets/tally-1-DyZgz8we.js +0 -6
- langflow/frontend/assets/tally-2-C6uae1Mq.js +0 -6
- langflow/frontend/assets/tally-3-woXh13sV.js +0 -6
- langflow/frontend/assets/tally-4-neI-9ZWv.js +0 -6
- langflow/frontend/assets/tally-5-xQFkBJss.js +0 -6
- langflow/frontend/assets/tangent-JvLPH-JU.js +0 -6
- langflow/frontend/assets/target-7L_4kDfz.js +0 -6
- langflow/frontend/assets/telescope-BQa7rUFV.js +0 -6
- langflow/frontend/assets/tent-BlCh4PeV.js +0 -6
- langflow/frontend/assets/tent-tree-BGIlSOmb.js +0 -6
- langflow/frontend/assets/terminal-BQbCAXs8.js +0 -6
- langflow/frontend/assets/test-tube-Nu4vHbIc.js +0 -6
- langflow/frontend/assets/test-tube-diagonal-CGk5M-KE.js +0 -6
- langflow/frontend/assets/test-tubes-rd3A03V0.js +0 -6
- langflow/frontend/assets/text-cursor-DXuIRvAG.js +0 -6
- langflow/frontend/assets/text-cursor-input-CKUe6cWU.js +0 -6
- langflow/frontend/assets/text-fF8bIhLg.js +0 -6
- langflow/frontend/assets/text-quote-B5UmeuBK.js +0 -6
- langflow/frontend/assets/text-search-a22gbAoF.js +0 -6
- langflow/frontend/assets/text-select-bFrdPmxL.js +0 -6
- langflow/frontend/assets/theater-ClIK7n2c.js +0 -6
- langflow/frontend/assets/thermometer-CaTC18e6.js +0 -6
- langflow/frontend/assets/thermometer-snowflake-DSlvvyO-.js +0 -6
- langflow/frontend/assets/thermometer-sun-D6Z6YT7z.js +0 -6
- langflow/frontend/assets/thumbs-down-Cg52ipYp.js +0 -6
- langflow/frontend/assets/thumbs-up-CfbK2Ihg.js +0 -6
- langflow/frontend/assets/ticket-B7_7qIJG.js +0 -6
- langflow/frontend/assets/ticket-check-H36bPnOu.js +0 -6
- langflow/frontend/assets/ticket-minus-CPtD_Cr_.js +0 -6
- langflow/frontend/assets/ticket-percent-3TI0U9Ke.js +0 -6
- langflow/frontend/assets/ticket-plus-C-YaHL5K.js +0 -6
- langflow/frontend/assets/ticket-slash-CSv7rDaH.js +0 -6
- langflow/frontend/assets/ticket-x-BFDy9-xd.js +0 -6
- langflow/frontend/assets/tickets-BeSybnzT.js +0 -6
- langflow/frontend/assets/tickets-plane-CjVQGzkX.js +0 -6
- langflow/frontend/assets/timer-BfZoHUHE.js +0 -6
- langflow/frontend/assets/timer-off-BvAhzeEo.js +0 -6
- langflow/frontend/assets/timer-reset-BL3x0EW0.js +0 -6
- langflow/frontend/assets/toggle-left-D7Sp9Da2.js +0 -6
- langflow/frontend/assets/toggle-right-f1fs4TD5.js +0 -6
- langflow/frontend/assets/toilet-n-R6qAT-.js +0 -6
- langflow/frontend/assets/tornado-DtO9WPrw.js +0 -6
- langflow/frontend/assets/torus-DQgzxbQh.js +0 -6
- langflow/frontend/assets/touchpad-CQhgRsPy.js +0 -6
- langflow/frontend/assets/touchpad-off-BbHDbGtI.js +0 -6
- langflow/frontend/assets/tower-control-BHfpoizg.js +0 -6
- langflow/frontend/assets/toy-brick-DV6H7aQ2.js +0 -6
- langflow/frontend/assets/tractor-CJMK07JK.js +0 -6
- langflow/frontend/assets/traffic-cone-CjQLLeOi.js +0 -6
- langflow/frontend/assets/train-front-BjdnhYbI.js +0 -6
- langflow/frontend/assets/train-front-tunnel-Dkm8m-4H.js +0 -6
- langflow/frontend/assets/train-track-BvmqUT8u.js +0 -6
- langflow/frontend/assets/tram-front-BzxJsk9t.js +0 -6
- langflow/frontend/assets/transgender-CdGml6YZ.js +0 -6
- langflow/frontend/assets/trash-BO0sRyEw.js +0 -6
- langflow/frontend/assets/tree-deciduous-BBqILE9o.js +0 -6
- langflow/frontend/assets/tree-palm-366vRf_6.js +0 -6
- langflow/frontend/assets/tree-pine-C_HBFt0t.js +0 -6
- langflow/frontend/assets/trees-DkMlPrUx.js +0 -6
- langflow/frontend/assets/trello-B14JlNoH.js +0 -6
- langflow/frontend/assets/trending-down-nAWtL7_F.js +0 -6
- langflow/frontend/assets/trending-up-CeadtIan.js +0 -6
- langflow/frontend/assets/trending-up-down-Gpazl6Ba.js +0 -6
- langflow/frontend/assets/triangle-B-xiFgIN.js +0 -6
- langflow/frontend/assets/triangle-alert-BgxDUJ49.js +0 -6
- langflow/frontend/assets/triangle-dashed-DkO88IM7.js +0 -6
- langflow/frontend/assets/triangle-right-D9upTQX5.js +0 -6
- langflow/frontend/assets/trophy-crMVgdaS.js +0 -6
- langflow/frontend/assets/truck-W7VMqCeJ.js +0 -6
- langflow/frontend/assets/truck-electric-CYFhuJIx.js +0 -6
- langflow/frontend/assets/turtle-DBCXnES7.js +0 -6
- langflow/frontend/assets/tv-BhKvnXoz.js +0 -6
- langflow/frontend/assets/tv-minimal-DCJ7eYdd.js +0 -6
- langflow/frontend/assets/tv-minimal-play-CYZAvm4j.js +0 -6
- langflow/frontend/assets/twitch-C8-EvyF3.js +0 -6
- langflow/frontend/assets/twitter-ByeH_cjW.js +0 -6
- langflow/frontend/assets/type-BTHayhLn.js +0 -6
- langflow/frontend/assets/type-outline-DPn9npi2.js +0 -6
- langflow/frontend/assets/umbrella-C8NJqj54.js +0 -6
- langflow/frontend/assets/umbrella-off-CcEGZ2h1.js +0 -6
- langflow/frontend/assets/underline-DIcVvnY0.js +0 -6
- langflow/frontend/assets/undo-2-B3Qb7lp1.js +0 -6
- langflow/frontend/assets/undo-2rV23GVf.js +0 -6
- langflow/frontend/assets/undo-dot-D23s0Kql.js +0 -6
- langflow/frontend/assets/unfold-horizontal-DBlcq_ox.js +0 -6
- langflow/frontend/assets/unfold-vertical-Beb3CyqI.js +0 -6
- langflow/frontend/assets/ungroup-DgRXSk4V.js +0 -6
- langflow/frontend/assets/university-DFfzq4yY.js +0 -6
- langflow/frontend/assets/unlink-2-CL-4R8_h.js +0 -6
- langflow/frontend/assets/unlink-CZZ6mYr8.js +0 -6
- langflow/frontend/assets/unplug-bOMP8RoY.js +0 -6
- langflow/frontend/assets/upload-Be6IccFe.js +0 -6
- langflow/frontend/assets/usb-Cuix0WAy.js +0 -6
- langflow/frontend/assets/use-post-add-user-0gbs8kED.js +0 -1
- langflow/frontend/assets/user-D-e7h2wY.js +0 -6
- langflow/frontend/assets/user-check-BvZhi2ff.js +0 -6
- langflow/frontend/assets/user-cog-D3spJ6D0.js +0 -6
- langflow/frontend/assets/user-lock-BqNfej1n.js +0 -6
- langflow/frontend/assets/user-minus-Kjykart7.js +0 -6
- langflow/frontend/assets/user-pen-BkBZI7p4.js +0 -6
- langflow/frontend/assets/user-plus-CW-bKR0m.js +0 -6
- langflow/frontend/assets/user-round-DDT0m1G_.js +0 -6
- langflow/frontend/assets/user-round-check-U2FTJtYL.js +0 -6
- langflow/frontend/assets/user-round-cog-CGqU2DbR.js +0 -6
- langflow/frontend/assets/user-round-minus-jaZrNxjf.js +0 -6
- langflow/frontend/assets/user-round-pen-Bm4Dl2-s.js +0 -6
- langflow/frontend/assets/user-round-plus-Mr8N1t3e.js +0 -6
- langflow/frontend/assets/user-round-search-DgPSExby.js +0 -6
- langflow/frontend/assets/user-round-x-CZKhIxyJ.js +0 -6
- langflow/frontend/assets/user-search-y33vuAcn.js +0 -6
- langflow/frontend/assets/user-x-qQYgY5nd.js +0 -6
- langflow/frontend/assets/users-BT4aT6hI.js +0 -6
- langflow/frontend/assets/users-round-D5_7S_AN.js +0 -6
- langflow/frontend/assets/utensils-DfBHAJAu.js +0 -6
- langflow/frontend/assets/utensils-crossed-Bw_hz9-k.js +0 -6
- langflow/frontend/assets/utility-pole-BOXwObmv.js +0 -6
- langflow/frontend/assets/variable-S8ICgs0d.js +0 -6
- langflow/frontend/assets/vault-Bont0uC4.js +0 -6
- langflow/frontend/assets/vegan-BpGnF0mH.js +0 -6
- langflow/frontend/assets/venetian-mask-CGYUUHD8.js +0 -6
- langflow/frontend/assets/venus-and-mars-B6iyzAHC.js +0 -6
- langflow/frontend/assets/venus-dhRZOhhW.js +0 -6
- langflow/frontend/assets/vibrate-DpzcDxHV.js +0 -6
- langflow/frontend/assets/vibrate-off-IVDTMLXZ.js +0 -6
- langflow/frontend/assets/video-_rkC-UsK.js +0 -6
- langflow/frontend/assets/video-off-KcPee88z.js +0 -6
- langflow/frontend/assets/videotape-BccaJ7Fi.js +0 -6
- langflow/frontend/assets/view-DJEfaGoV.js +0 -6
- langflow/frontend/assets/voicemail-B7TaNJUk.js +0 -6
- langflow/frontend/assets/volleyball-BrS7UTVJ.js +0 -6
- langflow/frontend/assets/volume-1-Dvs4GL2J.js +0 -6
- langflow/frontend/assets/volume-2-BNBeZxmp.js +0 -6
- langflow/frontend/assets/volume-NAmD4TpF.js +0 -6
- langflow/frontend/assets/volume-off-Aezug7Y5.js +0 -6
- langflow/frontend/assets/volume-x-BQzNCGOC.js +0 -6
- langflow/frontend/assets/vote-BXFecmlb.js +0 -6
- langflow/frontend/assets/wallet-BgMzS6ho.js +0 -6
- langflow/frontend/assets/wallet-cards-BV-40ynH.js +0 -6
- langflow/frontend/assets/wallet-minimal-P7-4r_Ei.js +0 -6
- langflow/frontend/assets/wallpaper-e3X-1FSH.js +0 -6
- langflow/frontend/assets/wand-sparkles-fEGeescY.js +0 -6
- langflow/frontend/assets/wand-ymspreQD.js +0 -6
- langflow/frontend/assets/warehouse-ClZO0O7S.js +0 -6
- langflow/frontend/assets/washing-machine-CQE97-Yn.js +0 -6
- langflow/frontend/assets/watch-C0cfQixr.js +0 -6
- langflow/frontend/assets/waves-Di02xtQH.js +0 -6
- langflow/frontend/assets/waves-ladder-DY0SBRAj.js +0 -6
- langflow/frontend/assets/waypoints-CqG9twzJ.js +0 -6
- langflow/frontend/assets/webcam-xsbw73N4.js +0 -6
- langflow/frontend/assets/webhook-DHv9DFBd.js +0 -6
- langflow/frontend/assets/webhook-off-BlifNIUy.js +0 -6
- langflow/frontend/assets/weight-C-2e-51W.js +0 -6
- langflow/frontend/assets/wheat-EsboKBDY.js +0 -6
- langflow/frontend/assets/wheat-off-CtuJsvon.js +0 -6
- langflow/frontend/assets/whole-word-CG7fL5NF.js +0 -6
- langflow/frontend/assets/wifi-CQcWod8a.js +0 -6
- langflow/frontend/assets/wifi-high-CvpGqiAJ.js +0 -6
- langflow/frontend/assets/wifi-low-COVC5mLG.js +0 -6
- langflow/frontend/assets/wifi-off-B5YKUCox.js +0 -6
- langflow/frontend/assets/wifi-pen-DWfynfE3.js +0 -6
- langflow/frontend/assets/wifi-zero-B-uFyjqf.js +0 -6
- langflow/frontend/assets/wind-Dc1mP-Q1.js +0 -6
- langflow/frontend/assets/wind-arrow-down-D7ryAcOg.js +0 -6
- langflow/frontend/assets/wine-DDHvlFZD.js +0 -6
- langflow/frontend/assets/wine-off-HqyJATcz.js +0 -6
- langflow/frontend/assets/workflow-Dp_mwdeE.js +0 -6
- langflow/frontend/assets/worm-DU2P8iee.js +0 -6
- langflow/frontend/assets/wrap-text-CWp14OYP.js +0 -6
- langflow/frontend/assets/wrench-D7w3Oi34.js +0 -6
- langflow/frontend/assets/youtube-FimfJYgE.js +0 -6
- langflow/frontend/assets/zap-DM7WZEe0.js +0 -6
- langflow/frontend/assets/zap-off-VrmgXyQw.js +0 -6
- langflow/frontend/assets/zoom-in-T9nE8S-9.js +0 -6
- langflow/frontend/assets/zoom-out-Cf6vzi4q.js +0 -6
- langflow_base_nightly-1.7.0.dev52.dist-info/METADATA +0 -99
- langflow_base_nightly-1.7.0.dev52.dist-info/RECORD +0 -2278
- {langflow_base_nightly-1.7.0.dev52.dist-info → langflow_base_nightly-1.7.0.dev55.dist-info}/WHEEL +0 -0
- {langflow_base_nightly-1.7.0.dev52.dist-info → langflow_base_nightly-1.7.0.dev55.dist-info}/entry_points.txt +0 -0
|
@@ -357,13 +357,9 @@
|
|
|
357
357
|
"icon": "bot",
|
|
358
358
|
"legacy": false,
|
|
359
359
|
"metadata": {
|
|
360
|
-
"code_hash": "
|
|
360
|
+
"code_hash": "1834a4d901fa",
|
|
361
361
|
"dependencies": {
|
|
362
362
|
"dependencies": [
|
|
363
|
-
{
|
|
364
|
-
"name": "langchain_core",
|
|
365
|
-
"version": "0.3.80"
|
|
366
|
-
},
|
|
367
363
|
{
|
|
368
364
|
"name": "pydantic",
|
|
369
365
|
"version": "2.11.10"
|
|
@@ -371,6 +367,10 @@
|
|
|
371
367
|
{
|
|
372
368
|
"name": "lfx",
|
|
373
369
|
"version": null
|
|
370
|
+
},
|
|
371
|
+
{
|
|
372
|
+
"name": "langchain_core",
|
|
373
|
+
"version": "0.3.80"
|
|
374
374
|
}
|
|
375
375
|
],
|
|
376
376
|
"total_dependencies": 3
|
|
@@ -441,71 +441,12 @@
|
|
|
441
441
|
"type": "str",
|
|
442
442
|
"value": "A helpful assistant with access to the following tools:"
|
|
443
443
|
},
|
|
444
|
-
"agent_llm": {
|
|
445
|
-
"_input_type": "DropdownInput",
|
|
446
|
-
"advanced": false,
|
|
447
|
-
"combobox": false,
|
|
448
|
-
"dialog_inputs": {},
|
|
449
|
-
"display_name": "Model Provider",
|
|
450
|
-
"dynamic": false,
|
|
451
|
-
"external_options": {
|
|
452
|
-
"fields": {
|
|
453
|
-
"data": {
|
|
454
|
-
"node": {
|
|
455
|
-
"display_name": "Connect other models",
|
|
456
|
-
"icon": "CornerDownLeft",
|
|
457
|
-
"name": "connect_other_models"
|
|
458
|
-
}
|
|
459
|
-
}
|
|
460
|
-
}
|
|
461
|
-
},
|
|
462
|
-
"info": "The provider of the language model that the agent will use to generate responses.",
|
|
463
|
-
"input_types": [],
|
|
464
|
-
"name": "agent_llm",
|
|
465
|
-
"options": [
|
|
466
|
-
"Anthropic",
|
|
467
|
-
"Google Generative AI",
|
|
468
|
-
"OpenAI",
|
|
469
|
-
"IBM watsonx.ai",
|
|
470
|
-
"Ollama"
|
|
471
|
-
],
|
|
472
|
-
"options_metadata": [
|
|
473
|
-
{
|
|
474
|
-
"icon": "Anthropic"
|
|
475
|
-
},
|
|
476
|
-
{
|
|
477
|
-
"icon": "GoogleGenerativeAI"
|
|
478
|
-
},
|
|
479
|
-
{
|
|
480
|
-
"icon": "OpenAI"
|
|
481
|
-
},
|
|
482
|
-
{
|
|
483
|
-
"icon": "WatsonxAI"
|
|
484
|
-
},
|
|
485
|
-
{
|
|
486
|
-
"icon": "Ollama"
|
|
487
|
-
}
|
|
488
|
-
],
|
|
489
|
-
"override_skip": false,
|
|
490
|
-
"placeholder": "",
|
|
491
|
-
"real_time_refresh": true,
|
|
492
|
-
"refresh_button": false,
|
|
493
|
-
"required": false,
|
|
494
|
-
"show": true,
|
|
495
|
-
"title_case": false,
|
|
496
|
-
"toggle": false,
|
|
497
|
-
"tool_mode": false,
|
|
498
|
-
"trace_as_metadata": true,
|
|
499
|
-
"track_in_telemetry": true,
|
|
500
|
-
"type": "str",
|
|
501
|
-
"value": "OpenAI"
|
|
502
|
-
},
|
|
503
444
|
"api_key": {
|
|
504
445
|
"_input_type": "SecretStrInput",
|
|
505
446
|
"advanced": false,
|
|
506
|
-
"display_name": "
|
|
447
|
+
"display_name": "API Key",
|
|
507
448
|
"dynamic": false,
|
|
508
|
-
"info": "
|
|
449
|
+
"info": "Model Provider API key",
|
|
509
450
|
"input_types": [],
|
|
510
451
|
"load_from_db": true,
|
|
511
452
|
"name": "api_key",
|
|
@@ -518,27 +459,6 @@
|
|
|
518
459
|
"type": "str",
|
|
519
460
|
"value": "OPENAI_API_KEY"
|
|
520
461
|
},
|
|
521
|
-
"base_url": {
|
|
522
|
-
"_input_type": "StrInput",
|
|
523
|
-
"advanced": false,
|
|
524
|
-
"display_name": "Base URL",
|
|
525
|
-
"dynamic": false,
|
|
526
|
-
"info": "The base URL of the API.",
|
|
527
|
-
"list": false,
|
|
528
|
-
"list_add_label": "Add More",
|
|
529
|
-
"load_from_db": false,
|
|
530
|
-
"name": "base_url",
|
|
531
|
-
"override_skip": false,
|
|
532
|
-
"placeholder": "",
|
|
533
|
-
"required": true,
|
|
534
|
-
"show": false,
|
|
535
|
-
"title_case": false,
|
|
536
|
-
"tool_mode": false,
|
|
537
|
-
"trace_as_metadata": true,
|
|
538
|
-
"track_in_telemetry": false,
|
|
539
|
-
"type": "str",
|
|
540
|
-
"value": ""
|
|
541
|
-
},
|
|
542
462
|
"code": {
|
|
543
463
|
"advanced": true,
|
|
544
464
|
"dynamic": true,
|
|
@@ -555,7 +475,7 @@
|
|
|
555
475
|
"show": true,
|
|
556
476
|
"title_case": false,
|
|
557
477
|
"type": "code",
|
|
558
|
-
"value": "import json\nimport re\n\nfrom langchain_core.tools import StructuredTool, Tool\nfrom pydantic import ValidationError\n\nfrom lfx.base.agents.agent import LCToolsAgentComponent\nfrom lfx.base.agents.events import ExceptionWithMessageError\nfrom lfx.base.models.model_input_constants import (\n ALL_PROVIDER_FIELDS,\n MODEL_DYNAMIC_UPDATE_FIELDS,\n MODEL_PROVIDERS_DICT,\n MODEL_PROVIDERS_LIST,\n MODELS_METADATA,\n)\nfrom lfx.base.models.model_utils import get_model_name\nfrom lfx.components.helpers import CurrentDateComponent\nfrom lfx.components.langchain_utilities.tool_calling import ToolCallingAgentComponent\nfrom lfx.components.models_and_agents.memory import MemoryComponent\nfrom lfx.custom.custom_component.component import get_component_toolkit\nfrom lfx.custom.utils import update_component_build_config\nfrom lfx.helpers.base_model import build_model_from_schema\nfrom lfx.inputs.inputs import BoolInput, SecretStrInput, StrInput\nfrom lfx.io import DropdownInput, IntInput, MessageTextInput, MultilineInput, Output, TableInput\nfrom lfx.log.logger import logger\nfrom lfx.schema.data import Data\nfrom lfx.schema.dotdict import dotdict\nfrom lfx.schema.message import Message\nfrom lfx.schema.table import EditMode\n\n\ndef set_advanced_true(component_input):\n component_input.advanced = True\n return component_input\n\n\nclass AgentComponent(ToolCallingAgentComponent):\n display_name: str = \"Agent\"\n description: str = \"Define the agent's instructions, then enter a task to complete using tools.\"\n documentation: str = \"https://docs.langflow.org/agents\"\n icon = \"bot\"\n beta = False\n name = \"Agent\"\n\n memory_inputs = [set_advanced_true(component_input) for component_input in MemoryComponent().inputs]\n\n # Filter out json_mode from OpenAI inputs since we handle structured output differently\n if \"OpenAI\" in MODEL_PROVIDERS_DICT:\n openai_inputs_filtered = [\n input_field\n for input_field in MODEL_PROVIDERS_DICT[\"OpenAI\"][\"inputs\"]\n if not (hasattr(input_field, \"name\") and input_field.name == \"json_mode\")\n ]\n else:\n openai_inputs_filtered = []\n\n inputs = [\n DropdownInput(\n name=\"agent_llm\",\n display_name=\"Model Provider\",\n info=\"The provider of the language model that the agent will use to generate responses.\",\n options=[*MODEL_PROVIDERS_LIST],\n value=\"OpenAI\",\n real_time_refresh=True,\n refresh_button=False,\n input_types=[],\n options_metadata=[MODELS_METADATA[key] for key in MODEL_PROVIDERS_LIST if key in MODELS_METADATA],\n external_options={\n \"fields\": {\n \"data\": {\n \"node\": {\n \"name\": \"connect_other_models\",\n \"display_name\": \"Connect other models\",\n \"icon\": \"CornerDownLeft\",\n }\n }\n },\n },\n ),\n SecretStrInput(\n name=\"api_key\",\n display_name=\"API Key\",\n info=\"The API key to use for the model.\",\n required=True,\n ),\n StrInput(\n name=\"base_url\",\n display_name=\"Base URL\",\n info=\"The base URL of the API.\",\n required=True,\n show=False,\n ),\n StrInput(\n name=\"project_id\",\n display_name=\"Project ID\",\n info=\"The project ID of the model.\",\n required=True,\n show=False,\n ),\n IntInput(\n name=\"max_output_tokens\",\n display_name=\"Max Output Tokens\",\n info=\"The maximum number of tokens to generate.\",\n show=False,\n ),\n *openai_inputs_filtered,\n MultilineInput(\n name=\"system_prompt\",\n display_name=\"Agent Instructions\",\n info=\"System Prompt: Initial instructions and context provided to guide the agent's behavior.\",\n value=\"You are a helpful assistant that can use tools to answer questions and perform tasks.\",\n advanced=False,\n ),\n MessageTextInput(\n name=\"context_id\",\n display_name=\"Context ID\",\n info=\"The context ID of the chat. Adds an extra layer to the local memory.\",\n value=\"\",\n advanced=True,\n ),\n IntInput(\n name=\"n_messages\",\n display_name=\"Number of Chat History Messages\",\n value=100,\n info=\"Number of chat history messages to retrieve.\",\n advanced=True,\n show=True,\n ),\n MultilineInput(\n name=\"format_instructions\",\n display_name=\"Output Format Instructions\",\n info=\"Generic Template for structured output formatting. Valid only with Structured response.\",\n value=(\n \"You are an AI that extracts structured JSON objects from unstructured text. \"\n \"Use a predefined schema with expected types (str, int, float, bool, dict). \"\n \"Extract ALL relevant instances that match the schema - if multiple patterns exist, capture them all. \"\n \"Fill missing or ambiguous values with defaults: null for missing values. \"\n \"Remove exact duplicates but keep variations that have different field values. \"\n \"Always return valid JSON in the expected format, never throw errors. \"\n \"If multiple objects can be extracted, return them all in the structured format.\"\n ),\n advanced=True,\n ),\n TableInput(\n name=\"output_schema\",\n display_name=\"Output Schema\",\n info=(\n \"Schema Validation: Define the structure and data types for structured output. \"\n \"No validation if no output schema.\"\n ),\n advanced=True,\n required=False,\n value=[],\n table_schema=[\n {\n \"name\": \"name\",\n \"display_name\": \"Name\",\n \"type\": \"str\",\n \"description\": \"Specify the name of the output field.\",\n \"default\": \"field\",\n \"edit_mode\": EditMode.INLINE,\n },\n {\n \"name\": \"description\",\n \"display_name\": \"Description\",\n \"type\": \"str\",\n \"description\": \"Describe the purpose of the output field.\",\n \"default\": \"description of field\",\n \"edit_mode\": EditMode.POPOVER,\n },\n {\n \"name\": \"type\",\n \"display_name\": \"Type\",\n \"type\": \"str\",\n \"edit_mode\": EditMode.INLINE,\n \"description\": (\"Indicate the data type of the output field (e.g., str, int, float, bool, dict).\"),\n \"options\": [\"str\", \"int\", \"float\", \"bool\", \"dict\"],\n \"default\": \"str\",\n },\n {\n \"name\": \"multiple\",\n \"display_name\": \"As List\",\n \"type\": \"boolean\",\n \"description\": \"Set to True if this output field should be a list of the specified type.\",\n \"default\": \"False\",\n \"edit_mode\": EditMode.INLINE,\n },\n ],\n ),\n *LCToolsAgentComponent.get_base_inputs(),\n # removed memory inputs from agent component\n # *memory_inputs,\n BoolInput(\n name=\"add_current_date_tool\",\n display_name=\"Current Date\",\n advanced=True,\n info=\"If true, will add a tool to the agent that returns the current date.\",\n value=True,\n ),\n ]\n outputs = [\n Output(name=\"response\", display_name=\"Response\", method=\"message_response\"),\n ]\n\n async def get_agent_requirements(self):\n \"\"\"Get the agent requirements for the agent.\"\"\"\n llm_model, display_name = await self.get_llm()\n if llm_model is None:\n msg = \"No language model selected. Please choose a model to proceed.\"\n raise ValueError(msg)\n self.model_name = get_model_name(llm_model, display_name=display_name)\n\n # Get memory data\n self.chat_history = await self.get_memory_data()\n await logger.adebug(f\"Retrieved {len(self.chat_history)} chat history messages\")\n if isinstance(self.chat_history, Message):\n self.chat_history = [self.chat_history]\n\n # Add current date tool if enabled\n if self.add_current_date_tool:\n if not isinstance(self.tools, list): # type: ignore[has-type]\n self.tools = []\n current_date_tool = (await CurrentDateComponent(**self.get_base_args()).to_toolkit()).pop(0)\n\n if not isinstance(current_date_tool, StructuredTool):\n msg = \"CurrentDateComponent must be converted to a StructuredTool\"\n raise TypeError(msg)\n self.tools.append(current_date_tool)\n\n # Set shared callbacks for tracing the tools used by the agent\n self.set_tools_callbacks(self.tools, self._get_shared_callbacks())\n\n return llm_model, self.chat_history, self.tools\n\n async def message_response(self) -> Message:\n try:\n llm_model, self.chat_history, self.tools = await self.get_agent_requirements()\n # Set up and run agent\n self.set(\n llm=llm_model,\n tools=self.tools or [],\n chat_history=self.chat_history,\n input_value=self.input_value,\n system_prompt=self.system_prompt,\n )\n agent = self.create_agent_runnable()\n result = await self.run_agent(agent)\n\n # Store result for potential JSON output\n self._agent_result = result\n\n except (ValueError, TypeError, KeyError) as e:\n await logger.aerror(f\"{type(e).__name__}: {e!s}\")\n raise\n except ExceptionWithMessageError as e:\n await logger.aerror(f\"ExceptionWithMessageError occurred: {e}\")\n raise\n # Avoid catching blind Exception; let truly unexpected exceptions propagate\n except Exception as e:\n await logger.aerror(f\"Unexpected error: {e!s}\")\n raise\n else:\n return result\n\n def _preprocess_schema(self, schema):\n \"\"\"Preprocess schema to ensure correct data types for build_model_from_schema.\"\"\"\n processed_schema = []\n for field in schema:\n processed_field = {\n \"name\": str(field.get(\"name\", \"field\")),\n \"type\": str(field.get(\"type\", \"str\")),\n \"description\": str(field.get(\"description\", \"\")),\n \"multiple\": field.get(\"multiple\", False),\n }\n # Ensure multiple is handled correctly\n if isinstance(processed_field[\"multiple\"], str):\n processed_field[\"multiple\"] = processed_field[\"multiple\"].lower() in [\n \"true\",\n \"1\",\n \"t\",\n \"y\",\n \"yes\",\n ]\n processed_schema.append(processed_field)\n return processed_schema\n\n async def build_structured_output_base(self, content: str):\n \"\"\"Build structured output with optional BaseModel validation.\"\"\"\n json_pattern = r\"\\{.*\\}\"\n schema_error_msg = \"Try setting an output schema\"\n\n # Try to parse content as JSON first\n json_data = None\n try:\n json_data = json.loads(content)\n except json.JSONDecodeError:\n json_match = re.search(json_pattern, content, re.DOTALL)\n if json_match:\n try:\n json_data = json.loads(json_match.group())\n except json.JSONDecodeError:\n return {\"content\": content, \"error\": schema_error_msg}\n else:\n return {\"content\": content, \"error\": schema_error_msg}\n\n # If no output schema provided, return parsed JSON without validation\n if not hasattr(self, \"output_schema\") or not self.output_schema or len(self.output_schema) == 0:\n return json_data\n\n # Use BaseModel validation with schema\n try:\n processed_schema = self._preprocess_schema(self.output_schema)\n output_model = build_model_from_schema(processed_schema)\n\n # Validate against the schema\n if isinstance(json_data, list):\n # Multiple objects\n validated_objects = []\n for item in json_data:\n try:\n validated_obj = output_model.model_validate(item)\n validated_objects.append(validated_obj.model_dump())\n except ValidationError as e:\n await logger.aerror(f\"Validation error for item: {e}\")\n # Include invalid items with error info\n validated_objects.append({\"data\": item, \"validation_error\": str(e)})\n return validated_objects\n\n # Single object\n try:\n validated_obj = output_model.model_validate(json_data)\n return [validated_obj.model_dump()] # Return as list for consistency\n except ValidationError as e:\n await logger.aerror(f\"Validation error: {e}\")\n return [{\"data\": json_data, \"validation_error\": str(e)}]\n\n except (TypeError, ValueError) as e:\n await logger.aerror(f\"Error building structured output: {e}\")\n # Fallback to parsed JSON without validation\n return json_data\n\n async def json_response(self) -> Data:\n \"\"\"Convert agent response to structured JSON Data output with schema validation.\"\"\"\n # Always use structured chat agent for JSON response mode for better JSON formatting\n try:\n system_components = []\n\n # 1. Agent Instructions (system_prompt)\n agent_instructions = getattr(self, \"system_prompt\", \"\") or \"\"\n if agent_instructions:\n system_components.append(f\"{agent_instructions}\")\n\n # 2. Format Instructions\n format_instructions = getattr(self, \"format_instructions\", \"\") or \"\"\n if format_instructions:\n system_components.append(f\"Format instructions: {format_instructions}\")\n\n # 3. Schema Information from BaseModel\n if hasattr(self, \"output_schema\") and self.output_schema and len(self.output_schema) > 0:\n try:\n processed_schema = self._preprocess_schema(self.output_schema)\n output_model = build_model_from_schema(processed_schema)\n schema_dict = output_model.model_json_schema()\n schema_info = (\n \"You are given some text that may include format instructions, \"\n \"explanations, or other content alongside a JSON schema.\\n\\n\"\n \"Your task:\\n\"\n \"- Extract only the JSON schema.\\n\"\n \"- Return it as valid JSON.\\n\"\n \"- Do not include format instructions, explanations, or extra text.\\n\\n\"\n \"Input:\\n\"\n f\"{json.dumps(schema_dict, indent=2)}\\n\\n\"\n \"Output (only JSON schema):\"\n )\n system_components.append(schema_info)\n except (ValidationError, ValueError, TypeError, KeyError) as e:\n await logger.aerror(f\"Could not build schema for prompt: {e}\", exc_info=True)\n\n # Combine all components\n combined_instructions = \"\\n\\n\".join(system_components) if system_components else \"\"\n llm_model, self.chat_history, self.tools = await self.get_agent_requirements()\n self.set(\n llm=llm_model,\n tools=self.tools or [],\n chat_history=self.chat_history,\n input_value=self.input_value,\n system_prompt=combined_instructions,\n )\n\n # Create and run structured chat agent\n try:\n structured_agent = self.create_agent_runnable()\n except (NotImplementedError, ValueError, TypeError) as e:\n await logger.aerror(f\"Error with structured chat agent: {e}\")\n raise\n try:\n result = await self.run_agent(structured_agent)\n except (\n ExceptionWithMessageError,\n ValueError,\n TypeError,\n RuntimeError,\n ) as e:\n await logger.aerror(f\"Error with structured agent result: {e}\")\n raise\n # Extract content from structured agent result\n if hasattr(result, \"content\"):\n content = result.content\n elif hasattr(result, \"text\"):\n content = result.text\n else:\n content = str(result)\n\n except (\n ExceptionWithMessageError,\n ValueError,\n TypeError,\n NotImplementedError,\n AttributeError,\n ) as e:\n await logger.aerror(f\"Error with structured chat agent: {e}\")\n # Fallback to regular agent\n content_str = \"No content returned from agent\"\n return Data(data={\"content\": content_str, \"error\": str(e)})\n\n # Process with structured output validation\n try:\n structured_output = await self.build_structured_output_base(content)\n\n # Handle different output formats\n if isinstance(structured_output, list) and structured_output:\n if len(structured_output) == 1:\n return Data(data=structured_output[0])\n return Data(data={\"results\": structured_output})\n if isinstance(structured_output, dict):\n return Data(data=structured_output)\n return Data(data={\"content\": content})\n\n except (ValueError, TypeError) as e:\n await logger.aerror(f\"Error in structured output processing: {e}\")\n return Data(data={\"content\": content, \"error\": str(e)})\n\n async def get_memory_data(self):\n # TODO: This is a temporary fix to avoid message duplication. We should develop a function for this.\n messages = (\n await MemoryComponent(**self.get_base_args())\n .set(\n session_id=self.graph.session_id,\n context_id=self.context_id,\n order=\"Ascending\",\n n_messages=self.n_messages,\n )\n .retrieve_messages()\n )\n return [\n message for message in messages if getattr(message, \"id\", None) != getattr(self.input_value, \"id\", None)\n ]\n\n async def get_llm(self):\n if not isinstance(self.agent_llm, str):\n return self.agent_llm, None\n\n try:\n provider_info = MODEL_PROVIDERS_DICT.get(self.agent_llm)\n if not provider_info:\n msg = f\"Invalid model provider: {self.agent_llm}\"\n raise ValueError(msg)\n\n component_class = provider_info.get(\"component_class\")\n display_name = component_class.display_name\n inputs = provider_info.get(\"inputs\")\n prefix = provider_info.get(\"prefix\", \"\")\n\n return self._build_llm_model(component_class, inputs, prefix), display_name\n\n except (AttributeError, ValueError, TypeError, RuntimeError) as e:\n await logger.aerror(f\"Error building {self.agent_llm} language model: {e!s}\")\n msg = f\"Failed to initialize language model: {e!s}\"\n raise ValueError(msg) from e\n\n def _build_llm_model(self, component, inputs, prefix=\"\"):\n model_kwargs = {}\n for input_ in inputs:\n if hasattr(self, f\"{prefix}{input_.name}\"):\n model_kwargs[input_.name] = getattr(self, f\"{prefix}{input_.name}\")\n return component.set(**model_kwargs).build_model()\n\n def set_component_params(self, component):\n provider_info = MODEL_PROVIDERS_DICT.get(self.agent_llm)\n if provider_info:\n inputs = provider_info.get(\"inputs\")\n prefix = provider_info.get(\"prefix\")\n # Filter out json_mode and only use attributes that exist on this component\n model_kwargs = {}\n for input_ in inputs:\n if hasattr(self, f\"{prefix}{input_.name}\"):\n model_kwargs[input_.name] = getattr(self, f\"{prefix}{input_.name}\")\n\n return component.set(**model_kwargs)\n return component\n\n def delete_fields(self, build_config: dotdict, fields: dict | list[str]) -> None:\n \"\"\"Delete specified fields from build_config.\"\"\"\n for field in fields:\n if build_config is not None and field in build_config:\n build_config.pop(field, None)\n\n def update_input_types(self, build_config: dotdict) -> dotdict:\n \"\"\"Update input types for all fields in build_config.\"\"\"\n for key, value in build_config.items():\n if isinstance(value, dict):\n if value.get(\"input_types\") is None:\n build_config[key][\"input_types\"] = []\n elif hasattr(value, \"input_types\") and value.input_types is None:\n value.input_types = []\n return build_config\n\n async def update_build_config(\n self, build_config: dotdict, field_value: str, field_name: str | None = None\n ) -> dotdict:\n # Iterate over all providers in the MODEL_PROVIDERS_DICT\n # Existing logic for updating build_config\n if field_name in (\"agent_llm\",):\n build_config[\"agent_llm\"][\"value\"] = field_value\n provider_info = MODEL_PROVIDERS_DICT.get(field_value)\n if provider_info:\n component_class = provider_info.get(\"component_class\")\n if component_class and hasattr(component_class, \"update_build_config\"):\n # Call the component class's update_build_config method\n build_config = await update_component_build_config(\n component_class, build_config, field_value, \"model_name\"\n )\n\n provider_configs: dict[str, tuple[dict, list[dict]]] = {\n provider: (\n MODEL_PROVIDERS_DICT[provider][\"fields\"],\n [\n MODEL_PROVIDERS_DICT[other_provider][\"fields\"]\n for other_provider in MODEL_PROVIDERS_DICT\n if other_provider != provider\n ],\n )\n for provider in MODEL_PROVIDERS_DICT\n }\n if field_value in provider_configs:\n fields_to_add, fields_to_delete = provider_configs[field_value]\n\n # Delete fields from other providers\n for fields in fields_to_delete:\n self.delete_fields(build_config, fields)\n\n # Add provider-specific fields\n if field_value == \"OpenAI\" and not any(field in build_config for field in fields_to_add):\n build_config.update(fields_to_add)\n else:\n build_config.update(fields_to_add)\n # Reset input types for agent_llm\n build_config[\"agent_llm\"][\"input_types\"] = []\n build_config[\"agent_llm\"][\"display_name\"] = \"Model Provider\"\n elif field_value == \"connect_other_models\":\n # Delete all provider fields\n self.delete_fields(build_config, ALL_PROVIDER_FIELDS)\n # # Update with custom component\n custom_component = DropdownInput(\n name=\"agent_llm\",\n display_name=\"Language Model\",\n info=\"The provider of the language model that the agent will use to generate responses.\",\n options=[*MODEL_PROVIDERS_LIST],\n real_time_refresh=True,\n refresh_button=False,\n input_types=[\"LanguageModel\"],\n placeholder=\"Awaiting model input.\",\n options_metadata=[MODELS_METADATA[key] for key in MODEL_PROVIDERS_LIST if key in MODELS_METADATA],\n external_options={\n \"fields\": {\n \"data\": {\n \"node\": {\n \"name\": \"connect_other_models\",\n \"display_name\": \"Connect other models\",\n \"icon\": \"CornerDownLeft\",\n },\n }\n },\n },\n )\n build_config.update({\"agent_llm\": custom_component.to_dict()})\n # Update input types for all fields\n build_config = self.update_input_types(build_config)\n\n # Validate required keys\n default_keys = [\n \"code\",\n \"_type\",\n \"agent_llm\",\n \"tools\",\n \"input_value\",\n \"add_current_date_tool\",\n \"system_prompt\",\n \"agent_description\",\n \"max_iterations\",\n \"handle_parsing_errors\",\n \"verbose\",\n ]\n missing_keys = [key for key in default_keys if key not in build_config]\n if missing_keys:\n msg = f\"Missing required keys in build_config: {missing_keys}\"\n raise ValueError(msg)\n if (\n isinstance(self.agent_llm, str)\n and self.agent_llm in MODEL_PROVIDERS_DICT\n and field_name in MODEL_DYNAMIC_UPDATE_FIELDS\n ):\n provider_info = MODEL_PROVIDERS_DICT.get(self.agent_llm)\n if provider_info:\n component_class = provider_info.get(\"component_class\")\n component_class = self.set_component_params(component_class)\n prefix = provider_info.get(\"prefix\")\n if component_class and hasattr(component_class, \"update_build_config\"):\n # Call each component class's update_build_config method\n # remove the prefix from the field_name\n if isinstance(field_name, str) and isinstance(prefix, str):\n field_name_without_prefix = field_name.replace(prefix, \"\")\n else:\n field_name_without_prefix = field_name\n build_config = await update_component_build_config(\n component_class, build_config, field_value, field_name_without_prefix\n )\n return dotdict({k: v.to_dict() if hasattr(v, \"to_dict\") else v for k, v in build_config.items()})\n\n async def _get_tools(self) -> list[Tool]:\n component_toolkit = get_component_toolkit()\n tools_names = self._build_tools_names()\n agent_description = self.get_tool_description()\n # TODO: Agent Description Depreciated Feature to be removed\n description = f\"{agent_description}{tools_names}\"\n\n tools = component_toolkit(component=self).get_tools(\n tool_name=\"Call_Agent\",\n tool_description=description,\n # here we do not use the shared callbacks as we are exposing the agent as a tool\n callbacks=self.get_langchain_callbacks(),\n )\n if hasattr(self, \"tools_metadata\"):\n tools = component_toolkit(component=self, metadata=self.tools_metadata).update_tools_metadata(tools=tools)\n\n return tools\n"
|
|
478
|
+
"value": "from __future__ import annotations\n\nimport json\nimport re\nfrom typing import TYPE_CHECKING\n\nfrom pydantic import ValidationError\n\nfrom lfx.components.models_and_agents.memory import MemoryComponent\n\nif TYPE_CHECKING:\n from langchain_core.tools import Tool\n\nfrom lfx.base.agents.agent import LCToolsAgentComponent\nfrom lfx.base.agents.events import ExceptionWithMessageError\nfrom lfx.base.models.unified_models import (\n get_language_model_options,\n get_llm,\n update_model_options_in_build_config,\n)\nfrom lfx.components.helpers import CurrentDateComponent\nfrom lfx.components.langchain_utilities.tool_calling import ToolCallingAgentComponent\nfrom lfx.custom.custom_component.component import get_component_toolkit\nfrom lfx.helpers.base_model import build_model_from_schema\nfrom lfx.inputs.inputs import BoolInput, ModelInput\nfrom lfx.io import IntInput, MessageTextInput, MultilineInput, Output, SecretStrInput, TableInput\nfrom lfx.log.logger import logger\nfrom lfx.schema.data import Data\nfrom lfx.schema.dotdict import dotdict\nfrom lfx.schema.message import Message\nfrom lfx.schema.table import EditMode\n\n\ndef set_advanced_true(component_input):\n component_input.advanced = True\n return component_input\n\n\nclass AgentComponent(ToolCallingAgentComponent):\n display_name: str = \"Agent\"\n description: str = \"Define the agent's instructions, then enter a task to complete using tools.\"\n documentation: str = \"https://docs.langflow.org/agents\"\n icon = \"bot\"\n beta = False\n name = \"Agent\"\n\n memory_inputs = [set_advanced_true(component_input) for component_input in MemoryComponent().inputs]\n\n inputs = [\n ModelInput(\n name=\"model\",\n display_name=\"Language Model\",\n info=\"Select your model provider\",\n real_time_refresh=True,\n required=True,\n ),\n SecretStrInput(\n name=\"api_key\",\n display_name=\"API Key\",\n info=\"Model Provider API key\",\n real_time_refresh=True,\n advanced=True,\n ),\n MultilineInput(\n name=\"system_prompt\",\n display_name=\"Agent Instructions\",\n info=\"System Prompt: Initial instructions and context provided to guide the agent's behavior.\",\n value=\"You are a helpful assistant that can use tools to answer questions and perform tasks.\",\n advanced=False,\n ),\n MessageTextInput(\n name=\"context_id\",\n display_name=\"Context ID\",\n info=\"The context ID of the chat. Adds an extra layer to the local memory.\",\n value=\"\",\n advanced=True,\n ),\n IntInput(\n name=\"n_messages\",\n display_name=\"Number of Chat History Messages\",\n value=100,\n info=\"Number of chat history messages to retrieve.\",\n advanced=True,\n show=True,\n ),\n MultilineInput(\n name=\"format_instructions\",\n display_name=\"Output Format Instructions\",\n info=\"Generic Template for structured output formatting. Valid only with Structured response.\",\n value=(\n \"You are an AI that extracts structured JSON objects from unstructured text. \"\n \"Use a predefined schema with expected types (str, int, float, bool, dict). \"\n \"Extract ALL relevant instances that match the schema - if multiple patterns exist, capture them all. \"\n \"Fill missing or ambiguous values with defaults: null for missing values. \"\n \"Remove exact duplicates but keep variations that have different field values. \"\n \"Always return valid JSON in the expected format, never throw errors. \"\n \"If multiple objects can be extracted, return them all in the structured format.\"\n ),\n advanced=True,\n ),\n TableInput(\n name=\"output_schema\",\n display_name=\"Output Schema\",\n info=(\n \"Schema Validation: Define the structure and data types for structured output. \"\n \"No validation if no output schema.\"\n ),\n advanced=True,\n required=False,\n value=[],\n table_schema=[\n {\n \"name\": \"name\",\n \"display_name\": \"Name\",\n \"type\": \"str\",\n \"description\": \"Specify the name of the output field.\",\n \"default\": \"field\",\n \"edit_mode\": EditMode.INLINE,\n },\n {\n \"name\": \"description\",\n \"display_name\": \"Description\",\n \"type\": \"str\",\n \"description\": \"Describe the purpose of the output field.\",\n \"default\": \"description of field\",\n \"edit_mode\": EditMode.POPOVER,\n },\n {\n \"name\": \"type\",\n \"display_name\": \"Type\",\n \"type\": \"str\",\n \"edit_mode\": EditMode.INLINE,\n \"description\": (\"Indicate the data type of the output field (e.g., str, int, float, bool, dict).\"),\n \"options\": [\"str\", \"int\", \"float\", \"bool\", \"dict\"],\n \"default\": \"str\",\n },\n {\n \"name\": \"multiple\",\n \"display_name\": \"As List\",\n \"type\": \"boolean\",\n \"description\": \"Set to True if this output field should be a list of the specified type.\",\n \"default\": \"False\",\n \"edit_mode\": EditMode.INLINE,\n },\n ],\n ),\n *LCToolsAgentComponent.get_base_inputs(),\n # removed memory inputs from agent component\n # *memory_inputs,\n BoolInput(\n name=\"add_current_date_tool\",\n display_name=\"Current Date\",\n advanced=True,\n info=\"If true, will add a tool to the agent that returns the current date.\",\n value=True,\n ),\n ]\n outputs = [\n Output(name=\"response\", display_name=\"Response\", method=\"message_response\"),\n ]\n\n async def get_agent_requirements(self):\n \"\"\"Get the agent requirements for the agent.\"\"\"\n from langchain_core.tools import StructuredTool\n\n llm_model = get_llm(\n model=self.model,\n user_id=self.user_id,\n api_key=self.api_key,\n )\n if llm_model is None:\n msg = \"No language model selected. Please choose a model to proceed.\"\n raise ValueError(msg)\n\n # Get memory data\n self.chat_history = await self.get_memory_data()\n await logger.adebug(f\"Retrieved {len(self.chat_history)} chat history messages\")\n if isinstance(self.chat_history, Message):\n self.chat_history = [self.chat_history]\n\n # Add current date tool if enabled\n if self.add_current_date_tool:\n if not isinstance(self.tools, list): # type: ignore[has-type]\n self.tools = []\n current_date_tool = (await CurrentDateComponent(**self.get_base_args()).to_toolkit()).pop(0)\n\n if not isinstance(current_date_tool, StructuredTool):\n msg = \"CurrentDateComponent must be converted to a StructuredTool\"\n raise TypeError(msg)\n self.tools.append(current_date_tool)\n\n # Set shared callbacks for tracing the tools used by the agent\n self.set_tools_callbacks(self.tools, self._get_shared_callbacks())\n\n return llm_model, self.chat_history, self.tools\n\n async def message_response(self) -> Message:\n try:\n llm_model, self.chat_history, self.tools = await self.get_agent_requirements()\n # Set up and run agent\n self.set(\n llm=llm_model,\n tools=self.tools or [],\n chat_history=self.chat_history,\n input_value=self.input_value,\n system_prompt=self.system_prompt,\n )\n agent = self.create_agent_runnable()\n result = await self.run_agent(agent)\n\n # Store result for potential JSON output\n self._agent_result = result\n\n except (ValueError, TypeError, KeyError) as e:\n await logger.aerror(f\"{type(e).__name__}: {e!s}\")\n raise\n except ExceptionWithMessageError as e:\n await logger.aerror(f\"ExceptionWithMessageError occurred: {e}\")\n raise\n # Avoid catching blind Exception; let truly unexpected exceptions propagate\n except Exception as e:\n await logger.aerror(f\"Unexpected error: {e!s}\")\n raise\n else:\n return result\n\n def _preprocess_schema(self, schema):\n \"\"\"Preprocess schema to ensure correct data types for build_model_from_schema.\"\"\"\n processed_schema = []\n for field in schema:\n processed_field = {\n \"name\": str(field.get(\"name\", \"field\")),\n \"type\": str(field.get(\"type\", \"str\")),\n \"description\": str(field.get(\"description\", \"\")),\n \"multiple\": field.get(\"multiple\", False),\n }\n # Ensure multiple is handled correctly\n if isinstance(processed_field[\"multiple\"], str):\n processed_field[\"multiple\"] = processed_field[\"multiple\"].lower() in [\n \"true\",\n \"1\",\n \"t\",\n \"y\",\n \"yes\",\n ]\n processed_schema.append(processed_field)\n return processed_schema\n\n async def build_structured_output_base(self, content: str):\n \"\"\"Build structured output with optional BaseModel validation.\"\"\"\n json_pattern = r\"\\{.*\\}\"\n schema_error_msg = \"Try setting an output schema\"\n\n # Try to parse content as JSON first\n json_data = None\n try:\n json_data = json.loads(content)\n except json.JSONDecodeError:\n json_match = re.search(json_pattern, content, re.DOTALL)\n if json_match:\n try:\n json_data = json.loads(json_match.group())\n except json.JSONDecodeError:\n return {\"content\": content, \"error\": schema_error_msg}\n else:\n return {\"content\": content, \"error\": schema_error_msg}\n\n # If no output schema provided, return parsed JSON without validation\n if not hasattr(self, \"output_schema\") or not self.output_schema or len(self.output_schema) == 0:\n return json_data\n\n # Use BaseModel validation with schema\n try:\n processed_schema = self._preprocess_schema(self.output_schema)\n output_model = build_model_from_schema(processed_schema)\n\n # Validate against the schema\n if isinstance(json_data, list):\n # Multiple objects\n validated_objects = []\n for item in json_data:\n try:\n validated_obj = output_model.model_validate(item)\n validated_objects.append(validated_obj.model_dump())\n except ValidationError as e:\n await logger.aerror(f\"Validation error for item: {e}\")\n # Include invalid items with error info\n validated_objects.append({\"data\": item, \"validation_error\": str(e)})\n return validated_objects\n\n # Single object\n try:\n validated_obj = output_model.model_validate(json_data)\n return [validated_obj.model_dump()] # Return as list for consistency\n except ValidationError as e:\n await logger.aerror(f\"Validation error: {e}\")\n return [{\"data\": json_data, \"validation_error\": str(e)}]\n\n except (TypeError, ValueError) as e:\n await logger.aerror(f\"Error building structured output: {e}\")\n # Fallback to parsed JSON without validation\n return json_data\n\n async def json_response(self) -> Data:\n \"\"\"Convert agent response to structured JSON Data output with schema validation.\"\"\"\n # Always use structured chat agent for JSON response mode for better JSON formatting\n try:\n system_components = []\n\n # 1. Agent Instructions (system_prompt)\n agent_instructions = getattr(self, \"system_prompt\", \"\") or \"\"\n if agent_instructions:\n system_components.append(f\"{agent_instructions}\")\n\n # 2. Format Instructions\n format_instructions = getattr(self, \"format_instructions\", \"\") or \"\"\n if format_instructions:\n system_components.append(f\"Format instructions: {format_instructions}\")\n\n # 3. Schema Information from BaseModel\n if hasattr(self, \"output_schema\") and self.output_schema and len(self.output_schema) > 0:\n try:\n processed_schema = self._preprocess_schema(self.output_schema)\n output_model = build_model_from_schema(processed_schema)\n schema_dict = output_model.model_json_schema()\n schema_info = (\n \"You are given some text that may include format instructions, \"\n \"explanations, or other content alongside a JSON schema.\\n\\n\"\n \"Your task:\\n\"\n \"- Extract only the JSON schema.\\n\"\n \"- Return it as valid JSON.\\n\"\n \"- Do not include format instructions, explanations, or extra text.\\n\\n\"\n \"Input:\\n\"\n f\"{json.dumps(schema_dict, indent=2)}\\n\\n\"\n \"Output (only JSON schema):\"\n )\n system_components.append(schema_info)\n except (ValidationError, ValueError, TypeError, KeyError) as e:\n await logger.aerror(f\"Could not build schema for prompt: {e}\", exc_info=True)\n\n # Combine all components\n combined_instructions = \"\\n\\n\".join(system_components) if system_components else \"\"\n llm_model, self.chat_history, self.tools = await self.get_agent_requirements()\n self.set(\n llm=llm_model,\n tools=self.tools or [],\n chat_history=self.chat_history,\n input_value=self.input_value,\n system_prompt=combined_instructions,\n )\n\n # Create and run structured chat agent\n try:\n structured_agent = self.create_agent_runnable()\n except (NotImplementedError, ValueError, TypeError) as e:\n await logger.aerror(f\"Error with structured chat agent: {e}\")\n raise\n try:\n result = await self.run_agent(structured_agent)\n except (\n ExceptionWithMessageError,\n ValueError,\n TypeError,\n RuntimeError,\n ) as e:\n await logger.aerror(f\"Error with structured agent result: {e}\")\n raise\n # Extract content from structured agent result\n if hasattr(result, \"content\"):\n content = result.content\n elif hasattr(result, \"text\"):\n content = result.text\n else:\n content = str(result)\n\n except (\n ExceptionWithMessageError,\n ValueError,\n TypeError,\n NotImplementedError,\n AttributeError,\n ) as e:\n await logger.aerror(f\"Error with structured chat agent: {e}\")\n # Fallback to regular agent\n content_str = \"No content returned from agent\"\n return Data(data={\"content\": content_str, \"error\": str(e)})\n\n # Process with structured output validation\n try:\n structured_output = await self.build_structured_output_base(content)\n\n # Handle different output formats\n if isinstance(structured_output, list) and structured_output:\n if len(structured_output) == 1:\n return Data(data=structured_output[0])\n return Data(data={\"results\": structured_output})\n if isinstance(structured_output, dict):\n return Data(data=structured_output)\n return Data(data={\"content\": content})\n\n except (ValueError, TypeError) as e:\n await logger.aerror(f\"Error in structured output processing: {e}\")\n return Data(data={\"content\": content, \"error\": str(e)})\n\n async def get_memory_data(self):\n # TODO: This is a temporary fix to avoid message duplication. We should develop a function for this.\n messages = (\n await MemoryComponent(**self.get_base_args())\n .set(\n session_id=self.graph.session_id,\n context_id=self.context_id,\n order=\"Ascending\",\n n_messages=self.n_messages,\n )\n .retrieve_messages()\n )\n return [\n message for message in messages if getattr(message, \"id\", None) != getattr(self.input_value, \"id\", None)\n ]\n\n def update_input_types(self, build_config: dotdict) -> dotdict:\n \"\"\"Update input types for all fields in build_config.\"\"\"\n for key, value in build_config.items():\n if isinstance(value, dict):\n if value.get(\"input_types\") is None:\n build_config[key][\"input_types\"] = []\n elif hasattr(value, \"input_types\") and value.input_types is None:\n value.input_types = []\n return build_config\n\n async def update_build_config(\n self,\n build_config: dotdict,\n field_value: list[dict],\n field_name: str | None = None,\n ) -> dotdict:\n # Update model options with caching (for all field changes)\n # Agents require tool calling, so filter for only tool-calling capable models\n def get_tool_calling_model_options(user_id=None):\n return get_language_model_options(user_id=user_id, tool_calling=True)\n\n build_config = update_model_options_in_build_config(\n component=self,\n build_config=dict(build_config),\n cache_key_prefix=\"language_model_options_tool_calling\",\n get_options_func=get_tool_calling_model_options,\n field_name=field_name,\n field_value=field_value,\n )\n build_config = dotdict(build_config)\n\n # Iterate over all providers in the MODEL_PROVIDERS_DICT\n if field_name == \"model\":\n self.log(str(field_value))\n # Update input types for all fields\n build_config = self.update_input_types(build_config)\n\n # Validate required keys\n default_keys = [\n \"code\",\n \"_type\",\n \"model\",\n \"tools\",\n \"input_value\",\n \"add_current_date_tool\",\n \"system_prompt\",\n \"agent_description\",\n \"max_iterations\",\n \"handle_parsing_errors\",\n \"verbose\",\n ]\n missing_keys = [key for key in default_keys if key not in build_config]\n if missing_keys:\n msg = f\"Missing required keys in build_config: {missing_keys}\"\n raise ValueError(msg)\n\n return dotdict({k: v.to_dict() if hasattr(v, \"to_dict\") else v for k, v in build_config.items()})\n\n async def _get_tools(self) -> list[Tool]:\n component_toolkit = get_component_toolkit()\n tools_names = self._build_tools_names()\n agent_description = self.get_tool_description()\n # TODO: Agent Description Depreciated Feature to be removed\n description = f\"{agent_description}{tools_names}\"\n\n tools = component_toolkit(component=self).get_tools(\n tool_name=\"Call_Agent\",\n tool_description=description,\n # here we do not use the shared callbacks as we are exposing the agent as a tool\n callbacks=self.get_langchain_callbacks(),\n )\n if hasattr(self, \"tools_metadata\"):\n tools = component_toolkit(component=self, metadata=self.tools_metadata).update_tools_metadata(tools=tools)\n\n return tools\n"
|
|
559
479
|
},
|
|
560
480
|
"context_id": {
|
|
561
481
|
"_input_type": "MessageTextInput",
|
|
@@ -664,137 +584,42 @@
|
|
|
664
584
|
"type": "int",
|
|
665
585
|
"value": 15
|
|
666
586
|
},
|
|
667
|
-
"
|
|
668
|
-
"_input_type": "
|
|
587
|
+
"model": {
|
|
588
|
+
"_input_type": "ModelInput",
|
|
669
589
|
"advanced": false,
|
|
670
|
-
"display_name": "
|
|
590
|
+
"display_name": "Language Model",
|
|
671
591
|
"dynamic": false,
|
|
672
|
-
"
|
|
673
|
-
|
|
674
|
-
|
|
675
|
-
|
|
676
|
-
|
|
677
|
-
|
|
678
|
-
|
|
679
|
-
|
|
680
|
-
|
|
681
|
-
|
|
682
|
-
"trace_as_metadata": true,
|
|
683
|
-
"track_in_telemetry": true,
|
|
684
|
-
"type": "int",
|
|
685
|
-
"value": ""
|
|
686
|
-
},
|
|
687
|
-
"max_retries": {
|
|
688
|
-
"_input_type": "IntInput",
|
|
689
|
-
"advanced": true,
|
|
690
|
-
"display_name": "Max Retries",
|
|
691
|
-
"dynamic": false,
|
|
692
|
-
"info": "The maximum number of retries to make when generating.",
|
|
693
|
-
"list": false,
|
|
694
|
-
"list_add_label": "Add More",
|
|
695
|
-
"name": "max_retries",
|
|
696
|
-
"override_skip": false,
|
|
697
|
-
"placeholder": "",
|
|
698
|
-
"required": false,
|
|
699
|
-
"show": true,
|
|
700
|
-
"title_case": false,
|
|
701
|
-
"tool_mode": false,
|
|
702
|
-
"trace_as_metadata": true,
|
|
703
|
-
"track_in_telemetry": true,
|
|
704
|
-
"type": "int",
|
|
705
|
-
"value": 5
|
|
706
|
-
},
|
|
707
|
-
"max_tokens": {
|
|
708
|
-
"_input_type": "IntInput",
|
|
709
|
-
"advanced": true,
|
|
710
|
-
"display_name": "Max Tokens",
|
|
711
|
-
"dynamic": false,
|
|
712
|
-
"info": "The maximum number of tokens to generate. Set to 0 for unlimited tokens.",
|
|
713
|
-
"list": false,
|
|
714
|
-
"list_add_label": "Add More",
|
|
715
|
-
"name": "max_tokens",
|
|
716
|
-
"override_skip": false,
|
|
717
|
-
"placeholder": "",
|
|
718
|
-
"range_spec": {
|
|
719
|
-
"max": 128000.0,
|
|
720
|
-
"min": 0.0,
|
|
721
|
-
"step": 0.1,
|
|
722
|
-
"step_type": "float"
|
|
592
|
+
"external_options": {
|
|
593
|
+
"fields": {
|
|
594
|
+
"data": {
|
|
595
|
+
"node": {
|
|
596
|
+
"display_name": "Connect other models",
|
|
597
|
+
"icon": "CornerDownLeft",
|
|
598
|
+
"name": "connect_other_models"
|
|
599
|
+
}
|
|
600
|
+
}
|
|
601
|
+
}
|
|
723
602
|
},
|
|
724
|
-
"
|
|
725
|
-
"
|
|
726
|
-
|
|
727
|
-
|
|
728
|
-
"trace_as_metadata": true,
|
|
729
|
-
"track_in_telemetry": true,
|
|
730
|
-
"type": "int",
|
|
731
|
-
"value": ""
|
|
732
|
-
},
|
|
733
|
-
"model_kwargs": {
|
|
734
|
-
"_input_type": "DictInput",
|
|
735
|
-
"advanced": true,
|
|
736
|
-
"display_name": "Model Kwargs",
|
|
737
|
-
"dynamic": false,
|
|
738
|
-
"info": "Additional keyword arguments to pass to the model.",
|
|
603
|
+
"info": "Select your model provider",
|
|
604
|
+
"input_types": [
|
|
605
|
+
"LanguageModel"
|
|
606
|
+
],
|
|
739
607
|
"list": false,
|
|
740
608
|
"list_add_label": "Add More",
|
|
741
|
-
"
|
|
609
|
+
"model_type": "language",
|
|
610
|
+
"name": "model",
|
|
742
611
|
"override_skip": false,
|
|
743
|
-
"placeholder": "",
|
|
744
|
-
"
|
|
612
|
+
"placeholder": "Setup Provider",
|
|
613
|
+
"real_time_refresh": true,
|
|
614
|
+
"refresh_button": true,
|
|
615
|
+
"required": true,
|
|
745
616
|
"show": true,
|
|
746
617
|
"title_case": false,
|
|
747
618
|
"tool_mode": false,
|
|
748
619
|
"trace_as_input": true,
|
|
749
620
|
"track_in_telemetry": false,
|
|
750
|
-
"type": "
|
|
751
|
-
"value":
|
|
752
|
-
},
|
|
753
|
-
"model_name": {
|
|
754
|
-
"_input_type": "DropdownInput",
|
|
755
|
-
"advanced": false,
|
|
756
|
-
"combobox": true,
|
|
757
|
-
"dialog_inputs": {},
|
|
758
|
-
"display_name": "Model Name",
|
|
759
|
-
"dynamic": false,
|
|
760
|
-
"external_options": {},
|
|
761
|
-
"info": "To see the model names, first choose a provider. Then, enter your API key and click the refresh button next to the model name.",
|
|
762
|
-
"name": "model_name",
|
|
763
|
-
"options": [
|
|
764
|
-
"gpt-4o-mini",
|
|
765
|
-
"gpt-4o",
|
|
766
|
-
"gpt-4.1",
|
|
767
|
-
"gpt-4.1-mini",
|
|
768
|
-
"gpt-4.1-nano",
|
|
769
|
-
"gpt-4-turbo",
|
|
770
|
-
"gpt-4-turbo-preview",
|
|
771
|
-
"gpt-4",
|
|
772
|
-
"gpt-3.5-turbo",
|
|
773
|
-
"gpt-5.1",
|
|
774
|
-
"gpt-5",
|
|
775
|
-
"gpt-5-mini",
|
|
776
|
-
"gpt-5-nano",
|
|
777
|
-
"gpt-5-chat-latest",
|
|
778
|
-
"o1",
|
|
779
|
-
"o3-mini",
|
|
780
|
-
"o3",
|
|
781
|
-
"o3-pro",
|
|
782
|
-
"o4-mini",
|
|
783
|
-
"o4-mini-high"
|
|
784
|
-
],
|
|
785
|
-
"options_metadata": [],
|
|
786
|
-
"override_skip": false,
|
|
787
|
-
"placeholder": "",
|
|
788
|
-
"real_time_refresh": false,
|
|
789
|
-
"required": false,
|
|
790
|
-
"show": true,
|
|
791
|
-
"title_case": false,
|
|
792
|
-
"toggle": false,
|
|
793
|
-
"tool_mode": false,
|
|
794
|
-
"trace_as_metadata": true,
|
|
795
|
-
"track_in_telemetry": true,
|
|
796
|
-
"type": "str",
|
|
797
|
-
"value": "gpt-4o-mini"
|
|
621
|
+
"type": "model",
|
|
622
|
+
"value": ""
|
|
798
623
|
},
|
|
799
624
|
"n_messages": {
|
|
800
625
|
"_input_type": "IntInput",
|
|
@@ -814,27 +639,6 @@
|
|
|
814
639
|
"type": "int",
|
|
815
640
|
"value": 100
|
|
816
641
|
},
|
|
817
|
-
"openai_api_base": {
|
|
818
|
-
"_input_type": "StrInput",
|
|
819
|
-
"advanced": true,
|
|
820
|
-
"display_name": "OpenAI API Base",
|
|
821
|
-
"dynamic": false,
|
|
822
|
-
"info": "The base URL of the OpenAI API. Defaults to https://api.openai.com/v1. You can change this to use other APIs like JinaChat, LocalAI and Prem.",
|
|
823
|
-
"list": false,
|
|
824
|
-
"list_add_label": "Add More",
|
|
825
|
-
"load_from_db": false,
|
|
826
|
-
"name": "openai_api_base",
|
|
827
|
-
"override_skip": false,
|
|
828
|
-
"placeholder": "",
|
|
829
|
-
"required": false,
|
|
830
|
-
"show": true,
|
|
831
|
-
"title_case": false,
|
|
832
|
-
"tool_mode": false,
|
|
833
|
-
"trace_as_metadata": true,
|
|
834
|
-
"track_in_telemetry": false,
|
|
835
|
-
"type": "str",
|
|
836
|
-
"value": ""
|
|
837
|
-
},
|
|
838
642
|
"output_schema": {
|
|
839
643
|
"_input_type": "TableInput",
|
|
840
644
|
"advanced": true,
|
|
@@ -897,47 +701,6 @@
|
|
|
897
701
|
"type": "table",
|
|
898
702
|
"value": []
|
|
899
703
|
},
|
|
900
|
-
"project_id": {
|
|
901
|
-
"_input_type": "StrInput",
|
|
902
|
-
"advanced": false,
|
|
903
|
-
"display_name": "Project ID",
|
|
904
|
-
"dynamic": false,
|
|
905
|
-
"info": "The project ID of the model.",
|
|
906
|
-
"list": false,
|
|
907
|
-
"list_add_label": "Add More",
|
|
908
|
-
"load_from_db": false,
|
|
909
|
-
"name": "project_id",
|
|
910
|
-
"override_skip": false,
|
|
911
|
-
"placeholder": "",
|
|
912
|
-
"required": true,
|
|
913
|
-
"show": false,
|
|
914
|
-
"title_case": false,
|
|
915
|
-
"tool_mode": false,
|
|
916
|
-
"trace_as_metadata": true,
|
|
917
|
-
"track_in_telemetry": false,
|
|
918
|
-
"type": "str",
|
|
919
|
-
"value": ""
|
|
920
|
-
},
|
|
921
|
-
"seed": {
|
|
922
|
-
"_input_type": "IntInput",
|
|
923
|
-
"advanced": true,
|
|
924
|
-
"display_name": "Seed",
|
|
925
|
-
"dynamic": false,
|
|
926
|
-
"info": "The seed controls the reproducibility of the job.",
|
|
927
|
-
"list": false,
|
|
928
|
-
"list_add_label": "Add More",
|
|
929
|
-
"name": "seed",
|
|
930
|
-
"override_skip": false,
|
|
931
|
-
"placeholder": "",
|
|
932
|
-
"required": false,
|
|
933
|
-
"show": true,
|
|
934
|
-
"title_case": false,
|
|
935
|
-
"tool_mode": false,
|
|
936
|
-
"trace_as_metadata": true,
|
|
937
|
-
"track_in_telemetry": true,
|
|
938
|
-
"type": "int",
|
|
939
|
-
"value": 1
|
|
940
|
-
},
|
|
941
704
|
"system_prompt": {
|
|
942
705
|
"_input_type": "MultilineInput",
|
|
943
706
|
"advanced": false,
|
|
@@ -963,56 +726,6 @@
|
|
|
963
726
|
"type": "str",
|
|
964
727
|
"value": "You are the chief editor of a prestigious publication known for transforming complex information into clear, engaging content. Review and refine the researcher's document about {topic}.\n\nYour editing process should:\n- Verify and challenge any questionable claims\n- Restructure content for better flow and readability\n- Remove redundancies and unclear statements\n- Add context where needed\n- Ensure balanced coverage of the topic\n- Transform technical language into accessible explanations\n\nMaintain high editorial standards while making the content engaging for an educated general audience. Present the revised version in a clean, well-structured format."
|
|
965
728
|
},
|
|
966
|
-
"temperature": {
|
|
967
|
-
"_input_type": "SliderInput",
|
|
968
|
-
"advanced": true,
|
|
969
|
-
"display_name": "Temperature",
|
|
970
|
-
"dynamic": false,
|
|
971
|
-
"info": "",
|
|
972
|
-
"max_label": "",
|
|
973
|
-
"max_label_icon": "",
|
|
974
|
-
"min_label": "",
|
|
975
|
-
"min_label_icon": "",
|
|
976
|
-
"name": "temperature",
|
|
977
|
-
"override_skip": false,
|
|
978
|
-
"placeholder": "",
|
|
979
|
-
"range_spec": {
|
|
980
|
-
"max": 1.0,
|
|
981
|
-
"min": 0.0,
|
|
982
|
-
"step": 0.01,
|
|
983
|
-
"step_type": "float"
|
|
984
|
-
},
|
|
985
|
-
"required": false,
|
|
986
|
-
"show": true,
|
|
987
|
-
"slider_buttons": false,
|
|
988
|
-
"slider_buttons_options": [],
|
|
989
|
-
"slider_input": false,
|
|
990
|
-
"title_case": false,
|
|
991
|
-
"tool_mode": false,
|
|
992
|
-
"track_in_telemetry": false,
|
|
993
|
-
"type": "slider",
|
|
994
|
-
"value": 0.1
|
|
995
|
-
},
|
|
996
|
-
"timeout": {
|
|
997
|
-
"_input_type": "IntInput",
|
|
998
|
-
"advanced": true,
|
|
999
|
-
"display_name": "Timeout",
|
|
1000
|
-
"dynamic": false,
|
|
1001
|
-
"info": "The timeout for requests to OpenAI completion API.",
|
|
1002
|
-
"list": false,
|
|
1003
|
-
"list_add_label": "Add More",
|
|
1004
|
-
"name": "timeout",
|
|
1005
|
-
"override_skip": false,
|
|
1006
|
-
"placeholder": "",
|
|
1007
|
-
"required": false,
|
|
1008
|
-
"show": true,
|
|
1009
|
-
"title_case": false,
|
|
1010
|
-
"tool_mode": false,
|
|
1011
|
-
"trace_as_metadata": true,
|
|
1012
|
-
"track_in_telemetry": true,
|
|
1013
|
-
"type": "int",
|
|
1014
|
-
"value": 700
|
|
1015
|
-
},
|
|
1016
729
|
"tools": {
|
|
1017
730
|
"_input_type": "HandleInput",
|
|
1018
731
|
"advanced": false,
|
|
@@ -1058,7 +771,6 @@
|
|
|
1058
771
|
"type": "Agent"
|
|
1059
772
|
},
|
|
1060
773
|
"dragging": false,
|
|
1061
|
-
"height": 650,
|
|
1062
774
|
"id": "Agent-EQcU8",
|
|
1063
775
|
"measured": {
|
|
1064
776
|
"height": 650,
|
|
@@ -1073,8 +785,7 @@
|
|
|
1073
785
|
"y": -1369.035463408626
|
|
1074
786
|
},
|
|
1075
787
|
"selected": false,
|
|
1076
|
-
"type": "genericNode"
|
|
1077
|
-
"width": 320
|
|
788
|
+
"type": "genericNode"
|
|
1078
789
|
},
|
|
1079
790
|
{
|
|
1080
791
|
"data": {
|
|
@@ -1118,13 +829,9 @@
|
|
|
1118
829
|
"icon": "bot",
|
|
1119
830
|
"legacy": false,
|
|
1120
831
|
"metadata": {
|
|
1121
|
-
"code_hash": "
|
|
832
|
+
"code_hash": "1834a4d901fa",
|
|
1122
833
|
"dependencies": {
|
|
1123
834
|
"dependencies": [
|
|
1124
|
-
{
|
|
1125
|
-
"name": "langchain_core",
|
|
1126
|
-
"version": "0.3.80"
|
|
1127
|
-
},
|
|
1128
835
|
{
|
|
1129
836
|
"name": "pydantic",
|
|
1130
837
|
"version": "2.11.10"
|
|
@@ -1132,6 +839,10 @@
|
|
|
1132
839
|
{
|
|
1133
840
|
"name": "lfx",
|
|
1134
841
|
"version": null
|
|
842
|
+
},
|
|
843
|
+
{
|
|
844
|
+
"name": "langchain_core",
|
|
845
|
+
"version": "0.3.80"
|
|
1135
846
|
}
|
|
1136
847
|
],
|
|
1137
848
|
"total_dependencies": 3
|
|
@@ -1202,71 +913,12 @@
|
|
|
1202
913
|
"type": "str",
|
|
1203
914
|
"value": "A helpful assistant with access to the following tools:"
|
|
1204
915
|
},
|
|
1205
|
-
"agent_llm": {
|
|
1206
|
-
"_input_type": "DropdownInput",
|
|
1207
|
-
"advanced": false,
|
|
1208
|
-
"combobox": false,
|
|
1209
|
-
"dialog_inputs": {},
|
|
1210
|
-
"display_name": "Model Provider",
|
|
1211
|
-
"dynamic": false,
|
|
1212
|
-
"external_options": {
|
|
1213
|
-
"fields": {
|
|
1214
|
-
"data": {
|
|
1215
|
-
"node": {
|
|
1216
|
-
"display_name": "Connect other models",
|
|
1217
|
-
"icon": "CornerDownLeft",
|
|
1218
|
-
"name": "connect_other_models"
|
|
1219
|
-
}
|
|
1220
|
-
}
|
|
1221
|
-
}
|
|
1222
|
-
},
|
|
1223
|
-
"info": "The provider of the language model that the agent will use to generate responses.",
|
|
1224
|
-
"input_types": [],
|
|
1225
|
-
"name": "agent_llm",
|
|
1226
|
-
"options": [
|
|
1227
|
-
"Anthropic",
|
|
1228
|
-
"Google Generative AI",
|
|
1229
|
-
"OpenAI",
|
|
1230
|
-
"IBM watsonx.ai",
|
|
1231
|
-
"Ollama"
|
|
1232
|
-
],
|
|
1233
|
-
"options_metadata": [
|
|
1234
|
-
{
|
|
1235
|
-
"icon": "Anthropic"
|
|
1236
|
-
},
|
|
1237
|
-
{
|
|
1238
|
-
"icon": "GoogleGenerativeAI"
|
|
1239
|
-
},
|
|
1240
|
-
{
|
|
1241
|
-
"icon": "OpenAI"
|
|
1242
|
-
},
|
|
1243
|
-
{
|
|
1244
|
-
"icon": "WatsonxAI"
|
|
1245
|
-
},
|
|
1246
|
-
{
|
|
1247
|
-
"icon": "Ollama"
|
|
1248
|
-
}
|
|
1249
|
-
],
|
|
1250
|
-
"override_skip": false,
|
|
1251
|
-
"placeholder": "",
|
|
1252
|
-
"real_time_refresh": true,
|
|
1253
|
-
"refresh_button": false,
|
|
1254
|
-
"required": false,
|
|
1255
|
-
"show": true,
|
|
1256
|
-
"title_case": false,
|
|
1257
|
-
"toggle": false,
|
|
1258
|
-
"tool_mode": false,
|
|
1259
|
-
"trace_as_metadata": true,
|
|
1260
|
-
"track_in_telemetry": true,
|
|
1261
|
-
"type": "str",
|
|
1262
|
-
"value": "OpenAI"
|
|
1263
|
-
},
|
|
1264
916
|
"api_key": {
|
|
1265
917
|
"_input_type": "SecretStrInput",
|
|
1266
918
|
"advanced": false,
|
|
1267
|
-
"display_name": "
|
|
919
|
+
"display_name": "API Key",
|
|
1268
920
|
"dynamic": false,
|
|
1269
|
-
"info": "
|
|
921
|
+
"info": "Model Provider API key",
|
|
1270
922
|
"input_types": [],
|
|
1271
923
|
"load_from_db": true,
|
|
1272
924
|
"name": "api_key",
|
|
@@ -1279,27 +931,6 @@
|
|
|
1279
931
|
"type": "str",
|
|
1280
932
|
"value": "OPENAI_API_KEY"
|
|
1281
933
|
},
|
|
1282
|
-
"base_url": {
|
|
1283
|
-
"_input_type": "StrInput",
|
|
1284
|
-
"advanced": false,
|
|
1285
|
-
"display_name": "Base URL",
|
|
1286
|
-
"dynamic": false,
|
|
1287
|
-
"info": "The base URL of the API.",
|
|
1288
|
-
"list": false,
|
|
1289
|
-
"list_add_label": "Add More",
|
|
1290
|
-
"load_from_db": false,
|
|
1291
|
-
"name": "base_url",
|
|
1292
|
-
"override_skip": false,
|
|
1293
|
-
"placeholder": "",
|
|
1294
|
-
"required": true,
|
|
1295
|
-
"show": false,
|
|
1296
|
-
"title_case": false,
|
|
1297
|
-
"tool_mode": false,
|
|
1298
|
-
"trace_as_metadata": true,
|
|
1299
|
-
"track_in_telemetry": false,
|
|
1300
|
-
"type": "str",
|
|
1301
|
-
"value": ""
|
|
1302
|
-
},
|
|
1303
934
|
"code": {
|
|
1304
935
|
"advanced": true,
|
|
1305
936
|
"dynamic": true,
|
|
@@ -1316,7 +947,7 @@
|
|
|
1316
947
|
"show": true,
|
|
1317
948
|
"title_case": false,
|
|
1318
949
|
"type": "code",
|
|
1319
|
-
"value": "import json\nimport re\n\nfrom langchain_core.tools import StructuredTool, Tool\nfrom pydantic import ValidationError\n\nfrom lfx.base.agents.agent import LCToolsAgentComponent\nfrom lfx.base.agents.events import ExceptionWithMessageError\nfrom lfx.base.models.model_input_constants import (\n ALL_PROVIDER_FIELDS,\n MODEL_DYNAMIC_UPDATE_FIELDS,\n MODEL_PROVIDERS_DICT,\n MODEL_PROVIDERS_LIST,\n MODELS_METADATA,\n)\nfrom lfx.base.models.model_utils import get_model_name\nfrom lfx.components.helpers import CurrentDateComponent\nfrom lfx.components.langchain_utilities.tool_calling import ToolCallingAgentComponent\nfrom lfx.components.models_and_agents.memory import MemoryComponent\nfrom lfx.custom.custom_component.component import get_component_toolkit\nfrom lfx.custom.utils import update_component_build_config\nfrom lfx.helpers.base_model import build_model_from_schema\nfrom lfx.inputs.inputs import BoolInput, SecretStrInput, StrInput\nfrom lfx.io import DropdownInput, IntInput, MessageTextInput, MultilineInput, Output, TableInput\nfrom lfx.log.logger import logger\nfrom lfx.schema.data import Data\nfrom lfx.schema.dotdict import dotdict\nfrom lfx.schema.message import Message\nfrom lfx.schema.table import EditMode\n\n\ndef set_advanced_true(component_input):\n component_input.advanced = True\n return component_input\n\n\nclass AgentComponent(ToolCallingAgentComponent):\n display_name: str = \"Agent\"\n description: str = \"Define the agent's instructions, then enter a task to complete using tools.\"\n documentation: str = \"https://docs.langflow.org/agents\"\n icon = \"bot\"\n beta = False\n name = \"Agent\"\n\n memory_inputs = [set_advanced_true(component_input) for component_input in MemoryComponent().inputs]\n\n # Filter out json_mode from OpenAI inputs since we handle structured output differently\n if \"OpenAI\" in MODEL_PROVIDERS_DICT:\n openai_inputs_filtered = [\n input_field\n for input_field in MODEL_PROVIDERS_DICT[\"OpenAI\"][\"inputs\"]\n if not (hasattr(input_field, \"name\") and input_field.name == \"json_mode\")\n ]\n else:\n openai_inputs_filtered = []\n\n inputs = [\n DropdownInput(\n name=\"agent_llm\",\n display_name=\"Model Provider\",\n info=\"The provider of the language model that the agent will use to generate responses.\",\n options=[*MODEL_PROVIDERS_LIST],\n value=\"OpenAI\",\n real_time_refresh=True,\n refresh_button=False,\n input_types=[],\n options_metadata=[MODELS_METADATA[key] for key in MODEL_PROVIDERS_LIST if key in MODELS_METADATA],\n external_options={\n \"fields\": {\n \"data\": {\n \"node\": {\n \"name\": \"connect_other_models\",\n \"display_name\": \"Connect other models\",\n \"icon\": \"CornerDownLeft\",\n }\n }\n },\n },\n ),\n SecretStrInput(\n name=\"api_key\",\n display_name=\"API Key\",\n info=\"The API key to use for the model.\",\n required=True,\n ),\n StrInput(\n name=\"base_url\",\n display_name=\"Base URL\",\n info=\"The base URL of the API.\",\n required=True,\n show=False,\n ),\n StrInput(\n name=\"project_id\",\n display_name=\"Project ID\",\n info=\"The project ID of the model.\",\n required=True,\n show=False,\n ),\n IntInput(\n name=\"max_output_tokens\",\n display_name=\"Max Output Tokens\",\n info=\"The maximum number of tokens to generate.\",\n show=False,\n ),\n *openai_inputs_filtered,\n MultilineInput(\n name=\"system_prompt\",\n display_name=\"Agent Instructions\",\n info=\"System Prompt: Initial instructions and context provided to guide the agent's behavior.\",\n value=\"You are a helpful assistant that can use tools to answer questions and perform tasks.\",\n advanced=False,\n ),\n MessageTextInput(\n name=\"context_id\",\n display_name=\"Context ID\",\n info=\"The context ID of the chat. Adds an extra layer to the local memory.\",\n value=\"\",\n advanced=True,\n ),\n IntInput(\n name=\"n_messages\",\n display_name=\"Number of Chat History Messages\",\n value=100,\n info=\"Number of chat history messages to retrieve.\",\n advanced=True,\n show=True,\n ),\n MultilineInput(\n name=\"format_instructions\",\n display_name=\"Output Format Instructions\",\n info=\"Generic Template for structured output formatting. Valid only with Structured response.\",\n value=(\n \"You are an AI that extracts structured JSON objects from unstructured text. \"\n \"Use a predefined schema with expected types (str, int, float, bool, dict). \"\n \"Extract ALL relevant instances that match the schema - if multiple patterns exist, capture them all. \"\n \"Fill missing or ambiguous values with defaults: null for missing values. \"\n \"Remove exact duplicates but keep variations that have different field values. \"\n \"Always return valid JSON in the expected format, never throw errors. \"\n \"If multiple objects can be extracted, return them all in the structured format.\"\n ),\n advanced=True,\n ),\n TableInput(\n name=\"output_schema\",\n display_name=\"Output Schema\",\n info=(\n \"Schema Validation: Define the structure and data types for structured output. \"\n \"No validation if no output schema.\"\n ),\n advanced=True,\n required=False,\n value=[],\n table_schema=[\n {\n \"name\": \"name\",\n \"display_name\": \"Name\",\n \"type\": \"str\",\n \"description\": \"Specify the name of the output field.\",\n \"default\": \"field\",\n \"edit_mode\": EditMode.INLINE,\n },\n {\n \"name\": \"description\",\n \"display_name\": \"Description\",\n \"type\": \"str\",\n \"description\": \"Describe the purpose of the output field.\",\n \"default\": \"description of field\",\n \"edit_mode\": EditMode.POPOVER,\n },\n {\n \"name\": \"type\",\n \"display_name\": \"Type\",\n \"type\": \"str\",\n \"edit_mode\": EditMode.INLINE,\n \"description\": (\"Indicate the data type of the output field (e.g., str, int, float, bool, dict).\"),\n \"options\": [\"str\", \"int\", \"float\", \"bool\", \"dict\"],\n \"default\": \"str\",\n },\n {\n \"name\": \"multiple\",\n \"display_name\": \"As List\",\n \"type\": \"boolean\",\n \"description\": \"Set to True if this output field should be a list of the specified type.\",\n \"default\": \"False\",\n \"edit_mode\": EditMode.INLINE,\n },\n ],\n ),\n *LCToolsAgentComponent.get_base_inputs(),\n # removed memory inputs from agent component\n # *memory_inputs,\n BoolInput(\n name=\"add_current_date_tool\",\n display_name=\"Current Date\",\n advanced=True,\n info=\"If true, will add a tool to the agent that returns the current date.\",\n value=True,\n ),\n ]\n outputs = [\n Output(name=\"response\", display_name=\"Response\", method=\"message_response\"),\n ]\n\n async def get_agent_requirements(self):\n \"\"\"Get the agent requirements for the agent.\"\"\"\n llm_model, display_name = await self.get_llm()\n if llm_model is None:\n msg = \"No language model selected. Please choose a model to proceed.\"\n raise ValueError(msg)\n self.model_name = get_model_name(llm_model, display_name=display_name)\n\n # Get memory data\n self.chat_history = await self.get_memory_data()\n await logger.adebug(f\"Retrieved {len(self.chat_history)} chat history messages\")\n if isinstance(self.chat_history, Message):\n self.chat_history = [self.chat_history]\n\n # Add current date tool if enabled\n if self.add_current_date_tool:\n if not isinstance(self.tools, list): # type: ignore[has-type]\n self.tools = []\n current_date_tool = (await CurrentDateComponent(**self.get_base_args()).to_toolkit()).pop(0)\n\n if not isinstance(current_date_tool, StructuredTool):\n msg = \"CurrentDateComponent must be converted to a StructuredTool\"\n raise TypeError(msg)\n self.tools.append(current_date_tool)\n\n # Set shared callbacks for tracing the tools used by the agent\n self.set_tools_callbacks(self.tools, self._get_shared_callbacks())\n\n return llm_model, self.chat_history, self.tools\n\n async def message_response(self) -> Message:\n try:\n llm_model, self.chat_history, self.tools = await self.get_agent_requirements()\n # Set up and run agent\n self.set(\n llm=llm_model,\n tools=self.tools or [],\n chat_history=self.chat_history,\n input_value=self.input_value,\n system_prompt=self.system_prompt,\n )\n agent = self.create_agent_runnable()\n result = await self.run_agent(agent)\n\n # Store result for potential JSON output\n self._agent_result = result\n\n except (ValueError, TypeError, KeyError) as e:\n await logger.aerror(f\"{type(e).__name__}: {e!s}\")\n raise\n except ExceptionWithMessageError as e:\n await logger.aerror(f\"ExceptionWithMessageError occurred: {e}\")\n raise\n # Avoid catching blind Exception; let truly unexpected exceptions propagate\n except Exception as e:\n await logger.aerror(f\"Unexpected error: {e!s}\")\n raise\n else:\n return result\n\n def _preprocess_schema(self, schema):\n \"\"\"Preprocess schema to ensure correct data types for build_model_from_schema.\"\"\"\n processed_schema = []\n for field in schema:\n processed_field = {\n \"name\": str(field.get(\"name\", \"field\")),\n \"type\": str(field.get(\"type\", \"str\")),\n \"description\": str(field.get(\"description\", \"\")),\n \"multiple\": field.get(\"multiple\", False),\n }\n # Ensure multiple is handled correctly\n if isinstance(processed_field[\"multiple\"], str):\n processed_field[\"multiple\"] = processed_field[\"multiple\"].lower() in [\n \"true\",\n \"1\",\n \"t\",\n \"y\",\n \"yes\",\n ]\n processed_schema.append(processed_field)\n return processed_schema\n\n async def build_structured_output_base(self, content: str):\n \"\"\"Build structured output with optional BaseModel validation.\"\"\"\n json_pattern = r\"\\{.*\\}\"\n schema_error_msg = \"Try setting an output schema\"\n\n # Try to parse content as JSON first\n json_data = None\n try:\n json_data = json.loads(content)\n except json.JSONDecodeError:\n json_match = re.search(json_pattern, content, re.DOTALL)\n if json_match:\n try:\n json_data = json.loads(json_match.group())\n except json.JSONDecodeError:\n return {\"content\": content, \"error\": schema_error_msg}\n else:\n return {\"content\": content, \"error\": schema_error_msg}\n\n # If no output schema provided, return parsed JSON without validation\n if not hasattr(self, \"output_schema\") or not self.output_schema or len(self.output_schema) == 0:\n return json_data\n\n # Use BaseModel validation with schema\n try:\n processed_schema = self._preprocess_schema(self.output_schema)\n output_model = build_model_from_schema(processed_schema)\n\n # Validate against the schema\n if isinstance(json_data, list):\n # Multiple objects\n validated_objects = []\n for item in json_data:\n try:\n validated_obj = output_model.model_validate(item)\n validated_objects.append(validated_obj.model_dump())\n except ValidationError as e:\n await logger.aerror(f\"Validation error for item: {e}\")\n # Include invalid items with error info\n validated_objects.append({\"data\": item, \"validation_error\": str(e)})\n return validated_objects\n\n # Single object\n try:\n validated_obj = output_model.model_validate(json_data)\n return [validated_obj.model_dump()] # Return as list for consistency\n except ValidationError as e:\n await logger.aerror(f\"Validation error: {e}\")\n return [{\"data\": json_data, \"validation_error\": str(e)}]\n\n except (TypeError, ValueError) as e:\n await logger.aerror(f\"Error building structured output: {e}\")\n # Fallback to parsed JSON without validation\n return json_data\n\n async def json_response(self) -> Data:\n \"\"\"Convert agent response to structured JSON Data output with schema validation.\"\"\"\n # Always use structured chat agent for JSON response mode for better JSON formatting\n try:\n system_components = []\n\n # 1. Agent Instructions (system_prompt)\n agent_instructions = getattr(self, \"system_prompt\", \"\") or \"\"\n if agent_instructions:\n system_components.append(f\"{agent_instructions}\")\n\n # 2. Format Instructions\n format_instructions = getattr(self, \"format_instructions\", \"\") or \"\"\n if format_instructions:\n system_components.append(f\"Format instructions: {format_instructions}\")\n\n # 3. Schema Information from BaseModel\n if hasattr(self, \"output_schema\") and self.output_schema and len(self.output_schema) > 0:\n try:\n processed_schema = self._preprocess_schema(self.output_schema)\n output_model = build_model_from_schema(processed_schema)\n schema_dict = output_model.model_json_schema()\n schema_info = (\n \"You are given some text that may include format instructions, \"\n \"explanations, or other content alongside a JSON schema.\\n\\n\"\n \"Your task:\\n\"\n \"- Extract only the JSON schema.\\n\"\n \"- Return it as valid JSON.\\n\"\n \"- Do not include format instructions, explanations, or extra text.\\n\\n\"\n \"Input:\\n\"\n f\"{json.dumps(schema_dict, indent=2)}\\n\\n\"\n \"Output (only JSON schema):\"\n )\n system_components.append(schema_info)\n except (ValidationError, ValueError, TypeError, KeyError) as e:\n await logger.aerror(f\"Could not build schema for prompt: {e}\", exc_info=True)\n\n # Combine all components\n combined_instructions = \"\\n\\n\".join(system_components) if system_components else \"\"\n llm_model, self.chat_history, self.tools = await self.get_agent_requirements()\n self.set(\n llm=llm_model,\n tools=self.tools or [],\n chat_history=self.chat_history,\n input_value=self.input_value,\n system_prompt=combined_instructions,\n )\n\n # Create and run structured chat agent\n try:\n structured_agent = self.create_agent_runnable()\n except (NotImplementedError, ValueError, TypeError) as e:\n await logger.aerror(f\"Error with structured chat agent: {e}\")\n raise\n try:\n result = await self.run_agent(structured_agent)\n except (\n ExceptionWithMessageError,\n ValueError,\n TypeError,\n RuntimeError,\n ) as e:\n await logger.aerror(f\"Error with structured agent result: {e}\")\n raise\n # Extract content from structured agent result\n if hasattr(result, \"content\"):\n content = result.content\n elif hasattr(result, \"text\"):\n content = result.text\n else:\n content = str(result)\n\n except (\n ExceptionWithMessageError,\n ValueError,\n TypeError,\n NotImplementedError,\n AttributeError,\n ) as e:\n await logger.aerror(f\"Error with structured chat agent: {e}\")\n # Fallback to regular agent\n content_str = \"No content returned from agent\"\n return Data(data={\"content\": content_str, \"error\": str(e)})\n\n # Process with structured output validation\n try:\n structured_output = await self.build_structured_output_base(content)\n\n # Handle different output formats\n if isinstance(structured_output, list) and structured_output:\n if len(structured_output) == 1:\n return Data(data=structured_output[0])\n return Data(data={\"results\": structured_output})\n if isinstance(structured_output, dict):\n return Data(data=structured_output)\n return Data(data={\"content\": content})\n\n except (ValueError, TypeError) as e:\n await logger.aerror(f\"Error in structured output processing: {e}\")\n return Data(data={\"content\": content, \"error\": str(e)})\n\n async def get_memory_data(self):\n # TODO: This is a temporary fix to avoid message duplication. We should develop a function for this.\n messages = (\n await MemoryComponent(**self.get_base_args())\n .set(\n session_id=self.graph.session_id,\n context_id=self.context_id,\n order=\"Ascending\",\n n_messages=self.n_messages,\n )\n .retrieve_messages()\n )\n return [\n message for message in messages if getattr(message, \"id\", None) != getattr(self.input_value, \"id\", None)\n ]\n\n async def get_llm(self):\n if not isinstance(self.agent_llm, str):\n return self.agent_llm, None\n\n try:\n provider_info = MODEL_PROVIDERS_DICT.get(self.agent_llm)\n if not provider_info:\n msg = f\"Invalid model provider: {self.agent_llm}\"\n raise ValueError(msg)\n\n component_class = provider_info.get(\"component_class\")\n display_name = component_class.display_name\n inputs = provider_info.get(\"inputs\")\n prefix = provider_info.get(\"prefix\", \"\")\n\n return self._build_llm_model(component_class, inputs, prefix), display_name\n\n except (AttributeError, ValueError, TypeError, RuntimeError) as e:\n await logger.aerror(f\"Error building {self.agent_llm} language model: {e!s}\")\n msg = f\"Failed to initialize language model: {e!s}\"\n raise ValueError(msg) from e\n\n def _build_llm_model(self, component, inputs, prefix=\"\"):\n model_kwargs = {}\n for input_ in inputs:\n if hasattr(self, f\"{prefix}{input_.name}\"):\n model_kwargs[input_.name] = getattr(self, f\"{prefix}{input_.name}\")\n return component.set(**model_kwargs).build_model()\n\n def set_component_params(self, component):\n provider_info = MODEL_PROVIDERS_DICT.get(self.agent_llm)\n if provider_info:\n inputs = provider_info.get(\"inputs\")\n prefix = provider_info.get(\"prefix\")\n # Filter out json_mode and only use attributes that exist on this component\n model_kwargs = {}\n for input_ in inputs:\n if hasattr(self, f\"{prefix}{input_.name}\"):\n model_kwargs[input_.name] = getattr(self, f\"{prefix}{input_.name}\")\n\n return component.set(**model_kwargs)\n return component\n\n def delete_fields(self, build_config: dotdict, fields: dict | list[str]) -> None:\n \"\"\"Delete specified fields from build_config.\"\"\"\n for field in fields:\n if build_config is not None and field in build_config:\n build_config.pop(field, None)\n\n def update_input_types(self, build_config: dotdict) -> dotdict:\n \"\"\"Update input types for all fields in build_config.\"\"\"\n for key, value in build_config.items():\n if isinstance(value, dict):\n if value.get(\"input_types\") is None:\n build_config[key][\"input_types\"] = []\n elif hasattr(value, \"input_types\") and value.input_types is None:\n value.input_types = []\n return build_config\n\n async def update_build_config(\n self, build_config: dotdict, field_value: str, field_name: str | None = None\n ) -> dotdict:\n # Iterate over all providers in the MODEL_PROVIDERS_DICT\n # Existing logic for updating build_config\n if field_name in (\"agent_llm\",):\n build_config[\"agent_llm\"][\"value\"] = field_value\n provider_info = MODEL_PROVIDERS_DICT.get(field_value)\n if provider_info:\n component_class = provider_info.get(\"component_class\")\n if component_class and hasattr(component_class, \"update_build_config\"):\n # Call the component class's update_build_config method\n build_config = await update_component_build_config(\n component_class, build_config, field_value, \"model_name\"\n )\n\n provider_configs: dict[str, tuple[dict, list[dict]]] = {\n provider: (\n MODEL_PROVIDERS_DICT[provider][\"fields\"],\n [\n MODEL_PROVIDERS_DICT[other_provider][\"fields\"]\n for other_provider in MODEL_PROVIDERS_DICT\n if other_provider != provider\n ],\n )\n for provider in MODEL_PROVIDERS_DICT\n }\n if field_value in provider_configs:\n fields_to_add, fields_to_delete = provider_configs[field_value]\n\n # Delete fields from other providers\n for fields in fields_to_delete:\n self.delete_fields(build_config, fields)\n\n # Add provider-specific fields\n if field_value == \"OpenAI\" and not any(field in build_config for field in fields_to_add):\n build_config.update(fields_to_add)\n else:\n build_config.update(fields_to_add)\n # Reset input types for agent_llm\n build_config[\"agent_llm\"][\"input_types\"] = []\n build_config[\"agent_llm\"][\"display_name\"] = \"Model Provider\"\n elif field_value == \"connect_other_models\":\n # Delete all provider fields\n self.delete_fields(build_config, ALL_PROVIDER_FIELDS)\n # # Update with custom component\n custom_component = DropdownInput(\n name=\"agent_llm\",\n display_name=\"Language Model\",\n info=\"The provider of the language model that the agent will use to generate responses.\",\n options=[*MODEL_PROVIDERS_LIST],\n real_time_refresh=True,\n refresh_button=False,\n input_types=[\"LanguageModel\"],\n placeholder=\"Awaiting model input.\",\n options_metadata=[MODELS_METADATA[key] for key in MODEL_PROVIDERS_LIST if key in MODELS_METADATA],\n external_options={\n \"fields\": {\n \"data\": {\n \"node\": {\n \"name\": \"connect_other_models\",\n \"display_name\": \"Connect other models\",\n \"icon\": \"CornerDownLeft\",\n },\n }\n },\n },\n )\n build_config.update({\"agent_llm\": custom_component.to_dict()})\n # Update input types for all fields\n build_config = self.update_input_types(build_config)\n\n # Validate required keys\n default_keys = [\n \"code\",\n \"_type\",\n \"agent_llm\",\n \"tools\",\n \"input_value\",\n \"add_current_date_tool\",\n \"system_prompt\",\n \"agent_description\",\n \"max_iterations\",\n \"handle_parsing_errors\",\n \"verbose\",\n ]\n missing_keys = [key for key in default_keys if key not in build_config]\n if missing_keys:\n msg = f\"Missing required keys in build_config: {missing_keys}\"\n raise ValueError(msg)\n if (\n isinstance(self.agent_llm, str)\n and self.agent_llm in MODEL_PROVIDERS_DICT\n and field_name in MODEL_DYNAMIC_UPDATE_FIELDS\n ):\n provider_info = MODEL_PROVIDERS_DICT.get(self.agent_llm)\n if provider_info:\n component_class = provider_info.get(\"component_class\")\n component_class = self.set_component_params(component_class)\n prefix = provider_info.get(\"prefix\")\n if component_class and hasattr(component_class, \"update_build_config\"):\n # Call each component class's update_build_config method\n # remove the prefix from the field_name\n if isinstance(field_name, str) and isinstance(prefix, str):\n field_name_without_prefix = field_name.replace(prefix, \"\")\n else:\n field_name_without_prefix = field_name\n build_config = await update_component_build_config(\n component_class, build_config, field_value, field_name_without_prefix\n )\n return dotdict({k: v.to_dict() if hasattr(v, \"to_dict\") else v for k, v in build_config.items()})\n\n async def _get_tools(self) -> list[Tool]:\n component_toolkit = get_component_toolkit()\n tools_names = self._build_tools_names()\n agent_description = self.get_tool_description()\n # TODO: Agent Description Depreciated Feature to be removed\n description = f\"{agent_description}{tools_names}\"\n\n tools = component_toolkit(component=self).get_tools(\n tool_name=\"Call_Agent\",\n tool_description=description,\n # here we do not use the shared callbacks as we are exposing the agent as a tool\n callbacks=self.get_langchain_callbacks(),\n )\n if hasattr(self, \"tools_metadata\"):\n tools = component_toolkit(component=self, metadata=self.tools_metadata).update_tools_metadata(tools=tools)\n\n return tools\n"
|
|
950
|
+
"value": "from __future__ import annotations\n\nimport json\nimport re\nfrom typing import TYPE_CHECKING\n\nfrom pydantic import ValidationError\n\nfrom lfx.components.models_and_agents.memory import MemoryComponent\n\nif TYPE_CHECKING:\n from langchain_core.tools import Tool\n\nfrom lfx.base.agents.agent import LCToolsAgentComponent\nfrom lfx.base.agents.events import ExceptionWithMessageError\nfrom lfx.base.models.unified_models import (\n get_language_model_options,\n get_llm,\n update_model_options_in_build_config,\n)\nfrom lfx.components.helpers import CurrentDateComponent\nfrom lfx.components.langchain_utilities.tool_calling import ToolCallingAgentComponent\nfrom lfx.custom.custom_component.component import get_component_toolkit\nfrom lfx.helpers.base_model import build_model_from_schema\nfrom lfx.inputs.inputs import BoolInput, ModelInput\nfrom lfx.io import IntInput, MessageTextInput, MultilineInput, Output, SecretStrInput, TableInput\nfrom lfx.log.logger import logger\nfrom lfx.schema.data import Data\nfrom lfx.schema.dotdict import dotdict\nfrom lfx.schema.message import Message\nfrom lfx.schema.table import EditMode\n\n\ndef set_advanced_true(component_input):\n component_input.advanced = True\n return component_input\n\n\nclass AgentComponent(ToolCallingAgentComponent):\n display_name: str = \"Agent\"\n description: str = \"Define the agent's instructions, then enter a task to complete using tools.\"\n documentation: str = \"https://docs.langflow.org/agents\"\n icon = \"bot\"\n beta = False\n name = \"Agent\"\n\n memory_inputs = [set_advanced_true(component_input) for component_input in MemoryComponent().inputs]\n\n inputs = [\n ModelInput(\n name=\"model\",\n display_name=\"Language Model\",\n info=\"Select your model provider\",\n real_time_refresh=True,\n required=True,\n ),\n SecretStrInput(\n name=\"api_key\",\n display_name=\"API Key\",\n info=\"Model Provider API key\",\n real_time_refresh=True,\n advanced=True,\n ),\n MultilineInput(\n name=\"system_prompt\",\n display_name=\"Agent Instructions\",\n info=\"System Prompt: Initial instructions and context provided to guide the agent's behavior.\",\n value=\"You are a helpful assistant that can use tools to answer questions and perform tasks.\",\n advanced=False,\n ),\n MessageTextInput(\n name=\"context_id\",\n display_name=\"Context ID\",\n info=\"The context ID of the chat. Adds an extra layer to the local memory.\",\n value=\"\",\n advanced=True,\n ),\n IntInput(\n name=\"n_messages\",\n display_name=\"Number of Chat History Messages\",\n value=100,\n info=\"Number of chat history messages to retrieve.\",\n advanced=True,\n show=True,\n ),\n MultilineInput(\n name=\"format_instructions\",\n display_name=\"Output Format Instructions\",\n info=\"Generic Template for structured output formatting. Valid only with Structured response.\",\n value=(\n \"You are an AI that extracts structured JSON objects from unstructured text. \"\n \"Use a predefined schema with expected types (str, int, float, bool, dict). \"\n \"Extract ALL relevant instances that match the schema - if multiple patterns exist, capture them all. \"\n \"Fill missing or ambiguous values with defaults: null for missing values. \"\n \"Remove exact duplicates but keep variations that have different field values. \"\n \"Always return valid JSON in the expected format, never throw errors. \"\n \"If multiple objects can be extracted, return them all in the structured format.\"\n ),\n advanced=True,\n ),\n TableInput(\n name=\"output_schema\",\n display_name=\"Output Schema\",\n info=(\n \"Schema Validation: Define the structure and data types for structured output. \"\n \"No validation if no output schema.\"\n ),\n advanced=True,\n required=False,\n value=[],\n table_schema=[\n {\n \"name\": \"name\",\n \"display_name\": \"Name\",\n \"type\": \"str\",\n \"description\": \"Specify the name of the output field.\",\n \"default\": \"field\",\n \"edit_mode\": EditMode.INLINE,\n },\n {\n \"name\": \"description\",\n \"display_name\": \"Description\",\n \"type\": \"str\",\n \"description\": \"Describe the purpose of the output field.\",\n \"default\": \"description of field\",\n \"edit_mode\": EditMode.POPOVER,\n },\n {\n \"name\": \"type\",\n \"display_name\": \"Type\",\n \"type\": \"str\",\n \"edit_mode\": EditMode.INLINE,\n \"description\": (\"Indicate the data type of the output field (e.g., str, int, float, bool, dict).\"),\n \"options\": [\"str\", \"int\", \"float\", \"bool\", \"dict\"],\n \"default\": \"str\",\n },\n {\n \"name\": \"multiple\",\n \"display_name\": \"As List\",\n \"type\": \"boolean\",\n \"description\": \"Set to True if this output field should be a list of the specified type.\",\n \"default\": \"False\",\n \"edit_mode\": EditMode.INLINE,\n },\n ],\n ),\n *LCToolsAgentComponent.get_base_inputs(),\n # removed memory inputs from agent component\n # *memory_inputs,\n BoolInput(\n name=\"add_current_date_tool\",\n display_name=\"Current Date\",\n advanced=True,\n info=\"If true, will add a tool to the agent that returns the current date.\",\n value=True,\n ),\n ]\n outputs = [\n Output(name=\"response\", display_name=\"Response\", method=\"message_response\"),\n ]\n\n async def get_agent_requirements(self):\n \"\"\"Get the agent requirements for the agent.\"\"\"\n from langchain_core.tools import StructuredTool\n\n llm_model = get_llm(\n model=self.model,\n user_id=self.user_id,\n api_key=self.api_key,\n )\n if llm_model is None:\n msg = \"No language model selected. Please choose a model to proceed.\"\n raise ValueError(msg)\n\n # Get memory data\n self.chat_history = await self.get_memory_data()\n await logger.adebug(f\"Retrieved {len(self.chat_history)} chat history messages\")\n if isinstance(self.chat_history, Message):\n self.chat_history = [self.chat_history]\n\n # Add current date tool if enabled\n if self.add_current_date_tool:\n if not isinstance(self.tools, list): # type: ignore[has-type]\n self.tools = []\n current_date_tool = (await CurrentDateComponent(**self.get_base_args()).to_toolkit()).pop(0)\n\n if not isinstance(current_date_tool, StructuredTool):\n msg = \"CurrentDateComponent must be converted to a StructuredTool\"\n raise TypeError(msg)\n self.tools.append(current_date_tool)\n\n # Set shared callbacks for tracing the tools used by the agent\n self.set_tools_callbacks(self.tools, self._get_shared_callbacks())\n\n return llm_model, self.chat_history, self.tools\n\n async def message_response(self) -> Message:\n try:\n llm_model, self.chat_history, self.tools = await self.get_agent_requirements()\n # Set up and run agent\n self.set(\n llm=llm_model,\n tools=self.tools or [],\n chat_history=self.chat_history,\n input_value=self.input_value,\n system_prompt=self.system_prompt,\n )\n agent = self.create_agent_runnable()\n result = await self.run_agent(agent)\n\n # Store result for potential JSON output\n self._agent_result = result\n\n except (ValueError, TypeError, KeyError) as e:\n await logger.aerror(f\"{type(e).__name__}: {e!s}\")\n raise\n except ExceptionWithMessageError as e:\n await logger.aerror(f\"ExceptionWithMessageError occurred: {e}\")\n raise\n # Avoid catching blind Exception; let truly unexpected exceptions propagate\n except Exception as e:\n await logger.aerror(f\"Unexpected error: {e!s}\")\n raise\n else:\n return result\n\n def _preprocess_schema(self, schema):\n \"\"\"Preprocess schema to ensure correct data types for build_model_from_schema.\"\"\"\n processed_schema = []\n for field in schema:\n processed_field = {\n \"name\": str(field.get(\"name\", \"field\")),\n \"type\": str(field.get(\"type\", \"str\")),\n \"description\": str(field.get(\"description\", \"\")),\n \"multiple\": field.get(\"multiple\", False),\n }\n # Ensure multiple is handled correctly\n if isinstance(processed_field[\"multiple\"], str):\n processed_field[\"multiple\"] = processed_field[\"multiple\"].lower() in [\n \"true\",\n \"1\",\n \"t\",\n \"y\",\n \"yes\",\n ]\n processed_schema.append(processed_field)\n return processed_schema\n\n async def build_structured_output_base(self, content: str):\n \"\"\"Build structured output with optional BaseModel validation.\"\"\"\n json_pattern = r\"\\{.*\\}\"\n schema_error_msg = \"Try setting an output schema\"\n\n # Try to parse content as JSON first\n json_data = None\n try:\n json_data = json.loads(content)\n except json.JSONDecodeError:\n json_match = re.search(json_pattern, content, re.DOTALL)\n if json_match:\n try:\n json_data = json.loads(json_match.group())\n except json.JSONDecodeError:\n return {\"content\": content, \"error\": schema_error_msg}\n else:\n return {\"content\": content, \"error\": schema_error_msg}\n\n # If no output schema provided, return parsed JSON without validation\n if not hasattr(self, \"output_schema\") or not self.output_schema or len(self.output_schema) == 0:\n return json_data\n\n # Use BaseModel validation with schema\n try:\n processed_schema = self._preprocess_schema(self.output_schema)\n output_model = build_model_from_schema(processed_schema)\n\n # Validate against the schema\n if isinstance(json_data, list):\n # Multiple objects\n validated_objects = []\n for item in json_data:\n try:\n validated_obj = output_model.model_validate(item)\n validated_objects.append(validated_obj.model_dump())\n except ValidationError as e:\n await logger.aerror(f\"Validation error for item: {e}\")\n # Include invalid items with error info\n validated_objects.append({\"data\": item, \"validation_error\": str(e)})\n return validated_objects\n\n # Single object\n try:\n validated_obj = output_model.model_validate(json_data)\n return [validated_obj.model_dump()] # Return as list for consistency\n except ValidationError as e:\n await logger.aerror(f\"Validation error: {e}\")\n return [{\"data\": json_data, \"validation_error\": str(e)}]\n\n except (TypeError, ValueError) as e:\n await logger.aerror(f\"Error building structured output: {e}\")\n # Fallback to parsed JSON without validation\n return json_data\n\n async def json_response(self) -> Data:\n \"\"\"Convert agent response to structured JSON Data output with schema validation.\"\"\"\n # Always use structured chat agent for JSON response mode for better JSON formatting\n try:\n system_components = []\n\n # 1. Agent Instructions (system_prompt)\n agent_instructions = getattr(self, \"system_prompt\", \"\") or \"\"\n if agent_instructions:\n system_components.append(f\"{agent_instructions}\")\n\n # 2. Format Instructions\n format_instructions = getattr(self, \"format_instructions\", \"\") or \"\"\n if format_instructions:\n system_components.append(f\"Format instructions: {format_instructions}\")\n\n # 3. Schema Information from BaseModel\n if hasattr(self, \"output_schema\") and self.output_schema and len(self.output_schema) > 0:\n try:\n processed_schema = self._preprocess_schema(self.output_schema)\n output_model = build_model_from_schema(processed_schema)\n schema_dict = output_model.model_json_schema()\n schema_info = (\n \"You are given some text that may include format instructions, \"\n \"explanations, or other content alongside a JSON schema.\\n\\n\"\n \"Your task:\\n\"\n \"- Extract only the JSON schema.\\n\"\n \"- Return it as valid JSON.\\n\"\n \"- Do not include format instructions, explanations, or extra text.\\n\\n\"\n \"Input:\\n\"\n f\"{json.dumps(schema_dict, indent=2)}\\n\\n\"\n \"Output (only JSON schema):\"\n )\n system_components.append(schema_info)\n except (ValidationError, ValueError, TypeError, KeyError) as e:\n await logger.aerror(f\"Could not build schema for prompt: {e}\", exc_info=True)\n\n # Combine all components\n combined_instructions = \"\\n\\n\".join(system_components) if system_components else \"\"\n llm_model, self.chat_history, self.tools = await self.get_agent_requirements()\n self.set(\n llm=llm_model,\n tools=self.tools or [],\n chat_history=self.chat_history,\n input_value=self.input_value,\n system_prompt=combined_instructions,\n )\n\n # Create and run structured chat agent\n try:\n structured_agent = self.create_agent_runnable()\n except (NotImplementedError, ValueError, TypeError) as e:\n await logger.aerror(f\"Error with structured chat agent: {e}\")\n raise\n try:\n result = await self.run_agent(structured_agent)\n except (\n ExceptionWithMessageError,\n ValueError,\n TypeError,\n RuntimeError,\n ) as e:\n await logger.aerror(f\"Error with structured agent result: {e}\")\n raise\n # Extract content from structured agent result\n if hasattr(result, \"content\"):\n content = result.content\n elif hasattr(result, \"text\"):\n content = result.text\n else:\n content = str(result)\n\n except (\n ExceptionWithMessageError,\n ValueError,\n TypeError,\n NotImplementedError,\n AttributeError,\n ) as e:\n await logger.aerror(f\"Error with structured chat agent: {e}\")\n # Fallback to regular agent\n content_str = \"No content returned from agent\"\n return Data(data={\"content\": content_str, \"error\": str(e)})\n\n # Process with structured output validation\n try:\n structured_output = await self.build_structured_output_base(content)\n\n # Handle different output formats\n if isinstance(structured_output, list) and structured_output:\n if len(structured_output) == 1:\n return Data(data=structured_output[0])\n return Data(data={\"results\": structured_output})\n if isinstance(structured_output, dict):\n return Data(data=structured_output)\n return Data(data={\"content\": content})\n\n except (ValueError, TypeError) as e:\n await logger.aerror(f\"Error in structured output processing: {e}\")\n return Data(data={\"content\": content, \"error\": str(e)})\n\n async def get_memory_data(self):\n # TODO: This is a temporary fix to avoid message duplication. We should develop a function for this.\n messages = (\n await MemoryComponent(**self.get_base_args())\n .set(\n session_id=self.graph.session_id,\n context_id=self.context_id,\n order=\"Ascending\",\n n_messages=self.n_messages,\n )\n .retrieve_messages()\n )\n return [\n message for message in messages if getattr(message, \"id\", None) != getattr(self.input_value, \"id\", None)\n ]\n\n def update_input_types(self, build_config: dotdict) -> dotdict:\n \"\"\"Update input types for all fields in build_config.\"\"\"\n for key, value in build_config.items():\n if isinstance(value, dict):\n if value.get(\"input_types\") is None:\n build_config[key][\"input_types\"] = []\n elif hasattr(value, \"input_types\") and value.input_types is None:\n value.input_types = []\n return build_config\n\n async def update_build_config(\n self,\n build_config: dotdict,\n field_value: list[dict],\n field_name: str | None = None,\n ) -> dotdict:\n # Update model options with caching (for all field changes)\n # Agents require tool calling, so filter for only tool-calling capable models\n def get_tool_calling_model_options(user_id=None):\n return get_language_model_options(user_id=user_id, tool_calling=True)\n\n build_config = update_model_options_in_build_config(\n component=self,\n build_config=dict(build_config),\n cache_key_prefix=\"language_model_options_tool_calling\",\n get_options_func=get_tool_calling_model_options,\n field_name=field_name,\n field_value=field_value,\n )\n build_config = dotdict(build_config)\n\n # Iterate over all providers in the MODEL_PROVIDERS_DICT\n if field_name == \"model\":\n self.log(str(field_value))\n # Update input types for all fields\n build_config = self.update_input_types(build_config)\n\n # Validate required keys\n default_keys = [\n \"code\",\n \"_type\",\n \"model\",\n \"tools\",\n \"input_value\",\n \"add_current_date_tool\",\n \"system_prompt\",\n \"agent_description\",\n \"max_iterations\",\n \"handle_parsing_errors\",\n \"verbose\",\n ]\n missing_keys = [key for key in default_keys if key not in build_config]\n if missing_keys:\n msg = f\"Missing required keys in build_config: {missing_keys}\"\n raise ValueError(msg)\n\n return dotdict({k: v.to_dict() if hasattr(v, \"to_dict\") else v for k, v in build_config.items()})\n\n async def _get_tools(self) -> list[Tool]:\n component_toolkit = get_component_toolkit()\n tools_names = self._build_tools_names()\n agent_description = self.get_tool_description()\n # TODO: Agent Description Depreciated Feature to be removed\n description = f\"{agent_description}{tools_names}\"\n\n tools = component_toolkit(component=self).get_tools(\n tool_name=\"Call_Agent\",\n tool_description=description,\n # here we do not use the shared callbacks as we are exposing the agent as a tool\n callbacks=self.get_langchain_callbacks(),\n )\n if hasattr(self, \"tools_metadata\"):\n tools = component_toolkit(component=self, metadata=self.tools_metadata).update_tools_metadata(tools=tools)\n\n return tools\n"
|
|
1320
951
|
},
|
|
1321
952
|
"context_id": {
|
|
1322
953
|
"_input_type": "MessageTextInput",
|
|
@@ -1425,137 +1056,42 @@
|
|
|
1425
1056
|
"type": "int",
|
|
1426
1057
|
"value": 15
|
|
1427
1058
|
},
|
|
1428
|
-
"
|
|
1429
|
-
"_input_type": "
|
|
1059
|
+
"model": {
|
|
1060
|
+
"_input_type": "ModelInput",
|
|
1430
1061
|
"advanced": false,
|
|
1431
|
-
"display_name": "
|
|
1062
|
+
"display_name": "Language Model",
|
|
1432
1063
|
"dynamic": false,
|
|
1433
|
-
"
|
|
1434
|
-
|
|
1435
|
-
|
|
1436
|
-
|
|
1437
|
-
|
|
1438
|
-
|
|
1439
|
-
|
|
1440
|
-
|
|
1441
|
-
|
|
1442
|
-
|
|
1443
|
-
"trace_as_metadata": true,
|
|
1444
|
-
"track_in_telemetry": true,
|
|
1445
|
-
"type": "int",
|
|
1446
|
-
"value": ""
|
|
1447
|
-
},
|
|
1448
|
-
"max_retries": {
|
|
1449
|
-
"_input_type": "IntInput",
|
|
1450
|
-
"advanced": true,
|
|
1451
|
-
"display_name": "Max Retries",
|
|
1452
|
-
"dynamic": false,
|
|
1453
|
-
"info": "The maximum number of retries to make when generating.",
|
|
1454
|
-
"list": false,
|
|
1455
|
-
"list_add_label": "Add More",
|
|
1456
|
-
"name": "max_retries",
|
|
1457
|
-
"override_skip": false,
|
|
1458
|
-
"placeholder": "",
|
|
1459
|
-
"required": false,
|
|
1460
|
-
"show": true,
|
|
1461
|
-
"title_case": false,
|
|
1462
|
-
"tool_mode": false,
|
|
1463
|
-
"trace_as_metadata": true,
|
|
1464
|
-
"track_in_telemetry": true,
|
|
1465
|
-
"type": "int",
|
|
1466
|
-
"value": 5
|
|
1467
|
-
},
|
|
1468
|
-
"max_tokens": {
|
|
1469
|
-
"_input_type": "IntInput",
|
|
1470
|
-
"advanced": true,
|
|
1471
|
-
"display_name": "Max Tokens",
|
|
1472
|
-
"dynamic": false,
|
|
1473
|
-
"info": "The maximum number of tokens to generate. Set to 0 for unlimited tokens.",
|
|
1474
|
-
"list": false,
|
|
1475
|
-
"list_add_label": "Add More",
|
|
1476
|
-
"name": "max_tokens",
|
|
1477
|
-
"override_skip": false,
|
|
1478
|
-
"placeholder": "",
|
|
1479
|
-
"range_spec": {
|
|
1480
|
-
"max": 128000.0,
|
|
1481
|
-
"min": 0.0,
|
|
1482
|
-
"step": 0.1,
|
|
1483
|
-
"step_type": "float"
|
|
1064
|
+
"external_options": {
|
|
1065
|
+
"fields": {
|
|
1066
|
+
"data": {
|
|
1067
|
+
"node": {
|
|
1068
|
+
"display_name": "Connect other models",
|
|
1069
|
+
"icon": "CornerDownLeft",
|
|
1070
|
+
"name": "connect_other_models"
|
|
1071
|
+
}
|
|
1072
|
+
}
|
|
1073
|
+
}
|
|
1484
1074
|
},
|
|
1485
|
-
"
|
|
1486
|
-
"
|
|
1487
|
-
|
|
1488
|
-
|
|
1489
|
-
"trace_as_metadata": true,
|
|
1490
|
-
"track_in_telemetry": true,
|
|
1491
|
-
"type": "int",
|
|
1492
|
-
"value": ""
|
|
1493
|
-
},
|
|
1494
|
-
"model_kwargs": {
|
|
1495
|
-
"_input_type": "DictInput",
|
|
1496
|
-
"advanced": true,
|
|
1497
|
-
"display_name": "Model Kwargs",
|
|
1498
|
-
"dynamic": false,
|
|
1499
|
-
"info": "Additional keyword arguments to pass to the model.",
|
|
1075
|
+
"info": "Select your model provider",
|
|
1076
|
+
"input_types": [
|
|
1077
|
+
"LanguageModel"
|
|
1078
|
+
],
|
|
1500
1079
|
"list": false,
|
|
1501
1080
|
"list_add_label": "Add More",
|
|
1502
|
-
"
|
|
1081
|
+
"model_type": "language",
|
|
1082
|
+
"name": "model",
|
|
1503
1083
|
"override_skip": false,
|
|
1504
|
-
"placeholder": "",
|
|
1505
|
-
"
|
|
1084
|
+
"placeholder": "Setup Provider",
|
|
1085
|
+
"real_time_refresh": true,
|
|
1086
|
+
"refresh_button": true,
|
|
1087
|
+
"required": true,
|
|
1506
1088
|
"show": true,
|
|
1507
1089
|
"title_case": false,
|
|
1508
1090
|
"tool_mode": false,
|
|
1509
1091
|
"trace_as_input": true,
|
|
1510
1092
|
"track_in_telemetry": false,
|
|
1511
|
-
"type": "
|
|
1512
|
-
"value":
|
|
1513
|
-
},
|
|
1514
|
-
"model_name": {
|
|
1515
|
-
"_input_type": "DropdownInput",
|
|
1516
|
-
"advanced": false,
|
|
1517
|
-
"combobox": true,
|
|
1518
|
-
"dialog_inputs": {},
|
|
1519
|
-
"display_name": "Model Name",
|
|
1520
|
-
"dynamic": false,
|
|
1521
|
-
"external_options": {},
|
|
1522
|
-
"info": "To see the model names, first choose a provider. Then, enter your API key and click the refresh button next to the model name.",
|
|
1523
|
-
"name": "model_name",
|
|
1524
|
-
"options": [
|
|
1525
|
-
"gpt-4o-mini",
|
|
1526
|
-
"gpt-4o",
|
|
1527
|
-
"gpt-4.1",
|
|
1528
|
-
"gpt-4.1-mini",
|
|
1529
|
-
"gpt-4.1-nano",
|
|
1530
|
-
"gpt-4-turbo",
|
|
1531
|
-
"gpt-4-turbo-preview",
|
|
1532
|
-
"gpt-4",
|
|
1533
|
-
"gpt-3.5-turbo",
|
|
1534
|
-
"gpt-5.1",
|
|
1535
|
-
"gpt-5",
|
|
1536
|
-
"gpt-5-mini",
|
|
1537
|
-
"gpt-5-nano",
|
|
1538
|
-
"gpt-5-chat-latest",
|
|
1539
|
-
"o1",
|
|
1540
|
-
"o3-mini",
|
|
1541
|
-
"o3",
|
|
1542
|
-
"o3-pro",
|
|
1543
|
-
"o4-mini",
|
|
1544
|
-
"o4-mini-high"
|
|
1545
|
-
],
|
|
1546
|
-
"options_metadata": [],
|
|
1547
|
-
"override_skip": false,
|
|
1548
|
-
"placeholder": "",
|
|
1549
|
-
"real_time_refresh": false,
|
|
1550
|
-
"required": false,
|
|
1551
|
-
"show": true,
|
|
1552
|
-
"title_case": false,
|
|
1553
|
-
"toggle": false,
|
|
1554
|
-
"tool_mode": false,
|
|
1555
|
-
"trace_as_metadata": true,
|
|
1556
|
-
"track_in_telemetry": true,
|
|
1557
|
-
"type": "str",
|
|
1558
|
-
"value": "gpt-4o-mini"
|
|
1093
|
+
"type": "model",
|
|
1094
|
+
"value": ""
|
|
1559
1095
|
},
|
|
1560
1096
|
"n_messages": {
|
|
1561
1097
|
"_input_type": "IntInput",
|
|
@@ -1575,27 +1111,6 @@
|
|
|
1575
1111
|
"type": "int",
|
|
1576
1112
|
"value": 100
|
|
1577
1113
|
},
|
|
1578
|
-
"openai_api_base": {
|
|
1579
|
-
"_input_type": "StrInput",
|
|
1580
|
-
"advanced": true,
|
|
1581
|
-
"display_name": "OpenAI API Base",
|
|
1582
|
-
"dynamic": false,
|
|
1583
|
-
"info": "The base URL of the OpenAI API. Defaults to https://api.openai.com/v1. You can change this to use other APIs like JinaChat, LocalAI and Prem.",
|
|
1584
|
-
"list": false,
|
|
1585
|
-
"list_add_label": "Add More",
|
|
1586
|
-
"load_from_db": false,
|
|
1587
|
-
"name": "openai_api_base",
|
|
1588
|
-
"override_skip": false,
|
|
1589
|
-
"placeholder": "",
|
|
1590
|
-
"required": false,
|
|
1591
|
-
"show": true,
|
|
1592
|
-
"title_case": false,
|
|
1593
|
-
"tool_mode": false,
|
|
1594
|
-
"trace_as_metadata": true,
|
|
1595
|
-
"track_in_telemetry": false,
|
|
1596
|
-
"type": "str",
|
|
1597
|
-
"value": ""
|
|
1598
|
-
},
|
|
1599
1114
|
"output_schema": {
|
|
1600
1115
|
"_input_type": "TableInput",
|
|
1601
1116
|
"advanced": true,
|
|
@@ -1642,62 +1157,21 @@
|
|
|
1642
1157
|
"type": "str"
|
|
1643
1158
|
},
|
|
1644
1159
|
{
|
|
1645
|
-
"default": "False",
|
|
1646
|
-
"description": "Set to True if this output field should be a list of the specified type.",
|
|
1647
|
-
"display_name": "As List",
|
|
1648
|
-
"edit_mode": "inline",
|
|
1649
|
-
"name": "multiple",
|
|
1650
|
-
"type": "boolean"
|
|
1651
|
-
}
|
|
1652
|
-
],
|
|
1653
|
-
"title_case": false,
|
|
1654
|
-
"tool_mode": false,
|
|
1655
|
-
"trace_as_metadata": true,
|
|
1656
|
-
"trigger_icon": "Table",
|
|
1657
|
-
"trigger_text": "Open table",
|
|
1658
|
-
"type": "table",
|
|
1659
|
-
"value": []
|
|
1660
|
-
},
|
|
1661
|
-
"project_id": {
|
|
1662
|
-
"_input_type": "StrInput",
|
|
1663
|
-
"advanced": false,
|
|
1664
|
-
"display_name": "Project ID",
|
|
1665
|
-
"dynamic": false,
|
|
1666
|
-
"info": "The project ID of the model.",
|
|
1667
|
-
"list": false,
|
|
1668
|
-
"list_add_label": "Add More",
|
|
1669
|
-
"load_from_db": false,
|
|
1670
|
-
"name": "project_id",
|
|
1671
|
-
"override_skip": false,
|
|
1672
|
-
"placeholder": "",
|
|
1673
|
-
"required": true,
|
|
1674
|
-
"show": false,
|
|
1675
|
-
"title_case": false,
|
|
1676
|
-
"tool_mode": false,
|
|
1677
|
-
"trace_as_metadata": true,
|
|
1678
|
-
"track_in_telemetry": false,
|
|
1679
|
-
"type": "str",
|
|
1680
|
-
"value": ""
|
|
1681
|
-
},
|
|
1682
|
-
"seed": {
|
|
1683
|
-
"_input_type": "IntInput",
|
|
1684
|
-
"advanced": true,
|
|
1685
|
-
"display_name": "Seed",
|
|
1686
|
-
"dynamic": false,
|
|
1687
|
-
"info": "The seed controls the reproducibility of the job.",
|
|
1688
|
-
"list": false,
|
|
1689
|
-
"list_add_label": "Add More",
|
|
1690
|
-
"name": "seed",
|
|
1691
|
-
"override_skip": false,
|
|
1692
|
-
"placeholder": "",
|
|
1693
|
-
"required": false,
|
|
1694
|
-
"show": true,
|
|
1160
|
+
"default": "False",
|
|
1161
|
+
"description": "Set to True if this output field should be a list of the specified type.",
|
|
1162
|
+
"display_name": "As List",
|
|
1163
|
+
"edit_mode": "inline",
|
|
1164
|
+
"name": "multiple",
|
|
1165
|
+
"type": "boolean"
|
|
1166
|
+
}
|
|
1167
|
+
],
|
|
1695
1168
|
"title_case": false,
|
|
1696
1169
|
"tool_mode": false,
|
|
1697
1170
|
"trace_as_metadata": true,
|
|
1698
|
-
"
|
|
1699
|
-
"
|
|
1700
|
-
"
|
|
1171
|
+
"trigger_icon": "Table",
|
|
1172
|
+
"trigger_text": "Open table",
|
|
1173
|
+
"type": "table",
|
|
1174
|
+
"value": []
|
|
1701
1175
|
},
|
|
1702
1176
|
"system_prompt": {
|
|
1703
1177
|
"_input_type": "MultilineInput",
|
|
@@ -1724,56 +1198,6 @@
|
|
|
1724
1198
|
"type": "str",
|
|
1725
1199
|
"value": "You are a brilliant comedy writer known for making complex topics entertaining and memorable. Using the editor's refined document about {topic}, create an engaging, humorous blog post.\n\nYour approach should:\n- Find unexpected angles and amusing parallels\n- Use clever wordplay and wit (avoid cheap jokes)\n- Maintain accuracy while being entertaining\n- Include relatable examples and analogies\n- Keep a smart, sophisticated tone\n- Make the topic more approachable through humor\n\nCreate a blog post that makes people laugh while actually teaching them about {topic}. The humor should enhance, not overshadow, the educational value."
|
|
1726
1200
|
},
|
|
1727
|
-
"temperature": {
|
|
1728
|
-
"_input_type": "SliderInput",
|
|
1729
|
-
"advanced": true,
|
|
1730
|
-
"display_name": "Temperature",
|
|
1731
|
-
"dynamic": false,
|
|
1732
|
-
"info": "",
|
|
1733
|
-
"max_label": "",
|
|
1734
|
-
"max_label_icon": "",
|
|
1735
|
-
"min_label": "",
|
|
1736
|
-
"min_label_icon": "",
|
|
1737
|
-
"name": "temperature",
|
|
1738
|
-
"override_skip": false,
|
|
1739
|
-
"placeholder": "",
|
|
1740
|
-
"range_spec": {
|
|
1741
|
-
"max": 1.0,
|
|
1742
|
-
"min": 0.0,
|
|
1743
|
-
"step": 0.01,
|
|
1744
|
-
"step_type": "float"
|
|
1745
|
-
},
|
|
1746
|
-
"required": false,
|
|
1747
|
-
"show": true,
|
|
1748
|
-
"slider_buttons": false,
|
|
1749
|
-
"slider_buttons_options": [],
|
|
1750
|
-
"slider_input": false,
|
|
1751
|
-
"title_case": false,
|
|
1752
|
-
"tool_mode": false,
|
|
1753
|
-
"track_in_telemetry": false,
|
|
1754
|
-
"type": "slider",
|
|
1755
|
-
"value": 0.1
|
|
1756
|
-
},
|
|
1757
|
-
"timeout": {
|
|
1758
|
-
"_input_type": "IntInput",
|
|
1759
|
-
"advanced": true,
|
|
1760
|
-
"display_name": "Timeout",
|
|
1761
|
-
"dynamic": false,
|
|
1762
|
-
"info": "The timeout for requests to OpenAI completion API.",
|
|
1763
|
-
"list": false,
|
|
1764
|
-
"list_add_label": "Add More",
|
|
1765
|
-
"name": "timeout",
|
|
1766
|
-
"override_skip": false,
|
|
1767
|
-
"placeholder": "",
|
|
1768
|
-
"required": false,
|
|
1769
|
-
"show": true,
|
|
1770
|
-
"title_case": false,
|
|
1771
|
-
"tool_mode": false,
|
|
1772
|
-
"trace_as_metadata": true,
|
|
1773
|
-
"track_in_telemetry": true,
|
|
1774
|
-
"type": "int",
|
|
1775
|
-
"value": 700
|
|
1776
|
-
},
|
|
1777
1201
|
"tools": {
|
|
1778
1202
|
"_input_type": "HandleInput",
|
|
1779
1203
|
"advanced": false,
|
|
@@ -1819,7 +1243,6 @@
|
|
|
1819
1243
|
"type": "Agent"
|
|
1820
1244
|
},
|
|
1821
1245
|
"dragging": false,
|
|
1822
|
-
"height": 650,
|
|
1823
1246
|
"id": "Agent-X1iAT",
|
|
1824
1247
|
"measured": {
|
|
1825
1248
|
"height": 650,
|
|
@@ -1834,8 +1257,7 @@
|
|
|
1834
1257
|
"y": -1365.4053932711827
|
|
1835
1258
|
},
|
|
1836
1259
|
"selected": false,
|
|
1837
|
-
"type": "genericNode"
|
|
1838
|
-
"width": 320
|
|
1260
|
+
"type": "genericNode"
|
|
1839
1261
|
},
|
|
1840
1262
|
{
|
|
1841
1263
|
"data": {
|
|
@@ -1957,7 +1379,6 @@
|
|
|
1957
1379
|
"type": "Prompt"
|
|
1958
1380
|
},
|
|
1959
1381
|
"dragging": false,
|
|
1960
|
-
"height": 260,
|
|
1961
1382
|
"id": "Prompt-ajhmq",
|
|
1962
1383
|
"measured": {
|
|
1963
1384
|
"height": 260,
|
|
@@ -1972,8 +1393,7 @@
|
|
|
1972
1393
|
"y": -1107.442614776065
|
|
1973
1394
|
},
|
|
1974
1395
|
"selected": false,
|
|
1975
|
-
"type": "genericNode"
|
|
1976
|
-
"width": 320
|
|
1396
|
+
"type": "genericNode"
|
|
1977
1397
|
},
|
|
1978
1398
|
{
|
|
1979
1399
|
"data": {
|
|
@@ -2095,7 +1515,6 @@
|
|
|
2095
1515
|
"type": "Prompt"
|
|
2096
1516
|
},
|
|
2097
1517
|
"dragging": false,
|
|
2098
|
-
"height": 260,
|
|
2099
1518
|
"id": "Prompt-6JL4E",
|
|
2100
1519
|
"measured": {
|
|
2101
1520
|
"height": 260,
|
|
@@ -2110,8 +1529,7 @@
|
|
|
2110
1529
|
"y": -1280.1782190739505
|
|
2111
1530
|
},
|
|
2112
1531
|
"selected": false,
|
|
2113
|
-
"type": "genericNode"
|
|
2114
|
-
"width": 320
|
|
1532
|
+
"type": "genericNode"
|
|
2115
1533
|
},
|
|
2116
1534
|
{
|
|
2117
1535
|
"data": {
|
|
@@ -2282,7 +1700,6 @@
|
|
|
2282
1700
|
"type": "Prompt"
|
|
2283
1701
|
},
|
|
2284
1702
|
"dragging": false,
|
|
2285
|
-
"height": 433,
|
|
2286
1703
|
"id": "Prompt-WvveL",
|
|
2287
1704
|
"measured": {
|
|
2288
1705
|
"height": 433,
|
|
@@ -2297,8 +1714,7 @@
|
|
|
2297
1714
|
"y": -1081.5957453651372
|
|
2298
1715
|
},
|
|
2299
1716
|
"selected": false,
|
|
2300
|
-
"type": "genericNode"
|
|
2301
|
-
"width": 320
|
|
1717
|
+
"type": "genericNode"
|
|
2302
1718
|
},
|
|
2303
1719
|
{
|
|
2304
1720
|
"data": {
|
|
@@ -2555,7 +1971,6 @@
|
|
|
2555
1971
|
"type": "ChatInput"
|
|
2556
1972
|
},
|
|
2557
1973
|
"dragging": false,
|
|
2558
|
-
"height": 234,
|
|
2559
1974
|
"id": "ChatInput-NuUHZ",
|
|
2560
1975
|
"measured": {
|
|
2561
1976
|
"height": 234,
|
|
@@ -2570,8 +1985,7 @@
|
|
|
2570
1985
|
"y": -947.702056394023
|
|
2571
1986
|
},
|
|
2572
1987
|
"selected": false,
|
|
2573
|
-
"type": "genericNode"
|
|
2574
|
-
"width": 320
|
|
1988
|
+
"type": "genericNode"
|
|
2575
1989
|
},
|
|
2576
1990
|
{
|
|
2577
1991
|
"data": {
|
|
@@ -2650,13 +2064,9 @@
|
|
|
2650
2064
|
"icon": "bot",
|
|
2651
2065
|
"legacy": false,
|
|
2652
2066
|
"metadata": {
|
|
2653
|
-
"code_hash": "
|
|
2067
|
+
"code_hash": "1834a4d901fa",
|
|
2654
2068
|
"dependencies": {
|
|
2655
2069
|
"dependencies": [
|
|
2656
|
-
{
|
|
2657
|
-
"name": "langchain_core",
|
|
2658
|
-
"version": "0.3.80"
|
|
2659
|
-
},
|
|
2660
2070
|
{
|
|
2661
2071
|
"name": "pydantic",
|
|
2662
2072
|
"version": "2.11.10"
|
|
@@ -2664,6 +2074,10 @@
|
|
|
2664
2074
|
{
|
|
2665
2075
|
"name": "lfx",
|
|
2666
2076
|
"version": null
|
|
2077
|
+
},
|
|
2078
|
+
{
|
|
2079
|
+
"name": "langchain_core",
|
|
2080
|
+
"version": "0.3.80"
|
|
2667
2081
|
}
|
|
2668
2082
|
],
|
|
2669
2083
|
"total_dependencies": 3
|
|
@@ -2734,71 +2148,12 @@
|
|
|
2734
2148
|
"type": "str",
|
|
2735
2149
|
"value": "A helpful assistant with access to the following tools:"
|
|
2736
2150
|
},
|
|
2737
|
-
"agent_llm": {
|
|
2738
|
-
"_input_type": "DropdownInput",
|
|
2739
|
-
"advanced": false,
|
|
2740
|
-
"combobox": false,
|
|
2741
|
-
"dialog_inputs": {},
|
|
2742
|
-
"display_name": "Model Provider",
|
|
2743
|
-
"dynamic": false,
|
|
2744
|
-
"external_options": {
|
|
2745
|
-
"fields": {
|
|
2746
|
-
"data": {
|
|
2747
|
-
"node": {
|
|
2748
|
-
"display_name": "Connect other models",
|
|
2749
|
-
"icon": "CornerDownLeft",
|
|
2750
|
-
"name": "connect_other_models"
|
|
2751
|
-
}
|
|
2752
|
-
}
|
|
2753
|
-
}
|
|
2754
|
-
},
|
|
2755
|
-
"info": "The provider of the language model that the agent will use to generate responses.",
|
|
2756
|
-
"input_types": [],
|
|
2757
|
-
"name": "agent_llm",
|
|
2758
|
-
"options": [
|
|
2759
|
-
"Anthropic",
|
|
2760
|
-
"Google Generative AI",
|
|
2761
|
-
"OpenAI",
|
|
2762
|
-
"IBM watsonx.ai",
|
|
2763
|
-
"Ollama"
|
|
2764
|
-
],
|
|
2765
|
-
"options_metadata": [
|
|
2766
|
-
{
|
|
2767
|
-
"icon": "Anthropic"
|
|
2768
|
-
},
|
|
2769
|
-
{
|
|
2770
|
-
"icon": "GoogleGenerativeAI"
|
|
2771
|
-
},
|
|
2772
|
-
{
|
|
2773
|
-
"icon": "OpenAI"
|
|
2774
|
-
},
|
|
2775
|
-
{
|
|
2776
|
-
"icon": "WatsonxAI"
|
|
2777
|
-
},
|
|
2778
|
-
{
|
|
2779
|
-
"icon": "Ollama"
|
|
2780
|
-
}
|
|
2781
|
-
],
|
|
2782
|
-
"override_skip": false,
|
|
2783
|
-
"placeholder": "",
|
|
2784
|
-
"real_time_refresh": true,
|
|
2785
|
-
"refresh_button": false,
|
|
2786
|
-
"required": false,
|
|
2787
|
-
"show": true,
|
|
2788
|
-
"title_case": false,
|
|
2789
|
-
"toggle": false,
|
|
2790
|
-
"tool_mode": false,
|
|
2791
|
-
"trace_as_metadata": true,
|
|
2792
|
-
"track_in_telemetry": true,
|
|
2793
|
-
"type": "str",
|
|
2794
|
-
"value": "OpenAI"
|
|
2795
|
-
},
|
|
2796
2151
|
"api_key": {
|
|
2797
2152
|
"_input_type": "SecretStrInput",
|
|
2798
2153
|
"advanced": false,
|
|
2799
|
-
"display_name": "
|
|
2154
|
+
"display_name": "API Key",
|
|
2800
2155
|
"dynamic": false,
|
|
2801
|
-
"info": "
|
|
2156
|
+
"info": "Model Provider API key",
|
|
2802
2157
|
"input_types": [],
|
|
2803
2158
|
"load_from_db": true,
|
|
2804
2159
|
"name": "api_key",
|
|
@@ -2811,27 +2166,6 @@
|
|
|
2811
2166
|
"type": "str",
|
|
2812
2167
|
"value": "OPENAI_API_KEY"
|
|
2813
2168
|
},
|
|
2814
|
-
"base_url": {
|
|
2815
|
-
"_input_type": "StrInput",
|
|
2816
|
-
"advanced": false,
|
|
2817
|
-
"display_name": "Base URL",
|
|
2818
|
-
"dynamic": false,
|
|
2819
|
-
"info": "The base URL of the API.",
|
|
2820
|
-
"list": false,
|
|
2821
|
-
"list_add_label": "Add More",
|
|
2822
|
-
"load_from_db": false,
|
|
2823
|
-
"name": "base_url",
|
|
2824
|
-
"override_skip": false,
|
|
2825
|
-
"placeholder": "",
|
|
2826
|
-
"required": true,
|
|
2827
|
-
"show": false,
|
|
2828
|
-
"title_case": false,
|
|
2829
|
-
"tool_mode": false,
|
|
2830
|
-
"trace_as_metadata": true,
|
|
2831
|
-
"track_in_telemetry": false,
|
|
2832
|
-
"type": "str",
|
|
2833
|
-
"value": ""
|
|
2834
|
-
},
|
|
2835
2169
|
"code": {
|
|
2836
2170
|
"advanced": true,
|
|
2837
2171
|
"dynamic": true,
|
|
@@ -2848,7 +2182,7 @@
|
|
|
2848
2182
|
"show": true,
|
|
2849
2183
|
"title_case": false,
|
|
2850
2184
|
"type": "code",
|
|
2851
|
-
"value": "import json\nimport re\n\nfrom langchain_core.tools import StructuredTool, Tool\nfrom pydantic import ValidationError\n\nfrom lfx.base.agents.agent import LCToolsAgentComponent\nfrom lfx.base.agents.events import ExceptionWithMessageError\nfrom lfx.base.models.model_input_constants import (\n ALL_PROVIDER_FIELDS,\n MODEL_DYNAMIC_UPDATE_FIELDS,\n MODEL_PROVIDERS_DICT,\n MODEL_PROVIDERS_LIST,\n MODELS_METADATA,\n)\nfrom lfx.base.models.model_utils import get_model_name\nfrom lfx.components.helpers import CurrentDateComponent\nfrom lfx.components.langchain_utilities.tool_calling import ToolCallingAgentComponent\nfrom lfx.components.models_and_agents.memory import MemoryComponent\nfrom lfx.custom.custom_component.component import get_component_toolkit\nfrom lfx.custom.utils import update_component_build_config\nfrom lfx.helpers.base_model import build_model_from_schema\nfrom lfx.inputs.inputs import BoolInput, SecretStrInput, StrInput\nfrom lfx.io import DropdownInput, IntInput, MessageTextInput, MultilineInput, Output, TableInput\nfrom lfx.log.logger import logger\nfrom lfx.schema.data import Data\nfrom lfx.schema.dotdict import dotdict\nfrom lfx.schema.message import Message\nfrom lfx.schema.table import EditMode\n\n\ndef set_advanced_true(component_input):\n component_input.advanced = True\n return component_input\n\n\nclass AgentComponent(ToolCallingAgentComponent):\n display_name: str = \"Agent\"\n description: str = \"Define the agent's instructions, then enter a task to complete using tools.\"\n documentation: str = \"https://docs.langflow.org/agents\"\n icon = \"bot\"\n beta = False\n name = \"Agent\"\n\n memory_inputs = [set_advanced_true(component_input) for component_input in MemoryComponent().inputs]\n\n # Filter out json_mode from OpenAI inputs since we handle structured output differently\n if \"OpenAI\" in MODEL_PROVIDERS_DICT:\n openai_inputs_filtered = [\n input_field\n for input_field in MODEL_PROVIDERS_DICT[\"OpenAI\"][\"inputs\"]\n if not (hasattr(input_field, \"name\") and input_field.name == \"json_mode\")\n ]\n else:\n openai_inputs_filtered = []\n\n inputs = [\n DropdownInput(\n name=\"agent_llm\",\n display_name=\"Model Provider\",\n info=\"The provider of the language model that the agent will use to generate responses.\",\n options=[*MODEL_PROVIDERS_LIST],\n value=\"OpenAI\",\n real_time_refresh=True,\n refresh_button=False,\n input_types=[],\n options_metadata=[MODELS_METADATA[key] for key in MODEL_PROVIDERS_LIST if key in MODELS_METADATA],\n external_options={\n \"fields\": {\n \"data\": {\n \"node\": {\n \"name\": \"connect_other_models\",\n \"display_name\": \"Connect other models\",\n \"icon\": \"CornerDownLeft\",\n }\n }\n },\n },\n ),\n SecretStrInput(\n name=\"api_key\",\n display_name=\"API Key\",\n info=\"The API key to use for the model.\",\n required=True,\n ),\n StrInput(\n name=\"base_url\",\n display_name=\"Base URL\",\n info=\"The base URL of the API.\",\n required=True,\n show=False,\n ),\n StrInput(\n name=\"project_id\",\n display_name=\"Project ID\",\n info=\"The project ID of the model.\",\n required=True,\n show=False,\n ),\n IntInput(\n name=\"max_output_tokens\",\n display_name=\"Max Output Tokens\",\n info=\"The maximum number of tokens to generate.\",\n show=False,\n ),\n *openai_inputs_filtered,\n MultilineInput(\n name=\"system_prompt\",\n display_name=\"Agent Instructions\",\n info=\"System Prompt: Initial instructions and context provided to guide the agent's behavior.\",\n value=\"You are a helpful assistant that can use tools to answer questions and perform tasks.\",\n advanced=False,\n ),\n MessageTextInput(\n name=\"context_id\",\n display_name=\"Context ID\",\n info=\"The context ID of the chat. Adds an extra layer to the local memory.\",\n value=\"\",\n advanced=True,\n ),\n IntInput(\n name=\"n_messages\",\n display_name=\"Number of Chat History Messages\",\n value=100,\n info=\"Number of chat history messages to retrieve.\",\n advanced=True,\n show=True,\n ),\n MultilineInput(\n name=\"format_instructions\",\n display_name=\"Output Format Instructions\",\n info=\"Generic Template for structured output formatting. Valid only with Structured response.\",\n value=(\n \"You are an AI that extracts structured JSON objects from unstructured text. \"\n \"Use a predefined schema with expected types (str, int, float, bool, dict). \"\n \"Extract ALL relevant instances that match the schema - if multiple patterns exist, capture them all. \"\n \"Fill missing or ambiguous values with defaults: null for missing values. \"\n \"Remove exact duplicates but keep variations that have different field values. \"\n \"Always return valid JSON in the expected format, never throw errors. \"\n \"If multiple objects can be extracted, return them all in the structured format.\"\n ),\n advanced=True,\n ),\n TableInput(\n name=\"output_schema\",\n display_name=\"Output Schema\",\n info=(\n \"Schema Validation: Define the structure and data types for structured output. \"\n \"No validation if no output schema.\"\n ),\n advanced=True,\n required=False,\n value=[],\n table_schema=[\n {\n \"name\": \"name\",\n \"display_name\": \"Name\",\n \"type\": \"str\",\n \"description\": \"Specify the name of the output field.\",\n \"default\": \"field\",\n \"edit_mode\": EditMode.INLINE,\n },\n {\n \"name\": \"description\",\n \"display_name\": \"Description\",\n \"type\": \"str\",\n \"description\": \"Describe the purpose of the output field.\",\n \"default\": \"description of field\",\n \"edit_mode\": EditMode.POPOVER,\n },\n {\n \"name\": \"type\",\n \"display_name\": \"Type\",\n \"type\": \"str\",\n \"edit_mode\": EditMode.INLINE,\n \"description\": (\"Indicate the data type of the output field (e.g., str, int, float, bool, dict).\"),\n \"options\": [\"str\", \"int\", \"float\", \"bool\", \"dict\"],\n \"default\": \"str\",\n },\n {\n \"name\": \"multiple\",\n \"display_name\": \"As List\",\n \"type\": \"boolean\",\n \"description\": \"Set to True if this output field should be a list of the specified type.\",\n \"default\": \"False\",\n \"edit_mode\": EditMode.INLINE,\n },\n ],\n ),\n *LCToolsAgentComponent.get_base_inputs(),\n # removed memory inputs from agent component\n # *memory_inputs,\n BoolInput(\n name=\"add_current_date_tool\",\n display_name=\"Current Date\",\n advanced=True,\n info=\"If true, will add a tool to the agent that returns the current date.\",\n value=True,\n ),\n ]\n outputs = [\n Output(name=\"response\", display_name=\"Response\", method=\"message_response\"),\n ]\n\n async def get_agent_requirements(self):\n \"\"\"Get the agent requirements for the agent.\"\"\"\n llm_model, display_name = await self.get_llm()\n if llm_model is None:\n msg = \"No language model selected. Please choose a model to proceed.\"\n raise ValueError(msg)\n self.model_name = get_model_name(llm_model, display_name=display_name)\n\n # Get memory data\n self.chat_history = await self.get_memory_data()\n await logger.adebug(f\"Retrieved {len(self.chat_history)} chat history messages\")\n if isinstance(self.chat_history, Message):\n self.chat_history = [self.chat_history]\n\n # Add current date tool if enabled\n if self.add_current_date_tool:\n if not isinstance(self.tools, list): # type: ignore[has-type]\n self.tools = []\n current_date_tool = (await CurrentDateComponent(**self.get_base_args()).to_toolkit()).pop(0)\n\n if not isinstance(current_date_tool, StructuredTool):\n msg = \"CurrentDateComponent must be converted to a StructuredTool\"\n raise TypeError(msg)\n self.tools.append(current_date_tool)\n\n # Set shared callbacks for tracing the tools used by the agent\n self.set_tools_callbacks(self.tools, self._get_shared_callbacks())\n\n return llm_model, self.chat_history, self.tools\n\n async def message_response(self) -> Message:\n try:\n llm_model, self.chat_history, self.tools = await self.get_agent_requirements()\n # Set up and run agent\n self.set(\n llm=llm_model,\n tools=self.tools or [],\n chat_history=self.chat_history,\n input_value=self.input_value,\n system_prompt=self.system_prompt,\n )\n agent = self.create_agent_runnable()\n result = await self.run_agent(agent)\n\n # Store result for potential JSON output\n self._agent_result = result\n\n except (ValueError, TypeError, KeyError) as e:\n await logger.aerror(f\"{type(e).__name__}: {e!s}\")\n raise\n except ExceptionWithMessageError as e:\n await logger.aerror(f\"ExceptionWithMessageError occurred: {e}\")\n raise\n # Avoid catching blind Exception; let truly unexpected exceptions propagate\n except Exception as e:\n await logger.aerror(f\"Unexpected error: {e!s}\")\n raise\n else:\n return result\n\n def _preprocess_schema(self, schema):\n \"\"\"Preprocess schema to ensure correct data types for build_model_from_schema.\"\"\"\n processed_schema = []\n for field in schema:\n processed_field = {\n \"name\": str(field.get(\"name\", \"field\")),\n \"type\": str(field.get(\"type\", \"str\")),\n \"description\": str(field.get(\"description\", \"\")),\n \"multiple\": field.get(\"multiple\", False),\n }\n # Ensure multiple is handled correctly\n if isinstance(processed_field[\"multiple\"], str):\n processed_field[\"multiple\"] = processed_field[\"multiple\"].lower() in [\n \"true\",\n \"1\",\n \"t\",\n \"y\",\n \"yes\",\n ]\n processed_schema.append(processed_field)\n return processed_schema\n\n async def build_structured_output_base(self, content: str):\n \"\"\"Build structured output with optional BaseModel validation.\"\"\"\n json_pattern = r\"\\{.*\\}\"\n schema_error_msg = \"Try setting an output schema\"\n\n # Try to parse content as JSON first\n json_data = None\n try:\n json_data = json.loads(content)\n except json.JSONDecodeError:\n json_match = re.search(json_pattern, content, re.DOTALL)\n if json_match:\n try:\n json_data = json.loads(json_match.group())\n except json.JSONDecodeError:\n return {\"content\": content, \"error\": schema_error_msg}\n else:\n return {\"content\": content, \"error\": schema_error_msg}\n\n # If no output schema provided, return parsed JSON without validation\n if not hasattr(self, \"output_schema\") or not self.output_schema or len(self.output_schema) == 0:\n return json_data\n\n # Use BaseModel validation with schema\n try:\n processed_schema = self._preprocess_schema(self.output_schema)\n output_model = build_model_from_schema(processed_schema)\n\n # Validate against the schema\n if isinstance(json_data, list):\n # Multiple objects\n validated_objects = []\n for item in json_data:\n try:\n validated_obj = output_model.model_validate(item)\n validated_objects.append(validated_obj.model_dump())\n except ValidationError as e:\n await logger.aerror(f\"Validation error for item: {e}\")\n # Include invalid items with error info\n validated_objects.append({\"data\": item, \"validation_error\": str(e)})\n return validated_objects\n\n # Single object\n try:\n validated_obj = output_model.model_validate(json_data)\n return [validated_obj.model_dump()] # Return as list for consistency\n except ValidationError as e:\n await logger.aerror(f\"Validation error: {e}\")\n return [{\"data\": json_data, \"validation_error\": str(e)}]\n\n except (TypeError, ValueError) as e:\n await logger.aerror(f\"Error building structured output: {e}\")\n # Fallback to parsed JSON without validation\n return json_data\n\n async def json_response(self) -> Data:\n \"\"\"Convert agent response to structured JSON Data output with schema validation.\"\"\"\n # Always use structured chat agent for JSON response mode for better JSON formatting\n try:\n system_components = []\n\n # 1. Agent Instructions (system_prompt)\n agent_instructions = getattr(self, \"system_prompt\", \"\") or \"\"\n if agent_instructions:\n system_components.append(f\"{agent_instructions}\")\n\n # 2. Format Instructions\n format_instructions = getattr(self, \"format_instructions\", \"\") or \"\"\n if format_instructions:\n system_components.append(f\"Format instructions: {format_instructions}\")\n\n # 3. Schema Information from BaseModel\n if hasattr(self, \"output_schema\") and self.output_schema and len(self.output_schema) > 0:\n try:\n processed_schema = self._preprocess_schema(self.output_schema)\n output_model = build_model_from_schema(processed_schema)\n schema_dict = output_model.model_json_schema()\n schema_info = (\n \"You are given some text that may include format instructions, \"\n \"explanations, or other content alongside a JSON schema.\\n\\n\"\n \"Your task:\\n\"\n \"- Extract only the JSON schema.\\n\"\n \"- Return it as valid JSON.\\n\"\n \"- Do not include format instructions, explanations, or extra text.\\n\\n\"\n \"Input:\\n\"\n f\"{json.dumps(schema_dict, indent=2)}\\n\\n\"\n \"Output (only JSON schema):\"\n )\n system_components.append(schema_info)\n except (ValidationError, ValueError, TypeError, KeyError) as e:\n await logger.aerror(f\"Could not build schema for prompt: {e}\", exc_info=True)\n\n # Combine all components\n combined_instructions = \"\\n\\n\".join(system_components) if system_components else \"\"\n llm_model, self.chat_history, self.tools = await self.get_agent_requirements()\n self.set(\n llm=llm_model,\n tools=self.tools or [],\n chat_history=self.chat_history,\n input_value=self.input_value,\n system_prompt=combined_instructions,\n )\n\n # Create and run structured chat agent\n try:\n structured_agent = self.create_agent_runnable()\n except (NotImplementedError, ValueError, TypeError) as e:\n await logger.aerror(f\"Error with structured chat agent: {e}\")\n raise\n try:\n result = await self.run_agent(structured_agent)\n except (\n ExceptionWithMessageError,\n ValueError,\n TypeError,\n RuntimeError,\n ) as e:\n await logger.aerror(f\"Error with structured agent result: {e}\")\n raise\n # Extract content from structured agent result\n if hasattr(result, \"content\"):\n content = result.content\n elif hasattr(result, \"text\"):\n content = result.text\n else:\n content = str(result)\n\n except (\n ExceptionWithMessageError,\n ValueError,\n TypeError,\n NotImplementedError,\n AttributeError,\n ) as e:\n await logger.aerror(f\"Error with structured chat agent: {e}\")\n # Fallback to regular agent\n content_str = \"No content returned from agent\"\n return Data(data={\"content\": content_str, \"error\": str(e)})\n\n # Process with structured output validation\n try:\n structured_output = await self.build_structured_output_base(content)\n\n # Handle different output formats\n if isinstance(structured_output, list) and structured_output:\n if len(structured_output) == 1:\n return Data(data=structured_output[0])\n return Data(data={\"results\": structured_output})\n if isinstance(structured_output, dict):\n return Data(data=structured_output)\n return Data(data={\"content\": content})\n\n except (ValueError, TypeError) as e:\n await logger.aerror(f\"Error in structured output processing: {e}\")\n return Data(data={\"content\": content, \"error\": str(e)})\n\n async def get_memory_data(self):\n # TODO: This is a temporary fix to avoid message duplication. We should develop a function for this.\n messages = (\n await MemoryComponent(**self.get_base_args())\n .set(\n session_id=self.graph.session_id,\n context_id=self.context_id,\n order=\"Ascending\",\n n_messages=self.n_messages,\n )\n .retrieve_messages()\n )\n return [\n message for message in messages if getattr(message, \"id\", None) != getattr(self.input_value, \"id\", None)\n ]\n\n async def get_llm(self):\n if not isinstance(self.agent_llm, str):\n return self.agent_llm, None\n\n try:\n provider_info = MODEL_PROVIDERS_DICT.get(self.agent_llm)\n if not provider_info:\n msg = f\"Invalid model provider: {self.agent_llm}\"\n raise ValueError(msg)\n\n component_class = provider_info.get(\"component_class\")\n display_name = component_class.display_name\n inputs = provider_info.get(\"inputs\")\n prefix = provider_info.get(\"prefix\", \"\")\n\n return self._build_llm_model(component_class, inputs, prefix), display_name\n\n except (AttributeError, ValueError, TypeError, RuntimeError) as e:\n await logger.aerror(f\"Error building {self.agent_llm} language model: {e!s}\")\n msg = f\"Failed to initialize language model: {e!s}\"\n raise ValueError(msg) from e\n\n def _build_llm_model(self, component, inputs, prefix=\"\"):\n model_kwargs = {}\n for input_ in inputs:\n if hasattr(self, f\"{prefix}{input_.name}\"):\n model_kwargs[input_.name] = getattr(self, f\"{prefix}{input_.name}\")\n return component.set(**model_kwargs).build_model()\n\n def set_component_params(self, component):\n provider_info = MODEL_PROVIDERS_DICT.get(self.agent_llm)\n if provider_info:\n inputs = provider_info.get(\"inputs\")\n prefix = provider_info.get(\"prefix\")\n # Filter out json_mode and only use attributes that exist on this component\n model_kwargs = {}\n for input_ in inputs:\n if hasattr(self, f\"{prefix}{input_.name}\"):\n model_kwargs[input_.name] = getattr(self, f\"{prefix}{input_.name}\")\n\n return component.set(**model_kwargs)\n return component\n\n def delete_fields(self, build_config: dotdict, fields: dict | list[str]) -> None:\n \"\"\"Delete specified fields from build_config.\"\"\"\n for field in fields:\n if build_config is not None and field in build_config:\n build_config.pop(field, None)\n\n def update_input_types(self, build_config: dotdict) -> dotdict:\n \"\"\"Update input types for all fields in build_config.\"\"\"\n for key, value in build_config.items():\n if isinstance(value, dict):\n if value.get(\"input_types\") is None:\n build_config[key][\"input_types\"] = []\n elif hasattr(value, \"input_types\") and value.input_types is None:\n value.input_types = []\n return build_config\n\n async def update_build_config(\n self, build_config: dotdict, field_value: str, field_name: str | None = None\n ) -> dotdict:\n # Iterate over all providers in the MODEL_PROVIDERS_DICT\n # Existing logic for updating build_config\n if field_name in (\"agent_llm\",):\n build_config[\"agent_llm\"][\"value\"] = field_value\n provider_info = MODEL_PROVIDERS_DICT.get(field_value)\n if provider_info:\n component_class = provider_info.get(\"component_class\")\n if component_class and hasattr(component_class, \"update_build_config\"):\n # Call the component class's update_build_config method\n build_config = await update_component_build_config(\n component_class, build_config, field_value, \"model_name\"\n )\n\n provider_configs: dict[str, tuple[dict, list[dict]]] = {\n provider: (\n MODEL_PROVIDERS_DICT[provider][\"fields\"],\n [\n MODEL_PROVIDERS_DICT[other_provider][\"fields\"]\n for other_provider in MODEL_PROVIDERS_DICT\n if other_provider != provider\n ],\n )\n for provider in MODEL_PROVIDERS_DICT\n }\n if field_value in provider_configs:\n fields_to_add, fields_to_delete = provider_configs[field_value]\n\n # Delete fields from other providers\n for fields in fields_to_delete:\n self.delete_fields(build_config, fields)\n\n # Add provider-specific fields\n if field_value == \"OpenAI\" and not any(field in build_config for field in fields_to_add):\n build_config.update(fields_to_add)\n else:\n build_config.update(fields_to_add)\n # Reset input types for agent_llm\n build_config[\"agent_llm\"][\"input_types\"] = []\n build_config[\"agent_llm\"][\"display_name\"] = \"Model Provider\"\n elif field_value == \"connect_other_models\":\n # Delete all provider fields\n self.delete_fields(build_config, ALL_PROVIDER_FIELDS)\n # # Update with custom component\n custom_component = DropdownInput(\n name=\"agent_llm\",\n display_name=\"Language Model\",\n info=\"The provider of the language model that the agent will use to generate responses.\",\n options=[*MODEL_PROVIDERS_LIST],\n real_time_refresh=True,\n refresh_button=False,\n input_types=[\"LanguageModel\"],\n placeholder=\"Awaiting model input.\",\n options_metadata=[MODELS_METADATA[key] for key in MODEL_PROVIDERS_LIST if key in MODELS_METADATA],\n external_options={\n \"fields\": {\n \"data\": {\n \"node\": {\n \"name\": \"connect_other_models\",\n \"display_name\": \"Connect other models\",\n \"icon\": \"CornerDownLeft\",\n },\n }\n },\n },\n )\n build_config.update({\"agent_llm\": custom_component.to_dict()})\n # Update input types for all fields\n build_config = self.update_input_types(build_config)\n\n # Validate required keys\n default_keys = [\n \"code\",\n \"_type\",\n \"agent_llm\",\n \"tools\",\n \"input_value\",\n \"add_current_date_tool\",\n \"system_prompt\",\n \"agent_description\",\n \"max_iterations\",\n \"handle_parsing_errors\",\n \"verbose\",\n ]\n missing_keys = [key for key in default_keys if key not in build_config]\n if missing_keys:\n msg = f\"Missing required keys in build_config: {missing_keys}\"\n raise ValueError(msg)\n if (\n isinstance(self.agent_llm, str)\n and self.agent_llm in MODEL_PROVIDERS_DICT\n and field_name in MODEL_DYNAMIC_UPDATE_FIELDS\n ):\n provider_info = MODEL_PROVIDERS_DICT.get(self.agent_llm)\n if provider_info:\n component_class = provider_info.get(\"component_class\")\n component_class = self.set_component_params(component_class)\n prefix = provider_info.get(\"prefix\")\n if component_class and hasattr(component_class, \"update_build_config\"):\n # Call each component class's update_build_config method\n # remove the prefix from the field_name\n if isinstance(field_name, str) and isinstance(prefix, str):\n field_name_without_prefix = field_name.replace(prefix, \"\")\n else:\n field_name_without_prefix = field_name\n build_config = await update_component_build_config(\n component_class, build_config, field_value, field_name_without_prefix\n )\n return dotdict({k: v.to_dict() if hasattr(v, \"to_dict\") else v for k, v in build_config.items()})\n\n async def _get_tools(self) -> list[Tool]:\n component_toolkit = get_component_toolkit()\n tools_names = self._build_tools_names()\n agent_description = self.get_tool_description()\n # TODO: Agent Description Depreciated Feature to be removed\n description = f\"{agent_description}{tools_names}\"\n\n tools = component_toolkit(component=self).get_tools(\n tool_name=\"Call_Agent\",\n tool_description=description,\n # here we do not use the shared callbacks as we are exposing the agent as a tool\n callbacks=self.get_langchain_callbacks(),\n )\n if hasattr(self, \"tools_metadata\"):\n tools = component_toolkit(component=self, metadata=self.tools_metadata).update_tools_metadata(tools=tools)\n\n return tools\n"
|
|
2185
|
+
"value": "from __future__ import annotations\n\nimport json\nimport re\nfrom typing import TYPE_CHECKING\n\nfrom pydantic import ValidationError\n\nfrom lfx.components.models_and_agents.memory import MemoryComponent\n\nif TYPE_CHECKING:\n from langchain_core.tools import Tool\n\nfrom lfx.base.agents.agent import LCToolsAgentComponent\nfrom lfx.base.agents.events import ExceptionWithMessageError\nfrom lfx.base.models.unified_models import (\n get_language_model_options,\n get_llm,\n update_model_options_in_build_config,\n)\nfrom lfx.components.helpers import CurrentDateComponent\nfrom lfx.components.langchain_utilities.tool_calling import ToolCallingAgentComponent\nfrom lfx.custom.custom_component.component import get_component_toolkit\nfrom lfx.helpers.base_model import build_model_from_schema\nfrom lfx.inputs.inputs import BoolInput, ModelInput\nfrom lfx.io import IntInput, MessageTextInput, MultilineInput, Output, SecretStrInput, TableInput\nfrom lfx.log.logger import logger\nfrom lfx.schema.data import Data\nfrom lfx.schema.dotdict import dotdict\nfrom lfx.schema.message import Message\nfrom lfx.schema.table import EditMode\n\n\ndef set_advanced_true(component_input):\n component_input.advanced = True\n return component_input\n\n\nclass AgentComponent(ToolCallingAgentComponent):\n display_name: str = \"Agent\"\n description: str = \"Define the agent's instructions, then enter a task to complete using tools.\"\n documentation: str = \"https://docs.langflow.org/agents\"\n icon = \"bot\"\n beta = False\n name = \"Agent\"\n\n memory_inputs = [set_advanced_true(component_input) for component_input in MemoryComponent().inputs]\n\n inputs = [\n ModelInput(\n name=\"model\",\n display_name=\"Language Model\",\n info=\"Select your model provider\",\n real_time_refresh=True,\n required=True,\n ),\n SecretStrInput(\n name=\"api_key\",\n display_name=\"API Key\",\n info=\"Model Provider API key\",\n real_time_refresh=True,\n advanced=True,\n ),\n MultilineInput(\n name=\"system_prompt\",\n display_name=\"Agent Instructions\",\n info=\"System Prompt: Initial instructions and context provided to guide the agent's behavior.\",\n value=\"You are a helpful assistant that can use tools to answer questions and perform tasks.\",\n advanced=False,\n ),\n MessageTextInput(\n name=\"context_id\",\n display_name=\"Context ID\",\n info=\"The context ID of the chat. Adds an extra layer to the local memory.\",\n value=\"\",\n advanced=True,\n ),\n IntInput(\n name=\"n_messages\",\n display_name=\"Number of Chat History Messages\",\n value=100,\n info=\"Number of chat history messages to retrieve.\",\n advanced=True,\n show=True,\n ),\n MultilineInput(\n name=\"format_instructions\",\n display_name=\"Output Format Instructions\",\n info=\"Generic Template for structured output formatting. Valid only with Structured response.\",\n value=(\n \"You are an AI that extracts structured JSON objects from unstructured text. \"\n \"Use a predefined schema with expected types (str, int, float, bool, dict). \"\n \"Extract ALL relevant instances that match the schema - if multiple patterns exist, capture them all. \"\n \"Fill missing or ambiguous values with defaults: null for missing values. \"\n \"Remove exact duplicates but keep variations that have different field values. \"\n \"Always return valid JSON in the expected format, never throw errors. \"\n \"If multiple objects can be extracted, return them all in the structured format.\"\n ),\n advanced=True,\n ),\n TableInput(\n name=\"output_schema\",\n display_name=\"Output Schema\",\n info=(\n \"Schema Validation: Define the structure and data types for structured output. \"\n \"No validation if no output schema.\"\n ),\n advanced=True,\n required=False,\n value=[],\n table_schema=[\n {\n \"name\": \"name\",\n \"display_name\": \"Name\",\n \"type\": \"str\",\n \"description\": \"Specify the name of the output field.\",\n \"default\": \"field\",\n \"edit_mode\": EditMode.INLINE,\n },\n {\n \"name\": \"description\",\n \"display_name\": \"Description\",\n \"type\": \"str\",\n \"description\": \"Describe the purpose of the output field.\",\n \"default\": \"description of field\",\n \"edit_mode\": EditMode.POPOVER,\n },\n {\n \"name\": \"type\",\n \"display_name\": \"Type\",\n \"type\": \"str\",\n \"edit_mode\": EditMode.INLINE,\n \"description\": (\"Indicate the data type of the output field (e.g., str, int, float, bool, dict).\"),\n \"options\": [\"str\", \"int\", \"float\", \"bool\", \"dict\"],\n \"default\": \"str\",\n },\n {\n \"name\": \"multiple\",\n \"display_name\": \"As List\",\n \"type\": \"boolean\",\n \"description\": \"Set to True if this output field should be a list of the specified type.\",\n \"default\": \"False\",\n \"edit_mode\": EditMode.INLINE,\n },\n ],\n ),\n *LCToolsAgentComponent.get_base_inputs(),\n # removed memory inputs from agent component\n # *memory_inputs,\n BoolInput(\n name=\"add_current_date_tool\",\n display_name=\"Current Date\",\n advanced=True,\n info=\"If true, will add a tool to the agent that returns the current date.\",\n value=True,\n ),\n ]\n outputs = [\n Output(name=\"response\", display_name=\"Response\", method=\"message_response\"),\n ]\n\n async def get_agent_requirements(self):\n \"\"\"Get the agent requirements for the agent.\"\"\"\n from langchain_core.tools import StructuredTool\n\n llm_model = get_llm(\n model=self.model,\n user_id=self.user_id,\n api_key=self.api_key,\n )\n if llm_model is None:\n msg = \"No language model selected. Please choose a model to proceed.\"\n raise ValueError(msg)\n\n # Get memory data\n self.chat_history = await self.get_memory_data()\n await logger.adebug(f\"Retrieved {len(self.chat_history)} chat history messages\")\n if isinstance(self.chat_history, Message):\n self.chat_history = [self.chat_history]\n\n # Add current date tool if enabled\n if self.add_current_date_tool:\n if not isinstance(self.tools, list): # type: ignore[has-type]\n self.tools = []\n current_date_tool = (await CurrentDateComponent(**self.get_base_args()).to_toolkit()).pop(0)\n\n if not isinstance(current_date_tool, StructuredTool):\n msg = \"CurrentDateComponent must be converted to a StructuredTool\"\n raise TypeError(msg)\n self.tools.append(current_date_tool)\n\n # Set shared callbacks for tracing the tools used by the agent\n self.set_tools_callbacks(self.tools, self._get_shared_callbacks())\n\n return llm_model, self.chat_history, self.tools\n\n async def message_response(self) -> Message:\n try:\n llm_model, self.chat_history, self.tools = await self.get_agent_requirements()\n # Set up and run agent\n self.set(\n llm=llm_model,\n tools=self.tools or [],\n chat_history=self.chat_history,\n input_value=self.input_value,\n system_prompt=self.system_prompt,\n )\n agent = self.create_agent_runnable()\n result = await self.run_agent(agent)\n\n # Store result for potential JSON output\n self._agent_result = result\n\n except (ValueError, TypeError, KeyError) as e:\n await logger.aerror(f\"{type(e).__name__}: {e!s}\")\n raise\n except ExceptionWithMessageError as e:\n await logger.aerror(f\"ExceptionWithMessageError occurred: {e}\")\n raise\n # Avoid catching blind Exception; let truly unexpected exceptions propagate\n except Exception as e:\n await logger.aerror(f\"Unexpected error: {e!s}\")\n raise\n else:\n return result\n\n def _preprocess_schema(self, schema):\n \"\"\"Preprocess schema to ensure correct data types for build_model_from_schema.\"\"\"\n processed_schema = []\n for field in schema:\n processed_field = {\n \"name\": str(field.get(\"name\", \"field\")),\n \"type\": str(field.get(\"type\", \"str\")),\n \"description\": str(field.get(\"description\", \"\")),\n \"multiple\": field.get(\"multiple\", False),\n }\n # Ensure multiple is handled correctly\n if isinstance(processed_field[\"multiple\"], str):\n processed_field[\"multiple\"] = processed_field[\"multiple\"].lower() in [\n \"true\",\n \"1\",\n \"t\",\n \"y\",\n \"yes\",\n ]\n processed_schema.append(processed_field)\n return processed_schema\n\n async def build_structured_output_base(self, content: str):\n \"\"\"Build structured output with optional BaseModel validation.\"\"\"\n json_pattern = r\"\\{.*\\}\"\n schema_error_msg = \"Try setting an output schema\"\n\n # Try to parse content as JSON first\n json_data = None\n try:\n json_data = json.loads(content)\n except json.JSONDecodeError:\n json_match = re.search(json_pattern, content, re.DOTALL)\n if json_match:\n try:\n json_data = json.loads(json_match.group())\n except json.JSONDecodeError:\n return {\"content\": content, \"error\": schema_error_msg}\n else:\n return {\"content\": content, \"error\": schema_error_msg}\n\n # If no output schema provided, return parsed JSON without validation\n if not hasattr(self, \"output_schema\") or not self.output_schema or len(self.output_schema) == 0:\n return json_data\n\n # Use BaseModel validation with schema\n try:\n processed_schema = self._preprocess_schema(self.output_schema)\n output_model = build_model_from_schema(processed_schema)\n\n # Validate against the schema\n if isinstance(json_data, list):\n # Multiple objects\n validated_objects = []\n for item in json_data:\n try:\n validated_obj = output_model.model_validate(item)\n validated_objects.append(validated_obj.model_dump())\n except ValidationError as e:\n await logger.aerror(f\"Validation error for item: {e}\")\n # Include invalid items with error info\n validated_objects.append({\"data\": item, \"validation_error\": str(e)})\n return validated_objects\n\n # Single object\n try:\n validated_obj = output_model.model_validate(json_data)\n return [validated_obj.model_dump()] # Return as list for consistency\n except ValidationError as e:\n await logger.aerror(f\"Validation error: {e}\")\n return [{\"data\": json_data, \"validation_error\": str(e)}]\n\n except (TypeError, ValueError) as e:\n await logger.aerror(f\"Error building structured output: {e}\")\n # Fallback to parsed JSON without validation\n return json_data\n\n async def json_response(self) -> Data:\n \"\"\"Convert agent response to structured JSON Data output with schema validation.\"\"\"\n # Always use structured chat agent for JSON response mode for better JSON formatting\n try:\n system_components = []\n\n # 1. Agent Instructions (system_prompt)\n agent_instructions = getattr(self, \"system_prompt\", \"\") or \"\"\n if agent_instructions:\n system_components.append(f\"{agent_instructions}\")\n\n # 2. Format Instructions\n format_instructions = getattr(self, \"format_instructions\", \"\") or \"\"\n if format_instructions:\n system_components.append(f\"Format instructions: {format_instructions}\")\n\n # 3. Schema Information from BaseModel\n if hasattr(self, \"output_schema\") and self.output_schema and len(self.output_schema) > 0:\n try:\n processed_schema = self._preprocess_schema(self.output_schema)\n output_model = build_model_from_schema(processed_schema)\n schema_dict = output_model.model_json_schema()\n schema_info = (\n \"You are given some text that may include format instructions, \"\n \"explanations, or other content alongside a JSON schema.\\n\\n\"\n \"Your task:\\n\"\n \"- Extract only the JSON schema.\\n\"\n \"- Return it as valid JSON.\\n\"\n \"- Do not include format instructions, explanations, or extra text.\\n\\n\"\n \"Input:\\n\"\n f\"{json.dumps(schema_dict, indent=2)}\\n\\n\"\n \"Output (only JSON schema):\"\n )\n system_components.append(schema_info)\n except (ValidationError, ValueError, TypeError, KeyError) as e:\n await logger.aerror(f\"Could not build schema for prompt: {e}\", exc_info=True)\n\n # Combine all components\n combined_instructions = \"\\n\\n\".join(system_components) if system_components else \"\"\n llm_model, self.chat_history, self.tools = await self.get_agent_requirements()\n self.set(\n llm=llm_model,\n tools=self.tools or [],\n chat_history=self.chat_history,\n input_value=self.input_value,\n system_prompt=combined_instructions,\n )\n\n # Create and run structured chat agent\n try:\n structured_agent = self.create_agent_runnable()\n except (NotImplementedError, ValueError, TypeError) as e:\n await logger.aerror(f\"Error with structured chat agent: {e}\")\n raise\n try:\n result = await self.run_agent(structured_agent)\n except (\n ExceptionWithMessageError,\n ValueError,\n TypeError,\n RuntimeError,\n ) as e:\n await logger.aerror(f\"Error with structured agent result: {e}\")\n raise\n # Extract content from structured agent result\n if hasattr(result, \"content\"):\n content = result.content\n elif hasattr(result, \"text\"):\n content = result.text\n else:\n content = str(result)\n\n except (\n ExceptionWithMessageError,\n ValueError,\n TypeError,\n NotImplementedError,\n AttributeError,\n ) as e:\n await logger.aerror(f\"Error with structured chat agent: {e}\")\n # Fallback to regular agent\n content_str = \"No content returned from agent\"\n return Data(data={\"content\": content_str, \"error\": str(e)})\n\n # Process with structured output validation\n try:\n structured_output = await self.build_structured_output_base(content)\n\n # Handle different output formats\n if isinstance(structured_output, list) and structured_output:\n if len(structured_output) == 1:\n return Data(data=structured_output[0])\n return Data(data={\"results\": structured_output})\n if isinstance(structured_output, dict):\n return Data(data=structured_output)\n return Data(data={\"content\": content})\n\n except (ValueError, TypeError) as e:\n await logger.aerror(f\"Error in structured output processing: {e}\")\n return Data(data={\"content\": content, \"error\": str(e)})\n\n async def get_memory_data(self):\n # TODO: This is a temporary fix to avoid message duplication. We should develop a function for this.\n messages = (\n await MemoryComponent(**self.get_base_args())\n .set(\n session_id=self.graph.session_id,\n context_id=self.context_id,\n order=\"Ascending\",\n n_messages=self.n_messages,\n )\n .retrieve_messages()\n )\n return [\n message for message in messages if getattr(message, \"id\", None) != getattr(self.input_value, \"id\", None)\n ]\n\n def update_input_types(self, build_config: dotdict) -> dotdict:\n \"\"\"Update input types for all fields in build_config.\"\"\"\n for key, value in build_config.items():\n if isinstance(value, dict):\n if value.get(\"input_types\") is None:\n build_config[key][\"input_types\"] = []\n elif hasattr(value, \"input_types\") and value.input_types is None:\n value.input_types = []\n return build_config\n\n async def update_build_config(\n self,\n build_config: dotdict,\n field_value: list[dict],\n field_name: str | None = None,\n ) -> dotdict:\n # Update model options with caching (for all field changes)\n # Agents require tool calling, so filter for only tool-calling capable models\n def get_tool_calling_model_options(user_id=None):\n return get_language_model_options(user_id=user_id, tool_calling=True)\n\n build_config = update_model_options_in_build_config(\n component=self,\n build_config=dict(build_config),\n cache_key_prefix=\"language_model_options_tool_calling\",\n get_options_func=get_tool_calling_model_options,\n field_name=field_name,\n field_value=field_value,\n )\n build_config = dotdict(build_config)\n\n # Iterate over all providers in the MODEL_PROVIDERS_DICT\n if field_name == \"model\":\n self.log(str(field_value))\n # Update input types for all fields\n build_config = self.update_input_types(build_config)\n\n # Validate required keys\n default_keys = [\n \"code\",\n \"_type\",\n \"model\",\n \"tools\",\n \"input_value\",\n \"add_current_date_tool\",\n \"system_prompt\",\n \"agent_description\",\n \"max_iterations\",\n \"handle_parsing_errors\",\n \"verbose\",\n ]\n missing_keys = [key for key in default_keys if key not in build_config]\n if missing_keys:\n msg = f\"Missing required keys in build_config: {missing_keys}\"\n raise ValueError(msg)\n\n return dotdict({k: v.to_dict() if hasattr(v, \"to_dict\") else v for k, v in build_config.items()})\n\n async def _get_tools(self) -> list[Tool]:\n component_toolkit = get_component_toolkit()\n tools_names = self._build_tools_names()\n agent_description = self.get_tool_description()\n # TODO: Agent Description Depreciated Feature to be removed\n description = f\"{agent_description}{tools_names}\"\n\n tools = component_toolkit(component=self).get_tools(\n tool_name=\"Call_Agent\",\n tool_description=description,\n # here we do not use the shared callbacks as we are exposing the agent as a tool\n callbacks=self.get_langchain_callbacks(),\n )\n if hasattr(self, \"tools_metadata\"):\n tools = component_toolkit(component=self, metadata=self.tools_metadata).update_tools_metadata(tools=tools)\n\n return tools\n"
|
|
2852
2186
|
},
|
|
2853
2187
|
"context_id": {
|
|
2854
2188
|
"_input_type": "MessageTextInput",
|
|
@@ -2957,137 +2291,42 @@
|
|
|
2957
2291
|
"type": "int",
|
|
2958
2292
|
"value": 15
|
|
2959
2293
|
},
|
|
2960
|
-
"
|
|
2961
|
-
"_input_type": "
|
|
2294
|
+
"model": {
|
|
2295
|
+
"_input_type": "ModelInput",
|
|
2962
2296
|
"advanced": false,
|
|
2963
|
-
"display_name": "
|
|
2964
|
-
"dynamic": false,
|
|
2965
|
-
"info": "The maximum number of tokens to generate.",
|
|
2966
|
-
"list": false,
|
|
2967
|
-
"list_add_label": "Add More",
|
|
2968
|
-
"name": "max_output_tokens",
|
|
2969
|
-
"override_skip": false,
|
|
2970
|
-
"placeholder": "",
|
|
2971
|
-
"required": false,
|
|
2972
|
-
"show": false,
|
|
2973
|
-
"title_case": false,
|
|
2974
|
-
"tool_mode": false,
|
|
2975
|
-
"trace_as_metadata": true,
|
|
2976
|
-
"track_in_telemetry": true,
|
|
2977
|
-
"type": "int",
|
|
2978
|
-
"value": ""
|
|
2979
|
-
},
|
|
2980
|
-
"max_retries": {
|
|
2981
|
-
"_input_type": "IntInput",
|
|
2982
|
-
"advanced": true,
|
|
2983
|
-
"display_name": "Max Retries",
|
|
2984
|
-
"dynamic": false,
|
|
2985
|
-
"info": "The maximum number of retries to make when generating.",
|
|
2986
|
-
"list": false,
|
|
2987
|
-
"list_add_label": "Add More",
|
|
2988
|
-
"name": "max_retries",
|
|
2989
|
-
"override_skip": false,
|
|
2990
|
-
"placeholder": "",
|
|
2991
|
-
"required": false,
|
|
2992
|
-
"show": true,
|
|
2993
|
-
"title_case": false,
|
|
2994
|
-
"tool_mode": false,
|
|
2995
|
-
"trace_as_metadata": true,
|
|
2996
|
-
"track_in_telemetry": true,
|
|
2997
|
-
"type": "int",
|
|
2998
|
-
"value": 5
|
|
2999
|
-
},
|
|
3000
|
-
"max_tokens": {
|
|
3001
|
-
"_input_type": "IntInput",
|
|
3002
|
-
"advanced": true,
|
|
3003
|
-
"display_name": "Max Tokens",
|
|
2297
|
+
"display_name": "Language Model",
|
|
3004
2298
|
"dynamic": false,
|
|
3005
|
-
"
|
|
3006
|
-
|
|
3007
|
-
|
|
3008
|
-
|
|
3009
|
-
|
|
3010
|
-
|
|
3011
|
-
|
|
3012
|
-
|
|
3013
|
-
|
|
3014
|
-
|
|
3015
|
-
"step_type": "float"
|
|
2299
|
+
"external_options": {
|
|
2300
|
+
"fields": {
|
|
2301
|
+
"data": {
|
|
2302
|
+
"node": {
|
|
2303
|
+
"display_name": "Connect other models",
|
|
2304
|
+
"icon": "CornerDownLeft",
|
|
2305
|
+
"name": "connect_other_models"
|
|
2306
|
+
}
|
|
2307
|
+
}
|
|
2308
|
+
}
|
|
3016
2309
|
},
|
|
3017
|
-
"
|
|
3018
|
-
"
|
|
3019
|
-
|
|
3020
|
-
|
|
3021
|
-
"trace_as_metadata": true,
|
|
3022
|
-
"track_in_telemetry": true,
|
|
3023
|
-
"type": "int",
|
|
3024
|
-
"value": ""
|
|
3025
|
-
},
|
|
3026
|
-
"model_kwargs": {
|
|
3027
|
-
"_input_type": "DictInput",
|
|
3028
|
-
"advanced": true,
|
|
3029
|
-
"display_name": "Model Kwargs",
|
|
3030
|
-
"dynamic": false,
|
|
3031
|
-
"info": "Additional keyword arguments to pass to the model.",
|
|
2310
|
+
"info": "Select your model provider",
|
|
2311
|
+
"input_types": [
|
|
2312
|
+
"LanguageModel"
|
|
2313
|
+
],
|
|
3032
2314
|
"list": false,
|
|
3033
2315
|
"list_add_label": "Add More",
|
|
3034
|
-
"
|
|
2316
|
+
"model_type": "language",
|
|
2317
|
+
"name": "model",
|
|
3035
2318
|
"override_skip": false,
|
|
3036
|
-
"placeholder": "",
|
|
3037
|
-
"
|
|
2319
|
+
"placeholder": "Setup Provider",
|
|
2320
|
+
"real_time_refresh": true,
|
|
2321
|
+
"refresh_button": true,
|
|
2322
|
+
"required": true,
|
|
3038
2323
|
"show": true,
|
|
3039
2324
|
"title_case": false,
|
|
3040
2325
|
"tool_mode": false,
|
|
3041
2326
|
"trace_as_input": true,
|
|
3042
2327
|
"track_in_telemetry": false,
|
|
3043
|
-
"type": "
|
|
3044
|
-
"value":
|
|
3045
|
-
},
|
|
3046
|
-
"model_name": {
|
|
3047
|
-
"_input_type": "DropdownInput",
|
|
3048
|
-
"advanced": false,
|
|
3049
|
-
"combobox": true,
|
|
3050
|
-
"dialog_inputs": {},
|
|
3051
|
-
"display_name": "Model Name",
|
|
3052
|
-
"dynamic": false,
|
|
3053
|
-
"external_options": {},
|
|
3054
|
-
"info": "To see the model names, first choose a provider. Then, enter your API key and click the refresh button next to the model name.",
|
|
3055
|
-
"name": "model_name",
|
|
3056
|
-
"options": [
|
|
3057
|
-
"gpt-4o-mini",
|
|
3058
|
-
"gpt-4o",
|
|
3059
|
-
"gpt-4.1",
|
|
3060
|
-
"gpt-4.1-mini",
|
|
3061
|
-
"gpt-4.1-nano",
|
|
3062
|
-
"gpt-4-turbo",
|
|
3063
|
-
"gpt-4-turbo-preview",
|
|
3064
|
-
"gpt-4",
|
|
3065
|
-
"gpt-3.5-turbo",
|
|
3066
|
-
"gpt-5.1",
|
|
3067
|
-
"gpt-5",
|
|
3068
|
-
"gpt-5-mini",
|
|
3069
|
-
"gpt-5-nano",
|
|
3070
|
-
"gpt-5-chat-latest",
|
|
3071
|
-
"o1",
|
|
3072
|
-
"o3-mini",
|
|
3073
|
-
"o3",
|
|
3074
|
-
"o3-pro",
|
|
3075
|
-
"o4-mini",
|
|
3076
|
-
"o4-mini-high"
|
|
3077
|
-
],
|
|
3078
|
-
"options_metadata": [],
|
|
3079
|
-
"override_skip": false,
|
|
3080
|
-
"placeholder": "",
|
|
3081
|
-
"real_time_refresh": false,
|
|
3082
|
-
"required": false,
|
|
3083
|
-
"show": true,
|
|
3084
|
-
"title_case": false,
|
|
3085
|
-
"toggle": false,
|
|
3086
|
-
"tool_mode": false,
|
|
3087
|
-
"trace_as_metadata": true,
|
|
3088
|
-
"track_in_telemetry": true,
|
|
3089
|
-
"type": "str",
|
|
3090
|
-
"value": "gpt-4o-mini"
|
|
2328
|
+
"type": "model",
|
|
2329
|
+
"value": ""
|
|
3091
2330
|
},
|
|
3092
2331
|
"n_messages": {
|
|
3093
2332
|
"_input_type": "IntInput",
|
|
@@ -3107,27 +2346,6 @@
|
|
|
3107
2346
|
"type": "int",
|
|
3108
2347
|
"value": 100
|
|
3109
2348
|
},
|
|
3110
|
-
"openai_api_base": {
|
|
3111
|
-
"_input_type": "StrInput",
|
|
3112
|
-
"advanced": true,
|
|
3113
|
-
"display_name": "OpenAI API Base",
|
|
3114
|
-
"dynamic": false,
|
|
3115
|
-
"info": "The base URL of the OpenAI API. Defaults to https://api.openai.com/v1. You can change this to use other APIs like JinaChat, LocalAI and Prem.",
|
|
3116
|
-
"list": false,
|
|
3117
|
-
"list_add_label": "Add More",
|
|
3118
|
-
"load_from_db": false,
|
|
3119
|
-
"name": "openai_api_base",
|
|
3120
|
-
"override_skip": false,
|
|
3121
|
-
"placeholder": "",
|
|
3122
|
-
"required": false,
|
|
3123
|
-
"show": true,
|
|
3124
|
-
"title_case": false,
|
|
3125
|
-
"tool_mode": false,
|
|
3126
|
-
"trace_as_metadata": true,
|
|
3127
|
-
"track_in_telemetry": false,
|
|
3128
|
-
"type": "str",
|
|
3129
|
-
"value": ""
|
|
3130
|
-
},
|
|
3131
2349
|
"output_schema": {
|
|
3132
2350
|
"_input_type": "TableInput",
|
|
3133
2351
|
"advanced": true,
|
|
@@ -3190,47 +2408,6 @@
|
|
|
3190
2408
|
"type": "table",
|
|
3191
2409
|
"value": []
|
|
3192
2410
|
},
|
|
3193
|
-
"project_id": {
|
|
3194
|
-
"_input_type": "StrInput",
|
|
3195
|
-
"advanced": false,
|
|
3196
|
-
"display_name": "Project ID",
|
|
3197
|
-
"dynamic": false,
|
|
3198
|
-
"info": "The project ID of the model.",
|
|
3199
|
-
"list": false,
|
|
3200
|
-
"list_add_label": "Add More",
|
|
3201
|
-
"load_from_db": false,
|
|
3202
|
-
"name": "project_id",
|
|
3203
|
-
"override_skip": false,
|
|
3204
|
-
"placeholder": "",
|
|
3205
|
-
"required": true,
|
|
3206
|
-
"show": false,
|
|
3207
|
-
"title_case": false,
|
|
3208
|
-
"tool_mode": false,
|
|
3209
|
-
"trace_as_metadata": true,
|
|
3210
|
-
"track_in_telemetry": false,
|
|
3211
|
-
"type": "str",
|
|
3212
|
-
"value": ""
|
|
3213
|
-
},
|
|
3214
|
-
"seed": {
|
|
3215
|
-
"_input_type": "IntInput",
|
|
3216
|
-
"advanced": true,
|
|
3217
|
-
"display_name": "Seed",
|
|
3218
|
-
"dynamic": false,
|
|
3219
|
-
"info": "The seed controls the reproducibility of the job.",
|
|
3220
|
-
"list": false,
|
|
3221
|
-
"list_add_label": "Add More",
|
|
3222
|
-
"name": "seed",
|
|
3223
|
-
"override_skip": false,
|
|
3224
|
-
"placeholder": "",
|
|
3225
|
-
"required": false,
|
|
3226
|
-
"show": true,
|
|
3227
|
-
"title_case": false,
|
|
3228
|
-
"tool_mode": false,
|
|
3229
|
-
"trace_as_metadata": true,
|
|
3230
|
-
"track_in_telemetry": true,
|
|
3231
|
-
"type": "int",
|
|
3232
|
-
"value": 1
|
|
3233
|
-
},
|
|
3234
2411
|
"system_prompt": {
|
|
3235
2412
|
"_input_type": "MultilineInput",
|
|
3236
2413
|
"advanced": false,
|
|
@@ -3256,56 +2433,6 @@
|
|
|
3256
2433
|
"type": "str",
|
|
3257
2434
|
"value": "You are a helpful assistant that can use tools to answer questions and perform tasks."
|
|
3258
2435
|
},
|
|
3259
|
-
"temperature": {
|
|
3260
|
-
"_input_type": "SliderInput",
|
|
3261
|
-
"advanced": true,
|
|
3262
|
-
"display_name": "Temperature",
|
|
3263
|
-
"dynamic": false,
|
|
3264
|
-
"info": "",
|
|
3265
|
-
"max_label": "",
|
|
3266
|
-
"max_label_icon": "",
|
|
3267
|
-
"min_label": "",
|
|
3268
|
-
"min_label_icon": "",
|
|
3269
|
-
"name": "temperature",
|
|
3270
|
-
"override_skip": false,
|
|
3271
|
-
"placeholder": "",
|
|
3272
|
-
"range_spec": {
|
|
3273
|
-
"max": 1.0,
|
|
3274
|
-
"min": 0.0,
|
|
3275
|
-
"step": 0.01,
|
|
3276
|
-
"step_type": "float"
|
|
3277
|
-
},
|
|
3278
|
-
"required": false,
|
|
3279
|
-
"show": true,
|
|
3280
|
-
"slider_buttons": false,
|
|
3281
|
-
"slider_buttons_options": [],
|
|
3282
|
-
"slider_input": false,
|
|
3283
|
-
"title_case": false,
|
|
3284
|
-
"tool_mode": false,
|
|
3285
|
-
"track_in_telemetry": false,
|
|
3286
|
-
"type": "slider",
|
|
3287
|
-
"value": 0.1
|
|
3288
|
-
},
|
|
3289
|
-
"timeout": {
|
|
3290
|
-
"_input_type": "IntInput",
|
|
3291
|
-
"advanced": true,
|
|
3292
|
-
"display_name": "Timeout",
|
|
3293
|
-
"dynamic": false,
|
|
3294
|
-
"info": "The timeout for requests to OpenAI completion API.",
|
|
3295
|
-
"list": false,
|
|
3296
|
-
"list_add_label": "Add More",
|
|
3297
|
-
"name": "timeout",
|
|
3298
|
-
"override_skip": false,
|
|
3299
|
-
"placeholder": "",
|
|
3300
|
-
"required": false,
|
|
3301
|
-
"show": true,
|
|
3302
|
-
"title_case": false,
|
|
3303
|
-
"tool_mode": false,
|
|
3304
|
-
"trace_as_metadata": true,
|
|
3305
|
-
"track_in_telemetry": true,
|
|
3306
|
-
"type": "int",
|
|
3307
|
-
"value": 700
|
|
3308
|
-
},
|
|
3309
2436
|
"tools": {
|
|
3310
2437
|
"_input_type": "HandleInput",
|
|
3311
2438
|
"advanced": false,
|
|
@@ -3351,7 +2478,6 @@
|
|
|
3351
2478
|
"type": "Agent"
|
|
3352
2479
|
},
|
|
3353
2480
|
"dragging": false,
|
|
3354
|
-
"height": 650,
|
|
3355
2481
|
"id": "Agent-b7nmW",
|
|
3356
2482
|
"measured": {
|
|
3357
2483
|
"height": 650,
|
|
@@ -3366,8 +2492,7 @@
|
|
|
3366
2492
|
"y": -1342.256094001045
|
|
3367
2493
|
},
|
|
3368
2494
|
"selected": false,
|
|
3369
|
-
"type": "genericNode"
|
|
3370
|
-
"width": 320
|
|
2495
|
+
"type": "genericNode"
|
|
3371
2496
|
},
|
|
3372
2497
|
{
|
|
3373
2498
|
"data": {
|