Undefined-bot 3.2.5__tar.gz → 3.2.6__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.5 → undefined_bot-3.2.6}/PKG-INFO +10 -10
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/config.toml.example +25 -20
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/pyproject.toml +16 -12
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/__init__.py +1 -1
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/ai/client.py +183 -24
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/ai/llm.py +84 -2
- undefined_bot-3.2.6/src/Undefined/ai/queue_budget.py +74 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/ai/transports/openai_transport.py +75 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/api/app.py +594 -34
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/api/naga_store.py +16 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/cognitive/historian.py +4 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/config/hot_reload.py +2 -1
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/config/loader.py +63 -47
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/config/models.py +5 -4
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/onebot.py +17 -5
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/services/ai_coordinator.py +32 -10
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/services/command.py +22 -3
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/services/queue_manager.py +325 -190
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/services/security.py +42 -9
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/agents/README.md +9 -8
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/agents/code_delivery_agent/handler.py +2 -2
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/agents/intro_generator.py +17 -3
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/agents/runner.py +52 -3
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/commands/lsadmin/README.md +2 -1
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/commands/lsadmin/config.json +1 -1
- undefined_bot-3.2.6/src/Undefined/skills/commands/lsadmin/handler.py +115 -0
- undefined_bot-3.2.6/src/Undefined/skills/commands/naga/README.md +17 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/commands/naga/handler.py +75 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/toolsets/messages/send_message/handler.py +9 -1
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/utils/sender.py +147 -7
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/webui/routes/_runtime.py +11 -4
- undefined_bot-3.2.5/src/Undefined/skills/commands/lsadmin/handler.py +0 -19
- undefined_bot-3.2.5/src/Undefined/skills/commands/naga/README.md +0 -63
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/.gitignore +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/ARCHITECTURE.md +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/LICENSE +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/README.md +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/config/README.md +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/config/mcp.json.example +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/img/head.png +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/img/xlwy.jpg +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/res/IMPORTANT/each.md +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/res/README.md +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/res/prompts/agent_self_intro.txt +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/res/prompts/analyze_multimodal.txt +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/res/prompts/describe_image.txt +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/res/prompts/generate_title.txt +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/res/prompts/historian_profile_merge.md +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/res/prompts/historian_rewrite.md +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/res/prompts/injection_detector.txt +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/res/prompts/injection_response_agent.txt +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/res/prompts/merge_summaries.txt +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/res/prompts/naga_message_moderation.txt +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/res/prompts/stats_analysis.txt +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/res/prompts/summarize.txt +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/res/prompts/undefined.xml +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/res/prompts/undefined_nagaagent.xml +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/README.md +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/README.md +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/__main__.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/ai/__init__.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/ai/http.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/ai/model_selector.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/ai/multimodal.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/ai/parsing.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/ai/prompts.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/ai/retrieval.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/ai/summaries.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/ai/tokens.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/ai/tooling.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/ai/transports/__init__.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/api/__init__.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/bilibili/__init__.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/bilibili/downloader.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/bilibili/parser.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/bilibili/sender.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/bilibili/wbi.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/bilibili/wbi_request.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/cognitive/__init__.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/cognitive/job_queue.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/cognitive/profile_storage.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/cognitive/service.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/cognitive/vector_store.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/config/__init__.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/config/manager.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/context.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/context_resource_registry.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/end_summary_storage.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/faq.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/handlers.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/injection_response_agent.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/knowledge/__init__.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/knowledge/chunker.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/knowledge/embedder.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/knowledge/manager.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/knowledge/reranker.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/knowledge/runtime.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/knowledge/store.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/main.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/mcp/__init__.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/mcp/registry.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/memory.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/rate_limit.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/render.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/scheduled_task_storage.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/services/__init__.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/services/commands/__init__.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/services/commands/context.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/services/commands/registry.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/services/model_pool.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/README.md +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/__init__.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/agents/__init__.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/agents/agent_tool_registry.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/agents/code_delivery_agent/config.json +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/agents/code_delivery_agent/docker_utils.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/agents/code_delivery_agent/intro.md +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/agents/code_delivery_agent/mcp.json +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/agents/code_delivery_agent/prompt.md +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/agents/code_delivery_agent/tools/copy/config.json +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/agents/code_delivery_agent/tools/copy/handler.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/agents/code_delivery_agent/tools/delete/config.json +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/agents/code_delivery_agent/tools/delete/handler.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/agents/code_delivery_agent/tools/diff/config.json +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/agents/code_delivery_agent/tools/diff/handler.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/agents/code_delivery_agent/tools/end/config.json +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/agents/code_delivery_agent/tools/end/handler.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/agents/code_delivery_agent/tools/glob/config.json +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/agents/code_delivery_agent/tools/glob/handler.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/agents/code_delivery_agent/tools/grep/config.json +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/agents/code_delivery_agent/tools/grep/handler.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/agents/code_delivery_agent/tools/init_docker/config.json +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/agents/code_delivery_agent/tools/init_docker/handler.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/agents/code_delivery_agent/tools/read/config.json +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/agents/code_delivery_agent/tools/read/handler.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/agents/code_delivery_agent/tools/run_bash_command/config.json +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/agents/code_delivery_agent/tools/run_bash_command/handler.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/agents/code_delivery_agent/tools/todo/config.json +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/agents/code_delivery_agent/tools/todo/handler.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/agents/code_delivery_agent/tools/tree/config.json +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/agents/code_delivery_agent/tools/tree/handler.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/agents/code_delivery_agent/tools/write/config.json +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/agents/code_delivery_agent/tools/write/handler.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/agents/entertainment_agent/README.md +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/agents/entertainment_agent/config.json +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/agents/entertainment_agent/handler.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/agents/entertainment_agent/intro.md +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/agents/entertainment_agent/prompt.md +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/agents/entertainment_agent/tools/__init__.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/agents/entertainment_agent/tools/ai_draw_one/config.json +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/agents/entertainment_agent/tools/ai_draw_one/handler.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/agents/entertainment_agent/tools/horoscope/config.json +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/agents/entertainment_agent/tools/horoscope/handler.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/agents/entertainment_agent/tools/minecraft_skin/config.json +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/agents/entertainment_agent/tools/minecraft_skin/handler.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/agents/entertainment_agent/tools/renjian/config.json +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/agents/entertainment_agent/tools/renjian/handler.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/agents/entertainment_agent/tools/wenchang_dijun/config.json +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/agents/entertainment_agent/tools/wenchang_dijun/handler.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/agents/file_analysis_agent/README.md +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/agents/file_analysis_agent/__init__.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/agents/file_analysis_agent/config.json +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/agents/file_analysis_agent/handler.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/agents/file_analysis_agent/intro.md +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/agents/file_analysis_agent/prompt.md +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/agents/file_analysis_agent/tools/__init__.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/agents/file_analysis_agent/tools/analyze_code/config.json +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/agents/file_analysis_agent/tools/analyze_code/handler.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/agents/file_analysis_agent/tools/analyze_multimodal/config.json +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/agents/file_analysis_agent/tools/analyze_multimodal/handler.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/agents/file_analysis_agent/tools/cleanup_temp/config.json +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/agents/file_analysis_agent/tools/cleanup_temp/handler.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/agents/file_analysis_agent/tools/detect_file_type/config.json +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/agents/file_analysis_agent/tools/detect_file_type/handler.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/agents/file_analysis_agent/tools/download_file/config.json +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/agents/file_analysis_agent/tools/download_file/handler.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/agents/file_analysis_agent/tools/extract_archive/config.json +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/agents/file_analysis_agent/tools/extract_archive/handler.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/agents/file_analysis_agent/tools/extract_docx/config.json +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/agents/file_analysis_agent/tools/extract_docx/handler.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/agents/file_analysis_agent/tools/extract_pdf/config.json +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/agents/file_analysis_agent/tools/extract_pdf/handler.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/agents/file_analysis_agent/tools/extract_pptx/config.json +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/agents/file_analysis_agent/tools/extract_pptx/handler.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/agents/file_analysis_agent/tools/extract_xlsx/config.json +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/agents/file_analysis_agent/tools/extract_xlsx/handler.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/agents/file_analysis_agent/tools/read_text_file/config.json +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/agents/file_analysis_agent/tools/read_text_file/handler.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/agents/info_agent/README.md +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/agents/info_agent/config.json +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/agents/info_agent/handler.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/agents/info_agent/intro.md +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/agents/info_agent/prompt.md +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/agents/info_agent/tools/__init__.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/agents/info_agent/tools/baiduhot/config.json +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/agents/info_agent/tools/baiduhot/handler.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/agents/info_agent/tools/base64/config.json +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/agents/info_agent/tools/base64/handler.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/agents/info_agent/tools/bilibili_search/config.json +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/agents/info_agent/tools/bilibili_search/handler.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/agents/info_agent/tools/bilibili_user_info/config.json +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/agents/info_agent/tools/bilibili_user_info/handler.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/agents/info_agent/tools/douyinhot/config.json +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/agents/info_agent/tools/douyinhot/handler.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/agents/info_agent/tools/gold_price/config.json +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/agents/info_agent/tools/gold_price/handler.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/agents/info_agent/tools/hash/config.json +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/agents/info_agent/tools/hash/handler.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/agents/info_agent/tools/history/config.json +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/agents/info_agent/tools/history/handler.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/agents/info_agent/tools/net_check/config.json +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/agents/info_agent/tools/net_check/handler.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/agents/info_agent/tools/qq_level_query/config.json +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/agents/info_agent/tools/qq_level_query/handler.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/agents/info_agent/tools/speed/config.json +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/agents/info_agent/tools/speed/handler.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/agents/info_agent/tools/tcping/config.json +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/agents/info_agent/tools/tcping/handler.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/agents/info_agent/tools/weather_query/config.json +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/agents/info_agent/tools/weather_query/handler.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/agents/info_agent/tools/weibohot/config.json +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/agents/info_agent/tools/weibohot/handler.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/agents/info_agent/tools/whois/config.json +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/agents/info_agent/tools/whois/handler.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/agents/intro_utils.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/agents/naga_code_analysis_agent/README.md +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/agents/naga_code_analysis_agent/config.json +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/agents/naga_code_analysis_agent/handler.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/agents/naga_code_analysis_agent/intro.md +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/agents/naga_code_analysis_agent/mcp.json +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/agents/naga_code_analysis_agent/prompt.md +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/agents/naga_code_analysis_agent/tools/__init__.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/agents/naga_code_analysis_agent/tools/glob/config.json +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/agents/naga_code_analysis_agent/tools/glob/handler.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/agents/naga_code_analysis_agent/tools/list_directory/config.json +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/agents/naga_code_analysis_agent/tools/list_directory/handler.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/agents/naga_code_analysis_agent/tools/read_file/config.json +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/agents/naga_code_analysis_agent/tools/read_file/handler.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/agents/naga_code_analysis_agent/tools/read_naga_intro/config.json +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/agents/naga_code_analysis_agent/tools/read_naga_intro/handler.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/agents/naga_code_analysis_agent/tools/search_file_content/config.json +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/agents/naga_code_analysis_agent/tools/search_file_content/handler.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/agents/web_agent/README.md +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/agents/web_agent/callable.json +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/agents/web_agent/config.json +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/agents/web_agent/handler.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/agents/web_agent/intro.md +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/agents/web_agent/mcp.json +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/agents/web_agent/prompt.md +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/agents/web_agent/tools/__init__.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/agents/web_agent/tools/crawl_webpage/config.json +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/agents/web_agent/tools/crawl_webpage/handler.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/agents/web_agent/tools/web_search/config.json +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/agents/web_agent/tools/web_search/handler.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/anthropic_skills/__init__.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/anthropic_skills/loader.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/commands/README.md +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/commands/addadmin/README.md +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/commands/addadmin/config.json +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/commands/addadmin/handler.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/commands/bugfix/README.md +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/commands/bugfix/config.json +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/commands/bugfix/handler.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/commands/copyright/README.md +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/commands/copyright/config.json +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/commands/copyright/handler.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/commands/delfaq/README.md +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/commands/delfaq/config.json +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/commands/delfaq/handler.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/commands/help/README.md +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/commands/help/config.json +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/commands/help/handler.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/commands/lsfaq/README.md +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/commands/lsfaq/config.json +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/commands/lsfaq/handler.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/commands/naga/config.json +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/commands/naga/policy.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/commands/naga/scopes.json +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/commands/rmadmin/README.md +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/commands/rmadmin/config.json +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/commands/rmadmin/handler.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/commands/searchfaq/README.md +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/commands/searchfaq/config.json +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/commands/searchfaq/handler.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/commands/stats/README.md +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/commands/stats/config.json +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/commands/stats/handler.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/commands/viewfaq/README.md +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/commands/viewfaq/config.json +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/commands/viewfaq/handler.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/http_client.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/http_config.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/registry.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/tools/README.md +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/tools/__init__.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/tools/bilibili_video/README.md +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/tools/bilibili_video/config.json +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/tools/bilibili_video/handler.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/tools/end/README.md +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/tools/end/config.json +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/tools/end/handler.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/tools/get_current_time/README.md +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/tools/get_current_time/callable.json +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/tools/get_current_time/config.json +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/tools/get_current_time/handler.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/tools/get_picture/README.md +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/tools/get_picture/config.json +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/tools/get_picture/handler.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/tools/get_user_info/README.md +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/tools/get_user_info/config.json +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/tools/get_user_info/handler.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/tools/knowledge_list/config.json +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/tools/knowledge_list/handler.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/tools/knowledge_semantic_search/config.json +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/tools/knowledge_semantic_search/handler.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/tools/knowledge_text_search/config.json +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/tools/knowledge_text_search/handler.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/tools/python_interpreter/README.md +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/tools/python_interpreter/config.json +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/tools/python_interpreter/handler.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/tools/qq_like/README.md +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/tools/qq_like/config.json +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/tools/qq_like/handler.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/tools/task_progress/config.json +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/tools/task_progress/handler.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/toolsets/README.md +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/toolsets/__init__.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/toolsets/cognitive/get_profile/config.json +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/toolsets/cognitive/get_profile/handler.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/toolsets/cognitive/search_events/config.json +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/toolsets/cognitive/search_events/handler.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/toolsets/cognitive/search_profiles/config.json +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/toolsets/cognitive/search_profiles/handler.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/toolsets/contacts/query_friends/config.json +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/toolsets/contacts/query_friends/handler.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/toolsets/contacts/query_groups/config.json +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/toolsets/contacts/query_groups/handler.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/toolsets/group/README.md +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/toolsets/group/activity_trend/config.json +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/toolsets/group/activity_trend/handler.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/toolsets/group/detect_inactive_risk/config.json +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/toolsets/group/detect_inactive_risk/handler.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/toolsets/group/filter_members/config.json +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/toolsets/group/filter_members/handler.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/toolsets/group/find_member/config.json +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/toolsets/group/find_member/handler.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/toolsets/group/get_files/config.json +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/toolsets/group/get_files/handler.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/toolsets/group/get_honor_info/config.json +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/toolsets/group/get_honor_info/handler.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/toolsets/group/get_member_activity/config.json +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/toolsets/group/get_member_activity/handler.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/toolsets/group/get_member_info/config.json +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/toolsets/group/get_member_info/handler.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/toolsets/group/get_member_list/config.json +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/toolsets/group/get_member_list/handler.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/toolsets/group/get_member_title/config.json +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/toolsets/group/get_member_title/handler.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/toolsets/group/level_distribution/config.json +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/toolsets/group/level_distribution/handler.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/toolsets/group/rank_members/config.json +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/toolsets/group/rank_members/handler.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/toolsets/group_analysis/analyze_join_statistics/config.json +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/toolsets/group_analysis/analyze_join_statistics/handler.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/toolsets/group_analysis/analyze_member_messages/config.json +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/toolsets/group_analysis/analyze_member_messages/handler.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/toolsets/group_analysis/analyze_new_member_activity/config.json +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/toolsets/group_analysis/analyze_new_member_activity/handler.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/toolsets/mcp/README.md +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/toolsets/mcp/__init__.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/toolsets/memory/README.md +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/toolsets/memory/add/config.json +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/toolsets/memory/add/handler.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/toolsets/memory/delete/config.json +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/toolsets/memory/delete/handler.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/toolsets/memory/list/config.json +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/toolsets/memory/list/handler.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/toolsets/memory/update/config.json +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/toolsets/memory/update/handler.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/toolsets/messages/README.md +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/toolsets/messages/get_forward_msg/config.json +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/toolsets/messages/get_forward_msg/handler.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/toolsets/messages/get_messages_by_time/config.json +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/toolsets/messages/get_messages_by_time/handler.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/toolsets/messages/get_recent_messages/config.json +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/toolsets/messages/get_recent_messages/handler.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/toolsets/messages/list_emojis/config.json +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/toolsets/messages/list_emojis/handler.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/toolsets/messages/lookup_emoji_id/config.json +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/toolsets/messages/lookup_emoji_id/handler.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/toolsets/messages/react_message_emoji/config.json +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/toolsets/messages/react_message_emoji/handler.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/toolsets/messages/send_group_sign/config.json +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/toolsets/messages/send_group_sign/handler.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/toolsets/messages/send_message/config.json +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/toolsets/messages/send_poke/config.json +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/toolsets/messages/send_poke/handler.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/toolsets/messages/send_private_message/config.json +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/toolsets/messages/send_private_message/handler.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/toolsets/messages/send_text_file/callable.json +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/toolsets/messages/send_text_file/config.json +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/toolsets/messages/send_text_file/handler.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/toolsets/messages/send_url_file/callable.json +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/toolsets/messages/send_url_file/config.json +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/toolsets/messages/send_url_file/handler.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/toolsets/notices/README.md +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/toolsets/notices/get/config.json +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/toolsets/notices/get/handler.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/toolsets/notices/list/config.json +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/toolsets/notices/list/handler.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/toolsets/notices/stats/config.json +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/toolsets/notices/stats/handler.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/toolsets/render/README.md +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/toolsets/render/render_html/config.json +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/toolsets/render/render_html/handler.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/toolsets/render/render_latex/config.json +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/toolsets/render/render_latex/handler.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/toolsets/render/render_markdown/config.json +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/toolsets/render/render_markdown/handler.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/toolsets/scheduler/README.md +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/toolsets/scheduler/create_schedule_task/config.json +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/toolsets/scheduler/create_schedule_task/handler.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/toolsets/scheduler/delete_schedule_task/config.json +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/toolsets/scheduler/delete_schedule_task/handler.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/toolsets/scheduler/list_schedule_tasks/config.json +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/toolsets/scheduler/list_schedule_tasks/handler.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/toolsets/scheduler/update_schedule_task/config.json +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/skills/toolsets/scheduler/update_schedule_task/handler.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/token_usage_storage.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/utils/__init__.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/utils/cache.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/utils/common.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/utils/cors.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/utils/file_lock.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/utils/group_metrics.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/utils/history.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/utils/io.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/utils/logging.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/utils/member_utils.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/utils/message_utils.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/utils/paths.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/utils/qq_emoji.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/utils/queue_intervals.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/utils/recent_messages.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/utils/request_params.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/utils/resources.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/utils/scheduler.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/utils/self_update.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/utils/time_utils.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/utils/tool_calls.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/utils/xml.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/webui/__init__.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/webui/__main__.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/webui/app.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/webui/core.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/webui/routes/__init__.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/webui/routes/_auth.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/webui/routes/_bot.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/webui/routes/_config.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/webui/routes/_index.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/webui/routes/_logs.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/webui/routes/_shared.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/webui/routes/_system.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/webui/static/css/.stylelintrc.json +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/webui/static/css/app.css +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/webui/static/css/base.css +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/webui/static/css/components.css +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/webui/static/css/landing.css +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/webui/static/css/responsive.css +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/webui/static/css/style.css +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/webui/static/css/variables.css +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/webui/static/favicon.svg +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/webui/static/js/api.js +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/webui/static/js/auth.js +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/webui/static/js/bot.js +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/webui/static/js/config-form.js +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/webui/static/js/i18n.js +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/webui/static/js/log-view.js +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/webui/static/js/logs.js +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/webui/static/js/main.js +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/webui/static/js/runtime.js +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/webui/static/js/state.js +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/webui/static/js/ui.js +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/webui/static/js/vendor/marked.min.js +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/webui/templates/index.html +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/webui/utils/__init__.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/webui/utils/comment.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/webui/utils/config_io.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/webui/utils/config_sync.py +0 -0
- {undefined_bot-3.2.5 → undefined_bot-3.2.6}/src/Undefined/webui/utils/toml_render.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: Undefined-bot
|
|
3
|
-
Version: 3.2.
|
|
3
|
+
Version: 3.2.6
|
|
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
|
|
@@ -10,11 +10,11 @@ Requires-Python: <3.14,>=3.11
|
|
|
10
10
|
Requires-Dist: aiofiles>=25.1.0
|
|
11
11
|
Requires-Dist: aiohttp>=3.13.2
|
|
12
12
|
Requires-Dist: apscheduler>=3.10.0
|
|
13
|
-
Requires-Dist: chardet>=
|
|
14
|
-
Requires-Dist: chromadb>=
|
|
15
|
-
Requires-Dist: crawl4ai>=0.
|
|
16
|
-
Requires-Dist: croniter>=2.
|
|
17
|
-
Requires-Dist: fastmcp>=
|
|
13
|
+
Requires-Dist: chardet>=7.2.0
|
|
14
|
+
Requires-Dist: chromadb>=1.5.5
|
|
15
|
+
Requires-Dist: crawl4ai>=0.8.5
|
|
16
|
+
Requires-Dist: croniter>=6.2.2
|
|
17
|
+
Requires-Dist: fastmcp>=3.1.1
|
|
18
18
|
Requires-Dist: httpx>=0.27.0
|
|
19
19
|
Requires-Dist: imgkit
|
|
20
20
|
Requires-Dist: langchain-community>=0.3.0
|
|
@@ -27,14 +27,14 @@ Requires-Dist: matplotlib
|
|
|
27
27
|
Requires-Dist: mdit-py-plugins>=0.5.0
|
|
28
28
|
Requires-Dist: numba>=0.61.0
|
|
29
29
|
Requires-Dist: oh-my-bilibili>=0.1.2
|
|
30
|
-
Requires-Dist: openai>=2.
|
|
30
|
+
Requires-Dist: openai>=2.29.0
|
|
31
31
|
Requires-Dist: openpyxl>=3.1.5
|
|
32
32
|
Requires-Dist: pillow
|
|
33
33
|
Requires-Dist: playwright>=1.57.0
|
|
34
34
|
Requires-Dist: psutil>=7.2.2
|
|
35
35
|
Requires-Dist: py7zr>=1.1.0
|
|
36
36
|
Requires-Dist: pymdown-extensions>=10.20
|
|
37
|
-
Requires-Dist: pymupdf
|
|
37
|
+
Requires-Dist: pymupdf!=1.27.2.2,>=1.27.2
|
|
38
38
|
Requires-Dist: pypinyin>=0.53.0
|
|
39
39
|
Requires-Dist: python-docx>=1.2.0
|
|
40
40
|
Requires-Dist: python-dotenv>=1.0.0
|
|
@@ -49,13 +49,13 @@ Requires-Dist: types-markdown>=3.10.0.20251106
|
|
|
49
49
|
Requires-Dist: websockets>=12.0
|
|
50
50
|
Provides-Extra: ci
|
|
51
51
|
Requires-Dist: mypy>=1.8.0; extra == 'ci'
|
|
52
|
-
Requires-Dist: ruff; extra == 'ci'
|
|
52
|
+
Requires-Dist: ruff>=0.15.6; extra == 'ci'
|
|
53
53
|
Provides-Extra: dev
|
|
54
54
|
Requires-Dist: mypy>=1.8.0; extra == 'dev'
|
|
55
55
|
Requires-Dist: pytest-asyncio>=0.23.0; extra == 'dev'
|
|
56
56
|
Requires-Dist: pytest-cov>=5.0.0; extra == 'dev'
|
|
57
57
|
Requires-Dist: pytest>=8.0.0; extra == 'dev'
|
|
58
|
-
Requires-Dist: ruff; extra == 'dev'
|
|
58
|
+
Requires-Dist: ruff>=0.15.6; extra == 'dev'
|
|
59
59
|
Description-Content-Type: text/markdown
|
|
60
60
|
|
|
61
61
|
<table border="0">
|
|
@@ -25,8 +25,8 @@ process_poke_message = true
|
|
|
25
25
|
# zh: 注入给模型的最近历史消息条数上限(0-200,0 表示不注入历史)。
|
|
26
26
|
# en: Max number of recent messages injected as model context (0-200; 0 disables history injection).
|
|
27
27
|
context_recent_messages_limit = 20
|
|
28
|
-
# zh:
|
|
29
|
-
# en: Max retries for failed
|
|
28
|
+
# zh: 单次 LLM 请求失败时最大静默重试次数(0=不重试,默认2)。失败的请求会回到原队列的第 2 个位置。
|
|
29
|
+
# en: Max silent retries for a single failed LLM request (0=no retry, default 2). Failed requests are reinserted at position 2 of their original queue lane.
|
|
30
30
|
ai_request_max_retries = 2
|
|
31
31
|
|
|
32
32
|
# zh: 访问控制。mode 可选:off(不启用)/ blacklist(按黑名单)/ allowlist(按白名单)。
|
|
@@ -86,8 +86,8 @@ model_name = ""
|
|
|
86
86
|
# zh: 最大生成 tokens。
|
|
87
87
|
# en: Max generation tokens.
|
|
88
88
|
max_tokens = 8192
|
|
89
|
-
# zh:
|
|
90
|
-
# en: Queue interval (seconds).
|
|
89
|
+
# zh: 队列发车间隔(秒,0 表示立即发车)。
|
|
90
|
+
# en: Queue interval (seconds; 0 dispatches immediately).
|
|
91
91
|
queue_interval_seconds = 1.0
|
|
92
92
|
# zh: API 模式:传统 chat.completions 或新版 responses。
|
|
93
93
|
# en: API mode: classic chat.completions or the newer responses API.
|
|
@@ -149,8 +149,8 @@ api_key = ""
|
|
|
149
149
|
# zh: Vision 模型名称。
|
|
150
150
|
# en: Vision model name.
|
|
151
151
|
model_name = ""
|
|
152
|
-
# zh:
|
|
153
|
-
# en: Queue interval (seconds).
|
|
152
|
+
# zh: 队列发车间隔(秒,0 表示立即发车)。
|
|
153
|
+
# en: Queue interval (seconds; 0 dispatches immediately).
|
|
154
154
|
queue_interval_seconds = 1.0
|
|
155
155
|
# zh: API 模式:传统 chat.completions 或新版 responses。
|
|
156
156
|
# en: API mode: classic chat.completions or the newer responses API.
|
|
@@ -205,8 +205,8 @@ model_name = ""
|
|
|
205
205
|
# zh: 可选限制:最大生成 tokens。
|
|
206
206
|
# en: Optional limit: max generation tokens.
|
|
207
207
|
max_tokens = 100
|
|
208
|
-
# zh:
|
|
209
|
-
# en: Queue interval (seconds).
|
|
208
|
+
# zh: 队列发车间隔(秒,0 表示立即发车)。
|
|
209
|
+
# en: Queue interval (seconds; 0 dispatches immediately).
|
|
210
210
|
queue_interval_seconds = 1.0
|
|
211
211
|
# zh: API 模式:传统 chat.completions 或新版 responses。
|
|
212
212
|
# en: API mode: classic chat.completions or the newer responses API.
|
|
@@ -260,8 +260,8 @@ model_name = ""
|
|
|
260
260
|
# zh: 可选限制:最大生成 tokens。
|
|
261
261
|
# en: Optional limit: max generation tokens.
|
|
262
262
|
max_tokens = 160
|
|
263
|
-
# zh:
|
|
264
|
-
# en: Queue interval (seconds).
|
|
263
|
+
# zh: 队列发车间隔(秒,0 表示立即发车)。
|
|
264
|
+
# en: Queue interval (seconds; 0 dispatches immediately).
|
|
265
265
|
queue_interval_seconds = 1.0
|
|
266
266
|
# zh: API 模式:传统 chat.completions 或新版 responses。
|
|
267
267
|
# en: API mode: classic chat.completions or the newer responses API.
|
|
@@ -313,8 +313,8 @@ model_name = ""
|
|
|
313
313
|
# zh: 可选限制:最大生成 tokens。
|
|
314
314
|
# en: Optional limit: max generation tokens.
|
|
315
315
|
max_tokens = 4096
|
|
316
|
-
# zh:
|
|
317
|
-
# en: Queue interval (seconds).
|
|
316
|
+
# zh: 队列发车间隔(秒,0 表示立即发车)。
|
|
317
|
+
# en: Queue interval (seconds; 0 dispatches immediately).
|
|
318
318
|
queue_interval_seconds = 1.0
|
|
319
319
|
# zh: API 模式:传统 chat.completions 或新版 responses。
|
|
320
320
|
# en: API mode: classic chat.completions or the newer responses API.
|
|
@@ -379,8 +379,8 @@ model_name = ""
|
|
|
379
379
|
# zh: 可选限制:最大生成 tokens。
|
|
380
380
|
# en: Optional limit: max generation tokens.
|
|
381
381
|
max_tokens = 4096
|
|
382
|
-
# zh:
|
|
383
|
-
# en: Queue interval (seconds).
|
|
382
|
+
# zh: 队列发车间隔(秒,0 表示立即发车)。
|
|
383
|
+
# en: Queue interval (seconds; 0 dispatches immediately).
|
|
384
384
|
queue_interval_seconds = 1.0
|
|
385
385
|
# zh: API 模式:传统 chat.completions 或新版 responses。
|
|
386
386
|
# en: API mode: classic chat.completions or the newer responses API.
|
|
@@ -429,8 +429,8 @@ api_key = ""
|
|
|
429
429
|
# zh: Embedding 模型名称。
|
|
430
430
|
# en: Embedding model name.
|
|
431
431
|
model_name = ""
|
|
432
|
-
# zh:
|
|
433
|
-
# en: Queue interval (seconds).
|
|
432
|
+
# zh: 队列发车间隔(秒,0 表示立即发车)。
|
|
433
|
+
# en: Queue interval (seconds; 0 dispatches immediately).
|
|
434
434
|
queue_interval_seconds = 1.0
|
|
435
435
|
# zh: 向量维度(可选)。0 或留空表示使用模型默认维度。
|
|
436
436
|
# en: Embedding dimensions (optional). Use 0/empty to use model defaults.
|
|
@@ -458,8 +458,8 @@ api_key = ""
|
|
|
458
458
|
# zh: Rerank 模型名称。
|
|
459
459
|
# en: Rerank model name.
|
|
460
460
|
model_name = ""
|
|
461
|
-
# zh:
|
|
462
|
-
# en: Queue interval (seconds).
|
|
461
|
+
# zh: 队列发车间隔(秒,0 表示立即发车)。
|
|
462
|
+
# en: Queue interval (seconds; 0 dispatches immediately).
|
|
463
463
|
queue_interval_seconds = 1.0
|
|
464
464
|
# zh: 查询端指令前缀(可选,部分 rerank 模型需要,如 "Instruct: ...\\nQuery: ")。
|
|
465
465
|
# en: Query instruction prefix (optional, required by some rerank models, e.g. "Instruct: ...\\nQuery: ").
|
|
@@ -597,8 +597,8 @@ hot_reload_debounce = 0.5
|
|
|
597
597
|
# zh: Agent intro 自动生成(推荐开启)。
|
|
598
598
|
# en: Agent intro auto-generation (recommended).
|
|
599
599
|
intro_autogen_enabled = true
|
|
600
|
-
# zh:
|
|
601
|
-
# en: Queue interval (seconds).
|
|
600
|
+
# zh: 队列发车间隔(秒,0 表示立即发车)。
|
|
601
|
+
# en: Queue interval (seconds; 0 dispatches immediately).
|
|
602
602
|
intro_autogen_queue_interval = 1.0
|
|
603
603
|
# zh: 单次生成最大 token。
|
|
604
604
|
# en: Max tokens per generation.
|
|
@@ -952,6 +952,11 @@ api_url = ""
|
|
|
952
952
|
# zh: 双方共享密钥(Undefined ↔ Naga 身份验证)。
|
|
953
953
|
# en: Shared secret key for authentication between Undefined and Naga.
|
|
954
954
|
api_key = ""
|
|
955
|
+
# zh: 是否启用 Naga 外发消息审核。
|
|
956
|
+
# zh: 关闭后 /api/v1/naga/messages/send 会直接跳过本地审核,返回 moderation.status=skipped_disabled。
|
|
957
|
+
# en: Whether to enable Naga outbound message moderation.
|
|
958
|
+
# en: When disabled, /api/v1/naga/messages/send skips local moderation and returns moderation.status=skipped_disabled.
|
|
959
|
+
moderation_enabled = true
|
|
955
960
|
# zh: Naga 白名单群:/naga 在这些群中才可见;绑定和群聊投递也仅限这些群。
|
|
956
961
|
# en: Naga allowlisted groups: /naga is only visible here, and binding/group delivery are restricted to these groups.
|
|
957
962
|
allowed_groups = []
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "Undefined-bot"
|
|
3
|
-
version = "3.2.
|
|
3
|
+
version = "3.2.6"
|
|
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 = [
|
|
@@ -12,9 +12,9 @@ dependencies = [
|
|
|
12
12
|
"httpx>=0.27.0",
|
|
13
13
|
"python-dotenv>=1.0.0",
|
|
14
14
|
"tiktoken>=0.7.0",
|
|
15
|
-
"chardet>=
|
|
15
|
+
"chardet>=7.2.0",
|
|
16
16
|
"langchain-community>=0.3.0",
|
|
17
|
-
"crawl4ai>=0.
|
|
17
|
+
"crawl4ai>=0.8.5",
|
|
18
18
|
"matplotlib",
|
|
19
19
|
"pillow",
|
|
20
20
|
"imgkit",
|
|
@@ -31,22 +31,22 @@ dependencies = [
|
|
|
31
31
|
"aiohttp>=3.13.2",
|
|
32
32
|
"types-aiofiles>=25.1.0.20251011",
|
|
33
33
|
"APScheduler>=3.10.0",
|
|
34
|
-
"croniter>=2.
|
|
35
|
-
"pymupdf>=1.
|
|
34
|
+
"croniter>=6.2.2",
|
|
35
|
+
"pymupdf>=1.27.2,!=1.27.2.2",
|
|
36
36
|
"python-docx>=1.2.0",
|
|
37
37
|
"python-pptx>=1.0.2",
|
|
38
38
|
"openpyxl>=3.1.5",
|
|
39
39
|
"py7zr>=1.1.0",
|
|
40
40
|
"rarfile>=4.2",
|
|
41
|
-
"fastmcp>=
|
|
41
|
+
"fastmcp>=3.1.1",
|
|
42
42
|
"lxml>=5.4.0",
|
|
43
43
|
"rich>=14.2.0",
|
|
44
|
-
"openai>=2.
|
|
44
|
+
"openai>=2.29.0",
|
|
45
45
|
"psutil>=7.2.2",
|
|
46
46
|
"pyyaml>=6.0.3",
|
|
47
47
|
"pypinyin>=0.53.0",
|
|
48
48
|
"oh-my-bilibili>=0.1.2",
|
|
49
|
-
"chromadb>=
|
|
49
|
+
"chromadb>=1.5.5",
|
|
50
50
|
"numba>=0.61.0",
|
|
51
51
|
]
|
|
52
52
|
|
|
@@ -62,13 +62,13 @@ Undefined-webui = "Undefined.webui:run"
|
|
|
62
62
|
[project.optional-dependencies]
|
|
63
63
|
dev = [
|
|
64
64
|
"mypy>=1.8.0",
|
|
65
|
-
"ruff",
|
|
65
|
+
"ruff>=0.15.6",
|
|
66
66
|
"pytest>=8.0.0",
|
|
67
67
|
"pytest-asyncio>=0.23.0",
|
|
68
68
|
"pytest-cov>=5.0.0",
|
|
69
69
|
]
|
|
70
70
|
ci = [
|
|
71
|
-
"ruff",
|
|
71
|
+
"ruff>=0.15.6",
|
|
72
72
|
"mypy>=1.8.0",
|
|
73
73
|
]
|
|
74
74
|
|
|
@@ -105,6 +105,10 @@ include = [
|
|
|
105
105
|
python_version = "3.12"
|
|
106
106
|
strict = true
|
|
107
107
|
ignore_missing_imports = true
|
|
108
|
+
exclude = ["^code/"]
|
|
109
|
+
|
|
110
|
+
[tool.ruff]
|
|
111
|
+
exclude = ["code"]
|
|
108
112
|
|
|
109
113
|
[tool.pytest.ini_options]
|
|
110
114
|
asyncio_mode = "auto"
|
|
@@ -113,13 +117,13 @@ testpaths = ["tests"]
|
|
|
113
117
|
[dependency-groups]
|
|
114
118
|
dev = [
|
|
115
119
|
"mypy>=1.8.0",
|
|
116
|
-
"ruff",
|
|
120
|
+
"ruff>=0.15.6",
|
|
117
121
|
"pytest>=8.0.0",
|
|
118
122
|
"pytest-asyncio>=0.23.0",
|
|
119
123
|
"pytest-cov>=5.0.0",
|
|
120
124
|
"types-pyyaml>=6.0.12.20250915",
|
|
121
125
|
]
|
|
122
126
|
ci = [
|
|
123
|
-
"ruff",
|
|
127
|
+
"ruff>=0.15.6",
|
|
124
128
|
"mypy>=1.8.0",
|
|
125
129
|
]
|
|
@@ -17,7 +17,12 @@ from Undefined.ai.llm import ModelRequester
|
|
|
17
17
|
from Undefined.ai.model_selector import ModelSelector
|
|
18
18
|
from Undefined.ai.multimodal import MultimodalAnalyzer
|
|
19
19
|
from Undefined.ai.prompts import PromptBuilder
|
|
20
|
+
from Undefined.ai.queue_budget import (
|
|
21
|
+
compute_queued_llm_timeout_seconds,
|
|
22
|
+
resolve_effective_retry_count,
|
|
23
|
+
)
|
|
20
24
|
from Undefined.ai.summaries import SummaryService
|
|
25
|
+
from Undefined.ai.transports.openai_transport import RESPONSES_OUTPUT_ITEMS_KEY
|
|
21
26
|
from Undefined.ai.tokens import TokenCounter
|
|
22
27
|
from Undefined.ai.tooling import ToolManager
|
|
23
28
|
from Undefined.config import (
|
|
@@ -37,6 +42,15 @@ from Undefined.skills.agents.intro_generator import (
|
|
|
37
42
|
)
|
|
38
43
|
from Undefined.skills.anthropic_skills import AnthropicSkillRegistry
|
|
39
44
|
from Undefined.skills.tools import ToolRegistry
|
|
45
|
+
from Undefined.services.queue_manager import (
|
|
46
|
+
ALL_QUEUE_LANES,
|
|
47
|
+
QUEUE_LANE_BACKGROUND,
|
|
48
|
+
QUEUE_LANE_GROUP_MENTION,
|
|
49
|
+
QUEUE_LANE_GROUP_NORMAL,
|
|
50
|
+
QUEUE_LANE_GROUP_SUPERADMIN,
|
|
51
|
+
QUEUE_LANE_PRIVATE,
|
|
52
|
+
QUEUE_LANE_SUPERADMIN,
|
|
53
|
+
)
|
|
40
54
|
from Undefined.token_usage_storage import TokenUsageStorage
|
|
41
55
|
from Undefined.utils.logging import log_debug_json, redact_string
|
|
42
56
|
from Undefined.utils.tool_calls import parse_tool_arguments
|
|
@@ -312,7 +326,46 @@ class AIClient:
|
|
|
312
326
|
|
|
313
327
|
logger.info("[清理] AIClient 已关闭")
|
|
314
328
|
|
|
315
|
-
|
|
329
|
+
def _resolve_queue_lane(self, queue_lane: Any = None) -> str:
|
|
330
|
+
queue_lane_text = str(queue_lane or "").strip().lower()
|
|
331
|
+
if queue_lane_text in ALL_QUEUE_LANES:
|
|
332
|
+
return queue_lane_text
|
|
333
|
+
|
|
334
|
+
ctx = RequestContext.current()
|
|
335
|
+
if ctx is not None:
|
|
336
|
+
ctx_lane = str(ctx.get_resource("queue_lane") or "").strip().lower()
|
|
337
|
+
if ctx_lane in ALL_QUEUE_LANES:
|
|
338
|
+
return ctx_lane
|
|
339
|
+
|
|
340
|
+
runtime_config = self._get_runtime_config()
|
|
341
|
+
superadmin_qq = int(getattr(runtime_config, "superadmin_qq", 0) or 0)
|
|
342
|
+
if ctx.request_type == "private":
|
|
343
|
+
if superadmin_qq > 0 and (
|
|
344
|
+
ctx.user_id == superadmin_qq or ctx.sender_id == superadmin_qq
|
|
345
|
+
):
|
|
346
|
+
return QUEUE_LANE_SUPERADMIN
|
|
347
|
+
return QUEUE_LANE_PRIVATE
|
|
348
|
+
if ctx.request_type == "group":
|
|
349
|
+
if superadmin_qq > 0 and ctx.sender_id == superadmin_qq:
|
|
350
|
+
return QUEUE_LANE_GROUP_SUPERADMIN
|
|
351
|
+
if bool(ctx.get_resource("is_at_bot")):
|
|
352
|
+
return QUEUE_LANE_GROUP_MENTION
|
|
353
|
+
return QUEUE_LANE_GROUP_NORMAL
|
|
354
|
+
|
|
355
|
+
return QUEUE_LANE_BACKGROUND
|
|
356
|
+
|
|
357
|
+
def _get_queued_llm_wait_timeout_seconds(self) -> float:
|
|
358
|
+
retry_count = resolve_effective_retry_count(
|
|
359
|
+
self._get_runtime_config(),
|
|
360
|
+
getattr(self, "_queue_manager", None),
|
|
361
|
+
)
|
|
362
|
+
return compute_queued_llm_timeout_seconds(
|
|
363
|
+
self._get_runtime_config(),
|
|
364
|
+
self.chat_config,
|
|
365
|
+
retry_count=retry_count,
|
|
366
|
+
)
|
|
367
|
+
|
|
368
|
+
async def submit_queued_llm_call(
|
|
316
369
|
self,
|
|
317
370
|
model_config: Any,
|
|
318
371
|
messages: list[dict[str, Any]],
|
|
@@ -321,14 +374,16 @@ class AIClient:
|
|
|
321
374
|
call_type: str = "background",
|
|
322
375
|
max_tokens: int | None = None,
|
|
323
376
|
transport_state: dict[str, Any] | None = None,
|
|
377
|
+
queue_lane: str | None = None,
|
|
324
378
|
) -> dict[str, Any]:
|
|
325
|
-
"""将 LLM
|
|
379
|
+
"""将 LLM 调用投递到统一队列,走统一发车间隔和重试逻辑。
|
|
326
380
|
无 queue_manager 时降级为直接调用。"""
|
|
327
381
|
effective_max_tokens = (
|
|
328
382
|
max_tokens
|
|
329
383
|
if max_tokens is not None
|
|
330
384
|
else getattr(model_config, "max_tokens", 4096)
|
|
331
385
|
)
|
|
386
|
+
resolved_queue_lane = self._resolve_queue_lane(queue_lane)
|
|
332
387
|
if self._queue_manager is None:
|
|
333
388
|
return await self.request_model(
|
|
334
389
|
model_config=model_config,
|
|
@@ -343,22 +398,60 @@ class AIClient:
|
|
|
343
398
|
event: asyncio.Event = asyncio.Event()
|
|
344
399
|
self._pending_llm_calls[request_id] = (event, None)
|
|
345
400
|
model_name = getattr(model_config, "model_name", "default")
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
401
|
+
request: dict[str, Any] = {
|
|
402
|
+
"type": "queued_llm_call",
|
|
403
|
+
"request_id": request_id,
|
|
404
|
+
"model_config": model_config,
|
|
405
|
+
"messages": messages,
|
|
406
|
+
"tools": tools,
|
|
407
|
+
"tool_choice": tool_choice,
|
|
408
|
+
"call_type": call_type,
|
|
409
|
+
"max_tokens": effective_max_tokens,
|
|
410
|
+
"transport_state": transport_state,
|
|
411
|
+
}
|
|
412
|
+
ctx = RequestContext.current()
|
|
413
|
+
if ctx is not None:
|
|
414
|
+
if ctx.group_id is not None:
|
|
415
|
+
request["group_id"] = ctx.group_id
|
|
416
|
+
if ctx.user_id is not None:
|
|
417
|
+
request["user_id"] = ctx.user_id
|
|
418
|
+
logger.info(
|
|
419
|
+
"[queued_llm_enqueue] request_id=%s call_type=%s model=%s lane=%s messages=%s tools=%s",
|
|
420
|
+
request_id,
|
|
421
|
+
call_type,
|
|
422
|
+
model_name,
|
|
423
|
+
resolved_queue_lane,
|
|
424
|
+
len(messages),
|
|
425
|
+
bool(tools),
|
|
426
|
+
)
|
|
427
|
+
receipt = await self._queue_manager.add_queued_llm_request(
|
|
428
|
+
request,
|
|
429
|
+
lane=resolved_queue_lane,
|
|
358
430
|
model_name=model_name,
|
|
359
431
|
)
|
|
432
|
+
wait_timeout = compute_queued_llm_timeout_seconds(
|
|
433
|
+
self._get_runtime_config(),
|
|
434
|
+
model_config,
|
|
435
|
+
retry_count=resolve_effective_retry_count(
|
|
436
|
+
self._get_runtime_config(), self._queue_manager
|
|
437
|
+
),
|
|
438
|
+
initial_wait_seconds=float(
|
|
439
|
+
getattr(receipt, "estimated_wait_seconds", 0.0) or 0.0
|
|
440
|
+
),
|
|
441
|
+
include_first_dispatch_interval=False,
|
|
442
|
+
)
|
|
360
443
|
try:
|
|
361
|
-
await asyncio.wait_for(event.wait(), timeout=
|
|
444
|
+
await asyncio.wait_for(event.wait(), timeout=wait_timeout)
|
|
445
|
+
except asyncio.TimeoutError:
|
|
446
|
+
logger.exception(
|
|
447
|
+
"[queued_llm_wait_timeout] request_id=%s call_type=%s model=%s lane=%s timeout=%.1fs",
|
|
448
|
+
request_id,
|
|
449
|
+
call_type,
|
|
450
|
+
model_name,
|
|
451
|
+
resolved_queue_lane,
|
|
452
|
+
wait_timeout,
|
|
453
|
+
)
|
|
454
|
+
raise
|
|
362
455
|
finally:
|
|
363
456
|
entry = self._pending_llm_calls.pop(request_id, None)
|
|
364
457
|
_, result = entry if entry is not None else (None, None)
|
|
@@ -366,6 +459,28 @@ class AIClient:
|
|
|
366
459
|
raise result
|
|
367
460
|
return result or {}
|
|
368
461
|
|
|
462
|
+
async def submit_background_llm_call(
|
|
463
|
+
self,
|
|
464
|
+
model_config: Any,
|
|
465
|
+
messages: list[dict[str, Any]],
|
|
466
|
+
tools: list[dict[str, Any]] | None = None,
|
|
467
|
+
tool_choice: Any = "auto",
|
|
468
|
+
call_type: str = "background",
|
|
469
|
+
max_tokens: int | None = None,
|
|
470
|
+
transport_state: dict[str, Any] | None = None,
|
|
471
|
+
) -> dict[str, Any]:
|
|
472
|
+
"""后台 LLM 提交兼容包装。"""
|
|
473
|
+
return await self.submit_queued_llm_call(
|
|
474
|
+
model_config=model_config,
|
|
475
|
+
messages=messages,
|
|
476
|
+
tools=tools,
|
|
477
|
+
tool_choice=tool_choice,
|
|
478
|
+
call_type=call_type,
|
|
479
|
+
max_tokens=max_tokens,
|
|
480
|
+
transport_state=transport_state,
|
|
481
|
+
queue_lane=QUEUE_LANE_BACKGROUND,
|
|
482
|
+
)
|
|
483
|
+
|
|
369
484
|
def set_llm_call_result(
|
|
370
485
|
self, request_id: str, result: dict[str, Any] | Exception
|
|
371
486
|
) -> None:
|
|
@@ -868,18 +983,25 @@ class AIClient:
|
|
|
868
983
|
max_iterations = 1000
|
|
869
984
|
iteration = 0
|
|
870
985
|
conversation_ended = False
|
|
871
|
-
any_tool_executed = False
|
|
872
986
|
cot_compat = getattr(effective_chat_config, "thinking_tool_call_compat", False)
|
|
873
987
|
cot_compat_logged = False
|
|
874
988
|
cot_missing_logged = False
|
|
875
989
|
transport_state: dict[str, Any] | None = None
|
|
990
|
+
queue_lane = self._resolve_queue_lane(tool_context.get("queue_lane"))
|
|
991
|
+
pre_tool_failure_count = 0
|
|
992
|
+
max_pre_tool_retries = max(
|
|
993
|
+
0,
|
|
994
|
+
int(getattr(self._get_runtime_config(), "ai_request_max_retries", 0) or 0),
|
|
995
|
+
)
|
|
876
996
|
|
|
877
997
|
while iteration < max_iterations:
|
|
878
998
|
iteration += 1
|
|
879
999
|
logger.info(f"[AI决策] 开始第 {iteration} 轮迭代...")
|
|
1000
|
+
message_checkpoint_len = len(messages)
|
|
1001
|
+
transport_state_checkpoint = transport_state
|
|
880
1002
|
|
|
881
1003
|
try:
|
|
882
|
-
result = await self.
|
|
1004
|
+
result = await self.submit_queued_llm_call(
|
|
883
1005
|
model_config=effective_chat_config,
|
|
884
1006
|
messages=messages,
|
|
885
1007
|
max_tokens=8192,
|
|
@@ -887,8 +1009,20 @@ class AIClient:
|
|
|
887
1009
|
tools=tools,
|
|
888
1010
|
tool_choice="auto",
|
|
889
1011
|
transport_state=transport_state,
|
|
1012
|
+
queue_lane=queue_lane,
|
|
1013
|
+
)
|
|
1014
|
+
except Exception as exc:
|
|
1015
|
+
logger.exception(
|
|
1016
|
+
"[queued_llm_error] call_type=chat model=%s lane=%s iteration=%s error=%s",
|
|
1017
|
+
effective_chat_config.model_name,
|
|
1018
|
+
queue_lane,
|
|
1019
|
+
iteration,
|
|
1020
|
+
exc,
|
|
890
1021
|
)
|
|
1022
|
+
raise
|
|
891
1023
|
|
|
1024
|
+
try:
|
|
1025
|
+
tool_execution_started = False
|
|
892
1026
|
tool_name_map = (
|
|
893
1027
|
result.get("_tool_name_map") if isinstance(result, dict) else None
|
|
894
1028
|
)
|
|
@@ -927,7 +1061,7 @@ class AIClient:
|
|
|
927
1061
|
if cot_compat and tools and log_thinking and not cot_compat_logged:
|
|
928
1062
|
cot_compat_logged = True
|
|
929
1063
|
logger.info(
|
|
930
|
-
"[思维链兼容] 多轮工具调用 reasoning_content
|
|
1064
|
+
"[思维链兼容] 多轮工具调用 reasoning_content 本地回填已启用"
|
|
931
1065
|
)
|
|
932
1066
|
if (
|
|
933
1067
|
cot_compat
|
|
@@ -967,6 +1101,9 @@ class AIClient:
|
|
|
967
1101
|
"content": content,
|
|
968
1102
|
"tool_calls": tool_calls,
|
|
969
1103
|
}
|
|
1104
|
+
output_items = message.get(RESPONSES_OUTPUT_ITEMS_KEY)
|
|
1105
|
+
if isinstance(output_items, list):
|
|
1106
|
+
assistant_message[RESPONSES_OUTPUT_ITEMS_KEY] = output_items
|
|
970
1107
|
if cot_compat and reasoning_content is not None:
|
|
971
1108
|
assistant_message["reasoning_content"] = reasoning_content
|
|
972
1109
|
messages.append(assistant_message)
|
|
@@ -1035,7 +1172,7 @@ class AIClient:
|
|
|
1035
1172
|
)
|
|
1036
1173
|
|
|
1037
1174
|
if tool_tasks:
|
|
1038
|
-
|
|
1175
|
+
tool_execution_started = True
|
|
1039
1176
|
logger.info(
|
|
1040
1177
|
"[工具执行] 开始并发执行 %s 个工具调用: %s",
|
|
1041
1178
|
len(tool_tasks),
|
|
@@ -1111,6 +1248,7 @@ class AIClient:
|
|
|
1111
1248
|
logger.info("[工具调用] end 与其他工具同时调用,已回填跳过响应")
|
|
1112
1249
|
else:
|
|
1113
1250
|
# end 单独调用,正常执行(参数已在循环中解析)
|
|
1251
|
+
tool_execution_started = True
|
|
1114
1252
|
end_result = await self.tool_manager.execute_tool(
|
|
1115
1253
|
"end", end_tool_args, tool_context
|
|
1116
1254
|
)
|
|
@@ -1129,13 +1267,34 @@ class AIClient:
|
|
|
1129
1267
|
if conversation_ended:
|
|
1130
1268
|
logger.info("[会话状态] 对话已结束(调用 end 工具)")
|
|
1131
1269
|
return ""
|
|
1270
|
+
pre_tool_failure_count = 0
|
|
1132
1271
|
|
|
1133
1272
|
except Exception as exc:
|
|
1134
|
-
if
|
|
1135
|
-
|
|
1136
|
-
|
|
1137
|
-
|
|
1138
|
-
|
|
1273
|
+
if (
|
|
1274
|
+
not tool_execution_started
|
|
1275
|
+
and pre_tool_failure_count < max_pre_tool_retries
|
|
1276
|
+
):
|
|
1277
|
+
pre_tool_failure_count += 1
|
|
1278
|
+
del messages[message_checkpoint_len:]
|
|
1279
|
+
transport_state = transport_state_checkpoint
|
|
1280
|
+
logger.warning(
|
|
1281
|
+
"[chat.pre_tool_retry] model=%s lane=%s retry=%s/%s iteration=%s error=%s",
|
|
1282
|
+
effective_chat_config.model_name,
|
|
1283
|
+
queue_lane,
|
|
1284
|
+
pre_tool_failure_count,
|
|
1285
|
+
max_pre_tool_retries,
|
|
1286
|
+
iteration,
|
|
1287
|
+
exc,
|
|
1288
|
+
)
|
|
1289
|
+
continue
|
|
1290
|
+
logger.exception(
|
|
1291
|
+
"[chat.suppressed_error] model=%s lane=%s iteration=%s error=%s",
|
|
1292
|
+
effective_chat_config.model_name,
|
|
1293
|
+
queue_lane,
|
|
1294
|
+
iteration,
|
|
1295
|
+
exc,
|
|
1296
|
+
)
|
|
1297
|
+
return ""
|
|
1139
1298
|
|
|
1140
1299
|
logger.warning("[AI决策] 达到最大迭代次数,未能完成处理")
|
|
1141
1300
|
return "达到最大迭代次数,未能完成处理"
|