Undefined-bot 3.2.7__tar.gz → 3.2.8__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.2.7 → undefined_bot-3.2.8}/CHANGELOG.md +19 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/PKG-INFO +2 -5
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/README.md +1 -4
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/config.toml.example +17 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/pyproject.toml +1 -1
- undefined_bot-3.2.8/res/prompts/image_gen_moderation.txt +16 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/res/prompts/undefined.xml +9 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/res/prompts/undefined_nagaagent.xml +9 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/__init__.py +1 -1
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/ai/client.py +13 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/ai/prompts.py +19 -12
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/api/app.py +115 -11
- undefined_bot-3.2.8/src/Undefined/attachments.py +983 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/cognitive/service.py +140 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/config/loader.py +34 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/handlers.py +175 -3
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/main.py +1 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/services/ai_coordinator.py +37 -5
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/agents/__init__.py +1 -1
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/agents/entertainment_agent/prompt.md +3 -0
- undefined_bot-3.2.8/src/Undefined/skills/agents/entertainment_agent/tools/ai_draw_one/config.json +59 -0
- undefined_bot-3.2.8/src/Undefined/skills/agents/entertainment_agent/tools/ai_draw_one/handler.py +944 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/agents/entertainment_agent/tools/minecraft_skin/config.json +9 -4
- undefined_bot-3.2.8/src/Undefined/skills/agents/entertainment_agent/tools/minecraft_skin/handler.py +121 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/agents/entertainment_agent/tools/wenchang_dijun/handler.py +22 -1
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/agents/file_analysis_agent/config.json +2 -2
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/agents/file_analysis_agent/handler.py +20 -1
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/agents/file_analysis_agent/prompt.md +5 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/agents/file_analysis_agent/tools/download_file/config.json +2 -2
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/agents/file_analysis_agent/tools/download_file/handler.py +63 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/http_client.py +2 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/registry.py +31 -6
- undefined_bot-3.2.8/src/Undefined/skills/tools/fetch_image_uid/config.json +21 -0
- undefined_bot-3.2.8/src/Undefined/skills/tools/fetch_image_uid/handler.py +46 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/tools/get_picture/config.json +9 -4
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/tools/get_picture/handler.py +171 -52
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/toolsets/messages/send_message/handler.py +27 -1
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/toolsets/messages/send_private_message/handler.py +26 -1
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/toolsets/render/render_html/config.json +9 -4
- undefined_bot-3.2.8/src/Undefined/skills/toolsets/render/render_html/handler.py +104 -0
- undefined_bot-3.2.8/src/Undefined/skills/toolsets/render/render_latex/config.json +31 -0
- undefined_bot-3.2.8/src/Undefined/skills/toolsets/render/render_latex/handler.py +138 -0
- undefined_bot-3.2.8/src/Undefined/skills/toolsets/render/render_markdown/config.json +31 -0
- undefined_bot-3.2.8/src/Undefined/skills/toolsets/render/render_markdown/handler.py +124 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/utils/history.py +36 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/utils/io.py +14 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/utils/paths.py +2 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/utils/sender.py +12 -4
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/webui/routes/_runtime.py +47 -4
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/webui/static/js/runtime.js +6 -0
- undefined_bot-3.2.7/src/Undefined/skills/agents/entertainment_agent/tools/ai_draw_one/config.json +0 -42
- undefined_bot-3.2.7/src/Undefined/skills/agents/entertainment_agent/tools/ai_draw_one/handler.py +0 -269
- undefined_bot-3.2.7/src/Undefined/skills/agents/entertainment_agent/tools/minecraft_skin/handler.py +0 -63
- undefined_bot-3.2.7/src/Undefined/skills/toolsets/render/render_html/handler.py +0 -46
- undefined_bot-3.2.7/src/Undefined/skills/toolsets/render/render_latex/config.json +0 -26
- undefined_bot-3.2.7/src/Undefined/skills/toolsets/render/render_latex/handler.py +0 -81
- undefined_bot-3.2.7/src/Undefined/skills/toolsets/render/render_markdown/config.json +0 -26
- undefined_bot-3.2.7/src/Undefined/skills/toolsets/render/render_markdown/handler.py +0 -71
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/.gitignore +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/ARCHITECTURE.md +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/LICENSE +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/config/README.md +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/config/mcp.json.example +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/img/head.png +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/img/xlwy.jpg +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/res/IMPORTANT/each.md +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/res/README.md +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/res/prompts/agent_self_intro.txt +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/res/prompts/analyze_multimodal.txt +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/res/prompts/describe_image.txt +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/res/prompts/generate_title.txt +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/res/prompts/historian_profile_merge.md +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/res/prompts/historian_rewrite.md +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/res/prompts/injection_detector.txt +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/res/prompts/injection_response_agent.txt +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/res/prompts/merge_summaries.txt +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/res/prompts/naga_message_moderation.txt +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/res/prompts/stats_analysis.txt +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/res/prompts/summarize.txt +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/README.md +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/README.md +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/__main__.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/ai/__init__.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/ai/crawl4ai_support.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/ai/http.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/ai/llm.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/ai/model_selector.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/ai/multimodal.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/ai/parsing.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/ai/queue_budget.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/ai/retrieval.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/ai/summaries.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/ai/tokens.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/ai/tooling.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/ai/transports/__init__.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/ai/transports/openai_transport.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/api/__init__.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/api/naga_store.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/arxiv/__init__.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/arxiv/client.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/arxiv/downloader.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/arxiv/models.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/arxiv/parser.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/arxiv/sender.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/bilibili/__init__.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/bilibili/downloader.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/bilibili/parser.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/bilibili/sender.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/bilibili/wbi.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/bilibili/wbi_request.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/changelog.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/cognitive/__init__.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/cognitive/historian.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/cognitive/job_queue.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/cognitive/profile_storage.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/cognitive/vector_store.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/config/__init__.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/config/hot_reload.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/config/manager.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/config/models.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/context.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/context_resource_registry.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/end_summary_storage.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/faq.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/injection_response_agent.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/knowledge/__init__.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/knowledge/chunker.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/knowledge/embedder.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/knowledge/manager.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/knowledge/reranker.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/knowledge/runtime.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/knowledge/store.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/mcp/__init__.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/mcp/registry.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/memory.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/onebot.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/rate_limit.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/render.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/scheduled_task_storage.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/services/__init__.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/services/command.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/services/commands/__init__.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/services/commands/context.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/services/commands/registry.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/services/model_pool.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/services/queue_manager.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/services/security.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/README.md +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/__init__.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/agents/README.md +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/agents/agent_tool_registry.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/agents/code_delivery_agent/config.json +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/agents/code_delivery_agent/docker_utils.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/agents/code_delivery_agent/handler.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/agents/code_delivery_agent/intro.md +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/agents/code_delivery_agent/mcp.json +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/agents/code_delivery_agent/prompt.md +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/agents/code_delivery_agent/tools/copy/config.json +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/agents/code_delivery_agent/tools/copy/handler.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/agents/code_delivery_agent/tools/delete/config.json +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/agents/code_delivery_agent/tools/delete/handler.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/agents/code_delivery_agent/tools/diff/config.json +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/agents/code_delivery_agent/tools/diff/handler.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/agents/code_delivery_agent/tools/end/config.json +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/agents/code_delivery_agent/tools/end/handler.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/agents/code_delivery_agent/tools/glob/config.json +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/agents/code_delivery_agent/tools/glob/handler.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/agents/code_delivery_agent/tools/grep/config.json +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/agents/code_delivery_agent/tools/grep/handler.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/agents/code_delivery_agent/tools/init_docker/config.json +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/agents/code_delivery_agent/tools/init_docker/handler.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/agents/code_delivery_agent/tools/read/config.json +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/agents/code_delivery_agent/tools/read/handler.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/agents/code_delivery_agent/tools/run_bash_command/config.json +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/agents/code_delivery_agent/tools/run_bash_command/handler.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/agents/code_delivery_agent/tools/todo/config.json +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/agents/code_delivery_agent/tools/todo/handler.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/agents/code_delivery_agent/tools/tree/config.json +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/agents/code_delivery_agent/tools/tree/handler.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/agents/code_delivery_agent/tools/write/config.json +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/agents/code_delivery_agent/tools/write/handler.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/agents/entertainment_agent/README.md +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/agents/entertainment_agent/config.json +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/agents/entertainment_agent/handler.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/agents/entertainment_agent/intro.md +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/agents/entertainment_agent/tools/__init__.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/agents/entertainment_agent/tools/horoscope/config.json +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/agents/entertainment_agent/tools/horoscope/handler.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/agents/entertainment_agent/tools/renjian/config.json +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/agents/entertainment_agent/tools/renjian/handler.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/agents/entertainment_agent/tools/wenchang_dijun/config.json +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/agents/file_analysis_agent/README.md +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/agents/file_analysis_agent/__init__.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/agents/file_analysis_agent/intro.md +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/agents/file_analysis_agent/tools/__init__.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/agents/file_analysis_agent/tools/analyze_code/config.json +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/agents/file_analysis_agent/tools/analyze_code/handler.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/agents/file_analysis_agent/tools/analyze_multimodal/config.json +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/agents/file_analysis_agent/tools/analyze_multimodal/handler.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/agents/file_analysis_agent/tools/cleanup_temp/config.json +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/agents/file_analysis_agent/tools/cleanup_temp/handler.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/agents/file_analysis_agent/tools/detect_file_type/config.json +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/agents/file_analysis_agent/tools/detect_file_type/handler.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/agents/file_analysis_agent/tools/extract_archive/config.json +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/agents/file_analysis_agent/tools/extract_archive/handler.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/agents/file_analysis_agent/tools/extract_docx/config.json +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/agents/file_analysis_agent/tools/extract_docx/handler.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/agents/file_analysis_agent/tools/extract_pdf/config.json +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/agents/file_analysis_agent/tools/extract_pdf/handler.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/agents/file_analysis_agent/tools/extract_pptx/config.json +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/agents/file_analysis_agent/tools/extract_pptx/handler.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/agents/file_analysis_agent/tools/extract_xlsx/config.json +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/agents/file_analysis_agent/tools/extract_xlsx/handler.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/agents/file_analysis_agent/tools/read_text_file/config.json +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/agents/file_analysis_agent/tools/read_text_file/handler.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/agents/info_agent/README.md +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/agents/info_agent/config.json +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/agents/info_agent/handler.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/agents/info_agent/intro.md +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/agents/info_agent/prompt.md +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/agents/info_agent/tools/__init__.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/agents/info_agent/tools/arxiv_search/config.json +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/agents/info_agent/tools/arxiv_search/handler.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/agents/info_agent/tools/baiduhot/config.json +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/agents/info_agent/tools/baiduhot/handler.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/agents/info_agent/tools/base64/config.json +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/agents/info_agent/tools/base64/handler.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/agents/info_agent/tools/bilibili_search/config.json +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/agents/info_agent/tools/bilibili_search/handler.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/agents/info_agent/tools/bilibili_user_info/config.json +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/agents/info_agent/tools/bilibili_user_info/handler.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/agents/info_agent/tools/douyinhot/config.json +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/agents/info_agent/tools/douyinhot/handler.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/agents/info_agent/tools/gold_price/config.json +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/agents/info_agent/tools/gold_price/handler.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/agents/info_agent/tools/hash/config.json +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/agents/info_agent/tools/hash/handler.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/agents/info_agent/tools/history/config.json +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/agents/info_agent/tools/history/handler.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/agents/info_agent/tools/net_check/config.json +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/agents/info_agent/tools/net_check/handler.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/agents/info_agent/tools/qq_level_query/config.json +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/agents/info_agent/tools/qq_level_query/handler.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/agents/info_agent/tools/speed/config.json +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/agents/info_agent/tools/speed/handler.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/agents/info_agent/tools/tcping/config.json +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/agents/info_agent/tools/tcping/handler.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/agents/info_agent/tools/weather_query/config.json +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/agents/info_agent/tools/weather_query/handler.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/agents/info_agent/tools/weibohot/config.json +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/agents/info_agent/tools/weibohot/handler.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/agents/info_agent/tools/whois/config.json +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/agents/info_agent/tools/whois/handler.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/agents/intro_generator.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/agents/intro_utils.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/agents/naga_code_analysis_agent/README.md +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/agents/naga_code_analysis_agent/config.json +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/agents/naga_code_analysis_agent/handler.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/agents/naga_code_analysis_agent/intro.md +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/agents/naga_code_analysis_agent/mcp.json +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/agents/naga_code_analysis_agent/prompt.md +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/agents/naga_code_analysis_agent/tools/__init__.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/agents/naga_code_analysis_agent/tools/glob/config.json +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/agents/naga_code_analysis_agent/tools/glob/handler.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/agents/naga_code_analysis_agent/tools/list_directory/config.json +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/agents/naga_code_analysis_agent/tools/list_directory/handler.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/agents/naga_code_analysis_agent/tools/read_file/config.json +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/agents/naga_code_analysis_agent/tools/read_file/handler.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/agents/naga_code_analysis_agent/tools/read_naga_intro/config.json +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/agents/naga_code_analysis_agent/tools/read_naga_intro/handler.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/agents/naga_code_analysis_agent/tools/search_file_content/config.json +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/agents/naga_code_analysis_agent/tools/search_file_content/handler.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/agents/runner.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/agents/web_agent/README.md +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/agents/web_agent/callable.json +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/agents/web_agent/config.json +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/agents/web_agent/handler.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/agents/web_agent/intro.md +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/agents/web_agent/mcp.json +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/agents/web_agent/prompt.md +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/agents/web_agent/tools/__init__.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/agents/web_agent/tools/crawl_webpage/config.json +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/agents/web_agent/tools/crawl_webpage/handler.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/agents/web_agent/tools/grok_search/config.json +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/agents/web_agent/tools/grok_search/handler.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/agents/web_agent/tools/web_search/config.json +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/agents/web_agent/tools/web_search/handler.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/anthropic_skills/__init__.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/anthropic_skills/loader.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/commands/README.md +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/commands/addadmin/README.md +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/commands/addadmin/config.json +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/commands/addadmin/handler.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/commands/bugfix/README.md +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/commands/bugfix/config.json +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/commands/bugfix/handler.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/commands/changelog/README.md +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/commands/changelog/config.json +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/commands/changelog/handler.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/commands/copyright/README.md +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/commands/copyright/config.json +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/commands/copyright/handler.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/commands/delfaq/README.md +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/commands/delfaq/config.json +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/commands/delfaq/handler.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/commands/help/README.md +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/commands/help/config.json +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/commands/help/handler.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/commands/lsadmin/README.md +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/commands/lsadmin/config.json +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/commands/lsadmin/handler.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/commands/lsfaq/README.md +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/commands/lsfaq/config.json +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/commands/lsfaq/handler.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/commands/naga/README.md +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/commands/naga/config.json +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/commands/naga/handler.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/commands/naga/policy.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/commands/naga/scopes.json +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/commands/rmadmin/README.md +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/commands/rmadmin/config.json +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/commands/rmadmin/handler.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/commands/searchfaq/README.md +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/commands/searchfaq/config.json +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/commands/searchfaq/handler.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/commands/stats/README.md +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/commands/stats/config.json +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/commands/stats/handler.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/commands/viewfaq/README.md +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/commands/viewfaq/config.json +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/commands/viewfaq/handler.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/http_config.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/tools/README.md +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/tools/__init__.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/tools/arxiv_paper/README.md +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/tools/arxiv_paper/config.json +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/tools/arxiv_paper/handler.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/tools/bilibili_video/README.md +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/tools/bilibili_video/config.json +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/tools/bilibili_video/handler.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/tools/changelog_query/README.md +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/tools/changelog_query/config.json +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/tools/changelog_query/handler.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/tools/end/README.md +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/tools/end/config.json +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/tools/end/handler.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/tools/get_current_time/README.md +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/tools/get_current_time/callable.json +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/tools/get_current_time/config.json +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/tools/get_current_time/handler.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/tools/get_picture/README.md +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/tools/get_user_info/README.md +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/tools/get_user_info/config.json +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/tools/get_user_info/handler.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/tools/knowledge_list/config.json +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/tools/knowledge_list/handler.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/tools/knowledge_semantic_search/config.json +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/tools/knowledge_semantic_search/handler.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/tools/knowledge_text_search/config.json +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/tools/knowledge_text_search/handler.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/tools/python_interpreter/README.md +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/tools/python_interpreter/config.json +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/tools/python_interpreter/handler.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/tools/qq_like/README.md +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/tools/qq_like/config.json +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/tools/qq_like/handler.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/tools/task_progress/config.json +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/tools/task_progress/handler.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/toolsets/README.md +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/toolsets/__init__.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/toolsets/cognitive/get_profile/config.json +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/toolsets/cognitive/get_profile/handler.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/toolsets/cognitive/search_events/config.json +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/toolsets/cognitive/search_events/handler.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/toolsets/cognitive/search_profiles/config.json +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/toolsets/cognitive/search_profiles/handler.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/toolsets/contacts/query_friends/config.json +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/toolsets/contacts/query_friends/handler.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/toolsets/contacts/query_groups/config.json +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/toolsets/contacts/query_groups/handler.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/toolsets/group/README.md +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/toolsets/group/activity_trend/config.json +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/toolsets/group/activity_trend/handler.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/toolsets/group/detect_inactive_risk/config.json +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/toolsets/group/detect_inactive_risk/handler.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/toolsets/group/filter_members/config.json +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/toolsets/group/filter_members/handler.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/toolsets/group/find_member/config.json +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/toolsets/group/find_member/handler.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/toolsets/group/get_files/config.json +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/toolsets/group/get_files/handler.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/toolsets/group/get_honor_info/config.json +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/toolsets/group/get_honor_info/handler.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/toolsets/group/get_member_activity/config.json +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/toolsets/group/get_member_activity/handler.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/toolsets/group/get_member_info/config.json +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/toolsets/group/get_member_info/handler.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/toolsets/group/get_member_list/config.json +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/toolsets/group/get_member_list/handler.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/toolsets/group/get_member_title/config.json +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/toolsets/group/get_member_title/handler.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/toolsets/group/level_distribution/config.json +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/toolsets/group/level_distribution/handler.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/toolsets/group/rank_members/config.json +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/toolsets/group/rank_members/handler.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/toolsets/group_analysis/analyze_join_statistics/config.json +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/toolsets/group_analysis/analyze_join_statistics/handler.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/toolsets/group_analysis/analyze_member_messages/config.json +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/toolsets/group_analysis/analyze_member_messages/handler.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/toolsets/group_analysis/analyze_new_member_activity/config.json +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/toolsets/group_analysis/analyze_new_member_activity/handler.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/toolsets/mcp/README.md +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/toolsets/mcp/__init__.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/toolsets/memory/README.md +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/toolsets/memory/add/config.json +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/toolsets/memory/add/handler.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/toolsets/memory/delete/config.json +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/toolsets/memory/delete/handler.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/toolsets/memory/list/config.json +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/toolsets/memory/list/handler.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/toolsets/memory/update/config.json +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/toolsets/memory/update/handler.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/toolsets/messages/README.md +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/toolsets/messages/get_forward_msg/config.json +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/toolsets/messages/get_forward_msg/handler.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/toolsets/messages/get_messages_by_time/config.json +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/toolsets/messages/get_messages_by_time/handler.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/toolsets/messages/get_recent_messages/config.json +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/toolsets/messages/get_recent_messages/handler.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/toolsets/messages/list_emojis/config.json +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/toolsets/messages/list_emojis/handler.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/toolsets/messages/lookup_emoji_id/config.json +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/toolsets/messages/lookup_emoji_id/handler.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/toolsets/messages/react_message_emoji/config.json +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/toolsets/messages/react_message_emoji/handler.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/toolsets/messages/send_group_sign/config.json +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/toolsets/messages/send_group_sign/handler.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/toolsets/messages/send_message/config.json +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/toolsets/messages/send_poke/config.json +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/toolsets/messages/send_poke/handler.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/toolsets/messages/send_private_message/config.json +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/toolsets/messages/send_text_file/callable.json +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/toolsets/messages/send_text_file/config.json +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/toolsets/messages/send_text_file/handler.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/toolsets/messages/send_url_file/callable.json +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/toolsets/messages/send_url_file/config.json +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/toolsets/messages/send_url_file/handler.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/toolsets/notices/README.md +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/toolsets/notices/get/config.json +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/toolsets/notices/get/handler.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/toolsets/notices/list/config.json +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/toolsets/notices/list/handler.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/toolsets/notices/stats/config.json +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/toolsets/notices/stats/handler.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/toolsets/render/README.md +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/toolsets/scheduler/README.md +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/toolsets/scheduler/create_schedule_task/config.json +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/toolsets/scheduler/create_schedule_task/handler.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/toolsets/scheduler/delete_schedule_task/config.json +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/toolsets/scheduler/delete_schedule_task/handler.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/toolsets/scheduler/list_schedule_tasks/config.json +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/toolsets/scheduler/list_schedule_tasks/handler.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/toolsets/scheduler/update_schedule_task/config.json +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/skills/toolsets/scheduler/update_schedule_task/handler.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/token_usage_storage.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/utils/__init__.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/utils/cache.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/utils/common.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/utils/cors.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/utils/file_lock.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/utils/group_metrics.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/utils/http_download.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/utils/logging.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/utils/member_utils.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/utils/message_utils.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/utils/qq_emoji.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/utils/queue_intervals.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/utils/recent_messages.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/utils/request_params.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/utils/resources.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/utils/scheduler.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/utils/self_update.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/utils/time_utils.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/utils/tool_calls.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/utils/xml.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/webui/__init__.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/webui/__main__.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/webui/app.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/webui/core.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/webui/routes/__init__.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/webui/routes/_auth.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/webui/routes/_bot.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/webui/routes/_config.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/webui/routes/_index.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/webui/routes/_logs.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/webui/routes/_shared.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/webui/routes/_system.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/webui/static/css/.stylelintrc.json +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/webui/static/css/app.css +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/webui/static/css/base.css +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/webui/static/css/components.css +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/webui/static/css/landing.css +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/webui/static/css/responsive.css +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/webui/static/css/style.css +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/webui/static/css/variables.css +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/webui/static/favicon.svg +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/webui/static/js/api.js +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/webui/static/js/auth.js +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/webui/static/js/bot.js +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/webui/static/js/config-form.js +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/webui/static/js/i18n.js +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/webui/static/js/log-view.js +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/webui/static/js/logs.js +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/webui/static/js/main.js +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/webui/static/js/state.js +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/webui/static/js/ui.js +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/webui/static/js/vendor/marked.min.js +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/webui/templates/index.html +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/webui/utils/__init__.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/webui/utils/comment.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/webui/utils/config_io.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/webui/utils/config_sync.py +0 -0
- {undefined_bot-3.2.7 → undefined_bot-3.2.8}/src/Undefined/webui/utils/toml_render.py +0 -0
|
@@ -1,3 +1,22 @@
|
|
|
1
|
+
## v3.2.8 多模态附件与参考图生图
|
|
2
|
+
|
|
3
|
+
围绕多模态消息链路进行了较大增强,引入统一的附件 UID 注册与 `<pic uid="..."/>` 图文混排机制,打通群聊、私聊、WebUI 和合并转发中的图片/文件上下文。同步为生图工具补齐参考图生图、独立图片编辑模型配置与提示词审核能力,并完善 Runtime API、认知侧写和动态技能加载的稳定性。
|
|
4
|
+
|
|
5
|
+
- 新增统一附件注册系统,群聊、私聊、WebUI 会话和合并转发中的图片/文件会登记为内部附件 UID,并写入历史记录与提示词上下文。
|
|
6
|
+
- 系统提示词与发送链路支持 `<pic uid="..."/>` 图文混排,AI 可直接在回复中内嵌当前会话内的图片 UID。
|
|
7
|
+
- 新增 `fetch_image_uid` 工具,支持将远程图片 URL 拉取并注册为当前会话可复用的图片 UID。
|
|
8
|
+
- `get_picture`、`render_html`、`render_markdown`、`render_latex` 默认改为 `embed` 返回可嵌入图片 UID,同时保留 `send` 直接发送模式。
|
|
9
|
+
- `file_analysis_agent` 及相关文件/图片链路已适配附件 UID,优先使用内部 `pic_*` / `file_*` 标识,也继续兼容 URL 与 legacy `file_id`。
|
|
10
|
+
- `ai_draw_one` 支持基于 `reference_image_uids` 的参考图生图,新增 `[models.image_edit]` 配置节,并接入 OpenAI 兼容的 `/v1/images/edits` 接口。
|
|
11
|
+
- 新增基于 Agent 模型的生图提示词审核能力,并补充独立审核提示模板。
|
|
12
|
+
- 优化图片生成请求体验,支持 base64 返回、保留显式尺寸、锁定模型参数,并更清晰地暴露上游错误。
|
|
13
|
+
- 修复附件渲染、图片编辑上传与阻塞式文件读取问题,增强多模态链路稳定性。
|
|
14
|
+
- Runtime API 与 WebUI 现在会注册聊天附件、渲染图片 UID,并支持本地 `file://` 图片预览;同时取消 `_agent` 工具调用的固定超时上限。
|
|
15
|
+
- 认知服务会在用户昵称或群名变化时自动刷新 profile 展示名与向量索引,减少侧写名称陈旧问题。
|
|
16
|
+
- 修复动态技能模块加载与超时包装问题,并补充相关测试覆盖;同步整理 README,移除顶部头图。
|
|
17
|
+
|
|
18
|
+
---
|
|
19
|
+
|
|
1
20
|
## v3.2.7 arXiv 工具集与运行时变更感知
|
|
2
21
|
|
|
3
22
|
新增 arXiv 论文搜索与提取工具集,以及运行时 CHANGELOG 查询能力。重构了生图工具支持 OpenAI 兼容接口,引入 grok_search 联网搜索工具,并让 AI 在系统提示词中感知自身模型配置信息。同步修复了多项稳定性问题与 CI 效率优化。
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: Undefined-bot
|
|
3
|
-
Version: 3.2.
|
|
3
|
+
Version: 3.2.8
|
|
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
|
|
@@ -60,7 +60,7 @@ Description-Content-Type: text/markdown
|
|
|
60
60
|
|
|
61
61
|
<table border="0">
|
|
62
62
|
<tr>
|
|
63
|
-
<td width="
|
|
63
|
+
<td width="100%" valign="top">
|
|
64
64
|
<div align="center">
|
|
65
65
|
<h1>Undefined</h1>
|
|
66
66
|
<em>QQ bot platform with cognitive memory architecture and multi-agent Skills, via OneBot V11.</em>
|
|
@@ -78,9 +78,6 @@ Description-Content-Type: text/markdown
|
|
|
78
78
|
<strong>Undefined</strong> 是一个基于 Python 异步架构的高性能 QQ 机器人平台,搭载<strong>认知记忆架构</strong>,采用自研 <strong>Skills</strong> 系统,内置多个智能 Agent,支持代码分析、网络搜索、娱乐互动等多模态能力,并提供 <strong>Management-first WebUI</strong> 在线管理,以及可连接同一管理服务的 <strong>Desktop / Android App</strong>。
|
|
79
79
|
</p>
|
|
80
80
|
</td>
|
|
81
|
-
<td width="30%">
|
|
82
|
-
<img src="https://raw.githubusercontent.com/69gg/Undefined/main/img/head.png" width="100%" alt="Undefined" />
|
|
83
|
-
</td>
|
|
84
81
|
</tr>
|
|
85
82
|
</table>
|
|
86
83
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
<table border="0">
|
|
2
2
|
<tr>
|
|
3
|
-
<td width="
|
|
3
|
+
<td width="100%" valign="top">
|
|
4
4
|
<div align="center">
|
|
5
5
|
<h1>Undefined</h1>
|
|
6
6
|
<em>QQ bot platform with cognitive memory architecture and multi-agent Skills, via OneBot V11.</em>
|
|
@@ -18,9 +18,6 @@
|
|
|
18
18
|
<strong>Undefined</strong> 是一个基于 Python 异步架构的高性能 QQ 机器人平台,搭载<strong>认知记忆架构</strong>,采用自研 <strong>Skills</strong> 系统,内置多个智能 Agent,支持代码分析、网络搜索、娱乐互动等多模态能力,并提供 <strong>Management-first WebUI</strong> 在线管理,以及可连接同一管理服务的 <strong>Desktop / Android App</strong>。
|
|
19
19
|
</p>
|
|
20
20
|
</td>
|
|
21
|
-
<td width="30%">
|
|
22
|
-
<img src="https://raw.githubusercontent.com/69gg/Undefined/main/img/head.png" width="100%" alt="Undefined" />
|
|
23
|
-
</td>
|
|
24
21
|
</tr>
|
|
25
22
|
</table>
|
|
26
23
|
|
|
@@ -527,6 +527,23 @@ model_name = ""
|
|
|
527
527
|
# en: Extra request-body params (optional).
|
|
528
528
|
[models.image_gen.request_params]
|
|
529
529
|
|
|
530
|
+
# zh: 参考图生图模型配置(用于 ai_draw_one 传入 reference_image_uids 时调用 OpenAI 兼容的图片编辑接口)。
|
|
531
|
+
# en: Reference-image generation model config (used when ai_draw_one receives reference_image_uids and calls the OpenAI-compatible image editing API).
|
|
532
|
+
[models.image_edit]
|
|
533
|
+
# zh: OpenAI-compatible 基址 URL,例如 https://api.openai.com/v1(最终请求路径为 /v1/images/edits)。
|
|
534
|
+
# en: OpenAI-compatible base URL, e.g. https://api.openai.com/v1 (final request path is /v1/images/edits).
|
|
535
|
+
api_url = ""
|
|
536
|
+
# zh: API Key。
|
|
537
|
+
# en: API key.
|
|
538
|
+
api_key = ""
|
|
539
|
+
# zh: 模型名称,空则回退到 [models.image_gen] 的 model_name。
|
|
540
|
+
# en: Model name, empty falls back to [models.image_gen].model_name.
|
|
541
|
+
model_name = ""
|
|
542
|
+
|
|
543
|
+
# zh: 额外请求体参数(可选)。
|
|
544
|
+
# en: Extra request-body params (optional).
|
|
545
|
+
[models.image_edit.request_params]
|
|
546
|
+
|
|
530
547
|
# zh: 本地知识库配置。
|
|
531
548
|
# en: Local knowledge base settings.
|
|
532
549
|
[knowledge]
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
你是图片生成审核助手,只根据“待生成图片的提示词”判断是否允许生成。
|
|
2
|
+
|
|
3
|
+
拦截范围包括但不限于:
|
|
4
|
+
- 露骨色情、性剥削、未成年人性化
|
|
5
|
+
- 血腥暴力、肢解、虐杀等重口内容
|
|
6
|
+
- 明显违法、极端、恐怖主义相关内容
|
|
7
|
+
- 明显侵犯隐私、仇恨或其他高风险内容
|
|
8
|
+
|
|
9
|
+
审核原则:
|
|
10
|
+
- 只审核风险,不提供改写建议,不解释政策,不输出多余内容
|
|
11
|
+
- 安全、普通、模糊但不明显违规的内容默认放行
|
|
12
|
+
- 如果只是普通人物、风景、二次元、服饰、轻微动作描写,不要误杀
|
|
13
|
+
|
|
14
|
+
输出格式必须严格遵守:
|
|
15
|
+
- 允许:`ALLOW`
|
|
16
|
+
- 拒绝:`BLOCK: <不超过20字的简短中文原因>`
|
|
@@ -131,6 +131,15 @@
|
|
|
131
131
|
|
|
132
132
|
**关键点:每次消息处理都必须以 end 结束,这是维持对话流的核心机制。**
|
|
133
133
|
</workflow>
|
|
134
|
+
|
|
135
|
+
<mixed_media_output priority="P0">
|
|
136
|
+
**图文混排规则:**
|
|
137
|
+
- 如果上下文或工具结果给了图片 UID(例如 `pic_ab12cd34`),你可以在 `send_message.message` 里直接插入 `<pic uid="pic_ab12cd34"/>`
|
|
138
|
+
- `<pic uid="..."/>` 是唯一允许的内嵌图片语法;不要改成 Markdown 图片、HTML `<img>`、代码块或自然语言描述
|
|
139
|
+
- 可以图文混排,例如:`我给你介绍一下`\n`<pic uid="pic_xxx"/>`\n`如图所示`
|
|
140
|
+
- 只能引用当前会话里明确给出的图片 UID,禁止臆造 UID
|
|
141
|
+
- 只有 `pic_*` 这类图片 UID 能放进 `<pic>`;普通文件 UID 不能放进去
|
|
142
|
+
</mixed_media_output>
|
|
134
143
|
</message_sending_mechanism>
|
|
135
144
|
|
|
136
145
|
<!-- 规则4: 对话结束机制 -->
|
|
@@ -131,6 +131,15 @@
|
|
|
131
131
|
|
|
132
132
|
**关键点:每次消息处理都必须以 end 结束,这是维持对话流的核心机制。**
|
|
133
133
|
</workflow>
|
|
134
|
+
|
|
135
|
+
<mixed_media_output priority="P0">
|
|
136
|
+
**图文混排规则:**
|
|
137
|
+
- 如果上下文或工具结果给了图片 UID(例如 `pic_ab12cd34`),你可以在 `send_message.message` 里直接插入 `<pic uid="pic_ab12cd34"/>`
|
|
138
|
+
- `<pic uid="..."/>` 是唯一允许的内嵌图片语法;不要改成 Markdown 图片、HTML `<img>`、代码块或自然语言描述
|
|
139
|
+
- 可以图文混排,例如:`我给你介绍一下`\n`<pic uid="pic_xxx"/>`\n`如图所示`
|
|
140
|
+
- 只能引用当前会话里明确给出的图片 UID,禁止臆造 UID
|
|
141
|
+
- 只有 `pic_*` 这类图片 UID 能放进 `<pic>`;普通文件 UID 不能放进去
|
|
142
|
+
</mixed_media_output>
|
|
134
143
|
</message_sending_mechanism>
|
|
135
144
|
|
|
136
145
|
<!-- 规则4: 对话结束机制 -->
|
|
@@ -12,6 +12,7 @@ from uuid import uuid4
|
|
|
12
12
|
|
|
13
13
|
import httpx
|
|
14
14
|
|
|
15
|
+
from Undefined.attachments import AttachmentRegistry
|
|
15
16
|
from Undefined.ai.llm import ModelRequester
|
|
16
17
|
from Undefined.ai.model_selector import ModelSelector
|
|
17
18
|
from Undefined.ai.multimodal import MultimodalAnalyzer
|
|
@@ -136,6 +137,7 @@ class AIClient:
|
|
|
136
137
|
self._token_counter = TokenCounter()
|
|
137
138
|
self._knowledge_manager: Any = None
|
|
138
139
|
self._cognitive_service: Any = cognitive_service
|
|
140
|
+
self.attachment_registry = AttachmentRegistry(http_client=self._http_client)
|
|
139
141
|
|
|
140
142
|
# 私聊发送回调
|
|
141
143
|
self._send_private_message_callback: Optional[SendPrivateMessageCallback] = None
|
|
@@ -325,6 +327,13 @@ class AIClient:
|
|
|
325
327
|
if hasattr(self, "anthropic_skill_registry"):
|
|
326
328
|
await self.anthropic_skill_registry.stop_hot_reload()
|
|
327
329
|
|
|
330
|
+
attachment_registry = getattr(self, "attachment_registry", None)
|
|
331
|
+
if attachment_registry is not None and hasattr(attachment_registry, "flush"):
|
|
332
|
+
try:
|
|
333
|
+
await attachment_registry.flush()
|
|
334
|
+
except Exception as exc:
|
|
335
|
+
logger.warning("[清理] 刷新附件注册表失败: %s", exc)
|
|
336
|
+
|
|
328
337
|
# 3) 最后关闭共享 HTTP client
|
|
329
338
|
if hasattr(self, "_http_client"):
|
|
330
339
|
logger.info("[清理] 正在关闭 AIClient HTTP 客户端...")
|
|
@@ -973,6 +982,10 @@ class AIClient:
|
|
|
973
982
|
tool_context.setdefault("onebot_client", onebot_client)
|
|
974
983
|
tool_context.setdefault("scheduler", scheduler)
|
|
975
984
|
tool_context.setdefault("send_image_callback", self._send_image_callback)
|
|
985
|
+
tool_context.setdefault(
|
|
986
|
+
"attachment_registry",
|
|
987
|
+
getattr(self, "attachment_registry", None),
|
|
988
|
+
)
|
|
976
989
|
tool_context.setdefault("memory_storage", self.memory_storage)
|
|
977
990
|
tool_context.setdefault("knowledge_manager", self._knowledge_manager)
|
|
978
991
|
tool_context.setdefault("cognitive_service", self._cognitive_service)
|
|
@@ -11,6 +11,7 @@ from typing import Any, Callable, Awaitable, Literal
|
|
|
11
11
|
|
|
12
12
|
import aiofiles
|
|
13
13
|
|
|
14
|
+
from Undefined.attachments import attachment_refs_to_xml
|
|
14
15
|
from Undefined.context import RequestContext
|
|
15
16
|
from Undefined.end_summary_storage import (
|
|
16
17
|
EndSummaryStorage,
|
|
@@ -26,7 +27,7 @@ from Undefined.utils.xml import escape_xml_attr, escape_xml_text
|
|
|
26
27
|
logger = logging.getLogger(__name__)
|
|
27
28
|
|
|
28
29
|
_CURRENT_MESSAGE_RE = re.compile(
|
|
29
|
-
r"<message\b(?P<attrs>[^>]*)
|
|
30
|
+
r"<message\b(?P<attrs>[^>]*)>.*?<content>(?P<content>.*?)</content>.*?</message>",
|
|
30
31
|
re.DOTALL | re.IGNORECASE,
|
|
31
32
|
)
|
|
32
33
|
_XML_ATTR_RE = re.compile(r'(?P<key>[a-zA-Z_][a-zA-Z0-9_-]*)="(?P<value>[^"]*)"')
|
|
@@ -326,6 +327,15 @@ class PromptBuilder:
|
|
|
326
327
|
len(self._anthropic_skill_registry.get_all_skills()),
|
|
327
328
|
)
|
|
328
329
|
|
|
330
|
+
each_rules = await self._load_each_rules()
|
|
331
|
+
if each_rules:
|
|
332
|
+
messages.append(
|
|
333
|
+
{
|
|
334
|
+
"role": "system",
|
|
335
|
+
"content": f"【强制规则 - 必须在进行任何操作前仔细阅读并严格遵守】\n{each_rules}",
|
|
336
|
+
}
|
|
337
|
+
)
|
|
338
|
+
|
|
329
339
|
if self._memory_storage:
|
|
330
340
|
memories = self._memory_storage.get_all()
|
|
331
341
|
if memories:
|
|
@@ -519,15 +529,6 @@ class PromptBuilder:
|
|
|
519
529
|
}
|
|
520
530
|
)
|
|
521
531
|
|
|
522
|
-
each_rules = await self._load_each_rules()
|
|
523
|
-
if each_rules:
|
|
524
|
-
messages.append(
|
|
525
|
-
{
|
|
526
|
-
"role": "system",
|
|
527
|
-
"content": f"【强制规则 - 必须在进行任何操作前仔细阅读并严格遵守】\n{each_rules}",
|
|
528
|
-
}
|
|
529
|
-
)
|
|
530
|
-
|
|
531
532
|
messages.append({"role": "user", "content": f"【当前消息】\n{question}"})
|
|
532
533
|
logger.debug(
|
|
533
534
|
"[Prompt] messages_ready=%s question_len=%s",
|
|
@@ -648,6 +649,7 @@ class PromptBuilder:
|
|
|
648
649
|
chat_name = msg.get("chat_name", "未知群聊")
|
|
649
650
|
timestamp = msg.get("timestamp", "")
|
|
650
651
|
text = msg.get("message", "")
|
|
652
|
+
attachments = msg.get("attachments", [])
|
|
651
653
|
role = msg.get("role", "member")
|
|
652
654
|
title = msg.get("title", "")
|
|
653
655
|
message_id = msg.get("message_id")
|
|
@@ -664,6 +666,11 @@ class PromptBuilder:
|
|
|
664
666
|
msg_id_attr = ""
|
|
665
667
|
if message_id is not None:
|
|
666
668
|
msg_id_attr = f' message_id="{escape_xml_attr(str(message_id))}"'
|
|
669
|
+
attachment_xml = (
|
|
670
|
+
f"\n{attachment_refs_to_xml(attachments)}"
|
|
671
|
+
if isinstance(attachments, list) and attachments
|
|
672
|
+
else ""
|
|
673
|
+
)
|
|
667
674
|
|
|
668
675
|
if msg_type_val == "group":
|
|
669
676
|
location = (
|
|
@@ -673,14 +680,14 @@ class PromptBuilder:
|
|
|
673
680
|
xml_msg = (
|
|
674
681
|
f'<message{msg_id_attr} sender="{safe_sender}" sender_id="{safe_sender_id}" group_id="{safe_chat_id}" '
|
|
675
682
|
f'group_name="{safe_chat_name}" location="{safe_location}" role="{safe_role}" title="{safe_title}" '
|
|
676
|
-
f'time="{safe_time}">\n<content>{safe_text}</content
|
|
683
|
+
f'time="{safe_time}">\n<content>{safe_text}</content>{attachment_xml}\n</message>'
|
|
677
684
|
)
|
|
678
685
|
else:
|
|
679
686
|
location = "私聊"
|
|
680
687
|
safe_location = escape_xml_attr(location)
|
|
681
688
|
xml_msg = (
|
|
682
689
|
f'<message{msg_id_attr} sender="{safe_sender}" sender_id="{safe_sender_id}" location="{safe_location}" '
|
|
683
|
-
f'time="{safe_time}">\n<content>{safe_text}</content
|
|
690
|
+
f'time="{safe_time}">\n<content>{safe_text}</content>{attachment_xml}\n</message>'
|
|
684
691
|
)
|
|
685
692
|
context_lines.append(xml_msg)
|
|
686
693
|
|
|
@@ -21,11 +21,18 @@ from aiohttp import ClientSession, ClientTimeout, web
|
|
|
21
21
|
from aiohttp.web_response import Response
|
|
22
22
|
|
|
23
23
|
from Undefined import __version__
|
|
24
|
+
from Undefined.attachments import (
|
|
25
|
+
attachment_refs_to_xml,
|
|
26
|
+
build_attachment_scope,
|
|
27
|
+
register_message_attachments,
|
|
28
|
+
render_message_with_pic_placeholders,
|
|
29
|
+
)
|
|
24
30
|
from Undefined.config import load_webui_settings
|
|
25
31
|
from Undefined.context import RequestContext
|
|
26
32
|
from Undefined.context_resource_registry import collect_context_resources
|
|
27
33
|
from Undefined.render import render_html_to_image, render_markdown_to_html # noqa: F401
|
|
28
34
|
from Undefined.services.queue_manager import QUEUE_LANE_SUPERADMIN
|
|
35
|
+
from Undefined.utils.common import message_to_segments
|
|
29
36
|
from Undefined.utils.cors import is_allowed_cors_origin, normalize_origin
|
|
30
37
|
from Undefined.utils.recent_messages import get_recent_messages_prefer_local
|
|
31
38
|
from Undefined.utils.xml import escape_xml_attr, escape_xml_text
|
|
@@ -40,6 +47,10 @@ _PROCESS_START_TIME = time.time()
|
|
|
40
47
|
_NAGA_REQUEST_UUID_TTL_SECONDS = 6 * 60 * 60
|
|
41
48
|
|
|
42
49
|
|
|
50
|
+
class _ToolInvokeExecutionTimeoutError(asyncio.TimeoutError):
|
|
51
|
+
"""由 Runtime API 工具调用超时包装器抛出的超时异常。"""
|
|
52
|
+
|
|
53
|
+
|
|
43
54
|
@dataclass
|
|
44
55
|
class _NagaRequestResult:
|
|
45
56
|
payload_hash: str
|
|
@@ -71,8 +82,16 @@ class _WebUIVirtualSender:
|
|
|
71
82
|
mark_sent: bool = True,
|
|
72
83
|
reply_to: int | None = None,
|
|
73
84
|
preferred_temp_group_id: int | None = None,
|
|
85
|
+
history_message: str | None = None,
|
|
74
86
|
) -> int | None:
|
|
75
|
-
_ =
|
|
87
|
+
_ = (
|
|
88
|
+
user_id,
|
|
89
|
+
auto_history,
|
|
90
|
+
mark_sent,
|
|
91
|
+
reply_to,
|
|
92
|
+
preferred_temp_group_id,
|
|
93
|
+
history_message,
|
|
94
|
+
)
|
|
76
95
|
await self._send_private_callback(self._virtual_user_id, message)
|
|
77
96
|
return None
|
|
78
97
|
|
|
@@ -85,8 +104,16 @@ class _WebUIVirtualSender:
|
|
|
85
104
|
*,
|
|
86
105
|
mark_sent: bool = True,
|
|
87
106
|
reply_to: int | None = None,
|
|
107
|
+
history_message: str | None = None,
|
|
88
108
|
) -> int | None:
|
|
89
|
-
_ =
|
|
109
|
+
_ = (
|
|
110
|
+
group_id,
|
|
111
|
+
auto_history,
|
|
112
|
+
history_prefix,
|
|
113
|
+
mark_sent,
|
|
114
|
+
reply_to,
|
|
115
|
+
history_message,
|
|
116
|
+
)
|
|
90
117
|
await self._send_private_callback(self._virtual_user_id, message)
|
|
91
118
|
return None
|
|
92
119
|
|
|
@@ -1177,14 +1204,29 @@ class RuntimeAPIServer:
|
|
|
1177
1204
|
) -> str:
|
|
1178
1205
|
cfg = self._ctx.config_getter()
|
|
1179
1206
|
permission_sender_id = int(cfg.superadmin_qq)
|
|
1207
|
+
webui_scope_key = build_attachment_scope(
|
|
1208
|
+
user_id=_VIRTUAL_USER_ID,
|
|
1209
|
+
request_type="private",
|
|
1210
|
+
webui_session=True,
|
|
1211
|
+
)
|
|
1212
|
+
input_segments = message_to_segments(text)
|
|
1213
|
+
registered_input = await register_message_attachments(
|
|
1214
|
+
registry=self._ctx.ai.attachment_registry,
|
|
1215
|
+
segments=input_segments,
|
|
1216
|
+
scope_key=webui_scope_key,
|
|
1217
|
+
resolve_image_url=self._ctx.onebot.get_image,
|
|
1218
|
+
get_forward_messages=self._ctx.onebot.get_forward_msg,
|
|
1219
|
+
)
|
|
1220
|
+
normalized_text = registered_input.normalized_text or text
|
|
1180
1221
|
await self._ctx.history_manager.add_private_message(
|
|
1181
1222
|
user_id=_VIRTUAL_USER_ID,
|
|
1182
|
-
text_content=
|
|
1223
|
+
text_content=normalized_text,
|
|
1183
1224
|
display_name=_VIRTUAL_USER_NAME,
|
|
1184
1225
|
user_name=_VIRTUAL_USER_NAME,
|
|
1226
|
+
attachments=registered_input.attachments,
|
|
1185
1227
|
)
|
|
1186
1228
|
|
|
1187
|
-
command = self._ctx.command_dispatcher.parse_command(
|
|
1229
|
+
command = self._ctx.command_dispatcher.parse_command(normalized_text)
|
|
1188
1230
|
if command:
|
|
1189
1231
|
await self._ctx.command_dispatcher.dispatch_private(
|
|
1190
1232
|
user_id=_VIRTUAL_USER_ID,
|
|
@@ -1196,8 +1238,13 @@ class RuntimeAPIServer:
|
|
|
1196
1238
|
return "command"
|
|
1197
1239
|
|
|
1198
1240
|
current_time = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
|
|
1241
|
+
attachment_xml = (
|
|
1242
|
+
f"\n{attachment_refs_to_xml(registered_input.attachments)}"
|
|
1243
|
+
if registered_input.attachments
|
|
1244
|
+
else ""
|
|
1245
|
+
)
|
|
1199
1246
|
full_question = f"""<message sender="{escape_xml_attr(_VIRTUAL_USER_NAME)}" sender_id="{escape_xml_attr(_VIRTUAL_USER_ID)}" location="WebUI私聊" time="{escape_xml_attr(current_time)}">
|
|
1200
|
-
<content>{escape_xml_text(
|
|
1247
|
+
<content>{escape_xml_text(normalized_text)}</content>{attachment_xml}
|
|
1201
1248
|
</message>
|
|
1202
1249
|
|
|
1203
1250
|
【WebUI 会话】
|
|
@@ -1252,6 +1299,8 @@ class RuntimeAPIServer:
|
|
|
1252
1299
|
if value is not None:
|
|
1253
1300
|
ctx.set_resource(key, value)
|
|
1254
1301
|
ctx.set_resource("queue_lane", QUEUE_LANE_SUPERADMIN)
|
|
1302
|
+
ctx.set_resource("webui_session", True)
|
|
1303
|
+
ctx.set_resource("webui_permission", "superadmin")
|
|
1255
1304
|
|
|
1256
1305
|
result = await self._ctx.ai.ask(
|
|
1257
1306
|
full_question,
|
|
@@ -1330,18 +1379,32 @@ class RuntimeAPIServer:
|
|
|
1330
1379
|
|
|
1331
1380
|
stream = _to_bool(body.get("stream"))
|
|
1332
1381
|
outputs: list[str] = []
|
|
1382
|
+
webui_scope_key = build_attachment_scope(
|
|
1383
|
+
user_id=_VIRTUAL_USER_ID,
|
|
1384
|
+
request_type="private",
|
|
1385
|
+
webui_session=True,
|
|
1386
|
+
)
|
|
1333
1387
|
|
|
1334
1388
|
async def _capture_private_message(user_id: int, message: str) -> None:
|
|
1335
1389
|
_ = user_id
|
|
1336
1390
|
content = str(message or "").strip()
|
|
1337
1391
|
if not content:
|
|
1338
1392
|
return
|
|
1339
|
-
|
|
1393
|
+
rendered = await render_message_with_pic_placeholders(
|
|
1394
|
+
content,
|
|
1395
|
+
registry=self._ctx.ai.attachment_registry,
|
|
1396
|
+
scope_key=webui_scope_key,
|
|
1397
|
+
strict=False,
|
|
1398
|
+
)
|
|
1399
|
+
if not rendered.delivery_text.strip():
|
|
1400
|
+
return
|
|
1401
|
+
outputs.append(rendered.delivery_text)
|
|
1340
1402
|
await self._ctx.history_manager.add_private_message(
|
|
1341
1403
|
user_id=_VIRTUAL_USER_ID,
|
|
1342
|
-
text_content=
|
|
1404
|
+
text_content=rendered.history_text,
|
|
1343
1405
|
display_name="Bot",
|
|
1344
1406
|
user_name="Bot",
|
|
1407
|
+
attachments=rendered.attachments,
|
|
1345
1408
|
)
|
|
1346
1409
|
|
|
1347
1410
|
if not stream:
|
|
@@ -1368,8 +1431,11 @@ class RuntimeAPIServer:
|
|
|
1368
1431
|
message_queue: asyncio.Queue[str] = asyncio.Queue()
|
|
1369
1432
|
|
|
1370
1433
|
async def _capture_private_message_stream(user_id: int, message: str) -> None:
|
|
1434
|
+
output_count = len(outputs)
|
|
1371
1435
|
await _capture_private_message(user_id, message)
|
|
1372
|
-
|
|
1436
|
+
if len(outputs) <= output_count:
|
|
1437
|
+
return
|
|
1438
|
+
content = outputs[-1].strip()
|
|
1373
1439
|
if content:
|
|
1374
1440
|
await message_queue.put(content)
|
|
1375
1441
|
|
|
@@ -1509,6 +1575,43 @@ class RuntimeAPIServer:
|
|
|
1509
1575
|
|
|
1510
1576
|
return filtered
|
|
1511
1577
|
|
|
1578
|
+
def _get_agent_tool_names(self) -> set[str]:
|
|
1579
|
+
ai = self._ctx.ai
|
|
1580
|
+
if ai is None:
|
|
1581
|
+
return set()
|
|
1582
|
+
|
|
1583
|
+
agent_reg = getattr(ai, "agent_registry", None)
|
|
1584
|
+
if agent_reg is None:
|
|
1585
|
+
return set()
|
|
1586
|
+
|
|
1587
|
+
agent_names: set[str] = set()
|
|
1588
|
+
for schema in agent_reg.get_agents_schema():
|
|
1589
|
+
func = schema.get("function", {})
|
|
1590
|
+
name = str(func.get("name", ""))
|
|
1591
|
+
if name:
|
|
1592
|
+
agent_names.add(name)
|
|
1593
|
+
return agent_names
|
|
1594
|
+
|
|
1595
|
+
def _resolve_tool_invoke_timeout(
|
|
1596
|
+
self, tool_name: str, timeout: int
|
|
1597
|
+
) -> float | None:
|
|
1598
|
+
if tool_name in self._get_agent_tool_names():
|
|
1599
|
+
return None
|
|
1600
|
+
return float(timeout)
|
|
1601
|
+
|
|
1602
|
+
async def _await_tool_invoke_result(
|
|
1603
|
+
self,
|
|
1604
|
+
awaitable: Awaitable[Any],
|
|
1605
|
+
*,
|
|
1606
|
+
timeout: float | None,
|
|
1607
|
+
) -> Any:
|
|
1608
|
+
if timeout is None or timeout <= 0:
|
|
1609
|
+
return await awaitable
|
|
1610
|
+
try:
|
|
1611
|
+
return await asyncio.wait_for(awaitable, timeout=timeout)
|
|
1612
|
+
except asyncio.TimeoutError as exc:
|
|
1613
|
+
raise _ToolInvokeExecutionTimeoutError from exc
|
|
1614
|
+
|
|
1512
1615
|
async def _tools_list_handler(self, request: web.Request) -> Response:
|
|
1513
1616
|
_ = request
|
|
1514
1617
|
cfg = self._ctx.config_getter()
|
|
@@ -1659,6 +1762,7 @@ class RuntimeAPIServer:
|
|
|
1659
1762
|
)
|
|
1660
1763
|
|
|
1661
1764
|
start = time.perf_counter()
|
|
1765
|
+
effective_timeout = self._resolve_tool_invoke_timeout(tool_name, timeout)
|
|
1662
1766
|
try:
|
|
1663
1767
|
async with RequestContext(
|
|
1664
1768
|
request_type=request_type,
|
|
@@ -1699,9 +1803,9 @@ class RuntimeAPIServer:
|
|
|
1699
1803
|
if tool_manager is None:
|
|
1700
1804
|
raise RuntimeError("ToolManager not available")
|
|
1701
1805
|
|
|
1702
|
-
raw_result = await
|
|
1806
|
+
raw_result = await self._await_tool_invoke_result(
|
|
1703
1807
|
tool_manager.execute_tool(tool_name, args, tool_context),
|
|
1704
|
-
timeout=
|
|
1808
|
+
timeout=effective_timeout,
|
|
1705
1809
|
)
|
|
1706
1810
|
|
|
1707
1811
|
elapsed_ms = round((time.perf_counter() - start) * 1000, 1)
|
|
@@ -1722,7 +1826,7 @@ class RuntimeAPIServer:
|
|
|
1722
1826
|
"duration_ms": elapsed_ms,
|
|
1723
1827
|
}
|
|
1724
1828
|
|
|
1725
|
-
except
|
|
1829
|
+
except _ToolInvokeExecutionTimeoutError:
|
|
1726
1830
|
elapsed_ms = round((time.perf_counter() - start) * 1000, 1)
|
|
1727
1831
|
logger.warning(
|
|
1728
1832
|
"[ToolInvoke] 执行超时: request_id=%s tool=%s timeout=%ds",
|