lfx-nightly 0.1.12.dev39__py3-none-any.whl → 0.1.12.dev41__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.

Potentially problematic release.


This version of lfx-nightly might be problematic. Click here for more details.

Files changed (41) hide show
  1. lfx/_assets/component_index.json +1 -1
  2. lfx/base/composio/composio_base.py +383 -42
  3. lfx/base/models/google_generative_ai_model.py +38 -0
  4. lfx/components/agents/__init__.py +3 -1
  5. lfx/components/agents/cuga_agent.py +995 -0
  6. lfx/components/arxiv/arxiv.py +8 -2
  7. lfx/components/composio/__init__.py +71 -17
  8. lfx/components/composio/agentql_composio.py +11 -0
  9. lfx/components/composio/agiled_composio.py +11 -0
  10. lfx/components/composio/bolna_composio.py +11 -0
  11. lfx/components/composio/brightdata_composio.py +11 -0
  12. lfx/components/composio/canvas_composio.py +11 -0
  13. lfx/components/composio/digicert_composio.py +11 -0
  14. lfx/components/composio/finage_composio.py +11 -0
  15. lfx/components/composio/fixer_composio.py +11 -0
  16. lfx/components/composio/flexisign_composio.py +11 -0
  17. lfx/components/composio/freshdesk_composio.py +11 -0
  18. lfx/components/composio/googleclassroom_composio.py +11 -0
  19. lfx/components/composio/instagram_composio.py +11 -0
  20. lfx/components/composio/jira_composio.py +11 -0
  21. lfx/components/composio/jotform_composio.py +11 -0
  22. lfx/components/composio/listennotes_composio.py +11 -0
  23. lfx/components/composio/missive_composio.py +11 -0
  24. lfx/components/composio/pandadoc_composio.py +11 -0
  25. lfx/components/composio/slack_composio.py +573 -2
  26. lfx/components/composio/timelinesai_composio.py +11 -0
  27. lfx/components/datastax/astra_db.py +1 -0
  28. lfx/components/datastax/astradb_cql.py +1 -1
  29. lfx/components/datastax/astradb_graph.py +1 -0
  30. lfx/components/datastax/astradb_tool.py +1 -1
  31. lfx/components/datastax/astradb_vectorstore.py +1 -1
  32. lfx/components/datastax/hcd.py +1 -0
  33. lfx/components/google/google_generative_ai.py +4 -7
  34. lfx/components/logic/__init__.py +3 -0
  35. lfx/components/logic/llm_conditional_router.py +65 -21
  36. lfx/components/models/language_model.py +2 -2
  37. lfx/components/processing/lambda_filter.py +82 -18
  38. {lfx_nightly-0.1.12.dev39.dist-info → lfx_nightly-0.1.12.dev41.dist-info}/METADATA +1 -1
  39. {lfx_nightly-0.1.12.dev39.dist-info → lfx_nightly-0.1.12.dev41.dist-info}/RECORD +41 -21
  40. {lfx_nightly-0.1.12.dev39.dist-info → lfx_nightly-0.1.12.dev41.dist-info}/WHEEL +0 -0
  41. {lfx_nightly-0.1.12.dev39.dist-info → lfx_nightly-0.1.12.dev41.dist-info}/entry_points.txt +0 -0
@@ -4,6 +4,7 @@ import requests
4
4
  from pydantic.v1 import SecretStr
5
5
 
6
6
  from lfx.base.models.google_generative_ai_constants import GOOGLE_GENERATIVE_AI_MODELS
7
+ from lfx.base.models.google_generative_ai_model import ChatGoogleGenerativeAIFixed
7
8
  from lfx.base.models.model import LCModelComponent
8
9
  from lfx.field_typing import LanguageModel
9
10
  from lfx.field_typing.range_spec import RangeSpec
@@ -74,12 +75,6 @@ class GoogleGenerativeAIComponent(LCModelComponent):
74
75
  ]
75
76
 
76
77
  def build_model(self) -> LanguageModel: # type: ignore[type-var]
77
- try:
78
- from langchain_google_genai import ChatGoogleGenerativeAI
79
- except ImportError as e:
80
- msg = "The 'langchain_google_genai' package is required to use the Google Generative AI model."
81
- raise ImportError(msg) from e
82
-
83
78
  google_api_key = self.api_key
84
79
  model = self.model_name
85
80
  max_output_tokens = self.max_output_tokens
@@ -88,7 +83,9 @@ class GoogleGenerativeAIComponent(LCModelComponent):
88
83
  top_p = self.top_p
89
84
  n = self.n
90
85
 
91
- return ChatGoogleGenerativeAI(
86
+ # Use modified ChatGoogleGenerativeAIFixed class for multiple function support
87
+ # TODO: Potentially remove when fixed upstream
88
+ return ChatGoogleGenerativeAIFixed(
92
89
  model=model,
93
90
  max_output_tokens=max_output_tokens or None,
94
91
  temperature=temperature,
@@ -8,6 +8,7 @@ if TYPE_CHECKING:
8
8
  from lfx.components.logic.conditional_router import ConditionalRouterComponent
9
9
  from lfx.components.logic.data_conditional_router import DataConditionalRouterComponent
10
10
  from lfx.components.logic.flow_tool import FlowToolComponent
11
+ from lfx.components.logic.llm_conditional_router import SmartRouterComponent
11
12
  from lfx.components.logic.loop import LoopComponent
12
13
  from lfx.components.logic.pass_message import PassMessageComponent
13
14
  from lfx.components.logic.run_flow import RunFlowComponent
@@ -20,6 +21,7 @@ _dynamic_imports = {
20
21
  "LoopComponent": "loop",
21
22
  "PassMessageComponent": "pass_message",
22
23
  "RunFlowComponent": "run_flow",
24
+ "SmartRouterComponent": "llm_conditional_router",
23
25
  "SubFlowComponent": "sub_flow",
24
26
  }
25
27
 
@@ -30,6 +32,7 @@ __all__ = [
30
32
  "LoopComponent",
31
33
  "PassMessageComponent",
32
34
  "RunFlowComponent",
35
+ "SmartRouterComponent",
33
36
  "SubFlowComponent",
34
37
  ]
35
38
 
@@ -1,8 +1,9 @@
1
1
  from typing import Any
2
2
 
3
- from langflow.custom import Component
4
- from langflow.io import BoolInput, HandleInput, MessageInput, MessageTextInput, MultilineInput, Output, TableInput
5
- from langflow.schema.message import Message
3
+ from lfx.custom import Component
4
+ from lfx.io import BoolInput, HandleInput, MessageInput, MessageTextInput, MultilineInput, Output, TableInput
5
+ from lfx.schema.message import Message
6
+ from lfx.schema.table import EditMode
6
7
 
7
8
 
8
9
  class SmartRouterComponent(Component):
@@ -39,21 +40,42 @@ class SmartRouterComponent(Component):
39
40
  table_schema=[
40
41
  {
41
42
  "name": "route_category",
42
- "display_name": "Route/Category",
43
+ "display_name": "Route Name",
43
44
  "type": "str",
44
- "description": "Name for the route/category (used for both output name and category matching)",
45
+ "description": "Name for the route (used for both output name and category matching)",
46
+ "edit_mode": EditMode.INLINE,
47
+ },
48
+ {
49
+ "name": "route_description",
50
+ "display_name": "Route Description",
51
+ "type": "str",
52
+ "description": "Description of when this route should be used (helps LLM understand the category)",
53
+ "default": "",
54
+ "edit_mode": EditMode.POPOVER,
45
55
  },
46
56
  {
47
57
  "name": "output_value",
48
- "display_name": "Output Value",
58
+ "display_name": "Route Message (Optional)",
49
59
  "type": "str",
50
- "description": "Custom message for this category (overrides default output message if filled)",
60
+ "description": (
61
+ "Optional message to send when this route is matched."
62
+ "Leave empty to pass through the original input text."
63
+ ),
51
64
  "default": "",
65
+ "edit_mode": EditMode.POPOVER,
52
66
  },
53
67
  ],
54
68
  value=[
55
- {"route_category": "Positive", "output_value": ""},
56
- {"route_category": "Negative", "output_value": ""},
69
+ {
70
+ "route_category": "Positive",
71
+ "route_description": "Positive feedback, satisfaction, or compliments",
72
+ "output_value": "",
73
+ },
74
+ {
75
+ "route_category": "Negative",
76
+ "route_description": "Complaints, issues, or dissatisfaction",
77
+ "output_value": "",
78
+ },
57
79
  ],
58
80
  real_time_refresh=True,
59
81
  required=True,
@@ -125,6 +147,7 @@ class SmartRouterComponent(Component):
125
147
  # Clear any previous match state
126
148
  self._matched_category = None
127
149
 
150
+ # Get categories and input text
128
151
  categories = getattr(self, "routes", [])
129
152
  input_text = getattr(self, "input_text", "")
130
153
 
@@ -134,17 +157,23 @@ class SmartRouterComponent(Component):
134
157
 
135
158
  if llm and categories:
136
159
  # Create prompt for categorization
137
- category_values = [
138
- category.get("route_category", f"Category {i + 1}") for i, category in enumerate(categories)
139
- ]
140
- categories_text = ", ".join([f'"{cat}"' for cat in category_values if cat])
160
+ category_info = []
161
+ for i, category in enumerate(categories):
162
+ cat_name = category.get("route_category", f"Category {i + 1}")
163
+ cat_desc = category.get("route_description", "")
164
+ if cat_desc and cat_desc.strip():
165
+ category_info.append(f'"{cat_name}": {cat_desc}')
166
+ else:
167
+ category_info.append(f'"{cat_name}"')
168
+
169
+ categories_text = "\n".join([f"- {info}" for info in category_info if info])
141
170
 
142
171
  # Create base prompt
143
172
  base_prompt = (
144
173
  f"You are a text classifier. Given the following text and categories, "
145
174
  f"determine which category best matches the text.\n\n"
146
175
  f'Text to classify: "{input_text}"\n\n'
147
- f"Available categories: {categories_text}\n\n"
176
+ f"Available categories:\n{categories_text}\n\n"
148
177
  f"Respond with ONLY the exact category name that best matches the text. "
149
178
  f'If none match well, respond with "NONE".\n\n'
150
179
  f"Category:"
@@ -155,7 +184,11 @@ class SmartRouterComponent(Component):
155
184
  if custom_prompt and custom_prompt.strip():
156
185
  self.status = "Using custom prompt as additional instructions"
157
186
  # Format custom prompt with variables
158
- formatted_custom = custom_prompt.format(input_text=input_text, routes=categories_text)
187
+ # For the routes variable, create a simpler format for custom prompt usage
188
+ simple_routes = ", ".join(
189
+ [f'"{cat.get("route_category", f"Category {i + 1}")}"' for i, cat in enumerate(categories)]
190
+ )
191
+ formatted_custom = custom_prompt.format(input_text=input_text, routes=simple_routes)
159
192
  # Combine base prompt with custom instructions
160
193
  prompt = f"{base_prompt}\n\nAdditional Instructions:\n{formatted_custom}"
161
194
  else:
@@ -188,6 +221,7 @@ class SmartRouterComponent(Component):
188
221
  f"Comparing '{categorization}' with category {i + 1}: route_category='{route_category}'"
189
222
  )
190
223
 
224
+ # Case-insensitive match
191
225
  if categorization.lower() == route_category.lower():
192
226
  matched_category = i
193
227
  self.status = f"MATCH FOUND! Category {i + 1} matched with '{categorization}'"
@@ -286,17 +320,23 @@ class SmartRouterComponent(Component):
286
320
  if llm and categories:
287
321
  try:
288
322
  # Create prompt for categorization
289
- category_values = [
290
- category.get("route_category", f"Category {i + 1}") for i, category in enumerate(categories)
291
- ]
292
- categories_text = ", ".join([f'"{cat}"' for cat in category_values if cat])
323
+ category_info = []
324
+ for i, category in enumerate(categories):
325
+ cat_name = category.get("route_category", f"Category {i + 1}")
326
+ cat_desc = category.get("route_description", "")
327
+ if cat_desc and cat_desc.strip():
328
+ category_info.append(f'"{cat_name}": {cat_desc}')
329
+ else:
330
+ category_info.append(f'"{cat_name}"')
331
+
332
+ categories_text = "\n".join([f"- {info}" for info in category_info if info])
293
333
 
294
334
  # Create base prompt
295
335
  base_prompt = (
296
336
  "You are a text classifier. Given the following text and categories, "
297
337
  "determine which category best matches the text.\n\n"
298
338
  f'Text to classify: "{input_text}"\n\n'
299
- f"Available categories: {categories_text}\n\n"
339
+ f"Available categories:\n{categories_text}\n\n"
300
340
  "Respond with ONLY the exact category name that best matches the text. "
301
341
  'If none match well, respond with "NONE".\n\n'
302
342
  "Category:"
@@ -307,7 +347,11 @@ class SmartRouterComponent(Component):
307
347
  if custom_prompt and custom_prompt.strip():
308
348
  self.status = "Using custom prompt as additional instructions (default check)"
309
349
  # Format custom prompt with variables
310
- formatted_custom = custom_prompt.format(input_text=input_text, routes=categories_text)
350
+ # For the routes variable, create a simpler format for custom prompt usage
351
+ simple_routes = ", ".join(
352
+ [f'"{cat.get("route_category", f"Category {i + 1}")}"' for i, cat in enumerate(categories)]
353
+ )
354
+ formatted_custom = custom_prompt.format(input_text=input_text, routes=simple_routes)
311
355
  # Combine base prompt with custom instructions
312
356
  prompt = f"{base_prompt}\n\nAdditional Instructions:\n{formatted_custom}"
313
357
  else:
@@ -1,11 +1,11 @@
1
1
  from typing import Any
2
2
 
3
3
  from langchain_anthropic import ChatAnthropic
4
- from langchain_google_genai import ChatGoogleGenerativeAI
5
4
  from langchain_openai import ChatOpenAI
6
5
 
7
6
  from lfx.base.models.anthropic_constants import ANTHROPIC_MODELS
8
7
  from lfx.base.models.google_generative_ai_constants import GOOGLE_GENERATIVE_AI_MODELS
8
+ from lfx.base.models.google_generative_ai_model import ChatGoogleGenerativeAIFixed
9
9
  from lfx.base.models.model import LCModelComponent
10
10
  from lfx.base.models.openai_constants import OPENAI_CHAT_MODEL_NAMES, OPENAI_REASONING_MODEL_NAMES
11
11
  from lfx.field_typing import LanguageModel
@@ -112,7 +112,7 @@ class LanguageModelComponent(LCModelComponent):
112
112
  if not self.api_key:
113
113
  msg = "Google API key is required when using Google provider"
114
114
  raise ValueError(msg)
115
- return ChatGoogleGenerativeAI(
115
+ return ChatGoogleGenerativeAIFixed(
116
116
  model=model_name,
117
117
  temperature=temperature,
118
118
  streaming=stream,
@@ -7,7 +7,7 @@ from typing import TYPE_CHECKING, Any
7
7
  from lfx.custom.custom_component.component import Component
8
8
  from lfx.io import DataInput, HandleInput, IntInput, MultilineInput, Output
9
9
  from lfx.schema.data import Data
10
- from lfx.utils.data_structure import get_data_structure
10
+ from lfx.schema.dataframe import DataFrame
11
11
 
12
12
  if TYPE_CHECKING:
13
13
  from collections.abc import Callable
@@ -25,6 +25,7 @@ class LambdaFilterComponent(Component):
25
25
  name="data",
26
26
  display_name="Data",
27
27
  info="The structured data to filter or transform using a lambda function.",
28
+ input_types=["Data", "DataFrame"],
28
29
  is_list=True,
29
30
  required=True,
30
31
  ),
@@ -63,24 +64,67 @@ class LambdaFilterComponent(Component):
63
64
 
64
65
  outputs = [
65
66
  Output(
66
- display_name="Filtered Data",
67
- name="filtered_data",
68
- method="filter_data",
67
+ display_name="Output",
68
+ name="data_output",
69
+ method="process_as_data",
70
+ ),
71
+ Output(
72
+ display_name="Output",
73
+ name="dataframe_output",
74
+ method="process_as_dataframe",
69
75
  ),
70
76
  ]
71
77
 
72
78
  def get_data_structure(self, data):
73
- """Extract the structure of a dictionary, replacing values with their types."""
74
- return {k: get_data_structure(v) for k, v in data.items()}
79
+ """Extract the structure of data, replacing values with their types."""
80
+ if isinstance(data, list):
81
+ # For lists, get structure of first item if available
82
+ if data:
83
+ return [self.get_data_structure(data[0])]
84
+ return []
85
+ if isinstance(data, dict):
86
+ return {k: self.get_data_structure(v) for k, v in data.items()}
87
+ # For primitive types, return the type name
88
+ return type(data).__name__
75
89
 
76
90
  def _validate_lambda(self, lambda_text: str) -> bool:
77
91
  """Validate the provided lambda function text."""
78
92
  # Return False if the lambda function does not start with 'lambda' or does not contain a colon
79
93
  return lambda_text.strip().startswith("lambda") and ":" in lambda_text
80
94
 
81
- async def filter_data(self) -> list[Data]:
95
+ async def _execute_lambda(self) -> Any:
82
96
  self.log(str(self.data))
83
- data = self.data[0].data if isinstance(self.data, list) else self.data.data
97
+
98
+ # Convert input to a unified format
99
+ if isinstance(self.data, list):
100
+ # Handle list of Data or DataFrame objects
101
+ combined_data = []
102
+ for item in self.data:
103
+ if isinstance(item, DataFrame):
104
+ # DataFrame to list of dicts
105
+ combined_data.extend(item.to_dict(orient="records"))
106
+ elif hasattr(item, "data"):
107
+ # Data object
108
+ if isinstance(item.data, dict):
109
+ combined_data.append(item.data)
110
+ elif isinstance(item.data, list):
111
+ combined_data.extend(item.data)
112
+
113
+ # If we have a single dict, unwrap it so lambdas can access it directly
114
+ if len(combined_data) == 1 and isinstance(combined_data[0], dict):
115
+ data = combined_data[0]
116
+ elif len(combined_data) == 0:
117
+ data = {}
118
+ else:
119
+ data = combined_data # type: ignore[assignment]
120
+ elif isinstance(self.data, DataFrame):
121
+ # Single DataFrame to list of dicts
122
+ data = self.data.to_dict(orient="records")
123
+ elif hasattr(self.data, "data"):
124
+ # Single Data object
125
+ data = self.data.data
126
+ else:
127
+ data = self.data
84
128
 
85
129
  dump = json.dumps(data)
86
130
  self.log(str(data))
@@ -142,13 +186,33 @@ class LambdaFilterComponent(Component):
142
186
  fn: Callable[[Any], Any] = eval(lambda_text) # noqa: S307
143
187
 
144
188
  # Apply the lambda function to the data
145
- processed_data = fn(data)
146
-
147
- # If it's a dict, wrap it in a Data object
148
- if isinstance(processed_data, dict):
149
- return [Data(**processed_data)]
150
- # If it's a list, convert each item to a Data object
151
- if isinstance(processed_data, list):
152
- return [Data(**item) if isinstance(item, dict) else Data(text=str(item)) for item in processed_data]
153
- # If it's anything else, convert to string and wrap in a Data object
154
- return [Data(text=str(processed_data))]
189
+ return fn(data)
190
+
191
+ async def process_as_data(self) -> Data:
192
+ """Process the data and return as a Data object."""
193
+ result = await self._execute_lambda()
194
+
195
+ # Convert result to Data based on type
196
+ if isinstance(result, dict):
197
+ return Data(data=result)
198
+ if isinstance(result, list):
199
+ return Data(data={"_results": result})
200
+ # For other types, convert to string
201
+ return Data(data={"text": str(result)})
202
+
203
+ async def process_as_dataframe(self) -> DataFrame:
204
+ """Process the data and return as a DataFrame."""
205
+ result = await self._execute_lambda()
206
+
207
+ # Convert result to DataFrame based on type
208
+ if isinstance(result, list):
209
+ # Check if it's a list of dicts
210
+ if all(isinstance(item, dict) for item in result):
211
+ return DataFrame(result)
212
+ # List of non-dicts: wrap each value
213
+ return DataFrame([{"value": item} for item in result])
214
+ if isinstance(result, dict):
215
+ # Single dict becomes single-row DataFrame
216
+ return DataFrame([result])
217
+ # Other types: convert to string and wrap
218
+ return DataFrame([{"value": str(result)}])
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: lfx-nightly
3
- Version: 0.1.12.dev39
3
+ Version: 0.1.12.dev41
4
4
  Summary: Langflow Executor - A lightweight CLI tool for executing and serving Langflow AI flows
5
5
  Author-email: Gabriel Luiz Freitas Almeida <gabriel@langflow.org>
6
6
  Requires-Python: <3.14,>=3.10
@@ -4,7 +4,7 @@ lfx/constants.py,sha256=Ert_SpwXhutgcTKEvtDArtkONXgyE5x68opMoQfukMA,203
4
4
  lfx/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
5
5
  lfx/settings.py,sha256=wnx4zkOLQ8mvampYsnnvVV9GvEnRUuWQpKFSbFTCIp4,181
6
6
  lfx/type_extraction.py,sha256=eCZNl9nAQivKdaPv_9BK71N0JV9Rtr--veAht0dnQ4A,2921
7
- lfx/_assets/component_index.json,sha256=sEndsouwcZA59wQYbyM-HfO4FOK-VegNQ_gNQSmkyFM,3434315
7
+ lfx/_assets/component_index.json,sha256=y4N7fkmU7ashl8Xwy7vz8Eb68MdF6r0rWSFLy2hNiTs,3894751
8
8
  lfx/base/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
9
9
  lfx/base/constants.py,sha256=v9vo0Ifg8RxDu__XqgGzIXHlsnUFyWM-SSux0uHHoz8,1187
10
10
  lfx/base/agents/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -23,7 +23,7 @@ lfx/base/astra_assistants/util.py,sha256=T_W44VFoOXBF3m-0eCSrHvzbKx1gdyBF9IAWKMX
23
23
  lfx/base/chains/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
24
24
  lfx/base/chains/model.py,sha256=QSYJBc0Ygpx2Ko273u1idL_gPK2xpvRQgJb4oTx8x8s,766
25
25
  lfx/base/composio/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
26
- lfx/base/composio/composio_base.py,sha256=-E98PGHB4YK7Amt9duZvxiAWCPPn3vvR-KBj-N5VRZA,118459
26
+ lfx/base/composio/composio_base.py,sha256=AJBitxwJAirGm000njuLBdD_uBHKbcPvfHDyXuJdViY,131914
27
27
  lfx/base/compressors/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
28
28
  lfx/base/compressors/model.py,sha256=-FFBAPAy9bAgvklIo7x_uwShZR5NoMHakF6f_hNnLHg,2098
29
29
  lfx/base/curl/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -63,6 +63,7 @@ lfx/base/models/anthropic_constants.py,sha256=51_fghjdfBRyLSNj3qa-ogyWmeP518Hrds
63
63
  lfx/base/models/aws_constants.py,sha256=-Fa7T3wJqBaZhs80ATRgZP6yZ0Nsd1YYdZv9SfqT-Hs,6327
64
64
  lfx/base/models/chat_result.py,sha256=-MypS6_GKXOqWevtk0xwtrsEO4mIgpPAt7-EML5n0vA,2756
65
65
  lfx/base/models/google_generative_ai_constants.py,sha256=EuFd77ZrrSr6YtSKtmEaq0Nfa4y45AbDe_cz_18nReE,2564
66
+ lfx/base/models/google_generative_ai_model.py,sha256=wEIyBkTZcZD3akUiAKTGxazTJnOQeh80WHMKiHdK1wo,1839
66
67
  lfx/base/models/groq_constants.py,sha256=WOMpYRwJVrZavsi7zGJwRHJX8ZBvdtILUOmBFv0QIPQ,5536
67
68
  lfx/base/models/model.py,sha256=nJgExAvMJ5WMxCqC__Jc1GdkgJag4yrwC9nFtPEVupM,15324
68
69
  lfx/base/models/model_input_constants.py,sha256=WrnkAmMTk4cMjjLgBzRffJDzow7LWRpfc5GsgdRxvU4,10748
@@ -110,8 +111,9 @@ lfx/components/Notion/search.py,sha256=WEDYbNotXdlgTXrmRtpZ9_proiOJl1zouNPRpFllg
110
111
  lfx/components/Notion/update_page_property.py,sha256=tgmPMbD1eX58dQQNXv1w5FzDec7QwFiBuOqh4RazoJ0,4541
111
112
  lfx/components/agentql/__init__.py,sha256=Erl669Dzsk-SegsDPWTtkKbprMXVuv8UTCo5REzZGTc,56
112
113
  lfx/components/agentql/agentql_api.py,sha256=N94yEK7ZuQCIsFBlr_8dqrJY-K1-KNb6QEEYfDIsDME,5569
113
- lfx/components/agents/__init__.py,sha256=u1PH9Ui0dUgTdTZVP7cdVysCv4extdusKS_brcbE7Eg,1049
114
+ lfx/components/agents/__init__.py,sha256=UBu5kO9hp8yFyxTU-u9KHN9zTSoHhJSYdKtRuT5ig9c,1164
114
115
  lfx/components/agents/agent.py,sha256=cv8CqEvLKpTsR9YAg09rqjxEXbW0_GzW8oUxeWc4pHY,26681
116
+ lfx/components/agents/cuga_agent.py,sha256=ynMAF96ANB9qxGck92urkFmqmAeJRUgc6dKulpuaeTM,43518
115
117
  lfx/components/agents/mcp_component.py,sha256=mE2HvbHcdkuWWylxmaNNZobbtgBRktOOakeGwUYs7Qs,25586
116
118
  lfx/components/aiml/__init__.py,sha256=DNKB-HMFGFYmsdkON-s8557ttgBXVXADmS-BcuSQiIQ,1087
117
119
  lfx/components/aiml/aiml.py,sha256=23Ineg1ajlCoqXgWgp50I20OnQbaleRNsw1c6IzPu3A,3877
@@ -126,7 +128,7 @@ lfx/components/anthropic/anthropic.py,sha256=fIlMWma6rsfQ499vkkLSWFZqwKn5ifvhFQn
126
128
  lfx/components/apify/__init__.py,sha256=ADNTjMjTglvdC34YEgMYWippzrXWiH3ku_3RvRQcOlw,89
127
129
  lfx/components/apify/apify_actor.py,sha256=O8au5opTgLuv5QY-OUzV4-Pst1clxGKWgHPm08i5PFQ,12853
128
130
  lfx/components/arxiv/__init__.py,sha256=g3uhahiWz1ZALR65oBFfO-hmrHcJLb5HuUqbeTFZ2Ss,64
129
- lfx/components/arxiv/arxiv.py,sha256=5LE8oOCvfMjjSUfqkHDdstMlVt5sObscvP8E08i4foo,6283
131
+ lfx/components/arxiv/arxiv.py,sha256=IZI57itI_oiu_BA3q9QQRP8bh2TqIjrcOXCR7QT_DSM,6627
130
132
  lfx/components/assemblyai/__init__.py,sha256=H0Rt2gzDDgj6IL8laOpolIFzhueT08VaMiVetGvlt0c,1632
131
133
  lfx/components/assemblyai/assemblyai_get_subtitles.py,sha256=Uz0fz3x6nnplLS960F8K8ob8mZ6eY9GPVdHdkJJ61KA,3019
132
134
  lfx/components/assemblyai/assemblyai_lemur.py,sha256=jJZzirlnwlxT0SNot-9ea_odV0TpTnW70sbd49KGbjc,7577
@@ -159,33 +161,51 @@ lfx/components/cohere/__init__.py,sha256=MSTeplsNIXTVm_dUcJETy6YGb-fw7-dplC9jzAo
159
161
  lfx/components/cohere/cohere_embeddings.py,sha256=nA9BOixk534yJZymJaukBrQYBj_uB2nyYvzJPd_3aUc,3083
160
162
  lfx/components/cohere/cohere_models.py,sha256=WUhS4dcG8FBcJm2dCfhiDuaxZX8S1lICMI_Mmd6kflo,1563
161
163
  lfx/components/cohere/cohere_rerank.py,sha256=qUoNEe6sjUnvkTHkCzwayBuLDoH957BBEgb-Qu_k9Yk,1554
162
- lfx/components/composio/__init__.py,sha256=DVYKV9JyGTAWYDpAV7TeEKp_efltoOiyblQmL-qq4Ok,5175
164
+ lfx/components/composio/__init__.py,sha256=Ycwax7TUDTez6O9Q9cv0I9GT0eB1hquDIOMJo51R_64,7996
165
+ lfx/components/composio/agentql_composio.py,sha256=zKcIoQq2WmY_if3b7e6N0S5Z-k1aDAoQSoeKePiRIwI,352
166
+ lfx/components/composio/agiled_composio.py,sha256=MpSpUaGo0t2Lu-KzHpv4NT0LZNbvLwkdZ3gJ0gf9cdk,347
163
167
  lfx/components/composio/airtable_composio.py,sha256=5HrQEcM8bW7xv4AE5NIWyBzfgopxf9SIIpdcQHuy978,357
164
168
  lfx/components/composio/asana_composio.py,sha256=KQ1tYdBJKOhtOqI11r8x2HxA0X21F7YaU-KEs3BOqAE,342
165
169
  lfx/components/composio/attio_composio.py,sha256=3kOzz1Zx4_sXEqGY26l3r0nYK6c-RxCYchUwBGZ_vG0,342
170
+ lfx/components/composio/bolna_composio.py,sha256=3efS7oCiYxXOt3suHSSDUhpmRIoZKQsLY_Fsvl4GDUs,342
171
+ lfx/components/composio/brightdata_composio.py,sha256=SaBMWiPLoSQ8aIdBohJbaHZfkudPYYhYFkVxls28ETg,367
166
172
  lfx/components/composio/calendly_composio.py,sha256=SiguQT1VKiQ1F_sJs0ZGtNR6qoRYVCtpGbwYelmwU2A,357
173
+ lfx/components/composio/canvas_composio.py,sha256=ZRDSEqcg9q9ZnsTKhOqux8g9zlsPDzBZg8aojt1rAYA,348
167
174
  lfx/components/composio/composio_api.py,sha256=xBzxP4T_mPToP5teroP2C4vDiJiyK-tzclDKHxdPRHM,10667
168
175
  lfx/components/composio/contentful_composio.py,sha256=Nr77Hsj8R-B_QALVY4aabas4bEjD_xfVdsVdh9_bGu4,367
176
+ lfx/components/composio/digicert_composio.py,sha256=D8vBuJn48UIHV8u_lBFTUJJZPUw_l4Mbh9tbsgBAGVI,357
169
177
  lfx/components/composio/discord_composio.py,sha256=3X4b7Wun7N4yt7KV6Hd120t_keNXm3cIMRWajeHSfsM,352
170
178
  lfx/components/composio/dropbox_compnent.py,sha256=0FglWZ3vZYQFNo8OJcIMoIE8HQi3N5w2JY8FBhrS4sg,352
171
179
  lfx/components/composio/figma_composio.py,sha256=dEPSE1RrJMFuW63R9KPc3HKi3v-ztfHUDHspgagvE-w,342
180
+ lfx/components/composio/finage_composio.py,sha256=UKK97kzRZgwBNZsOuYTMta912LwoBjqMcaLzogRrRGs,347
181
+ lfx/components/composio/fixer_composio.py,sha256=nkwA-dzYiNpIrKgRg1qYzxWf8VGTqs5XH9KK-obqQEM,342
182
+ lfx/components/composio/flexisign_composio.py,sha256=xpu-4ABdiOuzFb4tIVfTx8evQYJbfUN3YLkv3EWWV1c,362
183
+ lfx/components/composio/freshdesk_composio.py,sha256=Hd4D1hXKmXTec0JdR7WFGx-YhUqSsD4jtbZfNJHU01A,362
172
184
  lfx/components/composio/github_composio.py,sha256=-KutXeX95w3uUyBufvVmLMYuwHhSPxswLMpI6YrUgWs,347
173
185
  lfx/components/composio/gmail_composio.py,sha256=VQiEIi3hWIj4tWzFD2yARqhn2uCifp_rdsJzCjSIyKg,1342
174
186
  lfx/components/composio/googlecalendar_composio.py,sha256=hyMyC2yblNCQb8sxa2t2tnke_zE5Uq1OkEAvd_kfIE4,389
187
+ lfx/components/composio/googleclassroom_composio.py,sha256=haXDfBP2mkPgnRUl62eaY7mVlaWpy8Vt_O2LQOafQ98,389
175
188
  lfx/components/composio/googledocs_composio.py,sha256=_EIPZqeAPWD5ptTb3h9-Yxaajr_zQo26ZSBzpwBwVyo,369
176
189
  lfx/components/composio/googlemeet_composio.py,sha256=xU25iiHRMW0rcCNq0fxmuiEQN7mv1K7NnRqgTg7SBCI,373
177
190
  lfx/components/composio/googlesheets_composio.py,sha256=o-84aBcIgQd7md5WdUwRV8tF3QBzTms3Idko2ybgAMA,379
178
191
  lfx/components/composio/googletasks_composio.py,sha256=3bmyDAX8OwB6KryAiAitue6rHdeZBoDfJ6q6rzuwOcs,276
192
+ lfx/components/composio/instagram_composio.py,sha256=pmkckFgz2gLtB9JE_uJ8FQsgGdBSrB0cUUXttas6ZB8,362
193
+ lfx/components/composio/jira_composio.py,sha256=PmI5bzhoNy5yE9cfV86gWpPtONJEc4ROoLCg_oFY3_4,337
194
+ lfx/components/composio/jotform_composio.py,sha256=fBxqZ2gU9jwNN1BzMEqeprH_cxSKys4PvDiFTawuCEw,352
179
195
  lfx/components/composio/klaviyo_composio.py,sha256=O-fopeP-_RoTdZLHlRlcS5S5jTb3JkT7nE-BIYqIISk,352
180
196
  lfx/components/composio/linear_composio.py,sha256=visuu-6nQizgbEM2C6GwvHXYY59_mfGx-rhS4QvQjIA,347
197
+ lfx/components/composio/listennotes_composio.py,sha256=uF8v5RkGQeWy9OLLoyOk4g2GvGMpzBAsxee9uxZoNt0,372
181
198
  lfx/components/composio/miro_composio.py,sha256=HpxCHhrEGXD8pCPzI9BX3pomIw2tysDCCmzRo_y9i48,337
199
+ lfx/components/composio/missive_composio.py,sha256=be-USnc5zfpT5Ndr3ClDKMtWZ1y8ozPmsCTC2Ekf5Yg,352
182
200
  lfx/components/composio/notion_composio.py,sha256=WQqm_zDRxMtiqomYuzH0Q4hM2ceNJHiHJVr6l-aviKY,347
183
201
  lfx/components/composio/onedrive_composio.py,sha256=SXzEYlEhyHNxPu_1_GuQF0FykO5twCpkDy-G3hHlcOQ,359
184
202
  lfx/components/composio/outlook_composio.py,sha256=v2mY1gtjUYsTDBD2TdKAUo8E-Y_2YT4ZOBLrv2qrkww,350
203
+ lfx/components/composio/pandadoc_composio.py,sha256=Idkqq8G_5pqqsPF0LtUSGEZYHOcuB4DJJABd3i2rWUQ,357
185
204
  lfx/components/composio/reddit_composio.py,sha256=qGeUBzwiUlk_ojDhuMfXpK2pPUXdLPLOA9LXq8W-zE4,347
186
- lfx/components/composio/slack_composio.py,sha256=AtvmGTu-nzaahIvg9J1QcQSVR8datd6iTLTy2WpuuOE,342
205
+ lfx/components/composio/slack_composio.py,sha256=21re5KgNjtKTqHLJ9Bc7Y87lr5UAHejgCFY2UkBNnck,27453
187
206
  lfx/components/composio/slackbot_composio.py,sha256=sTL6VbzuW-Y0rbLEP8O6ypAWoT7pNUC35JhnvP5f4mQ,354
188
207
  lfx/components/composio/supabase_composio.py,sha256=etWM40zAwrCmLQrQeN-Pa4i9YU8hr7VIf0BhYKNH1Cg,357
208
+ lfx/components/composio/timelinesai_composio.py,sha256=ducOLeTTlk6PgywrC-o7e5scgrjtmBYBRNWOqvjGPhM,372
189
209
  lfx/components/composio/todoist_composio.py,sha256=TdmFLyBYBxTa88Hq18ZaFmS1_UjPXp2I-lRvEJcbEyI,352
190
210
  lfx/components/composio/wrike_composio.py,sha256=pfLPAMoI39rY8aFtFpnSyK29vZZvdXn3Tp50HyIXncs,342
191
211
  lfx/components/composio/youtube_composio.py,sha256=EaW3f8Cthza9IkHebwjld5u2Vvwa3SyoStplCDVWy00,352
@@ -218,12 +238,12 @@ lfx/components/data/web_search.py,sha256=48SCp-2I_Qckp5tmTVC9JBw2C-MhBDF14MJLaGj
218
238
  lfx/components/data/webhook.py,sha256=i2jdXSLUVA0UpnYBZzdPo035MeiUcFKVJy37EhLKq6o,1643
219
239
  lfx/components/datastax/__init__.py,sha256=VEh_Qu8dYPOVB9dISRaxheFPKxzQoNNe1DCwTWTGNIU,2415
220
240
  lfx/components/datastax/astra_assistant_manager.py,sha256=5vLbuCxSz04GKxEpP0TNm9K_RAxxoMTz-Mt_YhkyfH0,11557
221
- lfx/components/datastax/astra_db.py,sha256=kbn61B_08mu7_uzf3shJKJjmtPt2y_WzvrxsHCVDX8Y,2697
241
+ lfx/components/datastax/astra_db.py,sha256=i5LL87sirODcFEugJVjs0PPgk-9yCyz8lwMQFynrqvM,2788
222
242
  lfx/components/datastax/astra_vectorize.py,sha256=PZdmkMJiPAnTankXjFjdG192OeHVetxBfGzbwxgPQ54,4912
223
- lfx/components/datastax/astradb_cql.py,sha256=N83xczQuzSarqoowgIg_B12_Eh4U6YL2X30ckS9Jt5E,11790
224
- lfx/components/datastax/astradb_graph.py,sha256=5rtUexk4IcvRmbzWeSSljfDF6XaeClHWZU1frO47wbo,12758
225
- lfx/components/datastax/astradb_tool.py,sha256=grali1__qDekob3O10JVR5bPLUbJH6U5pI8rMzcXvRI,16742
226
- lfx/components/datastax/astradb_vectorstore.py,sha256=YaGMjKE3BaWz0EHFo5GUfl_PLsFlBgSbswXxnRWRkZ0,53718
243
+ lfx/components/datastax/astradb_cql.py,sha256=pHms51vCfx-h0Vyjhoi0Sr3WLVWww9XEyeuQVZTxy84,11774
244
+ lfx/components/datastax/astradb_graph.py,sha256=Og-9UMxWk3CzEJ2-fGPnfLzik3dzlbIDEKMYvd3ZMM0,12843
245
+ lfx/components/datastax/astradb_tool.py,sha256=5tIrdsxbsZ8NpmxBHww_5_tDnCr-Me5kUtJRxxSQT4Y,16744
246
+ lfx/components/datastax/astradb_vectorstore.py,sha256=K2OnNfuJfEGMwnkLgIzh8gKWMFbDpOVBUntSt9tqPO0,53710
227
247
  lfx/components/datastax/cassandra.py,sha256=9klxgphOLxOPu32cweSt6UJXzFctJxf38v1nGhumpNo,3197
228
248
  lfx/components/datastax/create_assistant.py,sha256=VJ0-XMLq5otLPZNS69X5PhVfUHfEVNnkwYWx2XCLhB4,2106
229
249
  lfx/components/datastax/create_thread.py,sha256=zpFOpUfz_lXhtA4n6B1T0xzIYr0bhpn9SiZDiaaa3gU,1085
@@ -231,7 +251,7 @@ lfx/components/datastax/dotenv.py,sha256=S7m1a5UcJ-hQvOf7-ikeI-V430fSyWxLkN_NOvs
231
251
  lfx/components/datastax/get_assistant.py,sha256=oA5HcSr3riI6xok9c_09IG-FFLUNt3DTjc0PbLUKhxY,1255
232
252
  lfx/components/datastax/getenvvar.py,sha256=rbg3ly45OmQfPnF2SIWp_JduAzH5U1MAXMZjkfeDJpI,947
233
253
  lfx/components/datastax/graph_rag.py,sha256=4NmYQkjSru_zaDhJfxdaYtap-RMGJfv2AYN2NEYSdds,5163
234
- lfx/components/datastax/hcd.py,sha256=Fo7Zj4U-A1ZcbsdhlTxheMJDy8EzbYWlo85iY6vASnQ,12379
254
+ lfx/components/datastax/hcd.py,sha256=fnRp4DvFTHqDlKZD-a0xZBGoPrVvxaZ_vXJXzHzt-ts,12478
235
255
  lfx/components/datastax/list_assistants.py,sha256=W5ROMSBoZdGo4ShB9i6Uzb3lXz-hy9gr0t0N2cgUTPM,928
236
256
  lfx/components/datastax/run.py,sha256=yPP8_5wBsHjo0OyPYGWJ2uvgQGT446ZsoN-DF6DaaU4,3063
237
257
  lfx/components/deactivated/__init__.py,sha256=A94MZ_EW-Ckp2sgDMiXNrptAaUzMbgbkl6yVpBjJXm8,485
@@ -290,7 +310,7 @@ lfx/components/google/gmail.py,sha256=uXPFoZh7c0Lfprif4gShO3AQ6av1KogosXvx6daJgv
290
310
  lfx/components/google/google_bq_sql_executor.py,sha256=f2EVl0PsiceeIKKanyBT3RM5aVQoZyAQ-EfwY3fg4OU,6007
291
311
  lfx/components/google/google_drive.py,sha256=Fyf1F-gU3-UIVWzQ1TLmFMH62FPECK3fWO4OxpK-1SA,3256
292
312
  lfx/components/google/google_drive_search.py,sha256=j4298EqvSGLHrcVvECd3kbr14xmpELbOh7YaDTiXixQ,5906
293
- lfx/components/google/google_generative_ai.py,sha256=68YAmP0I-Mx-P5wBLiqE5d1GnWRvrBRfy8YZuoRpnTg,5865
313
+ lfx/components/google/google_generative_ai.py,sha256=_7bnW2aEbjQBWU43Dzrak1ZENZboxsdTzLeKCufhC3I,5828
294
314
  lfx/components/google/google_generative_ai_embeddings.py,sha256=d1atcKIhyjbpIFaFBBy58Ffn-gOL1r0_x_7UanHGTIs,6537
295
315
  lfx/components/google/google_oauth_token.py,sha256=FRd4VyCZfyYlbzx68o4LyWPW0Zoo3_hilbY-z9PTivk,3075
296
316
  lfx/components/google/google_search_api_core.py,sha256=hTwZOqQcf7qcUHIcD_pPfO6fzkMY6ZjVkexKY6yM4kA,2157
@@ -369,12 +389,12 @@ lfx/components/link_extractors/__init__.py,sha256=dL4pKVepOSxdKYRggng-sz9eVL-7Rg
369
389
  lfx/components/lmstudio/__init__.py,sha256=IcaH0L89DrXILWtUyc0mRVfpy6u0fBxjm1f8vggVCs0,1136
370
390
  lfx/components/lmstudio/lmstudioembeddings.py,sha256=7NWEt6SG3FOigrxLZ5-TIOSvX4CvCF2zUDa5FmOGyNo,3175
371
391
  lfx/components/lmstudio/lmstudiomodel.py,sha256=2ks7FV3E2neKS9LO9R78UISIUJLe2C4YdQ8XzkoPWrU,4839
372
- lfx/components/logic/__init__.py,sha256=nHxJDynHNaHDhdckwa8Y6UCyjlsoO0QcNaSPq51OuUM,1802
392
+ lfx/components/logic/__init__.py,sha256=qjxFQTtlK-KTRNldRrm9q_TjA7qxDmTlrcCG5jlBogU,1965
373
393
  lfx/components/logic/conditional_router.py,sha256=RQaoM9FF63vXw6rebKA_j4-Hl2YRNvHRtwEq5eT48yY,8692
374
394
  lfx/components/logic/data_conditional_router.py,sha256=b6G_QWajQqoFCQM-614QbrPoU2AVzkgMHA6AMUZybl0,5054
375
395
  lfx/components/logic/flow_tool.py,sha256=k0jXnRn0TIarE7cw61w80R-a_XmloRTIHioYGeZrBeU,3984
376
396
  lfx/components/logic/listen.py,sha256=k_wRN3yW5xtG1CjTdGYhL5LxdgCZ0Bi9cbWP54FkyuY,935
377
- lfx/components/logic/llm_conditional_router.py,sha256=x-qCphrRd16yh_n2IQxqoCWu4AMMlI1QNLKBA0r7Rz8,16613
397
+ lfx/components/logic/llm_conditional_router.py,sha256=wHCAryCKBvQG5SEwm4KmTufliGBlLFS0Dby2ndF-77w,18714
378
398
  lfx/components/logic/loop.py,sha256=F9vGbfAH-zDQgnJpVy9yk4fdrSIXz1gomnAOYW71Gto,4682
379
399
  lfx/components/logic/notify.py,sha256=A9aLooUwudRUsf2BRdE7CmGibCCRuQeCadneart9BEg,3086
380
400
  lfx/components/logic/pass_message.py,sha256=BNPh7TOQ-svrhR2-uMQMMT0LBW0sT_zzIpbuWeEEPDY,1085
@@ -391,7 +411,7 @@ lfx/components/mistral/mistral.py,sha256=4heAlIFEeq_ljUZDPpNGyK_VRkWjwCfPbBaQK1m
391
411
  lfx/components/mistral/mistral_embeddings.py,sha256=NNBGFIocnWpYehCalxh8Csun-qdHL5J-IzPsFe5Mlv0,1974
392
412
  lfx/components/models/__init__.py,sha256=hhfj70MkcRATzAjJnntAg1A4E7kHlQn8GT0bizkB7L4,1113
393
413
  lfx/components/models/embedding_model.py,sha256=hgfpY_3vc4l1v_qdCHQdJIyJ7UEUr4rbzyXzY0Cyec8,4212
394
- lfx/components/models/language_model.py,sha256=u1-HFHgbPZlNgvE1xAxVT9odkhG6hn7gBxT3tH5hsm0,5962
414
+ lfx/components/models/language_model.py,sha256=TA24DMAXrlruY3mNsfI9qGltfQ2h9cQpxe8DW8HLdeE,5992
395
415
  lfx/components/mongodb/__init__.py,sha256=nFOQgiIvDnWGiWDSqZ0ERQme5DpA-cQgzybUiqXQtGw,953
396
416
  lfx/components/mongodb/mongodb_atlas.py,sha256=OlAstNMToHuvGI-8djkiGr7kdGBr927O0SE5cnVd0O0,8594
397
417
  lfx/components/needle/__init__.py,sha256=JeuDv_leDFPquDkypRh7hTmO40zMPZvD5XjmWN1VJMU,67
@@ -438,7 +458,7 @@ lfx/components/processing/extract_key.py,sha256=7e0_ThUzvAe6blYuj0A8zc-b3FzYqlPJ
438
458
  lfx/components/processing/filter_data.py,sha256=BMUJNyFtTLRdmuxcyPeH_W2PfEWErH6rxMfsLSQrarw,1317
439
459
  lfx/components/processing/filter_data_values.py,sha256=hHUiVJxnbERVbvyycmBmUrl4nDK6x7cfQThs5N9JRkk,3182
440
460
  lfx/components/processing/json_cleaner.py,sha256=XBUJl67E0qI93yK6L_8uHmbMRaKllk1cQ2c1Dz5DdWw,3750
441
- lfx/components/processing/lambda_filter.py,sha256=QHhlDuyU-4Cm28UB0umKohkd7yp_Hlnngj-d2faHvIk,5566
461
+ lfx/components/processing/lambda_filter.py,sha256=KSXi8I1fE6jSqj1tOsxhTHSqItem-ExWoO73cbbarQ4,8009
442
462
  lfx/components/processing/llm_router.py,sha256=FYC0SylbjUDlOBRLSdpFfU6Ep4IMk7tWpRAQJ5k9aA4,23198
443
463
  lfx/components/processing/merge_data.py,sha256=ouy4E6rFi2A4_xC6T8Vr3GwFy7fhR98WBuXLGFGom7o,3569
444
464
  lfx/components/processing/message_to_data.py,sha256=0K8SIq6vuAvQ3K7siXstNint6R1-rAuZ5NIwQiiG_n0,1342
@@ -726,7 +746,7 @@ lfx/utils/schemas.py,sha256=NbOtVQBrn4d0BAu-0H_eCTZI2CXkKZlRY37XCSmuJwc,3865
726
746
  lfx/utils/util.py,sha256=Ww85wbr1-vjh2pXVtmTqoUVr6MXAW8S7eDx_Ys6HpE8,20696
727
747
  lfx/utils/util_strings.py,sha256=nU_IcdphNaj6bAPbjeL-c1cInQPfTBit8mp5Y57lwQk,1686
728
748
  lfx/utils/version.py,sha256=cHpbO0OJD2JQAvVaTH_6ibYeFbHJV0QDHs_YXXZ-bT8,671
729
- lfx_nightly-0.1.12.dev39.dist-info/METADATA,sha256=Ecknf2wvOaYtJ4NqOBun56OH0RPNzF-NTdycBZUgWTE,8290
730
- lfx_nightly-0.1.12.dev39.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
731
- lfx_nightly-0.1.12.dev39.dist-info/entry_points.txt,sha256=1724p3RHDQRT2CKx_QRzEIa7sFuSVO0Ux70YfXfoMT4,42
732
- lfx_nightly-0.1.12.dev39.dist-info/RECORD,,
749
+ lfx_nightly-0.1.12.dev41.dist-info/METADATA,sha256=3os2O6_b3b1S4rRuNOmExc3S6GRCHg3VSaIiUBwS6Xs,8290
750
+ lfx_nightly-0.1.12.dev41.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
751
+ lfx_nightly-0.1.12.dev41.dist-info/entry_points.txt,sha256=1724p3RHDQRT2CKx_QRzEIa7sFuSVO0Ux70YfXfoMT4,42
752
+ lfx_nightly-0.1.12.dev41.dist-info/RECORD,,