AstrBot 4.3.2__tar.gz → 4.3.3__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 (554) hide show
  1. {astrbot-4.3.2 → astrbot-4.3.3}/PKG-INFO +1 -1
  2. {astrbot-4.3.2 → astrbot-4.3.3}/astrbot/core/config/default.py +19 -7
  3. {astrbot-4.3.2 → astrbot-4.3.3}/astrbot/core/db/sqlite.py +7 -0
  4. {astrbot-4.3.2 → astrbot-4.3.3}/astrbot/core/pipeline/context_utils.py +1 -0
  5. {astrbot-4.3.2 → astrbot-4.3.3}/astrbot/core/pipeline/result_decorate/stage.py +44 -45
  6. {astrbot-4.3.2 → astrbot-4.3.3}/astrbot/core/provider/provider.py +2 -1
  7. {astrbot-4.3.2 → astrbot-4.3.3}/astrbot/core/provider/sources/anthropic_source.py +13 -7
  8. astrbot-4.3.3/astrbot/core/provider/sources/dashscope_tts.py +149 -0
  9. {astrbot-4.3.2 → astrbot-4.3.3}/astrbot/core/provider/sources/gemini_source.py +21 -17
  10. {astrbot-4.3.2 → astrbot-4.3.3}/astrbot/core/provider/sources/openai_source.py +1 -1
  11. {astrbot-4.3.2 → astrbot-4.3.3}/astrbot/dashboard/routes/session_management.py +6 -6
  12. {astrbot-4.3.2 → astrbot-4.3.3}/astrbot/dashboard/routes/update.py +8 -5
  13. astrbot-4.3.3/changelogs/v4.3.3.md +12 -0
  14. {astrbot-4.3.2 → astrbot-4.3.3}/dashboard/src/views/ConversationPage.vue +92 -83
  15. {astrbot-4.3.2 → astrbot-4.3.3}/dashboard/src/views/SessionManagementPage.vue +3 -2
  16. {astrbot-4.3.2 → astrbot-4.3.3}/packages/astrbot/commands/conversation.py +22 -7
  17. {astrbot-4.3.2 → astrbot-4.3.3}/packages/python_interpreter/main.py +4 -3
  18. {astrbot-4.3.2 → astrbot-4.3.3}/pyproject.toml +1 -1
  19. astrbot-4.3.2/astrbot/core/provider/sources/dashscope_tts.py +0 -41
  20. {astrbot-4.3.2 → astrbot-4.3.3}/.dockerignore +0 -0
  21. {astrbot-4.3.2 → astrbot-4.3.3}/.github/FUNDING.yml +0 -0
  22. {astrbot-4.3.2 → astrbot-4.3.3}/.github/ISSUE_TEMPLATE/PLUGIN_PUBLISH.yml +0 -0
  23. {astrbot-4.3.2 → astrbot-4.3.3}/.github/ISSUE_TEMPLATE/bug-report.yml +0 -0
  24. {astrbot-4.3.2 → astrbot-4.3.3}/.github/ISSUE_TEMPLATE/feature-request.yml +0 -0
  25. {astrbot-4.3.2 → astrbot-4.3.3}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
  26. {astrbot-4.3.2 → astrbot-4.3.3}/.github/auto_assign.yml +0 -0
  27. {astrbot-4.3.2 → astrbot-4.3.3}/.github/copilot-instructions.md +0 -0
  28. {astrbot-4.3.2 → astrbot-4.3.3}/.github/dependabot.yml +0 -0
  29. {astrbot-4.3.2 → astrbot-4.3.3}/.github/workflows/auto_release.yml +0 -0
  30. {astrbot-4.3.2 → astrbot-4.3.3}/.github/workflows/code-format.yml +0 -0
  31. {astrbot-4.3.2 → astrbot-4.3.3}/.github/workflows/codeql.yml +0 -0
  32. {astrbot-4.3.2 → astrbot-4.3.3}/.github/workflows/coverage_test.yml +0 -0
  33. {astrbot-4.3.2 → astrbot-4.3.3}/.github/workflows/dashboard_ci.yml +0 -0
  34. {astrbot-4.3.2 → astrbot-4.3.3}/.github/workflows/docker-image.yml +0 -0
  35. {astrbot-4.3.2 → astrbot-4.3.3}/.github/workflows/stale.yml +0 -0
  36. {astrbot-4.3.2 → astrbot-4.3.3}/.gitignore +0 -0
  37. {astrbot-4.3.2 → astrbot-4.3.3}/.pre-commit-config.yaml +0 -0
  38. {astrbot-4.3.2 → astrbot-4.3.3}/.python-version +0 -0
  39. {astrbot-4.3.2 → astrbot-4.3.3}/CODE_OF_CONDUCT.md +0 -0
  40. {astrbot-4.3.2 → astrbot-4.3.3}/Dockerfile +0 -0
  41. {astrbot-4.3.2 → astrbot-4.3.3}/Dockerfile_with_node +0 -0
  42. {astrbot-4.3.2 → astrbot-4.3.3}/LICENSE +0 -0
  43. {astrbot-4.3.2 → astrbot-4.3.3}/README.md +0 -0
  44. {astrbot-4.3.2 → astrbot-4.3.3}/README_en.md +0 -0
  45. {astrbot-4.3.2 → astrbot-4.3.3}/README_ja.md +0 -0
  46. {astrbot-4.3.2 → astrbot-4.3.3}/astrbot/__init__.py +0 -0
  47. {astrbot-4.3.2 → astrbot-4.3.3}/astrbot/api/__init__.py +0 -0
  48. {astrbot-4.3.2 → astrbot-4.3.3}/astrbot/api/all.py +0 -0
  49. {astrbot-4.3.2 → astrbot-4.3.3}/astrbot/api/event/__init__.py +0 -0
  50. {astrbot-4.3.2 → astrbot-4.3.3}/astrbot/api/event/filter/__init__.py +0 -0
  51. {astrbot-4.3.2 → astrbot-4.3.3}/astrbot/api/message_components.py +0 -0
  52. {astrbot-4.3.2 → astrbot-4.3.3}/astrbot/api/platform/__init__.py +0 -0
  53. {astrbot-4.3.2 → astrbot-4.3.3}/astrbot/api/provider/__init__.py +0 -0
  54. {astrbot-4.3.2 → astrbot-4.3.3}/astrbot/api/star/__init__.py +0 -0
  55. {astrbot-4.3.2 → astrbot-4.3.3}/astrbot/api/util/__init__.py +0 -0
  56. {astrbot-4.3.2 → astrbot-4.3.3}/astrbot/cli/__init__.py +0 -0
  57. {astrbot-4.3.2 → astrbot-4.3.3}/astrbot/cli/__main__.py +0 -0
  58. {astrbot-4.3.2 → astrbot-4.3.3}/astrbot/cli/commands/__init__.py +0 -0
  59. {astrbot-4.3.2 → astrbot-4.3.3}/astrbot/cli/commands/cmd_conf.py +0 -0
  60. {astrbot-4.3.2 → astrbot-4.3.3}/astrbot/cli/commands/cmd_init.py +0 -0
  61. {astrbot-4.3.2 → astrbot-4.3.3}/astrbot/cli/commands/cmd_plug.py +0 -0
  62. {astrbot-4.3.2 → astrbot-4.3.3}/astrbot/cli/commands/cmd_run.py +0 -0
  63. {astrbot-4.3.2 → astrbot-4.3.3}/astrbot/cli/utils/__init__.py +0 -0
  64. {astrbot-4.3.2 → astrbot-4.3.3}/astrbot/cli/utils/basic.py +0 -0
  65. {astrbot-4.3.2 → astrbot-4.3.3}/astrbot/cli/utils/plugin.py +0 -0
  66. {astrbot-4.3.2 → astrbot-4.3.3}/astrbot/cli/utils/version_comparator.py +0 -0
  67. {astrbot-4.3.2 → astrbot-4.3.3}/astrbot/core/__init__.py +0 -0
  68. {astrbot-4.3.2 → astrbot-4.3.3}/astrbot/core/agent/agent.py +0 -0
  69. {astrbot-4.3.2 → astrbot-4.3.3}/astrbot/core/agent/handoff.py +0 -0
  70. {astrbot-4.3.2 → astrbot-4.3.3}/astrbot/core/agent/hooks.py +0 -0
  71. {astrbot-4.3.2 → astrbot-4.3.3}/astrbot/core/agent/mcp_client.py +0 -0
  72. {astrbot-4.3.2 → astrbot-4.3.3}/astrbot/core/agent/response.py +0 -0
  73. {astrbot-4.3.2 → astrbot-4.3.3}/astrbot/core/agent/run_context.py +0 -0
  74. {astrbot-4.3.2 → astrbot-4.3.3}/astrbot/core/agent/runners/__init__.py +0 -0
  75. {astrbot-4.3.2 → astrbot-4.3.3}/astrbot/core/agent/runners/base.py +0 -0
  76. {astrbot-4.3.2 → astrbot-4.3.3}/astrbot/core/agent/runners/tool_loop_agent_runner.py +0 -0
  77. {astrbot-4.3.2 → astrbot-4.3.3}/astrbot/core/agent/tool.py +0 -0
  78. {astrbot-4.3.2 → astrbot-4.3.3}/astrbot/core/agent/tool_executor.py +0 -0
  79. {astrbot-4.3.2 → astrbot-4.3.3}/astrbot/core/astr_agent_context.py +0 -0
  80. {astrbot-4.3.2 → astrbot-4.3.3}/astrbot/core/astrbot_config_mgr.py +0 -0
  81. {astrbot-4.3.2 → astrbot-4.3.3}/astrbot/core/config/__init__.py +0 -0
  82. {astrbot-4.3.2 → astrbot-4.3.3}/astrbot/core/config/astrbot_config.py +0 -0
  83. {astrbot-4.3.2 → astrbot-4.3.3}/astrbot/core/conversation_mgr.py +0 -0
  84. {astrbot-4.3.2 → astrbot-4.3.3}/astrbot/core/core_lifecycle.py +0 -0
  85. {astrbot-4.3.2 → astrbot-4.3.3}/astrbot/core/db/__init__.py +0 -0
  86. {astrbot-4.3.2 → astrbot-4.3.3}/astrbot/core/db/migration/helper.py +0 -0
  87. {astrbot-4.3.2 → astrbot-4.3.3}/astrbot/core/db/migration/migra_3_to_4.py +0 -0
  88. {astrbot-4.3.2 → astrbot-4.3.3}/astrbot/core/db/migration/shared_preferences_v3.py +0 -0
  89. {astrbot-4.3.2 → astrbot-4.3.3}/astrbot/core/db/migration/sqlite_v3.py +0 -0
  90. {astrbot-4.3.2 → astrbot-4.3.3}/astrbot/core/db/po.py +0 -0
  91. {astrbot-4.3.2 → astrbot-4.3.3}/astrbot/core/db/vec_db/base.py +0 -0
  92. {astrbot-4.3.2 → astrbot-4.3.3}/astrbot/core/db/vec_db/faiss_impl/__init__.py +0 -0
  93. {astrbot-4.3.2 → astrbot-4.3.3}/astrbot/core/db/vec_db/faiss_impl/document_storage.py +0 -0
  94. {astrbot-4.3.2 → astrbot-4.3.3}/astrbot/core/db/vec_db/faiss_impl/embedding_storage.py +0 -0
  95. {astrbot-4.3.2 → astrbot-4.3.3}/astrbot/core/db/vec_db/faiss_impl/sqlite_init.sql +0 -0
  96. {astrbot-4.3.2 → astrbot-4.3.3}/astrbot/core/db/vec_db/faiss_impl/vec_db.py +0 -0
  97. {astrbot-4.3.2 → astrbot-4.3.3}/astrbot/core/event_bus.py +0 -0
  98. {astrbot-4.3.2 → astrbot-4.3.3}/astrbot/core/file_token_service.py +0 -0
  99. {astrbot-4.3.2 → astrbot-4.3.3}/astrbot/core/initial_loader.py +0 -0
  100. {astrbot-4.3.2 → astrbot-4.3.3}/astrbot/core/log.py +0 -0
  101. {astrbot-4.3.2 → astrbot-4.3.3}/astrbot/core/message/components.py +0 -0
  102. {astrbot-4.3.2 → astrbot-4.3.3}/astrbot/core/message/message_event_result.py +0 -0
  103. {astrbot-4.3.2 → astrbot-4.3.3}/astrbot/core/persona_mgr.py +0 -0
  104. {astrbot-4.3.2 → astrbot-4.3.3}/astrbot/core/pipeline/__init__.py +0 -0
  105. {astrbot-4.3.2 → astrbot-4.3.3}/astrbot/core/pipeline/content_safety_check/stage.py +0 -0
  106. {astrbot-4.3.2 → astrbot-4.3.3}/astrbot/core/pipeline/content_safety_check/strategies/__init__.py +0 -0
  107. {astrbot-4.3.2 → astrbot-4.3.3}/astrbot/core/pipeline/content_safety_check/strategies/baidu_aip.py +0 -0
  108. {astrbot-4.3.2 → astrbot-4.3.3}/astrbot/core/pipeline/content_safety_check/strategies/keywords.py +0 -0
  109. {astrbot-4.3.2 → astrbot-4.3.3}/astrbot/core/pipeline/content_safety_check/strategies/strategy.py +0 -0
  110. {astrbot-4.3.2 → astrbot-4.3.3}/astrbot/core/pipeline/context.py +0 -0
  111. {astrbot-4.3.2 → astrbot-4.3.3}/astrbot/core/pipeline/preprocess_stage/stage.py +0 -0
  112. {astrbot-4.3.2 → astrbot-4.3.3}/astrbot/core/pipeline/process_stage/method/llm_request.py +0 -0
  113. {astrbot-4.3.2 → astrbot-4.3.3}/astrbot/core/pipeline/process_stage/method/star_request.py +0 -0
  114. {astrbot-4.3.2 → astrbot-4.3.3}/astrbot/core/pipeline/process_stage/stage.py +0 -0
  115. {astrbot-4.3.2 → astrbot-4.3.3}/astrbot/core/pipeline/rate_limit_check/stage.py +0 -0
  116. {astrbot-4.3.2 → astrbot-4.3.3}/astrbot/core/pipeline/respond/stage.py +0 -0
  117. {astrbot-4.3.2 → astrbot-4.3.3}/astrbot/core/pipeline/scheduler.py +0 -0
  118. {astrbot-4.3.2 → astrbot-4.3.3}/astrbot/core/pipeline/session_status_check/stage.py +0 -0
  119. {astrbot-4.3.2 → astrbot-4.3.3}/astrbot/core/pipeline/stage.py +0 -0
  120. {astrbot-4.3.2 → astrbot-4.3.3}/astrbot/core/pipeline/waking_check/stage.py +0 -0
  121. {astrbot-4.3.2 → astrbot-4.3.3}/astrbot/core/pipeline/whitelist_check/stage.py +0 -0
  122. {astrbot-4.3.2 → astrbot-4.3.3}/astrbot/core/platform/__init__.py +0 -0
  123. {astrbot-4.3.2 → astrbot-4.3.3}/astrbot/core/platform/astr_message_event.py +0 -0
  124. {astrbot-4.3.2 → astrbot-4.3.3}/astrbot/core/platform/astrbot_message.py +0 -0
  125. {astrbot-4.3.2 → astrbot-4.3.3}/astrbot/core/platform/manager.py +0 -0
  126. {astrbot-4.3.2 → astrbot-4.3.3}/astrbot/core/platform/message_session.py +0 -0
  127. {astrbot-4.3.2 → astrbot-4.3.3}/astrbot/core/platform/message_type.py +0 -0
  128. {astrbot-4.3.2 → astrbot-4.3.3}/astrbot/core/platform/platform.py +0 -0
  129. {astrbot-4.3.2 → astrbot-4.3.3}/astrbot/core/platform/platform_metadata.py +0 -0
  130. {astrbot-4.3.2 → astrbot-4.3.3}/astrbot/core/platform/register.py +0 -0
  131. {astrbot-4.3.2 → astrbot-4.3.3}/astrbot/core/platform/sources/aiocqhttp/aiocqhttp_message_event.py +0 -0
  132. {astrbot-4.3.2 → astrbot-4.3.3}/astrbot/core/platform/sources/aiocqhttp/aiocqhttp_platform_adapter.py +0 -0
  133. {astrbot-4.3.2 → astrbot-4.3.3}/astrbot/core/platform/sources/dingtalk/dingtalk_adapter.py +0 -0
  134. {astrbot-4.3.2 → astrbot-4.3.3}/astrbot/core/platform/sources/dingtalk/dingtalk_event.py +0 -0
  135. {astrbot-4.3.2 → astrbot-4.3.3}/astrbot/core/platform/sources/discord/client.py +0 -0
  136. {astrbot-4.3.2 → astrbot-4.3.3}/astrbot/core/platform/sources/discord/components.py +0 -0
  137. {astrbot-4.3.2 → astrbot-4.3.3}/astrbot/core/platform/sources/discord/discord_platform_adapter.py +0 -0
  138. {astrbot-4.3.2 → astrbot-4.3.3}/astrbot/core/platform/sources/discord/discord_platform_event.py +0 -0
  139. {astrbot-4.3.2 → astrbot-4.3.3}/astrbot/core/platform/sources/lark/lark_adapter.py +0 -0
  140. {astrbot-4.3.2 → astrbot-4.3.3}/astrbot/core/platform/sources/lark/lark_event.py +0 -0
  141. {astrbot-4.3.2 → astrbot-4.3.3}/astrbot/core/platform/sources/misskey/misskey_adapter.py +0 -0
  142. {astrbot-4.3.2 → astrbot-4.3.3}/astrbot/core/platform/sources/misskey/misskey_api.py +0 -0
  143. {astrbot-4.3.2 → astrbot-4.3.3}/astrbot/core/platform/sources/misskey/misskey_event.py +0 -0
  144. {astrbot-4.3.2 → astrbot-4.3.3}/astrbot/core/platform/sources/misskey/misskey_utils.py +0 -0
  145. {astrbot-4.3.2 → astrbot-4.3.3}/astrbot/core/platform/sources/qqofficial/qqofficial_message_event.py +0 -0
  146. {astrbot-4.3.2 → astrbot-4.3.3}/astrbot/core/platform/sources/qqofficial/qqofficial_platform_adapter.py +0 -0
  147. {astrbot-4.3.2 → astrbot-4.3.3}/astrbot/core/platform/sources/qqofficial_webhook/qo_webhook_adapter.py +0 -0
  148. {astrbot-4.3.2 → astrbot-4.3.3}/astrbot/core/platform/sources/qqofficial_webhook/qo_webhook_event.py +0 -0
  149. {astrbot-4.3.2 → astrbot-4.3.3}/astrbot/core/platform/sources/qqofficial_webhook/qo_webhook_server.py +0 -0
  150. {astrbot-4.3.2 → astrbot-4.3.3}/astrbot/core/platform/sources/satori/satori_adapter.py +0 -0
  151. {astrbot-4.3.2 → astrbot-4.3.3}/astrbot/core/platform/sources/satori/satori_event.py +0 -0
  152. {astrbot-4.3.2 → astrbot-4.3.3}/astrbot/core/platform/sources/slack/client.py +0 -0
  153. {astrbot-4.3.2 → astrbot-4.3.3}/astrbot/core/platform/sources/slack/slack_adapter.py +0 -0
  154. {astrbot-4.3.2 → astrbot-4.3.3}/astrbot/core/platform/sources/slack/slack_event.py +0 -0
  155. {astrbot-4.3.2 → astrbot-4.3.3}/astrbot/core/platform/sources/telegram/tg_adapter.py +0 -0
  156. {astrbot-4.3.2 → astrbot-4.3.3}/astrbot/core/platform/sources/telegram/tg_event.py +0 -0
  157. {astrbot-4.3.2 → astrbot-4.3.3}/astrbot/core/platform/sources/webchat/webchat_adapter.py +0 -0
  158. {astrbot-4.3.2 → astrbot-4.3.3}/astrbot/core/platform/sources/webchat/webchat_event.py +0 -0
  159. {astrbot-4.3.2 → astrbot-4.3.3}/astrbot/core/platform/sources/webchat/webchat_queue_mgr.py +0 -0
  160. {astrbot-4.3.2 → astrbot-4.3.3}/astrbot/core/platform/sources/wechatpadpro/wechatpadpro_adapter.py +0 -0
  161. {astrbot-4.3.2 → astrbot-4.3.3}/astrbot/core/platform/sources/wechatpadpro/wechatpadpro_message_event.py +0 -0
  162. {astrbot-4.3.2 → astrbot-4.3.3}/astrbot/core/platform/sources/wechatpadpro/xml_data_parser.py +0 -0
  163. {astrbot-4.3.2 → astrbot-4.3.3}/astrbot/core/platform/sources/wecom/wecom_adapter.py +0 -0
  164. {astrbot-4.3.2 → astrbot-4.3.3}/astrbot/core/platform/sources/wecom/wecom_event.py +0 -0
  165. {astrbot-4.3.2 → astrbot-4.3.3}/astrbot/core/platform/sources/wecom/wecom_kf.py +0 -0
  166. {astrbot-4.3.2 → astrbot-4.3.3}/astrbot/core/platform/sources/wecom/wecom_kf_message.py +0 -0
  167. {astrbot-4.3.2 → astrbot-4.3.3}/astrbot/core/platform/sources/weixin_official_account/weixin_offacc_adapter.py +0 -0
  168. {astrbot-4.3.2 → astrbot-4.3.3}/astrbot/core/platform/sources/weixin_official_account/weixin_offacc_event.py +0 -0
  169. {astrbot-4.3.2 → astrbot-4.3.3}/astrbot/core/platform_message_history_mgr.py +0 -0
  170. {astrbot-4.3.2 → astrbot-4.3.3}/astrbot/core/provider/__init__.py +0 -0
  171. {astrbot-4.3.2 → astrbot-4.3.3}/astrbot/core/provider/entites.py +0 -0
  172. {astrbot-4.3.2 → astrbot-4.3.3}/astrbot/core/provider/entities.py +0 -0
  173. {astrbot-4.3.2 → astrbot-4.3.3}/astrbot/core/provider/func_tool_manager.py +0 -0
  174. {astrbot-4.3.2 → astrbot-4.3.3}/astrbot/core/provider/manager.py +0 -0
  175. {astrbot-4.3.2 → astrbot-4.3.3}/astrbot/core/provider/register.py +0 -0
  176. {astrbot-4.3.2 → astrbot-4.3.3}/astrbot/core/provider/sources/azure_tts_source.py +0 -0
  177. {astrbot-4.3.2 → astrbot-4.3.3}/astrbot/core/provider/sources/coze_api_client.py +0 -0
  178. {astrbot-4.3.2 → astrbot-4.3.3}/astrbot/core/provider/sources/coze_source.py +0 -0
  179. {astrbot-4.3.2 → astrbot-4.3.3}/astrbot/core/provider/sources/dashscope_source.py +0 -0
  180. {astrbot-4.3.2 → astrbot-4.3.3}/astrbot/core/provider/sources/dify_source.py +0 -0
  181. {astrbot-4.3.2 → astrbot-4.3.3}/astrbot/core/provider/sources/edge_tts_source.py +0 -0
  182. {astrbot-4.3.2 → astrbot-4.3.3}/astrbot/core/provider/sources/fishaudio_tts_api_source.py +0 -0
  183. {astrbot-4.3.2 → astrbot-4.3.3}/astrbot/core/provider/sources/gemini_embedding_source.py +0 -0
  184. {astrbot-4.3.2 → astrbot-4.3.3}/astrbot/core/provider/sources/gemini_tts_source.py +0 -0
  185. {astrbot-4.3.2 → astrbot-4.3.3}/astrbot/core/provider/sources/gsv_selfhosted_source.py +0 -0
  186. {astrbot-4.3.2 → astrbot-4.3.3}/astrbot/core/provider/sources/gsvi_tts_source.py +0 -0
  187. {astrbot-4.3.2 → astrbot-4.3.3}/astrbot/core/provider/sources/minimax_tts_api_source.py +0 -0
  188. {astrbot-4.3.2 → astrbot-4.3.3}/astrbot/core/provider/sources/openai_embedding_source.py +0 -0
  189. {astrbot-4.3.2 → astrbot-4.3.3}/astrbot/core/provider/sources/openai_tts_api_source.py +0 -0
  190. {astrbot-4.3.2 → astrbot-4.3.3}/astrbot/core/provider/sources/sensevoice_selfhosted_source.py +0 -0
  191. {astrbot-4.3.2 → astrbot-4.3.3}/astrbot/core/provider/sources/vllm_rerank_source.py +0 -0
  192. {astrbot-4.3.2 → astrbot-4.3.3}/astrbot/core/provider/sources/volcengine_tts.py +0 -0
  193. {astrbot-4.3.2 → astrbot-4.3.3}/astrbot/core/provider/sources/whisper_api_source.py +0 -0
  194. {astrbot-4.3.2 → astrbot-4.3.3}/astrbot/core/provider/sources/whisper_selfhosted_source.py +0 -0
  195. {astrbot-4.3.2 → astrbot-4.3.3}/astrbot/core/provider/sources/zhipu_source.py +0 -0
  196. {astrbot-4.3.2 → astrbot-4.3.3}/astrbot/core/star/README.md +0 -0
  197. {astrbot-4.3.2 → astrbot-4.3.3}/astrbot/core/star/__init__.py +0 -0
  198. {astrbot-4.3.2 → astrbot-4.3.3}/astrbot/core/star/config.py +0 -0
  199. {astrbot-4.3.2 → astrbot-4.3.3}/astrbot/core/star/context.py +0 -0
  200. {astrbot-4.3.2 → astrbot-4.3.3}/astrbot/core/star/filter/__init__.py +0 -0
  201. {astrbot-4.3.2 → astrbot-4.3.3}/astrbot/core/star/filter/command.py +0 -0
  202. {astrbot-4.3.2 → astrbot-4.3.3}/astrbot/core/star/filter/command_group.py +0 -0
  203. {astrbot-4.3.2 → astrbot-4.3.3}/astrbot/core/star/filter/custom_filter.py +0 -0
  204. {astrbot-4.3.2 → astrbot-4.3.3}/astrbot/core/star/filter/event_message_type.py +0 -0
  205. {astrbot-4.3.2 → astrbot-4.3.3}/astrbot/core/star/filter/permission.py +0 -0
  206. {astrbot-4.3.2 → astrbot-4.3.3}/astrbot/core/star/filter/platform_adapter_type.py +0 -0
  207. {astrbot-4.3.2 → astrbot-4.3.3}/astrbot/core/star/filter/regex.py +0 -0
  208. {astrbot-4.3.2 → astrbot-4.3.3}/astrbot/core/star/register/__init__.py +0 -0
  209. {astrbot-4.3.2 → astrbot-4.3.3}/astrbot/core/star/register/star.py +0 -0
  210. {astrbot-4.3.2 → astrbot-4.3.3}/astrbot/core/star/register/star_handler.py +0 -0
  211. {astrbot-4.3.2 → astrbot-4.3.3}/astrbot/core/star/session_llm_manager.py +0 -0
  212. {astrbot-4.3.2 → astrbot-4.3.3}/astrbot/core/star/session_plugin_manager.py +0 -0
  213. {astrbot-4.3.2 → astrbot-4.3.3}/astrbot/core/star/star.py +0 -0
  214. {astrbot-4.3.2 → astrbot-4.3.3}/astrbot/core/star/star_handler.py +0 -0
  215. {astrbot-4.3.2 → astrbot-4.3.3}/astrbot/core/star/star_manager.py +0 -0
  216. {astrbot-4.3.2 → astrbot-4.3.3}/astrbot/core/star/star_tools.py +0 -0
  217. {astrbot-4.3.2 → astrbot-4.3.3}/astrbot/core/star/updator.py +0 -0
  218. {astrbot-4.3.2 → astrbot-4.3.3}/astrbot/core/updator.py +0 -0
  219. {astrbot-4.3.2 → astrbot-4.3.3}/astrbot/core/utils/astrbot_path.py +0 -0
  220. {astrbot-4.3.2 → astrbot-4.3.3}/astrbot/core/utils/command_parser.py +0 -0
  221. {astrbot-4.3.2 → astrbot-4.3.3}/astrbot/core/utils/dify_api_client.py +0 -0
  222. {astrbot-4.3.2 → astrbot-4.3.3}/astrbot/core/utils/io.py +0 -0
  223. {astrbot-4.3.2 → astrbot-4.3.3}/astrbot/core/utils/log_pipe.py +0 -0
  224. {astrbot-4.3.2 → astrbot-4.3.3}/astrbot/core/utils/metrics.py +0 -0
  225. {astrbot-4.3.2 → astrbot-4.3.3}/astrbot/core/utils/path_util.py +0 -0
  226. {astrbot-4.3.2 → astrbot-4.3.3}/astrbot/core/utils/pip_installer.py +0 -0
  227. {astrbot-4.3.2 → astrbot-4.3.3}/astrbot/core/utils/session_lock.py +0 -0
  228. {astrbot-4.3.2 → astrbot-4.3.3}/astrbot/core/utils/session_waiter.py +0 -0
  229. {astrbot-4.3.2 → astrbot-4.3.3}/astrbot/core/utils/shared_preferences.py +0 -0
  230. {astrbot-4.3.2 → astrbot-4.3.3}/astrbot/core/utils/t2i/__init__.py +0 -0
  231. {astrbot-4.3.2 → astrbot-4.3.3}/astrbot/core/utils/t2i/local_strategy.py +0 -0
  232. {astrbot-4.3.2 → astrbot-4.3.3}/astrbot/core/utils/t2i/network_strategy.py +0 -0
  233. {astrbot-4.3.2 → astrbot-4.3.3}/astrbot/core/utils/t2i/renderer.py +0 -0
  234. {astrbot-4.3.2 → astrbot-4.3.3}/astrbot/core/utils/t2i/template/astrbot_powershell.html +0 -0
  235. {astrbot-4.3.2 → astrbot-4.3.3}/astrbot/core/utils/t2i/template/base.html +0 -0
  236. {astrbot-4.3.2 → astrbot-4.3.3}/astrbot/core/utils/t2i/template_manager.py +0 -0
  237. {astrbot-4.3.2 → astrbot-4.3.3}/astrbot/core/utils/tencent_record_helper.py +0 -0
  238. {astrbot-4.3.2 → astrbot-4.3.3}/astrbot/core/utils/version_comparator.py +0 -0
  239. {astrbot-4.3.2 → astrbot-4.3.3}/astrbot/core/zip_updator.py +0 -0
  240. {astrbot-4.3.2 → astrbot-4.3.3}/astrbot/dashboard/routes/__init__.py +0 -0
  241. {astrbot-4.3.2 → astrbot-4.3.3}/astrbot/dashboard/routes/auth.py +0 -0
  242. {astrbot-4.3.2 → astrbot-4.3.3}/astrbot/dashboard/routes/chat.py +0 -0
  243. {astrbot-4.3.2 → astrbot-4.3.3}/astrbot/dashboard/routes/config.py +0 -0
  244. {astrbot-4.3.2 → astrbot-4.3.3}/astrbot/dashboard/routes/conversation.py +0 -0
  245. {astrbot-4.3.2 → astrbot-4.3.3}/astrbot/dashboard/routes/file.py +0 -0
  246. {astrbot-4.3.2 → astrbot-4.3.3}/astrbot/dashboard/routes/log.py +0 -0
  247. {astrbot-4.3.2 → astrbot-4.3.3}/astrbot/dashboard/routes/persona.py +0 -0
  248. {astrbot-4.3.2 → astrbot-4.3.3}/astrbot/dashboard/routes/plugin.py +0 -0
  249. {astrbot-4.3.2 → astrbot-4.3.3}/astrbot/dashboard/routes/route.py +0 -0
  250. {astrbot-4.3.2 → astrbot-4.3.3}/astrbot/dashboard/routes/stat.py +0 -0
  251. {astrbot-4.3.2 → astrbot-4.3.3}/astrbot/dashboard/routes/static_file.py +0 -0
  252. {astrbot-4.3.2 → astrbot-4.3.3}/astrbot/dashboard/routes/t2i.py +0 -0
  253. {astrbot-4.3.2 → astrbot-4.3.3}/astrbot/dashboard/routes/tools.py +0 -0
  254. {astrbot-4.3.2 → astrbot-4.3.3}/astrbot/dashboard/server.py +0 -0
  255. {astrbot-4.3.2 → astrbot-4.3.3}/changelogs/v3.4.0.md +0 -0
  256. {astrbot-4.3.2 → astrbot-4.3.3}/changelogs/v3.4.1.md +0 -0
  257. {astrbot-4.3.2 → astrbot-4.3.3}/changelogs/v3.4.10.md +0 -0
  258. {astrbot-4.3.2 → astrbot-4.3.3}/changelogs/v3.4.11.md +0 -0
  259. {astrbot-4.3.2 → astrbot-4.3.3}/changelogs/v3.4.12.md +0 -0
  260. {astrbot-4.3.2 → astrbot-4.3.3}/changelogs/v3.4.13.md +0 -0
  261. {astrbot-4.3.2 → astrbot-4.3.3}/changelogs/v3.4.14.md +0 -0
  262. {astrbot-4.3.2 → astrbot-4.3.3}/changelogs/v3.4.15.md +0 -0
  263. {astrbot-4.3.2 → astrbot-4.3.3}/changelogs/v3.4.16.md +0 -0
  264. {astrbot-4.3.2 → astrbot-4.3.3}/changelogs/v3.4.17.md +0 -0
  265. {astrbot-4.3.2 → astrbot-4.3.3}/changelogs/v3.4.18.md +0 -0
  266. {astrbot-4.3.2 → astrbot-4.3.3}/changelogs/v3.4.19.md +0 -0
  267. {astrbot-4.3.2 → astrbot-4.3.3}/changelogs/v3.4.20.md +0 -0
  268. {astrbot-4.3.2 → astrbot-4.3.3}/changelogs/v3.4.21.md +0 -0
  269. {astrbot-4.3.2 → astrbot-4.3.3}/changelogs/v3.4.22.md +0 -0
  270. {astrbot-4.3.2 → astrbot-4.3.3}/changelogs/v3.4.23.md +0 -0
  271. {astrbot-4.3.2 → astrbot-4.3.3}/changelogs/v3.4.24.md +0 -0
  272. {astrbot-4.3.2 → astrbot-4.3.3}/changelogs/v3.4.25.md +0 -0
  273. {astrbot-4.3.2 → astrbot-4.3.3}/changelogs/v3.4.26.md +0 -0
  274. {astrbot-4.3.2 → astrbot-4.3.3}/changelogs/v3.4.27.md +0 -0
  275. {astrbot-4.3.2 → astrbot-4.3.3}/changelogs/v3.4.28.md +0 -0
  276. {astrbot-4.3.2 → astrbot-4.3.3}/changelogs/v3.4.29.md +0 -0
  277. {astrbot-4.3.2 → astrbot-4.3.3}/changelogs/v3.4.3.md +0 -0
  278. {astrbot-4.3.2 → astrbot-4.3.3}/changelogs/v3.4.30.md +0 -0
  279. {astrbot-4.3.2 → astrbot-4.3.3}/changelogs/v3.4.31.md +0 -0
  280. {astrbot-4.3.2 → astrbot-4.3.3}/changelogs/v3.4.32.md +0 -0
  281. {astrbot-4.3.2 → astrbot-4.3.3}/changelogs/v3.4.33.md +0 -0
  282. {astrbot-4.3.2 → astrbot-4.3.3}/changelogs/v3.4.35.md +0 -0
  283. {astrbot-4.3.2 → astrbot-4.3.3}/changelogs/v3.4.36.md +0 -0
  284. {astrbot-4.3.2 → astrbot-4.3.3}/changelogs/v3.4.37.md +0 -0
  285. {astrbot-4.3.2 → astrbot-4.3.3}/changelogs/v3.4.38.md +0 -0
  286. {astrbot-4.3.2 → astrbot-4.3.3}/changelogs/v3.4.39.md +0 -0
  287. {astrbot-4.3.2 → astrbot-4.3.3}/changelogs/v3.4.4.md +0 -0
  288. {astrbot-4.3.2 → astrbot-4.3.3}/changelogs/v3.4.5.md +0 -0
  289. {astrbot-4.3.2 → astrbot-4.3.3}/changelogs/v3.4.6.md +0 -0
  290. {astrbot-4.3.2 → astrbot-4.3.3}/changelogs/v3.4.7.md +0 -0
  291. {astrbot-4.3.2 → astrbot-4.3.3}/changelogs/v3.4.8.md +0 -0
  292. {astrbot-4.3.2 → astrbot-4.3.3}/changelogs/v3.4.9.md +0 -0
  293. {astrbot-4.3.2 → astrbot-4.3.3}/changelogs/v3.5.0.md +0 -0
  294. {astrbot-4.3.2 → astrbot-4.3.3}/changelogs/v3.5.1.md +0 -0
  295. {astrbot-4.3.2 → astrbot-4.3.3}/changelogs/v3.5.10.md +0 -0
  296. {astrbot-4.3.2 → astrbot-4.3.3}/changelogs/v3.5.11.md +0 -0
  297. {astrbot-4.3.2 → astrbot-4.3.3}/changelogs/v3.5.12.md +0 -0
  298. {astrbot-4.3.2 → astrbot-4.3.3}/changelogs/v3.5.13.md +0 -0
  299. {astrbot-4.3.2 → astrbot-4.3.3}/changelogs/v3.5.14.md +0 -0
  300. {astrbot-4.3.2 → astrbot-4.3.3}/changelogs/v3.5.15.md +0 -0
  301. {astrbot-4.3.2 → astrbot-4.3.3}/changelogs/v3.5.16.md +0 -0
  302. {astrbot-4.3.2 → astrbot-4.3.3}/changelogs/v3.5.17.md +0 -0
  303. {astrbot-4.3.2 → astrbot-4.3.3}/changelogs/v3.5.18.md +0 -0
  304. {astrbot-4.3.2 → astrbot-4.3.3}/changelogs/v3.5.19.md +0 -0
  305. {astrbot-4.3.2 → astrbot-4.3.3}/changelogs/v3.5.2.md +0 -0
  306. {astrbot-4.3.2 → astrbot-4.3.3}/changelogs/v3.5.20.md +0 -0
  307. {astrbot-4.3.2 → astrbot-4.3.3}/changelogs/v3.5.21.md +0 -0
  308. {astrbot-4.3.2 → astrbot-4.3.3}/changelogs/v3.5.22.md +0 -0
  309. {astrbot-4.3.2 → astrbot-4.3.3}/changelogs/v3.5.23.md +0 -0
  310. {astrbot-4.3.2 → astrbot-4.3.3}/changelogs/v3.5.24.md +0 -0
  311. {astrbot-4.3.2 → astrbot-4.3.3}/changelogs/v3.5.25.md +0 -0
  312. {astrbot-4.3.2 → astrbot-4.3.3}/changelogs/v3.5.26.md +0 -0
  313. {astrbot-4.3.2 → astrbot-4.3.3}/changelogs/v3.5.27.md +0 -0
  314. {astrbot-4.3.2 → astrbot-4.3.3}/changelogs/v3.5.3.1.md +0 -0
  315. {astrbot-4.3.2 → astrbot-4.3.3}/changelogs/v3.5.3.2.md +0 -0
  316. {astrbot-4.3.2 → astrbot-4.3.3}/changelogs/v3.5.3.md +0 -0
  317. {astrbot-4.3.2 → astrbot-4.3.3}/changelogs/v3.5.4.md +0 -0
  318. {astrbot-4.3.2 → astrbot-4.3.3}/changelogs/v3.5.5.md +0 -0
  319. {astrbot-4.3.2 → astrbot-4.3.3}/changelogs/v3.5.6.md +0 -0
  320. {astrbot-4.3.2 → astrbot-4.3.3}/changelogs/v3.5.7.md +0 -0
  321. {astrbot-4.3.2 → astrbot-4.3.3}/changelogs/v3.5.8.md +0 -0
  322. {astrbot-4.3.2 → astrbot-4.3.3}/changelogs/v3.5.9.md +0 -0
  323. {astrbot-4.3.2 → astrbot-4.3.3}/changelogs/v4.0.0-beta.3.md +0 -0
  324. {astrbot-4.3.2 → astrbot-4.3.3}/changelogs/v4.0.0-beta.4.md +0 -0
  325. {astrbot-4.3.2 → astrbot-4.3.3}/changelogs/v4.0.0-beta.5.md +0 -0
  326. {astrbot-4.3.2 → astrbot-4.3.3}/changelogs/v4.0.0.md +0 -0
  327. {astrbot-4.3.2 → astrbot-4.3.3}/changelogs/v4.1.0.md +0 -0
  328. {astrbot-4.3.2 → astrbot-4.3.3}/changelogs/v4.1.1.md +0 -0
  329. {astrbot-4.3.2 → astrbot-4.3.3}/changelogs/v4.1.2.md +0 -0
  330. {astrbot-4.3.2 → astrbot-4.3.3}/changelogs/v4.1.3.md +0 -0
  331. {astrbot-4.3.2 → astrbot-4.3.3}/changelogs/v4.1.4.md +0 -0
  332. {astrbot-4.3.2 → astrbot-4.3.3}/changelogs/v4.1.5.md +0 -0
  333. {astrbot-4.3.2 → astrbot-4.3.3}/changelogs/v4.1.6.md +0 -0
  334. {astrbot-4.3.2 → astrbot-4.3.3}/changelogs/v4.1.7.md +0 -0
  335. {astrbot-4.3.2 → astrbot-4.3.3}/changelogs/v4.2.0.md +0 -0
  336. {astrbot-4.3.2 → astrbot-4.3.3}/changelogs/v4.2.1.md +0 -0
  337. {astrbot-4.3.2 → astrbot-4.3.3}/changelogs/v4.3.0.md +0 -0
  338. {astrbot-4.3.2 → astrbot-4.3.3}/changelogs/v4.3.1.md +0 -0
  339. {astrbot-4.3.2 → astrbot-4.3.3}/changelogs/v4.3.2.md +0 -0
  340. {astrbot-4.3.2 → astrbot-4.3.3}/compose.yml +0 -0
  341. {astrbot-4.3.2 → astrbot-4.3.3}/dashboard/.gitignore +0 -0
  342. {astrbot-4.3.2 → astrbot-4.3.3}/dashboard/LICENSE +0 -0
  343. {astrbot-4.3.2 → astrbot-4.3.3}/dashboard/README.md +0 -0
  344. {astrbot-4.3.2 → astrbot-4.3.3}/dashboard/env.d.ts +0 -0
  345. {astrbot-4.3.2 → astrbot-4.3.3}/dashboard/index.html +0 -0
  346. {astrbot-4.3.2 → astrbot-4.3.3}/dashboard/public/_redirects +0 -0
  347. {astrbot-4.3.2 → astrbot-4.3.3}/dashboard/public/favicon.svg +0 -0
  348. {astrbot-4.3.2 → astrbot-4.3.3}/dashboard/src/App.vue +0 -0
  349. {astrbot-4.3.2 → astrbot-4.3.3}/dashboard/src/assets/images/astrbot_banner.png +0 -0
  350. {astrbot-4.3.2 → astrbot-4.3.3}/dashboard/src/assets/images/astrbot_logo_mini.webp +0 -0
  351. {astrbot-4.3.2 → astrbot-4.3.3}/dashboard/src/assets/images/platform_logos/dingtalk.svg +0 -0
  352. {astrbot-4.3.2 → astrbot-4.3.3}/dashboard/src/assets/images/platform_logos/discord.svg +0 -0
  353. {astrbot-4.3.2 → astrbot-4.3.3}/dashboard/src/assets/images/platform_logos/kook.png +0 -0
  354. {astrbot-4.3.2 → astrbot-4.3.3}/dashboard/src/assets/images/platform_logos/lark.png +0 -0
  355. {astrbot-4.3.2 → astrbot-4.3.3}/dashboard/src/assets/images/platform_logos/misskey.png +0 -0
  356. {astrbot-4.3.2 → astrbot-4.3.3}/dashboard/src/assets/images/platform_logos/qq.png +0 -0
  357. {astrbot-4.3.2 → astrbot-4.3.3}/dashboard/src/assets/images/platform_logos/satori.png +0 -0
  358. {astrbot-4.3.2 → astrbot-4.3.3}/dashboard/src/assets/images/platform_logos/slack.svg +0 -0
  359. {astrbot-4.3.2 → astrbot-4.3.3}/dashboard/src/assets/images/platform_logos/telegram.svg +0 -0
  360. {astrbot-4.3.2 → astrbot-4.3.3}/dashboard/src/assets/images/platform_logos/vocechat.png +0 -0
  361. {astrbot-4.3.2 → astrbot-4.3.3}/dashboard/src/assets/images/platform_logos/wechat.png +0 -0
  362. {astrbot-4.3.2 → astrbot-4.3.3}/dashboard/src/assets/images/platform_logos/wecom.png +0 -0
  363. {astrbot-4.3.2 → astrbot-4.3.3}/dashboard/src/components/ConfirmDialog.vue +0 -0
  364. {astrbot-4.3.2 → astrbot-4.3.3}/dashboard/src/components/chat/Chat.vue +0 -0
  365. {astrbot-4.3.2 → astrbot-4.3.3}/dashboard/src/components/chat/MessageList.vue +0 -0
  366. {astrbot-4.3.2 → astrbot-4.3.3}/dashboard/src/components/chat/ProviderModelSelector.vue +0 -0
  367. {astrbot-4.3.2 → astrbot-4.3.3}/dashboard/src/components/platform/AddNewPlatform.vue +0 -0
  368. {astrbot-4.3.2 → astrbot-4.3.3}/dashboard/src/components/provider/AddNewProvider.vue +0 -0
  369. {astrbot-4.3.2 → astrbot-4.3.3}/dashboard/src/components/shared/AstrBotConfig.vue +0 -0
  370. {astrbot-4.3.2 → astrbot-4.3.3}/dashboard/src/components/shared/AstrBotConfigV4.vue +0 -0
  371. {astrbot-4.3.2 → astrbot-4.3.3}/dashboard/src/components/shared/ConsoleDisplayer.vue +0 -0
  372. {astrbot-4.3.2 → astrbot-4.3.3}/dashboard/src/components/shared/ExtensionCard.vue +0 -0
  373. {astrbot-4.3.2 → astrbot-4.3.3}/dashboard/src/components/shared/ItemCard.vue +0 -0
  374. {astrbot-4.3.2 → astrbot-4.3.3}/dashboard/src/components/shared/ItemCardGrid.vue +0 -0
  375. {astrbot-4.3.2 → astrbot-4.3.3}/dashboard/src/components/shared/KnowledgeBaseSelector.vue +0 -0
  376. {astrbot-4.3.2 → astrbot-4.3.3}/dashboard/src/components/shared/LanguageSwitcher.vue +0 -0
  377. {astrbot-4.3.2 → astrbot-4.3.3}/dashboard/src/components/shared/ListConfigItem.vue +0 -0
  378. {astrbot-4.3.2 → astrbot-4.3.3}/dashboard/src/components/shared/Logo.vue +0 -0
  379. {astrbot-4.3.2 → astrbot-4.3.3}/dashboard/src/components/shared/MigrationDialog.vue +0 -0
  380. {astrbot-4.3.2 → astrbot-4.3.3}/dashboard/src/components/shared/ObjectEditor.vue +0 -0
  381. {astrbot-4.3.2 → astrbot-4.3.3}/dashboard/src/components/shared/PersonaSelector.vue +0 -0
  382. {astrbot-4.3.2 → astrbot-4.3.3}/dashboard/src/components/shared/PluginSetSelector.vue +0 -0
  383. {astrbot-4.3.2 → astrbot-4.3.3}/dashboard/src/components/shared/ProviderSelector.vue +0 -0
  384. {astrbot-4.3.2 → astrbot-4.3.3}/dashboard/src/components/shared/ProxySelector.vue +0 -0
  385. {astrbot-4.3.2 → astrbot-4.3.3}/dashboard/src/components/shared/ReadmeDialog.vue +0 -0
  386. {astrbot-4.3.2 → astrbot-4.3.3}/dashboard/src/components/shared/T2ITemplateEditor.vue +0 -0
  387. {astrbot-4.3.2 → astrbot-4.3.3}/dashboard/src/components/shared/WaitingForRestart.vue +0 -0
  388. {astrbot-4.3.2 → astrbot-4.3.3}/dashboard/src/config.ts +0 -0
  389. {astrbot-4.3.2 → astrbot-4.3.3}/dashboard/src/i18n/composables.ts +0 -0
  390. {astrbot-4.3.2 → astrbot-4.3.3}/dashboard/src/i18n/loader.ts +0 -0
  391. {astrbot-4.3.2 → astrbot-4.3.3}/dashboard/src/i18n/locales/en-US/core/actions.json +0 -0
  392. {astrbot-4.3.2 → astrbot-4.3.3}/dashboard/src/i18n/locales/en-US/core/common.json +0 -0
  393. {astrbot-4.3.2 → astrbot-4.3.3}/dashboard/src/i18n/locales/en-US/core/header.json +0 -0
  394. {astrbot-4.3.2 → astrbot-4.3.3}/dashboard/src/i18n/locales/en-US/core/navigation.json +0 -0
  395. {astrbot-4.3.2 → astrbot-4.3.3}/dashboard/src/i18n/locales/en-US/core/status.json +0 -0
  396. {astrbot-4.3.2 → astrbot-4.3.3}/dashboard/src/i18n/locales/en-US/features/about.json +0 -0
  397. {astrbot-4.3.2 → astrbot-4.3.3}/dashboard/src/i18n/locales/en-US/features/alkaid/index.json +0 -0
  398. {astrbot-4.3.2 → astrbot-4.3.3}/dashboard/src/i18n/locales/en-US/features/alkaid/knowledge-base.json +0 -0
  399. {astrbot-4.3.2 → astrbot-4.3.3}/dashboard/src/i18n/locales/en-US/features/alkaid/memory.json +0 -0
  400. {astrbot-4.3.2 → astrbot-4.3.3}/dashboard/src/i18n/locales/en-US/features/auth.json +0 -0
  401. {astrbot-4.3.2 → astrbot-4.3.3}/dashboard/src/i18n/locales/en-US/features/chart.json +0 -0
  402. {astrbot-4.3.2 → astrbot-4.3.3}/dashboard/src/i18n/locales/en-US/features/chat.json +0 -0
  403. {astrbot-4.3.2 → astrbot-4.3.3}/dashboard/src/i18n/locales/en-US/features/config.json +0 -0
  404. {astrbot-4.3.2 → astrbot-4.3.3}/dashboard/src/i18n/locales/en-US/features/console.json +0 -0
  405. {astrbot-4.3.2 → astrbot-4.3.3}/dashboard/src/i18n/locales/en-US/features/conversation.json +0 -0
  406. {astrbot-4.3.2 → astrbot-4.3.3}/dashboard/src/i18n/locales/en-US/features/dashboard.json +0 -0
  407. {astrbot-4.3.2 → astrbot-4.3.3}/dashboard/src/i18n/locales/en-US/features/extension.json +0 -0
  408. {astrbot-4.3.2 → astrbot-4.3.3}/dashboard/src/i18n/locales/en-US/features/migration.json +0 -0
  409. {astrbot-4.3.2 → astrbot-4.3.3}/dashboard/src/i18n/locales/en-US/features/persona.json +0 -0
  410. {astrbot-4.3.2 → astrbot-4.3.3}/dashboard/src/i18n/locales/en-US/features/platform.json +0 -0
  411. {astrbot-4.3.2 → astrbot-4.3.3}/dashboard/src/i18n/locales/en-US/features/provider.json +0 -0
  412. {astrbot-4.3.2 → astrbot-4.3.3}/dashboard/src/i18n/locales/en-US/features/session-management.json +0 -0
  413. {astrbot-4.3.2 → astrbot-4.3.3}/dashboard/src/i18n/locales/en-US/features/settings.json +0 -0
  414. {astrbot-4.3.2 → astrbot-4.3.3}/dashboard/src/i18n/locales/en-US/features/tool-use.json +0 -0
  415. {astrbot-4.3.2 → astrbot-4.3.3}/dashboard/src/i18n/locales/en-US/messages/errors.json +0 -0
  416. {astrbot-4.3.2 → astrbot-4.3.3}/dashboard/src/i18n/locales/en-US/messages/success.json +0 -0
  417. {astrbot-4.3.2 → astrbot-4.3.3}/dashboard/src/i18n/locales/en-US/messages/validation.json +0 -0
  418. {astrbot-4.3.2 → astrbot-4.3.3}/dashboard/src/i18n/locales/zh-CN/core/actions.json +0 -0
  419. {astrbot-4.3.2 → astrbot-4.3.3}/dashboard/src/i18n/locales/zh-CN/core/common.json +0 -0
  420. {astrbot-4.3.2 → astrbot-4.3.3}/dashboard/src/i18n/locales/zh-CN/core/header.json +0 -0
  421. {astrbot-4.3.2 → astrbot-4.3.3}/dashboard/src/i18n/locales/zh-CN/core/navigation.json +0 -0
  422. {astrbot-4.3.2 → astrbot-4.3.3}/dashboard/src/i18n/locales/zh-CN/core/status.json +0 -0
  423. {astrbot-4.3.2 → astrbot-4.3.3}/dashboard/src/i18n/locales/zh-CN/features/about.json +0 -0
  424. {astrbot-4.3.2 → astrbot-4.3.3}/dashboard/src/i18n/locales/zh-CN/features/alkaid/index.json +0 -0
  425. {astrbot-4.3.2 → astrbot-4.3.3}/dashboard/src/i18n/locales/zh-CN/features/alkaid/knowledge-base.json +0 -0
  426. {astrbot-4.3.2 → astrbot-4.3.3}/dashboard/src/i18n/locales/zh-CN/features/alkaid/memory.json +0 -0
  427. {astrbot-4.3.2 → astrbot-4.3.3}/dashboard/src/i18n/locales/zh-CN/features/auth.json +0 -0
  428. {astrbot-4.3.2 → astrbot-4.3.3}/dashboard/src/i18n/locales/zh-CN/features/chart.json +0 -0
  429. {astrbot-4.3.2 → astrbot-4.3.3}/dashboard/src/i18n/locales/zh-CN/features/chat.json +0 -0
  430. {astrbot-4.3.2 → astrbot-4.3.3}/dashboard/src/i18n/locales/zh-CN/features/config.json +0 -0
  431. {astrbot-4.3.2 → astrbot-4.3.3}/dashboard/src/i18n/locales/zh-CN/features/console.json +0 -0
  432. {astrbot-4.3.2 → astrbot-4.3.3}/dashboard/src/i18n/locales/zh-CN/features/conversation.json +0 -0
  433. {astrbot-4.3.2 → astrbot-4.3.3}/dashboard/src/i18n/locales/zh-CN/features/dashboard.json +0 -0
  434. {astrbot-4.3.2 → astrbot-4.3.3}/dashboard/src/i18n/locales/zh-CN/features/extension.json +0 -0
  435. {astrbot-4.3.2 → astrbot-4.3.3}/dashboard/src/i18n/locales/zh-CN/features/migration.json +0 -0
  436. {astrbot-4.3.2 → astrbot-4.3.3}/dashboard/src/i18n/locales/zh-CN/features/persona.json +0 -0
  437. {astrbot-4.3.2 → astrbot-4.3.3}/dashboard/src/i18n/locales/zh-CN/features/platform.json +0 -0
  438. {astrbot-4.3.2 → astrbot-4.3.3}/dashboard/src/i18n/locales/zh-CN/features/provider.json +0 -0
  439. {astrbot-4.3.2 → astrbot-4.3.3}/dashboard/src/i18n/locales/zh-CN/features/session-management.json +0 -0
  440. {astrbot-4.3.2 → astrbot-4.3.3}/dashboard/src/i18n/locales/zh-CN/features/settings.json +0 -0
  441. {astrbot-4.3.2 → astrbot-4.3.3}/dashboard/src/i18n/locales/zh-CN/features/tool-use.json +0 -0
  442. {astrbot-4.3.2 → astrbot-4.3.3}/dashboard/src/i18n/locales/zh-CN/messages/errors.json +0 -0
  443. {astrbot-4.3.2 → astrbot-4.3.3}/dashboard/src/i18n/locales/zh-CN/messages/success.json +0 -0
  444. {astrbot-4.3.2 → astrbot-4.3.3}/dashboard/src/i18n/locales/zh-CN/messages/validation.json +0 -0
  445. {astrbot-4.3.2 → astrbot-4.3.3}/dashboard/src/i18n/tools/index.ts +0 -0
  446. {astrbot-4.3.2 → astrbot-4.3.3}/dashboard/src/i18n/translations.ts +0 -0
  447. {astrbot-4.3.2 → astrbot-4.3.3}/dashboard/src/i18n/types.ts +0 -0
  448. {astrbot-4.3.2 → astrbot-4.3.3}/dashboard/src/i18n/validator.ts +0 -0
  449. {astrbot-4.3.2 → astrbot-4.3.3}/dashboard/src/layouts/blank/BlankLayout.vue +0 -0
  450. {astrbot-4.3.2 → astrbot-4.3.3}/dashboard/src/layouts/full/FullLayout.vue +0 -0
  451. {astrbot-4.3.2 → astrbot-4.3.3}/dashboard/src/layouts/full/vertical-header/VerticalHeader.vue +0 -0
  452. {astrbot-4.3.2 → astrbot-4.3.3}/dashboard/src/layouts/full/vertical-sidebar/NavItem.vue +0 -0
  453. {astrbot-4.3.2 → astrbot-4.3.3}/dashboard/src/layouts/full/vertical-sidebar/VerticalSidebar.vue +0 -0
  454. {astrbot-4.3.2 → astrbot-4.3.3}/dashboard/src/layouts/full/vertical-sidebar/sidebarItem.ts +0 -0
  455. {astrbot-4.3.2 → astrbot-4.3.3}/dashboard/src/main.ts +0 -0
  456. {astrbot-4.3.2 → astrbot-4.3.3}/dashboard/src/plugins/confirmPlugin.ts +0 -0
  457. {astrbot-4.3.2 → astrbot-4.3.3}/dashboard/src/plugins/vuetify.ts +0 -0
  458. {astrbot-4.3.2 → astrbot-4.3.3}/dashboard/src/router/AuthRoutes.ts +0 -0
  459. {astrbot-4.3.2 → astrbot-4.3.3}/dashboard/src/router/ChatBoxRoutes.ts +0 -0
  460. {astrbot-4.3.2 → astrbot-4.3.3}/dashboard/src/router/MainRoutes.ts +0 -0
  461. {astrbot-4.3.2 → astrbot-4.3.3}/dashboard/src/router/index.ts +0 -0
  462. {astrbot-4.3.2 → astrbot-4.3.3}/dashboard/src/scss/_override.scss +0 -0
  463. {astrbot-4.3.2 → astrbot-4.3.3}/dashboard/src/scss/_variables.scss +0 -0
  464. {astrbot-4.3.2 → astrbot-4.3.3}/dashboard/src/scss/components/_VButtons.scss +0 -0
  465. {astrbot-4.3.2 → astrbot-4.3.3}/dashboard/src/scss/components/_VCard.scss +0 -0
  466. {astrbot-4.3.2 → astrbot-4.3.3}/dashboard/src/scss/components/_VField.scss +0 -0
  467. {astrbot-4.3.2 → astrbot-4.3.3}/dashboard/src/scss/components/_VInput.scss +0 -0
  468. {astrbot-4.3.2 → astrbot-4.3.3}/dashboard/src/scss/components/_VNavigationDrawer.scss +0 -0
  469. {astrbot-4.3.2 → astrbot-4.3.3}/dashboard/src/scss/components/_VScrollbar.scss +0 -0
  470. {astrbot-4.3.2 → astrbot-4.3.3}/dashboard/src/scss/components/_VShadow.scss +0 -0
  471. {astrbot-4.3.2 → astrbot-4.3.3}/dashboard/src/scss/components/_VTabs.scss +0 -0
  472. {astrbot-4.3.2 → astrbot-4.3.3}/dashboard/src/scss/components/_VTextField.scss +0 -0
  473. {astrbot-4.3.2 → astrbot-4.3.3}/dashboard/src/scss/layout/_container.scss +0 -0
  474. {astrbot-4.3.2 → astrbot-4.3.3}/dashboard/src/scss/layout/_sidebar.scss +0 -0
  475. {astrbot-4.3.2 → astrbot-4.3.3}/dashboard/src/scss/pages/_dashboards.scss +0 -0
  476. {astrbot-4.3.2 → astrbot-4.3.3}/dashboard/src/scss/style.scss +0 -0
  477. {astrbot-4.3.2 → astrbot-4.3.3}/dashboard/src/stores/auth.ts +0 -0
  478. {astrbot-4.3.2 → astrbot-4.3.3}/dashboard/src/stores/common.js +0 -0
  479. {astrbot-4.3.2 → astrbot-4.3.3}/dashboard/src/stores/customizer.ts +0 -0
  480. {astrbot-4.3.2 → astrbot-4.3.3}/dashboard/src/stores/toast.js +0 -0
  481. {astrbot-4.3.2 → astrbot-4.3.3}/dashboard/src/theme/DarkTheme.ts +0 -0
  482. {astrbot-4.3.2 → astrbot-4.3.3}/dashboard/src/theme/LightTheme.ts +0 -0
  483. {astrbot-4.3.2 → astrbot-4.3.3}/dashboard/src/types/themeTypes/ThemeType.ts +0 -0
  484. {astrbot-4.3.2 → astrbot-4.3.3}/dashboard/src/types/vue3-print-nb.d.ts +0 -0
  485. {astrbot-4.3.2 → astrbot-4.3.3}/dashboard/src/types/vue_tabler_icon.d.ts +0 -0
  486. {astrbot-4.3.2 → astrbot-4.3.3}/dashboard/src/utils/platformUtils.js +0 -0
  487. {astrbot-4.3.2 → astrbot-4.3.3}/dashboard/src/utils/providerUtils.js +0 -0
  488. {astrbot-4.3.2 → astrbot-4.3.3}/dashboard/src/utils/toast.js +0 -0
  489. {astrbot-4.3.2 → astrbot-4.3.3}/dashboard/src/views/AboutPage.vue +0 -0
  490. {astrbot-4.3.2 → astrbot-4.3.3}/dashboard/src/views/AlkaidPage.vue +0 -0
  491. {astrbot-4.3.2 → astrbot-4.3.3}/dashboard/src/views/ChatBoxPage.vue +0 -0
  492. {astrbot-4.3.2 → astrbot-4.3.3}/dashboard/src/views/ChatPage.vue +0 -0
  493. {astrbot-4.3.2 → astrbot-4.3.3}/dashboard/src/views/ConfigPage.vue +0 -0
  494. {astrbot-4.3.2 → astrbot-4.3.3}/dashboard/src/views/ConsolePage.vue +0 -0
  495. {astrbot-4.3.2 → astrbot-4.3.3}/dashboard/src/views/ExtensionPage.vue +0 -0
  496. {astrbot-4.3.2 → astrbot-4.3.3}/dashboard/src/views/PersonaPage.vue +0 -0
  497. {astrbot-4.3.2 → astrbot-4.3.3}/dashboard/src/views/PlatformPage.vue +0 -0
  498. {astrbot-4.3.2 → astrbot-4.3.3}/dashboard/src/views/ProviderPage.vue +0 -0
  499. {astrbot-4.3.2 → astrbot-4.3.3}/dashboard/src/views/Settings.vue +0 -0
  500. {astrbot-4.3.2 → astrbot-4.3.3}/dashboard/src/views/ToolUsePage.vue +0 -0
  501. {astrbot-4.3.2 → astrbot-4.3.3}/dashboard/src/views/alkaid/KnowledgeBase.vue +0 -0
  502. {astrbot-4.3.2 → astrbot-4.3.3}/dashboard/src/views/alkaid/LongTermMemory.vue +0 -0
  503. {astrbot-4.3.2 → astrbot-4.3.3}/dashboard/src/views/alkaid/Other.vue +0 -0
  504. {astrbot-4.3.2 → astrbot-4.3.3}/dashboard/src/views/authentication/auth/LoginPage.vue +0 -0
  505. {astrbot-4.3.2 → astrbot-4.3.3}/dashboard/src/views/authentication/authForms/AuthLogin.vue +0 -0
  506. {astrbot-4.3.2 → astrbot-4.3.3}/dashboard/src/views/dashboards/default/DefaultDashboard.vue +0 -0
  507. {astrbot-4.3.2 → astrbot-4.3.3}/dashboard/src/views/dashboards/default/components/MemoryUsage.vue +0 -0
  508. {astrbot-4.3.2 → astrbot-4.3.3}/dashboard/src/views/dashboards/default/components/MessageStat.vue +0 -0
  509. {astrbot-4.3.2 → astrbot-4.3.3}/dashboard/src/views/dashboards/default/components/OnlinePlatform.vue +0 -0
  510. {astrbot-4.3.2 → astrbot-4.3.3}/dashboard/src/views/dashboards/default/components/OnlineTime.vue +0 -0
  511. {astrbot-4.3.2 → astrbot-4.3.3}/dashboard/src/views/dashboards/default/components/PlatformStat.vue +0 -0
  512. {astrbot-4.3.2 → astrbot-4.3.3}/dashboard/src/views/dashboards/default/components/RunningTime.vue +0 -0
  513. {astrbot-4.3.2 → astrbot-4.3.3}/dashboard/src/views/dashboards/default/components/TotalMessage.vue +0 -0
  514. {astrbot-4.3.2 → astrbot-4.3.3}/dashboard/tsconfig.json +0 -0
  515. {astrbot-4.3.2 → astrbot-4.3.3}/dashboard/tsconfig.vite-config.json +0 -0
  516. {astrbot-4.3.2 → astrbot-4.3.3}/dashboard/vite.config.ts +0 -0
  517. {astrbot-4.3.2 → astrbot-4.3.3}/main.py +0 -0
  518. {astrbot-4.3.2 → astrbot-4.3.3}/packages/astrbot/commands/__init__.py +0 -0
  519. {astrbot-4.3.2 → astrbot-4.3.3}/packages/astrbot/commands/admin.py +0 -0
  520. {astrbot-4.3.2 → astrbot-4.3.3}/packages/astrbot/commands/alter_cmd.py +0 -0
  521. {astrbot-4.3.2 → astrbot-4.3.3}/packages/astrbot/commands/help.py +0 -0
  522. {astrbot-4.3.2 → astrbot-4.3.3}/packages/astrbot/commands/llm.py +0 -0
  523. {astrbot-4.3.2 → astrbot-4.3.3}/packages/astrbot/commands/persona.py +0 -0
  524. {astrbot-4.3.2 → astrbot-4.3.3}/packages/astrbot/commands/plugin.py +0 -0
  525. {astrbot-4.3.2 → astrbot-4.3.3}/packages/astrbot/commands/provider.py +0 -0
  526. {astrbot-4.3.2 → astrbot-4.3.3}/packages/astrbot/commands/setunset.py +0 -0
  527. {astrbot-4.3.2 → astrbot-4.3.3}/packages/astrbot/commands/sid.py +0 -0
  528. {astrbot-4.3.2 → astrbot-4.3.3}/packages/astrbot/commands/t2i.py +0 -0
  529. {astrbot-4.3.2 → astrbot-4.3.3}/packages/astrbot/commands/tool.py +0 -0
  530. {astrbot-4.3.2 → astrbot-4.3.3}/packages/astrbot/commands/tts.py +0 -0
  531. {astrbot-4.3.2 → astrbot-4.3.3}/packages/astrbot/long_term_memory.py +0 -0
  532. {astrbot-4.3.2 → astrbot-4.3.3}/packages/astrbot/main.py +0 -0
  533. {astrbot-4.3.2 → astrbot-4.3.3}/packages/astrbot/metadata.yaml +0 -0
  534. {astrbot-4.3.2 → astrbot-4.3.3}/packages/astrbot/process_llm_request.py +0 -0
  535. {astrbot-4.3.2 → astrbot-4.3.3}/packages/python_interpreter/metadata.yaml +0 -0
  536. {astrbot-4.3.2 → astrbot-4.3.3}/packages/python_interpreter/requirements.txt +0 -0
  537. {astrbot-4.3.2 → astrbot-4.3.3}/packages/python_interpreter/shared/api.py +0 -0
  538. {astrbot-4.3.2 → astrbot-4.3.3}/packages/reminder/main.py +0 -0
  539. {astrbot-4.3.2 → astrbot-4.3.3}/packages/reminder/metadata.yaml +0 -0
  540. {astrbot-4.3.2 → astrbot-4.3.3}/packages/session_controller/main.py +0 -0
  541. {astrbot-4.3.2 → astrbot-4.3.3}/packages/session_controller/metadata.yaml +0 -0
  542. {astrbot-4.3.2 → astrbot-4.3.3}/packages/thinking_filter/main.py +0 -0
  543. {astrbot-4.3.2 → astrbot-4.3.3}/packages/thinking_filter/metadata.yaml +0 -0
  544. {astrbot-4.3.2 → astrbot-4.3.3}/packages/web_searcher/engines/__init__.py +0 -0
  545. {astrbot-4.3.2 → astrbot-4.3.3}/packages/web_searcher/engines/bing.py +0 -0
  546. {astrbot-4.3.2 → astrbot-4.3.3}/packages/web_searcher/engines/google.py +0 -0
  547. {astrbot-4.3.2 → astrbot-4.3.3}/packages/web_searcher/engines/sogo.py +0 -0
  548. {astrbot-4.3.2 → astrbot-4.3.3}/packages/web_searcher/main.py +0 -0
  549. {astrbot-4.3.2 → astrbot-4.3.3}/packages/web_searcher/metadata.yaml +0 -0
  550. {astrbot-4.3.2 → astrbot-4.3.3}/requirements.txt +0 -0
  551. {astrbot-4.3.2 → astrbot-4.3.3}/samples/stt_health_check.wav +0 -0
  552. {astrbot-4.3.2 → astrbot-4.3.3}/tests/test_dashboard.py +0 -0
  553. {astrbot-4.3.2 → astrbot-4.3.3}/tests/test_main.py +0 -0
  554. {astrbot-4.3.2 → astrbot-4.3.3}/tests/test_plugin_manager.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: AstrBot
3
- Version: 4.3.2
3
+ Version: 4.3.3
4
4
  Summary: 易上手的多平台 LLM 聊天机器人及开发框架
5
5
  License-File: LICENSE
6
6
  Requires-Python: >=3.10
@@ -6,7 +6,7 @@ import os
6
6
 
7
7
  from astrbot.core.utils.astrbot_path import get_astrbot_data_path
8
8
 
9
- VERSION = "4.3.2"
9
+ VERSION = "4.3.3"
10
10
  DB_PATH = os.path.join(get_astrbot_data_path(), "data_v4.db")
11
11
 
12
12
  # 默认配置
@@ -775,7 +775,7 @@ CONFIG_METADATA_2 = {
775
775
  "timeout": 120,
776
776
  "model_config": {"model": "deepseek-chat", "temperature": 0.4},
777
777
  "custom_extra_body": {},
778
- "modalities": ["text", "image", "tool_use"],
778
+ "modalities": ["text", "tool_use"],
779
779
  },
780
780
  "302.AI": {
781
781
  "id": "302ai",
@@ -821,6 +821,21 @@ CONFIG_METADATA_2 = {
821
821
  },
822
822
  "custom_extra_body": {},
823
823
  },
824
+ "小马算力": {
825
+ "id": "tokenpony",
826
+ "provider": "tokenpony",
827
+ "type": "openai_chat_completion",
828
+ "provider_type": "chat_completion",
829
+ "enable": True,
830
+ "key": [],
831
+ "api_base": "https://api.tokenpony.cn/v1",
832
+ "timeout": 120,
833
+ "model_config": {
834
+ "model": "kimi-k2-instruct-0905",
835
+ "temperature": 0.7,
836
+ },
837
+ "custom_extra_body": {},
838
+ },
824
839
  "优云智算": {
825
840
  "id": "compshare",
826
841
  "provider": "compshare",
@@ -1041,6 +1056,7 @@ CONFIG_METADATA_2 = {
1041
1056
  "timeout": "20",
1042
1057
  },
1043
1058
  "阿里云百炼 TTS(API)": {
1059
+ "hint": "API Key 从 https://bailian.console.aliyun.com/?tab=model#/api-key 获取。模型和音色的选择文档请参考: 阿里云百炼语音合成音色名称。具体可参考 https://help.aliyun.com/zh/model-studio/speech-synthesis-and-speech-recognition",
1044
1060
  "id": "dashscope_tts",
1045
1061
  "provider": "dashscope",
1046
1062
  "type": "dashscope_tts",
@@ -1420,11 +1436,7 @@ CONFIG_METADATA_2 = {
1420
1436
  "description": "服务订阅密钥",
1421
1437
  "hint": "Azure_TTS 服务的订阅密钥(注意不是令牌)",
1422
1438
  },
1423
- "dashscope_tts_voice": {
1424
- "description": "语音合成模型",
1425
- "type": "string",
1426
- "hint": "阿里云百炼语音合成模型名称。具体可参考 https://help.aliyun.com/zh/model-studio/developer-reference/cosyvoice-python-api 等内容",
1427
- },
1439
+ "dashscope_tts_voice": {"description": "音色", "type": "string"},
1428
1440
  "gm_resp_image_modal": {
1429
1441
  "description": "启用图片模态",
1430
1442
  "type": "bool",
@@ -32,6 +32,12 @@ class SQLiteDatabase(BaseDatabase):
32
32
  """Initialize the database by creating tables if they do not exist."""
33
33
  async with self.engine.begin() as conn:
34
34
  await conn.run_sync(SQLModel.metadata.create_all)
35
+ await conn.execute(text("PRAGMA journal_mode=WAL"))
36
+ await conn.execute(text("PRAGMA synchronous=NORMAL"))
37
+ await conn.execute(text("PRAGMA cache_size=20000"))
38
+ await conn.execute(text("PRAGMA temp_store=MEMORY"))
39
+ await conn.execute(text("PRAGMA mmap_size=134217728"))
40
+ await conn.execute(text("PRAGMA optimize"))
35
41
  await conn.commit()
36
42
 
37
43
  # ====
@@ -160,6 +166,7 @@ class SQLiteDatabase(BaseDatabase):
160
166
  col(ConversationV2.title).ilike(f"%{search_query}%"),
161
167
  col(ConversationV2.content).ilike(f"%{search_query}%"),
162
168
  col(ConversationV2.user_id).ilike(f"%{search_query}%"),
169
+ col(ConversationV2.conversation_id).ilike(f"%{search_query}%"),
163
170
  )
164
171
  )
165
172
  if "message_types" in kwargs and len(kwargs["message_types"]) > 0:
@@ -97,5 +97,6 @@ async def call_event_hook(
97
97
  logger.info(
98
98
  f"{star_map[handler.handler_module_path].name} - {handler.handler_name} 终止了事件传播。"
99
99
  )
100
+ return True
100
101
 
101
102
  return event.is_stopped()
@@ -189,54 +189,54 @@ class ResultDecorateStage(Stage):
189
189
  logger.warning(
190
190
  f"会话 {event.unified_msg_origin} 未配置文本转语音模型。"
191
191
  )
192
- return
193
- new_chain = []
194
- for comp in result.chain:
195
- if isinstance(comp, Plain) and len(comp.text) > 1:
196
- try:
197
- logger.info(f"TTS 请求: {comp.text}")
198
- audio_path = await tts_provider.get_audio(comp.text)
199
- logger.info(f"TTS 结果: {audio_path}")
200
- if not audio_path:
201
- logger.error(
202
- f"由于 TTS 音频文件未找到,消息段转语音失败: {comp.text}"
203
- )
204
- new_chain.append(comp)
205
- continue
192
+ else:
193
+ new_chain = []
194
+ for comp in result.chain:
195
+ if isinstance(comp, Plain) and len(comp.text) > 1:
196
+ try:
197
+ logger.info(f"TTS 请求: {comp.text}")
198
+ audio_path = await tts_provider.get_audio(comp.text)
199
+ logger.info(f"TTS 结果: {audio_path}")
200
+ if not audio_path:
201
+ logger.error(
202
+ f"由于 TTS 音频文件未找到,消息段转语音失败: {comp.text}"
203
+ )
204
+ new_chain.append(comp)
205
+ continue
206
206
 
207
- use_file_service = self.ctx.astrbot_config[
208
- "provider_tts_settings"
209
- ]["use_file_service"]
210
- callback_api_base = self.ctx.astrbot_config[
211
- "callback_api_base"
212
- ]
213
- dual_output = self.ctx.astrbot_config[
214
- "provider_tts_settings"
215
- ]["dual_output"]
207
+ use_file_service = self.ctx.astrbot_config[
208
+ "provider_tts_settings"
209
+ ]["use_file_service"]
210
+ callback_api_base = self.ctx.astrbot_config[
211
+ "callback_api_base"
212
+ ]
213
+ dual_output = self.ctx.astrbot_config[
214
+ "provider_tts_settings"
215
+ ]["dual_output"]
216
216
 
217
- url = None
218
- if use_file_service and callback_api_base:
219
- token = await file_token_service.register_file(
220
- audio_path
221
- )
222
- url = f"{callback_api_base}/api/file/{token}"
223
- logger.debug(f"已注册:{url}")
217
+ url = None
218
+ if use_file_service and callback_api_base:
219
+ token = await file_token_service.register_file(
220
+ audio_path
221
+ )
222
+ url = f"{callback_api_base}/api/file/{token}"
223
+ logger.debug(f"已注册:{url}")
224
224
 
225
- new_chain.append(
226
- Record(
227
- file=url or audio_path,
228
- url=url or audio_path,
225
+ new_chain.append(
226
+ Record(
227
+ file=url or audio_path,
228
+ url=url or audio_path,
229
+ )
229
230
  )
230
- )
231
- if dual_output:
231
+ if dual_output:
232
+ new_chain.append(comp)
233
+ except Exception:
234
+ logger.error(traceback.format_exc())
235
+ logger.error("TTS 失败,使用文本发送。")
232
236
  new_chain.append(comp)
233
- except Exception:
234
- logger.error(traceback.format_exc())
235
- logger.error("TTS 失败,使用文本发送。")
237
+ else:
236
238
  new_chain.append(comp)
237
- else:
238
- new_chain.append(comp)
239
- result.chain = new_chain
239
+ result.chain = new_chain
240
240
 
241
241
  # 文本转图片
242
242
  elif (
@@ -279,7 +279,6 @@ class ResultDecorateStage(Stage):
279
279
  result.chain = [Image.fromFileSystem(url)]
280
280
 
281
281
  # 触发转发消息
282
- has_forwarded = False
283
282
  if event.get_platform_name() == "aiocqhttp":
284
283
  word_cnt = 0
285
284
  for comp in result.chain:
@@ -290,9 +289,9 @@ class ResultDecorateStage(Stage):
290
289
  uin=event.get_self_id(), name="AstrBot", content=[*result.chain]
291
290
  )
292
291
  result.chain = [node]
293
- has_forwarded = True
294
292
 
295
- if not has_forwarded:
293
+ has_plain = any(isinstance(item, Plain) for item in result.chain)
294
+ if has_plain:
296
295
  # at 回复
297
296
  if (
298
297
  self.reply_with_mention
@@ -68,7 +68,8 @@ class Provider(AbstractProvider):
68
68
 
69
69
  def get_keys(self) -> List[str]:
70
70
  """获得提供商 Key"""
71
- return self.provider_config.get("key", [])
71
+ keys = self.provider_config.get("key", [""])
72
+ return keys or [""]
72
73
 
73
74
  @abc.abstractmethod
74
75
  def set_key(self, key: str):
@@ -33,7 +33,7 @@ class ProviderAnthropic(Provider):
33
33
  )
34
34
 
35
35
  self.chosen_api_key: str = ""
36
- self.api_keys: List = provider_config.get("key", [])
36
+ self.api_keys: List = super().get_keys()
37
37
  self.chosen_api_key = self.api_keys[0] if len(self.api_keys) > 0 else ""
38
38
  self.base_url = provider_config.get("api_base", "https://api.anthropic.com")
39
39
  self.timeout = provider_config.get("timeout", 120)
@@ -70,9 +70,13 @@ class ProviderAnthropic(Provider):
70
70
  {
71
71
  "type": "tool_use",
72
72
  "name": tool_call["function"]["name"],
73
- "input": json.loads(tool_call["function"]["arguments"])
74
- if isinstance(tool_call["function"]["arguments"], str)
75
- else tool_call["function"]["arguments"],
73
+ "input": (
74
+ json.loads(tool_call["function"]["arguments"])
75
+ if isinstance(
76
+ tool_call["function"]["arguments"], str
77
+ )
78
+ else tool_call["function"]["arguments"]
79
+ ),
76
80
  "id": tool_call["id"],
77
81
  }
78
82
  )
@@ -355,9 +359,11 @@ class ProviderAnthropic(Provider):
355
359
  "source": {
356
360
  "type": "base64",
357
361
  "media_type": mime_type,
358
- "data": image_data.split("base64,")[1]
359
- if "base64," in image_data
360
- else image_data,
362
+ "data": (
363
+ image_data.split("base64,")[1]
364
+ if "base64," in image_data
365
+ else image_data
366
+ ),
361
367
  },
362
368
  }
363
369
  )
@@ -0,0 +1,149 @@
1
+ import asyncio
2
+ import base64
3
+ import logging
4
+ import os
5
+ import uuid
6
+ from typing import Optional, Tuple
7
+ import aiohttp
8
+ import dashscope
9
+ from dashscope.audio.tts_v2 import AudioFormat, SpeechSynthesizer
10
+
11
+ try:
12
+ from dashscope.aigc.multimodal_conversation import MultiModalConversation
13
+ except (
14
+ ImportError
15
+ ): # pragma: no cover - older dashscope versions without Qwen TTS support
16
+ MultiModalConversation = None
17
+
18
+ from ..entities import ProviderType
19
+ from ..provider import TTSProvider
20
+ from ..register import register_provider_adapter
21
+ from astrbot.core.utils.astrbot_path import get_astrbot_data_path
22
+
23
+
24
+ @register_provider_adapter(
25
+ "dashscope_tts", "Dashscope TTS API", provider_type=ProviderType.TEXT_TO_SPEECH
26
+ )
27
+ class ProviderDashscopeTTSAPI(TTSProvider):
28
+ def __init__(
29
+ self,
30
+ provider_config: dict,
31
+ provider_settings: dict,
32
+ ) -> None:
33
+ super().__init__(provider_config, provider_settings)
34
+ self.chosen_api_key: str = provider_config.get("api_key", "")
35
+ self.voice: str = provider_config.get("dashscope_tts_voice", "loongstella")
36
+ self.set_model(provider_config.get("model", None))
37
+ self.timeout_ms = float(provider_config.get("timeout", 20)) * 1000
38
+ dashscope.api_key = self.chosen_api_key
39
+
40
+ async def get_audio(self, text: str) -> str:
41
+ model = self.get_model()
42
+ if not model:
43
+ raise RuntimeError("Dashscope TTS model is not configured.")
44
+
45
+ temp_dir = os.path.join(get_astrbot_data_path(), "temp")
46
+ os.makedirs(temp_dir, exist_ok=True)
47
+
48
+ if self._is_qwen_tts_model(model):
49
+ audio_bytes, ext = await self._synthesize_with_qwen_tts(model, text)
50
+ else:
51
+ audio_bytes, ext = await self._synthesize_with_cosyvoice(model, text)
52
+
53
+ if not audio_bytes:
54
+ raise RuntimeError(
55
+ "Audio synthesis failed, returned empty content. The model may not be supported or the service is unavailable."
56
+ )
57
+
58
+ path = os.path.join(temp_dir, f"dashscope_tts_{uuid.uuid4()}{ext}")
59
+ with open(path, "wb") as f:
60
+ f.write(audio_bytes)
61
+ return path
62
+
63
+ def _call_qwen_tts(self, model: str, text: str):
64
+ if MultiModalConversation is None:
65
+ raise RuntimeError(
66
+ "dashscope SDK missing MultiModalConversation. Please upgrade the dashscope package to use Qwen TTS models."
67
+ )
68
+
69
+ kwargs = {
70
+ "model": model,
71
+ "text": text,
72
+ "api_key": self.chosen_api_key,
73
+ "voice": self.voice or "Cherry",
74
+ }
75
+ if not self.voice:
76
+ logging.warning(
77
+ "No voice specified for Qwen TTS model, using default 'Cherry'."
78
+ )
79
+ return MultiModalConversation.call(**kwargs)
80
+
81
+ async def _synthesize_with_qwen_tts(
82
+ self, model: str, text: str
83
+ ) -> Tuple[Optional[bytes], str]:
84
+ loop = asyncio.get_event_loop()
85
+ response = await loop.run_in_executor(None, self._call_qwen_tts, model, text)
86
+ audio_bytes = await self._extract_audio_from_response(response)
87
+ if not audio_bytes:
88
+ raise RuntimeError(
89
+ f"Audio synthesis failed for model '{model}'. {response}"
90
+ )
91
+ ext = ".wav"
92
+ return audio_bytes, ext
93
+
94
+ async def _extract_audio_from_response(self, response) -> Optional[bytes]:
95
+ output = getattr(response, "output", None)
96
+ audio_obj = getattr(output, "audio", None) if output is not None else None
97
+ if not audio_obj:
98
+ return None
99
+
100
+ data_b64 = getattr(audio_obj, "data", None)
101
+ if data_b64:
102
+ try:
103
+ return base64.b64decode(data_b64)
104
+ except (ValueError, TypeError):
105
+ logging.error("Failed to decode base64 audio data.")
106
+ return None
107
+
108
+ url = getattr(audio_obj, "url", None)
109
+ if url:
110
+ return await self._download_audio_from_url(url)
111
+ return None
112
+
113
+ async def _download_audio_from_url(self, url: str) -> Optional[bytes]:
114
+ if not url:
115
+ return None
116
+ timeout = max(self.timeout_ms / 1000, 1) if self.timeout_ms else 20
117
+ try:
118
+ async with aiohttp.ClientSession() as session:
119
+ async with session.get(
120
+ url, timeout=aiohttp.ClientTimeout(total=timeout)
121
+ ) as response:
122
+ return await response.read()
123
+ except (aiohttp.ClientError, asyncio.TimeoutError, OSError) as e:
124
+ logging.error(f"Failed to download audio from URL {url}: {e}")
125
+ return None
126
+
127
+ async def _synthesize_with_cosyvoice(
128
+ self, model: str, text: str
129
+ ) -> Tuple[Optional[bytes], str]:
130
+ synthesizer = SpeechSynthesizer(
131
+ model=model,
132
+ voice=self.voice,
133
+ format=AudioFormat.WAV_24000HZ_MONO_16BIT,
134
+ )
135
+ loop = asyncio.get_event_loop()
136
+ audio_bytes = await loop.run_in_executor(
137
+ None, synthesizer.call, text, self.timeout_ms
138
+ )
139
+ if not audio_bytes:
140
+ resp = synthesizer.get_response()
141
+ if resp and isinstance(resp, dict):
142
+ raise RuntimeError(
143
+ f"Audio synthesis failed for model '{model}'. {resp}".strip()
144
+ )
145
+ return audio_bytes, ".wav"
146
+
147
+ def _is_qwen_tts_model(self, model: str) -> bool:
148
+ model_lower = model.lower()
149
+ return "tts" in model_lower and model_lower.startswith("qwen")
@@ -3,7 +3,7 @@ import base64
3
3
  import json
4
4
  import logging
5
5
  import random
6
- from typing import Optional
6
+ from typing import Optional, List
7
7
  from collections.abc import AsyncGenerator
8
8
 
9
9
  from google import genai
@@ -60,7 +60,7 @@ class ProviderGoogleGenAI(Provider):
60
60
  provider_settings,
61
61
  default_persona,
62
62
  )
63
- self.api_keys: list = provider_config.get("key", [])
63
+ self.api_keys: List = super().get_keys()
64
64
  self.chosen_api_key: str = self.api_keys[0] if len(self.api_keys) > 0 else ""
65
65
  self.timeout: int = int(provider_config.get("timeout", 180))
66
66
 
@@ -218,19 +218,21 @@ class ProviderGoogleGenAI(Provider):
218
218
  response_modalities=modalities,
219
219
  tools=tool_list,
220
220
  safety_settings=self.safety_settings if self.safety_settings else None,
221
- thinking_config=types.ThinkingConfig(
222
- thinking_budget=min(
223
- int(
224
- self.provider_config.get("gm_thinking_config", {}).get(
225
- "budget", 0
226
- )
221
+ thinking_config=(
222
+ types.ThinkingConfig(
223
+ thinking_budget=min(
224
+ int(
225
+ self.provider_config.get("gm_thinking_config", {}).get(
226
+ "budget", 0
227
+ )
228
+ ),
229
+ 24576,
227
230
  ),
228
- 24576,
229
- ),
230
- )
231
- if "gemini-2.5-flash" in self.get_model()
232
- and hasattr(types.ThinkingConfig, "thinking_budget")
233
- else None,
231
+ )
232
+ if "gemini-2.5-flash" in self.get_model()
233
+ and hasattr(types.ThinkingConfig, "thinking_budget")
234
+ else None
235
+ ),
234
236
  automatic_function_calling=types.AutomaticFunctionCallingConfig(
235
237
  disable=True
236
238
  ),
@@ -274,9 +276,11 @@ class ProviderGoogleGenAI(Provider):
274
276
  if role == "user":
275
277
  if isinstance(content, list):
276
278
  parts = [
277
- types.Part.from_text(text=item["text"] or " ")
278
- if item["type"] == "text"
279
- else process_image_url(item["image_url"])
279
+ (
280
+ types.Part.from_text(text=item["text"] or " ")
281
+ if item["type"] == "text"
282
+ else process_image_url(item["image_url"])
283
+ )
280
284
  for item in content
281
285
  ]
282
286
  else:
@@ -38,7 +38,7 @@ class ProviderOpenAIOfficial(Provider):
38
38
  default_persona,
39
39
  )
40
40
  self.chosen_api_key = None
41
- self.api_keys: List = provider_config.get("key", [])
41
+ self.api_keys: List = super().get_keys()
42
42
  self.chosen_api_key = self.api_keys[0] if len(self.api_keys) > 0 else None
43
43
  self.timeout = provider_config.get("timeout", 120)
44
44
  if isinstance(self.timeout, str):
@@ -65,12 +65,12 @@ class SessionManagementRoute(Route):
65
65
  persona_name = data["persona_name"]
66
66
 
67
67
  # 处理 persona 显示
68
- if conv_persona_id == "[%None]":
69
- persona_name = "无人格"
70
- else:
71
- default_persona = persona_mgr.selected_default_persona_v3
72
- if default_persona:
73
- persona_name = default_persona["name"]
68
+ if persona_name is None:
69
+ if conv_persona_id is None:
70
+ if default_persona := persona_mgr.selected_default_persona_v3:
71
+ persona_name = default_persona["name"]
72
+ else:
73
+ persona_name = "[%None]"
74
74
 
75
75
  session_info = {
76
76
  "session_id": session_id,
@@ -9,6 +9,8 @@ from astrbot.core.config.default import VERSION
9
9
  from astrbot.core import DEMO_MODE
10
10
  from astrbot.core.db.migration.helper import do_migration_v4, check_migration_needed_v4
11
11
 
12
+ CLEAR_SITE_DATA_HEADERS = {"Clear-Site-Data": '"cache"'}
13
+
12
14
 
13
15
  class UpdateRoute(Route):
14
16
  def __init__(
@@ -113,17 +115,19 @@ class UpdateRoute(Route):
113
115
 
114
116
  if reboot:
115
117
  await self.core_lifecycle.restart()
116
- return (
118
+ ret = (
117
119
  Response()
118
120
  .ok(None, "更新成功,AstrBot 将在 2 秒内全量重启以应用新的代码。")
119
121
  .__dict__
120
122
  )
123
+ return ret, 200, CLEAR_SITE_DATA_HEADERS
121
124
  else:
122
- return (
125
+ ret = (
123
126
  Response()
124
127
  .ok(None, "更新成功,AstrBot 将在下次启动时应用新的代码。")
125
128
  .__dict__
126
129
  )
130
+ return ret, 200, CLEAR_SITE_DATA_HEADERS
127
131
  except Exception as e:
128
132
  logger.error(f"/api/update_project: {traceback.format_exc()}")
129
133
  return Response().error(e.__str__()).__dict__
@@ -135,9 +139,8 @@ class UpdateRoute(Route):
135
139
  except Exception as e:
136
140
  logger.error(f"下载管理面板文件失败: {e}。")
137
141
  return Response().error(f"下载管理面板文件失败: {e}").__dict__
138
- return (
139
- Response().ok(None, "更新成功。刷新页面即可应用新版本面板。").__dict__
140
- )
142
+ ret = Response().ok(None, "更新成功。刷新页面即可应用新版本面板。").__dict__
143
+ return ret, 200, CLEAR_SITE_DATA_HEADERS
141
144
  except Exception as e:
142
145
  logger.error(f"/api/update_dashboard: {traceback.format_exc()}")
143
146
  return Response().error(e.__str__()).__dict__
@@ -0,0 +1,12 @@
1
+ # What's Changed
2
+
3
+ 1. fix: 修复了代码执行器插件不能正确获得发送来文件的问题 ([#2970](https://github.com/Soulter/AstrBot/issues/2970))
4
+ 2. fix: 修改的 DeepSeek 默认 modalities,避免默认勾选图像导致的报错。 ([#2963](https://github.com/Soulter/AstrBot/issues/2963))
5
+ 3. fix: 事件钩子终止事件传播后不继续执行 ([#2989](https://github.com/Soulter/AstrBot/issues/2989))
6
+ 4. fix: 启动了 TTS 但未配置 TTS 模型时,At 和 Reply 发送人无效
7
+ 5. fix: 修复 session-management 中人格错误的显示为默认人格的问题 ([#3000](https://github.com/Soulter/AstrBot/issues/3000))
8
+ 6. fix: 修复了删除对话时,聊天增强中的记录未被清除,导致新对话中仍然出现之前的聊天记录。 ([#3002](https://github.com/Soulter/AstrBot/issues/3002))
9
+ 7. fix: 修复阿里云百炼平台 TTS 下接入 CosyVoice V2, Qwen TTS 生成报错的问题 ([#2964](https://github.com/Soulter/AstrBot/issues/2964))
10
+ 8. perf: 优化 SQLite 参数配置,对话和会话管理增加输入防抖机制 ([#2969](https://github.com/Soulter/AstrBot/issues/2969))
11
+ 9. feat: 在新对话中重用先前的对话人格设置 ([#3005](https://github.com/Soulter/AstrBot/issues/3005))
12
+ 10. feat: 从 WebUI 更新后清除浏览器缓存 ([#2958](https://github.com/Soulter/AstrBot/issues/2958))