* fix: typo in contribution guidelines, update project metadata and pull_request_temp...md (#5010)
Co-authored-by: Timothy Carambat <rambat1010@gmail.com>
* bump copyright year
resolves#5017
* feat: update light mode UI sidebar (#4996)
* implement light mode sidebar redesign
* Abstract hardcoded hex values into reusable css variables
* reorder ternary and apply bold font on hovered workspaces
* Remove double icon hack and use a state tracking whether workspace item is being hovered over for fill styles
* lint
* convert css variables and custom classes to default tailwind classes
* remove grab icon filling on hover logic
* revert css vars to original values
* remove light mode css vars | change bg of sidebar in light mode to right color | make icons correct color in light mode
* revert dark mode change
---------
Co-authored-by: Timothy Carambat <rambat1010@gmail.com>
* fix(frontend): fix event listener memory leak in useIsDisabled hook (#5027)
fix: optimize event listener management in useIsDisabled hook
* feat: dedicated dark theme option with system preference support (#5007)
* implement OS level theme switching and dark mode option
* simplify
* fix logo bug in login | place back useTheme comment
---------
Co-authored-by: shatfield4 <seanhatfield5@gmail.com>
Co-authored-by: Timothy Carambat <rambat1010@gmail.com>
* fix cleanup pr workflow
* Implement new home page redesign (#4931)
* remove legacy home page components, update home page to new layout
* update PromptInput component styles to match new designs, make quick action buttons functional
* home page chat creates new thread in last used workspace
* fix slash commands and agent popup on home page
* disable llm workspace selector action in home page
* add drag and drop file support to home page
* fix behavior of drag and drop on home page
* handle pasting attachments in home page
* update empty state of workspace chat to use new ui
* update empty workspace ui to match home page design, fix flickering loading states
* convert quick action buttons to component, add to empty state ws chat
* fix hover state light mode in quick actions
* add suggested messages subcomponent to empty ws/thread
* adjust width, rounded edges of prompt input
* only show quick actions for admin/manager role
* fix hover states for quick actions and suggested messages component
* make upload document quick action trigger parsed document upload
* fix mic behavior in homepage, ws chat, ws thread chat
* fix margin between prompt input and quick actions
* Simplify message presets by removing heading input (#4915)
* Remove heading input from message presets, merge legacy headings on edit
* filter out empty messages from state after saving
* mark form as dirty on input change
* styling
---------
Co-authored-by: Timothy Carambat <rambat1010@gmail.com>
* convert SuggestedMessages to component, render SuggestedMessages in home page to target ws
* fix broken handleMessageChange reference
* add translations for QuickActions
* lint
* fix home page chat submission broken by PromptInput onChange removal
* fix prompt input remount race condition, home page suggested message flicker
* remove unused handleSendSuggestedMessage from ChatHistory
* add greeting text to main-page translations, remove defaults
* fix file deletion in parsed files menu on home page
* add virtual thread sidebar state and workspace indicator on home page
* show workspace llm selector on home page when workspace exists
* show home page for all user roles with rbac quick actions
* fix positioning of agent and slash command popups
* remove workspace indicator from home page, match empty state spacing
* Normalize translations for home page redesign (#4986)
* normalize translations
* update translations with DMR
* accidentally changed es translation
* normalize translations for main-page.greeting
* update translations with DMR
---------
Co-authored-by: Timothy Carambat <rambat1010@gmail.com>
* update translations
* create new workspace in native language
Cleanup workspace page from empty state handling
* update quick action show logic
* fix send button
---------
Co-authored-by: Timothy Carambat <rambat1010@gmail.com>
* fix: GitLab connector infinite loop and rate limit crash for large repos (#5021)
* Fix infinite loop and rate limit crashes
* simplify logic | add max-retries to fetchNextPage and fetchSingleFileContents
---------
Co-authored-by: shatfield4 <seanhatfield5@gmail.com>
Co-authored-by: Timothy Carambat <rambat1010@gmail.com>
* fix: add password character validation to onboarding single-user setup (#5037)
* fix single user mode password bug
* share const
---------
Co-authored-by: Timothy Carambat <rambat1010@gmail.com>
* Native Tool calling (#5071)
* checkpoint
* test MCP and flows
* add native tool call detection back to LMStudio
* add native tool call loops for Ollama
* Add ablity detection to DMR (regex parse)
* bedrock and generic openai with ENV flag
* deepseek native tool calling
* localAI native function
* groq support
* linting, add litellm and OR native tool calling via flag
* fix: resolve Gemini agent 400 error on tool call responses (#5054)
* add gtc__ prefix to tool call names in Gemini agent message formatting
* resolve Gemini agent 400 error on tool call responses
* add comments explaining geminis thought signatures
---------
Co-authored-by: Timothy Carambat <rambat1010@gmail.com>
* fix: prevent CMD/CTRL+Arrow scroll from overriding textarea cursor movement (#5053)
prevent CMD/CTRL+Arrow scroll from overriding textarea cursor movement
Co-authored-by: Timothy Carambat <rambat1010@gmail.com>
* lint
* Normalize scraper runtimeargs for bulk-scraper (#5083)
resolves#5078closes#5079
* resolve Ollama string strict num_ctx
resolves#5081
* Lemonade integration (#5077)
* lemonade integration
* lemonade embedder
* log
* load model
* readme updates
* update embedder privacy entry
* fix max tool call stack abort flow
* v1.11.1 Release tags (#5107)
bump tag
* 5112 or stream metrics and finish reason (#5117)
* update metric tracking for OR + fix finish_reason missing from transitive chunks
* linting + comments
closes#5113resolves#5112
* Fix bug where `yarn setup:envs` fails if any .env file already exists. (#5116)
Co-authored-by: Timothy Carambat <rambat1010@gmail.com>
* fix: show actionable error when LMStudio model listing fails or returns empty (#5131)
* fix: show actionable error when LMStudio model listing fails or returns empty
When the model listing request completes but returns no models (due to
connection failure, wrong URL, or server unreachable), the dropdown now
shows "No models found — check LMStudio is running and accessible"
instead of "--loading available models--", making it possible to
distinguish a failed request from one still in progress.
Affects both LLM and embedding provider selection components.
Closes recurring UX confusion reported in #3519, #1338, #3656.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* UI warning tooltip
---------
Co-authored-by: Morgan Giddings <morgan@MG-Mac-Studio.home.arpa>
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-authored-by: Timothy Carambat <rambat1010@gmail.com>
* Add automatic chat mode with native tool calling support (#5140)
Introduces a new automatic chat mode (now the default) that automatically invokes tools when the provider supports native tool calling. Conditionally shows/hides the @agent command based on whether native tooling is available.
- Add supportsNativeToolCalling() to AI providers (OpenAI, Anthropic, Azure always support; others opt-in via ENV)
- Update all locale translations with new mode descriptions
- Enhance translator to preserve Trans component tags
- Remove deprecated ability tags UI
* Revert "Add automatic chat mode with native tool calling support (#5140)"
- Need to support documents in agents
- Need to support images in agent mode
This reverts commit 4c69960dca.
* improve translation script
* patch attempt for GH cleanup tag
* workflow -wip
* fix type
* split cleanup
* vague GH worker error - try to resolve via repo-name
* Test dispatch workflow
* Remove test workflow
* native tool calling detection for novita
* fix sidebar and add translations to sidebar
* add translations
* Sidebar updates (#5154)
* fix sidebar and add translations to sidebar
* add translations
* Debug cleanup workflow
* Debug cleanup workflow
* Debug cleanup workflow
* Use ALLM_RW_PACKAGES for package cleanup
* Remove Google web-search Programmable SERP (#5156)
* refactor: refactor agent skills settings page to use i18n translation keys (#5146)
* refactor agent skills to read from translation keys instead of hardcoded strings
* add missing sql agent description key
* Remove fallbacks
* adjust translation
* swap to factor pattern
* normalize translations (#5147)
* normalize translations
* run translator job
* translations
---------
Co-authored-by: Timothy Carambat <rambat1010@gmail.com>
---------
Co-authored-by: Timothy Carambat <rambat1010@gmail.com>
* chore: add ESLint to `/collector` (#5128)
* add eslint config to /collector
* prettier formatting
* fix unused
* fix undefined
* disable lines
* lockfile
---------
Co-authored-by: Timothy Carambat <rambat1010@gmail.com>
* chore: add ESLint to `/server` (#5126)
* add eslint config to server
* add break statements to switch case
* add support for browser globals and turn off empty catch blocks
* disable lines with useless try/catch wrappers
* format
* fix no-undef errors
* disbale lines violating no-unsafe-finally
* ignore syncStaticLists.mjs
* use proper null check for creatorId instead of unreachable nullish coalescing
* remove unneeded typescript eslint comment
* make no-unused-private-class-members a warning
* disable line for no-empty-objects
* add new lint script
* fix no-unused-vars violations
* make no-unsued-vars an error
---------
Co-authored-by: shatfield4 <seanhatfield5@gmail.com>
Co-authored-by: Timothy Carambat <rambat1010@gmail.com>
* Fix: Azure OpenAI model key collision (#5092)
* fix: Migrate AzureOpenAI model key from OPEN_MODEL_PREF to prevent the naming collision. No effort necessary from current users.
* test: add backwards compat tests for AzureOpenAI model key migration
* patch missing env example file
* linting
---------
Co-authored-by: Timothy Carambat <rambat1010@gmail.com>
* feat: Add tooltip for paperclip attach button when no files are parsed (#5139)
* fix broken tooltip
* fix tooltip not showing on homepage
* fix tooltip rendering behind input on homepage
---------
Co-authored-by: shatfield4 <seanhatfield5@gmail.com>
* fix: add missing /wiki to Confluence cloud citation URLs (#5167)
fix: add /wiki to Confluence cloud page URLs in citations
* Strip thinking from copy message outputs (#5179)
* linting & show descriptive error for bad `addtoWorkspace` request body
resolves#5172
* Add custom fetch to embedder for Ollama (#5180)
Refactor ollama timeout to be shared. Add custom fetch to embedder for ollama as well
* chore: add script to detect and prune unused translation keys (#5141)
* add script to prune dead translation keys
* add support for dynamic translation keys
* improve performance of script
* fix dynamic t() detection and add keyboard shortcut keys to allowlist
* rename scripts
* change commands
---------
Co-authored-by: shatfield4 <seanhatfield5@gmail.com>
Co-authored-by: Timothy Carambat <rambat1010@gmail.com>
* chore: add ESLint CI workflow (#5160)
add lint CI GitHub Action
* patch plural keys
* add ToS for brevity
* Remove `use_mlock` from Ollama to solve `WARN` logs in ollama 0.17
resolves#5182
* Implement v2 chat layout designs (#5074)
* New chat history layout with chat bubbles (#4985)
* new chat history layout, remove message alignment setting
* remove orphaned chat alignment hook and MessageDirection
* remove workspace profile picture setting and fetch
* clean up unnecessary changes
* add light mode colors to chat ui and main page backgrounds
* update chat message and action icon colors for light mode
* update thinking and agent ui, layout, sizing
* update user message uploaded images ui
* update thought, agent containers to use new colors
* add truncatable content with gradient to user chat messages
* fix citations margin
* implement new edit message UI with save and submit actions
* add translations for TruncatableContent subcomponent
* remove unused props
* fix text colors for default mode chats, agent, thoughts container
* Normalize translations for new chat history layout (#5022)
* normalize translations
* update translations with DMR
* lint
* fix mismatched home container colors
* fix: add password character validation to onboarding single-user setup (#5037)
* fix single user mode password bug
* share const
---------
Co-authored-by: Timothy Carambat <rambat1010@gmail.com>
* Native Tool calling (#5071)
* checkpoint
* test MCP and flows
* add native tool call detection back to LMStudio
* add native tool call loops for Ollama
* Add ablity detection to DMR (regex parse)
* bedrock and generic openai with ENV flag
* deepseek native tool calling
* localAI native function
* groq support
* linting, add litellm and OR native tool calling via flag
* fix: resolve Gemini agent 400 error on tool call responses (#5054)
* add gtc__ prefix to tool call names in Gemini agent message formatting
* resolve Gemini agent 400 error on tool call responses
* add comments explaining geminis thought signatures
---------
Co-authored-by: Timothy Carambat <rambat1010@gmail.com>
* fix: prevent CMD/CTRL+Arrow scroll from overriding textarea cursor movement (#5053)
prevent CMD/CTRL+Arrow scroll from overriding textarea cursor movement
Co-authored-by: Timothy Carambat <rambat1010@gmail.com>
* linting, assistant speaker spacing and order, copy/edit order
---------
Co-authored-by: Marcello Fitton <106866560+angelplusultra@users.noreply.github.com>
Co-authored-by: Timothy Carambat <rambat1010@gmail.com>
* Implement new citations UI (#5038)
* new chat history layout, remove message alignment setting
* remove orphaned chat alignment hook and MessageDirection
* remove workspace profile picture setting and fetch
* clean up unnecessary changes
* add light mode colors to chat ui and main page backgrounds
* update chat message and action icon colors for light mode
* update thinking and agent ui, layout, sizing
* update user message uploaded images ui
* update thought, agent containers to use new colors
* add truncatable content with gradient to user chat messages
* fix citations margin
* implement new edit message UI with save and submit actions
* add translations for TruncatableContent subcomponent
* remove unused props
* fix text colors for default mode chats, agent, thoughts container
* Normalize translations for new chat history layout (#5022)
* normalize translations
* update translations with DMR
* lint
* fix mismatched home container colors
* implement new citations ui with sources sidebar
* bottom sheet for mobile citations
* convert mobile citations bottom sheet to new modal design
* add score, border separators for mobile citations modal
* push down sources sidebar in password/multiuser mode
* fix animation gap, simplify sources sidebar by splitting state to persist data on animation
* add english translations
* fix spacing from citations sidebar when user has auth
* Normalize translations for new citation UI (#5087)
* normalize translations
* update translations using DMR
* fix pluralize to use i18n native solution
change reset to immediate clear
fix spacing for TTS when showing or not to not have space
* proper pluralize
* hide metrics on mobile, fix last message padding on mobile
---------
Co-authored-by: Timothy Carambat <rambat1010@gmail.com>
* New prompt input ui/tools menu (#5070)
* wip new prompt input ui/tools menu
* fix colors for prompt input
* redesign workspace llm selector, extract text size + model picker to components
* refactor ToolsMenu component
* fix colors/refactor WorkspaceModelPicker
* fix spacing in ws model picker, change order of tools menu tabs
* fix slash commands showing /reset instead of /exit during active agent session
* refactor ToolsMenu to be much simpler
* cleanup, fix behavior of setupup provider in WorkspaceModelPicker
* simplify AgentSkillsTab toggle logic
* add english translations for new components
* remove legacy slash command/agent popups, add ToolsMenu keyboard nav
* fix spacing of workspace model picker text
* fix SourcesSidebar and TextSizeMenu positioning after merge
* fix keyboard nav in ToolsMenu when clicking on tools button to open
* typo
* only auto pop up tools menu when prompt input is empty with /
* fix z index for tools menu on citation
* fix behavior of / in prompt input
* move global window agent session state to module level variable
* fix prompt input not clearing on /reset
* missing translations
* revert translating slash command
* fix STT auto-submit not working on home page
* Normalize translations for new prompt input/tools menu UI (#5130)
* normalize translations
* update translations using DMR script
* normalize translations
* update translations using DMR script
* remove slash_exit
* fix skills.js import after merge
* fix tooltip z-index rendering behind citations
* patch translation prune script to not remove special cases
* updates to tools input
* factory translations
* use safeJsonParse in clearPromptInputDraft
* normalize translations
* disable agent skill toggles during active agent sessions + show tooltip on disabled
* normalize translations
* handle enter key behavior when tools menu is open
* fix unfocusable modal for slash command edit/new
* fix sending prompt when editing/creating slash commands
* hide/show agent skills in tools menu based on role
* container borders for dark/light mode compliance to designs
---------
Co-authored-by: Timothy Carambat <rambat1010@gmail.com>
* update how tooltip works for agent menu
* update prompt input to show agent button with CTA in agent panel for user clarify
update agent session start prompt button in input
* translations
* translations + move regex for slash commands to constants
* fix open sidebar ux
* fix tools menu to always open to slash commands, dismiss auto pop up
* fix sidebar open/close button overlapping with ws model picker
---------
Co-authored-by: Sean Hatfield <seanhatfield5@gmail.com>
Co-authored-by: Marcello Fitton <106866560+angelplusultra@users.noreply.github.com>
* patch slashcommand popup to be usePortal
* Improve zh_TW Traditional Chinese locale
* Improve zh_TW Traditional Chinese locale (#5187)
* lint
* fix schema not persisting in DB connector
* Improve build times for tests and lint (#5193)
* test build skip
* reset file
* Support Agent stream metric reporting (#5197)
* Report citations for Agent call stacks (#5199)
* sanitize promptReply Output
* Add FileRow Indentation on Documents Picker (#5201)
* Fix SQL injection in SQL Agent plugin via parameterized queries
Replace string concatenation with parameterized queries in all database
connectors to prevent SQL injection through LLM-generated table names.
Changes:
- PostgreSQL: Use $1, $2 placeholders with pg client parameterization
- MySQL: Use ? placeholders with mysql2 execute() prepared statements
- MSSQL: Use @p0 placeholders with request.input() parameterization
- Update handlers to support parameterized query objects
- Add formatQueryForDisplay() for logging parameterized queries
Security: Mitigates potential SQL injection when LLM passes unsanitized
user input as table_name parameter to getTableSchemaSql/getTablesSql.
GHSA-jwjx-mw2p-5wc7
* Align Manager API access with frontend access
GHSA-wfq3-65gm-3g2p
* Enforce user suspension check on browser extension API key path
Previously, suspended users could continue using browser extension
endpoints if they had created an API key before suspension. The normal
JWT session path blocked suspended users, but the browser extension
middleware did not.
Changes:
- Add suspension and user existence checks to validBrowserExtensionApiKey
- Delete browser extension API keys when a user is deleted
- Add deleteAllForUser method to BrowserExtensionApiKey model
GHSA-7754-8jcc-2rg3
* Fix potential Zip Slip path traversal in community plugin import
Validate all ZIP entries before extraction in importCommunityItemFromUrl()
to prevent path traversal attacks (CWE-22). Malicious ZIP entries with
paths like "../../" could write files outside the intended plugin folder.
Requires admin privileges and explicit opt-in to unverified hub downloads.
GHSA-rh66-4w74-cf4m
* Remove `WelcomeMessages` from app - no longer used (#5206)
* remove `WelcomeMessages` from app - no longer user
* update erronous alert message
* fix job collision ref
* fix jobs - remove dev job
* Fix potential IDOR vulnerability in workspace parsed files endpoints
Add ownership validation to prevent users from deleting or embedding
parsed files that don't belong to them. Previously, the delete and
embed endpoints only validated authentication but not resource ownership,
allowing users to delete attached files for users within workspaces they are also a member of.
Changes:
- Delete endpoint now filters by userId and workspaceId
- Embed endpoint validates file belongs to user and workspace (redundant)
- delete() returns false when no matching records found (returns 403)
- Added JSDoc comments for clarity
GHSA-p5rf-8p88-979c
* add user id to chat feedback
update JSDOC on middleware for typedef
GHSA-2qmm-82f7-8qj5
* feat: Add document count indicators to workspace document management modal (#5207)
* add document counts to non-embedded and embedded documents
* Update logic to not count search filtered documents
* refactor how count is done and rendered
* translations
---------
Co-authored-by: Timothy Carambat <rambat1010@gmail.com>
* feat(agents): Add Perplexity Search API as web search provider (#5210)
* feat(agents): Add Perplexity Search API as web search provider
Adds Perplexity as a search provider for the agent web-browsing plugin,
using the Perplexity Search API (POST /search) which returns raw ranked
web results — distinct from the existing Perplexity LLM integration.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* chore: replace docs.perplexity.ai with console.perplexity.ai
* chore: replace docs.perplexity.ai with console.perplexity.ai
---------
Co-authored-by: kesku <kesku@users.noreply.github.com>
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Co-authored-by: Timothy Carambat <rambat1010@gmail.com>
* bump version tag 1.11.2
* forgot lockfile
---------
Co-authored-by: Dipanshu Rawat <dv451197@gmail.com>
Co-authored-by: Marcello Fitton <106866560+angelplusultra@users.noreply.github.com>
Co-authored-by: shatfield4 <seanhatfield5@gmail.com>
Co-authored-by: Brian Pursley <bpursley@cinlogic.com>
Co-authored-by: Morgan <morgan@scifoundry.com>
Co-authored-by: Morgan Giddings <morgan@MG-Mac-Studio.home.arpa>
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-authored-by: Ryan <RALaBarge@users.noreply.github.com>
Co-authored-by: Maxwell Calkin <101308415+MaxwellCalkin@users.noreply.github.com>
Co-authored-by: Peter Dave Hello <hsu@peterdavehello.org>
Co-authored-by: Peter Dave Hello <3691490+PeterDaveHello@users.noreply.github.com>
Co-authored-by: Kesku <62210496+kesku@users.noreply.github.com>
Co-authored-by: kesku <kesku@users.noreply.github.com>
* fix: typo in contribution guidelines, update project metadata and pull_request_temp...md (#5010)
Co-authored-by: Timothy Carambat <rambat1010@gmail.com>
* bump copyright year
resolves#5017
* feat: update light mode UI sidebar (#4996)
* implement light mode sidebar redesign
* Abstract hardcoded hex values into reusable css variables
* reorder ternary and apply bold font on hovered workspaces
* Remove double icon hack and use a state tracking whether workspace item is being hovered over for fill styles
* lint
* convert css variables and custom classes to default tailwind classes
* remove grab icon filling on hover logic
* revert css vars to original values
* remove light mode css vars | change bg of sidebar in light mode to right color | make icons correct color in light mode
* revert dark mode change
---------
Co-authored-by: Timothy Carambat <rambat1010@gmail.com>
* fix(frontend): fix event listener memory leak in useIsDisabled hook (#5027)
fix: optimize event listener management in useIsDisabled hook
* feat: dedicated dark theme option with system preference support (#5007)
* implement OS level theme switching and dark mode option
* simplify
* fix logo bug in login | place back useTheme comment
---------
Co-authored-by: shatfield4 <seanhatfield5@gmail.com>
Co-authored-by: Timothy Carambat <rambat1010@gmail.com>
* fix cleanup pr workflow
* Implement new home page redesign (#4931)
* remove legacy home page components, update home page to new layout
* update PromptInput component styles to match new designs, make quick action buttons functional
* home page chat creates new thread in last used workspace
* fix slash commands and agent popup on home page
* disable llm workspace selector action in home page
* add drag and drop file support to home page
* fix behavior of drag and drop on home page
* handle pasting attachments in home page
* update empty state of workspace chat to use new ui
* update empty workspace ui to match home page design, fix flickering loading states
* convert quick action buttons to component, add to empty state ws chat
* fix hover state light mode in quick actions
* add suggested messages subcomponent to empty ws/thread
* adjust width, rounded edges of prompt input
* only show quick actions for admin/manager role
* fix hover states for quick actions and suggested messages component
* make upload document quick action trigger parsed document upload
* fix mic behavior in homepage, ws chat, ws thread chat
* fix margin between prompt input and quick actions
* Simplify message presets by removing heading input (#4915)
* Remove heading input from message presets, merge legacy headings on edit
* filter out empty messages from state after saving
* mark form as dirty on input change
* styling
---------
Co-authored-by: Timothy Carambat <rambat1010@gmail.com>
* convert SuggestedMessages to component, render SuggestedMessages in home page to target ws
* fix broken handleMessageChange reference
* add translations for QuickActions
* lint
* fix home page chat submission broken by PromptInput onChange removal
* fix prompt input remount race condition, home page suggested message flicker
* remove unused handleSendSuggestedMessage from ChatHistory
* add greeting text to main-page translations, remove defaults
* fix file deletion in parsed files menu on home page
* add virtual thread sidebar state and workspace indicator on home page
* show workspace llm selector on home page when workspace exists
* show home page for all user roles with rbac quick actions
* fix positioning of agent and slash command popups
* remove workspace indicator from home page, match empty state spacing
* Normalize translations for home page redesign (#4986)
* normalize translations
* update translations with DMR
* accidentally changed es translation
* normalize translations for main-page.greeting
* update translations with DMR
---------
Co-authored-by: Timothy Carambat <rambat1010@gmail.com>
* update translations
* create new workspace in native language
Cleanup workspace page from empty state handling
* update quick action show logic
* fix send button
---------
Co-authored-by: Timothy Carambat <rambat1010@gmail.com>
* fix: GitLab connector infinite loop and rate limit crash for large repos (#5021)
* Fix infinite loop and rate limit crashes
* simplify logic | add max-retries to fetchNextPage and fetchSingleFileContents
---------
Co-authored-by: shatfield4 <seanhatfield5@gmail.com>
Co-authored-by: Timothy Carambat <rambat1010@gmail.com>
* fix: add password character validation to onboarding single-user setup (#5037)
* fix single user mode password bug
* share const
---------
Co-authored-by: Timothy Carambat <rambat1010@gmail.com>
* Native Tool calling (#5071)
* checkpoint
* test MCP and flows
* add native tool call detection back to LMStudio
* add native tool call loops for Ollama
* Add ablity detection to DMR (regex parse)
* bedrock and generic openai with ENV flag
* deepseek native tool calling
* localAI native function
* groq support
* linting, add litellm and OR native tool calling via flag
* fix: resolve Gemini agent 400 error on tool call responses (#5054)
* add gtc__ prefix to tool call names in Gemini agent message formatting
* resolve Gemini agent 400 error on tool call responses
* add comments explaining geminis thought signatures
---------
Co-authored-by: Timothy Carambat <rambat1010@gmail.com>
* fix: prevent CMD/CTRL+Arrow scroll from overriding textarea cursor movement (#5053)
prevent CMD/CTRL+Arrow scroll from overriding textarea cursor movement
Co-authored-by: Timothy Carambat <rambat1010@gmail.com>
* lint
* Normalize scraper runtimeargs for bulk-scraper (#5083)
resolves#5078closes#5079
* resolve Ollama string strict num_ctx
resolves#5081
* Lemonade integration (#5077)
* lemonade integration
* lemonade embedder
* log
* load model
* readme updates
* update embedder privacy entry
* fix max tool call stack abort flow
* bump tag
* v1.11.1
---------
Co-authored-by: Dipanshu Rawat <dv451197@gmail.com>
Co-authored-by: Marcello Fitton <106866560+angelplusultra@users.noreply.github.com>
Co-authored-by: shatfield4 <seanhatfield5@gmail.com>
* Update common.js (#4894)
* Update common.js
Added missing translations in Dutch.
* linting
---------
Co-authored-by: Timothy Carambat <rambat1010@gmail.com>
* Add keyboard shortcuts to scroll to top and bottom of chat history (#4870)
* Add keybindings to scroll to top and bottom of chat history
* fix isUserScrolling flag and set scrollToBottom to be instant instead of smoothe
* fix stream scroll
* fix default export by removing unneeded constant
* Replace file-defined `isMac` variable with global util
* extract funcitonality to hooks for clarity
* patch import
---------
Co-authored-by: shatfield4 <seanhatfield5@gmail.com>
Co-authored-by: Timothy Carambat <rambat1010@gmail.com>
* 4825 patch yt file collector api (#4904)
Patch YT links in API document collector
closes#4825
* Refine and Standardize Username Constraints (#4828)
* Implement Unix username standard validations on username creation and updating.
* Remove leading underscore permissibility | Replace hardcoded username rules with a centralized USERNAME_REQUIREMENTS_TEXT for better maintainability.
* Add username requirements translations for invite and admin user creation | Replace hardcoded username requirements with localized strings in user modals
* Refactor username requirements localization
* Remove unneeded comment | Move Regex comment to validator fn
* Remove username validation utility function to keep validation responsibilities on the server | Allow onboarding flow multi-user mode username creation step to send pre-validated credentials to server.
* Enhance error handling in system endpoints by returning a JSON response with error details instead of a plain status for internal server errors.
* Update username requirement localization in AccountModal and UserSetup components to use centralized translation key.
* test enforcements
allow users to keep existing usernames without collision
* Normalize Translations (#4861)
* normalize translations
* add translations
---------
Co-authored-by: Timothy Carambat <rambat1010@gmail.com>
---------
Co-authored-by: Timothy Carambat <rambat1010@gmail.com>
* New login page UI (#4862)
* wip new home page multiuser auth
* implement new login page designs for single and multiuser auth
* fix scroll overflow on mobile
* rounded custom logos
* fix up translation entry to use var
---------
Co-authored-by: Timothy Carambat <rambat1010@gmail.com>
* [Chore] Autotranslation tool using DMR (#4907)
* update translations + DMR loading
* updates to misspellings
* Persist Ollama context preferences in LC tools (#4908)
* Persist Ollama context preferences in LC tools
* remove comment
* Refactor Ollama context window setting (#4909)
* fix log line
* resolves#4913, remove non-const vars
* Patch AzureOpenAI tool calling from `function` to `tool` (#4922)
* Thinking block persist toggle state (#4916)
* Thinking block persist toggle state
* dev build
* Manage Onboarding decision via DB flag (#4926)
* WIP add onboarding flag to db
* dev build
* fix onboarding telem call
* Fix sidebar thread layer (#4881)
* fixed sidebar overlay + overflow behavior
* ran yarn lint
* fixed footer vertical reserved space
* linting
---------
Co-authored-by: shatfield4 <seanhatfield5@gmail.com>
Co-authored-by: Timothy Carambat <rambat1010@gmail.com>
* Toggle switch component (#4890)
* replace all toggle switches with toggle component
* add variant, label, and description support for toggle component
* refactor Toggle with subcomponents and JSDoc
* use checked value from Toggle onChange callback
* replace missed inline toggles with Toggle component
* fix jsdoc to use optional props
---------
Co-authored-by: Timothy Carambat <rambat1010@gmail.com>
* Fix: Clean username already exists error (#4914)
* Add Prisma unique constraint error messaging.
* Create `_identifyErrorAndFormatMessage` private method for identifying the error type and returning the approprioate error message string
* fix: prevent Citations UI glitching during streaming chats (#4897)
* fix: prevent Citations UI glitching during streaming chats
* replaced random keys with stable keys
* simplify citation glitch fix
* Remove unneeded memo()
* Simplify key logic
* Replace Boolean(source) with !!source
* change cohere to behave with citations like other models
---------
Co-authored-by: shatfield4 <seanhatfield5@gmail.com>
Co-authored-by: Timothy Carambat <rambat1010@gmail.com>
Co-authored-by: Marcello Fitton <macfittondev@gmail.com>
* fix tooltip generic name
* Support PrivateModeAI Integration (#4937)
* Support PrivateModeAI Integration
* tooltip for proxy
* feat: Add ability to edit existing SQL agent connections (#4848)
* Add the ability to edit existing SQL connections
* Enhance SQL connection management by adding connections prop to DBConnection and SQLConnectionModal components for improved duplicate detection and handling.
* format
* fix: prevent input defocus in SQL connection edit modal
Fixed an issue where typing in input fields would cause the field to lose
focus during editing. The useEffect dependency array was using the entire
existingConnection object, which could change reference on parent re-renders,
triggering unnecessary re-fetches and unmounting form inputs.
Changed the dependency to use the primitive database_id value instead of the
object reference, ensuring the effect only runs when the actual connection
being edited changes.
* fix: prevent duplicate SQL connections from being created
Fixed an issue where saving SQL connections multiple times would create
duplicate entries with auto-generated hash suffixes (e.g., my-db-abc7).
This occurred because the frontend maintained stale action properties on
connections after saves, causing the backend to treat already-saved
connections as new additions.
Backend changes (server/models/systemSettings.js):
- Modified mergeConnections to skip action:add items that already exist
- Reject duplicate updates instead of auto-renaming with UUID suffixes
- Check if original connection exists before applying updates
Frontend changes:
- Added hasChanges prop to SQL connector component
- Automatically refresh connections from backend after successful save
- Ensures local state has clean data without stale action properties
This prevents the creation of confusing duplicate entries and ensures
only the connections the user explicitly created are stored.
* Refactor to use existing system settings endpoint for getting agent SQL connections | Add better documentation
* Simplify handleUpdateConnection handler
* refactor mergeConnections to use map
* remove console log
* fix bug where edit SQL connection modal values werent recomputed after re-opening
* Add loading state for fetching agent SQL connections
* tooltip
* remove unused import
* Put skip conditions in switch statement
* throw error if default switch case is triggered
---------
Co-authored-by: shatfield4 <seanhatfield5@gmail.com>
Co-authored-by: Timothy Carambat <rambat1010@gmail.com>
* fix rerender for loading promptReply
resolves#4938
* Fix double scroll container in agent flow builder (#4933)
* fix double scroll container in agent flow builder
* use overflow-clip to prevent focus events from scrolling outer container
* add bottom padding
---------
Co-authored-by: Timothy Carambat <rambat1010@gmail.com>
* feat: Enable essential ESLint rules and refactor frontend lint config (#4923)
* Install eslint-plugin-unsued-imports
* Refactor eslint to a sane working config
* enable jsx-no-target-blank | disable no-escaped-entities
* disable react/display-name react-hooks/immutability and react-hooks/preserve-manual-memoization
* chore: remove unused imports (#4925)
remove unused imports
* fix: resolve react-hooks ESLint errors (#4929)
fix react-hooks linting errors
* fix: add rel=noreferrer to target=_blank links (#4928)
Fix no target blank errors
* fix: resolve undefined variable errors in frontend (#4927)
* delete unused file src/components/DataConnectorOption/index.jsx
* fix undefined errors
* chore: Remove unused variables in frontend (#4924)
Remove unused variables
---------
Co-authored-by: Timothy Carambat <rambat1010@gmail.com>
* lint applied by fixer
* simplify tooltips for prompt input items
Remove container for images
* SambaNova Integration (#4943)
* SambaNova Integration
* lint
* Update LMStudio LLM & Embedder for API token (#4948)
- Updates Option panels to be consistent for other providers
adds API key to all LMStudio API calls
* Web push notifications (#4942)
* WIP push notifications
* testing push
* cleanup for web-push bootstrapping
* Fix agent workspace settings loading forever (#4956)
remove .brief from SystemSettings.agent_sql_connections
* patch warning
* patch translator
* VN patch for lang/ISO name
* fix legacy toggle on confluence page
* add provider field to chats (#4959)
* make translator placeholder aware
* fix bad arabic placeholder that got translated
* add provider to map
* UAE region support for bedrock models (#4964)
* added me-central-1 to bedrock regions
* fixed long region name
* fix: scroll active sidebar items into view (#4965)
* Add centering of settings sidebar link when isActive
* abstract redundant logic into a reusable hook
* add jsdocs | refactor hook to consume behavior and block args
* remove unused import
* dev
---------
Co-authored-by: Timothy Carambat <rambat1010@gmail.com>
* remove deprecated value for Google embedding
* linting + tolerate folder deletion for bad ParsedFile inserts
* refactor: Migrate system preferences to field-based endpoint and remove deprecated endpoint (#4958)
* Migrate all existing deprecated system preferences endpoint services to new service by field | delete old endpoint and service
* format
* destructure settings from response
* nitpick
---------
Co-authored-by: shatfield4 <seanhatfield5@gmail.com>
Co-authored-by: Timothy Carambat <rambat1010@gmail.com>
* Refactor: Remove redundant message state sync in ChatContainer (#4941)
* remove redundant message state sync in ChatContainer
* small lint
---------
Co-authored-by: Timothy Carambat <rambat1010@gmail.com>
* chore: bump ollama SDK from 0.5.10 to 0.6.3 (#4977)
upgrade ollama in server to latest (0.6.3)
* set embedder output dimensions for LocalAI and Gemini (gemini-embedding-001) (#4980)
* Fix Sidebar Clipping When Closed (#4970)
fix sidebar clipping when closed
* add QA image build for GCHR images
* fix GH action color escape
* update cleanup to assume repo name
* fix build tag lowercase org name
* normalize logo wordmark
* fix logo jump
resolves#4993
* patch out max_tokens from block output amount
resolves#3421
* fix: correct TPS calculation for Generic OpenAI provider with llama.cpp (#4981)
* add check for timings field on final chunk to override usage data
* refactor: extract llama.cpp timings into reusable private method
Move timings extraction into #extractTimings so it can be shared
by both streaming (handleStream) and non-streaming (getChatCompletion)
code paths.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* lint and cleanup
---------
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Co-authored-by: Timothy Carambat <rambat1010@gmail.com>
* add support for custom headers for LLM Generic OpenAI (#4999)
* add support for custom headers for LLM Generic OpenAI
* add env
* patch out no finish reason from https://github.com/microsoft/Foundry-Local/issues/423
* Update Sponsors README
* 1.11.0 release tag
* render/railway 1.11.0
---------
Co-authored-by: j0rDy <jkersten84@hotmail.com>
Co-authored-by: Marcello Fitton <106866560+angelplusultra@users.noreply.github.com>
Co-authored-by: shatfield4 <seanhatfield5@gmail.com>
Co-authored-by: Colin Perry <55003831+17ColinMiPerry@users.noreply.github.com>
Co-authored-by: Neha Prasad <neh6a683@gmail.com>
Co-authored-by: Marcello Fitton <macfittondev@gmail.com>
Co-authored-by: vigorous-ride <68917684+vigorous-ride@users.noreply.github.com>
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Co-authored-by: timothycarambat <16845892+timothycarambat@users.noreply.github.com>
* Migrate to `bcryptjs` (#4767)
* Replace bcrypt with bcryptjs across multiple files
* dev build
---------
Co-authored-by: Timothy Carambat <rambat1010@gmail.com>
* Refactor frontend legacy JSON.parse with safeJsonParse (#4759)
* replace all frontend legacy JSON.parse with safeJsonParse
* default collapsed sidebar menu on failed parse
* remove extra check on conditional render
* undo singular json parse
* add guard clause and return null for `userFromStorage`
* patch domainList
---------
Co-authored-by: Timothy Carambat <rambat1010@gmail.com>
* Fix pagination bug in paperless-ngx data connector (#4757)
* iterate over all pages in paperless-ngx data connector
* add error handling and data validation
* refactor to handle edge cases and null values
* catch edge case to prevent infinite loop
---------
Co-authored-by: Timothy Carambat <rambat1010@gmail.com>
* Fix Stale User Session with Proper `fetch` Error Handling (#4770)
* add refresh user functionality
* prettier
* add eslint disable comment for exhaustive-deps warning in AuthContext to stop nagging about navigate func
* remove unused imports and fix typo
* handle unsafe parse of undefined for in-session user deleted
* Refactor refreshUser function to handle errors and return structured response. Update AuthProvider to manage user data based on success status.
* Remove console error logging from promise catch in System model for cleaner error handling.
* change status from 404 to 400 and valid to success
* Refactor error handling in AuthProvider's refreshUser logic to remove redundant catch block and streamline user session management on failure.
* prettier
* reorder clauses - return errors
* refactor
account for all user modes
dev build
---------
Co-authored-by: Timothy Carambat <rambat1010@gmail.com>
* Add Auth Token to Ollama Embedding Client (#4766)
* Enhance OllamaEmbedder to support authentication by adding an authorization token in headers for client initialization.
* Add optional Auth Token input for Ollama embedding options
* move info elements
---------
Co-authored-by: Timothy Carambat <rambat1010@gmail.com>
* Upgrade to Multer 2.0.0 (#4768)
* upgrade to multer 2.0.0
* bump dev
---------
Co-authored-by: Timothy Carambat <rambat1010@gmail.com>
* Implement Global Error Boundary (#4765)
* Implement global error boundary
* add 404 page for generic path catching
* devbuild
---------
Co-authored-by: Timothy Carambat <rambat1010@gmail.com>
* Feat/cohere agent implementation (#4703)
* implement cohere agent support
* run yarn lint
* moderize Cohere
add supported langchain method
redo streaming since it was not working
looping of agent calls was not functioning
* change default model to real model tag
add case statement for model tag
* remove debug
* update default
* only whitelist known labels
---------
Co-authored-by: Timothy Carambat <rambat1010@gmail.com>
* Upgrade MCP SDK to Latest (1.24.3) (#4773)
* upgrade mcp sdk to latest (1.24.3)
* Upgrade MCP version floor in package.json to 1.24.3
* fix(devcontainer): forward ports 3000/3001 (#4779)
* 4601 log model on response (#4781)
* add model tag to chatCompletion
* add modelTag `model` to async streaming
keeps default arguments for prompt token calculation where applied via explict arg
* fix HF default arg
* render all performance metrics as available for backward compatibility
add `timestamp` to both sync/async chat methods
* extract metrics string to function
* Update Google Search Option Description To Reference Documentation For Rate Limits (#4789)
* Update Google Search description to reference documentation for rate limits
* remove
---------
Co-authored-by: Timothy Carambat <rambat1010@gmail.com>
* Refactor `LLMPerformanceMonitor.measureStream()` to Use Options Object Pattern (#4786)
* Refactor LLMPerformanceMonitor to use options object for measureStream parameters
* Refactor invocations of `measureStream` to use options arguments
* Change invocation of `measureStream` in anthropic provider to use options argument
---------
Co-authored-by: Timothy Carambat <rambat1010@gmail.com>
* hanging lint
* fix unnecessary scrollbar in workspace general appearance settings tab (#4791)
* fixed SuggestedChatMessages width styling
* ran yarn lint
---------
Co-authored-by: Timothy Carambat <rambat1010@gmail.com>
* Add Eslint Config in `/frontend` (#4785)
* Add local ESLint configuration and disable rules to allow for errorless state
* Remove unnecessary ESLint disable comments in AuthContext and usePromptInputStorage for cleaner code.
* Update eslint-plugin-react-hooks
* Configure prettier to work with eslint
* Removed trailing commas from eslint config
* Prettier to source code
* add a v2 lint script
* put back eslint-disable comments
* fix eslinter and prettier application
always apply --fix since we --write prettier, otherwise it fails
* precaution dev build
---------
Co-authored-by: Timothy Carambat <rambat1010@gmail.com>
* Refactor localWhisper to use custom FFMPEGWrapper class (#4775)
* refactor localWhisper to use new custom FFMPEGWrapper class
* stub tests in github actions
* add back wavefile conversion to 16khz 32f to fix docker builds
* use afterEach for cleanup in ffmpeg tests
* remove unused FFMPEG_PATH env check
* use spawnSync for ffmpeg to capture and log output
* lint
* revert removal of try/catch around validateAudioFile for more helpful error msgs
* use readFileSync instead of createReadStream for less overhead
* change import to require for fix-path and stub import in tests
* refactor to singleton to preserve ffmpeg path
dev build
---------
Co-authored-by: Timothy Carambat <rambat1010@gmail.com>
* Refactor Managed Services in "Data Handling & Privacy" Onboarding Step to Use Their Privacy Policy URL (#4790)
* Refactor non-local LLM Provider, Vector Database, and Embedding Engine privacy information to use their policy URLs instead of descriptions
* Update LLM Provider, Embedding Engine, and Vector Database sections to include privacy policy links
* fix broken links, lint
* Update AstraDB privacy policy URL in onboarding flow
* Refactor AnythingLLM Privacy & Data page to show managed provider privacy policy URLs
* Update Mistral privacy policy URLs in onboarding flow for consistency
* Abstract privacy policies of providers into a reusable component | Refactor Privacy & Data Handling Step of onboarding flow to focus on solely rendering that step | Move provider privacy policy maps into constants.js
* Remove commented-out code for third-party provider privacy policies in Privacy and Data Handling component
* Update privacy policy descriptions for consistency by adding periods at the end of sentences in ProviderPrivacy component and constants.js
* rescope constants for providers
* extract default to external function, add loading state
---------
Co-authored-by: Timothy Carambat <rambat1010@gmail.com>
* patch ESM import issue (#4819)
* Upgrade YT Scraper (#4820)
* Merge commit from fork
* Update Sponsors README
* fix: validate chat message input (#4811)
* fix: validate chat message input
* fix: align message validation for thread stream-chat endpoint
---------
Co-authored-by: Timothy Carambat <rambat1010@gmail.com>
* patch AWS credential issue in docker context (#4842)
path AWS credential issue in docker context
* support AWS bedrock agents with streaming (#4850)
* support AWS bedrock agents with streaming
* Add back error handlers from previous fix
* VectorDB class migration (#4787)
* Migrate Astra to class (#4722)
migrate astra to class
* Migrate LanceDB to class (#4721)
migrate lancedb to class
* Migrate Pinecone to class (#4726)
migrate pinecone to class
* Migrate Zilliz to class (#4729)
migrate zilliz to class
* Migrate Weaviate to class (#4728)
migrate weaviate to class
* Migrate Qdrant to class (#4727)
migrate qdrant to class
* Migrate Milvus to class (#4725)
migrate milvus to class
* Migrate Chroma to class (#4723)
migrate chroma to class
* Migrate Chroma Cloud to class (#4724)
* migrate chroma to class
* migrate chroma cloud to class
* move limits to class field
---------
Co-authored-by: Timothy Carambat <rambat1010@gmail.com>
* Migrate PGVector to class (#4730)
* migrate pgvector to class
* patch pgvector test
* convert connectionString, tableName, and validateConnection to static methods
* move instance properties to class fields
---------
Co-authored-by: Timothy Carambat <rambat1010@gmail.com>
* Refactor Zilliz Cloud vector DB provider (#4749)
simplify zilliz implementation by using milvus as base class
Co-authored-by: Timothy Carambat <rambat1010@gmail.com>
* VectorDatabase base class (#4738)
create generic VectorDatabase base class
Co-authored-by: Timothy Carambat <rambat1010@gmail.com>
* Extend VectorDatabase base class to all providers (#4755)
extend VectorDatabase base class to all providers
* patch lancedb import
* breakout name and add generic logger
* dev tag build
---------
Co-authored-by: Timothy Carambat <rambat1010@gmail.com>
* Make XLSX spreadsheets visible in chat by combining sheets (#4847)
* fix bug with xlsx files not being added as context
* lint
* fix console logs/warn/error
* abstract sheet processing to function + normalize error handling
* fix jsdoc
* patch xlsx filename to prevent orphaned doc
* reduce tokens
* correct pluralization
---------
Co-authored-by: Timothy Carambat <rambat1010@gmail.com>
* Remove Workspace Creation Onboarding Page (#4823)
* remove create workspace step for onboarding
* remove unused image
* workspace creation into dedicated useEffect + use translated workspace name
* dev tag
---------
Co-authored-by: Timothy Carambat <rambat1010@gmail.com>
* Improved DMR support (#4863)
* Improve DMR support
- Autodetect models installed
- Grab all models from hub.docker to show available
- UI to handle render,search, install, and management of models
- Support functionality for chat, stream, and agentic calls
* forgot files
* fix loader circle being too large
fix tooltip width command
adjust location of docker installer open for web platform
* adjust imports
* AnythingLLM Mobile live (#4864)
* remove new labels on landing
* minor DMR UI changes + dynamic tooltip for context management
* Adjust fix path to use ESM import (#4867)
* Adjust fix path to use ESM import
* normalize fix-path imports and usage across the app
* extract path fix logic to utils for server and collector
* add helpers
* repin strip-ansi in collector
* fix log for localWhisper
lint
* Add postsettled callers to updateENV
* minor refactor for context window finder
* Extract Model Table to component (#4871)
* Extract Model Table to component
Add provider icons to header rows and installed models
Light mode supported
Mapping for model name id hints to provider
Update DMR to filter chat models by ability since not available via hub API
* linting + dev
* fix incorrect import
* remove race condition regression for FoundryLocal provider
* remove duplicated steam method on cohere handler
* feat(i18n): add Czech (cs) language translation to AnythingLLM (#4874)
Co-authored-by: Timothy Carambat <rambat1010@gmail.com>
* Docker model runner download from UI (#4884)
* Enable downloads of DMR models from UI
* add utils + dev build
* linting
* add fallback key to mono model provider
* update announcements for 1.10.0
* bump versions to 1.10.0
---------
Co-authored-by: Marcello Fitton <106866560+angelplusultra@users.noreply.github.com>
Co-authored-by: Sean Hatfield <seanhatfield5@gmail.com>
Co-authored-by: Colin Perry <55003831+17ColinMiPerry@users.noreply.github.com>
Co-authored-by: Irene Wang <lohas1107@gmail.com>
Co-authored-by: timothycarambat <16845892+timothycarambat@users.noreply.github.com>
Co-authored-by: Ocheretovich <ocheretovich@gmail.com>
Co-authored-by: Vladimir Vlach <vladaman@gmail.com>
* Refactor Azure OpenAI integration to use OpenAI SDK and the v1 API | Enable streaming for Azure Open AI basic inference provider
* Add info tooltip to inform user about 'Model Type' form field
* Add 'model_type_tooltip' key to multiple language translations
* Validate AZURE_OPENAI_ENDPOINT in provider construction
* remove unused import, update error handler, rescope URL utils
---------
Co-authored-by: Timothy Carambat <rambat1010@gmail.com>
* fix astra not showing similarity score in citations ui
* fix qdrant not showing similarity score in citations ui
* fix weaviate not showing similarity score in citations ui
* Support Gitee AI(LLM Provider)
* refactor(server): 重构 GiteeAI 模型窗口限制功能,暂时将窗口限制硬编码,计划使用外部 API 数据和缓存
* updates for Gitee AI
* use legacy lookup since gitee does not enable getting token context windows
* add more missing records
* reorder imports
---------
Co-authored-by: 方程 <fangcheng@oschina.cn>
Co-authored-by: timothycarambat <rambat1010@gmail.com>
* implemented openrouter embedding model support
* ran yarn lint
* data handling entry
---------
Co-authored-by: timothycarambat <rambat1010@gmail.com>
* feat: add base64 document attachment support to API chat endpoints
* remove parsed documents from api chat process
linting for simplicity
fix logic issues with flow of data through the pipeline
documentiation
* change var scope
---------
Co-authored-by: timothycarambat <rambat1010@gmail.com>
* Add Default System Prompt Management
- Introduced a new route for fetching and updating the default system prompt in the backend.
- Added a new Admin page for managing the default system prompt, including a form for editing and saving changes.
- Updated the SettingsSidebar to include a link to the new Default System Prompt page.
- Implemented fetching of available system prompt variables for use in the prompt editor.
- Enhanced the ChatSettings and ChatPromptSettings components to support the new default system prompt functionality.
This commit lays the groundwork for improved management of system prompts across workspaces.
* Remove validation for system prompt in ChatSettings component
* Add comment for system prompt in workspaces model
* linting, simplify logic for default assumption
* dev build
---------
Co-authored-by: timothycarambat <rambat1010@gmail.com>
* prompt caching for anthropic llm and agent providers
* add UI for control of ENV
simplify implementation
---------
Co-authored-by: Timothy Carambat <rambat1010@gmail.com>
* feat: add AWS Bedrock API Key option to settings panel
* feat: Bedrock API key auth method
* fix: hide IAM note when using bedrock api key
* move to camcelCase identifier for bedrock api key use
linting
---------
Co-authored-by: timothycarambat <rambat1010@gmail.com>
* fix: Use eval_duration for output TPS calculations and add as a metric field
* refactor usage of eval_duration from ollama metrics
* move eval_duration to usage
* overwrite duration in ollama provider wip measureAsyncFunction optional param
* allow for overloaded duration in measureAsyncFunction
* simplify flow for duration tracking
---------
Co-authored-by: shatfield4 <seanhatfield5@gmail.com>
Co-authored-by: Timothy Carambat <rambat1010@gmail.com>
* feat: add web app manifest and mobile PWA meta tags
* feat: serve dynamic manifest.json with custom branding for pwa
* feat: add ios status bar theming for pwa
* fix: prevent overscroll behavior for mobile
* fix: prevent ios safari auto-zoom on chat input
* fix: remove theme-color meta tags conflicting with ios status bar
* fix: add missing apple-mobile-web-app-capable meta tag for ios pwa
* fix: move catch-all route after manifest endpoint to prevent interception
* feat: add pwa detection helper and conditional styling for standalone mode
* PWA refactor
* undo changes to native CSS
* class fix
* proper response obj
* fix patch for import
* fix manifest errors
---------
Co-authored-by: Christian De Santis <christian.constantino98@gmail.com>
* fix(server): correct Qdrant batching logic for large uploads
Closes#4544
* modify O(3N) process to O(N)
---------
Co-authored-by: timothycarambat <rambat1010@gmail.com>
* Migrate gemini agents away from `Untooled`
* disable agents for gemma models as they are not supported for tool calling
* Dev build
resolve#4452 via function name prefix and then stripping within provider
* Reimplement Cohere models
- Redo LLM implementation to grab models from endpoint and pre-filter
- Migrate embedding models to also grab from remote
- Add records for easy context window lookup'
* fix comment
* auto model context limit detection for ollama llm provider
* auto model context limit detection for lmstudio llm provider
* Patch Ollama to function and sync context windows like Foundry
* normalize how model context windows are cached from endpoint service
todo: move this into global utility class with MODEL_MAP
eager load models on boot to pre-cache them
add performance model improvements into ollama agent as well as apply n_ctx
* remove debug log
---------
Co-authored-by: Timothy Carambat <rambat1010@gmail.com>
* add microsoft foundry local llm and agent providers
* minor change to fix early stop token + overloading of context window
always use user defined window _unless_ it is larger than the models real contenxt window
cache the context windows when we can from the API (0.7.*)+
Unload model forcefully on model change to prevent resource hogging
* add back token preference since some models have very large windows and can crash a machine
normalize cases
---------
Co-authored-by: Timothy Carambat <rambat1010@gmail.com>
* WIP agentic tool call streaming
- OpenAI
- Anthropic
- Azure OpenAI
* WIP rest of providers EXCLUDES Bedrock and GenericOpenAI
* patch untooled complete/streaming to use chatCallback provider from provider class and not assume OpenAI client struct
example: Ollama
* modify ollama to function with its own overrides
normalize completion/stream outputs across providers/untooled
* dev build
* fix message sanization for anthropic agent streaming
* wip fix anthropic agentic streaming sanitization
* patch gemini, webgenui, generic aibitat providers + disable providers unable to test
* refactor anthropic aibitat provider for empty message and tool call formatting
* Add frontend missing prop check
update Azure for streaming support
update Gemini to streamting support on gemini-* models
generic OpenAI disable streaming
verify localAI support
verify NVIDIA Nim support
* DPAIS, remove temp from call, support streaming'
* remove 0 temp to remove possibility of bad temp error/500s/400s
* Patch condition where model is non-streamable and no tools are present or called resulting in the provider `handleFunctionCallChat` being called - which returns a string.
This would then fail in Untooled.complete since response would be a string and not the expected `response.choices?.[0]?.message`
Modified this line to handle both conditions for stream/non-streaming and tool presence or lack thereof
* Allow generic Openai to be streamable since using untooled it should work fine
honor disabled streaming for provider where that concern may apply for regular chats
* rename function and more gemini-specific function to gemini provider
* add comments for readability
.complete on azure should be non-streaming as this is the sync response
* migrate CometAPI, but disable as we cannot test
---------
Co-authored-by: shatfield4 <seanhatfield5@gmail.com>
* Fix system prompt variable color logic by removing unused variable type from switch statement and adding new types.
* Add workspace id, name and user id as default system prompt variables
* Combine user and workspace variable evaluations into a single if statment, reducing redundant code.
* minor refactor
* add systemPromptVariable expandSystemPromptVariables test cases
---------
Co-authored-by: timothycarambat <rambat1010@gmail.com>
* Fix JSDOC for updateOrCreateCollection
* Add sanitizeForJsonb method to PGVector for safe JSONB handling
This new method recursively sanitizes values intended for JSONB storage, removing disallowed control characters and ensuring safe insertion into PostgreSQL. The method is integrated into the vector insertion process to sanitize metadata before database operations.
* Add unit tests for PGVector.sanitizeForJsonb method
This commit introduces a comprehensive test suite for the PGVector.sanitizeForJsonb method, ensuring it correctly handles various input types, including null, undefined, strings with disallowed control characters, objects, arrays, and Date objects. The tests verify that the method sanitizes inputs without mutating the original data structures.
---------
Co-authored-by: Timothy Carambat <rambat1010@gmail.com>