Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion dev/checkbot-rag
Submodule checkbot-rag updated 0 files
2 changes: 1 addition & 1 deletion dev/librechat
Submodule librechat updated 62 files
+2 −1 .env.example
+1 −1 api/package.json
+1 −3 api/server/routes/config.js
+1 −3 api/server/routes/share.js
+2 −1 client/package.json
+16 −9 client/src/Providers/DragDropContext.tsx
+134 −0 client/src/Providers/__tests__/DragDropContext.spec.tsx
+307 −187 client/src/components/Artifacts/ArtifactCodeEditor.tsx
+8 −21 client/src/components/Artifacts/ArtifactTabs.tsx
+1 −3 client/src/components/Artifacts/Artifacts.tsx
+2 −73 client/src/components/Artifacts/Code.tsx
+8 −3 client/src/components/Chat/Footer.tsx
+7 −2 client/src/components/Chat/Header.tsx
+19 −10 client/src/components/Chat/Input/Files/AttachFileChat.tsx
+1 −1 client/src/components/Chat/Input/Files/AttachFileMenu.tsx
+8 −6 client/src/components/Chat/Input/Files/FileRow.tsx
+176 −0 client/src/components/Chat/Input/Files/__tests__/AttachFileChat.spec.tsx
+195 −480 client/src/components/Chat/Input/Files/__tests__/AttachFileMenu.spec.tsx
+26 −10 client/src/components/Chat/Input/Files/__tests__/FileRow.spec.tsx
+13 −2 client/src/components/Chat/Messages/Content/DialogImage.tsx
+13 −15 client/src/components/Chat/Messages/Content/Files.tsx
+56 −60 client/src/components/Chat/Messages/Content/Image.tsx
+5 −9 client/src/components/Chat/Messages/Content/Part.tsx
+2 −2 client/src/components/Chat/Messages/Content/Parts/Attachment.tsx
+2 −1 client/src/components/Chat/Messages/Content/Parts/EmptyText.tsx
+12 −23 client/src/components/Chat/Messages/Content/Parts/LogContent.tsx
+18 −82 client/src/components/Chat/Messages/Content/Parts/OpenAIImageGen/OpenAIImageGen.tsx
+179 −0 client/src/components/Chat/Messages/Content/__tests__/Image.test.tsx
+182 −0 client/src/components/Chat/Messages/Content/__tests__/OpenAIImageGen.test.tsx
+2 −2 client/src/components/Chat/Messages/MessageParts.tsx
+1 −1 client/src/components/Chat/Messages/ui/MessageRender.tsx
+2 −1 client/src/components/Chat/Messages/ui/PlaceholderRow.tsx
+87 −48 client/src/components/Endpoints/Icon.tsx
+0 −1 client/src/components/MCP/MCPServerMenuItem.tsx
+1 −1 client/src/components/Messages/ContentRender.tsx
+1 −1 client/src/components/Share/Message.tsx
+6 −19 client/src/components/SidePanel/Agents/Code/Files.tsx
+11 −22 client/src/components/SidePanel/Agents/FileContext.tsx
+11 −23 client/src/components/SidePanel/Agents/FileSearch.tsx
+151 −0 client/src/components/SidePanel/Agents/__tests__/AgentFileConfig.spec.tsx
+138 −0 client/src/components/SidePanel/Agents/__tests__/CodeFiles.spec.tsx
+151 −0 client/src/components/SidePanel/Agents/__tests__/FileContext.spec.tsx
+147 −0 client/src/components/SidePanel/Agents/__tests__/FileSearch.spec.tsx
+1 −0 client/src/hooks/Agents/index.ts
+36 −0 client/src/hooks/Agents/useAgentFileConfig.ts
+0 −47 client/src/hooks/Artifacts/useAutoScroll.ts
+6 −2 client/src/hooks/Files/__tests__/useFileHandling.test.ts
+14 −7 client/src/hooks/Files/useDragHelpers.ts
+11 −0 client/src/hooks/Files/useFileDeletion.ts
+15 −6 client/src/hooks/Files/useFileHandling.ts
+2 −1 client/src/hooks/Files/useSharePointFileHandling.ts
+17 −0 client/src/hooks/SSE/useEventHandlers.ts
+0 −20 client/src/mobile.css
+3 −0 client/src/utils/artifacts.ts
+1 −1 client/src/utils/index.ts
+35 −0 client/src/utils/previewCache.ts
+0 −21 client/src/utils/scaleImage.ts
+70 −27 package-lock.json
+315 −0 packages/data-provider/src/config.spec.ts
+37 −1 packages/data-provider/src/config.ts
+12 −0 packages/data-schemas/src/app/web.ts
+4 −1 packages/data-schemas/src/types/web.ts
2 changes: 1 addition & 1 deletion dev/librechat-doc
Submodule librechat-doc updated 91 files
+0 −249 .eslintrc.cjs
+1 −1 app/changelog/changelog-feed.tsx
+29 −1 app/layout.tsx
+8 −0 app/page.tsx
+3 −3 components/Author/AuthorPage.tsx
+10 −10 components/Author/AuthorProfile.tsx
+2 −2 components/Banner.tsx
+1 −2 components/FeaturesHub.tsx
+7 −7 components/FooterMenu.tsx
+1 −1 components/Newsletter/SubscribeForm.tsx
+68 −1 components/QuickStartHub.tsx
+2 −2 components/Video.tsx
+7 −11 components/blog/BlogCard.tsx
+2 −2 components/blog/BlogHeader.tsx
+1 −1 components/callouts/callout.tsx
+15 −3 components/carousel/Carousel.tsx
+5 −5 components/home/Changelog.tsx
+0 −138 components/home/Companies.tsx
+1 −1 components/home/Hero.tsx
+0 −0 components/supportChat/chat.ts
+0 −0 components/supportChat/index.ts
+2 −4 components/svg/RepoOfTheDay.tsx
+0 −2 components/svg/RossIndex.tsx
+0 −0 components/svg/index.ts
+29 −5 components/tools/CredentialsGeneratorBox.tsx
+1 −1 components/ui/accordion.tsx
+3 −6 components/ui/avatar.tsx
+1 −1 components/ui/dialog.tsx
+5 −5 components/ui/dropdown-menu.tsx
+36 −0 content/changelog/config_v1.3.5.mdx
+99 −0 content/changelog/v0.8.3-rc2.mdx
+2 −2 content/docs/configuration/authentication/index.mdx
+17 −6 content/docs/configuration/cdn/azure.mdx
+3 −3 content/docs/configuration/cdn/firebase.mdx
+11 −9 content/docs/configuration/cdn/index.mdx
+1 −1 content/docs/configuration/cdn/meta.json
+24 −7 content/docs/configuration/cdn/s3.mdx
+10 −6 content/docs/configuration/dotenv.mdx
+2 −2 content/docs/configuration/librechat_yaml/example.mdx
+19 −14 content/docs/configuration/librechat_yaml/object_structure/config.mdx
+2 −0 content/docs/configuration/librechat_yaml/object_structure/file_config.mdx
+1 −1 content/docs/configuration/librechat_yaml/object_structure/memory.mdx
+29 −2 content/docs/configuration/librechat_yaml/object_structure/model_specs.mdx
+28 −1 content/docs/configuration/librechat_yaml/object_structure/ocr.mdx
+1 −1 content/docs/configuration/meilisearch.mdx
+2 −2 content/docs/configuration/pre_configured_ai/anthropic.mdx
+12 −0 content/docs/configuration/pre_configured_ai/bedrock.mdx
+1 −1 content/docs/configuration/pre_configured_ai/bedrock_inference_profiles.mdx
+3 −3 content/docs/configuration/rag_api.mdx
+6 −6 content/docs/configuration/token_usage.mdx
+6 −8 content/docs/configuration/tools/gemini_image_gen.mdx
+41 −2 content/docs/development/architecture.mdx
+121 −31 content/docs/development/conventions.mdx
+6 −3 content/docs/development/get_started.mdx
+13 −5 content/docs/development/testing.mdx
+3 −3 content/docs/features/agents.mdx
+1 −1 content/docs/features/agents_api.mdx
+70 −3 content/docs/features/mcp.mdx
+1 −1 content/docs/features/memory.mdx
+13 −2 content/docs/features/ocr.mdx
+17 −0 content/docs/features/shareable_links.mdx
+3 −1 content/docs/features/url_query.mdx
+1 −1 content/docs/quick_start/custom_endpoints.mdx
+11 −28 content/docs/remote/docker_linux.mdx
+6 −6 content/docs/remote/nginx.mdx
+2 −2 content/docs/remote/railway.mdx
+1 −1 content/docs/remote/traefik.mdx
+195 −0 eslint.config.mjs
+1 −1 lib/mdx-components.tsx
+1 −2 lib/nextra-shims/components.tsx
+0 −0 lib/nextra-shims/context.ts
+0 −1 lib/nextra-shims/mdx-components.tsx
+0 −1 lib/nextra-shims/meta-loader.cjs
+0 −1 lib/nextra-shims/theme-docs.tsx
+1 −1 next-env.d.ts
+0 −2 next-sitemap.config.js
+13 −9 package.json
+299 −1,446 pnpm-lock.yaml
+9 −0 public/images/logos/Stripe wordmark - Slate.svg
+9 −0 public/images/logos/Stripe wordmark - White.svg
+ public/images/mcp/mcp_ui_agent.png
+ public/images/mcp/mcp_ui_authenticating.png
+ public/images/mcp/mcp_ui_callback_confirm.png
+ public/images/mcp/mcp_ui_configure.png
+ public/images/mcp/mcp_ui_done.png
+ public/images/mcp/mcp_ui_settings_panel.png
+ public/images/mcp/mcp_ui_success_redirect.png
+ public/images/mcp/mcp_ui_success_registered.png
+ public/images/mcp/mcp_ui_unconnected.png
+0 −1 scripts/clean-cache.ts
+1 −2 tailwind.config.js
2 changes: 1 addition & 1 deletion dev/n8n
Submodule n8n updated 218 files
5 changes: 3 additions & 2 deletions docker-compose.librechat.yml
Original file line number Diff line number Diff line change
Expand Up @@ -108,8 +108,9 @@ services:
SCALEWAY_APP_NAME: ${SCALEWAY_APP_NAME:-LibreChat}
LIBRECHAT_SEARXNG_URL: ${LIBRECHAT_SEARXNG_URL:-http://${STACK_NAME:-prod}-searxng:8080}
LIBRECHAT_SEARXNG_API_KEY: ${LIBRECHAT_SEARXNG_API_KEY:-}
LIBRECHAT_JINA_API_KEY: ${LIBRECHAT_JINA_API_KEY:-}
LIBRECHAT_JINA_API_URL: ${LIBRECHAT_JINA_API_URL:-https://api.jina.ai/v1/rerank}
LIBRECHAT_CUSTOM_RERANKER_API_URL: ${LIBRECHAT_CUSTOM_RERANKER_API_URL:-}
LIBRECHAT_CUSTOM_RERANKER_API_KEY: ${LIBRECHAT_CUSTOM_RERANKER_API_KEY:-}
LIBRECHAT_CUSTOM_RERANKER_MODEL: ${LIBRECHAT_CUSTOM_RERANKER_MODEL:-}
FIRECRAWL_API_KEY: ${FIRECRAWL_API_KEY:-local-selfhost}
FIRECRAWL_API_URL: ${FIRECRAWL_API_URL:-http://${STACK_NAME:-prod}-firecrawl-api:3002}
FIRECRAWL_VERSION: ${FIRECRAWL_VERSION:-v2}
Expand Down
2 changes: 2 additions & 0 deletions docs/TODO.md
Original file line number Diff line number Diff line change
Expand Up @@ -131,6 +131,7 @@
| Open | `fix/mcp-parser` | [#12103](https://github.com/danny-avila/LibreChat/pull/12103) | Auto-detect OpenAI-compatible custom endpoints in formatToolContent |
| Open | `feat/stt` | [#11528](https://github.com/danny-avila/LibreChat/pull/11528) | Prefer ogg/wav in external STT recording for backend compatibility |
| Waiting | — | depends on [#10574](https://github.com/danny-avila/LibreChat/pull/10574) | Replace Jina reranker with RAG API reranker (`rerankerType: "simple"`) |
| Open | `feat/custom-reranker-provider` | [#12121](https://github.com/danny-avila/LibreChat/pull/12121) | Add custom reranker provider support (configurable URL + model, e.g. Scaleway) — depends on [agents#66](https://github.com/danny-avila/agents/pull/66) |

### danny-avila/agents

Expand All @@ -139,6 +140,7 @@
| Draft | — | [#48](https://github.com/danny-avila/agents/pull/48) | Filter base64 image artifacts based on agent vision capability |
| Open | `fix/user-after-tool` | [#59](https://github.com/danny-avila/agents/pull/59) | Fix "400 Unexpected role 'user' after role 'tool'" (bridge AIMessage in `formatAgentMessages`) |
| Open | `fix/wrong-agent-id` | [#61](https://github.com/danny-avila/agents/pull/61) | Fix handoff: return wrong-tool correction to LLM instead of silent execute |
| Open | `feat/custom-reranker-provider` | [#66](https://github.com/danny-avila/agents/pull/66) | Add custom reranker provider with configurable URL and model name |

### arabold/docs-mcp-server

Expand Down
8 changes: 5 additions & 3 deletions env.local.example
Original file line number Diff line number Diff line change
Expand Up @@ -138,9 +138,11 @@ FIRECRAWL_VERSION=v2
FIRECRAWL_NUM_WORKERS=8
FIRECRAWL_BULL_AUTH_KEY=my-secret-key
FIRECRAWL_LLM_MODEL=gpt-4o
# Jina Reranker (for LibreChat WebSearch)
LIBRECHAT_JINA_API_KEY=
LIBRECHAT_JINA_API_URL=https://api.jina.ai/v1/rerank

# Custom Reranker (for LibreChat WebSearch, using Scaleway Generative APIs)
LIBRECHAT_CUSTOM_RERANKER_API_URL=${SCALEWAY_BASE_URL}/rerank
LIBRECHAT_CUSTOM_RERANKER_API_KEY=${SCALEWAY_API_KEY}
LIBRECHAT_CUSTOM_RERANKER_MODEL=qwen3-embedding-8b

# SearXNG - Springer Nature API (optional, for scientific literature search)
# Get your API key from: https://dev.springernature.com/
Expand Down
7 changes: 4 additions & 3 deletions packages/librechat-init/config/librechat.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -809,9 +809,10 @@ webSearch:
firecrawlApiKey: "$${FIRECRAWL_API_KEY}"
firecrawlApiUrl: "$${FIRECRAWL_API_URL}"
firecrawlVersion: "$${FIRECRAWL_VERSION}"
jinaApiKey: "$${LIBRECHAT_JINA_API_KEY}"
jinaApiUrl: "$${LIBRECHAT_JINA_API_URL}"
rerankerType: "jina"
customRerankerApiUrl: "$${LIBRECHAT_CUSTOM_RERANKER_API_URL}"
customRerankerApiKey: "$${LIBRECHAT_CUSTOM_RERANKER_API_KEY}"
customRerankerModel: "$${LIBRECHAT_CUSTOM_RERANKER_MODEL}"
rerankerType: "custom"
scraperTimeout: 7500
safeSearch: 1

Expand Down
3 changes: 2 additions & 1 deletion scripts/setup-env.ts
Original file line number Diff line number Diff line change
Expand Up @@ -201,7 +201,6 @@ const PROMPTS: Record<string, PromptConfig> = {
'GID': { message: 'Docker Host Group ID (GID):', type: 'input', defaultGen: () => '1000' },
'DOMAIN': { message: 'Domain or IP (e.g. localhost or ai.faktenforum.org):', type: 'input' },
'OPENROUTER_KEY': { message: 'OpenRouter API Key:', type: 'password' },
'LIBRECHAT_JINA_API_KEY': { message: 'Jina API Key (optional, press enter to skip):', type: 'input' },
'LIBRECHAT_OCR_API_KEY': { message: 'Mistral OCR API Key (optional, press enter to skip):', type: 'password' },

// DB Timetable MCP Server
Expand Down Expand Up @@ -260,6 +259,8 @@ const MIGRATIONS: Record<string, string> = {
'SEARXNG_API_KEY': 'LIBRECHAT_SEARXNG_API_KEY',
'JINA_API_KEY': 'LIBRECHAT_JINA_API_KEY',
'JINA_API_URL': 'LIBRECHAT_JINA_API_URL',
'LIBRECHAT_JINA_API_KEY': 'LIBRECHAT_CUSTOM_RERANKER_API_KEY',
'LIBRECHAT_JINA_API_URL': 'LIBRECHAT_CUSTOM_RERANKER_API_URL',
'USE_DB_AUTHENTICATION': 'FIRECRAWL_USE_DB_AUTHENTICATION',
'PLAYWRIGHT_MICROSERVICE_URL': 'FIRECRAWL_PLAYWRIGHT_MICROSERVICE_URL',
'WEBHOOK_URL': 'N8N_WEBHOOK_URL',
Expand Down
Loading