Without this, it's not possible to run any MCPs that use python, only node.
So, add these to enable using things that use `uvx` similar to what
the documentation already talks about for `npx`.
* fix: Update Gemini 2.5 Pro Preview Model Name in Token Values
* refactor: Update DeleteButton to close menu when deletion is successful
* refactor: Add unmountOnHide prop to DropdownPopup in multiple components
* chore: linting
* chore: linting
* feat: Add `chatMenu` option for MCP Servers to control visibility in MCPSelect dropdown
* refactor: Update loadManifestTools to return combined tool manifest with MCP tools first
* chore: remove deprecated openapi plugins
* chore: linting
* chore(AgentClient): linting, remove unnecessary `checkVisionRequest` logger
* refactor(AuthService): change logoutUser logging from error to debug level
* chore: new Gemini models token values and rates
* chore(AskController): linting
* 🔄 fix: Include usage in stream options for OpenAI and Azure endpoints
* fix: Agents support for Azure serverless endpoints
* fix: Refactor condition for assistants and azureAssistants endpoint handling
* AWS Titan via Bedrock: model doesn't support system messages, Closes#6456
* fix: Add EndpointSchemaKey type to endpoint parameters in buildDefaultConvo and ensure assistantId is always defined
* fix: Handle new conversation state for assistants endpoint in finalHandler
* fix: Add spec and iconURL parameters to `saveAssistantMessage` to persist modelSpec fields
* fix: Handle assistant unlinking even if no valid files to delete
* chore: move type definitions from callbacks.js to typedefs.js
* chore: Add StandardGraph typedef to typedefs.js
* chore: Update parameter type for graph in ModelEndHandler to StandardGraph
---------
Co-authored-by: Andres Restrepo <andres@enric.ai>
This pull request updates the GOOGLE_MODELS and GOOGLE_TITLE_MODEL examples in the .env.example file to reflect the currently available models on Google AI Studio (Gemini API) and Vertex AI.
Many of the models previously listed in the example file have since been deprecated or are no longer the primary recommended versions. This discrepancy could lead to confusion for new users setting up the project, potentially causing them to select non-functional or outdated model identifiers, resulting in errors or suboptimal performance.
The changes in this PR ensure that:
- The model lists for both Gemini API (AI Studio) and Vertex AI are synchronized with the current offerings.
- New users have a more accurate and reliable starting point when configuring their environment.
- The likelihood of encountering issues due to deprecated model names during initial setup is significantly reduced.
* feat: expose additional Tavily API parameters for tool
The following parameters are part of Tavily API but were previously not exposed for agents to use via the tool. Now they are. The source documentation is here: https://docs.tavily.com/documentation/api-reference/endpoint/search
include_raw_content - returns the full text of found web pages (default is false)
include_domains - limit search to this list of domains (default is none)
exclude_domains - exclude this list of domains form search (default is none)
topic - enum of "general", "news", or "finance" (default is "general")
time_range - enum of "day", "week", "month", or "year" (default unlimited)
days - number of days to search (default is 7, but only applicable to topic == "news")
include_image_descriptions - include a description of the image in the search results (default is false)
It is a little odd that they have both time_range and days, but there it is.
I have noticed that this change requires a little bit of care in prompting to make sure that it doesn't use "news" when you wanted "general". I've attemtped to hint that in the tool description.
* correct lint error
* more lint
---------
Co-authored-by: Michael Natkin <michaeln@glowforge.com>
* Fix: Prevent side effects in `processMCPEnv` by deep cloning MCPOptions
The `processMCPEnv` function was modifying the original `MCPOptions` object, leading to unintended side effects where `LIBRECHAT_USER_ID` could be incorrectly shared across different users. This commit addresses this issue by performing a deep clone of the `MCPOptions` object before processing, ensuring that modifications are isolated and do not affect other users.
* ci: Add tests for processMCPEnv to ensure deep cloning, user ID isolation and environment variable processing
---------
Co-authored-by: Alex C <viennadd@users.noreply.github.com>
* refactor: add custom to as workaround to include custom headers to the initial connection request
* chore: bump MCP client version to 1.2.1 in package-lock and package.json for librechat-mcp
* fix: no system message only for o1-preview and o1-mini
* chore(OpenAIClient): linting
* fix: update regex to include o1-preview and o1-mini in noSystemModelRegex
* refactor: rename variable for consistency with AgentClient
---------
Co-authored-by: Andres <9771158+andresgit@users.noreply.github.com>
* refactor: Enhance initial conversation query condition for better state management and prevent unused network requests
* ifx: Add Prettier plugin to ESLint configuration
* chore: linting and typing in convos.spec.ts
* fix: add back fresh data fetching and improve error handling for conversation navigation
* fix: set conversation only with conversation state change intent, to prevent double queries for messages
* 🔄 chore: Update @langchain/google-vertexai to version 0.2.5 in package.json and package-lock.json
* chore: temp remove agents
* 🔄 chore: Update @langchain/google-genai to version 0.2.5 in package.json and package-lock.json
* 🔄 chore: Update @langchain/community to version 0.3.42 in package.json and package-lock.json
* 🔄 chore: Add license information for @langchain/textsplitters in package-lock.json
* 🔄 chore: Update @langchain/core to version 0.3.51 in package.json and package-lock.json
* 🔄 chore: Update openai dependency to version 4.96.2 in package.json and package-lock.json
* chore: @librechat/agents to v2.4.30
* fix: streaming condition in ModelEndHandler to account for boundModel `disableStreaming` setting
* fix: update regex for noSystemModel and refactor message handling in AgentClient
* feat: Google Gemma models
* chore: remove unnecessary empty JSX fragment in PopoverButtons component
* 🔄 chore: bump supertest to 7.1.0, resolves CVE-2025-46653
* 🔄 chore: update vite to version 6.3.4 and add fdir, picomatch, and tinyglobby as dev dependencies
* 🔄 chore: npm audit fix: remove unused dependencies fdir, picomatch, and tinyglobby from package-lock.json
* fix: Reset artifacts on unmount and remove useIdChangeEffect hook
* feat: Replace SVG icons with Lucide icons for improved consistency
* fix: Refactor artifact reset logic on unmount and conversation change
* refactor: Rename artifactsVisible to artifactsVisibility for consistency
* feat: Replace custom SVG icons with Lucide icons for improved consistency
* feat: Add visibleArtifacts atom for managing visibility state
* feat: Implement debounced visibility state management for artifacts
* refactor: Add useIdChangeEffect hook to reset visible artifacts on conversation ID change
* refactor: Remove unnecessary dependency from useMemo in TextPart component
* refactor: Enhance artifact visibility management by incorporating location checks for search path
* refactor: Improve transition effects for artifact visibility in Artifacts component
* chore: Remove preprocessCodeArtifacts function and related tests
* fix: Update regex for detecting enclosed artifacts in latest message
* refactor: Update artifact visibility checks to be more generic (not just search)
* chore: Enhance artifact visibility logging
* refactor: Extract closeArtifacts function to improve button click handling
* refactor: remove nested logic from use artifacts effect
* refactor: Update regex for detecting enclosed artifacts to handle new line variations
* refactor: Replace Popover with Ariakit components for improved accessibility and UX
* wip: first pass, fork a11y
* feat(i18n): Add localization for fork options and related UI elements
* fix: Ensure Dropdown component has correct z-index for proper layering
* style: Update Fork PopoverButton styles and remove unused sideOffset prop
* style: Update text colors and spacing in Fork component for improved readability
* style: Enhance Fork component's UI by adding select-none class to prevent text selection
* chore: Remove unused Checkbox import from Fork component
* fix: Add sr-only span for accessibility in SplitText component
* chore: Reorder imports in Fork component for better organization
* refactor: Update schema conversion to allow nullable optional fields
* feat: Add support for 'Deepseek' model in response sender logic
* fix: Normalize endpoint case for legacy content handling in AgentClient (fixes `deepseek-chat` followup issues)
* wip: Add Instructions component for agent configuration
* ✨ feat: Implement DropdownPopup for variable insertion in instructions
* refactor: Enhance variable handling by exporting specialVariables and updating Markdown components
* feat: Add special variable support for current date and user in Instructions component
* refactor: Update handleAddVariable to include localized label
* feat: replace special variables in instructions presets
* chore: update parameter type for user in getListAgents function
* refactor: integrate dayjs for date handling and move replaceSpecialVars function to data-provider
* feat: enhance replaceSpecialVars to include day number in current date format
* feat: integrate replaceSpecialVars for processing agent instructions
* feat: add support for current date & time in replaceSpecialVars function
* feat: add iso_datetime support in replaceSpecialVars function
* fix: enforce text parameter to be a required field in replaceSpecialVars function
* feat: add ISO datetime support in translation file
* fix: disable eslint warning for autoFocus in TextareaAutosize component
* feat: add VariablesDropdown component and integrate it into CreatePromptForm and PromptEditor; update translation for special variables
* fix: CategorySelector and related localizations
* fix: add z-index class to LanguageSTTDropdown for proper stacking context
* fix: add max-height and overflow styles to OGDialogContent in VariableDialog and PreviewPrompt components
* fix: update variable detection logic to exclude special variables and improve regex matching
* fix: improve accessibility text for actions menu in ChatGroupItem component
* fix: adjust max-width and height styles for dialog components and improve markdown rendering for light vs. dark, height/widths, etc.
* fix: remove commented-out code for better readability in PromptVariableGfm component
* fix: handle undefined input parameter in setParams function call
* fix: update variable label types to use TSpecialVarLabel for consistency
* fix: remove outdated information from special variables description in translation file
* fix: enhance unused i18next keys detection for special variable keys
* fix: update color classes for consistency/a11y in category and prompt variable components
* fix: update PromptVariableGfm component and special variable styles for consistency
* fix: improve variable highlighting logic in VariableForm component
* fix: update background color classes for consistency in VariableForm component
* fix: add missing ref parameter to Dialog component in OriginalDialog
* refactor: move navigate call for new conversation to after setConversation update
* refactor: move message query hook to client workspace; fix: handle edge case for navigation from finalHandler creating race condition for response message DB save
* chore: bump librechat-data-provider to 0.7.793
* ci: add unit tests for replaceSpecialVars function
* fix: implement getToolkitKey function for image_gen_oai toolkit filtering/including
* ci: enhance dayjs mock for consistent date/time values in tests
* fix: MCP stdio server fail to start when passing env property
* fix: use optional chaining for clientRef dereferencing in AskController and EditController
feat: add context to saveMessage call in streamResponse utility
* fix: only save error messages if the userMessageId was initialized
* refactor: add isNotAppendable check to disable inputs in ChatForm and useTextarea
* feat: enhance error handling in useEventHandlers and update conversation state in useNewConvo
* refactor: prepend underscore to conversationId in newConversation template
* feat: log aborted conversations with minimal messages and use consistent conversationId generation
---------
Co-authored-by: Olivier Schiavo <olivier.schiavo@wengo.com>
Co-authored-by: aka012 <aka012@neowiz.com>
Co-authored-by: jiasheng <jiashengguo@outlook.com>
* chore: fix logging for illegal target endpoints in getEndpointFromSetup
* fix: prevent querying agent by ID for ephemeral agents
* refactor: reorder variable declarations in MessagesView for clarity
* fix: localize 'nothing found' message in MessagesView
* refactor: streamline navigation logic and enhance loading spinner component in ChatView
* refactor: simplify loading spinner logic in ChatView component
* fix: ensure message queries are invalidated after new conversation creation in HeaderNewChat, MobileNav, and NewChat components
* 🐛 First run dev mode will have error occur.
🐛 First run dev mode will have error occur.
* fix font-size localstorage presist bug
* Don't ping meilisearch if the search is disabled via env var
* simplify logic in search/enable endpoint
* refactor: simplify enable endpoint condition check
* feat: add useIdChangeEffect hook and integrate it into ChatRoute
---------
Co-authored-by: Ne0 <20765145+zeeklog@users.noreply.github.com>
Co-authored-by: TinyTin <garychangcn@hotmail.com>
Co-authored-by: Denis Palnitsky <denis.palnitsky@zendesk.com>
* refactor: improve ChatView layout by keeping ChatForm mounted
* feat: implement focusChat functionality for new conversations and navigations
* refactor: reset artifacts when navigating to prevent any from rendering in a conversation when none exist; edge case, artifacts get created by search route (TODO: use a different artifact renderer for Search markdown)
* chore: remove redundancy of useSetRecoilState and useRecoilValue with useRecoilState in SearchBar
* refactor: remove unnecessary focus effect on text area in ChatForm
* refactor: improve searchbar and clear search button accessibility
* fix: add tabIndex to Conversations component for improved accessibility, moves focus directly conversation items
* style: adjust margin in Header component for improved layout symmetry with Nav
* chore: imports order
* refactor: streamline model preset handling in conversation setup
* refactor: integrate navigation and location hooks in chat functions and event handlers, prevent cache from fetching on final event handling
* fix: prevent adding code interpreter non-image output to file list on message attachment event, fix all unhandled edge cases when this is done (treating the file download as an image attachment, undefined fields, message tokenCount issues, use of `startsWith` on undefined "text") although it is now prevent altogether
* chore: remove unused jailbreak prop from MinimalIcon component in EndpointIcon
* feat: add new SVG icons (MobileSidebar, Sidebar, XAIcon), fix: xAI styling in dark vs. light modes, adjust styling of Landing icons
* fix: open conversation in new tab on navigation with ctrl/meta key
* refactor: update Nav & Header to use close/open sidebar buttons, as well as redesign "New Chat"/"Bookmarks" buttons to the top of the Nav, matching the latest design of ChatGPT for simplicity and to free up space
* chore: remove unused isToggleHovering state and simplify opacity logic in Nav component
* style: match mobile nav to mobile header
* wip: OpenAI Image Generation Tool with customizable options
* WIP: First pass OpenAI Image Generation Tool and integrate into existing tools
* 🔀 fix: Comment out unused validation for image generation tool parameters
* 🔀 refactor: Update primeResources function parameters for better destructuring
* feat: Add image_edit resource to EToolResources and update AgentToolResources interface
* feat: Enhance file retrieval with tool resource filtering for image editing
* refactor: add OpenAI Image Tools for generation and editing, refactor related components, pass current request image attachments as tool resources for editing
* refactor: Remove commented-out code and clean up API key retrieval in createOpenAIImageTools function
* fix: show message attachments in shared links
* fix: Correct parent message retrieval logic for regenerated messages in useChatFunctions
* fix: Update primeResources to utilize requestFileSet for image file processing
* refactor: Improve description for image generation tool and clarify usage conditions, only provide edit tool if there are images available to edit
* chore: Update OpenAI Image Tools icon to use local asset
* refactor: Update image generation tool description and logic to prioritize editing tool when files are uploaded
* refactor: Enhance image tool descriptions to clarify usage conditions and note potential unavailability of uploaded images
* refactor: Update useAttachmentHandler to accept queryClient to update query cache with newly created file
* refactor: Add customizable descriptions and prompts for OpenAI image generation and editing tools
* chore: Update comments to use JSDoc style for better clarity and consistency
* refactor: Rename config variable to clientConfig for clarity and update signal handling in image generation
* refactor: Update axios request configuration to include derived signal and baseURL for improved request handling
* refactor: Update baseURL environment variable for OpenAI image generation tool configuration
* refactor: Enhance axios request configuration with conditional headers and improved clientConfig setup
* chore: Update comments for clarity and remove unnecessary lines in OpenAI image tools
* refactor: Update description for image generation without files to clarify user instructions
* refactor: Simplify target parent message logic for regeneration and resubmission cases
* chore: Remove backticks from error messages in image generation and editing functions
* refactor: Rename toolResources to toolResourceSet for clarity in file retrieval functions
* chore: Remove redundant comments and clean up TODOs in OpenAI image tools
* refactor: Rename fileStrategy to appFileStrategy for clarity and improve error handling in image processing
* chore: Update react-resizable-panels to version 2.1.8 in package.json and package-lock.json
* chore: Ensure required validation for logs and Code of Conduct agreement in bug report template
* fix: Update ArtifactPreview to use startupConfig and currentCode from memoized props to prevent unnecessary re-renders
* fix: improve robustness of `save & submit` when used from a user-message with existing attachments
* fix: add null check for artifact index in CodeEditor to prevent errors, trigger re-render on artifact ID change
* fix: standardize default values for artifact properties in Artifact component, avoiding prematurely setting an "empty/default" artifact
* fix: reset current artifact ID before setting a new one in ArtifactButton to ensure correct state management
* chore: rename `setArtifactId` variable to `setCurrentArtifactId` for consistency
* chore: update type annotations in File and S3 CRUD functions for consistency
* refactor: improve image handling in OpenAI tools by using image_id references and enhance tool context for image editing
* fix: update image_ids schema in image_edit_oai to enforce presence and provide clear guidelines for usage
* fix: enhance file fetching logic to ensure user-specific and dimension-validated results
* chore: add details on image generation and editing capabilities with various models
* feat: Update MCP tool creation to use lowercase provider name
* refactor: handle MCP image output edge cases where tool outputs must contain string responses
* feat: Drop 'anyOf' and 'oneOf' fields from JSON schema conversion
* feat: Transform 'oneOf' and 'anyOf' fields to Zod union in JSON schema conversion
* fix: artifactPlugin to replace textDirective with expected text, closes#7029
* fix: auto-save functionality to handle conversation transitions from pending drafts, closes#7027
* refactor: improve async handling during user disconnection process
* fix: use correct user ID variable for MCP tool calling
* fix: improve handling of pending drafts in auto-save functionality
* fix: add support for additional model names in getValueKey function
* fix: reset form values on agent deletion when no agents remain
* feat: Add support for new OpenAI models (o4-mini, o3) and update related logic
* 🔧 fix: Rename 'resubmitFiles' to 'isResubmission' for consistency across types and hooks
* 🔧 fix: Replace hardcoded 'pending_req' with CacheKeys.PENDING_REQ for consistency in cache handling
* 🔧 fix: Update cache handling to use Time.ONE_MINUTE instead of hardcoded TTL and streamline imports
* 🔧 fix: Enhance message handling logic to correctly identify parent messages and streamline imports in useSSE
* ✨ style: Adjust z-index for popover UI and update className in ConvoOptions
* ✨ feat: Add 'spec' field to conversation query selection
* 🛠️ fix: add back conversationId to use Constants.PENDING_CONVO in useSSE hook on submission to allow text drafts to clear
* ✨ chore: add .clineignore to .gitignore for Cline configuration
* ✨ refactor: memoize FileSearchCheckbox component for performance optimization
* fix: agent resource management by adding tool_resource to agent's tools if missing
* fix: action parameters are assigned to the correct location (query, parameter, header, body)
* removed copy/paste error
* added unit tests, only add contenttype if specified
---------
Co-authored-by: Peter Rothlaender <peter.rothlaender@ginkgo.com>
* 📦 chore: update @ariakit/react-core to version 0.4.17 in package.json and package-lock.json
* refactor: add additional ariakit menu props and unmount menu if state changes
* fix: accessibility issues and incompatibility issues due to non-portaled menu
* fix: improve visibility and accessibility of conversation options, making sure to expand dynamically when becoming active
* fix: adjust max width for conversation options popover to improve visibility
* fix: handle invalid engineTTS values and prevent VoiceDropdown render errors
* refactor: add verbose developer logging for debugging conversation state issues
* refactor: remove unnecessary effect for conversationId changes
* chore: imports
* fix: include model and entity IDs in conversation query selection
* feat: add fetchFreshData function to retrieve conversation data on navigation
* fix: remove unnecessary comment in fetchFreshData function
* chore: reorder imports in useNavigateToConvo for consistency
---------
Co-authored-by: Danny Avila <danny@librechat.ai>
* fix: azure title model
* refactor: typing for uploadMistralOCR
* fix: update conversation ID handling in useSSE for better state management, only use PENDING_CONVO for new conversations
* fix: streamline conversation ID handling in useSSE for simplicity, only needs state update to prevent draft from applying
* fix: update performOCR and tests to support document and image URLs with appropriate types
* ✨ feat: improve Nav/Conversations/Convo/NewChat component performance
* ✨ feat: implement cursor-based pagination for conversations API
* 🔧 refactor: remove createdAt from conversation selection in API and type definitions
* 🔧 refactor: include createdAt in conversation selection and update related types
* ✨ fix: search functionality and bugs with loadMoreConversations
* feat: move ArchivedChats to cursor and DataTable standard
* 🔧 refactor: add InfiniteQueryObserverResult type import in Nav component
* feat: enhance conversation listing with pagination, sorting, and search capabilities
* 🔧 refactor: remove unnecessary comment regarding lodash/debounce in ArchivedChatsTable
* 🔧 refactor: remove unused translation keys for archived chats and search results
* 🔧 fix: Archived Chats, Delete Convo, Duplicate Convo
* 🔧 refactor: improve conversation components with layout adjustments and new translations
* 🔧 refactor: simplify archive conversation mutation and improve unarchive handling; fix: update fork mutation
* 🔧 refactor: decode search query parameter in conversation route; improve error handling in unarchive mutation; clean up DataTable component styles
* 🔧 refactor: remove unused translation key for empty archived chats
* 🚀 fix: `archivedConversation` query key not updated correctly while archiving
* 🧠 feat: Bedrock Anthropic Reasoning & Update Endpoint Handling (#6163)
* feat: Add thinking and thinkingBudget parameters for Bedrock Anthropic models
* chore: Update @librechat/agents to version 2.1.8
* refactor: change region order in params
* refactor: Add maxTokens parameter to conversation preset schema
* refactor: Update agent client to use bedrockInputSchema and improve error handling for model parameters
* refactor: streamline/optimize llmConfig initialization and saving for bedrock
* fix: ensure config titleModel is used for all endpoints
* refactor: enhance OpenAIClient and agent initialization to support endpoint checks for OpenRouter
* chore: bump @google/generative-ai
* ✨ feat: improve Nav/Conversations/Convo/NewChat component performance
* 🔧 refactor: remove unnecessary comment regarding lodash/debounce in ArchivedChatsTable
* 🔧 refactor: update translation keys for clarity; simplify conversation query parameters and improve sorting functionality in SharedLinks component
* 🔧 refactor: optimize conversation loading logic and improve search handling in Nav component
* fix: package-lock
* fix: package-lock 2
* fix: package lock 3
* refactor: remove unused utility files and exports to clean up the codebase
* refactor: remove i18n and useAuthRedirect modules to streamline codebase
* refactor: optimize Conversations component and remove unused ToggleContext
* refactor(Convo): add RenameForm and ConvoLink components; enhance Conversations component with responsive design
* fix: add missing @azure/storage-blob dependency in package.json
* refactor(Search): add error handling with toast notification for search errors
* refactor: make createdAt and updatedAt fields of tConvoUpdateSchema less restrictive if timestamps are missing
* chore: update @azure/storage-blob dependency to version 12.27.0, ensure package-lock is correct
* refactor(Search): improve conversation handling server side
* fix: eslint warning and errors
* refactor(Search): improved search loading state and overall UX
* Refactors conversation cache management
Centralizes conversation mutation logic into dedicated utility functions for adding, updating, and removing conversations from query caches.
Improves reliability and maintainability by:
- Consolidating duplicate cache manipulation code
- Adding type safety for infinite query data structures
- Implementing consistent cache update patterns across all conversation operations
- Removing obsolete conversation helper functions in favor of standardized utilities
* fix: conversation handling and SSE event processing
- Optimizes conversation state management with useMemo and proper hook ordering
- Improves SSE event handler documentation and error handling
- Adds reset guard flag for conversation changes
- Removes redundant navigation call
- Cleans up cursor handling logic and document structure
Improves code maintainability and prevents potential race conditions in conversation state updates
* refactor: add type for SearchBar `onChange`
* fix: type tags
* style: rounded to xl all Header buttons
* fix: activeConvo in Convo not working
* style(Bookmarks): improved UI
* a11y(AccountSettings): fixed hover style not visible when using light theme
* style(SettingsTabs): improved tab switchers and dropdowns
* feat: add translations keys for Speech
* chore: fix package-lock
* fix(mutations): legacy import after rebase
* feat: refactor conversation navigation for accessibility
* fix(search): convo and message create/update date not returned
* fix(search): show correct iconURL and endpoint for searched messages
* fix: small UI improvements
* chore: console.log cleanup
* chore: fix tests
* fix(ChatForm): improve conversation ID handling and clean up useMemo dependencies
* chore: improve typing
* chore: improve typing
* fix(useSSE): clear conversation ID on submission to prevent draft restoration
* refactor(OpenAIClient): clean up abort handler
* refactor(abortMiddleware): change handleAbort to use function expression
* feat: add PENDING_CONVO constant and update conversation ID checks
* fix: final event handling on abort
* fix: improve title sync and query cache sync on final event
* fix: prevent overwriting cached conversation data if it already exists
---------
Co-authored-by: Danny Avila <danny@librechat.ai>
* refactor: agent token handling to use createHandleLLMNewToken for improved closure
* refactor: update llmConfig to use maxTokens instead of max_tokens for consistency
* fix: Agent Builder setting not applying in useSideNavLinks
* fix: Remove unused type imports in useSideNavLinks
* feat: gpt-4.1
* fix: Update getCacheMultiplier and getMultiplier tests to use dynamic token values
* feat: Add gpt-4.1 to the list of vision models
* chore: Bump version of librechat-data-provider to 0.7.792
* chore: update @librechat/agents dependency to version 2.4.15
* refactor: Prevent memory leaks by nullifying boundModel.client in disposeClient function
* fix: use of proxy, use undici
* chore: update @librechat/agents dependency to version 2.4.16
* Revert "fix: use of proxy, use undici"
This reverts commit 83153cd582.
* fix: ensure fetch is imported for HTTP requests
* fix: replace direct OpenAI import with CustomOpenAIClient from @librechat/agents
* fix: update keyv peer dependency to version 5.3.2
* fix: update keyv dependency to version 5.3.2
* refactor: replace KeyvMongo with custom implementation and update flow state manager usage
* fix: update @librechat/agents dependency to version 2.4.17
* ci: update OpenAIClient tests to use CustomOpenAIClient from @librechat/agents
* refactor: remove KeyvMongo mock and related dependencies