AstrBot 4.8.0__tar.gz → 4.9.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- astrbot-4.9.1/.github/workflows/smoke_test.yml +58 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/PKG-INFO +9 -1
- {astrbot-4.8.0 → astrbot-4.9.1}/README.md +8 -0
- astrbot-4.9.1/astrbot/cli/__init__.py +1 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/agent/runners/tool_loop_agent_runner.py +0 -1
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/agent/tool.py +7 -2
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/astr_agent_tool_exec.py +5 -1
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/config/astrbot_config.py +4 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/config/default.py +72 -1
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/config/i18n_utils.py +1 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/core_lifecycle.py +1 -1
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/db/__init__.py +2 -3
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/db/migration/migra_3_to_4.py +2 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/db/migration/sqlite_v3.py +6 -4
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/db/po.py +16 -15
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/db/sqlite.py +4 -3
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/db/vec_db/faiss_impl/embedding_storage.py +2 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/event_bus.py +6 -1
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/knowledge_base/retrieval/manager.py +5 -1
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/log.py +2 -1
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/message/components.py +9 -3
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/persona_mgr.py +2 -2
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/pipeline/content_safety_check/stage.py +1 -1
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/pipeline/context_utils.py +2 -1
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/pipeline/process_stage/method/star_request.py +1 -2
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/pipeline/process_stage/stage.py +1 -1
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/pipeline/respond/stage.py +8 -2
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/pipeline/result_decorate/stage.py +89 -22
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/pipeline/scheduler.py +5 -1
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/pipeline/waking_check/stage.py +10 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/platform/astr_message_event.py +5 -3
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/platform/astrbot_message.py +2 -2
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/platform/manager.py +4 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/platform/platform.py +11 -3
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/platform/platform_metadata.py +1 -1
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/platform/register.py +1 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/platform/sources/aiocqhttp/aiocqhttp_message_event.py +8 -6
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/platform/sources/aiocqhttp/aiocqhttp_platform_adapter.py +9 -5
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/platform/sources/dingtalk/dingtalk_adapter.py +24 -16
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/platform/sources/dingtalk/dingtalk_event.py +5 -2
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/platform/sources/discord/client.py +16 -4
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/platform/sources/discord/components.py +2 -2
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/platform/sources/discord/discord_platform_adapter.py +52 -24
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/platform/sources/discord/discord_platform_event.py +29 -8
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/platform/sources/lark/lark_adapter.py +183 -20
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/platform/sources/lark/lark_event.py +39 -4
- astrbot-4.9.1/astrbot/core/platform/sources/lark/server.py +206 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/platform/sources/misskey/misskey_adapter.py +2 -3
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/platform/sources/qqofficial/qqofficial_message_event.py +62 -18
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/platform/sources/qqofficial/qqofficial_platform_adapter.py +13 -7
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/platform/sources/qqofficial_webhook/qo_webhook_adapter.py +5 -3
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/platform/sources/qqofficial_webhook/qo_webhook_server.py +2 -1
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/platform/sources/slack/client.py +9 -2
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/platform/sources/slack/slack_adapter.py +15 -9
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/platform/sources/slack/slack_event.py +8 -7
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/platform/sources/telegram/tg_adapter.py +1 -1
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/platform/sources/telegram/tg_event.py +23 -27
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/platform/sources/webchat/webchat_adapter.py +2 -2
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/platform/sources/webchat/webchat_event.py +2 -2
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/platform/sources/wechatpadpro/wechatpadpro_adapter.py +26 -9
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/platform/sources/wecom/wecom_adapter.py +25 -28
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/platform/sources/wecom/wecom_event.py +2 -2
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/platform/sources/wecom_ai_bot/wecomai_event.py +3 -3
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/platform/sources/weixin_official_account/weixin_offacc_adapter.py +30 -25
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/platform/sources/weixin_official_account/weixin_offacc_event.py +10 -7
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/provider/func_tool_manager.py +3 -3
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/provider/manager.py +130 -74
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/provider/provider.py +12 -1
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/provider/sources/azure_tts_source.py +31 -9
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/provider/sources/bailian_rerank_source.py +4 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/provider/sources/dashscope_tts.py +3 -2
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/provider/sources/edge_tts_source.py +1 -1
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/provider/sources/fishaudio_tts_api_source.py +5 -4
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/provider/sources/gemini_embedding_source.py +15 -5
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/provider/sources/gemini_source.py +12 -10
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/provider/sources/minimax_tts_api_source.py +4 -2
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/provider/sources/openai_embedding_source.py +2 -2
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/provider/sources/openai_source.py +4 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/provider/sources/sensevoice_selfhosted_source.py +5 -2
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/provider/sources/vllm_rerank_source.py +1 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/provider/sources/whisper_api_source.py +1 -1
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/provider/sources/whisper_selfhosted_source.py +6 -2
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/provider/sources/xinference_rerank_source.py +10 -2
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/star/context.py +2 -2
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/star/register/star_handler.py +22 -5
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/star/star_handler.py +85 -4
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/updator.py +3 -3
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/utils/io.py +1 -1
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/utils/session_waiter.py +17 -10
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/utils/shared_preferences.py +32 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/utils/t2i/__init__.py +2 -2
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/utils/t2i/local_strategy.py +25 -31
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/utils/tencent_record_helper.py +1 -1
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/utils/version_comparator.py +6 -3
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/utils/webhook_utils.py +19 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/dashboard/routes/chat.py +14 -9
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/dashboard/routes/config.py +10 -20
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/dashboard/routes/conversation.py +91 -1
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/dashboard/routes/knowledge_base.py +253 -78
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/dashboard/routes/log.py +13 -8
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/dashboard/routes/platform.py +1 -1
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/dashboard/routes/plugin.py +113 -52
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/dashboard/routes/route.py +2 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/dashboard/server.py +6 -3
- astrbot-4.9.1/changelogs/v4.9.0.md +19 -0
- astrbot-4.9.1/changelogs/v4.9.1.md +16 -0
- astrbot-4.9.1/dashboard/src/assets/images/loading-seio.webp +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/dashboard/src/components/shared/AstrBotConfig.vue +50 -18
- {astrbot-4.8.0 → astrbot-4.9.1}/dashboard/src/components/shared/AstrBotConfigV4.vue +25 -6
- {astrbot-4.8.0 → astrbot-4.9.1}/dashboard/src/components/shared/ConsoleDisplayer.vue +86 -43
- {astrbot-4.8.0 → astrbot-4.9.1}/dashboard/src/components/shared/ListConfigItem.vue +116 -39
- {astrbot-4.8.0 → astrbot-4.9.1}/dashboard/src/components/shared/ProxySelector.vue +33 -31
- {astrbot-4.8.0 → astrbot-4.9.1}/dashboard/src/components/shared/ReadmeDialog.vue +1 -1
- {astrbot-4.8.0 → astrbot-4.9.1}/dashboard/src/i18n/composables.ts +19 -1
- {astrbot-4.8.0 → astrbot-4.9.1}/dashboard/src/i18n/locales/en-US/core/common.json +12 -1
- {astrbot-4.8.0 → astrbot-4.9.1}/dashboard/src/i18n/locales/en-US/core/header.json +1 -12
- {astrbot-4.8.0 → astrbot-4.9.1}/dashboard/src/i18n/locales/en-US/features/config-metadata.json +15 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/dashboard/src/i18n/locales/en-US/features/conversation.json +8 -3
- {astrbot-4.8.0 → astrbot-4.9.1}/dashboard/src/i18n/locales/en-US/features/extension.json +27 -3
- {astrbot-4.8.0 → astrbot-4.9.1}/dashboard/src/i18n/locales/zh-CN/core/common.json +12 -1
- {astrbot-4.8.0 → astrbot-4.9.1}/dashboard/src/i18n/locales/zh-CN/core/header.json +1 -12
- {astrbot-4.8.0 → astrbot-4.9.1}/dashboard/src/i18n/locales/zh-CN/features/config-metadata.json +18 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/dashboard/src/i18n/locales/zh-CN/features/conversation.json +8 -3
- {astrbot-4.8.0 → astrbot-4.9.1}/dashboard/src/i18n/locales/zh-CN/features/extension.json +27 -3
- {astrbot-4.8.0 → astrbot-4.9.1}/dashboard/src/layouts/full/vertical-header/VerticalHeader.vue +4 -88
- astrbot-4.9.1/dashboard/src/stores/common.js +168 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/dashboard/src/views/ConversationPage.vue +58 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/dashboard/src/views/ExtensionPage.vue +414 -20
- {astrbot-4.8.0 → astrbot-4.9.1}/dashboard/src/views/PlatformPage.vue +1 -1
- {astrbot-4.8.0 → astrbot-4.9.1}/dashboard/src/views/ProviderPage.vue +34 -1
- astrbot-4.9.1/packages/astrbot/main.py +128 -0
- astrbot-4.9.1/packages/astrbot/metadata.yaml +4 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/packages/astrbot/process_llm_request.py +5 -0
- {astrbot-4.8.0/packages/astrbot → astrbot-4.9.1/packages/builtin_commands}/commands/conversation.py +10 -25
- {astrbot-4.8.0/packages/astrbot → astrbot-4.9.1/packages/builtin_commands}/main.py +1 -109
- astrbot-4.9.1/packages/builtin_commands/metadata.yaml +4 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/packages/python_interpreter/main.py +8 -1
- {astrbot-4.8.0 → astrbot-4.9.1}/packages/reminder/main.py +11 -8
- {astrbot-4.8.0 → astrbot-4.9.1}/packages/web_searcher/engines/__init__.py +16 -9
- {astrbot-4.8.0 → astrbot-4.9.1}/packages/web_searcher/engines/bing.py +1 -9
- {astrbot-4.8.0 → astrbot-4.9.1}/packages/web_searcher/engines/sogo.py +10 -4
- {astrbot-4.8.0 → astrbot-4.9.1}/pyproject.toml +1 -1
- astrbot-4.9.1/tests/test_kb_import.py +209 -0
- astrbot-4.9.1/typings/faiss/__init__.pyi +90 -0
- astrbot-4.8.0/astrbot/cli/__init__.py +0 -1
- astrbot-4.8.0/dashboard/src/stores/common.js +0 -194
- astrbot-4.8.0/packages/astrbot/metadata.yaml +0 -4
- {astrbot-4.8.0 → astrbot-4.9.1}/.dockerignore +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/.github/FUNDING.yml +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/.github/ISSUE_TEMPLATE/PLUGIN_PUBLISH.yml +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/.github/ISSUE_TEMPLATE/bug-report.yml +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/.github/ISSUE_TEMPLATE/feature-request.yml +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/.github/auto_assign.yml +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/.github/copilot-instructions.md +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/.github/dependabot.yml +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/.github/workflows/auto_release.yml +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/.github/workflows/code-format.yml +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/.github/workflows/codeql.yml +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/.github/workflows/coverage_test.yml +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/.github/workflows/dashboard_ci.yml +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/.github/workflows/docker-image.yml +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/.github/workflows/stale.yml +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/.gitignore +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/.pre-commit-config.yaml +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/.python-version +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/CODE_OF_CONDUCT.md +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/CONTRIBUTING.md +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/Dockerfile +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/LICENSE +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/README_en.md +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/README_fr.md +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/README_ja.md +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/README_ru.md +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/README_zh-TW.md +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/__init__.py +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/api/__init__.py +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/api/all.py +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/api/event/__init__.py +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/api/event/filter/__init__.py +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/api/message_components.py +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/api/platform/__init__.py +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/api/provider/__init__.py +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/api/star/__init__.py +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/api/util/__init__.py +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/cli/__main__.py +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/cli/commands/__init__.py +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/cli/commands/cmd_conf.py +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/cli/commands/cmd_init.py +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/cli/commands/cmd_plug.py +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/cli/commands/cmd_run.py +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/cli/utils/__init__.py +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/cli/utils/basic.py +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/cli/utils/plugin.py +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/cli/utils/version_comparator.py +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/__init__.py +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/agent/agent.py +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/agent/handoff.py +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/agent/hooks.py +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/agent/mcp_client.py +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/agent/message.py +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/agent/response.py +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/agent/run_context.py +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/agent/runners/__init__.py +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/agent/runners/base.py +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/agent/runners/coze/coze_agent_runner.py +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/agent/runners/coze/coze_api_client.py +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/agent/runners/dashscope/dashscope_agent_runner.py +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/agent/runners/dify/dify_agent_runner.py +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/agent/runners/dify/dify_api_client.py +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/agent/tool_executor.py +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/astr_agent_context.py +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/astr_agent_hooks.py +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/astr_agent_run_util.py +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/astrbot_config_mgr.py +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/config/__init__.py +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/conversation_mgr.py +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/db/migration/helper.py +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/db/migration/migra_45_to_46.py +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/db/migration/migra_webchat_session.py +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/db/migration/shared_preferences_v3.py +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/db/vec_db/base.py +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/db/vec_db/faiss_impl/__init__.py +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/db/vec_db/faiss_impl/document_storage.py +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/db/vec_db/faiss_impl/sqlite_init.sql +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/db/vec_db/faiss_impl/vec_db.py +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/exceptions.py +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/file_token_service.py +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/initial_loader.py +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/knowledge_base/chunking/__init__.py +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/knowledge_base/chunking/base.py +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/knowledge_base/chunking/fixed_size.py +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/knowledge_base/chunking/recursive.py +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/knowledge_base/kb_db_sqlite.py +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/knowledge_base/kb_helper.py +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/knowledge_base/kb_mgr.py +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/knowledge_base/models.py +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/knowledge_base/parsers/__init__.py +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/knowledge_base/parsers/base.py +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/knowledge_base/parsers/markitdown_parser.py +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/knowledge_base/parsers/pdf_parser.py +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/knowledge_base/parsers/text_parser.py +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/knowledge_base/parsers/url_parser.py +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/knowledge_base/parsers/util.py +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/knowledge_base/prompts.py +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/knowledge_base/retrieval/__init__.py +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/knowledge_base/retrieval/hit_stopwords.txt +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/knowledge_base/retrieval/rank_fusion.py +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/knowledge_base/retrieval/sparse_retriever.py +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/message/message_event_result.py +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/pipeline/__init__.py +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/pipeline/content_safety_check/strategies/__init__.py +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/pipeline/content_safety_check/strategies/baidu_aip.py +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/pipeline/content_safety_check/strategies/keywords.py +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/pipeline/content_safety_check/strategies/strategy.py +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/pipeline/context.py +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/pipeline/preprocess_stage/stage.py +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/pipeline/process_stage/method/agent_request.py +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/pipeline/process_stage/method/agent_sub_stages/internal.py +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/pipeline/process_stage/method/agent_sub_stages/third_party.py +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/pipeline/process_stage/utils.py +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/pipeline/rate_limit_check/stage.py +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/pipeline/session_status_check/stage.py +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/pipeline/stage.py +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/pipeline/whitelist_check/stage.py +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/platform/__init__.py +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/platform/message_session.py +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/platform/message_type.py +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/platform/sources/misskey/misskey_api.py +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/platform/sources/misskey/misskey_event.py +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/platform/sources/misskey/misskey_utils.py +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/platform/sources/qqofficial_webhook/qo_webhook_event.py +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/platform/sources/satori/satori_adapter.py +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/platform/sources/satori/satori_event.py +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/platform/sources/webchat/webchat_queue_mgr.py +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/platform/sources/wechatpadpro/wechatpadpro_message_event.py +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/platform/sources/wechatpadpro/xml_data_parser.py +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/platform/sources/wecom/wecom_kf.py +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/platform/sources/wecom/wecom_kf_message.py +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/platform/sources/wecom_ai_bot/WXBizJsonMsgCrypt.py +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/platform/sources/wecom_ai_bot/__init__.py +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/platform/sources/wecom_ai_bot/ierror.py +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/platform/sources/wecom_ai_bot/wecomai_adapter.py +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/platform/sources/wecom_ai_bot/wecomai_api.py +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/platform/sources/wecom_ai_bot/wecomai_queue_mgr.py +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/platform/sources/wecom_ai_bot/wecomai_server.py +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/platform/sources/wecom_ai_bot/wecomai_utils.py +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/platform_message_history_mgr.py +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/provider/__init__.py +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/provider/entites.py +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/provider/entities.py +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/provider/register.py +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/provider/sources/anthropic_source.py +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/provider/sources/gemini_tts_source.py +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/provider/sources/groq_source.py +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/provider/sources/gsv_selfhosted_source.py +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/provider/sources/gsvi_tts_source.py +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/provider/sources/openai_tts_api_source.py +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/provider/sources/volcengine_tts.py +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/provider/sources/xinference_stt_provider.py +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/provider/sources/zhipu_source.py +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/star/README.md +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/star/__init__.py +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/star/config.py +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/star/filter/__init__.py +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/star/filter/command.py +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/star/filter/command_group.py +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/star/filter/custom_filter.py +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/star/filter/event_message_type.py +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/star/filter/permission.py +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/star/filter/platform_adapter_type.py +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/star/filter/regex.py +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/star/register/__init__.py +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/star/register/star.py +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/star/session_llm_manager.py +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/star/session_plugin_manager.py +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/star/star.py +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/star/star_manager.py +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/star/star_tools.py +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/star/updator.py +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/umop_config_router.py +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/utils/astrbot_path.py +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/utils/command_parser.py +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/utils/file_extract.py +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/utils/log_pipe.py +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/utils/metrics.py +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/utils/migra_helper.py +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/utils/path_util.py +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/utils/pip_installer.py +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/utils/session_lock.py +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/utils/t2i/network_strategy.py +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/utils/t2i/renderer.py +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/utils/t2i/template/astrbot_powershell.html +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/utils/t2i/template/base.html +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/utils/t2i/template_manager.py +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/core/zip_updator.py +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/dashboard/routes/__init__.py +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/dashboard/routes/auth.py +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/dashboard/routes/file.py +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/dashboard/routes/persona.py +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/dashboard/routes/session_management.py +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/dashboard/routes/stat.py +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/dashboard/routes/static_file.py +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/dashboard/routes/t2i.py +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/dashboard/routes/tools.py +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/dashboard/routes/update.py +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/astrbot/dashboard/utils.py +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/changelogs/v3.4.0.md +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/changelogs/v3.4.1.md +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/changelogs/v3.4.10.md +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/changelogs/v3.4.11.md +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/changelogs/v3.4.12.md +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/changelogs/v3.4.13.md +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/changelogs/v3.4.14.md +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/changelogs/v3.4.15.md +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/changelogs/v3.4.16.md +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/changelogs/v3.4.17.md +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/changelogs/v3.4.18.md +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/changelogs/v3.4.19.md +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/changelogs/v3.4.20.md +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/changelogs/v3.4.21.md +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/changelogs/v3.4.22.md +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/changelogs/v3.4.23.md +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/changelogs/v3.4.24.md +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/changelogs/v3.4.25.md +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/changelogs/v3.4.26.md +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/changelogs/v3.4.27.md +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/changelogs/v3.4.28.md +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/changelogs/v3.4.29.md +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/changelogs/v3.4.3.md +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/changelogs/v3.4.30.md +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/changelogs/v3.4.31.md +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/changelogs/v3.4.32.md +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/changelogs/v3.4.33.md +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/changelogs/v3.4.35.md +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/changelogs/v3.4.36.md +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/changelogs/v3.4.37.md +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/changelogs/v3.4.38.md +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/changelogs/v3.4.39.md +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/changelogs/v3.4.4.md +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/changelogs/v3.4.5.md +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/changelogs/v3.4.6.md +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/changelogs/v3.4.7.md +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/changelogs/v3.4.8.md +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/changelogs/v3.4.9.md +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/changelogs/v3.5.0.md +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/changelogs/v3.5.1.md +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/changelogs/v3.5.10.md +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/changelogs/v3.5.11.md +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/changelogs/v3.5.12.md +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/changelogs/v3.5.13.md +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/changelogs/v3.5.14.md +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/changelogs/v3.5.15.md +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/changelogs/v3.5.16.md +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/changelogs/v3.5.17.md +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/changelogs/v3.5.18.md +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/changelogs/v3.5.19.md +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/changelogs/v3.5.2.md +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/changelogs/v3.5.20.md +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/changelogs/v3.5.21.md +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/changelogs/v3.5.22.md +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/changelogs/v3.5.23.md +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/changelogs/v3.5.24.md +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/changelogs/v3.5.25.md +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/changelogs/v3.5.26.md +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/changelogs/v3.5.27.md +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/changelogs/v3.5.3.1.md +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/changelogs/v3.5.3.2.md +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/changelogs/v3.5.3.md +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/changelogs/v3.5.4.md +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/changelogs/v3.5.5.md +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/changelogs/v3.5.6.md +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/changelogs/v3.5.7.md +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/changelogs/v3.5.8.md +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/changelogs/v3.5.9.md +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/changelogs/v4.0.0-beta.3.md +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/changelogs/v4.0.0-beta.4.md +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/changelogs/v4.0.0-beta.5.md +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/changelogs/v4.0.0.md +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/changelogs/v4.1.0.md +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/changelogs/v4.1.1.md +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/changelogs/v4.1.2.md +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/changelogs/v4.1.3.md +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/changelogs/v4.1.4.md +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/changelogs/v4.1.5.md +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/changelogs/v4.1.6.md +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/changelogs/v4.1.7.md +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/changelogs/v4.2.0.md +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/changelogs/v4.2.1.md +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/changelogs/v4.3.0.md +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/changelogs/v4.3.1.md +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/changelogs/v4.3.2.md +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/changelogs/v4.3.3.md +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/changelogs/v4.3.5.md +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/changelogs/v4.5.0.md +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/changelogs/v4.5.1.md +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/changelogs/v4.5.2.md +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/changelogs/v4.5.3.md +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/changelogs/v4.5.4.md +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/changelogs/v4.5.5.md +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/changelogs/v4.5.6.md +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/changelogs/v4.5.7.md +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/changelogs/v4.5.8.md +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/changelogs/v4.6.0.md +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/changelogs/v4.6.1.md +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/changelogs/v4.7.0.md +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/changelogs/v4.7.1.md +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/changelogs/v4.7.3.md +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/changelogs/v4.7.4.md +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/changelogs/v4.8.0.md +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/compose.yml +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/dashboard/.gitignore +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/dashboard/LICENSE +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/dashboard/README.md +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/dashboard/env.d.ts +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/dashboard/index.html +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/dashboard/public/_redirects +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/dashboard/public/favicon.svg +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/dashboard/src/App.vue +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/dashboard/src/assets/images/astrbot_banner.png +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/dashboard/src/assets/images/astrbot_logo_mini.webp +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/dashboard/src/assets/images/icon-no-shadow.svg +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/dashboard/src/assets/images/platform_logos/dingtalk.svg +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/dashboard/src/assets/images/platform_logos/discord.svg +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/dashboard/src/assets/images/platform_logos/kook.png +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/dashboard/src/assets/images/platform_logos/lark.png +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/dashboard/src/assets/images/platform_logos/misskey.png +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/dashboard/src/assets/images/platform_logos/qq.png +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/dashboard/src/assets/images/platform_logos/satori.png +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/dashboard/src/assets/images/platform_logos/slack.svg +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/dashboard/src/assets/images/platform_logos/telegram.svg +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/dashboard/src/assets/images/platform_logos/vocechat.png +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/dashboard/src/assets/images/platform_logos/wechat.png +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/dashboard/src/assets/images/platform_logos/wecom.png +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/dashboard/src/assets/images/plugin_icon.png +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/dashboard/src/components/ConfirmDialog.vue +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/dashboard/src/components/chat/Chat.vue +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/dashboard/src/components/chat/ChatInput.vue +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/dashboard/src/components/chat/ConfigSelector.vue +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/dashboard/src/components/chat/ConversationSidebar.vue +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/dashboard/src/components/chat/MessageList.vue +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/dashboard/src/components/chat/ProviderModelSelector.vue +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/dashboard/src/components/chat/StandaloneChat.vue +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/dashboard/src/components/config/AstrBotCoreConfigWrapper.vue +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/dashboard/src/components/platform/AddNewPlatform.vue +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/dashboard/src/components/provider/AddNewProvider.vue +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/dashboard/src/components/shared/ExtensionCard.vue +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/dashboard/src/components/shared/ItemCard.vue +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/dashboard/src/components/shared/ItemCardGrid.vue +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/dashboard/src/components/shared/KnowledgeBaseSelector.vue +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/dashboard/src/components/shared/LanguageSwitcher.vue +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/dashboard/src/components/shared/Logo.vue +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/dashboard/src/components/shared/MigrationDialog.vue +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/dashboard/src/components/shared/ObjectEditor.vue +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/dashboard/src/components/shared/PersonaForm.vue +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/dashboard/src/components/shared/PersonaSelector.vue +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/dashboard/src/components/shared/PluginSetSelector.vue +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/dashboard/src/components/shared/ProviderSelector.vue +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/dashboard/src/components/shared/SidebarCustomizer.vue +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/dashboard/src/components/shared/T2ITemplateEditor.vue +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/dashboard/src/components/shared/UninstallConfirmDialog.vue +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/dashboard/src/components/shared/WaitingForRestart.vue +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/dashboard/src/composables/useConversations.ts +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/dashboard/src/composables/useMediaHandling.ts +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/dashboard/src/composables/useMessages.ts +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/dashboard/src/composables/useRecording.ts +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/dashboard/src/composables/useSessions.ts +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/dashboard/src/config.ts +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/dashboard/src/i18n/loader.ts +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/dashboard/src/i18n/locales/en-US/core/actions.json +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/dashboard/src/i18n/locales/en-US/core/navigation.json +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/dashboard/src/i18n/locales/en-US/core/shared.json +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/dashboard/src/i18n/locales/en-US/core/status.json +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/dashboard/src/i18n/locales/en-US/features/about.json +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/dashboard/src/i18n/locales/en-US/features/alkaid/index.json +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/dashboard/src/i18n/locales/en-US/features/alkaid/knowledge-base.json +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/dashboard/src/i18n/locales/en-US/features/alkaid/memory.json +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/dashboard/src/i18n/locales/en-US/features/auth.json +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/dashboard/src/i18n/locales/en-US/features/chart.json +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/dashboard/src/i18n/locales/en-US/features/chat.json +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/dashboard/src/i18n/locales/en-US/features/config.json +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/dashboard/src/i18n/locales/en-US/features/console.json +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/dashboard/src/i18n/locales/en-US/features/dashboard.json +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/dashboard/src/i18n/locales/en-US/features/knowledge-base/detail.json +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/dashboard/src/i18n/locales/en-US/features/knowledge-base/document.json +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/dashboard/src/i18n/locales/en-US/features/knowledge-base/index.json +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/dashboard/src/i18n/locales/en-US/features/migration.json +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/dashboard/src/i18n/locales/en-US/features/persona.json +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/dashboard/src/i18n/locales/en-US/features/platform.json +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/dashboard/src/i18n/locales/en-US/features/provider.json +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/dashboard/src/i18n/locales/en-US/features/session-management.json +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/dashboard/src/i18n/locales/en-US/features/settings.json +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/dashboard/src/i18n/locales/en-US/features/tool-use.json +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/dashboard/src/i18n/locales/en-US/messages/errors.json +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/dashboard/src/i18n/locales/en-US/messages/success.json +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/dashboard/src/i18n/locales/en-US/messages/validation.json +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/dashboard/src/i18n/locales/zh-CN/core/actions.json +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/dashboard/src/i18n/locales/zh-CN/core/navigation.json +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/dashboard/src/i18n/locales/zh-CN/core/shared.json +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/dashboard/src/i18n/locales/zh-CN/core/status.json +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/dashboard/src/i18n/locales/zh-CN/features/about.json +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/dashboard/src/i18n/locales/zh-CN/features/alkaid/index.json +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/dashboard/src/i18n/locales/zh-CN/features/alkaid/knowledge-base.json +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/dashboard/src/i18n/locales/zh-CN/features/alkaid/memory.json +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/dashboard/src/i18n/locales/zh-CN/features/auth.json +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/dashboard/src/i18n/locales/zh-CN/features/chart.json +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/dashboard/src/i18n/locales/zh-CN/features/chat.json +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/dashboard/src/i18n/locales/zh-CN/features/config.json +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/dashboard/src/i18n/locales/zh-CN/features/console.json +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/dashboard/src/i18n/locales/zh-CN/features/dashboard.json +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/dashboard/src/i18n/locales/zh-CN/features/knowledge-base/detail.json +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/dashboard/src/i18n/locales/zh-CN/features/knowledge-base/document.json +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/dashboard/src/i18n/locales/zh-CN/features/knowledge-base/index.json +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/dashboard/src/i18n/locales/zh-CN/features/migration.json +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/dashboard/src/i18n/locales/zh-CN/features/persona.json +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/dashboard/src/i18n/locales/zh-CN/features/platform.json +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/dashboard/src/i18n/locales/zh-CN/features/provider.json +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/dashboard/src/i18n/locales/zh-CN/features/session-management.json +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/dashboard/src/i18n/locales/zh-CN/features/settings.json +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/dashboard/src/i18n/locales/zh-CN/features/tool-use.json +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/dashboard/src/i18n/locales/zh-CN/messages/errors.json +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/dashboard/src/i18n/locales/zh-CN/messages/success.json +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/dashboard/src/i18n/locales/zh-CN/messages/validation.json +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/dashboard/src/i18n/tools/index.ts +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/dashboard/src/i18n/translations.ts +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/dashboard/src/i18n/types.ts +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/dashboard/src/i18n/validator.ts +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/dashboard/src/layouts/blank/BlankLayout.vue +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/dashboard/src/layouts/full/FullLayout.vue +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/dashboard/src/layouts/full/vertical-sidebar/NavItem.vue +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/dashboard/src/layouts/full/vertical-sidebar/VerticalSidebar.vue +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/dashboard/src/layouts/full/vertical-sidebar/sidebarItem.ts +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/dashboard/src/main.ts +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/dashboard/src/plugins/confirmPlugin.ts +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/dashboard/src/plugins/vuetify.ts +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/dashboard/src/router/AuthRoutes.ts +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/dashboard/src/router/ChatBoxRoutes.ts +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/dashboard/src/router/MainRoutes.ts +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/dashboard/src/router/index.ts +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/dashboard/src/scss/_override.scss +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/dashboard/src/scss/_variables.scss +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/dashboard/src/scss/components/_VButtons.scss +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/dashboard/src/scss/components/_VCard.scss +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/dashboard/src/scss/components/_VField.scss +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/dashboard/src/scss/components/_VInput.scss +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/dashboard/src/scss/components/_VNavigationDrawer.scss +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/dashboard/src/scss/components/_VScrollbar.scss +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/dashboard/src/scss/components/_VShadow.scss +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/dashboard/src/scss/components/_VTabs.scss +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/dashboard/src/scss/components/_VTextField.scss +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/dashboard/src/scss/layout/_container.scss +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/dashboard/src/scss/layout/_sidebar.scss +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/dashboard/src/scss/pages/_dashboards.scss +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/dashboard/src/scss/style.scss +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/dashboard/src/stores/auth.ts +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/dashboard/src/stores/customizer.ts +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/dashboard/src/stores/toast.js +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/dashboard/src/theme/DarkTheme.ts +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/dashboard/src/theme/LightTheme.ts +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/dashboard/src/types/themeTypes/ThemeType.ts +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/dashboard/src/types/vue3-print-nb.d.ts +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/dashboard/src/types/vue_tabler_icon.d.ts +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/dashboard/src/utils/platformUtils.js +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/dashboard/src/utils/providerUtils.js +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/dashboard/src/utils/sidebarCustomization.js +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/dashboard/src/utils/toast.js +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/dashboard/src/views/AboutPage.vue +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/dashboard/src/views/AlkaidPage.vue +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/dashboard/src/views/ChatBoxPage.vue +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/dashboard/src/views/ChatPage.vue +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/dashboard/src/views/ConfigPage.vue +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/dashboard/src/views/ConsolePage.vue +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/dashboard/src/views/PersonaPage.vue +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/dashboard/src/views/SessionManagementPage.vue +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/dashboard/src/views/Settings.vue +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/dashboard/src/views/ToolUsePage.vue +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/dashboard/src/views/alkaid/KnowledgeBase.vue +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/dashboard/src/views/alkaid/LongTermMemory.vue +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/dashboard/src/views/alkaid/Other.vue +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/dashboard/src/views/authentication/auth/LoginPage.vue +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/dashboard/src/views/authentication/authForms/AuthLogin.vue +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/dashboard/src/views/dashboards/default/DefaultDashboard.vue +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/dashboard/src/views/dashboards/default/components/MemoryUsage.vue +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/dashboard/src/views/dashboards/default/components/MessageStat.vue +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/dashboard/src/views/dashboards/default/components/OnlinePlatform.vue +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/dashboard/src/views/dashboards/default/components/OnlineTime.vue +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/dashboard/src/views/dashboards/default/components/PlatformStat.vue +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/dashboard/src/views/dashboards/default/components/RunningTime.vue +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/dashboard/src/views/dashboards/default/components/TotalMessage.vue +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/dashboard/src/views/knowledge-base/DocumentDetail.vue +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/dashboard/src/views/knowledge-base/KBDetail.vue +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/dashboard/src/views/knowledge-base/KBList.vue +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/dashboard/src/views/knowledge-base/components/DocumentsTab.vue +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/dashboard/src/views/knowledge-base/components/RetrievalTab.vue +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/dashboard/src/views/knowledge-base/components/SettingsTab.vue +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/dashboard/src/views/knowledge-base/components/TavilyKeyDialog.vue +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/dashboard/src/views/knowledge-base/index.vue +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/dashboard/tsconfig.json +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/dashboard/tsconfig.vite-config.json +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/dashboard/vite.config.ts +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/k8s/astrbot/00-namespace.yaml +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/k8s/astrbot/01-pvc.yaml +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/k8s/astrbot/02-deployment.yaml +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/k8s/astrbot/03-service-nodeport.yaml +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/k8s/astrbot/04-service-loadbalancer.yaml +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/k8s/astrbot_with_napcat/00-namespace.yaml +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/k8s/astrbot_with_napcat/01-pvc.yaml +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/k8s/astrbot_with_napcat/02-deployment.yaml +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/k8s/astrbot_with_napcat/03-service-nodeport.yaml +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/k8s/astrbot_with_napcat/04-service-loadbalancer.yaml +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/main.py +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/packages/astrbot/long_term_memory.py +0 -0
- {astrbot-4.8.0/packages/astrbot → astrbot-4.9.1/packages/builtin_commands}/commands/__init__.py +0 -0
- {astrbot-4.8.0/packages/astrbot → astrbot-4.9.1/packages/builtin_commands}/commands/admin.py +0 -0
- {astrbot-4.8.0/packages/astrbot → astrbot-4.9.1/packages/builtin_commands}/commands/alter_cmd.py +0 -0
- {astrbot-4.8.0/packages/astrbot → astrbot-4.9.1/packages/builtin_commands}/commands/help.py +0 -0
- {astrbot-4.8.0/packages/astrbot → astrbot-4.9.1/packages/builtin_commands}/commands/llm.py +0 -0
- {astrbot-4.8.0/packages/astrbot → astrbot-4.9.1/packages/builtin_commands}/commands/persona.py +0 -0
- {astrbot-4.8.0/packages/astrbot → astrbot-4.9.1/packages/builtin_commands}/commands/plugin.py +0 -0
- {astrbot-4.8.0/packages/astrbot → astrbot-4.9.1/packages/builtin_commands}/commands/provider.py +0 -0
- {astrbot-4.8.0/packages/astrbot → astrbot-4.9.1/packages/builtin_commands}/commands/setunset.py +0 -0
- {astrbot-4.8.0/packages/astrbot → astrbot-4.9.1/packages/builtin_commands}/commands/sid.py +0 -0
- {astrbot-4.8.0/packages/astrbot → astrbot-4.9.1/packages/builtin_commands}/commands/t2i.py +0 -0
- {astrbot-4.8.0/packages/astrbot → astrbot-4.9.1/packages/builtin_commands}/commands/tool.py +0 -0
- {astrbot-4.8.0/packages/astrbot → astrbot-4.9.1/packages/builtin_commands}/commands/tts.py +0 -0
- {astrbot-4.8.0/packages/astrbot → astrbot-4.9.1/packages/builtin_commands}/commands/utils/rst_scene.py +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/packages/python_interpreter/metadata.yaml +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/packages/python_interpreter/requirements.txt +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/packages/python_interpreter/shared/api.py +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/packages/reminder/metadata.yaml +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/packages/session_controller/main.py +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/packages/session_controller/metadata.yaml +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/packages/web_searcher/main.py +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/packages/web_searcher/metadata.yaml +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/requirements.txt +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/samples/stt_health_check.wav +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/tests/test_dashboard.py +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/tests/test_main.py +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/tests/test_plugin_manager.py +0 -0
- {astrbot-4.8.0 → astrbot-4.9.1}/tests/test_security_fixes.py +0 -0
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
name: Smoke Test
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches:
|
|
6
|
+
- master
|
|
7
|
+
paths-ignore:
|
|
8
|
+
- 'README*.md'
|
|
9
|
+
- 'changelogs/**'
|
|
10
|
+
- 'dashboard/**'
|
|
11
|
+
pull_request:
|
|
12
|
+
workflow_dispatch:
|
|
13
|
+
|
|
14
|
+
jobs:
|
|
15
|
+
smoke-test:
|
|
16
|
+
name: Run smoke tests
|
|
17
|
+
runs-on: ubuntu-latest
|
|
18
|
+
timeout-minutes: 10
|
|
19
|
+
|
|
20
|
+
steps:
|
|
21
|
+
- name: Checkout
|
|
22
|
+
uses: actions/checkout@v6
|
|
23
|
+
with:
|
|
24
|
+
fetch-depth: 0
|
|
25
|
+
|
|
26
|
+
- name: Set up Python
|
|
27
|
+
uses: actions/setup-python@v6
|
|
28
|
+
with:
|
|
29
|
+
python-version: '3.12'
|
|
30
|
+
|
|
31
|
+
- name: Install UV package manager
|
|
32
|
+
run: |
|
|
33
|
+
pip install uv
|
|
34
|
+
|
|
35
|
+
- name: Install dependencies
|
|
36
|
+
run: |
|
|
37
|
+
uv sync
|
|
38
|
+
timeout-minutes: 15
|
|
39
|
+
|
|
40
|
+
- name: Run smoke tests
|
|
41
|
+
run: |
|
|
42
|
+
uv run main.py &
|
|
43
|
+
APP_PID=$!
|
|
44
|
+
|
|
45
|
+
echo "Waiting for application to start..."
|
|
46
|
+
for i in {1..60}; do
|
|
47
|
+
if curl -f http://localhost:6185 > /dev/null 2>&1; then
|
|
48
|
+
echo "Application started successfully!"
|
|
49
|
+
kill $APP_PID
|
|
50
|
+
exit 0
|
|
51
|
+
fi
|
|
52
|
+
sleep 1
|
|
53
|
+
done
|
|
54
|
+
|
|
55
|
+
echo "Application failed to start within 30 seconds"
|
|
56
|
+
kill $APP_PID 2>/dev/null || true
|
|
57
|
+
exit 1
|
|
58
|
+
timeout-minutes: 2
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: AstrBot
|
|
3
|
-
Version: 4.
|
|
3
|
+
Version: 4.9.1
|
|
4
4
|
Summary: Easy-to-use multi-platform LLM chatbot and development framework
|
|
5
5
|
License-File: LICENSE
|
|
6
6
|
Keywords: Astrbot,Astrbot Module,Astrbot Plugin
|
|
@@ -81,6 +81,7 @@ Description-Content-Type: text/markdown
|
|
|
81
81
|
<img src="https://img.shields.io/github/v/release/AstrBotDevs/AstrBot?color=76bad9" href="https://github.com/AstrBotDevs/AstrBot/releases/latest">
|
|
82
82
|
<img src="https://img.shields.io/badge/python-3.10+-blue.svg" alt="python">
|
|
83
83
|
<img src="https://deepwiki.com/badge.svg" href="https://deepwiki.com/AstrBotDevs/AstrBot">
|
|
84
|
+
<a href="https://zread.ai/AstrBotDevs/AstrBot" target="_blank"><img src="https://img.shields.io/badge/Ask_Zread-_.svg?style=flat&color=00b0aa&labelColor=000000&logo=data%3Aimage%2Fsvg%2Bxml%3Bbase64%2CPHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAxNiAxNiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTQuOTYxNTYgMS42MDAxSDIuMjQxNTZDMS44ODgxIDEuNjAwMSAxLjYwMTU2IDEuODg2NjQgMS42MDE1NiAyLjI0MDFWNC45NjAxQzEuNjAxNTYgNS4zMTM1NiAxLjg4ODEgNS42MDAxIDIuMjQxNTYgNS42MDAxSDQuOTYxNTZDNS4zMTUwMiA1LjYwMDEgNS42MDE1NiA1LjMxMzU2IDUuNjAxNTYgNC45NjAxVjIuMjQwMUM1LjYwMTU2IDEuODg2NjQgNS4zMTUwMiAxLjYwMDEgNC45NjE1NiAxLjYwMDFaIiBmaWxsPSIjZmZmIi8%2BCjxwYXRoIGQ9Ik00Ljk2MTU2IDEwLjM5OTlIMi4yNDE1NkMxLjg4ODEgMTAuMzk5OSAxLjYwMTU2IDEwLjY4NjQgMS42MDE1NiAxMS4wMzk5VjEzLjc1OTlDMS42MDE1NiAxNC4xMTM0IDEuODg4MSAxNC4zOTk5IDIuMjQxNTYgMTQuMzk5OUg0Ljk2MTU2QzUuMzE1MDIgMTQuMzk5OSA1LjYwMTU2IDE0LjExMzQgNS42MDE1NiAxMy43NTk5VjExLjAzOTlDNS42MDE1NiAxMC42ODY0IDUuMzE1MDIgMTAuMzk5OSA0Ljk2MTU2IDEwLjM5OTlaIiBmaWxsPSIjZmZmIi8%2BCjxwYXRoIGQ9Ik0xMy43NTg0IDEuNjAwMUgxMS4wMzg0QzEwLjY4NSAxLjYwMDEgMTAuMzk4NCAxLjg4NjY0IDEwLjM5ODQgMi4yNDAxVjQuOTYwMUMxMC4zOTg0IDUuMzEzNTYgMTAuNjg1IDUuNjAwMSAxMS4wMzg0IDUuNjAwMUgxMy43NTg0QzE0LjExMTkgNS42MDAxIDE0LjM5ODQgNS4zMTM1NiAxNC4zOTg0IDQuOTYwMVYyLjI0MDFDMTQuMzk4NCAxLjg4NjY0IDE0LjExMTkgMS42MDAxIDEzLjc1ODQgMS42MDAxWiIgZmlsbD0iI2ZmZiIvPgo8cGF0aCBkPSJNNCAxMkwxMiA0TDQgMTJaIiBmaWxsPSIjZmZmIi8%2BCjxwYXRoIGQ9Ik00IDEyTDEyIDQiIHN0cm9rZT0iI2ZmZiIgc3Ryb2tlLXdpZHRoPSIxLjUiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIvPgo8L3N2Zz4K&logoColor=ffffff" alt="zread"/></a>
|
|
84
85
|
<a href="https://hub.docker.com/r/soulter/astrbot"><img alt="Docker pull" src="https://img.shields.io/docker/pulls/soulter/astrbot.svg?color=76bad9"/></a>
|
|
85
86
|
<img src="https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Fapi.soulter.top%2Fastrbot%2Fplugin-num&query=%24.result&suffix=%E4%B8%AA&label=%E6%8F%92%E4%BB%B6%E5%B8%82%E5%9C%BA&cacheSeconds=3600">
|
|
86
87
|
<img src="https://gitcode.com/Soulter/AstrBot/star/badge.svg" href="https://gitcode.com/Soulter/AstrBot">
|
|
@@ -267,6 +268,7 @@ pre-commit install
|
|
|
267
268
|
- 3 群:630166526
|
|
268
269
|
- 5 群:822130018
|
|
269
270
|
- 6 群:753075035
|
|
271
|
+
- 7 群:743746109
|
|
270
272
|
- 开发者群:975206796
|
|
271
273
|
|
|
272
274
|
### Telegram 群组
|
|
@@ -302,4 +304,10 @@ pre-commit install
|
|
|
302
304
|
|
|
303
305
|
</details>
|
|
304
306
|
|
|
307
|
+
<div align="center">
|
|
308
|
+
|
|
305
309
|
_私は、高性能ですから!_
|
|
310
|
+
|
|
311
|
+
<img src="https://files.astrbot.app/watashiwa-koseino-desukara.gif" width="100"/>
|
|
312
|
+
</div
|
|
313
|
+
|
|
@@ -20,6 +20,7 @@
|
|
|
20
20
|
<img src="https://img.shields.io/github/v/release/AstrBotDevs/AstrBot?color=76bad9" href="https://github.com/AstrBotDevs/AstrBot/releases/latest">
|
|
21
21
|
<img src="https://img.shields.io/badge/python-3.10+-blue.svg" alt="python">
|
|
22
22
|
<img src="https://deepwiki.com/badge.svg" href="https://deepwiki.com/AstrBotDevs/AstrBot">
|
|
23
|
+
<a href="https://zread.ai/AstrBotDevs/AstrBot" target="_blank"><img src="https://img.shields.io/badge/Ask_Zread-_.svg?style=flat&color=00b0aa&labelColor=000000&logo=data%3Aimage%2Fsvg%2Bxml%3Bbase64%2CPHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAxNiAxNiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTQuOTYxNTYgMS42MDAxSDIuMjQxNTZDMS44ODgxIDEuNjAwMSAxLjYwMTU2IDEuODg2NjQgMS42MDE1NiAyLjI0MDFWNC45NjAxQzEuNjAxNTYgNS4zMTM1NiAxLjg4ODEgNS42MDAxIDIuMjQxNTYgNS42MDAxSDQuOTYxNTZDNS4zMTUwMiA1LjYwMDEgNS42MDE1NiA1LjMxMzU2IDUuNjAxNTYgNC45NjAxVjIuMjQwMUM1LjYwMTU2IDEuODg2NjQgNS4zMTUwMiAxLjYwMDEgNC45NjE1NiAxLjYwMDFaIiBmaWxsPSIjZmZmIi8%2BCjxwYXRoIGQ9Ik00Ljk2MTU2IDEwLjM5OTlIMi4yNDE1NkMxLjg4ODEgMTAuMzk5OSAxLjYwMTU2IDEwLjY4NjQgMS42MDE1NiAxMS4wMzk5VjEzLjc1OTlDMS42MDE1NiAxNC4xMTM0IDEuODg4MSAxNC4zOTk5IDIuMjQxNTYgMTQuMzk5OUg0Ljk2MTU2QzUuMzE1MDIgMTQuMzk5OSA1LjYwMTU2IDE0LjExMzQgNS42MDE1NiAxMy43NTk5VjExLjAzOTlDNS42MDE1NiAxMC42ODY0IDUuMzE1MDIgMTAuMzk5OSA0Ljk2MTU2IDEwLjM5OTlaIiBmaWxsPSIjZmZmIi8%2BCjxwYXRoIGQ9Ik0xMy43NTg0IDEuNjAwMUgxMS4wMzg0QzEwLjY4NSAxLjYwMDEgMTAuMzk4NCAxLjg4NjY0IDEwLjM5ODQgMi4yNDAxVjQuOTYwMUMxMC4zOTg0IDUuMzEzNTYgMTAuNjg1IDUuNjAwMSAxMS4wMzg0IDUuNjAwMUgxMy43NTg0QzE0LjExMTkgNS42MDAxIDE0LjM5ODQgNS4zMTM1NiAxNC4zOTg0IDQuOTYwMVYyLjI0MDFDMTQuMzk4NCAxLjg4NjY0IDE0LjExMTkgMS42MDAxIDEzLjc1ODQgMS42MDAxWiIgZmlsbD0iI2ZmZiIvPgo8cGF0aCBkPSJNNCAxMkwxMiA0TDQgMTJaIiBmaWxsPSIjZmZmIi8%2BCjxwYXRoIGQ9Ik00IDEyTDEyIDQiIHN0cm9rZT0iI2ZmZiIgc3Ryb2tlLXdpZHRoPSIxLjUiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIvPgo8L3N2Zz4K&logoColor=ffffff" alt="zread"/></a>
|
|
23
24
|
<a href="https://hub.docker.com/r/soulter/astrbot"><img alt="Docker pull" src="https://img.shields.io/docker/pulls/soulter/astrbot.svg?color=76bad9"/></a>
|
|
24
25
|
<img src="https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Fapi.soulter.top%2Fastrbot%2Fplugin-num&query=%24.result&suffix=%E4%B8%AA&label=%E6%8F%92%E4%BB%B6%E5%B8%82%E5%9C%BA&cacheSeconds=3600">
|
|
25
26
|
<img src="https://gitcode.com/Soulter/AstrBot/star/badge.svg" href="https://gitcode.com/Soulter/AstrBot">
|
|
@@ -206,6 +207,7 @@ pre-commit install
|
|
|
206
207
|
- 3 群:630166526
|
|
207
208
|
- 5 群:822130018
|
|
208
209
|
- 6 群:753075035
|
|
210
|
+
- 7 群:743746109
|
|
209
211
|
- 开发者群:975206796
|
|
210
212
|
|
|
211
213
|
### Telegram 群组
|
|
@@ -241,4 +243,10 @@ pre-commit install
|
|
|
241
243
|
|
|
242
244
|
</details>
|
|
243
245
|
|
|
246
|
+
<div align="center">
|
|
247
|
+
|
|
244
248
|
_私は、高性能ですから!_
|
|
249
|
+
|
|
250
|
+
<img src="https://files.astrbot.app/watashiwa-koseino-desukara.gif" width="100"/>
|
|
251
|
+
</div
|
|
252
|
+
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = "4.9.1"
|
|
@@ -97,7 +97,6 @@ class ToolLoopAgentRunner(BaseAgentRunner[TContext]):
|
|
|
97
97
|
llm_resp_result = None
|
|
98
98
|
|
|
99
99
|
async for llm_response in self._iter_llm_responses():
|
|
100
|
-
assert isinstance(llm_response, LLMResponse)
|
|
101
100
|
if llm_response.is_chunk:
|
|
102
101
|
if llm_response.result_chain:
|
|
103
102
|
yield AgentResponse(
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
from collections.abc import Awaitable, Callable
|
|
1
|
+
from collections.abc import AsyncGenerator, Awaitable, Callable
|
|
2
2
|
from typing import Any, Generic
|
|
3
3
|
|
|
4
4
|
import jsonschema
|
|
@@ -7,6 +7,8 @@ from deprecated import deprecated
|
|
|
7
7
|
from pydantic import Field, model_validator
|
|
8
8
|
from pydantic.dataclasses import dataclass
|
|
9
9
|
|
|
10
|
+
from astrbot.core.message.message_event_result import MessageEventResult
|
|
11
|
+
|
|
10
12
|
from .run_context import ContextWrapper, TContext
|
|
11
13
|
|
|
12
14
|
ParametersType = dict[str, Any]
|
|
@@ -38,7 +40,10 @@ class ToolSchema:
|
|
|
38
40
|
class FunctionTool(ToolSchema, Generic[TContext]):
|
|
39
41
|
"""A callable tool, for function calling."""
|
|
40
42
|
|
|
41
|
-
handler:
|
|
43
|
+
handler: (
|
|
44
|
+
Callable[..., Awaitable[str | None] | AsyncGenerator[MessageEventResult, None]]
|
|
45
|
+
| None
|
|
46
|
+
) = None
|
|
42
47
|
"""a callable that implements the tool's functionality. It should be an async function."""
|
|
43
48
|
|
|
44
49
|
handler_module_path: str | None = None
|
|
@@ -185,7 +185,11 @@ class FunctionToolExecutor(BaseFunctionToolExecutor[AstrAgentContext]):
|
|
|
185
185
|
|
|
186
186
|
async def call_local_llm_tool(
|
|
187
187
|
context: ContextWrapper[AstrAgentContext],
|
|
188
|
-
handler: T.Callable[
|
|
188
|
+
handler: T.Callable[
|
|
189
|
+
...,
|
|
190
|
+
T.Awaitable[MessageEventResult | mcp.types.CallToolResult | str | None]
|
|
191
|
+
| T.AsyncGenerator[MessageEventResult | CommandResult | str | None, None],
|
|
192
|
+
],
|
|
189
193
|
method_name: str,
|
|
190
194
|
*args,
|
|
191
195
|
**kwargs,
|
|
@@ -4,7 +4,7 @@ import os
|
|
|
4
4
|
|
|
5
5
|
from astrbot.core.utils.astrbot_path import get_astrbot_data_path
|
|
6
6
|
|
|
7
|
-
VERSION = "4.
|
|
7
|
+
VERSION = "4.9.1"
|
|
8
8
|
DB_PATH = os.path.join(get_astrbot_data_path(), "data_v4.db")
|
|
9
9
|
|
|
10
10
|
WEBHOOK_SUPPORTED_PLATFORMS = [
|
|
@@ -13,6 +13,7 @@ WEBHOOK_SUPPORTED_PLATFORMS = [
|
|
|
13
13
|
"wecom",
|
|
14
14
|
"wecom_ai_bot",
|
|
15
15
|
"slack",
|
|
16
|
+
"lark",
|
|
16
17
|
]
|
|
17
18
|
|
|
18
19
|
# 默认配置
|
|
@@ -42,7 +43,15 @@ DEFAULT_CONFIG = {
|
|
|
42
43
|
"interval": "1.5,3.5",
|
|
43
44
|
"log_base": 2.6,
|
|
44
45
|
"words_count_threshold": 150,
|
|
46
|
+
"split_mode": "regex", # regex 或 words
|
|
45
47
|
"regex": ".*?[。?!~…]+|.+$",
|
|
48
|
+
"split_words": [
|
|
49
|
+
"。",
|
|
50
|
+
"?",
|
|
51
|
+
"!",
|
|
52
|
+
"~",
|
|
53
|
+
"…",
|
|
54
|
+
], # 当 split_mode 为 words 时使用
|
|
46
55
|
"content_cleanup_rule": "",
|
|
47
56
|
},
|
|
48
57
|
"no_permission_reply": True,
|
|
@@ -99,6 +108,7 @@ DEFAULT_CONFIG = {
|
|
|
99
108
|
"provider_id": "",
|
|
100
109
|
"dual_output": False,
|
|
101
110
|
"use_file_service": False,
|
|
111
|
+
"trigger_probability": 1.0,
|
|
102
112
|
},
|
|
103
113
|
"provider_ltm_settings": {
|
|
104
114
|
"group_icl_enable": False,
|
|
@@ -157,6 +167,7 @@ DEFAULT_CONFIG = {
|
|
|
157
167
|
"kb_fusion_top_k": 20, # 知识库检索融合阶段返回结果数量
|
|
158
168
|
"kb_final_top_k": 5, # 知识库检索最终返回结果数量
|
|
159
169
|
"kb_agentic_mode": False,
|
|
170
|
+
"disable_builtin_commands": False,
|
|
160
171
|
}
|
|
161
172
|
|
|
162
173
|
|
|
@@ -268,6 +279,10 @@ CONFIG_METADATA_2 = {
|
|
|
268
279
|
"app_id": "",
|
|
269
280
|
"app_secret": "",
|
|
270
281
|
"domain": "https://open.feishu.cn",
|
|
282
|
+
"lark_connection_mode": "socket", # webhook, socket
|
|
283
|
+
"webhook_uuid": "",
|
|
284
|
+
"lark_encrypt_key": "",
|
|
285
|
+
"lark_verification_token": "",
|
|
271
286
|
},
|
|
272
287
|
"钉钉(DingTalk)": {
|
|
273
288
|
"id": "dingtalk",
|
|
@@ -361,6 +376,28 @@ CONFIG_METADATA_2 = {
|
|
|
361
376
|
# "type": "string",
|
|
362
377
|
# "options": ["fullscreen", "embedded"],
|
|
363
378
|
# },
|
|
379
|
+
"lark_connection_mode": {
|
|
380
|
+
"description": "订阅方式",
|
|
381
|
+
"type": "string",
|
|
382
|
+
"options": ["socket", "webhook"],
|
|
383
|
+
"labels": ["长连接模式", "推送至服务器模式"],
|
|
384
|
+
},
|
|
385
|
+
"lark_encrypt_key": {
|
|
386
|
+
"description": "Encrypt Key",
|
|
387
|
+
"type": "string",
|
|
388
|
+
"hint": "用于解密飞书回调数据的加密密钥",
|
|
389
|
+
"condition": {
|
|
390
|
+
"lark_connection_mode": "webhook",
|
|
391
|
+
},
|
|
392
|
+
},
|
|
393
|
+
"lark_verification_token": {
|
|
394
|
+
"description": "Verification Token",
|
|
395
|
+
"type": "string",
|
|
396
|
+
"hint": "用于验证飞书回调请求的令牌",
|
|
397
|
+
"condition": {
|
|
398
|
+
"lark_connection_mode": "webhook",
|
|
399
|
+
},
|
|
400
|
+
},
|
|
364
401
|
"is_sandbox": {
|
|
365
402
|
"description": "沙箱模式",
|
|
366
403
|
"type": "bool",
|
|
@@ -2173,6 +2210,9 @@ CONFIG_METADATA_2 = {
|
|
|
2173
2210
|
"use_file_service": {
|
|
2174
2211
|
"type": "bool",
|
|
2175
2212
|
},
|
|
2213
|
+
"trigger_probability": {
|
|
2214
|
+
"type": "float",
|
|
2215
|
+
},
|
|
2176
2216
|
},
|
|
2177
2217
|
},
|
|
2178
2218
|
"provider_ltm_settings": {
|
|
@@ -2383,6 +2423,14 @@ CONFIG_METADATA_3 = {
|
|
|
2383
2423
|
"provider_tts_settings.enable": True,
|
|
2384
2424
|
},
|
|
2385
2425
|
},
|
|
2426
|
+
"provider_tts_settings.trigger_probability": {
|
|
2427
|
+
"description": "TTS 触发概率",
|
|
2428
|
+
"type": "float",
|
|
2429
|
+
"slider": {"min": 0, "max": 1, "step": 0.05},
|
|
2430
|
+
"condition": {
|
|
2431
|
+
"provider_tts_settings.enable": True,
|
|
2432
|
+
},
|
|
2433
|
+
},
|
|
2386
2434
|
"provider_settings.image_caption_prompt": {
|
|
2387
2435
|
"description": "图片转述提示词",
|
|
2388
2436
|
"type": "text",
|
|
@@ -2661,6 +2709,11 @@ CONFIG_METADATA_3 = {
|
|
|
2661
2709
|
"description": "只 @ 机器人是否触发等待",
|
|
2662
2710
|
"type": "bool",
|
|
2663
2711
|
},
|
|
2712
|
+
"disable_builtin_commands": {
|
|
2713
|
+
"description": "禁用自带指令",
|
|
2714
|
+
"type": "bool",
|
|
2715
|
+
"hint": "禁用所有 AstrBot 的自带指令,如 help, provider, model 等。",
|
|
2716
|
+
},
|
|
2664
2717
|
},
|
|
2665
2718
|
},
|
|
2666
2719
|
"whitelist": {
|
|
@@ -2875,9 +2928,26 @@ CONFIG_METADATA_3 = {
|
|
|
2875
2928
|
"description": "分段回复字数阈值",
|
|
2876
2929
|
"type": "int",
|
|
2877
2930
|
},
|
|
2931
|
+
"platform_settings.segmented_reply.split_mode": {
|
|
2932
|
+
"description": "分段模式",
|
|
2933
|
+
"type": "string",
|
|
2934
|
+
"options": ["regex", "words"],
|
|
2935
|
+
"labels": ["正则表达式", "分段词列表"],
|
|
2936
|
+
},
|
|
2878
2937
|
"platform_settings.segmented_reply.regex": {
|
|
2879
2938
|
"description": "分段正则表达式",
|
|
2880
2939
|
"type": "string",
|
|
2940
|
+
"condition": {
|
|
2941
|
+
"platform_settings.segmented_reply.split_mode": "regex",
|
|
2942
|
+
},
|
|
2943
|
+
},
|
|
2944
|
+
"platform_settings.segmented_reply.split_words": {
|
|
2945
|
+
"description": "分段词列表",
|
|
2946
|
+
"type": "list",
|
|
2947
|
+
"hint": "检测到列表中的任意词时进行分段,如:。、?、!等",
|
|
2948
|
+
"condition": {
|
|
2949
|
+
"platform_settings.segmented_reply.split_mode": "words",
|
|
2950
|
+
},
|
|
2881
2951
|
},
|
|
2882
2952
|
"platform_settings.segmented_reply.content_cleanup_rule": {
|
|
2883
2953
|
"description": "内容过滤正则表达式",
|
|
@@ -2928,6 +2998,7 @@ CONFIG_METADATA_3 = {
|
|
|
2928
2998
|
"description": "回复概率",
|
|
2929
2999
|
"type": "float",
|
|
2930
3000
|
"hint": "0.0-1.0 之间的数值",
|
|
3001
|
+
"slider": {"min": 0, "max": 1, "step": 0.05},
|
|
2931
3002
|
"condition": {
|
|
2932
3003
|
"provider_ltm_settings.active_reply.enable": True,
|
|
2933
3004
|
},
|
|
@@ -197,7 +197,7 @@ class AstrBotCoreLifecycle:
|
|
|
197
197
|
# 把插件中注册的所有协程函数注册到事件总线中并执行
|
|
198
198
|
extra_tasks = []
|
|
199
199
|
for task in self.star_context._register_tasks:
|
|
200
|
-
extra_tasks.append(asyncio.create_task(task, name=task.__name__))
|
|
200
|
+
extra_tasks.append(asyncio.create_task(task, name=task.__name__)) # type: ignore
|
|
201
201
|
|
|
202
202
|
tasks_ = [event_bus_task, *extra_tasks]
|
|
203
203
|
for task in tasks_:
|
|
@@ -5,8 +5,7 @@ from contextlib import asynccontextmanager
|
|
|
5
5
|
from dataclasses import dataclass
|
|
6
6
|
|
|
7
7
|
from deprecated import deprecated
|
|
8
|
-
from sqlalchemy.ext.asyncio import AsyncSession, create_async_engine
|
|
9
|
-
from sqlalchemy.orm import sessionmaker
|
|
8
|
+
from sqlalchemy.ext.asyncio import AsyncSession, async_sessionmaker, create_async_engine
|
|
10
9
|
|
|
11
10
|
from astrbot.core.db.po import (
|
|
12
11
|
Attachment,
|
|
@@ -32,7 +31,7 @@ class BaseDatabase(abc.ABC):
|
|
|
32
31
|
echo=False,
|
|
33
32
|
future=True,
|
|
34
33
|
)
|
|
35
|
-
self.AsyncSessionLocal =
|
|
34
|
+
self.AsyncSessionLocal = async_sessionmaker(
|
|
36
35
|
self.engine,
|
|
37
36
|
class_=AsyncSession,
|
|
38
37
|
expire_on_commit=False,
|
|
@@ -70,6 +70,7 @@ async def migration_conversation_table(
|
|
|
70
70
|
logger.info(
|
|
71
71
|
f"未找到该条旧会话对应的具体数据: {conversation}, 跳过。",
|
|
72
72
|
)
|
|
73
|
+
continue
|
|
73
74
|
if ":" not in conv.user_id:
|
|
74
75
|
continue
|
|
75
76
|
session = MessageSesion.from_str(session_str=conv.user_id)
|
|
@@ -207,6 +208,7 @@ async def migration_webchat_data(
|
|
|
207
208
|
logger.info(
|
|
208
209
|
f"未找到该条旧会话对应的具体数据: {conversation}, 跳过。",
|
|
209
210
|
)
|
|
211
|
+
continue
|
|
210
212
|
if ":" in conv.user_id:
|
|
211
213
|
continue
|
|
212
214
|
platform_id = "webchat"
|
|
@@ -127,7 +127,7 @@ class SQLiteDatabase:
|
|
|
127
127
|
conn.text_factory = str
|
|
128
128
|
return conn
|
|
129
129
|
|
|
130
|
-
def _exec_sql(self, sql: str, params: tuple = None):
|
|
130
|
+
def _exec_sql(self, sql: str, params: tuple | None = None):
|
|
131
131
|
conn = self.conn
|
|
132
132
|
try:
|
|
133
133
|
c = self.conn.cursor()
|
|
@@ -224,9 +224,11 @@ class SQLiteDatabase:
|
|
|
224
224
|
|
|
225
225
|
c.close()
|
|
226
226
|
|
|
227
|
-
return Stats(platform
|
|
227
|
+
return Stats(platform)
|
|
228
228
|
|
|
229
|
-
def get_conversation_by_user_id(
|
|
229
|
+
def get_conversation_by_user_id(
|
|
230
|
+
self, user_id: str, cid: str
|
|
231
|
+
) -> Conversation | None:
|
|
230
232
|
try:
|
|
231
233
|
c = self.conn.cursor()
|
|
232
234
|
except sqlite3.ProgrammingError:
|
|
@@ -258,7 +260,7 @@ class SQLiteDatabase:
|
|
|
258
260
|
(user_id, cid, history, updated_at, created_at),
|
|
259
261
|
)
|
|
260
262
|
|
|
261
|
-
def get_conversations(self, user_id: str) ->
|
|
263
|
+
def get_conversations(self, user_id: str) -> list[Conversation]:
|
|
262
264
|
try:
|
|
263
265
|
c = self.conn.cursor()
|
|
264
266
|
except sqlite3.ProgrammingError:
|
|
@@ -12,7 +12,7 @@ class PlatformStat(SQLModel, table=True):
|
|
|
12
12
|
Note: In astrbot v4, we moved `platform` table to here.
|
|
13
13
|
"""
|
|
14
14
|
|
|
15
|
-
__tablename__ = "platform_stats"
|
|
15
|
+
__tablename__: str = "platform_stats"
|
|
16
16
|
|
|
17
17
|
id: int = Field(primary_key=True, sa_column_kwargs={"autoincrement": True})
|
|
18
18
|
timestamp: datetime = Field(nullable=False)
|
|
@@ -31,9 +31,10 @@ class PlatformStat(SQLModel, table=True):
|
|
|
31
31
|
|
|
32
32
|
|
|
33
33
|
class ConversationV2(SQLModel, table=True):
|
|
34
|
-
__tablename__ = "conversations"
|
|
34
|
+
__tablename__: str = "conversations"
|
|
35
35
|
|
|
36
|
-
inner_conversation_id: int = Field(
|
|
36
|
+
inner_conversation_id: int | None = Field(
|
|
37
|
+
default=None,
|
|
37
38
|
primary_key=True,
|
|
38
39
|
sa_column_kwargs={"autoincrement": True},
|
|
39
40
|
)
|
|
@@ -68,7 +69,7 @@ class Persona(SQLModel, table=True):
|
|
|
68
69
|
It can be used to customize the behavior of LLMs.
|
|
69
70
|
"""
|
|
70
71
|
|
|
71
|
-
__tablename__ = "personas"
|
|
72
|
+
__tablename__: str = "personas"
|
|
72
73
|
|
|
73
74
|
id: int | None = Field(
|
|
74
75
|
primary_key=True,
|
|
@@ -98,7 +99,7 @@ class Persona(SQLModel, table=True):
|
|
|
98
99
|
class Preference(SQLModel, table=True):
|
|
99
100
|
"""This class represents preferences for bots."""
|
|
100
101
|
|
|
101
|
-
__tablename__ = "preferences"
|
|
102
|
+
__tablename__: str = "preferences"
|
|
102
103
|
|
|
103
104
|
id: int | None = Field(
|
|
104
105
|
default=None,
|
|
@@ -134,7 +135,7 @@ class PlatformMessageHistory(SQLModel, table=True):
|
|
|
134
135
|
or platform-specific messages.
|
|
135
136
|
"""
|
|
136
137
|
|
|
137
|
-
__tablename__ = "platform_message_history"
|
|
138
|
+
__tablename__: str = "platform_message_history"
|
|
138
139
|
|
|
139
140
|
id: int | None = Field(
|
|
140
141
|
primary_key=True,
|
|
@@ -162,7 +163,7 @@ class PlatformSession(SQLModel, table=True):
|
|
|
162
163
|
Each session can have multiple conversations (对话) associated with it.
|
|
163
164
|
"""
|
|
164
165
|
|
|
165
|
-
__tablename__ = "platform_sessions"
|
|
166
|
+
__tablename__: str = "platform_sessions"
|
|
166
167
|
|
|
167
168
|
inner_id: int | None = Field(
|
|
168
169
|
primary_key=True,
|
|
@@ -203,7 +204,7 @@ class Attachment(SQLModel, table=True):
|
|
|
203
204
|
Attachments can be images, files, or other media types.
|
|
204
205
|
"""
|
|
205
206
|
|
|
206
|
-
__tablename__ = "attachments"
|
|
207
|
+
__tablename__: str = "attachments"
|
|
207
208
|
|
|
208
209
|
inner_attachment_id: int | None = Field(
|
|
209
210
|
primary_key=True,
|
|
@@ -261,17 +262,17 @@ class Personality(TypedDict):
|
|
|
261
262
|
在 v4.0.0 版本及之后,推荐使用上面的 Persona 类。并且, mood_imitation_dialogs 字段已被废弃。
|
|
262
263
|
"""
|
|
263
264
|
|
|
264
|
-
prompt: str
|
|
265
|
-
name: str
|
|
266
|
-
begin_dialogs: list[str]
|
|
267
|
-
mood_imitation_dialogs: list[str]
|
|
265
|
+
prompt: str
|
|
266
|
+
name: str
|
|
267
|
+
begin_dialogs: list[str]
|
|
268
|
+
mood_imitation_dialogs: list[str]
|
|
268
269
|
"""情感模拟对话预设。在 v4.0.0 版本及之后,已被废弃。"""
|
|
269
|
-
tools: list[str] | None
|
|
270
|
+
tools: list[str] | None
|
|
270
271
|
"""工具列表。None 表示使用所有工具,空列表表示不使用任何工具"""
|
|
271
272
|
|
|
272
273
|
# cache
|
|
273
|
-
_begin_dialogs_processed: list[dict]
|
|
274
|
-
_mood_imitation_dialogs_processed: str
|
|
274
|
+
_begin_dialogs_processed: list[dict]
|
|
275
|
+
_mood_imitation_dialogs_processed: str
|
|
275
276
|
|
|
276
277
|
|
|
277
278
|
# ====
|
|
@@ -3,6 +3,7 @@ import threading
|
|
|
3
3
|
import typing as T
|
|
4
4
|
from datetime import datetime, timedelta, timezone
|
|
5
5
|
|
|
6
|
+
from sqlalchemy import CursorResult
|
|
6
7
|
from sqlalchemy.ext.asyncio import AsyncSession
|
|
7
8
|
from sqlmodel import col, delete, desc, func, or_, select, text, update
|
|
8
9
|
|
|
@@ -489,7 +490,7 @@ class SQLiteDatabase(BaseDatabase):
|
|
|
489
490
|
async with self.get_db() as session:
|
|
490
491
|
session: AsyncSession
|
|
491
492
|
query = select(Attachment).where(
|
|
492
|
-
Attachment.attachment_id.in_(attachment_ids)
|
|
493
|
+
col(Attachment.attachment_id).in_(attachment_ids)
|
|
493
494
|
)
|
|
494
495
|
result = await session.execute(query)
|
|
495
496
|
return list(result.scalars().all())
|
|
@@ -505,7 +506,7 @@ class SQLiteDatabase(BaseDatabase):
|
|
|
505
506
|
query = delete(Attachment).where(
|
|
506
507
|
col(Attachment.attachment_id) == attachment_id
|
|
507
508
|
)
|
|
508
|
-
result = await session.execute(query)
|
|
509
|
+
result = T.cast(CursorResult, await session.execute(query))
|
|
509
510
|
return result.rowcount > 0
|
|
510
511
|
|
|
511
512
|
async def delete_attachments(self, attachment_ids: list[str]) -> int:
|
|
@@ -521,7 +522,7 @@ class SQLiteDatabase(BaseDatabase):
|
|
|
521
522
|
query = delete(Attachment).where(
|
|
522
523
|
col(Attachment.attachment_id).in_(attachment_ids)
|
|
523
524
|
)
|
|
524
|
-
result = await session.execute(query)
|
|
525
|
+
result = T.cast(CursorResult, await session.execute(query))
|
|
525
526
|
return result.rowcount
|
|
526
527
|
|
|
527
528
|
async def insert_persona(
|
|
@@ -27,7 +27,7 @@ class EventBus:
|
|
|
27
27
|
self,
|
|
28
28
|
event_queue: Queue,
|
|
29
29
|
pipeline_scheduler_mapping: dict[str, PipelineScheduler],
|
|
30
|
-
astrbot_config_mgr: AstrBotConfigManager
|
|
30
|
+
astrbot_config_mgr: AstrBotConfigManager,
|
|
31
31
|
):
|
|
32
32
|
self.event_queue = event_queue # 事件队列
|
|
33
33
|
# abconf uuid -> scheduler
|
|
@@ -40,6 +40,11 @@ class EventBus:
|
|
|
40
40
|
conf_info = self.astrbot_config_mgr.get_conf_info(event.unified_msg_origin)
|
|
41
41
|
self._print_event(event, conf_info["name"])
|
|
42
42
|
scheduler = self.pipeline_scheduler_mapping.get(conf_info["id"])
|
|
43
|
+
if not scheduler:
|
|
44
|
+
logger.error(
|
|
45
|
+
f"PipelineScheduler not found for id: {conf_info['id']}, event ignored."
|
|
46
|
+
)
|
|
47
|
+
continue
|
|
43
48
|
asyncio.create_task(scheduler.execute(event))
|
|
44
49
|
|
|
45
50
|
def _print_event(self, event: AstrMessageEvent, conf_name: str):
|
|
@@ -166,7 +166,11 @@ class RetrievalManager:
|
|
|
166
166
|
# 5. Rerank
|
|
167
167
|
first_rerank = None
|
|
168
168
|
for kb_id in kb_ids:
|
|
169
|
-
vec_db
|
|
169
|
+
vec_db = kb_options[kb_id]["vec_db"]
|
|
170
|
+
if not isinstance(vec_db, FaissVecDB):
|
|
171
|
+
logger.warning(f"vec_db for kb_id {kb_id} is not FaissVecDB")
|
|
172
|
+
continue
|
|
173
|
+
|
|
170
174
|
rerank_pi = kb_options[kb_id]["rerank_provider_id"]
|
|
171
175
|
if (
|
|
172
176
|
vec_db
|
|
@@ -24,6 +24,7 @@ import asyncio
|
|
|
24
24
|
import logging
|
|
25
25
|
import os
|
|
26
26
|
import sys
|
|
27
|
+
import time
|
|
27
28
|
from asyncio import Queue
|
|
28
29
|
from collections import deque
|
|
29
30
|
|
|
@@ -148,7 +149,7 @@ class LogQueueHandler(logging.Handler):
|
|
|
148
149
|
self.log_broker.publish(
|
|
149
150
|
{
|
|
150
151
|
"level": record.levelname,
|
|
151
|
-
"time":
|
|
152
|
+
"time": time.time(),
|
|
152
153
|
"data": log_entry,
|
|
153
154
|
},
|
|
154
155
|
)
|