* Fixed code block color on notes and node
* Changed color of list bullets
* Changed selected border color for note node
* [autofix.ci] apply automated fixes
---------
Co-authored-by: anovazzi1 <otavio2204@gmail.com>
* refactor: Update AccountMenu and Select components
- Refactor AccountMenu component to improve readability and simplify logic
- Update Select component to add support for direction prop and display ChevronUp icon when direction is set to "up"
Related work items: #4569, #4565
* refactor: Update header component UI
This commit refactors the header component in the MainPage to update its UI. It adds a sliding indicator for the view type (list or grid) and adjusts the styling of the buttons accordingly. It also removes commented out code related to the store button. Additionally, the commit updates the emptyFolder component by simplifying the text for the "New Flow" button.
Refactor the header component UI and update emptyFolder component
* refactor: Update HeaderMenu component UI
* Updated colors to use shadcn variables
---------
Co-authored-by: Lucas Oliveira <lucas.edu.oli@hotmail.com>
* 🐛 (genericIconComponent/index.tsx): fix optional chaining for split and map functions to prevent errors
🐛 (actionsMainPage-shard-1.spec.ts): remove redundant zoom_out click
🐛 (auto-login-off.spec.ts): reduce wait time from 2000ms to 1000ms
🐛 (freeze-path.spec.ts): change click target from "openai" to "OpenAI" for consistency
🐛 (freeze.spec.ts): change click target from "Split Text" to "Split Text" for consistency
🐛 (Dynamic Agent.spec.ts): skip test execution
🐛 (Hierarchical Agent.spec.ts): skip test execution
🐛 (Sequential Task Agent.spec.ts): skip test execution
🐛 (Simple Agent.spec.ts): skip test execution
🐛 (decisionFlow.spec.ts): change search input from "conditional router" to "if else"
🐛 (similarity.spec.ts): change search input from "openai" to "openai embedding"
🐛 (fileUploadComponent.spec.ts): enable test for file upload functionality
📝 (deleteComponents.spec.ts): Remove commented out code and enable test for deleting a component
📝 (deleteFlows.spec.ts): Enable test for deleting a flow
📝 (starter-projects.spec.ts): Enable test for interacting with starter projects
📝 (store-shard-3.spec.ts): Enable tests for ordering visualization and filtering by type
📝 (generalBugs-shard-13.spec.ts): Enable test for sharing a component on the store
* ⬆️ (typescript_test.yml): update matrix configuration to run tests on multiple shards for better parallelization
🔧 (typescript_test.yml): enable playwright test execution with shard index and total for parallel test execution
* 🐛 (genericIconComponent/index.tsx): fix optional chaining for split and map functions to prevent errors
🐛 (actionsMainPage-shard-1.spec.ts): remove redundant zoom_out click
🐛 (auto-login-off.spec.ts): reduce wait time from 2000ms to 1000ms
🐛 (freeze-path.spec.ts): change click target from "openai" to "OpenAI" for consistency
🐛 (freeze.spec.ts): change click target from "Split Text" to "Split Text" for consistency
🐛 (Dynamic Agent.spec.ts): skip test execution
🐛 (Hierarchical Agent.spec.ts): skip test execution
🐛 (Sequential Task Agent.spec.ts): skip test execution
🐛 (Simple Agent.spec.ts): skip test execution
🐛 (decisionFlow.spec.ts): change search input from "conditional router" to "if else"
🐛 (similarity.spec.ts): change search input from "openai" to "openai embedding"
🐛 (fileUploadComponent.spec.ts): enable test for file upload functionality
📝 (deleteComponents.spec.ts): Remove commented out code and enable test for deleting a component
📝 (deleteFlows.spec.ts): Enable test for deleting a flow
📝 (starter-projects.spec.ts): Enable test for interacting with starter projects
📝 (store-shard-3.spec.ts): Enable tests for ordering visualization and filtering by type
📝 (generalBugs-shard-13.spec.ts): Enable test for sharing a component on the store
* ⬆️ (typescript_test.yml): update matrix configuration to run tests on multiple shards for better parallelization
🔧 (typescript_test.yml): enable playwright test execution with shard index and total for parallel test execution
* 🐛 (Travel Planning Agent.spec.ts): Fix issue with setting API keys for OpenAI models and Search API
🐛 (Travel Planning Agent.spec.ts): Fix issue with clicking the wrong button for running chat output
🐛 (Travel Planning Agent.spec.ts): Fix issue with checking rate limit and skipping test logic
🐛 (Travel Planning Agent.spec.ts): Fix issue with checking output text for lowercase city names
🐛 (Vector Store.spec.ts): Fix issue with clicking the wrong button for creating a new flow
🐛 (Vector Store.spec.ts): Fix issue with filling the wrong input field for collection name in Vector Store RAG test
* 🔧 (generalBugs-shard-4.spec.ts): skip test case temporarily due to functionality not working with uplift designs
* Update test to use 'message history' instead of 'chat memory' in sidebar search input
* Update test selectors and expected values in dropdownComponent.spec.ts
* 📝 (Simple Agent.spec.ts): Remove unnecessary test.skip and commented out code
📝 (dropdownComponent.spec.ts): Update dropdown selection to match new text
📝 (starter-projects.spec.ts): Remove unused template IDs
📝 (store-shard-1.spec.ts): Update test.skip to test.skip for consistency
📝 (generalBugs-shard-10.spec.ts): Refactor test cases for promptText and newPromptText
📝 (generalBugs-shard-6.spec.ts): Add delay before interacting with elements to ensure stability
* Refactor tests to use `ControlOrMeta` for cross-platform keyboard shortcuts
* ✅ (Simple Agent.spec.ts): update timeout value for waitForSelector to improve test reliability and prevent false negatives
* Handle undefined stars in GithubStarComponent to prevent errors
* Add waitForSelector to ensure sidebar search input is visible before interaction in chatInputOutput test
* ✅ (Simple Agent.spec.ts): update timeout value to 5 minutes for "built successfully" message to allow for longer build times
✨ (Simple Agent.spec.ts): add additional test cases to check for the presence of "apple" in chat messages and ensure the total length of chat messages is greater than 100 characters
* 🐛 (Simple Agent.spec.ts): reduce timeout for "built successfully" text to improve test efficiency
* ✅ (auto-login-off.spec.ts): add delay before checking visibility of elements to ensure proper rendering and improve test reliability
* Fix indentation in TypeScript test workflow file
* Update test IDs and expected values in dropdownComponent.spec.ts
* 📝 (playground.spec.ts): remove redundant code related to zooming out and dragging elements in the playground test
📝 (deleteComponents.spec.ts): update selectors for clicking buttons and elements in the deleteComponents test
📝 (deleteFlows.spec.ts): update selectors for clicking buttons and elements in the deleteFlows test
📝 (starter-projects.spec.ts): update selectors for starter projects in the extended features test to match changes in the application's UI.
* ✅ (playground.spec.ts): remove skip from the test case to enable it to run during testing.
* Refactor timeout in playground test for better stability
---------
Co-authored-by: Gabriel Luiz Freitas Almeida <gabriel@langflow.org>
Co-authored-by: anovazzi1 <otavio2204@gmail.com>
* Updated image to show entire grid
* Changed swatch index to use id
* Updated swatch index to not have negative numbers
* Updated starter examples to have the gradients already defined
* Make forked flow have the same color as the template
* 📝 (select-custom.tsx): Update styling in SelectItem component to improve consistency and readability
📝 (nodeToolbarComponent/index.tsx): Refactor SelectItem components to include consistent width styling for better alignment and visual appeal
* ✨ (nodeToolbarComponent/index.tsx): Center align select items by adding 'm-auto' class to improve visual presentation.
* ✨ (GenericNode/index.tsx): Add functionality to toggle show more options in GenericNode component
🔧 (nodeToolbarComponent/index.tsx): Pass setOpenShowMoreOptions function to toggle show more options in NodeToolbarComponent
📝 (components/index.ts): Update nodeToolbarPropsType to include setOpenShowMoreOptions function for better type checking
* ✨ (nodeToolbarComponent/index.tsx): Update styles and dimensions for better UI consistency and alignment in the Node Toolbar Component.
* 🔧 (nodeToolbarComponent/index.tsx): Remove unnecessary 'm-auto' class from SelectItem components to improve code readability and reduce redundancy.
* 📝 (select-custom.tsx): Update styling in SelectItem component to improve consistency and readability
📝 (nodeToolbarComponent/index.tsx): Refactor SelectItem components to include consistent width styling for better alignment and visual appeal
* ✨ (nodeToolbarComponent/index.tsx): Center align select items by adding 'm-auto' class to improve visual presentation.
* ✨ (GenericNode/index.tsx): Add functionality to toggle show more options in GenericNode component
🔧 (nodeToolbarComponent/index.tsx): Pass setOpenShowMoreOptions function to toggle show more options in NodeToolbarComponent
📝 (components/index.ts): Update nodeToolbarPropsType to include setOpenShowMoreOptions function for better type checking
* ✨ (nodeToolbarComponent/index.tsx): Update styles and dimensions for better UI consistency and alignment in the Node Toolbar Component.
* 🔧 (nodeToolbarComponent/index.tsx): Remove unnecessary 'm-auto' class from SelectItem components to improve code readability and reduce redundancy.
* ✨ (actionsMainPage-shard-1.spec.ts): Update test descriptions to use "Document Q&A" instead of "Document QA" for consistency
📝 (Basic Prompting.spec.ts, Blog Writer.spec.ts, Document QA.spec.ts, Dynamic Agent.spec.ts, Hierarchical Agent.spec.ts, Memory Chatbot.spec.ts, Sequential Task Agent.spec.ts, Simple Agent.spec.ts, Travel Planning Agent.spec.ts, Vector Store.spec.ts): Remove 'skip' from test descriptions to enable running the tests.
* 🔧 (typescript_test.yml): Update shardIndex and shardTotal values to run tests on a single shard for simplicity
📝 (typescript_test.yml): Comment out unused test commands to improve readability and reduce confusion
✅ (starter-projects.spec.ts): Remove skip from test case to ensure it is executed as intended
* new components improvements
* ✨ (create_data.py): introduce a new 'legacy' attribute to mark the component as legacy code
* [autofix.ci] apply automated fixes
* chaing langchain hub name
* 📝 (run_flow.py): remove beta flag from RunFlowComponent to indicate it is no longer in beta
📝 (extract_key.py): remove beta flag from ExtractDataKeyComponent to indicate it is no longer in beta
* Updated generic icon component to load icons if already not lazy imported
* [autofix.ci] apply automated fixes
* merge fix
* 📝 (store_message.py): add 'advanced' parameter to the 'Session ID' field to indicate it is an advanced setting
* [autofix.ci] apply automated fixes
* new components sweep
* [autofix.ci] apply automated fixes
* fix tests
* [autofix.ci] apply automated fixes
* ✨ (filterSidebar.spec.ts): Update test descriptions to reflect the correct component names for better clarity and maintainability
♻️ (freeze.spec.ts): Refactor test to use the correct component name for consistency and readability
♻️ (stop-building.spec.ts): Refactor test to use the correct component name for consistency and readability
♻️ (generalBugs-shard-9.spec.ts): Refactor test to use the correct component name for consistency and readability
♻️ (filterEdge-shard-1.spec.ts): Refactor test to use the correct component name for consistency and readability
* style: Improve YahooFinanceToolComponent description and code readability
Enhance clarity in the component's purpose and refine inline formatting to boost maintainability.
---------
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: Lucas Oliveira <lucas.edu.oli@hotmail.com>
Co-authored-by: Gabriel Luiz Freitas Almeida <gabriel@langflow.org>
* update setup of templates to update components considering it's type instead of the display name
* Add Amazon Bedrock as a model provider and update agent component logic
- Added "Amazon Bedrock" to the list of model provider options in multiple JSON files.
- Updated the `AgentComponent` class to include `get_model_name` for retrieving the model name.
- Changed the `tools` field requirement to optional in several JSON files.
- Added a `legacy` field to the Blog Writer JSON configuration.
* update main descriptions
* Skip tests for Basic Prompting, Blog Writer, Document QA, Dynamic Agent, Hierarchical Tasks Agent, Memory Chatbot, Sequential Task Agent, Simple Agent, Travel Planning Agent, and Vector Store RAG
---------
Co-authored-by: Gabriel Luiz Freitas Almeida <gabriel@langflow.org>
* update templates
* fix ghost edges bug
* update templates
* [autofix.ci] apply automated fixes
* update naming and category
* remove unit tests for starter projects API in v1
* add starter projects back in
* Add unit test for GET /api/v1/starter-projects/ endpoint in FastAPI
* add rodrigo's updates
---------
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: Gabriel Luiz Freitas Almeida <gabriel@langflow.org>
* Updated settings page sidebar to new sidebar
* Updated old home page to still work
* Fix padding on collapsed sidebar
* Fix able to drag on input component
* Fixed pagination position on big screens
---------
Co-authored-by: Cristhian Zanforlin Lousa <cristhian.lousa@gmail.com>
🔧 (traditional-search-metadata.ts): Simplify filtering logic to only consider item metadata for search
🔧 (index.tsx): Adjust search threshold value to improve search accuracy
* Fixed flow on top of sidebar
* Fixed get started templates design and bg image
* Fixed build button overflowing
* Changed truncation of list
* Fixed colors on collapse buttons
* Fixed is mobile hook and fixed sidebar not reappearing after hiding it in small screens
* Changed to max char 110
* Added bg background for icon on Agent
* Changed system prompt description
* Added toggle to node toolbar for tool mode
* Removed copy from node toolbar
* Fixed node last output border
* Removed beta tag from agent
* remove text foreground from grid
* updated paginator style
* Fixed pagination element disposition on main page
* Fixed node icon
* Removed storeComponent from pagination
* removed storeComponent from paginator type
* Fixed canvas dots color
* Changed pagination design
* fixed gap
* Fix minimized state on components that have a custom icon
* Fixed exibition of flow running state to not make the header jump
* Fixed starter flows
* feat: Add durationStore for managing chat durations and intervals and update duration display logic to use store
* [autofix.ci] apply automated fixes
* Expand `recursive_serialize_or_str` to support `BaseModelV1` subclasses
* fix: Update duration calculation for event handlers
Improve accuracy of duration measurement in event handlers by centralizing the calculation method. This ensures consistent timing across different events and enhances the reliability of event processing.
* refactor: improve duration calculation logic
Enhance the duration calculation by clearly handling both integer and float timestamps. This ensures accurate duration tracking and simplifies the code structure, improving maintainability and readability.
---------
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: Gabriel Luiz Freitas Almeida <gabriel@langflow.org>
Co-authored-by: Cristhian Zanforlin Lousa <cristhian.lousa@gmail.com>
📝 (applies.css): Update border radius value to use specific pixel value for consistency
📝 (index.css): Add new custom CSS variables for datatype orange and its foreground color
📝 (styleUtils.ts): Add new node color for BaseChatMessageHistory to be displayed in orange
* add new youtube transcripts component
* [autofix.ci] apply automated fixes
* ✨ (youtube-transcripts.spec.ts): add integration test for youtube transcripts component in the frontend to ensure user can interact with it successfully
* [autofix.ci] apply automated fixes
---------
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
⬆️ (pyproject.toml): update duckduckgo-search dependency to version 6.3.4
🔧 (duckduckgo.spec.ts): remove test.skip from the test case to enable the test for duckduckgo search component
💡 (duckduckgo.spec.ts): refactor test case to improve readability and remove unnecessary code blocks
* Add swatch colors
* Implement new colors on templates modal
* Implement new colors on main page
* Removed hover icon color change on templates
---------
Co-authored-by: Cristhian Zanforlin Lousa <cristhian.lousa@gmail.com>
* Enhance tool block mapping by using unique tool keys with name and run_id
* Enhance tool output rendering with Markdown and JSON formatting in ContentDisplay component
* Add animations for block title and content separators in ContentBlockDisplay component
* Allow 'size' prop to accept string values and update styling in BorderTrail component
* Adjust BorderTrail animation size and duration based on expansion state
* fix both borders trailing at the same time
* [autofix.ci] apply automated fixes
* fix text sizing
* fix spacing issues
* Adjust header title and text styling in ContentBlockDisplay and DurationDisplay components
* Refactor header title in ContentBlockDisplay component
* [autofix.ci] apply automated fixes
* Convert `test_handle_on_tool_start` to an async function and update tool content key logic
* Handle logger without 'opt' method in code parsing error handling
* Update test duration values in .test_durations file
---------
Co-authored-by: anovazzi1 <otavio2204@gmail.com>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
* fix: update getIconName function to support optional parameters and add tool mode handling
* Add 'isToolMode' prop to components for tool mode support
- Introduced 'isToolMode' prop across various components to enable tool mode functionality.
- Updated icon logic in textAreaComponent to use 'getIconName' with 'isToolMode'.
- Passed 'isToolMode' prop through parameterRenderComponent and related components.
- Adjusted inputGlobalComponent and NodeInputField to handle 'isToolMode' for conditional rendering.
---------
Co-authored-by: anovazzi1 <otavio2204@gmail.com>
* Changed description color
* Updated edge colors
* updated color of output inspection
* Updated handle position to work with every case
* Open sidebar on filter
* Fixed empty folder on top of the sidebar
* Fix app header responsitivity
* Changed mobile playground showing
* Changed color name to datatype
* [autofix.ci] apply automated fixes
---------
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
* Tighten space between main page sidebar buttons
* Fixed skeleton size
* Added playground button back
* Updated no components and flows state
* Update default icon to Workflow
* Fixed size of list cards
* Removed browse store
* Removed playground button
* Removed black background from empty folder state
* Update empty state color
* Fix color of empty state
* fix text not selectable
* updated border color
* added shadow only on hover
* Remove JSON from Download JSON
* Fixed colors and weight of tabs on home page
* Fixed padding on list and grid components
* Update icons that take long to load
* Fixed icon and bg color for home tiles
* Removed unused code
* removed placeholder data for skeleton to not appear on first load
* Make onSuccess refetch the queries so that the loading waits for it
* Removed unused divs on foldersidebarnav
* Refactor sidebar buttons to use new shadcn sidebar
* Created skeletons for folder, grid and list
* Added new sidebar size
* Use new sidebar button on header and implemented animation
* Changed icon to getIcon
* Added sidebar provider and fixed loading states of the main page
* Removed folder buttons on emptyPage
* Fixed foldername to appear immediatly, and fixed loading states for the folders
* Removed unused state from folders store
* Removed unused states from folders store type
* Added new icon
* fixed modals component to not show a trash icon
* Changed icons to load immediatly
* Added empty folder condition to not display header info
* Added conditions to show loading state until everything loads
* Created empty folder state
* Changed empty page to correct colors
* Added skeletons while flows of the folder are loading
* Removed shadow from text
* Fixed font chivo taking long time to load
* Fix adding new folder not redirecting
* [autofix.ci] apply automated fixes
* Fixed colors and paddings on list and grid components
* Re added tooltips to upload and create folders
* fix input for name editing
* Fix tests
---------
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
* Updated saved color
* Removed selection from header /
* hide text from 1200px
* Updated github star style
* Fixed hover state on account menu
* Fix misalignment of store
* Changed user menu to use dropdown menu from shadcn
* Fixed notification dot
* Change mobile responsivity
* Fixed flow settings name
* Implement opening the sidebar when hitting /
* Fixed code opening when hitting space on sidebar
* Fixed errors with tests
* Fix incorrect parameter names in _build_source method across multiple JSON files
* ✅ (freeze.spec.ts, playground.spec.ts, stop-building.spec.ts, linkComponent.spec.ts, sliderComponent.spec.ts, tableInputComponent.spec.ts, stop-button-playground.spec.ts, generalBugs-shard-7.spec.ts): enable tests that were previously skipped to ensure proper functionality and coverage. Remove outdated comments and update test descriptions for clarity.
* Refactor agent event processing to support message streaming and improve content handling
* Refactor ChatOutput to enhance message handling and streamline property assignment
* Fix session ID assignment in send_message method for better message handling
* Add OnTokenFunctionType protocol for enhanced token handling
* Add BorderTrail component for animated border effects
* Add ContentBlockDisplay component for enhanced content visualization and loading state
* Refactor TextShimmer to use motion.create for improved component animation
* Add ContentBlockDisplay to render chat content blocks in newChatMessage component
* Refactor `ChatOutput` class to use `MessageInput` instead of `MessageTextInput` for `input_value` across starter projects.
* Update edge class name from 'runned' to 'ran' in flow components and store
* Add 'on_build_start' and 'on_build_end' events to EventManager
* Add build status updates for 'build_start' and 'build_end' events in buildUtils.ts
* Integrate event management for output function in ComponentToolkit to track build start and end events
* Refactor event handling in ComponentToolkit to improve build event tracking
* Refactor messagesStore to update existing message if it already exists
* update properties to have state attribute
* format
* Refactor chatMessage component to display loading state for partial chat messages
* Refactor reactflowUtils to handle broken edges with missing display names
* fix agent text output
* [autofix.ci] apply automated fixes
* [autofix.ci] apply automated fixes (attempt 2/3)
* fix agent component initialization
* Enhance error message formatting to include detailed exception information
* Refactor agent component for improved performance and stability
* Refactor `LCAgentComponent` to streamline agent execution logic and remove redundant methods
* Add type casting for send_message function in agent.py
* Change return type of function to 'Message' in log schema
* Add `embedding_service` and `client` fields to JSON configurations and refactor ChatOutput class
- Introduced `embedding_service` field in `Vector Store RAG.json` and `Travel Planning Agents.json` to support Astra Vectorize and embedding model selection.
- Added `client` field to `OpenAIEmbeddingsComponent` in JSON configurations for enhanced client configuration.
- Refactored `ChatOutput` class across multiple JSON files to include a new `_build_source` method for constructing `Source` objects, improving code modularity and readability.
- Updated import paths for `OpenAIEmbeddings` to reflect changes in the module structure.
* Update attribute handling in Component class to merge inputs with existing attributes
* Update ChatInput and ChatOutput initialization to include session_id
* Refactor test_load_flow_from_json_object to be asynchronous
* Add asynchronous tests for agent event handling in test_agent_events.py
* Add event handling functions for agent tool and chain events
- Implement functions to handle various agent events such as `on_chain_start`, `on_chain_end`, `on_tool_start`, `on_tool_end`, and `on_tool_error`.
- Introduce helper functions to build content blocks for agent messages.
- Create mappings for chain and tool event handlers.
- Refactor `process_agent_events` to utilize the new event handling functions.
- Remove the old `process_agent_events` implementation from `agent.py` and import the new one from `events.py`.
* feat: update content structure and validation logic
Enhance content block to accept a list of contents instead of a single item, and implement validation to ensure proper format. Refactor tool-related content types for improved clarity and functionality.
* Handle ValidationError in error message generation and update import paths
* feat: enhance error event creation to include structured error content
* move validators and remove utils.py
* feat: add event handler tests for agent tool and chain events
* refactor: streamline tool content structure
Combine multiple tool-related types into a single, more flexible interface. This simplifies the content handling by allowing optional properties for output, error, and timestamp, enhancing overall code maintainability. Adjust the ContentBlock interface to accommodate an array of contents for improved flexibility.
* feat: refactor error handling in ChatMessage component to support dynamic content blocks
* feat: enhance ContentBlockDisplay to support Markdown rendering and dynamic content handling
* Refactor agent event handling to simplify content block management
* Enhance `ContentBlockDisplay` with separators and improved content rendering logic
* add inline block to prevent text overflow in reason
* Refactor code to enhance Markdown rendering and dynamic content handling in ChatMessage component
* [autofix.ci] apply automated fixes
* Add timestamp field to BaseContent class and remove from ToolContent class
* Update timestamp validation to include fractional seconds in BaseContent class
* Add duration calculation for agent and tool events in events.py
* Refactor ContentBlock to use Pydantic's Discriminator and Tag for content types
* Add field validators for content_blocks and properties in Message class
* Add field serializer for source in Properties class
* Add type hint for serialize_properties method in MessageTable class
* create duration component and refactor contents
* [autofix.ci] apply automated fixes
* Refactor duration calculation to use perf_counter for improved accuracy and update ContentBlockDict to use dict for contents
* Update properties field validator to use 'before' mode for improved validation
* Refactor MessageTable to use ContentBlock instead of ContentBlockDict and enhance validation and serialization for properties and content_blocks
* Refactor AgentComponent to streamline agent initialization by using the set method directly
* Refactor event handling functions to use synchronous definitions and improve performance with asyncio.to_thread
* Refactor PythonREPLToolComponent to raise ToolException on error instead of returning error message
* Refactor CalculatorToolComponent to enhance error handling by raising ToolException and improving expression evaluation feedback
* Fix TextShimmer width in ContentBlockDisplay for improved layout consistency
* Enhance ContentBlockDisplay to support external links and math rendering in Markdown
* Enhance error handling in Calculator and Python REPL tools by introducing `ToolException` and improving expression evaluation logic.
* Refactor agent message properties to remove unnecessary icons and update content block titles for clarity
* feat: enhance agent and tool content messaging
Add headers to agent and tool content messages for better clarity and user experience.
* Handle nested schema structure in ContentBlock initialization
* fix: update agent input text content return type and enhance error message formatting
* Add placeholder and default value for model selection in AstraVectorStoreComponent
* Refactor event handling functions to remove `send_message_method` parameter and streamline message processing logic.
* Add model configuration to ToolContent for alias population
* Refactor agent event tests to improve message handling and content block initialization
* test: Update test durations for performance metrics
Adjust the recorded execution times for various test cases to ensure accurate performance tracking and facilitate optimization efforts.
* Refactor test_load_flow_from_json_object to improve project loading logic
* Make `HeaderDict` fields optional and update `header` field in `BaseContent`
* Enhance `Message` and `ChatOutput` with additional attributes for testing
* Update test duration metrics in .test_durations file
* Refactor `ContentDisplay` component to support multiple content types and improve rendering logic
* feat: Enhance duration display with human-readable format
Integrate the pretty-ms library to convert duration display metrics into a more user-friendly format, improving the overall user experience. Update dependencies to ensure compatibility with the latest version and optimize for newer Node.js versions.
* feat: Add optional duration and header properties to BaseContent interface
* fix: Change duration type from float to int in BaseContent class
* Remove default value for 'start_time' in duration calculations
* Enhance `ContentBlockDisplay` with dynamic header and expand/collapse animation
- Added `state` prop to `ContentBlockDisplay` to dynamically set header icon and title based on content state.
- Implemented `renderContent` function to encapsulate content rendering logic with animation.
- Integrated `ForwardedIconComponent` for displaying header icons.
- Updated `newChatMessage.tsx` to pass `state` prop to `ContentBlockDisplay`.
* Add animation to header title using AnimatePresence and motion components
* Add support for processing zip files with multithreading in FileComponent
- Enhanced FileComponent to handle individual and zipped text files.
- Introduced multithreading option for parallel processing of files within zip archives.
- Updated supported file types to include zip files.
- Improved error handling and logging for file processing.
* Expand `Message` conversion to support `AsyncIterator` and `Iterator` types.
* Remove unused function _find_or_create_tool_content from events.py
* Add header information to tool content and streamline message sending in event processing
* Add send_message_method parameter to event handlers for message dispatching
- Updated event handler functions to include a new parameter, `send_message_method`, allowing for message dispatching within the handlers.
- Modified the logic in each handler to utilize the `send_message_method` for sending messages.
- Adjusted the main event processing logic to pass the `send_message_method` to the appropriate handlers.
* Refactor ContentBlockDisplay component to improve rendering performance and user experience
* Refactor `ContentBlockDisplay.tsx` to improve readability and update header title logic
* [autofix.ci] apply automated fixes
* Add 'start_time' to event data and update test functions to include send_message mock
* Refactor ContentBlockDisplay component to include total duration and improve user experience
* Refactor ContentBlockDisplay component to handle isLoading state for total duration calculation
* Refactor animatedNumbers component and add AnimatedNumberBasic component
- Refactor the animatedNumbers component to improve readability and update the header title logic.
- Add a new component called AnimatedNumberBasic that displays an animated number with a specific value.
* Refactor agent message creation to improve event processing efficiency
* Refactor session ID assignment in run_graph_internal for improved clarity
* [autofix.ci] apply automated fixes
* fix: update agent message properties handling for improved compatibility
* fix: enhance message property validation to support dictionary input
* Add session_id to agent message initialization in tests
- Updated test cases in `test_agent_events.py` to include `session_id` in the `Message` initialization.
- Adjusted calls to `process_agent_events` to pass the `agent_message` with `session_id`.
* feat: Enhance event handling with duration tracking
Add start_time parameter to event handling functions to ensure consistent duration calculations across different stages of agent processing. This improves accuracy in measuring event durations and enhances overall event management.
* Add optional humanized value to AnimatedNumber component and update DurationDisplay usage
* Refactor `ContentDisplay` and add separator to `ContentBlockDisplay` component
* Add header to text content in agent message events
* Add separator between each content block in ContentBlockDisplay component
* Refactor layout in ContentDisplay component for improved styling and positioning
* Refactor event handlers to return updated start_time and agent_message
- Modified event handler functions to return a tuple of `agent_message` and `start_time`.
- Updated `_calculate_duration` to handle `start_time` as an integer.
- Ensured `start_time` is reset using `perf_counter()` after each event handling.
- Adjusted tool and chain event handler calls to accommodate the new return type.
* Add start_time and duration checks to agent event handlers in tests
- Updated test cases for `handle_on_chain_start`, `handle_on_chain_end`, `handle_on_tool_start`, `handle_on_tool_end`, `handle_on_tool_error`, and `handle_on_chain_stream` to include `start_time` as a return value.
- Added assertions to verify that `start_time` is a float and `duration` is an integer where applicable.
* [autofix.ci] apply automated fixes
* update colors and spacing of time
* [autofix.ci] apply automated fixes
* Refactor DurationDisplay component to display duration in seconds
* Rename case from "message" to "add_message" in buildUtils.ts switch statement
* Add event registration for message removal in EventManager
* Add category handling for message events in Component class
* Add custom exception handling for agent message processing
* Handle exceptions in agent event processing with message deletion and event notification
* Add new LLM options and refactor AgentComponent for dynamic provider handling
- Introduced new language model options: Anthropic, Groq, and NVIDIA.
- Refactored `AgentComponent` to utilize `MODEL_PROVIDERS_DICT` for dynamic provider handling.
- Simplified input management by removing hardcoded provider inputs and using a dictionary-based approach.
- Enhanced `update_build_config` to support flexible provider configurations and custom options.
* Refactor buildUtils.ts and add message removal handling
* Update Source model to allow None values for id, display_name, and source fields
* Refactor event handler functions to return tuple of Message and float
* Refactor `ChatOutput` class to use `MessageInput` instead of `MessageTextInput` for `input_value` across starter projects.
* Add test for updating component outputs with dynamic code input
* feat: add ToolModeMixin to manage tool mode state
* feat: add parameterName to mutateTemplate for enhanced template mutation
* feat: add tool mode functionality to node toolbar
Implement a toggle for tool mode, allowing users to easily switch functionalities within the node toolbar. This enhancement improves user interaction by providing a dedicated mode for tool-related tasks.
* feat: integrate ToolModeMixin into MessageTextInput for enhanced functionality
* Update parameterId to "tool_mode" in nodeToolbarComponent
* feat: implement tool mode output handling in run_and_validate_update_outputs
* feat: add conditional rendering for tool mode button based on template fields
* fix: enhance null checks for tool mode button visibility and output validation
* feat: add isToolMode property to NodeInputFieldComponentType for enhanced functionality
* feat: add isToolMode prop to NodeInputField for conditional styling
* feat: implement sorting logic for tool mode fields in GenericNode component
* feat: add isToolMode prop to NodeOutputField for conditional styling
* feat: pass isToolMode prop to NodeOutputField for conditional styling
* feat: update disabled logic in NodeInputField to include isToolMode
* Add default placeholder to getPlaceholder function and constants file
* feat: Enable dynamic placeholders in input components
Add support for customizable placeholder text across various input components to enhance usability and improve user experience.
* feat: Add optional placeholder prop to InputProps type
* feat: Add placeholder prop to InputGlobalComponent and CustomParameterComponent
* feat: Set dynamic placeholder for NodeInputField based on tool mode
* feat: Update NodeOutputField styling for tool mode and pass isToolMode prop
* feat: Add isToolMode prop to OutputComponent for dynamic styling
* feat: Add TOOL_OUTPUT_DISPLAY_NAME constant for toolset display
* feat: Update tool output display name to use TOOL_OUTPUT_DISPLAY_NAME constant
* feat: Conditionally render Freeze Path button based on tool mode
* Add support for asynchronous output methods and tool mode validation in component tools
* feat: Validate required inputs for tool mode before executing output methods
* Refactor: Rename method to indicate private access in custom_component
- Changed `get_function_entrypoint_return_type` to `_get_function_entrypoint_return_type` in `custom_component.py` to reflect its intended private usage.
- Updated references to the renamed method in `utils.py` and `directory_reader.py` to maintain consistency.
* feat: Implement tool output mapping based on tool mode presence in inputs
* Refactor tests to use private method _get_function_entrypoint_return_type
* feat: Enable tool mode for input_value in LCAgentComponent
* Add test for updating component outputs with dynamic code input
* feat: add tool mode functionality to node toolbar
Implement a toggle for tool mode, allowing users to easily switch functionalities within the node toolbar. This enhancement improves user interaction by providing a dedicated mode for tool-related tasks.
* feat: add conditional rendering for tool mode button based on template fields
* feat: add isToolMode prop to NodeInputField for conditional styling
* feat: Set dynamic placeholder for NodeInputField based on tool mode
* feat: Add TOOL_OUTPUT_DISPLAY_NAME constant for toolset display
* feat: Conditionally render Freeze Path button based on tool mode
* Add tool mode support to LCAgentComponent
- Introduced new input fields: `agent_name`, `agent_description`, and `add_tools_to_description` to support tool mode.
- Implemented methods `get_tool_name`, `get_tool_description`, `_build_tools_description`, and `to_toolkit` for handling tool-related functionalities.
- Enhanced `MessageTextInput` with additional information for better user guidance.
- Updated agent message sender name to use `agent_name` if available.
* Fix return statement placement in event handling logic
* Add tool mode enhancements and error handling in component_tool
- Introduce optional parameters `tool_name`, `tool_description`, and `callbacks` to `get_tools` method.
- Implement error handling for tool creation with `handle_tool_error` and `callbacks`.
- Ensure single tool validation when `tool_name` or `tool_description` is provided.
- Add support for `BaseModel` result serialization using `model_dump`.
* Refactor agent response method and update output configuration
* Remove unused 'input_value' field from tool_calling.py configuration
* Refactor source property assignment to use _build_source method
* Enhance callable input check and add callbacks to toolkit conversion
* Add unit tests for message update functionality in backend
- Implement tests for updating single and multiple messages.
- Add tests for handling nonexistent messages during updates.
- Include tests for updating messages with timestamps, content blocks, and nested properties.
- Ensure proper serialization and storage of message properties.
* Add field serializer for 'output' using jsonable_encoder in content_types.py
* Add tool mode fields and refactor message response in starter projects
- Introduced new fields `add_tools_to_description`, `agent_description`, and `agent_name` for tool mode configuration in JSON starter projects.
- Refactored `message_response` method to utilize `_build_source` for constructing message source properties.
- Updated method references from `get_response` to `message_response` for consistency.
- Adjusted input field descriptions and added missing metadata attributes.
* Implement no-op send_message function and patching decorator for component tools
* Refactor output handling in component tool to support Message and Data types
* Simplify exception handling by removing redundant exception re-raise
* Enhance tool assignment logic to preserve existing name and description if not provided
* feat: Enhance agent name and description handling
Refactor the agent component to dynamically include tool names in the default agent name and description. This improves clarity for users by providing more context about the agent's capabilities and ensures consistent representation of tools in the interface.
* refactor: Update agent description and name info to include default values and dynamic tool integration
* Add custom encoders for serialization and refactor schema modules
- Introduce `CUSTOM_ENCODERS` in `encoders.py` to handle serialization of `Callable` and `datetime` objects.
- Refactor `BaseContent` to use `model_serializer` for model serialization with custom encoders.
- Remove redundant `encode_callable` function and `CUSTOM_ENCODERS` definition from `artifact.py`.
- Update imports and clean up unused imports in schema modules.
* Remove 'agent_name' field and update 'get_tool_name' method in agent.py
* Enhance `serialize_model` method with `wrap` mode and improved error handling
* Add 'tool_mode' attribute to frontend node class
* Add unit tests for ContentBlock initialization and content handling
* Add unit tests for content types serialization and creation
* Refactor tool mode initialization logic in NodeToolbarComponent
* Add tool mode functionality to node toolbar and flow store
* Add updateNodeInternals call for tool_mode case in nodeToolbarComponent
* Add condition to hide handle in tool mode in NodeInputField component
* Add shortcut for activating Tool Mode and integrate into node toolbar
* Add tool_mode parameter to MessageTextInput and update attributes mapping
* Remove 'agent_name' field from Agent Flow configuration file
* Update agent message to use display_name instead of agent_name
* new components with tool mode
* updated the tests and also updated api request to accept the data from tool calling agent
* added current date as tool
* [autofix.ci] apply automated fixes
* Add validation for required tools in agent execution and component setup
* Make 'tools' field required in AgentComponent configuration
* test: add unit tests for run_and_validate_update_outputs functionality
Implement comprehensive tests for the `run_and_validate_update_outputs` method across various scenarios, including enabling/disabling tool mode, handling invalid output structures, and supporting custom update logic. Validate that outputs are correctly updated and ensure appropriate error handling for invalid cases.
* remove tool_mode from Chrome
* Update agent.py
adding current date tool to agent
* test: update component toolkit tests to use CalculatorToolComponent
* Enhance input schema creation logic for tool mode components
* Include input expression in error responses for calculator tool
* Enhance `visit_Attribute` to check for required inputs in `tree_visitor.py`
* fix: add checks for graph attribute before accessing session and flow IDs in Component methods
* fix: set default value to None for id field in PlaygroundEvent model
* fix: remove unused add_toolkit_output flag from FeatureFlags model
* Refactor JSON configurations to remove unnecessary required inputs across starter projects
* Add tool mode validation and improve error handling
- Updated import statement for ContentBlock to fix import path.
- Modified `send_message_noop` to require a `Message` parameter and added type ignore for method assignment.
- Enhanced error message in tool mode validation to handle `None` input names.
- Changed return type of `send_error_message` to `Message` for consistency.
- Provided default value for `get_tool_name` to handle missing display names.
* Add pytest fixture to test_component_message_sending test
* fix linkComponent test
* Skip flaky test in stop-building.spec.ts
* new components with tool mode
* updated the tests and also updated api request to accept the data from tool calling agent
* added current date as tool
* [autofix.ci] apply automated fixes
* remove tool_mode from Chrome
* Update agent.py
adding current date tool to agent
* Ensure tools is a list before appending CurrentDateComponent in AgentComponent
* Add pytest fixture 'client' to component test functions
* Use 'client' fixture in test_component_streaming_message
* Skip flaky test in stop-building.spec and add tool_mode to MessageTextInput
* [autofix.ci] apply automated fixes
* Update agent.py
updates to solve the error in Date component as tool.
* Add `updateComponentCode` function to enhance code update flexibility
- Introduced `updateComponentCode` function to handle import and input updates more flexibly using regex patterns.
- Updated unit test to utilize the new function for modifying component code, including adding `LinkInput` configuration.
* Add tool mode to components and introduce current date tool option
- Added `tool_mode` attribute to `MessageTextInput` in `CalculatorToolComponent` and `URLComponent` to enable tool mode functionality.
- Introduced `add_current_date_tool` option in `AgentComponent` to allow agents to include a tool that returns the current date.
- Updated `AgentComponent` to handle the addition of the current date tool as a `StructuredTool`.
* update test code generation
* remove meta key to ctrl
---------
Co-authored-by: Gabriel Luiz Freitas Almeida <gabriel@langflow.org>
Co-authored-by: anovazzi1 <otavio2204@gmail.com>
Co-authored-by: cristhianzl <cristhian.lousa@gmail.com>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: phact <estevezsebastian@gmail.com>
* Update content_blocks initialization and add flow_id parameter to ErrorMessage
* feat: include vertex ID in class instantiation
Pass the vertex ID to the custom component during instantiation to facilitate event tracking or management capabilities.
* fix: update message streaming logic to handle None messages and refactor _stream_message parameters
* feat: include flow_id in ChatOutput initialization
Add flow_id to the ChatOutput class to improve the tracking of conversational flows, enhancing the context management within the chat system.
* fix: update chat message source display to use 'source' instead of 'display_name'
* feat: add flow_id to message initialization in ChatOutput class
* fix: handle JSON parsing with type checks for message properties
Refine JSON loading to ensure proper type handling for message properties and content blocks, enhancing stability and preventing potential errors with non-string inputs.
* refactor: update logging structure and message handling
Improve the output logs to support logging multiple entries and ensure robust message streaming with type checking. Adjust error handling parameters for consistency.
* feat: restrict event types in registration and sending
Enhance event management by explicitly defining allowed event types, improving code clarity and reducing potential errors. This ensures only valid event types are registered and sent, leading to more robust event handling.
* Update `logs` attribute to store lists of `Log` objects in `Vertex` class
* feat: introduce TypedDicts for ContentBlock and Properties, update default values in Message model
* fix: restrict event types in send_event method to improve data validation
* Set default values for 'id', 'display_name', and 'source' fields in Source schema
* [autofix.ci] apply automated fixes
* fix: update query to use equality check for error messages
* make lint
* update simple agent test
* test: enhance EventManager tests for event_id validation
* feat: add background, chat icon, and text color properties to component toolkit
* fix: update LogComponent name to display_name for consistency
* remove playground from new cards on main page
* refactor: Update Properties handling in MessageTable and remove unused PropertiesDict
* fix: Set default value for category in MessageBase model
* fix: Update properties default factory in MessageTable model to use model_dump
* Add _build_source method to ChatOutput and update test inputs to use Message objects
* Fix incorrect parameter names in _build_source method across multiple JSON files
* ✅ (freeze.spec.ts, playground.spec.ts, stop-building.spec.ts, linkComponent.spec.ts, sliderComponent.spec.ts, tableInputComponent.spec.ts, stop-button-playground.spec.ts, generalBugs-shard-7.spec.ts): enable tests that were previously skipped to ensure proper functionality and coverage. Remove outdated comments and update test descriptions for clarity.
* Refactor agent event processing to support message streaming and improve content handling
* Refactor ChatOutput to enhance message handling and streamline property assignment
* Fix session ID assignment in send_message method for better message handling
* Add OnTokenFunctionType protocol for enhanced token handling
* Add BorderTrail component for animated border effects
* Add ContentBlockDisplay component for enhanced content visualization and loading state
* Refactor TextShimmer to use motion.create for improved component animation
* Add ContentBlockDisplay to render chat content blocks in newChatMessage component
* Refactor `ChatOutput` class to use `MessageInput` instead of `MessageTextInput` for `input_value` across starter projects.
* Update edge class name from 'runned' to 'ran' in flow components and store
* Add 'on_build_start' and 'on_build_end' events to EventManager
* Add build status updates for 'build_start' and 'build_end' events in buildUtils.ts
* Integrate event management for output function in ComponentToolkit to track build start and end events
* Refactor event handling in ComponentToolkit to improve build event tracking
* Refactor messagesStore to update existing message if it already exists
* update properties to have state attribute
* format
* Refactor chatMessage component to display loading state for partial chat messages
* Refactor reactflowUtils to handle broken edges with missing display names
* fix agent text output
* [autofix.ci] apply automated fixes
* [autofix.ci] apply automated fixes (attempt 2/3)
* fix agent component initialization
* Enhance error message formatting to include detailed exception information
* Refactor agent component for improved performance and stability
* Refactor `LCAgentComponent` to streamline agent execution logic and remove redundant methods
* Add type casting for send_message function in agent.py
* Change return type of function to 'Message' in log schema
* Add `embedding_service` and `client` fields to JSON configurations and refactor ChatOutput class
- Introduced `embedding_service` field in `Vector Store RAG.json` and `Travel Planning Agents.json` to support Astra Vectorize and embedding model selection.
- Added `client` field to `OpenAIEmbeddingsComponent` in JSON configurations for enhanced client configuration.
- Refactored `ChatOutput` class across multiple JSON files to include a new `_build_source` method for constructing `Source` objects, improving code modularity and readability.
- Updated import paths for `OpenAIEmbeddings` to reflect changes in the module structure.
* Update attribute handling in Component class to merge inputs with existing attributes
* Update ChatInput and ChatOutput initialization to include session_id
* Refactor test_load_flow_from_json_object to be asynchronous
* Add asynchronous tests for agent event handling in test_agent_events.py
* Add event handling functions for agent tool and chain events
- Implement functions to handle various agent events such as `on_chain_start`, `on_chain_end`, `on_tool_start`, `on_tool_end`, and `on_tool_error`.
- Introduce helper functions to build content blocks for agent messages.
- Create mappings for chain and tool event handlers.
- Refactor `process_agent_events` to utilize the new event handling functions.
- Remove the old `process_agent_events` implementation from `agent.py` and import the new one from `events.py`.
* feat: update content structure and validation logic
Enhance content block to accept a list of contents instead of a single item, and implement validation to ensure proper format. Refactor tool-related content types for improved clarity and functionality.
* Handle ValidationError in error message generation and update import paths
* feat: enhance error event creation to include structured error content
* move validators and remove utils.py
* feat: add event handler tests for agent tool and chain events
* refactor: streamline tool content structure
Combine multiple tool-related types into a single, more flexible interface. This simplifies the content handling by allowing optional properties for output, error, and timestamp, enhancing overall code maintainability. Adjust the ContentBlock interface to accommodate an array of contents for improved flexibility.
* feat: refactor error handling in ChatMessage component to support dynamic content blocks
* feat: enhance ContentBlockDisplay to support Markdown rendering and dynamic content handling
* Refactor agent event handling to simplify content block management
* Enhance `ContentBlockDisplay` with separators and improved content rendering logic
* add inline block to prevent text overflow in reason
* Refactor code to enhance Markdown rendering and dynamic content handling in ChatMessage component
* [autofix.ci] apply automated fixes
* Add timestamp field to BaseContent class and remove from ToolContent class
* Update timestamp validation to include fractional seconds in BaseContent class
* Add duration calculation for agent and tool events in events.py
* Refactor ContentBlock to use Pydantic's Discriminator and Tag for content types
* Add field validators for content_blocks and properties in Message class
* Add field serializer for source in Properties class
* Add type hint for serialize_properties method in MessageTable class
* create duration component and refactor contents
* [autofix.ci] apply automated fixes
* Refactor duration calculation to use perf_counter for improved accuracy and update ContentBlockDict to use dict for contents
* Update properties field validator to use 'before' mode for improved validation
* Refactor MessageTable to use ContentBlock instead of ContentBlockDict and enhance validation and serialization for properties and content_blocks
* Refactor AgentComponent to streamline agent initialization by using the set method directly
* Refactor event handling functions to use synchronous definitions and improve performance with asyncio.to_thread
* Refactor PythonREPLToolComponent to raise ToolException on error instead of returning error message
* Refactor CalculatorToolComponent to enhance error handling by raising ToolException and improving expression evaluation feedback
* Fix TextShimmer width in ContentBlockDisplay for improved layout consistency
* Enhance ContentBlockDisplay to support external links and math rendering in Markdown
* Enhance error handling in Calculator and Python REPL tools by introducing `ToolException` and improving expression evaluation logic.
* Refactor agent message properties to remove unnecessary icons and update content block titles for clarity
* feat: enhance agent and tool content messaging
Add headers to agent and tool content messages for better clarity and user experience.
* Handle nested schema structure in ContentBlock initialization
* fix: update agent input text content return type and enhance error message formatting
* Add placeholder and default value for model selection in AstraVectorStoreComponent
* Refactor event handling functions to remove `send_message_method` parameter and streamline message processing logic.
* Add model configuration to ToolContent for alias population
* Refactor agent event tests to improve message handling and content block initialization
* test: Update test durations for performance metrics
Adjust the recorded execution times for various test cases to ensure accurate performance tracking and facilitate optimization efforts.
* Refactor test_load_flow_from_json_object to improve project loading logic
* Make `HeaderDict` fields optional and update `header` field in `BaseContent`
* Enhance `Message` and `ChatOutput` with additional attributes for testing
* Update test duration metrics in .test_durations file
* Refactor `ContentDisplay` component to support multiple content types and improve rendering logic
* feat: Enhance duration display with human-readable format
Integrate the pretty-ms library to convert duration display metrics into a more user-friendly format, improving the overall user experience. Update dependencies to ensure compatibility with the latest version and optimize for newer Node.js versions.
* feat: Add optional duration and header properties to BaseContent interface
* fix: Change duration type from float to int in BaseContent class
* Remove default value for 'start_time' in duration calculations
* Enhance `ContentBlockDisplay` with dynamic header and expand/collapse animation
- Added `state` prop to `ContentBlockDisplay` to dynamically set header icon and title based on content state.
- Implemented `renderContent` function to encapsulate content rendering logic with animation.
- Integrated `ForwardedIconComponent` for displaying header icons.
- Updated `newChatMessage.tsx` to pass `state` prop to `ContentBlockDisplay`.
* Add animation to header title using AnimatePresence and motion components
* Add support for processing zip files with multithreading in FileComponent
- Enhanced FileComponent to handle individual and zipped text files.
- Introduced multithreading option for parallel processing of files within zip archives.
- Updated supported file types to include zip files.
- Improved error handling and logging for file processing.
* Expand `Message` conversion to support `AsyncIterator` and `Iterator` types.
* Remove unused function _find_or_create_tool_content from events.py
* Add header information to tool content and streamline message sending in event processing
* Add send_message_method parameter to event handlers for message dispatching
- Updated event handler functions to include a new parameter, `send_message_method`, allowing for message dispatching within the handlers.
- Modified the logic in each handler to utilize the `send_message_method` for sending messages.
- Adjusted the main event processing logic to pass the `send_message_method` to the appropriate handlers.
* Refactor ContentBlockDisplay component to improve rendering performance and user experience
* Refactor `ContentBlockDisplay.tsx` to improve readability and update header title logic
* [autofix.ci] apply automated fixes
* Add 'start_time' to event data and update test functions to include send_message mock
* Refactor ContentBlockDisplay component to include total duration and improve user experience
* Refactor ContentBlockDisplay component to handle isLoading state for total duration calculation
* Refactor animatedNumbers component and add AnimatedNumberBasic component
- Refactor the animatedNumbers component to improve readability and update the header title logic.
- Add a new component called AnimatedNumberBasic that displays an animated number with a specific value.
* Refactor agent message creation to improve event processing efficiency
* Refactor session ID assignment in run_graph_internal for improved clarity
* [autofix.ci] apply automated fixes
* fix: update agent message properties handling for improved compatibility
* fix: enhance message property validation to support dictionary input
* Add session_id to agent message initialization in tests
- Updated test cases in `test_agent_events.py` to include `session_id` in the `Message` initialization.
- Adjusted calls to `process_agent_events` to pass the `agent_message` with `session_id`.
* feat: Enhance event handling with duration tracking
Add start_time parameter to event handling functions to ensure consistent duration calculations across different stages of agent processing. This improves accuracy in measuring event durations and enhances overall event management.
* Add optional humanized value to AnimatedNumber component and update DurationDisplay usage
* Refactor `ContentDisplay` and add separator to `ContentBlockDisplay` component
* Add header to text content in agent message events
* Add separator between each content block in ContentBlockDisplay component
* Refactor layout in ContentDisplay component for improved styling and positioning
* Refactor event handlers to return updated start_time and agent_message
- Modified event handler functions to return a tuple of `agent_message` and `start_time`.
- Updated `_calculate_duration` to handle `start_time` as an integer.
- Ensured `start_time` is reset using `perf_counter()` after each event handling.
- Adjusted tool and chain event handler calls to accommodate the new return type.
* Add start_time and duration checks to agent event handlers in tests
- Updated test cases for `handle_on_chain_start`, `handle_on_chain_end`, `handle_on_tool_start`, `handle_on_tool_end`, `handle_on_tool_error`, and `handle_on_chain_stream` to include `start_time` as a return value.
- Added assertions to verify that `start_time` is a float and `duration` is an integer where applicable.
* [autofix.ci] apply automated fixes
* update colors and spacing of time
* [autofix.ci] apply automated fixes
* Refactor DurationDisplay component to display duration in seconds
* Rename case from "message" to "add_message" in buildUtils.ts switch statement
* Add event registration for message removal in EventManager
* Add category handling for message events in Component class
* Add custom exception handling for agent message processing
* Handle exceptions in agent event processing with message deletion and event notification
* Add new LLM options and refactor AgentComponent for dynamic provider handling
- Introduced new language model options: Anthropic, Groq, and NVIDIA.
- Refactored `AgentComponent` to utilize `MODEL_PROVIDERS_DICT` for dynamic provider handling.
- Simplified input management by removing hardcoded provider inputs and using a dictionary-based approach.
- Enhanced `update_build_config` to support flexible provider configurations and custom options.
* Refactor buildUtils.ts and add message removal handling
* Update Source model to allow None values for id, display_name, and source fields
* Refactor event handler functions to return tuple of Message and float
* Refactor `ChatOutput` class to use `MessageInput` instead of `MessageTextInput` for `input_value` across starter projects.
* Add test for updating component outputs with dynamic code input
* feat: add ToolModeMixin to manage tool mode state
* feat: add parameterName to mutateTemplate for enhanced template mutation
* feat: add tool mode functionality to node toolbar
Implement a toggle for tool mode, allowing users to easily switch functionalities within the node toolbar. This enhancement improves user interaction by providing a dedicated mode for tool-related tasks.
* feat: integrate ToolModeMixin into MessageTextInput for enhanced functionality
* Update parameterId to "tool_mode" in nodeToolbarComponent
* feat: implement tool mode output handling in run_and_validate_update_outputs
* feat: add conditional rendering for tool mode button based on template fields
* fix: enhance null checks for tool mode button visibility and output validation
* feat: add isToolMode property to NodeInputFieldComponentType for enhanced functionality
* feat: add isToolMode prop to NodeInputField for conditional styling
* feat: implement sorting logic for tool mode fields in GenericNode component
* feat: add isToolMode prop to NodeOutputField for conditional styling
* feat: pass isToolMode prop to NodeOutputField for conditional styling
* feat: update disabled logic in NodeInputField to include isToolMode
* Add default placeholder to getPlaceholder function and constants file
* feat: Enable dynamic placeholders in input components
Add support for customizable placeholder text across various input components to enhance usability and improve user experience.
* feat: Add optional placeholder prop to InputProps type
* feat: Add placeholder prop to InputGlobalComponent and CustomParameterComponent
* feat: Set dynamic placeholder for NodeInputField based on tool mode
* feat: Update NodeOutputField styling for tool mode and pass isToolMode prop
* feat: Add isToolMode prop to OutputComponent for dynamic styling
* feat: Add TOOL_OUTPUT_DISPLAY_NAME constant for toolset display
* feat: Update tool output display name to use TOOL_OUTPUT_DISPLAY_NAME constant
* feat: Conditionally render Freeze Path button based on tool mode
* Add support for asynchronous output methods and tool mode validation in component tools
* feat: Validate required inputs for tool mode before executing output methods
* Refactor: Rename method to indicate private access in custom_component
- Changed `get_function_entrypoint_return_type` to `_get_function_entrypoint_return_type` in `custom_component.py` to reflect its intended private usage.
- Updated references to the renamed method in `utils.py` and `directory_reader.py` to maintain consistency.
* feat: Implement tool output mapping based on tool mode presence in inputs
* Refactor tests to use private method _get_function_entrypoint_return_type
* feat: Enable tool mode for input_value in LCAgentComponent
* Add test for updating component outputs with dynamic code input
* feat: add tool mode functionality to node toolbar
Implement a toggle for tool mode, allowing users to easily switch functionalities within the node toolbar. This enhancement improves user interaction by providing a dedicated mode for tool-related tasks.
* feat: add conditional rendering for tool mode button based on template fields
* feat: add isToolMode prop to NodeInputField for conditional styling
* feat: Set dynamic placeholder for NodeInputField based on tool mode
* feat: Add TOOL_OUTPUT_DISPLAY_NAME constant for toolset display
* feat: Conditionally render Freeze Path button based on tool mode
* Add tool mode support to LCAgentComponent
- Introduced new input fields: `agent_name`, `agent_description`, and `add_tools_to_description` to support tool mode.
- Implemented methods `get_tool_name`, `get_tool_description`, `_build_tools_description`, and `to_toolkit` for handling tool-related functionalities.
- Enhanced `MessageTextInput` with additional information for better user guidance.
- Updated agent message sender name to use `agent_name` if available.
* Fix return statement placement in event handling logic
* Add tool mode enhancements and error handling in component_tool
- Introduce optional parameters `tool_name`, `tool_description`, and `callbacks` to `get_tools` method.
- Implement error handling for tool creation with `handle_tool_error` and `callbacks`.
- Ensure single tool validation when `tool_name` or `tool_description` is provided.
- Add support for `BaseModel` result serialization using `model_dump`.
* Refactor agent response method and update output configuration
* Remove unused 'input_value' field from tool_calling.py configuration
* Refactor source property assignment to use _build_source method
* Enhance callable input check and add callbacks to toolkit conversion
* Add unit tests for message update functionality in backend
- Implement tests for updating single and multiple messages.
- Add tests for handling nonexistent messages during updates.
- Include tests for updating messages with timestamps, content blocks, and nested properties.
- Ensure proper serialization and storage of message properties.
* Add field serializer for 'output' using jsonable_encoder in content_types.py
* Add tool mode fields and refactor message response in starter projects
- Introduced new fields `add_tools_to_description`, `agent_description`, and `agent_name` for tool mode configuration in JSON starter projects.
- Refactored `message_response` method to utilize `_build_source` for constructing message source properties.
- Updated method references from `get_response` to `message_response` for consistency.
- Adjusted input field descriptions and added missing metadata attributes.
* Implement no-op send_message function and patching decorator for component tools
* Refactor output handling in component tool to support Message and Data types
* Simplify exception handling by removing redundant exception re-raise
* Enhance tool assignment logic to preserve existing name and description if not provided
* feat: Enhance agent name and description handling
Refactor the agent component to dynamically include tool names in the default agent name and description. This improves clarity for users by providing more context about the agent's capabilities and ensures consistent representation of tools in the interface.
* refactor: Update agent description and name info to include default values and dynamic tool integration
* Add custom encoders for serialization and refactor schema modules
- Introduce `CUSTOM_ENCODERS` in `encoders.py` to handle serialization of `Callable` and `datetime` objects.
- Refactor `BaseContent` to use `model_serializer` for model serialization with custom encoders.
- Remove redundant `encode_callable` function and `CUSTOM_ENCODERS` definition from `artifact.py`.
- Update imports and clean up unused imports in schema modules.
* Remove 'agent_name' field and update 'get_tool_name' method in agent.py
* Enhance `serialize_model` method with `wrap` mode and improved error handling
* Add 'tool_mode' attribute to frontend node class
* Add unit tests for ContentBlock initialization and content handling
* Add unit tests for content types serialization and creation
* Refactor tool mode initialization logic in NodeToolbarComponent
* Add tool mode functionality to node toolbar and flow store
* Add updateNodeInternals call for tool_mode case in nodeToolbarComponent
* Add condition to hide handle in tool mode in NodeInputField component
* Add shortcut for activating Tool Mode and integrate into node toolbar
* Add tool_mode parameter to MessageTextInput and update attributes mapping
* Remove 'agent_name' field from Agent Flow configuration file
* Update agent message to use display_name instead of agent_name
* Add validation for required tools in agent execution and component setup
* Make 'tools' field required in AgentComponent configuration
* test: add unit tests for run_and_validate_update_outputs functionality
Implement comprehensive tests for the `run_and_validate_update_outputs` method across various scenarios, including enabling/disabling tool mode, handling invalid output structures, and supporting custom update logic. Validate that outputs are correctly updated and ensure appropriate error handling for invalid cases.
* test: update component toolkit tests to use CalculatorToolComponent
* Enhance input schema creation logic for tool mode components
* Include input expression in error responses for calculator tool
* Enhance `visit_Attribute` to check for required inputs in `tree_visitor.py`
* fix: add checks for graph attribute before accessing session and flow IDs in Component methods
* fix: set default value to None for id field in PlaygroundEvent model
* fix: remove unused add_toolkit_output flag from FeatureFlags model
* Refactor JSON configurations to remove unnecessary required inputs across starter projects
* Add tool mode validation and improve error handling
- Updated import statement for ContentBlock to fix import path.
- Modified `send_message_noop` to require a `Message` parameter and added type ignore for method assignment.
- Enhanced error message in tool mode validation to handle `None` input names.
- Changed return type of `send_error_message` to `Message` for consistency.
- Provided default value for `get_tool_name` to handle missing display names.
* Add pytest fixture to test_component_message_sending test
---------
Co-authored-by: anovazzi1 <otavio2204@gmail.com>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: cristhianzl <cristhian.lousa@gmail.com>
* 📝 (pageLayout/index.tsx): update beta icon text from "BETA" to "Beta" for consistency and readability
* ✨ (custom-parameter.tsx): add support for flex view in custom parameter title to improve UI flexibility and readability
* ✨ (NodeInputField/index.tsx): refactor NodeInputField component to pass isFlexView prop to getCustomParameterTitle function for improved customization and flexibility
* 📝 (NodeStatus/index.tsx): update text from "BETA" to "Beta" for consistency and readability
* ✨ (flowSidebarComponent/index.tsx): Add new components and features to the Flow Sidebar Component to enhance user experience and functionality. Update the structure and logic of the component to improve search functionality, error handling, and component filtering.
* ✨ (emptySearchComponent): add a new component NoResultsMessage to display a message when no components are found in the search result. The component includes options to clear the search, filter, and try a different query.
* ✨ (featureTogglesComponent/index.tsx): add a new component FeatureToggles to manage feature toggles for Beta and Legacy features in the sidebar of the FlowPage.
* 📝 (sidebarDraggableComponent): Update CSS classes for better styling and spacing
💡 (sidebarDraggableComponent): Improve readability by changing font weight of text elements
💡 (sidebarDraggableComponent): Update text content to be more consistent and capitalized
* ✨ (index.tsx): Add a new component SidebarFooterButtons to display buttons in the sidebar footer for adding custom components and navigating to the store page.
* ✨ (index.tsx): add a new component SidebarItemsList to render a list of items in the sidebar with tooltips and draggable functionality
* ✨ (apply-beta-filter.ts): add a new helper function applyBetaFilter to filter out beta items from the given data based on a specific condition
* ✨ (apply-edge-filter.ts): introduce a new helper function applyEdgeFilter to filter data based on edge filters for a better user experience.
* ✨ (apply-legacy-filter.ts): introduce a new helper function applyLegacyFilter to filter out legacy data from APIDataType object.
* ✨ (combined-results.ts): add a new helper function combinedResultsFn to combine Fuse.js search results with API data for each category
* ✨ (filtered-data.ts): introduce a new helper function filteredDataFn to merge and return filtered data from different sources for a given category in the FlowPage component.
* ✨ (normalize-string.ts): introduce a new helper function normalizeString to convert a string to lowercase, remove underscores, and spaces for better string normalization.
* ✨ (ParentDisclosureComponent): Change "BETA" to "Beta" for consistency in text formatting
✨ (search-on-metadata.ts, traditional-search-metadata.ts): Add helper functions for searching in metadata and traditional search metadata to improve search functionality in the flow sidebar component.
✨ (ConnectionLineComponent/index.tsx): introduce accentColor variable to dynamically set stroke and accent color based on handleDragging color
♻️ (PageComponent/index.tsx): refactor code to remove unused variables zoomIn, zoomOut, fitView, and zoom to improve code readability and maintainability
Co-authored-by: Mike Fortman <michael.fortman@datastax.com>
* 📝 (GenericNode/index.tsx): Add import statement for cloneDeep from lodash library
📝 (GenericNode/index.tsx): Add import statement for processNodeAdvancedFields helper function
📝 (GenericNode/index.tsx): Add edges variable to store edges state using useFlowStore hook
📝 (GenericNode/index.tsx): Modify onSuccess callback to process and update node data with advanced fields using processNodeAdvancedFields helper function
* ✨ (process-node-advanced-fields.ts): add a new function to process advanced fields of a node based on edges in a graph for better customization and control.
* ♻️ (GenericNode/index.tsx): Remove unused import of cloneDeep from lodash to clean up the code and improve maintainability.
* 🔧 (process-node-advanced-fields.ts): rename variable edgesWithNode to relevantEdges for clarity and consistency
🐛 (process-node-advanced-fields.ts): fix condition to check relevantEdges length instead of edgesWithNode length for correct logic
---------
Co-authored-by: anovazzi1 <otavio2204@gmail.com>
* Refactor cardComponent and storeCardComponent to comment out playground buttons
* Refactor message model to replace 'meta_data' with 'properties' and update related schema and components
* Add new schema for content types with Pydantic models
* Add ContentBlock schema with support for multiple content types
* Refactor: Import ContentBlock from langflow.schema.content_block instead of defining locally
* Add SendMessageFunctionType protocol to log schema for message handling
* Refactor chat message model to replace 'meta_data' with 'properties' and update related components
* Add ContentBlock import and enhance send_message method in component.py
- Import ContentBlock from langflow.schema.content_block.
- Replace 'meta_data' with 'properties' in message construction.
- Update send_message method to handle optional Message and text parameters.
* Add async on_chain_start method to callback for logging chain start events
* Refactor add_messagetables function to replace 'meta_data' with 'properties' in message processing
* Fix typo in 'traceback' property name in ErrorDetails interface
* Add condition to check chat history length before rendering chat lock
* Refactor error content structure and enhance message event handling
* Add `update_messages` function to handle message updates in memory module
* Add check for 'id' attribute in stored_message for message validation
* Add new content types and TypeAlias for schema in content_types.py
* Add custom serialization for UUID and BaseModel types in data schema
* Refactor `ContentType` to use `ContentTypes` union and update `content` field in `ContentBlock` model
* Update model to use specific types for properties and content_blocks fields
* Change return type of 'serialize_params' method to string
* Add sender fields and properties handling to PlaygroundEvent and create_message function
* Refactor chat message component to use 'properties' instead of 'meta_data' for chat attributes
* Refactor message handling to improve error categorization and session management
* Enhance ContentBlock initialization to update model fields with defaults
* Add new content types and update ContentBlock interface in chat types
- Introduced BaseContent interface and various content types: ErrorContent, TextContent, MediaContent, JSONContent, CodeContent, ToolStartContent, ToolEndContent, and ToolErrorContent.
- Created a union type ContentType for all content types.
- Updated ContentBlock interface to include new content structure and additional fields.
* Refactor error handling in chat messages to use `ErrorContent` type
* Add ErrorMessage class for handling error-specific messages in schema
* Add type annotations for cache and logs in custom_component.py
* Refactor error handling in custom component to use `send_error` method
* Add customizable properties for chat components
- Introduced new properties: `background_color`, `chat_icon`, and `text_color` to chat components across various starter projects.
- These properties allow for customization of the chat message appearance, including icon and text styling.
- Updated the `ChatInput` and `ChatOutput` components to handle these new properties and include them in the message response.
* Add 'category' field to MessageEvent and update create_message function
* Remove unused message handling methods from ChatComponent
* Refactor message event handling in chat module
* Add 'category' field to Message creation and pass 'id_' in _send_message_event
* Add 'category' field with Literal type to Message schema and default handling in chat IO
* Refactor message event handling in chat module
* Refactor buttonSendWrapper component to add data-testid attribute
* Refactor ChatComponent to replace 'store_message' with 'send_message' method
* refactor: streamline message handling in Component
Update message processing to utilize new methods for improved clarity and efficiency. Enhance event data management to ensure accuracy and consistency in message updates.
* feat: Update input handling and output storage for chat components
Enhance chat input and output components to improve message handling, including updates to storage and display properties. This facilitates better user experience and message management in various agent projects.
* Ensure 'id' field is set in message data dictionary if not present
* refactor: Simplify property retrieval from source component in ChatComponent
* refactor: Replace property retrieval logic with a dedicated method in ChatOutput
* Refactor `TokenEvent` class and add `timestamp` field with default factory
* refactor: Simplify message processing by removing unused parameters in async handling
* Refactor message text update logic in messagesStore
* Refactor border styling in ChatInput component
* refactor: Consolidate properties handling in PlaygroundEvent and create_message function
* refactor: Update timestamp formatting to include timezone information across multiple models
* refactor: Add StreamingError exception for better error handling in streaming components
* refactor: Add source_display_name attribute to Properties model for enhanced data representation
* refactor: Enhance ChatComponent to return source display name and update properties handling in ChatOutput
* refactor: Improve error handling in Component class and enhance create_error function with timestamp support
* feat: enhance ChatOutput component for improved message handling
Update the message_response method to include source display name and improve message storage functionality across various project templates. This enhances clarity and ensures consistent behavior of chat components.
* feat: add delete_message function to remove messages by ID from the monitor service
* Add error handling for message streaming and implement message deletion on failure
* feat: Enhance message streaming and event handling
Improve the streaming process to send message events only for non-streaming messages and ensure the initial message is sent correctly when processing chunks, enhancing the overall message handling flow.
* improve UI
* Refactor buttonSendWrapper component to add data-testid attribute and update tests
* fix edited tag
* add tooltip to add button
* fix bug after merge
* update examples
* updateinput without chat
* fix some frontend tests
* fix test
* update test
* Update fileUploadComponent.spec.ts to fix test and update input without chat
* refactor event creation functions and enhance ErrorEvent structure
* refactor ErrorMessage to use Source for sender and component details
* refactor Properties to use Source model for source details and add validation
* refactor ChatMessage component for improved readability and structure
* refactor ChatMessageType to use PropertiesType for improved structure and clarity
* Add Source ID to message properties and update exception handling
- Updated `message_response` method to include `source_id` in the `Properties` object for better traceability.
- Modified `StreamingError` to use `Source` object instead of `component_name` for more detailed error context.
- Adjusted `get_properties_from_source_component` to return `source_id` along with other properties.
* Add 'Source' property to error handling in custom_component module
- Introduced 'Source' property to enhance error message details.
- Updated error handling to include 'source' instead of 'display_name'.
- Modified exception raising to use 'source' for better traceability.
* Enhance event ID generation with event type prefix in `send_event` method
* Refactor ChatOutput class to use Properties and Source schemas for message properties
* update style in tailwind and add fallback for nullable values
* fix playground test
* Update message handling in Component class to send modified message copy on first chunk
* Add flow_id and session_id to ErrorEvent creation function
* Update content_blocks initialization and add flow_id parameter to ErrorMessage
* feat: include vertex ID in class instantiation
Pass the vertex ID to the custom component during instantiation to facilitate event tracking or management capabilities.
* fix: update message streaming logic to handle None messages and refactor _stream_message parameters
* feat: include flow_id in ChatOutput initialization
Add flow_id to the ChatOutput class to improve the tracking of conversational flows, enhancing the context management within the chat system.
* fix: update chat message source display to use 'source' instead of 'display_name'
* feat: add flow_id to message initialization in ChatOutput class
* fix: handle JSON parsing with type checks for message properties
Refine JSON loading to ensure proper type handling for message properties and content blocks, enhancing stability and preventing potential errors with non-string inputs.
* refactor: update logging structure and message handling
Improve the output logs to support logging multiple entries and ensure robust message streaming with type checking. Adjust error handling parameters for consistency.
* feat: restrict event types in registration and sending
Enhance event management by explicitly defining allowed event types, improving code clarity and reducing potential errors. This ensures only valid event types are registered and sent, leading to more robust event handling.
* Update `logs` attribute to store lists of `Log` objects in `Vertex` class
* feat: introduce TypedDicts for ContentBlock and Properties, update default values in Message model
* fix: restrict event types in send_event method to improve data validation
* Set default values for 'id', 'display_name', and 'source' fields in Source schema
* [autofix.ci] apply automated fixes
* fix: update query to use equality check for error messages
* make lint
* update simple agent test
* test: enhance EventManager tests for event_id validation
* feat: add background, chat icon, and text color properties to component toolkit
* fix: update LogComponent name to display_name for consistency
* remove playground from new cards on main page
* refactor: Update Properties handling in MessageTable and remove unused PropertiesDict
* fix: Set default value for category in MessageBase model
* fix: Update properties default factory in MessageTable model to use model_dump
* Add _build_source method to ChatOutput and update test inputs to use Message objects
* Fix incorrect parameter names in _build_source method across multiple JSON files
* ✅ (freeze.spec.ts, playground.spec.ts, stop-building.spec.ts, linkComponent.spec.ts, sliderComponent.spec.ts, tableInputComponent.spec.ts, stop-button-playground.spec.ts, generalBugs-shard-7.spec.ts): enable tests that were previously skipped to ensure proper functionality and coverage. Remove outdated comments and update test descriptions for clarity.
* Refactor agent event processing to support message streaming and improve content handling
* Refactor ChatOutput to enhance message handling and streamline property assignment
* Fix session ID assignment in send_message method for better message handling
* Add OnTokenFunctionType protocol for enhanced token handling
* Add BorderTrail component for animated border effects
* Add ContentBlockDisplay component for enhanced content visualization and loading state
* Refactor TextShimmer to use motion.create for improved component animation
* Add ContentBlockDisplay to render chat content blocks in newChatMessage component
* Refactor `ChatOutput` class to use `MessageInput` instead of `MessageTextInput` for `input_value` across starter projects.
* Update edge class name from 'runned' to 'ran' in flow components and store
* Add 'on_build_start' and 'on_build_end' events to EventManager
* Add build status updates for 'build_start' and 'build_end' events in buildUtils.ts
* Integrate event management for output function in ComponentToolkit to track build start and end events
* Refactor event handling in ComponentToolkit to improve build event tracking
* Refactor messagesStore to update existing message if it already exists
* update properties to have state attribute
* format
* Refactor chatMessage component to display loading state for partial chat messages
* Refactor reactflowUtils to handle broken edges with missing display names
* fix agent text output
* [autofix.ci] apply automated fixes
* [autofix.ci] apply automated fixes (attempt 2/3)
* fix agent component initialization
* Enhance error message formatting to include detailed exception information
* Refactor agent component for improved performance and stability
* Refactor `LCAgentComponent` to streamline agent execution logic and remove redundant methods
* Add type casting for send_message function in agent.py
* Change return type of function to 'Message' in log schema
* Add `embedding_service` and `client` fields to JSON configurations and refactor ChatOutput class
- Introduced `embedding_service` field in `Vector Store RAG.json` and `Travel Planning Agents.json` to support Astra Vectorize and embedding model selection.
- Added `client` field to `OpenAIEmbeddingsComponent` in JSON configurations for enhanced client configuration.
- Refactored `ChatOutput` class across multiple JSON files to include a new `_build_source` method for constructing `Source` objects, improving code modularity and readability.
- Updated import paths for `OpenAIEmbeddings` to reflect changes in the module structure.
* Update attribute handling in Component class to merge inputs with existing attributes
* Update ChatInput and ChatOutput initialization to include session_id
* Refactor test_load_flow_from_json_object to be asynchronous
* Add asynchronous tests for agent event handling in test_agent_events.py
* Add event handling functions for agent tool and chain events
- Implement functions to handle various agent events such as `on_chain_start`, `on_chain_end`, `on_tool_start`, `on_tool_end`, and `on_tool_error`.
- Introduce helper functions to build content blocks for agent messages.
- Create mappings for chain and tool event handlers.
- Refactor `process_agent_events` to utilize the new event handling functions.
- Remove the old `process_agent_events` implementation from `agent.py` and import the new one from `events.py`.
* feat: update content structure and validation logic
Enhance content block to accept a list of contents instead of a single item, and implement validation to ensure proper format. Refactor tool-related content types for improved clarity and functionality.
* Handle ValidationError in error message generation and update import paths
* feat: enhance error event creation to include structured error content
* move validators and remove utils.py
* feat: add event handler tests for agent tool and chain events
* refactor: streamline tool content structure
Combine multiple tool-related types into a single, more flexible interface. This simplifies the content handling by allowing optional properties for output, error, and timestamp, enhancing overall code maintainability. Adjust the ContentBlock interface to accommodate an array of contents for improved flexibility.
* feat: refactor error handling in ChatMessage component to support dynamic content blocks
* feat: enhance ContentBlockDisplay to support Markdown rendering and dynamic content handling
* Refactor agent event handling to simplify content block management
* Enhance `ContentBlockDisplay` with separators and improved content rendering logic
* add inline block to prevent text overflow in reason
* Refactor code to enhance Markdown rendering and dynamic content handling in ChatMessage component
* [autofix.ci] apply automated fixes
* Add timestamp field to BaseContent class and remove from ToolContent class
* Update timestamp validation to include fractional seconds in BaseContent class
* Add duration calculation for agent and tool events in events.py
* Refactor ContentBlock to use Pydantic's Discriminator and Tag for content types
* Add field validators for content_blocks and properties in Message class
* Add field serializer for source in Properties class
* Add type hint for serialize_properties method in MessageTable class
* create duration component and refactor contents
* [autofix.ci] apply automated fixes
* Refactor duration calculation to use perf_counter for improved accuracy and update ContentBlockDict to use dict for contents
* Update properties field validator to use 'before' mode for improved validation
* Refactor MessageTable to use ContentBlock instead of ContentBlockDict and enhance validation and serialization for properties and content_blocks
* Refactor AgentComponent to streamline agent initialization by using the set method directly
* Refactor event handling functions to use synchronous definitions and improve performance with asyncio.to_thread
* Refactor PythonREPLToolComponent to raise ToolException on error instead of returning error message
* Refactor CalculatorToolComponent to enhance error handling by raising ToolException and improving expression evaluation feedback
* Fix TextShimmer width in ContentBlockDisplay for improved layout consistency
* Enhance ContentBlockDisplay to support external links and math rendering in Markdown
* Enhance error handling in Calculator and Python REPL tools by introducing `ToolException` and improving expression evaluation logic.
* Refactor agent message properties to remove unnecessary icons and update content block titles for clarity
* feat: enhance agent and tool content messaging
Add headers to agent and tool content messages for better clarity and user experience.
* Handle nested schema structure in ContentBlock initialization
* fix: update agent input text content return type and enhance error message formatting
* Add placeholder and default value for model selection in AstraVectorStoreComponent
* Refactor event handling functions to remove `send_message_method` parameter and streamline message processing logic.
* Add model configuration to ToolContent for alias population
* Refactor agent event tests to improve message handling and content block initialization
* test: Update test durations for performance metrics
Adjust the recorded execution times for various test cases to ensure accurate performance tracking and facilitate optimization efforts.
* Refactor test_load_flow_from_json_object to improve project loading logic
* Make `HeaderDict` fields optional and update `header` field in `BaseContent`
* Enhance `Message` and `ChatOutput` with additional attributes for testing
* Update test duration metrics in .test_durations file
* Refactor `ContentDisplay` component to support multiple content types and improve rendering logic
* feat: Enhance duration display with human-readable format
Integrate the pretty-ms library to convert duration display metrics into a more user-friendly format, improving the overall user experience. Update dependencies to ensure compatibility with the latest version and optimize for newer Node.js versions.
* feat: Add optional duration and header properties to BaseContent interface
* fix: Change duration type from float to int in BaseContent class
* Remove default value for 'start_time' in duration calculations
* Enhance `ContentBlockDisplay` with dynamic header and expand/collapse animation
- Added `state` prop to `ContentBlockDisplay` to dynamically set header icon and title based on content state.
- Implemented `renderContent` function to encapsulate content rendering logic with animation.
- Integrated `ForwardedIconComponent` for displaying header icons.
- Updated `newChatMessage.tsx` to pass `state` prop to `ContentBlockDisplay`.
* Add animation to header title using AnimatePresence and motion components
* Add support for processing zip files with multithreading in FileComponent
- Enhanced FileComponent to handle individual and zipped text files.
- Introduced multithreading option for parallel processing of files within zip archives.
- Updated supported file types to include zip files.
- Improved error handling and logging for file processing.
* Expand `Message` conversion to support `AsyncIterator` and `Iterator` types.
* Remove unused function _find_or_create_tool_content from events.py
* Add header information to tool content and streamline message sending in event processing
* Add send_message_method parameter to event handlers for message dispatching
- Updated event handler functions to include a new parameter, `send_message_method`, allowing for message dispatching within the handlers.
- Modified the logic in each handler to utilize the `send_message_method` for sending messages.
- Adjusted the main event processing logic to pass the `send_message_method` to the appropriate handlers.
* Refactor ContentBlockDisplay component to improve rendering performance and user experience
* Refactor `ContentBlockDisplay.tsx` to improve readability and update header title logic
* [autofix.ci] apply automated fixes
* Add 'start_time' to event data and update test functions to include send_message mock
* Refactor ContentBlockDisplay component to include total duration and improve user experience
* Refactor ContentBlockDisplay component to handle isLoading state for total duration calculation
* Refactor animatedNumbers component and add AnimatedNumberBasic component
- Refactor the animatedNumbers component to improve readability and update the header title logic.
- Add a new component called AnimatedNumberBasic that displays an animated number with a specific value.
* Refactor agent message creation to improve event processing efficiency
* Refactor session ID assignment in run_graph_internal for improved clarity
* [autofix.ci] apply automated fixes
* fix: update agent message properties handling for improved compatibility
* fix: enhance message property validation to support dictionary input
* Add session_id to agent message initialization in tests
- Updated test cases in `test_agent_events.py` to include `session_id` in the `Message` initialization.
- Adjusted calls to `process_agent_events` to pass the `agent_message` with `session_id`.
* feat: Enhance event handling with duration tracking
Add start_time parameter to event handling functions to ensure consistent duration calculations across different stages of agent processing. This improves accuracy in measuring event durations and enhances overall event management.
* Add optional humanized value to AnimatedNumber component and update DurationDisplay usage
* Refactor `ContentDisplay` and add separator to `ContentBlockDisplay` component
* Add header to text content in agent message events
* Add separator between each content block in ContentBlockDisplay component
* Refactor layout in ContentDisplay component for improved styling and positioning
* Refactor event handlers to return updated start_time and agent_message
- Modified event handler functions to return a tuple of `agent_message` and `start_time`.
- Updated `_calculate_duration` to handle `start_time` as an integer.
- Ensured `start_time` is reset using `perf_counter()` after each event handling.
- Adjusted tool and chain event handler calls to accommodate the new return type.
* Add start_time and duration checks to agent event handlers in tests
- Updated test cases for `handle_on_chain_start`, `handle_on_chain_end`, `handle_on_tool_start`, `handle_on_tool_end`, `handle_on_tool_error`, and `handle_on_chain_stream` to include `start_time` as a return value.
- Added assertions to verify that `start_time` is a float and `duration` is an integer where applicable.
* [autofix.ci] apply automated fixes
* update colors and spacing of time
* [autofix.ci] apply automated fixes
* Refactor DurationDisplay component to display duration in seconds
* Rename case from "message" to "add_message" in buildUtils.ts switch statement
* Add event registration for message removal in EventManager
* Add category handling for message events in Component class
* Add custom exception handling for agent message processing
* Handle exceptions in agent event processing with message deletion and event notification
* Add new LLM options and refactor AgentComponent for dynamic provider handling
- Introduced new language model options: Anthropic, Groq, and NVIDIA.
- Refactored `AgentComponent` to utilize `MODEL_PROVIDERS_DICT` for dynamic provider handling.
- Simplified input management by removing hardcoded provider inputs and using a dictionary-based approach.
- Enhanced `update_build_config` to support flexible provider configurations and custom options.
* Refactor buildUtils.ts and add message removal handling
* Update Source model to allow None values for id, display_name, and source fields
* Refactor event handler functions to return tuple of Message and float
---------
Co-authored-by: anovazzi1 <otavio2204@gmail.com>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: cristhianzl <cristhian.lousa@gmail.com>