Undefined-bot 3.18.3__tar.gz → 3.18.5__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.
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/ARCHITECTURE.md +2 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/CHANGELOG.md +27 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/PKG-INFO +3 -1
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/README.md +2 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/config.toml.example +8 -2
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/pyproject.toml +1 -1
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/__init__.py +1 -1
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/ai/client/ask_loop.py +1 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/ai/client/queue.py +17 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/ai/multimodal/analyzer.py +6 -2
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/api/_helpers.py +4 -3
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/api/app.py +31 -3
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/api/routes/chat.py +99 -48
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/api/routes/cognitive.py +4 -1
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/api/routes/memory.py +12 -3
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/api/routes/naga/send.py +50 -14
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/api/webchat_store.py +24 -15
- undefined_bot-3.18.5/src/Undefined/arxiv/downloader.py +115 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/arxiv/sender.py +19 -4
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/attachments/render.py +1 -1
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/attachments/segments.py +8 -5
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/automations/runner.py +19 -10
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/automations/storage.py +17 -8
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/automations/validate.py +9 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/bilibili/downloader.py +13 -9
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/cognitive/historian/worker.py +42 -1
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/cognitive/profile_storage.py +34 -9
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/cognitive/service/service.py +7 -6
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/config/build_config.py +6 -5
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/config/config_class.py +7 -4
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/config/env_registry.py +2 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/config/hot_reload.py +21 -3
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/config/load_sections/core.py +16 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/config/load_sections/domains.py +5 -7
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/config/manager.py +44 -10
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/config/models.py +1 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/config/parsers/helpers.py +4 -2
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/config/webui_settings.py +40 -3
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/deploy/config_patch.py +17 -3
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/deploy/generate.py +36 -14
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/deploy/runner.py +30 -27
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/deploy/templates/compose.bot.yaml +4 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/deploy/templates/compose.lxmusic2api.yaml +1 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/douyin/sender.py +4 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/handlers/message_flow.py +1 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/jm/client.py +3 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/jm/downloader.py +38 -35
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/jm/parser.py +7 -3
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/knowledge/embedder.py +2 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/knowledge/manager.py +23 -8
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/knowledge/reranker.py +2 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/knowledge/store.py +21 -3
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/main.py +89 -30
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/memes/models.py +2 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/memes/search.py +65 -33
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/memes/service.py +186 -152
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/memes/store.py +61 -13
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/memes/worker.py +25 -11
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/memory.py +68 -63
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/onebot/client.py +61 -31
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/onebot/file_references.py +2 -7
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/services/coordinator/background.py +17 -1
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/services/coordinator/group.py +13 -5
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/services/coordinator/private.py +13 -3
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/services/message_batcher/scheduler.py +34 -13
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/services/queue_manager.py +49 -10
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/README.md +2 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/agents/file_analysis_agent/README.md +2 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/agents/file_analysis_agent/prompt.md +1 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/agents/file_analysis_agent/tools/cleanup_temp/config.json +1 -1
- undefined_bot-3.18.5/src/Undefined/skills/agents/file_analysis_agent/tools/cleanup_temp/handler.py +53 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/agents/file_analysis_agent/tools/extract_archive/config.json +2 -2
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/agents/file_analysis_agent/tools/extract_archive/handler.py +22 -3
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/registry.py +6 -4
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/shared.py +38 -1
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/tools/arxiv_paper/README.md +4 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/tools/bilibili_opus/README.md +2 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/tools/bilibili_video/README.md +2 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/tools/douyin_video/README.md +2 -0
- undefined_bot-3.18.5/src/Undefined/skills/tools/python_interpreter/README.md +34 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/tools/python_interpreter/handler.py +51 -12
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/tools/task_progress/README.md +2 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/tools/task_progress/handler.py +2 -3
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/cognitive/README.md +3 -2
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/cognitive/get_profile/handler.py +7 -4
- undefined_bot-3.18.5/src/Undefined/skills/toolsets/memory/README.md +16 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/messages/README.md +2 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/utils/common.py +13 -1
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/utils/http_download.py +25 -9
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/utils/io.py +4 -2
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/utils/paths.py +12 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/utils/sender.py +284 -248
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/webui/app.py +25 -10
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/webui/core.py +33 -12
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/webui/routes/_auth.py +27 -15
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/webui/routes/_bot.py +5 -5
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/webui/routes/_config.py +97 -40
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/webui/static/js/api.js +37 -17
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/webui/static/js/config-form.js +171 -98
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/webui/static/js/log-view.js +42 -8
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/webui/static/js/main.js +24 -10
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/webui/static/js/memes.js +69 -35
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/webui/static/js/runtime.js +208 -75
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/webui/static/js/schedules.js +62 -12
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/webui/static/js/weixin.js +79 -24
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/webui/static/js/workflow-inspector.js +1 -1
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/webui/utils/config_io.py +6 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/webui/utils/config_sync.py +15 -9
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/weixin/service.py +66 -28
- undefined_bot-3.18.5/src/Undefined/weixin/transport.py +73 -0
- undefined_bot-3.18.3/src/Undefined/arxiv/downloader.py +0 -108
- undefined_bot-3.18.3/src/Undefined/skills/agents/file_analysis_agent/tools/cleanup_temp/handler.py +0 -37
- undefined_bot-3.18.3/src/Undefined/skills/tools/python_interpreter/README.md +0 -19
- undefined_bot-3.18.3/src/Undefined/skills/toolsets/memory/README.md +0 -10
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/.gitignore +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/LICENSE +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/config/README.md +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/config/mcp.json.example +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/img/undefined-9527.png +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/img/xlwy.jpg +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/res/IMPORTANT/each.md +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/res/README.md +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/res/prompts/agent_self_intro.txt +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/res/prompts/analyze_multimodal.txt +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/res/prompts/describe_image.txt +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/res/prompts/describe_meme_image.txt +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/res/prompts/generate_title.txt +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/res/prompts/historian_profile_merge.md +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/res/prompts/historian_rewrite.md +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/res/prompts/image_gen_moderation.txt +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/res/prompts/injection_detector.txt +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/res/prompts/injection_response_agent.txt +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/res/prompts/judge_meme_image.txt +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/res/prompts/merge_message_summaries.txt +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/res/prompts/merge_summaries.txt +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/res/prompts/message_summary.txt +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/res/prompts/naga_message_moderation.txt +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/res/prompts/stats_analysis.txt +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/res/prompts/summarize.txt +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/res/prompts/undefined.xml +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/res/prompts/undefined_nagaagent.xml +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/README.md +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/README.md +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/__main__.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/ai/__init__.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/ai/client/__init__.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/ai/client/setup.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/ai/crawl4ai_support.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/ai/http.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/ai/llm/__init__.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/ai/llm/requester.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/ai/llm/retry.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/ai/llm/sanitize.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/ai/llm/streaming.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/ai/llm/thinking.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/ai/llm/types.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/ai/model_selector.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/ai/multimodal/__init__.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/ai/multimodal/constants.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/ai/multimodal/detection.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/ai/multimodal/parsing.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/ai/parsing.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/ai/prompts/__init__.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/ai/prompts/builder.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/ai/prompts/cognitive.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/ai/prompts/constants.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/ai/prompts/current_input.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/ai/prompts/file_includes.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/ai/prompts/system_context.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/ai/prompts/system_info.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/ai/queue_budget.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/ai/retrieval.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/ai/summaries.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/ai/tokens.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/ai/tool_search.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/ai/tooling.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/ai/transports/__init__.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/ai/transports/anthropic_transport.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/ai/transports/openai_transport.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/ai/transports/replay.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/api/__init__.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/api/_context.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/api/_naga_state.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/api/_openapi.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/api/_probes.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/api/naga_store.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/api/routes/__init__.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/api/routes/automations.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/api/routes/commands.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/api/routes/health.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/api/routes/memes.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/api/routes/naga/__init__.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/api/routes/naga/auth.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/api/routes/naga/bind.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/api/routes/naga/unbind.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/api/routes/onebot_files.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/api/routes/schedules.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/api/routes/system.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/api/routes/tools.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/api/routes/weixin.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/arxiv/__init__.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/arxiv/client.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/arxiv/models.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/arxiv/parser.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/attachments/__init__.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/attachments/forward_snapshot.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/attachments/models.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/attachments/registry.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/attachments/remote.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/automations/__init__.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/automations/address.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/automations/catalog.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/automations/clock.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/automations/constants.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/automations/engine.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/automations/extract.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/automations/logutil.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/automations/match.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/automations/mentions.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/automations/migrate.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/automations/service.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/automations/short.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/automations/template.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/automations/triggers.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/bilibili/__init__.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/bilibili/api_client.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/bilibili/danmaku.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/bilibili/download_core.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/bilibili/errors.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/bilibili/format.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/bilibili/models.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/bilibili/opus_parser.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/bilibili/opus_render.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/bilibili/opus_sender.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/bilibili/parser.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/bilibili/sender.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/bilibili/wbi.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/bilibili/wbi_request.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/changelog.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/cognitive/__init__.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/cognitive/chroma_scheduler.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/cognitive/historian/__init__.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/cognitive/historian/helpers.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/cognitive/historian/scheduling.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/cognitive/historian/tools.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/cognitive/job_queue.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/cognitive/service/__init__.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/cognitive/service/helpers.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/cognitive/vector_store.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/cognitive/vector_store_compat.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/config/__init__.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/config/admin.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/config/api_modes.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/config/coercers.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/config/domain_parsers.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/config/load_sections/__init__.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/config/load_sections/access.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/config/load_sections/finalize.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/config/load_sections/history_skills.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/config/load_sections/integrations.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/config/load_sections/knowledge.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/config/load_sections/logging_tools.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/config/load_sections/models.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/config/load_sections/network.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/config/loader.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/config/model_parsers.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/config/naga_policy.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/config/onebot.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/config/parsers/__init__.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/config/parsers/agent.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/config/parsers/chat.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/config/parsers/embedding.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/config/parsers/grok.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/config/parsers/historian.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/config/parsers/image.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/config/parsers/naga.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/config/parsers/pool.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/config/parsers/security.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/config/parsers/summary.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/config/parsers/vision.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/config/resolvers.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/config/search.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/config/toml_io.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/context.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/context_resource_registry.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/deploy/__init__.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/deploy/__main__.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/deploy/catalog.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/deploy/cli.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/deploy/commands.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/deploy/docker_cli.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/deploy/images.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/deploy/nagaagent.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/deploy/state.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/deploy/templates/.dockerignore +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/deploy/templates/Dockerfile.bot +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/deploy/templates/compose.base.yaml +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/deploy/templates/compose.firecrawl.yaml +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/deploy/templates/compose.napcat.yaml +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/deploy/templates/compose.searxng.yaml +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/deploy/templates/lxmusic2api.config.toml +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/deploy/templates/napcat.ws.json +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/deploy/templates/searxng.settings.yml +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/douyin/__init__.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/douyin/client.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/douyin/downloader.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/douyin/models.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/douyin/parser.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/end_summary_storage.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/faq.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/github/__init__.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/github/client.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/github/models.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/github/parser.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/github/sender.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/handlers/__init__.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/handlers/auto_extract.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/handlers/poke.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/handlers/repeat.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/injection_response_agent.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/jm/__init__.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/jm/searcher.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/jm/sender.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/knowledge/__init__.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/knowledge/chunker.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/knowledge/runtime.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/mcp/__init__.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/mcp/registry.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/memes/__init__.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/memes/_image_utils.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/memes/ingest.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/memes/vector_store.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/onebot/__init__.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/onebot/file_errors.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/onebot/file_store.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/onebot/file_transport.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/onebot/message.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/py.typed +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/rate_limit.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/render.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/services/__init__.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/services/bugfix_command.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/services/command.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/services/commands/__init__.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/services/commands/catalog.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/services/commands/context.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/services/commands/registry.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/services/coordinator/__init__.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/services/coordinator/batching.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/services/coordinator/message_ids.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/services/message_batcher/__init__.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/services/message_batcher/state.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/services/message_summary_fetch.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/services/model_pool.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/services/security.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/services/stats_command.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/__init__.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/agents/README.md +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/agents/__init__.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/agents/agent_tool_registry.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/agents/code_delivery_agent/config.json +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/agents/code_delivery_agent/docker_utils.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/agents/code_delivery_agent/handler.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/agents/code_delivery_agent/intro.md +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/agents/code_delivery_agent/mcp.json +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/agents/code_delivery_agent/prompt.md +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/agents/code_delivery_agent/tools/copy/config.json +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/agents/code_delivery_agent/tools/copy/handler.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/agents/code_delivery_agent/tools/delete/config.json +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/agents/code_delivery_agent/tools/delete/handler.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/agents/code_delivery_agent/tools/diff/config.json +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/agents/code_delivery_agent/tools/diff/handler.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/agents/code_delivery_agent/tools/end/config.json +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/agents/code_delivery_agent/tools/end/handler.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/agents/code_delivery_agent/tools/glob/config.json +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/agents/code_delivery_agent/tools/glob/handler.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/agents/code_delivery_agent/tools/grep/config.json +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/agents/code_delivery_agent/tools/grep/handler.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/agents/code_delivery_agent/tools/init_docker/config.json +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/agents/code_delivery_agent/tools/init_docker/handler.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/agents/code_delivery_agent/tools/read/config.json +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/agents/code_delivery_agent/tools/read/handler.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/agents/code_delivery_agent/tools/run_bash_command/config.json +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/agents/code_delivery_agent/tools/run_bash_command/handler.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/agents/code_delivery_agent/tools/todo/config.json +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/agents/code_delivery_agent/tools/todo/handler.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/agents/code_delivery_agent/tools/tree/config.json +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/agents/code_delivery_agent/tools/tree/handler.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/agents/code_delivery_agent/tools/write/config.json +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/agents/code_delivery_agent/tools/write/handler.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/agents/entertainment_agent/README.md +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/agents/entertainment_agent/config.json +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/agents/entertainment_agent/handler.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/agents/entertainment_agent/intro.md +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/agents/entertainment_agent/prompt.md +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/agents/entertainment_agent/tools/__init__.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/agents/entertainment_agent/tools/ai_draw_one/config.json +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/agents/entertainment_agent/tools/ai_draw_one/handler.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/agents/entertainment_agent/tools/horoscope/config.json +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/agents/entertainment_agent/tools/horoscope/handler.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/agents/entertainment_agent/tools/minecraft_skin/config.json +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/agents/entertainment_agent/tools/minecraft_skin/handler.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/agents/entertainment_agent/tools/renjian/config.json +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/agents/entertainment_agent/tools/renjian/handler.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/agents/entertainment_agent/tools/wenchang_dijun/config.json +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/agents/entertainment_agent/tools/wenchang_dijun/handler.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/agents/file_analysis_agent/__init__.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/agents/file_analysis_agent/config.json +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/agents/file_analysis_agent/handler.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/agents/file_analysis_agent/intro.md +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/agents/file_analysis_agent/tools/__init__.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/agents/file_analysis_agent/tools/analyze_code/config.json +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/agents/file_analysis_agent/tools/analyze_code/handler.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/agents/file_analysis_agent/tools/analyze_multimodal/config.json +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/agents/file_analysis_agent/tools/analyze_multimodal/handler.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/agents/file_analysis_agent/tools/describe_pdf_page/config.json +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/agents/file_analysis_agent/tools/describe_pdf_page/handler.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/agents/file_analysis_agent/tools/detect_file_type/config.json +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/agents/file_analysis_agent/tools/detect_file_type/handler.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/agents/file_analysis_agent/tools/download_file/config.json +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/agents/file_analysis_agent/tools/download_file/handler.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/agents/file_analysis_agent/tools/extract_docx/config.json +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/agents/file_analysis_agent/tools/extract_docx/handler.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/agents/file_analysis_agent/tools/extract_pdf/config.json +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/agents/file_analysis_agent/tools/extract_pdf/handler.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/agents/file_analysis_agent/tools/extract_pptx/config.json +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/agents/file_analysis_agent/tools/extract_pptx/handler.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/agents/file_analysis_agent/tools/extract_xlsx/config.json +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/agents/file_analysis_agent/tools/extract_xlsx/handler.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/agents/file_analysis_agent/tools/read_text_file/config.json +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/agents/file_analysis_agent/tools/read_text_file/handler.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/agents/info_agent/README.md +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/agents/info_agent/config.json +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/agents/info_agent/handler.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/agents/info_agent/intro.md +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/agents/info_agent/prompt.md +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/agents/info_agent/tools/__init__.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/agents/info_agent/tools/arxiv_search/config.json +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/agents/info_agent/tools/arxiv_search/handler.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/agents/info_agent/tools/baiduhot/config.json +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/agents/info_agent/tools/baiduhot/handler.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/agents/info_agent/tools/base64/config.json +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/agents/info_agent/tools/base64/handler.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/agents/info_agent/tools/bilibili_search/config.json +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/agents/info_agent/tools/bilibili_search/handler.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/agents/info_agent/tools/bilibili_user_info/config.json +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/agents/info_agent/tools/bilibili_user_info/handler.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/agents/info_agent/tools/douyinhot/config.json +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/agents/info_agent/tools/douyinhot/handler.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/agents/info_agent/tools/gold_price/config.json +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/agents/info_agent/tools/gold_price/handler.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/agents/info_agent/tools/hash/config.json +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/agents/info_agent/tools/hash/handler.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/agents/info_agent/tools/history/config.json +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/agents/info_agent/tools/history/handler.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/agents/info_agent/tools/jm_search/config.json +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/agents/info_agent/tools/jm_search/handler.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/agents/info_agent/tools/net_check/config.json +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/agents/info_agent/tools/net_check/handler.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/agents/info_agent/tools/qq_level_query/config.json +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/agents/info_agent/tools/qq_level_query/handler.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/agents/info_agent/tools/speed/config.json +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/agents/info_agent/tools/speed/handler.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/agents/info_agent/tools/tcping/config.json +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/agents/info_agent/tools/tcping/handler.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/agents/info_agent/tools/weather_query/config.json +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/agents/info_agent/tools/weather_query/handler.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/agents/info_agent/tools/weibohot/config.json +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/agents/info_agent/tools/weibohot/handler.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/agents/info_agent/tools/whois/config.json +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/agents/info_agent/tools/whois/handler.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/agents/intro_generator.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/agents/intro_utils.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/agents/naga_code_analysis_agent/README.md +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/agents/naga_code_analysis_agent/config.json +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/agents/naga_code_analysis_agent/handler.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/agents/naga_code_analysis_agent/intro.md +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/agents/naga_code_analysis_agent/mcp.json +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/agents/naga_code_analysis_agent/prompt.md +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/agents/naga_code_analysis_agent/tools/__init__.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/agents/naga_code_analysis_agent/tools/glob/config.json +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/agents/naga_code_analysis_agent/tools/glob/handler.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/agents/naga_code_analysis_agent/tools/list_directory/config.json +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/agents/naga_code_analysis_agent/tools/list_directory/handler.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/agents/naga_code_analysis_agent/tools/read_file/config.json +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/agents/naga_code_analysis_agent/tools/read_file/handler.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/agents/naga_code_analysis_agent/tools/read_naga_intro/config.json +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/agents/naga_code_analysis_agent/tools/read_naga_intro/handler.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/agents/naga_code_analysis_agent/tools/search_file_content/config.json +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/agents/naga_code_analysis_agent/tools/search_file_content/handler.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/agents/runner/__init__.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/agents/runner/context.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/agents/runner/loop.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/agents/runner/tools.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/agents/runner/webchat_utils.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/agents/summary_agent/__init__.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/agents/summary_agent/config.json +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/agents/summary_agent/handler.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/agents/summary_agent/intro.md +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/agents/summary_agent/prompt.md +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/agents/summary_agent/tools/__init__.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/agents/summary_agent/tools/fetch_messages/config.json +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/agents/summary_agent/tools/fetch_messages/handler.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/agents/undefined_self_code_agent/README.md +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/agents/undefined_self_code_agent/__init__.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/agents/undefined_self_code_agent/config.json +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/agents/undefined_self_code_agent/handler.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/agents/undefined_self_code_agent/intro.md +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/agents/undefined_self_code_agent/prompt.md +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/agents/undefined_self_code_agent/tools/__init__.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/agents/undefined_self_code_agent/tools/_shared.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/agents/undefined_self_code_agent/tools/glob/config.json +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/agents/undefined_self_code_agent/tools/glob/handler.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/agents/undefined_self_code_agent/tools/list_directory/config.json +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/agents/undefined_self_code_agent/tools/list_directory/handler.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/agents/undefined_self_code_agent/tools/read_file/config.json +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/agents/undefined_self_code_agent/tools/read_file/handler.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/agents/undefined_self_code_agent/tools/search_file_content/config.json +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/agents/undefined_self_code_agent/tools/search_file_content/handler.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/agents/web_agent/README.md +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/agents/web_agent/callable.json +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/agents/web_agent/config.json +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/agents/web_agent/handler.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/agents/web_agent/intro.md +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/agents/web_agent/mcp.json +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/agents/web_agent/prompt.md +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/agents/web_agent/tools/__init__.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/agents/web_agent/tools/crawl_webpage/config.json +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/agents/web_agent/tools/crawl_webpage/handler.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/agents/web_agent/tools/firecrawl_search/config.json +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/agents/web_agent/tools/firecrawl_search/handler.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/agents/web_agent/tools/grok_search/config.json +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/agents/web_agent/tools/grok_search/handler.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/agents/web_agent/tools/web_search/config.json +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/agents/web_agent/tools/web_search/handler.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/anthropic_skills/__init__.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/anthropic_skills/loader.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/commands/README.md +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/commands/admin/README.md +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/commands/admin/config.json +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/commands/admin/handler.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/commands/bugfix/README.md +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/commands/bugfix/config.json +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/commands/bugfix/handler.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/commands/changelog/README.md +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/commands/changelog/config.json +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/commands/changelog/handler.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/commands/copyright/README.md +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/commands/copyright/config.json +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/commands/copyright/handler.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/commands/faq/README.md +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/commands/faq/config.json +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/commands/faq/handler.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/commands/feedback/README.md +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/commands/feedback/config.json +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/commands/feedback/handler.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/commands/help/README.md +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/commands/help/config.json +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/commands/help/handler.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/commands/naga/README.md +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/commands/naga/config.json +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/commands/naga/handler.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/commands/naga/policy.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/commands/profile/README.md +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/commands/profile/config.json +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/commands/profile/handler.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/commands/stats/README.md +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/commands/stats/config.json +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/commands/stats/handler.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/commands/summary/README.md +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/commands/summary/config.json +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/commands/summary/handler.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/commands/version/README.md +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/commands/version/config.json +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/commands/version/handler.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/http_client.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/http_config.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/pipelines/__init__.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/pipelines/arxiv/config.json +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/pipelines/arxiv/handler.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/pipelines/bilibili/config.json +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/pipelines/bilibili/handler.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/pipelines/bilibili_opus/config.json +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/pipelines/bilibili_opus/handler.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/pipelines/context.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/pipelines/douyin/config.json +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/pipelines/douyin/handler.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/pipelines/github/config.json +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/pipelines/github/handler.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/pipelines/jm/config.json +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/pipelines/jm/handler.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/pipelines/models.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/pipelines/registry.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/tools/README.md +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/tools/__init__.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/tools/arxiv_paper/callable.json +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/tools/arxiv_paper/config.json +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/tools/arxiv_paper/handler.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/tools/bilibili_opus/callable.json +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/tools/bilibili_opus/config.json +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/tools/bilibili_opus/handler.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/tools/bilibili_video/callable.json +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/tools/bilibili_video/config.json +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/tools/bilibili_video/handler.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/tools/calculator/README.md +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/tools/calculator/callable.json +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/tools/calculator/config.json +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/tools/calculator/handler.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/tools/changelog_query/README.md +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/tools/changelog_query/config.json +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/tools/changelog_query/handler.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/tools/douyin_video/callable.json +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/tools/douyin_video/config.json +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/tools/douyin_video/handler.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/tools/end/README.md +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/tools/end/config.json +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/tools/end/handler.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/tools/fetch_image_uid/README.md +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/tools/fetch_image_uid/config.json +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/tools/fetch_image_uid/handler.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/tools/get_current_time/README.md +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/tools/get_current_time/callable.json +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/tools/get_current_time/config.json +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/tools/get_current_time/handler.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/tools/get_picture/README.md +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/tools/get_picture/config.json +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/tools/get_picture/handler.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/tools/get_user_info/README.md +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/tools/get_user_info/config.json +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/tools/get_user_info/handler.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/tools/jm_book/README.md +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/tools/jm_book/callable.json +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/tools/jm_book/config.json +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/tools/jm_book/handler.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/tools/knowledge_list/README.md +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/tools/knowledge_list/config.json +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/tools/knowledge_list/handler.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/tools/knowledge_semantic_search/README.md +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/tools/knowledge_semantic_search/config.json +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/tools/knowledge_semantic_search/handler.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/tools/knowledge_text_search/README.md +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/tools/knowledge_text_search/config.json +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/tools/knowledge_text_search/handler.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/tools/python_interpreter/config.json +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/tools/qq_like/README.md +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/tools/qq_like/config.json +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/tools/qq_like/handler.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/tools/task_progress/config.json +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/README.md +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/__init__.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/attachments/README.md +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/attachments/get_uid_by_url/config.json +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/attachments/get_uid_by_url/handler.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/attachments/get_url_by_uid/config.json +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/attachments/get_url_by_uid/handler.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/automation/README.md +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/automation/_runtime.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/automation/create/config.json +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/automation/create/handler.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/automation/delete/config.json +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/automation/delete/handler.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/automation/get/config.json +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/automation/get/handler.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/automation/list/config.json +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/automation/list/handler.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/automation/set_enabled/config.json +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/automation/set_enabled/handler.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/automation/update/config.json +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/automation/update/handler.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/cognitive/get_profile/config.json +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/cognitive/search_events/config.json +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/cognitive/search_events/handler.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/cognitive/search_profiles/config.json +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/cognitive/search_profiles/handler.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/commands/README.md +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/commands/get/config.json +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/commands/get/handler.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/commands/search/config.json +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/commands/search/handler.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/contacts/README.md +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/contacts/query_friends/config.json +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/contacts/query_friends/handler.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/contacts/query_groups/config.json +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/contacts/query_groups/handler.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/group/README.md +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/group/find_member/config.json +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/group/find_member/handler.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/group/get_avatar/config.json +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/group/get_avatar/handler.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/group/get_files/config.json +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/group/get_files/handler.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/group/get_honor_info/config.json +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/group/get_honor_info/handler.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/group/get_member_info/config.json +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/group/get_member_info/handler.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/group/get_member_list/config.json +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/group/get_member_list/handler.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/group/get_member_title/config.json +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/group/get_member_title/handler.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/group_analysis/README.md +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/group_analysis/activity_trend/config.json +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/group_analysis/activity_trend/handler.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/group_analysis/filter_members/config.json +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/group_analysis/filter_members/handler.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/group_analysis/inactive_risk/config.json +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/group_analysis/inactive_risk/handler.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/group_analysis/join_statistics/config.json +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/group_analysis/join_statistics/handler.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/group_analysis/level_distribution/config.json +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/group_analysis/level_distribution/handler.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/group_analysis/member_activity/config.json +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/group_analysis/member_activity/handler.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/group_analysis/member_messages/config.json +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/group_analysis/member_messages/handler.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/group_analysis/member_structure/config.json +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/group_analysis/member_structure/handler.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/group_analysis/message_mix/config.json +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/group_analysis/message_mix/handler.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/group_analysis/new_member_activity/config.json +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/group_analysis/new_member_activity/handler.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/group_analysis/rank_members/config.json +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/group_analysis/rank_members/handler.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/mcp/README.md +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/mcp/__init__.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/memes/README.md +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/memes/search_memes/config.json +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/memes/search_memes/handler.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/memes/send_meme_by_uid/config.json +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/memes/send_meme_by_uid/handler.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/memory/add/config.json +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/memory/add/handler.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/memory/delete/config.json +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/memory/delete/handler.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/memory/list/config.json +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/memory/list/handler.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/memory/update/config.json +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/memory/update/handler.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/messages/context_utils.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/messages/get_forward_msg/config.json +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/messages/get_forward_msg/handler.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/messages/get_messages_by_time/config.json +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/messages/get_messages_by_time/handler.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/messages/get_recent_messages/config.json +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/messages/get_recent_messages/handler.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/messages/list_emojis/config.json +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/messages/list_emojis/handler.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/messages/lookup_emoji_id/config.json +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/messages/lookup_emoji_id/handler.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/messages/react_message_emoji/config.json +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/messages/react_message_emoji/handler.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/messages/send_group_sign/config.json +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/messages/send_group_sign/handler.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/messages/send_message/config.json +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/messages/send_message/handler.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/messages/send_poke/config.json +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/messages/send_poke/handler.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/messages/send_private_message/config.json +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/messages/send_private_message/handler.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/messages/send_text_file/callable.json +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/messages/send_text_file/config.json +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/messages/send_text_file/handler.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/messages/send_url_file/callable.json +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/messages/send_url_file/config.json +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/messages/send_url_file/handler.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/messages/send_voice/config.json +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/messages/send_voice/handler.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/music/README.md +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/music/_client.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/music/_constants.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/music/_tools.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/music/_track_refs.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/music/browse_playlists/config.json +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/music/browse_playlists/handler.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/music/browse_rankings/config.json +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/music/browse_rankings/handler.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/music/find_song_matches/config.json +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/music/find_song_matches/handler.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/music/get_audio/config.json +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/music/get_audio/handler.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/music/get_comments/config.json +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/music/get_comments/handler.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/music/get_cover/config.json +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/music/get_cover/handler.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/music/get_hot_search/config.json +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/music/get_hot_search/handler.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/music/get_lyrics/config.json +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/music/get_lyrics/handler.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/music/search_playlists/config.json +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/music/search_playlists/handler.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/music/search_songs/config.json +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/music/search_songs/handler.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/notices/README.md +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/notices/get/config.json +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/notices/get/handler.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/notices/list/config.json +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/notices/list/handler.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/notices/stats/config.json +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/notices/stats/handler.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/render/README.md +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/render/layout.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/render/render_html/config.json +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/render/render_html/handler.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/render/render_latex/config.json +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/render/render_latex/handler.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/render/render_markdown/config.json +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/render/render_markdown/handler.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/token_usage_storage.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/utils/__init__.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/utils/cache.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/utils/coerce.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/utils/cors.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/utils/easter_egg_calls.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/utils/fake_at.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/utils/file_lock.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/utils/group_metrics.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/utils/history.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/utils/logging.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/utils/member_utils.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/utils/message_reply.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/utils/message_targets.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/utils/message_turn.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/utils/message_utils.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/utils/qq_emoji.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/utils/queue_intervals.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/utils/recent_messages.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/utils/render_cache.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/utils/request_params.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/utils/resources.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/utils/scheduler.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/utils/self_update.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/utils/sender_helpers.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/utils/time_utils.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/utils/tool_calls.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/utils/xml.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/webui/__init__.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/webui/__main__.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/webui/routes/__init__.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/webui/routes/_index.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/webui/routes/_logs.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/webui/routes/_memes.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/webui/routes/_runtime.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/webui/routes/_shared.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/webui/routes/_system.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/webui/routes/_weixin.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/webui/static/css/.stylelintrc.json +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/webui/static/css/app.css +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/webui/static/css/base.css +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/webui/static/css/components.css +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/webui/static/css/highlight-github.min.css +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/webui/static/css/landing.css +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/webui/static/css/responsive.css +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/webui/static/css/style.css +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/webui/static/css/variables.css +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/webui/static/css/workflow.css +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/webui/static/favicon.svg +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/webui/static/js/auth.js +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/webui/static/js/bot.js +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/webui/static/js/i18n.js +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/webui/static/js/logs.js +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/webui/static/js/state.js +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/webui/static/js/ui.js +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/webui/static/js/vendor/highlight.min.js +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/webui/static/js/vendor/highlightjs.LICENSE +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/webui/static/js/vendor/marked.min.js +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/webui/static/js/workflow-canvas.js +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/webui/static/js/workflow-graph.js +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/webui/templates/index.html +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/webui/utils/__init__.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/webui/utils/comment.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/webui/utils/toml_render.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/weixin/__init__.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/weixin/audio.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/weixin/models.py +0 -0
- {undefined_bot-3.18.3 → undefined_bot-3.18.5}/src/Undefined/weixin/store.py +0 -0
|
@@ -886,6 +886,8 @@ description: 从 PDF 文件中提取文本和表格,填写表单。当用户
|
|
|
886
886
|
|
|
887
887
|
微信接入由主进程独立管理,不依赖 OneBot 是否在线。`WeixinService` 先校验帐号与 peer,再把已绑定来源映射为逻辑 QQ 私聊交给 `MessageHandler`;未知来源在写历史或调用 AI 之前进入隔离存储。`DeliveryAddress` 将逻辑身份与物理通道分离:`qq:<id>` 和 `wechat:<id>` 可共享同一个用户历史、认知记忆与权限,但发送器、消息合并 scope 和 transport 元数据保持通道隔离。自动化同样持久化规范 `address`,旧 `target_type + target_id` 在加载时转换为 `group:` 或 `qq:` 地址。
|
|
888
888
|
|
|
889
|
+
OneBot 消息处理任务由客户端跨连接跟踪。网络断线只结束接收循环、通知未完成的 API 请求连接失败,不等待媒体下载等处理任务即可重连;已有处理任务继续运行。主动断开、停止或取消连接任务时,会取消并等待这些处理任务收尾,连接建立或重连等待阶段收到取消也会执行同样的清理,避免后台任务遗留。
|
|
890
|
+
|
|
889
891
|
### "车站-列车" 队列模型
|
|
890
892
|
|
|
891
893
|
针对高并发消息处理,Undefined 实现了全新的 **ModelQueue** 调度机制:
|
|
@@ -1,3 +1,30 @@
|
|
|
1
|
+
## v3.18.5 会话恢复、消息投递与并发持久化修复
|
|
2
|
+
|
|
3
|
+
本版本集中修复聊天续接、消息发送和后台任务在切换会话、取消、断线、重启及写入失败时的状态错乱:保留已经完成的投递与提交,避免重复回复、旧响应覆盖新操作,以及界面显示成功但数据尚未保存的问题。
|
|
4
|
+
|
|
5
|
+
- 聊天恢复与历史一致性:WebChat 只有在任务收尾、历史落盘并释放会话占用后才确认完成,创建任务失败会撤销占用,删除会话与接收新任务按顺序处理。完整任务快照保留正文、工具调用与嵌套 Agent 时间线,Chat 客户端修复断线续接、旧版事件重放和分页恢复;离线期间已经完成的会话也会刷新,旧连接、旧会话和旧请求的迟到结果不会覆盖当前状态。
|
|
6
|
+
- WebUI 与客户端交互:修复切换会话后发送归属错误、旧轮询重复追加正文、迟到历史清空刚发送的消息,以及发送失败覆盖后续草稿的问题。保存连接配置时暂停请求,将未完成上传标记失败并忽略迟到结果,旧缓存迁移失败保留原数据;日志、工作流、表情包编辑和微信登录弹窗隔离各自请求,刷新与翻页保留未保存的编辑。恢复配置失败会保留表单并显示错误,不再误报恢复成功;登录凭据刷新串行执行,避免并发刷新相互失效。
|
|
7
|
+
- 消息投递不再被后续故障误判:微信按每次服务端确认及时记录已发送状态,支持展开嵌套转发;历史、附件登记或使用统计失败不会把已送达内容当作未发送。分片或批量发送已有部分成功、或投递结果无法确认时,微信、抖音、JM 等业务降级不再重发整条内容;仍保留对明确未投递内容的降级。令牌失效、会话暂停、配置错误及明确的连接前失败保留原异常,不再误标为可能送达;认证问题不触发拆分消息的结构降级。微信帐号变更与客户端启停串行,OneBot 重连不再等待消息处理任务阻塞;arXiv 去重按实际平台与投递地址隔离。
|
|
8
|
+
- 配置保存与热更新:整体保存、增量修改、恢复、模板同步和密码更新共用原子写入顺序,同一时刻的备份不会互相覆盖;取消请求会等已开始的写入与必要更新完成。热更新失败可以重试,监听器重启会补读停止窗口内的修改,连续调整轮询间隔不会留下多个监听任务或继续使用旧间隔。内存构建配置不再意外读取本地文件,损坏的 TOML 即使使用 `strict=False` 也会明确报错。
|
|
9
|
+
- 停止与取消:停止 Bot 先关闭新任务入口,等待已接收的回复、后台任务和持久化收尾,再关闭模型队列与消息通道。新增 `[webui].stop_timeout_seconds`(环境变量 `WEBUI_STOP_TIMEOUT_SECONDS`),**默认 `0` 表示等待自然结束,正整数才会在对应秒数后强制终止**;停止按钮、关闭 WebUI 和更新前停止共用此规则。取消模型请求会同步清理排队及重试任务,普通群聊队列裁剪保留已启动调用所依赖的子请求。新增 `[core].group_llm_queue_max_pending`(默认 `128`,支持热更新),每模型普通群聊 LLM 等待队列满时明确拒绝新请求并清理其等待状态,保留已接收任务与重试;这是排队准入限制,不限制在途调用或总内存,过载时普通自动回复可能结束而不发送消息。
|
|
10
|
+
- 连续消息与工具状态:已经回复完成的投机批次及时结束,后续消息开启新批次,避免把旧输入再次回复;批次取消只作用于对应任务,不会误伤独立的 @ 或拍一拍回复。`task_progress` 在多轮工具调用间共享,技能热重载保留在途统计;多模态分析缓存使用完整媒体来源、类型与补充指令,避免长链接或 data URL 前缀相同而串用结果。
|
|
11
|
+
- 记忆与知识库:长期记忆和会话数据在落盘成功后才发布新状态,取消会等待已开始的提交,写入失败不会让内存与磁盘各自保留不同版本。知识文件替换先完成新内容读取、嵌入和写入,再清理旧索引;读取、嵌入或新块写入失败时保留旧索引供重试。侧写昵称刷新与史官跳过合并时也会补齐检索索引,索引失败不再提前确认完成;记忆时间筛选统一比较含时区与不含时区的时间。
|
|
12
|
+
- 表情包生命周期:重分析不会覆盖期间的人工编辑、恢复已删除内容或影响同 UID 重新入库的记录;停用、删除与附件缓存失效保持一致,搜索不会返回已停用条目。使用统计失败保留发送成功结果,容量清理跳过刚置顶或修改的候选,删除失败保留可重试记录;异常退出遗留的处理任务会在后续轮询中恢复,正在执行的任务不会被重复调度。
|
|
13
|
+
- 自动化流程:持久化按顺序完成,取消不会让旧快照覆盖新状态;嵌套并行循环只合并本轮修改的变量,避免覆盖同级节点刚产生的输出。`loop.times.count=0` 正确跳过循环,旧存档的 `count:null` 兼容默认次数;新建、更新与启用任务仍严格拒绝负数、布尔值、字符串及 `null`。
|
|
14
|
+
- 文件与附件:统一解析本地 `file://` URI,保留中文、空格及原始路径中的百分号;CQ 参数转义与解码保留链接里的逗号、方括号和实体文本。HTTP 压缩响应按传输字节校验完整性、按解压后大小执行容量限制。JM、Bilibili、arXiv 下载及 Python 执行目录在取消后等待后台文件操作结束再清理;JM 配置的会话目录生效,畸形输入和单章异常不再拖垮整次处理。侧写路径与归档解压目标限制在各自目录内,缓存清理拒绝符号链接目录,TAR 解压启用安全过滤。
|
|
15
|
+
- 原生显示与连接:附件下载以独占方式创建文件,避免覆盖同名文件;图片仍显示时保留其 Blob,代码高亮失败回落纯文本,生产构建拆分体积并保留完整语言支持。Console 迁移旧连接时保留协议与 IPv6 地址,Android 生命周期监听即使延迟注册也会在退出后释放。恢复应用时保留刷新途中刚获确认的新任务,同一任务不会重复建立在途 SSE 订阅;迟到旧句柄会关闭,避免覆盖当前订阅或在取消后泄漏。
|
|
16
|
+
- 部署与维护:部署向导中断不再继续写配置,备份名称不冲突,IPv6 服务地址正确加括号;容器模式为 Python 解释器映射宿主 Docker 可见的共享目录,LxMusic 配置变化会触发容器重建。`restore_profile.py restore` 现在同时恢复侧写并同步检索正文与向量,失败后可用 `sync` 补齐,**执行前须停止机器人及其他写入进程**。重嵌入的 `--dry-run` 在临时副本上读取,不修改源向量库,但仍会调用嵌入 API;侧写恢复的 `--dry-run` 不写盘、不调用模型。版本脚本支持失败后重跑,补齐全部版本文件与锁文件,并将此前已修改的版本目标纳入提交。
|
|
17
|
+
|
|
18
|
+
---
|
|
19
|
+
|
|
20
|
+
## v3.18.4 添加宣传片链接
|
|
21
|
+
|
|
22
|
+
在 README.md 中添加了宣传片链接。
|
|
23
|
+
|
|
24
|
+
- 添加了指向宣传片的链接。
|
|
25
|
+
|
|
26
|
+
---
|
|
27
|
+
|
|
1
28
|
## v3.18.3 JM 本子改为一章一份 PDF 打包 zip
|
|
2
29
|
|
|
3
30
|
本版本把禁漫自动提取的交付物从「整本一个加密 PDF」改成「**每章一份加密 PDF**,统一密码打包成一个**无密码 zip**」:多章节本子不再需要一本几十上百 MB 的单文件才能翻开,zip 解压后按文件名就是阅读顺序。
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: Undefined-bot
|
|
3
|
-
Version: 3.18.
|
|
3
|
+
Version: 3.18.5
|
|
4
4
|
Summary: QQ bot platform with cognitive memory architecture and multi-agent Skills, via OneBot V11.
|
|
5
5
|
Project-URL: Repository, https://github.com/69gg/Undefined
|
|
6
6
|
Project-URL: Issues, https://github.com/69gg/Undefined/issues
|
|
@@ -82,6 +82,8 @@ Description-Content-Type: text/markdown
|
|
|
82
82
|
|
|
83
83
|
---
|
|
84
84
|
|
|
85
|
+
> 🎬 **[观看 Undefined 宣传片](https://www.bilibili.com/video/BV1XjYe6KEGN)**(Bilibili)
|
|
86
|
+
|
|
85
87
|
> 🚀 **开始使用 Undefined**:从[快速开始](#-快速开始)了解部署步骤、首次配置和可选客户端的下载方式。
|
|
86
88
|
|
|
87
89
|
## ⚡ 核心特性
|
|
@@ -28,6 +28,9 @@ context_recent_messages_limit = 20
|
|
|
28
28
|
# zh: 单次 LLM 请求失败时最大静默重试次数(0=不重试,默认2)。失败的请求会回到原队列的第 2 个位置。
|
|
29
29
|
# en: Max silent retries for a single failed LLM request (0=no retry, default 2). Failed requests are reinserted at position 2 of their original queue lane.
|
|
30
30
|
ai_request_max_retries = 2
|
|
31
|
+
# zh: 每模型普通群聊 LLM 等待队列的新请求准入上限(正整数,默认128,可热更新)。满时拒绝新请求;保留已接收请求和重试,不限制在途调用。
|
|
32
|
+
# en: Per-model admission limit for new ordinary-group queued LLM calls (positive integer, default 128, hot reload). Rejects new calls when full; retains accepted calls and retries, and does not cap in-flight calls.
|
|
33
|
+
group_llm_queue_max_pending = 128
|
|
31
34
|
# zh: 模型返回纯文本但未调用 send_message/end 等工具时的最大纠正重试次数(0=不重试,默认3)。
|
|
32
35
|
# en: Max correction retries when the model returns plain text without tool calls (0=no retry, default 3).
|
|
33
36
|
missing_tool_call_retries = 3
|
|
@@ -1611,8 +1614,8 @@ request_timeout = 20.0
|
|
|
1611
1614
|
# zh: 图片下载超时(秒)。<=0 回退 60,>600 截断到 600。
|
|
1612
1615
|
# en: Image download timeout (seconds). <=0 falls back to 60, >600 is clamped to 600.
|
|
1613
1616
|
image_timeout = 60.0
|
|
1614
|
-
# zh: jmcpy
|
|
1615
|
-
# en: jmcpy config directory (login session files;
|
|
1617
|
+
# zh: jmcpy 的配置目录(登录态与会话文件所在目录)。显式值优先;留空读取 JMCPY_HOME,两者均为空时使用平台默认目录。
|
|
1618
|
+
# en: jmcpy config directory (login session files). An explicit value takes precedence; empty falls back to JMCPY_HOME, then the platform default directory.
|
|
1616
1619
|
session_dir = ""
|
|
1617
1620
|
|
|
1618
1621
|
# zh: Code Delivery Agent 配置(代码交付 Agent,在 Docker 容器中编写代码并打包上传)。
|
|
@@ -1685,6 +1688,9 @@ autostart_bot = false
|
|
|
1685
1688
|
# zh: 每次打开 WebUI 时是否在后台检查 GitHub Release 更新。
|
|
1686
1689
|
# en: Check GitHub Releases for updates in the background whenever WebUI is opened.
|
|
1687
1690
|
check_updates = true
|
|
1691
|
+
# zh: 停止机器人时等待优雅收尾的秒数;0 等待自然结束,正整数超时后强制终止。
|
|
1692
|
+
# en: Graceful bot shutdown timeout in seconds; 0 waits until completion, positive values force termination after the deadline.
|
|
1693
|
+
stop_timeout_seconds = 0
|
|
1688
1694
|
|
|
1689
1695
|
# zh: 微信 ClawBot/iLink 私聊接入。凭据与游标仅写入 state_dir,不写入本配置。
|
|
1690
1696
|
# zh: 关闭时不会创建网络连接;二维码登录只能从管理界面显式发起。
|
|
@@ -24,7 +24,7 @@ if TYPE_CHECKING:
|
|
|
24
24
|
from .skills.registry import BaseRegistry as BaseRegistry
|
|
25
25
|
from .skills.tools import ToolRegistry as ToolRegistry
|
|
26
26
|
|
|
27
|
-
__version__: str = "3.18.
|
|
27
|
+
__version__: str = "3.18.5"
|
|
28
28
|
|
|
29
29
|
# symbol -> (module_path, attribute_name);首次访问时才 importlib 加载
|
|
30
30
|
_LAZY_IMPORTS: dict[str, tuple[str, str]] = {
|
|
@@ -316,6 +316,7 @@ class ClientAskLoopMixin(ClientQueueMixin):
|
|
|
316
316
|
# 注入常用资源(用于工具执行)
|
|
317
317
|
tool_context.setdefault("ai_client", self)
|
|
318
318
|
tool_context.setdefault("runtime_config", self._get_runtime_config())
|
|
319
|
+
tool_context.setdefault("_task_progress", [])
|
|
319
320
|
if not isinstance(
|
|
320
321
|
tool_context.get(MUSIC_TRACK_STORE_CONTEXT_KEY),
|
|
321
322
|
MusicTrackReferenceStore,
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
from __future__ import annotations
|
|
4
4
|
|
|
5
5
|
import asyncio
|
|
6
|
+
from dataclasses import dataclass
|
|
6
7
|
import logging
|
|
7
8
|
from typing import Any
|
|
8
9
|
from uuid import uuid4
|
|
@@ -29,6 +30,19 @@ from Undefined.ai.client.setup import ClientSetupMixin
|
|
|
29
30
|
logger = logging.getLogger(__name__)
|
|
30
31
|
|
|
31
32
|
|
|
33
|
+
@dataclass(slots=True)
|
|
34
|
+
class QueuedLLMCallState:
|
|
35
|
+
"""Share caller cancellation with queued retries and the active model task."""
|
|
36
|
+
|
|
37
|
+
cancelled: bool = False
|
|
38
|
+
task: asyncio.Task[dict[str, Any]] | None = None
|
|
39
|
+
|
|
40
|
+
def cancel(self) -> None:
|
|
41
|
+
self.cancelled = True
|
|
42
|
+
if self.task is not None and not self.task.done():
|
|
43
|
+
self.task.cancel()
|
|
44
|
+
|
|
45
|
+
|
|
32
46
|
class ClientQueueMixin(ClientSetupMixin):
|
|
33
47
|
"""统一队列 LLM 调用与会话摘要投递。"""
|
|
34
48
|
|
|
@@ -107,6 +121,7 @@ class ClientQueueMixin(ClientSetupMixin):
|
|
|
107
121
|
)
|
|
108
122
|
request_id = uuid4().hex
|
|
109
123
|
event: asyncio.Event = asyncio.Event()
|
|
124
|
+
call_state = QueuedLLMCallState()
|
|
110
125
|
# 挂起表:QueueManager 回调 set_llm_call_result 时唤醒等待方
|
|
111
126
|
self._pending_llm_calls[request_id] = (event, None)
|
|
112
127
|
model_name = getattr(model_config, "model_name", "default")
|
|
@@ -121,6 +136,7 @@ class ClientQueueMixin(ClientSetupMixin):
|
|
|
121
136
|
"max_tokens": effective_max_tokens,
|
|
122
137
|
"transport_state": transport_state,
|
|
123
138
|
"skip_prefetch_tools": skip_prefetch_tools,
|
|
139
|
+
"_llm_call_state": call_state,
|
|
124
140
|
}
|
|
125
141
|
ctx = RequestContext.current()
|
|
126
142
|
if ctx is not None:
|
|
@@ -168,6 +184,7 @@ class ClientQueueMixin(ClientSetupMixin):
|
|
|
168
184
|
)
|
|
169
185
|
raise
|
|
170
186
|
finally:
|
|
187
|
+
call_state.cancel()
|
|
171
188
|
entry = self._pending_llm_calls.pop(request_id, None)
|
|
172
189
|
_, result = entry if entry is not None else (None, None)
|
|
173
190
|
if isinstance(result, Exception):
|
|
@@ -329,7 +329,7 @@ class MultimodalAnalyzer:
|
|
|
329
329
|
) -> dict[str, str]:
|
|
330
330
|
"""分析媒体文件。
|
|
331
331
|
|
|
332
|
-
|
|
332
|
+
相同媒体类型、完整来源与补充指令复用本次进程内的分析结果。
|
|
333
333
|
|
|
334
334
|
Args:
|
|
335
335
|
media_url: 媒体文件 URL 或本地路径
|
|
@@ -350,7 +350,11 @@ class MultimodalAnalyzer:
|
|
|
350
350
|
len(prompt_extra),
|
|
351
351
|
)
|
|
352
352
|
|
|
353
|
-
cache_key =
|
|
353
|
+
cache_key = hashlib.sha256(
|
|
354
|
+
json.dumps(
|
|
355
|
+
[detected_type, media_url, prompt_extra], ensure_ascii=False
|
|
356
|
+
).encode("utf-8")
|
|
357
|
+
).hexdigest()
|
|
354
358
|
if cache_key in self._cache:
|
|
355
359
|
logger.debug("[媒体分析] 命中缓存: key=%s", cache_key[:120])
|
|
356
360
|
return self._cache[cache_key]
|
|
@@ -8,7 +8,7 @@ import json
|
|
|
8
8
|
import logging
|
|
9
9
|
from contextlib import suppress
|
|
10
10
|
from dataclasses import dataclass
|
|
11
|
-
from datetime import datetime
|
|
11
|
+
from datetime import datetime, timezone
|
|
12
12
|
from typing import Any, Awaitable, Callable
|
|
13
13
|
from urllib.parse import urlsplit
|
|
14
14
|
|
|
@@ -191,6 +191,7 @@ def _optional_query_param(request: web.Request, key: str) -> str | None:
|
|
|
191
191
|
|
|
192
192
|
|
|
193
193
|
def _parse_query_time(value: str | None) -> datetime | None:
|
|
194
|
+
"""统一为 UTC;旧记录及无时区查询沿用系统本地时间含义。"""
|
|
194
195
|
text = str(value or "").strip()
|
|
195
196
|
if not text:
|
|
196
197
|
return None
|
|
@@ -198,8 +199,8 @@ def _parse_query_time(value: str | None) -> datetime | None:
|
|
|
198
199
|
if "T" in text:
|
|
199
200
|
candidates.append(text.replace("T", " "))
|
|
200
201
|
for candidate in candidates:
|
|
201
|
-
with suppress(ValueError):
|
|
202
|
-
return datetime.fromisoformat(candidate)
|
|
202
|
+
with suppress(ValueError, OverflowError, OSError):
|
|
203
|
+
return datetime.fromisoformat(candidate).astimezone(timezone.utc)
|
|
203
204
|
return None
|
|
204
205
|
|
|
205
206
|
|
|
@@ -44,6 +44,8 @@ from .routes import (
|
|
|
44
44
|
|
|
45
45
|
logger = logging.getLogger(__name__)
|
|
46
46
|
|
|
47
|
+
RUNTIME_API_CONTEXT_APP_KEY = web.AppKey("runtime_api_context", RuntimeAPIContext)
|
|
48
|
+
|
|
47
49
|
|
|
48
50
|
class RuntimeAPIServer:
|
|
49
51
|
def __init__(
|
|
@@ -60,6 +62,8 @@ class RuntimeAPIServer:
|
|
|
60
62
|
self._runner: web.AppRunner | None = None
|
|
61
63
|
self._sites: list[web.TCPSite] = []
|
|
62
64
|
self._background_tasks: set[asyncio.Task[Any]] = set()
|
|
65
|
+
self._request_tasks: set[asyncio.Task[Any]] = set()
|
|
66
|
+
self._stopping = False
|
|
63
67
|
self._naga_state = NagaState()
|
|
64
68
|
self._chat_job_manager = chat.ChatJobManager(context)
|
|
65
69
|
transport = getattr(context.onebot, "file_transport", None)
|
|
@@ -94,10 +98,22 @@ class RuntimeAPIServer:
|
|
|
94
98
|
cfg = self._context.config_getter()
|
|
95
99
|
logger.info("[RuntimeAPI] 已启动: %s", cfg.api.display_url)
|
|
96
100
|
|
|
101
|
+
def begin_shutdown(self) -> None:
|
|
102
|
+
"""关闭普通 API 接入,但保留待发 OneBot 文件的 HTTP 服务。"""
|
|
103
|
+
self._stopping = True
|
|
104
|
+
self._chat_job_manager.begin_shutdown()
|
|
105
|
+
|
|
106
|
+
async def drain_requests(self) -> None:
|
|
107
|
+
await self._chat_job_manager.stop()
|
|
108
|
+
tasks = self._request_tasks - {asyncio.current_task()}
|
|
109
|
+
if tasks:
|
|
110
|
+
await asyncio.gather(*tasks, return_exceptions=True)
|
|
111
|
+
|
|
97
112
|
async def stop(self) -> None:
|
|
113
|
+
self.begin_shutdown()
|
|
114
|
+
await self.drain_requests()
|
|
98
115
|
if self._file_store is not None:
|
|
99
116
|
self._file_store.unavailable()
|
|
100
|
-
await self._chat_job_manager.stop()
|
|
101
117
|
|
|
102
118
|
for task in self._background_tasks:
|
|
103
119
|
task.cancel()
|
|
@@ -140,12 +156,24 @@ class RuntimeAPIServer:
|
|
|
140
156
|
response = _json_error("Unauthorized", status=401)
|
|
141
157
|
_apply_cors_headers(request, response)
|
|
142
158
|
return response
|
|
143
|
-
|
|
159
|
+
is_file_request = onebot_files.is_file_request(request)
|
|
160
|
+
if self._stopping and not is_file_request:
|
|
161
|
+
response = _json_error("Runtime is shutting down", status=503)
|
|
162
|
+
_apply_cors_headers(request, response)
|
|
163
|
+
return response
|
|
164
|
+
task = asyncio.current_task()
|
|
165
|
+
if task is not None and not is_file_request:
|
|
166
|
+
self._request_tasks.add(task)
|
|
167
|
+
try:
|
|
168
|
+
response = await handler(request)
|
|
169
|
+
finally:
|
|
170
|
+
if task is not None:
|
|
171
|
+
self._request_tasks.discard(task)
|
|
144
172
|
_apply_cors_headers(request, response)
|
|
145
173
|
return response
|
|
146
174
|
|
|
147
175
|
app = web.Application(middlewares=[_auth_middleware])
|
|
148
|
-
app[
|
|
176
|
+
app[RUNTIME_API_CONTEXT_APP_KEY] = self._context
|
|
149
177
|
app.add_routes(
|
|
150
178
|
[
|
|
151
179
|
web.get("/health", self._health_handler),
|
|
@@ -260,6 +260,14 @@ class ChatJob:
|
|
|
260
260
|
now = time.time()
|
|
261
261
|
elapsed_ms = _job_elapsed_ms(self, now)
|
|
262
262
|
stage_elapsed_ms = _stage_elapsed_ms(self, now)
|
|
263
|
+
timeline_events = (
|
|
264
|
+
_finalize_webchat_history_events(self)
|
|
265
|
+
if self.status in {"done", "error", "cancelled"}
|
|
266
|
+
else [
|
|
267
|
+
{"seq": item.seq, "event": item.event, "payload": dict(item.payload)}
|
|
268
|
+
for item in self.webchat_events
|
|
269
|
+
]
|
|
270
|
+
)
|
|
263
271
|
return {
|
|
264
272
|
"job_id": self.job_id,
|
|
265
273
|
"conversation_id": self.conversation_id,
|
|
@@ -280,7 +288,9 @@ class ChatJob:
|
|
|
280
288
|
"messages": list(self.outputs),
|
|
281
289
|
"current_agent_stages": self.current_agent_stage_snapshots(now),
|
|
282
290
|
"current_tool_calls": self.current_tool_call_snapshots(now),
|
|
283
|
-
"
|
|
291
|
+
"current_timeline": _build_webchat_timeline(timeline_events),
|
|
292
|
+
# 对外完成信号与新任务/历史修改的放行门槛一致。
|
|
293
|
+
"history_finalized": self.history_finalized and self.done.is_set(),
|
|
284
294
|
"waiting_input": None,
|
|
285
295
|
}
|
|
286
296
|
|
|
@@ -378,14 +388,23 @@ class ChatJob:
|
|
|
378
388
|
return payloads
|
|
379
389
|
|
|
380
390
|
|
|
391
|
+
class ChatJobManagerClosingError(RuntimeError):
|
|
392
|
+
"""Runtime 正在收尾,不能接受新的聊天任务。"""
|
|
393
|
+
|
|
394
|
+
|
|
381
395
|
class ChatJobManager:
|
|
382
396
|
def __init__(self, ctx: RuntimeAPIContext) -> None:
|
|
383
397
|
self._ctx = ctx
|
|
384
398
|
self._jobs: dict[str, ChatJob] = {}
|
|
385
399
|
self._lock = asyncio.Lock()
|
|
400
|
+
self._closing = False
|
|
386
401
|
self._title_schedule_lock = asyncio.Lock()
|
|
387
402
|
self.conversation_store = WebChatConversationStore()
|
|
388
403
|
|
|
404
|
+
def begin_shutdown(self) -> None:
|
|
405
|
+
"""立即关闭任务创建入口,已有任务由 stop 收尾。"""
|
|
406
|
+
self._closing = True
|
|
407
|
+
|
|
389
408
|
async def create_job(
|
|
390
409
|
self,
|
|
391
410
|
text: str,
|
|
@@ -396,68 +415,84 @@ class ChatJobManager:
|
|
|
396
415
|
pre_record_user_history: bool = False,
|
|
397
416
|
reuse_previous_user_history: bool = False,
|
|
398
417
|
) -> ChatJob:
|
|
418
|
+
if self._closing:
|
|
419
|
+
raise ChatJobManagerClosingError("Chat service is stopping")
|
|
399
420
|
await self.conversation_store.ensure_ready(self._ctx.history_manager)
|
|
400
421
|
requested_conversation_id = str(conversation_id or "").strip()
|
|
401
422
|
resolved_conversation_id = requested_conversation_id or _DEFAULT_CONVERSATION_ID
|
|
402
|
-
conversation = await self.conversation_store.get_conversation(
|
|
403
|
-
resolved_conversation_id
|
|
404
|
-
)
|
|
405
|
-
if conversation is None:
|
|
406
|
-
if requested_conversation_id:
|
|
407
|
-
raise KeyError(resolved_conversation_id)
|
|
408
|
-
conversation = await self.conversation_store.ensure_default_conversation()
|
|
409
|
-
resolved_conversation_id = str(conversation["id"])
|
|
410
|
-
now = time.time()
|
|
411
|
-
job = ChatJob(
|
|
412
|
-
job_id=uuid4().hex,
|
|
413
|
-
text=text,
|
|
414
|
-
created_at=now,
|
|
415
|
-
updated_at=now,
|
|
416
|
-
conversation_id=resolved_conversation_id,
|
|
417
|
-
user_history_attachments=list(user_history_attachments or []),
|
|
418
|
-
user_history_references=list(user_history_references or []),
|
|
419
|
-
user_history_pre_recorded=pre_record_user_history
|
|
420
|
-
or reuse_previous_user_history,
|
|
421
|
-
)
|
|
422
423
|
async with self._lock:
|
|
424
|
+
if self._closing:
|
|
425
|
+
raise ChatJobManagerClosingError("Chat service is stopping")
|
|
426
|
+
# 会话存在性检查与 job 接受必须和删除共用同一串行边界。
|
|
427
|
+
# 历史写入也在锁内,其他会话需等待写入完成,确保 stop/删除不会漏掉在途创建。
|
|
428
|
+
conversation = await self.conversation_store.get_conversation(
|
|
429
|
+
resolved_conversation_id
|
|
430
|
+
)
|
|
431
|
+
if conversation is None:
|
|
432
|
+
if requested_conversation_id:
|
|
433
|
+
raise KeyError(resolved_conversation_id)
|
|
434
|
+
conversation = (
|
|
435
|
+
await self.conversation_store.ensure_default_conversation()
|
|
436
|
+
)
|
|
437
|
+
resolved_conversation_id = str(conversation["id"])
|
|
423
438
|
if any(
|
|
424
439
|
self._job_blocks_history_mutation(existing)
|
|
425
440
|
for existing in self._jobs.values()
|
|
426
441
|
if existing.conversation_id == resolved_conversation_id
|
|
427
442
|
):
|
|
428
443
|
raise RuntimeError("Chat job is still running")
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
444
|
+
now = time.time()
|
|
445
|
+
job = ChatJob(
|
|
446
|
+
job_id=uuid4().hex,
|
|
447
|
+
text=text,
|
|
448
|
+
created_at=now,
|
|
449
|
+
updated_at=now,
|
|
450
|
+
conversation_id=resolved_conversation_id,
|
|
451
|
+
user_history_attachments=list(user_history_attachments or []),
|
|
452
|
+
user_history_references=list(user_history_references or []),
|
|
453
|
+
user_history_pre_recorded=pre_record_user_history
|
|
454
|
+
or reuse_previous_user_history,
|
|
439
455
|
)
|
|
456
|
+
self._jobs[job.job_id] = job
|
|
457
|
+
try:
|
|
458
|
+
# stop 必须等创建阶段收敛后再快照,避免漏掉稍后才启动的 task。
|
|
459
|
+
if pre_record_user_history:
|
|
460
|
+
await self.conversation_store.append_message(
|
|
461
|
+
resolved_conversation_id,
|
|
462
|
+
role="user",
|
|
463
|
+
text_content=text,
|
|
464
|
+
display_name=_VIRTUAL_USER_NAME,
|
|
465
|
+
user_name=_VIRTUAL_USER_NAME,
|
|
466
|
+
attachments=job.user_history_attachments or None,
|
|
467
|
+
references=job.user_history_references or None,
|
|
468
|
+
)
|
|
469
|
+
await self._append_event(
|
|
470
|
+
job,
|
|
471
|
+
"meta",
|
|
472
|
+
{
|
|
473
|
+
"job_id": job.job_id,
|
|
474
|
+
"conversation_id": job.conversation_id,
|
|
475
|
+
"virtual_user_id": _VIRTUAL_USER_ID,
|
|
476
|
+
"permission": "superadmin",
|
|
477
|
+
},
|
|
478
|
+
)
|
|
479
|
+
await self._append_stage(job, "received")
|
|
480
|
+
job.task = asyncio.create_task(
|
|
481
|
+
self._run_job(job), name=f"webchat:{job.job_id}"
|
|
482
|
+
)
|
|
483
|
+
except BaseException:
|
|
484
|
+
self._jobs.pop(job.job_id, None)
|
|
485
|
+
raise
|
|
440
486
|
logger.info(
|
|
441
487
|
"[RuntimeAPI][WebChat] 创建 job: job_id=%s conversation_id=%s text_len=%s",
|
|
442
488
|
job.job_id,
|
|
443
489
|
job.conversation_id,
|
|
444
490
|
len(text),
|
|
445
491
|
)
|
|
446
|
-
await self._append_event(
|
|
447
|
-
job,
|
|
448
|
-
"meta",
|
|
449
|
-
{
|
|
450
|
-
"job_id": job.job_id,
|
|
451
|
-
"conversation_id": job.conversation_id,
|
|
452
|
-
"virtual_user_id": _VIRTUAL_USER_ID,
|
|
453
|
-
"permission": "superadmin",
|
|
454
|
-
},
|
|
455
|
-
)
|
|
456
|
-
await self._append_stage(job, "received")
|
|
457
|
-
job.task = asyncio.create_task(self._run_job(job), name=f"webchat:{job.job_id}")
|
|
458
492
|
return job
|
|
459
493
|
|
|
460
494
|
async def stop(self) -> None:
|
|
495
|
+
self.begin_shutdown()
|
|
461
496
|
async with self._lock:
|
|
462
497
|
jobs = list(self._jobs.values())
|
|
463
498
|
for job in jobs:
|
|
@@ -565,6 +600,18 @@ class ChatJobManager:
|
|
|
565
600
|
or 0
|
|
566
601
|
)
|
|
567
602
|
|
|
603
|
+
async def delete_conversation_when_idle(self, conversation_id: str) -> bool | None:
|
|
604
|
+
"""删除空闲会话;None 表示会话仍被已接受的任务占用。"""
|
|
605
|
+
await self.conversation_store.ensure_ready(self._ctx.history_manager)
|
|
606
|
+
async with self._lock:
|
|
607
|
+
if any(
|
|
608
|
+
self._job_blocks_history_mutation(job)
|
|
609
|
+
and job.conversation_id == conversation_id
|
|
610
|
+
for job in self._jobs.values()
|
|
611
|
+
):
|
|
612
|
+
return None
|
|
613
|
+
return await self.conversation_store.delete_conversation(conversation_id)
|
|
614
|
+
|
|
568
615
|
async def cancel_job(self, job_id: str) -> ChatJob | None:
|
|
569
616
|
job = await self.get_job(job_id)
|
|
570
617
|
if job is None:
|
|
@@ -926,9 +973,8 @@ class ChatJobManager:
|
|
|
926
973
|
if len(job.events) > _CHAT_JOB_EVENT_BUFFER_LIMIT:
|
|
927
974
|
job.events = job.events[-_CHAT_JOB_EVENT_BUFFER_LIMIT:]
|
|
928
975
|
if item.event in _WEBCHAT_HISTORY_EVENTS:
|
|
976
|
+
# 展示快照与历史需要完整内容;只有 SSE 重放缓冲采用固定上限。
|
|
929
977
|
job.webchat_events.append(item)
|
|
930
|
-
if len(job.webchat_events) > _CHAT_JOB_EVENT_BUFFER_LIMIT:
|
|
931
|
-
job.webchat_events = job.webchat_events[-_CHAT_JOB_EVENT_BUFFER_LIMIT:]
|
|
932
978
|
job.changed.notify_all()
|
|
933
979
|
return item
|
|
934
980
|
|
|
@@ -2810,11 +2856,10 @@ async def chat_conversation_delete_handler(
|
|
|
2810
2856
|
job_manager: ChatJobManager,
|
|
2811
2857
|
request: web.Request,
|
|
2812
2858
|
) -> Response:
|
|
2813
|
-
await job_manager.conversation_store.ensure_ready(ctx.history_manager)
|
|
2814
2859
|
conversation_id = str(request.match_info.get("conversation_id", "") or "").strip()
|
|
2815
|
-
|
|
2860
|
+
existed = await job_manager.delete_conversation_when_idle(conversation_id)
|
|
2861
|
+
if existed is None:
|
|
2816
2862
|
return _json_error("Chat job is still running", status=409)
|
|
2817
|
-
existed = await job_manager.conversation_store.delete_conversation(conversation_id)
|
|
2818
2863
|
if not existed:
|
|
2819
2864
|
return _json_error("Conversation not found", status=404)
|
|
2820
2865
|
logger.info(
|
|
@@ -2955,6 +3000,8 @@ async def chat_handler(
|
|
|
2955
3000
|
job = await job_manager.create_job(text, conversation_id)
|
|
2956
3001
|
except KeyError:
|
|
2957
3002
|
return _json_error("Conversation not found", status=404)
|
|
3003
|
+
except ChatJobManagerClosingError as exc:
|
|
3004
|
+
return _json_error(str(exc), status=503)
|
|
2958
3005
|
except RuntimeError:
|
|
2959
3006
|
return _json_error("Chat job is still running", status=409)
|
|
2960
3007
|
try:
|
|
@@ -2988,6 +3035,8 @@ async def chat_handler(
|
|
|
2988
3035
|
job = await job_manager.create_job(text, conversation_id)
|
|
2989
3036
|
except KeyError:
|
|
2990
3037
|
return _json_error("Conversation not found", status=404)
|
|
3038
|
+
except ChatJobManagerClosingError as exc:
|
|
3039
|
+
return _json_error(str(exc), status=503)
|
|
2991
3040
|
except RuntimeError:
|
|
2992
3041
|
return _json_error("Chat job is still running", status=409)
|
|
2993
3042
|
logger.info(
|
|
@@ -3105,6 +3154,8 @@ async def chat_job_create_handler(
|
|
|
3105
3154
|
return _json_error("Attachment not found", status=404)
|
|
3106
3155
|
except ValueError as exc:
|
|
3107
3156
|
return _json_error(str(exc), status=400)
|
|
3157
|
+
except ChatJobManagerClosingError as exc:
|
|
3158
|
+
return _json_error(str(exc), status=503)
|
|
3108
3159
|
except RuntimeError:
|
|
3109
3160
|
return _json_error("Chat job is still running", status=409)
|
|
3110
3161
|
logger.info(
|
|
@@ -75,7 +75,10 @@ async def cognitive_profile_handler(
|
|
|
75
75
|
if not entity_type or not entity_id:
|
|
76
76
|
return _json_error("entity_type/entity_id are required", status=400)
|
|
77
77
|
|
|
78
|
-
|
|
78
|
+
try:
|
|
79
|
+
profile = await cognitive_service.get_profile(entity_type, entity_id)
|
|
80
|
+
except ValueError as exc:
|
|
81
|
+
return _json_error(str(exc), status=400)
|
|
79
82
|
return web.json_response(
|
|
80
83
|
{
|
|
81
84
|
"entity_type": entity_type,
|
|
@@ -104,7 +104,10 @@ async def memory_create_handler(
|
|
|
104
104
|
fact = str(body.get("fact", "") or "").strip()
|
|
105
105
|
if not fact:
|
|
106
106
|
return _json_error("fact must not be empty", status=400)
|
|
107
|
-
|
|
107
|
+
try:
|
|
108
|
+
new_uuid = await memory_storage.add(fact)
|
|
109
|
+
except OSError:
|
|
110
|
+
return _json_error("Failed to persist memory", status=500)
|
|
108
111
|
if new_uuid is None:
|
|
109
112
|
return _json_error("Failed to create memory", status=500)
|
|
110
113
|
existing = [m for m in memory_storage.get_all() if m.uuid == new_uuid]
|
|
@@ -135,7 +138,10 @@ async def memory_update_handler(
|
|
|
135
138
|
fact = str(body.get("fact", "") or "").strip()
|
|
136
139
|
if not fact:
|
|
137
140
|
return _json_error("fact must not be empty", status=400)
|
|
138
|
-
|
|
141
|
+
try:
|
|
142
|
+
ok = await memory_storage.update(target_uuid, fact)
|
|
143
|
+
except OSError:
|
|
144
|
+
return _json_error("Failed to persist memory", status=500)
|
|
139
145
|
if not ok:
|
|
140
146
|
return _json_error(f"Memory {target_uuid} not found", status=404)
|
|
141
147
|
return web.json_response({"uuid": target_uuid, "fact": fact, "updated": True})
|
|
@@ -150,7 +156,10 @@ async def memory_delete_handler(
|
|
|
150
156
|
target_uuid = str(request.match_info.get("uuid", "")).strip()
|
|
151
157
|
if not target_uuid:
|
|
152
158
|
return _json_error("uuid is required", status=400)
|
|
153
|
-
|
|
159
|
+
try:
|
|
160
|
+
ok = await memory_storage.delete(target_uuid)
|
|
161
|
+
except OSError:
|
|
162
|
+
return _json_error("Failed to persist memory", status=500)
|
|
154
163
|
if not ok:
|
|
155
164
|
return _json_error(f"Memory {target_uuid} not found", status=404)
|
|
156
165
|
return web.json_response({"uuid": target_uuid, "deleted": True})
|