* 👁️ feat: Add Azure Mistral OCR strategy and endpoint integration
This commit introduces a new OCR strategy named 'azure_mistral_ocr', allowing the use of a Mistral OCR endpoint deployed on Azure. The configuration, schemas, and file upload strategies have been updated to support this integration, enabling seamless OCR processing via Azure-hosted Mistral services.
* 🗑️ chore: Clean up .gitignore by removing commented-out uncommon directory name
* chore: remove unused vars
* refactor: Move createAxiosInstance to packages/api/utils and update imports
- Removed the createAxiosInstance function from the config module and relocated it to a new utils module for better organization.
- Updated import paths in relevant files to reflect the new location of createAxiosInstance.
- Added tests for createAxiosInstance to ensure proper functionality and proxy configuration handling.
* chore: move axios helpers to packages/api
- Added logAxiosError function to @librechat/api for centralized error logging.
- Updated imports across various files to use the new logAxiosError function.
- Removed the old axios.js utility file as it is no longer needed.
* chore: Update Jest moduleNameMapper for improved path resolution
- Added a new mapping for '~/' to resolve module paths in Jest configuration, enhancing import handling for the project.
* feat: Implement Mistral OCR API integration in TS
* chore: Update MistralOCR tests based on new imports
* fix: Enhance MistralOCR configuration handling and tests
- Introduced helper functions for resolving configuration values from environment variables or hardcoded settings.
- Updated the uploadMistralOCR and uploadAzureMistralOCR functions to utilize the new configuration resolution logic.
- Improved test cases to ensure correct behavior when mixing environment variables and hardcoded values.
- Mocked file upload and signed URL responses in tests to validate functionality without external dependencies.
* feat: Enhance MistralOCR functionality with improved configuration and error handling
- Introduced helper functions for loading authentication configuration and resolving values from environment variables.
- Updated uploadMistralOCR and uploadAzureMistralOCR functions to utilize the new configuration logic.
- Added utility functions for processing OCR results and creating error messages.
- Improved document type determination and result aggregation for better OCR processing.
* refactor: Reorganize OCR type imports in Mistral CRUD file
- Moved OCRResult, OCRResultPage, and OCRImage imports to a more logical grouping for better readability and maintainability.
* feat: Add file exports to API and create files index
* chore: Update OCR types for enhanced structure and clarity
- Redesigned OCRImage interface to include mandatory fields and improved naming conventions.
- Added PageDimensions interface for better representation of page metrics.
- Updated OCRResultPage to include dimensions and mandatory images array.
- Refined OCRResult to include document annotation and usage information.
* refactor: use TS counterpart of uploadOCR methods
* ci: Update MistralOCR tests to reflect new OCR result structure
* chore: Bump version of @librechat/api to 1.2.3 in package.json and package-lock.json
* chore: Update CONFIG_VERSION to 1.2.8
* chore: remove unused sendEvent function from config module (now imported from '@librechat/api')
* chore: remove MistralOCR service files and tests (now in '@librechat/api')
* ci: update logger import in ModelService tests to use @librechat/data-schemas
---------
Co-authored-by: arthurolivierfortin <arthurolivier.fortin@gmail.com>
* 🔧 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
* 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
* 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>
* chore: bump @librechat/agents to v1.9.8 for rscript support
* chore: fix @langchain/google-genai dep., match agents
* chore: fix @langchain/google-vertexai to v0.1.5, match with agents
* chore: bump @librechat/agents to v1.9.9
* chore: update @librechat/agents to v1.9.91 and @langchain/google-vertexai to v0.1.6
* chore: increase MAX_FILE_SIZE to 150MB for file uploads
* chore: bump @librechat/agents to v1.9.92
* feat: support `recursionLimit` for agents
* chore: update configuration version to 1.2.1 in librechat.yaml and config.ts
* feat: add R language SVG icon to the assets and include it in ApiKeyDialog
* feat: add support for new vision model 'o1' and exclude 'o1-mini'
* feat: Code Interpreter API & File Search Agent Uploads
chore: add back code files
wip: first pass, abstract key dialog
refactor: influence checkbox on key changes
refactor: update localization keys for 'execute code' to 'run code'
wip: run code button
refactor: add throwError parameter to loadAuthValues and getUserPluginAuthValue functions
feat: first pass, API tool calling
fix: handle missing toolId in callTool function and return 404 for non-existent tools
feat: show code outputs
fix: improve error handling in callTool function and log errors
fix: handle potential null value for filepath in attachment destructuring
fix: normalize language before rendering and prevent null return
fix: add loading indicator in RunCode component while executing code
feat: add support for conditional code execution in Markdown components
feat: attachments
refactor: remove bash
fix: pass abort signal to graph/run
refactor: debounce and rate limit tool call
refactor: increase debounce delay for execute function
feat: set code output attachments
feat: image attachments
refactor: apply message context
refactor: pass `partIndex`
feat: toolCall schema/model/methods
feat: block indexing
feat: get tool calls
chore: imports
chore: typing
chore: condense type imports
feat: get tool calls
fix: block indexing
chore: typing
refactor: update tool calls mapping to support multiple results
fix: add unique key to nav link for rendering
wip: first pass, tool call results
refactor: update query cache from successful tool call mutation
style: improve result switcher styling
chore: note on using \`.toObject()\`
feat: add agent_id field to conversation schema
chore: typing
refactor: rename agentMap to agentsMap for consistency
feat: Agent Name as chat input placeholder
chore: bump agents
📦 chore: update @langchain dependencies to latest versions to match agents package
📦 chore: update @librechat/agents dependency to version 1.8.0
fix: Aborting agent stream removes sender; fix(bedrock): completion removes preset name label
refactor: remove direct file parameter to use req.file, add `processAgentFileUpload` for image uploads
feat: upload menu
feat: prime message_file resources
feat: implement conversation access validation in chat route
refactor: remove file parameter from processFileUpload and use req.file instead
feat: add savedMessageIds set to track saved message IDs in BaseClient, to prevent unnecessary double-write to db
feat: prevent duplicate message saves by checking savedMessageIds in AgentController
refactor: skip legacy RAG API handling for agents
feat: add files field to convoSchema
refactor: update request type annotations from Express.Request to ServerRequest in file processing functions
feat: track conversation files
fix: resendFiles, addPreviousAttachments handling
feat: add ID validation for session_id and file_id in download route
feat: entity_id for code file uploads/downloads
fix: code file edge cases
feat: delete related tool calls
feat: add stream rate handling for LLM configuration
feat: enhance system content with attached file information
fix: improve error logging in resource priming function
* WIP: PoC, sequential agents
WIP: PoC Sequential Agents, first pass content data + bump agents package
fix: package-lock
WIP: PoC, o1 support, refactor bufferString
feat: convertJsonSchemaToZod
fix: form issues and schema defining erroneous model
fix: max length issue on agent form instructions, limit conversation messages to sequential agents
feat: add abort signal support to createRun function and AgentClient
feat: PoC, hide prior sequential agent steps
fix: update parameter naming from config to metadata in event handlers for clarity, add model to usage data
refactor: use only last contentData, track model for usage data
chore: bump agents package
fix: content parts issue
refactor: filter contentParts to include tool calls and relevant indices
feat: show function calls
refactor: filter context messages to exclude tool calls when no tools are available to the agent
fix: ensure tool call content is not undefined in formatMessages
feat: add agent_id field to conversationPreset schema
feat: hide sequential agents
feat: increase upload toast duration to 10 seconds
* refactor: tool context handling & update Code API Key Dialog
feat: toolContextMap
chore: skipSpecs -> useSpecs
ci: fix handleTools tests
feat: API Key Dialog
* feat: Agent Permissions Admin Controls
feat: replace label with button for prompt permission toggle
feat: update agent permissions
feat: enable experimental agents and streamline capability configuration
feat: implement access control for agents and enhance endpoint menu items
feat: add welcome message for agent selection in localization
feat: add agents permission to access control and update version to 0.7.57
* fix: update types in useAssistantListMap and useMentions hooks for better null handling
* feat: mention agents
* fix: agent tool resource race conditions when deleting agent tool resource files
* feat: add error handling for code execution with user feedback
* refactor: rename AdminControls to AdminSettings for clarity
* style: add gap to button in AdminSettings for improved layout
* refactor: separate agent query hooks and check access to enable fetching
* fix: remove unused provider from agent initialization options, creates issue with custom endpoints
* refactor: remove redundant/deprecated modelOptions from AgentClient processes
* chore: update @librechat/agents to version 1.8.5 in package.json and package-lock.json
* fix: minor styling issues + agent panel uniformity
* fix: agent edge cases when set endpoint is no longer defined
* refactor: remove unused cleanup function call from AppService
* fix: update link in ApiKeyDialog to point to pricing page
* fix: improve type handling and layout calculations in SidePanel component
* fix: add missing localization string for agent selection in SidePanel
* chore: form styling and localizations for upload filesearch/code interpreter
* fix: model selection placeholder logic in AgentConfig component
* style: agent capabilities
* fix: add localization for provider selection and improve dropdown styling in ModelPanel
* refactor: use gpt-4o-mini > gpt-3.5-turbo
* fix: agents configuration for loadDefaultInterface and update related tests
* feat: DALLE Agents support
* fix: agent initialization, add `collectedUsage` handling
* style: improve side panel styling
* refactor(loadAgent): Optimize order agent project ID retrieval
* feat: code execution
* fix: typing issues
* feat: ExecuteCode content part
* refactor: use local state for default collapsed state of analysis content parts
* fix: code parsing in ExecuteCode component
* chore: bump agents package, export loadAuthValues
* refactor: Update handleTools.js to use EnvVar for code execution tool authentication
* WIP
* feat: download code outputs
* fix(useEventHandlers): type issues
* feat: backend handling for code outputs
* Refactor: Remove console.log statement in Part.tsx
* refactor: add attachments to TMessage/messageSchema
* WIP: prelim handling for code outputs
* feat: attachments rendering
* refactor: improve attachments rendering
* fix: attachments, nullish edge case, handle attachments from event stream, bump agents package
* fix filename download
* fix: tool assignment for 'run code' on agent creation
* fix: image handling by adding attachments
* refactor: prevent agent creation without provider/model
* refactor: remove unnecessary space in agent creation success message
* refactor: select first model if selecting provider from empty on form
* fix: Agent avatar bug
* fix: `defaultAgentFormValues` causing boolean typing issue and typeerror
* fix: capabilities counting as tools, causing duplication of them
* fix: formatted messages edge case where consecutive content text type parts with the latter having tool_call_ids would cause consecutive AI messages to be created. furthermore, content could not be an array for tool_use messages (anthropic limitation)
* chore: bump @librechat/agents dependency to version 1.6.9
* feat: bedrock agents
* feat: new Agents icon
* feat: agent titling
* feat: agent landing
* refactor: allow sharing agent globally only if user is admin or author
* feat: initial AgentPanelSkeleton
* feat: AgentPanelSkeleton
* feat: collaborative agents
* chore: add potential authorName as part of schema
* chore: Remove unnecessary console.log statement
* WIP: agent model parameters
* chore: ToolsDialog typing and tool related localization chnages
* refactor: update tool instance type (latest langchain class), and rename google tool to 'google' proper
* chore: add back tools
* feat: Agent knowledge files upload
* refactor: better verbiage for disabled knowledge
* chore: debug logs for file deletions
* chore: debug logs for file deletions
* feat: upload/delete agent knowledge/file-search files
* feat: file search UI for agents
* feat: first pass, file search tool
* chore: update default agent capabilities and info