Commit Graph

4484 Commits

Author SHA1 Message Date
Soulter
3a79233384 feat: update computer access hints and add detailed configuration instructions 2026-04-11 17:01:36 +08:00
Soulter
ebc6273a1c feat: add support for additional temporary path in restricted environment checks 2026-04-11 16:32:27 +08:00
Soulter
5bd902793a Merge remote-tracking branch 'origin/master' into feat/fs-grep-read-edit 2026-04-11 01:11:24 +08:00
Soulter
31846cbba3 feat: enhance onboarding steps to include computer access configuration and related help information 2026-04-10 19:15:07 +08:00
2doright
574e5089ba docs: fix path concatenation error in storage.md (#7448)
* docs: 修复 storage.md 中路径拼接的错误示例

get_astrbot_data_path() 返回的是 str 类型,直接使用 / 运算符会导致 TypeError。修改文档示例,添加 Path() 包裹

* docs: 修复 storage.md 中路径拼接的错误示例

get_astrbot_data_path() 返回的是 str 类型,直接使用 / 运算符会导致 TypeError。修改文档示例,添加 Path() 包裹。
2026-04-10 18:41:54 +08:00
Soulter
16f57dd971 chore: remove lxml and bs4 deps (#7449) 2026-04-10 18:39:54 +08:00
Soulter
157749504a fix: test 2026-04-10 18:18:07 +08:00
Soulter
1745e9c4fb feat: implement handling for large tool results with overflow file writing and read tool integration 2026-04-10 17:26:17 +08:00
Soulter
3acda6f77a feat: update converted text notice to suggest using grep for large files 2026-04-10 16:46:13 +08:00
Soulter
cff148860a feat: enhance file reading capabilities to support PDF and DOCX parsing, including workspace storage for long documents 2026-04-10 16:31:53 +08:00
エイカク
122e6c719f fix: make desktop plugin dependency loading safer on Windows (#7446)
* fix: make desktop plugin dependency loading safer on Windows

* fix: restore dependency recovery after precheck fallback

* test: cover version mismatch reinstall path

* refactor: clarify dependency recovery state handling

* style: format star manager with ruff

* fix: skip dependency recovery for plugin import errors

* fix: surface unexpected dependency recovery failures
2026-04-10 17:08:10 +09:00
Soulter
013ecacee9 Merge remote-tracking branch 'origin/master' into feat/fs-grep-read-edit 2026-04-10 15:47:18 +08:00
Soulter
7bf1d19332 perf: shell executed in workspace dir in local env 2026-04-10 15:38:40 +08:00
Shujakuin
9c14a50b06 fix: split long telegram final segments (#7432)
* fix: split long telegram final segments

* test: refine telegram adapter helpers

* Update astrbot/core/platform/sources/telegram/tg_event.py

Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>

* Update tg_event.py

* chore: ruff format

---------

Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
Co-authored-by: Soulter <37870767+Soulter@users.noreply.github.com>
Co-authored-by: Soulter <905617992@qq.com>
2026-04-10 14:36:47 +08:00
Soulter
c791c815e1 perf: merge 3 cron tools into 1 cron manage tool, and add edit capability for cron tool. (#7445)
* perf: replace cron tools with FutureTaskTool for improved task management

* feat: enhance FutureTaskTool with edit functionality and improve descriptions

* feat: add edit functionality for cron jobs and update related UI components
2026-04-10 14:32:57 +08:00
Soulter
5f049f2bb5 feat: add ripgrep installation to Dockerfile 2026-04-10 11:35:59 +08:00
Soulter
add5db6748 feat: add workspace extra prompt handling in message processing 2026-04-10 00:01:50 +08:00
Soulter
5ca2483a43 feat: add tooltip for disabled builtin tools and update localization strings 2026-04-09 23:56:28 +08:00
Soulter
adc01e0c9d feat: supports to display enabled builtin tools in configs 2026-04-09 23:49:22 +08:00
Soulter
e34d9504e4 chore: update logo in README.md 2026-04-09 17:27:09 +08:00
Soulter
efc93a37b1 refactor: remove unused plugin_context parameter from _apply_sandbox_tools 2026-04-08 15:34:18 +08:00
Soulter
56a099bf90 refactor: move computer tools to builtin tools registry 2026-04-08 15:29:00 +08:00
Soulter
006aedbd24 Merge remote-tracking branch 'origin/master' into feat/fs-grep-read-edit 2026-04-08 14:52:06 +08:00
Soulter
38b1b4d4ea refactor: improve astrbot builtin tool management (#7418)
* feat: Refactor astrbot builtin tool management

- Introduced a new registry for builtin tools to streamline their management.
- Added `SendMessageToUserTool`, `KnowledgeBaseQueryTool`, and various web search tools as builtin tools.
- Updated `FunctionToolManager` to cache and retrieve builtin tools efficiently.
- Modified `CronJobManager` to utilize the new `SendMessageToUserTool`.
- Enhanced the dashboard to display readonly status for builtin tools and prevent toggling their state.
- Added tests for builtin tool injection and retrieval to ensure proper functionality.

* fix: escape file path in shell command to prevent injection vulnerabilities
2026-04-08 14:49:58 +08:00
Soulter
94a529d3fd refactor: remove default web search (#7416)
* refactor: remove default web search

* chore: ruff format
2026-04-08 13:26:53 +08:00
daniel5u
c517cdb490 feat: add new web search tool Brave Search (#6847)
* feat:Brave Search API adapted

* Modified hint message

* Modified according to AI reviews

* chore: revert compose.yml changes

---------

Co-authored-by: Soulter <905617992@qq.com>
2026-04-08 12:00:21 +08:00
時壹
ef15955096 fix: prevent floating buttons from jumping during page transitions (#7214) 2026-04-08 11:37:22 +08:00
Ruochen Pan
76fcc56866 fix: add ChatUIProject & SessionProjectRelation to shared constants & test cases (#7414) 2026-04-08 11:35:59 +08:00
kaiisfree
d42711d687 fix: remove unsupported id field from Gemini FunctionResponse (#7357) (#7386)
Co-authored-by: Kai <kai@kaiisfree.com>
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-08 11:33:52 +08:00
Yufeng He
321504fb4f fix(telegram): skip empty text in sendMessageDraft to prevent 400 spam (#7398)
When streaming is enabled, markdownify() can produce empty strings for
certain inputs (whitespace-only, formatting-only markdown). The draft
sender loop then calls sendMessageDraft with empty text, which Telegram
rejects with 'Text must be non-empty', flooding the log every 0.5s.

Add an early return in _send_message_draft() when text is empty or
whitespace-only. This matches WebChat's approach of skipping empty
responses.

Fixes #7353

Co-authored-by: Yufeng He <40085740+universeplayer@users.noreply.github.com>
2026-04-08 11:32:38 +08:00
氕氙
2020eecc72 fix(dashboard): fix WebUI dark mode rendering and multiple UI interaction bugs (#7173)
* fix(dashboard): comprehensive dark mode improvements for WebUI

- Tune DarkTheme.ts color palette: soften primary, fix on-surface-variant
  from black to light grey, adjust surface/background/border colors,
  add codeBg/preBg/code variables for dark code blocks
- Add _HljsDark.scss for highlight.js dark token overrides and
  markstream-vue CSS variable overrides under .v-theme--PurpleThemeDark
- Add global dark mode overrides in _override.scss: soften flat primary
  buttons, timeline dots, dialog card backgrounds, markdown link color
- Fix hardcoded light backgrounds in IPythonToolBlock, ExtensionCard,
  T2ITemplateEditor, ExtensionPage, KnowledgeBase, LongTermMemory
- Remove hardcoded color='black' from icons in ProviderPage,
  PlatformPage, PersonaPage
- Desaturate console log ANSI colors for dark mode readability
- Add iframe dark mode inversion filter in VerticalSidebar
- Fix language switcher mobile adaptation and click behavior
- Fix login page theme toggle tooltip showing wrong label

* fix(dashboard): apply dark mode review feedback
2026-04-08 11:29:24 +08:00
Yufeng He
1ab925ed9f fix: skip FunctionCallingConfig when only native tools are present (#7407)
* fix: skip FunctionCallingConfig when only native tools are present

When native tools (google_search, url_context) are enabled without any
function_declarations, _prepare_query_config was still creating a
FunctionCallingConfig, which makes Gemini API return 400 INVALID_ARGUMENT.

Now we only set tool_config when tool_list actually contains
function_declarations.

Fixes #7406

* style: ruff format
2026-04-08 11:19:47 +08:00
Double2and9
301df11102 fix: prevent KeyError in Telegram collect_commands when plugin handler not in star_map (#7405)
* fix: prevent KeyError in collect_commands when plugin handler not in star_map

* chore: ruff format

---------

Co-authored-by: Soulter <905617992@qq.com>
2026-04-08 11:15:43 +08:00
Soulter
86ac40d944 feat: add file read utilities and integrate with filesystem tools 2026-04-08 00:34:38 +08:00
Aster
2fae22107d fix: defer faiss imports during startup (#7400)
* fix: defer faiss imports during startup

* chore: gemini cr

Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>

* chore: ruff format

* fix: move torch import to _resolve_device method and remove obsolete tests

* fix: remove obsolete test for eager loading of faiss during startup imports

* test: fix kb helper patch target after faiss lazy import

---------

Co-authored-by: Soulter <37870767+Soulter@users.noreply.github.com>
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
Co-authored-by: Soulter <905617992@qq.com>
2026-04-08 00:33:39 +08:00
Soulter
20fed8ab62 feat: implement file read tool with support for text and image files, including validation for large files 2026-04-07 23:52:23 +08:00
Soulter
a539deec91 feat: remove redundant safe path tests from security restrictions 2026-04-07 21:44:34 +08:00
Soulter
11282c769f feat: enhance tool prompt formatting and add escaped text decoding for file editing 2026-04-07 21:32:11 +08:00
Soulter
8e7d995fec feat: add file write tool and enhance file read functionality 2026-04-07 20:45:40 +08:00
Soulter
dfca5cdb79 fix: improve warning message for missing context token in WeixinOCAdapter 2026-04-07 18:26:27 +08:00
M1LKT
42fc16f1f0 fix: reduce MCP server status polling frequency (#7399) 2026-04-07 10:39:38 +08:00
Soulter
fcf1b08455 feat: filesystem grep, read, edit file 2026-04-07 01:20:26 +08:00
dependabot[bot]
c48288d8f6 chore(deps): bump docker/login-action in the github-actions group (#7401)
Bumps the github-actions group with 1 update: [docker/login-action](https://github.com/docker/login-action).


Updates `docker/login-action` from 4.0.0 to 4.1.0
- [Release notes](https://github.com/docker/login-action/releases)
- [Commits](https://github.com/docker/login-action/compare/v4.0.0...v4.1.0)

---
updated-dependencies:
- dependency-name: docker/login-action
  dependency-version: 4.1.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: github-actions
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-04-07 01:12:20 +08:00
Soulter
8c6c00ae62 fix: update tool result assertions to reflect dynamic threshold values 2026-04-06 18:37:52 +08:00
神楽坂·喵
0ce5fde7f8 feat(platform): add Mattermost bot support (#7369)
* feat(platform): add Mattermost bot support (#6009)

Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>

* fix(platform): address Mattermost review feedback

Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>

* fix(platform): improve Mattermost streaming and file IO

Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>

* perf(platform): optimize Mattermost duplicate detection

Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>

* fix(platform): preserve Mattermost command prefixes after mentions

Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>

* test(platform): cover Mattermost attachment parsing

Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>

* docs: add mattermost docs

---------

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Co-authored-by: Soulter <905617992@qq.com>
2026-04-06 18:27:28 +08:00
Soulter
2a3d93a6c5 fix: clean up qq official websocket shutdown (#7395)
* fix: clean up qq official websocket shutdown

fixes: #7259

* fix: do not catch KeyboardInterrupt/SystemExit

Co-authored-by: sourcery-ai[bot] <58596630+sourcery-ai[bot]@users.noreply.github.com>

---------

Co-authored-by: sourcery-ai[bot] <58596630+sourcery-ai[bot]@users.noreply.github.com>
2026-04-06 17:59:50 +08:00
Soulter
571b571e7e feat: implement llm guidance for repetition tool call (#7388)
* feat: implement llm guidance for repetition tool call

fixes: #7387

* feat: enhance tool execution guidance with user interruption and repetition notices

* chore: fix test

* feat: rename guidance method for repeated tool calls to improve clarity

* feat: update repeated tool notice thresholds to improve user guidance
2026-04-06 16:31:59 +08:00
Chang Lee
b0b6816039 feat: add NVIDIA rerank provider support (#7227)
* feat: add Rerank API support for NVIDIA NIM

- Add Rerank API support for NVIDIA NIM
- Add related i18n support in en-US zh-CN

* chore: format code

* fix: replace illegal characters

Replace illegal characters when building request model path.

* fix: refactor client initialization method

* fix: enhance response parsing

* docs: add comment for model_path process

* docs: add russia translation

* feat: update AddNewProvider component to support current provider type and enhance provider icon mapping

---------

Co-authored-by: Soulter <905617992@qq.com>
2026-04-06 15:20:21 +08:00
Soulter
224287e170 feat: add audio input support across providers and chatui recording issue fix (#7378)
* feat: add audio input support across providers and chatui recording issue fix

- Introduced audio_urls parameter in Provider class and related methods to handle audio input.
- Updated ProviderAnthropic, ProviderGoogleGenAI, and ProviderOpenAIOfficial to process audio URLs.
- Enhanced media_utils with functions to ensure audio format compatibility and detect audio types.
- Modified dashboard components to display audio input support and handle audio attachments in messages.
- Updated localization files to include audio as a supported modality.
- Added new icons for audio input in the dashboard UI.

* feat: enhance audio handling with temporary file cleanup and format support

* feat: track temporary local files for converted audio components

* fix: update image placeholder in prompt from "[图片]" to "[Image]"
2026-04-06 14:58:29 +08:00
Soulter
80d5efdb45 fix: empty model output error may misfire when use gemini (#7377) 2026-04-06 01:28:23 +08:00