* Refactor YfinanceToolComponent to inherit from LCToolComponent and remove unused outputs
* Refactor `PythonREPLToolComponent` to use new input configuration and update method signatures
* Add functions to handle dict values in ATTR_FUNC_MAPPING for '_outputs_maps' and '_inputs'
* Handle '_outputs_maps' argument in frontend node creation
* Add unit test for custom component subclassing from LCToolComponent
* Add input and output handling to PythonREPLToolComponent
- Introduced `input_value` to `inputs` for capturing user input.
- Added `outputs` to define the output structure, including `api_run_model` and `tool` for backward compatibility.
- Implemented `run_model` method to execute the tool and return results as `Data`.
* Add input and output handling to YfinanceToolComponent
- Introduced `MessageTextInput` for user queries.
- Added `Output` definitions for `api_run_model` and `tool` methods.
- Implemented `run_model` method to execute tool with user input.
* Add input and output definitions to YfinanceTool for better data handling
* Update error message to use display_name instead of vertex_type in edge validation
* Add unit test for YfinanceToolComponent template output validation
* Refactor tool components to include 'Data' output and update input types
- Added 'Data' output type to 'Agent Flow', 'Sequential Agent', and 'Complex Agent' starter projects.
- Updated input types to use 'MessageTextInput' and 'MultiselectInput' for better input handling.
- Refactored code to align with new input and output structures, ensuring backward compatibility.
* Add unit test for PythonREPLToolComponent template validation
* test: disblable test
---------
Co-authored-by: italojohnny <italojohnnydosanjos@gmail.com>
* Removed output from node output field
* Removed setShowState that is unused
* Render nodestatus only if !showNode
* Fix node status showing when minimized
* Fix node not expanding after minimized if an output was hidden
* Lint
* [autofix.ci] apply automated fixes
---------
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
* new tests folders organizations
* 📝 (nightly_build.yml): update tests_folder path from "tests/scheduled" to "tests/core" to reflect the correct location of the tests folder
* renaming test folder
* changing e2e to integrations folder
* 📝 (frontend/tsconfig.json): update test file paths to reflect changes in folder structure for better organization and clarity
* change assets folder
* 📝 (frontend): update file paths to remove redundant 'core' directory in test assets
* 📝 (Document QA.spec.ts, Vector Store.spec.ts, fileUploadComponent.spec.ts): Update file paths to correctly reference test assets in integration and unit tests.
* github suggestions
* feat: Add scroll detection for NodeDescription overflow
* style: update CSS to hide non-selected note nodes
* remove feature flag
* [autofix.ci] apply automated fixes
* refactor: update feature flags and test IDs
- Update ENABLE_MVPS flag to false in feature-flags.ts
- Update testId from "extended-disclosure" to "bundle-extended-disclosure" in extraSidebarComponent/index.tsx
---------
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
* first attempt to edit variables on the data table
* refactor: Rename AddNewVariableButton to GlobalVariableModal and update its usage
The component AddNewVariableButton has been renamed to GlobalVariableModal to better reflect its purpose. The component is now used in multiple places, including the GlobalVariablesPage and InputGlobalComponent. This change improves code clarity and consistency.
* fix: fix apply to fields on table edit option
* refactor: Trim field names before checking for availability in GlobalVariableModal and GlobalVariablesPage
Trim field names before checking for availability in GlobalVariableModal and GlobalVariablesPage to ensure consistent comparison and avoid any potential issues with leading or trailing spaces.
* Refactor GlobalVariablesPage to remove unused cellRenderer in the "value" field
* [autofix.ci] apply automated fixes
* Add validation for 'value' field in VariableRead model and import CREDENTIAL_TYPE
- Introduced a field validator for the 'value' field in the VariableRead model to handle cases where the variable type is CREDENTIAL_TYPE.
- Added necessary import for CREDENTIAL_TYPE.
- Removed an unnecessary blank line in the variable API.
* Add constants for credential and generic types in variable service
* Refactor import statements in `kubernetes.py` to improve module organization
* Refactor imports in test_service.py for better organization
* refactor: Update import statements in variable.py for better organization
* Refactor import and reorder fields in VariableRead model
- Changed import of `CREDENTIAL_TYPE` from `service` to `constants` module.
- Reordered fields in `VariableRead` model to place `type` before `value`.
* ✨ (userSettings.spec.ts): Add additional randomName variables for testing purposes
📝 (userSettings.spec.ts): Update test to interact with global variables and improve readability and maintainability of the code
* test: fix test_create_variable
---------
Co-authored-by: Gabriel Luiz Freitas Almeida <gabriel@langflow.org>
Co-authored-by: cristhianzl <cristhian.lousa@gmail.com>
Co-authored-by: italojohnny <italojohnnydosanjos@gmail.com>
* Refactor test fixtures and imports for optimization
- Reordered and optimized imports in `conftest.py`.
- Changed return statements to yield in `basic_graph` and `create_webhook` fixtures for better resource management.
- Added cleanup step to `create_webhook` fixture to delete created webhook after test completion.
* Refactor imports and add placeholder client fixture in test_ChatOllama_component.py
* Add pytest fixture 'client' to test_graph.py
* Add pytest fixture 'client' to test_callback_graph.py for test optimization
* Add 'unit_tests_looponfail' target to Makefile for running unit tests with loop-on-fail option
* Optimize test durations and update test cases in various modules
* 📝 (buttonSendWrapper/index.tsx): refactor button styling logic to use constants for better readability and maintainability
🐛 (buttonSendWrapper/index.tsx): fix logic to disable button when chat is locked and not building
🐛 (buttonSendWrapper/index.tsx): fix conditional rendering of icons based on button state
* ✨ (stop-button-playground.spec.ts): Add end-to-end test for stopping building from inside Playground.
* 🔧 (buttonSendWrapper/index.tsx): refactor conditional logic to correctly prioritize showStopButton condition and improve code readability
* ✅ (stop-button-playground.spec.ts): add assertion to check if "build stopped" text is visible after clicking on the stop button
* feat: Add x-large size option to baseModal
The code changes introduce a new size option "x-large" to the baseModal component. This size option sets the minimum width to "min-w-[95vw]" and the height to "h-[95vh]". This change allows for a larger modal size when needed.
* feat: Add x-large size option to baseModal
* chore: Update CodeAreaModal to use x-large size option
* feat: Update EditNodeModal to use x-large size option
* feat: Update FlowLogsModal to use x-large size option
* chore: Update modal components to use x-large size option
* 🔧 (applies.css): Rearrange CSS classes properties for better readability and maintainability. Fix the order of properties in CSS classes to follow a consistent pattern.
* refactor to improve readability
* refactor to improve readability
* refactor to improve readability
* refactor to improve readability
* refactor to improve readability
* refactor to improve readability
* refactor to improve readability
* refactor to improve readability
* ✅ (Simple Agent.spec.ts): update expected count of python words to 2 for accurate test results
📝 (auto-login-off.spec.ts): add a 1-second timeout before checking visibility of a text element to ensure proper rendering and improve test reliability
* 📝 (cardComponent/index.tsx): Extract handlePlaygroundClick function to improve code readability and maintainability
📝 (codeAreaComponent/index.tsx): Refactor code to use consistent naming conventions and improve code structure
📝 (rename-label.tsx): Refactor code to use consistent naming conventions and improve code structure
📝 (dictAreaModal/index.tsx): Refactor code to use consistent naming conventions and improve code structure
* 🔧 (rename-label.tsx): Refactor RenameLabel component to improve readability and maintainability by restructuring the component logic into separate functions for handling blur, change, and double click events. Split the component rendering logic into separate functions for input and span elements.
* update type
* [autofix.ci] apply automated fixes
---------
Co-authored-by: anovazzi1 <otavio2204@gmail.com>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
* feat: Add useUtilityStore hook to IOModal for setting playground scroll behavior
* feat: Add useUtilityStore hook to IOModal for setting playground scroll behavior
* feat: Add setPlaygroundScrollBehaves function to useUtilityStore hook
* feat: Update codeTabsPropsType to allow undefined for the 'open' property
* feat: Add `playgroundScrollBehaves` and `setPlaygroundScrollBehaves` to `UtilityStoreType`
The `UtilityStoreType` now includes the `playgroundScrollBehaves` property of type `ScrollBehavior` and the `setPlaygroundScrollBehaves` function to update it. This allows for managing the scroll behavior of the playground in the application.
* refactor: Remove unused 'open' prop from CodeTabsComponent
* Fixes copy of component outputs
* Fix issue with copying outputs in custom components
- Update loop to iterate over `_outputs.values()` instead of `outputs` to ensure correct attribute setting.
* Refactor output handling in custom component to use dictionary values
- Updated methods to iterate over `_outputs.values()` instead of `outputs`.
- Ensured consistent access to output values across various methods.
- Fixed potential issues with output value resetting and state model building.
* Fix incorrect attribute reference in set_output_value method
* Add missing import for CustomComponent in test_custom_component.py
* Refactor `test_read_flow` to generate unique flow names for each test run
* Refactor: Rename `_outputs` to `_outputs_map` in custom component
- Updated all references of `_outputs` to `_outputs_map` in `component.py` to improve clarity and consistency.
- Adjusted related methods and attributes in `base.py` to align with the new naming convention.
* Fix output handling in custom component
- Moved `_reset_all_output_values` call to ensure outputs are reset after initialization.
- Updated attribute access to use `_outputs_map` instead of `_outputs` for consistency.
---------
Co-authored-by: Gabriel Luiz Freitas Almeida <gabriel@langflow.org>
✨ (decisionFlow.spec.ts): Remove unnecessary code related to connection 4 and improve flow by adding a new connection for prompt input user message
📝 (decisionFlow.spec.ts): Update test to fill in a different message in the chat playground and verify a different emoji response
* Updated save flow to only execute when the flow has unsaved changes
* Made flowPage call saveFlow immediatly when trying to exit page
* Changed save changes modal to automatically exit when saved on autoSave
* Changed flowPage to save and exit when autoSave
* Remove confirmation button if it does not exist and remove footer if confirmation and cancel does not exist
* Changed saveChangesModal to not show buttons when autoSave is on and to set loading as true when autoSave is off and the user saves
* Add timer to close modal, so, if saving takes less than 1 second, it waits
* Changed type of confirmationModal
* Added handling for when it's building and there is unsaved changes
* Added success toast when flow finishes saving
* refactored confirmationModal
* check autoLogin !== undefined before calling things
* Fix use save flow to compare the passed flow instead of the current one
* Changed style of save changes modal
* deleted build in progress modal
* Removed build in progress modal, just stopping the build
* Fix condition on api
* Changed condition to be autoLogin !== undefined
* Remove save on pan flow and added fit view
* Removed viewport setting on resetFlow and setReactflowInstance
* Made last saved appear on header
* Made it only fit on set react flow instance
---------
Co-authored-by: Cristhian Zanforlin Lousa <cristhian.lousa@gmail.com>
* Add helper function to retrieve user by flow ID or endpoint name in user.py
- Introduced `get_user_by_flow_id_or_endpoint_name` function to fetch user details based on flow ID or endpoint name.
- Added error handling for cases where the flow or user is not found.
- Utilized `get_db_service` for database session management.
* Add user dependency to webhook endpoint for flow execution
- Import `get_user_by_flow_id_or_endpoint_name` helper function.
- Add `user` parameter to `webhook_run_flow` endpoint.
- Pass `user` to `simple_run_flow_task` for API key association.
* refactor: update deprecated call to get_actions
* Update composio-langchain dependency to version 0.5.13 in pyproject.toml
* Downgrade `composio-langchain` dependency to version `0.5.9` in `pyproject.toml`
* Add missing import for CustomComponent in test_custom_component.py
fix: Update transition property in App.css
The transition property in App.css has been updated to only transition the color property instead of all properties. This change improves performance by reducing unnecessary transitions.
* ✨ (use-get-folders.ts): Update useGetFoldersQuery to check if types are empty before calling getTypes to avoid unnecessary API calls
♻️ (typesStore.ts): Remove unnecessary useAlertStore setState call to improve code readability and maintainability
* feat: Update getTypes function to always force refresh
The `getTypes` function in `typesStore.ts` has been updated to always force a refresh of the types data. This change ensures that the latest data is fetched from the API, avoiding unnecessary API calls.
* Changed types check in other pages
---------
Co-authored-by: Lucas Oliveira <lucas.edu.oli@hotmail.com>
* fix: Problem in the description field when using the MariaDB or MySQL database.
* fix: Problem in the description field when using the MariaDB or MySQL database.
* fix: Add the migration script to update description columns type.
* [autofix.ci] apply automated fixes
* Update src/backend/base/langflow/alembic/versions/1d90f8a0efe1_update_description_columns_type.py
Co-authored-by: Gabriel Luiz Freitas Almeida <gabriel@langflow.org>
* feat: add component clickhouse for vector database
* feat: add component clickhouse for vector database - conflicts resolved
* [autofix.ci] apply automated fixes
* [autofix.ci] apply automated fixes (attempt 2/3)
* feat: add component clickhouse for vector database - conflicts resolved
* feat: add component clickhouse for vector database - update poetry
* feat: add component clickhouse for vector database - conflicts resolved
---------
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: Gabriel Luiz Freitas Almeida <gabriel@langflow.org>
📝 (LangChainHubPrompt.py): update display name to "LangChain Hub" for better clarity and consistency with the component's purpose
Co-authored-by: anovazzi1 <otavio2204@gmail.com>
* Removed refetching of get folder on save
* Made component appear if its loading
* Rebaned query key to not refetch folders
* Changed isLoading to isFetching for the component to be unclickable while refetching
* Fixed IOModal calling getMessages again
* Fixed folders API being called twice
* removed unused imports
* Re-added query of get messages and changed to enable query when open
* Fix auto login off test
* Fix border node color to use ring in order to not shrink component and to use selected edge color
* Updated selected edge width to match selected node width
---------
Co-authored-by: Cristhian Zanforlin Lousa <cristhian.lousa@gmail.com>
* Added key to sidebar buttons
* Added key directrly to sidebar category
* Removed key definition on sidebar category
* Fix error of nested buttons on secretKeyModal
* Fix nested buttons on output modal
* Fix clip-path warning on components
* Fix components cannot be given refs on nodeOutputField
* Removed unused console.log
* Added key on profile pictures map
* Fixed hideOverlay being called when the table is destroyed
* Fixed valueFormatter error on Apply To Fields field on GlobalVariables page
* Updated headers on config page to ensure consistent design
* 🐛 (sideBarFolderButtons/index.tsx): fix success message not being set when files array is empty
* 🐛 (index.tsx): fix issue where success message was not being displayed when uploading files successfully
* 🔧 (pyproject.toml): add lark dependency to support parsing and processing of grammars in the project
♻️ (SelfQueryRetriever.py): refactor input types in metadata fields to improve clarity and maintainability
* 📝 (SelfQueryRetriever.py): Update class name and imports for consistency and clarity
📝 (SelfQueryRetriever.py): Refactor input and output definitions for better readability and maintainability
📝 (SelfQueryRetriever.py): Refactor method signatures and variable names for improved code organization and understanding
* [autofix.ci] apply automated fixes
* ♻️ (SelfQueryRetriever.py): Remove unused import 'VectorStore' to clean up the code and improve maintainability.
---------
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
* refactor: Update MessageBase text attribute based on isinstance check.
* feat: Add update_message function to update a message in the database.
* refactor(chat): Update imports and remove unnecessary config method in ChatComponent.
* refactor: Add stream_message method to ChatComponent.
* refactor: Update method call in ChatOutput component.
* feat: Add callback function to custom component and update build_results signature.
* feat: Add callback parameter to instantiate_class function.
* feat(graph): Add callback functions for sync and async operations.
* feat: Add callback function support to vertex build process.
* feat: Add handling for added message in InterfaceVertex class.
* feat: Add callback support to Graph methods.
* feat(chat): Add callback function to build_vertices function.
* refactor: Simplify update_message function and use session_scope for session management.
* fix: Call set_callback method if available on custom component.
* refactor(chat): Update chat message chunk handling and ID conversion.
* feat: Add null check before setting cache in build_vertex_stream function.
* refactor: Fix send_event_wrapper function and add callback parameter to _build_vertex function.
* refactor: Simplify conditional statement and import order in ChatOutput.
* refactor: move log method to Component class.
* refactor: Simplify CallbackFunction definition.
* feat: Initialize _current_output attribute in Component class.
* feat: store current output name in custom component during processing.
* feat: Add current output and component ID to log data.
* fix: Add condition to check current output before invoking callback.
* refactor: Update callback to log_callback in graph methods.
* feat: Add test for callback graph execution with log messages.
* update projects
* fix(chat.py): fix condition to check if message text is a string before updating message text in the database
* refactor(ChatOutput.py): update ChatOutput class to correctly store and assign the message value to ensure consistency and avoid potential bugs
* refactor(chat.py): update return type of store_message method to return a single Message object instead of a list of Messages
refactor(chat.py): update logic to correctly handle updating and returning a single stored message object instead of a list of messages
* update starter projects
* refactor(component.py): update type hint for name parameter in log method to be more explicit
* feat: Add EventManager class for managing events and event registration
* refactor: Update log_callback to event_manager in custom component classes
* refactor(component.py): rename _log_callback to _event_manager and update method call to on_log for better clarity and consistency
* refactor(chat.py): rename _log_callback method to _event_manager.on_token for clarity and consistency in method naming
* refactor: Rename log_callback to event_manager for clarity and consistency
* refactor: Update Vertex class to use EventManager instead of log_callback for better clarity and consistency
* refactor: update build_flow to use EventManager
* refactor: Update EventManager class to use Protocol for event callbacks
* if event_type is not passed, it uses the default send_event
* Add method to register event functions in EventManager
- Introduced `register_event_function` method to allow passing custom event functions.
- Updated `noop` method to accept `event_type` parameter.
- Adjusted `__getattr__` to return `EventCallback` type.
* update test_callback_graph
* Add unit tests for EventManager in test_event_manager.py
- Added tests for event registration, including default event type, empty string names, and specific event types.
- Added tests for custom event functions and unregistered event access.
- Added tests for event sending, including JSON formatting, empty data, and large payloads.
- Added tests for handling JSON serialization errors and the noop function.
* revert chatOutput change
* Add validation for event function in EventManager
- Introduced `_validate_event_function` method to ensure event functions are callable and have the correct parameters.
- Updated `register_event_function` to use the new validation method.
* Add tests for EventManager's event function validation logic
- Introduce `TestValidateEventFunction` class to test various scenarios for `_validate_event_function`.
- Add tests for valid event functions, non-callable event functions, invalid parameter counts, and parameter type validation.
- Include tests for handling unannotated parameters, flexible arguments, and keyword-only parameters.
- Ensure proper warnings and exceptions are raised for invalid event functions.
* Add type ignore comment to lambda function in test_event_manager.py
* refactor: Update EventManager class to use Protocol for event callbacks
* refactor(event_manager.py): simplify event registration and validation logic to enhance readability and maintainability
feat(event_manager.py): enforce event name conventions and improve callback handling for better error management
* refactor(chat.py): standardize event_manager method calls by using keyword arguments for better clarity and consistency
refactor(chat.py): extract message processing logic into separate methods for improved readability and maintainability
fix(chat.py): ensure proper handling of async iterators in message streaming
refactor(component.py): simplify event logging by removing unnecessary event name parameter in on_log method call
* update event manager tests
* Add callback validation and manager parameter in EventManager
- Introduced `_validate_callback` method to ensure callbacks are callable and have the correct parameters.
- Updated `register_event` to include `manager` parameter in the callback.
* Add support for passing callback through the Graph in test_callback_graph
* fix(event_manager.py): update EventCallback signature to include manager parameter for better context in event handling
* Added buildController and stopBuilding controllers
* Used stop building in header Stop button
* Set the build controller in API performstreamingrequest
* added setbuildcontroller to types