* fix: bedrock tool name regex
* fix: pass args as single input, attempt json first.
* refactor: remove toolMap from agent tool load as is not used
* fix: update formatAgentMessages test to use strictEqual for args comparison, testing new behavior
* feat: Known Endpoint, xAI
* chore: update librechat-data-provider version to 0.7.53
* ci: name property removal
* feat: add XAI_API_KEY to example environment variables
* chore: actions typing
* fix(actions): implement request executor pattern to prevent concurrent execution issues
BREAKING CHANGE: ActionRequest now uses a RequestExecutor pattern for isolated request state
- Introduce RequestConfig class to store immutable configuration
- Add RequestExecutor class to handle isolated request state for each execution
- Modify ActionRequest to act as a facade creating new executors for each operation
- Maintain backward compatibility through delegation and getters
- Add TypeScript types for better type safety
- Fix race conditions in concurrent executions with auth and params
This change prevents state mutation issues when the same action is called
multiple times concurrently, particularly when using authentication. Each
request now gets its own isolated state through a new executor instance,
solving race conditions while maintaining the existing API interface.
* ci: test isolation/immutatability
* chore: Update version to 0.7.51 in data-provider package
* refactor(actions): refactor createActionTool to use request executor pattern
* refactor: move o1 model check, after vision request check
* feat(server): add configurable cache headers for index.html
• Add environment variables to control index.html cache headers
• Default to no-cache configuration for consistent app updates
• Document cache control options in .env.example
* oidc-changes Initial attempt at testing openidStrategy and adding OPENID_USERNAME_CLAIM setting
* oidc-changes Add OPENID_NAME_CLAIM
* oidc-changes cleanup oidc test code
* oidc-changes using mongo memory server for test
* oidc-changes Change tests to expect username all lowercase
* oidc-changes Add more tests
* chore: linting
* refactor: Simplify OpenID full name retrieval logic
* refactor: Simplify OpenID user info retrieval logic
* refactor: move helper to openidStrategy.js
---------
Co-authored-by: alihacks <alihacks@pm.me>
* fix: ReDoS in ChatGPT Import
* ci: should correctly process citations from real ChatGPT data
* ci: Add ReDoS vulnerability test for processAssistantMessage
* refactor: Update thread management and citation handling
* refactor(validateImageRequest): robust validation
* refactor(Prompt.js): update name search regex to escape special characters
* refactor(Preset): exclude user from preset update to prevent mass assignment
* refactor(files.js): Improve file deletion process
* ci: updated validateImageRequest.spec.js
* a11y: plugin pagination
* refactor(CreatePromptForm.tsx): Improve input field styling
* chore(Prompts): typing and accessibility
* fix: prompt creation access role check
* chore: remove duplicate jsdocs
The changes include:
- In the agent controller:
- Removed the parsing of the avatar metadata from the request body.
- Fetched the avatar data from the agent object using the agent ID.
- Updated the error logging when fetching the agent.
- Updated the deleteFileByFilter function to include the user ID when deleting the old avatar file.
- In the assistant controller:
- Removed the parsing of the metadata from the request body.
- Fetched the metadata from the assistant object using the assistant ID.
- Updated the error logging when fetching the assistant.
- Updated the deleteFileByFilter function to include the user ID when deleting the old avatar file.
* fix(Agents): remove test code in openAI/llm.js
* refactor: add use of enums in encodeAndFormat
* fix: image attachment payload formatting for agents
* chore: imports
* refactor(OpenAIClient): titleChatCompletion try/catch
* fix: remove duplicate concatenation as seems to be handled by client SDK now
* fix: assistants image upload
* chore: imports order
* refactor: move file mutations to dedicated file, improve typing
* refactor(ChatForm): utilize FileFormWrapper to consolidate file upload logic/rendering to single parent
* refactor: better TSX heirarchies between AttachFile and FileFormWrapper
* refactor: `abortUpload` WIP
* fix: file debugging and file upload issues
* refactor: reject promise outright if axios intercepted error does not include response property
* chore: bump data-provider version to 0.7.428
* refactor: Add return type to localize function in Translation.ts
* refactor: allow message file attachment upload request cancellations, and add localizations for file upload errors
* refactor: include Azure OpenAI in paramEndpoints set
* fix: assistant form uploads and better typing
* refactor: consolidate logic
* 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
* allow other ldap field besides "mail", or fallback to made up email
* chore(ldap): add detailed logging for email fallback scenarios
---------
Co-authored-by: Maxim Bonnaerens <maxim@bonnaerens.be>
* feat: use AWS cascading default providers if credentials are omitted
Environment variables exposed via process.env
SSO credentials from token cache
Web identity token credentials
Shared credentials and config ini files
The EC2/ECS Instance Metadata Service
The default credential provider will invoke one provider at a time and only continue to the next if no credentials have been located. For example, if the process finds values defined via the AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY environment variables, the files at ~/.aws/credentials and ~/.aws/config will not be read, nor will any messages be sent to the Instance Metadata Service.
* fix: usage check in OpenAIClient
* refactor: Improve usage check in OpenAIClient
* feat: o1 default response sender string
* feat: add o1 models to default openai models list, add `no_system_messages` error type; refactor: use error type as localization key
* refactor(MessageEndpointIcon): differentiate openAI icon model color for o1 models
* refactor(AnthropicClient): use new input/output tokens keys; add prompt caching for claude-3-opus
* refactor(BaseClient): to use new input/output tokens keys; update typedefs
* feat: initial o1 model handling, including token cost complexity
* EXPERIMENTAL: special handling for o1 model with custom instructions