Undefined-bot 3.14.0__tar.gz → 3.15.0__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.14.0 → undefined_bot-3.15.0}/ARCHITECTURE.md +12 -12
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/CHANGELOG.md +19 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/PKG-INFO +1 -14
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/config.toml.example +157 -8
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/pyproject.toml +13 -22
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/__init__.py +1 -1
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/ai/client/ask_loop.py +2 -4
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/ai/client/setup.py +52 -64
- undefined_bot-3.15.0/src/Undefined/ai/crawl4ai_support.py +55 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/cognitive/historian/worker.py +45 -15
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/cognitive/profile_storage.py +82 -4
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/config/coercers.py +12 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/config/config_class.py +61 -22
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/config/domain_parsers.py +7 -3
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/config/hot_reload.py +174 -43
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/config/load_sections/knowledge.py +3 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/config/manager.py +14 -1
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/config/model_parsers.py +2 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/config/models.py +68 -2
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/config/parsers/__init__.py +6 -1
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/config/parsers/embedding.py +83 -3
- undefined_bot-3.15.0/src/Undefined/knowledge/__init__.py +14 -0
- undefined_bot-3.15.0/src/Undefined/knowledge/runtime.py +210 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/main.py +151 -19
- undefined_bot-3.14.0/src/Undefined/services/commands/bugfix.py → undefined_bot-3.15.0/src/Undefined/services/bugfix_command.py +23 -19
- undefined_bot-3.15.0/src/Undefined/services/command.py +550 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/services/coordinator/background.py +11 -2
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/services/security.py +0 -8
- undefined_bot-3.14.0/src/Undefined/services/commands/stats.py → undefined_bot-3.15.0/src/Undefined/services/stats_command.py +189 -110
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/README.md +35 -36
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/README.md +5 -3
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/code_delivery_agent/tools/end/handler.py +4 -9
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/web_agent/tools/crawl_webpage/handler.py +5 -8
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/web_agent/tools/web_search/handler.py +1 -1
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/commands/README.md +7 -2
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/commands/bugfix/handler.py +1 -1
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/commands/stats/handler.py +2 -2
- undefined_bot-3.15.0/src/Undefined/skills/commands/summary/README.md +14 -0
- undefined_bot-3.15.0/src/Undefined/skills/commands/version/README.md +11 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/registry.py +171 -27
- undefined_bot-3.15.0/src/Undefined/skills/shared.py +61 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/tools/README.md +2 -2
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/tools/__init__.py +4 -1
- undefined_bot-3.15.0/src/Undefined/skills/tools/calculator/README.md +11 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/tools/end/README.md +1 -0
- undefined_bot-3.15.0/src/Undefined/skills/tools/fetch_image_uid/README.md +12 -0
- undefined_bot-3.15.0/src/Undefined/skills/tools/get_current_time/README.md +17 -0
- undefined_bot-3.15.0/src/Undefined/skills/tools/get_picture/README.md +19 -0
- undefined_bot-3.15.0/src/Undefined/skills/tools/knowledge_list/README.md +16 -0
- undefined_bot-3.15.0/src/Undefined/skills/tools/knowledge_semantic_search/README.md +20 -0
- undefined_bot-3.15.0/src/Undefined/skills/tools/knowledge_text_search/README.md +19 -0
- undefined_bot-3.15.0/src/Undefined/skills/tools/python_interpreter/README.md +19 -0
- undefined_bot-3.15.0/src/Undefined/skills/tools/task_progress/README.md +12 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/README.md +20 -20
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/__init__.py +3 -1
- undefined_bot-3.15.0/src/Undefined/skills/toolsets/attachments/README.md +18 -0
- undefined_bot-3.15.0/src/Undefined/skills/toolsets/cognitive/README.md +36 -0
- undefined_bot-3.15.0/src/Undefined/skills/toolsets/contacts/README.md +22 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/group/get_member_title/handler.py +4 -15
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/messages/react_message_emoji/handler.py +12 -37
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/messages/send_message/handler.py +2 -15
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/messages/send_poke/handler.py +15 -44
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/messages/send_private_message/handler.py +2 -15
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/messages/send_text_file/handler.py +9 -28
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/messages/send_url_file/handler.py +9 -28
- undefined_bot-3.15.0/src/Undefined/skills/toolsets/music/README.md +104 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/render/README.md +6 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/utils/sender.py +25 -97
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/webui/static/js/config-form.js +6 -0
- undefined_bot-3.14.0/src/Undefined/ai/crawl4ai_support.py +0 -54
- undefined_bot-3.14.0/src/Undefined/knowledge/__init__.py +0 -8
- undefined_bot-3.14.0/src/Undefined/knowledge/runtime.py +0 -108
- undefined_bot-3.14.0/src/Undefined/services/command.py +0 -1582
- undefined_bot-3.14.0/src/Undefined/skills/tools/get_current_time/README.md +0 -9
- undefined_bot-3.14.0/src/Undefined/skills/tools/get_picture/README.md +0 -15
- undefined_bot-3.14.0/src/Undefined/skills/tools/python_interpreter/README.md +0 -14
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/.gitignore +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/LICENSE +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/README.md +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/config/README.md +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/config/mcp.json.example +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/img/undefined-9527.png +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/img/xlwy.jpg +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/res/IMPORTANT/each.md +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/res/README.md +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/res/prompts/agent_self_intro.txt +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/res/prompts/analyze_multimodal.txt +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/res/prompts/describe_image.txt +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/res/prompts/describe_meme_image.txt +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/res/prompts/generate_title.txt +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/res/prompts/historian_profile_merge.md +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/res/prompts/historian_rewrite.md +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/res/prompts/image_gen_moderation.txt +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/res/prompts/injection_detector.txt +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/res/prompts/injection_response_agent.txt +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/res/prompts/judge_meme_image.txt +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/res/prompts/merge_message_summaries.txt +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/res/prompts/merge_summaries.txt +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/res/prompts/message_summary.txt +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/res/prompts/naga_message_moderation.txt +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/res/prompts/stats_analysis.txt +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/res/prompts/summarize.txt +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/res/prompts/undefined.xml +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/res/prompts/undefined_nagaagent.xml +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/README.md +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/README.md +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/__main__.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/ai/__init__.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/ai/client/__init__.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/ai/client/queue.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/ai/http.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/ai/llm/__init__.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/ai/llm/requester.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/ai/llm/retry.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/ai/llm/sanitize.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/ai/llm/streaming.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/ai/llm/thinking.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/ai/llm/types.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/ai/model_selector.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/ai/multimodal/__init__.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/ai/multimodal/analyzer.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/ai/multimodal/constants.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/ai/multimodal/detection.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/ai/multimodal/parsing.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/ai/parsing.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/ai/prompts/__init__.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/ai/prompts/builder.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/ai/prompts/cognitive.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/ai/prompts/constants.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/ai/prompts/current_input.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/ai/prompts/file_includes.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/ai/prompts/system_context.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/ai/prompts/system_info.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/ai/queue_budget.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/ai/retrieval.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/ai/summaries.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/ai/tokens.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/ai/tool_search.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/ai/tooling.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/ai/transports/__init__.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/ai/transports/anthropic_transport.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/ai/transports/openai_transport.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/ai/transports/replay.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/api/__init__.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/api/_context.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/api/_helpers.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/api/_naga_state.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/api/_openapi.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/api/_probes.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/api/app.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/api/naga_store.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/api/routes/__init__.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/api/routes/automations.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/api/routes/chat.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/api/routes/cognitive.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/api/routes/commands.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/api/routes/health.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/api/routes/memes.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/api/routes/memory.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/api/routes/naga/__init__.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/api/routes/naga/auth.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/api/routes/naga/bind.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/api/routes/naga/send.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/api/routes/naga/unbind.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/api/routes/onebot_files.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/api/routes/schedules.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/api/routes/system.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/api/routes/tools.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/api/routes/weixin.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/api/webchat_store.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/arxiv/__init__.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/arxiv/client.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/arxiv/downloader.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/arxiv/models.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/arxiv/parser.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/arxiv/sender.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/attachments/__init__.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/attachments/forward_snapshot.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/attachments/models.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/attachments/registry.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/attachments/render.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/attachments/segments.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/automations/__init__.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/automations/address.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/automations/catalog.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/automations/clock.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/automations/constants.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/automations/engine.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/automations/extract.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/automations/logutil.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/automations/match.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/automations/mentions.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/automations/migrate.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/automations/runner.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/automations/service.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/automations/short.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/automations/storage.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/automations/template.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/automations/triggers.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/automations/validate.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/bilibili/__init__.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/bilibili/api_client.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/bilibili/danmaku.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/bilibili/download_core.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/bilibili/downloader.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/bilibili/errors.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/bilibili/models.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/bilibili/parser.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/bilibili/sender.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/bilibili/wbi.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/bilibili/wbi_request.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/changelog.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/cognitive/__init__.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/cognitive/chroma_scheduler.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/cognitive/historian/__init__.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/cognitive/historian/helpers.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/cognitive/historian/tools.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/cognitive/job_queue.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/cognitive/service/__init__.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/cognitive/service/helpers.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/cognitive/service/service.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/cognitive/vector_store.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/cognitive/vector_store_compat.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/config/__init__.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/config/admin.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/config/api_modes.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/config/build_config.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/config/env_registry.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/config/load_sections/__init__.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/config/load_sections/access.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/config/load_sections/core.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/config/load_sections/domains.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/config/load_sections/finalize.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/config/load_sections/history_skills.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/config/load_sections/integrations.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/config/load_sections/logging_tools.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/config/load_sections/models.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/config/load_sections/network.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/config/loader.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/config/naga_policy.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/config/onebot.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/config/parsers/agent.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/config/parsers/chat.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/config/parsers/grok.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/config/parsers/helpers.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/config/parsers/historian.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/config/parsers/image.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/config/parsers/naga.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/config/parsers/pool.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/config/parsers/security.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/config/parsers/summary.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/config/parsers/vision.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/config/resolvers.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/config/search.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/config/toml_io.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/config/webui_settings.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/context.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/context_resource_registry.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/douyin/__init__.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/douyin/client.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/douyin/downloader.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/douyin/models.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/douyin/parser.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/douyin/sender.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/end_summary_storage.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/faq.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/github/__init__.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/github/client.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/github/models.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/github/parser.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/github/sender.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/handlers/__init__.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/handlers/auto_extract.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/handlers/message_flow.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/handlers/poke.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/handlers/repeat.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/injection_response_agent.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/knowledge/chunker.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/knowledge/embedder.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/knowledge/manager.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/knowledge/reranker.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/knowledge/store.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/mcp/__init__.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/mcp/registry.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/memes/__init__.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/memes/_image_utils.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/memes/ingest.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/memes/models.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/memes/search.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/memes/service.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/memes/store.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/memes/vector_store.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/memes/worker.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/memory.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/onebot/__init__.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/onebot/client.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/onebot/file_errors.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/onebot/file_references.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/onebot/file_store.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/onebot/file_transport.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/onebot/message.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/py.typed +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/rate_limit.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/render.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/services/__init__.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/services/commands/__init__.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/services/commands/catalog.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/services/commands/context.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/services/commands/registry.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/services/coordinator/__init__.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/services/coordinator/batching.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/services/coordinator/group.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/services/coordinator/message_ids.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/services/coordinator/private.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/services/message_batcher/__init__.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/services/message_batcher/scheduler.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/services/message_batcher/state.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/services/message_summary_fetch.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/services/model_pool.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/services/queue_manager.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/__init__.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/__init__.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/agent_tool_registry.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/code_delivery_agent/config.json +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/code_delivery_agent/docker_utils.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/code_delivery_agent/handler.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/code_delivery_agent/intro.md +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/code_delivery_agent/mcp.json +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/code_delivery_agent/prompt.md +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/code_delivery_agent/tools/copy/config.json +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/code_delivery_agent/tools/copy/handler.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/code_delivery_agent/tools/delete/config.json +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/code_delivery_agent/tools/delete/handler.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/code_delivery_agent/tools/diff/config.json +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/code_delivery_agent/tools/diff/handler.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/code_delivery_agent/tools/end/config.json +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/code_delivery_agent/tools/glob/config.json +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/code_delivery_agent/tools/glob/handler.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/code_delivery_agent/tools/grep/config.json +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/code_delivery_agent/tools/grep/handler.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/code_delivery_agent/tools/init_docker/config.json +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/code_delivery_agent/tools/init_docker/handler.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/code_delivery_agent/tools/read/config.json +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/code_delivery_agent/tools/read/handler.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/code_delivery_agent/tools/run_bash_command/config.json +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/code_delivery_agent/tools/run_bash_command/handler.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/code_delivery_agent/tools/todo/config.json +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/code_delivery_agent/tools/todo/handler.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/code_delivery_agent/tools/tree/config.json +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/code_delivery_agent/tools/tree/handler.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/code_delivery_agent/tools/write/config.json +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/code_delivery_agent/tools/write/handler.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/entertainment_agent/README.md +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/entertainment_agent/config.json +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/entertainment_agent/handler.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/entertainment_agent/intro.md +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/entertainment_agent/prompt.md +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/entertainment_agent/tools/__init__.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/entertainment_agent/tools/ai_draw_one/config.json +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/entertainment_agent/tools/ai_draw_one/handler.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/entertainment_agent/tools/horoscope/config.json +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/entertainment_agent/tools/horoscope/handler.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/entertainment_agent/tools/minecraft_skin/config.json +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/entertainment_agent/tools/minecraft_skin/handler.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/entertainment_agent/tools/renjian/config.json +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/entertainment_agent/tools/renjian/handler.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/entertainment_agent/tools/wenchang_dijun/config.json +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/entertainment_agent/tools/wenchang_dijun/handler.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/file_analysis_agent/README.md +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/file_analysis_agent/__init__.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/file_analysis_agent/config.json +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/file_analysis_agent/handler.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/file_analysis_agent/intro.md +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/file_analysis_agent/prompt.md +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/file_analysis_agent/tools/__init__.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/file_analysis_agent/tools/analyze_code/config.json +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/file_analysis_agent/tools/analyze_code/handler.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/file_analysis_agent/tools/analyze_multimodal/config.json +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/file_analysis_agent/tools/analyze_multimodal/handler.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/file_analysis_agent/tools/cleanup_temp/config.json +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/file_analysis_agent/tools/cleanup_temp/handler.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/file_analysis_agent/tools/describe_pdf_page/config.json +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/file_analysis_agent/tools/describe_pdf_page/handler.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/file_analysis_agent/tools/detect_file_type/config.json +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/file_analysis_agent/tools/detect_file_type/handler.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/file_analysis_agent/tools/download_file/config.json +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/file_analysis_agent/tools/download_file/handler.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/file_analysis_agent/tools/extract_archive/config.json +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/file_analysis_agent/tools/extract_archive/handler.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/file_analysis_agent/tools/extract_docx/config.json +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/file_analysis_agent/tools/extract_docx/handler.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/file_analysis_agent/tools/extract_pdf/config.json +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/file_analysis_agent/tools/extract_pdf/handler.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/file_analysis_agent/tools/extract_pptx/config.json +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/file_analysis_agent/tools/extract_pptx/handler.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/file_analysis_agent/tools/extract_xlsx/config.json +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/file_analysis_agent/tools/extract_xlsx/handler.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/file_analysis_agent/tools/read_text_file/config.json +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/file_analysis_agent/tools/read_text_file/handler.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/info_agent/README.md +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/info_agent/config.json +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/info_agent/handler.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/info_agent/intro.md +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/info_agent/prompt.md +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/info_agent/tools/__init__.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/info_agent/tools/arxiv_search/config.json +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/info_agent/tools/arxiv_search/handler.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/info_agent/tools/baiduhot/config.json +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/info_agent/tools/baiduhot/handler.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/info_agent/tools/base64/config.json +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/info_agent/tools/base64/handler.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/info_agent/tools/bilibili_search/config.json +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/info_agent/tools/bilibili_search/handler.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/info_agent/tools/bilibili_user_info/config.json +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/info_agent/tools/bilibili_user_info/handler.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/info_agent/tools/douyinhot/config.json +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/info_agent/tools/douyinhot/handler.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/info_agent/tools/gold_price/config.json +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/info_agent/tools/gold_price/handler.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/info_agent/tools/hash/config.json +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/info_agent/tools/hash/handler.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/info_agent/tools/history/config.json +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/info_agent/tools/history/handler.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/info_agent/tools/net_check/config.json +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/info_agent/tools/net_check/handler.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/info_agent/tools/qq_level_query/config.json +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/info_agent/tools/qq_level_query/handler.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/info_agent/tools/speed/config.json +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/info_agent/tools/speed/handler.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/info_agent/tools/tcping/config.json +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/info_agent/tools/tcping/handler.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/info_agent/tools/weather_query/config.json +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/info_agent/tools/weather_query/handler.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/info_agent/tools/weibohot/config.json +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/info_agent/tools/weibohot/handler.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/info_agent/tools/whois/config.json +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/info_agent/tools/whois/handler.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/intro_generator.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/intro_utils.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/naga_code_analysis_agent/README.md +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/naga_code_analysis_agent/config.json +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/naga_code_analysis_agent/handler.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/naga_code_analysis_agent/intro.md +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/naga_code_analysis_agent/mcp.json +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/naga_code_analysis_agent/prompt.md +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/naga_code_analysis_agent/tools/__init__.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/naga_code_analysis_agent/tools/glob/config.json +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/naga_code_analysis_agent/tools/glob/handler.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/naga_code_analysis_agent/tools/list_directory/config.json +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/naga_code_analysis_agent/tools/list_directory/handler.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/naga_code_analysis_agent/tools/read_file/config.json +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/naga_code_analysis_agent/tools/read_file/handler.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/naga_code_analysis_agent/tools/read_naga_intro/config.json +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/naga_code_analysis_agent/tools/read_naga_intro/handler.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/naga_code_analysis_agent/tools/search_file_content/config.json +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/naga_code_analysis_agent/tools/search_file_content/handler.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/runner/__init__.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/runner/context.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/runner/loop.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/runner/tools.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/runner/webchat_utils.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/summary_agent/__init__.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/summary_agent/config.json +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/summary_agent/handler.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/summary_agent/intro.md +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/summary_agent/prompt.md +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/summary_agent/tools/__init__.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/summary_agent/tools/fetch_messages/config.json +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/summary_agent/tools/fetch_messages/handler.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/undefined_self_code_agent/README.md +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/undefined_self_code_agent/__init__.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/undefined_self_code_agent/config.json +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/undefined_self_code_agent/handler.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/undefined_self_code_agent/intro.md +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/undefined_self_code_agent/prompt.md +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/undefined_self_code_agent/tools/__init__.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/undefined_self_code_agent/tools/_shared.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/undefined_self_code_agent/tools/glob/config.json +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/undefined_self_code_agent/tools/glob/handler.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/undefined_self_code_agent/tools/list_directory/config.json +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/undefined_self_code_agent/tools/list_directory/handler.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/undefined_self_code_agent/tools/read_file/config.json +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/undefined_self_code_agent/tools/read_file/handler.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/undefined_self_code_agent/tools/search_file_content/config.json +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/undefined_self_code_agent/tools/search_file_content/handler.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/web_agent/README.md +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/web_agent/callable.json +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/web_agent/config.json +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/web_agent/handler.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/web_agent/intro.md +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/web_agent/mcp.json +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/web_agent/prompt.md +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/web_agent/tools/__init__.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/web_agent/tools/crawl_webpage/config.json +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/web_agent/tools/firecrawl_search/config.json +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/web_agent/tools/firecrawl_search/handler.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/web_agent/tools/grok_search/config.json +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/web_agent/tools/grok_search/handler.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/web_agent/tools/web_search/config.json +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/anthropic_skills/__init__.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/anthropic_skills/loader.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/commands/admin/README.md +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/commands/admin/config.json +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/commands/admin/handler.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/commands/bugfix/README.md +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/commands/bugfix/config.json +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/commands/changelog/README.md +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/commands/changelog/config.json +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/commands/changelog/handler.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/commands/copyright/README.md +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/commands/copyright/config.json +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/commands/copyright/handler.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/commands/faq/README.md +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/commands/faq/config.json +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/commands/faq/handler.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/commands/feedback/README.md +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/commands/feedback/config.json +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/commands/feedback/handler.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/commands/help/README.md +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/commands/help/config.json +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/commands/help/handler.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/commands/naga/README.md +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/commands/naga/config.json +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/commands/naga/handler.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/commands/naga/policy.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/commands/profile/README.md +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/commands/profile/config.json +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/commands/profile/handler.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/commands/stats/README.md +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/commands/stats/config.json +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/commands/summary/config.json +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/commands/summary/handler.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/commands/version/config.json +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/commands/version/handler.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/http_client.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/http_config.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/pipelines/__init__.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/pipelines/arxiv/config.json +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/pipelines/arxiv/handler.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/pipelines/bilibili/config.json +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/pipelines/bilibili/handler.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/pipelines/context.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/pipelines/douyin/config.json +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/pipelines/douyin/handler.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/pipelines/github/config.json +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/pipelines/github/handler.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/pipelines/models.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/pipelines/registry.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/tools/arxiv_paper/README.md +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/tools/arxiv_paper/callable.json +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/tools/arxiv_paper/config.json +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/tools/arxiv_paper/handler.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/tools/bilibili_video/README.md +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/tools/bilibili_video/callable.json +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/tools/bilibili_video/config.json +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/tools/bilibili_video/handler.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/tools/calculator/callable.json +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/tools/calculator/config.json +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/tools/calculator/handler.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/tools/changelog_query/README.md +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/tools/changelog_query/config.json +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/tools/changelog_query/handler.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/tools/douyin_video/README.md +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/tools/douyin_video/callable.json +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/tools/douyin_video/config.json +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/tools/douyin_video/handler.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/tools/end/config.json +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/tools/end/handler.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/tools/fetch_image_uid/config.json +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/tools/fetch_image_uid/handler.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/tools/get_current_time/callable.json +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/tools/get_current_time/config.json +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/tools/get_current_time/handler.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/tools/get_picture/config.json +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/tools/get_picture/handler.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/tools/get_user_info/README.md +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/tools/get_user_info/config.json +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/tools/get_user_info/handler.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/tools/knowledge_list/config.json +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/tools/knowledge_list/handler.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/tools/knowledge_semantic_search/config.json +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/tools/knowledge_semantic_search/handler.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/tools/knowledge_text_search/config.json +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/tools/knowledge_text_search/handler.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/tools/python_interpreter/config.json +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/tools/python_interpreter/handler.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/tools/qq_like/README.md +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/tools/qq_like/config.json +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/tools/qq_like/handler.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/tools/task_progress/config.json +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/tools/task_progress/handler.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/attachments/get_uid_by_url/config.json +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/attachments/get_uid_by_url/handler.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/attachments/get_url_by_uid/config.json +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/attachments/get_url_by_uid/handler.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/automation/README.md +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/automation/_runtime.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/automation/create/config.json +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/automation/create/handler.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/automation/delete/config.json +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/automation/delete/handler.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/automation/get/config.json +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/automation/get/handler.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/automation/list/config.json +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/automation/list/handler.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/automation/set_enabled/config.json +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/automation/set_enabled/handler.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/automation/update/config.json +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/automation/update/handler.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/cognitive/get_profile/config.json +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/cognitive/get_profile/handler.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/cognitive/search_events/config.json +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/cognitive/search_events/handler.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/cognitive/search_profiles/config.json +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/cognitive/search_profiles/handler.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/commands/README.md +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/commands/get/config.json +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/commands/get/handler.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/commands/search/config.json +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/commands/search/handler.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/contacts/query_friends/config.json +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/contacts/query_friends/handler.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/contacts/query_groups/config.json +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/contacts/query_groups/handler.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/group/README.md +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/group/find_member/config.json +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/group/find_member/handler.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/group/get_avatar/config.json +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/group/get_avatar/handler.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/group/get_files/config.json +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/group/get_files/handler.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/group/get_honor_info/config.json +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/group/get_honor_info/handler.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/group/get_member_info/config.json +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/group/get_member_info/handler.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/group/get_member_list/config.json +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/group/get_member_list/handler.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/group/get_member_title/config.json +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/group_analysis/README.md +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/group_analysis/activity_trend/config.json +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/group_analysis/activity_trend/handler.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/group_analysis/filter_members/config.json +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/group_analysis/filter_members/handler.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/group_analysis/inactive_risk/config.json +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/group_analysis/inactive_risk/handler.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/group_analysis/join_statistics/config.json +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/group_analysis/join_statistics/handler.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/group_analysis/level_distribution/config.json +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/group_analysis/level_distribution/handler.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/group_analysis/member_activity/config.json +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/group_analysis/member_activity/handler.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/group_analysis/member_messages/config.json +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/group_analysis/member_messages/handler.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/group_analysis/member_structure/config.json +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/group_analysis/member_structure/handler.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/group_analysis/message_mix/config.json +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/group_analysis/message_mix/handler.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/group_analysis/new_member_activity/config.json +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/group_analysis/new_member_activity/handler.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/group_analysis/rank_members/config.json +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/group_analysis/rank_members/handler.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/mcp/README.md +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/mcp/__init__.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/memes/README.md +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/memes/search_memes/config.json +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/memes/search_memes/handler.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/memes/send_meme_by_uid/config.json +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/memes/send_meme_by_uid/handler.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/memory/README.md +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/memory/add/config.json +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/memory/add/handler.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/memory/delete/config.json +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/memory/delete/handler.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/memory/list/config.json +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/memory/list/handler.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/memory/update/config.json +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/memory/update/handler.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/messages/README.md +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/messages/context_utils.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/messages/get_forward_msg/config.json +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/messages/get_forward_msg/handler.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/messages/get_messages_by_time/config.json +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/messages/get_messages_by_time/handler.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/messages/get_recent_messages/config.json +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/messages/get_recent_messages/handler.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/messages/list_emojis/config.json +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/messages/list_emojis/handler.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/messages/lookup_emoji_id/config.json +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/messages/lookup_emoji_id/handler.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/messages/react_message_emoji/config.json +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/messages/send_group_sign/config.json +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/messages/send_group_sign/handler.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/messages/send_message/config.json +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/messages/send_poke/config.json +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/messages/send_private_message/config.json +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/messages/send_text_file/callable.json +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/messages/send_text_file/config.json +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/messages/send_url_file/callable.json +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/messages/send_url_file/config.json +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/messages/send_voice/config.json +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/messages/send_voice/handler.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/music/_client.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/music/_constants.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/music/_tools.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/music/_track_refs.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/music/browse_playlists/config.json +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/music/browse_playlists/handler.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/music/browse_rankings/config.json +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/music/browse_rankings/handler.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/music/find_song_matches/config.json +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/music/find_song_matches/handler.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/music/get_audio/config.json +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/music/get_audio/handler.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/music/get_comments/config.json +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/music/get_comments/handler.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/music/get_cover/config.json +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/music/get_cover/handler.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/music/get_hot_search/config.json +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/music/get_hot_search/handler.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/music/get_lyrics/config.json +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/music/get_lyrics/handler.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/music/search_playlists/config.json +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/music/search_playlists/handler.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/music/search_songs/config.json +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/music/search_songs/handler.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/notices/README.md +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/notices/get/config.json +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/notices/get/handler.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/notices/list/config.json +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/notices/list/handler.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/notices/stats/config.json +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/notices/stats/handler.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/render/layout.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/render/render_html/config.json +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/render/render_html/handler.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/render/render_latex/config.json +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/render/render_latex/handler.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/render/render_markdown/config.json +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/render/render_markdown/handler.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/token_usage_storage.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/utils/__init__.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/utils/cache.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/utils/coerce.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/utils/common.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/utils/cors.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/utils/easter_egg_calls.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/utils/fake_at.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/utils/file_lock.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/utils/group_metrics.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/utils/history.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/utils/http_download.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/utils/io.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/utils/logging.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/utils/member_utils.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/utils/message_reply.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/utils/message_targets.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/utils/message_turn.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/utils/message_utils.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/utils/paths.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/utils/qq_emoji.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/utils/queue_intervals.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/utils/recent_messages.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/utils/render_cache.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/utils/request_params.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/utils/resources.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/utils/scheduler.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/utils/self_update.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/utils/sender_helpers.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/utils/time_utils.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/utils/tool_calls.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/utils/xml.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/webui/__init__.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/webui/__main__.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/webui/app.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/webui/core.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/webui/routes/__init__.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/webui/routes/_auth.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/webui/routes/_bot.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/webui/routes/_config.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/webui/routes/_index.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/webui/routes/_logs.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/webui/routes/_memes.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/webui/routes/_runtime.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/webui/routes/_shared.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/webui/routes/_system.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/webui/routes/_weixin.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/webui/static/css/.stylelintrc.json +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/webui/static/css/app.css +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/webui/static/css/base.css +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/webui/static/css/components.css +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/webui/static/css/highlight-github.min.css +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/webui/static/css/landing.css +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/webui/static/css/responsive.css +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/webui/static/css/style.css +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/webui/static/css/variables.css +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/webui/static/css/workflow.css +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/webui/static/favicon.svg +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/webui/static/js/api.js +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/webui/static/js/auth.js +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/webui/static/js/bot.js +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/webui/static/js/i18n.js +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/webui/static/js/log-view.js +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/webui/static/js/logs.js +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/webui/static/js/main.js +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/webui/static/js/memes.js +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/webui/static/js/runtime.js +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/webui/static/js/schedules.js +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/webui/static/js/state.js +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/webui/static/js/ui.js +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/webui/static/js/vendor/highlight.min.js +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/webui/static/js/vendor/highlightjs.LICENSE +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/webui/static/js/vendor/marked.min.js +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/webui/static/js/weixin.js +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/webui/static/js/workflow-canvas.js +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/webui/static/js/workflow-graph.js +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/webui/static/js/workflow-inspector.js +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/webui/templates/index.html +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/webui/utils/__init__.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/webui/utils/comment.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/webui/utils/config_io.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/webui/utils/config_sync.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/webui/utils/toml_render.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/weixin/__init__.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/weixin/audio.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/weixin/models.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/weixin/service.py +0 -0
- {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/weixin/store.py +0 -0
|
@@ -18,7 +18,7 @@ graph TB
|
|
|
18
18
|
ConfigLoader["ConfigManager<br/>配置管理器<br/>[config/manager.py + loader.py]"]
|
|
19
19
|
ConfigHotReload["ConfigHotReload<br/>热更新应用器<br/>[config/hot_reload.py]"]
|
|
20
20
|
ConfigModels["配置模型<br/>[config/models.py]<br/>ChatModelConfig<br/>VisionModelConfig<br/>SecurityModelConfig<br/>AgentModelConfig"]
|
|
21
|
-
OneBotClient["OneBotClient<br/>WebSocket 客户端<br/>[onebot/
|
|
21
|
+
OneBotClient["OneBotClient<br/>WebSocket 客户端<br/>[onebot/]"]
|
|
22
22
|
Context["RequestContext<br/>请求上下文<br/>[context.py]"]
|
|
23
23
|
WebUI["webui.py<br/>配置控制台<br/>[src/Undefined/webui.py]"]
|
|
24
24
|
end
|
|
@@ -47,10 +47,10 @@ graph TB
|
|
|
47
47
|
|
|
48
48
|
CommandDispatcher["CommandDispatcher<br/>命令分发器<br/>• /help /stats /admin<br/>• /bugfix /faq<br/>[services/command.py]"]
|
|
49
49
|
|
|
50
|
-
MessageBatcher["MessageBatcher<br/>同 sender 短时合并<br/>• 按 (scope, sender_id) 分桶<br/>• T1=window_seconds 结束 batch<br/>• T2=pre_send_seconds 投机预发送<br/>• 拍一拍/buffer 内 @bot 旁路<br/>• 首条 @bot 整批走 mention 队列<br/>[services/message_batcher/
|
|
50
|
+
MessageBatcher["MessageBatcher<br/>同 sender 短时合并<br/>• 按 (scope, sender_id) 分桶<br/>• T1=window_seconds 结束 batch<br/>• T2=pre_send_seconds 投机预发送<br/>• 拍一拍/buffer 内 @bot 旁路<br/>• 首条 @bot 整批走 mention 队列<br/>[services/message_batcher/]"]
|
|
51
51
|
|
|
52
52
|
subgraph QueueSystem["车站-列车 队列系统 (services/)"]
|
|
53
|
-
AICoordinator["AICoordinator<br/>AI 协调器<br/>• Prompt 构建<br/>• 队列管理<br/>• 回复执行<br/>[services/coordinator/
|
|
53
|
+
AICoordinator["AICoordinator<br/>AI 协调器<br/>• Prompt 构建<br/>• 队列管理<br/>• 回复执行<br/>[services/coordinator/]"]
|
|
54
54
|
QueueManager["QueueManager<br/>队列管理器<br/>[queue_manager.py]"]
|
|
55
55
|
|
|
56
56
|
subgraph ModelQueues["ModelQueue 队列组 (按模型隔离)"]
|
|
@@ -66,14 +66,14 @@ graph TB
|
|
|
66
66
|
|
|
67
67
|
%% ==================== AI 核心能力层 ====================
|
|
68
68
|
subgraph AILayer["AI 核心能力层 (src/Undefined/ai/)"]
|
|
69
|
-
AIClient["AIClient<br/>AI 客户端主入口<br/>[ai/client/
|
|
69
|
+
AIClient["AIClient<br/>AI 客户端主入口<br/>[ai/client/]<br/>• 技能热重载 • MCP 初始化<br/>• Agent intro 生成"]
|
|
70
70
|
|
|
71
71
|
subgraph AIComponents["AI 组件"]
|
|
72
|
-
PromptBuilder["PromptBuilder<br/>提示词构建器<br/>[ai/prompts/
|
|
72
|
+
PromptBuilder["PromptBuilder<br/>提示词构建器<br/>[ai/prompts/]"]
|
|
73
73
|
ToolSearchSession["ToolSearchSession<br/>请求级工具按需投影<br/>[ai/tool_search.py]<br/>• 名称检索 • schema 逐轮扩展"]
|
|
74
|
-
ModelRequester["ModelRequester<br/>模型请求器<br/>[ai/llm/
|
|
74
|
+
ModelRequester["ModelRequester<br/>模型请求器<br/>[ai/llm/]<br/>• OpenAI SDK • 工具清理<br/>• Thinking 提取"]
|
|
75
75
|
ToolManager["ToolManager<br/>工具管理器<br/>[tooling.py]<br/>• 工具执行 • Agent 工具合并<br/>• MCP 工具注入"]
|
|
76
|
-
MultimodalAnalyzer["MultimodalAnalyzer<br/>多模态分析器<br/>[ai/multimodal/
|
|
76
|
+
MultimodalAnalyzer["MultimodalAnalyzer<br/>多模态分析器<br/>[ai/multimodal/]<br/>• 图片/音频/视频"]
|
|
77
77
|
SummaryService["SummaryService<br/>总结服务<br/>[summaries.py]<br/>• 聊天记录总结<br/>• 标题生成"]
|
|
78
78
|
TokenCounter["TokenCounter<br/>Token 统计<br/>[tokens.py]"]
|
|
79
79
|
Parsing["Parsing<br/>响应解析<br/>[parsing.py]"]
|
|
@@ -663,7 +663,7 @@ graph TB
|
|
|
663
663
|
|
|
664
664
|
subgraph Features["特性"]
|
|
665
665
|
F1["非阻塞: 即使前一个请求未完成,<br/>新请求也会按时分发"]
|
|
666
|
-
F2["优先级:
|
|
666
|
+
F2["优先级: 六条车道,<br/>确保重要消息优先响应"]
|
|
667
667
|
F3["隔离性: 每个模型独立队列,<br/>互不干扰"]
|
|
668
668
|
F4["自动修剪: 普通队列超过10条时,<br/>只保留最新2条"]
|
|
669
669
|
F5["可配置节奏: 每个模型可独立设置<br/>队列发车间隔"]
|
|
@@ -860,10 +860,10 @@ description: 从 PDF 文件中提取文本和表格,填写表单。当用户
|
|
|
860
860
|
### 8层架构分层
|
|
861
861
|
|
|
862
862
|
1. **外部实体层**:用户、管理员、OneBot 协议端 (NapCat/Lagrange.Core)、大模型 API 服务商
|
|
863
|
-
2.
|
|
864
|
-
3. **消息处理层**:MessageHandler (`handlers/`)、统一 DeliveryAddress 路由 (`utils/message_targets.py`)、SecurityService (security.py)、CommandDispatcher (services/command.py + commands/
|
|
863
|
+
2. **核心入口层**(目录级事实来源见 [docs/development.md](docs/development.md)):main.py 启动入口、配置管理器 (config/loader.py + parsers/ + load_sections/)、热更新应用器 (config/hot_reload.py)、OneBotClient (onebot/)、WeixinService (`weixin/` + `weixin-ilink-client`)、RequestContext (context.py)、Runtime API Server (api/app.py → api/routes/ 路由子模块,含 naga/ 子包)
|
|
864
|
+
3. **消息处理层**:MessageHandler (`handlers/`)、统一 DeliveryAddress 路由 (`utils/message_targets.py`)、SecurityService (security.py)、CommandDispatcher (services/command.py + services/commands/)、自动处理管线 (skills/pipelines/)、AutomationService (`automations/service.py`,pipeline 之后、对应 AI loop 之前 await,命中可拦截)、MessageBatcher (services/message_batcher/)、AICoordinator (services/coordinator/)、QueueManager (queue_manager.py)、Bilibili/arXiv/GitHub 解析与发送模块
|
|
865
865
|
自动提取由 `PipelineRegistry` 并行检测、并行处理全部命中的管线;随后 `await` 自动化工作流,未拦截时再进入 AI 自动回复。
|
|
866
|
-
4. **AI 核心能力层**:AIClient (ai/client/
|
|
866
|
+
4. **AI 核心能力层**:AIClient (ai/client/)、PromptBuilder (ai/prompts/)、ModelRequester (ai/llm/)、ToolManager (tooling.py)、MultimodalAnalyzer (ai/multimodal/)、SummaryService (summaries.py)、TokenCounter (tokens.py)。OpenAI Chat Completions / Responses、Anthropic Messages SDK 归一化、CoT 续传与文本 Tool Call 容错见[模型 API 与兼容层](docs/model-compatibility.md)。
|
|
867
867
|
5. **存储与上下文层**:MessageHistoryManager (utils/history.py, 10000条限制)、MemoryStorage (memory.py, 置顶备忘录, 500条上限)、EndSummaryStorage、CognitiveService + JobQueue + HistorianWorker + VectorStore + ProfileStorage、MemeService + MemeWorker + MemeStore + MemeVectorStore (表情包库)、FAQStorage、AutomationStorage (`data/automations.json`;旧 `scheduled_tasks.json` 启动时一次性转为新格式,不删旧文件、不双写)、TokenUsageStorage (自动归档)
|
|
868
868
|
6. **技能系统层**:ToolRegistry (registry.py)、AgentRegistry、7个 Agents、13类 Toolsets
|
|
869
869
|
7. **异步 IO 层**:统一 IO 工具 (utils/io.py),包含 write_json、read_json、append_line、跨平台文件锁 (flock/msvcrt)
|
|
@@ -880,7 +880,7 @@ description: 从 PDF 文件中提取文本和表格,填写表单。当用户
|
|
|
880
880
|
* **多模型隔离**:每个 AI 模型拥有独立的请求队列组("站台"),互不干扰。
|
|
881
881
|
* **非阻塞发车**:实现了可配置节奏的非阻塞调度循环(默认 **1Hz**)。列车按节奏出发,带走一个请求到后台异步处理。
|
|
882
882
|
* **高可用性**:即使前一个请求仍在处理(如耗时的网络搜索),新的请求也会按时被分发,不会造成队列堵塞。
|
|
883
|
-
*
|
|
883
|
+
* **优先级管理**:支持六条车道(超级管理员私聊 > 群聊超级管理员 > 普通私聊 > 群聊@ > 群聊普通 > 后台请求),前两条为严格优先级、中间三条轮转发车,确保重要消息优先响应。
|
|
884
884
|
* **关停收敛**:`MessageHandler.close()` 会先 flush `MessageBatcher`,再调用 `QueueManager.drain()` 等待已入队请求和在途请求自然完成,最后才停止队列处理器,避免缓冲消息只入队未执行。
|
|
885
885
|
|
|
886
886
|
### 7个智能体 Agent
|
|
@@ -1,3 +1,22 @@
|
|
|
1
|
+
## v3.15.0 按功能拆分 Embedding 配置与稳定性修复
|
|
2
|
+
|
|
3
|
+
本版本将嵌入模型配置按功能拆分,知识库、认知记忆与表情包可以共用默认模型或各自覆写连接、维度与指令;同时修复侧写并发合并丢失更新、Agent 技能无法加载、热更新静默失效、SIGTERM 停机缺失等多处影响长期运行的问题。
|
|
4
|
+
|
|
5
|
+
- `[models.embedding]` 保留为全局默认模型与默认参数,新增 `[models.embedding.features.<name>]`(`knowledge` / `cognitive` / `memes`)按功能覆写:`use_default` 整体继承默认表,也可按字段覆写连接信息、`context_window_tokens`、`queue_interval_seconds`、`dimensions`、`query_instruction` / `document_instruction`,`request_params` 与默认表按键合并。WebUI 配置表单同步支持覆写段编辑,`use_proxy` 的三态语义(继承 / 启用 / 禁用)改为下拉选择。
|
|
6
|
+
- 生效配置相同的功能复用同一个 Embedder 与发车队列,重排器全局共享,避免重复加载与重复排队。
|
|
7
|
+
- 修复嵌入指令前缀被剥离的问题:query / document instruction 与文本直接拼接,`"passage: "` 这类带尾随空格的前缀现在原样保留。
|
|
8
|
+
- 修复认知侧写并发合并丢失更新:同一实体的「读取 → LLM 改写 → 写入」整段互斥,后一个合并基于前一个已落盘的结果继续,不再互相覆盖。`ProfileStorage` 新增版本读取与恢复,恢复前自动把当前内容另存为新快照(恢复操作本身可回退);新增 `scripts/restore_profile.py` 提供 list / show / restore 与 `--dry-run`,侧写回滚不再依赖手工复制文件。
|
|
9
|
+
- 史官 worker 新增并发上限 `[cognitive.historian].max_concurrency`(默认 4),以信号量与在途计数双重约束,不再无上限并发。
|
|
10
|
+
- 修复随包 Agent 的 handler 无法加载:handler 模块改按真实包路径导入,`code_delivery_agent` 等使用相对导入的 Agent 恢复可用;注册阶段即预导入全部 handler,失败项记录 `load_error` 并从 schema 中排除,主 AI 不再看到不可用的技能。
|
|
11
|
+
- 配置热更新失败不再静默:更新改为步骤表逐项执行,单步异常不中断其余步骤,失败项与「未完全生效」汇总以 error 级日志输出;异步热更新任务与配置回调的异常均会被记录。嵌入 / 重排模型配置变更加入需重启提示,避免热重载静默无效。
|
|
12
|
+
- 新增 SIGTERM 优雅停机:容器 / systemd / supervisor 停止时不再被直接终止并跳过落盘清理,SIGTERM 与 SIGINT 收敛到同一停机事件,取消连接任务并等待收敛;停机完成后恢复系统原有信号处理器。
|
|
13
|
+
- 修复消息队列重试上限口径分叉:coordinator 与 QueueManager 各用一套重试上限,热更新后两者可分叉,导致等待方在仍会重试时被误判为失败、或重试已耗尽后干等到 480 秒超时;现统一由 `resolve_effective_retry_count` 计算并与等待超时预算同口径。
|
|
14
|
+
- `scripts/reembed_cognitive.py` 支持维度变化迁移:检测到新旧向量维度不同时把新向量全部写入临时 collection,校验记录数后删除原库并原子换名,原库在迁移完成前保持不动,中途被杀可自动清理或从临时库恢复,记录不丢;`--dry-run` 不做任何写入。
|
|
15
|
+
- 依赖与配置清理:crawl4ai 与 langchain-community 改为必需依赖,删除「未安装则降级」的静默回退(crawl4ai 环境异常时启动降级为网页获取不可用并以 error 日志提示修复,不再让 Bot 启动崩溃);移除零引用的死配置 `cognitive.historian.rewrite_max_retry`、无调用方的 `SecurityService.check_rate_limit` / `record_rate_limit`(限流由 rate_limiter 承担)与死依赖 imgkit、croniter。
|
|
16
|
+
- CI 补齐治理:工作流收敛只读权限、并发取消与任务超时,前端行为测试真实执行而非静默跳过,新增 Python 3.11 / 3.13 兼容矩阵,测试开启 65% 覆盖率门禁。
|
|
17
|
+
|
|
18
|
+
---
|
|
19
|
+
|
|
1
20
|
## v3.14.0 OneBot 本地文件三模式传输
|
|
2
21
|
|
|
3
22
|
本版本为 Bot 本地文件新增统一传输层,支持 `local`、`url`、`stream` 三种发送方式并按投递快照热更新;默认保持 `local` 兼容旧部署,跨文件系统发送可显式启用 Runtime 临时链接或 NapCat Stream 分块上传。
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: Undefined-bot
|
|
3
|
-
Version: 3.
|
|
3
|
+
Version: 3.15.0
|
|
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
|
|
@@ -14,10 +14,8 @@ Requires-Dist: apscheduler>=3.10.0
|
|
|
14
14
|
Requires-Dist: chardet>=7.4.0.post1
|
|
15
15
|
Requires-Dist: chromadb>=1.5.5
|
|
16
16
|
Requires-Dist: crawl4ai>=0.8.6
|
|
17
|
-
Requires-Dist: croniter>=6.2.2
|
|
18
17
|
Requires-Dist: fastmcp>=3.1.1
|
|
19
18
|
Requires-Dist: httpx>=0.27.0
|
|
20
|
-
Requires-Dist: imgkit
|
|
21
19
|
Requires-Dist: langchain-community>=0.3.0
|
|
22
20
|
Requires-Dist: linkify-it-py>=2.0.3
|
|
23
21
|
Requires-Dist: lunar-python>=1.4.8
|
|
@@ -47,19 +45,8 @@ Requires-Dist: regex>=2026.2.28
|
|
|
47
45
|
Requires-Dist: rich>=14.2.0
|
|
48
46
|
Requires-Dist: silk-python<0.3.0,>=0.2.8
|
|
49
47
|
Requires-Dist: tiktoken>=0.7.0
|
|
50
|
-
Requires-Dist: types-aiofiles>=25.1.0.20251011
|
|
51
|
-
Requires-Dist: types-markdown>=3.10.0.20251106
|
|
52
48
|
Requires-Dist: websockets>=12.0
|
|
53
49
|
Requires-Dist: weixin-ilink-client<0.2.0,>=0.1.3
|
|
54
|
-
Provides-Extra: ci
|
|
55
|
-
Requires-Dist: mypy>=1.8.0; extra == 'ci'
|
|
56
|
-
Requires-Dist: ruff>=0.15.8; extra == 'ci'
|
|
57
|
-
Provides-Extra: dev
|
|
58
|
-
Requires-Dist: mypy>=1.8.0; extra == 'dev'
|
|
59
|
-
Requires-Dist: pytest-asyncio>=0.23.0; extra == 'dev'
|
|
60
|
-
Requires-Dist: pytest-cov>=7.1.0; extra == 'dev'
|
|
61
|
-
Requires-Dist: pytest>=8.0.0; extra == 'dev'
|
|
62
|
-
Requires-Dist: ruff>=0.15.8; extra == 'dev'
|
|
63
50
|
Description-Content-Type: text/markdown
|
|
64
51
|
|
|
65
52
|
<table border="0">
|
|
@@ -685,8 +685,8 @@ stream_enabled = false
|
|
|
685
685
|
# en: Extra request-body params (optional), e.g. temperature or vendor-specific fields.
|
|
686
686
|
[models.grok.request_params]
|
|
687
687
|
|
|
688
|
-
# zh:
|
|
689
|
-
# en:
|
|
688
|
+
# zh: 嵌入模型默认配置(知识库 / 认知记忆 / 梗库默认共用;各功能可在下方 features 中单独覆写)。
|
|
689
|
+
# en: Default embedding model config (shared by knowledge, cognitive memory and memes by default; override per feature below).
|
|
690
690
|
[models.embedding]
|
|
691
691
|
# zh: 是否让该模型请求使用 [proxy] 代理地址。默认关闭。
|
|
692
692
|
# en: Whether this model uses proxy addresses from [proxy]. Disabled by default.
|
|
@@ -710,8 +710,11 @@ queue_interval_seconds = 0.0
|
|
|
710
710
|
# zh: 向量维度(可选)。0 或留空表示使用模型默认维度。
|
|
711
711
|
# en: Embedding dimensions (optional). Use 0/empty to use model defaults.
|
|
712
712
|
dimensions = 0
|
|
713
|
-
# zh: 查询端指令前缀(可选,Qwen3/BGE
|
|
713
|
+
# zh: 查询端指令前缀(可选,Qwen3/BGE 等模型常用)。指令与文本直接拼接,
|
|
714
|
+
# 首尾空白与换行原样保留;留空表示不使用指令。
|
|
714
715
|
# en: Query instruction prefix (optional, common for Qwen3/BGE-style models).
|
|
716
|
+
# The instruction is concatenated directly with the text, whitespace and
|
|
717
|
+
# newlines preserved; leave empty to disable.
|
|
715
718
|
query_instruction = ""
|
|
716
719
|
# zh: 文档端指令前缀(可选,E5 等模型常用,例如 "passage: ")。
|
|
717
720
|
# en: Document instruction prefix (optional, common for E5-style models, e.g. "passage: ").
|
|
@@ -721,6 +724,144 @@ document_instruction = ""
|
|
|
721
724
|
# en: Extra request-body params (optional) for embedding-provider-specific fields.
|
|
722
725
|
[models.embedding.request_params]
|
|
723
726
|
|
|
727
|
+
# zh: 按功能覆写的 embedding 配置。每个功能可完全继承 [models.embedding] 默认配置,
|
|
728
|
+
# 也可单独设置并按字段覆写;生效配置完全相同的功能共用一个发车队列。
|
|
729
|
+
# 通用哨兵规则:所有字符串字段(api_url / api_key / model_name / 指令前缀)
|
|
730
|
+
# 空字符串均表示继承默认配置、无法表达显式清空;数值与 use_proxy 的哨兵见各字段注释。
|
|
731
|
+
# en: Per-feature embedding overrides. Each feature either inherits the
|
|
732
|
+
# [models.embedding] defaults or overrides individual fields; features with
|
|
733
|
+
# the same effective config share one dispatch queue.
|
|
734
|
+
# Sentinel rule: empty strings in api_url / api_key / model_name / instruction
|
|
735
|
+
# prefixes all mean "inherit the default" and cannot express an explicit clear;
|
|
736
|
+
# numeric and use_proxy sentinels are documented on each field.
|
|
737
|
+
|
|
738
|
+
# zh: 按功能覆写示例:知识库(knowledge)。仅 use_default = false 时下方字段生效,取哨兵值仍表示继承默认配置。
|
|
739
|
+
# en: Per-feature override example: knowledge base (knowledge). Fields below apply only when use_default = false; sentinel values inherit the defaults.
|
|
740
|
+
[models.embedding.features.knowledge]
|
|
741
|
+
# zh: 是否完全使用 [models.embedding] 默认配置;true 时本表其余字段全部忽略。
|
|
742
|
+
# en: Whether to fully inherit the [models.embedding] defaults; when true, all other fields here are ignored.
|
|
743
|
+
use_default = true
|
|
744
|
+
# zh: 覆写 API 地址;空字符串表示继承默认配置。
|
|
745
|
+
# en: Override API URL; an empty string inherits the default.
|
|
746
|
+
api_url = ""
|
|
747
|
+
# zh: 覆写 API Key;空字符串表示继承默认配置。
|
|
748
|
+
# en: Override API key; an empty string inherits the default.
|
|
749
|
+
api_key = ""
|
|
750
|
+
# zh: 覆写模型名称;空字符串表示继承默认配置。
|
|
751
|
+
# en: Override model name; an empty string inherits the default.
|
|
752
|
+
model_name = ""
|
|
753
|
+
# zh: 覆写代理开关;"inherit"(或 "default")表示继承默认配置,也可写 true / false。
|
|
754
|
+
# en: Override the proxy switch; "inherit" (or "default") inherits the default, true / false override it.
|
|
755
|
+
use_proxy = "inherit"
|
|
756
|
+
# zh: 覆写上下文窗口上限(token);<=0 表示继承默认配置。
|
|
757
|
+
# en: Override the context window cap (tokens); <=0 inherits the default.
|
|
758
|
+
context_window_tokens = 0
|
|
759
|
+
# zh: 覆写队列发车间隔(秒);<0 表示继承默认配置,0 表示请求到达立即发车。
|
|
760
|
+
# en: Override the queue interval (seconds); <0 inherits the default, 0 dispatches on arrival.
|
|
761
|
+
queue_interval_seconds = -1.0
|
|
762
|
+
# zh: 覆写向量维度;<0 表示继承默认配置,0 表示使用模型默认维度。
|
|
763
|
+
# en: Override embedding dimensions; <0 inherits the default, 0 uses the model default.
|
|
764
|
+
dimensions = -1
|
|
765
|
+
# zh: 覆写查询端指令前缀;空字符串或纯空白都表示继承默认配置。覆写表无法表达
|
|
766
|
+
# 「显式清空」——若默认表带前缀而本功能不需要,请把默认前缀留空、只在需要
|
|
767
|
+
# 的功能上单独设置。
|
|
768
|
+
# en: Override the query instruction prefix; an empty or whitespace-only string
|
|
769
|
+
# inherits the default. Overrides cannot express "explicitly empty" — if the
|
|
770
|
+
# default table has a prefix this feature does not need, keep the default
|
|
771
|
+
# empty and set the prefix only on the features that need it.
|
|
772
|
+
query_instruction = ""
|
|
773
|
+
# zh: 覆写文档端指令前缀;语义同 query_instruction(空/纯空白 = 继承)。
|
|
774
|
+
# en: Override the document instruction prefix; same semantics as query_instruction (empty/whitespace = inherit).
|
|
775
|
+
document_instruction = ""
|
|
776
|
+
|
|
777
|
+
# zh: 覆写额外请求体参数,按 key 合并到默认 request_params 之上(同名以本表为准)。
|
|
778
|
+
# en: Override extra request-body params, merged over the default request_params (this table wins).
|
|
779
|
+
[models.embedding.features.knowledge.request_params]
|
|
780
|
+
# zh: 按功能覆写示例:认知记忆(cognitive)。仅 use_default = false 时下方字段生效,取哨兵值仍表示继承默认配置。
|
|
781
|
+
# en: Per-feature override example: cognitive memory (cognitive). Fields below apply only when use_default = false; sentinel values inherit the defaults.
|
|
782
|
+
[models.embedding.features.cognitive]
|
|
783
|
+
# zh: 是否完全使用 [models.embedding] 默认配置;true 时本表其余字段全部忽略。
|
|
784
|
+
# en: Whether to fully inherit the [models.embedding] defaults; when true, all other fields here are ignored.
|
|
785
|
+
use_default = true
|
|
786
|
+
# zh: 覆写 API 地址;空字符串表示继承默认配置。
|
|
787
|
+
# en: Override API URL; an empty string inherits the default.
|
|
788
|
+
api_url = ""
|
|
789
|
+
# zh: 覆写 API Key;空字符串表示继承默认配置。
|
|
790
|
+
# en: Override API key; an empty string inherits the default.
|
|
791
|
+
api_key = ""
|
|
792
|
+
# zh: 覆写模型名称;空字符串表示继承默认配置。
|
|
793
|
+
# en: Override model name; an empty string inherits the default.
|
|
794
|
+
model_name = ""
|
|
795
|
+
# zh: 覆写代理开关;"inherit"(或 "default")表示继承默认配置,也可写 true / false。
|
|
796
|
+
# en: Override the proxy switch; "inherit" (or "default") inherits the default, true / false override it.
|
|
797
|
+
use_proxy = "inherit"
|
|
798
|
+
# zh: 覆写上下文窗口上限(token);<=0 表示继承默认配置。
|
|
799
|
+
# en: Override the context window cap (tokens); <=0 inherits the default.
|
|
800
|
+
context_window_tokens = 0
|
|
801
|
+
# zh: 覆写队列发车间隔(秒);<0 表示继承默认配置,0 表示请求到达立即发车。
|
|
802
|
+
# en: Override the queue interval (seconds); <0 inherits the default, 0 dispatches on arrival.
|
|
803
|
+
queue_interval_seconds = -1.0
|
|
804
|
+
# zh: 覆写向量维度;<0 表示继承默认配置,0 表示使用模型默认维度。
|
|
805
|
+
# en: Override embedding dimensions; <0 inherits the default, 0 uses the model default.
|
|
806
|
+
dimensions = -1
|
|
807
|
+
# zh: 覆写查询端指令前缀;空字符串或纯空白都表示继承默认配置。覆写表无法表达
|
|
808
|
+
# 「显式清空」——若默认表带前缀而本功能不需要,请把默认前缀留空、只在需要
|
|
809
|
+
# 的功能上单独设置。
|
|
810
|
+
# en: Override the query instruction prefix; an empty or whitespace-only string
|
|
811
|
+
# inherits the default. Overrides cannot express "explicitly empty" — if the
|
|
812
|
+
# default table has a prefix this feature does not need, keep the default
|
|
813
|
+
# empty and set the prefix only on the features that need it.
|
|
814
|
+
query_instruction = ""
|
|
815
|
+
# zh: 覆写文档端指令前缀;语义同 query_instruction(空/纯空白 = 继承)。
|
|
816
|
+
# en: Override the document instruction prefix; same semantics as query_instruction (empty/whitespace = inherit).
|
|
817
|
+
document_instruction = ""
|
|
818
|
+
|
|
819
|
+
# zh: 覆写额外请求体参数,按 key 合并到默认 request_params 之上(同名以本表为准)。
|
|
820
|
+
# en: Override extra request-body params, merged over the default request_params (this table wins).
|
|
821
|
+
[models.embedding.features.cognitive.request_params]
|
|
822
|
+
# zh: 按功能覆写示例:梗库(memes)。仅 use_default = false 时下方字段生效,取哨兵值仍表示继承默认配置。
|
|
823
|
+
# en: Per-feature override example: meme library (memes). Fields below apply only when use_default = false; sentinel values inherit the defaults.
|
|
824
|
+
[models.embedding.features.memes]
|
|
825
|
+
# zh: 是否完全使用 [models.embedding] 默认配置;true 时本表其余字段全部忽略。
|
|
826
|
+
# en: Whether to fully inherit the [models.embedding] defaults; when true, all other fields here are ignored.
|
|
827
|
+
use_default = true
|
|
828
|
+
# zh: 覆写 API 地址;空字符串表示继承默认配置。
|
|
829
|
+
# en: Override API URL; an empty string inherits the default.
|
|
830
|
+
api_url = ""
|
|
831
|
+
# zh: 覆写 API Key;空字符串表示继承默认配置。
|
|
832
|
+
# en: Override API key; an empty string inherits the default.
|
|
833
|
+
api_key = ""
|
|
834
|
+
# zh: 覆写模型名称;空字符串表示继承默认配置。
|
|
835
|
+
# en: Override model name; an empty string inherits the default.
|
|
836
|
+
model_name = ""
|
|
837
|
+
# zh: 覆写代理开关;"inherit"(或 "default")表示继承默认配置,也可写 true / false。
|
|
838
|
+
# en: Override the proxy switch; "inherit" (or "default") inherits the default, true / false override it.
|
|
839
|
+
use_proxy = "inherit"
|
|
840
|
+
# zh: 覆写上下文窗口上限(token);<=0 表示继承默认配置。
|
|
841
|
+
# en: Override the context window cap (tokens); <=0 inherits the default.
|
|
842
|
+
context_window_tokens = 0
|
|
843
|
+
# zh: 覆写队列发车间隔(秒);<0 表示继承默认配置,0 表示请求到达立即发车。
|
|
844
|
+
# en: Override the queue interval (seconds); <0 inherits the default, 0 dispatches on arrival.
|
|
845
|
+
queue_interval_seconds = -1.0
|
|
846
|
+
# zh: 覆写向量维度;<0 表示继承默认配置,0 表示使用模型默认维度。
|
|
847
|
+
# en: Override embedding dimensions; <0 inherits the default, 0 uses the model default.
|
|
848
|
+
dimensions = -1
|
|
849
|
+
# zh: 覆写查询端指令前缀;空字符串或纯空白都表示继承默认配置。覆写表无法表达
|
|
850
|
+
# 「显式清空」——若默认表带前缀而本功能不需要,请把默认前缀留空、只在需要
|
|
851
|
+
# 的功能上单独设置。
|
|
852
|
+
# en: Override the query instruction prefix; an empty or whitespace-only string
|
|
853
|
+
# inherits the default. Overrides cannot express "explicitly empty" — if the
|
|
854
|
+
# default table has a prefix this feature does not need, keep the default
|
|
855
|
+
# empty and set the prefix only on the features that need it.
|
|
856
|
+
query_instruction = ""
|
|
857
|
+
# zh: 覆写文档端指令前缀;语义同 query_instruction(空/纯空白 = 继承)。
|
|
858
|
+
# en: Override the document instruction prefix; same semantics as query_instruction (empty/whitespace = inherit).
|
|
859
|
+
document_instruction = ""
|
|
860
|
+
|
|
861
|
+
# zh: 覆写额外请求体参数,按 key 合并到默认 request_params 之上(同名以本表为准)。
|
|
862
|
+
# en: Override extra request-body params, merged over the default request_params (this table wins).
|
|
863
|
+
[models.embedding.features.memes.request_params]
|
|
864
|
+
|
|
724
865
|
# zh: 重排模型配置(知识库二阶段检索使用)。
|
|
725
866
|
# en: Rerank model config (used in second-stage knowledge retrieval).
|
|
726
867
|
[models.rerank]
|
|
@@ -1064,12 +1205,20 @@ tool_search_max_results = 5
|
|
|
1064
1205
|
# zh: 主 Prompt 固定插槽对应的本地 UTF-8 文件。路径为空时不注入。
|
|
1065
1206
|
# en: Local UTF-8 files mapped to stable main-Prompt slots. Empty paths disable injection.
|
|
1066
1207
|
[prompt.file_includes]
|
|
1067
|
-
# zh:
|
|
1068
|
-
# en:
|
|
1208
|
+
# zh: 插入 <absolute_priority level="P0"> 开头(绝对优先级区块)。
|
|
1209
|
+
# en: Inserted at the start of the <absolute_priority level="P0"> block.
|
|
1069
1210
|
p0 = ""
|
|
1211
|
+
# zh: 插入 <core_rules level="P1"> 开头(核心规则区块)。
|
|
1212
|
+
# en: Inserted at the start of the <core_rules level="P1"> block.
|
|
1070
1213
|
p1 = ""
|
|
1214
|
+
# zh: 插入 <important_rules level="P2"> 开头(重要规则区块)。
|
|
1215
|
+
# en: Inserted at the start of the <important_rules level="P2"> block.
|
|
1071
1216
|
p2 = ""
|
|
1217
|
+
# zh: 插入 <optimization_rules level="P3"> 开头(优化规则区块)。
|
|
1218
|
+
# en: Inserted at the start of the <optimization_rules level="P3"> block.
|
|
1072
1219
|
p3 = ""
|
|
1220
|
+
# zh: 插入 <summary> 开头(总结区块)。
|
|
1221
|
+
# en: Inserted at the start of the <summary> block.
|
|
1073
1222
|
summary = ""
|
|
1074
1223
|
|
|
1075
1224
|
# zh: Prompt 系统信息注入。总开关默认关闭;开启后各子项默认展示,可逐项关闭。
|
|
@@ -1636,9 +1785,6 @@ profile_top_k = 8
|
|
|
1636
1785
|
rerank_candidate_multiplier = 3
|
|
1637
1786
|
|
|
1638
1787
|
[cognitive.historian]
|
|
1639
|
-
# zh: 记忆改写最大重试次数。
|
|
1640
|
-
# en: Max retries for memory rewrite.
|
|
1641
|
-
rewrite_max_retry = 2
|
|
1642
1788
|
# zh: 提供给史官的最近消息参考条数(用于实体消歧);0=禁用。
|
|
1643
1789
|
# en: Number of recent message references for historian disambiguation; 0 disables.
|
|
1644
1790
|
recent_messages_inject_k = 12
|
|
@@ -1654,6 +1800,9 @@ poll_interval_seconds = 1.0
|
|
|
1654
1800
|
# zh: 任务超时时间(秒),超时后重新入队。
|
|
1655
1801
|
# en: Stale job timeout (seconds), re-queued after timeout.
|
|
1656
1802
|
stale_job_timeout_seconds = 300.0
|
|
1803
|
+
# zh: 史官同时在途处理的任务上限(>=1);超出后暂停取新任务,避免并发无上限。
|
|
1804
|
+
# en: Max in-flight historian jobs (>=1); new jobs wait until in-flight drops below it.
|
|
1805
|
+
max_concurrency = 4
|
|
1657
1806
|
|
|
1658
1807
|
[cognitive.profile]
|
|
1659
1808
|
# zh: 用户画像存储路径。
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "Undefined-bot"
|
|
3
|
-
version = "3.
|
|
3
|
+
version = "3.15.0"
|
|
4
4
|
description = "QQ bot platform with cognitive memory architecture and multi-agent Skills, via OneBot V11."
|
|
5
5
|
readme = "README.md"
|
|
6
6
|
authors = [
|
|
@@ -17,9 +17,7 @@ dependencies = [
|
|
|
17
17
|
"crawl4ai>=0.8.6",
|
|
18
18
|
"matplotlib",
|
|
19
19
|
"pillow",
|
|
20
|
-
"imgkit",
|
|
21
20
|
"markdown>=3.10",
|
|
22
|
-
"types-markdown>=3.10.0.20251106",
|
|
23
21
|
"aiofiles>=25.1.0",
|
|
24
22
|
"markdown-it-py[plugins]>=4.0.0",
|
|
25
23
|
"mdit-py-plugins>=0.5.0",
|
|
@@ -29,9 +27,7 @@ dependencies = [
|
|
|
29
27
|
"pymdown-extensions>=10.20",
|
|
30
28
|
"playwright>=1.57.0",
|
|
31
29
|
"aiohttp>=3.13.2",
|
|
32
|
-
"types-aiofiles>=25.1.0.20251011",
|
|
33
30
|
"APScheduler>=3.10.0",
|
|
34
|
-
"croniter>=6.2.2",
|
|
35
31
|
"pymupdf>=1.27.2,!=1.27.2.2",
|
|
36
32
|
"python-docx>=1.2.0",
|
|
37
33
|
"python-pptx>=1.0.2",
|
|
@@ -63,19 +59,6 @@ Issues = "https://github.com/69gg/Undefined/issues"
|
|
|
63
59
|
Undefined = "Undefined.main:run"
|
|
64
60
|
Undefined-webui = "Undefined.webui:run"
|
|
65
61
|
|
|
66
|
-
[project.optional-dependencies]
|
|
67
|
-
dev = [
|
|
68
|
-
"mypy>=1.8.0",
|
|
69
|
-
"ruff>=0.15.8",
|
|
70
|
-
"pytest>=8.0.0",
|
|
71
|
-
"pytest-asyncio>=0.23.0",
|
|
72
|
-
"pytest-cov>=7.1.0",
|
|
73
|
-
]
|
|
74
|
-
ci = [
|
|
75
|
-
"ruff>=0.15.8",
|
|
76
|
-
"mypy>=1.8.0",
|
|
77
|
-
]
|
|
78
|
-
|
|
79
62
|
[[tool.uv.index]]
|
|
80
63
|
url = "https://pypi.org/simple"
|
|
81
64
|
|
|
@@ -129,7 +112,17 @@ exclude = ["code"]
|
|
|
129
112
|
asyncio_mode = "auto"
|
|
130
113
|
testpaths = ["tests"]
|
|
131
114
|
|
|
115
|
+
[tool.coverage.run]
|
|
116
|
+
source = ["Undefined"]
|
|
117
|
+
branch = false
|
|
118
|
+
|
|
119
|
+
[tool.coverage.report]
|
|
120
|
+
# 覆盖率棘轮:整体不低于 65%(当前约 69%),防止明显回退
|
|
121
|
+
fail_under = 65
|
|
122
|
+
skip_covered = true
|
|
123
|
+
|
|
132
124
|
[dependency-groups]
|
|
125
|
+
# 开发与 CI 共用同一组工具(CI 通过 --group dev 安装,避免两份清单漂移)
|
|
133
126
|
dev = [
|
|
134
127
|
"mypy>=1.8.0",
|
|
135
128
|
"ruff>=0.15.8",
|
|
@@ -137,8 +130,6 @@ dev = [
|
|
|
137
130
|
"pytest-asyncio>=0.23.0",
|
|
138
131
|
"pytest-cov>=7.1.0",
|
|
139
132
|
"types-pyyaml>=6.0.12.20250915",
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
"ruff>=0.15.8",
|
|
143
|
-
"mypy>=1.8.0",
|
|
133
|
+
"types-markdown>=3.10.0.20251106",
|
|
134
|
+
"types-aiofiles>=25.1.0.20251011",
|
|
144
135
|
]
|
|
@@ -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.
|
|
27
|
+
__version__: str = "3.15.0"
|
|
28
28
|
|
|
29
29
|
# symbol -> (module_path, attribute_name);首次访问时才 importlib 加载
|
|
30
30
|
_LAZY_IMPORTS: dict[str, tuple[str, str]] = {
|
|
@@ -322,12 +322,10 @@ class ClientAskLoopMixin(ClientQueueMixin):
|
|
|
322
322
|
):
|
|
323
323
|
tool_context[MUSIC_TRACK_STORE_CONTEXT_KEY] = MusicTrackReferenceStore()
|
|
324
324
|
tool_context.setdefault("search_wrapper", self._search_wrapper)
|
|
325
|
-
tool_context.setdefault(
|
|
326
|
-
"crawl4ai_available", self._crawl4ai_capabilities.available
|
|
327
|
-
)
|
|
328
325
|
tool_context.setdefault(
|
|
329
326
|
"crawl4ai_proxy_config_available",
|
|
330
|
-
self._crawl4ai_capabilities
|
|
327
|
+
self._crawl4ai_capabilities is not None
|
|
328
|
+
and self._crawl4ai_capabilities.proxy_config_available,
|
|
331
329
|
)
|
|
332
330
|
tool_context.setdefault("end_summary_storage", self._end_summary_storage)
|
|
333
331
|
tool_context.setdefault("end_summaries", self._prompt_builder.end_summaries)
|
|
@@ -7,7 +7,7 @@ import logging
|
|
|
7
7
|
import re
|
|
8
8
|
from collections.abc import Collection
|
|
9
9
|
from pathlib import Path
|
|
10
|
-
from typing import Any, Awaitable, Callable, Optional, Protocol
|
|
10
|
+
from typing import Any, Awaitable, Callable, Optional, Protocol
|
|
11
11
|
|
|
12
12
|
import httpx
|
|
13
13
|
|
|
@@ -16,7 +16,10 @@ from Undefined.ai.llm import ModelRequester
|
|
|
16
16
|
from Undefined.ai.model_selector import ModelSelector
|
|
17
17
|
from Undefined.ai.multimodal import MultimodalAnalyzer
|
|
18
18
|
from Undefined.ai.prompts import PromptBuilder
|
|
19
|
-
from Undefined.ai.crawl4ai_support import
|
|
19
|
+
from Undefined.ai.crawl4ai_support import (
|
|
20
|
+
Crawl4AICapabilities,
|
|
21
|
+
get_crawl4ai_capabilities,
|
|
22
|
+
)
|
|
20
23
|
from Undefined.ai.summaries import SummaryService
|
|
21
24
|
from Undefined.ai.tokens import TokenCounter
|
|
22
25
|
from Undefined.ai.tool_search import TOOL_SEARCH_NAME
|
|
@@ -98,27 +101,6 @@ class SendPrivateMessageCallback(Protocol):
|
|
|
98
101
|
) -> Awaitable[None]: ...
|
|
99
102
|
|
|
100
103
|
|
|
101
|
-
# 尝试导入 langchain SearxSearchWrapper
|
|
102
|
-
if TYPE_CHECKING:
|
|
103
|
-
from langchain_community.utilities import (
|
|
104
|
-
SearxSearchWrapper as SearxSearchWrapperType,
|
|
105
|
-
)
|
|
106
|
-
else:
|
|
107
|
-
SearxSearchWrapperType = object
|
|
108
|
-
|
|
109
|
-
_SearxSearchWrapper: type[SearxSearchWrapperType] | None
|
|
110
|
-
try:
|
|
111
|
-
from langchain_community.utilities import SearxSearchWrapper as _SearxSearchWrapper
|
|
112
|
-
|
|
113
|
-
_SEARX_AVAILABLE = True
|
|
114
|
-
except Exception:
|
|
115
|
-
_SearxSearchWrapper = None
|
|
116
|
-
_SEARX_AVAILABLE = False
|
|
117
|
-
logger.warning(
|
|
118
|
-
"[初始化] langchain_community 未安装或 SearxSearchWrapper 不可用,搜索功能将禁用"
|
|
119
|
-
)
|
|
120
|
-
|
|
121
|
-
|
|
122
104
|
def _attachment_remote_download_max_bytes(runtime_config: Config) -> int:
|
|
123
105
|
value = int(runtime_config.attachment_remote_download_max_size_mb)
|
|
124
106
|
return max(0, value) * 1024 * 1024
|
|
@@ -151,6 +133,17 @@ def _resolve_summary_model_config(
|
|
|
151
133
|
return fallback
|
|
152
134
|
|
|
153
135
|
|
|
136
|
+
def _build_searx_wrapper(searxng_url: str) -> Any:
|
|
137
|
+
"""构造 SearxSearchWrapper;langchain_community 为必需依赖。
|
|
138
|
+
|
|
139
|
+
导入放在使用点而非模块顶层:依赖缺失或版本不兼容时不会让整个 AI 客户端
|
|
140
|
+
无法构造,搜索能力降级为不可用,并由调用方的 error 日志暴露环境问题。
|
|
141
|
+
"""
|
|
142
|
+
from langchain_community.utilities import SearxSearchWrapper # noqa: PLC0415
|
|
143
|
+
|
|
144
|
+
return SearxSearchWrapper(searx_host=searxng_url, k=10)
|
|
145
|
+
|
|
146
|
+
|
|
154
147
|
class ClientSetupMixin:
|
|
155
148
|
"""AI 客户端初始化、配置热更新与资源清理。"""
|
|
156
149
|
|
|
@@ -182,7 +175,18 @@ class ClientSetupMixin:
|
|
|
182
175
|
self.runtime_config = runtime_config
|
|
183
176
|
self.memory_storage = memory_storage
|
|
184
177
|
self._end_summary_storage = end_summary_storage or EndSummaryStorage()
|
|
185
|
-
self._crawl4ai_capabilities
|
|
178
|
+
self._crawl4ai_capabilities: Crawl4AICapabilities | None
|
|
179
|
+
# crawl4ai 是必需依赖,但安装损坏 / 版本不兼容不应让整个 Bot 启动失败:
|
|
180
|
+
# 这里降级为能力缺失(网页获取工具运行时会明确报错),并以 error 日志暴露环境问题
|
|
181
|
+
try:
|
|
182
|
+
self._crawl4ai_capabilities = get_crawl4ai_capabilities()
|
|
183
|
+
except Exception as exc:
|
|
184
|
+
self._crawl4ai_capabilities = None
|
|
185
|
+
logger.error(
|
|
186
|
+
"[初始化] crawl4ai 初始化失败,网页获取功能不可用,"
|
|
187
|
+
"请修复 crawl4ai 安装后重启: %s",
|
|
188
|
+
exc,
|
|
189
|
+
)
|
|
186
190
|
|
|
187
191
|
self._http_client = httpx.AsyncClient(timeout=480.0, trust_env=False)
|
|
188
192
|
self._token_usage_storage = TokenUsageStorage()
|
|
@@ -295,35 +299,30 @@ class ClientSetupMixin:
|
|
|
295
299
|
else:
|
|
296
300
|
logger.info("[初始化] 技能热重载已禁用")
|
|
297
301
|
|
|
298
|
-
# 初始化搜索 wrapper
|
|
302
|
+
# 初始化搜索 wrapper(langchain_community 为必需依赖)
|
|
299
303
|
self._search_wrapper: Optional[Any] = None
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
)
|
|
307
|
-
logger.info(
|
|
308
|
-
"[初始化] SearxSearchWrapper 初始化成功: url=%s k=10",
|
|
309
|
-
redact_string(searxng_url),
|
|
310
|
-
)
|
|
311
|
-
except Exception as exc:
|
|
312
|
-
logger.warning("[初始化] SearxSearchWrapper 初始化失败: %s", exc)
|
|
313
|
-
else:
|
|
314
|
-
logger.info("[初始化] SEARXNG_URL 未配置,搜索功能禁用")
|
|
315
|
-
|
|
316
|
-
if self._crawl4ai_capabilities.available:
|
|
317
|
-
logger.info("[初始化] crawl4ai 可用,网页获取功能已启用")
|
|
318
|
-
else:
|
|
319
|
-
detail = self._crawl4ai_capabilities.error
|
|
320
|
-
if detail:
|
|
321
|
-
logger.warning(
|
|
322
|
-
"[初始化] crawl4ai 不可用,网页获取功能将禁用: %s",
|
|
323
|
-
detail,
|
|
304
|
+
searxng_url = runtime_config.searxng_url
|
|
305
|
+
if searxng_url:
|
|
306
|
+
try:
|
|
307
|
+
self._search_wrapper = _build_searx_wrapper(searxng_url)
|
|
308
|
+
logger.info(
|
|
309
|
+
"[初始化] SearxSearchWrapper 初始化成功: url=%s k=10",
|
|
310
|
+
redact_string(searxng_url),
|
|
324
311
|
)
|
|
325
|
-
|
|
326
|
-
logger.
|
|
312
|
+
except Exception as exc:
|
|
313
|
+
logger.error(
|
|
314
|
+
"[初始化] SearxSearchWrapper 初始化失败,搜索功能不可用,"
|
|
315
|
+
"请修复 langchain-community 安装: %s",
|
|
316
|
+
exc,
|
|
317
|
+
)
|
|
318
|
+
else:
|
|
319
|
+
logger.info("[初始化] SEARXNG_URL 未配置,搜索功能禁用")
|
|
320
|
+
|
|
321
|
+
if self._crawl4ai_capabilities is not None:
|
|
322
|
+
logger.info(
|
|
323
|
+
"[初始化] crawl4ai 已就绪,网页获取功能已启用: proxy_config=%s",
|
|
324
|
+
self._crawl4ai_capabilities.proxy_config_available,
|
|
325
|
+
)
|
|
327
326
|
|
|
328
327
|
self._prompt_builder = PromptBuilder(
|
|
329
328
|
bot_qq=self.bot_qq,
|
|
@@ -561,30 +560,19 @@ class ClientSetupMixin:
|
|
|
561
560
|
|
|
562
561
|
def apply_search_config(self, searxng_url: str) -> None:
|
|
563
562
|
"""应用搜索服务配置(支持热更新)。"""
|
|
564
|
-
if not _SEARX_AVAILABLE or _SearxSearchWrapper is None:
|
|
565
|
-
if searxng_url:
|
|
566
|
-
logger.warning(
|
|
567
|
-
"[配置] 搜索组件不可用,已忽略 SEARXNG_URL=%s",
|
|
568
|
-
redact_string(searxng_url),
|
|
569
|
-
)
|
|
570
|
-
else:
|
|
571
|
-
logger.info("[配置] 搜索组件不可用,搜索已禁用")
|
|
572
|
-
self._search_wrapper = None
|
|
573
|
-
return
|
|
574
|
-
|
|
575
563
|
if not searxng_url:
|
|
576
564
|
self._search_wrapper = None
|
|
577
565
|
logger.info("[配置] SEARXNG_URL 未配置,搜索功能已禁用")
|
|
578
566
|
return
|
|
579
567
|
|
|
580
568
|
try:
|
|
581
|
-
self._search_wrapper =
|
|
569
|
+
self._search_wrapper = _build_searx_wrapper(searxng_url)
|
|
582
570
|
logger.info(
|
|
583
571
|
"[配置] 搜索服务已更新: url=%s k=10",
|
|
584
572
|
redact_string(searxng_url),
|
|
585
573
|
)
|
|
586
574
|
except Exception as exc:
|
|
587
|
-
logger.
|
|
575
|
+
logger.error("[配置] 搜索服务更新失败: %s", exc)
|
|
588
576
|
self._search_wrapper = None
|
|
589
577
|
logger.info("[配置] 搜索服务已回退为禁用")
|
|
590
578
|
|