* wip: mcp select
* refactor: Update useAvailableToolsQuery to support generic data types
* feat: Enhance MCPSelect to dynamically load server options and improve MultiSelect component styling
* WIP: ephemeral agents
* wip: Add null check for MCPSelect and improve MultiSelect focus handling
* feat: Pass conversationId prop to MCPSelect in BadgeRow to optimize badge rendering
* feat: useApplyNewAgentTemplate hook to manage ephemeral agent upon conversation creation
* WIP: eph. agent payload
* refactor(OpenAIClient): streamline message processing by replacing content handling with parseTextParts function
* feat: enhance applyAgentTemplate function to accept source conversation ID for improved template application
* feat(parsers): add skipReasoning parameter to parseTextParts for conditional reasoning handling
* WIP: first pass, ephemeral agent backend processing
* chore: import order
* feat: update loadEphemeralAgent and loadAgent functions to accept model_parameters for enhanced agent configuration
* feat: add showMCPServers prop to BadgeRow for conditional rendering of MCPSelect, fix react rule violation
* feat: enhance MCPSelect with localized placeholder and custom icon, add renderSelectedValues callback
* feat: simplify message processing in AnthropicClient by replacing content handling with parseTextParts function
* feat: implement useLocalStorage hook for managing MCP values and update MCPSelect to utilize it
* chore: remove chatGPTBrowserSchema from endpoint schemas and update types for improved schema management
* chore: remove compactChatGPTSchema from endpoint schemas and update types for better schema management
* refactor: rename schemas for clarity and improve schema management
* feat: extend model detection to include 'codestral' alongside 'mistral'
* feat: add endpointType parameter to buildOptions and initializeClient functions
* fix: update condition for handling completion in BaseClient to include agents client
* refactor: simplify payload parsing logic in AgentClient and remove unused providerParsers
* refactor: change useSetRecoilState to useRecoilState for better state management in MCPSelect component
* refactor: streamline chat route handlers by consolidating middleware and improving endpoint structure
* style: update MCPSelect and MultiSelect components for improved layout in mobile view
* v0.7.790
* feat: add getMessageMapMethod to process message text and content in GoogleClient
* chore: include LAST_MCP_ key prefix in clearLocalStorage function for proper teardown on logout
* 📝 fix: Update translation for shared agent message in English locale
* 🪺 fix: Migrate role schema to new nested structure and update permissions handling where missed
* chore: bump @librechat/agents and related packages
* refactor: update message state for tool calls run step, in case no tool call chunks are received
* fix: avoid combining finalized args createContentAggregator for tool calls
* chore: bump @librechat/agents to version 2.3.99
* feat: add support for aborting flows with AbortSignal in createFlow methods
* fix: improve handling of tool call arguments in useStepHandler
* chore: bump @librechat/agents to version 2.4.0
* fix: update flow identifier format for OAuth login in createActionTool to allow uniqueness per run
* fix: improve error message handling for aborted flows in FlowStateManager
* refactor: allow possible multi-agent cross-over for oauth login
* fix: add type safety for Sandpack files in ArtifactCodeEditor
* 🔧 chore: Update caniuse-lite dependency to version 1.0.30001706 in package.json and package-lock.json
* 🔧 chore: Remove caniuse-lite dependency from package.json and package-lock.json
* 🏗️ feat: Add Group model and schema with GroupType enum
* 🏗️ feat: Introduce Permissions module and refactor role-based access control
* 🏗️ feat: Refactor permissions handling and consolidate permission schemas
* 🏗️ feat: Refactor role permissions handling and improve role initialization logic
* 🏗️ feat: Update Role.spec.js to improve imports and enhance test structure
* 🏗️ feat: Update access control logic to ensure proper permission checks in role handling
* 🏗️ chore: Bump versions for librechat-data-provider to 0.7.75 and @librechat/data-schemas to 0.0.6
* 🏗️ feat: Improve role permissions handling by ensuring defaults are applied correctly
* 🏗️ feat: Update role permissions schema to comment out unused SHARE permission
* 🏗️ chore: Bump version of librechat-data-provider to 0.7.77 and remove unused groups field from IUser interface
* 🏗️ chore: Downgrade version of librechat-data-provider to 0.7.76
* 🔧 chore: Bump versions for librechat-data-provider to 0.7.77 and data-schemas to 0.0.6
* 🏗️ chore: Update version of librechat-data-provider to 0.7.789
---------
Co-authored-by: Danny Avila <danny@librechat.ai>
* 🔧 feat: Add configurable S3 URL refresh expiry time
* fix: Set default width and height for URLIcon component in case container style results in NaN
* refactor: Enhance auto-save functionality with debounced restore methods
* feat: Add support for additionalProperties in JSON schema conversion to Zod
* test: Add tests for additionalProperties handling in JSON schema to Zod conversion
* chore: Reorder import statements for better readability in ask route
* fix: Handle additional successful response status code (200) in SSE error handler
* fix: add missing rate limiting middleware for bedrock and agent chat routes
* fix: update moderation middleware to check feature flag before processing requests
* fix: add moderation middleware to chat routes for text moderation
* Revert "refactor: Enhance auto-save functionality with debounced restore methods"
This reverts commit d2e4134d1f.
* refactor: Move base64 encoding/decoding functions to top-level scope and optimize input handling
* fix: Ensure safe access to agent capabilities in AgentConfig
* fix: don't show agent builder if agents endpoint is not enabled
* fix: Improve error logging for MCP tool calls
* fix: Enhance error message for MCP tool failures
* feat: Add optional spec and iconURL properties to TEndpointOption type
* chore: Update condition to use constant for new conversation parameter
* feat: Enhance abort error handling with additional endpoint options to properly render error message fields
* fix: Throw error instead of returning message for failed MCP tool calls
* refactor: separate logic to generate new S3 URLs for expired links
* feat: Implement S3 URL refresh for user avatars with error handling
* fix: authcontext error in chats where agent chain is used
* refactor: streamline balance configuration logic in getBalanceConfig function
* fix: enhance icon resolution logic in SpecIcon component
* fix: allow null values for spec and iconURL in TEndpointOption type
* fix: update balance check to allow null tokenCredits
* fix: Implement optimistic concurrency control for balance updates in Transaction model to allow for documentdb compatibility
* test: Add concurrent balance increase test for auto refill transactions
* chore: Add deprecation warnings for environment variables in checks
* chore: Change deprecatedVariables to a const declaration in checks.js
* fix: Add date validation in checkBalanceRecord to prevent invalid date errors
* feat: Add setBalanceConfig middleware to synchronize user balance settings
* chore: Reorder middleware imports in oauth.js for better readability
* 🔧 refactor: Remove modelSpecs prop from ModelSelector and related components
* fix: Update submission.conversationId references in SSE hooks and data types as was incorrectly typed
* feat: Allow showing specific endpoints alongside model specs via `addedEndpoints` field
* feat: allowed agents providers via `agents.allowedProviders` field
* fix: bump dicebear/sharp dependencies to resolve CVE-2024-12905 and improve avatar gen logic
* fix: rename variable for clarity in loadDefaultInterface function
* fix: add keepAddedConvos option to newConversation calls for modular chat support
* fix: include model information in endpoint selection for improved context
* fix: update data-provider version to 0.7.78 and increment config version to 1.2.4
* 🚀 feat: Add Temporary Chat feature with badge toggle functionality
* style: update header button
* fix: Integrate resetChatBadges functionality into useNewConvo hook following rules of react
* fix: Adjust margin logic in ChatForm for better layout handling on existing conversations
* fix: Refine margin logic in ChatForm to improve layout during message submission
* fix: Update TemporaryChat component to not render when message is submitting
---------
Co-authored-by: Danny Avila <danny@librechat.ai>
* 🚀 feat: Add Save Badges State functionality to chat settings
* 🚀 feat: Remove individual chat setting components and introduce a reusable ToggleSwitch component
* 🚀 feat: Replace Switches with reusable ToggleSwitch component in General settings; style: improved HoverCard
* 🚀 feat: Refactor ChatForm and Footer components for improved layout and state management
* 🚀 feat: Add deprecation warning for GPT Plugins endpoint
---------
Co-authored-by: Danny Avila <danny@librechat.ai>
* 🔧 fix: Update file source references to include 'azure_blob' for correct service initialization
* 🔧 fix: Add Azure Blob Storage Emulator entries to .gitignore
* fix: Update file source references to include 'azure_blob' for correct service initialization
* fix: Refactor Azure Blob Storage functions to use environment variables for access control and container name, fix deletion improper logging and improper params
* fix: Add basePath determination for agent file uploads based on MIME type
* fix: Implement file streaming to Azure Blob Storage to optimize memory usage during uploads (non-images)
* fix: Update SourceIcon to include 'azure_blob' class and adjust model setting in useSelectorEffects for assistants
* chore: import order
---------
Co-authored-by: Danny Avila <danny@librechat.ai>
* style: reduce gap in Message and Content Render components
* style: adjust padding and font size in Chat components for improved layout
* feat: personalize greeting message with user name in Landing component
* feat: first pass, multi-user connections
* 🔧 refactor: Enhance MCPConnection logging with user-specific prefixes
* 🔧 chore: Update @modelcontextprotocol/sdk dependency to version 1.8.0
* feat: idle timeout for user mcp connections
* chore: increase user connection idle timeout to 15 minutes
* feat: implement graceful shutdown for MCP servers on termination signal
* feat: implement user idle timeout management and last activity tracking
* feat: enhance MCP options to support custom headers and user ID in environment variable processing
* feat: update user last activity tracking in MCPManager
* refactor: remove default OpenRouter completions URL from OpenAIClient
* refactor: simplify log messages by removing redundant 'App' prefix in MCPManager
* refactor: show Agents Builder even if not using Agents endpoint
* refactor: remove redundant 'App' prefix from disconnect error log messages in MCPManager
* refactor: remove 'App' prefix from log prefix in MCPConnection
* chore: remove unecessary comment
* fix: allow error propagation during MCPManager initialization
* 🔧 fix: Update useTextToSpeechExternal to include loading state and improve text parsing logic
* fix: update msedge-tts and prevent excessive initialization attempts
* fix: Refactor text parsing logic in mongoMeili model to use parseTextParts function
* 🔧 fix: Resolve Mistral type strictness for OpenAI usage field
* chore: Enable usage tracking for Mistral endpoint in OpenAI configuration
* chore: Add new token values and context windows for latest premier Mistral models
* 🎨 style: Adjust isSelected svg layout of ModelSpecItem
* style: fix modelSpec URL image beeing off-center; style: selected svg centered vertically
* style: Update CustomMenu component to use rounded-lg and enhance focus styles
* style: SidePanel top padding same as NewChat
* fix: prevent unnecessary space rendering in SplitText component
* style: Fix class names and enhance layout in Badge components
* feat: disable temporary chat when in chat
* style: handle > 1 lines in title Landing
* feat: enhance dynamic margin calculation based on line count and content height in Landing component
* 🔧 feat: Enhance logging configuration for production and debug environments
* 🔒 feat: Implement encryption and decryption functions for sensitive values in ActionService with URL encoding/decoding
* refactor: optimize action service for agent tools
* refactor: optimize action processing for Assistants API
* fix: handle case where agent is not found in loadAgent function
* refactor: improve error handling in API calls by throwing new Error with logAxiosError output
* chore: bump @librechat/agents to 2.3.95, fixes "Invalid tool call structure: No preceding AIMessage with tool_call_ids"
* refactor: enhance error logging in logAxiosError function to include response status
* refactor: remove unused useModelSelection hook from Endpoint
* refactor: add support for assistants in useSelectorEffects hook
* refactor: replace string easing with imported easings in Landing component
* chore: remove duplicate translation
* refactor: update model selection logic and improve localization for UI elements
* refactor: replace endpoint value checks with helper functions for agents and assistants
* refactor: optimize display value logic and utilize useMemo for performance improvements
* refactor: clean up imports and optimize display/icon value logic in endpoint components, fix spec selection
* refactor: enhance error logging in axios utility to include stack traces for better debugging
* refactor: update logging configuration to use DEBUG_LOGGING and streamline log level handling
* refactor: adjust className for export menu button to improve layout consistency and remove unused title prop from ShareButton
* refactor: update import path for logAxiosError utility to improve module organization and clarity
* refactor: implement debounced search value setter in ModelSelectorContext for improved performance
* 🔧 fix: Update compression plugin to version 2 and adjust configuration
* 🔧 fix: Adjust compression plugin configuration to set threshold to 10240
* 🔧 fix: Update vite-plugin-node-polyfills to version 0.23.0 and add external polyfills in configuration
* 🔧 fix: Downgrade vite-plugin-node-polyfills to version 0.17.0 and remove external polyfills from configuration
* 🔧 fix: Update vite-plugin-node-polyfills to version 0.23.0 and remove outdated version from package.json
* 🔧 fix: Update vite-plugin-node-polyfills to version 0.23.0 and remove outdated version from package.json
* chore: fix vite-plugin-node-polyfills workspace installation
---------
Co-authored-by: Danny Avila <danny@librechat.ai>
* ✨ feat: Add Expand Chat functionality and improve UI components
* ✨ feat: Introduce Chat Badges feature with editing capabilities and UI enhancements
* ✨ feat: re-implement file attachment functionality with new components and improved UI
* ✨ feat: Enhance BadgeRow component with drag-and-drop functionality and add animations for better user experience
* ✨ feat: Add useChatBadges hook and enhance Badge component with animations and toggle functionality
* feat: Improve Add/Delete Badges + style and bug fixes
* ✨ feat: Refactor EditBadges component and optimize useChatBadges hook for improved performance and readability
* ✨ feat: Add type definition for LucideIcon in EditBadges component
* refactor: Clean up BadgeRow component by removing outdated comment and improving code readability
* refactor: Rename app-icon class to badge-icon for consistency and improve badge styling
* feat: Add Center Chat Input toggle and update related components for improved UI/UX
* refactor: Simplify ChatView and MessagesView components for improved readability and performance
* refactor: Improve layout and positioning of scroll button in MessagesView component
* refactor: Adjust scroll button position in MessagesView component for better visibility
* refactor: Remove redundant background class from Badge component for cleaner styling
* feat: disable chat badges
* refactor: adjust positioning of scroll button and popover for improved layout
* refactor: simplify class names in ChatForm and RemoveFile components for cleaner code
* refactor: move Switcher to HeaderOptions from SidePanel
* fix(Landing): duplicate description
* feat: add SplitText component for animated text display and update Landing component to use it
* feat(Chat): add ConversationStarters component and integrate it into ChatView; remove ConvoStarter component
* feat(Chat): enhance Message component layout and styling for improved readability
* feat(ControlCombobox, Select): enhance styling and add animation for improved UI experience
* feat(Chat): update Header and HeaderNewChat components for improved layout and styling
* feat(Chat): add ModelDropdown (now includes both endpoint and model) and refactor Menu components for improved UI
* feat(ModelDropdown): add Agent Select; removed old AgentSwitcher components
* feat(ModelDropdown): add settings button for user key configuration
* fix(ModelDropdown): the model dropdown wasn't opening automatically when opening the endpoint one
* refactor(Chat): remove unused EndpointsMenu and related components to streamline codebase
* feat: enhance greeting message and improve accessibility fro ModelDropdown
* refactor(Endpoints): add new hooks and components for endpoint management
* feat(Endpoint): add support for modelSpecs
* feat(Endpoints): add mobile support
* fix: type issues
* fix(modelSpec): type issue
* fix(EndpointMenuDropdown): double overflow scroller in mobile model list
* fix: search model on mobile
* refactor: Endpoint/Model/modelSpec dropdown
* refactor: reorganize imports in Endpoint components
* refactor: remove unused translation keys from English locale
* BREAKING: moving to ariakit with new CustomMenu
* refactor: remove unnecessary comments
* refactor: remove EndpointItem, ModelDropdownButton, SpecIcon, and SpecItem components
* 🔧 fix: AI Icon bump when regenerating message
* wip: chat UI refactoring, fix issues
* chore: add recent update to useAutoSave
* feat: add access control for agent permissions in useMentions hook
* refactor: streamline ModelSelector by removing unused endpoints logic
* refactor: enhance ModelSelector and context by integrating endpointsConfig and improving type usage
* feat: update ModelSelectorContext to utilize conversation data for initial state
* feat: add selector effects for synced endpoint handling
* feat: add guard clause for conversation endpoint in useSelectorEffects hook
* fix: safely call onSelectMention and add autofocus to mention input
* chore: typing
* refactor: ModelSelector to streamline key dialog handling and improve endpoint rendering
* refactor: extract SettingsButton component for cleaner endpoint item rendering
* wip: first pass, expand set api key
* wip: first pass, expanding set key
* refactor: update EndpointItem styles for improved layout and hover effects
* refactor: adjust padding in EndpointItem for improved layout consistency
* refactor: update preset structure in useSelectMention to include spec as null
* refactor: rename setKeyDialogOpen to onOpenChange for clarity and consistency, bring focus back to button that opened dialog
* feat: add SpecIcon component for dynamic model spec icons in menu, adjust icon styling
* refactor: update getSelectedIcon to accept additional parameters and improve icon rendering logic
* fix: adjust padding in MessageRender for improved layout
* refactor: remove inline style for menu width in CustomMenu component
* refactor: enhance layout and styling in ModelSpecItem component for better responsiveness
* refactor: update getDefaultModelSpec to accept startupConfig and improve model spec retrieval logic
* refactor: improve key management and default values in ModelSelector and related components
* refactor: adjust menu width and improve responsiveness in CustomMenu and EndpointItem components
* refactor: enhance focus styles and responsiveness in EndpointItem component
* refactor: improve layout and spacing in Header and ModelSelector components for better responsiveness
* refactor: adjust button styles for consistency and improved layout in AddMultiConvo and PresetsMenu components
* fix: initial fix of assistant names
* fix: assistants handling
* chore: update version of librechat-data-provider to 0.7.75 and add 'spec' to excludedKeys
* fix: improve endpoint filtering logic based on interface configuration and access rights
* fix: remove unused HeaderOptions import and set spec to null in presets and mentions
* fix: ensure currentExample is always an object when updating examples
* fix: update interfaceConfig checks to ensure modelSelect is considered for rendering components
* fix: update model selection logic to consider interface configuration when prioritizing model specs
* fix: add missing localizations
* fix: remove unused agent and assistant selection translations
* fix: implement debounced state updates for selected values in useSelectorEffects
* style: minor style changes related to the ModelSelector
* fix: adjust maximum height for popover and set fixed height for model item
* fix: update placeholders for model and endpoint search inputs
* fix: refactor MessageRender and ContentRender components to better match each other
* fix: remove convo fallback for iconURL in MessageRender and ContentRender components
* fix: update handling of spec, iconURL, and modelLabel in conversation presets, to allow better interchangeability
* fix: replace chatGptLabel with modelLabel in OpenAI settings configuration (fully deprecate chatGptLabel)
* fix: remove console log for assistantNames in useEndpoints hook
* refactor: add cleanInput and cleanOutput options to default conversation handling
* chore: update bun.lockb
* fix: set default value for showIconInHeader in getSelectedIcon function
* refactor: enhance error handling in message processing when latest message has existing content blocks
* chore: allow import/no-cycle for messages
* fix: adjust flex properties in BookmarkMenu for better layout
* feat: support both 'prompt' and 'q' as query parameters in useQueryParams hook
* feat: re-enable Badges components
* refactor: disable edit badge component
* chore: rename assistantMap to assistantsMap for consistency
* chore: rename assistantMap to assistantsMap for consistency in Mention component
* feat: set staleTime for various queries to improve data freshness
* feat: add spec field to tQueryParamsSchema for model specification
* feat: enhance useQueryParams to handle model specs
---------
Co-authored-by: Danny Avila <danny@librechat.ai>
* refactor: remove legacy max_tokens setting for vision models in OpenAIClient (intended for gpt-4-preview)
* refactor: streamline capability checks in loadAgentTools function, still allow actions if tools are disabled
* fix: enhance error handling for token limits in AnthropicClient and update error message in translations
* feat: append timestamp to cloned agent names for better identification
* chore: update @librechat/agents dependency to version 2.3.94
* refactor: remove clearDraft helper from useSubmitMessage and centralize draft clearing logic to SSE handling, helps prevent user message loss if logout occurs
* refactor: increase debounce time for clearDraft function to improve auto-save performance
* 🏗️ refactor: Improve spendTokens logic to handle zero completion tokens and enhance test coverage
* 🏗️ test: Add tests to ensure balance does not go below zero when spending tokens
* 🏗️ fix: Ensure proper continuation in AgentClient when handling errors
* fix: spend token race conditions
* 🏗️ test: Add test for handling multiple concurrent transactions with high balance
* fix: Handle Omni models prompt prefix handling for user messages with array content in OpenAIClient
* refactor: Update checkBalance import paths to use new balanceMethods module
* refactor: Update checkBalance imports and implement updateBalance function for atomic balance updates
* fix: import from replace method
* feat: Add createAutoRefillTransaction method to handle non-balance updating transactions
* refactor: Move auto-refill logic to balanceMethods and enhance checkBalance functionality
* feat: Implement logging for auto-refill transactions in balance checks
* refactor: Remove logRefill calls from multiple client and handler files
* refactor: Move balance checking and auto-refill logic to balanceMethods for improved structure
* refactor: Simplify balance check calls by removing unnecessary balanceRecord assignments
* fix: Prevent negative rawAmount in spendTokens when promptTokens is zero
* fix: Update balanceMethods to use Balance model for findOneAndUpdate
* chore: import order
* refactor: remove unused txMethods file to streamline codebase
* feat: enhance updateBalance and createAutoRefillTransaction methods to support additional parameters for improved balance management