langflow-base-nightly 0.5.1.dev23__py3-none-any.whl → 0.5.1.dev24__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (172) hide show
  1. langflow/api/v1/mcp_projects.py +27 -0
  2. langflow/api/v1/mcp_utils.py +8 -0
  3. langflow/components/knowledge_bases/ingestion.py +1 -1
  4. langflow/frontend/assets/{SlackIcon-v88osOTA.js → SlackIcon-DZYU5DLF.js} +1 -1
  5. langflow/frontend/assets/{Wikipedia-DD_S2k00.js → Wikipedia-CFZRxrw4.js} +1 -1
  6. langflow/frontend/assets/{Wolfram-EO2C5noN.js → Wolfram-CwdeNV9C.js} +1 -1
  7. langflow/frontend/assets/{index-C7ZJ_Z6f.js → index-1ThcPdLk.js} +1 -1
  8. langflow/frontend/assets/{index-BtFl7fER.js → index-6nSjvsD3.js} +1 -1
  9. langflow/frontend/assets/index-8FFrFgJV.js +1 -0
  10. langflow/frontend/assets/{index-Dc6qVuSa.js → index-9epvqQwC.js} +1 -1
  11. langflow/frontend/assets/{index-Dz2GTphU.js → index-AWudUNsn.js} +1 -1
  12. langflow/frontend/assets/{index-DQKOH_9K.js → index-B-AocSNm.js} +1 -1
  13. langflow/frontend/assets/{index-DYKZHhpU.js → index-B-_X6AqA.js} +1 -1
  14. langflow/frontend/assets/{index-BSN73YP8.js → index-B-hNnXsc.js} +1 -1
  15. langflow/frontend/assets/{index-DvCPWs2_.js → index-B5305pSA.js} +1 -1
  16. langflow/frontend/assets/{index-DSCtl3a5.js → index-B6VOd_3Q.js} +1 -1
  17. langflow/frontend/assets/{index-Hm5-4ItD.js → index-B6e1_nj-.js} +1 -1
  18. langflow/frontend/assets/{index-CfTbTHEv.js → index-B73YirCs.js} +1 -1
  19. langflow/frontend/assets/{index-e9MFKUCo.js → index-BF5NsuIQ.js} +1 -1
  20. langflow/frontend/assets/{index-BYIsg-Eh.js → index-BF8x6a5u.js} +1 -1
  21. langflow/frontend/assets/{index-GAQ0Mk2M.js → index-BFqc71lF.js} +1 -1
  22. langflow/frontend/assets/{index-D6MuXC4L.js → index-BGrQoe23.js} +1 -1
  23. langflow/frontend/assets/{index-7v-bzlzf.js → index-BLqPvhaE.js} +1 -1
  24. langflow/frontend/assets/{index-CJmMEa6d.js → index-BQUN5KC9.js} +1 -1
  25. langflow/frontend/assets/{index-DMAkJ_qX.js → index-BTrFqf3c.js} +1 -1
  26. langflow/frontend/assets/{index-lE3oSjJi.js → index-BVGGg6d6.js} +1 -1
  27. langflow/frontend/assets/{index-CnpLg4zX.js → index-B_A1jccc.js} +1 -1
  28. langflow/frontend/assets/{index-CssADaak.js → index-B_L1lw6n.js} +1 -1
  29. langflow/frontend/assets/{index-DBhjpWkf.js → index-Ba3V_Rfe.js} +1 -1
  30. langflow/frontend/assets/{index-C5XUG_gr.js → index-BaFh6ol1.js} +1 -1
  31. langflow/frontend/assets/index-BcFzjfOS.js +1 -0
  32. langflow/frontend/assets/{index-BqX1H6yK.js → index-BelTKOOS.js} +1 -1
  33. langflow/frontend/assets/{index-IT67FzsK.js → index-BiOvj3db.js} +1 -1
  34. langflow/frontend/assets/{index-BU8R8jRn.js → index-BiY5rUo6.js} +1 -1
  35. langflow/frontend/assets/{index-zcGjo9fx.js → index-BiawfAby.js} +1 -1
  36. langflow/frontend/assets/{index-Dlj_2mMs.js → index-BisiVeuZ.js} +1 -1
  37. langflow/frontend/assets/{index-IuR_FEdB.js → index-BjjlH85w.js} +1 -1
  38. langflow/frontend/assets/{index-C3Vwhx0t.js → index-BkWWP-Ml.js} +1 -1
  39. langflow/frontend/assets/{index-DCTRSkEW.js → index-BqGTtzDC.js} +1 -1
  40. langflow/frontend/assets/{index-DT-PspE-.js → index-Bqnegt70.js} +1 -1
  41. langflow/frontend/assets/{index-TVvsp-xh.js → index-Bs0N3c5i.js} +1 -1
  42. langflow/frontend/assets/{index-Ba1UOZ9A.js → index-BtOZ3DZ7.js} +1 -1
  43. langflow/frontend/assets/{index-Ba9tKRQg.js → index-Bt_2nhTJ.js} +1 -1
  44. langflow/frontend/assets/index-BvFxc1do.js +1 -0
  45. langflow/frontend/assets/{index-BbuGqvAx.js → index-BvHtUjgd.js} +1 -1
  46. langflow/frontend/assets/{index-DCCRJzcY.js → index-BxzfihZb.js} +1 -1
  47. langflow/frontend/assets/{index-DGtl2vMw.js → index-BzEpSWN1.js} +1 -1
  48. langflow/frontend/assets/{index-CIGmPP0H.js → index-C1QG5PKr.js} +1 -1
  49. langflow/frontend/assets/{index-DHVdkrni.js → index-C3oNlze1.js} +1 -1
  50. langflow/frontend/assets/{index-Bjzy_HZB.js → index-C988Yv4e.js} +1 -1
  51. langflow/frontend/assets/{index-CcJtOz-Z.js → index-CB7uykaz.js} +1 -1
  52. langflow/frontend/assets/{index-DmGJUrEp.js → index-CB8xPtty.js} +1 -1
  53. langflow/frontend/assets/{index-DNT_TUTa.js → index-CFh_62yL.js} +1 -1
  54. langflow/frontend/assets/{index-LlvshmVz.js → index-CLn4oDa9.js} +1 -1
  55. langflow/frontend/assets/{index-Fvd524_c.js → index-CMCNCQxs.js} +1 -1
  56. langflow/frontend/assets/index-CN0N3N2m.js +1 -0
  57. langflow/frontend/assets/{index-CrHf2Ic1.js → index-CNAwfpC3.js} +1 -1
  58. langflow/frontend/assets/{index-Bbfaw8ca.js → index-CP_zAFZg.js} +1 -1
  59. langflow/frontend/assets/{index-DJBWwjgl.js → index-CQkfZCDJ.js} +1 -1
  60. langflow/frontend/assets/{index-pBO0SZLD.js → index-CRNpOQM-.js} +6 -6
  61. langflow/frontend/assets/{index-DMEvEQI5.js → index-CTQxw4w-.js} +1 -1
  62. langflow/frontend/assets/{index-BV6yx8ey.js → index-CU9XgQEl.js} +1 -1
  63. langflow/frontend/assets/index-CV33ZbiM.js +1 -0
  64. langflow/frontend/assets/index-CWmmsEOM.js +1 -0
  65. langflow/frontend/assets/{index-DxkJactf.js → index-CZdZkSVL.js} +1 -1
  66. langflow/frontend/assets/{index-LwKh3I_W.js → index-C_0G3-yc.js} +1 -1
  67. langflow/frontend/assets/{index-Ca_Pw_Dn.js → index-C_i7NZkC.js} +1 -1
  68. langflow/frontend/assets/{index-sfX3aWyp.js → index-C_j_KuF0.js} +1 -1
  69. langflow/frontend/assets/{index-Bp7Mty2H.js → index-CaM5t6x8.js} +1 -1
  70. langflow/frontend/assets/{index-D8w9zvIF.js → index-Cc9flUt9.js} +1 -1
  71. langflow/frontend/assets/{index-DTpbH-p8.js → index-CcK-JwLO.js} +1 -1
  72. langflow/frontend/assets/{index-BwY98u8n.js → index-CfttLx6n.js} +1 -1
  73. langflow/frontend/assets/index-Ch6gZEE0.js +1 -0
  74. langflow/frontend/assets/{index-BGwqQwlh.js → index-Ch92JRJd.js} +1 -1
  75. langflow/frontend/assets/{index-DkYuicnC.js → index-Cj900szt.js} +1 -1
  76. langflow/frontend/assets/{index-yfcsaHS6.js → index-CjlpkvuB.js} +1 -1
  77. langflow/frontend/assets/{index-DDdz-Xcl.js → index-ClRoY-FX.js} +1 -1
  78. langflow/frontend/assets/{index-krPr8f2F.js → index-ClT_eNbt.js} +1 -1
  79. langflow/frontend/assets/{index-Cpao2omG.js → index-CqoTzjmQ.js} +1 -1
  80. langflow/frontend/assets/{index-BvX993Sv.js → index-CuGL_G3M.js} +1 -1
  81. langflow/frontend/assets/{index-DWeL4US_.js → index-CvDh_MxU.js} +1 -1
  82. langflow/frontend/assets/{index-C6ouLG9o.js → index-Cv_uLHbT.js} +1 -1
  83. langflow/frontend/assets/{index-CL_vu6ut.js → index-CzYpL0rF.js} +1 -1
  84. langflow/frontend/assets/{index-COf3UnBn.js → index-D3h9VCeP.js} +1 -1
  85. langflow/frontend/assets/{index-BqtBAJAN.js → index-D5yAgkMT.js} +1 -1
  86. langflow/frontend/assets/{index-a-YclEbW.js → index-D6aP-HbR.js} +1 -1
  87. langflow/frontend/assets/{index-Dn6hpCAZ.js → index-D7wIj7if.js} +1 -1
  88. langflow/frontend/assets/index-DBURQZcY.js +1 -0
  89. langflow/frontend/assets/{index-C-RIJAOS.js → index-DCc1o5UV.js} +1 -1
  90. langflow/frontend/assets/{index-RwpaHIAH.js → index-DD7wrvCZ.js} +1 -1
  91. langflow/frontend/assets/{index-B8ZHP8g2.js → index-DDefmkcH.js} +1 -1
  92. langflow/frontend/assets/{index-DsWfdCzp.js → index-DEt2Yosx.js} +1 -1
  93. langflow/frontend/assets/{index-9CbMazbV.js → index-DGFygZiG.js} +1 -1
  94. langflow/frontend/assets/{index-N-xxmKKH.js → index-DGXmo5dY.js} +1 -1
  95. langflow/frontend/assets/{index-kveiUWuL.js → index-DGcMdgk-.js} +1 -1
  96. langflow/frontend/assets/index-DH9qsft-.js +1 -0
  97. langflow/frontend/assets/{index-TdE2u9zP.js → index-DIFbNefq.js} +1 -1
  98. langflow/frontend/assets/{index-D1xzD7uc.js → index-DJbTO27Y.js} +1 -1
  99. langflow/frontend/assets/{index-DWV6MsIq.js → index-DJfyKAdF.js} +1 -1
  100. langflow/frontend/assets/{index-Cn4gw8aE.js → index-DL0ociLP.js} +1 -1
  101. langflow/frontend/assets/{index-Jj60FQkv.js → index-DO482yY9.js} +1 -1
  102. langflow/frontend/assets/{index-DrJU8Fgb.js → index-DREfD2t5.js} +1 -1
  103. langflow/frontend/assets/{index-BBRUGsyr.js → index-DRU1HxyK.js} +1 -1
  104. langflow/frontend/assets/index-DTszUps5.js +1 -0
  105. langflow/frontend/assets/{index-ItYiij1i.js → index-DUZCKguN.js} +1 -1
  106. langflow/frontend/assets/{index-lM3UYg7F.js → index-DW9Ijttn.js} +1 -1
  107. langflow/frontend/assets/{index-nsRk3qgA.js → index-DXobKqZV.js} +1 -1
  108. langflow/frontend/assets/{index-DCUfitVj.js → index-DYCFbxqX.js} +1 -1
  109. langflow/frontend/assets/{index-CWIHsC4D.js → index-DYDidL0O.js} +1 -1
  110. langflow/frontend/assets/{index-CJxD7lyU.js → index-DYHxRtvq.js} +1 -1
  111. langflow/frontend/assets/{index-_x-NkYeW.js → index-D_Ymwwww.js} +1 -1
  112. langflow/frontend/assets/{index-B8y2e6vN.js → index-D_dwAYl5.js} +1 -1
  113. langflow/frontend/assets/{index-CFR4yJQB.js → index-DabUj1jA.js} +1 -1
  114. langflow/frontend/assets/{index-DGdMwZjG.js → index-DecWakBh.js} +1 -1
  115. langflow/frontend/assets/{index-pbZHsbuE.js → index-DeqzvhaK.js} +1 -1
  116. langflow/frontend/assets/{index-D98Gn0A6.js → index-DfbOM1ul.js} +1 -1
  117. langflow/frontend/assets/index-Do0FOydd.js +1 -0
  118. langflow/frontend/assets/{index-DSLNlm0Z.js → index-DpwTzqHi.js} +1 -1
  119. langflow/frontend/assets/{index-BfjZmOnH.js → index-DqEmC8BV.js} +1 -1
  120. langflow/frontend/assets/{index-xQz-VJ0-.js → index-DqKGFhEI.js} +1 -1
  121. langflow/frontend/assets/{index-DZyQHiMR.js → index-DsQg__4c.js} +1 -1
  122. langflow/frontend/assets/{index-CrV0uIjp.js → index-DsUqmyjC.js} +1 -1
  123. langflow/frontend/assets/{index-BvgQ2vzM.js → index-DtMt4p72.js} +1 -1
  124. langflow/frontend/assets/{index-BeoXu1YX.js → index-DujGS1OO.js} +1 -1
  125. langflow/frontend/assets/{index-1Gv1mfvk.js → index-DvseFYnA.js} +1 -1
  126. langflow/frontend/assets/{index-CyeWD2dh.js → index-DzM6iZXN.js} +1 -1
  127. langflow/frontend/assets/{index-CtJdNLy9.js → index-DzyU6nkP.js} +1 -1
  128. langflow/frontend/assets/{index-Dw71ufW4.js → index-EAjlelts.js} +1 -1
  129. langflow/frontend/assets/{index-CqoxM01j.js → index-ImRPHwVH.js} +1 -1
  130. langflow/frontend/assets/{index-BofEkpYB.js → index-O_Asm0Qg.js} +1 -1
  131. langflow/frontend/assets/{index-ChoxDAgX.js → index-QKyHt7M3.js} +1 -1
  132. langflow/frontend/assets/{index-CVDzych0.js → index-Qk4Jhzzx.js} +1 -1
  133. langflow/frontend/assets/{index-BIq-k-FG.js → index-Z91qd7e0.js} +1 -1
  134. langflow/frontend/assets/{index-Bsfraj7A.js → index-b5J6zUVe.js} +1 -1
  135. langflow/frontend/assets/{index-DvPVq7OP.js → index-c1d0EApS.js} +1 -1
  136. langflow/frontend/assets/{index-DQhqqtqQ.js → index-dUVNsQ_p.js} +1 -1
  137. langflow/frontend/assets/{index-CV9650h_.js → index-eO6vfHBu.js} +1 -1
  138. langflow/frontend/assets/index-gCzEXCit.js +1 -0
  139. langflow/frontend/assets/{index-B_ksDBSQ.js → index-lQhbbctu.js} +1 -1
  140. langflow/frontend/assets/{index-Cbb3bX9e.js → index-n6FpRfSS.js} +1 -1
  141. langflow/frontend/assets/{index-DNGRoOsp.js → index-uL1cSwQV.js} +1 -1
  142. langflow/frontend/assets/{index-CCcye2rt.js → index-ueLRdQBW.js} +1 -1
  143. langflow/frontend/assets/{index-DRM7KKnG.js → index-v5Q73kmo.js} +1 -1
  144. langflow/frontend/assets/{index-C1K6A38P.js → index-w9oSsyPP.js} +1 -1
  145. langflow/frontend/assets/{index-CCOGIwGY.js → index-xRpB6v7Q.js} +1 -1
  146. langflow/frontend/assets/{index-CXCnFZ0L.js → index-xVVGl0zB.js} +1 -1
  147. langflow/frontend/assets/lazyIconImports-DCOuBCys.js +2 -0
  148. langflow/frontend/assets/{use-post-add-user-w3vpKSOB.js → use-post-add-user-xwrNqlN4.js} +1 -1
  149. langflow/frontend/index.html +1 -1
  150. langflow/initial_setup/starter_projects/Instagram Copywriter.json +2 -2
  151. langflow/initial_setup/starter_projects/Invoice Summarizer.json +2 -2
  152. langflow/initial_setup/starter_projects/Knowledge Ingestion.json +5 -5
  153. langflow/initial_setup/starter_projects/Knowledge Retrieval.json +5 -5
  154. langflow/initial_setup/starter_projects/Market Research.json +2 -2
  155. langflow/initial_setup/starter_projects/News Aggregator.json +2 -2
  156. langflow/initial_setup/starter_projects/Nvidia Remix.json +2 -2
  157. langflow/initial_setup/starter_projects/Pok/303/251dex Agent.json" +2 -2
  158. langflow/initial_setup/starter_projects/Price Deal Finder.json +2 -2
  159. langflow/initial_setup/starter_projects/Research Agent.json +2 -2
  160. langflow/initial_setup/starter_projects/Research Translation Loop.json +20 -2
  161. langflow/initial_setup/starter_projects/SaaS Pricing.json +2 -2
  162. langflow/initial_setup/starter_projects/Search agent.json +2 -2
  163. langflow/initial_setup/starter_projects/Sequential Tasks Agents.json +6 -6
  164. langflow/initial_setup/starter_projects/Simple Agent.json +2 -2
  165. langflow/initial_setup/starter_projects/Social Media Agent.json +2 -2
  166. langflow/initial_setup/starter_projects/Travel Planning Agents.json +6 -6
  167. langflow/initial_setup/starter_projects/Youtube Analysis.json +2 -2
  168. {langflow_base_nightly-0.5.1.dev23.dist-info → langflow_base_nightly-0.5.1.dev24.dist-info}/METADATA +2 -2
  169. {langflow_base_nightly-0.5.1.dev23.dist-info → langflow_base_nightly-0.5.1.dev24.dist-info}/RECORD +171 -159
  170. langflow/frontend/assets/lazyIconImports-BjqDmNYG.js +0 -2
  171. {langflow_base_nightly-0.5.1.dev23.dist-info → langflow_base_nightly-0.5.1.dev24.dist-info}/WHEEL +0 -0
  172. {langflow_base_nightly-0.5.1.dev23.dist-info → langflow_base_nightly-0.5.1.dev24.dist-info}/entry_points.txt +0 -0
@@ -759,7 +759,7 @@
759
759
  "legacy": false,
760
760
  "lf_version": "1.4.3",
761
761
  "metadata": {
762
- "code_hash": "1a4bc0f629fe",
762
+ "code_hash": "52dda82053c0",
763
763
  "dependencies": {
764
764
  "dependencies": [
765
765
  {
@@ -936,7 +936,7 @@
936
936
  "show": true,
937
937
  "title_case": false,
938
938
  "type": "code",
939
- "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,\n MODEL_PROVIDERS_DICT,\n MODELS_METADATA,\n)\nfrom lfx.base.models.model_utils import get_model_name\nfrom lfx.components.helpers.current_date import CurrentDateComponent\nfrom lfx.components.helpers.memory import MemoryComponent\nfrom lfx.components.langchain_utilities.tool_calling import ToolCallingAgentComponent\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 TableInput\nfrom lfx.io import BoolInput, DropdownInput, IntInput, MultilineInput, Output\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\nMODEL_PROVIDERS_LIST = [\"Anthropic\", \"Google Generative AI\", \"Groq\", \"OpenAI\"]\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, \"Custom\"],\n value=\"OpenAI\",\n real_time_refresh=True,\n input_types=[],\n options_metadata=[MODELS_METADATA[key] for key in MODEL_PROVIDERS_LIST if key in MODELS_METADATA]\n + [{\"icon\": \"brain\"}],\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 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 Output(name=\"structured_response\", display_name=\"Structured Response\", method=\"json_response\", tool_mode=False),\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 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 = (CurrentDateComponent(**self.get_base_args()).to_toolkit()).pop(0)\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 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 [\"true\", \"1\", \"t\", \"y\", \"yes\"]\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 (ExceptionWithMessageError, ValueError, TypeError, RuntimeError) 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 (ExceptionWithMessageError, ValueError, TypeError, NotImplementedError, AttributeError) 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(session_id=self.graph.session_id, order=\"Ascending\", n_messages=self.n_messages)\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 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 == \"Custom\":\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 options=[*sorted(MODEL_PROVIDERS), \"Custom\"],\n value=\"Custom\",\n real_time_refresh=True,\n input_types=[\"LanguageModel\"],\n options_metadata=[MODELS_METADATA[key] for key in sorted(MODELS_METADATA.keys())]\n + [{\"icon\": \"brain\"}],\n )\n build_config.update({\"agent_llm\": custom_component.to_dict()})\n # Update input types for all fields\n build_config = self.update_input_types(build_config)\n\n # Validate required keys\n default_keys = [\n \"code\",\n \"_type\",\n \"agent_llm\",\n \"tools\",\n \"input_value\",\n \"add_current_date_tool\",\n \"system_prompt\",\n \"agent_description\",\n \"max_iterations\",\n \"handle_parsing_errors\",\n \"verbose\",\n ]\n missing_keys = [key for key in default_keys if key not in build_config]\n if missing_keys:\n msg = f\"Missing required keys in build_config: {missing_keys}\"\n raise ValueError(msg)\n if (\n isinstance(self.agent_llm, str)\n and self.agent_llm in MODEL_PROVIDERS_DICT\n and field_name in MODEL_DYNAMIC_UPDATE_FIELDS\n ):\n provider_info = MODEL_PROVIDERS_DICT.get(self.agent_llm)\n if provider_info:\n component_class = provider_info.get(\"component_class\")\n component_class = self.set_component_params(component_class)\n prefix = provider_info.get(\"prefix\")\n if component_class and hasattr(component_class, \"update_build_config\"):\n # Call each component class's update_build_config method\n # remove the prefix from the field_name\n if isinstance(field_name, str) and isinstance(prefix, str):\n field_name = field_name.replace(prefix, \"\")\n build_config = await update_component_build_config(\n component_class, build_config, field_value, \"model_name\"\n )\n return dotdict({k: v.to_dict() if hasattr(v, \"to_dict\") else v for k, v in build_config.items()})\n\n 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 tools = component_toolkit(component=self).get_tools(\n tool_name=\"Call_Agent\", tool_description=description, 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 return tools\n"
939
+ "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,\n MODEL_PROVIDERS_DICT,\n MODELS_METADATA,\n)\nfrom lfx.base.models.model_utils import get_model_name\nfrom lfx.components.helpers.current_date import CurrentDateComponent\nfrom lfx.components.helpers.memory import MemoryComponent\nfrom lfx.components.langchain_utilities.tool_calling import ToolCallingAgentComponent\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 TableInput\nfrom lfx.io import BoolInput, DropdownInput, IntInput, MultilineInput, Output\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\nMODEL_PROVIDERS_LIST = [\"Anthropic\", \"Google Generative AI\", \"Groq\", \"OpenAI\"]\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, \"Custom\"],\n value=\"OpenAI\",\n real_time_refresh=True,\n input_types=[],\n options_metadata=[MODELS_METADATA[key] for key in MODEL_PROVIDERS_LIST if key in MODELS_METADATA]\n + [{\"icon\": \"brain\"}],\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 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 Output(name=\"structured_response\", display_name=\"Structured Response\", method=\"json_response\", tool_mode=False),\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 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 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 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 [\"true\", \"1\", \"t\", \"y\", \"yes\"]\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 (ExceptionWithMessageError, ValueError, TypeError, RuntimeError) 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 (ExceptionWithMessageError, ValueError, TypeError, NotImplementedError, AttributeError) 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(session_id=self.graph.session_id, order=\"Ascending\", n_messages=self.n_messages)\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 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 == \"Custom\":\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 options=[*sorted(MODEL_PROVIDERS), \"Custom\"],\n value=\"Custom\",\n real_time_refresh=True,\n input_types=[\"LanguageModel\"],\n options_metadata=[MODELS_METADATA[key] for key in sorted(MODELS_METADATA.keys())]\n + [{\"icon\": \"brain\"}],\n )\n build_config.update({\"agent_llm\": custom_component.to_dict()})\n # Update input types for all fields\n build_config = self.update_input_types(build_config)\n\n # Validate required keys\n default_keys = [\n \"code\",\n \"_type\",\n \"agent_llm\",\n \"tools\",\n \"input_value\",\n \"add_current_date_tool\",\n \"system_prompt\",\n \"agent_description\",\n \"max_iterations\",\n \"handle_parsing_errors\",\n \"verbose\",\n ]\n missing_keys = [key for key in default_keys if key not in build_config]\n if missing_keys:\n msg = f\"Missing required keys in build_config: {missing_keys}\"\n raise ValueError(msg)\n if (\n isinstance(self.agent_llm, str)\n and self.agent_llm in MODEL_PROVIDERS_DICT\n and field_name in MODEL_DYNAMIC_UPDATE_FIELDS\n ):\n provider_info = MODEL_PROVIDERS_DICT.get(self.agent_llm)\n if provider_info:\n component_class = provider_info.get(\"component_class\")\n component_class = self.set_component_params(component_class)\n prefix = provider_info.get(\"prefix\")\n if component_class and hasattr(component_class, \"update_build_config\"):\n # Call each component class's update_build_config method\n # remove the prefix from the field_name\n if isinstance(field_name, str) and isinstance(prefix, str):\n field_name = field_name.replace(prefix, \"\")\n build_config = await update_component_build_config(\n component_class, build_config, field_value, \"model_name\"\n )\n return dotdict({k: v.to_dict() if hasattr(v, \"to_dict\") else v for k, v in build_config.items()})\n\n async def _get_tools(self) -> list[Tool]:\n component_toolkit = get_component_toolkit()\n tools_names = self._build_tools_names()\n agent_description = self.get_tool_description()\n # TODO: Agent Description Depreciated Feature to be removed\n description = f\"{agent_description}{tools_names}\"\n tools = component_toolkit(component=self).get_tools(\n tool_name=\"Call_Agent\", tool_description=description, 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 return tools\n"
940
940
  },
941
941
  "format_instructions": {
942
942
  "_input_type": "MultilineInput",
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: langflow-base-nightly
3
- Version: 0.5.1.dev23
3
+ Version: 0.5.1.dev24
4
4
  Summary: A Python package with a built-in web application
5
5
  Project-URL: Repository, https://github.com/langflow-ai/langflow
6
6
  Project-URL: Documentation, https://docs.langflow.org
@@ -45,7 +45,7 @@ Requires-Dist: langchain-experimental<1.0.0,>=0.3.4
45
45
  Requires-Dist: langchain-ibm>=0.3.8
46
46
  Requires-Dist: langchainhub~=0.1.15
47
47
  Requires-Dist: langchain~=0.3.21
48
- Requires-Dist: lfx-nightly==0.1.12.dev10
48
+ Requires-Dist: lfx-nightly==0.1.12.dev11
49
49
  Requires-Dist: loguru<1.0.0,>=0.7.1
50
50
  Requires-Dist: mcp~=1.10.1
51
51
  Requires-Dist: multiprocess<1.0.0,>=0.70.14
@@ -83,8 +83,8 @@ langflow/api/v1/folders.py,sha256=uk8O2w-8d0jGb8TIJEz3mO09Ib1yTzGhmyW54MKdpqA,32
83
83
  langflow/api/v1/knowledge_bases.py,sha256=WkKyivY54jXIVNvqOxdSIiJ2KpHWCMBoScv66eCi7ZM,16893
84
84
  langflow/api/v1/login.py,sha256=zxfGEXaYHebFk-pYP9xcp_aUbVt8qUOik3W4O_u8IRc,5826
85
85
  langflow/api/v1/mcp.py,sha256=jbTllucL8okLDuugCOCyw7Ig5CVtmzps93T5hAKIQ5U,4767
86
- langflow/api/v1/mcp_projects.py,sha256=tFdvRR2zpcFfVEPdGGKqzAD5NHPx36Ieud_xb5NNGzg,46196
87
- langflow/api/v1/mcp_utils.py,sha256=1bv5XhqXWWh-iCmR8VIL88TjUAMWjeknwCPXbkKoF1w,13785
86
+ langflow/api/v1/mcp_projects.py,sha256=4JKncFJG3F9t24m_yS9jU0lMoaZtcoQBurRbbT89HDM,47723
87
+ langflow/api/v1/mcp_utils.py,sha256=Cz-bqwH2NeBuVrQRuktkA309E49Cqri5HHmxPSjcyzg,14273
88
88
  langflow/api/v1/monitor.py,sha256=2vMUdIdzbIaFdyVvr5RrXQvNQqLNLcHnlGwzdkqkiI4,7567
89
89
  langflow/api/v1/openai_responses.py,sha256=d__52UBUVmAthSY2BYWYEQk5inSO6VYqvXeE7silJJ0,26643
90
90
  langflow/api/v1/projects.py,sha256=CkOYAkycZfYCNWCPJQr_0wlNfSvIq82EGO95lvFjBm4,13732
@@ -125,7 +125,7 @@ langflow/components/data.py,sha256=o8-TPvVqvbD2YfNtwZT56DMR4zyB3UC5_VhFD_ri0sA,1
125
125
  langflow/components/helpers.py,sha256=vYs1mcNbtTDlG_gVVJ2zRpVCBniepXC_ddzL4yat8x4,194
126
126
  langflow/components/openai.py,sha256=IKGSx0K5yOwYjKT2H3RGCtfTkGVenOwkzgjCqCbghhI,190
127
127
  langflow/components/knowledge_bases/__init__.py,sha256=QIiRJbvKRU8J_Yv5MoqA4bhbjydBjxrv0Jp4hDZ4inU,1158
128
- langflow/components/knowledge_bases/ingestion.py,sha256=nXurDo2a2NldRSQy72EuEyrNX-NCR0NxeeOee2mnAJI,27957
128
+ langflow/components/knowledge_bases/ingestion.py,sha256=xhXCCFGIziik6E2edbC-A5wYJq2u1DSC-cDN0vuch3w,27975
129
129
  langflow/components/knowledge_bases/retrieval.py,sha256=I3d5pX-rG3-jz3i9RvlQAjWOXRDvBHykWSvD_r7Ys08,10324
130
130
  langflow/components/processing/__init__.py,sha256=zaJj6Tc7IJHNIrQQqSs3aZq638ChrdzfhxUKFEhIosE,24
131
131
  langflow/components/processing/converter.py,sha256=G-HllgG8OJv2zQAYnogRt6ZVnoSJEkoss0WQlaCNIAc,146
@@ -149,144 +149,156 @@ langflow/field_typing/__init__.py,sha256=ifKFVQHhAUiIOyQNJN8fukM00tblciJdpoBR_s_
149
149
  langflow/field_typing/constants.py,sha256=tj1RzSyjjeR9pIIPn4BiWd21upletcDwayUebkjdQPo,2208
150
150
  langflow/field_typing/range_spec.py,sha256=2RQmhUyFi2GSry8uEv6_bNcT5afKink3oxk7ru4cIAw,75
151
151
  langflow/frontend/favicon.ico,sha256=nSV1ZgtoKgi_ap-_blQpAgIEAXMjaIgTCqyTLgEGohM,5768
152
- langflow/frontend/index.html,sha256=TAydSh_EEFk99ZzOfNayW6A6bY6jERA0XFGk6hlyBhk,1142
152
+ langflow/frontend/index.html,sha256=QDym9p_GBJWeaQEG2tpUqua_9ShoNpApQiOx_RmsPEQ,1142
153
153
  langflow/frontend/manifest.json,sha256=y8QWfi-j_pYTQ_WROwpwa60YNO7n_kqWOqIvo6yXKHk,768
154
154
  langflow/frontend/assets/MCPLangflow-Bzb6g6Zx.png,sha256=FTGApQzbsZPc7bon0o3mhR91S5ulVOuBrpncw8IzSVQ,619571
155
- langflow/frontend/assets/SlackIcon-v88osOTA.js,sha256=oMkbkX8p0PRSwzb7JH9mxaqAgerNepNdrdFCxy5LYeY,1393
156
- langflow/frontend/assets/Wikipedia-DD_S2k00.js,sha256=Bg6p_lgMDBCqlFn1fv6-sHojW1phgfNwG5djuaezkqU,117119
157
- langflow/frontend/assets/Wolfram-EO2C5noN.js,sha256=hHjA7XxVe87YJoddghxAhR0oZejbc0xVvLsKw8KVarE,1523
155
+ langflow/frontend/assets/SlackIcon-DZYU5DLF.js,sha256=WM7MWe6aCQptTva-0ESIiEYQpkryXdc11oUA_8CoclQ,1393
156
+ langflow/frontend/assets/Wikipedia-CFZRxrw4.js,sha256=YyFa3m7yhH1oEwcTxbp6uM5kb84gv1onieYyEwAaQ5o,117119
157
+ langflow/frontend/assets/Wolfram-CwdeNV9C.js,sha256=80PJ_VDJHfWClFsKr4Psuru26ExVQLKVipRlX2msC80,1523
158
158
  langflow/frontend/assets/__vite-browser-external-BIHI7g3E.js,sha256=glB7C7msSv-usXxAlo2DDL1tFKL_oE2JlPrxp45Y4bU,33
159
159
  langflow/frontend/assets/apify_white-uCJdZkTU.png,sha256=6yaUYBi5tTOEiHJ0cVEhTORpMQ_iWKCehMtKqIHbia0,8496
160
- langflow/frontend/assets/index-1Gv1mfvk.js,sha256=lgqOWArIKOJTApj3iPg3k4KvDiGzkF1bAQNKNYBs5BI,3058
161
- langflow/frontend/assets/index-7v-bzlzf.js,sha256=bWhX5H-Da8KxHJAviUeqcQthveJxZp73ynxLcuwOJL0,2742
162
- langflow/frontend/assets/index-9CbMazbV.js,sha256=pheW7GUkWxdVlJF9TtM8Nfj6wtkGuzgcaK4yyeCLZjM,1086
163
- langflow/frontend/assets/index-B8ZHP8g2.js,sha256=7UQ3j6GQau66brtCmd5700PTzfkLkK5gIhRptSXvEac,1016
164
- langflow/frontend/assets/index-B8y2e6vN.js,sha256=xdDO_xzK-hOLidtV32Tlk1qDIj8iBAx3a2REy4K2ID4,3214
165
- langflow/frontend/assets/index-BBRUGsyr.js,sha256=1VXxhF3iGmiIqNeL_JsrzPbkJjxXS-1LeXwddd_pV1k,448
166
- langflow/frontend/assets/index-BGwqQwlh.js,sha256=JuUF0A5Teg5elwXZXwiWlSB4OoRrWcsCG4BksEpiShE,1118
167
- langflow/frontend/assets/index-BIq-k-FG.js,sha256=LQGSEGBgKuEjqeD7lH8D3AKmxsgLgdGtlQpfPPl9LXk,844
168
- langflow/frontend/assets/index-BSN73YP8.js,sha256=uZivywqGeeB7Gmq8iMPl8MmZ4oWjTgsLBZSPwmp8kxY,4113
169
- langflow/frontend/assets/index-BU8R8jRn.js,sha256=dUEZpZCxHspmYRfR_KN2ktDxSXCd4WMfM_WqU6r8g5M,310993
170
- langflow/frontend/assets/index-BV6yx8ey.js,sha256=Msni4qOhPjlt04LPuuCIJ_7F6nPk8bOHEQwBI9NlP_U,50585
171
- langflow/frontend/assets/index-BYIsg-Eh.js,sha256=l_myOKPrl7prRtd1uCLUTlc7uUC6QUCdpnCnZ-AMjUE,5823
172
- langflow/frontend/assets/index-B_ksDBSQ.js,sha256=YP6JuSKUNBgu4I-BUAMoMw5d1M47xxhDxbA7KRpJUTU,5954
173
- langflow/frontend/assets/index-Ba1UOZ9A.js,sha256=fMPrNRYEtJCY0IQqjOmjv8dPod8IMuC0bHWeGkpHvcc,653
174
- langflow/frontend/assets/index-Ba9tKRQg.js,sha256=RQJsLiHYFoqNSpAHZuLicb9WZfKgQ8Rvu-BQ6_5uB6s,10066
175
- langflow/frontend/assets/index-Bbfaw8ca.js,sha256=wj_agVDLWv_9kYpntkWGDiQjX0urXmjnwcXEJBPB3Xk,3192
176
- langflow/frontend/assets/index-BbuGqvAx.js,sha256=PHrB1zM8k9KlaZjytvMkw9cSnDfBbwBXPaqxyOn1CW0,10403
177
- langflow/frontend/assets/index-BeoXu1YX.js,sha256=dMk5LLE_Weh7_I3-uCkqb2TOaBlueb392dnHpKRJOWs,776
178
- langflow/frontend/assets/index-BfjZmOnH.js,sha256=VkaDbVpECVC3szjQp_PkqXdbC1GNGDftFAYWgy5ay4c,2416
179
- langflow/frontend/assets/index-Bjzy_HZB.js,sha256=B3tc9EyIqun7nLvH28cfIwdyIjuvqOM-agv7z9B7kHA,16368
180
- langflow/frontend/assets/index-BofEkpYB.js,sha256=vv3JBWjtG9uJ2PnrFtTyhPy-TmUvMkq98qqD3HS5RFQ,1462
181
- langflow/frontend/assets/index-Bp7Mty2H.js,sha256=tLdm7HAkke8fd2zqOh7nkPQAE6sn7vpXlqIdM774ya4,1281
182
- langflow/frontend/assets/index-BqX1H6yK.js,sha256=LWaqMw2O_1fOIA0KNTl62aGN9kdV8TCKkEPPAe6jnGc,1468
183
- langflow/frontend/assets/index-BqtBAJAN.js,sha256=HlDE5O_9xPjMFrytr8u9bNGTaRMOba1fcYnP3w0hOZU,624
184
- langflow/frontend/assets/index-Bsfraj7A.js,sha256=aQaXXXvFMMZAh6foUxURhhvVbFk6odoAkJ1YVrpE1xc,1201
185
- langflow/frontend/assets/index-BtFl7fER.js,sha256=XhcpSL85VS6sBBGNruMx7rT9abtfitMCGyVcrTrmVtQ,12712
186
- langflow/frontend/assets/index-BvX993Sv.js,sha256=42xO3dvfnePVVd95UD6Wn8ttfjOAxNNntj_34-d5wU4,2033
187
- langflow/frontend/assets/index-BvgQ2vzM.js,sha256=GPRe28wAoAk4BBOeZ0vv38r8K7N50fJVnECVSOBbmpA,1186
188
- langflow/frontend/assets/index-BwY98u8n.js,sha256=76Hjak1Xy9hCU1YGnUvSbskVEWkao1uywV27bH5tn_8,180367
189
- langflow/frontend/assets/index-C-RIJAOS.js,sha256=dkTES131FzbEKKi8UXMcS2NimASu8G4aif5f4H5AHE8,1761
190
- langflow/frontend/assets/index-C1K6A38P.js,sha256=PUadCDkgHUPgrGX7ZsWKz6ARUG4tKTgfHqaeDPKZh68,7274
160
+ langflow/frontend/assets/index-1ThcPdLk.js,sha256=geCZwqe55Zgf3qqQsibE4n779PolTRtnq1OjZxhTFvI,376
161
+ langflow/frontend/assets/index-6nSjvsD3.js,sha256=xVEh82DvIDbS_IC_P2hbrxvE0SR6PpqysmekATarGuQ,12712
162
+ langflow/frontend/assets/index-8FFrFgJV.js,sha256=dpY6Gehk8ajnYzLLEO0-xT7pGlmhxk9GIJ1JBas0Fz4,2228
163
+ langflow/frontend/assets/index-9epvqQwC.js,sha256=l5kFsxkJBBkrl9EcRBQA8BKfE3fZrEdWx_u7lsGWhbg,160399
164
+ langflow/frontend/assets/index-AWudUNsn.js,sha256=rDk-BSiU11oJCiOOV8kIRxvd-xcuds-riK7fUXSY5ys,2912
165
+ langflow/frontend/assets/index-B-AocSNm.js,sha256=9bQI2ssyitlWY4wYej6hzoYbuFQ_36rEpnEcm0cuQiQ,1616
166
+ langflow/frontend/assets/index-B-_X6AqA.js,sha256=GuyDhe_ezIUtdDWWHo-OoBiluof58UEBA5Pwe9pWTso,2551
167
+ langflow/frontend/assets/index-B-hNnXsc.js,sha256=I8m5IjbpkMNPatUQnhYNI0GhYWOhru_5zKowlIIDiaU,4113
168
+ langflow/frontend/assets/index-B5305pSA.js,sha256=GHvSUss1nVl4B58PaX6f6VWiOot2Gai5QLEUrmaz7EI,202793
169
+ langflow/frontend/assets/index-B6VOd_3Q.js,sha256=FFeRl-Rf_O1tIOYAFSQaDVycTfLeHheqo1rkZZUvT0o,1930
170
+ langflow/frontend/assets/index-B6e1_nj-.js,sha256=A7Vx56fK7gGSAjhEeuycjhYKTE0KKFTj6CJcxgi2wZ0,867
171
+ langflow/frontend/assets/index-B73YirCs.js,sha256=qvfVA4W2aB5bSSKTroPMiXpqUf7EXs7nvAhcytg0xx4,387
172
+ langflow/frontend/assets/index-BF5NsuIQ.js,sha256=CO_ImCn005ep5yKA_1mpP_NpjXOG4O_nhP1QNTtFeCk,1360
173
+ langflow/frontend/assets/index-BF8x6a5u.js,sha256=y0xio1yVSWQgsLf_-pL5gfV7hSn9UBaP_YEJfvOLSUc,5823
174
+ langflow/frontend/assets/index-BFqc71lF.js,sha256=mPtvDdZq_x_W5meEmi0pex6jOtbdw1SY1rLqJklMplc,875
175
+ langflow/frontend/assets/index-BGrQoe23.js,sha256=Mr7ydjtE-2K_GBWGn7OH1DoP8UL4NCplCvZDgNvGBVA,680
176
+ langflow/frontend/assets/index-BLqPvhaE.js,sha256=mD2xqpHiLLJGVuzyFtCgJaOYv0jZdPnpBX8uuqb4Khw,2742
177
+ langflow/frontend/assets/index-BQUN5KC9.js,sha256=Dd2AJVbY8hJpkvoraWhXEAGJEZ9PsugyR0dB8mOjc2I,3310
178
+ langflow/frontend/assets/index-BTrFqf3c.js,sha256=-19vaGoTF37MFQoNkiZpanN4hpBkLcndpPFOXqNPvXI,2811
179
+ langflow/frontend/assets/index-BVGGg6d6.js,sha256=Bk26I8ctwlsuLQqG2nt9LKfJRpez46Rkd9iV2SUWMyM,2238
180
+ langflow/frontend/assets/index-B_A1jccc.js,sha256=-UjkmS8twmpoEL9c0Dd8aiL4hlj_SxMI-48vsqfSZ_c,802
181
+ langflow/frontend/assets/index-B_L1lw6n.js,sha256=R2rh-iYX0YwyEYauUsAk4rf_Vx274ORgpFOlw8LrL1k,456557
182
+ langflow/frontend/assets/index-Ba3V_Rfe.js,sha256=rT5Ss54etJbyf4Xokg96RIq1E06B2X99EWocBQIKCXw,1314
183
+ langflow/frontend/assets/index-BaFh6ol1.js,sha256=4Qu8KGf3uBKiOci1mbu-vuTQ9xtUm3bR4Txp9WeLsRs,839
184
+ langflow/frontend/assets/index-BcFzjfOS.js,sha256=Xq0KNlDDu0zeusD3uUAYCvLJYq5oLDoSOIOrXMpTTvE,6734
185
+ langflow/frontend/assets/index-BelTKOOS.js,sha256=47U_B-T8jdYJP4RbvACOoSgvi7Cd3Q9j0bB_KGNl-6o,1468
186
+ langflow/frontend/assets/index-BiOvj3db.js,sha256=PexA8a91lzQ7ysoVsuCRdt-2t9PMZ3rn5JmblXKfqLk,8744
187
+ langflow/frontend/assets/index-BiY5rUo6.js,sha256=FUhxsK0FHSibKhjv-7kDYRknYYpuVWiwUoJNnZkZP3c,310993
188
+ langflow/frontend/assets/index-BiawfAby.js,sha256=ZkvNpwpXv5swiV5Z4MYW6dYHhYWJu-iEplvfjR7UxAo,3075
189
+ langflow/frontend/assets/index-BisiVeuZ.js,sha256=WZ1TdMKlauu1KjNnTUxl_-fqZCCyisjFX1ltzqCOFxc,1195
190
+ langflow/frontend/assets/index-BjjlH85w.js,sha256=IKszKqsIjA_Z5snXnuEFnTkUlHtt1L_e5af3WryvzsA,21500
191
+ langflow/frontend/assets/index-BkWWP-Ml.js,sha256=zjZ573oswaMoqqxQ645_XZvBuSw8e1KMbKNht2In-YA,2174
192
+ langflow/frontend/assets/index-BqGTtzDC.js,sha256=9aPgU9Fdk97wG6CZQeOSP8jml1Roklz44Ov8xGI6njU,1083
193
+ langflow/frontend/assets/index-Bqnegt70.js,sha256=-lXN2RiZRoT_skzWkuZWGBNCR2kdnYtTWRX0LU9XOdw,1105
194
+ langflow/frontend/assets/index-Bs0N3c5i.js,sha256=W1Gvk3zEhoHnViyZruLDLYpKcRzS0bG9rYS3hwW8kCk,1119
195
+ langflow/frontend/assets/index-BtOZ3DZ7.js,sha256=8IND0P0imA0KuYw1pK9zpmgwIBZ303k8GBXYG2ImdY8,653
196
+ langflow/frontend/assets/index-Bt_2nhTJ.js,sha256=a3JmQKtGDE1clgRXIJdk2TVFwOvK5rRYF9V3Kcj5JkI,10066
197
+ langflow/frontend/assets/index-BvFxc1do.js,sha256=4fq7hT-Le44GlkmR2LzH_TwDVx5JAjHJSV9hzkyUOh8,2475
198
+ langflow/frontend/assets/index-BvHtUjgd.js,sha256=vlp9ugHMKGiUQBY2L2OYNYCSzkz3zFASo0Anv4zF_Bc,10403
199
+ langflow/frontend/assets/index-BxzfihZb.js,sha256=uNQIU3fAmZ9qL_fkXXX5ElO-uIlsptlGNUBu7VfY9Qk,25421
200
+ langflow/frontend/assets/index-BzEpSWN1.js,sha256=EcSAS2G6fn2iUtrbuMzmixsivd6JkLLrdyrPP3cgTZg,1348
201
+ langflow/frontend/assets/index-C1QG5PKr.js,sha256=T2LwAVYg_CkRXnsh97s9-3cs7suUcl1XnYoSPrRb0L0,1476
191
202
  langflow/frontend/assets/index-C1xroOlH.css,sha256=6XESmtp_SVYN-A7f5M9-6N-L0R1f2x8XQSzMq5r-EZU,481865
192
- langflow/frontend/assets/index-C3Vwhx0t.js,sha256=IfQhYFljsPv9htTrT-LwsJMfT6YNMlr88SMagVQPaiM,2174
193
- langflow/frontend/assets/index-C5XUG_gr.js,sha256=8Faifp1xn7cg_YQCV3lxJ6_0rQZN5ZmIOHzxAGwAreM,839
194
- langflow/frontend/assets/index-C6ouLG9o.js,sha256=RtwOcGIy_kM63eCO5991ZaEP97JVQpzPbSD7PVnoYe0,1944
195
- langflow/frontend/assets/index-C7ZJ_Z6f.js,sha256=UbkssdkzuAEpSptNboBfUx2xVSG1pY9DxYiRmqHbvwg,376
196
- langflow/frontend/assets/index-CCOGIwGY.js,sha256=u-bFZGAZZxWbqv3g7OltboomE4Tc2YvXCgr2IKS7zjs,1898
197
- langflow/frontend/assets/index-CCcye2rt.js,sha256=KVagjx7Y5t2C4bvZ5SygDnWPgWYJKse895Fvr4mKXb4,3067
198
- langflow/frontend/assets/index-CFR4yJQB.js,sha256=ZqgwwuOkGWkRb6q7LNvp30-YYd9YTolMno0SqoP-Yus,1755
199
- langflow/frontend/assets/index-CIGmPP0H.js,sha256=jzZUdHMzei5-FccFPHJZ0i3pBeBNYBhrb1bS2LapPQY,1476
200
- langflow/frontend/assets/index-CJmMEa6d.js,sha256=gpCkF8bpANiTK_DdiQlxtY_mob8-eirmDXksPvTiCsc,3310
201
- langflow/frontend/assets/index-CJxD7lyU.js,sha256=9yQ7GxoU6g6BWH4V1YW6Gg9TxRTAAIEp2vlmTMEiJVI,1359
202
- langflow/frontend/assets/index-CL_vu6ut.js,sha256=hEuT20E-ymGulT0PU0KnTpCor3C9gE0mN3l-kKU8QLs,961
203
- langflow/frontend/assets/index-COf3UnBn.js,sha256=cPlGaWjeY1LFGKYVVccZ8jiaQwTAHTn66dUUt3BOtIo,1193
204
- langflow/frontend/assets/index-CV9650h_.js,sha256=E_ffUXBafauM0vPS-hCt_hatN_NUaEbXeFqX48YSN48,415186
205
- langflow/frontend/assets/index-CVDzych0.js,sha256=OWB2XnSLTnX0hpOhMz9r1IjL_eEEELVDX7Vv4qeU2Ac,935
206
- langflow/frontend/assets/index-CWIHsC4D.js,sha256=gcT_PnU8mi8zIVuUdHVssWxuDDTyVsAmRaCycRxEQ3Q,1174
207
- langflow/frontend/assets/index-CXCnFZ0L.js,sha256=nXQ5i-Fj2597CSX_YKgrVjN5DswSd8YFQjLJPkIhGzY,2318
208
- langflow/frontend/assets/index-Ca_Pw_Dn.js,sha256=TryLrjDlGJnzCeGzGx9VKbm0WZ3GO2Ie4yYmKbS6PmY,934
209
- langflow/frontend/assets/index-Cbb3bX9e.js,sha256=-ikAcI9d7GV56fig9pgLCJ-gIiKIsx7oXb_R-c_kBPo,19696
210
- langflow/frontend/assets/index-CcJtOz-Z.js,sha256=8ovYrYVGr1ky3otxVmBy2BqniyYTcA5Bmrn5SdB4bzk,1538
211
- langflow/frontend/assets/index-CfTbTHEv.js,sha256=gkNKMlJYJnyd4pVoaaBWNlJ8xB8P8Gx7hyMnhDLTSo0,387
212
- langflow/frontend/assets/index-ChoxDAgX.js,sha256=nSmYjktdCH68vJjFfkUe5F9TUX0G2b6zC-VRusQYYOU,1501
213
- langflow/frontend/assets/index-Cn4gw8aE.js,sha256=lRF5DCZsVOMpfxkMBRopU1U_QPyRnOsPxivQ5UPte9M,18053
214
- langflow/frontend/assets/index-CnpLg4zX.js,sha256=UEAO4BdV_QtdUdNz2TfKBYEMD_gjy0ZzZJB_mzfixqI,802
215
- langflow/frontend/assets/index-Cpao2omG.js,sha256=u22x0P6kxn_am7ETMrFLWFLdHnIPv5kJHr7NDF7ZBPI,1050
216
- langflow/frontend/assets/index-CqoxM01j.js,sha256=RAvUO4uvMbtcSlCPDSxZO3DQ5z7KFMCP7eZdenXK2lU,641
217
- langflow/frontend/assets/index-CrHf2Ic1.js,sha256=YXxPygoGHNyqzq3IzynCUuBsZKRacRg-7BrXd_lOztQ,696
218
- langflow/frontend/assets/index-CrV0uIjp.js,sha256=z6bAEDwkRv3Vw7Mlobv5NMH1DjfatGbEZ_n5qXdY3tI,2133
219
- langflow/frontend/assets/index-CssADaak.js,sha256=Eh2iRst1_qfyqDCJbNKFRuWV6QhbQ3oEcbnW6RKR8yw,456557
220
- langflow/frontend/assets/index-CtJdNLy9.js,sha256=hjCyictJIoWsS7ow8vHn78YJJSV2QxSSityr6sjhqL4,1197
221
- langflow/frontend/assets/index-CyeWD2dh.js,sha256=MCOdJ-XeOmsdwWam6BLXKQ8W2MVIL62bVNaJx41HT7I,2399
222
- langflow/frontend/assets/index-D1xzD7uc.js,sha256=uHuNe1eSHbrm27y4WsJneK1Gehrn8T_Q1bSc6FroU-E,2444
223
- langflow/frontend/assets/index-D6MuXC4L.js,sha256=7FBoelfIi8gsgawd8fKJlOnbxnQg6PQgEWeu3oZ7tJw,680
224
- langflow/frontend/assets/index-D8w9zvIF.js,sha256=qEjiyL6-DKBVm-mpqVtB-CMH9_5X_3k3pRRO_k6g3Xs,2308
225
- langflow/frontend/assets/index-D98Gn0A6.js,sha256=cKwFTcSFLqNsATL8Froperlp1JEDeu61tqTHYKQzklk,279723
226
- langflow/frontend/assets/index-DBhjpWkf.js,sha256=y2HMdTjhzWGVW69qOKygXaDVnF4q_tq4htrXWz78F-w,1314
227
- langflow/frontend/assets/index-DCCRJzcY.js,sha256=g60dbe6nJIlH-zblODW2p5-aUSR7R_hKZ0jQwSTjnx0,25421
228
- langflow/frontend/assets/index-DCTRSkEW.js,sha256=50_B34qSSk4yNIlOXOX5bawB7Px_vDCJTI-h4nthtZM,1083
229
- langflow/frontend/assets/index-DCUfitVj.js,sha256=wEftn2dBlppHmPicr2be_djSCqLYc1lgornCgrhhd6E,2856
230
- langflow/frontend/assets/index-DDdz-Xcl.js,sha256=ALXfERstb8t_oeK9pZuknuG5FrcvanOMwqV3Roz-mqU,1188
231
- langflow/frontend/assets/index-DGdMwZjG.js,sha256=p-5sBtNh-gGRGFkf11RbfkxAU8HSHfbv8BU3e0rQF4M,3633
232
- langflow/frontend/assets/index-DGtl2vMw.js,sha256=GtPtGKUijh-EI5nF7LRH8K9Q0cLii8odikiO7sm9nnE,1348
233
- langflow/frontend/assets/index-DHVdkrni.js,sha256=kg92QL7Vo5O4YWZn3hDhvjRwNWPezBLNf45A1xLJQ_s,80837
234
- langflow/frontend/assets/index-DJBWwjgl.js,sha256=a2aW4E_sJo9drkajnaduRQKZuCew62iuOU-yWVRWzdE,4499
235
- langflow/frontend/assets/index-DMAkJ_qX.js,sha256=hrWry3J0BLVMCK55dUcSnHGJKxh58bHrDN77fbAN61s,2811
236
- langflow/frontend/assets/index-DMEvEQI5.js,sha256=BcVlWOced3VknbYqdklGDtyfncjsDMLZhEIdBTTY-Ko,7112
237
- langflow/frontend/assets/index-DNGRoOsp.js,sha256=ZSs5vSXyQ2ST0fxZZPaDRQyXldy6IsR9DTMdw8RqhAs,2465
238
- langflow/frontend/assets/index-DNT_TUTa.js,sha256=lFdKvro_89RTFWq7kKQnC4u1K-F6wJBsen1343zXapg,111375
239
- langflow/frontend/assets/index-DQKOH_9K.js,sha256=9KInSfJKz9NWZ9sAWl0bknlmmGSmJlwRCv3nipfmr4E,1616
240
- langflow/frontend/assets/index-DQhqqtqQ.js,sha256=f6OLZ2phDBOCDSj_5fnRWQ23DLACXx3uO-NgjUjX0T0,1470
241
- langflow/frontend/assets/index-DRM7KKnG.js,sha256=507bwAMfb3vanHAiGQ9e8LDdNyi2hWkzdJWV8T6PyIM,45989
242
- langflow/frontend/assets/index-DSCtl3a5.js,sha256=fg5IbRmXq3xsG9CWJhrfYtH_QAWl5gu6KwUyaMTPFWg,1930
243
- langflow/frontend/assets/index-DSLNlm0Z.js,sha256=WXw_NV2SoheavqUFYbTLAg2I6v8JGrpX0TtA8colsMo,1011
244
- langflow/frontend/assets/index-DT-PspE-.js,sha256=IPOabmCx2jWRkV9KtbiVWOcQHi_m7n9FJhLFOsuv_Mg,1105
245
- langflow/frontend/assets/index-DTpbH-p8.js,sha256=2blD12G07V8UBvyEFps22yNIYNCVesqDaw_6l2QnEnY,637
246
- langflow/frontend/assets/index-DWV6MsIq.js,sha256=7048mCDCj27E3igXv828ZyC5T9-lxLB9JTqvfpu2tOo,2612
247
- langflow/frontend/assets/index-DWeL4US_.js,sha256=VVMUYNnUxpd78kjYEtN6vqMfBbjmHx7C5adPX2Qu6JI,600
248
- langflow/frontend/assets/index-DYKZHhpU.js,sha256=f6dnbCeSsPFaCvZYOmGuv6A59c-LWjp2mJo06goiSnw,2551
249
- langflow/frontend/assets/index-DZyQHiMR.js,sha256=vsJO1tRhX9dal-QoUzbmAO0_PBQcKsFcI_nHx5R_7Sk,17666
250
- langflow/frontend/assets/index-Dc6qVuSa.js,sha256=HellJolvo4-a_NX5LYdgJZ-8kHM6oFMAeByNaAgPIZk,160399
251
- langflow/frontend/assets/index-DkYuicnC.js,sha256=slVAvB9ascKy81uLhP10yUJIG61Wu8uCfTUsZIkVcfY,1913
252
- langflow/frontend/assets/index-Dlj_2mMs.js,sha256=bpG8a1nOv0xaRi6gSeFDs85KBWyb6XWPmcZCcebK14M,1195
253
- langflow/frontend/assets/index-DmGJUrEp.js,sha256=2-XUBMBafYimL1wbIw0BKEVYVktWrczJHyTufdgTFLQ,13968
254
- langflow/frontend/assets/index-Dn6hpCAZ.js,sha256=fw12YkMtXsx6LDsBNY_hEwB764mCJLkQfJv5DDRysNs,1800
255
- langflow/frontend/assets/index-DrJU8Fgb.js,sha256=WVYxIXKqu6bd-glzzTzBIJrmA7kZpvV6gzd8Bl_BbZ8,704
256
- langflow/frontend/assets/index-DsWfdCzp.js,sha256=hOGWIK6HDIvLC5h6P8ZbH1bY_wy2o-n-QLfxB4m54lk,837
257
- langflow/frontend/assets/index-DvCPWs2_.js,sha256=4zCPZElTLopDhL9GgB7MBXp1uxTa3BRu5ZUnRcE0Hao,202793
258
- langflow/frontend/assets/index-DvPVq7OP.js,sha256=8XF-PfOQ05QlaXxGgrRmZrMjJimz3JMalDlJmdwf1jI,802
259
- langflow/frontend/assets/index-Dw71ufW4.js,sha256=k5vLXlYu-okpqlWb5PZsEj3NFebT0QO3xDAguaCAr6o,12449
260
- langflow/frontend/assets/index-DxkJactf.js,sha256=_dUpETBUX0f95McfjKVVAP8jxzP82mwyeB31XR1XQHI,2502
261
- langflow/frontend/assets/index-Dz2GTphU.js,sha256=V7WaJ_w_TKD4zmTjIzGjIycyJaPIIivAA5otXqbd6Xg,2912
262
- langflow/frontend/assets/index-Fvd524_c.js,sha256=NfD4DtEbTnpZc5KKnZLpIE-LkAvj7bnqcs-jCIqZO08,810
263
- langflow/frontend/assets/index-GAQ0Mk2M.js,sha256=N5i6OkHMZ0oapOBgvdRKsEPah85VtmkHPI9vB9pKiLo,875
264
- langflow/frontend/assets/index-Hm5-4ItD.js,sha256=mu3sHwIbnuhRPZJGrYddUpC5D50xLSuIjER3iNMc5J8,867
265
- langflow/frontend/assets/index-IT67FzsK.js,sha256=1CVROAKb6NdZ9YXaC5kxZIHqPwY-hUnFxn_ucCH6XL4,8744
266
- langflow/frontend/assets/index-ItYiij1i.js,sha256=BzTF7wO3pS6bXND6lAoNwTbTb4kRzagfEW9sZTT5f24,975
267
- langflow/frontend/assets/index-IuR_FEdB.js,sha256=BKfX3M1t_g5xVJpHWQzQtePERbbJIVrIi_Stt_WkrUc,21500
268
- langflow/frontend/assets/index-Jj60FQkv.js,sha256=6X4kyBw4DUsWlomMbNKDZRmOGwTSPa-BDPAT0O84neo,1145
269
- langflow/frontend/assets/index-LlvshmVz.js,sha256=0LefPuSHdsh_YSfkZxudLLEF2JiZlbRDBiwbP-5fBgE,1746
270
- langflow/frontend/assets/index-LwKh3I_W.js,sha256=0WOKvrfAq_hTFbefSmVlUGHZRdvMIat5hd1DaYRSHGY,536
271
- langflow/frontend/assets/index-N-xxmKKH.js,sha256=HnHpRM5SrC4C_U2HwXbYQ_oejCOzIKsirnmYH5WYvOU,10074
272
- langflow/frontend/assets/index-RwpaHIAH.js,sha256=rnhQynofyn-HVj5uh9HD-J6ifXla4LmUQqo52tPPefw,524
273
- langflow/frontend/assets/index-TVvsp-xh.js,sha256=1yk-mUBH-IQj-yA9da27zhXJI9ljXxOrqNBCekIzEv0,1119
274
- langflow/frontend/assets/index-TdE2u9zP.js,sha256=w807Cr-iikiePQh2hVqG9M-BZ7Ibm--BzK2VMnbXIBs,1826
275
- langflow/frontend/assets/index-_x-NkYeW.js,sha256=5hnu3z761-_bOACvSfeJIVMyJldAkJuHO72PCQrnwjk,1727
276
- langflow/frontend/assets/index-a-YclEbW.js,sha256=qx60656aU1r37DLUwj12ck2KkkevE1u_nFM05TBbuP0,855
277
- langflow/frontend/assets/index-e9MFKUCo.js,sha256=nKal_l3cLMk_LUuiRvt4iMFaxyp03wmsLPuHAhXm5uI,1360
278
- langflow/frontend/assets/index-krPr8f2F.js,sha256=vgn41sdcdEJ325T1VCtc4tnM2EEVtzm64VORNktntJM,798
279
- langflow/frontend/assets/index-kveiUWuL.js,sha256=qLdB1I9u9AFGKrQrJXvhFKB6Cp4bEbpEc2wYOs9IUeg,1569
280
- langflow/frontend/assets/index-lE3oSjJi.js,sha256=JBKtzhIPdts2gIOiIzIUIALllcl2xkkcSfOrrsMH4LQ,2238
281
- langflow/frontend/assets/index-lM3UYg7F.js,sha256=lrhdkLaKARIfgU6NDCicb100_okpkCBLlNsStYB3WUk,1238
282
- langflow/frontend/assets/index-nsRk3qgA.js,sha256=CQ49TvJYC2kOkYdk4SxWjhfZvFMknFrSZXc-WhF3_o4,865
283
- langflow/frontend/assets/index-pBO0SZLD.js,sha256=ZKS-UX1fGlJWMQJgHiHw3sb7vFjrg_iYa7DUqAF5alQ,12095772
284
- langflow/frontend/assets/index-pbZHsbuE.js,sha256=DgRd-TMbMaNs1-DIN7fhr2LDePM3Ri-PzFXXD3WP0V4,20211
285
- langflow/frontend/assets/index-sfX3aWyp.js,sha256=YLt-hqgXSKXk77_eAjE5tXju5WOoyRWY6HEWgd0qGIQ,5859
286
- langflow/frontend/assets/index-xQz-VJ0-.js,sha256=9eR-jfpNgNU-jBeWwaj3fqIWui8wIOsDv7Od-c04rvo,3135
287
- langflow/frontend/assets/index-yfcsaHS6.js,sha256=fMenir2EijcSh1USKr6O_fSKXL28H0FaY_EuOJG56Y0,23393
288
- langflow/frontend/assets/index-zcGjo9fx.js,sha256=ovvDNyyZkYATjTzo283T0Rvva1nNhm1_Bvfpv9T5P8Q,3075
289
- langflow/frontend/assets/lazyIconImports-BjqDmNYG.js,sha256=CLEG-hLwm_YY57W5HQax2ZNRm1AG1J8-x5A36qwn-cE,19814
203
+ langflow/frontend/assets/index-C3oNlze1.js,sha256=sqY1IvR10J2cMoqVud4Mf--J_xmOAEwka_b0z-LLh8g,80837
204
+ langflow/frontend/assets/index-C988Yv4e.js,sha256=caft0ihOvxJkUBV6ePTddAUoZxpZsgQQQGMw9IrUq8o,16368
205
+ langflow/frontend/assets/index-CB7uykaz.js,sha256=C-8etK81vColteWo5sJ2xD6jUuAVb2N6Hl06ERsafFU,1538
206
+ langflow/frontend/assets/index-CB8xPtty.js,sha256=ESRdfrdL21uh5nXe-ywzCr8oZ8JXttcovuyhwfv4_9o,13968
207
+ langflow/frontend/assets/index-CFh_62yL.js,sha256=or7a6ysjbyQ5wnBMXLpD1hFyP10lHFoz6ccDDGJ07Q4,111375
208
+ langflow/frontend/assets/index-CLn4oDa9.js,sha256=8Ask9dtB2bQ6JpdZzTtnSUtCcgAxh8y1eeg52tq3els,1746
209
+ langflow/frontend/assets/index-CMCNCQxs.js,sha256=67mA63oKR2bA6wUcaeFGqIb4BpHZylF1JY3spt0vztc,810
210
+ langflow/frontend/assets/index-CN0N3N2m.js,sha256=7BWAN0DqGeCOfsl4WauEmY4aLTXmB5k1poKeInI1Y8Y,2258
211
+ langflow/frontend/assets/index-CNAwfpC3.js,sha256=OhSCXTPrAZgBe7MK4w-jG3fI_BrAE8D117wG-Pf6cUU,696
212
+ langflow/frontend/assets/index-CP_zAFZg.js,sha256=hXsMGaVZGOoyKF_Nak3pOjDbYkF4jYV84wTiKLnhJms,3192
213
+ langflow/frontend/assets/index-CQkfZCDJ.js,sha256=-k193BeTMdeomeh5nHWGSPSd6WATO6OIlsjdlHlqbyQ,4499
214
+ langflow/frontend/assets/index-CRNpOQM-.js,sha256=Os5-VzuY-xt71xKykCjr1pNf_-AVdCKFOLqx4JGPm4s,12095879
215
+ langflow/frontend/assets/index-CTQxw4w-.js,sha256=lVVvo4UOSsAWkNlQHXQpCF_r8xWBw2IHQyO1ceZqwAk,7112
216
+ langflow/frontend/assets/index-CU9XgQEl.js,sha256=5QEou651hM24dZkpzXdDs4UI40pAyyHdHkMXaUh2OiE,50585
217
+ langflow/frontend/assets/index-CV33ZbiM.js,sha256=ThUv5s5Di84GcTO7M7GOboYQFhWG8JJbynZTvmoXkeI,699
218
+ langflow/frontend/assets/index-CWmmsEOM.js,sha256=JVB655XJTUjsWCo79ieFJ-xweC1U54HV4DpE08YroJU,2103
219
+ langflow/frontend/assets/index-CZdZkSVL.js,sha256=PgHceGipN9jHMHLpv-Diu84oAF_E2bn_luiH3HK4EhM,2502
220
+ langflow/frontend/assets/index-C_0G3-yc.js,sha256=0ofP6syamULaK6i-btzfi6IxMg9cgb3bDJY7ivZUfNs,536
221
+ langflow/frontend/assets/index-C_i7NZkC.js,sha256=6N5X0vAoUOuKNfNdRnuxMCv_ou_qedRwqR8djHLMwR8,934
222
+ langflow/frontend/assets/index-C_j_KuF0.js,sha256=522P4wHUKAbBj5nxJnFAJYRb_22O_IuiU7AYOxxaYT8,5859
223
+ langflow/frontend/assets/index-CaM5t6x8.js,sha256=8GFKGFduHKh3SnoO9cMLjZxYG1dgAfccB7xzAPfHaJk,1281
224
+ langflow/frontend/assets/index-Cc9flUt9.js,sha256=0yNWPq3gQYfc78QTR7fBfQ1BDm-G2NznS89iCNZPlKg,2308
225
+ langflow/frontend/assets/index-CcK-JwLO.js,sha256=dwVrbr8NuuYSSCOMiwhzBZQ5sk0mPzV0Bo-cB7ROpYQ,637
226
+ langflow/frontend/assets/index-CfttLx6n.js,sha256=aOpUy6nCgnbxrYOUN2vxcjn5sGCc-Ctp4ua9uWfTyPk,180367
227
+ langflow/frontend/assets/index-Ch6gZEE0.js,sha256=OZqWFRxTCEuHN-fB4h9yutGKRBeJmwswVwM_VZLIK1k,1174
228
+ langflow/frontend/assets/index-Ch92JRJd.js,sha256=S0eb0d8PwN7MyY3eDkUEb3IRB61j-chyKnCt2pML-y0,1118
229
+ langflow/frontend/assets/index-Cj900szt.js,sha256=Hz7QcWNBO5sJCJyWxqUW9i_dInGbeudnYl-AItQPHso,1913
230
+ langflow/frontend/assets/index-CjlpkvuB.js,sha256=YZvXagmCvyaGMJ6GMPNgk30Fu0WXVpXE6YA7LltLRZk,23393
231
+ langflow/frontend/assets/index-ClRoY-FX.js,sha256=9aeTy6w6fWzhENbKWpVIAj0csm_8lOB9LTxXGMkf2xg,1188
232
+ langflow/frontend/assets/index-ClT_eNbt.js,sha256=0qaBA1gkxPxbHimnAppmOPeLaPWLVQOI-5l5qOCFpXU,798
233
+ langflow/frontend/assets/index-CqoTzjmQ.js,sha256=-UogtREOTdjo_cIkHilqGbX9kVll0B_REBSzzj1jB1U,1050
234
+ langflow/frontend/assets/index-CuGL_G3M.js,sha256=d_L5uk8FM8PsHldGDa7fY-DEZR-ycHuaiITHUc3J3NI,2033
235
+ langflow/frontend/assets/index-CvDh_MxU.js,sha256=ZlsdZdnn_i4GVTJMKoSIlKro2MHZNt9lJkm-qvJGKTo,600
236
+ langflow/frontend/assets/index-Cv_uLHbT.js,sha256=cS_l0lJ99dE736i6l4FC60lJQYJiq1f8sTN1iRO2DgA,1944
237
+ langflow/frontend/assets/index-CzYpL0rF.js,sha256=pT072z9C_lgaomuMqeiPOHKxkwo5SK8jPqLwFjziIi0,961
238
+ langflow/frontend/assets/index-D3h9VCeP.js,sha256=g_LJ0P2OIWnManjBnxsQbnNQD-jLyZckEpO26S08aGo,1193
239
+ langflow/frontend/assets/index-D5yAgkMT.js,sha256=GNQrC1WNvJmYl-GZZP-xIf2M4qo_UslxLiaWk13-Gek,624
240
+ langflow/frontend/assets/index-D6aP-HbR.js,sha256=ErxrZmrOyfw8f2tvpfSRjFCPJ8HSYZEYtlUSPkNnAzo,855
241
+ langflow/frontend/assets/index-D7wIj7if.js,sha256=4Nqr2wUVu5STkfwd5i5KFERh9UX5TjBbzHXg0_zAmaE,1800
242
+ langflow/frontend/assets/index-DBURQZcY.js,sha256=ntj8vrWZjxJDpvav8f_iKqKg1lNnVD5DupPgdQzUXXU,269
243
+ langflow/frontend/assets/index-DCc1o5UV.js,sha256=vMgCqpUbRAjgSjCukRIEV4MtFhjZ3bwt0BZRB3OVjHA,1761
244
+ langflow/frontend/assets/index-DD7wrvCZ.js,sha256=ChTAB5iC3CdGgH5tyhozOEhc4O7aHk4wECvCARAEUyY,524
245
+ langflow/frontend/assets/index-DDefmkcH.js,sha256=eW9uLKOOnqSwF1_KlrpPAPXd1zP1QHBj2U4qQBEnQUg,1016
246
+ langflow/frontend/assets/index-DEt2Yosx.js,sha256=QekTgcUjLx53rYP39Euwx4YM4ygmlLrekDtiXanfjqU,837
247
+ langflow/frontend/assets/index-DGFygZiG.js,sha256=serCiPh3vdh0rzuofTqr3dvh_uhFL3gXlbSHL_4rG6k,1086
248
+ langflow/frontend/assets/index-DGXmo5dY.js,sha256=pMBU6umD7xBxq6gDxgZz0dYzpiJYbwQQAj126vSt5Uc,10074
249
+ langflow/frontend/assets/index-DGcMdgk-.js,sha256=yFjoRE7hyOodXr4SZ0-1eu3UMwavnSgih3ab3ZAlKrs,1569
250
+ langflow/frontend/assets/index-DH9qsft-.js,sha256=eSEkZ4d40lA9P1-i8C3tWqCeVVhy2Ucn7BWjUvsAV00,1344
251
+ langflow/frontend/assets/index-DIFbNefq.js,sha256=2gtl4M1PsPYq74zUc77KMWUIUE_dOQsuuMCORTu8qjs,1826
252
+ langflow/frontend/assets/index-DJbTO27Y.js,sha256=437HBqe2tfhCLSPH_KwSdg8OBS6UYcdtUJAB7bcOEno,2444
253
+ langflow/frontend/assets/index-DJfyKAdF.js,sha256=ggCfvEwpbznsLoex0VpWoL4Wz1SHloiFXa8gsXTdr0k,2612
254
+ langflow/frontend/assets/index-DL0ociLP.js,sha256=Xxucxzo_C9Ke_BXsR399bqQQfelXk94uhzOJ5jIl12A,18053
255
+ langflow/frontend/assets/index-DO482yY9.js,sha256=xwFzxGVf3F2TrCrJhzoADmKYdxwAwmSlatdOQDR94tY,1145
256
+ langflow/frontend/assets/index-DREfD2t5.js,sha256=_Bl1ftMOKHio5RSF-iG01BJBHmPeP4mIe-5mYU9yg2k,704
257
+ langflow/frontend/assets/index-DRU1HxyK.js,sha256=3nXntTCgINXxJQvnXW_EvPXjijGkQfQtDZXu4KFmHPY,448
258
+ langflow/frontend/assets/index-DTszUps5.js,sha256=CfFYgGINiXwio_POpSN56KveLZfTLQg3hzNbvj7SnJM,1217
259
+ langflow/frontend/assets/index-DUZCKguN.js,sha256=ItzV7HYH4S70LR1mDelnwZ3g_56Zu1dsHVYjkXZl9sA,975
260
+ langflow/frontend/assets/index-DW9Ijttn.js,sha256=On1zF7RncGbypOg3adyDrJE1kASFqCrnQHYLpNfKHuQ,1238
261
+ langflow/frontend/assets/index-DXobKqZV.js,sha256=o8y53IDx1x6K081IIjnqv9sc_VF7mjS2r6EqyeY9yXc,865
262
+ langflow/frontend/assets/index-DYCFbxqX.js,sha256=MZPyR-YgAVf-boOQ1dvVRFbHiUOJWS25JFUtHkcK7NM,2856
263
+ langflow/frontend/assets/index-DYDidL0O.js,sha256=oSiSy-1L91mGSIutY5JTgzAjndc0efRNLyTmj8S5UBQ,1174
264
+ langflow/frontend/assets/index-DYHxRtvq.js,sha256=6sJM-r_Ln2UWKNfQ_qu8UCDDter-bd6OMgOEw3SZgOY,1359
265
+ langflow/frontend/assets/index-D_Ymwwww.js,sha256=PzwnYBo7ZbRBD6oWplMwUMZDqgE9z7YfMGb0XbhF8wo,1727
266
+ langflow/frontend/assets/index-D_dwAYl5.js,sha256=_5pBGuLd3pROBqUP-jL11kclb1IxCHrt-x6zqGFX45o,3214
267
+ langflow/frontend/assets/index-DabUj1jA.js,sha256=STEKlAODT3njdjR0Rawx1fBaewi_qPOeW2rCuaWz59U,1755
268
+ langflow/frontend/assets/index-DecWakBh.js,sha256=IACaa5tlMyYSH22BU5AY5t0WnwOh-2B4NeUEYwbmC4M,3633
269
+ langflow/frontend/assets/index-DeqzvhaK.js,sha256=tLyNAOXjhYw4EkKjJjQ-IEgM_uprORUJhemd5KfN5Yw,20211
270
+ langflow/frontend/assets/index-DfbOM1ul.js,sha256=2Y7_weeTEjfKdsVPOemJCd871PBS_BSh2mXuukxIe0U,279723
271
+ langflow/frontend/assets/index-Do0FOydd.js,sha256=-gZFWLvxMBcw31RPMGi1LvfzydhU68Xq3lg1sKdlHNg,572
272
+ langflow/frontend/assets/index-DpwTzqHi.js,sha256=K7ux9xsO6siXabOA1xOkjA61PBHPc39v8bi89yJ7ZOE,1011
273
+ langflow/frontend/assets/index-DqEmC8BV.js,sha256=ABa2BpXXBvjZkfA0ITXot6-jJAgvbu_IWh0hEDv8pfQ,2416
274
+ langflow/frontend/assets/index-DqKGFhEI.js,sha256=s9pUgnELKvf9GAiYNlsEJ5ladPFJb7V9KirL0FS4LVY,3135
275
+ langflow/frontend/assets/index-DsQg__4c.js,sha256=Ml208W3bPcfn49MnqNUhnldrtKiIhJCy4_8eB8eE1Sg,17666
276
+ langflow/frontend/assets/index-DsUqmyjC.js,sha256=fwhOMqha_2p3CKzhdO8hyhfn9WwXdd9TXVm4e702Qqk,2133
277
+ langflow/frontend/assets/index-DtMt4p72.js,sha256=cxVLXkV6q9qdrShY9nm6gW9Nd_To23tpYvhF1o7kjs0,1186
278
+ langflow/frontend/assets/index-DujGS1OO.js,sha256=tue5IPcBxCDm88DOWDbbSqGFlKTTB9Msu_XWWIb4sgU,776
279
+ langflow/frontend/assets/index-DvseFYnA.js,sha256=iSTWQKjUgdSGrC73jX9cMpaxQOPrQIIq-Nie_mkISaw,3058
280
+ langflow/frontend/assets/index-DzM6iZXN.js,sha256=Y2AoitZeCcZpHt6B6ImmyKTq7rGb1TZE5209k_AhqRk,2399
281
+ langflow/frontend/assets/index-DzyU6nkP.js,sha256=7QmH14hOmLuW5cVb2vSRDIFoHKJNFU-zP6vomlUic88,1197
282
+ langflow/frontend/assets/index-EAjlelts.js,sha256=mLlAucupktUSSmdwZWBxpS-c7Yhuy7nFLnpcf9ytNQA,12449
283
+ langflow/frontend/assets/index-ImRPHwVH.js,sha256=LZR6zqTGMO2rUknHAdGphXHWclBbDeLwmZCulY2ZAcI,641
284
+ langflow/frontend/assets/index-O_Asm0Qg.js,sha256=JL7C-NdyyoYaKoAru02Q8CwPCkcfd32QZDp9UhQMWsA,1462
285
+ langflow/frontend/assets/index-QKyHt7M3.js,sha256=GuTMhlxNJX_p3UaiPd6ip_vZlhn0ALN4uMPqyRnbWes,1501
286
+ langflow/frontend/assets/index-Qk4Jhzzx.js,sha256=ylEfY7YcRid-Qa9ri85F8dvUEgVqqkCwHOUWdL4Sm8M,935
287
+ langflow/frontend/assets/index-Z91qd7e0.js,sha256=8I6X6rceH-bG3Kik92ZBk90SkcZhwtbFmx-lWc_h9M0,844
288
+ langflow/frontend/assets/index-b5J6zUVe.js,sha256=shB2aXkw3Pm1_sGRmriwQuHXO-5BZPqIt1tp4a8FBgg,1201
289
+ langflow/frontend/assets/index-c1d0EApS.js,sha256=v2-nhMlZ1ORq_CV75hx4o6FM7dzeUZVx5YZLH9OlKgY,802
290
+ langflow/frontend/assets/index-dUVNsQ_p.js,sha256=Lwft01OgpUEWa4fa2GvcZIlIsaws3WtUM2bBbYGZ5Uw,1470
291
+ langflow/frontend/assets/index-eO6vfHBu.js,sha256=wiM0b5k3XhYUT6LC-vYO9zCXXozvXgmBatXjB4Roxl0,415186
292
+ langflow/frontend/assets/index-gCzEXCit.js,sha256=HfF40g5kX4OwsnP4U7S94moz04Sy05kfXcfQpvdrFuA,2862
293
+ langflow/frontend/assets/index-lQhbbctu.js,sha256=Maz0A2GqaaaYEvmsVZ6Zq9mCstmDYuyEHLvDyB5_5Js,5954
294
+ langflow/frontend/assets/index-n6FpRfSS.js,sha256=uf1NP9Ajwn5yWyCC5WJvw-IfUiLcR2KFzLX1KcqnkQg,19696
295
+ langflow/frontend/assets/index-uL1cSwQV.js,sha256=Z4bDpPB2V7nk7mGqebKF7QUcJ-2t1hZZGbzWmxQRBhY,2465
296
+ langflow/frontend/assets/index-ueLRdQBW.js,sha256=uhf4t-QMqDBPp13gjqI4Avyf6rDSmhSaCPp3ZFmYOF4,3067
297
+ langflow/frontend/assets/index-v5Q73kmo.js,sha256=iDbV_DzBDlt56wHHhXh0UUZ7F2lW3D8tIwEvRDALPOQ,45989
298
+ langflow/frontend/assets/index-w9oSsyPP.js,sha256=1UbTv9MYe4WQgo3aLbZl3W-HTeNJBWHfLvO2IGca46E,7274
299
+ langflow/frontend/assets/index-xRpB6v7Q.js,sha256=A67TUVZORURA0eOnkG86nY4vLC8P50UcbRVPfZq6HVQ,1898
300
+ langflow/frontend/assets/index-xVVGl0zB.js,sha256=HS1KO2ONVHNOsaYBJtBBFPyNkB6QlwHv98e9luCPnAU,2318
301
+ langflow/frontend/assets/lazyIconImports-DCOuBCys.js,sha256=IosZh38WBp8aFnYPTiLL6xgnGw0YKlqFwnI96MVTW3o,21600
290
302
  langflow/frontend/assets/logo_dark-_nccwgMn.png,sha256=CWXJUxy-jpw_oDcMGZGUsFwIns8qaX-ACLJNy4LdxCA,11343
291
303
  langflow/frontend/assets/logo_light-DKZjS8CD.png,sha256=D70RXT_4jNATu7av6hMew6oflYAgbgzUBc1_es1Qtas,11204
292
304
  langflow/frontend/assets/robot-BsccFpqT.png,sha256=leGwDQGhw5pFQJkzY4Bm_WLChupwY9KEujK-75_w1NA,26806
@@ -296,7 +308,7 @@ langflow/frontend/assets/temp-pat-3-Ci-rp5-q.png,sha256=mk-3oE3HwhPC7FQSWXtdXPiQ
296
308
  langflow/frontend/assets/temp-pat-m-1-D-qJT-j4.png,sha256=5wpBBmRBXiKLljb9pnlHvCHDDy8CgX8JFUKCQwlk_rg,1392587
297
309
  langflow/frontend/assets/temp-pat-m-2-BFhrICvh.png,sha256=EokpvYOyalzdIZx4QtCre6rRhG_jh1c7hwJvP7-V2D4,887133
298
310
  langflow/frontend/assets/temp-pat-m-3-BJIIbDxb.png,sha256=ImGZHtdGVB6zkOrmQl49eeWqZ_aAhQlKQBmGy-hSI5Y,1289899
299
- langflow/frontend/assets/use-post-add-user-w3vpKSOB.js,sha256=RAb-wnSm6ZGUT3LzmwyoIUJszK3o--Gq_sG2RLYQ6qE,179
311
+ langflow/frontend/assets/use-post-add-user-xwrNqlN4.js,sha256=sjmvPDcwqW3yiwB9QDbJCV6cxvgiLjF2gBy2gzcWQLs,179
300
312
  langflow/frontend/assets/vanilla-picker-B6E6ObS_.js,sha256=aVVU5PLkFXbK22gMndNsa5QNWtZxQBEqtd2Fp8HYfwE,18804
301
313
  langflow/graph/__init__.py,sha256=uHjF2QW6i88_q3uspuPnulTyEA_QNV6eygOD8UZgG40,309
302
314
  langflow/helpers/__init__.py,sha256=LmUvQmw1B6V3bb660J1BHdaMAlHmsEgFEK4TdFjUN9A,157
@@ -397,31 +409,31 @@ langflow/initial_setup/starter_projects/Document Q&A.json,sha256=kF-h5hqD120MaZt
397
409
  langflow/initial_setup/starter_projects/Financial Report Parser.json,sha256=pbG42S6-VCRjWwl0Xnzv_jfkPPuKQCP2X5--3mmLjiQ,91700
398
410
  langflow/initial_setup/starter_projects/Hybrid Search RAG.json,sha256=7xAdiZz95okfcRJ7h60AYfBE7ss4V0xFop01GWvIeMM,209684
399
411
  langflow/initial_setup/starter_projects/Image Sentiment Analysis.json,sha256=ADa7aIqZtB7qpYmqFrcj8em0qP8ePSkfvX2utM_Ax28,116635
400
- langflow/initial_setup/starter_projects/Instagram Copywriter.json,sha256=i-k7KrVWgWRsYtEpd3EySddfOjQN75ciriCTnKyzZX8,187391
401
- langflow/initial_setup/starter_projects/Invoice Summarizer.json,sha256=yKa3zhG3OBB9JNY43yndYh9nn5uen-CR3EzRJn7KW0A,111321
402
- langflow/initial_setup/starter_projects/Knowledge Ingestion.json,sha256=yIyPK_Eazgop8iJJ2BdT3j0QNDYQ8izxrVkqgyJBNbM,87610
403
- langflow/initial_setup/starter_projects/Knowledge Retrieval.json,sha256=5cpf68ORqwjG0J2JwgMGqgA9RDKiQQrTjK4fvJVltsE,46514
404
- langflow/initial_setup/starter_projects/Market Research.json,sha256=V10FzaihCNysiFnwHXdRc_ofhuIDELVMbQrRj30Z3UM,168281
412
+ langflow/initial_setup/starter_projects/Instagram Copywriter.json,sha256=YK2e_2cWaKqyDgrDSiOXJsoiZMKnLNO4Cio0qDxo-pE,187403
413
+ langflow/initial_setup/starter_projects/Invoice Summarizer.json,sha256=HKuWGAWrvNEc-Fva24y7ukAeEzLW9rrQCj9KefhUaXA,111333
414
+ langflow/initial_setup/starter_projects/Knowledge Ingestion.json,sha256=Cvc_fOje18g-VoP7BF-0gs4WKVqgxQLlbVUiMgeCBq0,87538
415
+ langflow/initial_setup/starter_projects/Knowledge Retrieval.json,sha256=vCb21AMih9C80pfxPZbqQ5G-0JqkvbDuhipep0kD8jQ,46469
416
+ langflow/initial_setup/starter_projects/Market Research.json,sha256=0qYI3RKJF3r28c5oOsZth1383o_vpM63hXVf7P5XC8s,168293
405
417
  langflow/initial_setup/starter_projects/Meeting Summary.json,sha256=C8AUdFLsJ_EwgGJtNBhtzFzo7l_QMbx1EFR7GaXcO3I,200297
406
418
  langflow/initial_setup/starter_projects/Memory Chatbot.json,sha256=49RWbQPR38LduyiJfHP0J598IDUq1xFJrEHwNKR-EbY,87150
407
- langflow/initial_setup/starter_projects/News Aggregator.json,sha256=MvN090_g_v4Wboh306OReyywSYiEtR5u7KTOFse6CaM,130371
408
- langflow/initial_setup/starter_projects/Nvidia Remix.json,sha256=-mabL8chRbstS_vMHMmY86tGxzE9hGgUk_AVT9_kdPo,327046
409
- langflow/initial_setup/starter_projects/Pokédex Agent.json,sha256=qssP5XAY7fR_9vbPH75Sdc4yyE4GSCmvCyU8daF1TfA,127696
419
+ langflow/initial_setup/starter_projects/News Aggregator.json,sha256=d5KKApXsNIr0IazhsQQSRzic5Pxub8JPEgziGeCCOFg,130383
420
+ langflow/initial_setup/starter_projects/Nvidia Remix.json,sha256=uZppZMLrX-UVjZ9C_51iSAc7iKDVekRZIUCMdQ_2Et4,327058
421
+ langflow/initial_setup/starter_projects/Pokédex Agent.json,sha256=JAUF3cT0Fp9OxPd2jVSj_Ll-dU6HLO2EhSH-MI-PVJk,127708
410
422
  langflow/initial_setup/starter_projects/Portfolio Website Code Generator.json,sha256=wz5zM4PMulsNlU1ej8YNvYkmVAGDaX_lu5JIOo6sCMs,145617
411
- langflow/initial_setup/starter_projects/Price Deal Finder.json,sha256=BkpKT_iUYPGoF5aSPCeOGI9AjpjomN8JpEELn4cHatk,138555
412
- langflow/initial_setup/starter_projects/Research Agent.json,sha256=N5Mhn-5qdvXGL2nz7zBfcdvS8xQdt6chqZ-Rp5qipls,186654
413
- langflow/initial_setup/starter_projects/Research Translation Loop.json,sha256=u671yKXKNpmNh9Xld7PRpHeBCbXH8K-dWcEDQXX8z54,104413
423
+ langflow/initial_setup/starter_projects/Price Deal Finder.json,sha256=OAzuJF4UiRlPV-5l4V897phlNqkxPIQuRUY3l0p-Fa4,138567
424
+ langflow/initial_setup/starter_projects/Research Agent.json,sha256=wm6TipbS7k5jMnv0Ze1Fl0k_KhPxiz4rgSmLwuD4aVc,186666
425
+ langflow/initial_setup/starter_projects/Research Translation Loop.json,sha256=F0faveAILlkqlxaM3wmaME89yaMY8XDaOPNpGXKY8zU,108005
414
426
  langflow/initial_setup/starter_projects/SEO Keyword Generator.json,sha256=TNkpcIIMNJSpqxgMNSzxmlbB_pCT9lBrGGh3--4Kb84,65608
415
- langflow/initial_setup/starter_projects/SaaS Pricing.json,sha256=-3dxXQMJ1UUxvqqx8RMjvglGF9yrSkphSMX9PIx-tbY,98066
416
- langflow/initial_setup/starter_projects/Search agent.json,sha256=ba8ZcNUuYuITxAn-W592hiY6ZT9cmKy06OkeikxFDCg,98745
417
- langflow/initial_setup/starter_projects/Sequential Tasks Agents.json,sha256=ztVzvWUSTU_Zdw6SxbSnXeF1Ss_0MJ68X5oUlIhDjS4,282155
418
- langflow/initial_setup/starter_projects/Simple Agent.json,sha256=M8UCPeuJJYw3_UgQgl_M7HpD50j04IPN7P7B-ZwgQb0,127562
419
- langflow/initial_setup/starter_projects/Social Media Agent.json,sha256=HskGFBVHsxTWCbjLsHwABlQHUQhh9OFeXddxuyNpoIw,137023
427
+ langflow/initial_setup/starter_projects/SaaS Pricing.json,sha256=vUEp8IWhtPoyl8WO4bkcZoiG-a6KLiyKWs3k6XUapnc,98078
428
+ langflow/initial_setup/starter_projects/Search agent.json,sha256=AlKuHflC3zjOsvIrXZ0E0mcTzDm9qa_kfk2kKExSzR8,98757
429
+ langflow/initial_setup/starter_projects/Sequential Tasks Agents.json,sha256=lRDly-Fzf8hDntIM8HrixwDzpayPah7H7VmM1cIUgyM,282191
430
+ langflow/initial_setup/starter_projects/Simple Agent.json,sha256=bcvq-3UuGemmGggFDOaKb46AwvA9nqUxvMKw6S8dSA4,127574
431
+ langflow/initial_setup/starter_projects/Social Media Agent.json,sha256=qsMDMnN1SPuj4g7u4fhWh8LAF344baSsaXWZjoDiemg,137035
420
432
  langflow/initial_setup/starter_projects/Text Sentiment Analysis.json,sha256=GYOui5uxRMSxKgBmEbV14pnwQaqZx0yv0fIb9tDSvNA,166165
421
- langflow/initial_setup/starter_projects/Travel Planning Agents.json,sha256=ftNMf_2Poucse0dnpIP0gEM30bWY5D9xd8ruIwYPItM,244308
433
+ langflow/initial_setup/starter_projects/Travel Planning Agents.json,sha256=HB5X4ZeGm_85VhKWWGoYW33QqzqqO4oJ4aGdkS6cUKc,244344
422
434
  langflow/initial_setup/starter_projects/Twitter Thread Generator.json,sha256=w-rgiayvKroD8IGsT_sXThazT9O2dKFunfFBOlLomp0,106272
423
435
  langflow/initial_setup/starter_projects/Vector Store RAG.json,sha256=EOjCDOv7p1mS8gd2QUWBItGfzHpWGswgoR2QZb-FdGQ,357760
424
- langflow/initial_setup/starter_projects/Youtube Analysis.json,sha256=ZBX3I_zARLl5pxXVgmEj3PsZ1nWLDtPicIcMTybUeK8,185807
436
+ langflow/initial_setup/starter_projects/Youtube Analysis.json,sha256=NHLAE8Ds4L7azptrXS1Tdcu5EIgL8B_iZgJ2cX6jh9I,185819
425
437
  langflow/initial_setup/starter_projects/__init__.py,sha256=c5Z92jvCm680uhVKycyps-BX-lEHjjPKWcsI86METUA,673
426
438
  langflow/initial_setup/starter_projects/basic_prompting.py,sha256=Lw7anZebWGcypu6S1QM4Zmi7ztk14TJvuPSEC2QjTyo,837
427
439
  langflow/initial_setup/starter_projects/blog_writer.py,sha256=zfLn_b9NJ9K5jWLdYYXEKHIGg0KXEWRvWPlj5hE-nPo,1432
@@ -627,7 +639,7 @@ langflow/utils/util.py,sha256=_jb0L7bh5Chs6oCY9QxsiwTY70xHi-pRuCgkxKhUrhw,1462
627
639
  langflow/utils/validate.py,sha256=BPqoIMvjl4wbMJTTWo1zMHP0kQCa2TfmDT9f-nPT9Ng,112
628
640
  langflow/utils/version.py,sha256=OjSj0smls9XnPd4-LpTH9AWyUO_NAn5mncqKkkXl_fw,2840
629
641
  langflow/utils/voice_utils.py,sha256=Ypxg8s5jFd1o5wBbx1W8oKK7vh4kwo0-iuTcFqIwy5I,3350
630
- langflow_base_nightly-0.5.1.dev23.dist-info/METADATA,sha256=JlRAUp22yj0arE_07rJvCCbCZpXsjMNVep9FVQUrdWY,4286
631
- langflow_base_nightly-0.5.1.dev23.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
632
- langflow_base_nightly-0.5.1.dev23.dist-info/entry_points.txt,sha256=JvuLdXSrkeDmDdpb8M-VvFIzb84n4HmqUcIP10_EIF8,57
633
- langflow_base_nightly-0.5.1.dev23.dist-info/RECORD,,
642
+ langflow_base_nightly-0.5.1.dev24.dist-info/METADATA,sha256=CwInF_B8BuBcvh-IVn0kgUNn1aHfYxj2sOHxsYxs-RU,4286
643
+ langflow_base_nightly-0.5.1.dev24.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
644
+ langflow_base_nightly-0.5.1.dev24.dist-info/entry_points.txt,sha256=JvuLdXSrkeDmDdpb8M-VvFIzb84n4HmqUcIP10_EIF8,57
645
+ langflow_base_nightly-0.5.1.dev24.dist-info/RECORD,,