Commit Graph

948 Commits

Author SHA1 Message Date
Marcello Fitton
7ea6196570
Fix Community Hub import page responsiveness on narrow widths (#5544)
* make community hub import page responsive | fix top border bug

* fix top border bug

* fix layout shift

* remove bg to keep designs in spec

---------

Co-authored-by: Timothy Carambat <rambat1010@gmail.com>
2026-05-01 16:01:09 -07:00
Gopal Bagaswar
7d884c7863
fix(tts): strip Markdown syntax before sending text to TTS engines (#5560)
* fix(tts): strip Markdown syntax before sending text to TTS engines

Chat responses are rendered as Markdown but the TTS components piped the
raw response into Piper / the browser's `SpeechSynthesis` API. The
synthesizer reads every special character literally — `**bold**` becomes
"asterisk asterisk bold asterisk asterisk", `# Heading` becomes "pound
heading", code fences are read backtick-by-backtick, and bullet lists
become "hyphen item". The result is unintelligible whenever the assistant
includes any formatting, which is most of the time.

This commit adds a small `messageToSpeech` helper that converts a
Markdown chat message into plain text suitable for TTS:

- fenced code blocks and images are dropped (nothing useful to read)
- inline code and link labels keep their text content
- emphasis markers, headings, blockquote markers, list markers, and
  horizontal rules are stripped while preserving the underlying words
- HTML tags are removed but their text content kept
- table pipes become commas so rows read naturally

The helper is regex-based — no new dependency — and is wired into both
the native (`SpeechSynthesis`) and Piper TTS components in
`WorkspaceChat/ChatContainer/ChatHistory/HistoricalMessage/Actions/TTSButton`.

Closes #5557.
---
Co-authored-by: Timothy Carambat <rambat1010@gmail.com>
2026-05-01 12:44:19 -07:00
Timothy Carambat
667db6d13b
update scheduled job continue CTA (#5558) 2026-04-29 16:27:55 -07:00
Sean Hatfield
b2285180af
Auto-rename thread in agent mode (#5550)
auto-rename thread in agent mode

Made-with: Cursor
2026-04-29 12:33:42 -07:00
Sean Hatfield
b5a72eb62e
Rename auto mode to agent mode (#5551)
* update auto mode to agent

* auto-translate agent mode title for all locales

---------

Co-authored-by: Timothy Carambat <rambat1010@gmail.com>
2026-04-29 12:23:15 -07:00
Marcello Fitton
41495cdabe
feat: Scheduled Jobs (#5322)
* initialize

* expand tool result text limit | add syntax highlighting and json formatting to tool result rendering

* fix onError jsdoc

* lint

* fix unread icon

* route protection

* improve form handling for NewJobModal

* safeJsonParse

* remove unneeded comments

* remove trycatch

* add truncateText helper

* add explicit fallback value tos safeJsonParse

* add shared cron constant and helpers

* reduce frontend indirection

* use isLight to compute syntax highlighting theme

* remove dead code

* remove forJob and make job limit to 50

* create recomputeNextRunAt helper method

* add comment about nextRunAt recomputation

* add job queue and concurrency control to scheduled jobs

* use p-queue

* change default max concurrent value to 1

* add comment explaining internal scheduling system

* add recomputeNextRunAt on boot

* add generated documents to run details

* Modify toolsOverride functionality where no tools selected means no tools are given to the agent

add a select all/deselect all toggle button for easily selecting all
tools in the cerate job form

* create usePolling hook

* add polling to scheduled jobs and scheduled job runs pages

* add cron generation feature in job form

* remove cron generation feature | add cron builder feature | add max active scheduled jobs limit

* set MAX_ACTIVE to null

* replace hour and minute input fields with input with type time

* simplify

* organize components

* move components to bottom of page component

* change Generated Documents to Generated Files

* add i18n to cronstrue

* add i18n

* add type="button" to button elements

* refactor fileSource retrieval logic

* one scheduled job run can have status "running"

* add protection of file retrieveal from scheduled job in multiuser mode

* fix comments

* make job status default to queued

* add queued status

* fix bug with result trace rendering

* store timeout ref and clearTimeout once race settles

* remove unneeded handlerPromise tracking

* move imports to top level

* refactor hardcoded paths to path resolve functions

* implement new job form design

* simplify

* fix button styles

* fix runJob bug

* implement styles for scheduled jobs page

* apply dark mode figma styles

* delete unused translation key

* implement light mode for new new job modal, run history, and run details

* lint

* fix light mode scroll bar in tool call card

* adjust table header contrast

* fix type in subtitle

* kill workers when job is in-flight before deleting job

* add border-none to buttons

* change locale time to iso string

* import BackgroundService module level | instatiate backgroundService singltone once and reuse across handlers

* add p-queue, @breejs/later and cron-validate as core deps

* parse cron expression to a builder state once

* add theme to day buttons in cron builder

* fix stale tools selection caption

* flip popover when popover clips screen height

* make ScheduleJob.trigger() await the run insertion | disable run now button if job is in flight

* regen table

* refactor generated file card

* refactor frontend

* remove logs

* major refactor for tool picking, fix bree/later bug

* combine action endpoints, move contine to method

* fix unoptimized query with include + take + order

* fix dangerous use, refactor job to utils

* add copy content to text response

* improve notification system subscription for browser

* remove unused translations

* prevent gen-file cleanup job from deleting active job file generated references

* rich text copy

* Scheduled Jobs: Translations (#5482)

* add locales for scheduled jobs

* i18n

---------

Co-authored-by: Timothy Carambat <rambat1010@gmail.com>

* add config flag with UI notice

* update README

* telemetry datapoints

* Always use UTC on backend, convert to local in frontend

* fix tz render

* Add job killing

* cleanup thinking text in job notifications and break out reasoning in response text.
Also hide zero metrics since that is useless

* Port generatedFile schema to the normalized workspace chat `outputs` file format so porting to thread is simple and implem between chats <> jobs is 1:1

* what the fuck

* compiled bug

* fixed thinking oddity in complied frontend

* supress multi-toast

* fix duration call

* Revert "fix duration call"

This reverts commit 0491bc71f4223e65ea4046561b15b268fefb8da2.

* revert and reapply fix

---------

Co-authored-by: Timothy Carambat <rambat1010@gmail.com>
2026-04-29 12:05:46 -07:00
Sean Hatfield
5eb9842533
Fix double /reset in agent mode (#5516)
fix double /reset in agent mode

Co-authored-by: Timothy Carambat <rambat1010@gmail.com>
2026-04-28 09:50:22 -07:00
Timothy Carambat
2029f90b42 fix priority for workspace sidebar items that are unclear. Resolves #5502 2026-04-24 15:52:37 -07:00
Timothy Carambat
bde72505ff
Remove default models to show empty until real models are retreieved (#5524)
resolves #5505
Fix placeholder
resolves #5503
resolves #5522
2026-04-24 15:13:57 -07:00
Marcello Fitton
bee383f19d
fix: invalid docs links in FileSystemSkillPanel (#5518)
* fix invalid documentation link

* fix link and trans i18n

* fix tag

---------

Co-authored-by: Timothy Carambat <rambat1010@gmail.com>
2026-04-24 13:50:45 -07:00
jimmyzhuu
680d38a3ce
[FEAT] Add native Baidu Search provider for Agent web browsing (#5388)
* feat: add native baidu search provider for agent web browsing

* chore: address baidu search review feedback

* refactor baiduSearch internal util to be locally scoped

---------

Co-authored-by: Timothy Carambat <rambat1010@gmail.com>
2026-04-22 17:53:20 -07:00
Sean Hatfield
55567239b0
Show agent skills, flows, and MCP tools in chat tools menu (#5444)
* show agent skills, flows, and MCP tools in collapsible sections in chat tools menu

* fix tools menu toggle disabled bypass, add border-none to buttons, and useMemo improvements

* replace mcp server cache with loading state for mcp servers

* enable sub-skill management

* refactor

* Translations for chat tools menu improvements (#5448)

* normalize translations

* update translations

* norm translations

---------

Co-authored-by: Timothy Carambat <rambat1010@gmail.com>

---------

Co-authored-by: Timothy Carambat <rambat1010@gmail.com>
2026-04-22 17:41:09 -07:00
Marcello Fitton
f4cb1ead4e
fix: long-prompt bubble flicker & See More collapse on streaming/scroll (#5473)
fix ui flickering and truncatable prompt expansion bug

Co-authored-by: shatfield4 <seanhatfield5@gmail.com>
Co-authored-by: Timothy Carambat <rambat1010@gmail.com>
2026-04-21 14:48:44 -07:00
Timothy Carambat
649c94298c better special citation styling 2026-04-15 15:20:54 -07:00
Timothy Carambat
f5fa03f472
Merge commit from fork 2026-04-15 10:37:56 -07:00
Timothy Carambat
676f305927 Better citations for gmail, gcal, and outlook 2026-04-15 10:05:26 -07:00
Sean Hatfield
6ca2d5235d
Image lightbox for chat attachments (#5441)
* add image lightbox for chat attachments

* wrap lightbox image triggers in button elements

* add images to dependency array

* add jsdoc to ChatAttachments and remove filter
2026-04-14 19:47:48 -07:00
Timothy Carambat
1cea4df8e6
Google calendar skill (#5442)
* Google Calendar Agent

* forgot files

* Translations (#5443)
2026-04-14 16:39:36 -07:00
Timothy Carambat
177049bd4a make DDG default web-search in UI (already is in backend!) 2026-04-14 14:53:55 -07:00
Timothy Carambat
5aae72a5e5
Refactor Gmail Agent (#5439) 2026-04-14 14:46:54 -07:00
Timothy Carambat
f17337fb97 reorder skills for app integrations 2026-04-14 14:25:36 -07:00
Timothy Carambat
1c0d0301b0
Outlook agent via Entra Application (#5427)
* Outlook agent via Entra Application

* translations (#5437)
2026-04-14 14:05:19 -07:00
Timothy Carambat
b7b380ac51 Revert "5427 translations (#5429)"
This reverts commit 4172751858.
2026-04-14 13:40:03 -07:00
Timothy Carambat
4172751858
5427 translations (#5429)
* Outlook agent via Entra Application

* translations
2026-04-14 13:38:03 -07:00
Timothy Carambat
3d9c210a32
Enable chatId reporting during agent sessions (#5407) 2026-04-13 13:24:09 -07:00
Jordi Mas
6ef114df19
feat: add Catalan translation (#5411)
* Add Catalan translation

* lint

---------

Co-authored-by: Timothy Carambat <rambat1010@gmail.com>
2026-04-11 19:36:53 -07:00
Timothy Carambat
cec67d77f2
GMail Agent Skill (#5400)
* wip

* remove label tech

* ask to read attachments

* update skills

* Skill ready and tested

* report dynamic citations and generic get mailbox util

* norm translations

* translations

* remove dead code, remove connector in multiUser

* simple refactor - dont ask for drafts

* refactor filesize helper

* norm translations, remove read_messages skill
2026-04-10 14:14:12 -07:00
Guilherme Nogueira
159376e2a1
feat: adds name field to api keys (#5366)
* feat: adds name field to api keys

* remove extra toasts

* prune and norm translations

---------

Co-authored-by: Timothy Carambat <rambat1010@gmail.com>
2026-04-10 10:40:14 -07:00
Timothy Carambat
e344109bcb
Update Lemonade Integration to support v10.1.0 changes (#5378)
Update Lemonade Integraion
Fix ApiKey nullification check causing hard throw
2026-04-07 11:21:28 -07:00
Marcello Fitton
42a41201a8
feat: Document Embedding Status Events | Refactor Document Embedding to Job Queue and Forked Process (#5254)
* implement native embedder job queue

* persist embedding progress across renders

* add development worker timeouts

* change to static method

* native reranker

* remove useless return

* lint

* simplify

* make embedding worker timeout value configurable by admin

* add event emission for missing data

* lint

* remove onProgress callback argument

* make rerank to rerankDirect

* persists progress state across app reloads

* remove chunk level progress reporting

* remove unuse dvariable

* make NATIVE_RERANKING_WORKER_TIMEOUT user configurable

* remove dead code

* scope embedding progress per-user and clear stale state on SSE reconnect

* lint

* revert vector databases and embedding engines to call their original methods

* simplify rerank

* simplify progress fetching by removing updateProgressFromApi

* remove duplicate jsdoc

* replace sessionStorage persistence with server-side history replay for embedding progress

* fix old comment

* fix: ignore premature SSE all_complete when embedding hasn't started yet

The SSE connection opens before the embedding API call fires, so the
server sees no buffered history and immediately sends all_complete.
Firefox dispatches this eagerly enough that it closes the EventSource
before real progress events arrive, causing the progress UI to clear
and fall back to the loading spinner. Chrome's EventSource timing
masks the race.

Track slugs where startEmbedding was called but no real progress event
has arrived yet via awaitingProgressRef. Ignore the first all_complete
for those slugs and keep the connection open for the real events.

* reduce duplication with progress emissions

* remove dead code

* refactor: streamline embedding progress handling

Removed unnecessary tracking of slugs for premature all_complete events in the EmbeddingProgressProvider. Updated the server-side logic to avoid sending all_complete when no embedding is in progress, allowing the connection to remain open for real events. Adjusted the embedding initiation flow to ensure the server processes the job before the SSE connection opens, improving the reliability of progress updates.

* fix stale comment

* remove unused function

* fix event emissions for document creation failure

* refactor: move Reranking Worker Idle Timeout input to LanceDBOptions component

Extracted the Reranking Worker Idle Timeout input from GeneralEmbeddingPreference and integrated it into the LanceDBOptions component. This change enhances modularity and maintains a cleaner structure for the settings interface.

* lint

* remove unused hadHistory vars

* refactor workspace directory by hoisting component and converting into functions

* moved EmbeddingProgressProvider to wrap Document Manager Modal

* refactor embed progress SSE connection to use fetchEventSource instead of native EventSource API.

* refactor message handlng into a function and reduce duplication

* refactor: utilize writeResponseChunk for event emissions in document embedding progress SSE

* refactor: explicit in-proc embedding and rerank methods that are called by workers instead of process.send checks

* Abstract EmbeddingProgressBus and Worker Queue into modules

* remove error and toast messages on embed process result

* use safeJsonParse

* add chunk-level progress events with per-document progress bar in UI

* remove unused parameter

* rename all worker timeout references to use ttl | remove ttl updating from UI

* refactor: pass embedding context through job payload instead of global state

* lint

* add graceful shutdown for workers

* apply figma styles

* refactor embedding worker to use bree

* use existing WorkerQueue class as the management layer for jobs

* lint

* revert all reranking worker changes back to master state

Removes the reranking worker queue, rerankViaWorker/rerankInProcess
renames, and NATIVE_RERANKING_WORKER_TTL config so this branch
only contains the embedding worker job queue feature.

* remove breeManaged flag — WorkerQueue always spawns via Bree

* fix prompt embedding bug

* have embedTextInput call embedChunksInProcess

* add message field to `process.send()`

* remove nullish check and error throw

* remove bespoke graceful shutdown logix

* add spawnWorker method and asbtract redudant flows into helper methods

* remove unneeded comment

* remove recomputation of TTL value

* frontend cleanup and refactor

* wip on backend refactor

* backend overhaul

* small lint

* second pass

* add logging, update endpoint

* simple refactor

* add reporting to all embedder providers

* fix styles

---------

Co-authored-by: Timothy Carambat <rambat1010@gmail.com>
2026-04-06 17:00:15 -07:00
Timothy Carambat
4c37b487f5 hide cluttered menus on small screens
resolves #5055
closes #5132
2026-04-03 15:39:33 -07:00
Timothy Carambat
3c2682eb5f
Fix Agent Flow toggle state sync (#5348) 2026-04-03 15:00:03 -07:00
suyua9
a841486c5e
fix(agent-flows): keep flow menu visible in narrow windows (#5341)
* fix(agent-flows): keep flow menu visible in narrow windows

* fix(agent-flows): prevent gear menu text clipping

Signed-off-by: suyua9 <1521777066@qq.com>

---------

Signed-off-by: suyua9 <1521777066@qq.com>
Co-authored-by: Timothy Carambat <rambat1010@gmail.com>
2026-04-03 14:33:46 -07:00
Timothy Carambat
37f269d59a
Fix light mode docgen page (#5347)
Fix light mode docgen
2026-04-03 14:31:08 -07:00
S. Neuhaus
a70eb3a28f
German translation fixes (#5319)
* Fix German login welcome message

* More German translation fixes

---------

Co-authored-by: Timothy Carambat <rambat1010@gmail.com>
2026-04-02 14:51:51 -07:00
Timothy Carambat
5a2393e632
Fix chat UI event listener bloat (#5323) 2026-04-01 17:00:32 -07:00
Timothy Carambat
88ea47b9f4 Merge branch 'master' of github.com:Mintplex-Labs/anything-llm 2026-03-31 20:51:46 -07:00
Timothy Carambat
527ccab2ca remove log 2026-03-31 20:51:39 -07:00
Sean Hatfield
b9f0d98345
Redesign Telegram bot settings UI (#5306)
* redesign telegram bot settings ui/refactor ui components

* fix positioning of user row

* move ConnectedBotCard to subcomponent

* fix redirect

* remove redundant guard

---------

Co-authored-by: Timothy Carambat <rambat1010@gmail.com>
2026-03-31 13:34:59 -07:00
Timothy Carambat
7aaea7f514
File creation agent skills (#5280)
* Powerpoint File Creation (#5278)

* wip

* download card

* UI for downloading

* move to fs system with endpoint to pull files

* refactor UI

* final-pass

* remove save-file-browser skill and refactor

* remove fileDownload event

* reset

* reset file

* reset timeout

* persist toggle

* Txt creation (#5279)

* wip

* download card

* UI for downloading

* move to fs system with endpoint to pull files

* refactor UI

* final-pass

* remove save-file-browser skill and refactor

* remove fileDownload event

* reset

* reset file

* reset timeout

* wip

* persist toggle

* add arbitrary text creation file

* Add PDF document generation with markdown formatting (#5283)

add support for branding in bottom right corner
refactor core utils and frontend rendering

* Xlsx document creation (#5284)

add Excel doc & sheet creation

* Basic docx creation (#5285)

* Basic docx creation

* add test theme support + styling and title pages

* simplify skill selection

* handle TG attachments

* send documents over tg

* lazy import

* pin deps

* fix lock

* i18n for file creation (#5286)

i18n for file-creation
connect #5280

* theme overhaul

* Add PPTX subagent for better results

* forgot files

* Add PPTX subagent for better results (#5287)

* Add PPTX subagent for better results

* forgot files

* make sub-agent use proper tool calling if it can and better UI hints
2026-03-30 15:13:39 -07:00
Marcello Fitton
0bfd27c6df
feat: add optional API key support for Lemonade provider (#5281)
* add API key param to Lemonade LLM Provider and Embedding Provider

* add LEMONADE_LLM_API_KEY to .env.example

* add api key to aibitat provider

* fix api key from being sent to frontend

* fix tooltip id

* add null fallback for `apiKey`

* remove console log

* add missing api keys

---------

Co-authored-by: Timothy Carambat <rambat1010@gmail.com>
2026-03-30 14:44:12 -07:00
Timothy Carambat
fb4dff618f remove legacy cost estimate for embedding 2026-03-26 15:02:23 -07:00
Neha Prasad
d767c398c7
feat : auto-select newly uploaded docs/URLs in my documents list (#5222)
* auto-select newly uploaded docs/URLs in My Documents list

* fix: improve auto-select reliability and fix debounce/selection bugs

- Add missing `await` on fetchKeys in handleSendLink so loading state
  and auto-select timing work correctly
- Use functional update for setSelectedItems to merge with existing
  selections instead of replacing them
- Stabilize debounced fetchKeys with useRef so rapid uploads actually
  debounce instead of creating independent timers per render
- Rename shadowed local variables (availableDocs -> filteredAvailableDocs)
  for clarity

---------

Co-authored-by: Timothy Carambat <rambat1010@gmail.com>
2026-03-26 14:59:25 -07:00
Timothy Carambat
7ecc4ae005 fix es translation entry 2026-03-26 14:21:01 -07:00
Timothy Carambat
3dedcede34
Filesystem Agent Skill overhaul (#5260)
* wip

* collector parse fixes

* refactor for class and also operation for reading

* add skill management panel

* management panel + lint

* management panel + lint

* Hide skill in non-docker context

* add ask-prompt for edit tool calls

* fix dep

* fix execa pkg (unused in codebase)

* simplify search with ripgrep only and build deps

* Fs skill i18n (#5264)

i18n

* add copy file support

* fix translations
2026-03-26 14:07:46 -07:00
Marcello Fitton
e9883f4d09
Refactor onboarding welcome screen to v2 design (#5262)
* refactor onboarding home page to v2 design

* fixc typography and buttons

* refactor useTheme to return isLight variable | call useTheme from inside SVG component | apply light mode background gradient | polish styles to match designs

* add welcome i18n

* simplify isLight variable

* add new welcome translation key to locales

* delete unused images

* move OnboardingLogoSVG into module | compute isLight directly in component

* add type button | add border-none | add hover state

* update hook with doc

---------

Co-authored-by: Timothy Carambat <rambat1010@gmail.com>
2026-03-24 22:06:58 -07:00
Timothy Carambat
7e9737dd86
add ask to run prompt for tool calls (demo) (#5261)
* add ask to run prompt for tools

* border-none on buttons

* translations

* linting

* i18n (#5263)

* extend approve/deny requests to telegram

* break up handler
2026-03-24 15:18:17 -07:00
Timothy Carambat
8937b8a98b whitelist valid dynamic translation 2026-03-24 08:24:05 -07:00
Timothy Carambat
a2ae761f1a Merge branch 'master' of github.com:Mintplex-Labs/anything-llm 2026-03-24 08:17:48 -07:00
Timothy Carambat
bf944bc903 fix pruned translations 2026-03-24 08:17:42 -07:00