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.
- {astrbot-4.10.0a2 → astrbot-4.10.2}/PKG-INFO +2 -2
- astrbot-4.10.2/astrbot/cli/__init__.py +1 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/config/default.py +1 -1
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/platform/sources/aiocqhttp/aiocqhttp_platform_adapter.py +17 -2
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/provider/sources/gemini_source.py +19 -3
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/star/command_management.py +57 -10
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/star/star_manager.py +5 -1
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/dashboard/routes/command.py +2 -1
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/dashboard/routes/config.py +20 -8
- astrbot-4.10.2/changelogs/v4.10.0.md +40 -0
- astrbot-4.10.2/changelogs/v4.10.1.md +46 -0
- astrbot-4.10.2/changelogs/v4.10.2.md +9 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/components/chat/ChatInput.vue +12 -2
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/components/chat/ConversationSidebar.vue +2 -1
- astrbot-4.10.2/dashboard/src/components/extension/componentPanel/components/RenameDialog.vue +131 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/components/extension/componentPanel/composables/useCommandActions.ts +4 -1
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/components/extension/componentPanel/index.vue +2 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/components/extension/componentPanel/types.ts +1 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/components/provider/ProviderSourcesPanel.vue +7 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/composables/useProviderSources.ts +5 -3
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/i18n/locales/en-US/features/command.json +2 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/i18n/locales/en-US/features/provider.json +1 -1
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/i18n/locales/zh-CN/features/command.json +2 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/i18n/locales/zh-CN/features/provider.json +1 -1
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/layouts/full/FullLayout.vue +12 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/router/index.ts +11 -0
- astrbot-4.10.2/dashboard/src/stores/routerLoading.ts +60 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/pyproject.toml +2 -2
- {astrbot-4.10.0a2 → astrbot-4.10.2}/requirements.txt +1 -1
- astrbot-4.10.0a2/astrbot/cli/__init__.py +0 -1
- astrbot-4.10.0a2/dashboard/src/components/extension/componentPanel/components/RenameDialog.vue +0 -53
- {astrbot-4.10.0a2 → astrbot-4.10.2}/.dockerignore +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/.github/FUNDING.yml +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/.github/ISSUE_TEMPLATE/PLUGIN_PUBLISH.yml +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/.github/ISSUE_TEMPLATE/bug-report.yml +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/.github/ISSUE_TEMPLATE/feature-request.yml +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/.github/auto_assign.yml +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/.github/copilot-instructions.md +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/.github/dependabot.yml +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/.github/workflows/auto_release.yml +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/.github/workflows/code-format.yml +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/.github/workflows/codeql.yml +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/.github/workflows/coverage_test.yml +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/.github/workflows/dashboard_ci.yml +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/.github/workflows/docker-image.yml +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/.github/workflows/smoke_test.yml +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/.github/workflows/stale.yml +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/.gitignore +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/.pre-commit-config.yaml +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/.python-version +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/CODE_OF_CONDUCT.md +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/CONTRIBUTING.md +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/Dockerfile +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/LICENSE +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/README.md +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/README_en.md +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/README_fr.md +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/README_ja.md +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/README_ru.md +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/README_zh-TW.md +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/__init__.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/api/__init__.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/api/all.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/api/event/__init__.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/api/event/filter/__init__.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/api/message_components.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/api/platform/__init__.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/api/provider/__init__.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/api/star/__init__.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/api/util/__init__.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/cli/__main__.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/cli/commands/__init__.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/cli/commands/cmd_conf.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/cli/commands/cmd_init.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/cli/commands/cmd_plug.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/cli/commands/cmd_run.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/cli/utils/__init__.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/cli/utils/basic.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/cli/utils/plugin.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/cli/utils/version_comparator.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/__init__.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/agent/agent.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/agent/handoff.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/agent/hooks.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/agent/mcp_client.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/agent/message.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/agent/response.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/agent/run_context.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/agent/runners/__init__.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/agent/runners/base.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/agent/runners/coze/coze_agent_runner.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/agent/runners/coze/coze_api_client.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/agent/runners/dashscope/dashscope_agent_runner.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/agent/runners/dify/dify_agent_runner.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/agent/runners/dify/dify_api_client.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/agent/runners/tool_loop_agent_runner.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/agent/tool.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/agent/tool_executor.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/astr_agent_context.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/astr_agent_hooks.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/astr_agent_run_util.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/astr_agent_tool_exec.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/astrbot_config_mgr.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/config/__init__.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/config/astrbot_config.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/config/i18n_utils.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/conversation_mgr.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/core_lifecycle.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/db/__init__.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/db/migration/helper.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/db/migration/migra_3_to_4.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/db/migration/migra_45_to_46.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/db/migration/migra_webchat_session.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/db/migration/shared_preferences_v3.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/db/migration/sqlite_v3.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/db/po.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/db/sqlite.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/db/vec_db/base.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/db/vec_db/faiss_impl/__init__.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/db/vec_db/faiss_impl/document_storage.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/db/vec_db/faiss_impl/embedding_storage.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/db/vec_db/faiss_impl/sqlite_init.sql +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/db/vec_db/faiss_impl/vec_db.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/event_bus.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/exceptions.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/file_token_service.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/initial_loader.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/knowledge_base/chunking/__init__.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/knowledge_base/chunking/base.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/knowledge_base/chunking/fixed_size.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/knowledge_base/chunking/recursive.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/knowledge_base/kb_db_sqlite.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/knowledge_base/kb_helper.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/knowledge_base/kb_mgr.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/knowledge_base/models.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/knowledge_base/parsers/__init__.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/knowledge_base/parsers/base.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/knowledge_base/parsers/markitdown_parser.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/knowledge_base/parsers/pdf_parser.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/knowledge_base/parsers/text_parser.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/knowledge_base/parsers/url_parser.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/knowledge_base/parsers/util.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/knowledge_base/prompts.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/knowledge_base/retrieval/__init__.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/knowledge_base/retrieval/hit_stopwords.txt +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/knowledge_base/retrieval/manager.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/knowledge_base/retrieval/rank_fusion.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/knowledge_base/retrieval/sparse_retriever.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/log.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/message/components.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/message/message_event_result.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/persona_mgr.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/pipeline/__init__.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/pipeline/content_safety_check/stage.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/pipeline/content_safety_check/strategies/__init__.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/pipeline/content_safety_check/strategies/baidu_aip.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/pipeline/content_safety_check/strategies/keywords.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/pipeline/content_safety_check/strategies/strategy.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/pipeline/context.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/pipeline/context_utils.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/pipeline/preprocess_stage/stage.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/pipeline/process_stage/method/agent_request.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/pipeline/process_stage/method/agent_sub_stages/internal.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/pipeline/process_stage/method/agent_sub_stages/third_party.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/pipeline/process_stage/method/star_request.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/pipeline/process_stage/stage.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/pipeline/process_stage/utils.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/pipeline/rate_limit_check/stage.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/pipeline/respond/stage.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/pipeline/result_decorate/stage.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/pipeline/scheduler.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/pipeline/session_status_check/stage.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/pipeline/stage.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/pipeline/waking_check/stage.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/pipeline/whitelist_check/stage.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/platform/__init__.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/platform/astr_message_event.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/platform/astrbot_message.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/platform/manager.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/platform/message_session.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/platform/message_type.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/platform/platform.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/platform/platform_metadata.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/platform/register.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/platform/sources/aiocqhttp/aiocqhttp_message_event.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/platform/sources/dingtalk/dingtalk_adapter.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/platform/sources/dingtalk/dingtalk_event.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/platform/sources/discord/client.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/platform/sources/discord/components.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/platform/sources/discord/discord_platform_adapter.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/platform/sources/discord/discord_platform_event.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/platform/sources/lark/lark_adapter.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/platform/sources/lark/lark_event.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/platform/sources/lark/server.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/platform/sources/misskey/misskey_adapter.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/platform/sources/misskey/misskey_api.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/platform/sources/misskey/misskey_event.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/platform/sources/misskey/misskey_utils.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/platform/sources/qqofficial/qqofficial_message_event.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/platform/sources/qqofficial/qqofficial_platform_adapter.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/platform/sources/qqofficial_webhook/qo_webhook_adapter.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/platform/sources/qqofficial_webhook/qo_webhook_event.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/platform/sources/qqofficial_webhook/qo_webhook_server.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/platform/sources/satori/satori_adapter.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/platform/sources/satori/satori_event.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/platform/sources/slack/client.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/platform/sources/slack/slack_adapter.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/platform/sources/slack/slack_event.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/platform/sources/telegram/tg_adapter.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/platform/sources/telegram/tg_event.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/platform/sources/webchat/webchat_adapter.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/platform/sources/webchat/webchat_event.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/platform/sources/webchat/webchat_queue_mgr.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/platform/sources/wechatpadpro/wechatpadpro_adapter.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/platform/sources/wechatpadpro/wechatpadpro_message_event.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/platform/sources/wechatpadpro/xml_data_parser.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/platform/sources/wecom/wecom_adapter.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/platform/sources/wecom/wecom_event.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/platform/sources/wecom/wecom_kf.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/platform/sources/wecom/wecom_kf_message.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/platform/sources/wecom_ai_bot/WXBizJsonMsgCrypt.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/platform/sources/wecom_ai_bot/__init__.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/platform/sources/wecom_ai_bot/ierror.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/platform/sources/wecom_ai_bot/wecomai_adapter.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/platform/sources/wecom_ai_bot/wecomai_api.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/platform/sources/wecom_ai_bot/wecomai_event.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/platform/sources/wecom_ai_bot/wecomai_queue_mgr.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/platform/sources/wecom_ai_bot/wecomai_server.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/platform/sources/wecom_ai_bot/wecomai_utils.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/platform/sources/weixin_official_account/weixin_offacc_adapter.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/platform/sources/weixin_official_account/weixin_offacc_event.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/platform_message_history_mgr.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/provider/__init__.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/provider/entites.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/provider/entities.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/provider/func_tool_manager.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/provider/manager.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/provider/provider.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/provider/register.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/provider/sources/anthropic_source.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/provider/sources/azure_tts_source.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/provider/sources/bailian_rerank_source.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/provider/sources/dashscope_tts.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/provider/sources/edge_tts_source.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/provider/sources/fishaudio_tts_api_source.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/provider/sources/gemini_embedding_source.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/provider/sources/gemini_tts_source.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/provider/sources/groq_source.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/provider/sources/gsv_selfhosted_source.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/provider/sources/gsvi_tts_source.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/provider/sources/minimax_tts_api_source.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/provider/sources/openai_embedding_source.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/provider/sources/openai_source.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/provider/sources/openai_tts_api_source.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/provider/sources/sensevoice_selfhosted_source.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/provider/sources/vllm_rerank_source.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/provider/sources/volcengine_tts.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/provider/sources/whisper_api_source.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/provider/sources/whisper_selfhosted_source.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/provider/sources/xinference_rerank_source.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/provider/sources/xinference_stt_provider.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/provider/sources/zhipu_source.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/star/README.md +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/star/__init__.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/star/config.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/star/context.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/star/filter/__init__.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/star/filter/command.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/star/filter/command_group.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/star/filter/custom_filter.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/star/filter/event_message_type.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/star/filter/permission.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/star/filter/platform_adapter_type.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/star/filter/regex.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/star/register/__init__.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/star/register/star.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/star/register/star_handler.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/star/session_llm_manager.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/star/session_plugin_manager.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/star/star.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/star/star_handler.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/star/star_tools.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/star/updator.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/umop_config_router.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/updator.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/utils/astrbot_path.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/utils/command_parser.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/utils/file_extract.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/utils/io.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/utils/llm_metadata.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/utils/log_pipe.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/utils/metrics.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/utils/migra_helper.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/utils/path_util.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/utils/pip_installer.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/utils/plugin_kv_store.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/utils/session_lock.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/utils/session_waiter.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/utils/shared_preferences.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/utils/t2i/__init__.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/utils/t2i/local_strategy.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/utils/t2i/network_strategy.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/utils/t2i/renderer.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/utils/t2i/template/astrbot_powershell.html +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/utils/t2i/template/base.html +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/utils/t2i/template_manager.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/utils/tencent_record_helper.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/utils/version_comparator.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/utils/webhook_utils.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/core/zip_updator.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/dashboard/routes/__init__.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/dashboard/routes/auth.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/dashboard/routes/chat.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/dashboard/routes/conversation.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/dashboard/routes/file.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/dashboard/routes/knowledge_base.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/dashboard/routes/log.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/dashboard/routes/persona.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/dashboard/routes/platform.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/dashboard/routes/plugin.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/dashboard/routes/route.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/dashboard/routes/session_management.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/dashboard/routes/stat.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/dashboard/routes/static_file.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/dashboard/routes/t2i.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/dashboard/routes/tools.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/dashboard/routes/update.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/dashboard/server.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/astrbot/dashboard/utils.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/changelogs/v3.4.0.md +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/changelogs/v3.4.1.md +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/changelogs/v3.4.10.md +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/changelogs/v3.4.11.md +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/changelogs/v3.4.12.md +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/changelogs/v3.4.13.md +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/changelogs/v3.4.14.md +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/changelogs/v3.4.15.md +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/changelogs/v3.4.16.md +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/changelogs/v3.4.17.md +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/changelogs/v3.4.18.md +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/changelogs/v3.4.19.md +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/changelogs/v3.4.20.md +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/changelogs/v3.4.21.md +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/changelogs/v3.4.22.md +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/changelogs/v3.4.23.md +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/changelogs/v3.4.24.md +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/changelogs/v3.4.25.md +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/changelogs/v3.4.26.md +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/changelogs/v3.4.27.md +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/changelogs/v3.4.28.md +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/changelogs/v3.4.29.md +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/changelogs/v3.4.3.md +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/changelogs/v3.4.30.md +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/changelogs/v3.4.31.md +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/changelogs/v3.4.32.md +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/changelogs/v3.4.33.md +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/changelogs/v3.4.35.md +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/changelogs/v3.4.36.md +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/changelogs/v3.4.37.md +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/changelogs/v3.4.38.md +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/changelogs/v3.4.39.md +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/changelogs/v3.4.4.md +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/changelogs/v3.4.5.md +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/changelogs/v3.4.6.md +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/changelogs/v3.4.7.md +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/changelogs/v3.4.8.md +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/changelogs/v3.4.9.md +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/changelogs/v3.5.0.md +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/changelogs/v3.5.1.md +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/changelogs/v3.5.10.md +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/changelogs/v3.5.11.md +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/changelogs/v3.5.12.md +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/changelogs/v3.5.13.md +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/changelogs/v3.5.14.md +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/changelogs/v3.5.15.md +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/changelogs/v3.5.16.md +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/changelogs/v3.5.17.md +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/changelogs/v3.5.18.md +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/changelogs/v3.5.19.md +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/changelogs/v3.5.2.md +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/changelogs/v3.5.20.md +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/changelogs/v3.5.21.md +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/changelogs/v3.5.22.md +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/changelogs/v3.5.23.md +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/changelogs/v3.5.24.md +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/changelogs/v3.5.25.md +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/changelogs/v3.5.26.md +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/changelogs/v3.5.27.md +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/changelogs/v3.5.3.1.md +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/changelogs/v3.5.3.2.md +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/changelogs/v3.5.3.md +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/changelogs/v3.5.4.md +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/changelogs/v3.5.5.md +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/changelogs/v3.5.6.md +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/changelogs/v3.5.7.md +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/changelogs/v3.5.8.md +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/changelogs/v3.5.9.md +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/changelogs/v4.0.0-beta.3.md +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/changelogs/v4.0.0-beta.4.md +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/changelogs/v4.0.0-beta.5.md +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/changelogs/v4.0.0.md +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/changelogs/v4.1.0.md +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/changelogs/v4.1.1.md +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/changelogs/v4.1.2.md +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/changelogs/v4.1.3.md +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/changelogs/v4.1.4.md +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/changelogs/v4.1.5.md +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/changelogs/v4.1.6.md +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/changelogs/v4.1.7.md +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/changelogs/v4.10.0-alpha.1.md +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/changelogs/v4.10.0-alpha.2.md +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/changelogs/v4.2.0.md +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/changelogs/v4.2.1.md +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/changelogs/v4.3.0.md +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/changelogs/v4.3.1.md +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/changelogs/v4.3.2.md +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/changelogs/v4.3.3.md +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/changelogs/v4.3.5.md +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/changelogs/v4.5.0.md +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/changelogs/v4.5.1.md +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/changelogs/v4.5.2.md +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/changelogs/v4.5.3.md +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/changelogs/v4.5.4.md +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/changelogs/v4.5.5.md +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/changelogs/v4.5.6.md +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/changelogs/v4.5.7.md +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/changelogs/v4.5.8.md +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/changelogs/v4.6.0.md +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/changelogs/v4.6.1.md +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/changelogs/v4.7.0.md +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/changelogs/v4.7.1.md +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/changelogs/v4.7.3.md +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/changelogs/v4.7.4.md +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/changelogs/v4.8.0.md +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/changelogs/v4.9.0.md +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/changelogs/v4.9.1.md +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/changelogs/v4.9.2.md +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/compose.yml +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/.gitignore +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/LICENSE +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/README.md +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/env.d.ts +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/index.html +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/public/_redirects +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/public/favicon.svg +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/App.vue +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/assets/images/astrbot_banner.png +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/assets/images/astrbot_logo_mini.webp +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/assets/images/icon-no-shadow.svg +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/assets/images/loading-seio.webp +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/assets/images/platform_logos/dingtalk.svg +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/assets/images/platform_logos/discord.svg +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/assets/images/platform_logos/kook.png +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/assets/images/platform_logos/lark.png +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/assets/images/platform_logos/misskey.png +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/assets/images/platform_logos/onebot.png +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/assets/images/platform_logos/qq.png +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/assets/images/platform_logos/satori.png +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/assets/images/platform_logos/slack.svg +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/assets/images/platform_logos/telegram.svg +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/assets/images/platform_logos/vocechat.png +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/assets/images/platform_logos/wechat.png +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/assets/images/platform_logos/wecom.png +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/assets/images/plugin_icon.png +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/assets/images/provider_logos/modelstack.svg +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/assets/images/xmas-hat.png +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/components/ConfirmDialog.vue +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/components/chat/Chat.vue +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/components/chat/ConfigSelector.vue +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/components/chat/MessageList.vue +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/components/chat/ProviderConfigDialog.vue +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/components/chat/ProviderModelMenu.vue +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/components/chat/StandaloneChat.vue +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/components/config/AstrBotCoreConfigWrapper.vue +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/components/extension/McpServersSection.vue +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/components/extension/componentPanel/components/CommandFilters.vue +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/components/extension/componentPanel/components/CommandTable.vue +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/components/extension/componentPanel/components/DetailsDialog.vue +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/components/extension/componentPanel/components/ToolTable.vue +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/components/extension/componentPanel/composables/useCommandFilters.ts +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/components/extension/componentPanel/composables/useComponentData.ts +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/components/platform/AddNewPlatform.vue +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/components/provider/AddNewProvider.vue +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/components/provider/ProviderModelsPanel.vue +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/components/shared/AstrBotConfig.vue +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/components/shared/AstrBotConfigV4.vue +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/components/shared/ChangelogDialog.vue +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/components/shared/ConsoleDisplayer.vue +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/components/shared/ExtensionCard.vue +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/components/shared/ItemCard.vue +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/components/shared/ItemCardGrid.vue +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/components/shared/KnowledgeBaseSelector.vue +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/components/shared/LanguageSwitcher.vue +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/components/shared/ListConfigItem.vue +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/components/shared/Logo.vue +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/components/shared/MigrationDialog.vue +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/components/shared/ObjectEditor.vue +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/components/shared/PersonaForm.vue +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/components/shared/PersonaSelector.vue +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/components/shared/PluginSetSelector.vue +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/components/shared/ProviderSelector.vue +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/components/shared/ProxySelector.vue +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/components/shared/ReadmeDialog.vue +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/components/shared/SidebarCustomizer.vue +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/components/shared/StyledMenu.vue +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/components/shared/T2ITemplateEditor.vue +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/components/shared/UninstallConfirmDialog.vue +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/components/shared/WaitingForRestart.vue +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/composables/useConversations.ts +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/composables/useMediaHandling.ts +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/composables/useMessages.ts +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/composables/useRecording.ts +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/composables/useSessions.ts +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/config.ts +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/i18n/composables.ts +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/i18n/loader.ts +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/i18n/locales/en-US/core/actions.json +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/i18n/locales/en-US/core/common.json +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/i18n/locales/en-US/core/header.json +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/i18n/locales/en-US/core/navigation.json +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/i18n/locales/en-US/core/shared.json +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/i18n/locales/en-US/core/status.json +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/i18n/locales/en-US/features/about.json +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/i18n/locales/en-US/features/alkaid/index.json +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/i18n/locales/en-US/features/alkaid/knowledge-base.json +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/i18n/locales/en-US/features/alkaid/memory.json +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/i18n/locales/en-US/features/auth.json +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/i18n/locales/en-US/features/chart.json +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/i18n/locales/en-US/features/chat.json +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/i18n/locales/en-US/features/config-metadata.json +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/i18n/locales/en-US/features/config.json +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/i18n/locales/en-US/features/console.json +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/i18n/locales/en-US/features/conversation.json +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/i18n/locales/en-US/features/dashboard.json +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/i18n/locales/en-US/features/extension.json +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/i18n/locales/en-US/features/knowledge-base/detail.json +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/i18n/locales/en-US/features/knowledge-base/document.json +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/i18n/locales/en-US/features/knowledge-base/index.json +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/i18n/locales/en-US/features/migration.json +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/i18n/locales/en-US/features/persona.json +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/i18n/locales/en-US/features/platform.json +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/i18n/locales/en-US/features/session-management.json +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/i18n/locales/en-US/features/settings.json +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/i18n/locales/en-US/features/tool-use.json +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/i18n/locales/en-US/messages/errors.json +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/i18n/locales/en-US/messages/success.json +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/i18n/locales/en-US/messages/validation.json +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/i18n/locales/zh-CN/core/actions.json +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/i18n/locales/zh-CN/core/common.json +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/i18n/locales/zh-CN/core/header.json +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/i18n/locales/zh-CN/core/navigation.json +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/i18n/locales/zh-CN/core/shared.json +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/i18n/locales/zh-CN/core/status.json +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/i18n/locales/zh-CN/features/about.json +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/i18n/locales/zh-CN/features/alkaid/index.json +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/i18n/locales/zh-CN/features/alkaid/knowledge-base.json +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/i18n/locales/zh-CN/features/alkaid/memory.json +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/i18n/locales/zh-CN/features/auth.json +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/i18n/locales/zh-CN/features/chart.json +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/i18n/locales/zh-CN/features/chat.json +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/i18n/locales/zh-CN/features/config-metadata.json +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/i18n/locales/zh-CN/features/config.json +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/i18n/locales/zh-CN/features/console.json +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/i18n/locales/zh-CN/features/conversation.json +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/i18n/locales/zh-CN/features/dashboard.json +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/i18n/locales/zh-CN/features/extension.json +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/i18n/locales/zh-CN/features/knowledge-base/detail.json +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/i18n/locales/zh-CN/features/knowledge-base/document.json +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/i18n/locales/zh-CN/features/knowledge-base/index.json +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/i18n/locales/zh-CN/features/migration.json +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/i18n/locales/zh-CN/features/persona.json +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/i18n/locales/zh-CN/features/platform.json +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/i18n/locales/zh-CN/features/session-management.json +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/i18n/locales/zh-CN/features/settings.json +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/i18n/locales/zh-CN/features/tool-use.json +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/i18n/locales/zh-CN/messages/errors.json +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/i18n/locales/zh-CN/messages/success.json +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/i18n/locales/zh-CN/messages/validation.json +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/i18n/tools/index.ts +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/i18n/translations.ts +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/i18n/types.ts +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/i18n/validator.ts +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/layouts/blank/BlankLayout.vue +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/layouts/full/vertical-header/VerticalHeader.vue +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/layouts/full/vertical-sidebar/NavItem.vue +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/layouts/full/vertical-sidebar/VerticalSidebar.vue +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/layouts/full/vertical-sidebar/sidebarItem.ts +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/main.ts +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/plugins/confirmPlugin.ts +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/plugins/vuetify.ts +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/router/AuthRoutes.ts +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/router/ChatBoxRoutes.ts +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/router/MainRoutes.ts +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/scss/_override.scss +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/scss/_variables.scss +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/scss/components/_VButtons.scss +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/scss/components/_VCard.scss +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/scss/components/_VField.scss +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/scss/components/_VInput.scss +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/scss/components/_VNavigationDrawer.scss +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/scss/components/_VScrollbar.scss +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/scss/components/_VShadow.scss +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/scss/components/_VTabs.scss +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/scss/components/_VTextField.scss +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/scss/layout/_container.scss +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/scss/layout/_sidebar.scss +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/scss/pages/_dashboards.scss +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/scss/style.scss +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/stores/auth.ts +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/stores/common.js +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/stores/customizer.ts +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/stores/toast.js +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/theme/DarkTheme.ts +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/theme/LightTheme.ts +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/types/themeTypes/ThemeType.ts +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/types/vue3-print-nb.d.ts +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/types/vue_tabler_icon.d.ts +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/utils/platformUtils.js +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/utils/providerUtils.js +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/utils/sidebarCustomization.js +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/utils/toast.js +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/views/AboutPage.vue +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/views/AlkaidPage.vue +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/views/ChatBoxPage.vue +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/views/ChatPage.vue +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/views/ConfigPage.vue +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/views/ConsolePage.vue +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/views/ConversationPage.vue +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/views/ExtensionPage.vue +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/views/PersonaPage.vue +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/views/PlatformPage.vue +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/views/ProviderPage.vue +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/views/SessionManagementPage.vue +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/views/Settings.vue +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/views/alkaid/KnowledgeBase.vue +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/views/alkaid/LongTermMemory.vue +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/views/alkaid/Other.vue +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/views/authentication/auth/LoginPage.vue +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/views/authentication/authForms/AuthLogin.vue +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/views/dashboards/default/DefaultDashboard.vue +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/views/dashboards/default/components/MemoryUsage.vue +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/views/dashboards/default/components/MessageStat.vue +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/views/dashboards/default/components/OnlinePlatform.vue +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/views/dashboards/default/components/OnlineTime.vue +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/views/dashboards/default/components/PlatformStat.vue +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/views/dashboards/default/components/RunningTime.vue +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/views/dashboards/default/components/TotalMessage.vue +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/views/knowledge-base/DocumentDetail.vue +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/views/knowledge-base/KBDetail.vue +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/views/knowledge-base/KBList.vue +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/views/knowledge-base/components/DocumentsTab.vue +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/views/knowledge-base/components/RetrievalTab.vue +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/views/knowledge-base/components/SettingsTab.vue +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/views/knowledge-base/components/TavilyKeyDialog.vue +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/views/knowledge-base/index.vue +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/tsconfig.json +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/tsconfig.vite-config.json +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/vite.config.ts +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/k8s/astrbot/00-namespace.yaml +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/k8s/astrbot/01-pvc.yaml +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/k8s/astrbot/02-deployment.yaml +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/k8s/astrbot/03-service-nodeport.yaml +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/k8s/astrbot/04-service-loadbalancer.yaml +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/k8s/astrbot_with_napcat/00-namespace.yaml +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/k8s/astrbot_with_napcat/01-pvc.yaml +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/k8s/astrbot_with_napcat/02-deployment.yaml +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/k8s/astrbot_with_napcat/03-service-nodeport.yaml +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/k8s/astrbot_with_napcat/04-service-loadbalancer.yaml +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/main.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/packages/astrbot/long_term_memory.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/packages/astrbot/main.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/packages/astrbot/metadata.yaml +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/packages/astrbot/process_llm_request.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/packages/builtin_commands/commands/__init__.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/packages/builtin_commands/commands/admin.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/packages/builtin_commands/commands/alter_cmd.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/packages/builtin_commands/commands/conversation.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/packages/builtin_commands/commands/help.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/packages/builtin_commands/commands/llm.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/packages/builtin_commands/commands/persona.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/packages/builtin_commands/commands/plugin.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/packages/builtin_commands/commands/provider.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/packages/builtin_commands/commands/setunset.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/packages/builtin_commands/commands/sid.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/packages/builtin_commands/commands/t2i.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/packages/builtin_commands/commands/tool.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/packages/builtin_commands/commands/tts.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/packages/builtin_commands/commands/utils/rst_scene.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/packages/builtin_commands/main.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/packages/builtin_commands/metadata.yaml +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/packages/python_interpreter/main.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/packages/python_interpreter/metadata.yaml +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/packages/python_interpreter/requirements.txt +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/packages/python_interpreter/shared/api.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/packages/reminder/main.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/packages/reminder/metadata.yaml +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/packages/session_controller/main.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/packages/session_controller/metadata.yaml +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/packages/web_searcher/engines/__init__.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/packages/web_searcher/engines/bing.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/packages/web_searcher/engines/sogo.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/packages/web_searcher/main.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/packages/web_searcher/metadata.yaml +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/samples/stt_health_check.wav +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/tests/test_dashboard.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/tests/test_kb_import.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/tests/test_main.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/tests/test_plugin_manager.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/tests/test_security_fixes.py +0 -0
- {astrbot-4.10.0a2 → astrbot-4.10.2}/tests/test_tool_loop_agent_runner.py +0 -0
- {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.
|
|
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
|
|
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"
|
|
@@ -385,10 +385,25 @@ class AiocqhttpAdapter(Platform):
|
|
|
385
385
|
logger.error(f"获取 @ 用户信息失败: {e},此消息段将被忽略。")
|
|
386
386
|
|
|
387
387
|
message_str += "".join(at_parts)
|
|
388
|
+
elif t == "markdown":
|
|
389
|
+
text = m["data"].get("markdown") or m["data"].get("content", "")
|
|
390
|
+
abm.message.append(Plain(text=text))
|
|
391
|
+
message_str += text
|
|
388
392
|
else:
|
|
389
393
|
for m in m_group:
|
|
390
|
-
|
|
391
|
-
|
|
394
|
+
try:
|
|
395
|
+
if t not in ComponentTypes:
|
|
396
|
+
logger.warning(
|
|
397
|
+
f"不支持的消息段类型,已忽略: {t}, data={m['data']}"
|
|
398
|
+
)
|
|
399
|
+
continue
|
|
400
|
+
a = ComponentTypes[t](**m["data"])
|
|
401
|
+
abm.message.append(a)
|
|
402
|
+
except Exception as e:
|
|
403
|
+
logger.exception(
|
|
404
|
+
f"消息段解析失败: type={t}, data={m['data']}. {e}"
|
|
405
|
+
)
|
|
406
|
+
continue
|
|
392
407
|
|
|
393
408
|
abm.timestamp = int(time.time())
|
|
394
409
|
abm.message_str = message_str
|
|
@@ -138,7 +138,7 @@ class ProviderGoogleGenAI(Provider):
|
|
|
138
138
|
modalities = ["TEXT"]
|
|
139
139
|
|
|
140
140
|
tool_list: list[types.Tool] | None = []
|
|
141
|
-
model_name = payloads.get("model", self.get_model())
|
|
141
|
+
model_name = cast(str, payloads.get("model", self.get_model()))
|
|
142
142
|
native_coderunner = self.provider_config.get("gm_native_coderunner", False)
|
|
143
143
|
native_search = self.provider_config.get("gm_native_search", False)
|
|
144
144
|
url_context = self.provider_config.get("gm_url_context", False)
|
|
@@ -199,7 +199,16 @@ class ProviderGoogleGenAI(Provider):
|
|
|
199
199
|
|
|
200
200
|
# oper thinking config
|
|
201
201
|
thinking_config = None
|
|
202
|
-
if model_name
|
|
202
|
+
if model_name in [
|
|
203
|
+
"gemini-2.5-pro",
|
|
204
|
+
"gemini-2.5-pro-preview",
|
|
205
|
+
"gemini-2.5-flash",
|
|
206
|
+
"gemini-2.5-flash-preview",
|
|
207
|
+
"gemini-2.5-flash-lite",
|
|
208
|
+
"gemini-2.5-flash-lite-preview",
|
|
209
|
+
"gemini-robotics-er-1.5-preview",
|
|
210
|
+
"gemini-live-2.5-flash-preview-native-audio-09-2025",
|
|
211
|
+
]:
|
|
203
212
|
# The thinkingBudget parameter, introduced with the Gemini 2.5 series
|
|
204
213
|
thinking_budget = self.provider_config.get("gm_thinking_config", {}).get(
|
|
205
214
|
"budget", 0
|
|
@@ -208,7 +217,14 @@ class ProviderGoogleGenAI(Provider):
|
|
|
208
217
|
thinking_config = types.ThinkingConfig(
|
|
209
218
|
thinking_budget=thinking_budget,
|
|
210
219
|
)
|
|
211
|
-
elif model_name
|
|
220
|
+
elif model_name in [
|
|
221
|
+
"gemini-3-pro",
|
|
222
|
+
"gemini-3-pro-preview",
|
|
223
|
+
"gemini-3-flash",
|
|
224
|
+
"gemini-3-flash-preview",
|
|
225
|
+
"gemini-3-flash-lite",
|
|
226
|
+
"gemini-3-flash-lite-preview",
|
|
227
|
+
]:
|
|
212
228
|
# The thinkingLevel parameter, recommended for Gemini 3 models and onwards
|
|
213
229
|
# Gemini 2.5 series models don't support thinkingLevel; use thinkingBudget instead.
|
|
214
230
|
thinking_level = self.provider_config.get("gm_thinking_config", {}).get(
|
|
@@ -4,7 +4,7 @@ from collections import defaultdict
|
|
|
4
4
|
from dataclasses import dataclass, field
|
|
5
5
|
from typing import Any
|
|
6
6
|
|
|
7
|
-
from astrbot.core import db_helper
|
|
7
|
+
from astrbot.core import db_helper, logger
|
|
8
8
|
from astrbot.core.db.po import CommandConfig
|
|
9
9
|
from astrbot.core.star.filter.command import CommandFilter
|
|
10
10
|
from astrbot.core.star.filter.command_group import CommandGroupFilter
|
|
@@ -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=
|
|
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
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
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
|
|
367
|
-
|
|
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
|
-
|
|
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
|
|
188
|
+
"/config/provider_sources/models": (
|
|
189
189
|
"GET",
|
|
190
190
|
self.get_provider_source_models,
|
|
191
191
|
),
|
|
192
|
-
"/config/provider_sources
|
|
192
|
+
"/config/provider_sources/update": (
|
|
193
193
|
"POST",
|
|
194
194
|
self.update_provider_source,
|
|
195
195
|
),
|
|
196
|
-
"/config/provider_sources
|
|
196
|
+
"/config/provider_sources/delete": (
|
|
197
197
|
"POST",
|
|
198
198
|
self.delete_provider_source,
|
|
199
199
|
),
|
|
200
200
|
}
|
|
201
201
|
self.register_routes()
|
|
202
202
|
|
|
203
|
-
async def delete_provider_source(self
|
|
203
|
+
async def delete_provider_source(self):
|
|
204
204
|
"""删除 provider_source,并更新关联的 providers"""
|
|
205
|
+
post_data = await request.json
|
|
206
|
+
if not post_data:
|
|
207
|
+
return Response().error("缺少配置数据").__dict__
|
|
208
|
+
|
|
209
|
+
provider_source_id = post_data.get("id")
|
|
210
|
+
if not provider_source_id:
|
|
211
|
+
return Response().error("缺少 provider_source_id").__dict__
|
|
205
212
|
|
|
206
213
|
provider_sources = self.config.get("provider_sources", [])
|
|
207
214
|
target_idx = next(
|
|
@@ -235,15 +242,16 @@ class ConfigRoute(Route):
|
|
|
235
242
|
|
|
236
243
|
return Response().ok(message="删除 provider source 成功").__dict__
|
|
237
244
|
|
|
238
|
-
async def update_provider_source(self
|
|
245
|
+
async def update_provider_source(self):
|
|
239
246
|
"""更新或新增 provider_source,并重载关联的 providers"""
|
|
240
|
-
|
|
241
247
|
post_data = await request.json
|
|
242
248
|
if not post_data:
|
|
243
249
|
return Response().error("缺少配置数据").__dict__
|
|
244
250
|
|
|
245
251
|
new_source_config = post_data.get("config") or post_data
|
|
246
|
-
original_id =
|
|
252
|
+
original_id = post_data.get("original_id")
|
|
253
|
+
if not original_id:
|
|
254
|
+
return Response().error("缺少 original_id").__dict__
|
|
247
255
|
|
|
248
256
|
if not isinstance(new_source_config, dict):
|
|
249
257
|
return Response().error("缺少或错误的配置数据").__dict__
|
|
@@ -684,11 +692,15 @@ class ConfigRoute(Route):
|
|
|
684
692
|
logger.error(traceback.format_exc())
|
|
685
693
|
return Response().error(f"获取嵌入维度失败: {e!s}").__dict__
|
|
686
694
|
|
|
687
|
-
async def get_provider_source_models(self
|
|
695
|
+
async def get_provider_source_models(self):
|
|
688
696
|
"""获取指定 provider_source 支持的模型列表
|
|
689
697
|
|
|
690
698
|
本质上会临时初始化一个 Provider 实例,调用 get_models() 获取模型列表,然后销毁实例
|
|
691
699
|
"""
|
|
700
|
+
provider_source_id = request.args.get("source_id")
|
|
701
|
+
if not provider_source_id:
|
|
702
|
+
return Response().error("缺少参数 source_id").__dict__
|
|
703
|
+
|
|
692
704
|
try:
|
|
693
705
|
from astrbot.core.provider.register import provider_cls_map
|
|
694
706
|
|
|
@@ -0,0 +1,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!
|
|
@@ -1,7 +1,15 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<div class="input-area fade-in">
|
|
3
3
|
<div class="input-container"
|
|
4
|
-
style="
|
|
4
|
+
:style="{
|
|
5
|
+
width: '85%',
|
|
6
|
+
maxWidth: '900px',
|
|
7
|
+
margin: '0 auto',
|
|
8
|
+
border: isDark ? 'none' : '1px solid #e0e0e0',
|
|
9
|
+
borderRadius: '24px',
|
|
10
|
+
boxShadow: isDark ? 'none' : '0px 2px 2px rgba(0, 0, 0, 0.1)',
|
|
11
|
+
backgroundColor: isDark ? '#2d2d2d' : 'transparent'
|
|
12
|
+
}">
|
|
5
13
|
<!-- 引用预览区 -->
|
|
6
14
|
<div class="reply-preview" v-if="props.replyTo">
|
|
7
15
|
<div class="reply-content">
|
|
@@ -86,6 +94,7 @@
|
|
|
86
94
|
<script setup lang="ts">
|
|
87
95
|
import { ref, computed, onMounted, onBeforeUnmount } from 'vue';
|
|
88
96
|
import { useModuleI18n } from '@/i18n/composables';
|
|
97
|
+
import { useCustomizerStore } from '@/stores/customizer';
|
|
89
98
|
import ConfigSelector from './ConfigSelector.vue';
|
|
90
99
|
import ProviderModelMenu from './ProviderModelMenu.vue';
|
|
91
100
|
import type { Session } from '@/composables/useSessions';
|
|
@@ -140,6 +149,7 @@ const emit = defineEmits<{
|
|
|
140
149
|
}>();
|
|
141
150
|
|
|
142
151
|
const { tm } = useModuleI18n('features/chat');
|
|
152
|
+
const isDark = computed(() => useCustomizerStore().uiTheme === 'PurpleThemeDark');
|
|
143
153
|
|
|
144
154
|
const inputField = ref<HTMLTextAreaElement | null>(null);
|
|
145
155
|
const imageInputRef = ref<HTMLInputElement | null>(null);
|
|
@@ -261,7 +271,7 @@ defineExpose({
|
|
|
261
271
|
<style scoped>
|
|
262
272
|
.input-area {
|
|
263
273
|
padding: 16px;
|
|
264
|
-
background-color:
|
|
274
|
+
background-color: transparent;
|
|
265
275
|
position: relative;
|
|
266
276
|
border-top: 1px solid var(--v-theme-border);
|
|
267
277
|
flex-shrink: 0;
|
|
@@ -35,7 +35,8 @@
|
|
|
35
35
|
@update:selected="$emit('selectConversation', $event)">
|
|
36
36
|
<v-list-item v-for="item in sessions" :key="item.session_id" :value="item.session_id"
|
|
37
37
|
rounded="lg" class="conversation-item" active-color="secondary">
|
|
38
|
-
<v-list-item-title v-if="!sidebarCollapsed || isMobile" class="conversation-title"
|
|
38
|
+
<v-list-item-title v-if="!sidebarCollapsed || isMobile" class="conversation-title"
|
|
39
|
+
:style="{ color: isDark ? '#ffffff' : '#000000' }">
|
|
39
40
|
{{ item.display_name || tm('conversation.newConversation') }}
|
|
40
41
|
</v-list-item-title>
|
|
41
42
|
<!-- <v-list-item-subtitle v-if="!sidebarCollapsed || isMobile" class="timestamp">
|
|
@@ -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');
|
{astrbot-4.10.0a2 → astrbot-4.10.2}/dashboard/src/components/extension/componentPanel/index.vue
RENAMED
|
@@ -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"
|