115 Commits

Author SHA1 Message Date
Nikhil-Doye 4a449d8c67 Refactor NodeConfiguration and enhance concurrency handling
- Moved the retrieval of the latest node data to a more appropriate location in NodeConfiguration, ensuring the most up-to-date configuration is used.
- Updated the ConcurrencyLimiter to correctly handle the queue resolution by passing `undefined` to the next function, improving clarity and functionality.
- Enhanced the DatabaseConnectionManager to securely merge connection updates while excluding sensitive fields, ensuring better security practices.
- Made executionId optional in ExecutionEngine methods, providing more flexibility in execution handling.
- Improved JSON parsing validation to allow extra fields, enhancing the robustness of the parsing process.
- Updated circular dependency detection in WorkflowValidationEngine to utilize a Set for improved performance and clarity.
2025-10-27 20:23:23 -04:00
Nikhil-Doye 71ffb7e1a2 Add unit tests for ExecutionEngine node type validation and error handling
- Introduced a new test suite for the ExecutionEngine to validate node types before workflow execution, ensuring only supported types are processed.
- Implemented tests for various scenarios, including invalid node types, missing type specifications, and detailed error messages for unsupported types.
- Enhanced error handling in the ExecutionEngine to provide user-friendly messages for missing or corrupted processors, improving overall robustness.
- Ensured comprehensive coverage of error message quality, providing actionable feedback for users during workflow execution.
2025-10-27 20:08:04 -04:00
Nikhil-Doye 4a03977968 Implement node type validation and position collision detection in WorkflowStore
- Added validation for node types to ensure only predefined types can be added to workflows, enhancing data integrity.
- Implemented position collision detection to automatically adjust node positions when overlaps occur, improving user experience.
- Introduced logging for invalid node type attempts and position adjustments, providing better feedback during workflow creation.
- Enhanced tests to cover new validation and collision detection features, ensuring robust functionality.
2025-10-27 19:24:34 -04:00
Nikhil-Doye 6cd8d7c5b6 Enhance WorkflowList component with node type summary and visual indicators
- Added helper functions to retrieve node icons and colors based on node types, improving visual representation in the workflow list.
- Implemented a summary section displaying node type counts and breakdowns, enhancing user understanding of workflow composition.
- Refactored existing node type indicators to utilize the new helper functions for consistency and maintainability.
- Removed outdated code related to previous node type handling, streamlining the component's logic.
2025-10-27 19:19:02 -04:00
Nikhil-Doye 7163a2a1d2 Implement workflow import functionality with toast notifications
- Added importWorkflow method to the workflow store for handling imported workflows, including ID conflict resolution and storage updates.
- Enhanced WorkflowToolbar component to support file imports, providing user feedback through toast notifications for success and error scenarios.
- Improved error handling during the import process, ensuring informative messages are displayed for various failure cases.
2025-10-27 19:11:18 -04:00
Nikhil-Doye 3e2d297e56 Implement LRU Cache with TTL and performance tracking in CacheLookupTool
- Introduced a new LRU cache implementation with time-to-live (TTL) support, enhancing performance for cached results.
- Added detailed cache statistics and performance tracking, including hit/miss counts and eviction metrics.
- Implemented methods for cache entry management, including eviction of least recently used entries and retrieval of top accessed entries.
- Enhanced the clearExpired and getStats methods for better cache management and reporting.
- Added comprehensive logging for cache operations to improve observability and debugging.
2025-10-27 19:01:10 -04:00
Nikhil-Doye 5effc0fe05 Enhance DataInputNode with toast notifications and workflow state management
- Integrated toast notifications for file upload success, error handling, and file removal, improving user feedback during PDF processing.
- Updated the handling of node outputs to utilize the workflow store for better state management and data flow.
- Enhanced error handling to provide more informative messages during PDF processing failures, ensuring a smoother user experience.
2025-10-27 18:55:29 -04:00
Nikhil-Doye d187f62cac Add toast notifications for database connection management actions
- Integrated toast notifications for adding, updating, deleting, and testing database connections to enhance user feedback.
- Implemented loading indicators and success/error messages for each action, improving the overall user experience.
- Updated confirmation dialogs to include connection names for better clarity during deletion prompts.
2025-10-27 18:48:24 -04:00
Nikhil-Doye 3a41c79a99 Refactor Discord and Gmail processors for improved consistency and error handling
- Updated discordProcessor and gmailProcessor to utilize a standardized execution context and plan, enhancing maintainability and observability.
- Improved error handling by throwing detailed errors with context for better debugging.
- Enhanced configuration validation to ensure proper structure and provide clear error messages.
- Standardized response format to include execution metadata, improving traceability and user feedback.
2025-10-27 18:42:37 -04:00
Nikhil-Doye 6750006330 Implement robust JSON parsing for LLM outputs
- Introduced a new robust JSON parser to handle common issues with LLM-generated JSON, including malformed structures, trailing commas, and code block wrappers.
- Updated the naturalLanguageToWorkflowService to utilize the new parsing methods, enhancing error handling and validation for intent classification, entity extraction, and workflow generation.
- Added comprehensive documentation outlining the parsing strategies and integration points, improving maintainability and developer understanding.
- Created a new markdown file detailing the robust JSON parsing solution, including architecture, examples, and future enhancements.
2025-10-27 18:36:55 -04:00
Nikhil-Doye 8eaf0221b6 Enhance command validation in database processing
- Updated validation methods in DatabaseCommand and its subclasses (DeleteCommand, InsertCommand, QueryCommand, UpdateCommand) to enforce stricter checks on configuration objects.
- Introduced runtime type guard utilities for better validation of expected configuration structures.
- Added console warnings for missing required fields in commands, improving user feedback during validation failures.
- Ensured that all commands validate necessary properties before execution, enhancing robustness and preventing misconfigurations.
2025-10-27 16:36:06 -04:00
Nikhil-Doye 60db9c827e Enhance Firecrawl service with proxy support and improved error handling
- Introduced a proxy base URL configuration for production environments, allowing secure API calls through a proxy.
- Enhanced the scrape and batch scrape functions to utilize the proxy, with robust error handling and user-friendly messages.
- Implemented validation for API key configuration, ensuring clear guidance for users in both development and production settings.
- Improved error responses to provide actionable feedback, enhancing the overall user experience when interacting with the Firecrawl API.
2025-10-27 16:18:32 -04:00
Nikhil-Doye 2e8064a312 Refactor workflow ID migration logic for improved stability and validation
- Enhanced the ID migration process to utilize a stable mapping based on original node IDs, ensuring uniqueness and preventing collisions.
- Introduced functions to identify deterministic IDs and find orphan edges, improving the robustness of the migration.
- Added validation for duplicate node IDs and orphan edges, with warnings logged for any inconsistencies detected during migration.
- Updated the migration function to filter out orphan edges after migration, ensuring cleaner workflow structures.
2025-10-27 16:08:34 -04:00
Nikhil-Doye 0e683a3253 Add optimization preview and undo functionality in NodeConfiguration component
- Introduced state management for optimization preview, allowing users to preview optimized prompts before applying changes.
- Added functionality to save original prompts and maintain a history of prompt changes for undo operations.
- Enhanced the UI to include buttons for applying optimized prompts and undoing the last change, improving user experience and flexibility in prompt management.
- Implemented cancelation of optimization previews, ensuring users can easily revert to the original state if needed.
2025-10-27 16:00:51 -04:00
Nikhil-Doye 686db1bae5 Add clear all workflows functionality and confirmation dialog
- Enhanced WorkflowList component to include a "Clear All" button for deleting all workflows, with a confirmation prompt to prevent accidental deletions.
- Updated WorkflowToolbar component to implement a dialog for confirming the reset of all nodes in the current workflow, ensuring user awareness of irreversible actions.
- Improved user interface with visual feedback for critical actions, enhancing overall usability and safety in workflow management.
2025-10-27 15:53:58 -04:00
Nikhil-Doye 4bcf36e1dd Implement secure credential management for database connections
- Introduced SecureCredentialManager for encrypted storage of sensitive database credentials, including passwords and connection strings.
- Updated DatabaseConnectionManager to utilize secure credential storage, ensuring plaintext credentials are never saved.
- Added methods for securely storing, retrieving, updating, and deleting credentials, enhancing security and compliance.
- Implemented credential migration for existing connections to transition from plaintext to secure storage.
- Enhanced connection management with features for masked credentials and secure access, improving overall security posture.
2025-10-27 15:46:49 -04:00
Nikhil-Doye dc146df77d Add comprehensive API error handling and validation utilities
- Introduced apiErrorHandler module for structured error management in API calls, including timeout handling, retries, and response validation.
- Implemented safeAPICall function to wrap API calls with error handling and retry logic.
- Enhanced existing services (openaiService, embeddingProcessor, llmProcessor) to utilize the new error handling utilities, improving robustness and user feedback.
- Added validation functions for OpenAI-like responses and embedding responses to ensure data integrity.
- Improved error logging and user-friendly messages for better debugging and user experience.
2025-10-27 15:08:12 -04:00
Nikhil-Doye 05cf50b3a3 Add concurrency limiting functionality to execution engine
- Introduced ConcurrencyLimiter class to manage concurrent operations and prevent resource exhaustion.
- Implemented run, runAll, and runAllOrThrow methods for executing functions with concurrency control.
- Enhanced ExecutionEngine to utilize concurrency limiting when executing parallel groups and nodes, improving resource management and execution efficiency.
- Integrated mapWithConcurrency and mapWithConcurrencySettled functions for mapping operations with concurrency control.
2025-10-27 15:00:32 -04:00
Nikhil-Doye 571a5a04e5 Add test input configuration feature to ExecutionPanel
- Introduced TestInputConfigurator component for configuring test inputs in workflows.
- Enhanced ExecutionPanel to include a button for opening the test input configuration modal.
- Integrated test input management logic using the new TestInputManager service to handle input mappings and validation.
- Updated workflow execution logic to apply test inputs based on user configuration, improving flexibility and usability in testing scenarios.
2025-10-27 14:56:56 -04:00
Nikhil-Doye e1cf8e38a7 Add workflow validation features and UI components
- Introduced WorkflowValidationPanel component to display validation results and issues in the WorkflowEditor.
- Integrated comprehensive workflow validation logic using the new WorkflowValidationEngine, which checks for errors, warnings, and overall workflow structure before execution.
- Enhanced WorkflowEditor to include a validation status badge that toggles the visibility of the validation panel.
- Updated ExecutionEngine to utilize the new validation engine, ensuring workflows are validated prior to execution, with detailed error messages for user feedback.
- Added visual indicators for validation status, improving user experience and workflow management.
2025-10-27 14:49:38 -04:00
Nikhil-Doye ce9f7932c3 Add execution logging and event handling components
- Introduced ExecutionLogger component to display real-time execution logs, including workflow and node events.
- Added NodeExecutionIndicator component to visualize the status and progress of individual nodes during execution.
- Enhanced WorkflowEditor to integrate execution logging, allowing users to toggle the logger and view execution metrics.
- Implemented execution event bus to manage and emit events related to workflow execution, including start, progress, completion, and errors.
- Updated ExecutionEngine to emit relevant events during execution phases for improved tracking and user feedback.
2025-10-27 14:30:04 -04:00
Nikhil-Doye b61ddef31a Enhance README.md with new data flow architecture section
- Added a detailed data flow architecture diagram using Mermaid syntax to illustrate the workflow execution process.
- Expanded the introduction to emphasize the capabilities of the AI workflow builder.
- Improved overall content structure for better clarity and user understanding.
2025-10-25 20:55:21 -04:00
Nikhil-Doye ee4844d593 Add architecture diagram documentation for workflow builder
- Introduced a comprehensive architecture diagram detailing the high-level system architecture, component architecture, and data flow for the workflow builder.
- Included visual representations using Mermaid syntax to illustrate frontend layers, state management, core services, AI/ML services, external integrations, and data processing.
- Documented the technology stack, key features, and architecture principles to provide clarity on system design and functionality.
2025-10-25 12:41:41 -04:00
Nikhil-Doye 1649788ce7 Add Slack integration test script and enhance natural language processing for notifications
- Introduced a new test script to verify Slack integration with AI Copilot, including intent classification and entity extraction for reminders.
- Enhanced the natural language processing service to support new entity types for database operations, notifications, and email automation.
- Updated workflow generation logic to include Slack and database operations, ensuring proper handling of notifications and messages.
- Expanded entity extraction to cover additional notification types and channels for improved integration capabilities.
2025-10-24 00:42:32 -04:00
Nikhil-Doye 1efe6db5a2 Enhance README.md with improved formatting and content updates
- Updated the introduction to highlight the AI workflow builder's capabilities.
- Enhanced feature sections with icons and clearer descriptions for better readability.
- Added new sections for workflow management, execution, testing, and advanced features with corresponding icons.
- Improved quick start instructions and added visual elements for clarity.
- Included example workflows with icons to illustrate use cases.
- Updated troubleshooting and support sections for better user guidance.
2025-10-23 17:15:47 -04:00
Nikhil-Doye 408ab9b1e2 Remove Slack integration components, including SlackWizard, SlackNode, slackProcessor, SlackService, and related configurations, to streamline the codebase. 2025-10-23 17:02:26 -04:00
Nikhil-Doye 63de59f957 Add Gmail integration configuration fields to NodeConfiguration
- Introduced detailed configuration fields for Gmail integration, including access token, operation type, recipient, subject, body, message ID, and search query.
- Enhanced user experience by providing tailored input options for various Gmail operations, supporting send, read, reply, forward, draft, label, search, and attachment functionalities.
2025-10-23 17:00:17 -04:00
Nikhil-Doye b6226cb1a8 Update labelData type in GmailService for improved type safety 2025-10-23 16:50:01 -04:00
Nikhil-Doye 3b095dbafe Add Gmail integration support across components
- Introduced Gmail integration in ConfigurationWizard with a new wizard step for Gmail operations.
- Updated NodeLibrary to include Gmail as a node type with associated color coding.
- Enhanced BaseNode to represent Gmail with an appropriate icon.
- Configured nodeTypeConfigs for Gmail with detailed descriptions and common use cases.
- Added Gmail-specific fields in fieldConfigs for operation configuration.
- Implemented GmailService and gmailProcessor for handling various Gmail operations, including sending, reading, and managing emails.
- Created GmailNode component for visualizing Gmail operation details, including status and configuration.
- Developed GmailWizard component for configuring Gmail operations with dynamic form fields based on selected operation type.
- Updated ProcessorRegistry to recognize Gmail-related patterns for improved operation handling.
2025-10-23 16:49:04 -04:00
Nikhil-Doye 0756db7e0e Add 'discord' node type to NodeLibrary for integration support 2025-10-23 16:37:54 -04:00
Nikhil-Doye 72918c1ad7 Add Discord integration support across components
- Introduced a new 'discord' entry in the ConfigurationWizard for Discord integration setup.
- Updated NodeLibrary to include Discord as a node type with associated color coding.
- Enhanced BaseNode with Discord icon representation.
- Configured nodeTypeConfigs for Discord with detailed descriptions and common use cases.
- Added connection suggestions for Discord nodes to facilitate integration patterns.
- Implemented DiscordService and discordProcessor for handling various Discord operations, including sending messages, managing channels, and user interactions.
- Created DiscordWizard component for configuring Discord operations with dynamic form fields based on selected operation type.
- Added DiscordNode component for visualizing Discord operation details, including status and configuration.
2025-10-23 16:31:39 -04:00
Nikhil-Doye 24f687191f Enhance FieldWithHelp and NodeConfiguration components with nodeType support
- Added nodeType prop to FieldWithHelp for dynamic field configuration based on node type.
- Updated getFieldConfig function to retrieve node-specific field configurations.
- Integrated nodeType in NodeConfiguration to pass relevant type to input fields, improving flexibility for different operations.
2025-10-23 16:03:14 -04:00
Nikhil-Doye 80f7d2f600 Add Slack integration configuration fields to NodeConfiguration
- Introduced configuration fields for Slack integration, including bot token, operation type, channel, message text, and user ID.
- Enhanced user experience by providing tailored input options for various Slack operations.
2025-10-23 15:56:01 -04:00
Nikhil-Doye 096a87ece0 Enhance WorkflowEditor performance and clean up connectionSuggestions
- Utilized useMemo in WorkflowEditor to optimize node retrieval based on currentWorkflow.
- Removed unused cycle detection logic from connectionSuggestions to streamline the codebase.
2025-10-23 15:54:03 -04:00
Nikhil-Doye b194addd76 Refactor WorkflowEditor and connection suggestion logic; add SlackNode export
- Removed unused connection handling functions from WorkflowEditor to streamline the component.
- Updated connectionSuggestions to improve cycle detection with a new hasCycleWithEdges function.
- Exported SlackNode from the nodes index for enhanced integration with Slack operations.
2025-10-23 15:26:23 -04:00
Nikhil-Doye 62d0398a50 Add Slack integration support in WorkflowEditor and execution engine
- Updated WorkflowEditor to include SlackNode in node types for enhanced workflow visualization.
- Modified executionEngine to support Slack operations by importing the slackProcessor.
- Enhanced ProcessorRegistry to recognize Slack-related patterns for improved operation handling.
2025-10-23 15:25:01 -04:00
Nikhil-Doye 5ca121b2ab Add SlackWizard component for configuring Slack operations
- Introduced SlackWizard component to facilitate the configuration of various Slack operations, including sending messages, managing channels, and setting reminders.
- Implemented dynamic form fields based on selected operation type, enhancing user experience with tailored input options.
- Added state management for operation selection and configuration updates, ensuring real-time feedback and validation.
2025-10-23 15:10:22 -04:00
Nikhil-Doye 4136930cb5 Add SlackNode component for enhanced Slack operation visualization
- Introduced SlackNode component to display Slack operation details, including status, configuration, and relevant metadata.
- Implemented dynamic rendering of operation icons and labels based on the selected Slack operation type.
- Enhanced user experience with status indicators and error displays for better feedback on operation outcomes.
2025-10-23 15:08:47 -04:00
Nikhil-Doye 578456b8de Add slackProcessor function for handling Slack operations
- Implemented slackProcessor to validate Slack configuration and execute operations using SlackService.
- Added error handling for configuration validation and operation execution to ensure robust integration.
- Standardized response format for successful operations, including relevant metadata.
2025-10-23 15:07:35 -04:00
Nikhil-Doye e518a70d37 Add SlackService class to handle various Slack operations
- Implemented SlackService to manage Slack API interactions, including sending messages, managing channels, user operations, file uploads, reactions, and reminders.
- Added error handling and configuration validation for each operation to ensure robust integration with Slack.
- Introduced a makeRequest method for streamlined API calls to the Slack endpoint.
2025-10-23 15:07:03 -04:00
Nikhil-Doye 315e01cf12 Add Slack integration support across components
- Introduced a new 'slack' entry in the ConfigurationWizard for Slack integration setup.
- Updated NodeLibrary to include Slack as a node type with associated color coding.
- Enhanced BaseNode with Slack icon representation.
- Configured nodeTypeConfigs for Slack with detailed descriptions and common use cases.
- Added connection suggestions for Slack nodes to facilitate integration patterns.
2025-10-23 15:05:40 -04:00
Nikhil-Doye 800328f166 Add Slack integration types and update NodeType for enhanced functionality
- Introduced a new 'slack' entry in NodeType to support Slack operations.
- Added SlackOperation type and SlackConfig interface to define various Slack operations and their configurations, enhancing integration capabilities.
2025-10-23 15:04:05 -04:00
Nikhil-Doye fde48770f1 Enhance NodeConfiguration with step property and format options for improved readability
- Added a new 'step' property to the FieldConfig interface for better configuration of numeric fields.
- Reformatted the options array in the operation configuration for improved readability and maintainability.
2025-10-23 14:52:20 -04:00
Nikhil-Doye 635a33845b Remove unused icon imports from BaseNode component for cleaner code 2025-10-23 14:51:32 -04:00
Nikhil-Doye 46251f166a Refactor NodeConfiguration to enhance database operation handling
- Introduced a new FieldConfig interface for better type safety and clarity in field definitions.
- Consolidated database operation configurations under a single "database" entry, streamlining the configuration process.
- Updated field labels and placeholders to improve user guidance and consistency across database operations.
2025-10-23 14:51:08 -04:00
Nikhil-Doye d71ceeac4b Add Trash2 icon to UnifiedDatabaseNode for enhanced operation options 2025-10-23 14:50:33 -04:00
Nikhil-Doye 6f824e22ed Refactor UnifiedDatabaseNode operation icons for improved readability
- Updated the operationIcons definition in UnifiedDatabaseNode to enhance code clarity by formatting the type declaration across multiple lines.
- Simplified the ProcessorRegistry by consolidating database operation types into a single "database" entry, streamlining the configuration for database-related tasks.
2025-10-23 14:49:55 -04:00
Nikhil-Doye 6958653a75 Remove unused imports from UnifiedDatabaseNode and UnifiedDatabaseService for cleaner code 2025-10-23 14:49:31 -04:00
Nikhil-Doye 077b4dcc45 Refactor database node configuration to unify database operations
- Consolidated individual database operation types (query, insert, update, delete) into a single "database" entry for improved clarity and maintainability.
- Updated connection suggestions and common patterns to reflect the new unified structure, enhancing the overall configuration of database nodes.
2025-10-23 14:49:13 -04:00
Nikhil-Doye c849e7e4d8 Consolidate database operation types in NodeLibrary component
- Unified individual database operation types (query, insert, update, delete) into a single "database" entry for improved clarity and maintainability.
- Updated associated color mappings to reflect this consolidation, enhancing the overall structure of the NodeLibrary component.
2025-10-23 14:48:54 -04:00