* ✨ 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 <danny@librechat.ai>
* 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
* 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
* fix: improve file handling by preventing memoization issues, providing config values at run time
* 🌍 i18n: Update translation.json with latest translations
* refactor: remove artifacts toggle
* refactor: allow hiding side panel while allowing artifacts view
* chore: rename SidePanelGroup to SidePanel for clarity
* Revert "refactor: remove artifacts toggle"
This reverts commit f884c2cfcd.
* feat: add artifacts capability to agent configuration
* refactor: conditionally set artifacts mode based on endpoint type
* feat: Artifacts Capability for Agents
* refactor: enhance getStreamText method to handle intermediate replies and add `stream_options` for openai/azure
* feat: localize progress text and improve UX in CodeAnalyze and ExecuteCode components for expanding analysis
* chore: started with updating packages to new version.
(a lot are outdated)
* fix: eslint to pass when no matching files changed.
* fix: eslint to pass when no matching files changed.
* fix: issue with strict in actions with the test
* chore: update more dependencies
* feat: scan for unused imported packages
* feat: scan for unused imported packages
* feat: scan for unused imported packages
* feat: scan for unused imported packages
* feat: scan for unused imported packages
* feat: scan for unused imported packages
* feat: scan for unused imported packages
* chore: removed Unused NPM Packages
* chore: removed Unused NPM Packages in `client/package.json`
* chore: removed Unused NPM Packages in `client/package.json`
* chore: Only comments when there are actual unused dependencies.
* chore: Only comments when there are actual unused dependencies.
* ci: test if it detects unused packages.
* ci: removed unused packages.
* ci: both static and dynamic i18n keys
* ci: revert back to no dynamic. use official nesting
* chore: remove override package: ajv
* better i18n support an internationalization-framework.
* removed unused package
* auto sort for translation.json
* fixed tests with the new locales function
* added new CI actions from locize
* to use locize a mention in the README.md
* to use locize a mention in the README.md
* updated README.md and added TRANSLATION.md to the repo
* updated TRANSLATION.md badges
* updated README.md to go to the TRANSLATION.md when clicking on the Translation Progress badge
* updated TRANSLATION.md and added a new issue template.
* updated TRANSLATION.md and added a new issue template.
* updated issue template to add the iso code link.
* updated the new GitHub actions for `locize`
* updated label for new issue template --> i18n
* fixed type issue
* Fix eslint
* Fix eslint with key-spacing spacing
* fix: error type
* fix: handle undefined values in SortFilterHeader component
* fix: typing in Image component
* fix: handle optional promptGroup in PromptCard component
* fix: update localize function to accept string type and remove unnecessary JSX element
* fix: update localize function to enforce TranslationKeys type for better type safety
* fix: improve type safety and handle null values in Assistants component
* fix: enhance null checks for fileId in FilesListView component
* fix: localize 'Go back' button text in FilesListView component
* fix: update aria-label for menu buttons and add translation for 'Close Menu'
* docs: add Reasoning UI section for Chain-of-Thought AI models in README
* fix: enhance type safety by adding type for message in MultiMessage component
* fix: improve null checks and optional chaining in useAutoSave hook
* fix: improve handling of optional properties in cleanupPreset function
* fix: ensure isFetchingNextPage defaults to false and improve null checks for messages in Search component
* fix: enhance type safety and null checks in useBuildMessageTree hook
---------
Co-authored-by: Danny Avila <danny@librechat.ai>
* chore: remove all bing code
* chore: remove bing code and auto-focus effects
* chore: add back escapeRegExp helper function for regex special character handling
* chore: remove deprecated fields from settings and conversation schema
* fix: ensure default endpoint is set correctly in conversation setup
* feat: add disableFocus option to newConversation for improved search behavior
* 🔄 refactor: frontend and backend share link logic; feat: qrcode for share link; feat: refresh link
* 🐛 fix: Conditionally render shared link and refactor share link creation logic
* 🐛 fix: Correct conditional check for shareId in ShareButton component
* 🔄 refactor: Update shared links API and data handling; improve query parameters and response structure
* 🔄 refactor: Update shared links pagination and response structure; replace pageNumber with cursor for improved data fetching
* 🔄 refactor: DataTable performance optimization
* fix: delete shared link cache update
* 🔄 refactor: Enhance shared links functionality; add conversationId to shared link model and update related components
* 🔄 refactor: Add delete functionality to SharedLinkButton; integrate delete mutation and confirmation dialog
* 🔄 feat: Add AnimatedSearchInput component with gradient animations and search functionality; update search handling in API and localization
* 🔄 refactor: Improve SharedLinks component; enhance delete functionality and loading states, optimize AnimatedSearchInput, and refine DataTable scrolling behavior
* fix: mutation type issues with deleted shared link mutation
* fix: MutationOptions types
* fix: Ensure only public shared links are retrieved in getSharedLink function
* fix: `qrcode.react` install location
* fix: ensure non-public shared links are not fetched when checking for existing shared links, and remove deprecated .exec() method for queries
* fix: types and import order
* refactor: cleanup share button UI logic, make more intuitive
---------
Co-authored-by: Danny Avila <danny@librechat.ai>
* refactor: SearchBar and Nav components to streamline search functionality and improve state management
* refactor: remove refresh conversations
* chore: update useNewConvo calls to remove hardcoded default index
* refactor: null check for submission in useSSE hook
* refactor: remove useConversation hook and update useSearch to utilize useNewConvo
* refactor: remove conversation and banner store files; consolidate state management into misc; improve typing of families and add messagesSiblingIdxFamily
* refactor: more effectively clear all user/convo state without side effects on logout/delete user
* refactor: replace useParams with useLocation in SearchBar to correctly load conversation
* refactor: update SearchButtons to use button element and improve conversation ID handling
* refactor: use named function for `newConversation` for better call stack tracing
* refactor: enhance TermsAndConditionsModal to support array content and improve type definitions for terms of service
* refactor: add SetConvoProvider and message invalidation when navigating from search results to prevent initial route rendering edge cases
* refactor: rename getLocalStorageItems to localStorage and update imports for consistency
* refactor: move clearLocalStorage function to utils and simplify localStorage clearing logic
* refactor: migrate authentication mutations to a dedicated Auth data provider and update related tests
* fix: rendering error for mermaid flowchart syntax
* feat: add submit button ref and enable submit on Ctrl+Enter in EditMessage component
* feat: add save button and keyboard shortcuts for saving and canceling in EditMessage component
* feat: collapse chat on max height
* refactor: implement scrollable detection for textarea on key down events and initial render
* feat: add regenerate button for error handling in HoverButtons, closes#3658
* feat: add functionality to edit latest user message with the up arrow key when the input is empty
* 🎨 feat: improve file display and overflow handling in SidePanel components
* 🎨 feat: enhance bookmarks management UI and improve accessibility features
* 🎨 feat: enhance BookmarkTable and BookmarkTableRow components for improved layout and performance
* 🎨 feat: enhance file display and interaction in FilesView and ImagePreview components
* 🎨 feat: adjust minimum width for filename filter input in DataTable component
* 🎨 feat: enhance file upload UI with improved layout and styling adjustments
* 🎨 feat: add surface-hover-alt color and update FileContainer styling for improved UI
* 🎨 feat: update ImagePreview component styling for improved visual consistency
* 🎨 feat: add MaximizeChatSpace component and integrate chat space maximization feature
* 🎨 feat: enhance DataTable component with transition effects and update Checkbox styling for improved accessibility
* fix: enhance a11y for Bookmark buttons by adding space key support, ARIA labels, and correct html role for key presses
* fix: return focus back to trigger for BookmarkEditDialog (Edit and new bookmark buttons)
* refactor: ShareButton and ExportModal components children prop support; refactor DropdownPopup item handling
* refactor: enhance ExportAndShareMenu and ShareButton components with improved props handling and accessibility features
* refactor: add ref prop support to MenuItemProps and update ExportAndShareMenu and DropdownPopup components so focus correctly returns to menu item
* refactor: enhance ConvoOptions and DeleteButton components with improved props handling and accessibility features
* refactor: add triggerRef support to DeleteButton and update ConvoOptions for improved dialog handling
* refactor: accessible bookmarks menu
* refactor: improve styling and accessibility for bookmarks components
* refactor: add focusLoop support to DropdownPopup and update BookmarkMenu with Tooltip
* refactor: integrate TooltipAnchor into ExportAndShareMenu for enhanced accessibility
---------
Co-authored-by: Danny Avila <danny@librechat.ai>
* ✨ feat: Implement session management with CRUD operations and integrate into user workflows
* ✨ refactor: Update session model import paths and enhance session creation logic in AuthService
* ✨ refactor: Validate session and user ID formats in session management functions
* ✨ style: Enhance UI components with improved styling and accessibility features
* chore: Update login form tests to use getByTestId instead of getByRole, remove console.log()
* chore: Update login form tests to use getByTestId instead of getByRole
---------
Co-authored-by: Danny Avila <danny@librechat.ai>
* 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
* chore: cleanup type issues in client/src/utils/endpoints
* refactor: use Constant enum for 'new' conversationId
* refactor: select assistant model if not provided for model spec
* 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
* chore: remove double import of TrashIcon
* fix(convos): eslint warnings
* ci(convos): add test for month sorting
* fix(convos): grouping by month in chronological order instead of alphabetical, optimize sort
* ci: additional tests for conversation sorting
* chore: fix eslint disable rule
* chore: imports, use constant enum for 'new' value
* fix: test dependent on current date
* ✨ v0.7.5-rc2
* docs: update README
* refactor(settings): Update rememberForkOption default value
* a11y: proper screen reader announcements for content blocks
* Update version to 0.7.423 in package-lock.json and packages/data-provider/package.json
* chore: rename rememberForkOption -> rememberDefaultFork to apply new default value
* fix: headlessui menu stealing focus from Settings Dialog when pressing Enter
* refactor(EditMessage): avoid manipulation of native paste handling, leverage react-hook-form for textarea changes
* style: apply better theming for MinimalIcon
* fix(useVoicesQuery/useCustomConfigSpeechQuery): make sure to only try request once per render
* feat: edit message content parts
* fix(useCopyToClipboard): handle both assistants and agents content blocks
* refactor: remove save & submit and update text content correctly
* chore(.env.example/config): exclude unsupported bedrock models
* feat: artifacts for aws bedrock
* fix: export options for bedrock conversations
* feat: Add BedrockIcon component to SVG library
* feat: EModelEndpoint.bedrock
* feat: first pass, bedrock chat. note: AgentClient is returning `agents` as conversation.endpoint
* fix: declare endpoint in initialization step
* chore: Update @librechat/agents dependency to version 1.4.5
* feat: backend content aggregation for agents/bedrock
* feat: abort agent requests
* feat: AWS Bedrock icons
* WIP: agent provider schema parsing
* chore: Update EditIcon props type
* refactor(useGenerationsByLatest): make agents and bedrock editable
* refactor: non-assistant message content, parts
* fix: Bedrock response `sender`
* fix: use endpointOption.model_parameters not endpointOption.modelOptions
* fix: types for step handler
* refactor: Update Agents.ToolCallDelta type
* refactor: Remove unnecessary assignment of parentMessageId in AskController
* refactor: remove unnecessary assignment of parentMessageId (agent request handler)
* fix(bedrock/agents): message regeneration
* refactor: dynamic form elements using react-hook-form Controllers
* fix: agent icons/labels for messages
* fix: agent actions
* fix: use of new dynamic tags causing application crash
* refactor: dynamic settings touch-ups
* refactor: update Slider component to allow custom track class name
* refactor: update DynamicSlider component styles
* refactor: use Constants value for GLOBAL_PROJECT_NAME (enum)
* feat: agent share global methods/controllers
* fix: agents query
* fix: `getResponseModel`
* fix: share prompt a11y issue
* refactor: update SharePrompt dialog theme styles
* refactor: explicit typing for SharePrompt
* feat: add agent roles/permissions
* chore: update @librechat/agents dependency to version 1.4.7 for tool_call_ids edge case
* fix(Anthropic): messages.X.content.Y.tool_use.input: Input should be a valid dictionary
* fix: handle text parts with tool_call_ids and empty text
* fix: role initialization
* refactor: don't make instructions required
* refactor: improve typing of Text part
* fix: setShowStopButton for agents route
* chore: remove params for now
* fix: add streamBuffer and streamRate to help prevent 'Overloaded' errors from Anthropic API
* refactor: remove console.log statement in ContentRender component
* chore: typing, rename Context to Delete Button
* chore(DeleteButton): logging
* refactor(Action): make accessible
* style(Action): improve a11y again
* refactor: remove use/mention of mongoose sessions
* feat: first pass, sharing agents
* feat: visual indicator for global agent, remove author when serving to non-author
* wip: params
* chore: fix typing issues
* fix(schemas): typing
* refactor: improve accessibility of ListCard component and fix console React warning
* wip: reset templates for non-legacy new convos
* Revert "wip: params"
This reverts commit f8067e91d4.
* Revert "refactor: dynamic form elements using react-hook-form Controllers"
This reverts commit 2150c4815d.
* fix(Parameters): types and parameter effect update to only update local state to parameters
* refactor: optimize useDebouncedInput hook for better performance
* feat: first pass, anthropic bedrock params
* chore: paramEndpoints check for endpointType too
* fix: maxTokens to use coerceNumber.optional(),
* feat: extra chat model params
* chore: reduce code repetition
* refactor: improve preset title handling in SaveAsPresetDialog component
* refactor: improve preset handling in HeaderOptions component
* chore: improve typing, replace legacy dialog for SaveAsPresetDialog
* feat: save as preset from parameters panel
* fix: multi-search in select dropdown when using Option type
* refactor: update default showDefault value to false in Dynamic components
* feat: Bedrock presets settings
* chore: config, fix agents schema, update config version
* refactor: update AWS region variable name in bedrock options endpoint to BEDROCK_AWS_DEFAULT_REGION
* refactor: update baseEndpointSchema in config.ts to include baseURL property
* refactor: update createRun function to include req parameter and set streamRate based on provider
* feat: availableRegions via config
* refactor: remove unused demo agent controller file
* WIP: title
* Update @librechat/agents to version 1.5.0
* chore: addTitle.js to handle empty responseText
* feat: support images and titles
* feat: context token updates
* Refactor BaseClient test to use expect.objectContaining
* refactor: add model select, remove header options params, move side panel params below prompts
* chore: update models list, catch title error
* feat: model service for bedrock models (env)
* chore: Remove verbose debug log in AgentClient class following stream
* feat(bedrock): track token spend; fix: token rates, value key mapping for AWS models
* refactor: handle streamRate in `handleLLMNewToken` callback
* chore: AWS Bedrock example config in `.env.example`
* refactor: Rename bedrockMeta to bedrockGeneral in settings.ts and use for AI21 and Amazon Bedrock providers
* refactor: Update `.env.example` with AWS Bedrock model IDs URL and additional notes
* feat: titleModel support for bedrock
* refactor: Update `.env.example` with additional notes for AWS Bedrock model IDs
* agents - phase 1 (#30)
* chore: copy assistant files
* feat: frontend and data-provider
* feat: backend get endpoint test
* fix(MessageEndpointIcon): switched to AgentName and AgentAvatar
* fix: small fixes
* fix: agent endpoint config
* fix: show Agent Builder
* chore: install agentus
* chore: initial scaffolding for agents
* fix: updated Assistant logic to Agent Logic for some Agent components
* WIP first pass, demo of agent package
* WIP: initial backend infra for agents
* fix: agent list error
* wip: agents routing
* chore: Refactor useSSE hook to handle different data events
* wip: correctly emit events
* chore: Update @librechat/agentus npm dependency to version 1.0.9
* remove comment
* first pass: streaming agent text
* chore: Remove @librechat/agentus root-level workspace npm dependency
* feat: Agent Schema and Model
* fix: content handling fixes
* fix: content message save
* WIP: new content data
* fix: run step issue with tool calls
* chore: Update @librechat/agentus npm dependency to version 1.1.5
* feat: update controller and agent routes
* wip: initial backend tool and tool error handling support
* wip: tool chunks
* chore: Update @librechat/agentus npm dependency to version 1.1.7
* chore: update tool_call typing, add test conditions and logs
* fix: create agent
* fix: create agent
* first pass: render completed content parts
* fix: remove logging, fix step handler typing
* chore: Update @librechat/agentus npm dependency to version 1.1.9
* refactor: cleanup maps on unmount
* chore: Update BaseClient.js to safely count tokens for string, number, and boolean values
* fix: support subsequent messages with tool_calls
* chore: export order
* fix: select agent
* fix: tool call types and handling
* chore: switch to anthropic for testing
* fix: AgentSelect
* refactor: experimental: OpenAIClient to use array for intermediateReply
* fix(useSSE): revert old condition for streaming legacy client tokens
* fix: lint
* revert `agent_id` to `id`
* chore: update localization keys for agent-related components
* feat: zod schema handling for actions
* refactor(actions): if no params, no zodSchema
* chore: Update @librechat/agentus npm dependency to version 1.2.1
* feat: first pass, actions
* refactor: empty schema for actions without params
* feat: Update createRun function to accept additional options
* fix: message payload formatting; feat: add more client options
* fix: ToolCall component rendering when action has no args but has output
* refactor(ToolCall): allow non-stringy args
* WIP: first pass, correctly formatted tool_calls between providers
* refactor: Remove duplicate import of 'roles' module
* refactor: Exclude 'vite.config.ts' from TypeScript compilation
* refactor: fix agent related types
> - no need to use endpoint/model fields for identifying agent metadata
> - add `provider` distinction for agent-configured 'endpoint'
- no need for agent-endpoint map
- reduce complexity of tools as functions into tools as string[]
- fix types related to above changes
- reduce unnecessary variables for queries/mutations and corresponding react-query keys
* refactor: Add tools and tool_kwargs fields to agent schema
* refactor: Remove unused code and update dependencies
* refactor: Update updateAgentHandler to use req.body directly
* refactor: Update AgentSelect component to use localized hooks
* refactor: Update agent schema to include tools and provider fields
* refactor(AgentPanel): add scrollbar gutter, add provider field to form, fix agent schema required values
* refactor: Update AgentSwitcher component to use selectedAgentId instead of selectedAgent
* refactor: Update AgentPanel component to include alternateName import and defaultAgentFormValues
* refactor(SelectDropDown): allow setting value as option while still supporting legacy usage (string values only)
* refactor: SelectDropdown changes - Only necessary when the available values are objects with label/value fields and the selected value is expected to be a string.
* refactor: TypeError issues and handle provider as option
* feat: Add placeholder for provider selection in AgentPanel component
* refactor: Update agent schema to include author and provider fields
* fix: show expected 'create agent' placeholder when creating agent
* chore: fix localization strings, hide capabilities form for now
* chore: typing
* refactor: import order and use compact agents schema for now
* chore: typing
* refactor: Update AgentForm type to use AgentCapabilities
* fix agent form agent selection issues
* feat: responsive agent selection
* fix: Handle cancelled fetch in useSelectAgent hook
* fix: reset agent form on accordion close/open
* feat: Add agent_id to default conversation for agents endpoint
* feat: agents endpoint request handling
* refactor: reset conversation model on agent select
* refactor: add `additional_instructions` to conversation schema, organize other fields
* chore: casing
* chore: types
* refactor(loadAgentTools): explicitly pass agent_id, do not pass `model` to loadAgentTools for now, load action sets by agent_id
* WIP: initial draft of real agent client initialization
* WIP: first pass, anthropic agent requests
* feat: remember last selected agent
* feat: openai and azure connected
* fix: prioritize agent model for runs unless an explicit override model is passed from client
* feat: Agent Actions
* fix: save agent id to convo
* feat: model panel (#29)
* feat: model panel
* bring back comments
* fix: method still null
* fix: AgentPanel FormContext
* feat: add more parameters
* fix: style issues; refactor: Agent Controller
* fix: cherry-pick
* fix: Update AgentAvatar component to use AssistantIcon instead of BrainCircuit
* feat: OGDialog for delete agent; feat(assistant): update Agent types, introduced `model_parameters`
* feat: icon and general `model_parameters` update
* feat: use react-hook-form better
* fix: agent builder form reset issue when switching panels
* refactor: modularize agent builder form
---------
Co-authored-by: Danny Avila <danny@librechat.ai>
* fix: AgentPanel and ModelPanel type issues and use `useFormContext` and `watch` instead of `methods` directly and `useWatch`.
* fix: tool call issues due to invalid input (anthropic) of empty string
* fix: handle empty text in Part component
---------
Co-authored-by: Marco Beretta <81851188+berry-13@users.noreply.github.com>
* refactor: remove form ModelPanel and fixed nested ternary expressions in AgentConfig
* fix: Model Parameters not saved correctly
* refactor: remove console log
* feat: avatar upload and get for Agents (#36)
Co-authored-by: Marco Beretta <81851188+berry-13@users.noreply.github.com>
* chore: update to public package
* fix: typing, optional chaining
* fix: cursor not showing for content parts
* chore: conditionally enable agents
* ci: fix azure test
* ci: fix frontend tests, fix eslint api
* refactor: Remove unused errorContentPart variable
* continue of the agent message PR (#40)
* last fixes
* fix: agentMap
* pr merge test (#41)
* fix: model icon not fetching correctly
* remove console logs
* feat: agent name
* refactor: pass documentsMap as a prop to allow re-render of assistant form
* refactor: pass documentsMap as a prop to allow re-render of assistant form
* chore: Bump version to 0.7.419
* fix: TypeError: Cannot read properties of undefined (reading 'id')
* refactor: update AgentSwitcher component to use ControlCombobox instead of Combobox
---------
Co-authored-by: Marco Beretta <81851188+berry-13@users.noreply.github.com>
* feat: Add CodeArtifacts component to Beta settings tab
* chore: Update npm dependency to @codesandbox/sandpack-react@2.18.2
* WIP: artifacts first pass
* WIP first pass remark-directive
* chore: revert markdown to original component + new artifacts rendering
* refactor: first pass rewrite
* refactor: add throttling
* first pass styling
* style: Add Radix Tabs, more styling changes
* feat: second pass
* style: code styling
* fix: package markdown fixes
* feat: Add useEffect hook to Artifacts component for visibility control, slide in animation
* fix: only set artifact if there is content
* refactor: typing and make latest artifact active if the number of artifacts changed
* feat: artifacts + shadcnui
* feat: Add Copy Code button to Artifacts component
* feat: first pass streaming updates
* refactor: optimize ordering of artifacts in Artifacts component
* refactor: optimize ordering of artifacts and add latest artifact activation in Artifacts component
* refactor: add order prop to Artifact
* feat: update to latest, use update time for ordering
* refactor: optimize ordering of artifacts and activate latest artifact in Artifacts component
* wip: remove thinking text and artifact formatting if empty
* refactor: optimize Markdown rendering and add support for code artifacts
* feat: global state for current artifact Id and set on artifact preview click
* refactor: Rename CodePreview component to ArtifactButton
* refactor: apply growth to artifact frame so artifact preview can take full space
* refactor: remove artifactIdsState
* refactor: nullify artifact state and reset on empty conversation
* feat: reset artifact state on conversation change
* feat: artifacts system prompt in backend
* refactor: update UI artifact toggle label to match localization key
* style: remove ArtifactButton inline-block styling
* feat: memoize ArtifactPreview, add html support
* refactor: abstract out components
* chore: bump react-resizable-panel
* refactor: resizable panel order props
* fix: side panel resizing crashes
* style: temporarily remove scrolling, add better styling
* chore: remove thinking for now
* chore: preprocess artifacts for now
* feat: Add auto scrolling to CodeMarkdown (artifacts)
* feat: autoswitch to preview
* feat: auto switch to code, adjust prompt, remove unused code
* feat: refresh button
* feat: open/close artifacts
* wip: mermaid
* refactor: w-fit Artifact button
* chore: organize code
* feat: first pass mermaid
* refactor: improve panning logic in MermaidDiagram component
* feat: center/zoom on first render
* refactor: add centering with reset button
* style: mermaid styling
* refactor: add back MermaidDiagram
* fix: static/html template
* fix: mermaid
* add examples to artifacts prompt
* refactor: fix CodeBar plugin prop logic
* refactor: remove unnecessary mention of artifacts when not requested
* fix: remove preprocessCodeArtifacts function and fix imports
* feat: improve artifacts guidelines and remove unnecessary mentions
* refactor: improve artifacts guidelines and remove unnecessary mentions
* chore: uninstall unused packages
* chore: bump vite
* chore: update three dependency to version 0.167.1
* refactor: move beta settings, add additional artifacts toggles
* feat: artifacts mode toggles
* refactor: adjust prompt
* feat: shadcnui instructions
* feat: code artifacts custom prompt mode
* chore: Update artifacts UI labels and instructions localizations
* refactor: Remove unused code in Markdown component
* refactor: simplify LaTeX pre-processing for more consistent rendering, disables `singleDollarTextMath`
* refactor: disable singleDollarTextMath in all markdown components
* wip: first pass
* refactor: preserve code blocks and convert rather than preserve LaTeX delimiters
* refactor: remove unused escapeDollarNumber function from latex.ts
* chore: update package version to 0.7.416
* chore: Update Role.js imports order
* refactor: move updateTagsInConvo to tags route, add RBAC for tags
* refactor: add updateTagsInConvoOptions
* fix: loading state for bookmark form
* refactor: update primaryText class in TitleButton component
* refactor: remove duplicate bookmarks and theming
* refactor: update EditIcon component to use React.forwardRef
* refactor: add _id field to tConversationTagSchema
* refactor: remove promises
* refactor: move mutation logic from BookmarkForm -> BookmarkEditDialog
* refactor: update button class in BookmarkForm component
* fix: conversation mutations and add better logging to useConversationTagMutation
* refactor: update logger message in BookmarkEditDialog component
* refactor: improve UI consistency in BookmarkNav and NewChat components
* refactor: update logger message in BookmarkEditDialog component
* refactor: Add tags prop to BookmarkForm component
* refactor: Update BookmarkForm to avoid tag mutation if the tag already exists; also close dialog on submission programmatically
* refactor: general role helper function to support updating access permissions for different permission types
* refactor: Update getLatestText function to handle undefined values in message.content
* refactor: Update useHasAccess hook to handle null role values for authenticated users
* feat: toggle bookmarks access
* refactor: Update PromptsCommand to handle access permissions for prompts
* feat: updateConversationSelector
* refactor: rename `vars` to `tagToDelete` for clarity
* fix: prevent recreation of deleted tags in BookmarkMenu on Item Click
* ci: mock updateBookmarksAccess function
* ci: mock updateBookmarksAccess function
* refactor(DropdownPopup): set MenuButton `as` prop to `div` to prevent React warning: validateDOMNesting(...): <button> cannot appear as a descendant of <button>
* refactor: memoize ChatGroupItem and ControlCombobox components
* refactor(OpenAIClient): await stream process finish before finalCompletion event handling
* refactor: update useSSE.ts typing to handle null and undefined values in data properties
* refactor: set abort scroll to false on SSE connection open
* refactor: improve logger functionality with filter support
* refactor: update handleScroll typing in MessageContainer component
* refactor: update logger.dir call in useChatFunctions to log 'message_stream' tag format instead of the entire submission object as first arg
* refactor: fix null check for message object in Message component
* refactor: throttle handleScroll to help prevent auto-scrolling issues on new message requests; fix type issues within useMessageProcess
* refactor: add abortScrollByIndex logging effect
* refactor: update MessageIcon and Icon components to use React.memo for performance optimization
* refactor: memoize ConvoIconURL component for performance optimization
* chore: type issues
* chore: update package version to 0.7.414
* chore: Update @ariakit/react dependency to version 0.4.8
* refactor: Fix Combobox Android issue with radix-ui
* fix: Improve scrolling behavior by setting abort scroll state to false after scrolling to end
* wip: first pass switcher rewrite
* feat: Add button width calculation for ComboboxComponent
* refactor: Update ComboboxComponent styling for improved layout and appearance
* refactor: Update AssistantSwitcher component to handle null values for assistant names and avatar URLs
* refactor: Update ModelSwitcher component to use SimpleCombobox for improved functionality and styling
* refactor: Update Switcher Separator styling for improved layout and appearance
* refactor: Improve accessibility by adding aria-label to ComboboxComponent select items
* refactor: rename SimpleCombobox -> ControlCombobox
* feat: Add extended inputs for promts library variables
* feat: Add maxRows prop to VariableForm input field
* 📩 feat: invite user (#3012)
* feat: basic invite-user script
* feat: add invite user functionality and registration validation middleware
* fix: invite user fixes
* refactor: consolidate direct model access to a central place of functions
* style(Registration): add spinner to continue button
* refactor: import ordrer
* feat: improve invite user script and error handling
* fix: merge conflict
* refactor: remove `console.log` and use `logger`
* fix: token operation and checkinvite issues
* bring back comment and remove console log
* fix: return invalid token when token is not found
* fix: getInvite fix
* refactor: Update Token.js to use async/await syntax for update and delete operations
* feat: Refactor Token.js to use async/await syntax for createToken and findToken functions
* refactor(inviteUser): define functions outside of module.exports
* Update AuthService.js
---------
Co-authored-by: Danny Avila <danny@librechat.ai>
* style: improve OpenAI.tsx input field focus styling
* refactor: update import statement in Input.tsx
* refactor: remove multi-line
* refactor: update placeholder text to use localization
* style: new dropdown variable info and markdown styling for info
* Add ReactMarkdown
* chore: styling, import order
* refactor: update ReactMarkdown usage in VariableForm
* style: remove markdown class
* refactor: update mobile styling and use code renderer
* style(InputWithDropDown): update focus trigger style
* style(OptionsPopover): update Save As Preset `focus` and `dark:bg`
---------
Co-authored-by: Konstantin Meshcheryakov <kmeshcheryakov@klika-tech.com>
Co-authored-by: Marco Beretta <81851188+berry-13@users.noreply.github.com>
Co-authored-by: bsu3338 <bsu3338@users.noreply.github.com>
* fix: use theme class for valid contrast for light/dark, conversation group names, fix type issues
* fix: searchbar text contrast styling, closes#3469
* style: add theming for prompt cards, fix a11y contrast issues
* a11y: address placeholder text contrast issues in LLM controls section
* chore: Add conditional check for pull request repository in a11y workflow
* style: Update text color contrast to WCAG standard for placeholder and focus states in AssistantPanel components
* feat: new dropdown
* fix: maintain popover active when open
* fix: update DeleteButton and ShareButton component to use useState for managing dialog state
* BREAKING: style improvement of base Button component
* style: update export button
* a11y: ExportAndShareButton
* add border
* quick style fix
* fix: flick issue on convo
* fix: DropDown opens when renaming
* chore: update radix-ui/react-dropdown-menu to latest
* small fix
* style: bookmarks update
* reorder export modal
* feat: imporved dropdowns
* style: a lot of changes; header, bookmarks, export, nav, convo, convoOptions
* fix: small style issues
* fix: button
* fix: bookmarks header menu
* fix: dropdown close glitch
* feat: Improve accessibility and keyboard navigation in ModelSpec component
* fix: Nav related type issues
* style: ConvoOptions theming and focus ring
---------
Co-authored-by: Danny Avila <danny@librechat.ai>
* refactor: scrollToEnd
* fix(validateConvoAccess): search conversation by ID for proper validation
* feat: Add unique index for conversationId and user in convoSchema
* refactor: Update font sizes 1 rem -> font-size-base in style.css
* fix: Assistants map type issues
* refactor: Remove obsolete scripts
* fix: Update DropdownNoState component to handle both string and OptionType values
* refactor: Remove config/loader.js file
* fix: remove crypto.randomBytes(); refactor: Create reusable function for generating token and hash
* fix: Update health endpoint URL
* refactor: use Constants for saved tag default value, do not place Saved as first always
* refactor: check trimmed currentText before appending parsedText in useSubmitMessage
* refactor: move `scrollToEnd()` to `createdHandler` and increase delay before execution slightly
* chore: Add back TypeScript linting rules for unnecessary conditions and strict boolean expressions
* chore: Update librechat-data-provider package.json version to 0.7.4.0
* 🌡️ feat: Periodic Health Check to prevent UI Inactivity Connection Errors
* feat: Add refetchOnWindowFocus option for health check
* feat: programmatically scroll to end when a chat request is initiated (and messages have rendered)
* feat: add tags property in Conversation model
* feat: add ConversationTag model
* feat: add the tags parameter to getConvosByPage
* feat: add API route to ConversationTag
* feat: add types of ConversationTag
* feat: add data access functions for conversation tags
* feat: add Bookmark table component
* feat: Add an action to bookmark
* feat: add Bookmark nav component
* fix: failed test
* refactor: made 'Saved' tag a constant
* feat: add new bookmark to current conversation
* chore: Add comment
* fix: delete tag from conversations when it's deleted
* fix: Update the query cache when the tag title is changed.
* chore: fix typo
* refactor: add description of rebuilding bookmarks
* chore: remove unused variables
* fix: position when adding a new bookmark
* refactor: add comment, rename a function
* refactor: add a unique constraint in ConversationTag
* chore: add localizations
* chore: Update prompt description placeholder text
* fix: promptsPathPattern to not include new
* feat: command input and styling change for prompt views
* fix: intended validation
* feat: prompts slash command
* chore: localizations and fix add command during creation
* refactor(PromptsCommand): better label
* feat: update `allPrompGroups` cache on all promptGroups mutations
* refactor: ensure assistants builder is first within sidepanel
* refactor: allow defining emailVerified via create-user script
* chore: comment back handlePlusCommand
* chore: ignore .git dir
* refactor: pass newConversation to `useSelectMention`
refactor: pass newConversation to Mention component
refactor: useChatFunctions for modular use of `ask` and `regenerate`
refactor: set latest message only for the first index in useChatFunctions
refactor: pass setLatestMessage to useChatFunctions
refactor: Pass setSubmission to useChatFunctions for submission handling
refactor: consolidate event handlers to separate hook from useSSE
WIP: additional response handlers
feat: responsive added convo, clears on new chat/navigating to chat, assistants excluded
feat: Add conversationByKeySelector to select any conversation by index
WIP: handle second submission with messages paired to root
* style: surface-primary-contrast
* refactor: remove unnecessary console.log statement in useChatFunctions
* refactor: Consolidate imports in ChatForm and Input hooks
* refactor: compositional usage of useSSE for multiple streams
* WIP: set latest 'multi' message
* WIP: first pass, added response streaming
* pass: performant multi-message stream
* fix: styling and message render
* second pass: modular, performant multi-stream
* fix: align parentMessageId of multiMessage
* refactor: move resetting latestMultiMessage
* chore: update footer text in Chat component
* fix: stop button styling
* fix: handle abortMessage request for multi-response
* clear messages but bug with latest message reset present
* fix: add delay for additional message generation
* fix: access LAST_CONVO_SETUP by index
* style: add div to prevent layout shift before hover buttons render
* chore: Update Message component styling for card messages
* chore: move hook use order
* fix: abort middleware using unsent field from req.body
* feat: support multi-response stream from initial message
* refactor: buildTree function to improve readability and remove unused code
* feat: add logger for frontend dev
* refactor: use depth to track if message is really last in its branch
* fix(buildTree): default export
* fix: share parent message Id and avoid duplication error for multi-response streams
* fix: prevent addedConvo reset to response convo
* feat: allow setting multi message as latest message to control which to respond to
* chore: wrap setSiblingIdxRev with useCallback
* chore: styling and allow editing messages
* style: styling fixes
* feat: Add "AddMultiConvo" component to Chat Header
* feat: prevent clearing added convos on endpoint, preset, mention, or modelSpec switch
* fix: message styling fixes, mainly related to code blocks
* fix: stop button visibility logic
* fix: Handle edge case in abortMiddleware for non-existant `abortControllers`
* refactor: optimize/memoize icons
* chore(GoogleClient): change info to debug logs
* style: active message styling
* style: prevent layout shift due to placeholder row
* chore: remove unused code
* fix: Update BaseClient to handle optional request body properties
* fix(ci): `onStart` now accepts 2 args, the 2nd being responseMessageId
* chore: bump data-provider
* 🗨️ feat: Prompts (#7)
* WIP: MERGE prompts/frontend (#1)
* added schema for prompt and promptgroup, added model methods for prompts, added routes for prompts
* * updated promptGroup Schema
* updated model methods for prompts (get, add, delete)
* slight fixes in prompt routes
* * Created Files Management components
* Created Vector Stores components
* Added file management route in the routes folder
* Completed UI for Files list, Compeleted UI for vector stores list, Completed UI for upload file modal, Completed UI for preview file, Completed UI for preview vector store
* Fixed style and UI fixes for file dashboard, file list and vector stores list
* added responsiveness classes for vector store page
* fixed responsiveness of file page, dashboard page, and main page
* fixed styling and responsiveness issues on dashboard page, file list page and vector store page
* added queries and mutations for prompts and promptGroups, added relevant endpoints in data-provider, added relevant components prompts, added and updated relevant APIs
* added types on mutation queries data service, updated prompt attributes
* feature: Prompts and prompt groups management, added relevant APIs, added types for data service/queries/mutations, added relevant mutation and queries
* chore: typing clarifications
* added drop down on prompts mgmt dashboard
* Fixes: fixed version switching issue on tags update or labels update, added cross button on create prompt group, fixed list updation on prompt group renaiming, added CSV upload button
* Feature: Added oneliner and category attributes in prompt group, added schema for categories, added schema methods and route for categories
* chore: typing and lint issues
* chore: more type and linter fixes
* chore: linting
* chore: prompt controller and backend typing example; MOVE TO CONTROLLER DIRECTORY
* chore: more type fixes
* style: prompt name changes
* chore: more type changes, and stateful prompt name change without flickering
* fix: Return result of savePrompt in patchPrompt API endpoint
* fix: navigation prompt queries; refactor: name 'prompt-groups' to just 'groups'
* refactor: fetch prompt groups rewrite
* refactor(prompts): query/mutation statefulness
* refactor: remove `isActive` field
* refactor: remove labels, consolidate logic
* style: width, layout shift
* refactor: improve hover toggle behavior and styling
* refactor: add useParams hook to PromptListItem for dynamic rendering and add timeout ref for blur timeout
* chore: hide upload button
* refactor: import Button component from correct location in PromptSidePanel
* style: prompt editor styling
* style: fix more layout shifts
* style: container scroll
* refactor: Rename CreatePrompt component to CreatePromptForm
* refactor: use react-hook-form
* refactor: Add Prompts components and routes to Dashboard
* style: skeletons for loading
* fix: optimize makePromptProduction
* refactor: consolidate variables
* feat: create prompt form validation
* refactor: Consolidate variables and update mutation hooks
* style: minor touchups
* chore: Update lucide-react npm dependency to version 0.394.0 and npm audit fix
* refactor: add a new icon for the Prompts heading.
* style: Update PromptsView heading to use h1 instead of h2 and other minor margin issues
* chore: wording
* refactor: Update PromptsView heading to use h1 instead of h2, consolidate variables, and add new icons
* refactor: Prompts Button for Mobile
* feature: added category field in prompt group, added relevant API and static data on BE to support FE UI for category in prompt group
* chore: template for prompt cards
---------
Co-authored-by: Fawadpot <contactfawada@gmail.com>
* WIP: Prompts/frontend Continued (#2)
* chore: loading style, remove unused component
* feat: Add CategorySelector component for prompt group category selection
* feat: add categories to create prompt
* feat: prompt versions styling
* feat: optimistic updates for prompt production state
* refactor: optimize form state and show if prompt field is dirty with cross icon, also other styling changes
* chore: remove unused code and localizations
* fix: light mode styling
* WIP: SidePanel Prompts
* refactor: move to groups directory
* refactor: rename GroupsSidePanel to GroupSidePanel and update imports
* style: ListCard
* refactor: isProduction changes
* refactor: infinite query with productionPrompt
* refactor: optimize snippets and prompts, and styling
* refactor: Update getSnippet function to accept a length parameter
* chore: localizations
* feat: prompts navigation to chat and vice versa
* fix: create prompt
* feat: remember last selected category for creating prompts
* fix(promptGroups): fix pagination and add usePromptGroupsNav hook
* Prompts/frontend 3 (#3)
* fix: stateful issues with prompt groups
* style: improved layout
* refactor: improve variable naming in Eng.ts
* refactor: theme selector styling improvements
* added prompt cards on chat new page, with dark mode, added API to fetch random prompts, added types for useQuery
Slightly improved usePromptGroupNav logic to fetch updated result for pageSize, updated prompt cards view with darkmode and responsiveness
fixed page size option buttons styling to match the theme
added dark mode on create prompt page and prompt edit/preview page
fixed page size option buttons styling to match the theme
added dark mode on create prompt page and prompt edit/preview page
* WIP: Prompts/frontend (#4)
* fix: optimize and fix paginated query
* fix: remove unique constraint on names
* refactor: button links and styling
* style: menu border light mode
* feat: Add Auto-Send Switch component for prompts groups
* refactor(ChatView): use form context for submission text
* chore: clear convo state on navigation to dashboard routes
* chore: save prompt edit name on tab, remove console log
* feat: basic prompt submission
* refactor: move Auto-Send Switch
* style(ListCard): border styling
* feat: Add function to detect variables in text
* feat: Add OriginalDialog component to UI library
* chore(ui): Update SelectDropDown options list class to use text-xs size
* refactor: submitMessage hook now includes submitPrompt, make compatible to document query selector
* WIP: Variable Dialog
* feat: variable submission working for both auto-send and non-autosend
* feat: dashboard breadcrumbs and prompts/chat navigation
* refactor: dashboard breadcrumb and dashboard link to chat navigation
* refactor: Update VariableDialog and VariableForm styles
* Prompts: Admin features (#5)
* fix: link issue
* fix: usePromptGroupsNav add missing dep.
* style: dashbreadcrumb and sidepanel text color
* temp fix: remove refetch on pageNumber change
* fix: handle multiple variable replacement
* WIP: create project schema and add project groups to fetch
* feat: Add functionality to add prompt group IDs to a project
* feat: Add caching for startup config in config route
* chore: remove prompt landing
* style: Update Skeleton component with additional background styling
* chore: styling and types
* WIP: SharePrompt first draft
* feat(SharePrompt): form validation
* feat: shared global indicators
* refactor: prompt details
* refactor: change NoPromptGroup directory
* feat: preview prompt
* feat: remove/add global prompts, add rbac-related enums
* refactor: manage prompts location
* WIP: first draft admin settings for prompts
* feat: SystemRoles enum
* refactor: update PromptDetails component styling
* style: ellipsis custom class for showing more preview text
* WIP: initial role schema and initialization
* style: improved margins for single unordered lists
* fix: use custom chat form context to prevent re-renders from FormProvider
* feat: Role mutations for Prompt Permissions
* feat: fetch user role
* feat: update AdminSettings form default values from user role values
* refactor: rename PromptPermissions to Permissions for general definitions
* feat: initial role checks
* feat: Add optional `bodyProps` parameter to generateCheckAccess middleware
* refactor: UI access checks
* Prompts: delete (#6)
* Fixed delete prompt version API, fixed types and logic for prompt version deletion, updated prompt delete mutation logic
* chore: Update return type of deletePrompt function in Prompt.js
---------
Co-authored-by: Fawadpot <contactfawada@gmail.com>
* chore: Update package-lock.json version to 0.7.4-rc1 and fast-xml-parser to 4.4.0
* feat: toast for saving admin settings, add timer no-access navigation
* feat: always make prod
* feat: Add localization to category labels in CategorySelector component
* feat: Update category label localization in CategorySelector component
* fix: Enable making prompt production in Prompt API
---------
Co-authored-by: Fawadpot <contactfawada@gmail.com>
* feat: Add helper fn for dark mode detection in ThemeProvider
* style: surface-primary definition
* fix(useHasAccess): utilize user.role and not just USER role
* fix: empty category and role fetch
* refactort: increase max height to options list and use label if no localization is found
* fix: update CategorySelector to handle empty category value and improve localization
* refactor: move prompts to own store/reactquery modules, add in filter WIP
* refactor: Rename AutoSendSwitch to AutoSendPrompt
* style: theming commit
* style: fix slight coloring issue for convos in dark mode
* style: better composition for prompts side panel
* style: remove gray-750 and make it gray-850
* chore: adjust theming
* feat: filter all prompt groups and properly remove prompts from projects
* refactor: optimize delete prompt groups further
* chore: localization
* feat: Add uniqueProperty filtering to normalizeData function
* WIP: filter prompts
* chore: Update FilterPrompts component to include User icon in FilterItem
* feat(FilterPrompts): set categories
* feat: more system filters and show selected category icon
* style: always make prod, flips switch to avoid mis-clicks
* style: ui/ux loading/no prompts
* chore: style FilterPrompts ChatView
* fix: handle missing role edge case
* style: special variables
* feat: special variables
* refactor: improve replaceSpecialVars function in prompts.ts
* feat: simple/advanced editor modes
* chore: bump versions
* feat: localizations and hide production button on simple mode
* fix: error connecting layout shift
* fix: prompts CRUD for admins
* fix: secure single group fetch
* style: sidepanel styling
* style(PromptName): bring edit button closer to name
* style: mobile prompts header
* style: mobile prompts header continued
* style: align send prompts switch right
* feat: description
* Update special variables description in Eng.ts
* feat: update/create/preview oneliner
* fix: allow empty oneliner update
* style: loading improvement and always make selected prompt Production if simple mode
* fix: production index set and remove unused props
* fix(ci): mock initializeRoles
* fix: address #3128
* fix: address #3128
* feat: add deletion confirmation dialog
* fix: mobile UI issues
* style: prompt library UI update
* style: focus, logcal tab order
* style: Refactor SelectDropDown component to improve code readability and maintainability
* chore: bump data-provider
* chore: fix labels
* refactor: confirm delete prompt version
---------
Co-authored-by: Marco Beretta <81851188+berry-13@users.noreply.github.com>
* feat: verification email
* chore: email verification invalid; localize: update
* fix: redirect to login when signup: fix: save emailVerified correctly
* docs: update ALLOW_UNVERIFIED_EMAIL_LOGIN; fix: don't accept login only when ALLOW_UNVERIFIED_EMAIL_LOGIN = true
* fix: user needs to be authenticated
* style: update
* fix: registration success message and redirect logic
* refactor: use `isEnabled` in ALLOW_UNVERIFIED_EMAIL_LOGIN
* refactor: move checkEmailConfig to server/utils
* refactor: use req as param for verifyEmail function
* chore: jsdoc
* chore: remove console log
* refactor: rename `createNewUser` to `createSocialUser`
* refactor: update typing and add expiresAt field to userSchema
* refactor: begin use of user methods over direct model access for User
* refactor: initial email verification rewrite
* chore: typing
* refactor: registration flow rewrite
* chore: remove help center text
* refactor: update getUser to getUserById and add findUser methods. general fixes from recent changes
* refactor: Update updateUser method to remove expiresAt field and use $set and $unset operations, createUser now returns Id only
* refactor: Update openidStrategy to use optional chaining for avatar check, move saveBuffer init to buffer condition
* refactor: logout on deleteUser mutatation
* refactor: Update openidStrategy login success message format
* refactor: Add emailVerified field to Discord and Facebook profile details
* refactor: move limiters to separate middleware dir
* refactor: Add limiters for email verification and password reset
* refactor: Remove getUserController and update routes and controllers accordingly
* refactor: Update getUserById method to exclude password and version fields
* refactor: move verification to user route, add resend verification option
* refactor: Improve email verification process and resend option
* refactor: remove more direct model access of User and remove unused code
* refactor: replace user authentication methods and token generation
* fix: add user.id to jwt user
* refactor: Update AuthContext to include setError function, add resend link to Login Form, make registration redirect shorter
* fix(updateUserPluginsService): ensure userPlugins variable is defined
* refactor: Delete all shared links for a specific user
* fix: remove use of direct User.save() in handleExistingUser
* fix(importLibreChatConvo): handle missing createdAt field in messages
---------
Co-authored-by: Danny Avila <danny@librechat.ai>