AstrBot 4.10.0a2__tar.gz → 4.10.2__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 (712) hide show
  1. {astrbot-4.10.0a2 → astrbot-4.10.2}/PKG-INFO +2 -2
  2. astrbot-4.10.2/astrbot/cli/__init__.py +1 -0
  3. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/config/default.py +1 -1
  4. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/platform/sources/aiocqhttp/aiocqhttp_platform_adapter.py +17 -2
  5. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/provider/sources/gemini_source.py +19 -3
  6. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/star/command_management.py +57 -10
  7. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/star/star_manager.py +5 -1
  8. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/dashboard/routes/command.py +2 -1
  9. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/dashboard/routes/config.py +20 -8
  10. astrbot-4.10.2/changelogs/v4.10.0.md +40 -0
  11. astrbot-4.10.2/changelogs/v4.10.1.md +46 -0
  12. astrbot-4.10.2/changelogs/v4.10.2.md +9 -0
  13. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/components/chat/ChatInput.vue +12 -2
  14. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/components/chat/ConversationSidebar.vue +2 -1
  15. astrbot-4.10.2/dashboard/src/components/extension/componentPanel/components/RenameDialog.vue +131 -0
  16. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/components/extension/componentPanel/composables/useCommandActions.ts +4 -1
  17. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/components/extension/componentPanel/index.vue +2 -0
  18. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/components/extension/componentPanel/types.ts +1 -0
  19. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/components/provider/ProviderSourcesPanel.vue +7 -0
  20. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/composables/useProviderSources.ts +5 -3
  21. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/i18n/locales/en-US/features/command.json +2 -0
  22. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/i18n/locales/en-US/features/provider.json +1 -1
  23. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/i18n/locales/zh-CN/features/command.json +2 -0
  24. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/i18n/locales/zh-CN/features/provider.json +1 -1
  25. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/layouts/full/FullLayout.vue +12 -0
  26. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/router/index.ts +11 -0
  27. astrbot-4.10.2/dashboard/src/stores/routerLoading.ts +60 -0
  28. {astrbot-4.10.0a2 → astrbot-4.10.2}/pyproject.toml +2 -2
  29. {astrbot-4.10.0a2 → astrbot-4.10.2}/requirements.txt +1 -1
  30. astrbot-4.10.0a2/astrbot/cli/__init__.py +0 -1
  31. astrbot-4.10.0a2/dashboard/src/components/extension/componentPanel/components/RenameDialog.vue +0 -53
  32. {astrbot-4.10.0a2 → astrbot-4.10.2}/.dockerignore +0 -0
  33. {astrbot-4.10.0a2 → astrbot-4.10.2}/.github/FUNDING.yml +0 -0
  34. {astrbot-4.10.0a2 → astrbot-4.10.2}/.github/ISSUE_TEMPLATE/PLUGIN_PUBLISH.yml +0 -0
  35. {astrbot-4.10.0a2 → astrbot-4.10.2}/.github/ISSUE_TEMPLATE/bug-report.yml +0 -0
  36. {astrbot-4.10.0a2 → astrbot-4.10.2}/.github/ISSUE_TEMPLATE/feature-request.yml +0 -0
  37. {astrbot-4.10.0a2 → astrbot-4.10.2}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
  38. {astrbot-4.10.0a2 → astrbot-4.10.2}/.github/auto_assign.yml +0 -0
  39. {astrbot-4.10.0a2 → astrbot-4.10.2}/.github/copilot-instructions.md +0 -0
  40. {astrbot-4.10.0a2 → astrbot-4.10.2}/.github/dependabot.yml +0 -0
  41. {astrbot-4.10.0a2 → astrbot-4.10.2}/.github/workflows/auto_release.yml +0 -0
  42. {astrbot-4.10.0a2 → astrbot-4.10.2}/.github/workflows/code-format.yml +0 -0
  43. {astrbot-4.10.0a2 → astrbot-4.10.2}/.github/workflows/codeql.yml +0 -0
  44. {astrbot-4.10.0a2 → astrbot-4.10.2}/.github/workflows/coverage_test.yml +0 -0
  45. {astrbot-4.10.0a2 → astrbot-4.10.2}/.github/workflows/dashboard_ci.yml +0 -0
  46. {astrbot-4.10.0a2 → astrbot-4.10.2}/.github/workflows/docker-image.yml +0 -0
  47. {astrbot-4.10.0a2 → astrbot-4.10.2}/.github/workflows/smoke_test.yml +0 -0
  48. {astrbot-4.10.0a2 → astrbot-4.10.2}/.github/workflows/stale.yml +0 -0
  49. {astrbot-4.10.0a2 → astrbot-4.10.2}/.gitignore +0 -0
  50. {astrbot-4.10.0a2 → astrbot-4.10.2}/.pre-commit-config.yaml +0 -0
  51. {astrbot-4.10.0a2 → astrbot-4.10.2}/.python-version +0 -0
  52. {astrbot-4.10.0a2 → astrbot-4.10.2}/CODE_OF_CONDUCT.md +0 -0
  53. {astrbot-4.10.0a2 → astrbot-4.10.2}/CONTRIBUTING.md +0 -0
  54. {astrbot-4.10.0a2 → astrbot-4.10.2}/Dockerfile +0 -0
  55. {astrbot-4.10.0a2 → astrbot-4.10.2}/LICENSE +0 -0
  56. {astrbot-4.10.0a2 → astrbot-4.10.2}/README.md +0 -0
  57. {astrbot-4.10.0a2 → astrbot-4.10.2}/README_en.md +0 -0
  58. {astrbot-4.10.0a2 → astrbot-4.10.2}/README_fr.md +0 -0
  59. {astrbot-4.10.0a2 → astrbot-4.10.2}/README_ja.md +0 -0
  60. {astrbot-4.10.0a2 → astrbot-4.10.2}/README_ru.md +0 -0
  61. {astrbot-4.10.0a2 → astrbot-4.10.2}/README_zh-TW.md +0 -0
  62. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/__init__.py +0 -0
  63. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/api/__init__.py +0 -0
  64. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/api/all.py +0 -0
  65. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/api/event/__init__.py +0 -0
  66. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/api/event/filter/__init__.py +0 -0
  67. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/api/message_components.py +0 -0
  68. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/api/platform/__init__.py +0 -0
  69. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/api/provider/__init__.py +0 -0
  70. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/api/star/__init__.py +0 -0
  71. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/api/util/__init__.py +0 -0
  72. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/cli/__main__.py +0 -0
  73. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/cli/commands/__init__.py +0 -0
  74. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/cli/commands/cmd_conf.py +0 -0
  75. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/cli/commands/cmd_init.py +0 -0
  76. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/cli/commands/cmd_plug.py +0 -0
  77. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/cli/commands/cmd_run.py +0 -0
  78. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/cli/utils/__init__.py +0 -0
  79. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/cli/utils/basic.py +0 -0
  80. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/cli/utils/plugin.py +0 -0
  81. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/cli/utils/version_comparator.py +0 -0
  82. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/__init__.py +0 -0
  83. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/agent/agent.py +0 -0
  84. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/agent/handoff.py +0 -0
  85. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/agent/hooks.py +0 -0
  86. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/agent/mcp_client.py +0 -0
  87. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/agent/message.py +0 -0
  88. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/agent/response.py +0 -0
  89. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/agent/run_context.py +0 -0
  90. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/agent/runners/__init__.py +0 -0
  91. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/agent/runners/base.py +0 -0
  92. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/agent/runners/coze/coze_agent_runner.py +0 -0
  93. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/agent/runners/coze/coze_api_client.py +0 -0
  94. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/agent/runners/dashscope/dashscope_agent_runner.py +0 -0
  95. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/agent/runners/dify/dify_agent_runner.py +0 -0
  96. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/agent/runners/dify/dify_api_client.py +0 -0
  97. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/agent/runners/tool_loop_agent_runner.py +0 -0
  98. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/agent/tool.py +0 -0
  99. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/agent/tool_executor.py +0 -0
  100. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/astr_agent_context.py +0 -0
  101. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/astr_agent_hooks.py +0 -0
  102. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/astr_agent_run_util.py +0 -0
  103. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/astr_agent_tool_exec.py +0 -0
  104. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/astrbot_config_mgr.py +0 -0
  105. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/config/__init__.py +0 -0
  106. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/config/astrbot_config.py +0 -0
  107. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/config/i18n_utils.py +0 -0
  108. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/conversation_mgr.py +0 -0
  109. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/core_lifecycle.py +0 -0
  110. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/db/__init__.py +0 -0
  111. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/db/migration/helper.py +0 -0
  112. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/db/migration/migra_3_to_4.py +0 -0
  113. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/db/migration/migra_45_to_46.py +0 -0
  114. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/db/migration/migra_webchat_session.py +0 -0
  115. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/db/migration/shared_preferences_v3.py +0 -0
  116. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/db/migration/sqlite_v3.py +0 -0
  117. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/db/po.py +0 -0
  118. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/db/sqlite.py +0 -0
  119. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/db/vec_db/base.py +0 -0
  120. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/db/vec_db/faiss_impl/__init__.py +0 -0
  121. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/db/vec_db/faiss_impl/document_storage.py +0 -0
  122. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/db/vec_db/faiss_impl/embedding_storage.py +0 -0
  123. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/db/vec_db/faiss_impl/sqlite_init.sql +0 -0
  124. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/db/vec_db/faiss_impl/vec_db.py +0 -0
  125. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/event_bus.py +0 -0
  126. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/exceptions.py +0 -0
  127. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/file_token_service.py +0 -0
  128. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/initial_loader.py +0 -0
  129. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/knowledge_base/chunking/__init__.py +0 -0
  130. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/knowledge_base/chunking/base.py +0 -0
  131. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/knowledge_base/chunking/fixed_size.py +0 -0
  132. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/knowledge_base/chunking/recursive.py +0 -0
  133. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/knowledge_base/kb_db_sqlite.py +0 -0
  134. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/knowledge_base/kb_helper.py +0 -0
  135. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/knowledge_base/kb_mgr.py +0 -0
  136. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/knowledge_base/models.py +0 -0
  137. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/knowledge_base/parsers/__init__.py +0 -0
  138. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/knowledge_base/parsers/base.py +0 -0
  139. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/knowledge_base/parsers/markitdown_parser.py +0 -0
  140. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/knowledge_base/parsers/pdf_parser.py +0 -0
  141. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/knowledge_base/parsers/text_parser.py +0 -0
  142. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/knowledge_base/parsers/url_parser.py +0 -0
  143. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/knowledge_base/parsers/util.py +0 -0
  144. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/knowledge_base/prompts.py +0 -0
  145. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/knowledge_base/retrieval/__init__.py +0 -0
  146. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/knowledge_base/retrieval/hit_stopwords.txt +0 -0
  147. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/knowledge_base/retrieval/manager.py +0 -0
  148. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/knowledge_base/retrieval/rank_fusion.py +0 -0
  149. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/knowledge_base/retrieval/sparse_retriever.py +0 -0
  150. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/log.py +0 -0
  151. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/message/components.py +0 -0
  152. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/message/message_event_result.py +0 -0
  153. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/persona_mgr.py +0 -0
  154. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/pipeline/__init__.py +0 -0
  155. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/pipeline/content_safety_check/stage.py +0 -0
  156. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/pipeline/content_safety_check/strategies/__init__.py +0 -0
  157. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/pipeline/content_safety_check/strategies/baidu_aip.py +0 -0
  158. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/pipeline/content_safety_check/strategies/keywords.py +0 -0
  159. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/pipeline/content_safety_check/strategies/strategy.py +0 -0
  160. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/pipeline/context.py +0 -0
  161. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/pipeline/context_utils.py +0 -0
  162. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/pipeline/preprocess_stage/stage.py +0 -0
  163. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/pipeline/process_stage/method/agent_request.py +0 -0
  164. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/pipeline/process_stage/method/agent_sub_stages/internal.py +0 -0
  165. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/pipeline/process_stage/method/agent_sub_stages/third_party.py +0 -0
  166. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/pipeline/process_stage/method/star_request.py +0 -0
  167. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/pipeline/process_stage/stage.py +0 -0
  168. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/pipeline/process_stage/utils.py +0 -0
  169. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/pipeline/rate_limit_check/stage.py +0 -0
  170. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/pipeline/respond/stage.py +0 -0
  171. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/pipeline/result_decorate/stage.py +0 -0
  172. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/pipeline/scheduler.py +0 -0
  173. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/pipeline/session_status_check/stage.py +0 -0
  174. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/pipeline/stage.py +0 -0
  175. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/pipeline/waking_check/stage.py +0 -0
  176. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/pipeline/whitelist_check/stage.py +0 -0
  177. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/platform/__init__.py +0 -0
  178. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/platform/astr_message_event.py +0 -0
  179. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/platform/astrbot_message.py +0 -0
  180. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/platform/manager.py +0 -0
  181. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/platform/message_session.py +0 -0
  182. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/platform/message_type.py +0 -0
  183. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/platform/platform.py +0 -0
  184. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/platform/platform_metadata.py +0 -0
  185. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/platform/register.py +0 -0
  186. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/platform/sources/aiocqhttp/aiocqhttp_message_event.py +0 -0
  187. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/platform/sources/dingtalk/dingtalk_adapter.py +0 -0
  188. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/platform/sources/dingtalk/dingtalk_event.py +0 -0
  189. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/platform/sources/discord/client.py +0 -0
  190. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/platform/sources/discord/components.py +0 -0
  191. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/platform/sources/discord/discord_platform_adapter.py +0 -0
  192. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/platform/sources/discord/discord_platform_event.py +0 -0
  193. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/platform/sources/lark/lark_adapter.py +0 -0
  194. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/platform/sources/lark/lark_event.py +0 -0
  195. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/platform/sources/lark/server.py +0 -0
  196. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/platform/sources/misskey/misskey_adapter.py +0 -0
  197. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/platform/sources/misskey/misskey_api.py +0 -0
  198. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/platform/sources/misskey/misskey_event.py +0 -0
  199. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/platform/sources/misskey/misskey_utils.py +0 -0
  200. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/platform/sources/qqofficial/qqofficial_message_event.py +0 -0
  201. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/platform/sources/qqofficial/qqofficial_platform_adapter.py +0 -0
  202. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/platform/sources/qqofficial_webhook/qo_webhook_adapter.py +0 -0
  203. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/platform/sources/qqofficial_webhook/qo_webhook_event.py +0 -0
  204. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/platform/sources/qqofficial_webhook/qo_webhook_server.py +0 -0
  205. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/platform/sources/satori/satori_adapter.py +0 -0
  206. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/platform/sources/satori/satori_event.py +0 -0
  207. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/platform/sources/slack/client.py +0 -0
  208. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/platform/sources/slack/slack_adapter.py +0 -0
  209. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/platform/sources/slack/slack_event.py +0 -0
  210. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/platform/sources/telegram/tg_adapter.py +0 -0
  211. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/platform/sources/telegram/tg_event.py +0 -0
  212. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/platform/sources/webchat/webchat_adapter.py +0 -0
  213. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/platform/sources/webchat/webchat_event.py +0 -0
  214. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/platform/sources/webchat/webchat_queue_mgr.py +0 -0
  215. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/platform/sources/wechatpadpro/wechatpadpro_adapter.py +0 -0
  216. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/platform/sources/wechatpadpro/wechatpadpro_message_event.py +0 -0
  217. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/platform/sources/wechatpadpro/xml_data_parser.py +0 -0
  218. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/platform/sources/wecom/wecom_adapter.py +0 -0
  219. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/platform/sources/wecom/wecom_event.py +0 -0
  220. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/platform/sources/wecom/wecom_kf.py +0 -0
  221. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/platform/sources/wecom/wecom_kf_message.py +0 -0
  222. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/platform/sources/wecom_ai_bot/WXBizJsonMsgCrypt.py +0 -0
  223. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/platform/sources/wecom_ai_bot/__init__.py +0 -0
  224. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/platform/sources/wecom_ai_bot/ierror.py +0 -0
  225. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/platform/sources/wecom_ai_bot/wecomai_adapter.py +0 -0
  226. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/platform/sources/wecom_ai_bot/wecomai_api.py +0 -0
  227. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/platform/sources/wecom_ai_bot/wecomai_event.py +0 -0
  228. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/platform/sources/wecom_ai_bot/wecomai_queue_mgr.py +0 -0
  229. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/platform/sources/wecom_ai_bot/wecomai_server.py +0 -0
  230. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/platform/sources/wecom_ai_bot/wecomai_utils.py +0 -0
  231. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/platform/sources/weixin_official_account/weixin_offacc_adapter.py +0 -0
  232. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/platform/sources/weixin_official_account/weixin_offacc_event.py +0 -0
  233. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/platform_message_history_mgr.py +0 -0
  234. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/provider/__init__.py +0 -0
  235. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/provider/entites.py +0 -0
  236. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/provider/entities.py +0 -0
  237. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/provider/func_tool_manager.py +0 -0
  238. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/provider/manager.py +0 -0
  239. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/provider/provider.py +0 -0
  240. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/provider/register.py +0 -0
  241. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/provider/sources/anthropic_source.py +0 -0
  242. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/provider/sources/azure_tts_source.py +0 -0
  243. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/provider/sources/bailian_rerank_source.py +0 -0
  244. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/provider/sources/dashscope_tts.py +0 -0
  245. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/provider/sources/edge_tts_source.py +0 -0
  246. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/provider/sources/fishaudio_tts_api_source.py +0 -0
  247. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/provider/sources/gemini_embedding_source.py +0 -0
  248. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/provider/sources/gemini_tts_source.py +0 -0
  249. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/provider/sources/groq_source.py +0 -0
  250. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/provider/sources/gsv_selfhosted_source.py +0 -0
  251. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/provider/sources/gsvi_tts_source.py +0 -0
  252. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/provider/sources/minimax_tts_api_source.py +0 -0
  253. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/provider/sources/openai_embedding_source.py +0 -0
  254. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/provider/sources/openai_source.py +0 -0
  255. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/provider/sources/openai_tts_api_source.py +0 -0
  256. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/provider/sources/sensevoice_selfhosted_source.py +0 -0
  257. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/provider/sources/vllm_rerank_source.py +0 -0
  258. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/provider/sources/volcengine_tts.py +0 -0
  259. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/provider/sources/whisper_api_source.py +0 -0
  260. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/provider/sources/whisper_selfhosted_source.py +0 -0
  261. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/provider/sources/xinference_rerank_source.py +0 -0
  262. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/provider/sources/xinference_stt_provider.py +0 -0
  263. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/provider/sources/zhipu_source.py +0 -0
  264. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/star/README.md +0 -0
  265. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/star/__init__.py +0 -0
  266. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/star/config.py +0 -0
  267. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/star/context.py +0 -0
  268. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/star/filter/__init__.py +0 -0
  269. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/star/filter/command.py +0 -0
  270. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/star/filter/command_group.py +0 -0
  271. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/star/filter/custom_filter.py +0 -0
  272. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/star/filter/event_message_type.py +0 -0
  273. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/star/filter/permission.py +0 -0
  274. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/star/filter/platform_adapter_type.py +0 -0
  275. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/star/filter/regex.py +0 -0
  276. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/star/register/__init__.py +0 -0
  277. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/star/register/star.py +0 -0
  278. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/star/register/star_handler.py +0 -0
  279. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/star/session_llm_manager.py +0 -0
  280. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/star/session_plugin_manager.py +0 -0
  281. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/star/star.py +0 -0
  282. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/star/star_handler.py +0 -0
  283. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/star/star_tools.py +0 -0
  284. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/star/updator.py +0 -0
  285. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/umop_config_router.py +0 -0
  286. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/updator.py +0 -0
  287. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/utils/astrbot_path.py +0 -0
  288. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/utils/command_parser.py +0 -0
  289. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/utils/file_extract.py +0 -0
  290. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/utils/io.py +0 -0
  291. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/utils/llm_metadata.py +0 -0
  292. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/utils/log_pipe.py +0 -0
  293. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/utils/metrics.py +0 -0
  294. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/utils/migra_helper.py +0 -0
  295. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/utils/path_util.py +0 -0
  296. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/utils/pip_installer.py +0 -0
  297. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/utils/plugin_kv_store.py +0 -0
  298. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/utils/session_lock.py +0 -0
  299. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/utils/session_waiter.py +0 -0
  300. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/utils/shared_preferences.py +0 -0
  301. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/utils/t2i/__init__.py +0 -0
  302. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/utils/t2i/local_strategy.py +0 -0
  303. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/utils/t2i/network_strategy.py +0 -0
  304. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/utils/t2i/renderer.py +0 -0
  305. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/utils/t2i/template/astrbot_powershell.html +0 -0
  306. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/utils/t2i/template/base.html +0 -0
  307. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/utils/t2i/template_manager.py +0 -0
  308. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/utils/tencent_record_helper.py +0 -0
  309. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/utils/version_comparator.py +0 -0
  310. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/utils/webhook_utils.py +0 -0
  311. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/zip_updator.py +0 -0
  312. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/dashboard/routes/__init__.py +0 -0
  313. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/dashboard/routes/auth.py +0 -0
  314. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/dashboard/routes/chat.py +0 -0
  315. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/dashboard/routes/conversation.py +0 -0
  316. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/dashboard/routes/file.py +0 -0
  317. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/dashboard/routes/knowledge_base.py +0 -0
  318. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/dashboard/routes/log.py +0 -0
  319. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/dashboard/routes/persona.py +0 -0
  320. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/dashboard/routes/platform.py +0 -0
  321. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/dashboard/routes/plugin.py +0 -0
  322. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/dashboard/routes/route.py +0 -0
  323. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/dashboard/routes/session_management.py +0 -0
  324. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/dashboard/routes/stat.py +0 -0
  325. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/dashboard/routes/static_file.py +0 -0
  326. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/dashboard/routes/t2i.py +0 -0
  327. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/dashboard/routes/tools.py +0 -0
  328. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/dashboard/routes/update.py +0 -0
  329. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/dashboard/server.py +0 -0
  330. {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/dashboard/utils.py +0 -0
  331. {astrbot-4.10.0a2 → astrbot-4.10.2}/changelogs/v3.4.0.md +0 -0
  332. {astrbot-4.10.0a2 → astrbot-4.10.2}/changelogs/v3.4.1.md +0 -0
  333. {astrbot-4.10.0a2 → astrbot-4.10.2}/changelogs/v3.4.10.md +0 -0
  334. {astrbot-4.10.0a2 → astrbot-4.10.2}/changelogs/v3.4.11.md +0 -0
  335. {astrbot-4.10.0a2 → astrbot-4.10.2}/changelogs/v3.4.12.md +0 -0
  336. {astrbot-4.10.0a2 → astrbot-4.10.2}/changelogs/v3.4.13.md +0 -0
  337. {astrbot-4.10.0a2 → astrbot-4.10.2}/changelogs/v3.4.14.md +0 -0
  338. {astrbot-4.10.0a2 → astrbot-4.10.2}/changelogs/v3.4.15.md +0 -0
  339. {astrbot-4.10.0a2 → astrbot-4.10.2}/changelogs/v3.4.16.md +0 -0
  340. {astrbot-4.10.0a2 → astrbot-4.10.2}/changelogs/v3.4.17.md +0 -0
  341. {astrbot-4.10.0a2 → astrbot-4.10.2}/changelogs/v3.4.18.md +0 -0
  342. {astrbot-4.10.0a2 → astrbot-4.10.2}/changelogs/v3.4.19.md +0 -0
  343. {astrbot-4.10.0a2 → astrbot-4.10.2}/changelogs/v3.4.20.md +0 -0
  344. {astrbot-4.10.0a2 → astrbot-4.10.2}/changelogs/v3.4.21.md +0 -0
  345. {astrbot-4.10.0a2 → astrbot-4.10.2}/changelogs/v3.4.22.md +0 -0
  346. {astrbot-4.10.0a2 → astrbot-4.10.2}/changelogs/v3.4.23.md +0 -0
  347. {astrbot-4.10.0a2 → astrbot-4.10.2}/changelogs/v3.4.24.md +0 -0
  348. {astrbot-4.10.0a2 → astrbot-4.10.2}/changelogs/v3.4.25.md +0 -0
  349. {astrbot-4.10.0a2 → astrbot-4.10.2}/changelogs/v3.4.26.md +0 -0
  350. {astrbot-4.10.0a2 → astrbot-4.10.2}/changelogs/v3.4.27.md +0 -0
  351. {astrbot-4.10.0a2 → astrbot-4.10.2}/changelogs/v3.4.28.md +0 -0
  352. {astrbot-4.10.0a2 → astrbot-4.10.2}/changelogs/v3.4.29.md +0 -0
  353. {astrbot-4.10.0a2 → astrbot-4.10.2}/changelogs/v3.4.3.md +0 -0
  354. {astrbot-4.10.0a2 → astrbot-4.10.2}/changelogs/v3.4.30.md +0 -0
  355. {astrbot-4.10.0a2 → astrbot-4.10.2}/changelogs/v3.4.31.md +0 -0
  356. {astrbot-4.10.0a2 → astrbot-4.10.2}/changelogs/v3.4.32.md +0 -0
  357. {astrbot-4.10.0a2 → astrbot-4.10.2}/changelogs/v3.4.33.md +0 -0
  358. {astrbot-4.10.0a2 → astrbot-4.10.2}/changelogs/v3.4.35.md +0 -0
  359. {astrbot-4.10.0a2 → astrbot-4.10.2}/changelogs/v3.4.36.md +0 -0
  360. {astrbot-4.10.0a2 → astrbot-4.10.2}/changelogs/v3.4.37.md +0 -0
  361. {astrbot-4.10.0a2 → astrbot-4.10.2}/changelogs/v3.4.38.md +0 -0
  362. {astrbot-4.10.0a2 → astrbot-4.10.2}/changelogs/v3.4.39.md +0 -0
  363. {astrbot-4.10.0a2 → astrbot-4.10.2}/changelogs/v3.4.4.md +0 -0
  364. {astrbot-4.10.0a2 → astrbot-4.10.2}/changelogs/v3.4.5.md +0 -0
  365. {astrbot-4.10.0a2 → astrbot-4.10.2}/changelogs/v3.4.6.md +0 -0
  366. {astrbot-4.10.0a2 → astrbot-4.10.2}/changelogs/v3.4.7.md +0 -0
  367. {astrbot-4.10.0a2 → astrbot-4.10.2}/changelogs/v3.4.8.md +0 -0
  368. {astrbot-4.10.0a2 → astrbot-4.10.2}/changelogs/v3.4.9.md +0 -0
  369. {astrbot-4.10.0a2 → astrbot-4.10.2}/changelogs/v3.5.0.md +0 -0
  370. {astrbot-4.10.0a2 → astrbot-4.10.2}/changelogs/v3.5.1.md +0 -0
  371. {astrbot-4.10.0a2 → astrbot-4.10.2}/changelogs/v3.5.10.md +0 -0
  372. {astrbot-4.10.0a2 → astrbot-4.10.2}/changelogs/v3.5.11.md +0 -0
  373. {astrbot-4.10.0a2 → astrbot-4.10.2}/changelogs/v3.5.12.md +0 -0
  374. {astrbot-4.10.0a2 → astrbot-4.10.2}/changelogs/v3.5.13.md +0 -0
  375. {astrbot-4.10.0a2 → astrbot-4.10.2}/changelogs/v3.5.14.md +0 -0
  376. {astrbot-4.10.0a2 → astrbot-4.10.2}/changelogs/v3.5.15.md +0 -0
  377. {astrbot-4.10.0a2 → astrbot-4.10.2}/changelogs/v3.5.16.md +0 -0
  378. {astrbot-4.10.0a2 → astrbot-4.10.2}/changelogs/v3.5.17.md +0 -0
  379. {astrbot-4.10.0a2 → astrbot-4.10.2}/changelogs/v3.5.18.md +0 -0
  380. {astrbot-4.10.0a2 → astrbot-4.10.2}/changelogs/v3.5.19.md +0 -0
  381. {astrbot-4.10.0a2 → astrbot-4.10.2}/changelogs/v3.5.2.md +0 -0
  382. {astrbot-4.10.0a2 → astrbot-4.10.2}/changelogs/v3.5.20.md +0 -0
  383. {astrbot-4.10.0a2 → astrbot-4.10.2}/changelogs/v3.5.21.md +0 -0
  384. {astrbot-4.10.0a2 → astrbot-4.10.2}/changelogs/v3.5.22.md +0 -0
  385. {astrbot-4.10.0a2 → astrbot-4.10.2}/changelogs/v3.5.23.md +0 -0
  386. {astrbot-4.10.0a2 → astrbot-4.10.2}/changelogs/v3.5.24.md +0 -0
  387. {astrbot-4.10.0a2 → astrbot-4.10.2}/changelogs/v3.5.25.md +0 -0
  388. {astrbot-4.10.0a2 → astrbot-4.10.2}/changelogs/v3.5.26.md +0 -0
  389. {astrbot-4.10.0a2 → astrbot-4.10.2}/changelogs/v3.5.27.md +0 -0
  390. {astrbot-4.10.0a2 → astrbot-4.10.2}/changelogs/v3.5.3.1.md +0 -0
  391. {astrbot-4.10.0a2 → astrbot-4.10.2}/changelogs/v3.5.3.2.md +0 -0
  392. {astrbot-4.10.0a2 → astrbot-4.10.2}/changelogs/v3.5.3.md +0 -0
  393. {astrbot-4.10.0a2 → astrbot-4.10.2}/changelogs/v3.5.4.md +0 -0
  394. {astrbot-4.10.0a2 → astrbot-4.10.2}/changelogs/v3.5.5.md +0 -0
  395. {astrbot-4.10.0a2 → astrbot-4.10.2}/changelogs/v3.5.6.md +0 -0
  396. {astrbot-4.10.0a2 → astrbot-4.10.2}/changelogs/v3.5.7.md +0 -0
  397. {astrbot-4.10.0a2 → astrbot-4.10.2}/changelogs/v3.5.8.md +0 -0
  398. {astrbot-4.10.0a2 → astrbot-4.10.2}/changelogs/v3.5.9.md +0 -0
  399. {astrbot-4.10.0a2 → astrbot-4.10.2}/changelogs/v4.0.0-beta.3.md +0 -0
  400. {astrbot-4.10.0a2 → astrbot-4.10.2}/changelogs/v4.0.0-beta.4.md +0 -0
  401. {astrbot-4.10.0a2 → astrbot-4.10.2}/changelogs/v4.0.0-beta.5.md +0 -0
  402. {astrbot-4.10.0a2 → astrbot-4.10.2}/changelogs/v4.0.0.md +0 -0
  403. {astrbot-4.10.0a2 → astrbot-4.10.2}/changelogs/v4.1.0.md +0 -0
  404. {astrbot-4.10.0a2 → astrbot-4.10.2}/changelogs/v4.1.1.md +0 -0
  405. {astrbot-4.10.0a2 → astrbot-4.10.2}/changelogs/v4.1.2.md +0 -0
  406. {astrbot-4.10.0a2 → astrbot-4.10.2}/changelogs/v4.1.3.md +0 -0
  407. {astrbot-4.10.0a2 → astrbot-4.10.2}/changelogs/v4.1.4.md +0 -0
  408. {astrbot-4.10.0a2 → astrbot-4.10.2}/changelogs/v4.1.5.md +0 -0
  409. {astrbot-4.10.0a2 → astrbot-4.10.2}/changelogs/v4.1.6.md +0 -0
  410. {astrbot-4.10.0a2 → astrbot-4.10.2}/changelogs/v4.1.7.md +0 -0
  411. {astrbot-4.10.0a2 → astrbot-4.10.2}/changelogs/v4.10.0-alpha.1.md +0 -0
  412. {astrbot-4.10.0a2 → astrbot-4.10.2}/changelogs/v4.10.0-alpha.2.md +0 -0
  413. {astrbot-4.10.0a2 → astrbot-4.10.2}/changelogs/v4.2.0.md +0 -0
  414. {astrbot-4.10.0a2 → astrbot-4.10.2}/changelogs/v4.2.1.md +0 -0
  415. {astrbot-4.10.0a2 → astrbot-4.10.2}/changelogs/v4.3.0.md +0 -0
  416. {astrbot-4.10.0a2 → astrbot-4.10.2}/changelogs/v4.3.1.md +0 -0
  417. {astrbot-4.10.0a2 → astrbot-4.10.2}/changelogs/v4.3.2.md +0 -0
  418. {astrbot-4.10.0a2 → astrbot-4.10.2}/changelogs/v4.3.3.md +0 -0
  419. {astrbot-4.10.0a2 → astrbot-4.10.2}/changelogs/v4.3.5.md +0 -0
  420. {astrbot-4.10.0a2 → astrbot-4.10.2}/changelogs/v4.5.0.md +0 -0
  421. {astrbot-4.10.0a2 → astrbot-4.10.2}/changelogs/v4.5.1.md +0 -0
  422. {astrbot-4.10.0a2 → astrbot-4.10.2}/changelogs/v4.5.2.md +0 -0
  423. {astrbot-4.10.0a2 → astrbot-4.10.2}/changelogs/v4.5.3.md +0 -0
  424. {astrbot-4.10.0a2 → astrbot-4.10.2}/changelogs/v4.5.4.md +0 -0
  425. {astrbot-4.10.0a2 → astrbot-4.10.2}/changelogs/v4.5.5.md +0 -0
  426. {astrbot-4.10.0a2 → astrbot-4.10.2}/changelogs/v4.5.6.md +0 -0
  427. {astrbot-4.10.0a2 → astrbot-4.10.2}/changelogs/v4.5.7.md +0 -0
  428. {astrbot-4.10.0a2 → astrbot-4.10.2}/changelogs/v4.5.8.md +0 -0
  429. {astrbot-4.10.0a2 → astrbot-4.10.2}/changelogs/v4.6.0.md +0 -0
  430. {astrbot-4.10.0a2 → astrbot-4.10.2}/changelogs/v4.6.1.md +0 -0
  431. {astrbot-4.10.0a2 → astrbot-4.10.2}/changelogs/v4.7.0.md +0 -0
  432. {astrbot-4.10.0a2 → astrbot-4.10.2}/changelogs/v4.7.1.md +0 -0
  433. {astrbot-4.10.0a2 → astrbot-4.10.2}/changelogs/v4.7.3.md +0 -0
  434. {astrbot-4.10.0a2 → astrbot-4.10.2}/changelogs/v4.7.4.md +0 -0
  435. {astrbot-4.10.0a2 → astrbot-4.10.2}/changelogs/v4.8.0.md +0 -0
  436. {astrbot-4.10.0a2 → astrbot-4.10.2}/changelogs/v4.9.0.md +0 -0
  437. {astrbot-4.10.0a2 → astrbot-4.10.2}/changelogs/v4.9.1.md +0 -0
  438. {astrbot-4.10.0a2 → astrbot-4.10.2}/changelogs/v4.9.2.md +0 -0
  439. {astrbot-4.10.0a2 → astrbot-4.10.2}/compose.yml +0 -0
  440. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/.gitignore +0 -0
  441. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/LICENSE +0 -0
  442. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/README.md +0 -0
  443. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/env.d.ts +0 -0
  444. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/index.html +0 -0
  445. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/public/_redirects +0 -0
  446. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/public/favicon.svg +0 -0
  447. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/App.vue +0 -0
  448. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/assets/images/astrbot_banner.png +0 -0
  449. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/assets/images/astrbot_logo_mini.webp +0 -0
  450. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/assets/images/icon-no-shadow.svg +0 -0
  451. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/assets/images/loading-seio.webp +0 -0
  452. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/assets/images/platform_logos/dingtalk.svg +0 -0
  453. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/assets/images/platform_logos/discord.svg +0 -0
  454. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/assets/images/platform_logos/kook.png +0 -0
  455. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/assets/images/platform_logos/lark.png +0 -0
  456. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/assets/images/platform_logos/misskey.png +0 -0
  457. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/assets/images/platform_logos/onebot.png +0 -0
  458. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/assets/images/platform_logos/qq.png +0 -0
  459. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/assets/images/platform_logos/satori.png +0 -0
  460. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/assets/images/platform_logos/slack.svg +0 -0
  461. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/assets/images/platform_logos/telegram.svg +0 -0
  462. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/assets/images/platform_logos/vocechat.png +0 -0
  463. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/assets/images/platform_logos/wechat.png +0 -0
  464. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/assets/images/platform_logos/wecom.png +0 -0
  465. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/assets/images/plugin_icon.png +0 -0
  466. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/assets/images/provider_logos/modelstack.svg +0 -0
  467. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/assets/images/xmas-hat.png +0 -0
  468. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/components/ConfirmDialog.vue +0 -0
  469. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/components/chat/Chat.vue +0 -0
  470. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/components/chat/ConfigSelector.vue +0 -0
  471. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/components/chat/MessageList.vue +0 -0
  472. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/components/chat/ProviderConfigDialog.vue +0 -0
  473. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/components/chat/ProviderModelMenu.vue +0 -0
  474. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/components/chat/StandaloneChat.vue +0 -0
  475. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/components/config/AstrBotCoreConfigWrapper.vue +0 -0
  476. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/components/extension/McpServersSection.vue +0 -0
  477. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/components/extension/componentPanel/components/CommandFilters.vue +0 -0
  478. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/components/extension/componentPanel/components/CommandTable.vue +0 -0
  479. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/components/extension/componentPanel/components/DetailsDialog.vue +0 -0
  480. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/components/extension/componentPanel/components/ToolTable.vue +0 -0
  481. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/components/extension/componentPanel/composables/useCommandFilters.ts +0 -0
  482. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/components/extension/componentPanel/composables/useComponentData.ts +0 -0
  483. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/components/platform/AddNewPlatform.vue +0 -0
  484. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/components/provider/AddNewProvider.vue +0 -0
  485. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/components/provider/ProviderModelsPanel.vue +0 -0
  486. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/components/shared/AstrBotConfig.vue +0 -0
  487. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/components/shared/AstrBotConfigV4.vue +0 -0
  488. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/components/shared/ChangelogDialog.vue +0 -0
  489. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/components/shared/ConsoleDisplayer.vue +0 -0
  490. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/components/shared/ExtensionCard.vue +0 -0
  491. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/components/shared/ItemCard.vue +0 -0
  492. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/components/shared/ItemCardGrid.vue +0 -0
  493. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/components/shared/KnowledgeBaseSelector.vue +0 -0
  494. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/components/shared/LanguageSwitcher.vue +0 -0
  495. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/components/shared/ListConfigItem.vue +0 -0
  496. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/components/shared/Logo.vue +0 -0
  497. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/components/shared/MigrationDialog.vue +0 -0
  498. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/components/shared/ObjectEditor.vue +0 -0
  499. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/components/shared/PersonaForm.vue +0 -0
  500. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/components/shared/PersonaSelector.vue +0 -0
  501. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/components/shared/PluginSetSelector.vue +0 -0
  502. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/components/shared/ProviderSelector.vue +0 -0
  503. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/components/shared/ProxySelector.vue +0 -0
  504. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/components/shared/ReadmeDialog.vue +0 -0
  505. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/components/shared/SidebarCustomizer.vue +0 -0
  506. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/components/shared/StyledMenu.vue +0 -0
  507. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/components/shared/T2ITemplateEditor.vue +0 -0
  508. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/components/shared/UninstallConfirmDialog.vue +0 -0
  509. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/components/shared/WaitingForRestart.vue +0 -0
  510. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/composables/useConversations.ts +0 -0
  511. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/composables/useMediaHandling.ts +0 -0
  512. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/composables/useMessages.ts +0 -0
  513. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/composables/useRecording.ts +0 -0
  514. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/composables/useSessions.ts +0 -0
  515. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/config.ts +0 -0
  516. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/i18n/composables.ts +0 -0
  517. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/i18n/loader.ts +0 -0
  518. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/i18n/locales/en-US/core/actions.json +0 -0
  519. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/i18n/locales/en-US/core/common.json +0 -0
  520. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/i18n/locales/en-US/core/header.json +0 -0
  521. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/i18n/locales/en-US/core/navigation.json +0 -0
  522. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/i18n/locales/en-US/core/shared.json +0 -0
  523. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/i18n/locales/en-US/core/status.json +0 -0
  524. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/i18n/locales/en-US/features/about.json +0 -0
  525. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/i18n/locales/en-US/features/alkaid/index.json +0 -0
  526. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/i18n/locales/en-US/features/alkaid/knowledge-base.json +0 -0
  527. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/i18n/locales/en-US/features/alkaid/memory.json +0 -0
  528. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/i18n/locales/en-US/features/auth.json +0 -0
  529. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/i18n/locales/en-US/features/chart.json +0 -0
  530. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/i18n/locales/en-US/features/chat.json +0 -0
  531. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/i18n/locales/en-US/features/config-metadata.json +0 -0
  532. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/i18n/locales/en-US/features/config.json +0 -0
  533. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/i18n/locales/en-US/features/console.json +0 -0
  534. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/i18n/locales/en-US/features/conversation.json +0 -0
  535. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/i18n/locales/en-US/features/dashboard.json +0 -0
  536. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/i18n/locales/en-US/features/extension.json +0 -0
  537. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/i18n/locales/en-US/features/knowledge-base/detail.json +0 -0
  538. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/i18n/locales/en-US/features/knowledge-base/document.json +0 -0
  539. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/i18n/locales/en-US/features/knowledge-base/index.json +0 -0
  540. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/i18n/locales/en-US/features/migration.json +0 -0
  541. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/i18n/locales/en-US/features/persona.json +0 -0
  542. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/i18n/locales/en-US/features/platform.json +0 -0
  543. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/i18n/locales/en-US/features/session-management.json +0 -0
  544. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/i18n/locales/en-US/features/settings.json +0 -0
  545. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/i18n/locales/en-US/features/tool-use.json +0 -0
  546. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/i18n/locales/en-US/messages/errors.json +0 -0
  547. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/i18n/locales/en-US/messages/success.json +0 -0
  548. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/i18n/locales/en-US/messages/validation.json +0 -0
  549. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/i18n/locales/zh-CN/core/actions.json +0 -0
  550. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/i18n/locales/zh-CN/core/common.json +0 -0
  551. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/i18n/locales/zh-CN/core/header.json +0 -0
  552. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/i18n/locales/zh-CN/core/navigation.json +0 -0
  553. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/i18n/locales/zh-CN/core/shared.json +0 -0
  554. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/i18n/locales/zh-CN/core/status.json +0 -0
  555. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/i18n/locales/zh-CN/features/about.json +0 -0
  556. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/i18n/locales/zh-CN/features/alkaid/index.json +0 -0
  557. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/i18n/locales/zh-CN/features/alkaid/knowledge-base.json +0 -0
  558. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/i18n/locales/zh-CN/features/alkaid/memory.json +0 -0
  559. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/i18n/locales/zh-CN/features/auth.json +0 -0
  560. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/i18n/locales/zh-CN/features/chart.json +0 -0
  561. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/i18n/locales/zh-CN/features/chat.json +0 -0
  562. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/i18n/locales/zh-CN/features/config-metadata.json +0 -0
  563. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/i18n/locales/zh-CN/features/config.json +0 -0
  564. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/i18n/locales/zh-CN/features/console.json +0 -0
  565. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/i18n/locales/zh-CN/features/conversation.json +0 -0
  566. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/i18n/locales/zh-CN/features/dashboard.json +0 -0
  567. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/i18n/locales/zh-CN/features/extension.json +0 -0
  568. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/i18n/locales/zh-CN/features/knowledge-base/detail.json +0 -0
  569. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/i18n/locales/zh-CN/features/knowledge-base/document.json +0 -0
  570. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/i18n/locales/zh-CN/features/knowledge-base/index.json +0 -0
  571. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/i18n/locales/zh-CN/features/migration.json +0 -0
  572. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/i18n/locales/zh-CN/features/persona.json +0 -0
  573. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/i18n/locales/zh-CN/features/platform.json +0 -0
  574. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/i18n/locales/zh-CN/features/session-management.json +0 -0
  575. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/i18n/locales/zh-CN/features/settings.json +0 -0
  576. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/i18n/locales/zh-CN/features/tool-use.json +0 -0
  577. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/i18n/locales/zh-CN/messages/errors.json +0 -0
  578. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/i18n/locales/zh-CN/messages/success.json +0 -0
  579. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/i18n/locales/zh-CN/messages/validation.json +0 -0
  580. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/i18n/tools/index.ts +0 -0
  581. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/i18n/translations.ts +0 -0
  582. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/i18n/types.ts +0 -0
  583. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/i18n/validator.ts +0 -0
  584. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/layouts/blank/BlankLayout.vue +0 -0
  585. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/layouts/full/vertical-header/VerticalHeader.vue +0 -0
  586. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/layouts/full/vertical-sidebar/NavItem.vue +0 -0
  587. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/layouts/full/vertical-sidebar/VerticalSidebar.vue +0 -0
  588. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/layouts/full/vertical-sidebar/sidebarItem.ts +0 -0
  589. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/main.ts +0 -0
  590. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/plugins/confirmPlugin.ts +0 -0
  591. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/plugins/vuetify.ts +0 -0
  592. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/router/AuthRoutes.ts +0 -0
  593. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/router/ChatBoxRoutes.ts +0 -0
  594. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/router/MainRoutes.ts +0 -0
  595. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/scss/_override.scss +0 -0
  596. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/scss/_variables.scss +0 -0
  597. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/scss/components/_VButtons.scss +0 -0
  598. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/scss/components/_VCard.scss +0 -0
  599. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/scss/components/_VField.scss +0 -0
  600. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/scss/components/_VInput.scss +0 -0
  601. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/scss/components/_VNavigationDrawer.scss +0 -0
  602. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/scss/components/_VScrollbar.scss +0 -0
  603. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/scss/components/_VShadow.scss +0 -0
  604. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/scss/components/_VTabs.scss +0 -0
  605. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/scss/components/_VTextField.scss +0 -0
  606. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/scss/layout/_container.scss +0 -0
  607. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/scss/layout/_sidebar.scss +0 -0
  608. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/scss/pages/_dashboards.scss +0 -0
  609. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/scss/style.scss +0 -0
  610. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/stores/auth.ts +0 -0
  611. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/stores/common.js +0 -0
  612. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/stores/customizer.ts +0 -0
  613. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/stores/toast.js +0 -0
  614. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/theme/DarkTheme.ts +0 -0
  615. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/theme/LightTheme.ts +0 -0
  616. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/types/themeTypes/ThemeType.ts +0 -0
  617. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/types/vue3-print-nb.d.ts +0 -0
  618. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/types/vue_tabler_icon.d.ts +0 -0
  619. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/utils/platformUtils.js +0 -0
  620. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/utils/providerUtils.js +0 -0
  621. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/utils/sidebarCustomization.js +0 -0
  622. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/utils/toast.js +0 -0
  623. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/views/AboutPage.vue +0 -0
  624. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/views/AlkaidPage.vue +0 -0
  625. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/views/ChatBoxPage.vue +0 -0
  626. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/views/ChatPage.vue +0 -0
  627. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/views/ConfigPage.vue +0 -0
  628. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/views/ConsolePage.vue +0 -0
  629. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/views/ConversationPage.vue +0 -0
  630. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/views/ExtensionPage.vue +0 -0
  631. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/views/PersonaPage.vue +0 -0
  632. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/views/PlatformPage.vue +0 -0
  633. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/views/ProviderPage.vue +0 -0
  634. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/views/SessionManagementPage.vue +0 -0
  635. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/views/Settings.vue +0 -0
  636. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/views/alkaid/KnowledgeBase.vue +0 -0
  637. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/views/alkaid/LongTermMemory.vue +0 -0
  638. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/views/alkaid/Other.vue +0 -0
  639. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/views/authentication/auth/LoginPage.vue +0 -0
  640. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/views/authentication/authForms/AuthLogin.vue +0 -0
  641. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/views/dashboards/default/DefaultDashboard.vue +0 -0
  642. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/views/dashboards/default/components/MemoryUsage.vue +0 -0
  643. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/views/dashboards/default/components/MessageStat.vue +0 -0
  644. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/views/dashboards/default/components/OnlinePlatform.vue +0 -0
  645. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/views/dashboards/default/components/OnlineTime.vue +0 -0
  646. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/views/dashboards/default/components/PlatformStat.vue +0 -0
  647. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/views/dashboards/default/components/RunningTime.vue +0 -0
  648. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/views/dashboards/default/components/TotalMessage.vue +0 -0
  649. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/views/knowledge-base/DocumentDetail.vue +0 -0
  650. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/views/knowledge-base/KBDetail.vue +0 -0
  651. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/views/knowledge-base/KBList.vue +0 -0
  652. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/views/knowledge-base/components/DocumentsTab.vue +0 -0
  653. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/views/knowledge-base/components/RetrievalTab.vue +0 -0
  654. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/views/knowledge-base/components/SettingsTab.vue +0 -0
  655. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/views/knowledge-base/components/TavilyKeyDialog.vue +0 -0
  656. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/views/knowledge-base/index.vue +0 -0
  657. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/tsconfig.json +0 -0
  658. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/tsconfig.vite-config.json +0 -0
  659. {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/vite.config.ts +0 -0
  660. {astrbot-4.10.0a2 → astrbot-4.10.2}/k8s/astrbot/00-namespace.yaml +0 -0
  661. {astrbot-4.10.0a2 → astrbot-4.10.2}/k8s/astrbot/01-pvc.yaml +0 -0
  662. {astrbot-4.10.0a2 → astrbot-4.10.2}/k8s/astrbot/02-deployment.yaml +0 -0
  663. {astrbot-4.10.0a2 → astrbot-4.10.2}/k8s/astrbot/03-service-nodeport.yaml +0 -0
  664. {astrbot-4.10.0a2 → astrbot-4.10.2}/k8s/astrbot/04-service-loadbalancer.yaml +0 -0
  665. {astrbot-4.10.0a2 → astrbot-4.10.2}/k8s/astrbot_with_napcat/00-namespace.yaml +0 -0
  666. {astrbot-4.10.0a2 → astrbot-4.10.2}/k8s/astrbot_with_napcat/01-pvc.yaml +0 -0
  667. {astrbot-4.10.0a2 → astrbot-4.10.2}/k8s/astrbot_with_napcat/02-deployment.yaml +0 -0
  668. {astrbot-4.10.0a2 → astrbot-4.10.2}/k8s/astrbot_with_napcat/03-service-nodeport.yaml +0 -0
  669. {astrbot-4.10.0a2 → astrbot-4.10.2}/k8s/astrbot_with_napcat/04-service-loadbalancer.yaml +0 -0
  670. {astrbot-4.10.0a2 → astrbot-4.10.2}/main.py +0 -0
  671. {astrbot-4.10.0a2 → astrbot-4.10.2}/packages/astrbot/long_term_memory.py +0 -0
  672. {astrbot-4.10.0a2 → astrbot-4.10.2}/packages/astrbot/main.py +0 -0
  673. {astrbot-4.10.0a2 → astrbot-4.10.2}/packages/astrbot/metadata.yaml +0 -0
  674. {astrbot-4.10.0a2 → astrbot-4.10.2}/packages/astrbot/process_llm_request.py +0 -0
  675. {astrbot-4.10.0a2 → astrbot-4.10.2}/packages/builtin_commands/commands/__init__.py +0 -0
  676. {astrbot-4.10.0a2 → astrbot-4.10.2}/packages/builtin_commands/commands/admin.py +0 -0
  677. {astrbot-4.10.0a2 → astrbot-4.10.2}/packages/builtin_commands/commands/alter_cmd.py +0 -0
  678. {astrbot-4.10.0a2 → astrbot-4.10.2}/packages/builtin_commands/commands/conversation.py +0 -0
  679. {astrbot-4.10.0a2 → astrbot-4.10.2}/packages/builtin_commands/commands/help.py +0 -0
  680. {astrbot-4.10.0a2 → astrbot-4.10.2}/packages/builtin_commands/commands/llm.py +0 -0
  681. {astrbot-4.10.0a2 → astrbot-4.10.2}/packages/builtin_commands/commands/persona.py +0 -0
  682. {astrbot-4.10.0a2 → astrbot-4.10.2}/packages/builtin_commands/commands/plugin.py +0 -0
  683. {astrbot-4.10.0a2 → astrbot-4.10.2}/packages/builtin_commands/commands/provider.py +0 -0
  684. {astrbot-4.10.0a2 → astrbot-4.10.2}/packages/builtin_commands/commands/setunset.py +0 -0
  685. {astrbot-4.10.0a2 → astrbot-4.10.2}/packages/builtin_commands/commands/sid.py +0 -0
  686. {astrbot-4.10.0a2 → astrbot-4.10.2}/packages/builtin_commands/commands/t2i.py +0 -0
  687. {astrbot-4.10.0a2 → astrbot-4.10.2}/packages/builtin_commands/commands/tool.py +0 -0
  688. {astrbot-4.10.0a2 → astrbot-4.10.2}/packages/builtin_commands/commands/tts.py +0 -0
  689. {astrbot-4.10.0a2 → astrbot-4.10.2}/packages/builtin_commands/commands/utils/rst_scene.py +0 -0
  690. {astrbot-4.10.0a2 → astrbot-4.10.2}/packages/builtin_commands/main.py +0 -0
  691. {astrbot-4.10.0a2 → astrbot-4.10.2}/packages/builtin_commands/metadata.yaml +0 -0
  692. {astrbot-4.10.0a2 → astrbot-4.10.2}/packages/python_interpreter/main.py +0 -0
  693. {astrbot-4.10.0a2 → astrbot-4.10.2}/packages/python_interpreter/metadata.yaml +0 -0
  694. {astrbot-4.10.0a2 → astrbot-4.10.2}/packages/python_interpreter/requirements.txt +0 -0
  695. {astrbot-4.10.0a2 → astrbot-4.10.2}/packages/python_interpreter/shared/api.py +0 -0
  696. {astrbot-4.10.0a2 → astrbot-4.10.2}/packages/reminder/main.py +0 -0
  697. {astrbot-4.10.0a2 → astrbot-4.10.2}/packages/reminder/metadata.yaml +0 -0
  698. {astrbot-4.10.0a2 → astrbot-4.10.2}/packages/session_controller/main.py +0 -0
  699. {astrbot-4.10.0a2 → astrbot-4.10.2}/packages/session_controller/metadata.yaml +0 -0
  700. {astrbot-4.10.0a2 → astrbot-4.10.2}/packages/web_searcher/engines/__init__.py +0 -0
  701. {astrbot-4.10.0a2 → astrbot-4.10.2}/packages/web_searcher/engines/bing.py +0 -0
  702. {astrbot-4.10.0a2 → astrbot-4.10.2}/packages/web_searcher/engines/sogo.py +0 -0
  703. {astrbot-4.10.0a2 → astrbot-4.10.2}/packages/web_searcher/main.py +0 -0
  704. {astrbot-4.10.0a2 → astrbot-4.10.2}/packages/web_searcher/metadata.yaml +0 -0
  705. {astrbot-4.10.0a2 → astrbot-4.10.2}/samples/stt_health_check.wav +0 -0
  706. {astrbot-4.10.0a2 → astrbot-4.10.2}/tests/test_dashboard.py +0 -0
  707. {astrbot-4.10.0a2 → astrbot-4.10.2}/tests/test_kb_import.py +0 -0
  708. {astrbot-4.10.0a2 → astrbot-4.10.2}/tests/test_main.py +0 -0
  709. {astrbot-4.10.0a2 → astrbot-4.10.2}/tests/test_plugin_manager.py +0 -0
  710. {astrbot-4.10.0a2 → astrbot-4.10.2}/tests/test_security_fixes.py +0 -0
  711. {astrbot-4.10.0a2 → astrbot-4.10.2}/tests/test_tool_loop_agent_runner.py +0 -0
  712. {astrbot-4.10.0a2 → astrbot-4.10.2}/typings/faiss/__init__.pyi +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: AstrBot
3
- Version: 4.10.0a2
3
+ Version: 4.10.2
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
@@ -36,7 +36,7 @@ Requires-Dist: openai>=1.78.0
36
36
  Requires-Dist: ormsgpack>=1.9.1
37
37
  Requires-Dist: pillow>=11.2.1
38
38
  Requires-Dist: pip>=25.1.1
39
- Requires-Dist: psutil>=5.8.0
39
+ Requires-Dist: psutil<7.2.0,>=5.8.0
40
40
  Requires-Dist: py-cord>=2.6.1
41
41
  Requires-Dist: pydantic~=2.10.3
42
42
  Requires-Dist: pydub>=0.25.1
@@ -0,0 +1 @@
1
+ __version__ = "4.10.2"
@@ -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.2"
8
+ VERSION = "4.10.2"
9
9
  DB_PATH = os.path.join(get_astrbot_data_path(), "data_v4.db")
10
10
 
11
11
  WEBHOOK_SUPPORTED_PLATFORMS = [
@@ -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
@@ -90,6 +90,7 @@ async def toggle_command(handler_full_name: str, enabled: bool) -> CommandDescri
90
90
  async def rename_command(
91
91
  handler_full_name: str,
92
92
  new_fragment: str,
93
+ aliases: list[str] | None = None,
93
94
  ) -> CommandDescriptor:
94
95
  descriptor = _build_descriptor_by_full_name(handler_full_name)
95
96
  if not descriptor:
@@ -99,9 +100,24 @@ async def rename_command(
99
100
  if not new_fragment:
100
101
  raise ValueError("指令名不能为空。")
101
102
 
103
+ # 校验主指令名
102
104
  candidate_full = _compose_command(descriptor.parent_signature, new_fragment)
103
105
  if _is_command_in_use(handler_full_name, candidate_full):
104
- raise ValueError("新的指令名已被其他指令占用,请换一个名称。")
106
+ raise ValueError(f"指令名 '{candidate_full}' 已被其他指令占用。")
107
+
108
+ # 校验别名
109
+ if aliases:
110
+ for alias in aliases:
111
+ alias = alias.strip()
112
+ if not alias:
113
+ continue
114
+ alias_full = _compose_command(descriptor.parent_signature, alias)
115
+ if _is_command_in_use(handler_full_name, alias_full):
116
+ raise ValueError(f"别名 '{alias_full}' 已被其他指令占用。")
117
+
118
+ existing_cfg = await db_helper.get_command_config(handler_full_name)
119
+ merged_extra = dict(existing_cfg.extra_data or {}) if existing_cfg else {}
120
+ merged_extra["resolved_aliases"] = aliases or []
105
121
 
106
122
  config = await db_helper.upsert_command_config(
107
123
  handler_full_name=handler_full_name,
@@ -114,7 +130,7 @@ async def rename_command(
114
130
  conflict_key=descriptor.original_command,
115
131
  resolution_strategy="manual_rename",
116
132
  note=None,
117
- extra_data=None,
133
+ extra_data=merged_extra,
118
134
  auto_managed=False,
119
135
  )
120
136
  _bind_descriptor_with_config(descriptor, config)
@@ -192,12 +208,18 @@ def _collect_descriptors(include_sub_commands: bool) -> list[CommandDescriptor]:
192
208
  """收集指令,按需包含子指令。"""
193
209
  descriptors: list[CommandDescriptor] = []
194
210
  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:
211
+ try:
212
+ desc = _build_descriptor(handler)
213
+ if not desc:
214
+ continue
215
+ if not include_sub_commands and desc.is_sub_command:
216
+ continue
217
+ descriptors.append(desc)
218
+ except Exception as e:
219
+ logger.warning(
220
+ f"解析指令处理函数 {handler.handler_full_name} 失败,跳过该指令。原因: {e!s}"
221
+ )
199
222
  continue
200
- descriptors.append(desc)
201
223
  return descriptors
202
224
 
203
225
 
@@ -357,14 +379,27 @@ def _apply_config_to_descriptor(
357
379
  new_fragment,
358
380
  )
359
381
 
382
+ extra = config.extra_data or {}
383
+ resolved_aliases = extra.get("resolved_aliases")
384
+ if isinstance(resolved_aliases, list):
385
+ descriptor.aliases = [str(x) for x in resolved_aliases if str(x).strip()]
386
+
360
387
 
361
388
  def _apply_config_to_runtime(
362
389
  descriptor: CommandDescriptor,
363
390
  config: CommandConfig,
364
391
  ) -> None:
365
392
  descriptor.handler.enabled = config.enabled
366
- if descriptor.filter_ref and descriptor.current_fragment:
367
- _set_filter_fragment(descriptor.filter_ref, descriptor.current_fragment)
393
+ if descriptor.filter_ref:
394
+ if descriptor.current_fragment:
395
+ _set_filter_fragment(descriptor.filter_ref, descriptor.current_fragment)
396
+ extra = config.extra_data or {}
397
+ resolved_aliases = extra.get("resolved_aliases")
398
+ if isinstance(resolved_aliases, list):
399
+ _set_filter_aliases(
400
+ descriptor.filter_ref,
401
+ [str(x) for x in resolved_aliases if str(x).strip()],
402
+ )
368
403
 
369
404
 
370
405
  def _bind_configs_to_descriptors(
@@ -403,6 +438,18 @@ def _set_filter_fragment(
403
438
  filter_ref._cmpl_cmd_names = None
404
439
 
405
440
 
441
+ def _set_filter_aliases(
442
+ filter_ref: CommandFilter | CommandGroupFilter,
443
+ aliases: list[str],
444
+ ) -> None:
445
+ current_aliases = getattr(filter_ref, "alias", set())
446
+ if set(aliases) == current_aliases:
447
+ return
448
+ setattr(filter_ref, "alias", set(aliases))
449
+ if hasattr(filter_ref, "_cmpl_cmd_names"):
450
+ filter_ref._cmpl_cmd_names = None
451
+
452
+
406
453
  def _is_command_in_use(
407
454
  target_handler_full_name: str,
408
455
  candidate_full_command: str,
@@ -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
@@ -61,12 +61,13 @@ class CommandRoute(Route):
61
61
  data = await request.get_json()
62
62
  handler_full_name = data.get("handler_full_name")
63
63
  new_name = data.get("new_name")
64
+ aliases = data.get("aliases")
64
65
 
65
66
  if not handler_full_name or not new_name:
66
67
  return Response().error("handler_full_name 与 new_name 均为必填。").__dict__
67
68
 
68
69
  try:
69
- await rename_command_service(handler_full_name, new_name)
70
+ await rename_command_service(handler_full_name, new_name, aliases=aliases)
70
71
  except ValueError as exc:
71
72
  return Response().error(str(exc)).__dict__
72
73
 
@@ -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,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!
@@ -0,0 +1,9 @@
1
+ ## What's Changed
2
+
3
+ ### 修复
4
+
5
+ 1. ‼️‼️ 修复了由 `psutil` 新版本导致的启动时报错的问题。
6
+
7
+ ### 新增
8
+
9
+ 1. 插件指令管理支持管理别名。
@@ -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">
@@ -0,0 +1,131 @@
1
+ <script setup lang="ts">
2
+ import { computed, ref, watch } from 'vue';
3
+ import { useModuleI18n } from '@/i18n/composables';
4
+ import type { CommandItem } from '../types';
5
+
6
+ const { tm } = useModuleI18n('features/command');
7
+
8
+ // Props
9
+ const props = defineProps<{
10
+ show: boolean;
11
+ command: CommandItem | null;
12
+ newName: string;
13
+ aliases: string[];
14
+ loading: boolean;
15
+ }>();
16
+
17
+ // Emits
18
+ const emit = defineEmits<{
19
+ (e: 'update:show', value: boolean): void;
20
+ (e: 'update:newName', value: string): void;
21
+ (e: 'update:aliases', value: string[]): void;
22
+ (e: 'confirm'): void;
23
+ }>();
24
+
25
+ const addAlias = () => {
26
+ emit('update:aliases', [...props.aliases, '']);
27
+ };
28
+
29
+ const removeAlias = (index: number) => {
30
+ const newAliases = [...props.aliases];
31
+ newAliases.splice(index, 1);
32
+ emit('update:aliases', newAliases);
33
+ };
34
+
35
+ const updateAlias = (index: number, value: string) => {
36
+ const newAliases = [...props.aliases];
37
+ newAliases[index] = value;
38
+ emit('update:aliases', newAliases);
39
+ };
40
+
41
+ const hasAliases = computed(() => (props.aliases || []).some(a => (a ?? '').toString().trim()));
42
+ const showAliasEditor = ref(false);
43
+ const aliasEditorEverOpened = ref(false);
44
+
45
+ watch(
46
+ () => props.show,
47
+ (open) => {
48
+ if (!open) return;
49
+ // 如果已有别名则默认展开,否则默认收起
50
+ showAliasEditor.value = hasAliases.value;
51
+ },
52
+ );
53
+
54
+ watch(showAliasEditor, (open) => {
55
+ if (open) aliasEditorEverOpened.value = true;
56
+ });
57
+ </script>
58
+
59
+ <template>
60
+ <v-dialog :model-value="show" @update:model-value="emit('update:show', $event)" max-width="500">
61
+ <v-card>
62
+ <v-card-title class="text-h5">{{ tm('dialogs.rename.title') }}</v-card-title>
63
+ <v-card-text>
64
+ <v-text-field
65
+ :model-value="newName"
66
+ @update:model-value="emit('update:newName', $event)"
67
+ :label="tm('dialogs.rename.newName')"
68
+ variant="outlined"
69
+ density="compact"
70
+ autofocus
71
+ class="mb-2"
72
+ />
73
+
74
+ <v-card variant="outlined" class="mt-2" elevation="0">
75
+ <div
76
+ class="d-flex align-center justify-space-between px-4 py-3"
77
+ role="button"
78
+ tabindex="0"
79
+ @click="showAliasEditor = !showAliasEditor"
80
+ @keydown.enter.prevent="showAliasEditor = !showAliasEditor"
81
+ @keydown.space.prevent="showAliasEditor = !showAliasEditor"
82
+ >
83
+ <div class="text-subtitle-1">{{ tm('dialogs.rename.aliases') }}</div>
84
+ <v-icon size="20">{{ showAliasEditor ? 'mdi-chevron-up' : 'mdi-chevron-down' }}</v-icon>
85
+ </div>
86
+ <v-divider v-if="showAliasEditor" />
87
+ <v-slide-y-transition>
88
+ <div v-if="aliasEditorEverOpened" v-show="showAliasEditor" class="px-4 py-3">
89
+ <div v-for="(alias, index) in aliases" :key="index" class="d-flex align-center mb-2">
90
+ <v-text-field
91
+ :model-value="alias"
92
+ @update:model-value="updateAlias(index, $event)"
93
+ variant="outlined"
94
+ density="compact"
95
+ hide-details
96
+ class="flex-grow-1 mr-2"
97
+ />
98
+ <v-btn icon="mdi-delete" variant="text" color="error" density="compact" @click="removeAlias(index)" />
99
+ </div>
100
+ <v-btn
101
+ prepend-icon="mdi-plus"
102
+ variant="outlined"
103
+ color="primary"
104
+ block
105
+ size="small"
106
+ class="mt-2"
107
+ @click="addAlias"
108
+ >
109
+ {{ tm('dialogs.rename.addAlias') }}
110
+ </v-btn>
111
+ </div>
112
+ </v-slide-y-transition>
113
+ </v-card>
114
+ </v-card-text>
115
+ <v-card-actions>
116
+ <v-spacer />
117
+ <v-btn color="grey" variant="text" @click="emit('update:show', false)">
118
+ {{ tm('dialogs.rename.cancel') }}
119
+ </v-btn>
120
+ <v-btn
121
+ color="primary"
122
+ variant="text"
123
+ :loading="loading"
124
+ @click="emit('confirm')"
125
+ >
126
+ {{ tm('dialogs.rename.confirm') }}
127
+ </v-btn>
128
+ </v-card-actions>
129
+ </v-card>
130
+ </v-dialog>
131
+ </template>
@@ -14,6 +14,7 @@ export function useCommandActions(
14
14
  show: false,
15
15
  command: null,
16
16
  newName: '',
17
+ aliases: [],
17
18
  loading: false
18
19
  });
19
20
 
@@ -53,6 +54,7 @@ export function useCommandActions(
53
54
  const openRenameDialog = (cmd: CommandItem) => {
54
55
  renameDialog.command = cmd;
55
56
  renameDialog.newName = cmd.current_fragment || '';
57
+ renameDialog.aliases = [...(cmd.aliases || [])];
56
58
  renameDialog.show = true;
57
59
  };
58
60
 
@@ -66,7 +68,8 @@ export function useCommandActions(
66
68
  try {
67
69
  const res = await axios.post('/api/commands/rename', {
68
70
  handler_full_name: renameDialog.command.handler_full_name,
69
- new_name: renameDialog.newName.trim()
71
+ new_name: renameDialog.newName.trim(),
72
+ aliases: renameDialog.aliases.filter(a => a.trim())
70
73
  });
71
74
  if (res.data.status === 'ok') {
72
75
  toast(successMessage, 'success');
@@ -288,6 +288,8 @@ watch(viewMode, async (mode) => {
288
288
  @update:show="renameDialog.show = $event"
289
289
  :new-name="renameDialog.newName"
290
290
  @update:new-name="renameDialog.newName = $event"
291
+ :aliases="renameDialog.aliases"
292
+ @update:aliases="renameDialog.aliases = $event"
291
293
  :command="renameDialog.command"
292
294
  :loading="renameDialog.loading"
293
295
  @confirm="handleConfirmRename"
@@ -52,6 +52,7 @@ export interface RenameDialogState {
52
52
  show: boolean;
53
53
  command: CommandItem | null;
54
54
  newName: string;
55
+ aliases: string[];
55
56
  loading: boolean;
56
57
  }
57
58