Skip to content

🚀 feat: Add support for custom AWS endpoint in S3 #6431

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Mar 20, 2025

Conversation

rubentalstra
Copy link
Collaborator

Summary

This pull request introduces support for a custom AWS endpoint URL in the S3 initialization process. The changes include modifications to the environment configuration and the S3 initialization script.

Environment Configuration:

  • .env.example: Added AWS_ENDPOINT_URL to the environment variables list.

S3 Initialization:

Change Type

  • New feature (non-breaking change which adds functionality)
  • This change requires a documentation update

Testing

Please describe your test process and include instructions so that we can reproduce your test. If there are any important variables for your testing configuration, list them here.

Test Configuration:

Checklist

  • My code adheres to this project's style guidelines
  • I have performed a self-review of my own code
  • I have commented in any complex areas of my code
  • I have made pertinent documentation changes
  • My changes do not introduce new warnings
  • I have written tests demonstrating that my changes are effective or that my feature works
  • Local unit tests pass with my changes
  • Any changes dependent on mine have been merged and published in downstream modules.
  • A pull request for updating the documentation has been submitted.

@rubentalstra rubentalstra added the ✨ enhancement New feature or request label Mar 20, 2025
@rubentalstra rubentalstra added this to the v0.7.8 milestone Mar 20, 2025
@rubentalstra rubentalstra self-assigned this Mar 20, 2025
@rubentalstra rubentalstra marked this pull request as ready for review March 20, 2025 09:45
@rubentalstra
Copy link
Collaborator Author

@danny-avila Ready for review ✅

works: #6142 (comment)

@danny-avila danny-avila merged commit 692fba5 into main Mar 20, 2025
5 checks passed
@danny-avila danny-avila deleted the feat/custom-endpoints-aws branch March 20, 2025 13:01
jmaddington added a commit to jmaddington/LibreChat that referenced this pull request Apr 2, 2025
Builds locally, merging.

* 🧠 feat: Reasoning UI for Agents (#5904)

* chore: bump https-proxy-agent and @librechat/agents

* refactor: Improve error logging in OllamaClient for API fetch failures

* feat: Add DeepSeek provider support and enhance provider name handling

* refactor: Use Providers.OLLAMA constant for model name check in fetchModels function

* feat: Enhance formatAgentMessages to handle reasoning content type

* feat: OpenRouter Agent Reasoning

* hard work and dedicationgit add .env.example :)

* fix: Handle Google social login with missing last name

Social login with Google was previously displaying 'undefined' when
a user's last name was empty or not provided.

Changes:
- Conditionally render last name only if it exists
- Prevent displaying 'undefined' when last name is missing

* fix: add missing file endings for developers yml,yaml and log

---------

Co-authored-by: Mohamed Al-Duraji <[email protected]>
Co-authored-by: Deepak Kendole <[email protected]>
Co-authored-by: Peter Rothlaender <[email protected]>

* 🐞 fix: Add Null Checks for BaseURL in Agent Config (#5908)

* ⚙️ refactor: Enhance Logging, Navigation And Error Handling (#5910)

* refactor: Ensure Axios Errors are less Verbose if No Response

* refactor: Improve error handling in logAxiosError function

* fix: Prevent ModelSelect from rendering for Agent Endpoints

* refactor: Enhance logging functions with type parameter for better clarity

* refactor: Update buildDefaultConvo function to use optional endpoint parameter since we pass a default value for undefined

* refactor: Replace console logs with logger warnings and errors in useNavigateToConvo hook, and handle removed endpoint edge case

* chore: import order

* ⚖️ docs: Update LICENSE.md Year: 2024 -> 2025 (#5915)

* 🔒 feat: Two-Factor Authentication with Backup Codes & QR support (#5685)

* 🔒 feat: add Two-Factor Authentication (2FA) with backup codes & QR support (#5684)

* working version for generating TOTP and authenticate.

* better looking UI

* refactored + better TOTP logic

* fixed issue with UI

* fixed issue: remove initial setup when closing window before completion.

* added: onKeyDown for verify and disable

* refactored some code and cleaned it up a bit.

* refactored some code and cleaned it up a bit.

* refactored some code and cleaned it up a bit.

* refactored some code and cleaned it up a bit.

* fixed issue after updating to new main branch

* updated example

* refactored controllers

* removed `passport-totp` not used.

* update the generateBackupCodes function to generate 10 codes by default:

* update the backup codes to an object.

* fixed issue with backup codes not working

* be able to disable 2FA with backup codes.

* removed new env. replaced with JWT_SECRET

* ✨ style: improved a11y and style for TwoFactorAuthentication

* 🔒 fix: small types checks

* ✨ feat: improve 2FA UI components

* fix: remove unnecessary console log

* add option to disable 2FA with backup codes

* - add option to refresh backup codes
- (optional) maybe show the user which backup codes have already been used?

* removed text to be able to merge the main.

* removed eng tx to be able to merge

* fix: migrated lang to new format.

* feat: rewrote whole 2FA UI + refactored 2FA backend

* chore: resolving conflicts

* chore: resolving conflicts

* fix: missing packages, because of resolving conflicts.

* fix: UI issue and improved a11y

* fix: 2FA backup code not working

* fix: update localization keys for UI consistency

* fix: update button label to use localized text

* fix: refactor backup codes regeneration and update localization keys

* fix: remove outdated translation for shared links management

* fix: remove outdated 2FA code prompts from translation.json

* fix: add cursor styles for backup codes item based on usage state

* fix: resolve conflict issue

* fix: resolve conflict issue

* fix: resolve conflict issue

* fix: missing packages in package-lock.json

* fix: add disabled opacity to the verify button in TwoFactorScreen

* ⚙ fix: update 2FA logic to rely on backup codes instead of TOTP status

* ⚙️ fix: Simplify user retrieval in 2FA logic by removing unnecessary TOTP secret query

* ⚙️ test: Add unit tests for TwoFactorAuthController and twoFactorControllers

* ⚙️ fix: Ensure backup codes are validated as an array before usage in 2FA components

* ⚙️ fix: Update module path mappings in tests to use relative paths

* ⚙️ fix: Update moduleNameMapper in jest.config.js to remove the caret from path mapping

* ⚙️ refactor: Simplify import paths in TwoFactorAuthController and twoFactorControllers test files

* ⚙️ test: Mock twoFactorService methods in twoFactorControllers tests

* ⚙️ refactor: Comment out unused imports and mock setups in test files for two-factor authentication

* ⚙️ refactor: removed files

* refactor: Exclude totpSecret from user data retrieval in AuthController, LoginController, and jwtStrategy

* refactor: Consolidate backup code verification to apply DRY and remove default array in user schema

* refactor: Enhance two-factor authentication ux/flow with improved error handling and loading state management, prevent redirect to /login

---------

Co-authored-by: Marco Beretta <[email protected]>
Co-authored-by: Danny Avila <[email protected]>

* 🛠 refactor: Ensure File Deletions, File Naming, and Agent Resource Updates (#5928)

* refactor: Improve error logging for file upload and processing functions to prevent verbosity

* refactor: Add uploads directory to Docker Compose to persist file uploads

* refactor: `addAgentResourceFile` to handle edge case of non-existing `tool_resource` array

* refactor: Remove version specification from deploy-compose.yml

* refactor: Prefix filenames with file_id to ensure uniqueness in file uploads

* refactor: Enhance error handling in deleteVectors to log warnings for non-404 errors

* refactor: Limit file search results to top 5 based on relevance score

* 🌍 i18n: Update translation.json with latest translations

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* 🐛 fix: RAG Results Sorted By Distance (#5931)

* refactor: Extract file unlinking logic into a separate function and don't throw error

* fix: RAG results are actually in distance, not score

* 📜 ci: Automate`CHANGELOG.md` (#5838)

* feat: started with automated CHANGELOG.md

* fix: no `configuration.json` found

* refactor: `configuration.json`

* fix: missing label `configuration.json`

* fix: missing label `configuration.json`

* fix: missing label `configuration.json`

* fix: missing label `configuration.json`

* fix: missing label `configuration.json`

* ci: test new workflow action

* ci: test new workflow action

* ci: test new workflow action

* feat: working CHANGELOG.md generation

* feat: working CHANGELOG.md generation

* feat: working CHANGELOG.md generation

* feat: working CHANGELOG.md generation

* feat: working CHANGELOG.md generation

* feat: working CHANGELOG.md generation

* feat: working CHANGELOG.md generation

* fix: separate release and Unreleased workflows CHANGELOG.md generation

* fix: separate release and Unreleased workflows CHANGELOG.md generation

* fix: separate release and Unreleased workflows CHANGELOG.md generation

* fix: separate release and Unreleased workflows CHANGELOG.md generation

* fix: separate release and Unreleased workflows CHANGELOG.md generation

* fix: separate release and Unreleased workflows CHANGELOG.md generation

* fix: separate release and Unreleased workflows CHANGELOG.md generation

* fix: separate release and Unreleased workflows CHANGELOG.md generation

* fix: separate release and Unreleased workflows CHANGELOG.md generation

* fix: separate release and Unreleased workflows CHANGELOG.md generation

* fix: separate release and Unreleased workflows CHANGELOG.md generation

* fix: separate release and Unreleased workflows CHANGELOG.md generation

* fix: separate release and Unreleased workflows CHANGELOG.md generation

* fix: separate release and Unreleased workflows CHANGELOG.md generation

* fix: separate release and Unreleased workflows CHANGELOG.md generation

* fix: separate release and Unreleased workflows CHANGELOG.md generation

* fix: separate release and Unreleased workflows CHANGELOG.md generation

* fix: separate release and Unreleased workflows CHANGELOG.md generation

* fix: separate release and Unreleased workflows CHANGELOG.md generation

* fix: separate release and Unreleased workflows CHANGELOG.md generation

* fix: separate release and Unreleased workflows CHANGELOG.md generation

* fix: separate release and Unreleased workflows CHANGELOG.md generation

* fix: separate release and Unreleased workflows CHANGELOG.md generation

* refactor: only trigger the `unreleased-changelog` action on push to `main`

and `generate-release-changelog` only when pushing a tag with `v*.*.*`

* refactor: Runs only every Monday at 00:00 UTC

* 🔒 fix: 2FA Encrypt TOTP Secrets & Improve Docs (#5933)

* 🔒 fix: Integrate TOTP secret retrieval and encryption in Two-Factor Authentication

* 🔒 refactor: Simplify TOTP verification by removing commented-out code

* 🔧 fix: Resizable Panel Unmount Error & Code Env. File Re-Upload (#5947)

* 🔧 refactor: handle full path for code env. file re-upload

* fix: update react-resizable-panels to version 2.1.7 to resolve error thrown on unmount of artifacts; ref: https://github.com/bvaughn/react-resizable-panels/issues/372

* refactor: replace promptPrefix with systemMessage in GoogleClient for improved clarity, and to prevent saving LibreChat feature-specific instructions to the user's custom instructions

* ✨ style: Enhance Styling & Accessibility (#5956)

* ✨ feat: Enhance UI Components with Shadows and Accessibility Improvements

* 🔧 fix: Correct Category Labels and Values in API Model & Adjust Button Class in Prompt List

* 🔢 chore: Remove Dollar Sign from Balance Display (#5948)

* 🚀 feat: Support Redis Clusters, Trusted Proxy Setting, And Toggle Meilisearch Indexing (#5963)

* refactor: Improve MeiliSearch integration with environment-based configuration for running index sync

* chore: Remove Question issue template from GitHub repository

* feat: Enable indexing in MeiliSearch configuration and clean up error handling in indexSync

* feat: Update .env.example to include optional indexing configuration

* refactor: rename env var for disabling index sync to MEILI_NO_SYNC

* Added the option to change the default trusted proxy

* feat: Add TRUST_PROXY configuration to .env.example for reverse proxy settings

* feat: Enhance Redis support with cluster configuration and TLS options

* feat(redis): add cluster support, environment config and url mapping

- Add Redis cluster configuration with isEnabled flag
- Configure prefix and max listeners settings
- Improve code formatting and readability
- Fix URL vs host parameter handling
- Update environment variables and regex patterns

---------

Co-authored-by: Gil Assunção <[email protected]>
Co-authored-by: Pedro Reis <[email protected]>
Co-authored-by: João Trigo Soares <[email protected]>

* 👐 refactor: Agents Accessibility and Gemini Error Handling (#5972)

* style: Enhance ControlCombobox with Carat Display, ClassName, and Disabled State

* refactor(ModelPanel): replace SelectDropdown with ControlCombobox for improved accessibility

* style: Adjust padding and positioning in ModelPanel for improved layout

* style(ControlCombobox): add containerClassName and iconSide props for enhanced customization

* style(ControlCombobox): add iconClassName prop for customizable icon styling

* refactor(AgentPanel): enhance layout with new button for creating agents and adjust structure for better alignment

* refactor(AgentSelect): replace SelectDropDown with ControlCombobox for improved accessibility and layout

* feat(translation): add new translation key for improved UI clarity

* style(AgentSwitcher, AssistantSwitcher): add iconClassName prop for customizable icon styling

* refactor(AgentPanelSkeleton): improve layout of skeleton components to match new visual structure

* style(AgentPanel, AgentPanelSkeleton): add margin to flex container for improved layout consistency

* a11y(AgentSelect, ControlCombobox): add selectId prop for preventing focus going to start to page after agent selection

* fix(AgentSelect): update SELECT_ID constant for improved clarity in component identification

* fix(GoogleClient): update type annotation, add abort handling for content generation requests, catch "uncaught" abort errors and GoogleGenerativeAI errors from `@google/generative-ai`

* 🌍 i18n: Update translation.json with latest translations (#5946)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* ⚙️ ci: Trigger Restriction for `Detect Unused NPM Packages` (#5844)

The workflow now only runs on pull requests that modify:
- The root `package.json` or `package-lock.json` file
- Any file under the client folder
- Any file under the api folder

* 🤖 feat: 192x192 Icon for Android PWA (#5966)

* fix: Add 192x192 icon to allow the PWA to install on Android devices using Chrome.

* fix: Use less whitespace on icon-192x192.png. Re-generate maskable-icon.png and apple-touch-icon-180x180.png to be higher quality, cripser and use less kilobytes.

* 🌟 feat: Enhance User Experience and SEO with Accessibility Updates and robots.txt (#5392)

* 🔈 fix: Refactor AudioRecorder to use button element for improved accessibility

* 🔈 fix: Update conversation menu button ID for improved accessibility

* 🔈 fix: Remove redundant role attribute from SidePanel for improved accessibility

* feat: Add robots.txt to manage web crawler access

* feat: Update index.html with meta description and remove legacy file

* fix: resolve merge conflicts.

* fix: resolve merge conflicts.

* fix: resolve merge conflicts.

* feat: Update index.html with meta description and remove legacy file

* 🔧 feat: Add legacy support and improve SidePanel accessibility

* 🔧 feat: Integrate express-static-gzip for improved static file serving and add new plugins for enhanced functionality

* 🔧 chore: Remove unused HTML ESLint plugin configurations and dependencies

---------

Co-authored-by: Ruben Talstra <[email protected]>

* 🚀 feat: Add Custom Welcome Message in `librechat.yaml` (#5870)

* feat: Custom Welcome Message (#2967)

* don't think I'm on the right path?

* ✨ feat: Implement custom welcome message configuration in interface

* 🔼 feat: "Run Code" Button Toggle (#5988)

* feat: Add 'Run Code' and 'Temporary Chat' permissions to role management

* feat: Add NextFunction typedef to api/typedefs.js

* feat: Add temporary chat and run code permissions to role schema

* refactor: Enhance access check middleware with logging for permission errors and better typing

* refactor: Set default value of USE permission to true in multiConvoPermissionsSchema

* refactor: Implement checkAccess function for separation of permission validation logic from middleware

* feat: Integrate permission checks for tool execution and enhance Markdown code block with execution capability

* fix: Convert REDIS_MAX_LISTENERS to a number, closes #5979

* 🚀 feat: Claude 3.7 Support + Reasoning (#6008)

* fix: missing console color methods for admin scripts

* feat: Anthropic Claude 3.7 Sonnet Support

* feat: update eventsource to version 3.0.2 and upgrade @modelcontextprotocol/sdk to 1.4.1

* fix: update DynamicInput to handle number type and improve initial value logic

* feat: first pass Anthropic Reasoning (Claude 3.7)

* feat: implement streaming support in AnthropicClient with reasoning UI handling

* feat: add missing xAI (grok) models

* 🔗 fix: Shared Link with Markdown Code Error (#6016)

* refactor: Export AuthContext from AuthContextProvider

* refactor: Update useHasAccess to utilize useContext for AuthContext

* refactor: Enhance type definitions in useHasAccess for better type safety

* sandbox sessions storage

* sandbox sessions storage

* 🌍 i18n: Add Georgian Language and Update Fallback Languages (#6022)

* ✨ feat: Anthropic Agents Prompt Caching & UI Accessibility Enhancements (#6045)

* chore: remove auto-focus for now

* refactor: move react-hook-form Controller Logic to AgentSelect from AgentPanel

* fix: a11y focus issue with AgentSelect by never replacing it in its component tree

* fix: maintain ComboBox focus and force re-render on agent ID change in AgentPanel

* chore: `gemini-2.0-flash-lite-preview-02-05` (deprecated)

* refactor: extract cache control logic and headers configuration to helper functions in AnthropicClient

* feat: anthropic agents prompt caching

* chore: bump @librechat/agents and related dependencies

* fix: typo

* 🔧 refactor: Improve Params Handling, Remove Legacy Items, & Update Configs (#6074)

* chore: include all assets for service worker, remove unused tsconfig.node.json, eslint ignore vite config

* chore: exclude image files from service worker caching

* refactor: simplify googleSchema transformation and error handling

* fix: max output tokens cap for 3.7 models

* fix: skip index fixing in CI, development, and test environments

* ci: add maxOutputTokens handling tests for Claude models

* refactor: drop top_k and top_p parameters for claude-3.7 in AnthropicClient and add tests for new behavior

* refactor: conditionally include top_k and top_p parameters for non-claude-3.7 models

* ci: add unit tests for getLLMConfig function with various model options

* chore: remove all OPENROUTER_API_KEY legacy logic

* refactor: optimize stream chunk handling

* feat: reset model parameters button

* refactor: remove unused examples field from convoSchema and presetSchema

* chore: update librechat-data-provider version to 0.7.6993

* refactor: move excludedKeys set to data-provider for better reusability

* feat: enhance saveMessageToDatabase to handle unset fields and fetched conversation state

* feat: add 'iconURL' and 'greeting' to excludedKeys in data provider config

* fix: add optional chaining to user ID retrieval in getConvo call

* 🌍 i18n: Update translation.json with latest translations (#6009)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* 🚀 feat: Agent Cache Tokens & Anthropic Reasoning Support (#6098)

* fix: handling of top_k and top_p parameters for Claude-3.7 models (allowed without reasoning)

* feat: bump @librechat/agents for Anthropic Reasoning support

* fix: update reasoning handling for OpenRouter integration

* fix: enhance agent token spending logic to include cache creation and read details

* fix: update logic for thinking status in ContentParts component

* refactor: improve agent title handling

* chore: bump @librechat/agents to version 2.1.7 for parallel tool calling for Google models

* 🚀 feat: GPT-4.5, Anthropic Tool Header, and OpenAPI Ref Resolution (#6118)

* 🔧 refactor: Update settings to use 'as const' for improved type safety and make gpt-4o-mini default model (cheapest)

* 📖 docs: Update README to reflect support for GPT-4.5 in image analysis feature

* 🔧 refactor: Update model handling to use default settings and improve encoding logic

* 🔧 refactor: Enhance model version extraction logic for improved compatibility with future GPT and omni models

* feat: GPT-4.5 tx/token update, vision support

* fix: $ref resolution logic in OpenAPI handling

* feat: add new 'anthropic-beta' header for Claude 3.7 to include token-efficient tools; ref: https://docs.anthropic.com/en/docs/build-with-claude/tool-use/token-efficient-tool-use

* 🖼️ refactor: Enhance Env Extraction & Agent Image Handling (#6131)

* refactor: use new image output format for agents using DALL-E tools

* refactor: Enhance image fetching with proxy support and adjust logging placement in DALL-E 3 integration

* refactor: Enhance StableDiffusionAPI to support agent-specific return values and display message for generated images

* refactor: Add unit test execution for librechat-mcp in backend review workflow

* refactor: Update environment variable extraction logic, export from serpate module to avoid circular refs, and remove deprecated tests

* refactor: Add unit tests for environment variable extraction and enhance StdioOptionsSchema to process env variables

* 🐼 feat: Add Flux Image Generation Tool (#6147)

* 🔧 fix: Log warning for aborted operations in AgentClient

* ci: Remove unused saveMessageToDatabase mock in FakeClient initialization

* ci: test actual implementation of saveMessageToDatabase

* refactor: Change log level from warning to error for aborted operations in AgentClient

* refactor: Add className prop to Image component for customizable styling, use theme selectors

* feat: FLUX Image Generation tool

* 🌍 i18n: Update translation.json with latest translations (#6132)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* 🧠 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

* 🌍 i18n: Update translation.json with latest translations (#6159)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* 🚀 feat: Enhance Model Handling, Logging & xAI Agent Support (#6182)

* chore: update @librechat/agents to version 2.1.9

* feat: xAI standalone provider for agents

* chore: bump librechat-data-provider version to 0.7.6997

* fix: reorder import statements and enhance user listing output

* fix: Update Docker Compose commands to support v2 syntax with fallback

* 🔧 fix: drop `reasoning_effort` for o1-preview/mini models

* chore: requireLocalAuth logging

* fix: edge case artifact message editing logic to handle `new` conversation IDs

* fix: remove `temperature` from model options in OpenAIClient if o1-mini/preview

* fix: update type annotation for fetchPromisesMap to use Promise<string[]> instead of string[]

* feat: anthropic model fetching

* fix: update model name to use EModelEndpoint.openAI in fetchModels and fetchOpenAIModels

* fix: add error handling to modelController for loadModels

* fix: add error handling and logging for model fetching in loadDefaultModels

* ci: update getAnthropicModels tests to be asynchronous

* feat: add user ID to model options in OpenAI and custom endpoint initialization

---------

Co-authored-by: Andrei Berceanu <[email protected]>
Co-authored-by: KiGamji <[email protected]>

* 🪄 feat: Customize Sandpack `bundlerURL` for Artifacts (#6191)

* 🕒 feat: Add Configurable MCP Server Timeouts (#6199)

* 🚀 feat: Add Code API Proxy Support and Update MCP SDK (#6203)

* chore: bump mcp sdk

* feat: Add proxy support for file download and upload in Code Environment CRUD operations

* chore: remove unused files

* chore: change output format from CommonJS to ES module in server rollup config

* ✨ v0.7.7 (#6206)

* v0.7.7

* chore: Bump librechat-mcp version to 1.1.0

* action: update Unreleased changelog

* Update CHANGELOG.md

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Ruben Talstra <[email protected]>

* 📦 refactor: Move DB Models to `@librechat/data-schemas` (#6210)

* 🚀 feat: Introduce data schemas and refactor models to use @librechat/data-schemas

* 🚀 feat: Add installation step for Data Schemas Package in backend review workflow

* chore: Add `data-schemas` package to update/rebuild packages scripts

* chore: Update Dockerfile to include data-schemas package build process

* fix: add missing @rollup/plugin-typescript package

* chore: Add GitHub Actions workflow for publishing data-schemas package

---------

Co-authored-by: Danny Avila <[email protected]>

* 🌍 i18n: Add Thai Language Support and Update Translations (#6219)

* 🌍 i18n: Add Thai Language Support and Update Translations

* 📝 docs: Update Locize Logo in README.md

* 📦 ci: `npm publish` access to public for `data-schemas`

* 📦 ci: Update workflow to publish `@librechat/data-schemas` to NPM with manual trigger option

* 📦 ci: Refactor workflow to combine build and publish steps with version check for `@librechat/data-schemas`

* 📦 ci: Update npm authentication token for publishing in workflow

* 🌍 i18n: Update translation.json with latest translations (#6220)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* 📦 chore: Patch `axios` to address CVE-2025-27152 (#6222)

* 📦 chore: remove `langchain` (no longer used)

* chore: patch `axios` to address CVE-2025-27152

* 🐛 fix: Avatar Type Definitions in Agent/Assistant Schemas (#6235)

* fix: Simplify avatar type definition in agent and assistant schemas

* fix: Update regex to correctly match OpenAI model identifiers

* 🌍 i18n: Update translation.json with latest translations (#6240)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* 🔧 fix: MeiliSearch Field Error and Patch Incorrect Import by #6210 (#6245)

* 📦 refactor: Update MeiliSearch integration and improve schema handling

* Update indexSync.js

* 📦 refactor: Update Conversation model import path in indexSync.js

* 📦 refactor: Update import paths for Conversation and Message models in indexSync.js

* 🔏 fix: Enhance Two-Factor Authentication (#6247)

* 🌟 feat: Implement Two-Factor Authentication (2FA) functionality

* fix: Two-Factor Authentication Logic and State Management

* 🌟 feat: Add LICENSE file and update package version to 0.0.2 with MIT license

* ⚠️ refactor: Use Error Content Part Instead Of Throwing Error for Agents (#6262)

* 🐛 fix: Await saveMessage in abortMiddleware to ensure proper execution (#6248)

* 🌍 i18n: Update translation.json with latest translations (#6241)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* 🔍 feat: Mistral OCR API / Upload Files as Text (#6274)

* refactor: move `loadAuthValues` to `~/services/Tools/credentials`

* feat: add createAxiosInstance function to configure axios with proxy support

* WIP: First pass mistral ocr

* refactor: replace getConvoFiles with getToolFiles for improved file retrieval logic

* refactor: improve document formatting in encodeAndFormat function

* refactor: remove unused resendFiles parameter from buildOptions function (this option comes from the agent config)

* fix: update getFiles call to include files with `text` property as well

* refactor: move file handling to `initializeAgentOptions`

* refactor: enhance addImageURLs method to handle OCR text and improve message formatting

* refactor: update message formatting to handle OCR text in various content types

* refactor: remove unused resendFiles property from compactAgentsSchema

* fix: add error handling for Mistral OCR document upload and logging

* refactor: integrate OCR capability into file upload options and configuration

* refactor: skip processing for text source files in delete request, as they are directly tied to database

* feat: add metadata field to ExtendedFile type and update PanelColumns and PanelTable components for localization and metadata handling

* fix: source icon styling

* wip: first pass, frontend file context agent resources

* refactor: add hover card with contextual information for File Context (OCR) in FileContext component

* feat: enhance file processing by integrating file retrieval for OCR resources in agent initialization

* feat: implement OCR config; fix: agent resource deletion for ocr files

* feat: enhance agent initialization by adding OCR capability check in resource priming

* ci: fix `~/config` module mock

* ci: add OCR property expectation in AppService tests

* refactor: simplify OCR config loading by removing environment variable extraction, to be done when OCR is actually performed

* ci: add unit test to ensure environment variable references are not parsed in OCR config

* refactor: disable base64 image inclusion in OCR request

* refactor: enhance OCR configuration handling by validating environment variables and providing defaults

* refactor: use file stream from disk for mistral ocr api

* 🎨 a11y: Update Model Spec Description Text (#6294)

* 🔧 fix: Axios Proxy Usage And Bump `mongoose` (#6298)

* fix: bump mongoose to fix nested schema errors

* fix: Enhance Axios instance creation with improved proxy handling and error logging

* fix: Refactor Axios instance creation and remove proxy handling from file upload functions

* fix: Update proxy configuration in Axios instance creation and add unit tests

* 🤖 feat: Support OpenAI Web Search models (#6313)

* fix: reorder vision model entries for cheaper models first

* fix: add endpoint property to bedrock client initialization

* fix: exclude unsupported parameters for OpenAI Web Search models

* fix: enhance options to exclude unsupported parameters for Web Search models

* 🔧 fix: comment out MCP servers to resolve service run issues (#6316)

Co-authored-by: Coding Wizard <[email protected]>

* 🔗 feat: Agent Chain (Mixture-of-Agents) (#6374)

* wip: first pass, dropdown for selecting sequential agents

* refactor: Improve agent selection logic and enhance performance in SequentialAgents component

* wip: seq. agents working ideas

* wip: sequential agents style change

* refactor: move agent form options/submission outside of AgentConfig

* refactor: prevent repeating code

* refactor: simplify current agent display in SequentialAgents component

* feat: persist  form value handling in AgentSelect component for agent_ids

* feat: first pass, sequential agnets agent update

* feat: enhance message display with agent updates and empty text handling

* chore: update Icon component to use EModelEndpoint for agent endpoints

* feat: update content type checks in BaseClient to use constants for better readability

* feat: adjust max context tokens calculation to use 90% of the model's max tokens

* feat: first pass, agent run message pruning

* chore: increase max listeners for abort controller to prevent memory leaks

* feat: enhance runAgent function to include current index count map for improved token tracking

* chore: update @librechat/agents dependency to version 2.2.5

* feat: update icons and style of SequentialAgents component for improved UI consistency

* feat: add AdvancedButton and AdvancedPanel components for enhanced agent settings navigation, update styling for agent form

* chore: adjust minimum height of AdvancedPanel component for better layout consistency

* chore: update @librechat/agents dependency to version 2.2.6

* feat: enhance message formatting by incorporating tool set into agent message processing, in order to allow better mix/matching of agents (as tool calls for tools not found in set will be stringified)

* refactor: reorder components in AgentConfig for improved readability and maintainability

* refactor: enhance layout of AgentUpdate component for improved visual structure

* feat: add DeepSeek provider to Bedrock settings and schemas

* feat: enhance link styling in mobile.css for better visibility and accessibility

* fix: update banner model import in update banner script; export Banner model

* refactor: `duplicateAgentHandler` to include tool_resources only for OCR context files

* feat: add 'qwen-vl' to visionModels for enhanced model support

* fix: change image format from JPEG to PNG in DALLE3 response

* feat: reorganize Advanced components and add localizations

* refactor: simplify JSX structure in AgentChain component to defer container styling to parent

* feat: add FormInput component for reusable input handling

* feat: make agent recursion limit configurable from builder

* feat: add support for agent capabilities chain in AdvancedPanel and update data-provider version

* feat: add maxRecursionLimit configuration for agents and update related documentation

* fix: update CONFIG_VERSION to 1.2.3 in data provider configuration

* feat: replace recursion limit input with MaxAgentSteps component and enhance input handling

* feat: enhance AgentChain component with hover card for additional information and update related labels

* fix: pass request and response objects to `createActionTool` when using assistant actions to prevent auth error

* feat: update AgentChain component layout to include agent count display

* feat: increase default max listeners and implement capability check function for agent chain

* fix: update link styles in mobile.css for better visibility in dark mode

* chore: temp. remove agents package while bumping shared packages

* chore: update @langchain/google-genai package to version 0.1.11

* chore: update @langchain/google-vertexai package to version 0.2.2

* chore: add @librechat/agents package at version 2.2.8

* feat: add deepseek.r1 model with token rate and context values for bedrock

* 🔧 fix: Update Token Calculations/Mapping, MCP `env` Initialization (#6406)

* fix: Enhance MCP initialization to process environment variables

* fix: only build tokenCountMap with messages that are being used in the payload

* fix: Adjust maxContextTokens calculation to account for maxOutputTokens

* refactor: Make processMCPEnv optional in MCPManager initialization

* chore: Bump version of librechat-data-provider to 0.7.73

* ⌛ feat: `initTimeout` for Slow Starting MCP Servers (#6383)

* feat: make mcp server connect timeout configurable with initTimeout

* style: add missing semicolon to connection.ts

* 🚀 feat: `S3` Integration for File handling and Image uploads (#6142)

* French Translation Update

* French Translation Update

* test

* Add fileStrategy S3 Config

* update s3 crud.js

* 🔧 chore: downgrade dotenv to version 16.0.3 and add aws-sdk to package-lock.json

* 🔧 chore: remove aws-sdk from package.json

* 🚀 feat: Integrate AWS SDK for S3 with enhanced upload and retrieval functionalities

* 🚀 feat: Implement S3 integration for file upload and retrieval functionalities

* 🚀 feat: Enhance S3 initialization to support default credentials and improved error handling

---------

Co-authored-by: Gael Martins <[email protected]>

* 🐞 fix: Agent "Resend" Message Attachments + Source Icon Styling (#6408)

* style: Update text file source icon background color for improved visibility in light mode

* style: Update `vectordb` source icon background color for better visibility

* fix: resend files behavior for tool resource message attachments (code interpreter and file search); Rename `getToolFiles` to `getConvoFiles` and simplify file retrieval logic; add `getToolFilesByIds` for fetching tool files by IDs

* 🐛 fix: Prevent Crash on Duplicate Message ID (#6392)

* fix: prevent crash on duplicate message ID

Added error handling for MongoDB error code 11000 (duplicate key error) in saveMessage function. This prevents the application from crashing when trying to save messages with duplicate IDs, which can happen during aborted requests. Now logs a warning and continues execution safely.

Closes: #5774
Closes: #5776

* fix: address ESLint issues in Message.js

---------

Co-authored-by: odrec <[email protected]>

* 🌍 i18n: Update translation.json with latest translations (#6277)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* 🔒feat: Enable OpenID Auto-Redirect (#6066)

* added feature for oidc auto redirection

* Added Cooldown logic for OIDC auto redirect for failed login attempts

* 🔧 feat: Implement custom logout redirect handling and enhance OpenID auto-redirect logic

* 🔧 refactor: Update getLoginError to use TranslationKeys for improved type safety

* 🔧 feat: Localize redirect message to OpenID provider in Login component

---------

Co-authored-by: Ruben Talstra <[email protected]>

* 🚀 feat: Integrate `Azure Blob Storage` for file handling and image uploads (#6153)

* 🚀 feat: Integrate Azure Blob Storage for file handling and image uploads

* 🐼 refactor: Correct module import case for Azure in strategies.js

* 🚀 feat: Add Azure support in SourceIcon component

* 🚀 feat: Enhance Azure Blob Service initialization with Managed Identity support

* 🐼 refactor: Remove unused Azure dependencies from package.json and package-lock.json

* 🐼 refactor: Remove unused Azure dependencies from package.json and package-lock.json

* 🐼 refactor: Remove unused Azure dependencies from package.json and package-lock.json

* 🚀 feat: Add Azure SDK dependencies for identity and storage blob

* 🔧 fix: Reorganize imports in strategies.js for better clarity

* 🔧 fix: Correct comment formatting in strategies.js for consistency

* 🔧 fix: Improve comment formatting in strategies.js for consistency

* ⚡ build(deps-dev): bump @babel/helpers from 7.26.9 to 7.26.10 (#6413)

Bumps [@babel/helpers](https://github.com/babel/babel/tree/HEAD/packages/babel-helpers) from 7.26.9 to 7.26.10.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.26.10/packages/babel-helpers)

---
updated-dependencies:
- dependency-name: "@babel/helpers"
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* 🚀 feat: Add support for custom AWS endpoint in S3 initialization (#6431)

* 🔐 fix: Invalid Key Length in 2FA Encryption (#6432)

* 🚀 feat: Implement v3 encryption and decryption methods for TOTP secrets

* 🚀 feat: Refactor Two-Factor Authentication methods and enhance 2FA verification process

* 🚀 feat: Update encryption methods to use hex decoding for legacy keys and improve error handling for AES-256-CTR

* 🚀 feat: Update import paths in TwoFactorController for consistency and clarity

* 🏃‍♂️ refactor: Improve Agent Run Context & Misc. Changes (#6448)

* chore: bump Model Context Protocol SDK dependencies

* fix: correct indentation in MCPConnection class

* refactor: enhance SSE transport with abort controller and add error handling for empty results

* chore: remove outdated Model Context Protocol SDK dependency

* chore: update @modelcontextprotocol/sdk dependency to version 1.7.0

* chore: add debugging comments for PingRequest handling in MCPConnection class

* refactor: update callTool method to accept structured arguments and options

* refactor: simplify maxContextTokens calculation in initializeAgentOptions

* chore: update @babel/runtime dependency to version 7.26.10

* chore: update @librechat/agents dependency to version 2.2.9

* chore: update @librechat/agents dependency to version 2.3.6

* refactor: imports and prevent s3 initialization if strategy not configured

* refactor: mark redis as non-experimental

* refactor: add missing `maxContextTokens` for OpenAI parameters

* refactor: improve log message for Redis initialization

* chore: update @librechat/agents dependency to version 2.3.8

* refactor: extend `streamBuffer` condition to include BEDROCK provider as easily gets throttled by AWS

* refactor: filter out 'think' parts from message content in Anthropic and OpenAI clients

* 🚀 feat: Add support for LDAP STARTTLS in LDAP Auth (#6438)

* 🚀 feat: Refactor schema exports and update package version to 0.0.4 (#6455)

* 📝 docs: librechat.example.yaml (#6442)

Correctly comment commented comments:
```
```
to
```
```

To allow for simple removal of the 1st level comments.

* 🔼 feat: Add Auto Submit For URL Query Params (#6440)

* feat: Add submit query param to auto submit a prompt passed in via URL

* refactor: add case-insensitive value for auto-submit

---------

Co-authored-by: Danny Avila <[email protected]>

* 🛠 feat: Enhance Redis Integration, Rate Limiters & Log Headers (#6462)

* feat: Implement Redis-based rate limiting, initially import limits

* feat: Enhance rate limiters with Redis support and custom prefixes

* chore: import orders

* chore: update JSDoc for next middleware parameter type in ban and limiter middleware

* feat: add logHeaders middleware to log forwarded headers in requests

* refactor: change log level from info to debug for Redis rate limiters

* feat: increase Redis max listeners and refactor session storage to use Keyv

* 💵 feat: Add Automatic Balance Refill (#6452)

* 🚀 feat: Add automatic refill settings to balance schema

* 🚀 feat: Refactor balance feature to use global interface configuration

* 🚀 feat: Implement auto-refill functionality for balance management

* 🚀 feat: Enhance auto-refill logic and configuration for balance management

* 🚀 chore: Bump version to 0.7.74 in package.json and package-lock.json

* 🚀 chore: Bump version to 0.0.5 in package.json and package-lock.json

* 🚀 docs: Update comment for balance settings in librechat.example.yaml

* chore: space in `.env.example`

* 🚀 feat: Implement balance configuration loading and refactor related components

* 🚀 test: Refactor tests to use custom config for balance feature

* 🚀 fix: Update balance response handling in Transaction.js to use Balance model

* 🚀 test: Update AppService tests to include balance configuration in mock setup

* 🚀 test: Enhance AppService tests with complete balance configuration scenarios

* 🚀 refactor: Rename balanceConfig to balance and update related tests for clarity

* 🚀 refactor: Remove loadDefaultBalance and update balance handling in AppService

* 🚀 test: Update AppService tests to reflect new balance structure and defaults

* 🚀 test: Mock getCustomConfig in BaseClient tests to control balance configuration

* 🚀 test: Add get method to mockCache in OpenAIClient tests for improved cache handling

* 🚀 test: Mock getCustomConfig in OpenAIClient tests to control balance configuration

* 🚀 test: Remove mock for getCustomConfig in OpenAIClient tests to streamline configuration handling

* 🚀 fix: Update balance configuration reference in config.js for consistency

* refactor: Add getBalanceConfig function to retrieve balance configuration

* chore: Comment out example balance settings in librechat.example.yaml

* refactor: Replace getCustomConfig with getBalanceConfig for balance handling

* fix: tests

* refactor: Replace getBalanceConfig call with balance from request locals

* refactor: Update balance handling to use environment variables for configuration

* refactor: Replace getBalanceConfig calls with balance from request locals

* refactor: Simplify balance configuration logic in getBalanceConfig

---------

Co-authored-by: Danny Avila <[email protected]>

* 🏃‍♂️ refactor: More Agent Context Improvements during Run (#6477)

* fix: Add optional chaining utility and update agent parameter types

* v2.3.9

* chore: Update @librechat/agents version to 2.3.93

* 🌍 i18n: Update translation.json with latest translations (#6414)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* 🏗️ fix: Agents Token Spend Race Conditions, Add Auto-refill Tx, Add Relevant Tests (#6480)

* 🏗️ 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

* 🗣️ feat: add support for `gpt-4o-transcribe` models (#6483)

* 🔃 fix: Draft Clearing, Claude Titles, Remove Default Vision Max Tokens (#6501)

* 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

* 🌍 i18n: Update translation.json with latest translations (#6505)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* separate sandboxes by users

* 🔃 refactor: Allow streaming for o1 models in OpenAIClient and agent runs (#6509)

* 🎨 feat: UI Refresh for Enhanced UX (#6346)

* ✨ 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 <[email protected]>

* 🔧 fix: Update username reference to use user.name in greeting display (#6534)

* 🎨 style: Update background color of CodeBlock component to gray-900 (#6540)

* 🔒 Security: Update Vite to version 6.2.3 (`CVE-2025-30208`, `GHSA-67mh-4wv8-2f99`) (#6541)

* security: Update Vite to version 6.1.2

* 🔧 fix: Update Vite to version 6.2.3

* 🔧 chore: `Vite` Plugin Upgrades & Config Optimizations (#6547)

* 🔧 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 <[email protected]>

* 🌍 feat: Add support for Hungarian language localization (#6508)

* 🔧 refactor: Consolidate Logging, Model Selection & Actions Optimizations, Minor Fixes (#6553)

* 🔧 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: S3 Download Stream with Key Extraction and Blob Storage Encoding for Vision (#6557)

* 🔧 fix: Remove empty result check from MCPConnection transport send method, allow pinging mcp servers

* 🎨 style: Address Minor UI Refresh Issues (#6552)

* 🎨 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

* 🔧 fix: Mistral type strictness for `usage` & update token values/windows (#6562)

* 🔧 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

* 🚀 feat: Add Gemini 2.5 Token/Context Values, Increase Max Possible Output to 64k (#6563)

* feat: Add Gemini 2.5 token values, increase max output param, context window

* 🔧 fix: Update Gemini API model names in .env.example

* 🔧 fix: Add button type attribute to AttachFile component

* 🔧 fix: Consolidate Text Parsing and TTS Edge Initialization (#6582)

* 🔧 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

* 🔧 refactor: Enhance Model & Endpoint Configurations with Global Indicators 🌍 (#6578)

* 🔧 fix: Simplify event handling in Badge component by always preventing default behavior and stopping propagation on toggle

* feat: show Global agents icon in ModelSelector

* feat: show Global agents icon in ModelSelector's search results

* refactor(Header): remove unused import

Co-authored-by: Copilot <[email protected]>

* refactor(EndpointModelItem): remove unused import of useGetStartupConfig

---------

Co-authored-by: Copilot <[email protected]>

* 🚀 feat: Enhance MCP Connections For Multi-User Support (#6610)

* 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

* 💬 style: Chat UI, Greeting, and Message adjustments (#6612)

* 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

* 🔧 fix: Ensure continuation in Image processing on base64 encoding from Blob Storage (#6619)

* ✉️ fix: Fallback For User Name In Email Templates (#6620)

* 🔧 fix: Azure Blob Integration and File Source References (#6575)

* 🔧 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 <[email protected]>

* action: update Unreleased changelog (#54)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* 🚀 feat: Enhance S3 URL Expiry with Refresh; fix: S3 File Deletion (#6647)

* refactor: Improve error logging in image fetching to base64 conversion

* fix: Add error handling for custom endpoint configuration retrieval

* fix: Update audio stream processing to parse text parts from complex message content

* chore: import order in streamAudio

* fix: S3 file deletion and optimize file upload

* feat: Implement S3 URL refresh mechanism and add cache for expiry check intervals

* feat: Add S3 URL refresh functionality for agent avatars

* chore: remove unnecessary console.log in MultiMessage component

* chore: update version of librechat-data-provider to 0.7.77

* 🌍 i18n: Update translation.json with latest translations (#6530)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* 🚀 feat: enhance UI components and refactor settings (#6625)

* 🚀 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 <[email protected]>

* 💬 feat: move Temporary Chat to the Header (#6646)

* 🚀 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 <[email protected]>

* 🚀 feat: Use Model Specs + Specific Endpoints, Limit Providers for Agents (#6650)

* 🔧 refactor: Remove mode…
jmaddington added a commit to jmaddington/LibreChat that referenced this pull request Apr 2, 2025
* 🧠 feat: Reasoning UI for Agents (#5904)

* chore: bump https-proxy-agent and @librechat/agents

* refactor: Improve error logging in OllamaClient for API fetch failures

* feat: Add DeepSeek provider support and enhance provider name handling

* refactor: Use Providers.OLLAMA constant for model name check in fetchModels function

* feat: Enhance formatAgentMessages to handle reasoning content type

* feat: OpenRouter Agent Reasoning

* hard work and dedicationgit add .env.example :)

* fix: Handle Google social login with missing last name

Social login with Google was previously displaying 'undefined' when
a user's last name was empty or not provided.

Changes:
- Conditionally render last name only if it exists
- Prevent displaying 'undefined' when last name is missing

* fix: add missing file endings for developers yml,yaml and log

---------

Co-authored-by: Mohamed Al-Duraji <[email protected]>
Co-authored-by: Deepak Kendole <[email protected]>
Co-authored-by: Peter Rothlaender <[email protected]>

* 🐞 fix: Add Null Checks for BaseURL in Agent Config (#5908)

* ⚙️ refactor: Enhance Logging, Navigation And Error Handling (#5910)

* refactor: Ensure Axios Errors are less Verbose if No Response

* refactor: Improve error handling in logAxiosError function

* fix: Prevent ModelSelect from rendering for Agent Endpoints

* refactor: Enhance logging functions with type parameter for better clarity

* refactor: Update buildDefaultConvo function to use optional endpoint parameter since we pass a default value for undefined

* refactor: Replace console logs with logger warnings and errors in useNavigateToConvo hook, and handle removed endpoint edge case

* chore: import order

* ⚖️ docs: Update LICENSE.md Year: 2024 -> 2025 (#5915)

* 🔒 feat: Two-Factor Authentication with Backup Codes & QR support (#5685)

* 🔒 feat: add Two-Factor Authentication (2FA) with backup codes & QR support (#5684)

* working version for generating TOTP and authenticate.

* better looking UI

* refactored + better TOTP logic

* fixed issue with UI

* fixed issue: remove initial setup when closing window before completion.

* added: onKeyDown for verify and disable

* refactored some code and cleaned it up a bit.

* refactored some code and cleaned it up a bit.

* refactored some code and cleaned it up a bit.

* refactored some code and cleaned it up a bit.

* fixed issue after updating to new main branch

* updated example

* refactored controllers

* removed `passport-totp` not used.

* update the generateBackupCodes function to generate 10 codes by default:

* update the backup codes to an object.

* fixed issue with backup codes not working

* be able to disable 2FA with backup codes.

* removed new env. replaced with JWT_SECRET

* ✨ style: improved a11y and style for TwoFactorAuthentication

* 🔒 fix: small types checks

* ✨ feat: improve 2FA UI components

* fix: remove unnecessary console log

* add option to disable 2FA with backup codes

* - add option to refresh backup codes
- (optional) maybe show the user which backup codes have already been used?

* removed text to be able to merge the main.

* removed eng tx to be able to merge

* fix: migrated lang to new format.

* feat: rewrote whole 2FA UI + refactored 2FA backend

* chore: resolving conflicts

* chore: resolving conflicts

* fix: missing packages, because of resolving conflicts.

* fix: UI issue and improved a11y

* fix: 2FA backup code not working

* fix: update localization keys for UI consistency

* fix: update button label to use localized text

* fix: refactor backup codes regeneration and update localization keys

* fix: remove outdated translation for shared links management

* fix: remove outdated 2FA code prompts from translation.json

* fix: add cursor styles for backup codes item based on usage state

* fix: resolve conflict issue

* fix: resolve conflict issue

* fix: resolve conflict issue

* fix: missing packages in package-lock.json

* fix: add disabled opacity to the verify button in TwoFactorScreen

* ⚙ fix: update 2FA logic to rely on backup codes instead of TOTP status

* ⚙️ fix: Simplify user retrieval in 2FA logic by removing unnecessary TOTP secret query

* ⚙️ test: Add unit tests for TwoFactorAuthController and twoFactorControllers

* ⚙️ fix: Ensure backup codes are validated as an array before usage in 2FA components

* ⚙️ fix: Update module path mappings in tests to use relative paths

* ⚙️ fix: Update moduleNameMapper in jest.config.js to remove the caret from path mapping

* ⚙️ refactor: Simplify import paths in TwoFactorAuthController and twoFactorControllers test files

* ⚙️ test: Mock twoFactorService methods in twoFactorControllers tests

* ⚙️ refactor: Comment out unused imports and mock setups in test files for two-factor authentication

* ⚙️ refactor: removed files

* refactor: Exclude totpSecret from user data retrieval in AuthController, LoginController, and jwtStrategy

* refactor: Consolidate backup code verification to apply DRY and remove default array in user schema

* refactor: Enhance two-factor authentication ux/flow with improved error handling and loading state management, prevent redirect to /login

---------

Co-authored-by: Marco Beretta <[email protected]>
Co-authored-by: Danny Avila <[email protected]>

* 🛠 refactor: Ensure File Deletions, File Naming, and Agent Resource Updates (#5928)

* refactor: Improve error logging for file upload and processing functions to prevent verbosity

* refactor: Add uploads directory to Docker Compose to persist file uploads

* refactor: `addAgentResourceFile` to handle edge case of non-existing `tool_resource` array

* refactor: Remove version specification from deploy-compose.yml

* refactor: Prefix filenames with file_id to ensure uniqueness in file uploads

* refactor: Enhance error handling in deleteVectors to log warnings for non-404 errors

* refactor: Limit file search results to top 5 based on relevance score

* 🌍 i18n: Update translation.json with latest translations

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* 🐛 fix: RAG Results Sorted By Distance (#5931)

* refactor: Extract file unlinking logic into a separate function and don't throw error

* fix: RAG results are actually in distance, not score

* 📜 ci: Automate`CHANGELOG.md` (#5838)

* feat: started with automated CHANGELOG.md

* fix: no `configuration.json` found

* refactor: `configuration.json`

* fix: missing label `configuration.json`

* fix: missing label `configuration.json`

* fix: missing label `configuration.json`

* fix: missing label `configuration.json`

* fix: missing label `configuration.json`

* ci: test new workflow action

* ci: test new workflow action

* ci: test new workflow action

* feat: working CHANGELOG.md generation

* feat: working CHANGELOG.md generation

* feat: working CHANGELOG.md generation

* feat: working CHANGELOG.md generation

* feat: working CHANGELOG.md generation

* feat: working CHANGELOG.md generation

* feat: working CHANGELOG.md generation

* fix: separate release and Unreleased workflows CHANGELOG.md generation

* fix: separate release and Unreleased workflows CHANGELOG.md generation

* fix: separate release and Unreleased workflows CHANGELOG.md generation

* fix: separate release and Unreleased workflows CHANGELOG.md generation

* fix: separate release and Unreleased workflows CHANGELOG.md generation

* fix: separate release and Unreleased workflows CHANGELOG.md generation

* fix: separate release and Unreleased workflows CHANGELOG.md generation

* fix: separate release and Unreleased workflows CHANGELOG.md generation

* fix: separate release and Unreleased workflows CHANGELOG.md generation

* fix: separate release and Unreleased workflows CHANGELOG.md generation

* fix: separate release and Unreleased workflows CHANGELOG.md generation

* fix: separate release and Unreleased workflows CHANGELOG.md generation

* fix: separate release and Unreleased workflows CHANGELOG.md generation

* fix: separate release and Unreleased workflows CHANGELOG.md generation

* fix: separate release and Unreleased workflows CHANGELOG.md generation

* fix: separate release and Unreleased workflows CHANGELOG.md generation

* fix: separate release and Unreleased workflows CHANGELOG.md generation

* fix: separate release and Unreleased workflows CHANGELOG.md generation

* fix: separate release and Unreleased workflows CHANGELOG.md generation

* fix: separate release and Unreleased workflows CHANGELOG.md generation

* fix: separate release and Unreleased workflows CHANGELOG.md generation

* fix: separate release and Unreleased workflows CHANGELOG.md generation

* fix: separate release and Unreleased workflows CHANGELOG.md generation

* refactor: only trigger the `unreleased-changelog` action on push to `main`

and `generate-release-changelog` only when pushing a tag with `v*.*.*`

* refactor: Runs only every Monday at 00:00 UTC

* 🔒 fix: 2FA Encrypt TOTP Secrets & Improve Docs (#5933)

* 🔒 fix: Integrate TOTP secret retrieval and encryption in Two-Factor Authentication

* 🔒 refactor: Simplify TOTP verification by removing commented-out code

* 🔧 fix: Resizable Panel Unmount Error & Code Env. File Re-Upload (#5947)

* 🔧 refactor: handle full path for code env. file re-upload

* fix: update react-resizable-panels to version 2.1.7 to resolve error thrown on unmount of artifacts; ref: https://github.com/bvaughn/react-resizable-panels/issues/372

* refactor: replace promptPrefix with systemMessage in GoogleClient for improved clarity, and to prevent saving LibreChat feature-specific instructions to the user's custom instructions

* ✨ style: Enhance Styling & Accessibility (#5956)

* ✨ feat: Enhance UI Components with Shadows and Accessibility Improvements

* 🔧 fix: Correct Category Labels and Values in API Model & Adjust Button Class in Prompt List

* 🔢 chore: Remove Dollar Sign from Balance Display (#5948)

* 🚀 feat: Support Redis Clusters, Trusted Proxy Setting, And Toggle Meilisearch Indexing (#5963)

* refactor: Improve MeiliSearch integration with environment-based configuration for running index sync

* chore: Remove Question issue template from GitHub repository

* feat: Enable indexing in MeiliSearch configuration and clean up error handling in indexSync

* feat: Update .env.example to include optional indexing configuration

* refactor: rename env var for disabling index sync to MEILI_NO_SYNC

* Added the option to change the default trusted proxy

* feat: Add TRUST_PROXY configuration to .env.example for reverse proxy settings

* feat: Enhance Redis support with cluster configuration and TLS options

* feat(redis): add cluster support, environment config and url mapping

- Add Redis cluster configuration with isEnabled flag
- Configure prefix and max listeners settings
- Improve code formatting and readability
- Fix URL vs host parameter handling
- Update environment variables and regex patterns

---------

Co-authored-by: Gil Assunção <[email protected]>
Co-authored-by: Pedro Reis <[email protected]>
Co-authored-by: João Trigo Soares <[email protected]>

* 👐 refactor: Agents Accessibility and Gemini Error Handling (#5972)

* style: Enhance ControlCombobox with Carat Display, ClassName, and Disabled State

* refactor(ModelPanel): replace SelectDropdown with ControlCombobox for improved accessibility

* style: Adjust padding and positioning in ModelPanel for improved layout

* style(ControlCombobox): add containerClassName and iconSide props for enhanced customization

* style(ControlCombobox): add iconClassName prop for customizable icon styling

* refactor(AgentPanel): enhance layout with new button for creating agents and adjust structure for better alignment

* refactor(AgentSelect): replace SelectDropDown with ControlCombobox for improved accessibility and layout

* feat(translation): add new translation key for improved UI clarity

* style(AgentSwitcher, AssistantSwitcher): add iconClassName prop for customizable icon styling

* refactor(AgentPanelSkeleton): improve layout of skeleton components to match new visual structure

* style(AgentPanel, AgentPanelSkeleton): add margin to flex container for improved layout consistency

* a11y(AgentSelect, ControlCombobox): add selectId prop for preventing focus going to start to page after agent selection

* fix(AgentSelect): update SELECT_ID constant for improved clarity in component identification

* fix(GoogleClient): update type annotation, add abort handling for content generation requests, catch "uncaught" abort errors and GoogleGenerativeAI errors from `@google/generative-ai`

* 🌍 i18n: Update translation.json with latest translations (#5946)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* ⚙️ ci: Trigger Restriction for `Detect Unused NPM Packages` (#5844)

The workflow now only runs on pull requests that modify:
- The root `package.json` or `package-lock.json` file
- Any file under the client folder
- Any file under the api folder

* 🤖 feat: 192x192 Icon for Android PWA (#5966)

* fix: Add 192x192 icon to allow the PWA to install on Android devices using Chrome.

* fix: Use less whitespace on icon-192x192.png. Re-generate maskable-icon.png and apple-touch-icon-180x180.png to be higher quality, cripser and use less kilobytes.

* 🌟 feat: Enhance User Experience and SEO with Accessibility Updates and robots.txt (#5392)

* 🔈 fix: Refactor AudioRecorder to use button element for improved accessibility

* 🔈 fix: Update conversation menu button ID for improved accessibility

* 🔈 fix: Remove redundant role attribute from SidePanel for improved accessibility

* feat: Add robots.txt to manage web crawler access

* feat: Update index.html with meta description and remove legacy file

* fix: resolve merge conflicts.

* fix: resolve merge conflicts.

* fix: resolve merge conflicts.

* feat: Update index.html with meta description and remove legacy file

* 🔧 feat: Add legacy support and improve SidePanel accessibility

* 🔧 feat: Integrate express-static-gzip for improved static file serving and add new plugins for enhanced functionality

* 🔧 chore: Remove unused HTML ESLint plugin configurations and dependencies

---------

Co-authored-by: Ruben Talstra <[email protected]>

* 🚀 feat: Add Custom Welcome Message in `librechat.yaml` (#5870)

* feat: Custom Welcome Message (#2967)

* don't think I'm on the right path?

* ✨ feat: Implement custom welcome message configuration in interface

* 🔼 feat: "Run Code" Button Toggle (#5988)

* feat: Add 'Run Code' and 'Temporary Chat' permissions to role management

* feat: Add NextFunction typedef to api/typedefs.js

* feat: Add temporary chat and run code permissions to role schema

* refactor: Enhance access check middleware with logging for permission errors and better typing

* refactor: Set default value of USE permission to true in multiConvoPermissionsSchema

* refactor: Implement checkAccess function for separation of permission validation logic from middleware

* feat: Integrate permission checks for tool execution and enhance Markdown code block with execution capability

* fix: Convert REDIS_MAX_LISTENERS to a number, closes #5979

* 🚀 feat: Claude 3.7 Support + Reasoning (#6008)

* fix: missing console color methods for admin scripts

* feat: Anthropic Claude 3.7 Sonnet Support

* feat: update eventsource to version 3.0.2 and upgrade @modelcontextprotocol/sdk to 1.4.1

* fix: update DynamicInput to handle number type and improve initial value logic

* feat: first pass Anthropic Reasoning (Claude 3.7)

* feat: implement streaming support in AnthropicClient with reasoning UI handling

* feat: add missing xAI (grok) models

* 🔗 fix: Shared Link with Markdown Code Error (#6016)

* refactor: Export AuthContext from AuthContextProvider

* refactor: Update useHasAccess to utilize useContext for AuthContext

* refactor: Enhance type definitions in useHasAccess for better type safety

* sandbox sessions storage

* sandbox sessions storage

* 🌍 i18n: Add Georgian Language and Update Fallback Languages (#6022)

* ✨ feat: Anthropic Agents Prompt Caching & UI Accessibility Enhancements (#6045)

* chore: remove auto-focus for now

* refactor: move react-hook-form Controller Logic to AgentSelect from AgentPanel

* fix: a11y focus issue with AgentSelect by never replacing it in its component tree

* fix: maintain ComboBox focus and force re-render on agent ID change in AgentPanel

* chore: `gemini-2.0-flash-lite-preview-02-05` (deprecated)

* refactor: extract cache control logic and headers configuration to helper functions in AnthropicClient

* feat: anthropic agents prompt caching

* chore: bump @librechat/agents and related dependencies

* fix: typo

* 🔧 refactor: Improve Params Handling, Remove Legacy Items, & Update Configs (#6074)

* chore: include all assets for service worker, remove unused tsconfig.node.json, eslint ignore vite config

* chore: exclude image files from service worker caching

* refactor: simplify googleSchema transformation and error handling

* fix: max output tokens cap for 3.7 models

* fix: skip index fixing in CI, development, and test environments

* ci: add maxOutputTokens handling tests for Claude models

* refactor: drop top_k and top_p parameters for claude-3.7 in AnthropicClient and add tests for new behavior

* refactor: conditionally include top_k and top_p parameters for non-claude-3.7 models

* ci: add unit tests for getLLMConfig function with various model options

* chore: remove all OPENROUTER_API_KEY legacy logic

* refactor: optimize stream chunk handling

* feat: reset model parameters button

* refactor: remove unused examples field from convoSchema and presetSchema

* chore: update librechat-data-provider version to 0.7.6993

* refactor: move excludedKeys set to data-provider for better reusability

* feat: enhance saveMessageToDatabase to handle unset fields and fetched conversation state

* feat: add 'iconURL' and 'greeting' to excludedKeys in data provider config

* fix: add optional chaining to user ID retrieval in getConvo call

* 🌍 i18n: Update translation.json with latest translations (#6009)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* 🚀 feat: Agent Cache Tokens & Anthropic Reasoning Support (#6098)

* fix: handling of top_k and top_p parameters for Claude-3.7 models (allowed without reasoning)

* feat: bump @librechat/agents for Anthropic Reasoning support

* fix: update reasoning handling for OpenRouter integration

* fix: enhance agent token spending logic to include cache creation and read details

* fix: update logic for thinking status in ContentParts component

* refactor: improve agent title handling

* chore: bump @librechat/agents to version 2.1.7 for parallel tool calling for Google models

* 🚀 feat: GPT-4.5, Anthropic Tool Header, and OpenAPI Ref Resolution (#6118)

* 🔧 refactor: Update settings to use 'as const' for improved type safety and make gpt-4o-mini default model (cheapest)

* 📖 docs: Update README to reflect support for GPT-4.5 in image analysis feature

* 🔧 refactor: Update model handling to use default settings and improve encoding logic

* 🔧 refactor: Enhance model version extraction logic for improved compatibility with future GPT and omni models

* feat: GPT-4.5 tx/token update, vision support

* fix: $ref resolution logic in OpenAPI handling

* feat: add new 'anthropic-beta' header for Claude 3.7 to include token-efficient tools; ref: https://docs.anthropic.com/en/docs/build-with-claude/tool-use/token-efficient-tool-use

* 🖼️ refactor: Enhance Env Extraction & Agent Image Handling (#6131)

* refactor: use new image output format for agents using DALL-E tools

* refactor: Enhance image fetching with proxy support and adjust logging placement in DALL-E 3 integration

* refactor: Enhance StableDiffusionAPI to support agent-specific return values and display message for generated images

* refactor: Add unit test execution for librechat-mcp in backend review workflow

* refactor: Update environment variable extraction logic, export from serpate module to avoid circular refs, and remove deprecated tests

* refactor: Add unit tests for environment variable extraction and enhance StdioOptionsSchema to process env variables

* 🐼 feat: Add Flux Image Generation Tool (#6147)

* 🔧 fix: Log warning for aborted operations in AgentClient

* ci: Remove unused saveMessageToDatabase mock in FakeClient initialization

* ci: test actual implementation of saveMessageToDatabase

* refactor: Change log level from warning to error for aborted operations in AgentClient

* refactor: Add className prop to Image component for customizable styling, use theme selectors

* feat: FLUX Image Generation tool

* 🌍 i18n: Update translation.json with latest translations (#6132)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* 🧠 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

* 🌍 i18n: Update translation.json with latest translations (#6159)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* 🚀 feat: Enhance Model Handling, Logging & xAI Agent Support (#6182)

* chore: update @librechat/agents to version 2.1.9

* feat: xAI standalone provider for agents

* chore: bump librechat-data-provider version to 0.7.6997

* fix: reorder import statements and enhance user listing output

* fix: Update Docker Compose commands to support v2 syntax with fallback

* 🔧 fix: drop `reasoning_effort` for o1-preview/mini models

* chore: requireLocalAuth logging

* fix: edge case artifact message editing logic to handle `new` conversation IDs

* fix: remove `temperature` from model options in OpenAIClient if o1-mini/preview

* fix: update type annotation for fetchPromisesMap to use Promise<string[]> instead of string[]

* feat: anthropic model fetching

* fix: update model name to use EModelEndpoint.openAI in fetchModels and fetchOpenAIModels

* fix: add error handling to modelController for loadModels

* fix: add error handling and logging for model fetching in loadDefaultModels

* ci: update getAnthropicModels tests to be asynchronous

* feat: add user ID to model options in OpenAI and custom endpoint initialization

---------

Co-authored-by: Andrei Berceanu <[email protected]>
Co-authored-by: KiGamji <[email protected]>

* 🪄 feat: Customize Sandpack `bundlerURL` for Artifacts (#6191)

* 🕒 feat: Add Configurable MCP Server Timeouts (#6199)

* 🚀 feat: Add Code API Proxy Support and Update MCP SDK (#6203)

* chore: bump mcp sdk

* feat: Add proxy support for file download and upload in Code Environment CRUD operations

* chore: remove unused files

* chore: change output format from CommonJS to ES module in server rollup config

* ✨ v0.7.7 (#6206)

* v0.7.7

* chore: Bump librechat-mcp version to 1.1.0

* action: update Unreleased changelog

* Update CHANGELOG.md

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Ruben Talstra <[email protected]>

* 📦 refactor: Move DB Models to `@librechat/data-schemas` (#6210)

* 🚀 feat: Introduce data schemas and refactor models to use @librechat/data-schemas

* 🚀 feat: Add installation step for Data Schemas Package in backend review workflow

* chore: Add `data-schemas` package to update/rebuild packages scripts

* chore: Update Dockerfile to include data-schemas package build process

* fix: add missing @rollup/plugin-typescript package

* chore: Add GitHub Actions workflow for publishing data-schemas package

---------

Co-authored-by: Danny Avila <[email protected]>

* 🌍 i18n: Add Thai Language Support and Update Translations (#6219)

* 🌍 i18n: Add Thai Language Support and Update Translations

* 📝 docs: Update Locize Logo in README.md

* 📦 ci: `npm publish` access to public for `data-schemas`

* 📦 ci: Update workflow to publish `@librechat/data-schemas` to NPM with manual trigger option

* 📦 ci: Refactor workflow to combine build and publish steps with version check for `@librechat/data-schemas`

* 📦 ci: Update npm authentication token for publishing in workflow

* 🌍 i18n: Update translation.json with latest translations (#6220)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* 📦 chore: Patch `axios` to address CVE-2025-27152 (#6222)

* 📦 chore: remove `langchain` (no longer used)

* chore: patch `axios` to address CVE-2025-27152

* 🐛 fix: Avatar Type Definitions in Agent/Assistant Schemas (#6235)

* fix: Simplify avatar type definition in agent and assistant schemas

* fix: Update regex to correctly match OpenAI model identifiers

* 🌍 i18n: Update translation.json with latest translations (#6240)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* 🔧 fix: MeiliSearch Field Error and Patch Incorrect Import by #6210 (#6245)

* 📦 refactor: Update MeiliSearch integration and improve schema handling

* Update indexSync.js

* 📦 refactor: Update Conversation model import path in indexSync.js

* 📦 refactor: Update import paths for Conversation and Message models in indexSync.js

* 🔏 fix: Enhance Two-Factor Authentication (#6247)

* 🌟 feat: Implement Two-Factor Authentication (2FA) functionality

* fix: Two-Factor Authentication Logic and State Management

* 🌟 feat: Add LICENSE file and update package version to 0.0.2 with MIT license

* ⚠️ refactor: Use Error Content Part Instead Of Throwing Error for Agents (#6262)

* 🐛 fix: Await saveMessage in abortMiddleware to ensure proper execution (#6248)

* 🌍 i18n: Update translation.json with latest translations (#6241)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* 🔍 feat: Mistral OCR API / Upload Files as Text (#6274)

* refactor: move `loadAuthValues` to `~/services/Tools/credentials`

* feat: add createAxiosInstance function to configure axios with proxy support

* WIP: First pass mistral ocr

* refactor: replace getConvoFiles with getToolFiles for improved file retrieval logic

* refactor: improve document formatting in encodeAndFormat function

* refactor: remove unused resendFiles parameter from buildOptions function (this option comes from the agent config)

* fix: update getFiles call to include files with `text` property as well

* refactor: move file handling to `initializeAgentOptions`

* refactor: enhance addImageURLs method to handle OCR text and improve message formatting

* refactor: update message formatting to handle OCR text in various content types

* refactor: remove unused resendFiles property from compactAgentsSchema

* fix: add error handling for Mistral OCR document upload and logging

* refactor: integrate OCR capability into file upload options and configuration

* refactor: skip processing for text source files in delete request, as they are directly tied to database

* feat: add metadata field to ExtendedFile type and update PanelColumns and PanelTable components for localization and metadata handling

* fix: source icon styling

* wip: first pass, frontend file context agent resources

* refactor: add hover card with contextual information for File Context (OCR) in FileContext component

* feat: enhance file processing by integrating file retrieval for OCR resources in agent initialization

* feat: implement OCR config; fix: agent resource deletion for ocr files

* feat: enhance agent initialization by adding OCR capability check in resource priming

* ci: fix `~/config` module mock

* ci: add OCR property expectation in AppService tests

* refactor: simplify OCR config loading by removing environment variable extraction, to be done when OCR is actually performed

* ci: add unit test to ensure environment variable references are not parsed in OCR config

* refactor: disable base64 image inclusion in OCR request

* refactor: enhance OCR configuration handling by validating environment variables and providing defaults

* refactor: use file stream from disk for mistral ocr api

* 🎨 a11y: Update Model Spec Description Text (#6294)

* 🔧 fix: Axios Proxy Usage And Bump `mongoose` (#6298)

* fix: bump mongoose to fix nested schema errors

* fix: Enhance Axios instance creation with improved proxy handling and error logging

* fix: Refactor Axios instance creation and remove proxy handling from file upload functions

* fix: Update proxy configuration in Axios instance creation and add unit tests

* 🤖 feat: Support OpenAI Web Search models (#6313)

* fix: reorder vision model entries for cheaper models first

* fix: add endpoint property to bedrock client initialization

* fix: exclude unsupported parameters for OpenAI Web Search models

* fix: enhance options to exclude unsupported parameters for Web Search models

* 🔧 fix: comment out MCP servers to resolve service run issues (#6316)

Co-authored-by: Coding Wizard <[email protected]>

* 🔗 feat: Agent Chain (Mixture-of-Agents) (#6374)

* wip: first pass, dropdown for selecting sequential agents

* refactor: Improve agent selection logic and enhance performance in SequentialAgents component

* wip: seq. agents working ideas

* wip: sequential agents style change

* refactor: move agent form options/submission outside of AgentConfig

* refactor: prevent repeating code

* refactor: simplify current agent display in SequentialAgents component

* feat: persist  form value handling in AgentSelect component for agent_ids

* feat: first pass, sequential agnets agent update

* feat: enhance message display with agent updates and empty text handling

* chore: update Icon component to use EModelEndpoint for agent endpoints

* feat: update content type checks in BaseClient to use constants for better readability

* feat: adjust max context tokens calculation to use 90% of the model's max tokens

* feat: first pass, agent run message pruning

* chore: increase max listeners for abort controller to prevent memory leaks

* feat: enhance runAgent function to include current index count map for improved token tracking

* chore: update @librechat/agents dependency to version 2.2.5

* feat: update icons and style of SequentialAgents component for improved UI consistency

* feat: add AdvancedButton and AdvancedPanel components for enhanced agent settings navigation, update styling for agent form

* chore: adjust minimum height of AdvancedPanel component for better layout consistency

* chore: update @librechat/agents dependency to version 2.2.6

* feat: enhance message formatting by incorporating tool set into agent message processing, in order to allow better mix/matching of agents (as tool calls for tools not found in set will be stringified)

* refactor: reorder components in AgentConfig for improved readability and maintainability

* refactor: enhance layout of AgentUpdate component for improved visual structure

* feat: add DeepSeek provider to Bedrock settings and schemas

* feat: enhance link styling in mobile.css for better visibility and accessibility

* fix: update banner model import in update banner script; export Banner model

* refactor: `duplicateAgentHandler` to include tool_resources only for OCR context files

* feat: add 'qwen-vl' to visionModels for enhanced model support

* fix: change image format from JPEG to PNG in DALLE3 response

* feat: reorganize Advanced components and add localizations

* refactor: simplify JSX structure in AgentChain component to defer container styling to parent

* feat: add FormInput component for reusable input handling

* feat: make agent recursion limit configurable from builder

* feat: add support for agent capabilities chain in AdvancedPanel and update data-provider version

* feat: add maxRecursionLimit configuration for agents and update related documentation

* fix: update CONFIG_VERSION to 1.2.3 in data provider configuration

* feat: replace recursion limit input with MaxAgentSteps component and enhance input handling

* feat: enhance AgentChain component with hover card for additional information and update related labels

* fix: pass request and response objects to `createActionTool` when using assistant actions to prevent auth error

* feat: update AgentChain component layout to include agent count display

* feat: increase default max listeners and implement capability check function for agent chain

* fix: update link styles in mobile.css for better visibility in dark mode

* chore: temp. remove agents package while bumping shared packages

* chore: update @langchain/google-genai package to version 0.1.11

* chore: update @langchain/google-vertexai package to version 0.2.2

* chore: add @librechat/agents package at version 2.2.8

* feat: add deepseek.r1 model with token rate and context values for bedrock

* 🔧 fix: Update Token Calculations/Mapping, MCP `env` Initialization (#6406)

* fix: Enhance MCP initialization to process environment variables

* fix: only build tokenCountMap with messages that are being used in the payload

* fix: Adjust maxContextTokens calculation to account for maxOutputTokens

* refactor: Make processMCPEnv optional in MCPManager initialization

* chore: Bump version of librechat-data-provider to 0.7.73

* ⌛ feat: `initTimeout` for Slow Starting MCP Servers (#6383)

* feat: make mcp server connect timeout configurable with initTimeout

* style: add missing semicolon to connection.ts

* 🚀 feat: `S3` Integration for File handling and Image uploads (#6142)

* French Translation Update

* French Translation Update

* test

* Add fileStrategy S3 Config

* update s3 crud.js

* 🔧 chore: downgrade dotenv to version 16.0.3 and add aws-sdk to package-lock.json

* 🔧 chore: remove aws-sdk from package.json

* 🚀 feat: Integrate AWS SDK for S3 with enhanced upload and retrieval functionalities

* 🚀 feat: Implement S3 integration for file upload and retrieval functionalities

* 🚀 feat: Enhance S3 initialization to support default credentials and improved error handling

---------

Co-authored-by: Gael Martins <[email protected]>

* 🐞 fix: Agent "Resend" Message Attachments + Source Icon Styling (#6408)

* style: Update text file source icon background color for improved visibility in light mode

* style: Update `vectordb` source icon background color for better visibility

* fix: resend files behavior for tool resource message attachments (code interpreter and file search); Rename `getToolFiles` to `getConvoFiles` and simplify file retrieval logic; add `getToolFilesByIds` for fetching tool files by IDs

* 🐛 fix: Prevent Crash on Duplicate Message ID (#6392)

* fix: prevent crash on duplicate message ID

Added error handling for MongoDB error code 11000 (duplicate key error) in saveMessage function. This prevents the application from crashing when trying to save messages with duplicate IDs, which can happen during aborted requests. Now logs a warning and continues execution safely.

Closes: #5774
Closes: #5776

* fix: address ESLint issues in Message.js

---------

Co-authored-by: odrec <[email protected]>

* 🌍 i18n: Update translation.json with latest translations (#6277)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* 🔒feat: Enable OpenID Auto-Redirect (#6066)

* added feature for oidc auto redirection

* Added Cooldown logic for OIDC auto redirect for failed login attempts

* 🔧 feat: Implement custom logout redirect handling and enhance OpenID auto-redirect logic

* 🔧 refactor: Update getLoginError to use TranslationKeys for improved type safety

* 🔧 feat: Localize redirect message to OpenID provider in Login component

---------

Co-authored-by: Ruben Talstra <[email protected]>

* 🚀 feat: Integrate `Azure Blob Storage` for file handling and image uploads (#6153)

* 🚀 feat: Integrate Azure Blob Storage for file handling and image uploads

* 🐼 refactor: Correct module import case for Azure in strategies.js

* 🚀 feat: Add Azure support in SourceIcon component

* 🚀 feat: Enhance Azure Blob Service initialization with Managed Identity support

* 🐼 refactor: Remove unused Azure dependencies from package.json and package-lock.json

* 🐼 refactor: Remove unused Azure dependencies from package.json and package-lock.json

* 🐼 refactor: Remove unused Azure dependencies from package.json and package-lock.json

* 🚀 feat: Add Azure SDK dependencies for identity and storage blob

* 🔧 fix: Reorganize imports in strategies.js for better clarity

* 🔧 fix: Correct comment formatting in strategies.js for consistency

* 🔧 fix: Improve comment formatting in strategies.js for consistency

* ⚡ build(deps-dev): bump @babel/helpers from 7.26.9 to 7.26.10 (#6413)

Bumps [@babel/helpers](https://github.com/babel/babel/tree/HEAD/packages/babel-helpers) from 7.26.9 to 7.26.10.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.26.10/packages/babel-helpers)

---
updated-dependencies:
- dependency-name: "@babel/helpers"
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* 🚀 feat: Add support for custom AWS endpoint in S3 initialization (#6431)

* 🔐 fix: Invalid Key Length in 2FA Encryption (#6432)

* 🚀 feat: Implement v3 encryption and decryption methods for TOTP secrets

* 🚀 feat: Refactor Two-Factor Authentication methods and enhance 2FA verification process

* 🚀 feat: Update encryption methods to use hex decoding for legacy keys and improve error handling for AES-256-CTR

* 🚀 feat: Update import paths in TwoFactorController for consistency and clarity

* 🏃‍♂️ refactor: Improve Agent Run Context & Misc. Changes (#6448)

* chore: bump Model Context Protocol SDK dependencies

* fix: correct indentation in MCPConnection class

* refactor: enhance SSE transport with abort controller and add error handling for empty results

* chore: remove outdated Model Context Protocol SDK dependency

* chore: update @modelcontextprotocol/sdk dependency to version 1.7.0

* chore: add debugging comments for PingRequest handling in MCPConnection class

* refactor: update callTool method to accept structured arguments and options

* refactor: simplify maxContextTokens calculation in initializeAgentOptions

* chore: update @babel/runtime dependency to version 7.26.10

* chore: update @librechat/agents dependency to version 2.2.9

* chore: update @librechat/agents dependency to version 2.3.6

* refactor: imports and prevent s3 initialization if strategy not configured

* refactor: mark redis as non-experimental

* refactor: add missing `maxContextTokens` for OpenAI parameters

* refactor: improve log message for Redis initialization

* chore: update @librechat/agents dependency to version 2.3.8

* refactor: extend `streamBuffer` condition to include BEDROCK provider as easily gets throttled by AWS

* refactor: filter out 'think' parts from message content in Anthropic and OpenAI clients

* 🚀 feat: Add support for LDAP STARTTLS in LDAP Auth (#6438)

* 🚀 feat: Refactor schema exports and update package version to 0.0.4 (#6455)

* 📝 docs: librechat.example.yaml (#6442)

Correctly comment commented comments:
```
```
to
```
```

To allow for simple removal of the 1st level comments.

* 🔼 feat: Add Auto Submit For URL Query Params (#6440)

* feat: Add submit query param to auto submit a prompt passed in via URL

* refactor: add case-insensitive value for auto-submit

---------

Co-authored-by: Danny Avila <[email protected]>

* 🛠 feat: Enhance Redis Integration, Rate Limiters & Log Headers (#6462)

* feat: Implement Redis-based rate limiting, initially import limits

* feat: Enhance rate limiters with Redis support and custom prefixes

* chore: import orders

* chore: update JSDoc for next middleware parameter type in ban and limiter middleware

* feat: add logHeaders middleware to log forwarded headers in requests

* refactor: change log level from info to debug for Redis rate limiters

* feat: increase Redis max listeners and refactor session storage to use Keyv

* 💵 feat: Add Automatic Balance Refill (#6452)

* 🚀 feat: Add automatic refill settings to balance schema

* 🚀 feat: Refactor balance feature to use global interface configuration

* 🚀 feat: Implement auto-refill functionality for balance management

* 🚀 feat: Enhance auto-refill logic and configuration for balance management

* 🚀 chore: Bump version to 0.7.74 in package.json and package-lock.json

* 🚀 chore: Bump version to 0.0.5 in package.json and package-lock.json

* 🚀 docs: Update comment for balance settings in librechat.example.yaml

* chore: space in `.env.example`

* 🚀 feat: Implement balance configuration loading and refactor related components

* 🚀 test: Refactor tests to use custom config for balance feature

* 🚀 fix: Update balance response handling in Transaction.js to use Balance model

* 🚀 test: Update AppService tests to include balance configuration in mock setup

* 🚀 test: Enhance AppService tests with complete balance configuration scenarios

* 🚀 refactor: Rename balanceConfig to balance and update related tests for clarity

* 🚀 refactor: Remove loadDefaultBalance and update balance handling in AppService

* 🚀 test: Update AppService tests to reflect new balance structure and defaults

* 🚀 test: Mock getCustomConfig in BaseClient tests to control balance configuration

* 🚀 test: Add get method to mockCache in OpenAIClient tests for improved cache handling

* 🚀 test: Mock getCustomConfig in OpenAIClient tests to control balance configuration

* 🚀 test: Remove mock for getCustomConfig in OpenAIClient tests to streamline configuration handling

* 🚀 fix: Update balance configuration reference in config.js for consistency

* refactor: Add getBalanceConfig function to retrieve balance configuration

* chore: Comment out example balance settings in librechat.example.yaml

* refactor: Replace getCustomConfig with getBalanceConfig for balance handling

* fix: tests

* refactor: Replace getBalanceConfig call with balance from request locals

* refactor: Update balance handling to use environment variables for configuration

* refactor: Replace getBalanceConfig calls with balance from request locals

* refactor: Simplify balance configuration logic in getBalanceConfig

---------

Co-authored-by: Danny Avila <[email protected]>

* 🏃‍♂️ refactor: More Agent Context Improvements during Run (#6477)

* fix: Add optional chaining utility and update agent parameter types

* v2.3.9

* chore: Update @librechat/agents version to 2.3.93

* 🌍 i18n: Update translation.json with latest translations (#6414)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* 🏗️ fix: Agents Token Spend Race Conditions, Add Auto-refill Tx, Add Relevant Tests (#6480)

* 🏗️ 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

* 🗣️ feat: add support for `gpt-4o-transcribe` models (#6483)

* 🔃 fix: Draft Clearing, Claude Titles, Remove Default Vision Max Tokens (#6501)

* 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

* 🌍 i18n: Update translation.json with latest translations (#6505)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* separate sandboxes by users

* 🔃 refactor: Allow streaming for o1 models in OpenAIClient and agent runs (#6509)

* 🎨 feat: UI Refresh for Enhanced UX (#6346)

* ✨ 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 <[email protected]>

* 🔧 fix: Update username reference to use user.name in greeting display (#6534)

* 🎨 style: Update background color of CodeBlock component to gray-900 (#6540)

* 🔒 Security: Update Vite to version 6.2.3 (`CVE-2025-30208`, `GHSA-67mh-4wv8-2f99`) (#6541)

* security: Update Vite to version 6.1.2

* 🔧 fix: Update Vite to version 6.2.3

* 🔧 chore: `Vite` Plugin Upgrades & Config Optimizations (#6547)

* 🔧 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 <[email protected]>

* 🌍 feat: Add support for Hungarian language localization (#6508)

* 🔧 refactor: Consolidate Logging, Model Selection & Actions Optimizations, Minor Fixes (#6553)

* 🔧 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: S3 Download Stream with Key Extraction and Blob Storage Encoding for Vision (#6557)

* 🔧 fix: Remove empty result check from MCPConnection transport send method, allow pinging mcp servers

* 🎨 style: Address Minor UI Refresh Issues (#6552)

* 🎨 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

* 🔧 fix: Mistral type strictness for `usage` & update token values/windows (#6562)

* 🔧 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

* 🚀 feat: Add Gemini 2.5 Token/Context Values, Increase Max Possible Output to 64k (#6563)

* feat: Add Gemini 2.5 token values, increase max output param, context window

* 🔧 fix: Update Gemini API model names in .env.example

* 🔧 fix: Add button type attribute to AttachFile component

* 🔧 fix: Consolidate Text Parsing and TTS Edge Initialization (#6582)

* 🔧 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

* 🔧 refactor: Enhance Model & Endpoint Configurations with Global Indicators 🌍 (#6578)

* 🔧 fix: Simplify event handling in Badge component by always preventing default behavior and stopping propagation on toggle

* feat: show Global agents icon in ModelSelector

* feat: show Global agents icon in ModelSelector's search results

* refactor(Header): remove unused import

Co-authored-by: Copilot <[email protected]>

* refactor(EndpointModelItem): remove unused import of useGetStartupConfig

---------

Co-authored-by: Copilot <[email protected]>

* 🚀 feat: Enhance MCP Connections For Multi-User Support (#6610)

* 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

* 💬 style: Chat UI, Greeting, and Message adjustments (#6612)

* 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

* 🔧 fix: Ensure continuation in Image processing on base64 encoding from Blob Storage (#6619)

* ✉️ fix: Fallback For User Name In Email Templates (#6620)

* 🔧 fix: Azure Blob Integration and File Source References (#6575)

* 🔧 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 <[email protected]>

* action: update Unreleased changelog (#54)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* 🚀 feat: Enhance S3 URL Expiry with Refresh; fix: S3 File Deletion (#6647)

* refactor: Improve error logging in image fetching to base64 conversion

* fix: Add error handling for custom endpoint configuration retrieval

* fix: Update audio stream processing to parse text parts from complex message content

* chore: import order in streamAudio

* fix: S3 file deletion and optimize file upload

* feat: Implement S3 URL refresh mechanism and add cache for expiry check intervals

* feat: Add S3 URL refresh functionality for agent avatars

* chore: remove unnecessary console.log in MultiMessage component

* chore: update version of librechat-data-provider to 0.7.77

* 🌍 i18n: Update translation.json with latest translations (#6530)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* 🚀 feat: enhance UI components and refactor settings (#6625)

* 🚀 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 <[email protected]>

* 💬 feat: move Temporary Chat to the Header (#6646)

* 🚀 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 c…
jmaddington referenced this pull request in jmaddington/LibreChat Apr 2, 2025
* 📸 feat: Add support for Black Labs Flux AI

This commit code was mostly generated by ChatGPT o1-preview, using the DALLE3 plugin as a guide.

* 📸 feat: Add support for Black Labs Flux AI

This commit code was mostly generated by ChatGPT o1-preview, using the DALLE3 plugin as a guide.

* 📸 feat: Update .env.example and manifest.json for Flux API integration

* Flux ai (#1)

* 📸 feat: Add support for Black Labs Flux AI

This commit code was mostly generated by ChatGPT o1-preview, using the DALLE3 plugin as a guide.

* Flux ai (#1) (#3)

* 📸 feat: Add support for Black Labs Flux AI

This commit code was mostly generated by ChatGPT o1-preview, using the DALLE3 plugin as a guide.

* 📸 fix: Add missing FluxAPI to available tools in the client module

* 🌐 feat: Add CurlPlugin to tools and update manifest for integration

* 📸 refactor: Enhance CurlPlugin with improved guidelines and additional parameters for better HTTP request handling

* 📸 feat: Enhance CurlPlugin guidelines and add support for including specific HTML attributes in responses

It's pretty easy to return too many tokens to the LLM, we're trying to cut down on that as much as possible

* feat: Update CurlPlugin guidelines to exclude additional HTML tags and attributes

* refactor: Rename CurlPlugin to WebNavigator and update references throughout the codebase

* fix: Add new WebNavigator icon path in manifest.json

* Flux ai - bug fixes (#4)

* 📸 feat: Add support for Black Labs Flux AI

This commit code was mostly generated by ChatGPT o1-preview, using the DALLE3 plugin as a guide.

* 📸 feat: Add support for Black Labs Flux AI

This commit code was mostly generated by ChatGPT o1-preview, using the DALLE3 plugin as a guide.

* 📸 feat: Update .env.example and manifest.json for Flux API integration

* 📸 fix: Add missing FluxAPI to available tools in the client module

* fix: Correct syntax by adding missing semicolon for FluxAPI import

* fix: Remove unnecessary comment from toolAuthFields in handleTools.js

* fix: Remove redundant comment in handleTools.js

* docs: update readme with info on this fork

* Fix: fix mistaken lines in merge

* fix: change vite bind to work in docker, update devcontainer exposted ports

* feat: init commit of e2b code interpreter plugin

* feat: add multiple e2b SDK commands

* fix: reverting back to init commit

* feat: misc fixes

* feat: add 'kill' action to E2BCode tool for managing sandboxes

* feat: enhance E2BCode tool with environment variable support for sandbox creation and execution

* feat: add background task support and command management to E2BCode tool

* feat: add 'set_timeout' action to E2BCode tool for managing sandbox timeout

* feat: enhance E2BCode tool with hidden environment variable support and improve documentation

* docs: add documentation for E2BCode plugin integration with LibreChat

* feat: add GitHub Actions workflow for Docker build and push to GHCR

* feat: add GitHub Actions workflow for Docker build and push to GHCR

* fix indent in deploy workflow

* fix: update checkout action to use 'with' syntax for ref

* fix: update checkout action to use 'with' syntax for ref

* Feat/new/e2bcode (#17)

Add support for e2b.dev code interpreter (Sandbox environment).

* fix: enhance E2BCode prompt with detailed action descriptions and usage notes

* docs: update README to include E2B.dev code interpreter and plugins list

* docs: update README with E2B.dev rationale and additional plugins; enhance E2BCode usage notes

* docs: enhance E2BCode documentation with subprocess usage and file transfer instructions

* e2bcode bugfix (#18)

* docs: enhance E2BCode documentation with subprocess usage and file transfer instructions

* fix: change description too-long for tools and move to new help action

* Merge upstream into jm-production (#19)

* 🙌 a11y: Accessibility Improvements (#4978)

* 🔃 fix: Safeguard against null token in SSE refresh token handling

* 🔃 fix: Update import path for AnnounceOptions in LiveAnnouncer component

* 🔃 a11y: Add aria-live attribute for accessibility in error messages

* fix: prevent double screen reader notification for toast

* 🔃 a11y: Enhance accessibility for main menus and buttons with ARIA roles and labels

* refactor: better alt text for logo on login page #4095

* refactor: remove unused import for DropdownNoState in Voices component

* fix: Focus management issue in the Export Options Modal #4100

* 🐛 fix: Enforced Model Spec Icons/Labels and Agent Descriptions (#4979)

* fix: Previous convos missing model spec info when enforce is set to `true` #4749

* refactor: Include description field in agent list response

* 🔧 fix: Add modelLabel to OpenAIClient and PluginsClient options (#4995)

---------

Co-authored-by: Danny Avila <[email protected]>

* Merge latest New/feature/e2bcode (#20)

* 🙌 a11y: Accessibility Improvements (#4978)

* 🔃 fix: Safeguard against null token in SSE refresh token handling

* 🔃 fix: Update import path for AnnounceOptions in LiveAnnouncer component

* 🔃 a11y: Add aria-live attribute for accessibility in error messages

* fix: prevent double screen reader notification for toast

* 🔃 a11y: Enhance accessibility for main menus and buttons with ARIA roles and labels

* refactor: better alt text for logo on login page #4095

* refactor: remove unused import for DropdownNoState in Voices component

* fix: Focus management issue in the Export Options Modal #4100

* 🐛 fix: Enforced Model Spec Icons/Labels and Agent Descriptions (#4979)

* fix: Previous convos missing model spec info when enforce is set to `true` #4749

* refactor: Include description field in agent list response

* docs: enhance E2BCode documentation with subprocess usage and file transfer instructions

* 🔧 fix: Add modelLabel to OpenAIClient and PluginsClient options (#4995)

* fix: change description too-long for tools and move to new help action

* refactor: move some if stmts into the switfh block

* feat: Add command_run

* feat: add start_server command

* refactor: refactor how we list and kill sandboxes to work better

* refactor: add clearer instructions on max commands limit to avoid recursion errors with langchain

* refactor: change how we handle sandbox kills

* refactor: add processinfo(), system_install and comment out shell, read more...

The LLMs are consistently using the shell function instead of the command_run and end up timing out on the api as a result. Taking away the shell functionality is a test at this point to see if we get better performance.

* refactor: add user, cwd to create; set default timeout to 60mins

---------

Co-authored-by: Danny Avila <[email protected]>

* Merge latest changes from New/feature/e2bcode into jm-production (#21)

* 🙌 a11y: Accessibility Improvements (#4978)

* 🔃 fix: Safeguard against null token in SSE refresh token handling

* 🔃 fix: Update import path for AnnounceOptions in LiveAnnouncer component

* 🔃 a11y: Add aria-live attribute for accessibility in error messages

* fix: prevent double screen reader notification for toast

* 🔃 a11y: Enhance accessibility for main menus and buttons with ARIA roles and labels

* refactor: better alt text for logo on login page #4095

* refactor: remove unused import for DropdownNoState in Voices component

* fix: Focus management issue in the Export Options Modal #4100

* 🐛 fix: Enforced Model Spec Icons/Labels and Agent Descriptions (#4979)

* fix: Previous convos missing model spec info when enforce is set to `true` #4749

* refactor: Include description field in agent list response

* docs: enhance E2BCode documentation with subprocess usage and file transfer instructions

* 🔧 fix: Add modelLabel to OpenAIClient and PluginsClient options (#4995)

* fix: change description too-long for tools and move to new help action

* refactor: move some if stmts into the switch block

* feat: Add command_run

* feat: add start_server command

* refactor: refactor how we list and kill sandboxes to work better

* refactor: add clearer instructions on max commands limit to avoid recursion errors with langchain

* refactor: change how we handle sandbox kills

* refactor: add processinfo(), system_install and comment out shell, read more...

The LLMs are consistently using the shell function instead of the command_run and end up timing out on the api as a result. Taking away the shell functionality is a test at this point to see if we get better performance.

* refactor: add user, cwd to create; set default timeout to 60mins

* TESTING to see if this increases the langchain recursion limit

I'm not at all sure I have the correct line

* refactor: add shell back, remove execute

Execute looks geared towards Jupyter notebooks, which is not what I am aiming for here.

---------

Co-authored-by: Danny Avila <[email protected]>

* Sybc Flux ai with tracking (#25)

* fix: Correct syntax by adding missing semicolon for FluxAPI import

* fix: Remove unnecessary comment from toolAuthFields in handleTools.js

* feat: 🌤️Add OpenWeather tool and corresponding tests

* test: 🌧️Add integration tests for OpenWeather tool

* refactor: remove other tools from this branch

* feat: 🌤️Add OpenWeather tool and corresponding tests

* test: 🌧️Add integration tests for OpenWeather tool

* Update index.js

fix: remove merge conflict artifact

* fix: 🐛Add missing comma for FluxAPI in tools index

* Merge latest New/feature/e2bcode (#20)

* 🙌 a11y: Accessibility Improvements (#4978)

* 🔃 fix: Safeguard against null token in SSE refresh token handling

* 🔃 fix: Update import path for AnnounceOptions in LiveAnnouncer component

* 🔃 a11y: Add aria-live attribute for accessibility in error messages

* fix: prevent double screen reader notification for toast

* 🔃 a11y: Enhance accessibility for main menus and buttons with ARIA roles and labels

* refactor: better alt text for logo on login page #4095

* refactor: remove unused import for DropdownNoState in Voices component

* fix: Focus management issue in the Export Options Modal #4100

* 🐛 fix: Enforced Model Spec Icons/Labels and Agent Descriptions (#4979)

* fix: Previous convos missing model spec info when enforce is set to `true` #4749

* refactor: Include description field in agent list response

* docs: enhance E2BCode documentation with subprocess usage and file transfer instructions

* 🔧 fix: Add modelLabel to OpenAIClient and PluginsClient options (#4995)

* fix: change description too-long for tools and move to new help action

* refactor: move some if stmts into the switfh block

* feat: Add command_run

* feat: add start_server command

* refactor: refactor how we list and kill sandboxes to work better

* refactor: add clearer instructions on max commands limit to avoid recursion errors with langchain

* refactor: change how we handle sandbox kills

* refactor: add processinfo(), system_install and comment out shell, read more...

The LLMs are consistently using the shell function instead of the command_run and end up timing out on the api as a result. Taking away the shell functionality is a test at this point to see if we get better performance.

* refactor: add user, cwd to create; set default timeout to 60mins

---------

Co-authored-by: Danny Avila <[email protected]>

* refactor: update help for LLM

* feat: add support for e2b sanedbox templates

* feat: implement output truncation for large responses in E2BCode

* Merge upstream into jm-production

* chore: require authentication for E2BCode plugin and add e2b logo

* chore: enhance sandbox creation logic with template fallback and detailed response message

* fix: removed e2b_symbol.png in wrong place

* Squashed commit of the following:

commit 84eeb69596e074f5d0c3a7dcc852ccad8ffd8169
Author: Jonathan Addington <[email protected]>
Date:   Sat Dec 21 03:54:18 2024 +0000

    fix: removed e2b_symbol.png in wrong place

commit 7ad7f5008079523d242ec181e59abb0d878a4706
Author: Jonathan Addington <[email protected]>
Date:   Sat Dec 21 03:29:47 2024 +0000

    chore: enhance sandbox creation logic with template fallback and detailed response message

commit d4d46e96de313fd1ca292fc1f3cf53152dd8648e
Author: Jonathan Addington <[email protected]>
Date:   Sat Dec 21 03:37:41 2024 +0000

    chore: require authentication for E2BCode plugin and add e2b logo

commit ac507bd79873aec3c765eabe8ce2b9a611910596
Author: Jonathan Addington <[email protected]>
Date:   Fri Dec 20 14:34:18 2024 +0000

    Merge upstream into jm-production

commit 332a947cdf2e88399005b210b898f2e7ae4ed6d8
Author: Jonathan Addington <[email protected]>
Date:   Thu Dec 19 22:02:30 2024 +0000

    feat: implement output truncation for large responses in E2BCode

commit 78caf5c451103c3e5ce1cbb4f37a1775681d5025
Author: Jonathan Addington <[email protected]>
Date:   Wed Dec 18 16:40:30 2024 +0000

    feat: add support for e2b sanedbox templates

commit 374822c427f4cc2719849dc123b6eab858306d6e
Author: Jonathan Addington <[email protected]>
Date:   Tue Dec 17 14:36:23 2024 +0000

    refactor: update help for LLM

commit 55350ae9fb8215e226b5e8ab50ab4441e899a793
Author: JM Addington <[email protected]>
Date:   Mon Dec 16 13:41:28 2024 -0500

    Merge latest New/feature/e2bcode (#20)

    * 🙌 a11y: Accessibility Improvements (#4978)

    * 🔃 fix: Safeguard against null token in SSE refresh token handling

    * 🔃 fix: Update import path for AnnounceOptions in LiveAnnouncer component

    * 🔃 a11y: Add aria-live attribute for accessibility in error messages

    * fix: prevent double screen reader notification for toast

    * 🔃 a11y: Enhance accessibility for main menus and buttons with ARIA roles and labels

    * refactor: better alt text for logo on login page #4095

    * refactor: remove unused import for DropdownNoState in Voices component

    * fix: Focus management issue in the Export Options Modal #4100

    * 🐛 fix: Enforced Model Spec Icons/Labels and Agent Descriptions (#4979)

    * fix: Previous convos missing model spec info when enforce is set to `true` #4749

    * refactor: Include description field in agent list response

    * docs: enhance E2BCode documentation with subprocess usage and file transfer instructions

    * 🔧 fix: Add modelLabel to OpenAIClient and PluginsClient options (#4995)

    * fix: change description too-long for tools and move to new help action

    * refactor: move some if stmts into the switfh block

    * feat: Add command_run

    * feat: add start_server command

    * refactor: refactor how we list and kill sandboxes to work better

    * refactor: add clearer instructions on max commands limit to avoid recursion errors with langchain

    * refactor: change how we handle sandbox kills

    * refactor: add processinfo(), system_install and comment out shell, read more...

    The LLMs are consistently using the shell function instead of the command_run and end up timing out on the api as a result. Taking away the shell functionality is a test at this point to see if we get better performance.

    * refactor: add user, cwd to create; set default timeout to 60mins

    ---------

    Co-authored-by: Danny Avila <[email protected]>

commit 62facd16fea1aecc1ae20a4a89cb534cc351796c
Author: Jonathan Addington <[email protected]>
Date:   Wed Dec 18 16:00:56 2024 +0000

    fix: 🐛Add missing comma for FluxAPI in tools index

commit dd51d153c6d38451786f6ddaec366274b58a0c08
Author: JM Addington <[email protected]>
Date:   Wed Dec 18 10:45:38 2024 -0500

    Update index.js

    fix: remove merge conflict artifact

commit 531a41233636c207ebf751d6dbd6dc745e54e0bb
Merge: ea38c280 4a734184
Author: Jonathan Addington <[email protected]>
Date:   Tue Dec 17 22:33:26 2024 +0000

    Merge branch 'jm-production' of https://github.com/jmaddington/LibreChat into jm-production

commit ea38c2804aebbd39060a4b402c530e11b5ca281d
Author: Jonathan Addington <[email protected]>
Date:   Tue Dec 17 20:23:11 2024 +0000

    test: 🌧️Add integration tests for OpenWeather tool

commit d86568b8c19bcda9e205b122c6317e3a8c178e70
Author: Jonathan Addington <[email protected]>
Date:   Tue Dec 17 20:07:32 2024 +0000

    feat: 🌤️Add OpenWeather tool and corresponding tests

commit 4a73418480c7ff6d68b5c0e552570b2870332ecd
Author: JM Addington <[email protected]>
Date:   Tue Dec 17 11:07:40 2024 -0500

    Sybc Flux ai with tracking (#25)

    * fix: Correct syntax by adding missing semicolon for FluxAPI import

    * fix: Remove unnecessary comment from toolAuthFields in handleTools.js

commit b526d2bc7bc4d2b008a234d7605ab762d3055851
Merge: a50c2ea5 609542b8
Author: Jonathan Addington <[email protected]>
Date:   Tue Dec 17 15:18:03 2024 +0000

    Merge branch 'jm-production' of https://github.com/jmaddington/LibreChat into jm-production

commit 609542b894b21d84dc8d31d646f9cee0a960c0bf
Author: JM Addington <[email protected]>
Date:   Tue Dec 17 09:06:54 2024 -0500

    Merge latest changes from New/feature/e2bcode into jm-production (#21)

    * 🙌 a11y: Accessibility Improvements (#4978)

    * 🔃 fix: Safeguard against null token in SSE refresh token handling

    * 🔃 fix: Update import path for AnnounceOptions in LiveAnnouncer component

    * 🔃 a11y: Add aria-live attribute for accessibility in error messages

    * fix: prevent double screen reader notification for toast

    * 🔃 a11y: Enhance accessibility for main menus and buttons with ARIA roles and labels

    * refactor: better alt text for logo on login page #4095

    * refactor: remove unused import for DropdownNoState in Voices component

    * fix: Focus management issue in the Export Options Modal #4100

    * 🐛 fix: Enforced Model Spec Icons/Labels and Agent Descriptions (#4979)

    * fix: Previous convos missing model spec info when enforce is set to `true` #4749

    * refactor: Include description field in agent list response

    * docs: enhance E2BCode documentation with subprocess usage and file transfer instructions

    * 🔧 fix: Add modelLabel to OpenAIClient and PluginsClient options (#4995)

    * fix: change description too-long for tools and move to new help action

    * refactor: move some if stmts into the switch block

    * feat: Add command_run

    * feat: add start_server command

    * refactor: refactor how we list and kill sandboxes to work better

    * refactor: add clearer instructions on max commands limit to avoid recursion errors with langchain

    * refactor: change how we handle sandbox kills

    * refactor: add processinfo(), system_install and comment out shell, read more...

    The LLMs are consistently using the shell function instead of the command_run and end up timing out on the api as a result. Taking away the shell functionality is a test at this point to see if we get better performance.

    * refactor: add user, cwd to create; set default timeout to 60mins

    * TESTING to see if this increases the langchain recursion limit

    I'm not at all sure I have the correct line

    * refactor: add shell back, remove execute

    Execute looks geared towards Jupyter notebooks, which is not what I am aiming for here.

    ---------

    Co-authored-by: Danny Avila <[email protected]>

commit 5002691cf9f0432fd1d5486398cab586d5722a16
Author: JM Addington <[email protected]>
Date:   Mon Dec 16 13:41:28 2024 -0500

    Merge latest New/feature/e2bcode (#20)

    * 🙌 a11y: Accessibility Improvements (#4978)

    * 🔃 fix: Safeguard against null token in SSE refresh token handling

    * 🔃 fix: Update import path for AnnounceOptions in LiveAnnouncer component

    * 🔃 a11y: Add aria-live attribute for accessibility in error messages

    * fix: prevent double screen reader notification for toast

    * 🔃 a11y: Enhance accessibility for main menus and buttons with ARIA roles and labels

    * refactor: better alt text for logo on login page #4095

    * refactor: remove unused import for DropdownNoState in Voices component

    * fix: Focus management issue in the Export Options Modal #4100

    * 🐛 fix: Enforced Model Spec Icons/Labels and Agent Descriptions (#4979)

    * fix: Previous convos missing model spec info when enforce is set to `true` #4749

    * refactor: Include description field in agent list response

    * docs: enhance E2BCode documentation with subprocess usage and file transfer instructions

    * 🔧 fix: Add modelLabel to OpenAIClient and PluginsClient options (#4995)

    * fix: change description too-long for tools and move to new help action

    * refactor: move some if stmts into the switfh block

    * feat: Add command_run

    * feat: add start_server command

    * refactor: refactor how we list and kill sandboxes to work better

    * refactor: add clearer instructions on max commands limit to avoid recursion errors with langchain

    * refactor: change how we handle sandbox kills

    * refactor: add processinfo(), system_install and comment out shell, read more...

    The LLMs are consistently using the shell function instead of the command_run and end up timing out on the api as a result. Taking away the shell functionality is a test at this point to see if we get better performance.

    * refactor: add user, cwd to create; set default timeout to 60mins

    ---------

    Co-authored-by: Danny Avila <[email protected]>

commit dd379a28e2c351dd863c4930aaf1a2d2adf7898c
Author: JM Addington <[email protected]>
Date:   Sat Dec 14 21:42:20 2024 -0500

    Merge upstream into jm-production (#19)

    * 🙌 a11y: Accessibility Improvements (#4978)

    * 🔃 fix: Safeguard against null token in SSE refresh token handling

    * 🔃 fix: Update import path for AnnounceOptions in LiveAnnouncer component

    * 🔃 a11y: Add aria-live attribute for accessibility in error messages

    * fix: prevent double screen reader notification for toast

    * 🔃 a11y: Enhance accessibility for main menus and buttons with ARIA roles and labels

    * refactor: better alt text for logo on login page #4095

    * refactor: remove unused import for DropdownNoState in Voices component

    * fix: Focus management issue in the Export Options Modal #4100

    * 🐛 fix: Enforced Model Spec Icons/Labels and Agent Descriptions (#4979)

    * fix: Previous convos missing model spec info when enforce is set to `true` #4749

    * refactor: Include description field in agent list response

    * 🔧 fix: Add modelLabel to OpenAIClient and PluginsClient options (#4995)

    ---------

    Co-authored-by: Danny Avila <[email protected]>

commit ec27ff78f9953e24901753a59677d5e9c05ef3a2
Author: JM Addington <[email protected]>
Date:   Sat Dec 14 21:40:25 2024 -0500

    e2bcode bugfix (#18)

    * docs: enhance E2BCode documentation with subprocess usage and file transfer instructions

    * fix: change description too-long for tools and move to new help action

commit a50c2ea5e26b5e5236bc40531a2c01303dc100a9
Author: Jonathan Addington <[email protected]>
Date:   Sat Dec 14 00:19:06 2024 +0000

    docs: enhance E2BCode documentation with subprocess usage and file transfer instructions

commit 182b96ada9e8b3446b0a5bf7fc702f73df51d02c
Author: Jonathan Addington <[email protected]>
Date:   Fri Dec 13 20:31:15 2024 +0000

    docs: update README with E2B.dev rationale and additional plugins; enhance E2BCode usage notes

commit 8ef386635e227c5a71dc5ad22c45729ff1172ac8
Author: Jonathan Addington <[email protected]>
Date:   Fri Dec 13 20:26:40 2024 +0000

    docs: update README to include E2B.dev code interpreter and plugins list

commit debe367c794a5258b297349b8c8c52239bf6a6ec
Merge: 6b3548f1 b6eebf2d
Author: Jonathan Addington <[email protected]>
Date:   Fri Dec 13 20:14:43 2024 +0000

    Merge branch 'main' into jm-production

commit b6eebf2df4a39b3034283e0da8fa1c4f08788023
Merge: 0ce422a4 763693cc
Author: Jonathan Addington <[email protected]>
Date:   Fri Dec 13 15:14:29 2024 -0500

    Merge branch 'main' of https://github.com/jmaddington/LibreChat

commit 6b3548f12249186609b14929473bf4361e281625
Merge: 943bac35 0ce422a4
Author: Jonathan Addington <[email protected]>
Date:   Fri Dec 13 20:13:45 2024 +0000

    Merge branch 'main' into jm-production

commit 943bac350c9da66a6907e51be8e353c2aeb07500
Author: Jonathan Addington <[email protected]>
Date:   Fri Dec 13 20:09:10 2024 +0000

    fix: enhance E2BCode prompt with detailed action descriptions and usage notes

commit 9e998d68a98b7f93303853f7d6803e6ec8f322c3
Merge: f18cdc0c 8510262f
Author: Jonathan Addington <[email protected]>
Date:   Fri Dec 13 20:03:20 2024 +0000

    Merge branch 'feat/new/e2bcode' into jm-production

commit f18cdc0cf0d2d07f8547c7feab79d3d0005fddb0
Author: JM Addington <[email protected]>
Date:   Fri Dec 13 14:23:50 2024 -0500

    Feat/new/e2bcode (#17)

    Add support for e2b.dev code interpreter (Sandbox environment).

commit d7551cf6320df474b800a7c77f0d2b3578197609
Merge: 2db7006c 20b91ad0
Author: Jonathan Addington <[email protected]>
Date:   Fri Dec 13 19:05:28 2024 +0000

    Merge branch 'jm-production' of https://github.com/jmaddington/LibreChat into jm-production

commit 2db7006cdcb968434ea63ecce30ca016a4eecb33
Author: Jonathan Addington <[email protected]>
Date:   Fri Dec 13 19:04:36 2024 +0000

    fix: update checkout action to use 'with' syntax for ref

commit 20b91ad04981904336c93fdb3d7b67e93750c0a9
Author: Jonathan Addington <[email protected]>
Date:   Fri Dec 13 19:04:36 2024 +0000

    fix: update checkout action to use 'with' syntax for ref

commit d1ccebc28996503591cfed9c63e57ef3cabf8482
Merge: b5062a45 b9764a8d
Author: Jonathan Addington <[email protected]>
Date:   Fri Dec 13 14:03:55 2024 -0500

    Merge branch 'jm-production' of https://github.com/jmaddington/LibreChat into jm-production

commit b9764a8d3272abef9972afbca48bc16aa229fcfa
Author: JM Addington <[email protected]>
Date:   Fri Dec 13 14:03:09 2024 -0500

    fix indent in deploy workflow

commit b5062a45d3a03b84b2ea8b66635a25fb43bc2345
Author: Jonathan Addington <[email protected]>
Date:   Fri Dec 13 18:41:19 2024 +0000

    feat: add GitHub Actions workflow for Docker build and push to GHCR

commit 697bb4546deee88d761aad291e373e4e5b85b9af
Author: Jonathan Addington <[email protected]>
Date:   Fri Dec 13 18:41:19 2024 +0000

    feat: add GitHub Actions workflow for Docker build and push to GHCR

commit 8510262fb62e96fddc01f726eefc7e792e018e6b
Author: Jonathan Addington <[email protected]>
Date:   Fri Dec 13 18:09:25 2024 +0000

    docs: add documentation for E2BCode plugin integration with LibreChat

commit f58a5c077228019bc1817c083af5824b7de0db0c
Author: Jonathan Addington <[email protected]>
Date:   Fri Dec 13 18:02:19 2024 +0000

    feat: enhance E2BCode tool with hidden environment variable support and improve documentation

commit 66a4820e3fcd8c89843fb41350ed1b54b97a14d3
Author: Jonathan Addington <[email protected]>
Date:   Fri Dec 13 17:53:19 2024 +0000

    feat: add 'set_timeout' action to E2BCode tool for managing sandbox timeout

commit fef7a060ae4a0b015371341cb7f40c54138b8508
Author: Jonathan Addington <[email protected]>
Date:   Fri Dec 13 17:43:11 2024 +0000

    feat: add background task support and command management to E2BCode tool

commit 14058b20015b9c5805bfc6a0c759a1676a2338fa
Author: Jonathan Addington <[email protected]>
Date:   Fri Dec 13 17:31:10 2024 +0000

    feat: enhance E2BCode tool with environment variable support for sandbox creation and execution

commit aa5e78f7fbbc399c595d25696a258592b4990ce6
Author: Jonathan Addington <[email protected]>
Date:   Fri Dec 13 17:24:26 2024 +0000

    feat: add 'kill' action to E2BCode tool for managing sandboxes

commit c213690e4c5f8d7d4a4d9f167e38b27a22efb6ae
Author: Jonathan Addington <[email protected]>
Date:   Fri Dec 13 16:58:43 2024 +0000

    feat: misc fixes

commit a9298786d4f16c0bd902225d8664b279ec909b83
Author: Jonathan Addington <[email protected]>
Date:   Fri Dec 13 14:50:21 2024 +0000

    fix: reverting back to init commit

commit e9ff7e63f6ec3f0ea73df3535295326d24a47367
Author: Jonathan Addington <[email protected]>
Date:   Thu Dec 12 16:42:59 2024 +0000

    feat: add multiple e2b SDK commands

commit 216c47ab571ecd51b7acfe467738f6b658ce07e1
Author: Jonathan Addington <[email protected]>
Date:   Thu Dec 12 16:17:31 2024 +0000

    feat: init commit of e2b code interpreter plugin

commit 0ce422a47c4b8e00fd5d0fb704ec4c1974611a4b
Author: Jonathan Addington <[email protected]>
Date:   Wed Dec 11 17:13:49 2024 +0000

    fix: change vite bind to work in docker, update devcontainer exposted ports

commit 9df7c10293018753cd940ee5fd8f371987482503
Author: Jonathan Addington <[email protected]>
Date:   Mon Dec 9 13:41:05 2024 +0000

    Fix: fix mistaken lines in merge

commit 0e8e274ced145be58a685cfe8862b33a23a3d31c
Merge: dd32f4aa cd1184a3
Author: JM Addington <[email protected]>
Date:   Mon Dec 9 07:52:45 2024 -0500

    Merge branch 'tracking/13-tracking-branch-merge' into jm-production

commit dd32f4aa0c7cddaf1a8078d890354b36af4cdd40
Author: Jonathan Addington <[email protected]>
Date:   Mon Dec 9 12:47:44 2024 +0000

    docs: update readme with info on this fork

commit 4bb349bf1ec52b8ccbe403ec6944dc4bfd39c9ca
Merge: 229aa2c6 69d621d5
Author: Jonathan Addington <[email protected]>
Date:   Sat Dec 7 17:41:53 2024 +0000

    Merge remote-tracking branch 'origin/new/feature/flux-ai' into jm-production

commit 229aa2c61edf048265f7fef570dfadfa8307b0e9
Merge: 1a815f5e 863eb5f7
Author: Jonathan Addington <[email protected]>
Date:   Sat Dec 7 17:40:36 2024 +0000

    Merge remote-tracking branch 'origin/new/feature/curl' into jm-production

commit 863eb5f7de6b07066a63fe9693a65534b8d87127
Author: Jonathan Addington <[email protected]>
Date:   Mon Nov 18 18:34:21 2024 -0500

    fix: Remove redundant comment in handleTools.js

commit fa33ab4f3ef8c2d8bbf6263dd6aa06eb719e21e3
Merge: 2140c97e d8dd93f6
Author: JM Addington <[email protected]>
Date:   Mon Nov 18 18:29:48 2024 -0500

    Merge branch 'jm-publish' into new/feature/curl

commit d8dd93f61303efd1733e85d1058393b6da22ad00
Author: JM Addington <[email protected]>
Date:   Mon Nov 18 18:26:22 2024 -0500

    Flux ai - bug fixes (#4)

    * 📸 feat: Add support for Black Labs Flux AI

    This commit code was mostly generated by ChatGPT o1-preview, using the DALLE3 plugin as a guide.

    * 📸 feat: Add support for Black Labs Flux AI

    This commit code was mostly generated by ChatGPT o1-preview, using the DALLE3 plugin as a guide.

    * 📸 feat: Update .env.example and manifest.json for Flux API integration

    * 📸 fix: Add missing FluxAPI to available tools in the client module

    * fix: Correct syntax by adding missing semicolon for FluxAPI import

    * fix: Remove unnecessary comment from toolAuthFields in handleTools.js

commit 2140c97e8dbeda6f76f735ee6d59cb5883c4ee15
Author: Jonathan Addington <[email protected]>
Date:   Mon Nov 18 18:21:46 2024 -0500

    fix: Add new WebNavigator icon path in manifest.json

commit aacd4ef46689a894738caf97bb7ae5e20e476486
Author: Jonathan Addington <[email protected]>
Date:   Mon Nov 18 17:32:29 2024 -0500

    refactor: Rename CurlPlugin to WebNavigator and update references throughout the codebase

commit 3aef7dbc3c403fc8ae7047e0a2c1eb1943f8c3e2
Author: Jonathan Addington <[email protected]>
Date:   Mon Nov 18 17:31:09 2024 -0500

    feat: Update CurlPlugin guidelines to exclude additional HTML tags and attributes

commit 430ae6569ef11fc6bae8dcecb4fb7024ec1ed6dd
Author: Jonathan Addington <[email protected]>
Date:   Mon Nov 18 17:09:03 2024 -0500

    📸 feat: Enhance CurlPlugin guidelines and add support for including specific HTML attributes in responses

    It's pretty easy to return too many tokens to the LLM, we're trying to cut down on that as much as possible

commit c5e82b906d115e13813bc42e88e780965382cb33
Author: Jonathan Addington <[email protected]>
Date:   Mon Nov 18 17:02:05 2024 -0500

    📸 refactor: Enhance CurlPlugin with improved guidelines and additional parameters for better HTTP request handling

commit a0c8df192c17a9b4b59aaa593c340cb80716cc27
Author: Jonathan Addington <[email protected]>
Date:   Mon Nov 18 16:54:43 2024 -0500

    🌐 feat: Add CurlPlugin to tools and update manifest for integration

commit 98c0dd6f2079f145583982b40f160c409bdde165
Author: Jonathan Addington <[email protected]>
Date:   Mon Nov 18 10:56:45 2024 -0500

    📸 fix: Add missing FluxAPI to available tools in the client module

commit 78ca8ed608887ee3d9c204f8fe14714659e54fbe
Author: JM Addington <[email protected]>
Date:   Mon Nov 18 10:09:24 2024 -0500

    Flux ai (#1) (#3)

    * 📸 feat: Add support for Black Labs Flux AI

    This commit code was mostly generated by ChatGPT o1-preview, using the DALLE3 plugin as a guide.

commit 69d621d591b870303593f1656fceff903d5ce325
Author: JM Addington <[email protected]>
Date:   Mon Nov 18 09:22:58 2024 -0500

    Flux ai (#1)

    * 📸 feat: Add support for Black Labs Flux AI

    This commit code was mostly generated by ChatGPT o1-preview, using the DALLE3 plugin as a guide.

commit 53d02803a8a389e361c1f66e4d356bbbbda4eeb0
Author: Jonathan Addington <[email protected]>
Date:   Mon Nov 18 09:13:20 2024 -0500

    📸 feat: Update .env.example and manifest.json for Flux API integration

commit 6582880e5ca897cf05dded7ce73e74f6eb2929a4
Merge: e58d66a5 655b2843
Author: Jonathan Addington <[email protected]>
Date:   Mon Nov 18 08:53:32 2024 -0500

    Merge branch 'flux-ai' of https://github.com/jmaddington/LibreChat into flux-ai

commit e58d66a540ba70f2f8dab4e986a0e2102000058e
Merge: 8f05031d ef83e4c4
Author: Jonathan Addington <[email protected]>
Date:   Mon Nov 18 08:07:57 2024 -0500

    Merge branch 'flux-ai' of https://github.com/jmaddington/LibreChat into flux-ai

commit 655b28436e489efcb0b07b40fbf125e8d2e86360
Merge: 8f05031d ef83e4c4
Author: Jonathan Addington <[email protected]>
Date:   Mon Nov 18 08:07:57 2024 -0500

    Merge branch 'flux-ai' of https://github.com/jmaddington/LibreChat into flux-ai

commit 8f05031df71d4594b6e9799a581b0fb723e38c1c
Author: Jonathan Addington <[email protected]>
Date:   Sun Nov 17 15:33:12 2024 -0500

    📸 feat: Add support for Black Labs Flux AI

    This commit code was mostly generated by ChatGPT o1-preview, using the DALLE3 plugin as a guide.

commit ef83e4c4916df58f66f196a962003ac66b06b6ec
Author: Jonathan Addington <[email protected]>
Date:   Sun Nov 17 15:33:12 2024 -0500

    📸 feat: Add support for Black Labs Flux AI

    This commit code was mostly generated by ChatGPT o1-preview, using the DALLE3 plugin as a guide.

* docs: add OpenWeather plugin to tools list and clean up imports in handleTools.js

* Test: Update deploy-jm.yml to specify dockerfile.multi

* Fix: fix capitalization in deploy-jm.yml

* refactor: make sure we return errors to LLM, not just logger

* fix: ensure sessionId is passed correctly in error responses

* refactor: improve FluxAPI constructor and enhance image generation error handling

* fix: update FluxAPI LLM instructions to clarify image generation and response structure

* Update OpenWeather.js

* Fix: fix class and import extends

* chore: add correct icon for OpenWeather; update tests

* feat: add template loading from YAML file and list_templates action

* feat: enhance FluxAPI to load descriptions from YAML file and improve prompt guidelines. Addresses -- but doesn't close #29, #33 and #34

* ⏰ feat: Add TimeAPI tool for current time retrieval and calculations

* chore: Add elliptic and cheerio dependencies to package.json

* Add build-local.sh script for local build validation

* Add build-gh-test.sh script for pre-push hook

* Merge upstream/master into jm-production (#58)

Builds locally, merging.

* 🧠 feat: Reasoning UI for Agents (#5904)

* chore: bump https-proxy-agent and @librechat/agents

* refactor: Improve error logging in OllamaClient for API fetch failures

* feat: Add DeepSeek provider support and enhance provider name handling

* refactor: Use Providers.OLLAMA constant for model name check in fetchModels function

* feat: Enhance formatAgentMessages to handle reasoning content type

* feat: OpenRouter Agent Reasoning

* hard work and dedicationgit add .env.example :)

* fix: Handle Google social login with missing last name

Social login with Google was previously displaying 'undefined' when
a user's last name was empty or not provided.

Changes:
- Conditionally render last name only if it exists
- Prevent displaying 'undefined' when last name is missing

* fix: add missing file endings for developers yml,yaml and log

---------

Co-authored-by: Mohamed Al-Duraji <[email protected]>
Co-authored-by: Deepak Kendole <[email protected]>
Co-authored-by: Peter Rothlaender <[email protected]>

* 🐞 fix: Add Null Checks for BaseURL in Agent Config (#5908)

* ⚙️ refactor: Enhance Logging, Navigation And Error Handling (#5910)

* refactor: Ensure Axios Errors are less Verbose if No Response

* refactor: Improve error handling in logAxiosError function

* fix: Prevent ModelSelect from rendering for Agent Endpoints

* refactor: Enhance logging functions with type parameter for better clarity

* refactor: Update buildDefaultConvo function to use optional endpoint parameter since we pass a default value for undefined

* refactor: Replace console logs with logger warnings and errors in useNavigateToConvo hook, and handle removed endpoint edge case

* chore: import order

* ⚖️ docs: Update LICENSE.md Year: 2024 -> 2025 (#5915)

* 🔒 feat: Two-Factor Authentication with Backup Codes & QR support (#5685)

* 🔒 feat: add Two-Factor Authentication (2FA) with backup codes & QR support (#5684)

* working version for generating TOTP and authenticate.

* better looking UI

* refactored + better TOTP logic

* fixed issue with UI

* fixed issue: remove initial setup when closing window before completion.

* added: onKeyDown for verify and disable

* refactored some code and cleaned it up a bit.

* refactored some code and cleaned it up a bit.

* refactored some code and cleaned it up a bit.

* refactored some code and cleaned it up a bit.

* fixed issue after updating to new main branch

* updated example

* refactored controllers

* removed `passport-totp` not used.

* update the generateBackupCodes function to generate 10 codes by default:

* update the backup codes to an object.

* fixed issue with backup codes not working

* be able to disable 2FA with backup codes.

* removed new env. replaced with JWT_SECRET

* ✨ style: improved a11y and style for TwoFactorAuthentication

* 🔒 fix: small types checks

* ✨ feat: improve 2FA UI components

* fix: remove unnecessary console log

* add option to disable 2FA with backup codes

* - add option to refresh backup codes
- (optional) maybe show the user which backup codes have already been used?

* removed text to be able to merge the main.

* removed eng tx to be able to merge

* fix: migrated lang to new format.

* feat: rewrote whole 2FA UI + refactored 2FA backend

* chore: resolving conflicts

* chore: resolving conflicts

* fix: missing packages, because of resolving conflicts.

* fix: UI issue and improved a11y

* fix: 2FA backup code not working

* fix: update localization keys for UI consistency

* fix: update button label to use localized text

* fix: refactor backup codes regeneration and update localization keys

* fix: remove outdated translation for shared links management

* fix: remove outdated 2FA code prompts from translation.json

* fix: add cursor styles for backup codes item based on usage state

* fix: resolve conflict issue

* fix: resolve conflict issue

* fix: resolve conflict issue

* fix: missing packages in package-lock.json

* fix: add disabled opacity to the verify button in TwoFactorScreen

* ⚙ fix: update 2FA logic to rely on backup codes instead of TOTP status

* ⚙️ fix: Simplify user retrieval in 2FA logic by removing unnecessary TOTP secret query

* ⚙️ test: Add unit tests for TwoFactorAuthController and twoFactorControllers

* ⚙️ fix: Ensure backup codes are validated as an array before usage in 2FA components

* ⚙️ fix: Update module path mappings in tests to use relative paths

* ⚙️ fix: Update moduleNameMapper in jest.config.js to remove the caret from path mapping

* ⚙️ refactor: Simplify import paths in TwoFactorAuthController and twoFactorControllers test files

* ⚙️ test: Mock twoFactorService methods in twoFactorControllers tests

* ⚙️ refactor: Comment out unused imports and mock setups in test files for two-factor authentication

* ⚙️ refactor: removed files

* refactor: Exclude totpSecret from user data retrieval in AuthController, LoginController, and jwtStrategy

* refactor: Consolidate backup code verification to apply DRY and remove default array in user schema

* refactor: Enhance two-factor authentication ux/flow with improved error handling and loading state management, prevent redirect to /login

---------

Co-authored-by: Marco Beretta <[email protected]>
Co-authored-by: Danny Avila <[email protected]>

* 🛠 refactor: Ensure File Deletions, File Naming, and Agent Resource Updates (#5928)

* refactor: Improve error logging for file upload and processing functions to prevent verbosity

* refactor: Add uploads directory to Docker Compose to persist file uploads

* refactor: `addAgentResourceFile` to handle edge case of non-existing `tool_resource` array

* refactor: Remove version specification from deploy-compose.yml

* refactor: Prefix filenames with file_id to ensure uniqueness in file uploads

* refactor: Enhance error handling in deleteVectors to log warnings for non-404 errors

* refactor: Limit file search results to top 5 based on relevance score

* 🌍 i18n: Update translation.json with latest translations

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* 🐛 fix: RAG Results Sorted By Distance (#5931)

* refactor: Extract file unlinking logic into a separate function and don't throw error

* fix: RAG results are actually in distance, not score

* 📜 ci: Automate`CHANGELOG.md` (#5838)

* feat: started with automated CHANGELOG.md

* fix: no `configuration.json` found

* refactor: `configuration.json`

* fix: missing label `configuration.json`

* fix: missing label `configuration.json`

* fix: missing label `configuration.json`

* fix: missing label `configuration.json`

* fix: missing label `configuration.json`

* ci: test new workflow action

* ci: test new workflow action

* ci: test new workflow action

* feat: working CHANGELOG.md generation

* feat: working CHANGELOG.md generation

* feat: working CHANGELOG.md generation

* feat: working CHANGELOG.md generation

* feat: working CHANGELOG.md generation

* feat: working CHANGELOG.md generation

* feat: working CHANGELOG.md generation

* fix: separate release and Unreleased workflows CHANGELOG.md generation

* fix: separate release and Unreleased workflows CHANGELOG.md generation

* fix: separate release and Unreleased workflows CHANGELOG.md generation

* fix: separate release and Unreleased workflows CHANGELOG.md generation

* fix: separate release and Unreleased workflows CHANGELOG.md generation

* fix: separate release and Unreleased workflows CHANGELOG.md generation

* fix: separate release and Unreleased workflows CHANGELOG.md generation

* fix: separate release and Unreleased workflows CHANGELOG.md generation

* fix: separate release and Unreleased workflows CHANGELOG.md generation

* fix: separate release and Unreleased workflows CHANGELOG.md generation

* fix: separate release and Unreleased workflows CHANGELOG.md generation

* fix: separate release and Unreleased workflows CHANGELOG.md generation

* fix: separate release and Unreleased workflows CHANGELOG.md generation

* fix: separate release and Unreleased workflows CHANGELOG.md generation

* fix: separate release and Unreleased workflows CHANGELOG.md generation

* fix: separate release and Unreleased workflows CHANGELOG.md generation

* fix: separate release and Unreleased workflows CHANGELOG.md generation

* fix: separate release and Unreleased workflows CHANGELOG.md generation

* fix: separate release and Unreleased workflows CHANGELOG.md generation

* fix: separate release and Unreleased workflows CHANGELOG.md generation

* fix: separate release and Unreleased workflows CHANGELOG.md generation

* fix: separate release and Unreleased workflows CHANGELOG.md generation

* fix: separate release and Unreleased workflows CHANGELOG.md generation

* refactor: only trigger the `unreleased-changelog` action on push to `main`

and `generate-release-changelog` only when pushing a tag with `v*.*.*`

* refactor: Runs only every Monday at 00:00 UTC

* 🔒 fix: 2FA Encrypt TOTP Secrets & Improve Docs (#5933)

* 🔒 fix: Integrate TOTP secret retrieval and encryption in Two-Factor Authentication

* 🔒 refactor: Simplify TOTP verification by removing commented-out code

* 🔧 fix: Resizable Panel Unmount Error & Code Env. File Re-Upload (#5947)

* 🔧 refactor: handle full path for code env. file re-upload

* fix: update react-resizable-panels to version 2.1.7 to resolve error thrown on unmount of artifacts; ref: https://github.com/bvaughn/react-resizable-panels/issues/372

* refactor: replace promptPrefix with systemMessage in GoogleClient for improved clarity, and to prevent saving LibreChat feature-specific instructions to the user's custom instructions

* ✨ style: Enhance Styling & Accessibility (#5956)

* ✨ feat: Enhance UI Components with Shadows and Accessibility Improvements

* 🔧 fix: Correct Category Labels and Values in API Model & Adjust Button Class in Prompt List

* 🔢 chore: Remove Dollar Sign from Balance Display (#5948)

* 🚀 feat: Support Redis Clusters, Trusted Proxy Setting, And Toggle Meilisearch Indexing (#5963)

* refactor: Improve MeiliSearch integration with environment-based configuration for running index sync

* chore: Remove Question issue template from GitHub repository

* feat: Enable indexing in MeiliSearch configuration and clean up error handling in indexSync

* feat: Update .env.example to include optional indexing configuration

* refactor: rename env var for disabling index sync to MEILI_NO_SYNC

* Added the option to change the default trusted proxy

* feat: Add TRUST_PROXY configuration to .env.example for reverse proxy settings

* feat: Enhance Redis support with cluster configuration and TLS options

* feat(redis): add cluster support, environment config and url mapping

- Add Redis cluster configuration with isEnabled flag
- Configure prefix and max listeners settings
- Improve code formatting and readability
- Fix URL vs host parameter handling
- Update environment variables and regex patterns

---------

Co-authored-by: Gil Assunção <[email protected]>
Co-authored-by: Pedro Reis <[email protected]>
Co-authored-by: João Trigo Soares <[email protected]>

* 👐 refactor: Agents Accessibility and Gemini Error Handling (#5972)

* style: Enhance ControlCombobox with Carat Display, ClassName, and Disabled State

* refactor(ModelPanel): replace SelectDropdown with ControlCombobox for improved accessibility

* style: Adjust padding and positioning in ModelPanel for improved layout

* style(ControlCombobox): add containerClassName and iconSide props for enhanced customization

* style(ControlCombobox): add iconClassName prop for customizable icon styling

* refactor(AgentPanel): enhance layout with new button for creating agents and adjust structure for better alignment

* refactor(AgentSelect): replace SelectDropDown with ControlCombobox for improved accessibility and layout

* feat(translation): add new translation key for improved UI clarity

* style(AgentSwitcher, AssistantSwitcher): add iconClassName prop for customizable icon styling

* refactor(AgentPanelSkeleton): improve layout of skeleton components to match new visual structure

* style(AgentPanel, AgentPanelSkeleton): add margin to flex container for improved layout consistency

* a11y(AgentSelect, ControlCombobox): add selectId prop for preventing focus going to start to page after agent selection

* fix(AgentSelect): update SELECT_ID constant for improved clarity in component identification

* fix(GoogleClient): update type annotation, add abort handling for content generation requests, catch "uncaught" abort errors and GoogleGenerativeAI errors from `@google/generative-ai`

* 🌍 i18n: Update translation.json with latest translations (#5946)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* ⚙️ ci: Trigger Restriction for `Detect Unused NPM Packages` (#5844)

The workflow now only runs on pull requests that modify:
- The root `package.json` or `package-lock.json` file
- Any file under the client folder
- Any file under the api folder

* 🤖 feat: 192x192 Icon for Android PWA (#5966)

* fix: Add 192x192 icon to allow the PWA to install on Android devices using Chrome.

* fix: Use less whitespace on icon-192x192.png. Re-generate maskable-icon.png and apple-touch-icon-180x180.png to be higher quality, cripser and use less kilobytes.

* 🌟 feat: Enhance User Experience and SEO with Accessibility Updates and robots.txt (#5392)

* 🔈 fix: Refactor AudioRecorder to use button element for improved accessibility

* 🔈 fix: Update conversation menu button ID for improved accessibility

* 🔈 fix: Remove redundant role attribute from SidePanel for improved accessibility

* feat: Add robots.txt to manage web crawler access

* feat: Update index.html with meta description and remove legacy file

* fix: resolve merge conflicts.

* fix: resolve merge conflicts.

* fix: resolve merge conflicts.

* feat: Update index.html with meta description and remove legacy file

* 🔧 feat: Add legacy support and improve SidePanel accessibility

* 🔧 feat: Integrate express-static-gzip for improved static file serving and add new plugins for enhanced functionality

* 🔧 chore: Remove unused HTML ESLint plugin configurations and dependencies

---------

Co-authored-by: Ruben Talstra <[email protected]>

* 🚀 feat: Add Custom Welcome Message in `librechat.yaml` (#5870)

* feat: Custom Welcome Message (#2967)

* don't think I'm on the right path?

* ✨ feat: Implement custom welcome message configuration in interface

* 🔼 feat: "Run Code" Button Toggle (#5988)

* feat: Add 'Run Code' and 'Temporary Chat' permissions to role management

* feat: Add NextFunction typedef to api/typedefs.js

* feat: Add temporary chat and run code permissions to role schema

* refactor: Enhance access check middleware with logging for permission errors and better typing

* refactor: Set default value of USE permission to true in multiConvoPermissionsSchema

* refactor: Implement checkAccess function for separation of permission validation logic from middleware

* feat: Integrate permission checks for tool execution and enhance Markdown code block with execution capability

* fix: Convert REDIS_MAX_LISTENERS to a number, closes #5979

* 🚀 feat: Claude 3.7 Support + Reasoning (#6008)

* fix: missing console color methods for admin scripts

* feat: Anthropic Claude 3.7 Sonnet Support

* feat: update eventsource to version 3.0.2 and upgrade @modelcontextprotocol/sdk to 1.4.1

* fix: update DynamicInput to handle number type and improve initial value logic

* feat: first pass Anthropic Reasoning (Claude 3.7)

* feat: implement streaming support in AnthropicClient with reasoning UI handling

* feat: add missing xAI (grok) models

* 🔗 fix: Shared Link with Markdown Code Error (#6016)

* refactor: Export AuthContext from AuthContextProvider

* refactor: Update useHasAccess to utilize useContext for AuthContext

* refactor: Enhance type definitions in useHasAccess for better type safety

* sandbox sessions storage

* sandbox sessions storage

* 🌍 i18n: Add Georgian Language and Update Fallback Languages (#6022)

* ✨ feat: Anthropic Agents Prompt Caching & UI Accessibility Enhancements (#6045)

* chore: remove auto-focus for now

* refactor: move react-hook-form Controller Logic to AgentSelect from AgentPanel

* fix: a11y focus issue with AgentSelect by never replacing it in its component tree

* fix: maintain ComboBox focus and force re-render on agent ID change in AgentPanel

* chore: `gemini-2.0-flash-lite-preview-02-05` (deprecated)

* refactor: extract cache control logic and headers configuration to helper functions in AnthropicClient

* feat: anthropic agents prompt caching

* chore: bump @librechat/agents and related dependencies

* fix: typo

* 🔧 refactor: Improve Params Handling, Remove Legacy Items, & Update Configs (#6074)

* chore: include all assets for service worker, remove unused tsconfig.node.json, eslint ignore vite config

* chore: exclude image files from service worker caching

* refactor: simplify googleSchema transformation and error handling

* fix: max output tokens cap for 3.7 models

* fix: skip index fixing in CI, development, and test environments

* ci: add maxOutputTokens handling tests for Claude models

* refactor: drop top_k and top_p parameters for claude-3.7 in AnthropicClient and add tests for new behavior

* refactor: conditionally include top_k and top_p parameters for non-claude-3.7 models

* ci: add unit tests for getLLMConfig function with various model options

* chore: remove all OPENROUTER_API_KEY legacy logic

* refactor: optimize stream chunk handling

* feat: reset model parameters button

* refactor: remove unused examples field from convoSchema and presetSchema

* chore: update librechat-data-provider version to 0.7.6993

* refactor: move excludedKeys set to data-provider for better reusability

* feat: enhance saveMessageToDatabase to handle unset fields and fetched conversation state

* feat: add 'iconURL' and 'greeting' to excludedKeys in data provider config

* fix: add optional chaining to user ID retrieval in getConvo call

* 🌍 i18n: Update translation.json with latest translations (#6009)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* 🚀 feat: Agent Cache Tokens & Anthropic Reasoning Support (#6098)

* fix: handling of top_k and top_p parameters for Claude-3.7 models (allowed without reasoning)

* feat: bump @librechat/agents for Anthropic Reasoning support

* fix: update reasoning handling for OpenRouter integration

* fix: enhance agent token spending logic to include cache creation and read details

* fix: update logic for thinking status in ContentParts component

* refactor: improve agent title handling

* chore: bump @librechat/agents to version 2.1.7 for parallel tool calling for Google models

* 🚀 feat: GPT-4.5, Anthropic Tool Header, and OpenAPI Ref Resolution (#6118)

* 🔧 refactor: Update settings to use 'as const' for improved type safety and make gpt-4o-mini default model (cheapest)

* 📖 docs: Update README to reflect support for GPT-4.5 in image analysis feature

* 🔧 refactor: Update model handling to use default settings and improve encoding logic

* 🔧 refactor: Enhance model version extraction logic for improved compatibility with future GPT and omni models

* feat: GPT-4.5 tx/token update, vision support

* fix: $ref resolution logic in OpenAPI handling

* feat: add new 'anthropic-beta' header for Claude 3.7 to include token-efficient tools; ref: https://docs.anthropic.com/en/docs/build-with-claude/tool-use/token-efficient-tool-use

* 🖼️ refactor: Enhance Env Extraction & Agent Image Handling (#6131)

* refactor: use new image output format for agents using DALL-E tools

* refactor: Enhance image fetching with proxy support and adjust logging placement in DALL-E 3 integration

* refactor: Enhance StableDiffusionAPI to support agent-specific return values and display message for generated images

* refactor: Add unit test execution for librechat-mcp in backend review workflow

* refactor: Update environment variable extraction logic, export from serpate module to avoid circular refs, and remove deprecated tests

* refactor: Add unit tests for environment variable extraction and enhance StdioOptionsSchema to process env variables

* 🐼 feat: Add Flux Image Generation Tool (#6147)

* 🔧 fix: Log warning for aborted operations in AgentClient

* ci: Remove unused saveMessageToDatabase mock in FakeClient initialization

* ci: test actual implementation of saveMessageToDatabase

* refactor: Change log level from warning to error for aborted operations in AgentClient

* refactor: Add className prop to Image component for customizable styling, use theme selectors

* feat: FLUX Image Generation tool

* 🌍 i18n: Update translation.json with latest translations (#6132)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* 🧠 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

* 🌍 i18n: Update translation.json with latest translations (#6159)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* 🚀 feat: Enhance Model Handling, Logging & xAI Agent Support (#6182)

* chore: update @librechat/agents to version 2.1.9

* feat: xAI standalone provider for agents

* chore: bump librechat-data-provider version to 0.7.6997

* fix: reorder import statements and enhance user listing output

* fix: Update Docker Compose commands to support v2 syntax with fallback

* 🔧 fix: drop `reasoning_effort` for o1-preview/mini models

* chore: requireLocalAuth logging

* fix: edge case artifact message editing logic to handle `new` conversation IDs

* fix: remove `temperature` from model options in OpenAIClient if o1-mini/preview

* fix: update type annotation for fetchPromisesMap to use Promise<string[]> instead of string[]

* feat: anthropic model fetching

* fix: update model name to use EModelEndpoint.openAI in fetchModels and fetchOpenAIModels

* fix: add error handling to modelController for loadModels

* fix: add error handling and logging for model fetching in loadDefaultModels

* ci: update getAnthropicModels tests to be asynchronous

* feat: add user ID to model options in OpenAI and custom endpoint initialization

---------

Co-authored-by: Andrei Berceanu <[email protected]>
Co-authored-by: KiGamji <[email protected]>

* 🪄 feat: Customize Sandpack `bundlerURL` for Artifacts (#6191)

* 🕒 feat: Add Configurable MCP Server Timeouts (#6199)

* 🚀 feat: Add Code API Proxy Support and Update MCP SDK (#6203)

* chore: bump mcp sdk

* feat: Add proxy support for file download and upload in Code Environment CRUD operations

* chore: remove unused files

* chore: change output format from CommonJS to ES module in server rollup config

* ✨ v0.7.7 (#6206)

* v0.7.7

* chore: Bump librechat-mcp version to 1.1.0

* action: update Unreleased changelog

* Update CHANGELOG.md

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Ruben Talstra <[email protected]>

* 📦 refactor: Move DB Models to `@librechat/data-schemas` (#6210)

* 🚀 feat: Introduce data schemas and refactor models to use @librechat/data-schemas

* 🚀 feat: Add installation step for Data Schemas Package in backend review workflow

* chore: Add `data-schemas` package to update/rebuild packages scripts

* chore: Update Dockerfile to include data-schemas package build process

* fix: add missing @rollup/plugin-typescript package

* chore: Add GitHub Actions workflow for publishing data-schemas package

---------

Co-authored-by: Danny Avila <[email protected]>

* 🌍 i18n: Add Thai Language Support and Update Translations (#6219)

* 🌍 i18n: Add Thai Language Support and Update Translations

* 📝 docs: Update Locize Logo in README.md

* 📦 ci: `npm publish` access to public for `data-schemas`

* 📦 ci: Update workflow to publish `@librechat/data-schemas` to NPM with manual trigger option

* 📦 ci: Refactor workflow to combine build and publish steps with version check for `@librechat/data-schemas`

* 📦 ci: Update npm authentication token for publishing in workflow

* 🌍 i18n: Update translation.json with latest translations (#6220)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* 📦 chore: Patch `axios` to address CVE-2025-27152 (#6222)

* 📦 chore: remove `langchain` (no longer used)

* chore: patch `axios` to address CVE-2025-27152

* 🐛 fix: Avatar Type Definitions in Agent/Assistant Schemas (#6235)

* fix: Simplify avatar type definition in agent and assistant schemas

* fix: Update regex to correctly match OpenAI model identifiers

* 🌍 i18n: Update translation.json with latest translations (#6240)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* 🔧 fix: MeiliSearch Field Error and Patch Incorrect Import by #6210 (#6245)

* 📦 refactor: Update MeiliSearch integration and improve schema handling

* Update indexSync.js

* 📦 refactor: Update Conversation model import path in indexSync.js

* 📦 refactor: Update import paths for Conversation and Message models in indexSync.js

* 🔏 fix: Enhance Two-Factor Authentication (#6247)

* 🌟 feat: Implement Two-Factor Authentication (2FA) functionality

* fix: Two-Factor Authentication Logic and State Management

* 🌟 feat: Add LICENSE file and update package version to 0.0.2 with MIT license

* ⚠️ refactor: Use Error Content Part Instead Of Throwing Error for Agents (#6262)

* 🐛 fix: Await saveMessage in abortMiddleware to ensure proper execution (#6248)

* 🌍 i18n: Update translation.json with latest translations (#6241)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* 🔍 feat: Mistral OCR API / Upload Files as Text (#6274)

* refactor: move `loadAuthValues` to `~/services/Tools/credentials`

* feat: add createAxiosInstance function to configure axios with proxy support

* WIP: First pass mistral ocr

* refactor: replace getConvoFiles with getToolFiles for improved file retrieval logic

* refactor: improve document formatting in encodeAndFormat function

* refactor: remove unused resendFiles parameter from buildOptions function (this option comes from the agent config)

* fix: update getFiles call to include files with `text` property as well

* refactor: move file handling to `initializeAgentOptions`

* refactor: enhance addImageURLs method to handle OCR text and improve message formatting

* refactor: update message formatting to handle OCR text in various content types

* refactor: remove unused resendFiles property from compactAgentsSchema

* fix: add error handling for Mistral OCR document upload and logging

* refactor: integrate OCR capability into file upload options and configuration

* refactor: skip processing for text source files in delete request, as they are directly tied to database

* feat: add metadata field to ExtendedFile type and update PanelColumns and PanelTable components for localization and metadata handling

* fix: source icon styling

* wip: first pass, frontend file context agent resources

* refac…
jmaddington added a commit to jmaddington/LibreChat that referenced this pull request Apr 8, 2025
commit 7ae5c710e3ecf4c559a77ca4f60c363b0ae4af37
Author: Jonathan Addington <[email protected]>
Date:   Tue Apr 8 14:11:34 2025 +0000

    chore: misc changes to devcontainer for local dev

commit 9d4ab0abb9562b167bf9e61d92497aeedce56f11
Merge: c351f807 4a01302d
Author: Jonathan Addington <[email protected]>
Date:   Mon Apr 7 19:55:20 2025 -0400

    Merge branch 'jm-production' of https://github.com/jmaddington/LibreChat into jm-production

commit c351f807a32f2841e3051308f033264d180a7deb
Author: Jonathan Addington <[email protected]>
Date:   Mon Apr 7 19:55:14 2025 -0400

    Make branch parameter optional in deploy-jm workflow to support easier manual triggering

commit 4a01302d8a61c3ee001dc20601d2728caa6cb855
Author: JM Addington <[email protected]>
Date:   Wed Apr 2 23:29:23 2025 -0400

    Feature/status badges (#65)

    * Add workflow status badges to README and create build-only workflow

    * Enable manual workflow triggering and include jm-production branch

    * Add tracking/* and feature/* branches to workflow triggers

    * Fix Docker Build Only badge in README

    * Fix duplicate FluxAPI declarations in handleTools.js

    * Fix frontend build by externalizing problematic dependencies

    * Add clean-set to externalized dependencies

    * chore: misc package and readme updates

    * Fix TimeAPI test module import path

    * Fix TimeAPI test and remove console.error in config/index.js

commit d5f7fab7d972c0b53f1211506d16e048249b9510
Author: Jonathan Addington <[email protected]>
Date:   Wed Apr 2 19:42:45 2025 -0400

    Enhance deploy-jm workflow with manual trigger options

    - Add input parameters for manual workflow runs
    - Make branch, tag, and dockerfile configurable
    - Add caching for faster builds
    - Improve inline documentation

    🤖 Generated with [Claude Code](https://claude.ai/code)

    Co-Authored-By: Claude <[email protected]>

commit 3cecf16f8529ffeb44516b25f737f89d564b859a
Author: JM Addington <[email protected]>
Date:   Wed Apr 2 19:38:16 2025 -0400

    Update README.md to document tracking branch naming convention (#62)

commit a983b07180014facd15dbffc41238324589b6550
Merge: a33927c6 9da63b48
Author: Jonathan Addington <[email protected]>
Date:   Wed Apr 2 19:34:51 2025 -0400

    Merge files from danny-main branch verbatim

    Merge specific files from danny-main branch taking their versions verbatim:
    - CHANGELOG.md
    - api/app/clients/GoogleClient.js
    - api/server/controllers/UserController.js
    - api/server/middleware/abortMiddleware.js
    - api/server/services/Config/getCustomConfig.js
    - api/server/services/Files/S3/crud.js
    - api/server/services/MCP.js
    - api/app/clients/tools/structured/FluxAPI.js
    - client and package files
    - Removed test files that don't exist in danny-main

    🤖 Generated with [Claude Code](https://claude.ai/code)

    Co-Authored-By: Claude <[email protected]>

commit 9da63b48376b73ef283113e9ff025ba60bce94b1
Author: Jonathan Addington <[email protected]>
Date:   Wed Apr 2 19:30:37 2025 -0400

    Merge files from danny-main branch verbatim

    Merge specific files from danny-main branch taking their versions verbatim:
    - CHANGELOG.md
    - api/app/clients/GoogleClient.js
    - api/server/controllers/UserController.js
    - api/server/middleware/abortMiddleware.js
    - api/server/services/Config/getCustomConfig.js
    - api/server/services/Files/S3/crud.js
    - api/server/services/MCP.js
    - client and package files
    - Removed test files that don't exist in danny-main

    🤖 Generated with [Claude Code](https://claude.ai/code)

    Co-Authored-By: Claude <[email protected]>

commit a33927c6f6e0d06f74895fc9b0cfe6d4fbf06ffc
Author: JM Addington <[email protected]>
Date:   Wed Apr 2 19:05:09 2025 -0400

    Tracking/2025/04/02 (#60)

    * 🧠 feat: Reasoning UI for Agents (#5904)

    * chore: bump https-proxy-agent and @librechat/agents

    * refactor: Improve error logging in OllamaClient for API fetch failures

    * feat: Add DeepSeek provider support and enhance provider name handling

    * refactor: Use Providers.OLLAMA constant for model name check in fetchModels function

    * feat: Enhance formatAgentMessages to handle reasoning content type

    * feat: OpenRouter Agent Reasoning

    * hard work and dedicationgit add .env.example :)

    * fix: Handle Google social login with missing last name

    Social login with Google was previously displaying 'undefined' when
    a user's last name was empty or not provided.

    Changes:
    - Conditionally render last name only if it exists
    - Prevent displaying 'undefined' when last name is missing

    * fix: add missing file endings for developers yml,yaml and log

    ---------

    Co-authored-by: Mohamed Al-Duraji <[email protected]>
    Co-authored-by: Deepak Kendole <[email protected]>
    Co-authored-by: Peter Rothlaender <[email protected]>

    * 🐞 fix: Add Null Checks for BaseURL in Agent Config (#5908)

    * ⚙️ refactor: Enhance Logging, Navigation And Error Handling (#5910)

    * refactor: Ensure Axios Errors are less Verbose if No Response

    * refactor: Improve error handling in logAxiosError function

    * fix: Prevent ModelSelect from rendering for Agent Endpoints

    * refactor: Enhance logging functions with type parameter for better clarity

    * refactor: Update buildDefaultConvo function to use optional endpoint parameter since we pass a default value for undefined

    * refactor: Replace console logs with logger warnings and errors in useNavigateToConvo hook, and handle removed endpoint edge case

    * chore: import order

    * ⚖️ docs: Update LICENSE.md Year: 2024 -> 2025 (#5915)

    * 🔒 feat: Two-Factor Authentication with Backup Codes & QR support (#5685)

    * 🔒 feat: add Two-Factor Authentication (2FA) with backup codes & QR support (#5684)

    * working version for generating TOTP and authenticate.

    * better looking UI

    * refactored + better TOTP logic

    * fixed issue with UI

    * fixed issue: remove initial setup when closing window before completion.

    * added: onKeyDown for verify and disable

    * refactored some code and cleaned it up a bit.

    * refactored some code and cleaned it up a bit.

    * refactored some code and cleaned it up a bit.

    * refactored some code and cleaned it up a bit.

    * fixed issue after updating to new main branch

    * updated example

    * refactored controllers

    * removed `passport-totp` not used.

    * update the generateBackupCodes function to generate 10 codes by default:

    * update the backup codes to an object.

    * fixed issue with backup codes not working

    * be able to disable 2FA with backup codes.

    * removed new env. replaced with JWT_SECRET

    * ✨ style: improved a11y and style for TwoFactorAuthentication

    * 🔒 fix: small types checks

    * ✨ feat: improve 2FA UI components

    * fix: remove unnecessary console log

    * add option to disable 2FA with backup codes

    * - add option to refresh backup codes
    - (optional) maybe show the user which backup codes have already been used?

    * removed text to be able to merge the main.

    * removed eng tx to be able to merge

    * fix: migrated lang to new format.

    * feat: rewrote whole 2FA UI + refactored 2FA backend

    * chore: resolving conflicts

    * chore: resolving conflicts

    * fix: missing packages, because of resolving conflicts.

    * fix: UI issue and improved a11y

    * fix: 2FA backup code not working

    * fix: update localization keys for UI consistency

    * fix: update button label to use localized text

    * fix: refactor backup codes regeneration and update localization keys

    * fix: remove outdated translation for shared links management

    * fix: remove outdated 2FA code prompts from translation.json

    * fix: add cursor styles for backup codes item based on usage state

    * fix: resolve conflict issue

    * fix: resolve conflict issue

    * fix: resolve conflict issue

    * fix: missing packages in package-lock.json

    * fix: add disabled opacity to the verify button in TwoFactorScreen

    * ⚙ fix: update 2FA logic to rely on backup codes instead of TOTP status

    * ⚙️ fix: Simplify user retrieval in 2FA logic by removing unnecessary TOTP secret query

    * ⚙️ test: Add unit tests for TwoFactorAuthController and twoFactorControllers

    * ⚙️ fix: Ensure backup codes are validated as an array before usage in 2FA components

    * ⚙️ fix: Update module path mappings in tests to use relative paths

    * ⚙️ fix: Update moduleNameMapper in jest.config.js to remove the caret from path mapping

    * ⚙️ refactor: Simplify import paths in TwoFactorAuthController and twoFactorControllers test files

    * ⚙️ test: Mock twoFactorService methods in twoFactorControllers tests

    * ⚙️ refactor: Comment out unused imports and mock setups in test files for two-factor authentication

    * ⚙️ refactor: removed files

    * refactor: Exclude totpSecret from user data retrieval in AuthController, LoginController, and jwtStrategy

    * refactor: Consolidate backup code verification to apply DRY and remove default array in user schema

    * refactor: Enhance two-factor authentication ux/flow with improved error handling and loading state management, prevent redirect to /login

    ---------

    Co-authored-by: Marco Beretta <[email protected]>
    Co-authored-by: Danny Avila <[email protected]>

    * 🛠 refactor: Ensure File Deletions, File Naming, and Agent Resource Updates (#5928)

    * refactor: Improve error logging for file upload and processing functions to prevent verbosity

    * refactor: Add uploads directory to Docker Compose to persist file uploads

    * refactor: `addAgentResourceFile` to handle edge case of non-existing `tool_resource` array

    * refactor: Remove version specification from deploy-compose.yml

    * refactor: Prefix filenames with file_id to ensure uniqueness in file uploads

    * refactor: Enhance error handling in deleteVectors to log warnings for non-404 errors

    * refactor: Limit file search results to top 5 based on relevance score

    * 🌍 i18n: Update translation.json with latest translations

    ---------

    Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

    * 🐛 fix: RAG Results Sorted By Distance (#5931)

    * refactor: Extract file unlinking logic into a separate function and don't throw error

    * fix: RAG results are actually in distance, not score

    * 📜 ci: Automate`CHANGELOG.md` (#5838)

    * feat: started with automated CHANGELOG.md

    * fix: no `configuration.json` found

    * refactor: `configuration.json`

    * fix: missing label `configuration.json`

    * fix: missing label `configuration.json`

    * fix: missing label `configuration.json`

    * fix: missing label `configuration.json`

    * fix: missing label `configuration.json`

    * ci: test new workflow action

    * ci: test new workflow action

    * ci: test new workflow action

    * feat: working CHANGELOG.md generation

    * feat: working CHANGELOG.md generation

    * feat: working CHANGELOG.md generation

    * feat: working CHANGELOG.md generation

    * feat: working CHANGELOG.md generation

    * feat: working CHANGELOG.md generation

    * feat: working CHANGELOG.md generation

    * fix: separate release and Unreleased workflows CHANGELOG.md generation

    * fix: separate release and Unreleased workflows CHANGELOG.md generation

    * fix: separate release and Unreleased workflows CHANGELOG.md generation

    * fix: separate release and Unreleased workflows CHANGELOG.md generation

    * fix: separate release and Unreleased workflows CHANGELOG.md generation

    * fix: separate release and Unreleased workflows CHANGELOG.md generation

    * fix: separate release and Unreleased workflows CHANGELOG.md generation

    * fix: separate release and Unreleased workflows CHANGELOG.md generation

    * fix: separate release and Unreleased workflows CHANGELOG.md generation

    * fix: separate release and Unreleased workflows CHANGELOG.md generation

    * fix: separate release and Unreleased workflows CHANGELOG.md generation

    * fix: separate release and Unreleased workflows CHANGELOG.md generation

    * fix: separate release and Unreleased workflows CHANGELOG.md generation

    * fix: separate release and Unreleased workflows CHANGELOG.md generation

    * fix: separate release and Unreleased workflows CHANGELOG.md generation

    * fix: separate release and Unreleased workflows CHANGELOG.md generation

    * fix: separate release and Unreleased workflows CHANGELOG.md generation

    * fix: separate release and Unreleased workflows CHANGELOG.md generation

    * fix: separate release and Unreleased workflows CHANGELOG.md generation

    * fix: separate release and Unreleased workflows CHANGELOG.md generation

    * fix: separate release and Unreleased workflows CHANGELOG.md generation

    * fix: separate release and Unreleased workflows CHANGELOG.md generation

    * fix: separate release and Unreleased workflows CHANGELOG.md generation

    * refactor: only trigger the `unreleased-changelog` action on push to `main`

    and `generate-release-changelog` only when pushing a tag with `v*.*.*`

    * refactor: Runs only every Monday at 00:00 UTC

    * 🔒 fix: 2FA Encrypt TOTP Secrets & Improve Docs (#5933)

    * 🔒 fix: Integrate TOTP secret retrieval and encryption in Two-Factor Authentication

    * 🔒 refactor: Simplify TOTP verification by removing commented-out code

    * 🔧 fix: Resizable Panel Unmount Error & Code Env. File Re-Upload (#5947)

    * 🔧 refactor: handle full path for code env. file re-upload

    * fix: update react-resizable-panels to version 2.1.7 to resolve error thrown on unmount of artifacts; ref: https://github.com/bvaughn/react-resizable-panels/issues/372

    * refactor: replace promptPrefix with systemMessage in GoogleClient for improved clarity, and to prevent saving LibreChat feature-specific instructions to the user's custom instructions

    * ✨ style: Enhance Styling & Accessibility (#5956)

    * ✨ feat: Enhance UI Components with Shadows and Accessibility Improvements

    * 🔧 fix: Correct Category Labels and Values in API Model & Adjust Button Class in Prompt List

    * 🔢 chore: Remove Dollar Sign from Balance Display (#5948)

    * 🚀 feat: Support Redis Clusters, Trusted Proxy Setting, And Toggle Meilisearch Indexing (#5963)

    * refactor: Improve MeiliSearch integration with environment-based configuration for running index sync

    * chore: Remove Question issue template from GitHub repository

    * feat: Enable indexing in MeiliSearch configuration and clean up error handling in indexSync

    * feat: Update .env.example to include optional indexing configuration

    * refactor: rename env var for disabling index sync to MEILI_NO_SYNC

    * Added the option to change the default trusted proxy

    * feat: Add TRUST_PROXY configuration to .env.example for reverse proxy settings

    * feat: Enhance Redis support with cluster configuration and TLS options

    * feat(redis): add cluster support, environment config and url mapping

    - Add Redis cluster configuration with isEnabled flag
    - Configure prefix and max listeners settings
    - Improve code formatting and readability
    - Fix URL vs host parameter handling
    - Update environment variables and regex patterns

    ---------

    Co-authored-by: Gil Assunção <[email protected]>
    Co-authored-by: Pedro Reis <[email protected]>
    Co-authored-by: João Trigo Soares <[email protected]>

    * 👐 refactor: Agents Accessibility and Gemini Error Handling (#5972)

    * style: Enhance ControlCombobox with Carat Display, ClassName, and Disabled State

    * refactor(ModelPanel): replace SelectDropdown with ControlCombobox for improved accessibility

    * style: Adjust padding and positioning in ModelPanel for improved layout

    * style(ControlCombobox): add containerClassName and iconSide props for enhanced customization

    * style(ControlCombobox): add iconClassName prop for customizable icon styling

    * refactor(AgentPanel): enhance layout with new button for creating agents and adjust structure for better alignment

    * refactor(AgentSelect): replace SelectDropDown with ControlCombobox for improved accessibility and layout

    * feat(translation): add new translation key for improved UI clarity

    * style(AgentSwitcher, AssistantSwitcher): add iconClassName prop for customizable icon styling

    * refactor(AgentPanelSkeleton): improve layout of skeleton components to match new visual structure

    * style(AgentPanel, AgentPanelSkeleton): add margin to flex container for improved layout consistency

    * a11y(AgentSelect, ControlCombobox): add selectId prop for preventing focus going to start to page after agent selection

    * fix(AgentSelect): update SELECT_ID constant for improved clarity in component identification

    * fix(GoogleClient): update type annotation, add abort handling for content generation requests, catch "uncaught" abort errors and GoogleGenerativeAI errors from `@google/generative-ai`

    * 🌍 i18n: Update translation.json with latest translations (#5946)

    Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

    * ⚙️ ci: Trigger Restriction for `Detect Unused NPM Packages` (#5844)

    The workflow now only runs on pull requests that modify:
    - The root `package.json` or `package-lock.json` file
    - Any file under the client folder
    - Any file under the api folder

    * 🤖 feat: 192x192 Icon for Android PWA (#5966)

    * fix: Add 192x192 icon to allow the PWA to install on Android devices using Chrome.

    * fix: Use less whitespace on icon-192x192.png. Re-generate maskable-icon.png and apple-touch-icon-180x180.png to be higher quality, cripser and use less kilobytes.

    * 🌟 feat: Enhance User Experience and SEO with Accessibility Updates and robots.txt (#5392)

    * 🔈 fix: Refactor AudioRecorder to use button element for improved accessibility

    * 🔈 fix: Update conversation menu button ID for improved accessibility

    * 🔈 fix: Remove redundant role attribute from SidePanel for improved accessibility

    * feat: Add robots.txt to manage web crawler access

    * feat: Update index.html with meta description and remove legacy file

    * fix: resolve merge conflicts.

    * fix: resolve merge conflicts.

    * fix: resolve merge conflicts.

    * feat: Update index.html with meta description and remove legacy file

    * 🔧 feat: Add legacy support and improve SidePanel accessibility

    * 🔧 feat: Integrate express-static-gzip for improved static file serving and add new plugins for enhanced functionality

    * 🔧 chore: Remove unused HTML ESLint plugin configurations and dependencies

    ---------

    Co-authored-by: Ruben Talstra <[email protected]>

    * 🚀 feat: Add Custom Welcome Message in `librechat.yaml` (#5870)

    * feat: Custom Welcome Message (#2967)

    * don't think I'm on the right path?

    * ✨ feat: Implement custom welcome message configuration in interface

    * 🔼 feat: "Run Code" Button Toggle (#5988)

    * feat: Add 'Run Code' and 'Temporary Chat' permissions to role management

    * feat: Add NextFunction typedef to api/typedefs.js

    * feat: Add temporary chat and run code permissions to role schema

    * refactor: Enhance access check middleware with logging for permission errors and better typing

    * refactor: Set default value of USE permission to true in multiConvoPermissionsSchema

    * refactor: Implement checkAccess function for separation of permission validation logic from middleware

    * feat: Integrate permission checks for tool execution and enhance Markdown code block with execution capability

    * fix: Convert REDIS_MAX_LISTENERS to a number, closes #5979

    * 🚀 feat: Claude 3.7 Support + Reasoning (#6008)

    * fix: missing console color methods for admin scripts

    * feat: Anthropic Claude 3.7 Sonnet Support

    * feat: update eventsource to version 3.0.2 and upgrade @modelcontextprotocol/sdk to 1.4.1

    * fix: update DynamicInput to handle number type and improve initial value logic

    * feat: first pass Anthropic Reasoning (Claude 3.7)

    * feat: implement streaming support in AnthropicClient with reasoning UI handling

    * feat: add missing xAI (grok) models

    * 🔗 fix: Shared Link with Markdown Code Error (#6016)

    * refactor: Export AuthContext from AuthContextProvider

    * refactor: Update useHasAccess to utilize useContext for AuthContext

    * refactor: Enhance type definitions in useHasAccess for better type safety

    * sandbox sessions storage

    * sandbox sessions storage

    * 🌍 i18n: Add Georgian Language and Update Fallback Languages (#6022)

    * ✨ feat: Anthropic Agents Prompt Caching & UI Accessibility Enhancements (#6045)

    * chore: remove auto-focus for now

    * refactor: move react-hook-form Controller Logic to AgentSelect from AgentPanel

    * fix: a11y focus issue with AgentSelect by never replacing it in its component tree

    * fix: maintain ComboBox focus and force re-render on agent ID change in AgentPanel

    * chore: `gemini-2.0-flash-lite-preview-02-05` (deprecated)

    * refactor: extract cache control logic and headers configuration to helper functions in AnthropicClient

    * feat: anthropic agents prompt caching

    * chore: bump @librechat/agents and related dependencies

    * fix: typo

    * 🔧 refactor: Improve Params Handling, Remove Legacy Items, & Update Configs (#6074)

    * chore: include all assets for service worker, remove unused tsconfig.node.json, eslint ignore vite config

    * chore: exclude image files from service worker caching

    * refactor: simplify googleSchema transformation and error handling

    * fix: max output tokens cap for 3.7 models

    * fix: skip index fixing in CI, development, and test environments

    * ci: add maxOutputTokens handling tests for Claude models

    * refactor: drop top_k and top_p parameters for claude-3.7 in AnthropicClient and add tests for new behavior

    * refactor: conditionally include top_k and top_p parameters for non-claude-3.7 models

    * ci: add unit tests for getLLMConfig function with various model options

    * chore: remove all OPENROUTER_API_KEY legacy logic

    * refactor: optimize stream chunk handling

    * feat: reset model parameters button

    * refactor: remove unused examples field from convoSchema and presetSchema

    * chore: update librechat-data-provider version to 0.7.6993

    * refactor: move excludedKeys set to data-provider for better reusability

    * feat: enhance saveMessageToDatabase to handle unset fields and fetched conversation state

    * feat: add 'iconURL' and 'greeting' to excludedKeys in data provider config

    * fix: add optional chaining to user ID retrieval in getConvo call

    * 🌍 i18n: Update translation.json with latest translations (#6009)

    Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

    * 🚀 feat: Agent Cache Tokens & Anthropic Reasoning Support (#6098)

    * fix: handling of top_k and top_p parameters for Claude-3.7 models (allowed without reasoning)

    * feat: bump @librechat/agents for Anthropic Reasoning support

    * fix: update reasoning handling for OpenRouter integration

    * fix: enhance agent token spending logic to include cache creation and read details

    * fix: update logic for thinking status in ContentParts component

    * refactor: improve agent title handling

    * chore: bump @librechat/agents to version 2.1.7 for parallel tool calling for Google models

    * 🚀 feat: GPT-4.5, Anthropic Tool Header, and OpenAPI Ref Resolution (#6118)

    * 🔧 refactor: Update settings to use 'as const' for improved type safety and make gpt-4o-mini default model (cheapest)

    * 📖 docs: Update README to reflect support for GPT-4.5 in image analysis feature

    * 🔧 refactor: Update model handling to use default settings and improve encoding logic

    * 🔧 refactor: Enhance model version extraction logic for improved compatibility with future GPT and omni models

    * feat: GPT-4.5 tx/token update, vision support

    * fix: $ref resolution logic in OpenAPI handling

    * feat: add new 'anthropic-beta' header for Claude 3.7 to include token-efficient tools; ref: https://docs.anthropic.com/en/docs/build-with-claude/tool-use/token-efficient-tool-use

    * 🖼️ refactor: Enhance Env Extraction & Agent Image Handling (#6131)

    * refactor: use new image output format for agents using DALL-E tools

    * refactor: Enhance image fetching with proxy support and adjust logging placement in DALL-E 3 integration

    * refactor: Enhance StableDiffusionAPI to support agent-specific return values and display message for generated images

    * refactor: Add unit test execution for librechat-mcp in backend review workflow

    * refactor: Update environment variable extraction logic, export from serpate module to avoid circular refs, and remove deprecated tests

    * refactor: Add unit tests for environment variable extraction and enhance StdioOptionsSchema to process env variables

    * 🐼 feat: Add Flux Image Generation Tool (#6147)

    * 🔧 fix: Log warning for aborted operations in AgentClient

    * ci: Remove unused saveMessageToDatabase mock in FakeClient initialization

    * ci: test actual implementation of saveMessageToDatabase

    * refactor: Change log level from warning to error for aborted operations in AgentClient

    * refactor: Add className prop to Image component for customizable styling, use theme selectors

    * feat: FLUX Image Generation tool

    * 🌍 i18n: Update translation.json with latest translations (#6132)

    Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

    * 🧠 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

    * 🌍 i18n: Update translation.json with latest translations (#6159)

    Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

    * 🚀 feat: Enhance Model Handling, Logging & xAI Agent Support (#6182)

    * chore: update @librechat/agents to version 2.1.9

    * feat: xAI standalone provider for agents

    * chore: bump librechat-data-provider version to 0.7.6997

    * fix: reorder import statements and enhance user listing output

    * fix: Update Docker Compose commands to support v2 syntax with fallback

    * 🔧 fix: drop `reasoning_effort` for o1-preview/mini models

    * chore: requireLocalAuth logging

    * fix: edge case artifact message editing logic to handle `new` conversation IDs

    * fix: remove `temperature` from model options in OpenAIClient if o1-mini/preview

    * fix: update type annotation for fetchPromisesMap to use Promise<string[]> instead of string[]

    * feat: anthropic model fetching

    * fix: update model name to use EModelEndpoint.openAI in fetchModels and fetchOpenAIModels

    * fix: add error handling to modelController for loadModels

    * fix: add error handling and logging for model fetching in loadDefaultModels

    * ci: update getAnthropicModels tests to be asynchronous

    * feat: add user ID to model options in OpenAI and custom endpoint initialization

    ---------

    Co-authored-by: Andrei Berceanu <[email protected]>
    Co-authored-by: KiGamji <[email protected]>

    * 🪄 feat: Customize Sandpack `bundlerURL` for Artifacts (#6191)

    * 🕒 feat: Add Configurable MCP Server Timeouts (#6199)

    * 🚀 feat: Add Code API Proxy Support and Update MCP SDK (#6203)

    * chore: bump mcp sdk

    * feat: Add proxy support for file download and upload in Code Environment CRUD operations

    * chore: remove unused files

    * chore: change output format from CommonJS to ES module in server rollup config

    * ✨ v0.7.7 (#6206)

    * v0.7.7

    * chore: Bump librechat-mcp version to 1.1.0

    * action: update Unreleased changelog

    * Update CHANGELOG.md

    ---------

    Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
    Co-authored-by: Ruben Talstra <[email protected]>

    * 📦 refactor: Move DB Models to `@librechat/data-schemas` (#6210)

    * 🚀 feat: Introduce data schemas and refactor models to use @librechat/data-schemas

    * 🚀 feat: Add installation step for Data Schemas Package in backend review workflow

    * chore: Add `data-schemas` package to update/rebuild packages scripts

    * chore: Update Dockerfile to include data-schemas package build process

    * fix: add missing @rollup/plugin-typescript package

    * chore: Add GitHub Actions workflow for publishing data-schemas package

    ---------

    Co-authored-by: Danny Avila <[email protected]>

    * 🌍 i18n: Add Thai Language Support and Update Translations (#6219)

    * 🌍 i18n: Add Thai Language Support and Update Translations

    * 📝 docs: Update Locize Logo in README.md

    * 📦 ci: `npm publish` access to public for `data-schemas`

    * 📦 ci: Update workflow to publish `@librechat/data-schemas` to NPM with manual trigger option

    * 📦 ci: Refactor workflow to combine build and publish steps with version check for `@librechat/data-schemas`

    * 📦 ci: Update npm authentication token for publishing in workflow

    * 🌍 i18n: Update translation.json with latest translations (#6220)

    Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

    * 📦 chore: Patch `axios` to address CVE-2025-27152 (#6222)

    * 📦 chore: remove `langchain` (no longer used)

    * chore: patch `axios` to address CVE-2025-27152

    * 🐛 fix: Avatar Type Definitions in Agent/Assistant Schemas (#6235)

    * fix: Simplify avatar type definition in agent and assistant schemas

    * fix: Update regex to correctly match OpenAI model identifiers

    * 🌍 i18n: Update translation.json with latest translations (#6240)

    Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

    * 🔧 fix: MeiliSearch Field Error and Patch Incorrect Import by #6210 (#6245)

    * 📦 refactor: Update MeiliSearch integration and improve schema handling

    * Update indexSync.js

    * 📦 refactor: Update Conversation model import path in indexSync.js

    * 📦 refactor: Update import paths for Conversation and Message models in indexSync.js

    * 🔏 fix: Enhance Two-Factor Authentication (#6247)

    * 🌟 feat: Implement Two-Factor Authentication (2FA) functionality

    * fix: Two-Factor Authentication Logic and State Management

    * 🌟 feat: Add LICENSE file and update package version to 0.0.2 with MIT license

    * ⚠️ refactor: Use Error Content Part Instead Of Throwing Error for Agents (#6262)

    * 🐛 fix: Await saveMessage in abortMiddleware to ensure proper execution (#6248)

    * 🌍 i18n: Update translation.json with latest translations (#6241)

    Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

    * 🔍 feat: Mistral OCR API / Upload Files as Text (#6274)

    * refactor: move `loadAuthValues` to `~/services/Tools/credentials`

    * feat: add createAxiosInstance function to configure axios with proxy support

    * WIP: First pass mistral ocr

    * refactor: replace getConvoFiles with getToolFiles for improved file retrieval logic

    * refactor: improve document formatting in encodeAndFormat function

    * refactor: remove unused resendFiles parameter from buildOptions function (this option comes from the agent config)

    * fix: update getFiles call to include files with `text` property as well

    * refactor: move file handling to `initializeAgentOptions`

    * refactor: enhance addImageURLs method to handle OCR text and improve message formatting

    * refactor: update message formatting to handle OCR text in various content types

    * refactor: remove unused resendFiles property from compactAgentsSchema

    * fix: add error handling for Mistral OCR document upload and logging

    * refactor: integrate OCR capability into file upload options and configuration

    * refactor: skip processing for text source files in delete request, as they are directly tied to database

    * feat: add metadata field to ExtendedFile type and update PanelColumns and PanelTable components for localization and metadata handling

    * fix: source icon styling

    * wip: first pass, frontend file context agent resources

    * refactor: add hover card with contextual information for File Context (OCR) in FileContext component

    * feat: enhance file processing by integrating file retrieval for OCR resources in agent initialization

    * feat: implement OCR config; fix: agent resource deletion for ocr files

    * feat: enhance agent initialization by adding OCR capability check in resource priming

    * ci: fix `~/config` module mock

    * ci: add OCR property expectation in AppService tests

    * refactor: simplify OCR config loading by removing environment variable extraction, to be done when OCR is actually performed

    * ci: add unit test to ensure environment variable references are not parsed in OCR config

    * refactor: disable base64 image inclusion in OCR request

    * refactor: enhance OCR configuration handling by validating environment variables and providing defaults

    * refactor: use file stream from disk for mistral ocr api

    * 🎨 a11y: Update Model Spec Description Text (#6294)

    * 🔧 fix: Axios Proxy Usage And Bump `mongoose` (#6298)

    * fix: bump mongoose to fix nested schema errors

    * fix: Enhance Axios instance creation with improved proxy handling and error logging

    * fix: Refactor Axios instance creation and remove proxy handling from file upload functions

    * fix: Update proxy configuration in Axios instance creation and add unit tests

    * 🤖 feat: Support OpenAI Web Search models (#6313)

    * fix: reorder vision model entries for cheaper models first

    * fix: add endpoint property to bedrock client initialization

    * fix: exclude unsupported parameters for OpenAI Web Search models

    * fix: enhance options to exclude unsupported parameters for Web Search models

    * 🔧 fix: comment out MCP servers to resolve service run issues (#6316)

    Co-authored-by: Coding Wizard <[email protected]>

    * 🔗 feat: Agent Chain (Mixture-of-Agents) (#6374)

    * wip: first pass, dropdown for selecting sequential agents

    * refactor: Improve agent selection logic and enhance performance in SequentialAgents component

    * wip: seq. agents working ideas

    * wip: sequential agents style change

    * refactor: move agent form options/submission outside of AgentConfig

    * refactor: prevent repeating code

    * refactor: simplify current agent display in SequentialAgents component

    * feat: persist  form value handling in AgentSelect component for agent_ids

    * feat: first pass, sequential agnets agent update

    * feat: enhance message display with agent updates and empty text handling

    * chore: update Icon component to use EModelEndpoint for agent endpoints

    * feat: update content type checks in BaseClient to use constants for better readability

    * feat: adjust max context tokens calculation to use 90% of the model's max tokens

    * feat: first pass, agent run message pruning

    * chore: increase max listeners for abort controller to prevent memory leaks

    * feat: enhance runAgent function to include current index count map for improved token tracking

    * chore: update @librechat/agents dependency to version 2.2.5

    * feat: update icons and style of SequentialAgents component for improved UI consistency

    * feat: add AdvancedButton and AdvancedPanel components for enhanced agent settings navigation, update styling for agent form

    * chore: adjust minimum height of AdvancedPanel component for better layout consistency

    * chore: update @librechat/agents dependency to version 2.2.6

    * feat: enhance message formatting by incorporating tool set into agent message processing, in order to allow better mix/matching of agents (as tool calls for tools not found in set will be stringified)

    * refactor: reorder components in AgentConfig for improved readability and maintainability

    * refactor: enhance layout of AgentUpdate component for improved visual structure

    * feat: add DeepSeek provider to Bedrock settings and schemas

    * feat: enhance link styling in mobile.css for better visibility and accessibility

    * fix: update banner model import in update banner script; export Banner model

    * refactor: `duplicateAgentHandler` to include tool_resources only for OCR context files

    * feat: add 'qwen-vl' to visionModels for enhanced model support

    * fix: change image format from JPEG to PNG in DALLE3 response

    * feat: reorganize Advanced components and add localizations

    * refactor: simplify JSX structure in AgentChain component to defer container styling to parent

    * feat: add FormInput component for reusable input handling

    * feat: make agent recursion limit configurable from builder

    * feat: add support for agent capabilities chain in AdvancedPanel and update data-provider version

    * feat: add maxRecursionLimit configuration for agents and update related documentation

    * fix: update CONFIG_VERSION to 1.2.3 in data provider configuration

    * feat: replace recursion limit input with MaxAgentSteps component and enhance input handling

    * feat: enhance AgentChain component with hover card for additional information and update related labels

    * fix: pass request and response objects to `createActionTool` when using assistant actions to prevent auth error

    * feat: update AgentChain component layout to include agent count display

    * feat: increase default max listeners and implement capability check function for agent chain

    * fix: update link styles in mobile.css for better visibility in dark mode

    * chore: temp. remove agents package while bumping shared packages

    * chore: update @langchain/google-genai package to version 0.1.11

    * chore: update @langchain/google-vertexai package to version 0.2.2

    * chore: add @librechat/agents package at version 2.2.8

    * feat: add deepseek.r1 model with token rate and context values for bedrock

    * 🔧 fix: Update Token Calculations/Mapping, MCP `env` Initialization (#6406)

    * fix: Enhance MCP initialization to process environment variables

    * fix: only build tokenCountMap with messages that are being used in the payload

    * fix: Adjust maxContextTokens calculation to account for maxOutputTokens

    * refactor: Make processMCPEnv optional in MCPManager initialization

    * chore: Bump version of librechat-data-provider to 0.7.73

    * ⌛ feat: `initTimeout` for Slow Starting MCP Servers (#6383)

    * feat: make mcp server connect timeout configurable with initTimeout

    * style: add missing semicolon to connection.ts

    * 🚀 feat: `S3` Integration for File handling and Image uploads (#6142)

    * French Translation Update

    * French Translation Update

    * test

    * Add fileStrategy S3 Config

    * update s3 crud.js

    * 🔧 chore: downgrade dotenv to version 16.0.3 and add aws-sdk to package-lock.json

    * 🔧 chore: remove aws-sdk from package.json

    * 🚀 feat: Integrate AWS SDK for S3 with enhanced upload and retrieval functionalities

    * 🚀 feat: Implement S3 integration for file upload and retrieval functionalities

    * 🚀 feat: Enhance S3 initialization to support default credentials and improved error handling

    ---------

    Co-authored-by: Gael Martins <[email protected]>

    * 🐞 fix: Agent "Resend" Message Attachments + Source Icon Styling (#6408)

    * style: Update text file source icon background color for improved visibility in light mode

    * style: Update `vectordb` source icon background color for better visibility

    * fix: resend files behavior for tool resource message attachments (code interpreter and file search); Rename `getToolFiles` to `getConvoFiles` and simplify file retrieval logic; add `getToolFilesByIds` for fetching tool files by IDs

    * 🐛 fix: Prevent Crash on Duplicate Message ID (#6392)

    * fix: prevent crash on duplicate message ID

    Added error handling for MongoDB error code 11000 (duplicate key error) in saveMessage function. This prevents the application from crashing when trying to save messages with duplicate IDs, which can happen during aborted requests. Now logs a warning and continues execution safely.

    Closes: #5774
    Closes: #5776

    * fix: address ESLint issues in Message.js

    ---------

    Co-authored-by: odrec <[email protected]>

    * 🌍 i18n: Update translation.json with latest translations (#6277)

    Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

    * 🔒feat: Enable OpenID Auto-Redirect (#6066)

    * added feature for oidc auto redirection

    * Added Cooldown logic for OIDC auto redirect for failed login attempts

    * 🔧 feat: Implement custom logout redirect handling and enhance OpenID auto-redirect logic

    * 🔧 refactor: Update getLoginError to use TranslationKeys for improved type safety

    * 🔧 feat: Localize redirect message to OpenID provider in Login component

    ---------

    Co-authored-by: Ruben Talstra <[email protected]>

    * 🚀 feat: Integrate `Azure Blob Storage` for file handling and image uploads (#6153)

    * 🚀 feat: Integrate Azure Blob Storage for file handling and image uploads

    * 🐼 refactor: Correct module import case for Azure in strategies.js

    * 🚀 feat: Add Azure support in SourceIcon component

    * 🚀 feat: Enhance Azure Blob Service initialization with Managed Identity support

    * 🐼 refactor: Remove unused Azure dependencies from package.json and package-lock.json

    * 🐼 refactor: Remove unused Azure dependencies from package.json and package-lock.json

    * 🐼 refactor: Remove unused Azure dependencies from package.json and package-lock.json

    * 🚀 feat: Add Azure SDK dependencies for identity and storage blob

    * 🔧 fix: Reorganize imports in strategies.js for better clarity

    * 🔧 fix: Correct comment formatting in strategies.js for consistency

    * 🔧 fix: Improve comment formatting in strategies.js for consistency

    * ⚡ build(deps-dev): bump @babel/helpers from 7.26.9 to 7.26.10 (#6413)

    Bumps [@babel/helpers](https://github.com/babel/babel/tree/HEAD/packages/babel-helpers) from 7.26.9 to 7.26.10.
    - [Release notes](https://github.com/babel/babel/releases)
    - [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
    - [Commits](https://github.com/babel/babel/commits/v7.26.10/packages/babel-helpers)

    ---
    updated-dependencies:
    - dependency-name: "@babel/helpers"
      dependency-type: indirect
    ...

    Signed-off-by: dependabot[bot] <[email protected]>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

    * 🚀 feat: Add support for custom AWS endpoint in S3 initialization (#6431)

    * 🔐 fix: Invalid Key Length in 2FA Encryption (#6432)

    * 🚀 feat: Implement v3 encryption and decryption methods for TOTP secrets

    * 🚀 feat: Refactor Two-Factor Authentication methods and enhance 2FA verification process

    * 🚀 feat: Update encryption methods to use hex decoding for legacy keys and improve error handling for AES-256-CTR

    * 🚀 feat: Update import paths in TwoFactorController for consistency and clarity

    * 🏃‍♂️ refactor: Improve Agent Run Context & Misc. Changes (#6448)

    * chore: bump Model Context Protocol SDK dependencies

    * fix: correct indentation in MCPConnection class

    * refactor: enhance SSE transport with abort controller and add error handling for empty results

    * chore: remove outdated Model Context Protocol SDK dependency

    * chore: update @modelcontextprotocol/sdk dependency to version 1.7.0

    * chore: add debugging comments for PingRequest handling in MCPConnection class

    * refactor: update callTool method to accept structured arguments and options

    * refactor: simplify maxContextTokens calculation in initializeAgentOptions

    * chore: update @babel/runtime dependency to version 7.26.10

    * chore: update @librechat/agents dependency to version 2.2.9

    * chore: update @librechat/agents dependency to version 2.3.6

    * refactor: imports and prevent s3 initialization if strategy not configured

    * refactor: mark redis as non-experimental

    * refactor: add missing `maxContextTokens` for OpenAI parameters

    * refactor: improve log message for Redis initialization

    * chore: update @librechat/agents dependency to version 2.3.8

    * refactor: extend `streamBuffer` condition to include BEDROCK provider as easily gets throttled by AWS

    * refactor: filter out 'think' parts from message content in Anthropic and OpenAI clients

    * 🚀 feat: Add support for LDAP STARTTLS in LDAP Auth (#6438)

    * 🚀 feat: Refactor schema exports and update package version to 0.0.4 (#6455)

    * 📝 docs: librechat.example.yaml (#6442)

    Correctly comment commented comments:
    ```
    ```
    to
    ```
    ```

    To allow for simple removal of the 1st level comments.

    * 🔼 feat: Add Auto Submit For URL Query Params (#6440)

    * feat: Add submit query param to auto submit a prompt passed in via URL

    * refactor: add case-insensitive value for auto-submit

    ---------

    Co-authored-by: Danny Avila <[email protected]>

    * 🛠 feat: Enhance Redis Integration, Rate Limiters & Log Headers (#6462)

    * feat: Implement Redis-based rate limiting, initially import limits

    * feat: Enhance rate limiters with Redis support and custom prefixes

    * chore: import orders

    * chore: update JSDoc for next middleware parameter type in ban and limiter middleware

    * feat: add logHeaders middleware to log forwarded headers in requests

    * refactor: change log level from info to debug for Redis rate limiters

    * feat: increase Redis max listeners and refactor session storage to use Keyv

    * 💵 feat: Add Automatic Balance Refill (#6452)

    * 🚀 feat: Add automatic refill settings to balance schema

    * 🚀 feat: Refactor balance feature to use global interface configuration

    * 🚀 feat: Implement auto-refill functionality for balance management

    * 🚀 feat: Enhance auto-refill logic and configuration for balance management

    * 🚀 chore: Bump version to 0.7.74 in package.json and package-lock.json

    * 🚀 chore: Bump version to 0.0.5 in package.json and package-lock.json

    * 🚀 docs: Update comment for balance settings in librechat.example.yaml

    * chore: space in `.env.example`

    * 🚀 feat: Implement balance configuration loading and refactor related components

    * 🚀 test: Refactor tests to use custom config for balance feature

    * 🚀 fix: Update balance response handling in Transaction.js to use Balance model

    * 🚀 test: Update AppService tests to include balance configuration in mock setup

    * 🚀 test: Enhance AppService tests with complete balance configuration scenarios

    * 🚀 refactor: Rename balanceConfig to balance and update related tests for clarity

    * 🚀 refactor: Remove loadDefaultBalance and update balance handling in AppService

    * 🚀 test: Update AppService tests to reflect new balance structure and defaults

    * 🚀 test: Mock getCustomConfig in BaseClient tests to control balance configuration

    * 🚀 test: Add get method to mockCache in OpenAIClient tests for improved cache handling

    * 🚀 test: Mock getCustomConfig in OpenAIClient tests to control balance configuration

    * 🚀 test: Remove mock for getCustomConfig in OpenAIClient tests to streamline configuration handling

    * 🚀 fix: Update balance configuration reference in config.js for consistency

    * refactor: Add getBalanceConfig function to retrieve balance configuration

    * chore: Comment out example balance settings in librechat.example.yaml

    * refactor: Replace getCustomConfig with getBalanceConfig for balance handling

    * fix: tests

    * refactor: Replace getBalanceConfig call with balance from request locals

    * refactor: Update balance handling to use environment variables for configuration

    * refactor: Replace getBalanceConfig calls with balance from request locals

    * refactor: Simplify balance configuration logic in getBalanceConfig

    ---------

    Co-authored-by: Danny Avila <[email protected]>

    * 🏃‍♂️ refactor: More Agent Context Improvements during Run (#6477)

    * fix: Add optional chaining utility and update agent parameter types

    * v2.3.9

    * chore: Update @librechat/agents version to 2.3.93

    * 🌍 i18n: Update translation.json with latest translations (#6414)

    Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

    * 🏗️ fix: Agents Token Spend Race Conditions, Add Auto-refill Tx, Add Relevant Tests (#6480)

    * 🏗️ 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

    * 🗣️ feat: add support for `gpt-4o-transcribe` models (#6483)

    * 🔃 fix: Draft Clearing, Claude Titles, Remove Default Vision Max Tokens (#6501)

    * 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

    * 🌍 i18n: Update translation.json with latest translations (#6505)

    Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

    * separate sandboxes by users

    * 🔃 refactor: Allow streaming for o1 models in OpenAIClient and agent runs (#6509)

    * 🎨 feat: UI Refresh for Enhanced UX (#6346)

    * ✨ 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 <[email protected]>

    * 🔧 fix: Update username reference to use user.name in greeting display (#6534)

    * 🎨 style: Update background color of CodeBlock component to gray-900 (#6540)

    * 🔒 Security: Update Vite to version 6.2.3 (`CVE-2025-30208`, `GHSA-67mh-4wv8-2f99`) (#6541)

    * security: Update Vite to version 6.1.2

    * 🔧 fix: Update Vite to version 6.2.3

    * 🔧 chore: `Vite` Plugin Upgrades & Config Optimizations (#6547)

    * 🔧 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 <[email protected]>

    * 🌍 feat: Add support for Hungarian language localization (#6508)

    * 🔧 refactor: Consolidate Logging, Model Selection & Actions Optimizations, Minor Fixes (#6553)

    * 🔧 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

    * …
jmaddington added a commit to jmaddington/LibreChat that referenced this pull request Apr 8, 2025
* 🗑️ a11y: Add Accessible Name to Button for File Attachment Removal (#6709)

* 🔧 fix: Chat Middleware, Zod Conversion, Auto-Save and S3 URL Refresh (#6720)

* 🔧 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 d2e4134d1f546042fdf0a3181c1cc85a387ad0ab.

* refactor: Move base64 encoding/decoding functions to top-level scope and optimize input handling

* 🔧 fix: Agent Capability Checks & DocumentDB Compatibility for Agent Resource Removal (#6726)

* fix: tool capability checks in loadAgentTools function

* fix: enhance atomicity in removing agent resource files and add concurrency tests, improve documentdb compatibility

* 🪙 chore: Update Gemini Pricing (#6731)

* 🔄 fix: Improve audio MIME type detection and handling in Speech to Text hook (#6707)

* 🪺 refactor: Nest Permission fields for Roles (#6487)

* 🏗️ 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 <[email protected]>

* 📦 chore: Update `caniuse-lite` dependency to version 1.0.30001706 (#6482)

* 🔧 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

* ⚙️ refactor: OAuth Flow Signal, Type Safety, Tool Progress & Updated Packages (#6752)

* 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: bump vite from 6.2.3 to 6.2.5 (#6745)

Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 6.2.3 to 6.2.5.
- [Release notes](https://github.com/vitejs/vite/releases)
- [Changelog](https://github.com/vitejs/vite/blob/v6.2.5/packages/vite/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite/commits/v6.2.5/packages/vite)

---
updated-dependencies:
- dependency-name: vite
  dependency-version: 6.2.5
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* 🪺 fix: Update Role Handling due to New Schema Shape (#6774)

* 📝 fix: Update translation for shared agent message in English locale

* 🪺 fix: Migrate role schema to new nested structure and update permissions handling where missed

* 🗨️ fix: Show ModelSpec Greeting (#6770)

* 🔦 feat: MCP Support for Non-Agent Endpoints (#6775)

* 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

* Squashed commit of the following:

commit 7ae5c710e3ecf4c559a77ca4f60c363b0ae4af37
Author: Jonathan Addington <[email protected]>
Date:   Tue Apr 8 14:11:34 2025 +0000

    chore: misc changes to devcontainer for local dev

commit 9d4ab0abb9562b167bf9e61d92497aeedce56f11
Merge: c351f807 4a01302d
Author: Jonathan Addington <[email protected]>
Date:   Mon Apr 7 19:55:20 2025 -0400

    Merge branch 'jm-production' of https://github.com/jmaddington/LibreChat into jm-production

commit c351f807a32f2841e3051308f033264d180a7deb
Author: Jonathan Addington <[email protected]>
Date:   Mon Apr 7 19:55:14 2025 -0400

    Make branch parameter optional in deploy-jm workflow to support easier manual triggering

commit 4a01302d8a61c3ee001dc20601d2728caa6cb855
Author: JM Addington <[email protected]>
Date:   Wed Apr 2 23:29:23 2025 -0400

    Feature/status badges (#65)

    * Add workflow status badges to README and create build-only workflow

    * Enable manual workflow triggering and include jm-production branch

    * Add tracking/* and feature/* branches to workflow triggers

    * Fix Docker Build Only badge in README

    * Fix duplicate FluxAPI declarations in handleTools.js

    * Fix frontend build by externalizing problematic dependencies

    * Add clean-set to externalized dependencies

    * chore: misc package and readme updates

    * Fix TimeAPI test module import path

    * Fix TimeAPI test and remove console.error in config/index.js

commit d5f7fab7d972c0b53f1211506d16e048249b9510
Author: Jonathan Addington <[email protected]>
Date:   Wed Apr 2 19:42:45 2025 -0400

    Enhance deploy-jm workflow with manual trigger options

    - Add input parameters for manual workflow runs
    - Make branch, tag, and dockerfile configurable
    - Add caching for faster builds
    - Improve inline documentation

    🤖 Generated with [Claude Code](https://claude.ai/code)

    Co-Authored-By: Claude <[email protected]>

commit 3cecf16f8529ffeb44516b25f737f89d564b859a
Author: JM Addington <[email protected]>
Date:   Wed Apr 2 19:38:16 2025 -0400

    Update README.md to document tracking branch naming convention (#62)

commit a983b07180014facd15dbffc41238324589b6550
Merge: a33927c6 9da63b48
Author: Jonathan Addington <[email protected]>
Date:   Wed Apr 2 19:34:51 2025 -0400

    Merge files from danny-main branch verbatim

    Merge specific files from danny-main branch taking their versions verbatim:
    - CHANGELOG.md
    - api/app/clients/GoogleClient.js
    - api/server/controllers/UserController.js
    - api/server/middleware/abortMiddleware.js
    - api/server/services/Config/getCustomConfig.js
    - api/server/services/Files/S3/crud.js
    - api/server/services/MCP.js
    - api/app/clients/tools/structured/FluxAPI.js
    - client and package files
    - Removed test files that don't exist in danny-main

    🤖 Generated with [Claude Code](https://claude.ai/code)

    Co-Authored-By: Claude <[email protected]>

commit 9da63b48376b73ef283113e9ff025ba60bce94b1
Author: Jonathan Addington <[email protected]>
Date:   Wed Apr 2 19:30:37 2025 -0400

    Merge files from danny-main branch verbatim

    Merge specific files from danny-main branch taking their versions verbatim:
    - CHANGELOG.md
    - api/app/clients/GoogleClient.js
    - api/server/controllers/UserController.js
    - api/server/middleware/abortMiddleware.js
    - api/server/services/Config/getCustomConfig.js
    - api/server/services/Files/S3/crud.js
    - api/server/services/MCP.js
    - client and package files
    - Removed test files that don't exist in danny-main

    🤖 Generated with [Claude Code](https://claude.ai/code)

    Co-Authored-By: Claude <[email protected]>

commit a33927c6f6e0d06f74895fc9b0cfe6d4fbf06ffc
Author: JM Addington <[email protected]>
Date:   Wed Apr 2 19:05:09 2025 -0400

    Tracking/2025/04/02 (#60)

    * 🧠 feat: Reasoning UI for Agents (#5904)

    * chore: bump https-proxy-agent and @librechat/agents

    * refactor: Improve error logging in OllamaClient for API fetch failures

    * feat: Add DeepSeek provider support and enhance provider name handling

    * refactor: Use Providers.OLLAMA constant for model name check in fetchModels function

    * feat: Enhance formatAgentMessages to handle reasoning content type

    * feat: OpenRouter Agent Reasoning

    * hard work and dedicationgit add .env.example :)

    * fix: Handle Google social login with missing last name

    Social login with Google was previously displaying 'undefined' when
    a user's last name was empty or not provided.

    Changes:
    - Conditionally render last name only if it exists
    - Prevent displaying 'undefined' when last name is missing

    * fix: add missing file endings for developers yml,yaml and log

    ---------

    Co-authored-by: Mohamed Al-Duraji <[email protected]>
    Co-authored-by: Deepak Kendole <[email protected]>
    Co-authored-by: Peter Rothlaender <[email protected]>

    * 🐞 fix: Add Null Checks for BaseURL in Agent Config (#5908)

    * ⚙️ refactor: Enhance Logging, Navigation And Error Handling (#5910)

    * refactor: Ensure Axios Errors are less Verbose if No Response

    * refactor: Improve error handling in logAxiosError function

    * fix: Prevent ModelSelect from rendering for Agent Endpoints

    * refactor: Enhance logging functions with type parameter for better clarity

    * refactor: Update buildDefaultConvo function to use optional endpoint parameter since we pass a default value for undefined

    * refactor: Replace console logs with logger warnings and errors in useNavigateToConvo hook, and handle removed endpoint edge case

    * chore: import order

    * ⚖️ docs: Update LICENSE.md Year: 2024 -> 2025 (#5915)

    * 🔒 feat: Two-Factor Authentication with Backup Codes & QR support (#5685)

    * 🔒 feat: add Two-Factor Authentication (2FA) with backup codes & QR support (#5684)

    * working version for generating TOTP and authenticate.

    * better looking UI

    * refactored + better TOTP logic

    * fixed issue with UI

    * fixed issue: remove initial setup when closing window before completion.

    * added: onKeyDown for verify and disable

    * refactored some code and cleaned it up a bit.

    * refactored some code and cleaned it up a bit.

    * refactored some code and cleaned it up a bit.

    * refactored some code and cleaned it up a bit.

    * fixed issue after updating to new main branch

    * updated example

    * refactored controllers

    * removed `passport-totp` not used.

    * update the generateBackupCodes function to generate 10 codes by default:

    * update the backup codes to an object.

    * fixed issue with backup codes not working

    * be able to disable 2FA with backup codes.

    * removed new env. replaced with JWT_SECRET

    * ✨ style: improved a11y and style for TwoFactorAuthentication

    * 🔒 fix: small types checks

    * ✨ feat: improve 2FA UI components

    * fix: remove unnecessary console log

    * add option to disable 2FA with backup codes

    * - add option to refresh backup codes
    - (optional) maybe show the user which backup codes have already been used?

    * removed text to be able to merge the main.

    * removed eng tx to be able to merge

    * fix: migrated lang to new format.

    * feat: rewrote whole 2FA UI + refactored 2FA backend

    * chore: resolving conflicts

    * chore: resolving conflicts

    * fix: missing packages, because of resolving conflicts.

    * fix: UI issue and improved a11y

    * fix: 2FA backup code not working

    * fix: update localization keys for UI consistency

    * fix: update button label to use localized text

    * fix: refactor backup codes regeneration and update localization keys

    * fix: remove outdated translation for shared links management

    * fix: remove outdated 2FA code prompts from translation.json

    * fix: add cursor styles for backup codes item based on usage state

    * fix: resolve conflict issue

    * fix: resolve conflict issue

    * fix: resolve conflict issue

    * fix: missing packages in package-lock.json

    * fix: add disabled opacity to the verify button in TwoFactorScreen

    * ⚙ fix: update 2FA logic to rely on backup codes instead of TOTP status

    * ⚙️ fix: Simplify user retrieval in 2FA logic by removing unnecessary TOTP secret query

    * ⚙️ test: Add unit tests for TwoFactorAuthController and twoFactorControllers

    * ⚙️ fix: Ensure backup codes are validated as an array before usage in 2FA components

    * ⚙️ fix: Update module path mappings in tests to use relative paths

    * ⚙️ fix: Update moduleNameMapper in jest.config.js to remove the caret from path mapping

    * ⚙️ refactor: Simplify import paths in TwoFactorAuthController and twoFactorControllers test files

    * ⚙️ test: Mock twoFactorService methods in twoFactorControllers tests

    * ⚙️ refactor: Comment out unused imports and mock setups in test files for two-factor authentication

    * ⚙️ refactor: removed files

    * refactor: Exclude totpSecret from user data retrieval in AuthController, LoginController, and jwtStrategy

    * refactor: Consolidate backup code verification to apply DRY and remove default array in user schema

    * refactor: Enhance two-factor authentication ux/flow with improved error handling and loading state management, prevent redirect to /login

    ---------

    Co-authored-by: Marco Beretta <[email protected]>
    Co-authored-by: Danny Avila <[email protected]>

    * 🛠 refactor: Ensure File Deletions, File Naming, and Agent Resource Updates (#5928)

    * refactor: Improve error logging for file upload and processing functions to prevent verbosity

    * refactor: Add uploads directory to Docker Compose to persist file uploads

    * refactor: `addAgentResourceFile` to handle edge case of non-existing `tool_resource` array

    * refactor: Remove version specification from deploy-compose.yml

    * refactor: Prefix filenames with file_id to ensure uniqueness in file uploads

    * refactor: Enhance error handling in deleteVectors to log warnings for non-404 errors

    * refactor: Limit file search results to top 5 based on relevance score

    * 🌍 i18n: Update translation.json with latest translations

    ---------

    Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

    * 🐛 fix: RAG Results Sorted By Distance (#5931)

    * refactor: Extract file unlinking logic into a separate function and don't throw error

    * fix: RAG results are actually in distance, not score

    * 📜 ci: Automate`CHANGELOG.md` (#5838)

    * feat: started with automated CHANGELOG.md

    * fix: no `configuration.json` found

    * refactor: `configuration.json`

    * fix: missing label `configuration.json`

    * fix: missing label `configuration.json`

    * fix: missing label `configuration.json`

    * fix: missing label `configuration.json`

    * fix: missing label `configuration.json`

    * ci: test new workflow action

    * ci: test new workflow action

    * ci: test new workflow action

    * feat: working CHANGELOG.md generation

    * feat: working CHANGELOG.md generation

    * feat: working CHANGELOG.md generation

    * feat: working CHANGELOG.md generation

    * feat: working CHANGELOG.md generation

    * feat: working CHANGELOG.md generation

    * feat: working CHANGELOG.md generation

    * fix: separate release and Unreleased workflows CHANGELOG.md generation

    * fix: separate release and Unreleased workflows CHANGELOG.md generation

    * fix: separate release and Unreleased workflows CHANGELOG.md generation

    * fix: separate release and Unreleased workflows CHANGELOG.md generation

    * fix: separate release and Unreleased workflows CHANGELOG.md generation

    * fix: separate release and Unreleased workflows CHANGELOG.md generation

    * fix: separate release and Unreleased workflows CHANGELOG.md generation

    * fix: separate release and Unreleased workflows CHANGELOG.md generation

    * fix: separate release and Unreleased workflows CHANGELOG.md generation

    * fix: separate release and Unreleased workflows CHANGELOG.md generation

    * fix: separate release and Unreleased workflows CHANGELOG.md generation

    * fix: separate release and Unreleased workflows CHANGELOG.md generation

    * fix: separate release and Unreleased workflows CHANGELOG.md generation

    * fix: separate release and Unreleased workflows CHANGELOG.md generation

    * fix: separate release and Unreleased workflows CHANGELOG.md generation

    * fix: separate release and Unreleased workflows CHANGELOG.md generation

    * fix: separate release and Unreleased workflows CHANGELOG.md generation

    * fix: separate release and Unreleased workflows CHANGELOG.md generation

    * fix: separate release and Unreleased workflows CHANGELOG.md generation

    * fix: separate release and Unreleased workflows CHANGELOG.md generation

    * fix: separate release and Unreleased workflows CHANGELOG.md generation

    * fix: separate release and Unreleased workflows CHANGELOG.md generation

    * fix: separate release and Unreleased workflows CHANGELOG.md generation

    * refactor: only trigger the `unreleased-changelog` action on push to `main`

    and `generate-release-changelog` only when pushing a tag with `v*.*.*`

    * refactor: Runs only every Monday at 00:00 UTC

    * 🔒 fix: 2FA Encrypt TOTP Secrets & Improve Docs (#5933)

    * 🔒 fix: Integrate TOTP secret retrieval and encryption in Two-Factor Authentication

    * 🔒 refactor: Simplify TOTP verification by removing commented-out code

    * 🔧 fix: Resizable Panel Unmount Error & Code Env. File Re-Upload (#5947)

    * 🔧 refactor: handle full path for code env. file re-upload

    * fix: update react-resizable-panels to version 2.1.7 to resolve error thrown on unmount of artifacts; ref: https://github.com/bvaughn/react-resizable-panels/issues/372

    * refactor: replace promptPrefix with systemMessage in GoogleClient for improved clarity, and to prevent saving LibreChat feature-specific instructions to the user's custom instructions

    * ✨ style: Enhance Styling & Accessibility (#5956)

    * ✨ feat: Enhance UI Components with Shadows and Accessibility Improvements

    * 🔧 fix: Correct Category Labels and Values in API Model & Adjust Button Class in Prompt List

    * 🔢 chore: Remove Dollar Sign from Balance Display (#5948)

    * 🚀 feat: Support Redis Clusters, Trusted Proxy Setting, And Toggle Meilisearch Indexing (#5963)

    * refactor: Improve MeiliSearch integration with environment-based configuration for running index sync

    * chore: Remove Question issue template from GitHub repository

    * feat: Enable indexing in MeiliSearch configuration and clean up error handling in indexSync

    * feat: Update .env.example to include optional indexing configuration

    * refactor: rename env var for disabling index sync to MEILI_NO_SYNC

    * Added the option to change the default trusted proxy

    * feat: Add TRUST_PROXY configuration to .env.example for reverse proxy settings

    * feat: Enhance Redis support with cluster configuration and TLS options

    * feat(redis): add cluster support, environment config and url mapping

    - Add Redis cluster configuration with isEnabled flag
    - Configure prefix and max listeners settings
    - Improve code formatting and readability
    - Fix URL vs host parameter handling
    - Update environment variables and regex patterns

    ---------

    Co-authored-by: Gil Assunção <[email protected]>
    Co-authored-by: Pedro Reis <[email protected]>
    Co-authored-by: João Trigo Soares <[email protected]>

    * 👐 refactor: Agents Accessibility and Gemini Error Handling (#5972)

    * style: Enhance ControlCombobox with Carat Display, ClassName, and Disabled State

    * refactor(ModelPanel): replace SelectDropdown with ControlCombobox for improved accessibility

    * style: Adjust padding and positioning in ModelPanel for improved layout

    * style(ControlCombobox): add containerClassName and iconSide props for enhanced customization

    * style(ControlCombobox): add iconClassName prop for customizable icon styling

    * refactor(AgentPanel): enhance layout with new button for creating agents and adjust structure for better alignment

    * refactor(AgentSelect): replace SelectDropDown with ControlCombobox for improved accessibility and layout

    * feat(translation): add new translation key for improved UI clarity

    * style(AgentSwitcher, AssistantSwitcher): add iconClassName prop for customizable icon styling

    * refactor(AgentPanelSkeleton): improve layout of skeleton components to match new visual structure

    * style(AgentPanel, AgentPanelSkeleton): add margin to flex container for improved layout consistency

    * a11y(AgentSelect, ControlCombobox): add selectId prop for preventing focus going to start to page after agent selection

    * fix(AgentSelect): update SELECT_ID constant for improved clarity in component identification

    * fix(GoogleClient): update type annotation, add abort handling for content generation requests, catch "uncaught" abort errors and GoogleGenerativeAI errors from `@google/generative-ai`

    * 🌍 i18n: Update translation.json with latest translations (#5946)

    Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

    * ⚙️ ci: Trigger Restriction for `Detect Unused NPM Packages` (#5844)

    The workflow now only runs on pull requests that modify:
    - The root `package.json` or `package-lock.json` file
    - Any file under the client folder
    - Any file under the api folder

    * 🤖 feat: 192x192 Icon for Android PWA (#5966)

    * fix: Add 192x192 icon to allow the PWA to install on Android devices using Chrome.

    * fix: Use less whitespace on icon-192x192.png. Re-generate maskable-icon.png and apple-touch-icon-180x180.png to be higher quality, cripser and use less kilobytes.

    * 🌟 feat: Enhance User Experience and SEO with Accessibility Updates and robots.txt (#5392)

    * 🔈 fix: Refactor AudioRecorder to use button element for improved accessibility

    * 🔈 fix: Update conversation menu button ID for improved accessibility

    * 🔈 fix: Remove redundant role attribute from SidePanel for improved accessibility

    * feat: Add robots.txt to manage web crawler access

    * feat: Update index.html with meta description and remove legacy file

    * fix: resolve merge conflicts.

    * fix: resolve merge conflicts.

    * fix: resolve merge conflicts.

    * feat: Update index.html with meta description and remove legacy file

    * 🔧 feat: Add legacy support and improve SidePanel accessibility

    * 🔧 feat: Integrate express-static-gzip for improved static file serving and add new plugins for enhanced functionality

    * 🔧 chore: Remove unused HTML ESLint plugin configurations and dependencies

    ---------

    Co-authored-by: Ruben Talstra <[email protected]>

    * 🚀 feat: Add Custom Welcome Message in `librechat.yaml` (#5870)

    * feat: Custom Welcome Message (#2967)

    * don't think I'm on the right path?

    * ✨ feat: Implement custom welcome message configuration in interface

    * 🔼 feat: "Run Code" Button Toggle (#5988)

    * feat: Add 'Run Code' and 'Temporary Chat' permissions to role management

    * feat: Add NextFunction typedef to api/typedefs.js

    * feat: Add temporary chat and run code permissions to role schema

    * refactor: Enhance access check middleware with logging for permission errors and better typing

    * refactor: Set default value of USE permission to true in multiConvoPermissionsSchema

    * refactor: Implement checkAccess function for separation of permission validation logic from middleware

    * feat: Integrate permission checks for tool execution and enhance Markdown code block with execution capability

    * fix: Convert REDIS_MAX_LISTENERS to a number, closes #5979

    * 🚀 feat: Claude 3.7 Support + Reasoning (#6008)

    * fix: missing console color methods for admin scripts

    * feat: Anthropic Claude 3.7 Sonnet Support

    * feat: update eventsource to version 3.0.2 and upgrade @modelcontextprotocol/sdk to 1.4.1

    * fix: update DynamicInput to handle number type and improve initial value logic

    * feat: first pass Anthropic Reasoning (Claude 3.7)

    * feat: implement streaming support in AnthropicClient with reasoning UI handling

    * feat: add missing xAI (grok) models

    * 🔗 fix: Shared Link with Markdown Code Error (#6016)

    * refactor: Export AuthContext from AuthContextProvider

    * refactor: Update useHasAccess to utilize useContext for AuthContext

    * refactor: Enhance type definitions in useHasAccess for better type safety

    * sandbox sessions storage

    * sandbox sessions storage

    * 🌍 i18n: Add Georgian Language and Update Fallback Languages (#6022)

    * ✨ feat: Anthropic Agents Prompt Caching & UI Accessibility Enhancements (#6045)

    * chore: remove auto-focus for now

    * refactor: move react-hook-form Controller Logic to AgentSelect from AgentPanel

    * fix: a11y focus issue with AgentSelect by never replacing it in its component tree

    * fix: maintain ComboBox focus and force re-render on agent ID change in AgentPanel

    * chore: `gemini-2.0-flash-lite-preview-02-05` (deprecated)

    * refactor: extract cache control logic and headers configuration to helper functions in AnthropicClient

    * feat: anthropic agents prompt caching

    * chore: bump @librechat/agents and related dependencies

    * fix: typo

    * 🔧 refactor: Improve Params Handling, Remove Legacy Items, & Update Configs (#6074)

    * chore: include all assets for service worker, remove unused tsconfig.node.json, eslint ignore vite config

    * chore: exclude image files from service worker caching

    * refactor: simplify googleSchema transformation and error handling

    * fix: max output tokens cap for 3.7 models

    * fix: skip index fixing in CI, development, and test environments

    * ci: add maxOutputTokens handling tests for Claude models

    * refactor: drop top_k and top_p parameters for claude-3.7 in AnthropicClient and add tests for new behavior

    * refactor: conditionally include top_k and top_p parameters for non-claude-3.7 models

    * ci: add unit tests for getLLMConfig function with various model options

    * chore: remove all OPENROUTER_API_KEY legacy logic

    * refactor: optimize stream chunk handling

    * feat: reset model parameters button

    * refactor: remove unused examples field from convoSchema and presetSchema

    * chore: update librechat-data-provider version to 0.7.6993

    * refactor: move excludedKeys set to data-provider for better reusability

    * feat: enhance saveMessageToDatabase to handle unset fields and fetched conversation state

    * feat: add 'iconURL' and 'greeting' to excludedKeys in data provider config

    * fix: add optional chaining to user ID retrieval in getConvo call

    * 🌍 i18n: Update translation.json with latest translations (#6009)

    Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

    * 🚀 feat: Agent Cache Tokens & Anthropic Reasoning Support (#6098)

    * fix: handling of top_k and top_p parameters for Claude-3.7 models (allowed without reasoning)

    * feat: bump @librechat/agents for Anthropic Reasoning support

    * fix: update reasoning handling for OpenRouter integration

    * fix: enhance agent token spending logic to include cache creation and read details

    * fix: update logic for thinking status in ContentParts component

    * refactor: improve agent title handling

    * chore: bump @librechat/agents to version 2.1.7 for parallel tool calling for Google models

    * 🚀 feat: GPT-4.5, Anthropic Tool Header, and OpenAPI Ref Resolution (#6118)

    * 🔧 refactor: Update settings to use 'as const' for improved type safety and make gpt-4o-mini default model (cheapest)

    * 📖 docs: Update README to reflect support for GPT-4.5 in image analysis feature

    * 🔧 refactor: Update model handling to use default settings and improve encoding logic

    * 🔧 refactor: Enhance model version extraction logic for improved compatibility with future GPT and omni models

    * feat: GPT-4.5 tx/token update, vision support

    * fix: $ref resolution logic in OpenAPI handling

    * feat: add new 'anthropic-beta' header for Claude 3.7 to include token-efficient tools; ref: https://docs.anthropic.com/en/docs/build-with-claude/tool-use/token-efficient-tool-use

    * 🖼️ refactor: Enhance Env Extraction & Agent Image Handling (#6131)

    * refactor: use new image output format for agents using DALL-E tools

    * refactor: Enhance image fetching with proxy support and adjust logging placement in DALL-E 3 integration

    * refactor: Enhance StableDiffusionAPI to support agent-specific return values and display message for generated images

    * refactor: Add unit test execution for librechat-mcp in backend review workflow

    * refactor: Update environment variable extraction logic, export from serpate module to avoid circular refs, and remove deprecated tests

    * refactor: Add unit tests for environment variable extraction and enhance StdioOptionsSchema to process env variables

    * 🐼 feat: Add Flux Image Generation Tool (#6147)

    * 🔧 fix: Log warning for aborted operations in AgentClient

    * ci: Remove unused saveMessageToDatabase mock in FakeClient initialization

    * ci: test actual implementation of saveMessageToDatabase

    * refactor: Change log level from warning to error for aborted operations in AgentClient

    * refactor: Add className prop to Image component for customizable styling, use theme selectors

    * feat: FLUX Image Generation tool

    * 🌍 i18n: Update translation.json with latest translations (#6132)

    Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

    * 🧠 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

    * 🌍 i18n: Update translation.json with latest translations (#6159)

    Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

    * 🚀 feat: Enhance Model Handling, Logging & xAI Agent Support (#6182)

    * chore: update @librechat/agents to version 2.1.9

    * feat: xAI standalone provider for agents

    * chore: bump librechat-data-provider version to 0.7.6997

    * fix: reorder import statements and enhance user listing output

    * fix: Update Docker Compose commands to support v2 syntax with fallback

    * 🔧 fix: drop `reasoning_effort` for o1-preview/mini models

    * chore: requireLocalAuth logging

    * fix: edge case artifact message editing logic to handle `new` conversation IDs

    * fix: remove `temperature` from model options in OpenAIClient if o1-mini/preview

    * fix: update type annotation for fetchPromisesMap to use Promise<string[]> instead of string[]

    * feat: anthropic model fetching

    * fix: update model name to use EModelEndpoint.openAI in fetchModels and fetchOpenAIModels

    * fix: add error handling to modelController for loadModels

    * fix: add error handling and logging for model fetching in loadDefaultModels

    * ci: update getAnthropicModels tests to be asynchronous

    * feat: add user ID to model options in OpenAI and custom endpoint initialization

    ---------

    Co-authored-by: Andrei Berceanu <[email protected]>
    Co-authored-by: KiGamji <[email protected]>

    * 🪄 feat: Customize Sandpack `bundlerURL` for Artifacts (#6191)

    * 🕒 feat: Add Configurable MCP Server Timeouts (#6199)

    * 🚀 feat: Add Code API Proxy Support and Update MCP SDK (#6203)

    * chore: bump mcp sdk

    * feat: Add proxy support for file download and upload in Code Environment CRUD operations

    * chore: remove unused files

    * chore: change output format from CommonJS to ES module in server rollup config

    * ✨ v0.7.7 (#6206)

    * v0.7.7

    * chore: Bump librechat-mcp version to 1.1.0

    * action: update Unreleased changelog

    * Update CHANGELOG.md

    ---------

    Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
    Co-authored-by: Ruben Talstra <[email protected]>

    * 📦 refactor: Move DB Models to `@librechat/data-schemas` (#6210)

    * 🚀 feat: Introduce data schemas and refactor models to use @librechat/data-schemas

    * 🚀 feat: Add installation step for Data Schemas Package in backend review workflow

    * chore: Add `data-schemas` package to update/rebuild packages scripts

    * chore: Update Dockerfile to include data-schemas package build process

    * fix: add missing @rollup/plugin-typescript package

    * chore: Add GitHub Actions workflow for publishing data-schemas package

    ---------

    Co-authored-by: Danny Avila <[email protected]>

    * 🌍 i18n: Add Thai Language Support and Update Translations (#6219)

    * 🌍 i18n: Add Thai Language Support and Update Translations

    * 📝 docs: Update Locize Logo in README.md

    * 📦 ci: `npm publish` access to public for `data-schemas`

    * 📦 ci: Update workflow to publish `@librechat/data-schemas` to NPM with manual trigger option

    * 📦 ci: Refactor workflow to combine build and publish steps with version check for `@librechat/data-schemas`

    * 📦 ci: Update npm authentication token for publishing in workflow

    * 🌍 i18n: Update translation.json with latest translations (#6220)

    Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

    * 📦 chore: Patch `axios` to address CVE-2025-27152 (#6222)

    * 📦 chore: remove `langchain` (no longer used)

    * chore: patch `axios` to address CVE-2025-27152

    * 🐛 fix: Avatar Type Definitions in Agent/Assistant Schemas (#6235)

    * fix: Simplify avatar type definition in agent and assistant schemas

    * fix: Update regex to correctly match OpenAI model identifiers

    * 🌍 i18n: Update translation.json with latest translations (#6240)

    Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

    * 🔧 fix: MeiliSearch Field Error and Patch Incorrect Import by #6210 (#6245)

    * 📦 refactor: Update MeiliSearch integration and improve schema handling

    * Update indexSync.js

    * 📦 refactor: Update Conversation model import path in indexSync.js

    * 📦 refactor: Update import paths for Conversation and Message models in indexSync.js

    * 🔏 fix: Enhance Two-Factor Authentication (#6247)

    * 🌟 feat: Implement Two-Factor Authentication (2FA) functionality

    * fix: Two-Factor Authentication Logic and State Management

    * 🌟 feat: Add LICENSE file and update package version to 0.0.2 with MIT license

    * ⚠️ refactor: Use Error Content Part Instead Of Throwing Error for Agents (#6262)

    * 🐛 fix: Await saveMessage in abortMiddleware to ensure proper execution (#6248)

    * 🌍 i18n: Update translation.json with latest translations (#6241)

    Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

    * 🔍 feat: Mistral OCR API / Upload Files as Text (#6274)

    * refactor: move `loadAuthValues` to `~/services/Tools/credentials`

    * feat: add createAxiosInstance function to configure axios with proxy support

    * WIP: First pass mistral ocr

    * refactor: replace getConvoFiles with getToolFiles for improved file retrieval logic

    * refactor: improve document formatting in encodeAndFormat function

    * refactor: remove unused resendFiles parameter from buildOptions function (this option comes from the agent config)

    * fix: update getFiles call to include files with `text` property as well

    * refactor: move file handling to `initializeAgentOptions`

    * refactor: enhance addImageURLs method to handle OCR text and improve message formatting

    * refactor: update message formatting to handle OCR text in various content types

    * refactor: remove unused resendFiles property from compactAgentsSchema

    * fix: add error handling for Mistral OCR document upload and logging

    * refactor: integrate OCR capability into file upload options and configuration

    * refactor: skip processing for text source files in delete request, as they are directly tied to database

    * feat: add metadata field to ExtendedFile type and update PanelColumns and PanelTable components for localization and metadata handling

    * fix: source icon styling

    * wip: first pass, frontend file context agent resources

    * refactor: add hover card with contextual information for File Context (OCR) in FileContext component

    * feat: enhance file processing by integrating file retrieval for OCR resources in agent initialization

    * feat: implement OCR config; fix: agent resource deletion for ocr files

    * feat: enhance agent initialization by adding OCR capability check in resource priming

    * ci: fix `~/config` module mock

    * ci: add OCR property expectation in AppService tests

    * refactor: simplify OCR config loading by removing environment variable extraction, to be done when OCR is actually performed

    * ci: add unit test to ensure environment variable references are not parsed in OCR config

    * refactor: disable base64 image inclusion in OCR request

    * refactor: enhance OCR configuration handling by validating environment variables and providing defaults

    * refactor: use file stream from disk for mistral ocr api

    * 🎨 a11y: Update Model Spec Description Text (#6294)

    * 🔧 fix: Axios Proxy Usage And Bump `mongoose` (#6298)

    * fix: bump mongoose to fix nested schema errors

    * fix: Enhance Axios instance creation with improved proxy handling and error logging

    * fix: Refactor Axios instance creation and remove proxy handling from file upload functions

    * fix: Update proxy configuration in Axios instance creation and add unit tests

    * 🤖 feat: Support OpenAI Web Search models (#6313)

    * fix: reorder vision model entries for cheaper models first

    * fix: add endpoint property to bedrock client initialization

    * fix: exclude unsupported parameters for OpenAI Web Search models

    * fix: enhance options to exclude unsupported parameters for Web Search models

    * 🔧 fix: comment out MCP servers to resolve service run issues (#6316)

    Co-authored-by: Coding Wizard <[email protected]>

    * 🔗 feat: Agent Chain (Mixture-of-Agents) (#6374)

    * wip: first pass, dropdown for selecting sequential agents

    * refactor: Improve agent selection logic and enhance performance in SequentialAgents component

    * wip: seq. agents working ideas

    * wip: sequential agents style change

    * refactor: move agent form options/submission outside of AgentConfig

    * refactor: prevent repeating code

    * refactor: simplify current agent display in SequentialAgents component

    * feat: persist  form value handling in AgentSelect component for agent_ids

    * feat: first pass, sequential agnets agent update

    * feat: enhance message display with agent updates and empty text handling

    * chore: update Icon component to use EModelEndpoint for agent endpoints

    * feat: update content type checks in BaseClient to use constants for better readability

    * feat: adjust max context tokens calculation to use 90% of the model's max tokens

    * feat: first pass, agent run message pruning

    * chore: increase max listeners for abort controller to prevent memory leaks

    * feat: enhance runAgent function to include current index count map for improved token tracking

    * chore: update @librechat/agents dependency to version 2.2.5

    * feat: update icons and style of SequentialAgents component for improved UI consistency

    * feat: add AdvancedButton and AdvancedPanel components for enhanced agent settings navigation, update styling for agent form

    * chore: adjust minimum height of AdvancedPanel component for better layout consistency

    * chore: update @librechat/agents dependency to version 2.2.6

    * feat: enhance message formatting by incorporating tool set into agent message processing, in order to allow better mix/matching of agents (as tool calls for tools not found in set will be stringified)

    * refactor: reorder components in AgentConfig for improved readability and maintainability

    * refactor: enhance layout of AgentUpdate component for improved visual structure

    * feat: add DeepSeek provider to Bedrock settings and schemas

    * feat: enhance link styling in mobile.css for better visibility and accessibility

    * fix: update banner model import in update banner script; export Banner model

    * refactor: `duplicateAgentHandler` to include tool_resources only for OCR context files

    * feat: add 'qwen-vl' to visionModels for enhanced model support

    * fix: change image format from JPEG to PNG in DALLE3 response

    * feat: reorganize Advanced components and add localizations

    * refactor: simplify JSX structure in AgentChain component to defer container styling to parent

    * feat: add FormInput component for reusable input handling

    * feat: make agent recursion limit configurable from builder

    * feat: add support for agent capabilities chain in AdvancedPanel and update data-provider version

    * feat: add maxRecursionLimit configuration for agents and update related documentation

    * fix: update CONFIG_VERSION to 1.2.3 in data provider configuration

    * feat: replace recursion limit input with MaxAgentSteps component and enhance input handling

    * feat: enhance AgentChain component with hover card for additional information and update related labels

    * fix: pass request and response objects to `createActionTool` when using assistant actions to prevent auth error

    * feat: update AgentChain component layout to include agent count display

    * feat: increase default max listeners and implement capability check function for agent chain

    * fix: update link styles in mobile.css for better visibility in dark mode

    * chore: temp. remove agents package while bumping shared packages

    * chore: update @langchain/google-genai package to version 0.1.11

    * chore: update @langchain/google-vertexai package to version 0.2.2

    * chore: add @librechat/agents package at version 2.2.8

    * feat: add deepseek.r1 model with token rate and context values for bedrock

    * 🔧 fix: Update Token Calculations/Mapping, MCP `env` Initialization (#6406)

    * fix: Enhance MCP initialization to process environment variables

    * fix: only build tokenCountMap with messages that are being used in the payload

    * fix: Adjust maxContextTokens calculation to account for maxOutputTokens

    * refactor: Make processMCPEnv optional in MCPManager initialization

    * chore: Bump version of librechat-data-provider to 0.7.73

    * ⌛ feat: `initTimeout` for Slow Starting MCP Servers (#6383)

    * feat: make mcp server connect timeout configurable with initTimeout

    * style: add missing semicolon to connection.ts

    * 🚀 feat: `S3` Integration for File handling and Image uploads (#6142)

    * French Translation Update

    * French Translation Update

    * test

    * Add fileStrategy S3 Config

    * update s3 crud.js

    * 🔧 chore: downgrade dotenv to version 16.0.3 and add aws-sdk to package-lock.json

    * 🔧 chore: remove aws-sdk from package.json

    * 🚀 feat: Integrate AWS SDK for S3 with enhanced upload and retrieval functionalities

    * 🚀 feat: Implement S3 integration for file upload and retrieval functionalities

    * 🚀 feat: Enhance S3 initialization to support default credentials and improved error handling

    ---------

    Co-authored-by: Gael Martins <[email protected]>

    * 🐞 fix: Agent "Resend" Message Attachments + Source Icon Styling (#6408)

    * style: Update text file source icon background color for improved visibility in light mode

    * style: Update `vectordb` source icon background color for better visibility

    * fix: resend files behavior for tool resource message attachments (code interpreter and file search); Rename `getToolFiles` to `getConvoFiles` and simplify file retrieval logic; add `getToolFilesByIds` for fetching tool files by IDs

    * 🐛 fix: Prevent Crash on Duplicate Message ID (#6392)

    * fix: prevent crash on duplicate message ID

    Added error handling for MongoDB error code 11000 (duplicate key error) in saveMessage function. This prevents the application from crashing when trying to save messages with duplicate IDs, which can happen during aborted requests. Now logs a warning and continues execution safely.

    Closes: #5774
    Closes: #5776

    * fix: address ESLint issues in Message.js

    ---------

    Co-authored-by: odrec <[email protected]>

    * 🌍 i18n: Update translation.json with latest translations (#6277)

    Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

    * 🔒feat: Enable OpenID Auto-Redirect (#6066)

    * added feature for oidc auto redirection

    * Added Cooldown logic for OIDC auto redirect for failed login attempts

    * 🔧 feat: Implement custom logout redirect handling and enhance OpenID auto-redirect logic

    * 🔧 refactor: Update getLoginError to use TranslationKeys for improved type safety

    * 🔧 feat: Localize redirect message to OpenID provider in Login component

    ---------

    Co-authored-by: Ruben Talstra <[email protected]>

    * 🚀 feat: Integrate `Azure Blob Storage` for file handling and image uploads (#6153)

    * 🚀 feat: Integrate Azure Blob Storage for file handling and image uploads

    * 🐼 refactor: Correct module import case for Azure in strategies.js

    * 🚀 feat: Add Azure support in SourceIcon component

    * 🚀 feat: Enhance Azure Blob Service initialization with Managed Identity support

    * 🐼 refactor: Remove unused Azure dependencies from package.json and package-lock.json

    * 🐼 refactor: Remove unused Azure dependencies from package.json and package-lock.json

    * 🐼 refactor: Remove unused Azure dependencies from package.json and package-lock.json

    * 🚀 feat: Add Azure SDK dependencies for identity and storage blob

    * 🔧 fix: Reorganize imports in strategies.js for better clarity

    * 🔧 fix: Correct comment formatting in strategies.js for consistency

    * 🔧 fix: Improve comment formatting in strategies.js for consistency

    * ⚡ build(deps-dev): bump @babel/helpers from 7.26.9 to 7.26.10 (#6413)

    Bumps [@babel/helpers](https://github.com/babel/babel/tree/HEAD/packages/babel-helpers) from 7.26.9 to 7.26.10.
    - [Release notes](https://github.com/babel/babel/releases)
    - [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
    - [Commits](https://github.com/babel/babel/commits/v7.26.10/packages/babel-helpers)

    ---
    updated-dependencies:
    - dependency-name: "@babel/helpers"
      dependency-type: indirect
    ...

    Signed-off-by: dependabot[bot] <[email protected]>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

    * 🚀 feat: Add support for custom AWS endpoint in S3 initialization (#6431)

    * 🔐 fix: Invalid Key Length in 2FA Encryption (#6432)

    * 🚀 feat: Implement v3 encryption and decryption methods for TOTP secrets

    * 🚀 feat: Refactor Two-Factor Authentication methods and enhance 2FA verification process

    * 🚀 feat: Update encryption methods to use hex decoding for legacy keys and improve error handling for AES-256-CTR

    * 🚀 feat: Update import paths in TwoFactorController for consistency and clarity

    * 🏃‍♂️ refactor: Improve Agent Run Context & Misc. Changes (#6448)

    * chore: bump Model Context Protocol SDK dependencies

    * fix: correct indentation in MCPConnection class

    * refactor: enhance SSE transport with abort controller and add error handling for empty results

    * chore: remove outdated Model Context Protocol SDK dependency

    * chore: update @modelcontextprotocol/sdk dependency to version 1.7.0

    * chore: add debugging comments for PingRequest handling in MCPConnection class

    * refactor: update callTool method to accept structured arguments and options

    * refactor: simplify maxContextTokens calculation in initializeAgentOptions

    * chore: update @babel/runtime dependency to version 7.26.10

    * chore: update @librechat/agents dependency to version 2.2.9

    * chore: update @librechat/agents dependency to version 2.3.6

    * refactor: imports and prevent s3 initialization if strategy not configured

    * refactor: mark redis as non-experimental

    * refactor: add missing `maxContextTokens` for OpenAI parameters

    * refactor: improve log message for Redis initialization

    * chore: update @librechat/agents dependency to version 2.3.8

    * refactor: extend `streamBuffer` condition to include BEDROCK provider as easily gets throttled by AWS

    * refactor: filter out 'think' parts from message content in Anthropic and OpenAI clients

    * 🚀 feat: Add support for LDAP STARTTLS in LDAP Auth (#6438)

    * 🚀 feat: Refactor schema exports and update package version to 0.0.4 (#6455)

    * 📝 docs: librechat.example.yaml (#6442)

    Correctly comment commented comments:
    ```
    ```
    to
    ```
    ```

    To allow for simple removal of the 1st level comments.

    * 🔼 feat: Add Auto Submit For URL Query Params (#6440)

    * feat: Add submit query param to auto submit a prompt passed in via URL

    * refactor: add case-insensitive value for auto-submit

    ---------

    Co-authored-by: Danny Avila <[email protected]>

    * 🛠 feat: Enhance Redis Integration, Rate Limiters & Log Headers (#6462)

    * feat: Implement Redis-based rate limiting, initially import limits

    * feat: Enhance rate limiters with Redis support and custom prefixes

    * chore: import orders

    * chore: update JSDoc for next middleware parameter type in ban and limiter middleware

    * feat: add logHeaders middleware to log forwarded headers in requests

    * refactor: change log level from info to debug for Redis rate limiters

    * feat: increase Redis max listeners and refactor session storage to use Keyv

    * 💵 feat: Add Automatic Balance Refill (#6452)

    * 🚀 feat: Add automatic refill settings to balance schema

    * 🚀 feat: Refactor balance feature to use global interface configuration

    * 🚀 feat: Implement auto-refill functionality for balance management

    * 🚀 feat: Enhance auto-refill logic and configuration for balance management

    * 🚀 chore: Bump version to 0.7.74 in package.json and package-lock.json

    * 🚀 chore: Bump version to 0.0.5 in package.json and package-lock.json

    * 🚀 docs: Update comment for balance settings in librechat.example.yaml

    * chore: space in `.env.example`

    * 🚀 feat: Implement balance configuration loading and refactor related components

    * 🚀 test: Refactor tests to use custom config for balance feature

    * 🚀 fix: Update balance response handling in Transaction.js to use Balance model

    * 🚀 test: Update AppService tests to include balance configuration in mock setup

    * 🚀 test: Enhance AppService tests with complete balance configuration scenarios

    * 🚀 refactor: Rename balanceConfig to balance and update related tests for clarity

    * 🚀 refactor: Remove loadDefaultBalance and update balance handling in AppService

    * 🚀 test: Update AppService tests to reflect new balance structure and defaults

    * 🚀 test: Mock getCustomConfig in BaseClient tests to control balance configuration

    * 🚀 test: Add get method to mockCache in OpenAIClient tests for improved cache handling

    * 🚀 test: Mock getCustomConfig in OpenAIClient tests to control balance configuration

    * 🚀 test: Remove mock for getCustomConfig in OpenAIClient tests to streamline configuration handling

    * 🚀 fix: Update balance configuration reference in config.js for consistency

    * refactor: Add getBalanceConfig function to retrieve balance configuration

    * chore: Comment out example balance settings in librechat.example.yaml

    * refactor: Replace getCustomConfig with getBalanceConfig for balance handling

    * fix: tests

    * refactor: Replace getBalanceConfig call with balance from request locals

    * refactor: Update balance handling to use environment variables for configuration

    * refactor: Replace getBalanceConfig calls with balance from request locals

    * refactor: Simplify balance configuration logic in getBalanceConfig

    ---------

    Co-authored-by: Danny Avila <[email protected]>

    * 🏃‍♂️ refactor: More Agent Context Improvements during Run (#6477)

    * fix: Add optional chaining utility and update agent parameter types

    * v2.3.9

    * chore: Update @librechat/agents version to 2.3.93

    * 🌍 i18n: Update translation.json with latest translations (#6414)

    Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

    * 🏗️ fix: Agents Token Spend Race Conditions, Add Auto-refill Tx, Add Relevant Tests (#6480)

    * 🏗️ 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

    * 🗣️ feat: add support for `gpt-4o-transcribe` models (#6483)

    * 🔃 fix: Draft Clearing, Claude Titles, Remove Default Vision Max Tokens (#6501)

    * 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

    * 🌍 i18n: Update translation.json with latest translations (#6505)

    Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

    * separate sandboxes by users

    * 🔃 refactor: Allow streaming for o1 models in OpenAIClient and agent runs (#6509)

    * 🎨 feat: UI Refresh for Enhanced UX (#6346)

    * ✨ 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 endp…
danny-avila pushed a commit to LibreChat-AI/librechat.ai that referenced this pull request Apr 25, 2025
This commit updates the documentation related to S3 storage configuration to include the `AWS_ENDPOINT_URL` environment variable. This variable was introduced in PR [#6431](danny-avila/LibreChat#6431) to allow users to specify a custom endpoint URL for S3 connections, but the documentation is not update.

The changes include:
- Adding a description for `AWS_ENDPOINT_URL`, clarifying its purpose and indicating that it's optional.
danny-avila pushed a commit to LibreChat-AI/librechat.ai that referenced this pull request Apr 25, 2025
This commit updates the documentation related to S3 storage configuration to include the `AWS_ENDPOINT_URL` environment variable. This variable was introduced in PR [#6431](danny-avila/LibreChat#6431) to allow users to specify a custom endpoint URL for S3 connections, but the documentation is not update.

The changes include:
- Adding a description for `AWS_ENDPOINT_URL`, clarifying its purpose and indicating that it's optional.
danny-avila added a commit to LibreChat-AI/librechat.ai that referenced this pull request Apr 25, 2025
* Create optimizing-rag-performance-in-librechat.md

This PR adds a detailed blog post written by Henk van Ess that covers how to optimize Retrieval-Augmented Generation (RAG) performance in LibreChat.

The guide walks through:

Improving vector database performance (PostgreSQL/pgvector)
Chunking strategies (CHUNK_SIZE / CHUNK_OVERLAP)
Embedding provider options (OpenAI, Azure, Ollama)
Retrieval settings (RAG_API_TOP_K)
Monitoring and server resource tips
It's designed to help developers fine-tune their LibreChat instances for speed and quality. All content is based on hands-on testing and is Markdown-formatted for blog use.

Looking forward to feedback — happy to revise if needed!

* Update optimizing-rag-performance-in-librechat.md

This PR adds a detailed blog post written by Henk van Ess that covers how to optimize Retrieval-Augmented Generation (RAG) performance in LibreChat.

The guide walks through:

Improving vector database performance (PostgreSQL/pgvector)
Chunking strategies (CHUNK_SIZE / CHUNK_OVERLAP)
Embedding provider options (OpenAI, Azure, Ollama)
Retrieval settings (RAG_API_TOP_K)
Monitoring and server resource tips
It's designed to help developers fine-tune their LibreChat instances for speed and quality. All content is based on hands-on testing and is Markdown-formatted for blog use.

Looking forward to feedback — happy to revise if needed!

* Optimizing-rag-performance-in-librechat.md

This PR adds a detailed blog post written by Henk van Ess that covers how to optimize Retrieval-Augmented Generation (RAG) performance in LibreChat.

The guide walks through:

Improving vector database performance (PostgreSQL/pgvector)
Chunking strategies (CHUNK_SIZE / CHUNK_OVERLAP)
Embedding provider options (OpenAI, Azure, Ollama)
Retrieval settings (RAG_API_TOP_K)
Monitoring and server resource tips
It's designed to help developers fine-tune their LibreChat instances for speed and quality. All content is based on hands-on testing and is Markdown-formatted for blog use.

Looking forward to feedback — happy to revise if needed!

* docs: Document AWS_ENDPOINT_URL for S3 configuration (#285)

This commit updates the documentation related to S3 storage configuration to include the `AWS_ENDPOINT_URL` environment variable. This variable was introduced in PR [#6431](danny-avila/LibreChat#6431) to allow users to specify a custom endpoint URL for S3 connections, but the documentation is not update.

The changes include:
- Adding a description for `AWS_ENDPOINT_URL`, clarifying its purpose and indicating that it's optional.

* 🎨 feat: Adds Image Gen Docs, fix broken links, usage stats, missing .env vars, formatting issues, bump Next.js (#288)

* docs: enhance API key setup instructions for clarity

* docs: update section title for API key setup clarity

* docs: add comprehensive guide for OpenAI image generation and editing tools

* docs: clarify Stable Diffusion section and update link in Image Generation overview

* docs: add Flux cloud generator configuration details and environment variables

* fix: Firebase CDN configuration link

* docs: enhance fileStrategy section with CDN options and notes

* docs: enhance Image Generation section with improved structure and pricing details

* docs: add Code Interpreter section with environment variable details and enterprise plan notes

* fix: formatting

* chore: bump next

* fix: correct markdown formatting for artifact example in agents documentation

* docs: add deprecation notices for tools, plugins, presets, and enhance image generation section

* feat: implement GitHub stats API and update Usage component to fetch stars dynamically

* fix: update Docker pulls value in Usage component

* 🫙 fix: Azure Blob Storage Documentation (#289)

* fix: Update fileStrategy option to use "azure_blob" in configuration docs

* fix: Update CDN documentation for Azure Blob Storage and improve navigation

* fix: Remove Hetzner reference from deployment comparison, closes #271

* fix: Update RAG API documentation for clarity on feature availability, closes #249

* feat: Update demo images (#290)

* docs: Clarify configuration file usage and API key settings in documentation, closes #238

* fix: Add instructions to remove existing Docker images for local and remote setups

* 🌊 docs: Flux (#203)

* feat: Enhance documentation for Flux and related tools, including setup instructions and parameters

* docs: Update image generation documentation with additional notes on output handling and MCP server format

* feat: Add blog post on optimizing RAG performance in LibreChat with accompanying image

* chore: Remove unused image for RAG performance blog post

---------

Co-authored-by: Henk van Ess <[email protected]>
Co-authored-by: lensfa <[email protected]>
Co-authored-by: Marco Beretta <[email protected]>
Co-authored-by: heptapod <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
✨ enhancement New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants