{
    "id": "a7003613-8243-4f71-800c-6be1c4065518",
    "data": {
        "nodes": [
            {
                "id": "Secret-zIbKs",
                "type": "genericNode",
                "position": {
                    "x": 397.9312192693087,
                    "y": 262.8483455882353
                },
                "data": {
                    "type": "Secret",
                    "node": {
                        "template": {
                            "_type": "Component",
                            "code": {
                                "type": "code",
                                "required": true,
                                "placeholder": "",
                                "list": false,
                                "show": true,
                                "multiline": true,
                                "value": "from lfx.custom import Component\nfrom lfx.io import SecretStrInput, Output\nfrom lfx.schema.message import Message\n\n\nclass SecretComponent(Component):\n    display_name = \"SecretComponent\"\n    description = \"SECURE.\"\n    icon = \"lock\"\n    name = \"Secret\"\n\n    inputs = [\n        SecretStrInput(\n            name=\"secret_key_input\",\n            display_name=\"Secret Key\",\n            info=\"The Secret to be reveald.\",\n            required=True,\n        ),\n    ]\n    outputs = [\n        Output(display_name=\"Secret\", name=\"text\", method=\"text_response\"),\n    ]\n\n    def text_response(self) -> Message:\n        self.log(self.secret_key_input)\n        message = Message(\n            text=self.secret_key_input,\n        )\n        return message\n",
                                "fileTypes": [],
                                "file_path": "",
                                "password": false,
                                "name": "code",
                                "advanced": true,
                                "dynamic": true,
                                "info": "",
                                "load_from_db": false,
                                "title_case": false
                            },
                            "secret_key_input": {
                                "load_from_db": false,
                                "required": true,
                                "placeholder": "",
                                "show": true,
                                "name": "secret_key_input",
                                "value": "",
                                "display_name": "Secret Key",
                                "advanced": false,
                                "input_types": [
                                    "Message"
                                ],
                                "dynamic": false,
                                "info": "The Secret to be reveald.",
                                "title_case": false,
                                "password": true,
                                "type": "str",
                                "_input_type": "SecretStrInput"
                            }
                        },
                        "description": "SECURE.",
                        "icon": "lock",
                        "base_classes": [
                            "Message"
                        ],
                        "display_name": "SecretComponent",
                        "documentation": "",
                        "custom_fields": {},
                        "output_types": [],
                        "pinned": false,
                        "conditional_paths": [],
                        "frozen": false,
                        "outputs": [
                            {
                                "types": [
                                    "Message"
                                ],
                                "selected": "Message",
                                "name": "text",
                                "display_name": "Secret",
                                "method": "text_response",
                                "value": "__UNDEFINED__",
                                "cache": true
                            }
                        ],
                        "field_order": [
                            "secret_key_input"
                        ],
                        "beta": false,
                        "edited": true,
                        "metadata": {},
                        "lf_version": "1.0.18"
                    },
                    "id": "Secret-zIbKs"
                },
                "selected": false,
                "width": 384,
                "height": 289,
                "positionAbsolute": {
                    "x": 397.9312192693087,
                    "y": 262.8483455882353
                },
                "dragging": false
            },
            {
                "id": "ChatOutput-u9cPC",
                "type": "genericNode",
                "position": {
                    "x": 863,
                    "y": 265.171875
                },
                "data": {
                    "type": "ChatOutput",
                    "node": {
                        "template": {
                            "_type": "Component",
                            "code": {
                                "type": "code",
                                "required": true,
                                "placeholder": "",
                                "list": false,
                                "show": true,
                                "multiline": true,
                                "value": "from lfx.base.io.chat import ChatComponent\nfrom lfx.inputs import BoolInput\nfrom lfx.io import DropdownInput, MessageTextInput, Output\nfrom lfx.memory import store_message\nfrom lfx.schema.message import Message\nfrom lfx.utils.constants import MESSAGE_SENDER_AI, MESSAGE_SENDER_NAME_AI, MESSAGE_SENDER_USER\n\n\nclass ChatOutput(ChatComponent):\n    display_name = \"Chat Output\"\n    description = \"Display a chat message in the Playground.\"\n    icon = \"ChatOutput\"\n    name = \"ChatOutput\"\n\n    inputs = [\n        MessageTextInput(\n            name=\"input_value\",\n            display_name=\"Text\",\n            info=\"Message to be passed as output.\",\n        ),\n        BoolInput(\n            name=\"should_store_message\",\n            display_name=\"Store Messages\",\n            info=\"Store the message in the history.\",\n            value=True,\n            advanced=True,\n        ),\n        DropdownInput(\n            name=\"sender\",\n            display_name=\"Sender Type\",\n            options=[MESSAGE_SENDER_AI, MESSAGE_SENDER_USER],\n            value=MESSAGE_SENDER_AI,\n            advanced=True,\n            info=\"Type of sender.\",\n        ),\n        MessageTextInput(\n            name=\"sender_name\",\n            display_name=\"Sender Name\",\n            info=\"Name of the sender.\",\n            value=MESSAGE_SENDER_NAME_AI,\n            advanced=True,\n        ),\n        MessageTextInput(\n            name=\"session_id\",\n            display_name=\"Session ID\",\n            info=\"The session ID of the chat. If empty, the current session ID parameter will be used.\",\n            advanced=True,\n        ),\n        MessageTextInput(\n            name=\"data_template\",\n            display_name=\"Data Template\",\n            value=\"{text}\",\n            advanced=True,\n            info=\"Template to convert Data to Text. If left empty, it will be dynamically set to the Data's text key.\",\n        ),\n    ]\n    outputs = [\n        Output(display_name=\"Message\", name=\"message\", method=\"message_response\"),\n    ]\n\n    def message_response(self) -> Message:\n        message = Message(\n            text=self.input_value,\n            sender=self.sender,\n            sender_name=self.sender_name,\n            session_id=self.session_id,\n        )\n        if (\n            self.session_id\n            and isinstance(message, Message)\n            and isinstance(message.text, str)\n            and self.should_store_message\n        ):\n            store_message(\n                message,\n                flow_id=self.graph.flow_id,\n            )\n            self.message.value = message\n\n        self.status = message\n        return message\n",
                                "fileTypes": [],
                                "file_path": "",
                                "password": false,
                                "name": "code",
                                "advanced": true,
                                "dynamic": true,
                                "info": "",
                                "load_from_db": false,
                                "title_case": false
                            },
                            "data_template": {
                                "trace_as_input": true,
                                "trace_as_metadata": true,
                                "load_from_db": false,
                                "list": false,
                                "required": false,
                                "placeholder": "",
                                "show": true,
                                "name": "data_template",
                                "value": "{text}",
                                "display_name": "Data Template",
                                "advanced": true,
                                "input_types": [
                                    "Message"
                                ],
                                "dynamic": false,
                                "info": "Template to convert Data to Text. If left empty, it will be dynamically set to the Data's text key.",
                                "title_case": false,
                                "type": "str",
                                "_input_type": "MessageTextInput"
                            },
                            "input_value": {
                                "trace_as_input": true,
                                "trace_as_metadata": true,
                                "load_from_db": false,
                                "list": false,
                                "required": false,
                                "placeholder": "",
                                "show": true,
                                "name": "input_value",
                                "value": "",
                                "display_name": "Text",
                                "advanced": false,
                                "input_types": [
                                    "Message"
                                ],
                                "dynamic": false,
                                "info": "Message to be passed as output.",
                                "title_case": false,
                                "type": "str",
                                "_input_type": "MessageTextInput"
                            },
                            "sender": {
                                "trace_as_metadata": true,
                                "options": [
                                    "Machine",
                                    "User"
                                ],
                                "combobox": false,
                                "required": false,
                                "placeholder": "",
                                "show": true,
                                "name": "sender",
                                "value": "Machine",
                                "display_name": "Sender Type",
                                "advanced": true,
                                "dynamic": false,
                                "info": "Type of sender.",
                                "title_case": false,
                                "type": "str",
                                "_input_type": "DropdownInput"
                            },
                            "sender_name": {
                                "trace_as_input": true,
                                "trace_as_metadata": true,
                                "load_from_db": false,
                                "list": false,
                                "required": false,
                                "placeholder": "",
                                "show": true,
                                "name": "sender_name",
                                "value": "AI",
                                "display_name": "Sender Name",
                                "advanced": true,
                                "input_types": [
                                    "Message"
                                ],
                                "dynamic": false,
                                "info": "Name of the sender.",
                                "title_case": false,
                                "type": "str",
                                "_input_type": "MessageTextInput"
                            },
                            "session_id": {
                                "trace_as_input": true,
                                "trace_as_metadata": true,
                                "load_from_db": false,
                                "list": false,
                                "required": false,
                                "placeholder": "",
                                "show": true,
                                "name": "session_id",
                                "value": "",
                                "display_name": "Session ID",
                                "advanced": true,
                                "input_types": [
                                    "Message"
                                ],
                                "dynamic": false,
                                "info": "The session ID of the chat. If empty, the current session ID parameter will be used.",
                                "title_case": false,
                                "type": "str",
                                "_input_type": "MessageTextInput"
                            },
                            "should_store_message": {
                                "trace_as_metadata": true,
                                "list": false,
                                "required": false,
                                "placeholder": "",
                                "show": true,
                                "name": "should_store_message",
                                "value": true,
                                "display_name": "Store Messages",
                                "advanced": true,
                                "dynamic": false,
                                "info": "Store the message in the history.",
                                "title_case": false,
                                "type": "bool",
                                "_input_type": "BoolInput"
                            }
                        },
                        "description": "Display a chat message in the Playground.",
                        "icon": "ChatOutput",
                        "base_classes": [
                            "Message"
                        ],
                        "display_name": "Chat Output",
                        "documentation": "",
                        "custom_fields": {},
                        "output_types": [],
                        "pinned": false,
                        "conditional_paths": [],
                        "frozen": false,
                        "outputs": [
                            {
                                "types": [
                                    "Message"
                                ],
                                "selected": "Message",
                                "name": "message",
                                "display_name": "Message",
                                "method": "message_response",
                                "value": "__UNDEFINED__",
                                "cache": true
                            }
                        ],
                        "field_order": [
                            "input_value",
                            "should_store_message",
                            "sender",
                            "sender_name",
                            "session_id",
                            "data_template"
                        ],
                        "beta": false,
                        "edited": false,
                        "metadata": {},
                        "lf_version": "1.0.18"
                    },
                    "id": "ChatOutput-u9cPC"
                },
                "selected": false,
                "width": 384,
                "height": 289
            }
        ],
        "edges": [
            {
                "source": "Secret-zIbKs",
                "sourceHandle": "{œdataTypeœ:œSecretœ,œidœ:œSecret-zIbKsœ,œnameœ:œtextœ,œoutput_typesœ:[œMessageœ]}",
                "target": "ChatOutput-u9cPC",
                "targetHandle": "{œfieldNameœ:œinput_valueœ,œidœ:œChatOutput-u9cPCœ,œinputTypesœ:[œMessageœ],œtypeœ:œstrœ}",
                "data": {
                    "targetHandle": {
                        "fieldName": "input_value",
                        "id": "ChatOutput-u9cPC",
                        "inputTypes": [
                            "Message"
                        ],
                        "type": "str"
                    },
                    "sourceHandle": {
                        "dataType": "Secret",
                        "id": "Secret-zIbKs",
                        "name": "text",
                        "output_types": [
                            "Message"
                        ]
                    }
                },
                "id": "reactflow__edge-Secret-zIbKs{œdataTypeœ:œSecretœ,œidœ:œSecret-zIbKsœ,œnameœ:œtextœ,œoutput_typesœ:[œMessageœ]}-ChatOutput-u9cPC{œfieldNameœ:œinput_valueœ,œidœ:œChatOutput-u9cPCœ,œinputTypesœ:[œMessageœ],œtypeœ:œstrœ}",
                "animated": false,
                "className": ""
            }
        ],
        "viewport": {
            "x": 11.839003462770279,
            "y": -83.83942756687532,
            "zoom": 1.0894902752636453
        }
    },
    "description": "Engineered for Excellence, Built for Business.",
    "name": "env_variable_test",
    "last_tested_version": "1.0.18",
    "endpoint_name": "env_variable_test",
    "is_component": false
}