AstrBot 4.10.0a1__tar.gz → 4.10.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {astrbot-4.10.0a1 → astrbot-4.10.1}/PKG-INFO +1 -1
- astrbot-4.10.1/astrbot/cli/__init__.py +1 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/agent/runners/tool_loop_agent_runner.py +61 -21
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/astr_agent_run_util.py +19 -1
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/astr_agent_tool_exec.py +34 -4
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/config/default.py +1 -1
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/pipeline/process_stage/method/agent_sub_stages/internal.py +6 -1
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/platform/sources/aiocqhttp/aiocqhttp_platform_adapter.py +17 -2
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/provider/sources/gemini_source.py +19 -3
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/star/command_management.py +12 -6
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/star/star_manager.py +5 -1
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/dashboard/routes/chat.py +1 -1
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/dashboard/routes/config.py +20 -8
- astrbot-4.10.1/changelogs/v4.10.0-alpha.2.md +44 -0
- astrbot-4.10.1/changelogs/v4.10.0.md +40 -0
- astrbot-4.10.1/changelogs/v4.10.1.md +46 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/components/chat/Chat.vue +1 -1
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/components/chat/ChatInput.vue +12 -2
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/components/chat/ConversationSidebar.vue +2 -1
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/components/chat/ProviderModelMenu.vue +14 -2
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/components/provider/ProviderSourcesPanel.vue +7 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/composables/useMessages.ts +6 -2
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/composables/useProviderSources.ts +5 -3
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/composables/useSessions.ts +11 -1
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/i18n/locales/en-US/features/provider.json +1 -1
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/i18n/locales/zh-CN/features/provider.json +1 -1
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/layouts/full/FullLayout.vue +12 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/router/index.ts +11 -0
- astrbot-4.10.1/dashboard/src/stores/routerLoading.ts +60 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/views/ConversationPage.vue +63 -7
- {astrbot-4.10.0a1 → astrbot-4.10.1}/pyproject.toml +1 -1
- astrbot-4.10.1/tests/test_tool_loop_agent_runner.py +326 -0
- astrbot-4.10.0a1/astrbot/cli/__init__.py +0 -1
- {astrbot-4.10.0a1 → astrbot-4.10.1}/.dockerignore +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/.github/FUNDING.yml +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/.github/ISSUE_TEMPLATE/PLUGIN_PUBLISH.yml +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/.github/ISSUE_TEMPLATE/bug-report.yml +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/.github/ISSUE_TEMPLATE/feature-request.yml +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/.github/auto_assign.yml +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/.github/copilot-instructions.md +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/.github/dependabot.yml +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/.github/workflows/auto_release.yml +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/.github/workflows/code-format.yml +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/.github/workflows/codeql.yml +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/.github/workflows/coverage_test.yml +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/.github/workflows/dashboard_ci.yml +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/.github/workflows/docker-image.yml +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/.github/workflows/smoke_test.yml +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/.github/workflows/stale.yml +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/.gitignore +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/.pre-commit-config.yaml +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/.python-version +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/CODE_OF_CONDUCT.md +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/CONTRIBUTING.md +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/Dockerfile +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/LICENSE +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/README.md +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/README_en.md +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/README_fr.md +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/README_ja.md +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/README_ru.md +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/README_zh-TW.md +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/__init__.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/api/__init__.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/api/all.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/api/event/__init__.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/api/event/filter/__init__.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/api/message_components.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/api/platform/__init__.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/api/provider/__init__.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/api/star/__init__.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/api/util/__init__.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/cli/__main__.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/cli/commands/__init__.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/cli/commands/cmd_conf.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/cli/commands/cmd_init.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/cli/commands/cmd_plug.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/cli/commands/cmd_run.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/cli/utils/__init__.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/cli/utils/basic.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/cli/utils/plugin.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/cli/utils/version_comparator.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/__init__.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/agent/agent.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/agent/handoff.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/agent/hooks.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/agent/mcp_client.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/agent/message.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/agent/response.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/agent/run_context.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/agent/runners/__init__.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/agent/runners/base.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/agent/runners/coze/coze_agent_runner.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/agent/runners/coze/coze_api_client.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/agent/runners/dashscope/dashscope_agent_runner.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/agent/runners/dify/dify_agent_runner.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/agent/runners/dify/dify_api_client.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/agent/tool.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/agent/tool_executor.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/astr_agent_context.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/astr_agent_hooks.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/astrbot_config_mgr.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/config/__init__.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/config/astrbot_config.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/config/i18n_utils.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/conversation_mgr.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/core_lifecycle.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/db/__init__.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/db/migration/helper.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/db/migration/migra_3_to_4.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/db/migration/migra_45_to_46.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/db/migration/migra_webchat_session.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/db/migration/shared_preferences_v3.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/db/migration/sqlite_v3.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/db/po.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/db/sqlite.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/db/vec_db/base.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/db/vec_db/faiss_impl/__init__.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/db/vec_db/faiss_impl/document_storage.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/db/vec_db/faiss_impl/embedding_storage.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/db/vec_db/faiss_impl/sqlite_init.sql +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/db/vec_db/faiss_impl/vec_db.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/event_bus.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/exceptions.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/file_token_service.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/initial_loader.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/knowledge_base/chunking/__init__.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/knowledge_base/chunking/base.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/knowledge_base/chunking/fixed_size.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/knowledge_base/chunking/recursive.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/knowledge_base/kb_db_sqlite.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/knowledge_base/kb_helper.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/knowledge_base/kb_mgr.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/knowledge_base/models.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/knowledge_base/parsers/__init__.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/knowledge_base/parsers/base.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/knowledge_base/parsers/markitdown_parser.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/knowledge_base/parsers/pdf_parser.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/knowledge_base/parsers/text_parser.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/knowledge_base/parsers/url_parser.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/knowledge_base/parsers/util.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/knowledge_base/prompts.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/knowledge_base/retrieval/__init__.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/knowledge_base/retrieval/hit_stopwords.txt +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/knowledge_base/retrieval/manager.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/knowledge_base/retrieval/rank_fusion.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/knowledge_base/retrieval/sparse_retriever.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/log.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/message/components.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/message/message_event_result.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/persona_mgr.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/pipeline/__init__.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/pipeline/content_safety_check/stage.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/pipeline/content_safety_check/strategies/__init__.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/pipeline/content_safety_check/strategies/baidu_aip.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/pipeline/content_safety_check/strategies/keywords.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/pipeline/content_safety_check/strategies/strategy.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/pipeline/context.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/pipeline/context_utils.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/pipeline/preprocess_stage/stage.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/pipeline/process_stage/method/agent_request.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/pipeline/process_stage/method/agent_sub_stages/third_party.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/pipeline/process_stage/method/star_request.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/pipeline/process_stage/stage.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/pipeline/process_stage/utils.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/pipeline/rate_limit_check/stage.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/pipeline/respond/stage.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/pipeline/result_decorate/stage.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/pipeline/scheduler.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/pipeline/session_status_check/stage.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/pipeline/stage.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/pipeline/waking_check/stage.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/pipeline/whitelist_check/stage.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/platform/__init__.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/platform/astr_message_event.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/platform/astrbot_message.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/platform/manager.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/platform/message_session.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/platform/message_type.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/platform/platform.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/platform/platform_metadata.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/platform/register.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/platform/sources/aiocqhttp/aiocqhttp_message_event.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/platform/sources/dingtalk/dingtalk_adapter.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/platform/sources/dingtalk/dingtalk_event.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/platform/sources/discord/client.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/platform/sources/discord/components.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/platform/sources/discord/discord_platform_adapter.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/platform/sources/discord/discord_platform_event.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/platform/sources/lark/lark_adapter.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/platform/sources/lark/lark_event.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/platform/sources/lark/server.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/platform/sources/misskey/misskey_adapter.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/platform/sources/misskey/misskey_api.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/platform/sources/misskey/misskey_event.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/platform/sources/misskey/misskey_utils.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/platform/sources/qqofficial/qqofficial_message_event.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/platform/sources/qqofficial/qqofficial_platform_adapter.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/platform/sources/qqofficial_webhook/qo_webhook_adapter.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/platform/sources/qqofficial_webhook/qo_webhook_event.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/platform/sources/qqofficial_webhook/qo_webhook_server.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/platform/sources/satori/satori_adapter.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/platform/sources/satori/satori_event.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/platform/sources/slack/client.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/platform/sources/slack/slack_adapter.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/platform/sources/slack/slack_event.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/platform/sources/telegram/tg_adapter.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/platform/sources/telegram/tg_event.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/platform/sources/webchat/webchat_adapter.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/platform/sources/webchat/webchat_event.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/platform/sources/webchat/webchat_queue_mgr.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/platform/sources/wechatpadpro/wechatpadpro_adapter.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/platform/sources/wechatpadpro/wechatpadpro_message_event.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/platform/sources/wechatpadpro/xml_data_parser.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/platform/sources/wecom/wecom_adapter.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/platform/sources/wecom/wecom_event.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/platform/sources/wecom/wecom_kf.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/platform/sources/wecom/wecom_kf_message.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/platform/sources/wecom_ai_bot/WXBizJsonMsgCrypt.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/platform/sources/wecom_ai_bot/__init__.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/platform/sources/wecom_ai_bot/ierror.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/platform/sources/wecom_ai_bot/wecomai_adapter.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/platform/sources/wecom_ai_bot/wecomai_api.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/platform/sources/wecom_ai_bot/wecomai_event.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/platform/sources/wecom_ai_bot/wecomai_queue_mgr.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/platform/sources/wecom_ai_bot/wecomai_server.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/platform/sources/wecom_ai_bot/wecomai_utils.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/platform/sources/weixin_official_account/weixin_offacc_adapter.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/platform/sources/weixin_official_account/weixin_offacc_event.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/platform_message_history_mgr.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/provider/__init__.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/provider/entites.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/provider/entities.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/provider/func_tool_manager.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/provider/manager.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/provider/provider.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/provider/register.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/provider/sources/anthropic_source.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/provider/sources/azure_tts_source.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/provider/sources/bailian_rerank_source.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/provider/sources/dashscope_tts.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/provider/sources/edge_tts_source.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/provider/sources/fishaudio_tts_api_source.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/provider/sources/gemini_embedding_source.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/provider/sources/gemini_tts_source.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/provider/sources/groq_source.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/provider/sources/gsv_selfhosted_source.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/provider/sources/gsvi_tts_source.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/provider/sources/minimax_tts_api_source.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/provider/sources/openai_embedding_source.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/provider/sources/openai_source.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/provider/sources/openai_tts_api_source.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/provider/sources/sensevoice_selfhosted_source.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/provider/sources/vllm_rerank_source.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/provider/sources/volcengine_tts.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/provider/sources/whisper_api_source.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/provider/sources/whisper_selfhosted_source.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/provider/sources/xinference_rerank_source.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/provider/sources/xinference_stt_provider.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/provider/sources/zhipu_source.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/star/README.md +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/star/__init__.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/star/config.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/star/context.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/star/filter/__init__.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/star/filter/command.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/star/filter/command_group.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/star/filter/custom_filter.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/star/filter/event_message_type.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/star/filter/permission.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/star/filter/platform_adapter_type.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/star/filter/regex.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/star/register/__init__.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/star/register/star.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/star/register/star_handler.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/star/session_llm_manager.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/star/session_plugin_manager.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/star/star.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/star/star_handler.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/star/star_tools.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/star/updator.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/umop_config_router.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/updator.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/utils/astrbot_path.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/utils/command_parser.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/utils/file_extract.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/utils/io.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/utils/llm_metadata.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/utils/log_pipe.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/utils/metrics.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/utils/migra_helper.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/utils/path_util.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/utils/pip_installer.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/utils/plugin_kv_store.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/utils/session_lock.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/utils/session_waiter.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/utils/shared_preferences.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/utils/t2i/__init__.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/utils/t2i/local_strategy.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/utils/t2i/network_strategy.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/utils/t2i/renderer.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/utils/t2i/template/astrbot_powershell.html +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/utils/t2i/template/base.html +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/utils/t2i/template_manager.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/utils/tencent_record_helper.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/utils/version_comparator.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/utils/webhook_utils.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/zip_updator.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/dashboard/routes/__init__.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/dashboard/routes/auth.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/dashboard/routes/command.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/dashboard/routes/conversation.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/dashboard/routes/file.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/dashboard/routes/knowledge_base.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/dashboard/routes/log.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/dashboard/routes/persona.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/dashboard/routes/platform.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/dashboard/routes/plugin.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/dashboard/routes/route.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/dashboard/routes/session_management.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/dashboard/routes/stat.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/dashboard/routes/static_file.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/dashboard/routes/t2i.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/dashboard/routes/tools.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/dashboard/routes/update.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/dashboard/server.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/dashboard/utils.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/changelogs/v3.4.0.md +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/changelogs/v3.4.1.md +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/changelogs/v3.4.10.md +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/changelogs/v3.4.11.md +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/changelogs/v3.4.12.md +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/changelogs/v3.4.13.md +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/changelogs/v3.4.14.md +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/changelogs/v3.4.15.md +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/changelogs/v3.4.16.md +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/changelogs/v3.4.17.md +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/changelogs/v3.4.18.md +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/changelogs/v3.4.19.md +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/changelogs/v3.4.20.md +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/changelogs/v3.4.21.md +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/changelogs/v3.4.22.md +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/changelogs/v3.4.23.md +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/changelogs/v3.4.24.md +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/changelogs/v3.4.25.md +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/changelogs/v3.4.26.md +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/changelogs/v3.4.27.md +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/changelogs/v3.4.28.md +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/changelogs/v3.4.29.md +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/changelogs/v3.4.3.md +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/changelogs/v3.4.30.md +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/changelogs/v3.4.31.md +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/changelogs/v3.4.32.md +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/changelogs/v3.4.33.md +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/changelogs/v3.4.35.md +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/changelogs/v3.4.36.md +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/changelogs/v3.4.37.md +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/changelogs/v3.4.38.md +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/changelogs/v3.4.39.md +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/changelogs/v3.4.4.md +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/changelogs/v3.4.5.md +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/changelogs/v3.4.6.md +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/changelogs/v3.4.7.md +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/changelogs/v3.4.8.md +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/changelogs/v3.4.9.md +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/changelogs/v3.5.0.md +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/changelogs/v3.5.1.md +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/changelogs/v3.5.10.md +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/changelogs/v3.5.11.md +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/changelogs/v3.5.12.md +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/changelogs/v3.5.13.md +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/changelogs/v3.5.14.md +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/changelogs/v3.5.15.md +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/changelogs/v3.5.16.md +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/changelogs/v3.5.17.md +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/changelogs/v3.5.18.md +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/changelogs/v3.5.19.md +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/changelogs/v3.5.2.md +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/changelogs/v3.5.20.md +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/changelogs/v3.5.21.md +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/changelogs/v3.5.22.md +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/changelogs/v3.5.23.md +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/changelogs/v3.5.24.md +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/changelogs/v3.5.25.md +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/changelogs/v3.5.26.md +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/changelogs/v3.5.27.md +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/changelogs/v3.5.3.1.md +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/changelogs/v3.5.3.2.md +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/changelogs/v3.5.3.md +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/changelogs/v3.5.4.md +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/changelogs/v3.5.5.md +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/changelogs/v3.5.6.md +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/changelogs/v3.5.7.md +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/changelogs/v3.5.8.md +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/changelogs/v3.5.9.md +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/changelogs/v4.0.0-beta.3.md +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/changelogs/v4.0.0-beta.4.md +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/changelogs/v4.0.0-beta.5.md +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/changelogs/v4.0.0.md +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/changelogs/v4.1.0.md +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/changelogs/v4.1.1.md +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/changelogs/v4.1.2.md +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/changelogs/v4.1.3.md +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/changelogs/v4.1.4.md +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/changelogs/v4.1.5.md +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/changelogs/v4.1.6.md +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/changelogs/v4.1.7.md +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/changelogs/v4.10.0-alpha.1.md +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/changelogs/v4.2.0.md +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/changelogs/v4.2.1.md +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/changelogs/v4.3.0.md +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/changelogs/v4.3.1.md +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/changelogs/v4.3.2.md +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/changelogs/v4.3.3.md +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/changelogs/v4.3.5.md +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/changelogs/v4.5.0.md +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/changelogs/v4.5.1.md +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/changelogs/v4.5.2.md +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/changelogs/v4.5.3.md +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/changelogs/v4.5.4.md +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/changelogs/v4.5.5.md +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/changelogs/v4.5.6.md +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/changelogs/v4.5.7.md +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/changelogs/v4.5.8.md +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/changelogs/v4.6.0.md +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/changelogs/v4.6.1.md +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/changelogs/v4.7.0.md +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/changelogs/v4.7.1.md +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/changelogs/v4.7.3.md +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/changelogs/v4.7.4.md +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/changelogs/v4.8.0.md +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/changelogs/v4.9.0.md +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/changelogs/v4.9.1.md +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/changelogs/v4.9.2.md +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/compose.yml +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/.gitignore +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/LICENSE +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/README.md +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/env.d.ts +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/index.html +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/public/_redirects +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/public/favicon.svg +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/App.vue +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/assets/images/astrbot_banner.png +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/assets/images/astrbot_logo_mini.webp +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/assets/images/icon-no-shadow.svg +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/assets/images/loading-seio.webp +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/assets/images/platform_logos/dingtalk.svg +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/assets/images/platform_logos/discord.svg +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/assets/images/platform_logos/kook.png +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/assets/images/platform_logos/lark.png +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/assets/images/platform_logos/misskey.png +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/assets/images/platform_logos/onebot.png +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/assets/images/platform_logos/qq.png +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/assets/images/platform_logos/satori.png +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/assets/images/platform_logos/slack.svg +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/assets/images/platform_logos/telegram.svg +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/assets/images/platform_logos/vocechat.png +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/assets/images/platform_logos/wechat.png +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/assets/images/platform_logos/wecom.png +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/assets/images/plugin_icon.png +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/assets/images/provider_logos/modelstack.svg +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/assets/images/xmas-hat.png +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/components/ConfirmDialog.vue +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/components/chat/ConfigSelector.vue +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/components/chat/MessageList.vue +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/components/chat/ProviderConfigDialog.vue +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/components/chat/StandaloneChat.vue +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/components/config/AstrBotCoreConfigWrapper.vue +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/components/extension/McpServersSection.vue +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/components/extension/componentPanel/components/CommandFilters.vue +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/components/extension/componentPanel/components/CommandTable.vue +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/components/extension/componentPanel/components/DetailsDialog.vue +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/components/extension/componentPanel/components/RenameDialog.vue +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/components/extension/componentPanel/components/ToolTable.vue +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/components/extension/componentPanel/composables/useCommandActions.ts +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/components/extension/componentPanel/composables/useCommandFilters.ts +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/components/extension/componentPanel/composables/useComponentData.ts +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/components/extension/componentPanel/index.vue +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/components/extension/componentPanel/types.ts +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/components/platform/AddNewPlatform.vue +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/components/provider/AddNewProvider.vue +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/components/provider/ProviderModelsPanel.vue +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/components/shared/AstrBotConfig.vue +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/components/shared/AstrBotConfigV4.vue +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/components/shared/ChangelogDialog.vue +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/components/shared/ConsoleDisplayer.vue +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/components/shared/ExtensionCard.vue +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/components/shared/ItemCard.vue +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/components/shared/ItemCardGrid.vue +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/components/shared/KnowledgeBaseSelector.vue +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/components/shared/LanguageSwitcher.vue +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/components/shared/ListConfigItem.vue +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/components/shared/Logo.vue +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/components/shared/MigrationDialog.vue +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/components/shared/ObjectEditor.vue +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/components/shared/PersonaForm.vue +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/components/shared/PersonaSelector.vue +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/components/shared/PluginSetSelector.vue +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/components/shared/ProviderSelector.vue +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/components/shared/ProxySelector.vue +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/components/shared/ReadmeDialog.vue +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/components/shared/SidebarCustomizer.vue +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/components/shared/StyledMenu.vue +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/components/shared/T2ITemplateEditor.vue +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/components/shared/UninstallConfirmDialog.vue +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/components/shared/WaitingForRestart.vue +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/composables/useConversations.ts +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/composables/useMediaHandling.ts +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/composables/useRecording.ts +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/config.ts +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/i18n/composables.ts +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/i18n/loader.ts +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/i18n/locales/en-US/core/actions.json +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/i18n/locales/en-US/core/common.json +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/i18n/locales/en-US/core/header.json +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/i18n/locales/en-US/core/navigation.json +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/i18n/locales/en-US/core/shared.json +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/i18n/locales/en-US/core/status.json +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/i18n/locales/en-US/features/about.json +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/i18n/locales/en-US/features/alkaid/index.json +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/i18n/locales/en-US/features/alkaid/knowledge-base.json +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/i18n/locales/en-US/features/alkaid/memory.json +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/i18n/locales/en-US/features/auth.json +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/i18n/locales/en-US/features/chart.json +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/i18n/locales/en-US/features/chat.json +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/i18n/locales/en-US/features/command.json +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/i18n/locales/en-US/features/config-metadata.json +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/i18n/locales/en-US/features/config.json +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/i18n/locales/en-US/features/console.json +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/i18n/locales/en-US/features/conversation.json +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/i18n/locales/en-US/features/dashboard.json +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/i18n/locales/en-US/features/extension.json +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/i18n/locales/en-US/features/knowledge-base/detail.json +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/i18n/locales/en-US/features/knowledge-base/document.json +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/i18n/locales/en-US/features/knowledge-base/index.json +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/i18n/locales/en-US/features/migration.json +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/i18n/locales/en-US/features/persona.json +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/i18n/locales/en-US/features/platform.json +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/i18n/locales/en-US/features/session-management.json +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/i18n/locales/en-US/features/settings.json +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/i18n/locales/en-US/features/tool-use.json +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/i18n/locales/en-US/messages/errors.json +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/i18n/locales/en-US/messages/success.json +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/i18n/locales/en-US/messages/validation.json +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/i18n/locales/zh-CN/core/actions.json +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/i18n/locales/zh-CN/core/common.json +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/i18n/locales/zh-CN/core/header.json +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/i18n/locales/zh-CN/core/navigation.json +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/i18n/locales/zh-CN/core/shared.json +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/i18n/locales/zh-CN/core/status.json +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/i18n/locales/zh-CN/features/about.json +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/i18n/locales/zh-CN/features/alkaid/index.json +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/i18n/locales/zh-CN/features/alkaid/knowledge-base.json +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/i18n/locales/zh-CN/features/alkaid/memory.json +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/i18n/locales/zh-CN/features/auth.json +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/i18n/locales/zh-CN/features/chart.json +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/i18n/locales/zh-CN/features/chat.json +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/i18n/locales/zh-CN/features/command.json +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/i18n/locales/zh-CN/features/config-metadata.json +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/i18n/locales/zh-CN/features/config.json +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/i18n/locales/zh-CN/features/console.json +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/i18n/locales/zh-CN/features/conversation.json +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/i18n/locales/zh-CN/features/dashboard.json +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/i18n/locales/zh-CN/features/extension.json +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/i18n/locales/zh-CN/features/knowledge-base/detail.json +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/i18n/locales/zh-CN/features/knowledge-base/document.json +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/i18n/locales/zh-CN/features/knowledge-base/index.json +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/i18n/locales/zh-CN/features/migration.json +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/i18n/locales/zh-CN/features/persona.json +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/i18n/locales/zh-CN/features/platform.json +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/i18n/locales/zh-CN/features/session-management.json +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/i18n/locales/zh-CN/features/settings.json +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/i18n/locales/zh-CN/features/tool-use.json +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/i18n/locales/zh-CN/messages/errors.json +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/i18n/locales/zh-CN/messages/success.json +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/i18n/locales/zh-CN/messages/validation.json +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/i18n/tools/index.ts +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/i18n/translations.ts +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/i18n/types.ts +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/i18n/validator.ts +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/layouts/blank/BlankLayout.vue +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/layouts/full/vertical-header/VerticalHeader.vue +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/layouts/full/vertical-sidebar/NavItem.vue +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/layouts/full/vertical-sidebar/VerticalSidebar.vue +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/layouts/full/vertical-sidebar/sidebarItem.ts +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/main.ts +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/plugins/confirmPlugin.ts +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/plugins/vuetify.ts +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/router/AuthRoutes.ts +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/router/ChatBoxRoutes.ts +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/router/MainRoutes.ts +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/scss/_override.scss +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/scss/_variables.scss +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/scss/components/_VButtons.scss +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/scss/components/_VCard.scss +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/scss/components/_VField.scss +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/scss/components/_VInput.scss +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/scss/components/_VNavigationDrawer.scss +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/scss/components/_VScrollbar.scss +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/scss/components/_VShadow.scss +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/scss/components/_VTabs.scss +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/scss/components/_VTextField.scss +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/scss/layout/_container.scss +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/scss/layout/_sidebar.scss +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/scss/pages/_dashboards.scss +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/scss/style.scss +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/stores/auth.ts +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/stores/common.js +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/stores/customizer.ts +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/stores/toast.js +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/theme/DarkTheme.ts +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/theme/LightTheme.ts +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/types/themeTypes/ThemeType.ts +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/types/vue3-print-nb.d.ts +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/types/vue_tabler_icon.d.ts +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/utils/platformUtils.js +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/utils/providerUtils.js +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/utils/sidebarCustomization.js +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/utils/toast.js +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/views/AboutPage.vue +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/views/AlkaidPage.vue +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/views/ChatBoxPage.vue +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/views/ChatPage.vue +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/views/ConfigPage.vue +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/views/ConsolePage.vue +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/views/ExtensionPage.vue +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/views/PersonaPage.vue +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/views/PlatformPage.vue +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/views/ProviderPage.vue +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/views/SessionManagementPage.vue +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/views/Settings.vue +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/views/alkaid/KnowledgeBase.vue +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/views/alkaid/LongTermMemory.vue +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/views/alkaid/Other.vue +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/views/authentication/auth/LoginPage.vue +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/views/authentication/authForms/AuthLogin.vue +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/views/dashboards/default/DefaultDashboard.vue +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/views/dashboards/default/components/MemoryUsage.vue +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/views/dashboards/default/components/MessageStat.vue +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/views/dashboards/default/components/OnlinePlatform.vue +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/views/dashboards/default/components/OnlineTime.vue +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/views/dashboards/default/components/PlatformStat.vue +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/views/dashboards/default/components/RunningTime.vue +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/views/dashboards/default/components/TotalMessage.vue +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/views/knowledge-base/DocumentDetail.vue +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/views/knowledge-base/KBDetail.vue +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/views/knowledge-base/KBList.vue +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/views/knowledge-base/components/DocumentsTab.vue +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/views/knowledge-base/components/RetrievalTab.vue +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/views/knowledge-base/components/SettingsTab.vue +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/views/knowledge-base/components/TavilyKeyDialog.vue +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/views/knowledge-base/index.vue +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/tsconfig.json +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/tsconfig.vite-config.json +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/vite.config.ts +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/k8s/astrbot/00-namespace.yaml +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/k8s/astrbot/01-pvc.yaml +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/k8s/astrbot/02-deployment.yaml +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/k8s/astrbot/03-service-nodeport.yaml +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/k8s/astrbot/04-service-loadbalancer.yaml +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/k8s/astrbot_with_napcat/00-namespace.yaml +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/k8s/astrbot_with_napcat/01-pvc.yaml +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/k8s/astrbot_with_napcat/02-deployment.yaml +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/k8s/astrbot_with_napcat/03-service-nodeport.yaml +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/k8s/astrbot_with_napcat/04-service-loadbalancer.yaml +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/main.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/packages/astrbot/long_term_memory.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/packages/astrbot/main.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/packages/astrbot/metadata.yaml +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/packages/astrbot/process_llm_request.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/packages/builtin_commands/commands/__init__.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/packages/builtin_commands/commands/admin.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/packages/builtin_commands/commands/alter_cmd.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/packages/builtin_commands/commands/conversation.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/packages/builtin_commands/commands/help.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/packages/builtin_commands/commands/llm.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/packages/builtin_commands/commands/persona.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/packages/builtin_commands/commands/plugin.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/packages/builtin_commands/commands/provider.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/packages/builtin_commands/commands/setunset.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/packages/builtin_commands/commands/sid.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/packages/builtin_commands/commands/t2i.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/packages/builtin_commands/commands/tool.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/packages/builtin_commands/commands/tts.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/packages/builtin_commands/commands/utils/rst_scene.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/packages/builtin_commands/main.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/packages/builtin_commands/metadata.yaml +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/packages/python_interpreter/main.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/packages/python_interpreter/metadata.yaml +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/packages/python_interpreter/requirements.txt +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/packages/python_interpreter/shared/api.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/packages/reminder/main.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/packages/reminder/metadata.yaml +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/packages/session_controller/main.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/packages/session_controller/metadata.yaml +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/packages/web_searcher/engines/__init__.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/packages/web_searcher/engines/bing.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/packages/web_searcher/engines/sogo.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/packages/web_searcher/main.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/packages/web_searcher/metadata.yaml +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/requirements.txt +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/samples/stt_health_check.wav +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/tests/test_dashboard.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/tests/test_kb_import.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/tests/test_main.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/tests/test_plugin_manager.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/tests/test_security_fixes.py +0 -0
- {astrbot-4.10.0a1 → astrbot-4.10.1}/typings/faiss/__init__.pyi +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = "4.10.1"
|
|
@@ -76,12 +76,19 @@ class ToolLoopAgentRunner(BaseAgentRunner[TContext]):
|
|
|
76
76
|
|
|
77
77
|
async def _iter_llm_responses(self) -> T.AsyncGenerator[LLMResponse, None]:
|
|
78
78
|
"""Yields chunks *and* a final LLMResponse."""
|
|
79
|
+
payload = {
|
|
80
|
+
"contexts": self.run_context.messages,
|
|
81
|
+
"func_tool": self.req.func_tool,
|
|
82
|
+
"model": self.req.model, # NOTE: in fact, this arg is None in most cases
|
|
83
|
+
"session_id": self.req.session_id,
|
|
84
|
+
}
|
|
85
|
+
|
|
79
86
|
if self.streaming:
|
|
80
|
-
stream = self.provider.text_chat_stream(**
|
|
87
|
+
stream = self.provider.text_chat_stream(**payload)
|
|
81
88
|
async for resp in stream: # type: ignore
|
|
82
89
|
yield resp
|
|
83
90
|
else:
|
|
84
|
-
yield await self.provider.text_chat(**
|
|
91
|
+
yield await self.provider.text_chat(**payload)
|
|
85
92
|
|
|
86
93
|
@override
|
|
87
94
|
async def step(self):
|
|
@@ -165,7 +172,7 @@ class ToolLoopAgentRunner(BaseAgentRunner[TContext]):
|
|
|
165
172
|
self.run_context.messages.append(
|
|
166
173
|
Message(
|
|
167
174
|
role="assistant",
|
|
168
|
-
content=llm_resp.completion_text or "",
|
|
175
|
+
content=llm_resp.completion_text or "*No response*",
|
|
169
176
|
),
|
|
170
177
|
)
|
|
171
178
|
try:
|
|
@@ -230,6 +237,25 @@ class ToolLoopAgentRunner(BaseAgentRunner[TContext]):
|
|
|
230
237
|
async for resp in self.step():
|
|
231
238
|
yield resp
|
|
232
239
|
|
|
240
|
+
# 如果循环结束了但是 agent 还没有完成,说明是达到了 max_step
|
|
241
|
+
if not self.done():
|
|
242
|
+
logger.warning(
|
|
243
|
+
f"Agent reached max steps ({max_step}), forcing a final response."
|
|
244
|
+
)
|
|
245
|
+
# 拔掉所有工具
|
|
246
|
+
if self.req:
|
|
247
|
+
self.req.func_tool = None
|
|
248
|
+
# 注入提示词
|
|
249
|
+
self.run_context.messages.append(
|
|
250
|
+
Message(
|
|
251
|
+
role="user",
|
|
252
|
+
content="工具调用次数已达到上限,请停止使用工具,并根据已经收集到的信息,对你的任务和发现进行总结,然后直接回复用户。",
|
|
253
|
+
)
|
|
254
|
+
)
|
|
255
|
+
# 再执行最后一步
|
|
256
|
+
async for resp in self.step():
|
|
257
|
+
yield resp
|
|
258
|
+
|
|
233
259
|
async def _handle_function_tools(
|
|
234
260
|
self,
|
|
235
261
|
req: ProviderRequest,
|
|
@@ -376,35 +402,33 @@ class ToolLoopAgentRunner(BaseAgentRunner[TContext]):
|
|
|
376
402
|
),
|
|
377
403
|
)
|
|
378
404
|
|
|
379
|
-
# yield the last tool call result
|
|
380
|
-
if tool_call_result_blocks:
|
|
381
|
-
last_tcr_content = str(tool_call_result_blocks[-1].content)
|
|
382
|
-
yield MessageChain(
|
|
383
|
-
type="tool_call_result",
|
|
384
|
-
chain=[
|
|
385
|
-
Json(
|
|
386
|
-
data={
|
|
387
|
-
"id": func_tool_id,
|
|
388
|
-
"ts": time.time(),
|
|
389
|
-
"result": last_tcr_content,
|
|
390
|
-
}
|
|
391
|
-
)
|
|
392
|
-
],
|
|
393
|
-
)
|
|
394
|
-
|
|
395
405
|
elif resp is None:
|
|
396
406
|
# Tool 直接请求发送消息给用户
|
|
397
407
|
# 这里我们将直接结束 Agent Loop。
|
|
398
408
|
# 发送消息逻辑在 ToolExecutor 中处理了。
|
|
399
409
|
logger.warning(
|
|
400
|
-
f"{func_tool_name}
|
|
410
|
+
f"{func_tool_name} 没有没有返回值或者将结果直接发送给用户。"
|
|
401
411
|
)
|
|
402
412
|
self._transition_state(AgentState.DONE)
|
|
403
413
|
self.stats.end_time = time.time()
|
|
414
|
+
tool_call_result_blocks.append(
|
|
415
|
+
ToolCallMessageSegment(
|
|
416
|
+
role="tool",
|
|
417
|
+
tool_call_id=func_tool_id,
|
|
418
|
+
content="*工具没有返回值或者将结果直接发送给了用户*",
|
|
419
|
+
),
|
|
420
|
+
)
|
|
404
421
|
else:
|
|
405
422
|
# 不应该出现其他类型
|
|
406
423
|
logger.warning(
|
|
407
|
-
f"Tool 返回了不支持的类型: {type(resp)}
|
|
424
|
+
f"Tool 返回了不支持的类型: {type(resp)}。",
|
|
425
|
+
)
|
|
426
|
+
tool_call_result_blocks.append(
|
|
427
|
+
ToolCallMessageSegment(
|
|
428
|
+
role="tool",
|
|
429
|
+
tool_call_id=func_tool_id,
|
|
430
|
+
content="*工具返回了不支持的类型,请告诉用户检查这个工具的定义和实现。*",
|
|
431
|
+
),
|
|
408
432
|
)
|
|
409
433
|
|
|
410
434
|
try:
|
|
@@ -426,6 +450,22 @@ class ToolLoopAgentRunner(BaseAgentRunner[TContext]):
|
|
|
426
450
|
),
|
|
427
451
|
)
|
|
428
452
|
|
|
453
|
+
# yield the last tool call result
|
|
454
|
+
if tool_call_result_blocks:
|
|
455
|
+
last_tcr_content = str(tool_call_result_blocks[-1].content)
|
|
456
|
+
yield MessageChain(
|
|
457
|
+
type="tool_call_result",
|
|
458
|
+
chain=[
|
|
459
|
+
Json(
|
|
460
|
+
data={
|
|
461
|
+
"id": func_tool_id,
|
|
462
|
+
"ts": time.time(),
|
|
463
|
+
"result": last_tcr_content,
|
|
464
|
+
}
|
|
465
|
+
)
|
|
466
|
+
],
|
|
467
|
+
)
|
|
468
|
+
|
|
429
469
|
# 处理函数调用响应
|
|
430
470
|
if tool_call_result_blocks:
|
|
431
471
|
yield tool_call_result_blocks
|
|
@@ -2,6 +2,7 @@ import traceback
|
|
|
2
2
|
from collections.abc import AsyncGenerator
|
|
3
3
|
|
|
4
4
|
from astrbot.core import logger
|
|
5
|
+
from astrbot.core.agent.message import Message
|
|
5
6
|
from astrbot.core.agent.runners.tool_loop_agent_runner import ToolLoopAgentRunner
|
|
6
7
|
from astrbot.core.astr_agent_context import AstrAgentContext
|
|
7
8
|
from astrbot.core.message.components import Json
|
|
@@ -24,8 +25,25 @@ async def run_agent(
|
|
|
24
25
|
) -> AsyncGenerator[MessageChain | None, None]:
|
|
25
26
|
step_idx = 0
|
|
26
27
|
astr_event = agent_runner.run_context.context.event
|
|
27
|
-
while step_idx < max_step:
|
|
28
|
+
while step_idx < max_step + 1:
|
|
28
29
|
step_idx += 1
|
|
30
|
+
|
|
31
|
+
if step_idx == max_step + 1:
|
|
32
|
+
logger.warning(
|
|
33
|
+
f"Agent reached max steps ({max_step}), forcing a final response."
|
|
34
|
+
)
|
|
35
|
+
if not agent_runner.done():
|
|
36
|
+
# 拔掉所有工具
|
|
37
|
+
if agent_runner.req:
|
|
38
|
+
agent_runner.req.func_tool = None
|
|
39
|
+
# 注入提示词
|
|
40
|
+
agent_runner.run_context.messages.append(
|
|
41
|
+
Message(
|
|
42
|
+
role="user",
|
|
43
|
+
content="工具调用次数已达到上限,请停止使用工具,并根据已经收集到的信息,对你的任务和发现进行总结,然后直接回复用户。",
|
|
44
|
+
)
|
|
45
|
+
)
|
|
46
|
+
|
|
29
47
|
try:
|
|
30
48
|
async for resp in agent_runner.step():
|
|
31
49
|
if astr_event.is_stopped():
|
|
@@ -209,12 +209,42 @@ async def call_local_llm_tool(
|
|
|
209
209
|
else:
|
|
210
210
|
raise ValueError(f"未知的方法名: {method_name}")
|
|
211
211
|
except ValueError as e:
|
|
212
|
-
|
|
213
|
-
except TypeError:
|
|
214
|
-
|
|
212
|
+
raise Exception(f"Tool execution ValueError: {e}") from e
|
|
213
|
+
except TypeError as e:
|
|
214
|
+
# 获取函数的签名(包括类型),除了第一个 event/context 参数。
|
|
215
|
+
try:
|
|
216
|
+
sig = inspect.signature(handler)
|
|
217
|
+
params = list(sig.parameters.values())
|
|
218
|
+
# 跳过第一个参数(event 或 context)
|
|
219
|
+
if params:
|
|
220
|
+
params = params[1:]
|
|
221
|
+
|
|
222
|
+
param_strs = []
|
|
223
|
+
for param in params:
|
|
224
|
+
param_str = param.name
|
|
225
|
+
if param.annotation != inspect.Parameter.empty:
|
|
226
|
+
# 获取类型注解的字符串表示
|
|
227
|
+
if isinstance(param.annotation, type):
|
|
228
|
+
type_str = param.annotation.__name__
|
|
229
|
+
else:
|
|
230
|
+
type_str = str(param.annotation)
|
|
231
|
+
param_str += f": {type_str}"
|
|
232
|
+
if param.default != inspect.Parameter.empty:
|
|
233
|
+
param_str += f" = {param.default!r}"
|
|
234
|
+
param_strs.append(param_str)
|
|
235
|
+
|
|
236
|
+
handler_param_str = (
|
|
237
|
+
", ".join(param_strs) if param_strs else "(no additional parameters)"
|
|
238
|
+
)
|
|
239
|
+
except Exception:
|
|
240
|
+
handler_param_str = "(unable to inspect signature)"
|
|
241
|
+
|
|
242
|
+
raise Exception(
|
|
243
|
+
f"Tool handler parameter mismatch, please check the handler definition. Handler parameters: {handler_param_str}"
|
|
244
|
+
) from e
|
|
215
245
|
except Exception as e:
|
|
216
246
|
trace_ = traceback.format_exc()
|
|
217
|
-
|
|
247
|
+
raise Exception(f"Tool execution error: {e}. Traceback: {trace_}") from e
|
|
218
248
|
|
|
219
249
|
if not ready_to_call:
|
|
220
250
|
return
|
|
@@ -321,7 +321,12 @@ class InternalAgentSubStage(Stage):
|
|
|
321
321
|
elif isinstance(req.tool_calls_result, list):
|
|
322
322
|
for tcr in req.tool_calls_result:
|
|
323
323
|
messages.extend(tcr.to_openai_messages())
|
|
324
|
-
messages.append(
|
|
324
|
+
messages.append(
|
|
325
|
+
{
|
|
326
|
+
"role": "assistant",
|
|
327
|
+
"content": llm_response.completion_text or "*No response*",
|
|
328
|
+
}
|
|
329
|
+
)
|
|
325
330
|
messages = list(filter(lambda item: "_no_save" not in item, messages))
|
|
326
331
|
await self.conv_manager.update_conversation(
|
|
327
332
|
event.unified_msg_origin,
|
|
@@ -385,10 +385,25 @@ class AiocqhttpAdapter(Platform):
|
|
|
385
385
|
logger.error(f"获取 @ 用户信息失败: {e},此消息段将被忽略。")
|
|
386
386
|
|
|
387
387
|
message_str += "".join(at_parts)
|
|
388
|
+
elif t == "markdown":
|
|
389
|
+
text = m["data"].get("markdown") or m["data"].get("content", "")
|
|
390
|
+
abm.message.append(Plain(text=text))
|
|
391
|
+
message_str += text
|
|
388
392
|
else:
|
|
389
393
|
for m in m_group:
|
|
390
|
-
|
|
391
|
-
|
|
394
|
+
try:
|
|
395
|
+
if t not in ComponentTypes:
|
|
396
|
+
logger.warning(
|
|
397
|
+
f"不支持的消息段类型,已忽略: {t}, data={m['data']}"
|
|
398
|
+
)
|
|
399
|
+
continue
|
|
400
|
+
a = ComponentTypes[t](**m["data"])
|
|
401
|
+
abm.message.append(a)
|
|
402
|
+
except Exception as e:
|
|
403
|
+
logger.exception(
|
|
404
|
+
f"消息段解析失败: type={t}, data={m['data']}. {e}"
|
|
405
|
+
)
|
|
406
|
+
continue
|
|
392
407
|
|
|
393
408
|
abm.timestamp = int(time.time())
|
|
394
409
|
abm.message_str = message_str
|
|
@@ -138,7 +138,7 @@ class ProviderGoogleGenAI(Provider):
|
|
|
138
138
|
modalities = ["TEXT"]
|
|
139
139
|
|
|
140
140
|
tool_list: list[types.Tool] | None = []
|
|
141
|
-
model_name = payloads.get("model", self.get_model())
|
|
141
|
+
model_name = cast(str, payloads.get("model", self.get_model()))
|
|
142
142
|
native_coderunner = self.provider_config.get("gm_native_coderunner", False)
|
|
143
143
|
native_search = self.provider_config.get("gm_native_search", False)
|
|
144
144
|
url_context = self.provider_config.get("gm_url_context", False)
|
|
@@ -199,7 +199,16 @@ class ProviderGoogleGenAI(Provider):
|
|
|
199
199
|
|
|
200
200
|
# oper thinking config
|
|
201
201
|
thinking_config = None
|
|
202
|
-
if model_name
|
|
202
|
+
if model_name in [
|
|
203
|
+
"gemini-2.5-pro",
|
|
204
|
+
"gemini-2.5-pro-preview",
|
|
205
|
+
"gemini-2.5-flash",
|
|
206
|
+
"gemini-2.5-flash-preview",
|
|
207
|
+
"gemini-2.5-flash-lite",
|
|
208
|
+
"gemini-2.5-flash-lite-preview",
|
|
209
|
+
"gemini-robotics-er-1.5-preview",
|
|
210
|
+
"gemini-live-2.5-flash-preview-native-audio-09-2025",
|
|
211
|
+
]:
|
|
203
212
|
# The thinkingBudget parameter, introduced with the Gemini 2.5 series
|
|
204
213
|
thinking_budget = self.provider_config.get("gm_thinking_config", {}).get(
|
|
205
214
|
"budget", 0
|
|
@@ -208,7 +217,14 @@ class ProviderGoogleGenAI(Provider):
|
|
|
208
217
|
thinking_config = types.ThinkingConfig(
|
|
209
218
|
thinking_budget=thinking_budget,
|
|
210
219
|
)
|
|
211
|
-
elif model_name
|
|
220
|
+
elif model_name in [
|
|
221
|
+
"gemini-3-pro",
|
|
222
|
+
"gemini-3-pro-preview",
|
|
223
|
+
"gemini-3-flash",
|
|
224
|
+
"gemini-3-flash-preview",
|
|
225
|
+
"gemini-3-flash-lite",
|
|
226
|
+
"gemini-3-flash-lite-preview",
|
|
227
|
+
]:
|
|
212
228
|
# The thinkingLevel parameter, recommended for Gemini 3 models and onwards
|
|
213
229
|
# Gemini 2.5 series models don't support thinkingLevel; use thinkingBudget instead.
|
|
214
230
|
thinking_level = self.provider_config.get("gm_thinking_config", {}).get(
|
|
@@ -4,7 +4,7 @@ from collections import defaultdict
|
|
|
4
4
|
from dataclasses import dataclass, field
|
|
5
5
|
from typing import Any
|
|
6
6
|
|
|
7
|
-
from astrbot.core import db_helper
|
|
7
|
+
from astrbot.core import db_helper, logger
|
|
8
8
|
from astrbot.core.db.po import CommandConfig
|
|
9
9
|
from astrbot.core.star.filter.command import CommandFilter
|
|
10
10
|
from astrbot.core.star.filter.command_group import CommandGroupFilter
|
|
@@ -192,12 +192,18 @@ def _collect_descriptors(include_sub_commands: bool) -> list[CommandDescriptor]:
|
|
|
192
192
|
"""收集指令,按需包含子指令。"""
|
|
193
193
|
descriptors: list[CommandDescriptor] = []
|
|
194
194
|
for handler in star_handlers_registry:
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
195
|
+
try:
|
|
196
|
+
desc = _build_descriptor(handler)
|
|
197
|
+
if not desc:
|
|
198
|
+
continue
|
|
199
|
+
if not include_sub_commands and desc.is_sub_command:
|
|
200
|
+
continue
|
|
201
|
+
descriptors.append(desc)
|
|
202
|
+
except Exception as e:
|
|
203
|
+
logger.warning(
|
|
204
|
+
f"解析指令处理函数 {handler.handler_full_name} 失败,跳过该指令。原因: {e!s}"
|
|
205
|
+
)
|
|
199
206
|
continue
|
|
200
|
-
descriptors.append(desc)
|
|
201
207
|
return descriptors
|
|
202
208
|
|
|
203
209
|
|
|
@@ -631,7 +631,11 @@ class PluginManager:
|
|
|
631
631
|
# 清除 pip.main 导致的多余的 logging handlers
|
|
632
632
|
for handler in logging.root.handlers[:]:
|
|
633
633
|
logging.root.removeHandler(handler)
|
|
634
|
-
|
|
634
|
+
try:
|
|
635
|
+
await sync_command_configs()
|
|
636
|
+
except Exception as e:
|
|
637
|
+
logger.error(f"同步指令配置失败: {e!s}")
|
|
638
|
+
logger.error(traceback.format_exc())
|
|
635
639
|
|
|
636
640
|
if not fail_rec:
|
|
637
641
|
return True, None
|
|
@@ -436,7 +436,7 @@ class ChatRoute(Route):
|
|
|
436
436
|
accumulated_parts = []
|
|
437
437
|
accumulated_text = ""
|
|
438
438
|
accumulated_reasoning = ""
|
|
439
|
-
tool_calls = {}
|
|
439
|
+
# tool_calls = {}
|
|
440
440
|
agent_stats = {}
|
|
441
441
|
except BaseException as e:
|
|
442
442
|
logger.exception(f"WebChat stream unexpected error: {e}", exc_info=True)
|
|
@@ -185,23 +185,30 @@ class ConfigRoute(Route):
|
|
|
185
185
|
"/config/provider/list": ("GET", self.get_provider_config_list),
|
|
186
186
|
"/config/provider/model_list": ("GET", self.get_provider_model_list),
|
|
187
187
|
"/config/provider/get_embedding_dim": ("POST", self.get_embedding_dim),
|
|
188
|
-
"/config/provider_sources
|
|
188
|
+
"/config/provider_sources/models": (
|
|
189
189
|
"GET",
|
|
190
190
|
self.get_provider_source_models,
|
|
191
191
|
),
|
|
192
|
-
"/config/provider_sources
|
|
192
|
+
"/config/provider_sources/update": (
|
|
193
193
|
"POST",
|
|
194
194
|
self.update_provider_source,
|
|
195
195
|
),
|
|
196
|
-
"/config/provider_sources
|
|
196
|
+
"/config/provider_sources/delete": (
|
|
197
197
|
"POST",
|
|
198
198
|
self.delete_provider_source,
|
|
199
199
|
),
|
|
200
200
|
}
|
|
201
201
|
self.register_routes()
|
|
202
202
|
|
|
203
|
-
async def delete_provider_source(self
|
|
203
|
+
async def delete_provider_source(self):
|
|
204
204
|
"""删除 provider_source,并更新关联的 providers"""
|
|
205
|
+
post_data = await request.json
|
|
206
|
+
if not post_data:
|
|
207
|
+
return Response().error("缺少配置数据").__dict__
|
|
208
|
+
|
|
209
|
+
provider_source_id = post_data.get("id")
|
|
210
|
+
if not provider_source_id:
|
|
211
|
+
return Response().error("缺少 provider_source_id").__dict__
|
|
205
212
|
|
|
206
213
|
provider_sources = self.config.get("provider_sources", [])
|
|
207
214
|
target_idx = next(
|
|
@@ -235,15 +242,16 @@ class ConfigRoute(Route):
|
|
|
235
242
|
|
|
236
243
|
return Response().ok(message="删除 provider source 成功").__dict__
|
|
237
244
|
|
|
238
|
-
async def update_provider_source(self
|
|
245
|
+
async def update_provider_source(self):
|
|
239
246
|
"""更新或新增 provider_source,并重载关联的 providers"""
|
|
240
|
-
|
|
241
247
|
post_data = await request.json
|
|
242
248
|
if not post_data:
|
|
243
249
|
return Response().error("缺少配置数据").__dict__
|
|
244
250
|
|
|
245
251
|
new_source_config = post_data.get("config") or post_data
|
|
246
|
-
original_id =
|
|
252
|
+
original_id = post_data.get("original_id")
|
|
253
|
+
if not original_id:
|
|
254
|
+
return Response().error("缺少 original_id").__dict__
|
|
247
255
|
|
|
248
256
|
if not isinstance(new_source_config, dict):
|
|
249
257
|
return Response().error("缺少或错误的配置数据").__dict__
|
|
@@ -684,11 +692,15 @@ class ConfigRoute(Route):
|
|
|
684
692
|
logger.error(traceback.format_exc())
|
|
685
693
|
return Response().error(f"获取嵌入维度失败: {e!s}").__dict__
|
|
686
694
|
|
|
687
|
-
async def get_provider_source_models(self
|
|
695
|
+
async def get_provider_source_models(self):
|
|
688
696
|
"""获取指定 provider_source 支持的模型列表
|
|
689
697
|
|
|
690
698
|
本质上会临时初始化一个 Provider 实例,调用 get_models() 获取模型列表,然后销毁实例
|
|
691
699
|
"""
|
|
700
|
+
provider_source_id = request.args.get("source_id")
|
|
701
|
+
if not provider_source_id:
|
|
702
|
+
return Response().error("缺少参数 source_id").__dict__
|
|
703
|
+
|
|
692
704
|
try:
|
|
693
705
|
from astrbot.core.provider.register import provider_cls_map
|
|
694
706
|
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
## What's Changed
|
|
2
|
+
|
|
3
|
+
> 📢 在升级前,请**完整阅读**本次更新日志。
|
|
4
|
+
>
|
|
5
|
+
> **特别提醒:**
|
|
6
|
+
> 1. 该版本为 alpha.2 预览版本。
|
|
7
|
+
> 2. 本次升级**如果再降级**,会由于提供商配置的变更,导致提供商配置错乱,需要手动删除后重新添加。
|
|
8
|
+
> 3. 此版本 WebUI 包体相较上一个版本增加约 **193%**,共约 **9.8 MB**,升级可能会需要一些时间。
|
|
9
|
+
|
|
10
|
+
## alpha.1 -> alpha.2
|
|
11
|
+
|
|
12
|
+
- 修复:“对话数据”页对话轨迹详情显示异常的问题
|
|
13
|
+
- 优化:当 Agent 达到最大步数时的处理。在达到最大步数后,会移除所有请求中的 tools 并告知模型根据上下文进行最终总结。
|
|
14
|
+
- 优化:LLM tools 执行的错误处理,减少工具调用无限循环的问题。
|
|
15
|
+
- 优化:ChatUI 打开模型选择菜单时,会重新获取提供商配置。
|
|
16
|
+
- 优化:ChatUI 新建对话并发送消息后,对话列表页自动选中该对话。
|
|
17
|
+
|
|
18
|
+
## 4.10.0 变化
|
|
19
|
+
|
|
20
|
+
### 重构与优化
|
|
21
|
+
|
|
22
|
+
- 重构 Provider 页面和提供商的配置结构,将 Chat Provider 配置拆分为 Provider Source(提供商源)和 Provider(代表提供商源的各个模型),引入了提供商模型自动发现、模型元数据自动发现的功能,**提供更加便捷的模型添加体验**。
|
|
23
|
+
- ⚠️ 将 “MCP” 页面移动到了 “插件” 页面中
|
|
24
|
+
- ⚠️ 将 “MCP” 页面中的工具管理移动到了 “插件” -> “管理行为” 中。
|
|
25
|
+
- ⚠️ 将 “QQ 个人号(OneBot v11)” 机器人适配器类型更名为 “OneBot v11”,并将其 Logo 更改为 OneBot 的 Logo。
|
|
26
|
+
- ⚠️ AstrBot WebChat 升级为 **AstrBot ChatUI**,入口从边栏修改为顶部(右上角)切换按钮。
|
|
27
|
+
- 优化引用消息的逻辑,减少对模型输入缓存的破坏。
|
|
28
|
+
|
|
29
|
+
### 修复
|
|
30
|
+
|
|
31
|
+
- ‼️ 修复部分情况下,分段回复无法正常分段的问题。
|
|
32
|
+
- 修复处理工具返回结果的过程中,导致一些直接发送图片的工具(如生图工具)无法正确发送到用户的问题。
|
|
33
|
+
- 修复 WebChat 部分情况下,上一条消息文字内容增量到下一条消息的问题。
|
|
34
|
+
|
|
35
|
+
### 新增
|
|
36
|
+
|
|
37
|
+
- 支持**指令管理**,设置指令别名、解决指令冲突、查看指令详情等。入口:“插件” -> “管理行为”。
|
|
38
|
+
- 支持 Google Gemini 3 系列引入的 [Thinking Level](https://ai.google.dev/gemini-api/docs/thinking#thinking-levels) 配置。
|
|
39
|
+
- 支持记录每条 LLM 消息的耗时、Token 使用量、TTFT 数据,以及每次 Agent Loop 的各种统计数据。
|
|
40
|
+
- AstrBot ChatUI 支持查看每条消息的 TTFT、Token 使用量数据。
|
|
41
|
+
- AstrBot ChatUI 支持显示每次工具调用的耗时、参数和响应。
|
|
42
|
+
- AstrBot ChatUI 支持渲染 Mermaid、LateX 内容,优化了 Code Block 的显示效果(使用 Monaco Editor),并减少 DOM 更新于内存占用。(Powered by [Simon-He95/markstream-vue](https://github.com/Simon-He95/markstream-vue))
|
|
43
|
+
- 支持查看 Changelog 历史版本更新日志。
|
|
44
|
+
- 🎄
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
## What's Changed
|
|
2
|
+
|
|
3
|
+
> 📢 在升级前,请**完整阅读**本次更新日志。
|
|
4
|
+
>
|
|
5
|
+
> **特别提醒:**
|
|
6
|
+
> 1. 本次升级**如果再降级**,会由于提供商配置的变更,导致提供商配置错乱,需要手动删除后重新添加。
|
|
7
|
+
> 2. 此版本 WebUI 包体相较上一个版本增加约 **193%**,共约 **9.8 MB**,升级可能会需要一些时间。
|
|
8
|
+
> 3. **升级后请务必确保 WebUI 和 AstrBot Core 版本一致**,否则会产生预期之外的情况。(判断方法:日志中出现 `WebUI 版本已是最新。` 即为一致的版本,`检测到 WebUI 版本 (xxx) 与当前 AstrBot 版本 (xxx) 不符。` 即为不一致的版本。此版本的判断方法也可通查看 WebUI 右上角是否出现 Bot / Chat 的切换按钮控件来判断是否是新版本的 WebUI)。
|
|
9
|
+
> 4. 如果有任何问题请提交 [Issue](https://github.com/AstrBotDevs/AstrBot/issues) 并附带 `v4.10.0` tag。
|
|
10
|
+
|
|
11
|
+
### 重构与优化
|
|
12
|
+
|
|
13
|
+
- 重构 Provider 页面和提供商的配置结构,将 Chat Provider 配置拆分为 Provider Source(提供商源)和 Provider(代表提供商源的各个模型),引入了提供商模型自动发现、模型元数据自动发现的功能,**提供更加便捷的模型添加体验**。
|
|
14
|
+
- ⚠️ 将 “MCP” 页面移动到了 “插件” 页面中
|
|
15
|
+
- ⚠️ 将 “MCP” 页面中的工具管理移动到了 “插件” -> “管理行为” 中。
|
|
16
|
+
- ⚠️ 将 “QQ 个人号(OneBot v11)” 机器人适配器类型更名为 “OneBot v11”,并将其 Logo 更改为 OneBot 的 Logo。
|
|
17
|
+
- ⚠️ AstrBot WebChat 升级为 **AstrBot ChatUI**,入口从边栏修改为顶部(右上角)切换按钮。
|
|
18
|
+
- 优化引用消息的逻辑,减少对模型输入缓存的破坏。
|
|
19
|
+
- 优化当 Agent 达到最大步数时的处理。在达到最大步数后,会移除所有请求中的 tools 并告知模型根据上下文进行最终总结。
|
|
20
|
+
- 优化 LLM tools 执行的错误处理,减少工具调用无限循环的问题。
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
### 修复
|
|
24
|
+
|
|
25
|
+
- ‼️ 修复部分情况下,分段回复无法正常分段的问题。
|
|
26
|
+
- 修复处理工具返回结果的过程中,导致一些直接发送图片的工具(如生图工具)无法正确发送到用户的问题。
|
|
27
|
+
- 修复 WebChat 部分情况下,上一条消息文字内容增量到下一条消息的问题。
|
|
28
|
+
|
|
29
|
+
### 新增
|
|
30
|
+
|
|
31
|
+
- 支持**指令管理**,设置指令别名、解决指令冲突、查看指令详情等。入口:“插件” -> “管理行为”。
|
|
32
|
+
- 支持 Google Gemini 3 系列引入的 [Thinking Level](https://ai.google.dev/gemini-api/docs/thinking#thinking-levels) 配置。
|
|
33
|
+
- 支持记录每条 LLM 消息的耗时、Token 使用量、TTFT 数据,以及每次 Agent Loop 的各种统计数据。
|
|
34
|
+
- AstrBot ChatUI 支持查看每条消息的 TTFT、Token 使用量数据。
|
|
35
|
+
- AstrBot ChatUI 支持显示每次工具调用的耗时、参数和响应。
|
|
36
|
+
- AstrBot ChatUI 支持渲染 Mermaid、LateX 内容,优化了 Code Block 的显示效果(使用 Monaco Editor),并减少 DOM 更新于内存占用。(Powered by [Simon-He95/markstream-vue](https://github.com/Simon-He95/markstream-vue))
|
|
37
|
+
- 支持查看 Changelog 历史版本更新日志。
|
|
38
|
+
- 🎄
|
|
39
|
+
|
|
40
|
+
Merry Christmas!
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
## What's Changed
|
|
2
|
+
|
|
3
|
+
> 📢 在升级前,请**完整阅读**本次更新日志。
|
|
4
|
+
>
|
|
5
|
+
> **特别提醒:**
|
|
6
|
+
> 1. 本次升级**如果再降级**,会由于提供商配置的变更,导致提供商配置错乱,需要手动删除后重新添加。
|
|
7
|
+
> 2. 此版本 WebUI 包体相较上一个版本增加约 **193%**,共约 **9.8 MB**,升级可能会需要一些时间。
|
|
8
|
+
> 3. **升级后请务必确保 WebUI 和 AstrBot Core 版本一致**,否则会产生预期之外的情况。(判断方法:日志中出现 `WebUI 版本已是最新。` 即为一致的版本,`检测到 WebUI 版本 (xxx) 与当前 AstrBot 版本 (xxx) 不符。` 即为不一致的版本。此版本的判断方法也可通查看 WebUI 右上角是否出现 Bot / Chat 的切换按钮控件来判断是否是新版本的 WebUI)。
|
|
9
|
+
> 4. 如果有任何问题请提交 [Issue](https://github.com/AstrBotDevs/AstrBot/issues) 并附带 `v4.10.0` tag。
|
|
10
|
+
|
|
11
|
+
## 4.10.0 -> 4.10.1
|
|
12
|
+
|
|
13
|
+
- fix(core): 修复极少数情况下由于指令管理导致的 AstrBot 启动失败的问题
|
|
14
|
+
- fix(core): 修复当提供商源带有斜杠(“/”)时,无法删除 / 更新提供商源的问题(报错 405)
|
|
15
|
+
- perf(core): 优化 OneBot 适配器的消息段解析逻辑,修复部分情况下无法正确解析消息段的问题
|
|
16
|
+
|
|
17
|
+
### 重构与优化
|
|
18
|
+
|
|
19
|
+
- 重构 Provider 页面和提供商的配置结构,将 Chat Provider 配置拆分为 Provider Source(提供商源)和 Provider(代表提供商源的各个模型),引入了提供商模型自动发现、模型元数据自动发现的功能,**提供更加便捷的模型添加体验**。
|
|
20
|
+
- ⚠️ 将 “MCP” 页面移动到了 “插件” 页面中
|
|
21
|
+
- ⚠️ 将 “MCP” 页面中的工具管理移动到了 “插件” -> “管理行为” 中。
|
|
22
|
+
- ⚠️ 将 “QQ 个人号(OneBot v11)” 机器人适配器类型更名为 “OneBot v11”,并将其 Logo 更改为 OneBot 的 Logo。
|
|
23
|
+
- ⚠️ AstrBot WebChat 升级为 **AstrBot ChatUI**,入口从边栏修改为顶部(右上角)切换按钮。
|
|
24
|
+
- 优化引用消息的逻辑,减少对模型输入缓存的破坏。
|
|
25
|
+
- 优化当 Agent 达到最大步数时的处理。在达到最大步数后,会移除所有请求中的 tools 并告知模型根据上下文进行最终总结。
|
|
26
|
+
- 优化 LLM tools 执行的错误处理,减少工具调用无限循环的问题。
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
### 修复
|
|
30
|
+
|
|
31
|
+
- ‼️ 修复部分情况下,分段回复无法正常分段的问题。
|
|
32
|
+
- 修复处理工具返回结果的过程中,导致一些直接发送图片的工具(如生图工具)无法正确发送到用户的问题。
|
|
33
|
+
- 修复 WebChat 部分情况下,上一条消息文字内容增量到下一条消息的问题。
|
|
34
|
+
|
|
35
|
+
### 新增
|
|
36
|
+
|
|
37
|
+
- 支持**指令管理**,设置指令别名、解决指令冲突、查看指令详情等。入口:“插件” -> “管理行为”。
|
|
38
|
+
- 支持 Google Gemini 3 系列引入的 [Thinking Level](https://ai.google.dev/gemini-api/docs/thinking#thinking-levels) 配置。
|
|
39
|
+
- 支持记录每条 LLM 消息的耗时、Token 使用量、TTFT 数据,以及每次 Agent Loop 的各种统计数据。
|
|
40
|
+
- AstrBot ChatUI 支持查看每条消息的 TTFT、Token 使用量数据。
|
|
41
|
+
- AstrBot ChatUI 支持显示每次工具调用的耗时、参数和响应。
|
|
42
|
+
- AstrBot ChatUI 支持渲染 Mermaid、LateX 内容,优化了 Code Block 的显示效果(使用 Monaco Editor),并减少 DOM 更新于内存占用。(Powered by [Simon-He95/markstream-vue](https://github.com/Simon-He95/markstream-vue))
|
|
43
|
+
- 支持查看 Changelog 历史版本更新日志。
|
|
44
|
+
- 🎄
|
|
45
|
+
|
|
46
|
+
Merry Christmas!
|
|
@@ -310,7 +310,7 @@ async function handleSelectConversation(sessionIds: string[]) {
|
|
|
310
310
|
isLoadingMessages.value = true;
|
|
311
311
|
|
|
312
312
|
try {
|
|
313
|
-
await getSessionMsg(sessionIds[0]
|
|
313
|
+
await getSessionMsg(sessionIds[0]);
|
|
314
314
|
} finally {
|
|
315
315
|
isLoadingMessages.value = false;
|
|
316
316
|
}
|
|
@@ -1,7 +1,15 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<div class="input-area fade-in">
|
|
3
3
|
<div class="input-container"
|
|
4
|
-
style="
|
|
4
|
+
:style="{
|
|
5
|
+
width: '85%',
|
|
6
|
+
maxWidth: '900px',
|
|
7
|
+
margin: '0 auto',
|
|
8
|
+
border: isDark ? 'none' : '1px solid #e0e0e0',
|
|
9
|
+
borderRadius: '24px',
|
|
10
|
+
boxShadow: isDark ? 'none' : '0px 2px 2px rgba(0, 0, 0, 0.1)',
|
|
11
|
+
backgroundColor: isDark ? '#2d2d2d' : 'transparent'
|
|
12
|
+
}">
|
|
5
13
|
<!-- 引用预览区 -->
|
|
6
14
|
<div class="reply-preview" v-if="props.replyTo">
|
|
7
15
|
<div class="reply-content">
|
|
@@ -86,6 +94,7 @@
|
|
|
86
94
|
<script setup lang="ts">
|
|
87
95
|
import { ref, computed, onMounted, onBeforeUnmount } from 'vue';
|
|
88
96
|
import { useModuleI18n } from '@/i18n/composables';
|
|
97
|
+
import { useCustomizerStore } from '@/stores/customizer';
|
|
89
98
|
import ConfigSelector from './ConfigSelector.vue';
|
|
90
99
|
import ProviderModelMenu from './ProviderModelMenu.vue';
|
|
91
100
|
import type { Session } from '@/composables/useSessions';
|
|
@@ -140,6 +149,7 @@ const emit = defineEmits<{
|
|
|
140
149
|
}>();
|
|
141
150
|
|
|
142
151
|
const { tm } = useModuleI18n('features/chat');
|
|
152
|
+
const isDark = computed(() => useCustomizerStore().uiTheme === 'PurpleThemeDark');
|
|
143
153
|
|
|
144
154
|
const inputField = ref<HTMLTextAreaElement | null>(null);
|
|
145
155
|
const imageInputRef = ref<HTMLInputElement | null>(null);
|
|
@@ -261,7 +271,7 @@ defineExpose({
|
|
|
261
271
|
<style scoped>
|
|
262
272
|
.input-area {
|
|
263
273
|
padding: 16px;
|
|
264
|
-
background-color:
|
|
274
|
+
background-color: transparent;
|
|
265
275
|
position: relative;
|
|
266
276
|
border-top: 1px solid var(--v-theme-border);
|
|
267
277
|
flex-shrink: 0;
|
|
@@ -35,7 +35,8 @@
|
|
|
35
35
|
@update:selected="$emit('selectConversation', $event)">
|
|
36
36
|
<v-list-item v-for="item in sessions" :key="item.session_id" :value="item.session_id"
|
|
37
37
|
rounded="lg" class="conversation-item" active-color="secondary">
|
|
38
|
-
<v-list-item-title v-if="!sidebarCollapsed || isMobile" class="conversation-title"
|
|
38
|
+
<v-list-item-title v-if="!sidebarCollapsed || isMobile" class="conversation-title"
|
|
39
|
+
:style="{ color: isDark ? '#ffffff' : '#000000' }">
|
|
39
40
|
{{ item.display_name || tm('conversation.newConversation') }}
|
|
40
41
|
</v-list-item-title>
|
|
41
42
|
<!-- <v-list-item-subtitle v-if="!sidebarCollapsed || isMobile" class="timestamp">
|