langflow-base-nightly 0.5.1.dev3__py3-none-any.whl → 0.5.1.dev5__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/__init__.py +215 -0
- langflow/__main__.py +16 -2
- langflow/alembic/versions/006b3990db50_add_unique_constraints.py +4 -7
- langflow/alembic/versions/012fb73ac359_add_folder_table.py +4 -5
- langflow/alembic/versions/0ae3a2674f32_update_the_columns_that_need_to_change_.py +11 -20
- langflow/alembic/versions/0b8757876a7c_.py +4 -7
- langflow/alembic/versions/0d60fcbd4e8e_create_vertex_builds_table.py +4 -6
- langflow/alembic/versions/1a110b568907_replace_credential_table_with_variable.py +4 -5
- langflow/alembic/versions/1b8b740a6fa3_remove_fk_constraint_in_message_.py +32 -27
- langflow/alembic/versions/1c79524817ed_add_unique_constraints_per_user_in_.py +4 -5
- langflow/alembic/versions/1d90f8a0efe1_update_description_columns_type.py +4 -5
- langflow/alembic/versions/1eab2c3eb45e_event_error.py +14 -15
- langflow/alembic/versions/1ef9c4f3765d_.py +5 -10
- langflow/alembic/versions/1f4d6df60295_add_default_fields_column.py +4 -5
- langflow/alembic/versions/260dbcc8b680_adds_tables.py +4 -5
- langflow/alembic/versions/29fe8f1f806b_add_missing_index.py +4 -5
- langflow/alembic/versions/2ac71eb9c3ae_adds_credential_table.py +4 -7
- langflow/alembic/versions/3bb0ddf32dfb_add_unique_constraints_per_user_in_flow_.py +4 -5
- langflow/alembic/versions/4e5980a44eaa_fix_date_times_again.py +1 -2
- langflow/alembic/versions/58b28437a398_modify_nullable.py +1 -2
- langflow/alembic/versions/5ace73a7f223_new_remove_table_upgrade_op.py +6 -12
- langflow/alembic/versions/631faacf5da2_add_webhook_columns.py +4 -5
- langflow/alembic/versions/63b9c451fd30_add_icon_and_icon_bg_color_to_flow.py +4 -5
- langflow/alembic/versions/66f72f04a1de_add_mcp_support_with_project_settings_.py +21 -23
- langflow/alembic/versions/67cc006d50bf_add_profile_image_column.py +4 -5
- langflow/alembic/versions/6e7b581b5648_fix_nullable.py +4 -5
- langflow/alembic/versions/7843803a87b5_store_updates.py +4 -6
- langflow/alembic/versions/79e675cb6752_change_datetime_type.py +1 -2
- langflow/alembic/versions/7d2162acc8b2_adds_updated_at_and_folder_cols.py +4 -10
- langflow/alembic/versions/90be8e2ed91e_create_transactions_table.py +4 -6
- langflow/alembic/versions/93e2705fa8d6_add_column_save_path_to_flow.py +7 -9
- langflow/alembic/versions/a72f5cf9c2f9_add_endpoint_name_col.py +4 -5
- langflow/alembic/versions/b2fa308044b5_add_unique_constraints.py +1 -2
- langflow/alembic/versions/bc2f01c40e4a_new_fixes.py +4 -5
- langflow/alembic/versions/c153816fd85f_set_name_and_value_to_not_nullable.py +4 -5
- langflow/alembic/versions/d066bfd22890_add_message_table.py +4 -4
- langflow/alembic/versions/d2d475a1f7c0_add_tags_column_to_flow.py +12 -13
- langflow/alembic/versions/d3dbf656a499_add_gradient_column_in_flow.py +12 -12
- langflow/alembic/versions/d9a6ea21edcd_rename_default_folder.py +7 -10
- langflow/alembic/versions/dd9e0804ebd1_add_v2_file_table.py +8 -7
- langflow/alembic/versions/e3162c1804e6_add_persistent_locked_state.py +10 -10
- langflow/alembic/versions/e3bc869fa272_fix_nullable.py +4 -5
- langflow/alembic/versions/e56d87f8994a_add_optins_column_to_user.py +13 -14
- langflow/alembic/versions/e5a65ecff2cd_nullable_in_vertex_build.py +4 -5
- langflow/alembic/versions/eb5866d51fd2_change_columns_to_be_nullable.py +4 -5
- langflow/alembic/versions/eb5e72293a8e_add_error_and_edit_flags_to_message.py +4 -5
- langflow/alembic/versions/f3b2d1f1002d_add_column_access_type_to_flow.py +19 -15
- langflow/alembic/versions/f5ee9749d1a6_user_id_can_be_null_in_flow.py +4 -6
- langflow/alembic/versions/fd531f8868b1_fix_credential_table.py +5 -8
- langflow/api/build.py +5 -4
- langflow/api/health_check_router.py +1 -1
- langflow/api/limited_background_tasks.py +1 -1
- langflow/api/log_router.py +1 -2
- langflow/api/utils.py +2 -2
- langflow/api/v1/base.py +1 -2
- langflow/api/v1/callback.py +4 -9
- langflow/api/v1/chat.py +6 -7
- langflow/api/v1/endpoints.py +15 -15
- langflow/api/v1/files.py +1 -1
- langflow/api/v1/flows.py +1 -1
- langflow/api/v1/knowledge_bases.py +1 -1
- langflow/api/v1/mcp.py +1 -1
- langflow/api/v1/mcp_projects.py +14 -5
- langflow/api/v1/mcp_utils.py +3 -3
- langflow/api/v1/openai_responses.py +4 -4
- langflow/api/v1/schemas.py +3 -38
- langflow/api/v1/starter_projects.py +61 -3
- langflow/api/v1/store.py +1 -1
- langflow/api/v1/validate.py +3 -3
- langflow/api/v1/voice_mode.py +2 -2
- langflow/api/v2/files.py +1 -1
- langflow/api/v2/mcp.py +2 -2
- langflow/base/__init__.py +11 -0
- langflow/base/agents/__init__.py +3 -0
- langflow/base/data/__init__.py +2 -4
- langflow/base/data/utils.py +2 -197
- langflow/base/embeddings/__init__.py +3 -0
- langflow/base/io/__init__.py +7 -0
- langflow/base/io/chat.py +5 -18
- langflow/base/io/text.py +2 -21
- langflow/base/knowledge_bases/__init__.py +3 -0
- langflow/base/memory/__init__.py +3 -0
- langflow/base/models/__init__.py +2 -2
- langflow/base/models/openai_constants.py +6 -120
- langflow/base/prompts/__init__.py +3 -0
- langflow/base/prompts/api_utils.py +2 -223
- langflow/base/textsplitters/__init__.py +3 -0
- langflow/base/tools/__init__.py +3 -0
- langflow/base/vectorstores/__init__.py +3 -0
- langflow/components/__init__.py +7 -259
- langflow/components/agents.py +6 -0
- langflow/components/anthropic.py +6 -0
- langflow/components/data.py +6 -0
- langflow/components/helpers.py +6 -0
- langflow/components/knowledge_bases/ingestion.py +13 -14
- langflow/components/knowledge_bases/retrieval.py +8 -7
- langflow/components/openai.py +6 -0
- langflow/components/processing/__init__.py +1 -117
- langflow/components/processing/converter.py +3 -149
- langflow/custom/__init__.py +26 -3
- langflow/custom/custom_component/__init__.py +4 -0
- langflow/custom/custom_component/component.py +20 -1738
- langflow/custom/custom_component/component_with_cache.py +1 -8
- langflow/custom/custom_component/custom_component.py +1 -552
- langflow/custom/utils.py +1 -872
- langflow/custom/validate.py +1 -0
- langflow/events/event_manager.py +18 -108
- langflow/field_typing/__init__.py +6 -6
- langflow/field_typing/constants.py +87 -122
- langflow/field_typing/range_spec.py +2 -32
- langflow/frontend/assets/{SlackIcon-Cc7Qnzki.js → SlackIcon-v88osOTA.js} +1 -1
- langflow/frontend/assets/{Wikipedia-7ulMZY46.js → Wikipedia-DD_S2k00.js} +1 -1
- langflow/frontend/assets/{Wolfram-By9PGsHS.js → Wolfram-EO2C5noN.js} +1 -1
- langflow/frontend/assets/{index-DVLIDc2_.js → index-1Gv1mfvk.js} +1 -1
- langflow/frontend/assets/{index-MVW4HTEk.js → index-7v-bzlzf.js} +1 -1
- langflow/frontend/assets/{index-CUzlcce2.js → index-9CbMazbV.js} +1 -1
- langflow/frontend/assets/{index-CU16NJD7.js → index-B8ZHP8g2.js} +1 -1
- langflow/frontend/assets/{index-v8eXbWlM.js → index-B8y2e6vN.js} +1 -1
- langflow/frontend/assets/{index-BX_asvRB.js → index-BBRUGsyr.js} +1 -1
- langflow/frontend/assets/{index-9FL5xjkL.js → index-BGwqQwlh.js} +1 -1
- langflow/frontend/assets/{index-BAn-AzCS.js → index-BIq-k-FG.js} +1 -1
- langflow/frontend/assets/{index-D5c2nNvp.js → index-BSN73YP8.js} +1 -1
- langflow/frontend/assets/{index-DMCerPJM.js → index-BU8R8jRn.js} +1 -1
- langflow/frontend/assets/{index-CvSoff-8.js → index-BV6yx8ey.js} +1 -1
- langflow/frontend/assets/{index-BISPW-f6.js → index-BYIsg-Eh.js} +1 -1
- langflow/frontend/assets/{index-GzOGB_fo.js → index-B_ksDBSQ.js} +1 -1
- langflow/frontend/assets/{index-BIqEYjNT.js → index-Ba1UOZ9A.js} +1 -1
- langflow/frontend/assets/{index-ByxGmq5p.js → index-Ba9tKRQg.js} +1 -1
- langflow/frontend/assets/{index-BLEWsL1U.js → index-Bbfaw8ca.js} +1 -1
- langflow/frontend/assets/{index-C_MhBX6R.js → index-BbuGqvAx.js} +1 -1
- langflow/frontend/assets/{index-RH_I78z_.js → index-BeoXu1YX.js} +1 -1
- langflow/frontend/assets/{index-cYFKmtmg.js → index-BfjZmOnH.js} +1 -1
- langflow/frontend/assets/{index-Bm9i8F4W.js → index-Bjzy_HZB.js} +1 -1
- langflow/frontend/assets/{index-_szO7sta.js → index-BofEkpYB.js} +1 -1
- langflow/frontend/assets/{index-DP1oE6QB.js → index-Bp7Mty2H.js} +1 -1
- langflow/frontend/assets/{index-CeswGUz3.js → index-BqX1H6yK.js} +1 -1
- langflow/frontend/assets/{index-C8pI0lzi.js → index-BqtBAJAN.js} +1 -1
- langflow/frontend/assets/{index-BusCv3bR.js → index-Bsfraj7A.js} +1 -1
- langflow/frontend/assets/{index-BWnKMRFJ.js → index-BtFl7fER.js} +1 -1
- langflow/frontend/assets/{index-DnlVWWU8.js → index-BvX993Sv.js} +1 -1
- langflow/frontend/assets/{index-C676MS3I.js → index-BvgQ2vzM.js} +1 -1
- langflow/frontend/assets/{index-DJ6HD14g.js → index-BwY98u8n.js} +1 -1
- langflow/frontend/assets/{index-C51yNvIL.js → index-C-RIJAOS.js} +1 -1
- langflow/frontend/assets/{index-DiblXWmk.js → index-C1K6A38P.js} +1 -1
- langflow/frontend/assets/{index-Co__gFM1.js → index-C3Vwhx0t.js} +1 -1
- langflow/frontend/assets/{index-Coi86oqP.js → index-C5XUG_gr.js} +1 -1
- langflow/frontend/assets/{index-jwzN3Jd_.js → index-C6ouLG9o.js} +1 -1
- langflow/frontend/assets/{index-CQQ-4XMS.js → index-C7ZJ_Z6f.js} +1 -1
- langflow/frontend/assets/{index-Bl7RpmrB.js → index-CCOGIwGY.js} +1 -1
- langflow/frontend/assets/{index-CVkIdc6y.js → index-CCcye2rt.js} +1 -1
- langflow/frontend/assets/{index-bMhyLtgS.js → index-CFR4yJQB.js} +1 -1
- langflow/frontend/assets/{index-aAgSKWb3.js → index-CIGmPP0H.js} +1 -1
- langflow/frontend/assets/{index-BGt6jQ4x.js → index-CJmMEa6d.js} +1 -1
- langflow/frontend/assets/{index-DX7JcSMz.js → index-CJxD7lyU.js} +1 -1
- langflow/frontend/assets/{index-BZ-A4K98.js → index-CL_vu6ut.js} +1 -1
- langflow/frontend/assets/{index-BMpKFGhI.js → index-COf3UnBn.js} +1 -1
- langflow/frontend/assets/{index-xN8ogFdo.js → index-CV9650h_.js} +1 -1
- langflow/frontend/assets/{index-OsUvqIUr.js → index-CVDzych0.js} +1 -1
- langflow/frontend/assets/{index-BH7AyHxp.js → index-CWIHsC4D.js} +1 -1
- langflow/frontend/assets/{index-mjwtJmkP.js → index-CXCnFZ0L.js} +1 -1
- langflow/frontend/assets/{index-3jlSQi5Y.js → index-Ca_Pw_Dn.js} +1 -1
- langflow/frontend/assets/{index-D-SnFlhU.js → index-Cbb3bX9e.js} +1 -1
- langflow/frontend/assets/{index--e0oQqZh.js → index-CcJtOz-Z.js} +1 -1
- langflow/frontend/assets/{index-S-sc0Cm9.js → index-CfTbTHEv.js} +1 -1
- langflow/frontend/assets/{index-Deu8rlaZ.js → index-ChoxDAgX.js} +1 -1
- langflow/frontend/assets/{index-lnF9Eqr2.js → index-Cn4gw8aE.js} +1 -1
- langflow/frontend/assets/{index-C_NwzK6j.js → index-CnpLg4zX.js} +1 -1
- langflow/frontend/assets/{index-DznH7Jbq.js → index-Cpao2omG.js} +1 -1
- langflow/frontend/assets/{index-DpWrk8mA.js → index-CqoxM01j.js} +1 -1
- langflow/frontend/assets/{index-Bw-TIIC6.js → index-CrHf2Ic1.js} +1 -1
- langflow/frontend/assets/{index-DmYLDQag.js → index-CrV0uIjp.js} +1 -1
- langflow/frontend/assets/{index-Dp7ZQyL3.js → index-CssADaak.js} +1 -1
- langflow/frontend/assets/{index-CNh0rwur.js → index-CtJdNLy9.js} +1 -1
- langflow/frontend/assets/{index-Ca1b7Iag.js → index-CyeWD2dh.js} +1 -1
- langflow/frontend/assets/{index-DcApTyZ7.js → index-D1xzD7uc.js} +1 -1
- langflow/frontend/assets/{index-B3GvPjhD.js → index-D6MuXC4L.js} +1 -1
- langflow/frontend/assets/{index-Cw0UComa.js → index-D8w9zvIF.js} +1 -1
- langflow/frontend/assets/{index-C-2MRYoJ.js → index-D98Gn0A6.js} +1 -1
- langflow/frontend/assets/{index-aWnZIwHd.js → index-DBhjpWkf.js} +1 -1
- langflow/frontend/assets/{index-nw3WF9lY.js → index-DCCRJzcY.js} +1 -1
- langflow/frontend/assets/{index-RjeC0kaX.js → index-DCTRSkEW.js} +1 -1
- langflow/frontend/assets/{index-B_kBTgxV.js → index-DCUfitVj.js} +1 -1
- langflow/frontend/assets/{index-ChsGhZn3.js → index-DDdz-Xcl.js} +1 -1
- langflow/frontend/assets/{index-7yAHPRxv.js → index-DGdMwZjG.js} +1 -1
- langflow/frontend/assets/{index-DjQElpEg.js → index-DGtl2vMw.js} +1 -1
- langflow/frontend/assets/{index-BCXhKCOK.js → index-DHVdkrni.js} +1 -1
- langflow/frontend/assets/{index-S8uJXTOq.js → index-DJBWwjgl.js} +1 -1
- langflow/frontend/assets/{index-qiVTWUuf.js → index-DMAkJ_qX.js} +1 -1
- langflow/frontend/assets/{index-D-WStJI6.js → index-DMEvEQI5.js} +1 -1
- langflow/frontend/assets/{index-BhqVw9WQ.js → index-DNGRoOsp.js} +1 -1
- langflow/frontend/assets/{index-Cu7vC48Y.js → index-DNT_TUTa.js} +1 -1
- langflow/frontend/assets/{index-Bhcv5M0n.js → index-DQKOH_9K.js} +1 -1
- langflow/frontend/assets/{index-CLcaktde.js → index-DQhqqtqQ.js} +1 -1
- langflow/frontend/assets/{index-DZVgPCio.js → index-DRM7KKnG.js} +1 -1
- langflow/frontend/assets/{index-uybez8MR.js → index-DSCtl3a5.js} +1 -1
- langflow/frontend/assets/{index-CJ5A6STv.js → index-DSLNlm0Z.js} +1 -1
- langflow/frontend/assets/{index-Drg8me2a.js → index-DT-PspE-.js} +1 -1
- langflow/frontend/assets/{index-DsEZjOcp.js → index-DTpbH-p8.js} +1 -1
- langflow/frontend/assets/{index-DrXXKzpD.js → index-DWV6MsIq.js} +1 -1
- langflow/frontend/assets/{index-4JIEdyIM.js → index-DWeL4US_.js} +1 -1
- langflow/frontend/assets/{index-BlDsBQ_1.js → index-DYKZHhpU.js} +1 -1
- langflow/frontend/assets/{index-DFY8YFbC.js → index-DZyQHiMR.js} +1 -1
- langflow/frontend/assets/{index-CKPZpkQk.js → index-Dc6qVuSa.js} +1 -1
- langflow/frontend/assets/{index-yyAaYjLR.js → index-DkYuicnC.js} +1 -1
- langflow/frontend/assets/{index-DmVt5Jlx.js → index-Dlj_2mMs.js} +1 -1
- langflow/frontend/assets/{index-BvRIG6P5.js → index-DmGJUrEp.js} +1 -1
- langflow/frontend/assets/{index-BWFIrwW1.js → index-Dn6hpCAZ.js} +1 -1
- langflow/frontend/assets/{index-Cb5G9Ifd.js → index-DrJU8Fgb.js} +1 -1
- langflow/frontend/assets/{index-COoTCxvs.js → index-DsWfdCzp.js} +1 -1
- langflow/frontend/assets/{index-ZjeocHyu.js → index-DvCPWs2_.js} +1 -1
- langflow/frontend/assets/{index-B5LHnuQR.js → index-DvPVq7OP.js} +1 -1
- langflow/frontend/assets/{index-BnCnYnao.js → index-Dw71ufW4.js} +1 -1
- langflow/frontend/assets/{index-AALDfCyt.js → index-DxkJactf.js} +1 -1
- langflow/frontend/assets/{index-k9jP5chN.js → index-Dz2GTphU.js} +1 -1
- langflow/frontend/assets/{index-BdjfHsrf.js → index-Fvd524_c.js} +1 -1
- langflow/frontend/assets/{index-AKVkmT4S.js → index-GAQ0Mk2M.js} +1 -1
- langflow/frontend/assets/{index-BZSa2qz7.js → index-Hm5-4ItD.js} +1 -1
- langflow/frontend/assets/{index-DbfS_UH-.js → index-IT67FzsK.js} +1 -1
- langflow/frontend/assets/{index-BLXN681C.js → index-ItYiij1i.js} +1 -1
- langflow/frontend/assets/{index-CiklyQU3.js → index-IuR_FEdB.js} +1 -1
- langflow/frontend/assets/{index-xV6ystWy.js → index-Jj60FQkv.js} +1 -1
- langflow/frontend/assets/{index-C_157Mb-.js → index-LlvshmVz.js} +1 -1
- langflow/frontend/assets/{index-CDphUsa3.js → index-LwKh3I_W.js} +1 -1
- langflow/frontend/assets/{index-BrDz-PxE.js → index-N-xxmKKH.js} +1 -1
- langflow/frontend/assets/{index-BsdLyYMY.js → index-RwpaHIAH.js} +1 -1
- langflow/frontend/assets/{index-Cu2Xr6_j.js → index-TVvsp-xh.js} +1 -1
- langflow/frontend/assets/{index-CPiM2oyj.js → index-TdE2u9zP.js} +1 -1
- langflow/frontend/assets/{index-DOj_QWqG.js → index-_x-NkYeW.js} +1 -1
- langflow/frontend/assets/{index-YJsAl7vm.js → index-a-YclEbW.js} +1 -1
- langflow/frontend/assets/{index-5-CSw2-z.js → index-e9MFKUCo.js} +1 -1
- langflow/frontend/assets/{index-BSwBVwyF.js → index-krPr8f2F.js} +1 -1
- langflow/frontend/assets/{index-Df6psZEj.js → index-kveiUWuL.js} +1 -1
- langflow/frontend/assets/{index-CF4_Og1m.js → index-lE3oSjJi.js} +1 -1
- langflow/frontend/assets/{index-C6nzdeYx.js → index-lM3UYg7F.js} +1 -1
- langflow/frontend/assets/{index-C-wnbBBY.js → index-nsRk3qgA.js} +1 -1
- langflow/frontend/assets/{index-D234yKNJ.js → index-pBO0SZLD.js} +4 -4
- langflow/frontend/assets/{index-BMvp94tO.js → index-pbZHsbuE.js} +1 -1
- langflow/frontend/assets/{index-hg2y9OAt.js → index-sfX3aWyp.js} +1 -1
- langflow/frontend/assets/{index-DTCrijba.js → index-xQz-VJ0-.js} +1 -1
- langflow/frontend/assets/{index-SB4rw8D5.js → index-yfcsaHS6.js} +1 -1
- langflow/frontend/assets/{index-C-bjC2sz.js → index-zcGjo9fx.js} +1 -1
- langflow/frontend/assets/lazyIconImports-BjqDmNYG.js +2 -0
- langflow/frontend/assets/{use-post-add-user-JUeLDErC.js → use-post-add-user-w3vpKSOB.js} +1 -1
- langflow/frontend/index.html +1 -1
- langflow/graph/__init__.py +4 -4
- langflow/helpers/data.py +2 -2
- langflow/helpers/flow.py +9 -7
- langflow/helpers/user.py +2 -2
- langflow/initial_setup/setup.py +9 -9
- langflow/initial_setup/starter_projects/Basic Prompt Chaining.json +119 -41
- langflow/initial_setup/starter_projects/Basic Prompting.json +45 -19
- langflow/initial_setup/starter_projects/Blog Writer.json +53 -21
- langflow/initial_setup/starter_projects/Custom Component Generator.json +121 -97
- langflow/initial_setup/starter_projects/Document Q&A.json +46 -18
- langflow/initial_setup/starter_projects/Financial Report Parser.json +49 -17
- langflow/initial_setup/starter_projects/Hybrid Search RAG.json +89 -50
- langflow/initial_setup/starter_projects/Image Sentiment Analysis.json +86 -22
- langflow/initial_setup/starter_projects/Instagram Copywriter.json +210 -57
- langflow/initial_setup/starter_projects/Invoice Summarizer.json +132 -35
- langflow/initial_setup/starter_projects/Knowledge Ingestion.json +8 -8
- langflow/initial_setup/starter_projects/Knowledge Retrieval.json +8 -8
- langflow/initial_setup/starter_projects/Market Research.json +174 -48
- langflow/initial_setup/starter_projects/Meeting Summary.json +102 -38
- langflow/initial_setup/starter_projects/Memory Chatbot.json +49 -21
- langflow/initial_setup/starter_projects/News Aggregator.json +140 -39
- langflow/initial_setup/starter_projects/Nvidia Remix.json +153 -181
- langflow/initial_setup/starter_projects/Pok/303/251dex Agent.json" +132 -35
- langflow/initial_setup/starter_projects/Portfolio Website Code Generator.json +106 -43
- langflow/initial_setup/starter_projects/Price Deal Finder.json +136 -39
- langflow/initial_setup/starter_projects/Research Agent.json +206 -53
- langflow/initial_setup/starter_projects/Research Translation Loop.json +66 -34
- langflow/initial_setup/starter_projects/SEO Keyword Generator.json +41 -15
- langflow/initial_setup/starter_projects/SaaS Pricing.json +128 -31
- langflow/initial_setup/starter_projects/Search agent.json +132 -35
- langflow/initial_setup/starter_projects/Sequential Tasks Agents.json +422 -98
- langflow/initial_setup/starter_projects/Simple Agent.json +150 -42
- langflow/initial_setup/starter_projects/Social Media Agent.json +150 -42
- langflow/initial_setup/starter_projects/Text Sentiment Analysis.json +120 -24
- langflow/initial_setup/starter_projects/Travel Planning Agents.json +418 -94
- langflow/initial_setup/starter_projects/Twitter Thread Generator.json +69 -37
- langflow/initial_setup/starter_projects/Vector Store RAG.json +66 -38
- langflow/initial_setup/starter_projects/Youtube Analysis.json +191 -51
- langflow/initial_setup/starter_projects/basic_prompting.py +4 -4
- langflow/initial_setup/starter_projects/blog_writer.py +5 -5
- langflow/initial_setup/starter_projects/complex_agent.py +8 -8
- langflow/initial_setup/starter_projects/document_qa.py +5 -5
- langflow/initial_setup/starter_projects/hierarchical_tasks_agent.py +8 -8
- langflow/initial_setup/starter_projects/memory_chatbot.py +6 -6
- langflow/initial_setup/starter_projects/sequential_tasks_agent.py +7 -7
- langflow/initial_setup/starter_projects/vector_store_rag.py +8 -8
- langflow/inputs/__init__.py +3 -2
- langflow/inputs/constants.py +3 -2
- langflow/inputs/input_mixin.py +49 -310
- langflow/inputs/inputs.py +72 -703
- langflow/inputs/validators.py +2 -18
- langflow/interface/__init__.py +4 -0
- langflow/interface/components.py +3 -491
- langflow/interface/initialize/loading.py +7 -6
- langflow/interface/listing.py +3 -25
- langflow/interface/run.py +1 -1
- langflow/interface/utils.py +3 -111
- langflow/io/__init__.py +2 -2
- langflow/io/schema.py +11 -302
- langflow/load/__init__.py +4 -2
- langflow/load/utils.py +2 -96
- langflow/logging/__init__.py +2 -1
- langflow/logging/setup.py +1 -1
- langflow/main.py +8 -5
- langflow/memory.py +12 -6
- langflow/middleware.py +1 -1
- langflow/processing/process.py +7 -7
- langflow/schema/__init__.py +22 -5
- langflow/schema/artifact.py +1 -1
- langflow/schema/data.py +5 -303
- langflow/schema/dataframe.py +2 -205
- langflow/schema/graph.py +4 -45
- langflow/schema/image.py +2 -67
- langflow/schema/message.py +6 -470
- langflow/schema/playground_events.py +5 -6
- langflow/schema/schema.py +24 -117
- langflow/serialization/constants.py +3 -2
- langflow/serialization/serialization.py +1 -1
- langflow/server.py +1 -2
- langflow/services/__init__.py +1 -2
- langflow/services/auth/mcp_encryption.py +1 -1
- langflow/services/auth/service.py +1 -1
- langflow/services/auth/utils.py +5 -5
- langflow/services/cache/disk.py +2 -2
- langflow/services/cache/factory.py +2 -2
- langflow/services/cache/service.py +2 -2
- langflow/services/cache/utils.py +0 -11
- langflow/services/database/factory.py +1 -1
- langflow/services/database/models/flow/model.py +1 -1
- langflow/services/database/models/message/crud.py +2 -1
- langflow/services/database/models/transactions/crud.py +1 -1
- langflow/services/database/models/user/crud.py +1 -1
- langflow/services/database/service.py +2 -2
- langflow/services/database/utils.py +1 -2
- langflow/services/deps.py +12 -17
- langflow/services/enhanced_manager.py +71 -0
- langflow/services/factory.py +14 -7
- langflow/services/flow/flow_runner.py +4 -4
- langflow/services/job_queue/service.py +2 -1
- langflow/services/manager.py +14 -130
- langflow/services/schema.py +0 -1
- langflow/services/session/service.py +3 -2
- langflow/services/settings/__init__.py +0 -3
- langflow/services/settings/base.py +16 -549
- langflow/services/settings/factory.py +2 -21
- langflow/services/settings/feature_flags.py +2 -11
- langflow/services/settings/service.py +2 -31
- langflow/services/shared_component_cache/factory.py +1 -1
- langflow/services/socket/service.py +1 -1
- langflow/services/socket/utils.py +1 -8
- langflow/services/state/factory.py +1 -1
- langflow/services/state/service.py +3 -2
- langflow/services/storage/factory.py +2 -2
- langflow/services/storage/local.py +1 -2
- langflow/services/storage/s3.py +1 -2
- langflow/services/storage/service.py +2 -1
- langflow/services/store/factory.py +1 -1
- langflow/services/store/service.py +2 -2
- langflow/services/store/utils.py +1 -2
- langflow/services/task/service.py +2 -1
- langflow/services/task/temp_flow_cleanup.py +1 -1
- langflow/services/telemetry/factory.py +1 -1
- langflow/services/telemetry/service.py +2 -3
- langflow/services/tracing/arize_phoenix.py +3 -3
- langflow/services/tracing/base.py +1 -1
- langflow/services/tracing/factory.py +1 -1
- langflow/services/tracing/langfuse.py +2 -2
- langflow/services/tracing/langsmith.py +2 -2
- langflow/services/tracing/langwatch.py +4 -4
- langflow/services/tracing/opik.py +2 -2
- langflow/services/tracing/service.py +17 -11
- langflow/services/tracing/traceloop.py +2 -2
- langflow/services/tracing/utils.py +1 -1
- langflow/services/utils.py +54 -9
- langflow/services/variable/factory.py +1 -1
- langflow/services/variable/kubernetes.py +2 -3
- langflow/services/variable/kubernetes_secrets.py +1 -2
- langflow/services/variable/service.py +2 -3
- langflow/template/__init__.py +2 -9
- langflow/template/field/__init__.py +3 -0
- langflow/template/field/base.py +2 -256
- langflow/template/frontend_node.py +3 -0
- langflow/template/utils.py +2 -216
- langflow/utils/constants.py +28 -204
- langflow/utils/lazy_load.py +3 -14
- langflow/utils/schemas.py +2 -3
- langflow/utils/template_validation.py +2 -2
- langflow/utils/util.py +59 -479
- langflow/utils/validate.py +2 -488
- langflow/utils/voice_utils.py +1 -2
- langflow/worker.py +1 -1
- {langflow_base_nightly-0.5.1.dev3.dist-info → langflow_base_nightly-0.5.1.dev5.dist-info}/METADATA +2 -1
- langflow_base_nightly-0.5.1.dev5.dist-info/RECORD +633 -0
- langflow/base/agents/agent.py +0 -267
- langflow/base/agents/callback.py +0 -130
- langflow/base/agents/context.py +0 -109
- langflow/base/agents/crewai/__init__.py +0 -0
- langflow/base/agents/crewai/crew.py +0 -231
- langflow/base/agents/crewai/tasks.py +0 -12
- langflow/base/agents/default_prompts.py +0 -23
- langflow/base/agents/errors.py +0 -15
- langflow/base/agents/events.py +0 -346
- langflow/base/agents/utils.py +0 -205
- langflow/base/astra_assistants/__init__.py +0 -0
- langflow/base/astra_assistants/util.py +0 -171
- langflow/base/chains/__init__.py +0 -0
- langflow/base/chains/model.py +0 -19
- langflow/base/composio/__init__.py +0 -0
- langflow/base/composio/composio_base.py +0 -1297
- langflow/base/compressors/__init__.py +0 -0
- langflow/base/compressors/model.py +0 -60
- langflow/base/constants.py +0 -46
- langflow/base/curl/__init__.py +0 -0
- langflow/base/curl/parse.py +0 -188
- langflow/base/data/base_file.py +0 -685
- langflow/base/data/docling_utils.py +0 -245
- langflow/base/document_transformers/__init__.py +0 -0
- langflow/base/document_transformers/model.py +0 -43
- langflow/base/embeddings/aiml_embeddings.py +0 -62
- langflow/base/embeddings/model.py +0 -26
- langflow/base/flow_processing/__init__.py +0 -0
- langflow/base/flow_processing/utils.py +0 -86
- langflow/base/huggingface/__init__.py +0 -0
- langflow/base/huggingface/model_bridge.py +0 -133
- langflow/base/langchain_utilities/__init__.py +0 -0
- langflow/base/langchain_utilities/model.py +0 -35
- langflow/base/langchain_utilities/spider_constants.py +0 -1
- langflow/base/langwatch/__init__.py +0 -0
- langflow/base/langwatch/utils.py +0 -18
- langflow/base/mcp/__init__.py +0 -0
- langflow/base/mcp/constants.py +0 -2
- langflow/base/mcp/util.py +0 -1524
- langflow/base/memory/memory.py +0 -49
- langflow/base/memory/model.py +0 -38
- langflow/base/models/aiml_constants.py +0 -51
- langflow/base/models/anthropic_constants.py +0 -47
- langflow/base/models/aws_constants.py +0 -151
- langflow/base/models/chat_result.py +0 -76
- langflow/base/models/google_generative_ai_constants.py +0 -70
- langflow/base/models/groq_constants.py +0 -134
- langflow/base/models/model.py +0 -375
- langflow/base/models/model_input_constants.py +0 -299
- langflow/base/models/model_metadata.py +0 -41
- langflow/base/models/model_utils.py +0 -8
- langflow/base/models/novita_constants.py +0 -35
- langflow/base/models/ollama_constants.py +0 -49
- langflow/base/models/sambanova_constants.py +0 -18
- langflow/base/processing/__init__.py +0 -0
- langflow/base/prompts/utils.py +0 -61
- langflow/base/textsplitters/model.py +0 -28
- langflow/base/tools/base.py +0 -26
- langflow/base/tools/component_tool.py +0 -324
- langflow/base/tools/constants.py +0 -49
- langflow/base/tools/flow_tool.py +0 -131
- langflow/base/tools/run_flow.py +0 -227
- langflow/base/vectorstores/model.py +0 -193
- langflow/base/vectorstores/utils.py +0 -22
- langflow/base/vectorstores/vector_store_connection_decorator.py +0 -52
- langflow/components/FAISS/__init__.py +0 -34
- langflow/components/FAISS/faiss.py +0 -111
- langflow/components/Notion/__init__.py +0 -19
- langflow/components/Notion/add_content_to_page.py +0 -269
- langflow/components/Notion/create_page.py +0 -94
- langflow/components/Notion/list_database_properties.py +0 -68
- langflow/components/Notion/list_pages.py +0 -122
- langflow/components/Notion/list_users.py +0 -77
- langflow/components/Notion/page_content_viewer.py +0 -93
- langflow/components/Notion/search.py +0 -111
- langflow/components/Notion/update_page_property.py +0 -114
- langflow/components/_importing.py +0 -37
- langflow/components/agentql/__init__.py +0 -3
- langflow/components/agentql/agentql_api.py +0 -151
- langflow/components/agents/__init__.py +0 -4
- langflow/components/agents/agent.py +0 -554
- langflow/components/agents/mcp_component.py +0 -501
- langflow/components/aiml/__init__.py +0 -37
- langflow/components/aiml/aiml.py +0 -112
- langflow/components/aiml/aiml_embeddings.py +0 -37
- langflow/components/amazon/__init__.py +0 -36
- langflow/components/amazon/amazon_bedrock_embedding.py +0 -109
- langflow/components/amazon/amazon_bedrock_model.py +0 -124
- langflow/components/amazon/s3_bucket_uploader.py +0 -211
- langflow/components/anthropic/__init__.py +0 -34
- langflow/components/anthropic/anthropic.py +0 -187
- langflow/components/apify/__init__.py +0 -5
- langflow/components/apify/apify_actor.py +0 -325
- langflow/components/arxiv/__init__.py +0 -3
- langflow/components/arxiv/arxiv.py +0 -163
- langflow/components/assemblyai/__init__.py +0 -46
- langflow/components/assemblyai/assemblyai_get_subtitles.py +0 -83
- langflow/components/assemblyai/assemblyai_lemur.py +0 -183
- langflow/components/assemblyai/assemblyai_list_transcripts.py +0 -95
- langflow/components/assemblyai/assemblyai_poll_transcript.py +0 -72
- langflow/components/assemblyai/assemblyai_start_transcript.py +0 -188
- langflow/components/azure/__init__.py +0 -37
- langflow/components/azure/azure_openai.py +0 -95
- langflow/components/azure/azure_openai_embeddings.py +0 -83
- langflow/components/baidu/__init__.py +0 -32
- langflow/components/baidu/baidu_qianfan_chat.py +0 -113
- langflow/components/bing/__init__.py +0 -3
- langflow/components/bing/bing_search_api.py +0 -61
- langflow/components/cassandra/__init__.py +0 -40
- langflow/components/cassandra/cassandra.py +0 -264
- langflow/components/cassandra/cassandra_chat.py +0 -92
- langflow/components/cassandra/cassandra_graph.py +0 -238
- langflow/components/chains/__init__.py +0 -0
- langflow/components/chroma/__init__.py +0 -34
- langflow/components/chroma/chroma.py +0 -167
- langflow/components/cleanlab/__init__.py +0 -40
- langflow/components/cleanlab/cleanlab_evaluator.py +0 -157
- langflow/components/cleanlab/cleanlab_rag_evaluator.py +0 -254
- langflow/components/cleanlab/cleanlab_remediator.py +0 -131
- langflow/components/clickhouse/__init__.py +0 -34
- langflow/components/clickhouse/clickhouse.py +0 -135
- langflow/components/cloudflare/__init__.py +0 -32
- langflow/components/cloudflare/cloudflare.py +0 -81
- langflow/components/cohere/__init__.py +0 -40
- langflow/components/cohere/cohere_embeddings.py +0 -81
- langflow/components/cohere/cohere_models.py +0 -46
- langflow/components/cohere/cohere_rerank.py +0 -51
- langflow/components/composio/__init__.py +0 -73
- langflow/components/composio/composio_api.py +0 -268
- langflow/components/composio/dropbox_compnent.py +0 -11
- langflow/components/composio/github_composio.py +0 -11
- langflow/components/composio/gmail_composio.py +0 -38
- langflow/components/composio/googlecalendar_composio.py +0 -11
- langflow/components/composio/googlemeet_composio.py +0 -11
- langflow/components/composio/googletasks_composio.py +0 -8
- langflow/components/composio/linear_composio.py +0 -11
- langflow/components/composio/outlook_composio.py +0 -11
- langflow/components/composio/reddit_composio.py +0 -11
- langflow/components/composio/slack_composio.py +0 -11
- langflow/components/composio/slackbot_composio.py +0 -11
- langflow/components/composio/supabase_composio.py +0 -11
- langflow/components/composio/todoist_composio.py +0 -11
- langflow/components/composio/youtube_composio.py +0 -11
- langflow/components/confluence/__init__.py +0 -3
- langflow/components/confluence/confluence.py +0 -84
- langflow/components/couchbase/__init__.py +0 -34
- langflow/components/couchbase/couchbase.py +0 -102
- langflow/components/crewai/__init__.py +0 -49
- langflow/components/crewai/crewai.py +0 -107
- langflow/components/crewai/hierarchical_crew.py +0 -46
- langflow/components/crewai/hierarchical_task.py +0 -44
- langflow/components/crewai/sequential_crew.py +0 -52
- langflow/components/crewai/sequential_task.py +0 -73
- langflow/components/crewai/sequential_task_agent.py +0 -143
- langflow/components/custom_component/__init__.py +0 -34
- langflow/components/custom_component/custom_component.py +0 -31
- langflow/components/data/__init__.py +0 -25
- langflow/components/data/api_request.py +0 -545
- langflow/components/data/csv_to_data.py +0 -95
- langflow/components/data/directory.py +0 -113
- langflow/components/data/file.py +0 -586
- langflow/components/data/json_to_data.py +0 -98
- langflow/components/data/news_search.py +0 -164
- langflow/components/data/rss.py +0 -69
- langflow/components/data/sql_executor.py +0 -99
- langflow/components/data/url.py +0 -299
- langflow/components/data/web_search.py +0 -112
- langflow/components/data/webhook.py +0 -56
- langflow/components/datastax/__init__.py +0 -70
- langflow/components/datastax/astra_assistant_manager.py +0 -306
- langflow/components/datastax/astra_db.py +0 -69
- langflow/components/datastax/astra_vectorize.py +0 -124
- langflow/components/datastax/astradb_cql.py +0 -314
- langflow/components/datastax/astradb_graph.py +0 -319
- langflow/components/datastax/astradb_tool.py +0 -414
- langflow/components/datastax/astradb_vectorstore.py +0 -1285
- langflow/components/datastax/create_assistant.py +0 -58
- langflow/components/datastax/create_thread.py +0 -32
- langflow/components/datastax/dotenv.py +0 -35
- langflow/components/datastax/get_assistant.py +0 -37
- langflow/components/datastax/getenvvar.py +0 -30
- langflow/components/datastax/graph_rag.py +0 -141
- langflow/components/datastax/hcd.py +0 -314
- langflow/components/datastax/list_assistants.py +0 -25
- langflow/components/datastax/run.py +0 -89
- langflow/components/deactivated/__init__.py +0 -19
- langflow/components/deactivated/amazon_kendra.py +0 -66
- langflow/components/deactivated/chat_litellm_model.py +0 -158
- langflow/components/deactivated/code_block_extractor.py +0 -26
- langflow/components/deactivated/documents_to_data.py +0 -22
- langflow/components/deactivated/embed.py +0 -16
- langflow/components/deactivated/extract_key_from_data.py +0 -46
- langflow/components/deactivated/json_document_builder.py +0 -59
- langflow/components/deactivated/list_flows.py +0 -20
- langflow/components/deactivated/mcp_sse.py +0 -61
- langflow/components/deactivated/mcp_stdio.py +0 -62
- langflow/components/deactivated/merge_data.py +0 -93
- langflow/components/deactivated/message.py +0 -37
- langflow/components/deactivated/metal.py +0 -54
- langflow/components/deactivated/multi_query.py +0 -59
- langflow/components/deactivated/retriever.py +0 -43
- langflow/components/deactivated/selective_passthrough.py +0 -77
- langflow/components/deactivated/should_run_next.py +0 -40
- langflow/components/deactivated/split_text.py +0 -63
- langflow/components/deactivated/store_message.py +0 -24
- langflow/components/deactivated/sub_flow.py +0 -124
- langflow/components/deactivated/vectara_self_query.py +0 -76
- langflow/components/deactivated/vector_store.py +0 -24
- langflow/components/deepseek/__init__.py +0 -34
- langflow/components/deepseek/deepseek.py +0 -136
- langflow/components/docling/__init__.py +0 -43
- langflow/components/docling/chunk_docling_document.py +0 -186
- langflow/components/docling/docling_inline.py +0 -235
- langflow/components/docling/docling_remote.py +0 -193
- langflow/components/docling/export_docling_document.py +0 -117
- langflow/components/documentloaders/__init__.py +0 -0
- langflow/components/duckduckgo/__init__.py +0 -3
- langflow/components/duckduckgo/duck_duck_go_search_run.py +0 -92
- langflow/components/elastic/__init__.py +0 -37
- langflow/components/elastic/elasticsearch.py +0 -267
- langflow/components/elastic/opensearch.py +0 -243
- langflow/components/embeddings/__init__.py +0 -37
- langflow/components/embeddings/similarity.py +0 -76
- langflow/components/embeddings/text_embedder.py +0 -64
- langflow/components/exa/__init__.py +0 -3
- langflow/components/exa/exa_search.py +0 -68
- langflow/components/firecrawl/__init__.py +0 -43
- langflow/components/firecrawl/firecrawl_crawl_api.py +0 -88
- langflow/components/firecrawl/firecrawl_extract_api.py +0 -136
- langflow/components/firecrawl/firecrawl_map_api.py +0 -89
- langflow/components/firecrawl/firecrawl_scrape_api.py +0 -73
- langflow/components/git/__init__.py +0 -4
- langflow/components/git/git.py +0 -262
- langflow/components/git/gitextractor.py +0 -196
- langflow/components/glean/__init__.py +0 -3
- langflow/components/glean/glean_search_api.py +0 -173
- langflow/components/google/__init__.py +0 -17
- langflow/components/google/gmail.py +0 -192
- langflow/components/google/google_bq_sql_executor.py +0 -157
- langflow/components/google/google_drive.py +0 -92
- langflow/components/google/google_drive_search.py +0 -152
- langflow/components/google/google_generative_ai.py +0 -147
- langflow/components/google/google_generative_ai_embeddings.py +0 -141
- langflow/components/google/google_oauth_token.py +0 -89
- langflow/components/google/google_search_api_core.py +0 -68
- langflow/components/google/google_serper_api_core.py +0 -74
- langflow/components/groq/__init__.py +0 -34
- langflow/components/groq/groq.py +0 -140
- langflow/components/helpers/__init__.py +0 -52
- langflow/components/helpers/calculator_core.py +0 -89
- langflow/components/helpers/create_list.py +0 -40
- langflow/components/helpers/current_date.py +0 -42
- langflow/components/helpers/id_generator.py +0 -42
- langflow/components/helpers/memory.py +0 -251
- langflow/components/helpers/output_parser.py +0 -45
- langflow/components/helpers/store_message.py +0 -90
- langflow/components/homeassistant/__init__.py +0 -7
- langflow/components/homeassistant/home_assistant_control.py +0 -152
- langflow/components/homeassistant/list_home_assistant_states.py +0 -137
- langflow/components/huggingface/__init__.py +0 -37
- langflow/components/huggingface/huggingface.py +0 -197
- langflow/components/huggingface/huggingface_inference_api.py +0 -106
- langflow/components/ibm/__init__.py +0 -34
- langflow/components/ibm/watsonx.py +0 -203
- langflow/components/ibm/watsonx_embeddings.py +0 -135
- langflow/components/icosacomputing/__init__.py +0 -5
- langflow/components/icosacomputing/combinatorial_reasoner.py +0 -84
- langflow/components/input_output/__init__.py +0 -38
- langflow/components/input_output/chat.py +0 -120
- langflow/components/input_output/chat_output.py +0 -200
- langflow/components/input_output/text.py +0 -27
- langflow/components/input_output/text_output.py +0 -29
- langflow/components/jigsawstack/__init__.py +0 -23
- langflow/components/jigsawstack/ai_scrape.py +0 -126
- langflow/components/jigsawstack/ai_web_search.py +0 -136
- langflow/components/jigsawstack/file_read.py +0 -115
- langflow/components/jigsawstack/file_upload.py +0 -94
- langflow/components/jigsawstack/image_generation.py +0 -205
- langflow/components/jigsawstack/nsfw.py +0 -60
- langflow/components/jigsawstack/object_detection.py +0 -124
- langflow/components/jigsawstack/sentiment.py +0 -112
- langflow/components/jigsawstack/text_to_sql.py +0 -90
- langflow/components/jigsawstack/text_translate.py +0 -77
- langflow/components/jigsawstack/vocr.py +0 -107
- langflow/components/langchain_utilities/__init__.py +0 -109
- langflow/components/langchain_utilities/character.py +0 -53
- langflow/components/langchain_utilities/conversation.py +0 -52
- langflow/components/langchain_utilities/csv_agent.py +0 -107
- langflow/components/langchain_utilities/fake_embeddings.py +0 -26
- langflow/components/langchain_utilities/html_link_extractor.py +0 -35
- langflow/components/langchain_utilities/json_agent.py +0 -45
- langflow/components/langchain_utilities/langchain_hub.py +0 -126
- langflow/components/langchain_utilities/language_recursive.py +0 -49
- langflow/components/langchain_utilities/language_semantic.py +0 -138
- langflow/components/langchain_utilities/llm_checker.py +0 -39
- langflow/components/langchain_utilities/llm_math.py +0 -42
- langflow/components/langchain_utilities/natural_language.py +0 -61
- langflow/components/langchain_utilities/openai_tools.py +0 -53
- langflow/components/langchain_utilities/openapi.py +0 -48
- langflow/components/langchain_utilities/recursive_character.py +0 -60
- langflow/components/langchain_utilities/retrieval_qa.py +0 -83
- langflow/components/langchain_utilities/runnable_executor.py +0 -137
- langflow/components/langchain_utilities/self_query.py +0 -80
- langflow/components/langchain_utilities/spider.py +0 -142
- langflow/components/langchain_utilities/sql.py +0 -40
- langflow/components/langchain_utilities/sql_database.py +0 -35
- langflow/components/langchain_utilities/sql_generator.py +0 -78
- langflow/components/langchain_utilities/tool_calling.py +0 -59
- langflow/components/langchain_utilities/vector_store_info.py +0 -49
- langflow/components/langchain_utilities/vector_store_router.py +0 -33
- langflow/components/langchain_utilities/xml_agent.py +0 -71
- langflow/components/langwatch/__init__.py +0 -3
- langflow/components/langwatch/langwatch.py +0 -278
- langflow/components/link_extractors/__init__.py +0 -0
- langflow/components/lmstudio/__init__.py +0 -34
- langflow/components/lmstudio/lmstudioembeddings.py +0 -89
- langflow/components/lmstudio/lmstudiomodel.py +0 -129
- langflow/components/logic/__init__.py +0 -52
- langflow/components/logic/conditional_router.py +0 -171
- langflow/components/logic/data_conditional_router.py +0 -125
- langflow/components/logic/flow_tool.py +0 -110
- langflow/components/logic/listen.py +0 -29
- langflow/components/logic/loop.py +0 -125
- langflow/components/logic/notify.py +0 -88
- langflow/components/logic/pass_message.py +0 -35
- langflow/components/logic/run_flow.py +0 -71
- langflow/components/logic/sub_flow.py +0 -114
- langflow/components/maritalk/__init__.py +0 -32
- langflow/components/maritalk/maritalk.py +0 -52
- langflow/components/mem0/__init__.py +0 -3
- langflow/components/mem0/mem0_chat_memory.py +0 -136
- langflow/components/milvus/__init__.py +0 -34
- langflow/components/milvus/milvus.py +0 -115
- langflow/components/mistral/__init__.py +0 -37
- langflow/components/mistral/mistral.py +0 -114
- langflow/components/mistral/mistral_embeddings.py +0 -58
- langflow/components/models/__init__.py +0 -34
- langflow/components/models/embedding_model.py +0 -114
- langflow/components/models/language_model.py +0 -144
- langflow/components/mongodb/__init__.py +0 -34
- langflow/components/mongodb/mongodb_atlas.py +0 -213
- langflow/components/needle/__init__.py +0 -3
- langflow/components/needle/needle.py +0 -104
- langflow/components/notdiamond/__init__.py +0 -36
- langflow/components/notdiamond/notdiamond.py +0 -228
- langflow/components/novita/__init__.py +0 -32
- langflow/components/novita/novita.py +0 -130
- langflow/components/nvidia/__init__.py +0 -57
- langflow/components/nvidia/nvidia.py +0 -157
- langflow/components/nvidia/nvidia_embedding.py +0 -77
- langflow/components/nvidia/nvidia_ingest.py +0 -317
- langflow/components/nvidia/nvidia_rerank.py +0 -63
- langflow/components/nvidia/system_assist.py +0 -65
- langflow/components/olivya/__init__.py +0 -3
- langflow/components/olivya/olivya.py +0 -116
- langflow/components/ollama/__init__.py +0 -37
- langflow/components/ollama/ollama.py +0 -330
- langflow/components/ollama/ollama_embeddings.py +0 -106
- langflow/components/openai/__init__.py +0 -37
- langflow/components/openai/openai.py +0 -100
- langflow/components/openai/openai_chat_model.py +0 -158
- langflow/components/openrouter/__init__.py +0 -32
- langflow/components/openrouter/openrouter.py +0 -202
- langflow/components/output_parsers/__init__.py +0 -0
- langflow/components/perplexity/__init__.py +0 -34
- langflow/components/perplexity/perplexity.py +0 -75
- langflow/components/pgvector/__init__.py +0 -34
- langflow/components/pgvector/pgvector.py +0 -72
- langflow/components/pinecone/__init__.py +0 -34
- langflow/components/pinecone/pinecone.py +0 -134
- langflow/components/processing/alter_metadata.py +0 -108
- langflow/components/processing/batch_run.py +0 -205
- langflow/components/processing/combine_text.py +0 -39
- langflow/components/processing/create_data.py +0 -110
- langflow/components/processing/data_operations.py +0 -438
- langflow/components/processing/data_to_dataframe.py +0 -70
- langflow/components/processing/dataframe_operations.py +0 -321
- langflow/components/processing/extract_key.py +0 -53
- langflow/components/processing/filter_data.py +0 -42
- langflow/components/processing/filter_data_values.py +0 -88
- langflow/components/processing/json_cleaner.py +0 -103
- langflow/components/processing/lambda_filter.py +0 -154
- langflow/components/processing/llm_router.py +0 -499
- langflow/components/processing/merge_data.py +0 -90
- langflow/components/processing/message_to_data.py +0 -36
- langflow/components/processing/parse_data.py +0 -70
- langflow/components/processing/parse_dataframe.py +0 -68
- langflow/components/processing/parse_json_data.py +0 -90
- langflow/components/processing/parser.py +0 -143
- langflow/components/processing/prompt.py +0 -67
- langflow/components/processing/python_repl_core.py +0 -98
- langflow/components/processing/regex.py +0 -82
- langflow/components/processing/save_file.py +0 -208
- langflow/components/processing/select_data.py +0 -48
- langflow/components/processing/split_text.py +0 -141
- langflow/components/processing/structured_output.py +0 -202
- langflow/components/processing/update_data.py +0 -160
- langflow/components/prototypes/__init__.py +0 -34
- langflow/components/prototypes/python_function.py +0 -73
- langflow/components/qdrant/__init__.py +0 -34
- langflow/components/qdrant/qdrant.py +0 -109
- langflow/components/redis/__init__.py +0 -37
- langflow/components/redis/redis.py +0 -89
- langflow/components/redis/redis_chat.py +0 -43
- langflow/components/sambanova/__init__.py +0 -32
- langflow/components/sambanova/sambanova.py +0 -84
- langflow/components/scrapegraph/__init__.py +0 -40
- langflow/components/scrapegraph/scrapegraph_markdownify_api.py +0 -64
- langflow/components/scrapegraph/scrapegraph_search_api.py +0 -64
- langflow/components/scrapegraph/scrapegraph_smart_scraper_api.py +0 -71
- langflow/components/searchapi/__init__.py +0 -36
- langflow/components/searchapi/search.py +0 -79
- langflow/components/serpapi/__init__.py +0 -3
- langflow/components/serpapi/serp.py +0 -115
- langflow/components/serper/__init__.py +0 -3
- langflow/components/serper/google_serper_api_core.py +0 -74
- langflow/components/supabase/__init__.py +0 -37
- langflow/components/supabase/supabase.py +0 -76
- langflow/components/tavily/__init__.py +0 -4
- langflow/components/tavily/tavily_extract.py +0 -117
- langflow/components/tavily/tavily_search.py +0 -212
- langflow/components/textsplitters/__init__.py +0 -0
- langflow/components/toolkits/__init__.py +0 -0
- langflow/components/tools/__init__.py +0 -72
- langflow/components/tools/calculator.py +0 -103
- langflow/components/tools/google_search_api.py +0 -45
- langflow/components/tools/google_serper_api.py +0 -115
- langflow/components/tools/python_code_structured_tool.py +0 -327
- langflow/components/tools/python_repl.py +0 -97
- langflow/components/tools/search_api.py +0 -87
- langflow/components/tools/searxng.py +0 -145
- langflow/components/tools/serp_api.py +0 -119
- langflow/components/tools/tavily_search_tool.py +0 -344
- langflow/components/tools/wikidata_api.py +0 -102
- langflow/components/tools/wikipedia_api.py +0 -49
- langflow/components/tools/yahoo_finance.py +0 -124
- langflow/components/twelvelabs/__init__.py +0 -52
- langflow/components/twelvelabs/convert_astra_results.py +0 -84
- langflow/components/twelvelabs/pegasus_index.py +0 -311
- langflow/components/twelvelabs/split_video.py +0 -291
- langflow/components/twelvelabs/text_embeddings.py +0 -57
- langflow/components/twelvelabs/twelvelabs_pegasus.py +0 -408
- langflow/components/twelvelabs/video_embeddings.py +0 -100
- langflow/components/twelvelabs/video_file.py +0 -179
- langflow/components/unstructured/__init__.py +0 -3
- langflow/components/unstructured/unstructured.py +0 -121
- langflow/components/upstash/__init__.py +0 -34
- langflow/components/upstash/upstash.py +0 -124
- langflow/components/vectara/__init__.py +0 -37
- langflow/components/vectara/vectara.py +0 -97
- langflow/components/vectara/vectara_rag.py +0 -164
- langflow/components/vectorstores/__init__.py +0 -34
- langflow/components/vectorstores/local_db.py +0 -261
- langflow/components/vertexai/__init__.py +0 -37
- langflow/components/vertexai/vertexai.py +0 -71
- langflow/components/vertexai/vertexai_embeddings.py +0 -67
- langflow/components/weaviate/__init__.py +0 -34
- langflow/components/weaviate/weaviate.py +0 -89
- langflow/components/wikipedia/__init__.py +0 -4
- langflow/components/wikipedia/wikidata.py +0 -86
- langflow/components/wikipedia/wikipedia.py +0 -53
- langflow/components/wolframalpha/__init__.py +0 -3
- langflow/components/wolframalpha/wolfram_alpha_api.py +0 -54
- langflow/components/xai/__init__.py +0 -32
- langflow/components/xai/xai.py +0 -167
- langflow/components/yahoosearch/__init__.py +0 -3
- langflow/components/yahoosearch/yahoo.py +0 -137
- langflow/components/youtube/__init__.py +0 -52
- langflow/components/youtube/channel.py +0 -227
- langflow/components/youtube/comments.py +0 -231
- langflow/components/youtube/playlist.py +0 -33
- langflow/components/youtube/search.py +0 -120
- langflow/components/youtube/trending.py +0 -285
- langflow/components/youtube/video_details.py +0 -263
- langflow/components/youtube/youtube_transcripts.py +0 -118
- langflow/components/zep/__init__.py +0 -3
- langflow/components/zep/zep.py +0 -44
- langflow/custom/attributes.py +0 -86
- langflow/custom/code_parser/__init__.py +0 -3
- langflow/custom/code_parser/code_parser.py +0 -361
- langflow/custom/custom_component/base_component.py +0 -118
- langflow/custom/dependency_analyzer.py +0 -165
- langflow/custom/directory_reader/__init__.py +0 -3
- langflow/custom/directory_reader/directory_reader.py +0 -359
- langflow/custom/directory_reader/utils.py +0 -171
- langflow/custom/eval.py +0 -12
- langflow/custom/schema.py +0 -32
- langflow/custom/tree_visitor.py +0 -21
- langflow/frontend/assets/lazyIconImports-Ci-S9xBA.js +0 -2
- langflow/graph/edge/__init__.py +0 -0
- langflow/graph/edge/base.py +0 -277
- langflow/graph/edge/schema.py +0 -119
- langflow/graph/edge/utils.py +0 -0
- langflow/graph/graph/__init__.py +0 -0
- langflow/graph/graph/ascii.py +0 -202
- langflow/graph/graph/base.py +0 -2185
- langflow/graph/graph/constants.py +0 -58
- langflow/graph/graph/runnable_vertices_manager.py +0 -133
- langflow/graph/graph/schema.py +0 -53
- langflow/graph/graph/state_model.py +0 -66
- langflow/graph/graph/utils.py +0 -1024
- langflow/graph/schema.py +0 -75
- langflow/graph/state/__init__.py +0 -0
- langflow/graph/state/model.py +0 -237
- langflow/graph/utils.py +0 -229
- langflow/graph/vertex/__init__.py +0 -0
- langflow/graph/vertex/base.py +0 -811
- langflow/graph/vertex/constants.py +0 -0
- langflow/graph/vertex/exceptions.py +0 -4
- langflow/graph/vertex/param_handler.py +0 -255
- langflow/graph/vertex/schema.py +0 -26
- langflow/graph/vertex/utils.py +0 -19
- langflow/graph/vertex/vertex_types.py +0 -489
- langflow/legacy_custom/__init__.py +0 -0
- langflow/legacy_custom/customs.py +0 -16
- langflow/load/load.py +0 -250
- langflow/logging/logger.py +0 -369
- langflow/processing/utils.py +0 -25
- langflow/schema/openai_responses_schemas.py +0 -74
- langflow/schema/serialize.py +0 -13
- langflow/services/chat/config.py +0 -2
- langflow/services/settings/auth.py +0 -130
- langflow/services/settings/constants.py +0 -31
- langflow/services/settings/manager.py +0 -49
- langflow/services/settings/utils.py +0 -40
- langflow/template/field/prompt.py +0 -2
- langflow/template/frontend_node/__init__.py +0 -6
- langflow/template/frontend_node/base.py +0 -212
- langflow/template/frontend_node/constants.py +0 -65
- langflow/template/frontend_node/custom_components.py +0 -97
- langflow/template/template/__init__.py +0 -0
- langflow/template/template/base.py +0 -99
- langflow/utils/async_helpers.py +0 -42
- langflow/utils/concurrency.py +0 -60
- langflow/utils/util_strings.py +0 -56
- langflow_base_nightly-0.5.1.dev3.dist-info/RECORD +0 -1159
- {langflow_base_nightly-0.5.1.dev3.dist-info → langflow_base_nightly-0.5.1.dev5.dist-info}/WHEEL +0 -0
- {langflow_base_nightly-0.5.1.dev3.dist-info → langflow_base_nightly-0.5.1.dev5.dist-info}/entry_points.txt +0 -0
|
@@ -1,73 +0,0 @@
|
|
|
1
|
-
from __future__ import annotations
|
|
2
|
-
|
|
3
|
-
from typing import TYPE_CHECKING, Any
|
|
4
|
-
|
|
5
|
-
from langflow.components._importing import import_mod
|
|
6
|
-
|
|
7
|
-
if TYPE_CHECKING:
|
|
8
|
-
from .composio_api import ComposioAPIComponent
|
|
9
|
-
from .github_composio import ComposioGitHubAPIComponent
|
|
10
|
-
from .gmail_composio import ComposioGmailAPIComponent
|
|
11
|
-
from .googlecalendar_composio import ComposioGoogleCalendarAPIComponent
|
|
12
|
-
from .googlemeet_composio import ComposioGooglemeetAPIComponent
|
|
13
|
-
from .googletasks_composio import ComposioGoogleTasksAPIComponent
|
|
14
|
-
from .linear_composio import ComposioLinearAPIComponent
|
|
15
|
-
from .outlook_composio import ComposioOutlookAPIComponent
|
|
16
|
-
from .reddit_composio import ComposioRedditAPIComponent
|
|
17
|
-
from .slack_composio import ComposioSlackAPIComponent
|
|
18
|
-
from .slackbot_composio import ComposioSlackbotAPIComponent
|
|
19
|
-
from .supabase_composio import ComposioSupabaseAPIComponent
|
|
20
|
-
from .todoist_composio import ComposioTodoistAPIComponent
|
|
21
|
-
from .youtube_composio import ComposioYoutubeAPIComponent
|
|
22
|
-
|
|
23
|
-
_dynamic_imports = {
|
|
24
|
-
"ComposioAPIComponent": "composio_api",
|
|
25
|
-
"ComposioGitHubAPIComponent": "github_composio",
|
|
26
|
-
"ComposioGmailAPIComponent": "gmail_composio",
|
|
27
|
-
"ComposioGoogleCalendarAPIComponent": "googlecalendar_composio",
|
|
28
|
-
"ComposioGooglemeetAPIComponent": "googlemeet_composio",
|
|
29
|
-
"ComposioOutlookAPIComponent": "outlook_composio",
|
|
30
|
-
"ComposioSlackAPIComponent": "slack_composio",
|
|
31
|
-
"ComposioGoogleTasksAPIComponent": "googletasks_composio",
|
|
32
|
-
"ComposioLinearAPIComponent": "linear_composio",
|
|
33
|
-
"ComposioRedditAPIComponent": "reddit_composio",
|
|
34
|
-
"ComposioSlackbotAPIComponent": "slackbot_composio",
|
|
35
|
-
"ComposioSupabaseAPIComponent": "supabase_composio",
|
|
36
|
-
"ComposioTodoistAPIComponent": "todoist_composio",
|
|
37
|
-
"ComposioYoutubeAPIComponent": "youtube_composio",
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
__all__ = [
|
|
41
|
-
"ComposioAPIComponent",
|
|
42
|
-
"ComposioGitHubAPIComponent",
|
|
43
|
-
"ComposioGmailAPIComponent",
|
|
44
|
-
"ComposioGoogleCalendarAPIComponent",
|
|
45
|
-
"ComposioGoogleTasksAPIComponent",
|
|
46
|
-
"ComposioGooglemeetAPIComponent",
|
|
47
|
-
"ComposioLinearAPIComponent",
|
|
48
|
-
"ComposioOutlookAPIComponent",
|
|
49
|
-
"ComposioRedditAPIComponent",
|
|
50
|
-
"ComposioSlackAPIComponent",
|
|
51
|
-
"ComposioSlackbotAPIComponent",
|
|
52
|
-
"ComposioSupabaseAPIComponent",
|
|
53
|
-
"ComposioTodoistAPIComponent",
|
|
54
|
-
"ComposioYoutubeAPIComponent",
|
|
55
|
-
]
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
def __getattr__(attr_name: str) -> Any:
|
|
59
|
-
"""Lazily import composio components on attribute access."""
|
|
60
|
-
if attr_name not in _dynamic_imports:
|
|
61
|
-
msg = f"module '{__name__}' has no attribute '{attr_name}'"
|
|
62
|
-
raise AttributeError(msg)
|
|
63
|
-
try:
|
|
64
|
-
result = import_mod(attr_name, _dynamic_imports[attr_name], __spec__.parent)
|
|
65
|
-
except (ModuleNotFoundError, ImportError, AttributeError) as e:
|
|
66
|
-
msg = f"Could not import '{attr_name}' from '{__name__}': {e}"
|
|
67
|
-
raise AttributeError(msg) from e
|
|
68
|
-
globals()[attr_name] = result
|
|
69
|
-
return result
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
def __dir__() -> list[str]:
|
|
73
|
-
return list(__all__)
|
|
@@ -1,268 +0,0 @@
|
|
|
1
|
-
# Standard library imports
|
|
2
|
-
from collections.abc import Sequence
|
|
3
|
-
from typing import Any
|
|
4
|
-
|
|
5
|
-
from composio import Composio
|
|
6
|
-
from composio_langchain import LangchainProvider
|
|
7
|
-
|
|
8
|
-
# Third-party imports
|
|
9
|
-
from langchain_core.tools import Tool
|
|
10
|
-
|
|
11
|
-
# Local imports
|
|
12
|
-
from langflow.base.langchain_utilities.model import LCToolComponent
|
|
13
|
-
from langflow.inputs.inputs import (
|
|
14
|
-
ConnectionInput,
|
|
15
|
-
MessageTextInput,
|
|
16
|
-
SecretStrInput,
|
|
17
|
-
SortableListInput,
|
|
18
|
-
)
|
|
19
|
-
from langflow.io import Output
|
|
20
|
-
|
|
21
|
-
# TODO: We get the list from the API but we need to filter it
|
|
22
|
-
enabled_tools = ["confluence", "discord", "dropbox", "github", "gmail", "linkedin", "notion", "slack", "youtube"]
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
class ComposioAPIComponent(LCToolComponent):
|
|
26
|
-
display_name: str = "Composio Tools"
|
|
27
|
-
description: str = "Use Composio toolset to run actions with your agent"
|
|
28
|
-
name = "ComposioAPI"
|
|
29
|
-
icon = "Composio"
|
|
30
|
-
documentation: str = "https://docs.composio.dev"
|
|
31
|
-
|
|
32
|
-
inputs = [
|
|
33
|
-
# Basic configuration inputs
|
|
34
|
-
MessageTextInput(name="entity_id", display_name="Entity ID", value="default", advanced=True),
|
|
35
|
-
SecretStrInput(
|
|
36
|
-
name="api_key",
|
|
37
|
-
display_name="Composio API Key",
|
|
38
|
-
required=True,
|
|
39
|
-
info="Refer to https://docs.composio.dev/faq/api_key/api_key",
|
|
40
|
-
real_time_refresh=True,
|
|
41
|
-
),
|
|
42
|
-
ConnectionInput(
|
|
43
|
-
name="tool_name",
|
|
44
|
-
display_name="Tool Name",
|
|
45
|
-
placeholder="Select a tool...",
|
|
46
|
-
button_metadata={"icon": "unplug", "variant": "destructive"},
|
|
47
|
-
options=[],
|
|
48
|
-
search_category=[],
|
|
49
|
-
value="",
|
|
50
|
-
connection_link="",
|
|
51
|
-
info="The name of the tool to use",
|
|
52
|
-
real_time_refresh=True,
|
|
53
|
-
),
|
|
54
|
-
SortableListInput(
|
|
55
|
-
name="actions",
|
|
56
|
-
display_name="Actions",
|
|
57
|
-
placeholder="Select action",
|
|
58
|
-
helper_text="Please connect before selecting actions.",
|
|
59
|
-
helper_text_metadata={"icon": "OctagonAlert", "variant": "destructive"},
|
|
60
|
-
options=[],
|
|
61
|
-
value="",
|
|
62
|
-
info="The actions to use",
|
|
63
|
-
limit=1,
|
|
64
|
-
show=False,
|
|
65
|
-
),
|
|
66
|
-
]
|
|
67
|
-
|
|
68
|
-
outputs = [
|
|
69
|
-
Output(name="tools", display_name="Tools", method="build_tool"),
|
|
70
|
-
]
|
|
71
|
-
|
|
72
|
-
def validate_tool(self, build_config: dict, field_value: Any, tool_name: str | None = None) -> dict:
|
|
73
|
-
# Get the index of the selected tool in the list of options
|
|
74
|
-
selected_tool_index = next(
|
|
75
|
-
(
|
|
76
|
-
ind
|
|
77
|
-
for ind, tool in enumerate(build_config["tool_name"]["options"])
|
|
78
|
-
if tool["name"] == field_value
|
|
79
|
-
or ("validate" in field_value and tool["name"] == field_value["validate"])
|
|
80
|
-
),
|
|
81
|
-
None,
|
|
82
|
-
)
|
|
83
|
-
|
|
84
|
-
# Set the link to be the text 'validated'
|
|
85
|
-
build_config["tool_name"]["options"][selected_tool_index]["link"] = "validated"
|
|
86
|
-
|
|
87
|
-
# Set the helper text and helper text metadata field of the actions now
|
|
88
|
-
build_config["actions"]["helper_text"] = ""
|
|
89
|
-
build_config["actions"]["helper_text_metadata"] = {"icon": "Check", "variant": "success"}
|
|
90
|
-
|
|
91
|
-
try:
|
|
92
|
-
composio = self._build_wrapper()
|
|
93
|
-
current_tool = tool_name or getattr(self, "tool_name", None)
|
|
94
|
-
if not current_tool:
|
|
95
|
-
self.log("No tool name available for validate_tool")
|
|
96
|
-
return build_config
|
|
97
|
-
|
|
98
|
-
toolkit_slug = current_tool.lower()
|
|
99
|
-
|
|
100
|
-
tools = composio.tools.get(user_id=self.entity_id, toolkits=[toolkit_slug])
|
|
101
|
-
|
|
102
|
-
authenticated_actions = []
|
|
103
|
-
for tool in tools:
|
|
104
|
-
if hasattr(tool, "name"):
|
|
105
|
-
action_name = tool.name
|
|
106
|
-
display_name = action_name.replace("_", " ").title()
|
|
107
|
-
authenticated_actions.append({"name": action_name, "display_name": display_name})
|
|
108
|
-
except (ValueError, ConnectionError, AttributeError) as e:
|
|
109
|
-
self.log(f"Error getting actions for {current_tool or 'unknown tool'}: {e}")
|
|
110
|
-
authenticated_actions = []
|
|
111
|
-
|
|
112
|
-
build_config["actions"]["options"] = [
|
|
113
|
-
{
|
|
114
|
-
"name": action["name"],
|
|
115
|
-
}
|
|
116
|
-
for action in authenticated_actions
|
|
117
|
-
]
|
|
118
|
-
|
|
119
|
-
build_config["actions"]["show"] = True
|
|
120
|
-
return build_config
|
|
121
|
-
|
|
122
|
-
def update_build_config(self, build_config: dict, field_value: Any, field_name: str | None = None) -> dict:
|
|
123
|
-
if field_name == "api_key" or (self.api_key and not build_config["tool_name"]["options"]):
|
|
124
|
-
if field_name == "api_key" and not field_value:
|
|
125
|
-
build_config["tool_name"]["options"] = []
|
|
126
|
-
build_config["tool_name"]["value"] = ""
|
|
127
|
-
|
|
128
|
-
# Reset the list of actions
|
|
129
|
-
build_config["actions"]["show"] = False
|
|
130
|
-
build_config["actions"]["options"] = []
|
|
131
|
-
build_config["actions"]["value"] = ""
|
|
132
|
-
|
|
133
|
-
return build_config
|
|
134
|
-
|
|
135
|
-
# Build the list of available tools
|
|
136
|
-
build_config["tool_name"]["options"] = [
|
|
137
|
-
{
|
|
138
|
-
"name": app.title(),
|
|
139
|
-
"icon": app,
|
|
140
|
-
"link": (
|
|
141
|
-
build_config["tool_name"]["options"][ind]["link"]
|
|
142
|
-
if build_config["tool_name"]["options"]
|
|
143
|
-
else ""
|
|
144
|
-
),
|
|
145
|
-
}
|
|
146
|
-
for ind, app in enumerate(enabled_tools)
|
|
147
|
-
]
|
|
148
|
-
|
|
149
|
-
return build_config
|
|
150
|
-
|
|
151
|
-
if field_name == "tool_name" and field_value:
|
|
152
|
-
composio = self._build_wrapper()
|
|
153
|
-
|
|
154
|
-
current_tool_name = (
|
|
155
|
-
field_value
|
|
156
|
-
if isinstance(field_value, str)
|
|
157
|
-
else field_value.get("validate")
|
|
158
|
-
if isinstance(field_value, dict) and "validate" in field_value
|
|
159
|
-
else getattr(self, "tool_name", None)
|
|
160
|
-
)
|
|
161
|
-
|
|
162
|
-
if not current_tool_name:
|
|
163
|
-
self.log("No tool name available for connection check")
|
|
164
|
-
return build_config
|
|
165
|
-
|
|
166
|
-
try:
|
|
167
|
-
toolkit_slug = current_tool_name.lower()
|
|
168
|
-
|
|
169
|
-
connection_list = composio.connected_accounts.list(
|
|
170
|
-
user_ids=[self.entity_id], toolkit_slugs=[toolkit_slug]
|
|
171
|
-
)
|
|
172
|
-
|
|
173
|
-
# Check for active connections
|
|
174
|
-
has_active_connections = False
|
|
175
|
-
if (
|
|
176
|
-
connection_list
|
|
177
|
-
and hasattr(connection_list, "items")
|
|
178
|
-
and connection_list.items
|
|
179
|
-
and isinstance(connection_list.items, list)
|
|
180
|
-
and len(connection_list.items) > 0
|
|
181
|
-
):
|
|
182
|
-
for connection in connection_list.items:
|
|
183
|
-
if getattr(connection, "status", None) == "ACTIVE":
|
|
184
|
-
has_active_connections = True
|
|
185
|
-
break
|
|
186
|
-
|
|
187
|
-
# Get the index of the selected tool in the list of options
|
|
188
|
-
selected_tool_index = next(
|
|
189
|
-
(
|
|
190
|
-
ind
|
|
191
|
-
for ind, tool in enumerate(build_config["tool_name"]["options"])
|
|
192
|
-
if tool["name"] == current_tool_name.title()
|
|
193
|
-
),
|
|
194
|
-
None,
|
|
195
|
-
)
|
|
196
|
-
|
|
197
|
-
if has_active_connections:
|
|
198
|
-
# User has active connection
|
|
199
|
-
if selected_tool_index is not None:
|
|
200
|
-
build_config["tool_name"]["options"][selected_tool_index]["link"] = "validated"
|
|
201
|
-
|
|
202
|
-
# If it's a validation request, validate the tool
|
|
203
|
-
if (isinstance(field_value, dict) and "validate" in field_value) or isinstance(field_value, str):
|
|
204
|
-
return self.validate_tool(build_config, field_value, current_tool_name)
|
|
205
|
-
else:
|
|
206
|
-
# No active connection - create OAuth connection
|
|
207
|
-
try:
|
|
208
|
-
connection = composio.toolkits.authorize(user_id=self.entity_id, toolkit=toolkit_slug)
|
|
209
|
-
redirect_url = getattr(connection, "redirect_url", None)
|
|
210
|
-
|
|
211
|
-
if redirect_url and redirect_url.startswith(("http://", "https://")):
|
|
212
|
-
if selected_tool_index is not None:
|
|
213
|
-
build_config["tool_name"]["options"][selected_tool_index]["link"] = redirect_url
|
|
214
|
-
elif selected_tool_index is not None:
|
|
215
|
-
build_config["tool_name"]["options"][selected_tool_index]["link"] = "error"
|
|
216
|
-
except (ValueError, ConnectionError, AttributeError) as e:
|
|
217
|
-
self.log(f"Error creating OAuth connection: {e}")
|
|
218
|
-
if selected_tool_index is not None:
|
|
219
|
-
build_config["tool_name"]["options"][selected_tool_index]["link"] = "error"
|
|
220
|
-
|
|
221
|
-
except (ValueError, ConnectionError, AttributeError) as e:
|
|
222
|
-
self.log(f"Error checking connection status: {e}")
|
|
223
|
-
|
|
224
|
-
return build_config
|
|
225
|
-
|
|
226
|
-
def build_tool(self) -> Sequence[Tool]:
|
|
227
|
-
"""Build Composio tools based on selected actions.
|
|
228
|
-
|
|
229
|
-
Returns:
|
|
230
|
-
Sequence[Tool]: List of configured Composio tools.
|
|
231
|
-
"""
|
|
232
|
-
composio = self._build_wrapper()
|
|
233
|
-
action_names = [action["name"] for action in self.actions]
|
|
234
|
-
|
|
235
|
-
# Get toolkits from action names
|
|
236
|
-
toolkits = set()
|
|
237
|
-
for action_name in action_names:
|
|
238
|
-
if "_" in action_name:
|
|
239
|
-
toolkit = action_name.split("_")[0].lower()
|
|
240
|
-
toolkits.add(toolkit)
|
|
241
|
-
|
|
242
|
-
if not toolkits:
|
|
243
|
-
return []
|
|
244
|
-
|
|
245
|
-
# Get all tools for the relevant toolkits
|
|
246
|
-
all_tools = composio.tools.get(user_id=self.entity_id, toolkits=list(toolkits))
|
|
247
|
-
|
|
248
|
-
# Filter to only the specific actions we want using list comprehension
|
|
249
|
-
return [tool for tool in all_tools if hasattr(tool, "name") and tool.name in action_names]
|
|
250
|
-
|
|
251
|
-
def _build_wrapper(self) -> Composio:
|
|
252
|
-
"""Build the Composio wrapper using new SDK.
|
|
253
|
-
|
|
254
|
-
Returns:
|
|
255
|
-
Composio: The initialized Composio client.
|
|
256
|
-
|
|
257
|
-
Raises:
|
|
258
|
-
ValueError: If the API key is not found or invalid.
|
|
259
|
-
"""
|
|
260
|
-
try:
|
|
261
|
-
if not self.api_key:
|
|
262
|
-
msg = "Composio API Key is required"
|
|
263
|
-
raise ValueError(msg)
|
|
264
|
-
return Composio(api_key=self.api_key, provider=LangchainProvider())
|
|
265
|
-
except ValueError as e:
|
|
266
|
-
self.log(f"Error building Composio wrapper: {e}")
|
|
267
|
-
msg = "Please provide a valid Composio API Key in the component settings"
|
|
268
|
-
raise ValueError(msg) from e
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
from langflow.base.composio.composio_base import ComposioBaseComponent
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
class ComposioDropboxAPIComponent(ComposioBaseComponent):
|
|
5
|
-
display_name: str = "Dropbox"
|
|
6
|
-
icon = "Dropbox"
|
|
7
|
-
documentation: str = "https://docs.composio.dev"
|
|
8
|
-
app_name = "dropbox"
|
|
9
|
-
|
|
10
|
-
def set_default_tools(self):
|
|
11
|
-
"""Set the default tools for Dropbox component."""
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
from langflow.base.composio.composio_base import ComposioBaseComponent
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
class ComposioGitHubAPIComponent(ComposioBaseComponent):
|
|
5
|
-
display_name: str = "GitHub"
|
|
6
|
-
icon = "Github"
|
|
7
|
-
documentation: str = "https://docs.composio.dev"
|
|
8
|
-
app_name = "github"
|
|
9
|
-
|
|
10
|
-
def set_default_tools(self):
|
|
11
|
-
"""Set the default tools for GitHub component."""
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
from langflow.base.composio.composio_base import ComposioBaseComponent
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
class ComposioGmailAPIComponent(ComposioBaseComponent):
|
|
5
|
-
display_name: str = "Gmail"
|
|
6
|
-
icon = "Google"
|
|
7
|
-
documentation: str = "https://docs.composio.dev"
|
|
8
|
-
app_name = "gmail"
|
|
9
|
-
|
|
10
|
-
def __init__(self, **kwargs):
|
|
11
|
-
super().__init__(**kwargs)
|
|
12
|
-
self.post_processors = {
|
|
13
|
-
"GMAIL_SEND_EMAIL": self._process_send_email_response,
|
|
14
|
-
"GMAIL_FETCH_EMAILS": self._process_fetch_emails_response,
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
def _process_send_email_response(self, raw_data):
|
|
18
|
-
"""Post-processor for GMAIL_SEND_EMAIL action."""
|
|
19
|
-
if isinstance(raw_data, dict):
|
|
20
|
-
response_data = raw_data.get("response_data", raw_data)
|
|
21
|
-
|
|
22
|
-
return {
|
|
23
|
-
"message_id": response_data.get("id"),
|
|
24
|
-
"thread_id": response_data.get("threadId"),
|
|
25
|
-
"label_ids": response_data.get("labelIds", []),
|
|
26
|
-
}
|
|
27
|
-
return raw_data
|
|
28
|
-
|
|
29
|
-
def _process_fetch_emails_response(self, raw_data):
|
|
30
|
-
"""Post-processor for GMAIL_FETCH_EMAILS action."""
|
|
31
|
-
if isinstance(raw_data, dict):
|
|
32
|
-
messages = raw_data.get("messages", [])
|
|
33
|
-
if messages:
|
|
34
|
-
return messages
|
|
35
|
-
return raw_data
|
|
36
|
-
|
|
37
|
-
def set_default_tools(self):
|
|
38
|
-
"""Set the default tools for Gmail component."""
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
from langflow.base.composio.composio_base import ComposioBaseComponent
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
class ComposioGoogleCalendarAPIComponent(ComposioBaseComponent):
|
|
5
|
-
display_name: str = "Google Calendar"
|
|
6
|
-
icon = "Googlecalendar"
|
|
7
|
-
documentation: str = "https://docs.composio.dev"
|
|
8
|
-
app_name = "googlecalendar"
|
|
9
|
-
|
|
10
|
-
def set_default_tools(self):
|
|
11
|
-
"""Set the default tools for Google Calendar component."""
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
from langflow.base.composio.composio_base import ComposioBaseComponent
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
class ComposioGooglemeetAPIComponent(ComposioBaseComponent):
|
|
5
|
-
display_name: str = "Google Meet"
|
|
6
|
-
icon = "Googlemeet"
|
|
7
|
-
documentation: str = "https://docs.composio.dev"
|
|
8
|
-
app_name = "googlemeet"
|
|
9
|
-
|
|
10
|
-
def set_default_tools(self):
|
|
11
|
-
"""Set the default tools for Google Calendar component."""
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
from base.langflow.base.composio.composio_base import ComposioBaseComponent
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
class ComposioGoogleTasksAPIComponent(ComposioBaseComponent):
|
|
5
|
-
display_name: str = "Google Tasks"
|
|
6
|
-
icon = "GoogleTasks"
|
|
7
|
-
documentation: str = "https://docs.composio.dev"
|
|
8
|
-
app_name = "googletasks"
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
from langflow.base.composio.composio_base import ComposioBaseComponent
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
class ComposioLinearAPIComponent(ComposioBaseComponent):
|
|
5
|
-
display_name: str = "Linear"
|
|
6
|
-
icon = "Linear"
|
|
7
|
-
documentation: str = "https://docs.composio.dev"
|
|
8
|
-
app_name = "linear"
|
|
9
|
-
|
|
10
|
-
def set_default_tools(self):
|
|
11
|
-
"""Set the default tools for Linear component."""
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
from langflow.base.composio.composio_base import ComposioBaseComponent
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
class ComposioOutlookAPIComponent(ComposioBaseComponent):
|
|
5
|
-
display_name: str = "Outlook"
|
|
6
|
-
icon = "Outlook"
|
|
7
|
-
documentation: str = "https://docs.composio.dev"
|
|
8
|
-
app_name = "outlook"
|
|
9
|
-
|
|
10
|
-
def set_default_tools(self):
|
|
11
|
-
"""Set the default tools for Gmail component."""
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
from langflow.base.composio.composio_base import ComposioBaseComponent
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
class ComposioRedditAPIComponent(ComposioBaseComponent):
|
|
5
|
-
display_name: str = "Reddit"
|
|
6
|
-
icon = "Reddit"
|
|
7
|
-
documentation: str = "https://docs.composio.dev"
|
|
8
|
-
app_name = "reddit"
|
|
9
|
-
|
|
10
|
-
def set_default_tools(self):
|
|
11
|
-
"""Set the default tools for Reddit component."""
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
from langflow.base.composio.composio_base import ComposioBaseComponent
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
class ComposioSlackAPIComponent(ComposioBaseComponent):
|
|
5
|
-
display_name: str = "Slack"
|
|
6
|
-
icon = "Slack"
|
|
7
|
-
documentation: str = "https://docs.composio.dev"
|
|
8
|
-
app_name = "slack"
|
|
9
|
-
|
|
10
|
-
def set_default_tools(self):
|
|
11
|
-
"""Set the default tools for Slack component."""
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
from langflow.base.composio.composio_base import ComposioBaseComponent
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
class ComposioSlackbotAPIComponent(ComposioBaseComponent):
|
|
5
|
-
display_name: str = "Slackbot"
|
|
6
|
-
icon = "Slack"
|
|
7
|
-
documentation: str = "https://docs.composio.dev"
|
|
8
|
-
app_name = "slackbot"
|
|
9
|
-
|
|
10
|
-
def set_default_tools(self):
|
|
11
|
-
"""Set the default tools for Slackbot component."""
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
from langflow.base.composio.composio_base import ComposioBaseComponent
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
class ComposioSupabaseAPIComponent(ComposioBaseComponent):
|
|
5
|
-
display_name: str = "Supabase"
|
|
6
|
-
icon = "Supabase"
|
|
7
|
-
documentation: str = "https://docs.composio.dev"
|
|
8
|
-
app_name = "supabase"
|
|
9
|
-
|
|
10
|
-
def set_default_tools(self):
|
|
11
|
-
"""Set the default tools for Supabase component."""
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
from langflow.base.composio.composio_base import ComposioBaseComponent
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
class ComposioTodoistAPIComponent(ComposioBaseComponent):
|
|
5
|
-
display_name: str = "Todoist"
|
|
6
|
-
icon = "Todoist"
|
|
7
|
-
documentation: str = "https://docs.composio.dev"
|
|
8
|
-
app_name = "todoist"
|
|
9
|
-
|
|
10
|
-
def set_default_tools(self):
|
|
11
|
-
"""Set the default tools for Todoist component."""
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
from langflow.base.composio.composio_base import ComposioBaseComponent
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
class ComposioYoutubeAPIComponent(ComposioBaseComponent):
|
|
5
|
-
display_name: str = "Youtube"
|
|
6
|
-
icon = "Youtube"
|
|
7
|
-
documentation: str = "https://docs.composio.dev"
|
|
8
|
-
app_name = "youtube"
|
|
9
|
-
|
|
10
|
-
def set_default_tools(self):
|
|
11
|
-
"""Set the default tools for Youtube component."""
|
|
@@ -1,84 +0,0 @@
|
|
|
1
|
-
from langchain_community.document_loaders import ConfluenceLoader
|
|
2
|
-
from langchain_community.document_loaders.confluence import ContentFormat
|
|
3
|
-
|
|
4
|
-
from langflow.custom.custom_component.component import Component
|
|
5
|
-
from langflow.io import BoolInput, DropdownInput, IntInput, Output, SecretStrInput, StrInput
|
|
6
|
-
from langflow.schema.data import Data
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
class ConfluenceComponent(Component):
|
|
10
|
-
display_name = "Confluence"
|
|
11
|
-
description = "Confluence wiki collaboration platform"
|
|
12
|
-
documentation = "https://python.langchain.com/v0.2/docs/integrations/document_loaders/confluence/"
|
|
13
|
-
trace_type = "tool"
|
|
14
|
-
icon = "Confluence"
|
|
15
|
-
name = "Confluence"
|
|
16
|
-
|
|
17
|
-
inputs = [
|
|
18
|
-
StrInput(
|
|
19
|
-
name="url",
|
|
20
|
-
display_name="Site URL",
|
|
21
|
-
required=True,
|
|
22
|
-
info="The base URL of the Confluence Space. Example: https://<company>.atlassian.net/wiki.",
|
|
23
|
-
),
|
|
24
|
-
StrInput(
|
|
25
|
-
name="username",
|
|
26
|
-
display_name="Username",
|
|
27
|
-
required=True,
|
|
28
|
-
info="Atlassian User E-mail. Example: email@example.com",
|
|
29
|
-
),
|
|
30
|
-
SecretStrInput(
|
|
31
|
-
name="api_key",
|
|
32
|
-
display_name="API Key",
|
|
33
|
-
required=True,
|
|
34
|
-
info="Atlassian Key. Create at: https://id.atlassian.com/manage-profile/security/api-tokens",
|
|
35
|
-
),
|
|
36
|
-
StrInput(name="space_key", display_name="Space Key", required=True),
|
|
37
|
-
BoolInput(name="cloud", display_name="Use Cloud?", required=True, value=True, advanced=True),
|
|
38
|
-
DropdownInput(
|
|
39
|
-
name="content_format",
|
|
40
|
-
display_name="Content Format",
|
|
41
|
-
options=[
|
|
42
|
-
ContentFormat.EDITOR.value,
|
|
43
|
-
ContentFormat.EXPORT_VIEW.value,
|
|
44
|
-
ContentFormat.ANONYMOUS_EXPORT_VIEW.value,
|
|
45
|
-
ContentFormat.STORAGE.value,
|
|
46
|
-
ContentFormat.VIEW.value,
|
|
47
|
-
],
|
|
48
|
-
value=ContentFormat.STORAGE.value,
|
|
49
|
-
required=True,
|
|
50
|
-
advanced=True,
|
|
51
|
-
info="Specify content format, defaults to ContentFormat.STORAGE",
|
|
52
|
-
),
|
|
53
|
-
IntInput(
|
|
54
|
-
name="max_pages",
|
|
55
|
-
display_name="Max Pages",
|
|
56
|
-
required=False,
|
|
57
|
-
value=1000,
|
|
58
|
-
advanced=True,
|
|
59
|
-
info="Maximum number of pages to retrieve in total, defaults 1000",
|
|
60
|
-
),
|
|
61
|
-
]
|
|
62
|
-
|
|
63
|
-
outputs = [
|
|
64
|
-
Output(name="data", display_name="Data", method="load_documents"),
|
|
65
|
-
]
|
|
66
|
-
|
|
67
|
-
def build_confluence(self) -> ConfluenceLoader:
|
|
68
|
-
content_format = ContentFormat(self.content_format)
|
|
69
|
-
return ConfluenceLoader(
|
|
70
|
-
url=self.url,
|
|
71
|
-
username=self.username,
|
|
72
|
-
api_key=self.api_key,
|
|
73
|
-
cloud=self.cloud,
|
|
74
|
-
space_key=self.space_key,
|
|
75
|
-
content_format=content_format,
|
|
76
|
-
max_pages=self.max_pages,
|
|
77
|
-
)
|
|
78
|
-
|
|
79
|
-
def load_documents(self) -> list[Data]:
|
|
80
|
-
confluence = self.build_confluence()
|
|
81
|
-
documents = confluence.load()
|
|
82
|
-
data = [Data.from_document(doc) for doc in documents] # Using the from_document method of Data
|
|
83
|
-
self.status = data
|
|
84
|
-
return data
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
from __future__ import annotations
|
|
2
|
-
|
|
3
|
-
from typing import TYPE_CHECKING, Any
|
|
4
|
-
|
|
5
|
-
from langflow.components._importing import import_mod
|
|
6
|
-
|
|
7
|
-
if TYPE_CHECKING:
|
|
8
|
-
from .couchbase import CouchbaseVectorStoreComponent
|
|
9
|
-
|
|
10
|
-
_dynamic_imports = {
|
|
11
|
-
"CouchbaseVectorStoreComponent": "couchbase",
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
__all__ = [
|
|
15
|
-
"CouchbaseVectorStoreComponent",
|
|
16
|
-
]
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
def __getattr__(attr_name: str) -> Any:
|
|
20
|
-
"""Lazily import Couchbase components on attribute access."""
|
|
21
|
-
if attr_name not in _dynamic_imports:
|
|
22
|
-
msg = f"module '{__name__}' has no attribute '{attr_name}'"
|
|
23
|
-
raise AttributeError(msg)
|
|
24
|
-
try:
|
|
25
|
-
result = import_mod(attr_name, _dynamic_imports[attr_name], __spec__.parent)
|
|
26
|
-
except (ModuleNotFoundError, ImportError, AttributeError) as e:
|
|
27
|
-
msg = f"Could not import '{attr_name}' from '{__name__}': {e}"
|
|
28
|
-
raise AttributeError(msg) from e
|
|
29
|
-
globals()[attr_name] = result
|
|
30
|
-
return result
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
def __dir__() -> list[str]:
|
|
34
|
-
return list(__all__)
|