From b97579cfffa3f5ff3cf8e7a2bce59d5122faf9db Mon Sep 17 00:00:00 2001 From: "autofix-ci[bot]" <114827586+autofix-ci[bot]@users.noreply.github.com> Date: Tue, 16 Jun 2026 19:32:56 +0000 Subject: [PATCH] [autofix.ci] apply automated fixes --- .../starter_projects/News Aggregator.json | 647 +++++------------- .../starter_projects/Price Deal Finder.json | 647 +++++------------- 2 files changed, 314 insertions(+), 980 deletions(-) diff --git a/src/backend/base/langflow/initial_setup/starter_projects/News Aggregator.json b/src/backend/base/langflow/initial_setup/starter_projects/News Aggregator.json index 23fcad3439..92747fca45 100644 --- a/src/backend/base/langflow/initial_setup/starter_projects/News Aggregator.json +++ b/src/backend/base/langflow/initial_setup/starter_projects/News Aggregator.json @@ -196,32 +196,16 @@ "documentation": "https://docs.agentql.com/rest-api/api-reference", "edited": false, "field_order": [ - "entity_id", "api_key", - "auth_mode", - "auth_link", - "client_id", - "client_secret", - "verification_token", - "redirect_uri", - "authorization_url", - "token_url", - "api_key_field", - "generic_api_key", - "token", - "access_token", - "refresh_token", - "username", - "password", - "domain", - "base_url", - "bearer_token", - "authorization_code", - "scopes", - "subdomain", - "instance_url", - "tenant_id", - "action_button" + "url", + "query", + "prompt", + "is_stealth_mode_enabled", + "timeout", + "mode", + "wait_for", + "is_scroll_to_bottom_enabled", + "is_screenshot_enabled" ], "frozen": false, "icon": "AgentQL", @@ -229,15 +213,19 @@ "legacy": false, "lf_version": "1.4.3", "metadata": { - "code_hash": "cca708a10ab6", + "code_hash": "3b495fb4dd37", "dependencies": { "dependencies": [ + { + "name": "httpx", + "version": "0.28.1" + }, { "name": "lfx", "version": null } ], - "total_dependencies": 1 + "total_dependencies": 2 }, "module": "lfx.components.composio.agentql_composio.ComposioAgentQLAPIComponent" }, @@ -265,58 +253,12 @@ "pinned": false, "template": { "_type": "Component", - "access_token": { - "_input_type": "SecretStrInput", - "advanced": false, - "display_name": "Access Token", - "dynamic": false, - "info": "", - "input_types": [], - "load_from_db": true, - "name": "access_token", - "override_skip": false, - "password": true, - "placeholder": "", - "real_time_refresh": true, - "required": false, - "show": false, - "title_case": false, - "track_in_telemetry": false, - "type": "str", - "value": "" - }, - "action_button": { - "_input_type": "SortableListInput", - "advanced": false, - "display_name": "Action", - "dynamic": false, - "helper_text": "Please connect before selecting actions.", - "helper_text_metadata": { - "variant": "destructive" - }, - "info": "", - "limit": 1, - "name": "action_button", - "options": [], - "override_skip": false, - "placeholder": "Select action", - "real_time_refresh": true, - "required": false, - "search_category": [], - "show": true, - "title_case": false, - "tool_mode": false, - "trace_as_metadata": true, - "track_in_telemetry": false, - "type": "sortableList", - "value": "disabled" - }, "api_key": { "_input_type": "SecretStrInput", "advanced": false, - "display_name": "Composio API Key", + "display_name": "AgentQL API Key", "dynamic": false, - "info": "", + "info": "Your AgentQL API key from dev.agentql.com", "input_types": [], "load_from_db": true, "name": "api_key", @@ -328,194 +270,6 @@ "type": "str", "value": "AGENTQL_API_KEY" }, - "api_key_field": { - "_input_type": "SecretStrInput", - "advanced": false, - "display_name": "API Key", - "dynamic": false, - "info": "", - "input_types": [], - "load_from_db": true, - "name": "api_key_field", - "override_skip": false, - "password": true, - "placeholder": "", - "real_time_refresh": true, - "required": false, - "show": false, - "title_case": false, - "track_in_telemetry": false, - "type": "str", - "value": "" - }, - "auth_link": { - "_input_type": "AuthInput", - "advanced": false, - "auth_tooltip": "Please insert a valid Composio API Key.", - "dynamic": false, - "info": "", - "name": "auth_link", - "override_skip": false, - "placeholder": "", - "required": false, - "show": false, - "title_case": false, - "trace_as_metadata": true, - "track_in_telemetry": false, - "type": "auth", - "value": "" - }, - "auth_mode": { - "_input_type": "DropdownInput", - "advanced": false, - "combobox": false, - "dialog_inputs": {}, - "display_name": "Auth Mode", - "dynamic": false, - "external_options": {}, - "helper_text": "Choose how to authenticate with the toolkit.", - "info": "", - "name": "auth_mode", - "options": [], - "options_metadata": [], - "override_skip": false, - "placeholder": "Select auth mode", - "real_time_refresh": true, - "required": false, - "show": false, - "title_case": false, - "toggle": true, - "toggle_disable": true, - "tool_mode": false, - "trace_as_metadata": true, - "track_in_telemetry": true, - "type": "str", - "value": "" - }, - "authorization_code": { - "_input_type": "SecretStrInput", - "advanced": false, - "display_name": "Authorization Code", - "dynamic": false, - "info": "", - "input_types": [], - "load_from_db": true, - "name": "authorization_code", - "override_skip": false, - "password": true, - "placeholder": "", - "real_time_refresh": true, - "required": false, - "show": false, - "title_case": false, - "track_in_telemetry": false, - "type": "str", - "value": "" - }, - "authorization_url": { - "_input_type": "StrInput", - "advanced": false, - "display_name": "Authorization URL", - "dynamic": false, - "info": "", - "list": false, - "list_add_label": "Add More", - "load_from_db": false, - "name": "authorization_url", - "override_skip": false, - "placeholder": "", - "real_time_refresh": true, - "required": false, - "show": false, - "title_case": false, - "tool_mode": false, - "trace_as_metadata": true, - "track_in_telemetry": false, - "type": "str", - "value": "" - }, - "base_url": { - "_input_type": "StrInput", - "advanced": false, - "display_name": "Base URL", - "dynamic": false, - "info": "", - "list": false, - "list_add_label": "Add More", - "load_from_db": false, - "name": "base_url", - "override_skip": false, - "placeholder": "", - "real_time_refresh": true, - "required": false, - "show": false, - "title_case": false, - "tool_mode": false, - "trace_as_metadata": true, - "track_in_telemetry": false, - "type": "str", - "value": "" - }, - "bearer_token": { - "_input_type": "SecretStrInput", - "advanced": false, - "display_name": "Bearer Token", - "dynamic": false, - "info": "", - "input_types": [], - "load_from_db": true, - "name": "bearer_token", - "override_skip": false, - "password": true, - "placeholder": "", - "real_time_refresh": true, - "required": false, - "show": false, - "title_case": false, - "track_in_telemetry": false, - "type": "str", - "value": "" - }, - "client_id": { - "_input_type": "SecretStrInput", - "advanced": false, - "display_name": "Client ID", - "dynamic": false, - "info": "", - "input_types": [], - "load_from_db": true, - "name": "client_id", - "override_skip": false, - "password": true, - "placeholder": "", - "real_time_refresh": true, - "required": false, - "show": false, - "title_case": false, - "track_in_telemetry": false, - "type": "str", - "value": "" - }, - "client_secret": { - "_input_type": "SecretStrInput", - "advanced": false, - "display_name": "Client Secret", - "dynamic": false, - "info": "", - "input_types": [], - "load_from_db": true, - "name": "client_secret", - "override_skip": false, - "password": true, - "placeholder": "", - "real_time_refresh": true, - "required": false, - "show": false, - "title_case": false, - "track_in_telemetry": false, - "type": "str", - "value": "" - }, "code": { "advanced": true, "dynamic": true, @@ -532,44 +286,113 @@ "show": true, "title_case": false, "type": "code", - "value": "from lfx.base.composio.composio_base import ComposioBaseComponent\n\n\nclass ComposioAgentQLAPIComponent(ComposioBaseComponent):\n display_name: str = \"AgentQL\"\n icon = \"AgentQL\"\n documentation: str = \"https://docs.composio.dev\"\n app_name = \"agentql\"\n\n def set_default_tools(self):\n \"\"\"Set the default tools for AgentQL component.\"\"\"\n" + "value": "import httpx\nfrom lfx.custom.custom_component.component import Component\nfrom lfx.field_typing.range_spec import RangeSpec\nfrom lfx.io import BoolInput, DropdownInput, IntInput, MessageTextInput, MultilineInput, Output, SecretStrInput\nfrom lfx.log.logger import logger\nfrom lfx.schema.data import Data\n\n\nclass AgentQL(Component):\n display_name = \"Extract Web Data\"\n description = \"Extracts structured data from a web page using an AgentQL query or a Natural Language description.\"\n documentation: str = \"https://docs.agentql.com/rest-api/api-reference\"\n icon = \"AgentQL\"\n name = \"AgentQL\"\n\n inputs = [\n SecretStrInput(\n name=\"api_key\",\n display_name=\"AgentQL API Key\",\n required=True,\n password=True,\n info=\"Your AgentQL API key from dev.agentql.com\",\n ),\n MessageTextInput(\n name=\"url\",\n display_name=\"URL\",\n required=True,\n info=\"The URL of the public web page you want to extract data from.\",\n tool_mode=True,\n ),\n MultilineInput(\n name=\"query\",\n display_name=\"AgentQL Query\",\n required=False,\n info=\"The AgentQL query to execute. Learn more at https://docs.agentql.com/agentql-query or use a prompt.\",\n tool_mode=True,\n ),\n MultilineInput(\n name=\"prompt\",\n display_name=\"Prompt\",\n required=False,\n info=\"A Natural Language description of the data to extract from the page. Alternative to AgentQL query.\",\n tool_mode=True,\n ),\n BoolInput(\n name=\"is_stealth_mode_enabled\",\n display_name=\"Enable Stealth Mode (Beta)\",\n info=\"Enable experimental anti-bot evasion strategies. May not work for all websites at all times.\",\n value=False,\n advanced=True,\n ),\n IntInput(\n name=\"timeout\",\n display_name=\"Timeout\",\n info=\"Seconds to wait for a request.\",\n value=900,\n advanced=True,\n ),\n DropdownInput(\n name=\"mode\",\n display_name=\"Request Mode\",\n info=\"'standard' uses deep data analysis, while 'fast' trades some depth of analysis for speed.\",\n options=[\"fast\", \"standard\"],\n value=\"fast\",\n advanced=True,\n ),\n IntInput(\n name=\"wait_for\",\n display_name=\"Wait For\",\n info=\"Seconds to wait for the page to load before extracting data.\",\n value=0,\n range_spec=RangeSpec(min=0, max=10, step_type=\"int\"),\n advanced=True,\n ),\n BoolInput(\n name=\"is_scroll_to_bottom_enabled\",\n display_name=\"Enable scroll to bottom\",\n info=\"Scroll to bottom of the page before extracting data.\",\n value=False,\n advanced=True,\n ),\n BoolInput(\n name=\"is_screenshot_enabled\",\n display_name=\"Enable screenshot\",\n info=\"Take a screenshot before extracting data. Returned in 'metadata' as a Base64 string.\",\n value=False,\n advanced=True,\n ),\n ]\n\n outputs = [\n Output(display_name=\"JSON\", name=\"data\", method=\"build_output\"),\n ]\n\n def build_output(self) -> Data:\n endpoint = \"https://api.agentql.com/v1/query-data\"\n headers = {\n \"X-API-Key\": self.api_key,\n \"Content-Type\": \"application/json\",\n \"X-TF-Request-Origin\": \"langflow\",\n }\n\n payload = {\n \"url\": self.url,\n \"query\": self.query,\n \"prompt\": self.prompt,\n \"params\": {\n \"mode\": self.mode,\n \"wait_for\": self.wait_for,\n \"is_scroll_to_bottom_enabled\": self.is_scroll_to_bottom_enabled,\n \"is_screenshot_enabled\": self.is_screenshot_enabled,\n },\n \"metadata\": {\n \"experimental_stealth_mode_enabled\": self.is_stealth_mode_enabled,\n },\n }\n\n if not self.prompt and not self.query:\n self.status = \"Either Query or Prompt must be provided.\"\n raise ValueError(self.status)\n if self.prompt and self.query:\n self.status = \"Both Query and Prompt can't be provided at the same time.\"\n raise ValueError(self.status)\n\n try:\n response = httpx.post(endpoint, headers=headers, json=payload, timeout=self.timeout)\n response.raise_for_status()\n\n json = response.json()\n data = Data(result=json[\"data\"], metadata=json[\"metadata\"])\n\n except httpx.HTTPStatusError as e:\n response = e.response\n if response.status_code == httpx.codes.UNAUTHORIZED:\n self.status = \"Please, provide a valid API Key. You can create one at https://dev.agentql.com.\"\n else:\n try:\n error_json = response.json()\n logger.error(\n f\"Failure response: '{response.status_code} {response.reason_phrase}' with body: {error_json}\"\n )\n msg = error_json[\"error_info\"] if \"error_info\" in error_json else error_json[\"detail\"]\n except (ValueError, TypeError):\n msg = f\"HTTP {e}.\"\n self.status = msg\n raise ValueError(self.status) from e\n\n else:\n self.status = data\n return data\n" }, - "domain": { - "_input_type": "StrInput", - "advanced": false, - "display_name": "Domain", + "is_screenshot_enabled": { + "_input_type": "BoolInput", + "advanced": true, + "display_name": "Enable screenshot", "dynamic": false, - "info": "", + "info": "Take a screenshot before extracting data. Returned in 'metadata' as a Base64 string.", "list": false, "list_add_label": "Add More", - "load_from_db": false, - "name": "domain", + "name": "is_screenshot_enabled", "override_skip": false, "placeholder": "", - "real_time_refresh": true, "required": false, - "show": false, + "show": true, "title_case": false, "tool_mode": false, "trace_as_metadata": true, - "track_in_telemetry": false, - "type": "str", - "value": "" + "track_in_telemetry": true, + "type": "bool", + "value": false }, - "entity_id": { - "_input_type": "MessageTextInput", + "is_scroll_to_bottom_enabled": { + "_input_type": "BoolInput", "advanced": true, - "display_name": "Entity ID", + "display_name": "Enable scroll to bottom", "dynamic": false, - "info": "", + "info": "Scroll to bottom of the page before extracting data.", + "list": false, + "list_add_label": "Add More", + "name": "is_scroll_to_bottom_enabled", + "override_skip": false, + "placeholder": "", + "required": false, + "show": true, + "title_case": false, + "tool_mode": false, + "trace_as_metadata": true, + "track_in_telemetry": true, + "type": "bool", + "value": false + }, + "is_stealth_mode_enabled": { + "_input_type": "BoolInput", + "advanced": true, + "display_name": "Enable Stealth Mode (Beta)", + "dynamic": false, + "info": "Enable experimental anti-bot evasion strategies. May not work for all websites at all times.", + "list": false, + "list_add_label": "Add More", + "name": "is_stealth_mode_enabled", + "override_skip": false, + "placeholder": "", + "required": false, + "show": true, + "title_case": false, + "tool_mode": false, + "trace_as_metadata": true, + "track_in_telemetry": true, + "type": "bool", + "value": false + }, + "mode": { + "_input_type": "DropdownInput", + "advanced": true, + "combobox": false, + "dialog_inputs": {}, + "display_name": "Request Mode", + "dynamic": false, + "external_options": {}, + "info": "'standard' uses deep data analysis, while 'fast' trades some depth of analysis for speed.", + "name": "mode", + "options": [ + "fast", + "standard" + ], + "options_metadata": [], + "override_skip": false, + "placeholder": "", + "required": false, + "show": true, + "title_case": false, + "toggle": false, + "tool_mode": false, + "trace_as_metadata": true, + "track_in_telemetry": true, + "type": "str", + "value": "fast" + }, + "prompt": { + "_input_type": "MultilineInput", + "advanced": false, + "ai_enabled": false, + "copy_field": false, + "display_name": "Prompt", + "dynamic": false, + "info": "A Natural Language description of the data to extract from the page. Alternative to AgentQL query.", "input_types": [ "Message" ], "list": false, "list_add_label": "Add More", "load_from_db": false, - "name": "entity_id", + "multiline": true, + "name": "prompt", "override_skip": false, + "password": false, "placeholder": "", "required": false, "show": true, @@ -579,219 +402,56 @@ "trace_as_metadata": true, "track_in_telemetry": false, "type": "str", - "value": "default" - }, - "generic_api_key": { - "_input_type": "SecretStrInput", - "advanced": false, - "display_name": "API Key", - "dynamic": false, - "info": "Enter API key on Composio page", - "input_types": [], - "load_from_db": true, - "name": "generic_api_key", - "override_skip": false, - "password": true, - "placeholder": "", - "real_time_refresh": true, - "required": false, - "show": false, - "title_case": false, - "track_in_telemetry": false, - "type": "str", "value": "" }, - "instance_url": { - "_input_type": "StrInput", + "query": { + "_input_type": "MultilineInput", "advanced": false, - "display_name": "Instance URL", + "ai_enabled": false, + "copy_field": false, + "display_name": "AgentQL Query", "dynamic": false, - "info": "", + "info": "The AgentQL query to execute. Learn more at https://docs.agentql.com/agentql-query or use a prompt.", + "input_types": [ + "Message" + ], "list": false, "list_add_label": "Add More", "load_from_db": false, - "name": "instance_url", + "multiline": true, + "name": "query", "override_skip": false, + "password": false, "placeholder": "", - "real_time_refresh": true, "required": false, - "show": false, + "show": true, "title_case": false, - "tool_mode": false, + "tool_mode": true, + "trace_as_input": true, "trace_as_metadata": true, "track_in_telemetry": false, "type": "str", "value": "" }, - "password": { - "_input_type": "SecretStrInput", - "advanced": false, - "display_name": "Password", + "timeout": { + "_input_type": "IntInput", + "advanced": true, + "display_name": "Timeout", "dynamic": false, - "info": "", - "input_types": [], - "load_from_db": true, - "name": "password", - "override_skip": false, - "password": true, - "placeholder": "", - "real_time_refresh": true, - "required": false, - "show": false, - "title_case": false, - "track_in_telemetry": false, - "type": "str", - "value": "" - }, - "redirect_uri": { - "_input_type": "StrInput", - "advanced": false, - "display_name": "Redirect URI", - "dynamic": false, - "info": "", + "info": "Seconds to wait for a request.", "list": false, "list_add_label": "Add More", - "load_from_db": false, - "name": "redirect_uri", + "name": "timeout", "override_skip": false, "placeholder": "", - "real_time_refresh": true, "required": false, - "show": false, + "show": true, "title_case": false, "tool_mode": false, "trace_as_metadata": true, - "track_in_telemetry": false, - "type": "str", - "value": "" - }, - "refresh_token": { - "_input_type": "SecretStrInput", - "advanced": false, - "display_name": "Refresh Token", - "dynamic": false, - "info": "", - "input_types": [], - "load_from_db": true, - "name": "refresh_token", - "override_skip": false, - "password": true, - "placeholder": "", - "real_time_refresh": true, - "required": false, - "show": false, - "title_case": false, - "track_in_telemetry": false, - "type": "str", - "value": "" - }, - "scopes": { - "_input_type": "StrInput", - "advanced": false, - "display_name": "Scopes", - "dynamic": false, - "info": "", - "list": false, - "list_add_label": "Add More", - "load_from_db": false, - "name": "scopes", - "override_skip": false, - "placeholder": "", - "real_time_refresh": true, - "required": false, - "show": false, - "title_case": false, - "tool_mode": false, - "trace_as_metadata": true, - "track_in_telemetry": false, - "type": "str", - "value": "" - }, - "subdomain": { - "_input_type": "StrInput", - "advanced": false, - "display_name": "Subdomain", - "dynamic": false, - "info": "", - "list": false, - "list_add_label": "Add More", - "load_from_db": false, - "name": "subdomain", - "override_skip": false, - "placeholder": "", - "real_time_refresh": true, - "required": false, - "show": false, - "title_case": false, - "tool_mode": false, - "trace_as_metadata": true, - "track_in_telemetry": false, - "type": "str", - "value": "" - }, - "tenant_id": { - "_input_type": "StrInput", - "advanced": false, - "display_name": "Tenant ID", - "dynamic": false, - "info": "", - "list": false, - "list_add_label": "Add More", - "load_from_db": false, - "name": "tenant_id", - "override_skip": false, - "placeholder": "", - "real_time_refresh": true, - "required": false, - "show": false, - "title_case": false, - "tool_mode": false, - "trace_as_metadata": true, - "track_in_telemetry": false, - "type": "str", - "value": "" - }, - "token": { - "_input_type": "SecretStrInput", - "advanced": false, - "display_name": "Token", - "dynamic": false, - "info": "", - "input_types": [], - "load_from_db": true, - "name": "token", - "override_skip": false, - "password": true, - "placeholder": "", - "real_time_refresh": true, - "required": false, - "show": false, - "title_case": false, - "track_in_telemetry": false, - "type": "str", - "value": "" - }, - "token_url": { - "_input_type": "StrInput", - "advanced": false, - "display_name": "Token URL", - "dynamic": false, - "info": "", - "list": false, - "list_add_label": "Add More", - "load_from_db": false, - "name": "token_url", - "override_skip": false, - "placeholder": "", - "real_time_refresh": true, - "required": false, - "show": false, - "title_case": false, - "tool_mode": false, - "trace_as_metadata": true, - "track_in_telemetry": false, - "type": "str", - "value": "" + "track_in_telemetry": true, + "type": "int", + "value": 900 }, "tools_metadata": { "_input_type": "ToolsInput", @@ -843,49 +503,56 @@ } ] }, - "username": { - "_input_type": "StrInput", + "url": { + "_input_type": "MessageTextInput", "advanced": false, - "display_name": "Username", + "display_name": "URL", "dynamic": false, - "info": "", + "info": "The URL of the public web page you want to extract data from.", + "input_types": [ + "Message" + ], "list": false, "list_add_label": "Add More", "load_from_db": false, - "name": "username", + "name": "url", "override_skip": false, "placeholder": "", - "real_time_refresh": true, - "required": false, - "show": false, + "required": true, + "show": true, "title_case": false, - "tool_mode": false, + "tool_mode": true, + "trace_as_input": true, "trace_as_metadata": true, "track_in_telemetry": false, "type": "str", "value": "" }, - "verification_token": { - "_input_type": "StrInput", - "advanced": false, - "display_name": "Verification Token", + "wait_for": { + "_input_type": "IntInput", + "advanced": true, + "display_name": "Wait For", "dynamic": false, - "info": "", + "info": "Seconds to wait for the page to load before extracting data.", "list": false, "list_add_label": "Add More", - "load_from_db": false, - "name": "verification_token", + "name": "wait_for", "override_skip": false, "placeholder": "", - "real_time_refresh": true, + "range_spec": { + "max": 10.0, + "min": 0.0, + "step": 0.1, + "step_type": "int" + }, "required": false, - "show": false, + "show": true, "title_case": false, "tool_mode": false, "trace_as_metadata": true, - "track_in_telemetry": false, - "type": "str", - "value": "" + "track_in_telemetry": true, + "type": "int", + "value": 0 } }, "tool_mode": true diff --git a/src/backend/base/langflow/initial_setup/starter_projects/Price Deal Finder.json b/src/backend/base/langflow/initial_setup/starter_projects/Price Deal Finder.json index dec048178f..59ea91c27d 100644 --- a/src/backend/base/langflow/initial_setup/starter_projects/Price Deal Finder.json +++ b/src/backend/base/langflow/initial_setup/starter_projects/Price Deal Finder.json @@ -1107,47 +1107,35 @@ "documentation": "https://docs.agentql.com/rest-api/api-reference", "edited": false, "field_order": [ - "entity_id", "api_key", - "auth_mode", - "auth_link", - "client_id", - "client_secret", - "verification_token", - "redirect_uri", - "authorization_url", - "token_url", - "api_key_field", - "generic_api_key", - "token", - "access_token", - "refresh_token", - "username", - "password", - "domain", - "base_url", - "bearer_token", - "authorization_code", - "scopes", - "subdomain", - "instance_url", - "tenant_id", - "action_button" + "url", + "query", + "prompt", + "is_stealth_mode_enabled", + "timeout", + "mode", + "wait_for", + "is_scroll_to_bottom_enabled", + "is_screenshot_enabled" ], "frozen": false, "icon": "AgentQL", "legacy": false, "lf_version": "1.3.2", "metadata": { - "code_hash": "cca708a10ab6", + "code_hash": "3b495fb4dd37", "dependencies": { "dependencies": [ + { + "name": "httpx", + "version": "0.28.1" + }, { "name": "lfx", "version": null } ], - "total_dependencies": 1 + "total_dependencies": 2 }, "module": "lfx.components.composio.agentql_composio.ComposioAgentQLAPIComponent" }, @@ -1175,58 +1163,12 @@ "pinned": false, "template": { "_type": "Component", - "access_token": { - "_input_type": "SecretStrInput", - "advanced": false, - "display_name": "Access Token", - "dynamic": false, - "info": "", - "input_types": [], - "load_from_db": true, - "name": "access_token", - "override_skip": false, - "password": true, - "placeholder": "", - "real_time_refresh": true, - "required": false, - "show": false, - "title_case": false, - "track_in_telemetry": false, - "type": "str", - "value": "" - }, - "action_button": { - "_input_type": "SortableListInput", - "advanced": false, - "display_name": "Action", - "dynamic": false, - "helper_text": "Please connect before selecting actions.", - "helper_text_metadata": { - "variant": "destructive" - }, - "info": "", - "limit": 1, - "name": "action_button", - "options": [], - "override_skip": false, - "placeholder": "Select action", - "real_time_refresh": true, - "required": false, - "search_category": [], - "show": true, - "title_case": false, - "tool_mode": false, - "trace_as_metadata": true, - "track_in_telemetry": false, - "type": "sortableList", - "value": "disabled" - }, "api_key": { "_input_type": "SecretStrInput", "advanced": false, - "display_name": "Composio API Key", + "display_name": "AgentQL API Key", "dynamic": false, - "info": "", + "info": "Your AgentQL API key from dev.agentql.com", "input_types": [], "load_from_db": true, "name": "api_key", @@ -1238,194 +1180,6 @@ "type": "str", "value": "AGENTQL_API_KEY" }, - "api_key_field": { - "_input_type": "SecretStrInput", - "advanced": false, - "display_name": "API Key", - "dynamic": false, - "info": "", - "input_types": [], - "load_from_db": true, - "name": "api_key_field", - "override_skip": false, - "password": true, - "placeholder": "", - "real_time_refresh": true, - "required": false, - "show": false, - "title_case": false, - "track_in_telemetry": false, - "type": "str", - "value": "" - }, - "auth_link": { - "_input_type": "AuthInput", - "advanced": false, - "auth_tooltip": "Please insert a valid Composio API Key.", - "dynamic": false, - "info": "", - "name": "auth_link", - "override_skip": false, - "placeholder": "", - "required": false, - "show": false, - "title_case": false, - "trace_as_metadata": true, - "track_in_telemetry": false, - "type": "auth", - "value": "" - }, - "auth_mode": { - "_input_type": "DropdownInput", - "advanced": false, - "combobox": false, - "dialog_inputs": {}, - "display_name": "Auth Mode", - "dynamic": false, - "external_options": {}, - "helper_text": "Choose how to authenticate with the toolkit.", - "info": "", - "name": "auth_mode", - "options": [], - "options_metadata": [], - "override_skip": false, - "placeholder": "Select auth mode", - "real_time_refresh": true, - "required": false, - "show": false, - "title_case": false, - "toggle": true, - "toggle_disable": true, - "tool_mode": false, - "trace_as_metadata": true, - "track_in_telemetry": true, - "type": "str", - "value": "" - }, - "authorization_code": { - "_input_type": "SecretStrInput", - "advanced": false, - "display_name": "Authorization Code", - "dynamic": false, - "info": "", - "input_types": [], - "load_from_db": true, - "name": "authorization_code", - "override_skip": false, - "password": true, - "placeholder": "", - "real_time_refresh": true, - "required": false, - "show": false, - "title_case": false, - "track_in_telemetry": false, - "type": "str", - "value": "" - }, - "authorization_url": { - "_input_type": "StrInput", - "advanced": false, - "display_name": "Authorization URL", - "dynamic": false, - "info": "", - "list": false, - "list_add_label": "Add More", - "load_from_db": false, - "name": "authorization_url", - "override_skip": false, - "placeholder": "", - "real_time_refresh": true, - "required": false, - "show": false, - "title_case": false, - "tool_mode": false, - "trace_as_metadata": true, - "track_in_telemetry": false, - "type": "str", - "value": "" - }, - "base_url": { - "_input_type": "StrInput", - "advanced": false, - "display_name": "Base URL", - "dynamic": false, - "info": "", - "list": false, - "list_add_label": "Add More", - "load_from_db": false, - "name": "base_url", - "override_skip": false, - "placeholder": "", - "real_time_refresh": true, - "required": false, - "show": false, - "title_case": false, - "tool_mode": false, - "trace_as_metadata": true, - "track_in_telemetry": false, - "type": "str", - "value": "" - }, - "bearer_token": { - "_input_type": "SecretStrInput", - "advanced": false, - "display_name": "Bearer Token", - "dynamic": false, - "info": "", - "input_types": [], - "load_from_db": true, - "name": "bearer_token", - "override_skip": false, - "password": true, - "placeholder": "", - "real_time_refresh": true, - "required": false, - "show": false, - "title_case": false, - "track_in_telemetry": false, - "type": "str", - "value": "" - }, - "client_id": { - "_input_type": "SecretStrInput", - "advanced": false, - "display_name": "Client ID", - "dynamic": false, - "info": "", - "input_types": [], - "load_from_db": true, - "name": "client_id", - "override_skip": false, - "password": true, - "placeholder": "", - "real_time_refresh": true, - "required": false, - "show": false, - "title_case": false, - "track_in_telemetry": false, - "type": "str", - "value": "" - }, - "client_secret": { - "_input_type": "SecretStrInput", - "advanced": false, - "display_name": "Client Secret", - "dynamic": false, - "info": "", - "input_types": [], - "load_from_db": true, - "name": "client_secret", - "override_skip": false, - "password": true, - "placeholder": "", - "real_time_refresh": true, - "required": false, - "show": false, - "title_case": false, - "track_in_telemetry": false, - "type": "str", - "value": "" - }, "code": { "advanced": true, "dynamic": true, @@ -1442,44 +1196,113 @@ "show": true, "title_case": false, "type": "code", - "value": "from lfx.base.composio.composio_base import ComposioBaseComponent\n\n\nclass ComposioAgentQLAPIComponent(ComposioBaseComponent):\n display_name: str = \"AgentQL\"\n icon = \"AgentQL\"\n documentation: str = \"https://docs.composio.dev\"\n app_name = \"agentql\"\n\n def set_default_tools(self):\n \"\"\"Set the default tools for AgentQL component.\"\"\"\n" + "value": "import httpx\nfrom lfx.custom.custom_component.component import Component\nfrom lfx.field_typing.range_spec import RangeSpec\nfrom lfx.io import BoolInput, DropdownInput, IntInput, MessageTextInput, MultilineInput, Output, SecretStrInput\nfrom lfx.log.logger import logger\nfrom lfx.schema.data import Data\n\n\nclass AgentQL(Component):\n display_name = \"Extract Web Data\"\n description = \"Extracts structured data from a web page using an AgentQL query or a Natural Language description.\"\n documentation: str = \"https://docs.agentql.com/rest-api/api-reference\"\n icon = \"AgentQL\"\n name = \"AgentQL\"\n\n inputs = [\n SecretStrInput(\n name=\"api_key\",\n display_name=\"AgentQL API Key\",\n required=True,\n password=True,\n info=\"Your AgentQL API key from dev.agentql.com\",\n ),\n MessageTextInput(\n name=\"url\",\n display_name=\"URL\",\n required=True,\n info=\"The URL of the public web page you want to extract data from.\",\n tool_mode=True,\n ),\n MultilineInput(\n name=\"query\",\n display_name=\"AgentQL Query\",\n required=False,\n info=\"The AgentQL query to execute. Learn more at https://docs.agentql.com/agentql-query or use a prompt.\",\n tool_mode=True,\n ),\n MultilineInput(\n name=\"prompt\",\n display_name=\"Prompt\",\n required=False,\n info=\"A Natural Language description of the data to extract from the page. Alternative to AgentQL query.\",\n tool_mode=True,\n ),\n BoolInput(\n name=\"is_stealth_mode_enabled\",\n display_name=\"Enable Stealth Mode (Beta)\",\n info=\"Enable experimental anti-bot evasion strategies. May not work for all websites at all times.\",\n value=False,\n advanced=True,\n ),\n IntInput(\n name=\"timeout\",\n display_name=\"Timeout\",\n info=\"Seconds to wait for a request.\",\n value=900,\n advanced=True,\n ),\n DropdownInput(\n name=\"mode\",\n display_name=\"Request Mode\",\n info=\"'standard' uses deep data analysis, while 'fast' trades some depth of analysis for speed.\",\n options=[\"fast\", \"standard\"],\n value=\"fast\",\n advanced=True,\n ),\n IntInput(\n name=\"wait_for\",\n display_name=\"Wait For\",\n info=\"Seconds to wait for the page to load before extracting data.\",\n value=0,\n range_spec=RangeSpec(min=0, max=10, step_type=\"int\"),\n advanced=True,\n ),\n BoolInput(\n name=\"is_scroll_to_bottom_enabled\",\n display_name=\"Enable scroll to bottom\",\n info=\"Scroll to bottom of the page before extracting data.\",\n value=False,\n advanced=True,\n ),\n BoolInput(\n name=\"is_screenshot_enabled\",\n display_name=\"Enable screenshot\",\n info=\"Take a screenshot before extracting data. Returned in 'metadata' as a Base64 string.\",\n value=False,\n advanced=True,\n ),\n ]\n\n outputs = [\n Output(display_name=\"JSON\", name=\"data\", method=\"build_output\"),\n ]\n\n def build_output(self) -> Data:\n endpoint = \"https://api.agentql.com/v1/query-data\"\n headers = {\n \"X-API-Key\": self.api_key,\n \"Content-Type\": \"application/json\",\n \"X-TF-Request-Origin\": \"langflow\",\n }\n\n payload = {\n \"url\": self.url,\n \"query\": self.query,\n \"prompt\": self.prompt,\n \"params\": {\n \"mode\": self.mode,\n \"wait_for\": self.wait_for,\n \"is_scroll_to_bottom_enabled\": self.is_scroll_to_bottom_enabled,\n \"is_screenshot_enabled\": self.is_screenshot_enabled,\n },\n \"metadata\": {\n \"experimental_stealth_mode_enabled\": self.is_stealth_mode_enabled,\n },\n }\n\n if not self.prompt and not self.query:\n self.status = \"Either Query or Prompt must be provided.\"\n raise ValueError(self.status)\n if self.prompt and self.query:\n self.status = \"Both Query and Prompt can't be provided at the same time.\"\n raise ValueError(self.status)\n\n try:\n response = httpx.post(endpoint, headers=headers, json=payload, timeout=self.timeout)\n response.raise_for_status()\n\n json = response.json()\n data = Data(result=json[\"data\"], metadata=json[\"metadata\"])\n\n except httpx.HTTPStatusError as e:\n response = e.response\n if response.status_code == httpx.codes.UNAUTHORIZED:\n self.status = \"Please, provide a valid API Key. You can create one at https://dev.agentql.com.\"\n else:\n try:\n error_json = response.json()\n logger.error(\n f\"Failure response: '{response.status_code} {response.reason_phrase}' with body: {error_json}\"\n )\n msg = error_json[\"error_info\"] if \"error_info\" in error_json else error_json[\"detail\"]\n except (ValueError, TypeError):\n msg = f\"HTTP {e}.\"\n self.status = msg\n raise ValueError(self.status) from e\n\n else:\n self.status = data\n return data\n" }, - "domain": { - "_input_type": "StrInput", - "advanced": false, - "display_name": "Domain", + "is_screenshot_enabled": { + "_input_type": "BoolInput", + "advanced": true, + "display_name": "Enable screenshot", "dynamic": false, - "info": "", + "info": "Take a screenshot before extracting data. Returned in 'metadata' as a Base64 string.", "list": false, "list_add_label": "Add More", - "load_from_db": false, - "name": "domain", + "name": "is_screenshot_enabled", "override_skip": false, "placeholder": "", - "real_time_refresh": true, "required": false, - "show": false, + "show": true, "title_case": false, "tool_mode": false, "trace_as_metadata": true, - "track_in_telemetry": false, - "type": "str", - "value": "" + "track_in_telemetry": true, + "type": "bool", + "value": false }, - "entity_id": { - "_input_type": "MessageTextInput", + "is_scroll_to_bottom_enabled": { + "_input_type": "BoolInput", "advanced": true, - "display_name": "Entity ID", + "display_name": "Enable scroll to bottom", "dynamic": false, - "info": "", + "info": "Scroll to bottom of the page before extracting data.", + "list": false, + "list_add_label": "Add More", + "name": "is_scroll_to_bottom_enabled", + "override_skip": false, + "placeholder": "", + "required": false, + "show": true, + "title_case": false, + "tool_mode": false, + "trace_as_metadata": true, + "track_in_telemetry": true, + "type": "bool", + "value": false + }, + "is_stealth_mode_enabled": { + "_input_type": "BoolInput", + "advanced": true, + "display_name": "Enable Stealth Mode (Beta)", + "dynamic": false, + "info": "Enable experimental anti-bot evasion strategies. May not work for all websites at all times.", + "list": false, + "list_add_label": "Add More", + "name": "is_stealth_mode_enabled", + "override_skip": false, + "placeholder": "", + "required": false, + "show": true, + "title_case": false, + "tool_mode": false, + "trace_as_metadata": true, + "track_in_telemetry": true, + "type": "bool", + "value": false + }, + "mode": { + "_input_type": "DropdownInput", + "advanced": true, + "combobox": false, + "dialog_inputs": {}, + "display_name": "Request Mode", + "dynamic": false, + "external_options": {}, + "info": "'standard' uses deep data analysis, while 'fast' trades some depth of analysis for speed.", + "name": "mode", + "options": [ + "fast", + "standard" + ], + "options_metadata": [], + "override_skip": false, + "placeholder": "", + "required": false, + "show": true, + "title_case": false, + "toggle": false, + "tool_mode": false, + "trace_as_metadata": true, + "track_in_telemetry": true, + "type": "str", + "value": "fast" + }, + "prompt": { + "_input_type": "MultilineInput", + "advanced": false, + "ai_enabled": false, + "copy_field": false, + "display_name": "Prompt", + "dynamic": false, + "info": "A Natural Language description of the data to extract from the page. Alternative to AgentQL query.", "input_types": [ "Message" ], "list": false, "list_add_label": "Add More", "load_from_db": false, - "name": "entity_id", + "multiline": true, + "name": "prompt", "override_skip": false, + "password": false, "placeholder": "", "required": false, "show": true, @@ -1489,219 +1312,56 @@ "trace_as_metadata": true, "track_in_telemetry": false, "type": "str", - "value": "default" - }, - "generic_api_key": { - "_input_type": "SecretStrInput", - "advanced": false, - "display_name": "API Key", - "dynamic": false, - "info": "Enter API key on Composio page", - "input_types": [], - "load_from_db": true, - "name": "generic_api_key", - "override_skip": false, - "password": true, - "placeholder": "", - "real_time_refresh": true, - "required": false, - "show": false, - "title_case": false, - "track_in_telemetry": false, - "type": "str", "value": "" }, - "instance_url": { - "_input_type": "StrInput", + "query": { + "_input_type": "MultilineInput", "advanced": false, - "display_name": "Instance URL", + "ai_enabled": false, + "copy_field": false, + "display_name": "AgentQL Query", "dynamic": false, - "info": "", + "info": "The AgentQL query to execute. Learn more at https://docs.agentql.com/agentql-query or use a prompt.", + "input_types": [ + "Message" + ], "list": false, "list_add_label": "Add More", "load_from_db": false, - "name": "instance_url", + "multiline": true, + "name": "query", "override_skip": false, + "password": false, "placeholder": "", - "real_time_refresh": true, "required": false, - "show": false, + "show": true, "title_case": false, - "tool_mode": false, + "tool_mode": true, + "trace_as_input": true, "trace_as_metadata": true, "track_in_telemetry": false, "type": "str", "value": "" }, - "password": { - "_input_type": "SecretStrInput", - "advanced": false, - "display_name": "Password", + "timeout": { + "_input_type": "IntInput", + "advanced": true, + "display_name": "Timeout", "dynamic": false, - "info": "", - "input_types": [], - "load_from_db": true, - "name": "password", - "override_skip": false, - "password": true, - "placeholder": "", - "real_time_refresh": true, - "required": false, - "show": false, - "title_case": false, - "track_in_telemetry": false, - "type": "str", - "value": "" - }, - "redirect_uri": { - "_input_type": "StrInput", - "advanced": false, - "display_name": "Redirect URI", - "dynamic": false, - "info": "", + "info": "Seconds to wait for a request.", "list": false, "list_add_label": "Add More", - "load_from_db": false, - "name": "redirect_uri", + "name": "timeout", "override_skip": false, "placeholder": "", - "real_time_refresh": true, "required": false, - "show": false, + "show": true, "title_case": false, "tool_mode": false, "trace_as_metadata": true, - "track_in_telemetry": false, - "type": "str", - "value": "" - }, - "refresh_token": { - "_input_type": "SecretStrInput", - "advanced": false, - "display_name": "Refresh Token", - "dynamic": false, - "info": "", - "input_types": [], - "load_from_db": true, - "name": "refresh_token", - "override_skip": false, - "password": true, - "placeholder": "", - "real_time_refresh": true, - "required": false, - "show": false, - "title_case": false, - "track_in_telemetry": false, - "type": "str", - "value": "" - }, - "scopes": { - "_input_type": "StrInput", - "advanced": false, - "display_name": "Scopes", - "dynamic": false, - "info": "", - "list": false, - "list_add_label": "Add More", - "load_from_db": false, - "name": "scopes", - "override_skip": false, - "placeholder": "", - "real_time_refresh": true, - "required": false, - "show": false, - "title_case": false, - "tool_mode": false, - "trace_as_metadata": true, - "track_in_telemetry": false, - "type": "str", - "value": "" - }, - "subdomain": { - "_input_type": "StrInput", - "advanced": false, - "display_name": "Subdomain", - "dynamic": false, - "info": "", - "list": false, - "list_add_label": "Add More", - "load_from_db": false, - "name": "subdomain", - "override_skip": false, - "placeholder": "", - "real_time_refresh": true, - "required": false, - "show": false, - "title_case": false, - "tool_mode": false, - "trace_as_metadata": true, - "track_in_telemetry": false, - "type": "str", - "value": "" - }, - "tenant_id": { - "_input_type": "StrInput", - "advanced": false, - "display_name": "Tenant ID", - "dynamic": false, - "info": "", - "list": false, - "list_add_label": "Add More", - "load_from_db": false, - "name": "tenant_id", - "override_skip": false, - "placeholder": "", - "real_time_refresh": true, - "required": false, - "show": false, - "title_case": false, - "tool_mode": false, - "trace_as_metadata": true, - "track_in_telemetry": false, - "type": "str", - "value": "" - }, - "token": { - "_input_type": "SecretStrInput", - "advanced": false, - "display_name": "Token", - "dynamic": false, - "info": "", - "input_types": [], - "load_from_db": true, - "name": "token", - "override_skip": false, - "password": true, - "placeholder": "", - "real_time_refresh": true, - "required": false, - "show": false, - "title_case": false, - "track_in_telemetry": false, - "type": "str", - "value": "" - }, - "token_url": { - "_input_type": "StrInput", - "advanced": false, - "display_name": "Token URL", - "dynamic": false, - "info": "", - "list": false, - "list_add_label": "Add More", - "load_from_db": false, - "name": "token_url", - "override_skip": false, - "placeholder": "", - "real_time_refresh": true, - "required": false, - "show": false, - "title_case": false, - "tool_mode": false, - "trace_as_metadata": true, - "track_in_telemetry": false, - "type": "str", - "value": "" + "track_in_telemetry": true, + "type": "int", + "value": 900 }, "tools_metadata": { "_input_type": "ToolsInput", @@ -1753,49 +1413,56 @@ } ] }, - "username": { - "_input_type": "StrInput", + "url": { + "_input_type": "MessageTextInput", "advanced": false, - "display_name": "Username", + "display_name": "URL", "dynamic": false, - "info": "", + "info": "The URL of the public web page you want to extract data from.", + "input_types": [ + "Message" + ], "list": false, "list_add_label": "Add More", "load_from_db": false, - "name": "username", + "name": "url", "override_skip": false, "placeholder": "", - "real_time_refresh": true, - "required": false, - "show": false, + "required": true, + "show": true, "title_case": false, - "tool_mode": false, + "tool_mode": true, + "trace_as_input": true, "trace_as_metadata": true, "track_in_telemetry": false, "type": "str", "value": "" }, - "verification_token": { - "_input_type": "StrInput", - "advanced": false, - "display_name": "Verification Token", + "wait_for": { + "_input_type": "IntInput", + "advanced": true, + "display_name": "Wait For", "dynamic": false, - "info": "", + "info": "Seconds to wait for the page to load before extracting data.", "list": false, "list_add_label": "Add More", - "load_from_db": false, - "name": "verification_token", + "name": "wait_for", "override_skip": false, "placeholder": "", - "real_time_refresh": true, + "range_spec": { + "max": 10.0, + "min": 0.0, + "step": 0.1, + "step_type": "int" + }, "required": false, - "show": false, + "show": true, "title_case": false, "tool_mode": false, "trace_as_metadata": true, - "track_in_telemetry": false, - "type": "str", - "value": "" + "track_in_telemetry": true, + "type": "int", + "value": 0 } }, "tool_mode": true