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.
Files changed (710) hide show
  1. {astrbot-4.10.0a1 → astrbot-4.10.1}/PKG-INFO +1 -1
  2. astrbot-4.10.1/astrbot/cli/__init__.py +1 -0
  3. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/agent/runners/tool_loop_agent_runner.py +61 -21
  4. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/astr_agent_run_util.py +19 -1
  5. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/astr_agent_tool_exec.py +34 -4
  6. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/config/default.py +1 -1
  7. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/pipeline/process_stage/method/agent_sub_stages/internal.py +6 -1
  8. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/platform/sources/aiocqhttp/aiocqhttp_platform_adapter.py +17 -2
  9. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/provider/sources/gemini_source.py +19 -3
  10. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/star/command_management.py +12 -6
  11. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/star/star_manager.py +5 -1
  12. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/dashboard/routes/chat.py +1 -1
  13. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/dashboard/routes/config.py +20 -8
  14. astrbot-4.10.1/changelogs/v4.10.0-alpha.2.md +44 -0
  15. astrbot-4.10.1/changelogs/v4.10.0.md +40 -0
  16. astrbot-4.10.1/changelogs/v4.10.1.md +46 -0
  17. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/components/chat/Chat.vue +1 -1
  18. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/components/chat/ChatInput.vue +12 -2
  19. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/components/chat/ConversationSidebar.vue +2 -1
  20. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/components/chat/ProviderModelMenu.vue +14 -2
  21. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/components/provider/ProviderSourcesPanel.vue +7 -0
  22. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/composables/useMessages.ts +6 -2
  23. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/composables/useProviderSources.ts +5 -3
  24. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/composables/useSessions.ts +11 -1
  25. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/i18n/locales/en-US/features/provider.json +1 -1
  26. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/i18n/locales/zh-CN/features/provider.json +1 -1
  27. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/layouts/full/FullLayout.vue +12 -0
  28. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/router/index.ts +11 -0
  29. astrbot-4.10.1/dashboard/src/stores/routerLoading.ts +60 -0
  30. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/views/ConversationPage.vue +63 -7
  31. {astrbot-4.10.0a1 → astrbot-4.10.1}/pyproject.toml +1 -1
  32. astrbot-4.10.1/tests/test_tool_loop_agent_runner.py +326 -0
  33. astrbot-4.10.0a1/astrbot/cli/__init__.py +0 -1
  34. {astrbot-4.10.0a1 → astrbot-4.10.1}/.dockerignore +0 -0
  35. {astrbot-4.10.0a1 → astrbot-4.10.1}/.github/FUNDING.yml +0 -0
  36. {astrbot-4.10.0a1 → astrbot-4.10.1}/.github/ISSUE_TEMPLATE/PLUGIN_PUBLISH.yml +0 -0
  37. {astrbot-4.10.0a1 → astrbot-4.10.1}/.github/ISSUE_TEMPLATE/bug-report.yml +0 -0
  38. {astrbot-4.10.0a1 → astrbot-4.10.1}/.github/ISSUE_TEMPLATE/feature-request.yml +0 -0
  39. {astrbot-4.10.0a1 → astrbot-4.10.1}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
  40. {astrbot-4.10.0a1 → astrbot-4.10.1}/.github/auto_assign.yml +0 -0
  41. {astrbot-4.10.0a1 → astrbot-4.10.1}/.github/copilot-instructions.md +0 -0
  42. {astrbot-4.10.0a1 → astrbot-4.10.1}/.github/dependabot.yml +0 -0
  43. {astrbot-4.10.0a1 → astrbot-4.10.1}/.github/workflows/auto_release.yml +0 -0
  44. {astrbot-4.10.0a1 → astrbot-4.10.1}/.github/workflows/code-format.yml +0 -0
  45. {astrbot-4.10.0a1 → astrbot-4.10.1}/.github/workflows/codeql.yml +0 -0
  46. {astrbot-4.10.0a1 → astrbot-4.10.1}/.github/workflows/coverage_test.yml +0 -0
  47. {astrbot-4.10.0a1 → astrbot-4.10.1}/.github/workflows/dashboard_ci.yml +0 -0
  48. {astrbot-4.10.0a1 → astrbot-4.10.1}/.github/workflows/docker-image.yml +0 -0
  49. {astrbot-4.10.0a1 → astrbot-4.10.1}/.github/workflows/smoke_test.yml +0 -0
  50. {astrbot-4.10.0a1 → astrbot-4.10.1}/.github/workflows/stale.yml +0 -0
  51. {astrbot-4.10.0a1 → astrbot-4.10.1}/.gitignore +0 -0
  52. {astrbot-4.10.0a1 → astrbot-4.10.1}/.pre-commit-config.yaml +0 -0
  53. {astrbot-4.10.0a1 → astrbot-4.10.1}/.python-version +0 -0
  54. {astrbot-4.10.0a1 → astrbot-4.10.1}/CODE_OF_CONDUCT.md +0 -0
  55. {astrbot-4.10.0a1 → astrbot-4.10.1}/CONTRIBUTING.md +0 -0
  56. {astrbot-4.10.0a1 → astrbot-4.10.1}/Dockerfile +0 -0
  57. {astrbot-4.10.0a1 → astrbot-4.10.1}/LICENSE +0 -0
  58. {astrbot-4.10.0a1 → astrbot-4.10.1}/README.md +0 -0
  59. {astrbot-4.10.0a1 → astrbot-4.10.1}/README_en.md +0 -0
  60. {astrbot-4.10.0a1 → astrbot-4.10.1}/README_fr.md +0 -0
  61. {astrbot-4.10.0a1 → astrbot-4.10.1}/README_ja.md +0 -0
  62. {astrbot-4.10.0a1 → astrbot-4.10.1}/README_ru.md +0 -0
  63. {astrbot-4.10.0a1 → astrbot-4.10.1}/README_zh-TW.md +0 -0
  64. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/__init__.py +0 -0
  65. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/api/__init__.py +0 -0
  66. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/api/all.py +0 -0
  67. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/api/event/__init__.py +0 -0
  68. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/api/event/filter/__init__.py +0 -0
  69. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/api/message_components.py +0 -0
  70. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/api/platform/__init__.py +0 -0
  71. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/api/provider/__init__.py +0 -0
  72. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/api/star/__init__.py +0 -0
  73. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/api/util/__init__.py +0 -0
  74. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/cli/__main__.py +0 -0
  75. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/cli/commands/__init__.py +0 -0
  76. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/cli/commands/cmd_conf.py +0 -0
  77. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/cli/commands/cmd_init.py +0 -0
  78. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/cli/commands/cmd_plug.py +0 -0
  79. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/cli/commands/cmd_run.py +0 -0
  80. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/cli/utils/__init__.py +0 -0
  81. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/cli/utils/basic.py +0 -0
  82. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/cli/utils/plugin.py +0 -0
  83. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/cli/utils/version_comparator.py +0 -0
  84. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/__init__.py +0 -0
  85. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/agent/agent.py +0 -0
  86. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/agent/handoff.py +0 -0
  87. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/agent/hooks.py +0 -0
  88. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/agent/mcp_client.py +0 -0
  89. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/agent/message.py +0 -0
  90. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/agent/response.py +0 -0
  91. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/agent/run_context.py +0 -0
  92. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/agent/runners/__init__.py +0 -0
  93. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/agent/runners/base.py +0 -0
  94. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/agent/runners/coze/coze_agent_runner.py +0 -0
  95. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/agent/runners/coze/coze_api_client.py +0 -0
  96. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/agent/runners/dashscope/dashscope_agent_runner.py +0 -0
  97. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/agent/runners/dify/dify_agent_runner.py +0 -0
  98. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/agent/runners/dify/dify_api_client.py +0 -0
  99. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/agent/tool.py +0 -0
  100. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/agent/tool_executor.py +0 -0
  101. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/astr_agent_context.py +0 -0
  102. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/astr_agent_hooks.py +0 -0
  103. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/astrbot_config_mgr.py +0 -0
  104. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/config/__init__.py +0 -0
  105. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/config/astrbot_config.py +0 -0
  106. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/config/i18n_utils.py +0 -0
  107. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/conversation_mgr.py +0 -0
  108. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/core_lifecycle.py +0 -0
  109. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/db/__init__.py +0 -0
  110. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/db/migration/helper.py +0 -0
  111. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/db/migration/migra_3_to_4.py +0 -0
  112. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/db/migration/migra_45_to_46.py +0 -0
  113. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/db/migration/migra_webchat_session.py +0 -0
  114. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/db/migration/shared_preferences_v3.py +0 -0
  115. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/db/migration/sqlite_v3.py +0 -0
  116. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/db/po.py +0 -0
  117. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/db/sqlite.py +0 -0
  118. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/db/vec_db/base.py +0 -0
  119. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/db/vec_db/faiss_impl/__init__.py +0 -0
  120. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/db/vec_db/faiss_impl/document_storage.py +0 -0
  121. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/db/vec_db/faiss_impl/embedding_storage.py +0 -0
  122. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/db/vec_db/faiss_impl/sqlite_init.sql +0 -0
  123. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/db/vec_db/faiss_impl/vec_db.py +0 -0
  124. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/event_bus.py +0 -0
  125. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/exceptions.py +0 -0
  126. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/file_token_service.py +0 -0
  127. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/initial_loader.py +0 -0
  128. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/knowledge_base/chunking/__init__.py +0 -0
  129. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/knowledge_base/chunking/base.py +0 -0
  130. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/knowledge_base/chunking/fixed_size.py +0 -0
  131. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/knowledge_base/chunking/recursive.py +0 -0
  132. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/knowledge_base/kb_db_sqlite.py +0 -0
  133. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/knowledge_base/kb_helper.py +0 -0
  134. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/knowledge_base/kb_mgr.py +0 -0
  135. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/knowledge_base/models.py +0 -0
  136. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/knowledge_base/parsers/__init__.py +0 -0
  137. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/knowledge_base/parsers/base.py +0 -0
  138. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/knowledge_base/parsers/markitdown_parser.py +0 -0
  139. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/knowledge_base/parsers/pdf_parser.py +0 -0
  140. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/knowledge_base/parsers/text_parser.py +0 -0
  141. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/knowledge_base/parsers/url_parser.py +0 -0
  142. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/knowledge_base/parsers/util.py +0 -0
  143. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/knowledge_base/prompts.py +0 -0
  144. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/knowledge_base/retrieval/__init__.py +0 -0
  145. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/knowledge_base/retrieval/hit_stopwords.txt +0 -0
  146. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/knowledge_base/retrieval/manager.py +0 -0
  147. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/knowledge_base/retrieval/rank_fusion.py +0 -0
  148. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/knowledge_base/retrieval/sparse_retriever.py +0 -0
  149. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/log.py +0 -0
  150. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/message/components.py +0 -0
  151. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/message/message_event_result.py +0 -0
  152. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/persona_mgr.py +0 -0
  153. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/pipeline/__init__.py +0 -0
  154. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/pipeline/content_safety_check/stage.py +0 -0
  155. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/pipeline/content_safety_check/strategies/__init__.py +0 -0
  156. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/pipeline/content_safety_check/strategies/baidu_aip.py +0 -0
  157. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/pipeline/content_safety_check/strategies/keywords.py +0 -0
  158. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/pipeline/content_safety_check/strategies/strategy.py +0 -0
  159. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/pipeline/context.py +0 -0
  160. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/pipeline/context_utils.py +0 -0
  161. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/pipeline/preprocess_stage/stage.py +0 -0
  162. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/pipeline/process_stage/method/agent_request.py +0 -0
  163. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/pipeline/process_stage/method/agent_sub_stages/third_party.py +0 -0
  164. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/pipeline/process_stage/method/star_request.py +0 -0
  165. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/pipeline/process_stage/stage.py +0 -0
  166. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/pipeline/process_stage/utils.py +0 -0
  167. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/pipeline/rate_limit_check/stage.py +0 -0
  168. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/pipeline/respond/stage.py +0 -0
  169. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/pipeline/result_decorate/stage.py +0 -0
  170. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/pipeline/scheduler.py +0 -0
  171. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/pipeline/session_status_check/stage.py +0 -0
  172. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/pipeline/stage.py +0 -0
  173. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/pipeline/waking_check/stage.py +0 -0
  174. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/pipeline/whitelist_check/stage.py +0 -0
  175. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/platform/__init__.py +0 -0
  176. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/platform/astr_message_event.py +0 -0
  177. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/platform/astrbot_message.py +0 -0
  178. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/platform/manager.py +0 -0
  179. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/platform/message_session.py +0 -0
  180. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/platform/message_type.py +0 -0
  181. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/platform/platform.py +0 -0
  182. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/platform/platform_metadata.py +0 -0
  183. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/platform/register.py +0 -0
  184. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/platform/sources/aiocqhttp/aiocqhttp_message_event.py +0 -0
  185. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/platform/sources/dingtalk/dingtalk_adapter.py +0 -0
  186. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/platform/sources/dingtalk/dingtalk_event.py +0 -0
  187. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/platform/sources/discord/client.py +0 -0
  188. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/platform/sources/discord/components.py +0 -0
  189. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/platform/sources/discord/discord_platform_adapter.py +0 -0
  190. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/platform/sources/discord/discord_platform_event.py +0 -0
  191. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/platform/sources/lark/lark_adapter.py +0 -0
  192. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/platform/sources/lark/lark_event.py +0 -0
  193. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/platform/sources/lark/server.py +0 -0
  194. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/platform/sources/misskey/misskey_adapter.py +0 -0
  195. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/platform/sources/misskey/misskey_api.py +0 -0
  196. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/platform/sources/misskey/misskey_event.py +0 -0
  197. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/platform/sources/misskey/misskey_utils.py +0 -0
  198. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/platform/sources/qqofficial/qqofficial_message_event.py +0 -0
  199. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/platform/sources/qqofficial/qqofficial_platform_adapter.py +0 -0
  200. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/platform/sources/qqofficial_webhook/qo_webhook_adapter.py +0 -0
  201. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/platform/sources/qqofficial_webhook/qo_webhook_event.py +0 -0
  202. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/platform/sources/qqofficial_webhook/qo_webhook_server.py +0 -0
  203. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/platform/sources/satori/satori_adapter.py +0 -0
  204. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/platform/sources/satori/satori_event.py +0 -0
  205. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/platform/sources/slack/client.py +0 -0
  206. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/platform/sources/slack/slack_adapter.py +0 -0
  207. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/platform/sources/slack/slack_event.py +0 -0
  208. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/platform/sources/telegram/tg_adapter.py +0 -0
  209. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/platform/sources/telegram/tg_event.py +0 -0
  210. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/platform/sources/webchat/webchat_adapter.py +0 -0
  211. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/platform/sources/webchat/webchat_event.py +0 -0
  212. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/platform/sources/webchat/webchat_queue_mgr.py +0 -0
  213. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/platform/sources/wechatpadpro/wechatpadpro_adapter.py +0 -0
  214. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/platform/sources/wechatpadpro/wechatpadpro_message_event.py +0 -0
  215. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/platform/sources/wechatpadpro/xml_data_parser.py +0 -0
  216. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/platform/sources/wecom/wecom_adapter.py +0 -0
  217. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/platform/sources/wecom/wecom_event.py +0 -0
  218. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/platform/sources/wecom/wecom_kf.py +0 -0
  219. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/platform/sources/wecom/wecom_kf_message.py +0 -0
  220. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/platform/sources/wecom_ai_bot/WXBizJsonMsgCrypt.py +0 -0
  221. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/platform/sources/wecom_ai_bot/__init__.py +0 -0
  222. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/platform/sources/wecom_ai_bot/ierror.py +0 -0
  223. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/platform/sources/wecom_ai_bot/wecomai_adapter.py +0 -0
  224. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/platform/sources/wecom_ai_bot/wecomai_api.py +0 -0
  225. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/platform/sources/wecom_ai_bot/wecomai_event.py +0 -0
  226. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/platform/sources/wecom_ai_bot/wecomai_queue_mgr.py +0 -0
  227. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/platform/sources/wecom_ai_bot/wecomai_server.py +0 -0
  228. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/platform/sources/wecom_ai_bot/wecomai_utils.py +0 -0
  229. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/platform/sources/weixin_official_account/weixin_offacc_adapter.py +0 -0
  230. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/platform/sources/weixin_official_account/weixin_offacc_event.py +0 -0
  231. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/platform_message_history_mgr.py +0 -0
  232. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/provider/__init__.py +0 -0
  233. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/provider/entites.py +0 -0
  234. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/provider/entities.py +0 -0
  235. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/provider/func_tool_manager.py +0 -0
  236. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/provider/manager.py +0 -0
  237. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/provider/provider.py +0 -0
  238. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/provider/register.py +0 -0
  239. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/provider/sources/anthropic_source.py +0 -0
  240. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/provider/sources/azure_tts_source.py +0 -0
  241. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/provider/sources/bailian_rerank_source.py +0 -0
  242. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/provider/sources/dashscope_tts.py +0 -0
  243. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/provider/sources/edge_tts_source.py +0 -0
  244. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/provider/sources/fishaudio_tts_api_source.py +0 -0
  245. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/provider/sources/gemini_embedding_source.py +0 -0
  246. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/provider/sources/gemini_tts_source.py +0 -0
  247. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/provider/sources/groq_source.py +0 -0
  248. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/provider/sources/gsv_selfhosted_source.py +0 -0
  249. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/provider/sources/gsvi_tts_source.py +0 -0
  250. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/provider/sources/minimax_tts_api_source.py +0 -0
  251. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/provider/sources/openai_embedding_source.py +0 -0
  252. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/provider/sources/openai_source.py +0 -0
  253. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/provider/sources/openai_tts_api_source.py +0 -0
  254. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/provider/sources/sensevoice_selfhosted_source.py +0 -0
  255. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/provider/sources/vllm_rerank_source.py +0 -0
  256. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/provider/sources/volcengine_tts.py +0 -0
  257. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/provider/sources/whisper_api_source.py +0 -0
  258. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/provider/sources/whisper_selfhosted_source.py +0 -0
  259. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/provider/sources/xinference_rerank_source.py +0 -0
  260. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/provider/sources/xinference_stt_provider.py +0 -0
  261. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/provider/sources/zhipu_source.py +0 -0
  262. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/star/README.md +0 -0
  263. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/star/__init__.py +0 -0
  264. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/star/config.py +0 -0
  265. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/star/context.py +0 -0
  266. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/star/filter/__init__.py +0 -0
  267. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/star/filter/command.py +0 -0
  268. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/star/filter/command_group.py +0 -0
  269. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/star/filter/custom_filter.py +0 -0
  270. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/star/filter/event_message_type.py +0 -0
  271. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/star/filter/permission.py +0 -0
  272. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/star/filter/platform_adapter_type.py +0 -0
  273. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/star/filter/regex.py +0 -0
  274. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/star/register/__init__.py +0 -0
  275. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/star/register/star.py +0 -0
  276. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/star/register/star_handler.py +0 -0
  277. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/star/session_llm_manager.py +0 -0
  278. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/star/session_plugin_manager.py +0 -0
  279. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/star/star.py +0 -0
  280. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/star/star_handler.py +0 -0
  281. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/star/star_tools.py +0 -0
  282. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/star/updator.py +0 -0
  283. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/umop_config_router.py +0 -0
  284. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/updator.py +0 -0
  285. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/utils/astrbot_path.py +0 -0
  286. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/utils/command_parser.py +0 -0
  287. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/utils/file_extract.py +0 -0
  288. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/utils/io.py +0 -0
  289. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/utils/llm_metadata.py +0 -0
  290. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/utils/log_pipe.py +0 -0
  291. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/utils/metrics.py +0 -0
  292. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/utils/migra_helper.py +0 -0
  293. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/utils/path_util.py +0 -0
  294. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/utils/pip_installer.py +0 -0
  295. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/utils/plugin_kv_store.py +0 -0
  296. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/utils/session_lock.py +0 -0
  297. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/utils/session_waiter.py +0 -0
  298. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/utils/shared_preferences.py +0 -0
  299. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/utils/t2i/__init__.py +0 -0
  300. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/utils/t2i/local_strategy.py +0 -0
  301. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/utils/t2i/network_strategy.py +0 -0
  302. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/utils/t2i/renderer.py +0 -0
  303. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/utils/t2i/template/astrbot_powershell.html +0 -0
  304. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/utils/t2i/template/base.html +0 -0
  305. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/utils/t2i/template_manager.py +0 -0
  306. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/utils/tencent_record_helper.py +0 -0
  307. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/utils/version_comparator.py +0 -0
  308. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/utils/webhook_utils.py +0 -0
  309. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/core/zip_updator.py +0 -0
  310. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/dashboard/routes/__init__.py +0 -0
  311. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/dashboard/routes/auth.py +0 -0
  312. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/dashboard/routes/command.py +0 -0
  313. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/dashboard/routes/conversation.py +0 -0
  314. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/dashboard/routes/file.py +0 -0
  315. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/dashboard/routes/knowledge_base.py +0 -0
  316. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/dashboard/routes/log.py +0 -0
  317. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/dashboard/routes/persona.py +0 -0
  318. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/dashboard/routes/platform.py +0 -0
  319. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/dashboard/routes/plugin.py +0 -0
  320. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/dashboard/routes/route.py +0 -0
  321. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/dashboard/routes/session_management.py +0 -0
  322. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/dashboard/routes/stat.py +0 -0
  323. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/dashboard/routes/static_file.py +0 -0
  324. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/dashboard/routes/t2i.py +0 -0
  325. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/dashboard/routes/tools.py +0 -0
  326. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/dashboard/routes/update.py +0 -0
  327. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/dashboard/server.py +0 -0
  328. {astrbot-4.10.0a1 → astrbot-4.10.1}/astrbot/dashboard/utils.py +0 -0
  329. {astrbot-4.10.0a1 → astrbot-4.10.1}/changelogs/v3.4.0.md +0 -0
  330. {astrbot-4.10.0a1 → astrbot-4.10.1}/changelogs/v3.4.1.md +0 -0
  331. {astrbot-4.10.0a1 → astrbot-4.10.1}/changelogs/v3.4.10.md +0 -0
  332. {astrbot-4.10.0a1 → astrbot-4.10.1}/changelogs/v3.4.11.md +0 -0
  333. {astrbot-4.10.0a1 → astrbot-4.10.1}/changelogs/v3.4.12.md +0 -0
  334. {astrbot-4.10.0a1 → astrbot-4.10.1}/changelogs/v3.4.13.md +0 -0
  335. {astrbot-4.10.0a1 → astrbot-4.10.1}/changelogs/v3.4.14.md +0 -0
  336. {astrbot-4.10.0a1 → astrbot-4.10.1}/changelogs/v3.4.15.md +0 -0
  337. {astrbot-4.10.0a1 → astrbot-4.10.1}/changelogs/v3.4.16.md +0 -0
  338. {astrbot-4.10.0a1 → astrbot-4.10.1}/changelogs/v3.4.17.md +0 -0
  339. {astrbot-4.10.0a1 → astrbot-4.10.1}/changelogs/v3.4.18.md +0 -0
  340. {astrbot-4.10.0a1 → astrbot-4.10.1}/changelogs/v3.4.19.md +0 -0
  341. {astrbot-4.10.0a1 → astrbot-4.10.1}/changelogs/v3.4.20.md +0 -0
  342. {astrbot-4.10.0a1 → astrbot-4.10.1}/changelogs/v3.4.21.md +0 -0
  343. {astrbot-4.10.0a1 → astrbot-4.10.1}/changelogs/v3.4.22.md +0 -0
  344. {astrbot-4.10.0a1 → astrbot-4.10.1}/changelogs/v3.4.23.md +0 -0
  345. {astrbot-4.10.0a1 → astrbot-4.10.1}/changelogs/v3.4.24.md +0 -0
  346. {astrbot-4.10.0a1 → astrbot-4.10.1}/changelogs/v3.4.25.md +0 -0
  347. {astrbot-4.10.0a1 → astrbot-4.10.1}/changelogs/v3.4.26.md +0 -0
  348. {astrbot-4.10.0a1 → astrbot-4.10.1}/changelogs/v3.4.27.md +0 -0
  349. {astrbot-4.10.0a1 → astrbot-4.10.1}/changelogs/v3.4.28.md +0 -0
  350. {astrbot-4.10.0a1 → astrbot-4.10.1}/changelogs/v3.4.29.md +0 -0
  351. {astrbot-4.10.0a1 → astrbot-4.10.1}/changelogs/v3.4.3.md +0 -0
  352. {astrbot-4.10.0a1 → astrbot-4.10.1}/changelogs/v3.4.30.md +0 -0
  353. {astrbot-4.10.0a1 → astrbot-4.10.1}/changelogs/v3.4.31.md +0 -0
  354. {astrbot-4.10.0a1 → astrbot-4.10.1}/changelogs/v3.4.32.md +0 -0
  355. {astrbot-4.10.0a1 → astrbot-4.10.1}/changelogs/v3.4.33.md +0 -0
  356. {astrbot-4.10.0a1 → astrbot-4.10.1}/changelogs/v3.4.35.md +0 -0
  357. {astrbot-4.10.0a1 → astrbot-4.10.1}/changelogs/v3.4.36.md +0 -0
  358. {astrbot-4.10.0a1 → astrbot-4.10.1}/changelogs/v3.4.37.md +0 -0
  359. {astrbot-4.10.0a1 → astrbot-4.10.1}/changelogs/v3.4.38.md +0 -0
  360. {astrbot-4.10.0a1 → astrbot-4.10.1}/changelogs/v3.4.39.md +0 -0
  361. {astrbot-4.10.0a1 → astrbot-4.10.1}/changelogs/v3.4.4.md +0 -0
  362. {astrbot-4.10.0a1 → astrbot-4.10.1}/changelogs/v3.4.5.md +0 -0
  363. {astrbot-4.10.0a1 → astrbot-4.10.1}/changelogs/v3.4.6.md +0 -0
  364. {astrbot-4.10.0a1 → astrbot-4.10.1}/changelogs/v3.4.7.md +0 -0
  365. {astrbot-4.10.0a1 → astrbot-4.10.1}/changelogs/v3.4.8.md +0 -0
  366. {astrbot-4.10.0a1 → astrbot-4.10.1}/changelogs/v3.4.9.md +0 -0
  367. {astrbot-4.10.0a1 → astrbot-4.10.1}/changelogs/v3.5.0.md +0 -0
  368. {astrbot-4.10.0a1 → astrbot-4.10.1}/changelogs/v3.5.1.md +0 -0
  369. {astrbot-4.10.0a1 → astrbot-4.10.1}/changelogs/v3.5.10.md +0 -0
  370. {astrbot-4.10.0a1 → astrbot-4.10.1}/changelogs/v3.5.11.md +0 -0
  371. {astrbot-4.10.0a1 → astrbot-4.10.1}/changelogs/v3.5.12.md +0 -0
  372. {astrbot-4.10.0a1 → astrbot-4.10.1}/changelogs/v3.5.13.md +0 -0
  373. {astrbot-4.10.0a1 → astrbot-4.10.1}/changelogs/v3.5.14.md +0 -0
  374. {astrbot-4.10.0a1 → astrbot-4.10.1}/changelogs/v3.5.15.md +0 -0
  375. {astrbot-4.10.0a1 → astrbot-4.10.1}/changelogs/v3.5.16.md +0 -0
  376. {astrbot-4.10.0a1 → astrbot-4.10.1}/changelogs/v3.5.17.md +0 -0
  377. {astrbot-4.10.0a1 → astrbot-4.10.1}/changelogs/v3.5.18.md +0 -0
  378. {astrbot-4.10.0a1 → astrbot-4.10.1}/changelogs/v3.5.19.md +0 -0
  379. {astrbot-4.10.0a1 → astrbot-4.10.1}/changelogs/v3.5.2.md +0 -0
  380. {astrbot-4.10.0a1 → astrbot-4.10.1}/changelogs/v3.5.20.md +0 -0
  381. {astrbot-4.10.0a1 → astrbot-4.10.1}/changelogs/v3.5.21.md +0 -0
  382. {astrbot-4.10.0a1 → astrbot-4.10.1}/changelogs/v3.5.22.md +0 -0
  383. {astrbot-4.10.0a1 → astrbot-4.10.1}/changelogs/v3.5.23.md +0 -0
  384. {astrbot-4.10.0a1 → astrbot-4.10.1}/changelogs/v3.5.24.md +0 -0
  385. {astrbot-4.10.0a1 → astrbot-4.10.1}/changelogs/v3.5.25.md +0 -0
  386. {astrbot-4.10.0a1 → astrbot-4.10.1}/changelogs/v3.5.26.md +0 -0
  387. {astrbot-4.10.0a1 → astrbot-4.10.1}/changelogs/v3.5.27.md +0 -0
  388. {astrbot-4.10.0a1 → astrbot-4.10.1}/changelogs/v3.5.3.1.md +0 -0
  389. {astrbot-4.10.0a1 → astrbot-4.10.1}/changelogs/v3.5.3.2.md +0 -0
  390. {astrbot-4.10.0a1 → astrbot-4.10.1}/changelogs/v3.5.3.md +0 -0
  391. {astrbot-4.10.0a1 → astrbot-4.10.1}/changelogs/v3.5.4.md +0 -0
  392. {astrbot-4.10.0a1 → astrbot-4.10.1}/changelogs/v3.5.5.md +0 -0
  393. {astrbot-4.10.0a1 → astrbot-4.10.1}/changelogs/v3.5.6.md +0 -0
  394. {astrbot-4.10.0a1 → astrbot-4.10.1}/changelogs/v3.5.7.md +0 -0
  395. {astrbot-4.10.0a1 → astrbot-4.10.1}/changelogs/v3.5.8.md +0 -0
  396. {astrbot-4.10.0a1 → astrbot-4.10.1}/changelogs/v3.5.9.md +0 -0
  397. {astrbot-4.10.0a1 → astrbot-4.10.1}/changelogs/v4.0.0-beta.3.md +0 -0
  398. {astrbot-4.10.0a1 → astrbot-4.10.1}/changelogs/v4.0.0-beta.4.md +0 -0
  399. {astrbot-4.10.0a1 → astrbot-4.10.1}/changelogs/v4.0.0-beta.5.md +0 -0
  400. {astrbot-4.10.0a1 → astrbot-4.10.1}/changelogs/v4.0.0.md +0 -0
  401. {astrbot-4.10.0a1 → astrbot-4.10.1}/changelogs/v4.1.0.md +0 -0
  402. {astrbot-4.10.0a1 → astrbot-4.10.1}/changelogs/v4.1.1.md +0 -0
  403. {astrbot-4.10.0a1 → astrbot-4.10.1}/changelogs/v4.1.2.md +0 -0
  404. {astrbot-4.10.0a1 → astrbot-4.10.1}/changelogs/v4.1.3.md +0 -0
  405. {astrbot-4.10.0a1 → astrbot-4.10.1}/changelogs/v4.1.4.md +0 -0
  406. {astrbot-4.10.0a1 → astrbot-4.10.1}/changelogs/v4.1.5.md +0 -0
  407. {astrbot-4.10.0a1 → astrbot-4.10.1}/changelogs/v4.1.6.md +0 -0
  408. {astrbot-4.10.0a1 → astrbot-4.10.1}/changelogs/v4.1.7.md +0 -0
  409. {astrbot-4.10.0a1 → astrbot-4.10.1}/changelogs/v4.10.0-alpha.1.md +0 -0
  410. {astrbot-4.10.0a1 → astrbot-4.10.1}/changelogs/v4.2.0.md +0 -0
  411. {astrbot-4.10.0a1 → astrbot-4.10.1}/changelogs/v4.2.1.md +0 -0
  412. {astrbot-4.10.0a1 → astrbot-4.10.1}/changelogs/v4.3.0.md +0 -0
  413. {astrbot-4.10.0a1 → astrbot-4.10.1}/changelogs/v4.3.1.md +0 -0
  414. {astrbot-4.10.0a1 → astrbot-4.10.1}/changelogs/v4.3.2.md +0 -0
  415. {astrbot-4.10.0a1 → astrbot-4.10.1}/changelogs/v4.3.3.md +0 -0
  416. {astrbot-4.10.0a1 → astrbot-4.10.1}/changelogs/v4.3.5.md +0 -0
  417. {astrbot-4.10.0a1 → astrbot-4.10.1}/changelogs/v4.5.0.md +0 -0
  418. {astrbot-4.10.0a1 → astrbot-4.10.1}/changelogs/v4.5.1.md +0 -0
  419. {astrbot-4.10.0a1 → astrbot-4.10.1}/changelogs/v4.5.2.md +0 -0
  420. {astrbot-4.10.0a1 → astrbot-4.10.1}/changelogs/v4.5.3.md +0 -0
  421. {astrbot-4.10.0a1 → astrbot-4.10.1}/changelogs/v4.5.4.md +0 -0
  422. {astrbot-4.10.0a1 → astrbot-4.10.1}/changelogs/v4.5.5.md +0 -0
  423. {astrbot-4.10.0a1 → astrbot-4.10.1}/changelogs/v4.5.6.md +0 -0
  424. {astrbot-4.10.0a1 → astrbot-4.10.1}/changelogs/v4.5.7.md +0 -0
  425. {astrbot-4.10.0a1 → astrbot-4.10.1}/changelogs/v4.5.8.md +0 -0
  426. {astrbot-4.10.0a1 → astrbot-4.10.1}/changelogs/v4.6.0.md +0 -0
  427. {astrbot-4.10.0a1 → astrbot-4.10.1}/changelogs/v4.6.1.md +0 -0
  428. {astrbot-4.10.0a1 → astrbot-4.10.1}/changelogs/v4.7.0.md +0 -0
  429. {astrbot-4.10.0a1 → astrbot-4.10.1}/changelogs/v4.7.1.md +0 -0
  430. {astrbot-4.10.0a1 → astrbot-4.10.1}/changelogs/v4.7.3.md +0 -0
  431. {astrbot-4.10.0a1 → astrbot-4.10.1}/changelogs/v4.7.4.md +0 -0
  432. {astrbot-4.10.0a1 → astrbot-4.10.1}/changelogs/v4.8.0.md +0 -0
  433. {astrbot-4.10.0a1 → astrbot-4.10.1}/changelogs/v4.9.0.md +0 -0
  434. {astrbot-4.10.0a1 → astrbot-4.10.1}/changelogs/v4.9.1.md +0 -0
  435. {astrbot-4.10.0a1 → astrbot-4.10.1}/changelogs/v4.9.2.md +0 -0
  436. {astrbot-4.10.0a1 → astrbot-4.10.1}/compose.yml +0 -0
  437. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/.gitignore +0 -0
  438. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/LICENSE +0 -0
  439. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/README.md +0 -0
  440. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/env.d.ts +0 -0
  441. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/index.html +0 -0
  442. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/public/_redirects +0 -0
  443. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/public/favicon.svg +0 -0
  444. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/App.vue +0 -0
  445. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/assets/images/astrbot_banner.png +0 -0
  446. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/assets/images/astrbot_logo_mini.webp +0 -0
  447. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/assets/images/icon-no-shadow.svg +0 -0
  448. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/assets/images/loading-seio.webp +0 -0
  449. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/assets/images/platform_logos/dingtalk.svg +0 -0
  450. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/assets/images/platform_logos/discord.svg +0 -0
  451. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/assets/images/platform_logos/kook.png +0 -0
  452. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/assets/images/platform_logos/lark.png +0 -0
  453. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/assets/images/platform_logos/misskey.png +0 -0
  454. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/assets/images/platform_logos/onebot.png +0 -0
  455. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/assets/images/platform_logos/qq.png +0 -0
  456. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/assets/images/platform_logos/satori.png +0 -0
  457. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/assets/images/platform_logos/slack.svg +0 -0
  458. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/assets/images/platform_logos/telegram.svg +0 -0
  459. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/assets/images/platform_logos/vocechat.png +0 -0
  460. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/assets/images/platform_logos/wechat.png +0 -0
  461. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/assets/images/platform_logos/wecom.png +0 -0
  462. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/assets/images/plugin_icon.png +0 -0
  463. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/assets/images/provider_logos/modelstack.svg +0 -0
  464. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/assets/images/xmas-hat.png +0 -0
  465. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/components/ConfirmDialog.vue +0 -0
  466. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/components/chat/ConfigSelector.vue +0 -0
  467. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/components/chat/MessageList.vue +0 -0
  468. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/components/chat/ProviderConfigDialog.vue +0 -0
  469. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/components/chat/StandaloneChat.vue +0 -0
  470. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/components/config/AstrBotCoreConfigWrapper.vue +0 -0
  471. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/components/extension/McpServersSection.vue +0 -0
  472. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/components/extension/componentPanel/components/CommandFilters.vue +0 -0
  473. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/components/extension/componentPanel/components/CommandTable.vue +0 -0
  474. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/components/extension/componentPanel/components/DetailsDialog.vue +0 -0
  475. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/components/extension/componentPanel/components/RenameDialog.vue +0 -0
  476. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/components/extension/componentPanel/components/ToolTable.vue +0 -0
  477. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/components/extension/componentPanel/composables/useCommandActions.ts +0 -0
  478. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/components/extension/componentPanel/composables/useCommandFilters.ts +0 -0
  479. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/components/extension/componentPanel/composables/useComponentData.ts +0 -0
  480. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/components/extension/componentPanel/index.vue +0 -0
  481. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/components/extension/componentPanel/types.ts +0 -0
  482. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/components/platform/AddNewPlatform.vue +0 -0
  483. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/components/provider/AddNewProvider.vue +0 -0
  484. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/components/provider/ProviderModelsPanel.vue +0 -0
  485. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/components/shared/AstrBotConfig.vue +0 -0
  486. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/components/shared/AstrBotConfigV4.vue +0 -0
  487. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/components/shared/ChangelogDialog.vue +0 -0
  488. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/components/shared/ConsoleDisplayer.vue +0 -0
  489. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/components/shared/ExtensionCard.vue +0 -0
  490. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/components/shared/ItemCard.vue +0 -0
  491. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/components/shared/ItemCardGrid.vue +0 -0
  492. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/components/shared/KnowledgeBaseSelector.vue +0 -0
  493. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/components/shared/LanguageSwitcher.vue +0 -0
  494. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/components/shared/ListConfigItem.vue +0 -0
  495. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/components/shared/Logo.vue +0 -0
  496. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/components/shared/MigrationDialog.vue +0 -0
  497. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/components/shared/ObjectEditor.vue +0 -0
  498. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/components/shared/PersonaForm.vue +0 -0
  499. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/components/shared/PersonaSelector.vue +0 -0
  500. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/components/shared/PluginSetSelector.vue +0 -0
  501. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/components/shared/ProviderSelector.vue +0 -0
  502. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/components/shared/ProxySelector.vue +0 -0
  503. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/components/shared/ReadmeDialog.vue +0 -0
  504. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/components/shared/SidebarCustomizer.vue +0 -0
  505. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/components/shared/StyledMenu.vue +0 -0
  506. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/components/shared/T2ITemplateEditor.vue +0 -0
  507. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/components/shared/UninstallConfirmDialog.vue +0 -0
  508. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/components/shared/WaitingForRestart.vue +0 -0
  509. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/composables/useConversations.ts +0 -0
  510. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/composables/useMediaHandling.ts +0 -0
  511. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/composables/useRecording.ts +0 -0
  512. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/config.ts +0 -0
  513. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/i18n/composables.ts +0 -0
  514. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/i18n/loader.ts +0 -0
  515. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/i18n/locales/en-US/core/actions.json +0 -0
  516. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/i18n/locales/en-US/core/common.json +0 -0
  517. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/i18n/locales/en-US/core/header.json +0 -0
  518. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/i18n/locales/en-US/core/navigation.json +0 -0
  519. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/i18n/locales/en-US/core/shared.json +0 -0
  520. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/i18n/locales/en-US/core/status.json +0 -0
  521. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/i18n/locales/en-US/features/about.json +0 -0
  522. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/i18n/locales/en-US/features/alkaid/index.json +0 -0
  523. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/i18n/locales/en-US/features/alkaid/knowledge-base.json +0 -0
  524. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/i18n/locales/en-US/features/alkaid/memory.json +0 -0
  525. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/i18n/locales/en-US/features/auth.json +0 -0
  526. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/i18n/locales/en-US/features/chart.json +0 -0
  527. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/i18n/locales/en-US/features/chat.json +0 -0
  528. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/i18n/locales/en-US/features/command.json +0 -0
  529. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/i18n/locales/en-US/features/config-metadata.json +0 -0
  530. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/i18n/locales/en-US/features/config.json +0 -0
  531. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/i18n/locales/en-US/features/console.json +0 -0
  532. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/i18n/locales/en-US/features/conversation.json +0 -0
  533. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/i18n/locales/en-US/features/dashboard.json +0 -0
  534. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/i18n/locales/en-US/features/extension.json +0 -0
  535. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/i18n/locales/en-US/features/knowledge-base/detail.json +0 -0
  536. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/i18n/locales/en-US/features/knowledge-base/document.json +0 -0
  537. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/i18n/locales/en-US/features/knowledge-base/index.json +0 -0
  538. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/i18n/locales/en-US/features/migration.json +0 -0
  539. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/i18n/locales/en-US/features/persona.json +0 -0
  540. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/i18n/locales/en-US/features/platform.json +0 -0
  541. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/i18n/locales/en-US/features/session-management.json +0 -0
  542. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/i18n/locales/en-US/features/settings.json +0 -0
  543. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/i18n/locales/en-US/features/tool-use.json +0 -0
  544. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/i18n/locales/en-US/messages/errors.json +0 -0
  545. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/i18n/locales/en-US/messages/success.json +0 -0
  546. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/i18n/locales/en-US/messages/validation.json +0 -0
  547. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/i18n/locales/zh-CN/core/actions.json +0 -0
  548. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/i18n/locales/zh-CN/core/common.json +0 -0
  549. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/i18n/locales/zh-CN/core/header.json +0 -0
  550. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/i18n/locales/zh-CN/core/navigation.json +0 -0
  551. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/i18n/locales/zh-CN/core/shared.json +0 -0
  552. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/i18n/locales/zh-CN/core/status.json +0 -0
  553. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/i18n/locales/zh-CN/features/about.json +0 -0
  554. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/i18n/locales/zh-CN/features/alkaid/index.json +0 -0
  555. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/i18n/locales/zh-CN/features/alkaid/knowledge-base.json +0 -0
  556. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/i18n/locales/zh-CN/features/alkaid/memory.json +0 -0
  557. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/i18n/locales/zh-CN/features/auth.json +0 -0
  558. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/i18n/locales/zh-CN/features/chart.json +0 -0
  559. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/i18n/locales/zh-CN/features/chat.json +0 -0
  560. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/i18n/locales/zh-CN/features/command.json +0 -0
  561. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/i18n/locales/zh-CN/features/config-metadata.json +0 -0
  562. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/i18n/locales/zh-CN/features/config.json +0 -0
  563. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/i18n/locales/zh-CN/features/console.json +0 -0
  564. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/i18n/locales/zh-CN/features/conversation.json +0 -0
  565. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/i18n/locales/zh-CN/features/dashboard.json +0 -0
  566. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/i18n/locales/zh-CN/features/extension.json +0 -0
  567. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/i18n/locales/zh-CN/features/knowledge-base/detail.json +0 -0
  568. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/i18n/locales/zh-CN/features/knowledge-base/document.json +0 -0
  569. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/i18n/locales/zh-CN/features/knowledge-base/index.json +0 -0
  570. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/i18n/locales/zh-CN/features/migration.json +0 -0
  571. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/i18n/locales/zh-CN/features/persona.json +0 -0
  572. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/i18n/locales/zh-CN/features/platform.json +0 -0
  573. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/i18n/locales/zh-CN/features/session-management.json +0 -0
  574. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/i18n/locales/zh-CN/features/settings.json +0 -0
  575. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/i18n/locales/zh-CN/features/tool-use.json +0 -0
  576. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/i18n/locales/zh-CN/messages/errors.json +0 -0
  577. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/i18n/locales/zh-CN/messages/success.json +0 -0
  578. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/i18n/locales/zh-CN/messages/validation.json +0 -0
  579. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/i18n/tools/index.ts +0 -0
  580. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/i18n/translations.ts +0 -0
  581. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/i18n/types.ts +0 -0
  582. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/i18n/validator.ts +0 -0
  583. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/layouts/blank/BlankLayout.vue +0 -0
  584. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/layouts/full/vertical-header/VerticalHeader.vue +0 -0
  585. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/layouts/full/vertical-sidebar/NavItem.vue +0 -0
  586. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/layouts/full/vertical-sidebar/VerticalSidebar.vue +0 -0
  587. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/layouts/full/vertical-sidebar/sidebarItem.ts +0 -0
  588. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/main.ts +0 -0
  589. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/plugins/confirmPlugin.ts +0 -0
  590. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/plugins/vuetify.ts +0 -0
  591. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/router/AuthRoutes.ts +0 -0
  592. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/router/ChatBoxRoutes.ts +0 -0
  593. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/router/MainRoutes.ts +0 -0
  594. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/scss/_override.scss +0 -0
  595. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/scss/_variables.scss +0 -0
  596. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/scss/components/_VButtons.scss +0 -0
  597. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/scss/components/_VCard.scss +0 -0
  598. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/scss/components/_VField.scss +0 -0
  599. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/scss/components/_VInput.scss +0 -0
  600. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/scss/components/_VNavigationDrawer.scss +0 -0
  601. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/scss/components/_VScrollbar.scss +0 -0
  602. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/scss/components/_VShadow.scss +0 -0
  603. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/scss/components/_VTabs.scss +0 -0
  604. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/scss/components/_VTextField.scss +0 -0
  605. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/scss/layout/_container.scss +0 -0
  606. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/scss/layout/_sidebar.scss +0 -0
  607. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/scss/pages/_dashboards.scss +0 -0
  608. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/scss/style.scss +0 -0
  609. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/stores/auth.ts +0 -0
  610. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/stores/common.js +0 -0
  611. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/stores/customizer.ts +0 -0
  612. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/stores/toast.js +0 -0
  613. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/theme/DarkTheme.ts +0 -0
  614. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/theme/LightTheme.ts +0 -0
  615. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/types/themeTypes/ThemeType.ts +0 -0
  616. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/types/vue3-print-nb.d.ts +0 -0
  617. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/types/vue_tabler_icon.d.ts +0 -0
  618. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/utils/platformUtils.js +0 -0
  619. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/utils/providerUtils.js +0 -0
  620. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/utils/sidebarCustomization.js +0 -0
  621. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/utils/toast.js +0 -0
  622. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/views/AboutPage.vue +0 -0
  623. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/views/AlkaidPage.vue +0 -0
  624. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/views/ChatBoxPage.vue +0 -0
  625. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/views/ChatPage.vue +0 -0
  626. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/views/ConfigPage.vue +0 -0
  627. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/views/ConsolePage.vue +0 -0
  628. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/views/ExtensionPage.vue +0 -0
  629. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/views/PersonaPage.vue +0 -0
  630. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/views/PlatformPage.vue +0 -0
  631. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/views/ProviderPage.vue +0 -0
  632. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/views/SessionManagementPage.vue +0 -0
  633. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/views/Settings.vue +0 -0
  634. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/views/alkaid/KnowledgeBase.vue +0 -0
  635. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/views/alkaid/LongTermMemory.vue +0 -0
  636. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/views/alkaid/Other.vue +0 -0
  637. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/views/authentication/auth/LoginPage.vue +0 -0
  638. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/views/authentication/authForms/AuthLogin.vue +0 -0
  639. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/views/dashboards/default/DefaultDashboard.vue +0 -0
  640. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/views/dashboards/default/components/MemoryUsage.vue +0 -0
  641. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/views/dashboards/default/components/MessageStat.vue +0 -0
  642. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/views/dashboards/default/components/OnlinePlatform.vue +0 -0
  643. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/views/dashboards/default/components/OnlineTime.vue +0 -0
  644. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/views/dashboards/default/components/PlatformStat.vue +0 -0
  645. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/views/dashboards/default/components/RunningTime.vue +0 -0
  646. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/views/dashboards/default/components/TotalMessage.vue +0 -0
  647. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/views/knowledge-base/DocumentDetail.vue +0 -0
  648. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/views/knowledge-base/KBDetail.vue +0 -0
  649. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/views/knowledge-base/KBList.vue +0 -0
  650. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/views/knowledge-base/components/DocumentsTab.vue +0 -0
  651. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/views/knowledge-base/components/RetrievalTab.vue +0 -0
  652. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/views/knowledge-base/components/SettingsTab.vue +0 -0
  653. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/views/knowledge-base/components/TavilyKeyDialog.vue +0 -0
  654. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/src/views/knowledge-base/index.vue +0 -0
  655. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/tsconfig.json +0 -0
  656. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/tsconfig.vite-config.json +0 -0
  657. {astrbot-4.10.0a1 → astrbot-4.10.1}/dashboard/vite.config.ts +0 -0
  658. {astrbot-4.10.0a1 → astrbot-4.10.1}/k8s/astrbot/00-namespace.yaml +0 -0
  659. {astrbot-4.10.0a1 → astrbot-4.10.1}/k8s/astrbot/01-pvc.yaml +0 -0
  660. {astrbot-4.10.0a1 → astrbot-4.10.1}/k8s/astrbot/02-deployment.yaml +0 -0
  661. {astrbot-4.10.0a1 → astrbot-4.10.1}/k8s/astrbot/03-service-nodeport.yaml +0 -0
  662. {astrbot-4.10.0a1 → astrbot-4.10.1}/k8s/astrbot/04-service-loadbalancer.yaml +0 -0
  663. {astrbot-4.10.0a1 → astrbot-4.10.1}/k8s/astrbot_with_napcat/00-namespace.yaml +0 -0
  664. {astrbot-4.10.0a1 → astrbot-4.10.1}/k8s/astrbot_with_napcat/01-pvc.yaml +0 -0
  665. {astrbot-4.10.0a1 → astrbot-4.10.1}/k8s/astrbot_with_napcat/02-deployment.yaml +0 -0
  666. {astrbot-4.10.0a1 → astrbot-4.10.1}/k8s/astrbot_with_napcat/03-service-nodeport.yaml +0 -0
  667. {astrbot-4.10.0a1 → astrbot-4.10.1}/k8s/astrbot_with_napcat/04-service-loadbalancer.yaml +0 -0
  668. {astrbot-4.10.0a1 → astrbot-4.10.1}/main.py +0 -0
  669. {astrbot-4.10.0a1 → astrbot-4.10.1}/packages/astrbot/long_term_memory.py +0 -0
  670. {astrbot-4.10.0a1 → astrbot-4.10.1}/packages/astrbot/main.py +0 -0
  671. {astrbot-4.10.0a1 → astrbot-4.10.1}/packages/astrbot/metadata.yaml +0 -0
  672. {astrbot-4.10.0a1 → astrbot-4.10.1}/packages/astrbot/process_llm_request.py +0 -0
  673. {astrbot-4.10.0a1 → astrbot-4.10.1}/packages/builtin_commands/commands/__init__.py +0 -0
  674. {astrbot-4.10.0a1 → astrbot-4.10.1}/packages/builtin_commands/commands/admin.py +0 -0
  675. {astrbot-4.10.0a1 → astrbot-4.10.1}/packages/builtin_commands/commands/alter_cmd.py +0 -0
  676. {astrbot-4.10.0a1 → astrbot-4.10.1}/packages/builtin_commands/commands/conversation.py +0 -0
  677. {astrbot-4.10.0a1 → astrbot-4.10.1}/packages/builtin_commands/commands/help.py +0 -0
  678. {astrbot-4.10.0a1 → astrbot-4.10.1}/packages/builtin_commands/commands/llm.py +0 -0
  679. {astrbot-4.10.0a1 → astrbot-4.10.1}/packages/builtin_commands/commands/persona.py +0 -0
  680. {astrbot-4.10.0a1 → astrbot-4.10.1}/packages/builtin_commands/commands/plugin.py +0 -0
  681. {astrbot-4.10.0a1 → astrbot-4.10.1}/packages/builtin_commands/commands/provider.py +0 -0
  682. {astrbot-4.10.0a1 → astrbot-4.10.1}/packages/builtin_commands/commands/setunset.py +0 -0
  683. {astrbot-4.10.0a1 → astrbot-4.10.1}/packages/builtin_commands/commands/sid.py +0 -0
  684. {astrbot-4.10.0a1 → astrbot-4.10.1}/packages/builtin_commands/commands/t2i.py +0 -0
  685. {astrbot-4.10.0a1 → astrbot-4.10.1}/packages/builtin_commands/commands/tool.py +0 -0
  686. {astrbot-4.10.0a1 → astrbot-4.10.1}/packages/builtin_commands/commands/tts.py +0 -0
  687. {astrbot-4.10.0a1 → astrbot-4.10.1}/packages/builtin_commands/commands/utils/rst_scene.py +0 -0
  688. {astrbot-4.10.0a1 → astrbot-4.10.1}/packages/builtin_commands/main.py +0 -0
  689. {astrbot-4.10.0a1 → astrbot-4.10.1}/packages/builtin_commands/metadata.yaml +0 -0
  690. {astrbot-4.10.0a1 → astrbot-4.10.1}/packages/python_interpreter/main.py +0 -0
  691. {astrbot-4.10.0a1 → astrbot-4.10.1}/packages/python_interpreter/metadata.yaml +0 -0
  692. {astrbot-4.10.0a1 → astrbot-4.10.1}/packages/python_interpreter/requirements.txt +0 -0
  693. {astrbot-4.10.0a1 → astrbot-4.10.1}/packages/python_interpreter/shared/api.py +0 -0
  694. {astrbot-4.10.0a1 → astrbot-4.10.1}/packages/reminder/main.py +0 -0
  695. {astrbot-4.10.0a1 → astrbot-4.10.1}/packages/reminder/metadata.yaml +0 -0
  696. {astrbot-4.10.0a1 → astrbot-4.10.1}/packages/session_controller/main.py +0 -0
  697. {astrbot-4.10.0a1 → astrbot-4.10.1}/packages/session_controller/metadata.yaml +0 -0
  698. {astrbot-4.10.0a1 → astrbot-4.10.1}/packages/web_searcher/engines/__init__.py +0 -0
  699. {astrbot-4.10.0a1 → astrbot-4.10.1}/packages/web_searcher/engines/bing.py +0 -0
  700. {astrbot-4.10.0a1 → astrbot-4.10.1}/packages/web_searcher/engines/sogo.py +0 -0
  701. {astrbot-4.10.0a1 → astrbot-4.10.1}/packages/web_searcher/main.py +0 -0
  702. {astrbot-4.10.0a1 → astrbot-4.10.1}/packages/web_searcher/metadata.yaml +0 -0
  703. {astrbot-4.10.0a1 → astrbot-4.10.1}/requirements.txt +0 -0
  704. {astrbot-4.10.0a1 → astrbot-4.10.1}/samples/stt_health_check.wav +0 -0
  705. {astrbot-4.10.0a1 → astrbot-4.10.1}/tests/test_dashboard.py +0 -0
  706. {astrbot-4.10.0a1 → astrbot-4.10.1}/tests/test_kb_import.py +0 -0
  707. {astrbot-4.10.0a1 → astrbot-4.10.1}/tests/test_main.py +0 -0
  708. {astrbot-4.10.0a1 → astrbot-4.10.1}/tests/test_plugin_manager.py +0 -0
  709. {astrbot-4.10.0a1 → astrbot-4.10.1}/tests/test_security_fixes.py +0 -0
  710. {astrbot-4.10.0a1 → astrbot-4.10.1}/typings/faiss/__init__.pyi +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: AstrBot
3
- Version: 4.10.0a1
3
+ Version: 4.10.1
4
4
  Summary: Easy-to-use multi-platform LLM chatbot and development framework
5
5
  License-File: LICENSE
6
6
  Keywords: Astrbot,Astrbot Module,Astrbot Plugin
@@ -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(**self.req.__dict__)
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(**self.req.__dict__)
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
- logger.error(f"调用本地 LLM 工具时出错: {e}", exc_info=True)
213
- except TypeError:
214
- logger.error("处理函数参数不匹配,请检查 handler 的定义。", exc_info=True)
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
- logger.error(f"调用本地 LLM 工具时出错: {e}\n{trace_}")
247
+ raise Exception(f"Tool execution error: {e}. Traceback: {trace_}") from e
218
248
 
219
249
  if not ready_to_call:
220
250
  return
@@ -5,7 +5,7 @@ from typing import Any, TypedDict
5
5
 
6
6
  from astrbot.core.utils.astrbot_path import get_astrbot_data_path
7
7
 
8
- VERSION = "4.10.0-alpha.1"
8
+ VERSION = "4.10.1"
9
9
  DB_PATH = os.path.join(get_astrbot_data_path(), "data_v4.db")
10
10
 
11
11
  WEBHOOK_SUPPORTED_PLATFORMS = [
@@ -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({"role": "assistant", "content": llm_response.completion_text})
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
- a = ComponentTypes[t](**m["data"])
391
- abm.message.append(a)
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.startswith("gemini-2.5"):
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.startswith("gemini-3"):
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
- desc = _build_descriptor(handler)
196
- if not desc:
197
- continue
198
- if not include_sub_commands and desc.is_sub_command:
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
- await sync_command_configs()
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/<provider_source_id>/models": (
188
+ "/config/provider_sources/models": (
189
189
  "GET",
190
190
  self.get_provider_source_models,
191
191
  ),
192
- "/config/provider_sources/<provider_source_id>/update": (
192
+ "/config/provider_sources/update": (
193
193
  "POST",
194
194
  self.update_provider_source,
195
195
  ),
196
- "/config/provider_sources/<provider_source_id>/delete": (
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, provider_source_id: str):
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, provider_source_id: str):
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 = provider_source_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, provider_source_id: str):
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], router);
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="width: 85%; max-width: 900px; margin: 0 auto; border: 1px solid #e0e0e0; border-radius: 24px; box-shadow: 0px 2px 2px rgba(0, 0, 0, 0.1);">
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: var(--v-theme-surface);
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">