- Removed duplicate peer dependencies from package.json and organized them.
- Updated rollup.config.js to disable TypeScript checking during the build process.
- Modified AnimatedTabs component to use React.ReactNode for label and content types, and added TypeScript workarounds for compatibility.
- Enhanced Label and Separator components to accept an optional className prop and improved prop spreading.
- Updated Slider component to include an optional className prop and refined prop handling for better type safety.
- Added rollup-plugin-postcss to package.json and updated package-lock.json.
- Enhanced Rollup configuration to include postcss plugin for CSS handling.
- Updated index.ts to export all components from the components directory for better modularity.
- Added new dependencies for Rollup plugins and updated existing ones in package.json and package-lock.json.
- Introduced a new Rollup configuration file for building the client package.
- Refactored build scripts to include a dedicated build command for the client.
- Updated TypeScript configuration for improved module resolution and type declaration output.
- Integrated a Toast component from the client package into the main App component.
- Remove 104 unused type exports from packages/client/src/common/index.ts
- Keep only 7 actually used exports (93% reduction)
- Add cleanup script with enhanced import pattern detection
- Support both named imports and namespace imports (* as t)
- Create automatic backups and comprehensive documentation
- Maintain type safety with build verification
- No breaking changes to existing code
Kept exports:
- TShowToast, Option, OptionWithIcon, DropdownValueSetter
- MentionOption, NotificationSeverity, MenuItemProps
Scripts: cleanup-common-types-safe.js, README-CLEANUP.md
* refactor: prefer `agent.model` (user-facing value) over `agent.model_parameters.model` to ensure Azure mapping
* chore: update @librechat/agents to version 2.4.68 to use new default title prompt for completion title method
* chore: update version to v0.7.9 across all relevant files
* 🔧 chore: bump @librechat/api version to 1.2.9
* 🔧 chore: update @librechat/data-schemas version to 0.0.12
* 🔧 chore: bump librechat-data-provider version to 0.7.902
* fix: resource parameter undefined TypeError in log
* chore: Add missing FILE_SEARCH permission type to IRole interface
* chore: Bump version of @librechat/data-schemas to 0.0.11
* fix: Ensure resource is defined and handle potential null values in OAuth flow
* 🏗️ refactor: Extract reasoning key logic into separate function
* refactor: Ensure `overrideProvider` is always defined in `getProviderConfig` result, and only used in `initializeAgent` if different from `agent.provider`
* feat: new title configuration options across services
- titlePrompt
- titleEndpoint
- titlePromptTemplate
- new "completion" titleMethod (new default)
* chore: update @librechat/agents and conform openai version to prevent SDK errors
* chore: add form-data package as a dependency and override to v4.0.4 to address CVE-2025-7783
* feat: add support for 'all' endpoint configuration in AppService and corresponding tests
* refactor: replace HttpsProxyAgent with ProxyAgent from undici for improved proxy handling in assistant initialization
* chore: update frontend review workflow to limit package paths to data-provider
* chore: update backend review workflow to include all package paths
* 📦 chore: bump `compression` from 1.7.4 to 1.8.1
* chore: bump `express-session` to v1.18.2
* chore: update `connect-redis` from v7.1.0 to v8.1.0
* chore: update import for `connect-redis` to use named export due to v8.0.0 breaking change
* wip: first pass content strings
* 📦 chore: update @langchain/core to v0.3.62 for data-provider dev dep.
* 📦 chore: bump @langchain/core to v0.3.62 for api dep.
* 📦 chore: move @langchain/core to peerDependencies in package.json and package-lock.json
* fix: update formatContentStrings to create HumanMessage directly from formatted content
* chore: import order
* chore: bump @librechat/agents to v2.4.56
* chore: bump @librechat/api version to 1.2.6
* fix: initialize reasoningKey to 'reasoning_content' in createRun function
* chore: bump @librechat/agents to ^2.4.54 for anthropic web search support
* WIP: hardcoded web search tool usage
* feat: Implement web search functionality in Anthropic integration
- Updated parameters panel to include web search for anthropic models.
- Updated necessary schemas to accomodate toggle functionality
* chore: Set default web search option to false in anthropicSettings
* refactor: Rename webSearch to web_search for consistency across settings and schemas
* chore: bump @librechat/agents to v2.4.55
---------
Co-authored-by: Dustin Healy <dustinhealy1@gmail.com>
* 🔍 feat: Add SearXNG Web Search support and enhance ApiKeyDialog
- Updated WebSearch component to include authentication data for web search functionality so it won't show badge after being revoked
- Refactored ApiKeyDialog to streamline provider, scraper, and reranker selection with new InputSection component
- Added support for SearXNG as a search provider and updated translation files accordingly
- Improved form handling in useAuthSearchTool to accommodate new API keys and URLs
* 📜 chore: remove unused i18next key
* 📦 chore: address comments (swap API key and URL fields in SearXNG config, change input fields to 'text' from 'password'
* 📦 chore: make URL fields go first in ApiKeyDialog
* chore: bump @librechat/agents to v2.4.52
* ci: update webSearch configuration to include searxng fields in AppService.spec.js
---------
Co-authored-by: Danny Avila <danny@librechat.ai>
* ✨ feat: Add Google Search Grounding Feature and Update Agent Tool Initialization
- Introduced a new grounding option in the Google configuration to enable real-time web search results.
- Updated the agent initialization to concatenate additional tools from options.
- Enhanced translation files to include descriptions for the new grounding feature.
- Modified relevant schemas and parameter settings to support the grounding functionality.
* 🔑 chore: Update @librechat/agents dependency to version 2.4.50
* ✅ fix: Ensure tools array is initialized before concatenation in initializeAgent function
* chore: Update version of librechat-data-provider to 0.7.899 and add GOOGLE_TOOL_CONFLICT error type
* fix: Adjust label class for better text wrapping in DynamicSwitch component
* fix: Handle Google tool conflict error and update error messages in translation
* fix: Restore grounding setting in googleCol2 configuration
---------
Co-authored-by: Danny Avila <danny@librechat.ai>
* chore: update @librechat/agents to v2.4.47
* WIP: temporary auto-toggle responses api for o1/o3-pro
* feat: Enable Responses API for OpenAI models
- Updated the OpenAI client initialization to check for the useResponsesApi parameter in model options.
- Added translations for enabling the Responses API in the UI.
- Introduced useResponsesApi parameter in data provider settings and schemas.
- Updated relevant schemas to include useResponsesApi for conversation and preset configurations.
* refactor: Remove useResponsesApi check from OpenAI client initialization and update translation for Responses API
- Removed the check for useResponsesApi in the OpenAI client initialization.
- Updated the translation for enabling the Responses API to clarify its functionality.
* chore: update @librechat/agents dependency to version 2.4.48
* chore: update @librechat/agents dependency to version 2.4.49
* chore: linting
* chore: linting
* feat: Enhance DynamicSlider and validation for enumMappings
- Added support for enumMappings in DynamicSlider to display values correctly based on enum settings.
- Implemented validation for enumMappings in the generate function to ensure all options have corresponding mappings.
- Added tests for handling empty string options and incomplete enumMappings in the generate.spec.ts file.
* feat: Enhance DynamicSlider localization support
- Added localization handling for mapped values in DynamicSlider when using enumMappings.
- Updated the logic to check if the mapped value is a localization key and return the localized string if applicable.
- Adjusted dependencies in useCallback hooks to include localize for proper functionality.
* feat: Add reasoning summary and effort options to OpenAI configuration and UI
* feat: Add enumMappings for ImageDetail options in parameter settings
* style: Improve styling for DynamicSlider component labels and inputs
* chore: Update reasoning effort description and parameter order for OpenAI params
---------
Co-authored-by: Dustin Healy <dustinhealy1@gmail.com>
* feat: Add configurable retention period for temporary chats
* Addressing eslint errors
* Fix: failing test due to missing registration
* Update: variable name and use hours instead of days for chat retention
* Addressing comments
* chore: fix import order in Conversation.js
* chore: import order in Message.js
* chore: fix import order in config.ts
* chore: move common methods to packages/api to reduce potential for circular dependencies
* refactor: update temp chat retention config type to Partial<TCustomConfig>
* refactor: remove unused config variable from AppService and update loadCustomConfig tests with logger mock
* refactor: handle model undefined edge case by moving Session model initialization inside methods
---------
Co-authored-by: Rakshit Tiwari <rak1729e@gmail.com>
* feat: support thinking budget parameter for Gemini 2.5 series (#6949, #7542)
https://ai.google.dev/gemini-api/docs/thinking#set-budget
* refactor: update thinking budget minimum value to -1 for dynamic thinking
- see: https://ai.google.dev/gemini-api/docs/thinking#set-budget
* chore: bump @librechat/agents to v2.4.43
* refactor: rename LLMConfigOptions to OpenAIConfigOptions for clarity and consistency
- Updated type definitions and references in initialize.ts, llm.ts, and openai.ts to reflect the new naming convention.
- Ensured that the OpenAI configuration options are consistently used across the relevant files.
* refactor: port Google LLM methods to TypeScript Package
* chore: update @librechat/agents version to 2.4.43 in package-lock.json and package.json
* refactor: update thinking budget description for clarity and adjust placeholder in parameter settings
* refactor: enhance googleSettings default value for thinking budget to support dynamic adjustment
* chore: update @librechat/agents to v2.4.44 for Vertex Dynamic Thinking workaround
* refactor: rename google config function, update `createRun` types, use `reasoning` as `reasoningKey` for Google
* refactor: simplify placeholder handling in DynamicInput component
* refactor: enhance thinking budget description for clarity and allow automatic decision by setting to "-1"
* refactor: update text styling in OptionHover component for improved readability
* chore: update @librechat/agents dependency to v2.4.46 in package.json and package-lock.json
* chore: update @librechat/api version to 1.2.5 in package.json and package-lock.json
* refactor: enhance `clientOptions` handling by filtering `omitTitleOptions`, add `json` field for Google models
---------
Co-authored-by: ciffelia <15273128+ciffelia@users.noreply.github.com>
* 🔧 fix: enhance client options handling in AgentClient and set default recursion limit
- Updated the recursion limit to default to 25 if not specified in agentsEConfig.
- Enhanced client options in AgentClient to include model parameters such as apiKey and anthropicApiUrl from agentModelParams.
- Updated requestOptions in the anthropic endpoint to use reverseProxyUrl as anthropicApiUrl.
* Enhance LLM configuration tests with edge case handling
* chore add return type annotation for getCustomEndpointConfig function
* fix: update modelOptions handling to use optional chaining and default to empty object in multiple endpoint initializations
* chore: update @librechat/agents to version 2.4.42
* refactor: streamline agent endpoint configuration and enhance client options handling for title generations
- Introduced a new `getProviderConfig` function to centralize provider configuration logic.
- Updated `AgentClient` to utilize the new provider configuration, improving clarity and maintainability.
- Removed redundant code related to endpoint initialization and model parameter handling.
- Enhanced error logging for missing endpoint configurations.
* fix: add abort handling for image generation and editing in OpenAIImageTools
* ci: enhance getLLMConfig tests to verify fetchOptions and dispatcher properties
* fix: use optional chaining for endpointOption properties in getOptions
* fix: increase title generation timeout from 25s to 45s, pass `endpointOption` to `getOptions`
* fix: update file filtering logic in getToolFilesByIds to ensure text field is properly checked
* fix: add error handling for empty OCR results in uploadMistralOCR and uploadAzureMistralOCR
* fix: enhance error handling in file upload to include 'No OCR result' message
* chore: update error messages in uploadMistralOCR and uploadAzureMistralOCR
* fix: enhance filtering logic in getToolFilesByIds to include context checks for OCR resources to only include files directly attached to agent
---------
Co-authored-by: Matt Burnett <matt.burnett@shopify.com>
* 🔧 refactor: move `processMCPEnv` from `librechat-data-provider` and move to `@librechat/api`
* 🔧 refactor: Update resolveHeaders import paths
* 🔧 refactor: Enhance resolveHeaders to support user and custom variables
- Updated resolveHeaders function to accept user and custom user variables for placeholder replacement.
- Modified header resolution in multiple client and controller files to utilize the enhanced resolveHeaders functionality.
- Added comprehensive tests for resolveHeaders to ensure correct processing of user and custom variables.
* 🔧 fix: Update user ID placeholder processing in env.ts
* 🔧 fix: Remove arguments passing this.user rather than req.user
- Updated multiple client and controller files to call resolveHeaders without the user parameter
* 🔧 refactor: Enhance processUserPlaceholders to be more readable / less nested
* 🔧 refactor: Update processUserPlaceholders to pass all tests in mpc.spec.ts and env.spec.ts
* chore: remove legacy ChatGPTClient
* chore: remove LLM initialization code
* chore: initial deprecation removal of `gptPlugins`
* chore: remove cohere-ai dependency from package.json and package-lock.json
* chore: update brace-expansion to version 2.0.2 and add license information
* chore: remove PluginsClient test file
* chore: remove legacy
* ci: remove deprecated sendMessage/getCompletion/chatCompletion tests
---------
Co-authored-by: Dustin Healy <54083382+dustinhealy@users.noreply.github.com>