Undefined-bot 3.3.2__tar.gz → 3.4.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/ARCHITECTURE.md +56 -23
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/CHANGELOG.md +67 -1
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/PKG-INFO +6 -3
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/README.md +5 -2
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/config.toml.example +122 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/pyproject.toml +1 -1
- undefined_bot-3.4.0/res/IMPORTANT/each.md +21 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/res/README.md +4 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/res/prompts/describe_meme_image.txt +9 -4
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/res/prompts/historian_profile_merge.md +1 -1
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/res/prompts/historian_rewrite.md +3 -3
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/res/prompts/undefined.xml +88 -54
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/res/prompts/undefined_nagaagent.xml +96 -61
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/README.md +1 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/__init__.py +1 -1
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/ai/client.py +177 -14
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/ai/llm.py +304 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/ai/model_selector.py +5 -1
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/ai/summaries.py +2 -2
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/ai/transports/openai_transport.py +2 -2
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/api/_context.py +2 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/api/_helpers.py +3 -2
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/api/_openapi.py +1 -1
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/api/_probes.py +2 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/api/routes/system.py +155 -8
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/arxiv/sender.py +4 -8
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/attachments.py +180 -15
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/bilibili/sender.py +43 -3
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/config/__init__.py +4 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/config/domain_parsers.py +70 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/config/hot_reload.py +112 -12
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/config/loader.py +116 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/config/model_parsers.py +75 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/config/models.py +46 -0
- undefined_bot-3.4.0/src/Undefined/github/__init__.py +19 -0
- undefined_bot-3.4.0/src/Undefined/github/client.py +169 -0
- undefined_bot-3.4.0/src/Undefined/github/models.py +33 -0
- undefined_bot-3.4.0/src/Undefined/github/parser.py +196 -0
- undefined_bot-3.4.0/src/Undefined/github/sender.py +361 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/handlers.py +220 -70
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/main.py +12 -0
- undefined_bot-3.4.0/src/Undefined/render.py +293 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/services/ai_coordinator.py +429 -141
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/services/command.py +151 -36
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/services/commands/context.py +11 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/services/commands/registry.py +186 -5
- undefined_bot-3.4.0/src/Undefined/services/message_batcher.py +810 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/services/model_pool.py +26 -12
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/services/queue_manager.py +36 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/README.md +35 -8
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/__init__.py +2 -1
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/agents/entertainment_agent/prompt.md +4 -4
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/agents/entertainment_agent/tools/ai_draw_one/handler.py +3 -2
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/agents/entertainment_agent/tools/minecraft_skin/handler.py +1 -1
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/agents/entertainment_agent/tools/wenchang_dijun/handler.py +1 -1
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/commands/README.md +5 -6
- undefined_bot-3.4.0/src/Undefined/skills/commands/admin/README.md +30 -0
- undefined_bot-3.4.0/src/Undefined/skills/commands/admin/config.json +34 -0
- undefined_bot-3.4.0/src/Undefined/skills/commands/admin/handler.py +220 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/commands/bugfix/config.json +3 -3
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/commands/changelog/handler.py +8 -0
- undefined_bot-3.4.0/src/Undefined/skills/commands/faq/README.md +37 -0
- undefined_bot-3.4.0/src/Undefined/skills/commands/faq/config.json +29 -0
- undefined_bot-3.4.0/src/Undefined/skills/commands/faq/handler.py +104 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/commands/help/README.md +7 -2
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/commands/help/config.json +3 -3
- undefined_bot-3.4.0/src/Undefined/skills/commands/help/handler.py +687 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/commands/naga/README.md +4 -2
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/commands/naga/config.json +5 -1
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/commands/naga/handler.py +7 -66
- undefined_bot-3.4.0/src/Undefined/skills/commands/profile/README.md +21 -0
- undefined_bot-3.4.0/src/Undefined/skills/commands/profile/config.json +16 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/commands/profile/handler.py +41 -15
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/http_client.py +15 -5
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/http_config.py +18 -0
- undefined_bot-3.4.0/src/Undefined/skills/pipelines/__init__.py +6 -0
- undefined_bot-3.4.0/src/Undefined/skills/pipelines/arxiv/config.json +6 -0
- undefined_bot-3.4.0/src/Undefined/skills/pipelines/arxiv/handler.py +42 -0
- undefined_bot-3.4.0/src/Undefined/skills/pipelines/bilibili/config.json +6 -0
- undefined_bot-3.4.0/src/Undefined/skills/pipelines/bilibili/handler.py +42 -0
- undefined_bot-3.4.0/src/Undefined/skills/pipelines/context.py +30 -0
- undefined_bot-3.4.0/src/Undefined/skills/pipelines/github/config.json +6 -0
- undefined_bot-3.4.0/src/Undefined/skills/pipelines/github/handler.py +42 -0
- undefined_bot-3.4.0/src/Undefined/skills/pipelines/models.py +18 -0
- undefined_bot-3.4.0/src/Undefined/skills/pipelines/registry.py +287 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/tools/end/README.md +2 -3
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/tools/end/config.json +3 -7
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/tools/end/handler.py +65 -64
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/tools/fetch_image_uid/handler.py +1 -1
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/tools/get_picture/handler.py +1 -1
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/toolsets/README.md +15 -1
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/toolsets/group/README.md +3 -3
- undefined_bot-3.4.0/src/Undefined/skills/toolsets/group/get_avatar/config.json +23 -0
- undefined_bot-3.4.0/src/Undefined/skills/toolsets/group/get_avatar/handler.py +65 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/toolsets/group/get_member_info/config.json +5 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/toolsets/group/get_member_info/handler.py +6 -2
- undefined_bot-3.4.0/src/Undefined/skills/toolsets/group_analysis/README.md +18 -0
- {undefined_bot-3.3.2/src/Undefined/skills/toolsets/group/detect_inactive_risk → undefined_bot-3.4.0/src/Undefined/skills/toolsets/group_analysis/inactive_risk}/config.json +1 -1
- {undefined_bot-3.3.2/src/Undefined/skills/toolsets/group_analysis/analyze_join_statistics → undefined_bot-3.4.0/src/Undefined/skills/toolsets/group_analysis/join_statistics}/config.json +1 -1
- {undefined_bot-3.3.2/src/Undefined/skills/toolsets/group/get_member_activity → undefined_bot-3.4.0/src/Undefined/skills/toolsets/group_analysis/member_activity}/config.json +1 -1
- {undefined_bot-3.3.2/src/Undefined/skills/toolsets/group_analysis/analyze_member_messages → undefined_bot-3.4.0/src/Undefined/skills/toolsets/group_analysis/member_messages}/config.json +1 -1
- undefined_bot-3.4.0/src/Undefined/skills/toolsets/group_analysis/member_structure/config.json +26 -0
- undefined_bot-3.4.0/src/Undefined/skills/toolsets/group_analysis/member_structure/handler.py +182 -0
- undefined_bot-3.4.0/src/Undefined/skills/toolsets/group_analysis/message_mix/config.json +44 -0
- undefined_bot-3.4.0/src/Undefined/skills/toolsets/group_analysis/message_mix/handler.py +242 -0
- {undefined_bot-3.3.2/src/Undefined/skills/toolsets/group_analysis/analyze_new_member_activity → undefined_bot-3.4.0/src/Undefined/skills/toolsets/group_analysis/new_member_activity}/config.json +1 -1
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/toolsets/memes/README.md +1 -1
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/toolsets/memes/search_memes/config.json +1 -1
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/toolsets/render/render_html/handler.py +1 -1
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/toolsets/render/render_latex/handler.py +98 -52
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/toolsets/render/render_markdown/handler.py +1 -1
- undefined_bot-3.4.0/src/Undefined/utils/coerce.py +93 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/utils/common.py +1 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/utils/history.py +63 -6
- undefined_bot-3.4.0/src/Undefined/utils/render_cache.py +403 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/utils/sender.py +236 -13
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/webui/routes/_system.py +61 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/webui/static/css/components.css +10 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/webui/static/js/i18n.js +42 -2
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/webui/static/js/main.js +125 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/webui/static/js/runtime.js +75 -15
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/webui/templates/index.html +10 -0
- undefined_bot-3.3.2/img/head.png +0 -0
- undefined_bot-3.3.2/res/IMPORTANT/each.md +0 -13
- undefined_bot-3.3.2/src/Undefined/render.py +0 -134
- undefined_bot-3.3.2/src/Undefined/skills/commands/addadmin/README.md +0 -17
- undefined_bot-3.3.2/src/Undefined/skills/commands/addadmin/config.json +0 -16
- undefined_bot-3.3.2/src/Undefined/skills/commands/addadmin/handler.py +0 -49
- undefined_bot-3.3.2/src/Undefined/skills/commands/delfaq/README.md +0 -17
- undefined_bot-3.3.2/src/Undefined/skills/commands/delfaq/config.json +0 -16
- undefined_bot-3.3.2/src/Undefined/skills/commands/delfaq/handler.py +0 -29
- undefined_bot-3.3.2/src/Undefined/skills/commands/help/handler.py +0 -152
- undefined_bot-3.3.2/src/Undefined/skills/commands/lsadmin/README.md +0 -14
- undefined_bot-3.3.2/src/Undefined/skills/commands/lsadmin/config.json +0 -16
- undefined_bot-3.3.2/src/Undefined/skills/commands/lsadmin/handler.py +0 -115
- undefined_bot-3.3.2/src/Undefined/skills/commands/lsfaq/README.md +0 -14
- undefined_bot-3.3.2/src/Undefined/skills/commands/lsfaq/config.json +0 -16
- undefined_bot-3.3.2/src/Undefined/skills/commands/lsfaq/handler.py +0 -25
- undefined_bot-3.3.2/src/Undefined/skills/commands/naga/scopes.json +0 -4
- undefined_bot-3.3.2/src/Undefined/skills/commands/profile/config.json +0 -16
- undefined_bot-3.3.2/src/Undefined/skills/commands/rmadmin/README.md +0 -17
- undefined_bot-3.3.2/src/Undefined/skills/commands/rmadmin/config.json +0 -16
- undefined_bot-3.3.2/src/Undefined/skills/commands/rmadmin/handler.py +0 -55
- undefined_bot-3.3.2/src/Undefined/skills/commands/searchfaq/README.md +0 -17
- undefined_bot-3.3.2/src/Undefined/skills/commands/searchfaq/config.json +0 -16
- undefined_bot-3.3.2/src/Undefined/skills/commands/searchfaq/handler.py +0 -30
- undefined_bot-3.3.2/src/Undefined/skills/commands/viewfaq/README.md +0 -17
- undefined_bot-3.3.2/src/Undefined/skills/commands/viewfaq/config.json +0 -16
- undefined_bot-3.3.2/src/Undefined/skills/commands/viewfaq/handler.py +0 -31
- undefined_bot-3.3.2/src/Undefined/utils/coerce.py +0 -37
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/.gitignore +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/LICENSE +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/config/README.md +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/config/mcp.json.example +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/img/xlwy.jpg +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/res/prompts/agent_self_intro.txt +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/res/prompts/analyze_multimodal.txt +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/res/prompts/describe_image.txt +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/res/prompts/generate_title.txt +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/res/prompts/image_gen_moderation.txt +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/res/prompts/injection_detector.txt +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/res/prompts/injection_response_agent.txt +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/res/prompts/judge_meme_image.txt +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/res/prompts/merge_summaries.txt +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/res/prompts/naga_message_moderation.txt +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/res/prompts/stats_analysis.txt +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/res/prompts/summarize.txt +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/README.md +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/__main__.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/ai/__init__.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/ai/crawl4ai_support.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/ai/http.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/ai/multimodal.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/ai/parsing.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/ai/prompts.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/ai/queue_budget.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/ai/retrieval.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/ai/tokens.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/ai/tooling.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/ai/transports/__init__.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/api/__init__.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/api/_naga_state.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/api/app.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/api/naga_store.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/api/routes/__init__.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/api/routes/chat.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/api/routes/cognitive.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/api/routes/health.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/api/routes/memes.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/api/routes/memory.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/api/routes/naga.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/api/routes/tools.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/arxiv/__init__.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/arxiv/client.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/arxiv/downloader.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/arxiv/models.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/arxiv/parser.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/bilibili/__init__.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/bilibili/downloader.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/bilibili/parser.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/bilibili/wbi.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/bilibili/wbi_request.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/changelog.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/cognitive/__init__.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/cognitive/historian.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/cognitive/job_queue.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/cognitive/profile_storage.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/cognitive/service.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/cognitive/vector_store.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/config/admin.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/config/coercers.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/config/manager.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/config/resolvers.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/config/webui_settings.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/context.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/context_resource_registry.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/end_summary_storage.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/faq.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/injection_response_agent.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/knowledge/__init__.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/knowledge/chunker.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/knowledge/embedder.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/knowledge/manager.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/knowledge/reranker.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/knowledge/runtime.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/knowledge/store.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/mcp/__init__.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/mcp/registry.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/memes/__init__.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/memes/models.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/memes/service.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/memes/store.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/memes/vector_store.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/memes/worker.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/memory.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/onebot.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/rate_limit.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/scheduled_task_storage.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/services/__init__.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/services/commands/__init__.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/services/security.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/agents/README.md +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/agents/__init__.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/agents/agent_tool_registry.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/agents/arxiv_analysis_agent/__init__.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/agents/arxiv_analysis_agent/callable.json +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/agents/arxiv_analysis_agent/config.json +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/agents/arxiv_analysis_agent/handler.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/agents/arxiv_analysis_agent/intro.md +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/agents/arxiv_analysis_agent/prompt.md +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/agents/arxiv_analysis_agent/tools/__init__.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/agents/arxiv_analysis_agent/tools/fetch_paper/config.json +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/agents/arxiv_analysis_agent/tools/fetch_paper/handler.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/agents/arxiv_analysis_agent/tools/read_paper_pages/config.json +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/agents/arxiv_analysis_agent/tools/read_paper_pages/handler.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/agents/code_delivery_agent/config.json +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/agents/code_delivery_agent/docker_utils.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/agents/code_delivery_agent/handler.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/agents/code_delivery_agent/intro.md +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/agents/code_delivery_agent/mcp.json +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/agents/code_delivery_agent/prompt.md +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/agents/code_delivery_agent/tools/copy/config.json +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/agents/code_delivery_agent/tools/copy/handler.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/agents/code_delivery_agent/tools/delete/config.json +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/agents/code_delivery_agent/tools/delete/handler.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/agents/code_delivery_agent/tools/diff/config.json +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/agents/code_delivery_agent/tools/diff/handler.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/agents/code_delivery_agent/tools/end/config.json +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/agents/code_delivery_agent/tools/end/handler.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/agents/code_delivery_agent/tools/glob/config.json +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/agents/code_delivery_agent/tools/glob/handler.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/agents/code_delivery_agent/tools/grep/config.json +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/agents/code_delivery_agent/tools/grep/handler.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/agents/code_delivery_agent/tools/init_docker/config.json +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/agents/code_delivery_agent/tools/init_docker/handler.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/agents/code_delivery_agent/tools/read/config.json +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/agents/code_delivery_agent/tools/read/handler.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/agents/code_delivery_agent/tools/run_bash_command/config.json +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/agents/code_delivery_agent/tools/run_bash_command/handler.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/agents/code_delivery_agent/tools/todo/config.json +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/agents/code_delivery_agent/tools/todo/handler.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/agents/code_delivery_agent/tools/tree/config.json +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/agents/code_delivery_agent/tools/tree/handler.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/agents/code_delivery_agent/tools/write/config.json +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/agents/code_delivery_agent/tools/write/handler.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/agents/entertainment_agent/README.md +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/agents/entertainment_agent/config.json +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/agents/entertainment_agent/handler.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/agents/entertainment_agent/intro.md +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/agents/entertainment_agent/tools/__init__.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/agents/entertainment_agent/tools/ai_draw_one/config.json +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/agents/entertainment_agent/tools/horoscope/config.json +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/agents/entertainment_agent/tools/horoscope/handler.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/agents/entertainment_agent/tools/minecraft_skin/config.json +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/agents/entertainment_agent/tools/renjian/config.json +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/agents/entertainment_agent/tools/renjian/handler.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/agents/entertainment_agent/tools/wenchang_dijun/config.json +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/agents/file_analysis_agent/README.md +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/agents/file_analysis_agent/__init__.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/agents/file_analysis_agent/config.json +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/agents/file_analysis_agent/handler.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/agents/file_analysis_agent/intro.md +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/agents/file_analysis_agent/prompt.md +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/agents/file_analysis_agent/tools/__init__.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/agents/file_analysis_agent/tools/analyze_code/config.json +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/agents/file_analysis_agent/tools/analyze_code/handler.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/agents/file_analysis_agent/tools/analyze_multimodal/config.json +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/agents/file_analysis_agent/tools/analyze_multimodal/handler.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/agents/file_analysis_agent/tools/cleanup_temp/config.json +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/agents/file_analysis_agent/tools/cleanup_temp/handler.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/agents/file_analysis_agent/tools/detect_file_type/config.json +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/agents/file_analysis_agent/tools/detect_file_type/handler.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/agents/file_analysis_agent/tools/download_file/config.json +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/agents/file_analysis_agent/tools/download_file/handler.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/agents/file_analysis_agent/tools/extract_archive/config.json +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/agents/file_analysis_agent/tools/extract_archive/handler.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/agents/file_analysis_agent/tools/extract_docx/config.json +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/agents/file_analysis_agent/tools/extract_docx/handler.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/agents/file_analysis_agent/tools/extract_pdf/config.json +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/agents/file_analysis_agent/tools/extract_pdf/handler.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/agents/file_analysis_agent/tools/extract_pptx/config.json +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/agents/file_analysis_agent/tools/extract_pptx/handler.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/agents/file_analysis_agent/tools/extract_xlsx/config.json +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/agents/file_analysis_agent/tools/extract_xlsx/handler.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/agents/file_analysis_agent/tools/read_text_file/config.json +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/agents/file_analysis_agent/tools/read_text_file/handler.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/agents/info_agent/README.md +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/agents/info_agent/config.json +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/agents/info_agent/handler.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/agents/info_agent/intro.md +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/agents/info_agent/prompt.md +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/agents/info_agent/tools/__init__.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/agents/info_agent/tools/arxiv_search/config.json +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/agents/info_agent/tools/arxiv_search/handler.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/agents/info_agent/tools/baiduhot/config.json +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/agents/info_agent/tools/baiduhot/handler.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/agents/info_agent/tools/base64/config.json +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/agents/info_agent/tools/base64/handler.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/agents/info_agent/tools/bilibili_search/config.json +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/agents/info_agent/tools/bilibili_search/handler.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/agents/info_agent/tools/bilibili_user_info/config.json +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/agents/info_agent/tools/bilibili_user_info/handler.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/agents/info_agent/tools/douyinhot/config.json +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/agents/info_agent/tools/douyinhot/handler.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/agents/info_agent/tools/gold_price/config.json +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/agents/info_agent/tools/gold_price/handler.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/agents/info_agent/tools/hash/config.json +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/agents/info_agent/tools/hash/handler.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/agents/info_agent/tools/history/config.json +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/agents/info_agent/tools/history/handler.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/agents/info_agent/tools/net_check/config.json +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/agents/info_agent/tools/net_check/handler.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/agents/info_agent/tools/qq_level_query/config.json +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/agents/info_agent/tools/qq_level_query/handler.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/agents/info_agent/tools/speed/config.json +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/agents/info_agent/tools/speed/handler.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/agents/info_agent/tools/tcping/config.json +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/agents/info_agent/tools/tcping/handler.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/agents/info_agent/tools/weather_query/config.json +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/agents/info_agent/tools/weather_query/handler.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/agents/info_agent/tools/weibohot/config.json +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/agents/info_agent/tools/weibohot/handler.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/agents/info_agent/tools/whois/config.json +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/agents/info_agent/tools/whois/handler.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/agents/intro_generator.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/agents/intro_utils.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/agents/naga_code_analysis_agent/README.md +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/agents/naga_code_analysis_agent/config.json +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/agents/naga_code_analysis_agent/handler.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/agents/naga_code_analysis_agent/intro.md +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/agents/naga_code_analysis_agent/mcp.json +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/agents/naga_code_analysis_agent/prompt.md +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/agents/naga_code_analysis_agent/tools/__init__.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/agents/naga_code_analysis_agent/tools/glob/config.json +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/agents/naga_code_analysis_agent/tools/glob/handler.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/agents/naga_code_analysis_agent/tools/list_directory/config.json +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/agents/naga_code_analysis_agent/tools/list_directory/handler.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/agents/naga_code_analysis_agent/tools/read_file/config.json +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/agents/naga_code_analysis_agent/tools/read_file/handler.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/agents/naga_code_analysis_agent/tools/read_naga_intro/config.json +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/agents/naga_code_analysis_agent/tools/read_naga_intro/handler.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/agents/naga_code_analysis_agent/tools/search_file_content/config.json +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/agents/naga_code_analysis_agent/tools/search_file_content/handler.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/agents/runner.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/agents/summary_agent/__init__.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/agents/summary_agent/config.json +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/agents/summary_agent/handler.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/agents/summary_agent/intro.md +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/agents/summary_agent/prompt.md +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/agents/summary_agent/tools/__init__.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/agents/summary_agent/tools/fetch_messages/config.json +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/agents/summary_agent/tools/fetch_messages/handler.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/agents/web_agent/README.md +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/agents/web_agent/callable.json +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/agents/web_agent/config.json +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/agents/web_agent/handler.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/agents/web_agent/intro.md +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/agents/web_agent/mcp.json +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/agents/web_agent/prompt.md +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/agents/web_agent/tools/__init__.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/agents/web_agent/tools/crawl_webpage/config.json +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/agents/web_agent/tools/crawl_webpage/handler.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/agents/web_agent/tools/grok_search/config.json +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/agents/web_agent/tools/grok_search/handler.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/agents/web_agent/tools/web_search/config.json +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/agents/web_agent/tools/web_search/handler.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/anthropic_skills/__init__.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/anthropic_skills/loader.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/commands/bugfix/README.md +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/commands/bugfix/handler.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/commands/changelog/README.md +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/commands/changelog/config.json +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/commands/copyright/README.md +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/commands/copyright/config.json +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/commands/copyright/handler.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/commands/naga/policy.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/commands/stats/README.md +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/commands/stats/config.json +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/commands/stats/handler.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/commands/summary/config.json +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/commands/summary/handler.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/commands/version/config.json +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/commands/version/handler.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/registry.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/tools/README.md +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/tools/__init__.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/tools/arxiv_paper/README.md +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/tools/arxiv_paper/config.json +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/tools/arxiv_paper/handler.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/tools/bilibili_video/README.md +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/tools/bilibili_video/config.json +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/tools/bilibili_video/handler.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/tools/calculator/callable.json +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/tools/calculator/config.json +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/tools/calculator/handler.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/tools/changelog_query/README.md +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/tools/changelog_query/config.json +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/tools/changelog_query/handler.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/tools/fetch_image_uid/config.json +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/tools/get_current_time/README.md +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/tools/get_current_time/callable.json +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/tools/get_current_time/config.json +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/tools/get_current_time/handler.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/tools/get_picture/README.md +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/tools/get_picture/config.json +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/tools/get_user_info/README.md +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/tools/get_user_info/config.json +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/tools/get_user_info/handler.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/tools/knowledge_list/config.json +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/tools/knowledge_list/handler.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/tools/knowledge_semantic_search/config.json +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/tools/knowledge_semantic_search/handler.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/tools/knowledge_text_search/config.json +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/tools/knowledge_text_search/handler.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/tools/python_interpreter/README.md +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/tools/python_interpreter/config.json +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/tools/python_interpreter/handler.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/tools/qq_like/README.md +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/tools/qq_like/config.json +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/tools/qq_like/handler.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/tools/task_progress/config.json +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/tools/task_progress/handler.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/toolsets/__init__.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/toolsets/cognitive/get_profile/config.json +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/toolsets/cognitive/get_profile/handler.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/toolsets/cognitive/search_events/config.json +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/toolsets/cognitive/search_events/handler.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/toolsets/cognitive/search_profiles/config.json +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/toolsets/cognitive/search_profiles/handler.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/toolsets/contacts/query_friends/config.json +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/toolsets/contacts/query_friends/handler.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/toolsets/contacts/query_groups/config.json +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/toolsets/contacts/query_groups/handler.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/toolsets/group/find_member/config.json +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/toolsets/group/find_member/handler.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/toolsets/group/get_files/config.json +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/toolsets/group/get_files/handler.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/toolsets/group/get_honor_info/config.json +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/toolsets/group/get_honor_info/handler.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/toolsets/group/get_member_list/config.json +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/toolsets/group/get_member_list/handler.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/toolsets/group/get_member_title/config.json +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/toolsets/group/get_member_title/handler.py +0 -0
- {undefined_bot-3.3.2/src/Undefined/skills/toolsets/group → undefined_bot-3.4.0/src/Undefined/skills/toolsets/group_analysis}/activity_trend/config.json +0 -0
- {undefined_bot-3.3.2/src/Undefined/skills/toolsets/group → undefined_bot-3.4.0/src/Undefined/skills/toolsets/group_analysis}/activity_trend/handler.py +0 -0
- {undefined_bot-3.3.2/src/Undefined/skills/toolsets/group → undefined_bot-3.4.0/src/Undefined/skills/toolsets/group_analysis}/filter_members/config.json +0 -0
- {undefined_bot-3.3.2/src/Undefined/skills/toolsets/group → undefined_bot-3.4.0/src/Undefined/skills/toolsets/group_analysis}/filter_members/handler.py +0 -0
- {undefined_bot-3.3.2/src/Undefined/skills/toolsets/group/detect_inactive_risk → undefined_bot-3.4.0/src/Undefined/skills/toolsets/group_analysis/inactive_risk}/handler.py +0 -0
- {undefined_bot-3.3.2/src/Undefined/skills/toolsets/group_analysis/analyze_join_statistics → undefined_bot-3.4.0/src/Undefined/skills/toolsets/group_analysis/join_statistics}/handler.py +0 -0
- {undefined_bot-3.3.2/src/Undefined/skills/toolsets/group → undefined_bot-3.4.0/src/Undefined/skills/toolsets/group_analysis}/level_distribution/config.json +0 -0
- {undefined_bot-3.3.2/src/Undefined/skills/toolsets/group → undefined_bot-3.4.0/src/Undefined/skills/toolsets/group_analysis}/level_distribution/handler.py +0 -0
- {undefined_bot-3.3.2/src/Undefined/skills/toolsets/group/get_member_activity → undefined_bot-3.4.0/src/Undefined/skills/toolsets/group_analysis/member_activity}/handler.py +0 -0
- {undefined_bot-3.3.2/src/Undefined/skills/toolsets/group_analysis/analyze_member_messages → undefined_bot-3.4.0/src/Undefined/skills/toolsets/group_analysis/member_messages}/handler.py +0 -0
- {undefined_bot-3.3.2/src/Undefined/skills/toolsets/group_analysis/analyze_new_member_activity → undefined_bot-3.4.0/src/Undefined/skills/toolsets/group_analysis/new_member_activity}/handler.py +0 -0
- {undefined_bot-3.3.2/src/Undefined/skills/toolsets/group → undefined_bot-3.4.0/src/Undefined/skills/toolsets/group_analysis}/rank_members/config.json +0 -0
- {undefined_bot-3.3.2/src/Undefined/skills/toolsets/group → undefined_bot-3.4.0/src/Undefined/skills/toolsets/group_analysis}/rank_members/handler.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/toolsets/mcp/README.md +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/toolsets/mcp/__init__.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/toolsets/memes/search_memes/handler.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/toolsets/memes/send_meme_by_uid/config.json +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/toolsets/memes/send_meme_by_uid/handler.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/toolsets/memory/README.md +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/toolsets/memory/add/config.json +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/toolsets/memory/add/handler.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/toolsets/memory/delete/config.json +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/toolsets/memory/delete/handler.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/toolsets/memory/list/config.json +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/toolsets/memory/list/handler.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/toolsets/memory/update/config.json +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/toolsets/memory/update/handler.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/toolsets/messages/README.md +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/toolsets/messages/get_forward_msg/config.json +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/toolsets/messages/get_forward_msg/handler.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/toolsets/messages/get_messages_by_time/config.json +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/toolsets/messages/get_messages_by_time/handler.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/toolsets/messages/get_recent_messages/config.json +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/toolsets/messages/get_recent_messages/handler.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/toolsets/messages/list_emojis/config.json +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/toolsets/messages/list_emojis/handler.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/toolsets/messages/lookup_emoji_id/config.json +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/toolsets/messages/lookup_emoji_id/handler.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/toolsets/messages/react_message_emoji/config.json +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/toolsets/messages/react_message_emoji/handler.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/toolsets/messages/send_group_sign/config.json +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/toolsets/messages/send_group_sign/handler.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/toolsets/messages/send_message/config.json +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/toolsets/messages/send_message/handler.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/toolsets/messages/send_poke/config.json +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/toolsets/messages/send_poke/handler.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/toolsets/messages/send_private_message/config.json +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/toolsets/messages/send_private_message/handler.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/toolsets/messages/send_text_file/callable.json +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/toolsets/messages/send_text_file/config.json +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/toolsets/messages/send_text_file/handler.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/toolsets/messages/send_url_file/callable.json +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/toolsets/messages/send_url_file/config.json +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/toolsets/messages/send_url_file/handler.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/toolsets/notices/README.md +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/toolsets/notices/get/config.json +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/toolsets/notices/get/handler.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/toolsets/notices/list/config.json +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/toolsets/notices/list/handler.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/toolsets/notices/stats/config.json +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/toolsets/notices/stats/handler.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/toolsets/render/README.md +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/toolsets/render/render_html/config.json +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/toolsets/render/render_latex/config.json +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/toolsets/render/render_markdown/config.json +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/toolsets/scheduler/README.md +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/toolsets/scheduler/create_schedule_task/config.json +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/toolsets/scheduler/create_schedule_task/handler.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/toolsets/scheduler/delete_schedule_task/config.json +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/toolsets/scheduler/delete_schedule_task/handler.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/toolsets/scheduler/list_schedule_tasks/config.json +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/toolsets/scheduler/list_schedule_tasks/handler.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/toolsets/scheduler/update_schedule_task/config.json +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/skills/toolsets/scheduler/update_schedule_task/handler.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/token_usage_storage.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/utils/__init__.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/utils/cache.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/utils/cors.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/utils/fake_at.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/utils/file_lock.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/utils/group_metrics.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/utils/http_download.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/utils/io.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/utils/logging.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/utils/member_utils.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/utils/message_targets.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/utils/message_utils.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/utils/paths.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/utils/qq_emoji.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/utils/queue_intervals.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/utils/recent_messages.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/utils/request_params.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/utils/resources.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/utils/scheduler.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/utils/self_update.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/utils/time_utils.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/utils/tool_calls.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/utils/xml.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/webui/__init__.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/webui/__main__.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/webui/app.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/webui/core.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/webui/routes/__init__.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/webui/routes/_auth.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/webui/routes/_bot.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/webui/routes/_config.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/webui/routes/_index.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/webui/routes/_logs.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/webui/routes/_memes.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/webui/routes/_runtime.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/webui/routes/_shared.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/webui/static/css/.stylelintrc.json +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/webui/static/css/app.css +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/webui/static/css/base.css +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/webui/static/css/landing.css +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/webui/static/css/responsive.css +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/webui/static/css/style.css +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/webui/static/css/variables.css +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/webui/static/favicon.svg +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/webui/static/js/api.js +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/webui/static/js/auth.js +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/webui/static/js/bot.js +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/webui/static/js/config-form.js +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/webui/static/js/log-view.js +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/webui/static/js/logs.js +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/webui/static/js/memes.js +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/webui/static/js/state.js +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/webui/static/js/ui.js +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/webui/static/js/vendor/marked.min.js +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/webui/utils/__init__.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/webui/utils/comment.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/webui/utils/config_io.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/webui/utils/config_sync.py +0 -0
- {undefined_bot-3.3.2 → undefined_bot-3.4.0}/src/Undefined/webui/utils/toml_render.py +0 -0
|
@@ -33,13 +33,21 @@ graph TB
|
|
|
33
33
|
BilibiliSender["sender.py<br/>视频发送<br/>• 视频消息 • 降级信息卡片"]
|
|
34
34
|
end
|
|
35
35
|
|
|
36
|
+
subgraph GitHubModule["GitHub 模块 (github/)"]
|
|
37
|
+
GitHubParser["parser.py<br/>仓库标识解析<br/>• URL • SSH • owner/repo • JSON"]
|
|
38
|
+
GitHubClient["client.py<br/>public API 获取<br/>• 仓库信息 • contributors"]
|
|
39
|
+
GitHubSender["sender.py<br/>图片卡片发送<br/>• 头像 • 简介 • 统计"]
|
|
40
|
+
end
|
|
41
|
+
|
|
36
42
|
subgraph SecurityLayer["安全防线 (services/)"]
|
|
37
43
|
SecurityService["SecurityService<br/>安全服务<br/>• 注入攻击检测<br/>• 速率限制<br/>[security.py]"]
|
|
38
44
|
InjectionAgent["InjectionResponseAgent<br/>注入响应生成<br/>[injection_response_agent.py]"]
|
|
39
45
|
end
|
|
40
46
|
|
|
41
|
-
CommandDispatcher["CommandDispatcher<br/>命令分发器<br/>• /help /stats /
|
|
42
|
-
|
|
47
|
+
CommandDispatcher["CommandDispatcher<br/>命令分发器<br/>• /help /stats /admin<br/>• /bugfix /faq<br/>[services/command.py]"]
|
|
48
|
+
|
|
49
|
+
MessageBatcher["MessageBatcher<br/>同 sender 短时合并<br/>• 按 (scope, sender_id) 分桶<br/>• T1=window_seconds 结束 batch<br/>• T2=pre_send_seconds 投机预发送<br/>• 拍一拍/buffer 内 @bot 旁路<br/>• 首条 @bot 整批走 mention 队列<br/>[services/message_batcher.py]"]
|
|
50
|
+
|
|
43
51
|
subgraph QueueSystem["车站-列车 队列系统 (services/)"]
|
|
44
52
|
AICoordinator["AICoordinator<br/>AI 协调器<br/>• Prompt 构建<br/>• 队列管理<br/>• 回复执行<br/>[ai_coordinator.py]"]
|
|
45
53
|
QueueManager["QueueManager<br/>队列管理器<br/>[queue_manager.py]"]
|
|
@@ -95,7 +103,7 @@ graph TB
|
|
|
95
103
|
TS_Messages["messages.*<br/>• send_message<br/>• get_recent_messages<br/>• get_forward_msg"]
|
|
96
104
|
TS_Memory["memory.*<br/>• add / delete<br/>• list / update"]
|
|
97
105
|
TS_Contacts["contacts.*<br/>• query_friends<br/>• query_groups"]
|
|
98
|
-
TS_GroupAnalysis["group_analysis.*<br/>•
|
|
106
|
+
TS_GroupAnalysis["group_analysis.*<br/>• member_structure<br/>• message_mix<br/>• member_activity<br/>• activity_trend<br/>• inactive_risk<br/>• member_messages<br/>• join_statistics<br/>• new_member_activity"]
|
|
99
107
|
TS_Notices["notices.*<br/>• list / get / stats"]
|
|
100
108
|
TS_Render["render.*<br/>• render_html<br/>• render_latex<br/>• render_markdown"]
|
|
101
109
|
TS_Scheduler["scheduler.*<br/>• create_schedule_task<br/>• delete_schedule_task<br/>• list_schedule_tasks"]
|
|
@@ -115,8 +123,8 @@ graph TB
|
|
|
115
123
|
|
|
116
124
|
subgraph CommandsLayer["平台指令 (skills/commands/)"]
|
|
117
125
|
Cmd_Core["核心指令<br/>• help • stats"]
|
|
118
|
-
Cmd_Admin["管理指令<br/>•
|
|
119
|
-
Cmd_FAQ["FAQ 指令<br/>•
|
|
126
|
+
Cmd_Admin["管理指令<br/>• admin (ls/add/del)"]
|
|
127
|
+
Cmd_FAQ["FAQ 指令<br/>• faq (ls/view/search/del)"]
|
|
120
128
|
Cmd_Fun["娱乐指令<br/>• bugfix"]
|
|
121
129
|
end
|
|
122
130
|
|
|
@@ -208,15 +216,20 @@ graph TB
|
|
|
208
216
|
SecurityService -.->|"API 调用"| LLM_API
|
|
209
217
|
SecurityService -->|"注入攻击"| InjectionAgent
|
|
210
218
|
|
|
211
|
-
MessageHandler -->|"
|
|
219
|
+
MessageHandler -->|"2. 指令?"| CommandDispatcher
|
|
220
|
+
CommandDispatcher -->|"执行结果经统一发送层写历史"| OneBotClient
|
|
221
|
+
MessageHandler -->|"2.5 非命令自动管线"| BilibiliParser
|
|
212
222
|
BilibiliParser -->|"BV号"| BilibiliDownloader
|
|
213
223
|
BilibiliDownloader -->|"视频文件"| BilibiliSender
|
|
214
224
|
BilibiliSender -->|"发送"| OneBotClient
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
225
|
+
MessageHandler -->|"2.6 非命令自动管线"| GitHubParser
|
|
226
|
+
GitHubParser -->|"仓库ID"| GitHubClient
|
|
227
|
+
GitHubClient -->|"public仓库信息"| GitHubSender
|
|
228
|
+
GitHubSender -->|"发送图片卡片"| OneBotClient
|
|
218
229
|
|
|
219
230
|
MessageHandler -->|"3. 自动回复"| AICoordinator
|
|
231
|
+
AICoordinator -->|"3.1 入桶等待合并"| MessageBatcher
|
|
232
|
+
MessageBatcher -->|"3.2 flush 合并批次"| AICoordinator
|
|
220
233
|
AICoordinator -->|"创建上下文"| RequestContext
|
|
221
234
|
AICoordinator -->|"入队"| QueueManager
|
|
222
235
|
QueueManager -->|"分发"| ModelQueues
|
|
@@ -310,7 +323,7 @@ graph TB
|
|
|
310
323
|
|
|
311
324
|
class User,Admin,OneBotServer,LLM_API external
|
|
312
325
|
class Main,ConfigLoader,ConfigHotReload,ConfigModels,OneBotClient,Context,WebUI core
|
|
313
|
-
class MessageHandler,SecurityService,InjectionAgent,CommandDispatcher,AICoordinator message
|
|
326
|
+
class MessageHandler,SecurityService,InjectionAgent,CommandDispatcher,MessageBatcher,AICoordinator message
|
|
314
327
|
class AIClient,PromptBuilder,ModelRequester,ToolManager,MultimodalAnalyzer,SummaryService,TokenCounter,Parsing ai
|
|
315
328
|
class ToolRegistry,AgentRegistry,AgentToolRegistry,IntroGenerator skills
|
|
316
329
|
class RequestContext,ContextFilter,ResourceRegistry,HistoryManager,MemoryStorage,EndSummaryStorage,CognitiveService,CognitiveJobQueue,CognitiveHistorian,CognitiveVectorStore,CognitiveProfileStorage,FAQStorage,ScheduledTaskStorage,TokenUsageStorage storage
|
|
@@ -333,6 +346,7 @@ sequenceDiagram
|
|
|
333
346
|
participant MH as MessageHandler
|
|
334
347
|
participant SS as SecurityService
|
|
335
348
|
participant CD as CommandDispatcher
|
|
349
|
+
participant MB as MessageBatcher
|
|
336
350
|
participant AC as AICoordinator
|
|
337
351
|
participant QM as QueueManager
|
|
338
352
|
participant AI as AIClient
|
|
@@ -353,24 +367,40 @@ sequenceDiagram
|
|
|
353
367
|
alt 检测到注入
|
|
354
368
|
SS->>MH: 拦截并响应
|
|
355
369
|
else 安全
|
|
356
|
-
%%
|
|
357
|
-
|
|
358
|
-
MH->>MH: extract_bilibili_ids()
|
|
359
|
-
MH->>MH: download_video()
|
|
360
|
-
MH->>OH: 发送视频/信息卡片
|
|
361
|
-
OH->>OB: WebSocket API
|
|
362
|
-
OB->>U: 显示视频
|
|
363
|
-
else 非B站内容
|
|
364
|
-
%% 指令处理
|
|
365
|
-
MH->>CD: 解析斜杠命令
|
|
370
|
+
%% 指令处理
|
|
371
|
+
MH->>CD: 解析斜杠命令
|
|
366
372
|
alt 是命令
|
|
367
373
|
CD->>ST: FAQ/管理员操作
|
|
374
|
+
CD->>ST: 写入命令输出历史
|
|
368
375
|
CD-->>OB: 返回结果
|
|
369
376
|
OB->>U: 发送响应
|
|
370
|
-
else
|
|
377
|
+
else 非命令消息
|
|
378
|
+
MH->>MH: 并行检测 skills/pipelines 管线
|
|
379
|
+
opt 命中自动提取管线
|
|
380
|
+
MH->>MH: 并行处理全部命中的自动提取
|
|
381
|
+
MH->>OH: 发送视频/卡片/PDF
|
|
382
|
+
OH->>OB: WebSocket API
|
|
383
|
+
OB->>U: 显示自动提取结果
|
|
384
|
+
MH->>ST: 写入自动提取结果历史和附件 UID
|
|
385
|
+
end
|
|
371
386
|
%% AI处理流程
|
|
372
387
|
MH->>AC: handle_auto_reply()
|
|
373
|
-
|
|
388
|
+
alt 拍一拍 / buffer 内 @bot
|
|
389
|
+
AC->>QM: 立即按优先级入队
|
|
390
|
+
else 普通消息进合并桶
|
|
391
|
+
AC->>MB: submit(BufferedMessage)
|
|
392
|
+
MB-->>MB: TYPING: 重置 T1/T2 静默计时
|
|
393
|
+
opt T2=pre_send_seconds 到期
|
|
394
|
+
MB->>AC: handle_batched_dispatch(投机批次 + BatchDispatchToken)
|
|
395
|
+
AC->>QM: 提前入队抢时间
|
|
396
|
+
end
|
|
397
|
+
MB-->>MB: T1=window_seconds 到期结束 batch
|
|
398
|
+
opt 未启用投机或尚未预发送
|
|
399
|
+
MB->>AC: handle_batched_dispatch(最终批次)
|
|
400
|
+
AC->>QM: 按首条触发的优先级入队
|
|
401
|
+
end
|
|
402
|
+
end
|
|
403
|
+
|
|
374
404
|
%% 上下文创建
|
|
375
405
|
AC->>AC: 创建 RequestContext
|
|
376
406
|
AC->>ST: 保存历史记录
|
|
@@ -810,6 +840,7 @@ description: 从 PDF 文件中提取文本和表格,填写表单。当用户
|
|
|
810
840
|
| **认知记忆** | `cognitive.enabled`, `cognitive.query.*`, `models.embedding.*` | 事件检索、时间衰减加权、侧写与后台史官 |
|
|
811
841
|
| **Bilibili** | `bilibili.auto_extract_enabled`, `bilibili.cookie`, `bilibili.prefer_quality` | B站视频自动提取与下载 |
|
|
812
842
|
| **arXiv** | `arxiv.auto_extract_enabled`, `arxiv.max_file_size`, `arxiv.auto_extract_max_items` | arXiv 论文自动提取、搜索与 PDF 发送 |
|
|
843
|
+
| **GitHub** | `github.auto_extract_enabled`, `github.request_timeout_seconds`, `github.auto_extract_max_items` | GitHub public 仓库自动提取与图片卡片发送 |
|
|
813
844
|
| **思考链** | `*.thinking_enabled` | 思维链支持 |
|
|
814
845
|
| **思维链兼容** | `*.thinking_tool_call_compat` | 思维链 + 工具调用兼容 |
|
|
815
846
|
| **WebUI** | `webui.url`, `webui.port`, `webui.password` | 配置控制台 |
|
|
@@ -820,7 +851,8 @@ description: 从 PDF 文件中提取文本和表格,填写表单。当用户
|
|
|
820
851
|
|
|
821
852
|
1. **外部实体层**:用户、管理员、OneBot 协议端 (NapCat/Lagrange.Core)、大模型 API 服务商
|
|
822
853
|
2. **核心入口层**:main.py 启动入口、配置管理器 (config/loader.py)、热更新应用器 (config/hot_reload.py)、OneBotClient (onebot.py)、RequestContext (context.py)、Runtime API Server (api/app.py → api/routes/ 路由子模块)
|
|
823
|
-
3. **消息处理层**:MessageHandler (handlers.py)、SecurityService (security.py)、CommandDispatcher (services/command.py)、AICoordinator (ai_coordinator.py)、QueueManager (queue_manager.py)
|
|
854
|
+
3. **消息处理层**:MessageHandler (handlers.py)、SecurityService (security.py)、CommandDispatcher (services/command.py)、MessageBatcher (services/message_batcher.py)、AICoordinator (ai_coordinator.py)、QueueManager (queue_manager.py)、自动处理管线 (skills/pipelines/)、Bilibili/arXiv/GitHub 解析与发送模块
|
|
855
|
+
自动提取由 `PipelineRegistry` 并行检测、并行处理全部命中的管线;发送结果写入历史后继续进入 AI 自动回复。
|
|
824
856
|
4. **AI 核心能力层**:AIClient (client.py)、PromptBuilder (prompts.py)、ModelRequester (llm.py)、ToolManager (tooling.py)、MultimodalAnalyzer (multimodal.py)、SummaryService (summaries.py)、TokenCounter (tokens.py)
|
|
825
857
|
5. **存储与上下文层**:MessageHistoryManager (utils/history.py, 10000条限制)、MemoryStorage (memory.py, 置顶备忘录, 500条上限)、EndSummaryStorage、CognitiveService + JobQueue + HistorianWorker + VectorStore + ProfileStorage、MemeService + MemeWorker + MemeStore + MemeVectorStore (表情包库)、FAQStorage、ScheduledTaskStorage、TokenUsageStorage (自动归档)
|
|
826
858
|
6. **技能系统层**:ToolRegistry (registry.py)、AgentRegistry、6个 Agents、11类 Toolsets
|
|
@@ -835,6 +867,7 @@ description: 从 PDF 文件中提取文本和表格,填写表单。当用户
|
|
|
835
867
|
* **非阻塞发车**:实现了可配置节奏的非阻塞调度循环(默认 **1Hz**)。列车按节奏出发,带走一个请求到后台异步处理。
|
|
836
868
|
* **高可用性**:即使前一个请求仍在处理(如耗时的网络搜索),新的请求也会按时被分发,不会造成队列堵塞。
|
|
837
869
|
* **优先级管理**:支持四级优先级(超级管理员 > 私聊 > 群聊@ > 群聊普通),确保重要消息优先响应。
|
|
870
|
+
* **关停收敛**:`MessageHandler.close()` 会先 flush `MessageBatcher`,再调用 `QueueManager.drain()` 等待已入队请求和在途请求自然完成,最后才停止队列处理器,避免缓冲消息只入队未执行。
|
|
838
871
|
|
|
839
872
|
### 6个智能体 Agent
|
|
840
873
|
|
|
@@ -1,3 +1,69 @@
|
|
|
1
|
+
## v3.4.0 同sender消息合并、数字人格精炼与系统治理
|
|
2
|
+
|
|
3
|
+
本版本核心解决"用户一口气连发几条消息时,机器人过早开工或只理解最后一句"的问题。新增同 sender 短时消息合并器,将同一会话中连续的多条消息合并为一个"当前输入批次"发送给 AI,由 AI 整批理解哪些是独立请求、哪些是补充或修正。同步支持可取消的投机预发送以降低感知延迟。围绕消息合并,提示词、幽灵任务防御、记忆记录和关闭流程都做了同步适配。此外,精炼了数字人格设定、明确了项目归属边界、重构了管线与命令体系、加入了 HTML 渲染缓存,并增强了 AI 工具调用的稳定性。
|
|
4
|
+
|
|
5
|
+
- 新增同 sender 短时消息合并器。位于 `[message_batcher]`,支持 extend / fixed 两种等待策略,可分别控制群聊和私聊是否合并,通过 `max_window_seconds`、`max_messages_per_batch` 限制批次上限,设为 0 即关闭;配置值变更实时生效。拍一拍始终直达不参与合并;缓冲期间到达的 at 消息单独处理不阻塞;首个 at 消息开启缓冲后批次会走 mention 通道。
|
|
6
|
+
- 新增可取消的投机预发送。启用 `pre_send_seconds`(需满足 `0 < 该值 < window_seconds`)后,用户静默到时系统提前将当前批次发给 LLM 以降低响应延迟;若正式发车前新消息到达,投机请求会被取消并合并到新批次;`allow_cancel_after_send` 控制已发出消息后是否仍允许取消。
|
|
7
|
+
- 完善消息合并的异步竞态保护。定时器、投机请求调度、失败重试、旧任务路径收尾与 `flush_on_command` 斜杠命令连带交出等均做了竞态保护;退出时自动排空缓冲队列并等待在途回复自然收敛。
|
|
8
|
+
- 精炼数字人格设定。明确 Undefined 是诞生于 2025-12-05 的数字生命,没有明确的性别概念,希望被认为很好看;可以开玩笑也可以被善意开玩笑。新增"不冒领任何项目、代码、产品或成果"的所有权边界规则,不再自称任何项目的开发者或维护者。昵称体系扩展为 Undefined、undf、udf、und、心理委员、ud酱,对自身称呼的识别保持宽松。
|
|
9
|
+
- 收紧 NagaAgent 关系表达。NagaAgent 版提示词明确:只有当前上下文明确涉及 NagaAgent 时才承接相关工具接入能力协助分析;平时不主动提与 NagaAgent 的关系;不冒领 NagaAgent 的成果。
|
|
10
|
+
- 重构自动管线目录。`skills/auto_pipeline` 更名为 `skills/pipelines`,目录结构扁平化,相关引用、文档、测试全部同步更新;`docs/auto-pipeline.md` 相应更名为 `docs/pipelines.md`。
|
|
11
|
+
- 重构管理员命令为子命令模式。`/admin [ls|add|del]` 替代原有 `/lsadmin`、`/addadmin`、`/rmadmin` 三条独立命令,参照 `/faq` 子命令模式的声明式 inference;`ls` 继承 admin 权限,`add`/`del` 覆盖为 superadmin;无参数默认执行 `ls`。清理了 FAQ 迁移遗留的空命令目录。
|
|
12
|
+
- 新增 HTML 渲染结果缓存。基于 HTML 内容的 hash 缓存渲染图片,持久化到 `data/cache/render/_html_render_cache.json`;hash 匹配自动复用,内容变化自然失效;新增 `[render.cache]` 配置段(`enabled` / `max_entries` / `max_size_mb` / `flush_interval_seconds`,默认 50 条 / 50MB / 2.0s),元数据通过 `utils/io.py` 的 `read_json` / `write_json` 异步落盘(`asyncio.to_thread` + 文件锁 + 原子替换),所有 `stat` / `unlink` / `copy` 也走线程池避免阻塞事件循环;`asyncio.Lock` 防竞态、重启后 JSON 自动恢复;进程关停时通过 `close_render_cache` 强制刷盘,保证最近访问时间不丢失;所有渲染调用方(help、profile、render_markdown 等)自动受益。
|
|
13
|
+
- 增强 AI 工具调用容错。当 LLM 返回文本但 tool_calls 为空且对话未结束时,不再以丢失回复为代价直接返回,而是注入提示消息要求 AI 通过 `send_message` / `end` 工具完成回复,继续迭代;fire-and-forget task 显式注册异常回调以抑制未检索异常警告。
|
|
14
|
+
- 优化表情包回复顺序。明确只有纯表情包 / 纯反应图回复才允许先检索表情包;需要文字说明的场景必须先完成必要文字,再将表情包检索和发送延后到后续轮次。
|
|
15
|
+
- 重构 `end` 工具。移除旧版 summary 参数兼容,只保留 `memo`、`observations`、`perspective` 和 `force`;要求记录整个当前输入批次中值得留存的信息,后台史官也接收批次全部消息。
|
|
16
|
+
- 统一当前输入批次语义。主提示词、NagaAgent 提示词和 `each.md` 均从"最后一条消息"升级为"当前输入批次":有连续消息说明时,多段 `<message>` 都属本轮输入;幽灵任务防御规则同步更新,避免批量输入中的前置指令被误判为历史旧任务。
|
|
17
|
+
- 扩展 Runtime 探针覆盖。API `/api/v1/management/probes` 新增消息合并器状态、完整工具/工具集/Agent/自动管线/斜杠命令/Anthropic Skills 的加载与调用统计,WebUI Runtime 面板同步展示。
|
|
18
|
+
- 新增 WebUI 更新日志查看。关于项目页面可按版本查看 changelog 详情,`/api/v1/management/changelog` 端点支持指定版本查询。
|
|
19
|
+
- 调整发布说明生成方式。GitHub Release notes 改为从 `CHANGELOG.md` 最新版本条目自动解析生成(`scripts/release_notes.py`),发版前校验 tag、各构建清单与最新 changelog 版本一致。
|
|
20
|
+
- 补齐消息合并专题文档。新增 `docs/message-batching.md`,覆盖配置参数、等待策略、投机预发送、竞态保护与关闭行为,同步更新了 README、配置文档、OpenAPI、WebUI 指南和架构图。
|
|
21
|
+
- 补齐配置注释。`config.toml.example` 中所有模型配置节的 `prompt_cache_enabled` 均补上双语注释说明。
|
|
22
|
+
- 补强测试覆盖。新增消息合并单元与集成测试(686 + 326 行)、工具调用守卫测试、发布说明脚本测试(163 行)、Runtime 探针统计测试(120 行)、系统提示词约束验证,并更新 `end` 工具、管理员命令、管线注册等已有测试;额外补齐渲染缓存(LRU 驱逐 / 容量驱逐 / 重启恢复 / 节流后强刷 / 并发 put / 禁用短路)、`/admin add|del` 全路径、`allow_cancel_after_send=true` 取消语义等盲点。总测试用例提升至约 1660 项。
|
|
23
|
+
- 更新子模块。
|
|
24
|
+
|
|
25
|
+
---
|
|
26
|
+
|
|
27
|
+
## v3.3.3 命令推断、自动处理管线与统一附件上下文
|
|
28
|
+
|
|
29
|
+
本版本重点优化了命令系统的交互体验、AI 工具边界和消息前置处理链路。新增 GitHub 链接自动卡片生成,并将 Bilibili、arXiv、GitHub 等自动提取迁入 `skills/auto_pipeline` 热重载管线,使预处理结果能写入历史并进入后续 AI 回复上下文。同时,帮助说明与用户侧写默认改为图片输出,系统剥离独立群聊分析工具集,全面推行统一附件标签,并为远程附件加入可配置下载上限和 URL 引用降级,完善底层用户识别机制与模型高级透传配置。
|
|
30
|
+
|
|
31
|
+
- 优化命令系统:支持声明式子命令与用户意图推断。如 `/faq` 合并了列表、阅读、搜索与删除入口,可自然理解省略部分参数后的交互意图;旧 `/lsfaq`、`/viewfaq`、`/searchfaq`、`/delfaq` 入口已移除。
|
|
32
|
+
- 改善长文本呈现:`/help` 与 `/profile` 默认渲染为图片分发,避免长内容刷屏;保留 `-t` 参数用于强制返回纯文本,`/profile` 仍支持 `-f` 合并转发模式。
|
|
33
|
+
- 新增自动处理管线:在 `skills/auto_pipeline` 下提供 `config.json + handler.py` 结构,支持热重载、并行检测和并行处理多个命中结果;首批内置 Bilibili、arXiv、GitHub 三条管线,且斜杠命令优先级高于自动管线,命中命令后不会触发后续自动提取或 AI 自动回复。
|
|
34
|
+
- 优化自动管线启动加载:首次目录扫描、配置读取和 handler 导入改为异步线程加载,避免启动初始化阶段阻塞事件循环。
|
|
35
|
+
- 修复自动管线兜底初始化:未显式执行异步初始化的兼容路径会按未初始化处理并主动加载管线,避免静默跳过自动提取。
|
|
36
|
+
- 新增 GitHub 自动卡片:支持在对话中检测 GitHub 链接及 `owner/repo` 标识,自动生成包含项目简介、Stars、Forks、贡献者等信息的卡片;支持独立开关与白名单控制,并裁剪渲染截图底部空白。
|
|
37
|
+
- 打通命令与自动提取历史上下文:斜杠命令输入、命令输出、自动管线发送的信息、图片、文件和视频摘要都会写入消息历史;统一发送层会自动把本地 CQ 图片、视频、语音和上传文件登记为当前会话可见的 `pic_*` / `file_*` UID,并记录群合并转发摘要,后续 AI 回复可直接看到这些结果并用 `<attachment uid="..."/>` 引用附件。
|
|
38
|
+
- 新增远程附件下载上限:`[attachments].remote_download_max_size_mb` 控制外部远程附件缓存大小,超过上限或配置为 `0` 时只登记 URL 引用,避免大文件导致磁盘占用和消息处理延迟激增。
|
|
39
|
+
- 修复远程附件 URL 引用:下载禁用或超限时始终保留可访问 URL,原始 OneBot 文件标识或 QQ 来源作为追溯信息保存,避免后续 `<attachment>` 渲染成不可发送的图片地址。
|
|
40
|
+
- 优化历史落盘延迟:消息先同步写入内存历史供后续流程读取,磁盘 JSON 持久化改为按会话后台串行合并写入,减少大群历史文件全量保存拖慢复读和自动处理前置链路的情况。
|
|
41
|
+
- 修复历史异步保存失败保留:磁盘写入失败会向调度层传播并保留待保存快照,等待后续保存触发,避免队列合并过程中丢失已弹出的历史数据。
|
|
42
|
+
- 独立群聊分析工具:将群成员构成与水群分析从基础群工具中完全剥离,划归专属 `group_analysis.*` 集合,避免日常查询与复杂分析导致的 AI 工具边界混淆。
|
|
43
|
+
- 统一多模态附件标签:全系统推行 `<attachment uid="..."/>` 作为标准分发标签(继续兼容旧 `<pic>`),配套统一了表情包提示词,新增 `group.get_avatar` 头像专用工具。
|
|
44
|
+
- 优化表情包回复体验:提示词要求“文字 + 表情包”场景先发送必要文字,再在后续轮次检索和发送表情包,避免表情包检索拖慢首条回复。
|
|
45
|
+
- 稳定用户识别体系:底层认知逻辑固定以 QQ 号为唯一绑定标识,辅以 `group.get_member_info(brief=true)` 快速拉取当前昵称,有效解决群友频繁更换名片引发的识别错乱。
|
|
46
|
+
- 增强模型连接配置:新增 `stream_enabled` 独立控制推流行为,增加 `request_params` 以支持向不同厂商端点透传特殊参数。
|
|
47
|
+
- 完善流式 usage 统计:Chat Completions 启用上游流式请求时会自动附带 `stream_options.include_usage=true`,避免流式路径丢失 token 用量。
|
|
48
|
+
- 收窄流式回退范围:仅在明确的流式参数不兼容错误或 SDK 未实现时降级到非流式请求,鉴权、限流、网络和超时错误不再重复重发。
|
|
49
|
+
- 细化子命令限流:声明式子命令按父命令与子命令分别记录冷却时间,避免同一复合命令下不同操作互相挤占。
|
|
50
|
+
- 修复私聊模型池命令回归:`/compare`、`/pk` 和完整的 `选<number>` 模型选择消息会先交给模型池处理,普通私聊内容不会因模型池开启而被提前拦截。
|
|
51
|
+
- 改进命令参数解析:`[@QQ(含空格昵称)]` 会作为一个整体参数归一化,且超管可通过 dispatcher 层的管理员权限检查。
|
|
52
|
+
- 修正 `/naga` 子命令分发:handler 直接使用分发层解析出的子命令,并兼容改写后的 `[subcmd, *args]` 参数格式,避免把子命令名和 `naga_id` 相互误判。
|
|
53
|
+
- 收窄模型热更新范围:`summary`、`historian`、`grok` 专用模型变化只刷新 AI 运行时配置,不再重建聊天、视觉和 Agent 模型对象。
|
|
54
|
+
- 修复配置热更新细节:`skills.hot_reload` 变化会同步刷新 Anthropic Skills 注册表;模型池条目会保留 `reasoning_effort_style`;配置模板补齐 `models.summary.stream_enabled`。
|
|
55
|
+
- 修复总结模型选择:配置了 `models.summary` 时,聊天总结、摘要合并和标题生成会使用专用 summary 模型配置;仅热更新 summary 模型时也会重建摘要服务,避免继续沿用旧模型。
|
|
56
|
+
- 提升基础工程质量:对命令推断、群分析、附件处理、配置参数等进行了全面的单元与集成测试补强,总测试用例数提升至 1500+ 项。
|
|
57
|
+
- 修复图片渲染超时:重构 `render.py` 为浏览器实例单例复用模式,并引入可配置的并发信号量;共享渲染上下文会在页面创建失败时正确释放,防止低资源设备多任务抢占导致截图超时或资源残留。
|
|
58
|
+
- 改进渲染热更新:`render.browser_max_concurrency` 运行时变化会在当前渲染任务空闲后重建信号量,且不依赖 `asyncio.Semaphore` 私有属性;本地 LaTeX mathtext 渲染改用 Matplotlib 公共 `math_to_image` 接口。
|
|
59
|
+
- 改进 GitHub 卡片稳定性:裸仓库识别改为结合上下文与仓库名形态判断,降低普通路径误触发;渲染头像等外部资源会复用代理配置,发送后清理临时 PNG 缓存。
|
|
60
|
+
- 收紧子命令推断:声明式 inference 正则需要完整匹配参数,避免只匹配前缀时误选子命令。
|
|
61
|
+
- 修复 Playwright 启动失败清理:浏览器 launch 失败时会停止已启动的 driver,避免反复失败时残留资源。
|
|
62
|
+
- 改进 LaTeX 渲染稳定性:常见公式优先使用本地 `matplotlib` mathtext 渲染,复杂内容再回退共享浏览器实例中的 MathJax + Playwright,避免简单公式依赖外部网络或系统 TeX 环境。
|
|
63
|
+
- 修复流式输出一致性:Chat Completions 与 Responses 流式聚合结果不再裁剪模型输出前后空白,与非流式路径保持一致,避免代码块缩进或刻意留白被改写。
|
|
64
|
+
|
|
65
|
+
---
|
|
66
|
+
|
|
1
67
|
## v3.3.2 架构重构、假@检测与认知侧写增强
|
|
2
68
|
|
|
3
69
|
围绕核心架构进行了大规模重构与功能增强:Runtime API 拆分为路由子模块、配置系统模块化拆分、新增假@检测机制与 /profile 多输出模式。同步引入复读机制全面升级(可配置阈值与冷却)、消息预处理并行化、WebUI 多项交互功能,以及 arXiv 论文分析 Agent 和安全计算器工具。测试覆盖从约 800 提升至 1438+。
|
|
@@ -84,7 +150,7 @@
|
|
|
84
150
|
- 过滤 replay-only 状态字段,防止 Responses 回放结果干扰后续请求。
|
|
85
151
|
- 调整队列重试调度逻辑,支持零间隔立即投递,并细化重试时序。
|
|
86
152
|
- 增加私聊消息发送失败时的临时会话回退机制,降低消息丢失率。
|
|
87
|
-
- 限制 `/
|
|
153
|
+
- 限制 `/admin ls` 命令的可见性,提升安全性。
|
|
88
154
|
- 为 Naga 增加发送 UUID 幂等性校验、投递追踪及相关测试覆盖。
|
|
89
155
|
- 修复 CI 与运行时测试,并补充 OpenAI reasoning 参数的对齐处理。
|
|
90
156
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: Undefined-bot
|
|
3
|
-
Version: 3.
|
|
3
|
+
Version: 3.4.0
|
|
4
4
|
Summary: QQ bot platform with cognitive memory architecture and multi-agent Skills, via OneBot V11.
|
|
5
5
|
Project-URL: Repository, https://github.com/69gg/Undefined
|
|
6
6
|
Project-URL: Issues, https://github.com/69gg/Undefined/issues
|
|
@@ -100,10 +100,10 @@ Description-Content-Type: text/markdown
|
|
|
100
100
|
详见 [认知记忆文档](docs/cognitive-memory.md)。
|
|
101
101
|
- **Management-first WebUI**:继续保留 `uv run Undefined-webui` 一键入口;即使 `config.toml` 缺失或未配完,也能先进入管理态补配置、看日志、校验并启动 Bot。
|
|
102
102
|
- **远程管理 + 多端客户端**:浏览器版 WebUI 与新的跨平台控制台共享同一管理面,支持远程管理,并覆盖 `Windows / macOS / Linux / Android` 发布链路。
|
|
103
|
-
- **Management API + Runtime API 分层**:配置、日志、Bot 启停和管理探针由 Management API 提供;主进程 Runtime API 则专注探针、记忆只读查询、认知侧写检索和 WebUI AI Chat。详见 [docs/management-api.md](docs/management-api.md) 与 [docs/openapi.md](docs/openapi.md)。
|
|
103
|
+
- **Management API + Runtime API 分层**:配置、日志、Bot 启停和管理探针由 Management API 提供;主进程 Runtime API 则专注探针、记忆只读查询、认知侧写检索和 WebUI AI Chat;内部探针的技能统计覆盖可调用工具、工具集、Agent、自动处理管线、斜杠命令与 Anthropic Skills。详见 [docs/management-api.md](docs/management-api.md) 与 [docs/openapi.md](docs/openapi.md)。
|
|
104
104
|
- **多模型池**:支持配置多个 AI 模型,可轮询、随机选择或用户指定;支持多模型并发比较,选择最佳结果继续对话。详见 [多模型功能文档](docs/multi-model.md)。
|
|
105
105
|
- **本地知识库**:将纯文本文件向量化存入 ChromaDB,AI 可通过关键词搜索或语义搜索查询领域知识;支持增量嵌入与自动扫描。详见 [知识库文档](docs/knowledge.md)。
|
|
106
|
-
- **全局表情包库**:收到图片后可异步判定是否为表情包,通过两阶段 LLM 管线生成纯文本描述与标签,支持关键词检索、语义检索和混合检索,并可直接按统一图片 `uid` 发送或插入 `<
|
|
106
|
+
- **全局表情包库**:收到图片后可异步判定是否为表情包,通过两阶段 LLM 管线生成纯文本描述与标签,支持关键词检索、语义检索和混合检索,并可直接按统一图片 `uid` 发送或插入 `<attachment uid="..."/>`。详见 [表情包库说明](docs/memes.md)。
|
|
107
107
|
- **访问控制(群/私聊)**:支持 `access.mode` 三种模式(`off` / `blacklist` / `allowlist`)和群/私聊黑白名单;可按策略限制收发范围,避免误触发与误投递。详见 [docs/access-control.md](docs/access-control.md)。
|
|
108
108
|
- **版本变更可查询**:仓库根目录维护 `CHANGELOG.md`,并提供 `/changelog` 命令在运行时查看最近版本和单版本摘要。
|
|
109
109
|
- **并行工具执行**:无论是主 AI 还是子 Agent,均支持 `asyncio` 并发工具调用,大幅提升多任务处理速度(如同时读取多个文件或搜索多个关键词)。
|
|
@@ -117,6 +117,9 @@ Description-Content-Type: text/markdown
|
|
|
117
117
|
- **Anthropic Skills**:支持 Anthropic Agent Skills(SKILL.md 格式),遵循 agentskills.io 开放标准,提供领域知识注入能力。
|
|
118
118
|
- **Bilibili 视频提取**:自动检测消息中的 B 站视频链接/BV 号/小程序分享,下载 1080p 视频并通过 QQ 发送;同时提供 AI 工具调用入口。
|
|
119
119
|
- **arXiv 论文提取与搜索**:自动检测消息中的 arXiv 链接/标识并发送论文信息与 PDF;同时提供 `arxiv_paper` 发送工具和 `arxiv_search` 检索工具。
|
|
120
|
+
- **GitHub 仓库卡片**:自动检测 GitHub 仓库链接或 `owner/repo` 仓库 ID,获取 public 仓库信息并发送简洁图片卡片,展示头像、简介、stars、forks、issues、contributors 等概览。
|
|
121
|
+
- **自动处理管线**:Bilibili、arXiv、GitHub 等自动提取统一运行在 `skills/pipelines` 中,斜杠命令优先级更高;命令输入/输出会写入历史,非命令消息会并行检测和处理命中管线,结果通过统一发送层写入历史并登记附件 UID 后再进入 AI 回复。远程大附件超过 `[attachments].remote_download_max_size_mb` 时只登记 URL 引用,避免无界下载和缓存膨胀。
|
|
122
|
+
- **同 sender 短时消息合并**:默认开启。连续发的多条消息会合并到同一轮 AI 调用,AI 一次看到全部意图自行识别"独立请求/修正/打断";告别"画猫→改成狗"的重复触发与回复打架。主提示词按 batcher 的"当前输入批次"语义适配,关闭该功能可能导致连续补充/修正消息与提示词不匹配,需要单独适配。可选投机预发送让用户停顿时 LLM 提前开跑、新消息可在未发出回复前取消,进一步压低响应延迟。详见 [docs/message-batching.md](docs/message-batching.md)。
|
|
120
123
|
- **思维链支持**:支持开启思维链,提升复杂逻辑推理能力。
|
|
121
124
|
- **高并发架构**:基于 `asyncio` 全异步设计,支持多队列消息处理与工具并发执行,轻松应对高并发场景。
|
|
122
125
|
- **异步安全 I/O**:统一 IO 层通过线程池 + 跨平台文件锁(Linux/macOS `flock`,Windows `msvcrt`)+ 原子写入(`os.replace`)保证并发写入不损坏、且不阻塞主事件循环。
|
|
@@ -40,10 +40,10 @@
|
|
|
40
40
|
详见 [认知记忆文档](docs/cognitive-memory.md)。
|
|
41
41
|
- **Management-first WebUI**:继续保留 `uv run Undefined-webui` 一键入口;即使 `config.toml` 缺失或未配完,也能先进入管理态补配置、看日志、校验并启动 Bot。
|
|
42
42
|
- **远程管理 + 多端客户端**:浏览器版 WebUI 与新的跨平台控制台共享同一管理面,支持远程管理,并覆盖 `Windows / macOS / Linux / Android` 发布链路。
|
|
43
|
-
- **Management API + Runtime API 分层**:配置、日志、Bot 启停和管理探针由 Management API 提供;主进程 Runtime API 则专注探针、记忆只读查询、认知侧写检索和 WebUI AI Chat。详见 [docs/management-api.md](docs/management-api.md) 与 [docs/openapi.md](docs/openapi.md)。
|
|
43
|
+
- **Management API + Runtime API 分层**:配置、日志、Bot 启停和管理探针由 Management API 提供;主进程 Runtime API 则专注探针、记忆只读查询、认知侧写检索和 WebUI AI Chat;内部探针的技能统计覆盖可调用工具、工具集、Agent、自动处理管线、斜杠命令与 Anthropic Skills。详见 [docs/management-api.md](docs/management-api.md) 与 [docs/openapi.md](docs/openapi.md)。
|
|
44
44
|
- **多模型池**:支持配置多个 AI 模型,可轮询、随机选择或用户指定;支持多模型并发比较,选择最佳结果继续对话。详见 [多模型功能文档](docs/multi-model.md)。
|
|
45
45
|
- **本地知识库**:将纯文本文件向量化存入 ChromaDB,AI 可通过关键词搜索或语义搜索查询领域知识;支持增量嵌入与自动扫描。详见 [知识库文档](docs/knowledge.md)。
|
|
46
|
-
- **全局表情包库**:收到图片后可异步判定是否为表情包,通过两阶段 LLM 管线生成纯文本描述与标签,支持关键词检索、语义检索和混合检索,并可直接按统一图片 `uid` 发送或插入 `<
|
|
46
|
+
- **全局表情包库**:收到图片后可异步判定是否为表情包,通过两阶段 LLM 管线生成纯文本描述与标签,支持关键词检索、语义检索和混合检索,并可直接按统一图片 `uid` 发送或插入 `<attachment uid="..."/>`。详见 [表情包库说明](docs/memes.md)。
|
|
47
47
|
- **访问控制(群/私聊)**:支持 `access.mode` 三种模式(`off` / `blacklist` / `allowlist`)和群/私聊黑白名单;可按策略限制收发范围,避免误触发与误投递。详见 [docs/access-control.md](docs/access-control.md)。
|
|
48
48
|
- **版本变更可查询**:仓库根目录维护 `CHANGELOG.md`,并提供 `/changelog` 命令在运行时查看最近版本和单版本摘要。
|
|
49
49
|
- **并行工具执行**:无论是主 AI 还是子 Agent,均支持 `asyncio` 并发工具调用,大幅提升多任务处理速度(如同时读取多个文件或搜索多个关键词)。
|
|
@@ -57,6 +57,9 @@
|
|
|
57
57
|
- **Anthropic Skills**:支持 Anthropic Agent Skills(SKILL.md 格式),遵循 agentskills.io 开放标准,提供领域知识注入能力。
|
|
58
58
|
- **Bilibili 视频提取**:自动检测消息中的 B 站视频链接/BV 号/小程序分享,下载 1080p 视频并通过 QQ 发送;同时提供 AI 工具调用入口。
|
|
59
59
|
- **arXiv 论文提取与搜索**:自动检测消息中的 arXiv 链接/标识并发送论文信息与 PDF;同时提供 `arxiv_paper` 发送工具和 `arxiv_search` 检索工具。
|
|
60
|
+
- **GitHub 仓库卡片**:自动检测 GitHub 仓库链接或 `owner/repo` 仓库 ID,获取 public 仓库信息并发送简洁图片卡片,展示头像、简介、stars、forks、issues、contributors 等概览。
|
|
61
|
+
- **自动处理管线**:Bilibili、arXiv、GitHub 等自动提取统一运行在 `skills/pipelines` 中,斜杠命令优先级更高;命令输入/输出会写入历史,非命令消息会并行检测和处理命中管线,结果通过统一发送层写入历史并登记附件 UID 后再进入 AI 回复。远程大附件超过 `[attachments].remote_download_max_size_mb` 时只登记 URL 引用,避免无界下载和缓存膨胀。
|
|
62
|
+
- **同 sender 短时消息合并**:默认开启。连续发的多条消息会合并到同一轮 AI 调用,AI 一次看到全部意图自行识别"独立请求/修正/打断";告别"画猫→改成狗"的重复触发与回复打架。主提示词按 batcher 的"当前输入批次"语义适配,关闭该功能可能导致连续补充/修正消息与提示词不匹配,需要单独适配。可选投机预发送让用户停顿时 LLM 提前开跑、新消息可在未发出回复前取消,进一步压低响应延迟。详见 [docs/message-batching.md](docs/message-batching.md)。
|
|
60
63
|
- **思维链支持**:支持开启思维链,提升复杂逻辑推理能力。
|
|
61
64
|
- **高并发架构**:基于 `asyncio` 全异步设计,支持多队列消息处理与工具并发执行,轻松应对高并发场景。
|
|
62
65
|
- **异步安全 I/O**:统一 IO 层通过线程池 + 跨平台文件锁(Linux/macOS `flock`,Windows `msvcrt`)+ 原子写入(`os.replace`)保证并发写入不损坏、且不阻塞主事件循环。
|
|
@@ -28,6 +28,9 @@ context_recent_messages_limit = 20
|
|
|
28
28
|
# zh: 单次 LLM 请求失败时最大静默重试次数(0=不重试,默认2)。失败的请求会回到原队列的第 2 个位置。
|
|
29
29
|
# en: Max silent retries for a single failed LLM request (0=no retry, default 2). Failed requests are reinserted at position 2 of their original queue lane.
|
|
30
30
|
ai_request_max_retries = 2
|
|
31
|
+
# zh: 模型返回纯文本但未调用 send_message/end 等工具时的最大纠正重试次数(0=不重试,默认3)。
|
|
32
|
+
# en: Max correction retries when the model returns plain text without tool calls (0=no retry, default 3).
|
|
33
|
+
missing_tool_call_retries = 3
|
|
31
34
|
|
|
32
35
|
# zh: 访问控制。mode 可选:off(不启用)/ blacklist(按黑名单)/ allowlist(按白名单)。
|
|
33
36
|
# en: Access control. mode options: off (disabled) / blacklist / allowlist.
|
|
@@ -122,6 +125,9 @@ responses_force_stateless_replay = false
|
|
|
122
125
|
# zh: 是否启用自动 prompt_cache_key(建议开启,以提高相似请求的缓存命中率)。
|
|
123
126
|
# en: Enable automatic prompt_cache_key generation (recommended).
|
|
124
127
|
prompt_cache_enabled = true
|
|
128
|
+
# zh: 是否对上游模型 API 启用流式请求。
|
|
129
|
+
# en: Enable streaming requests to the upstream model API.
|
|
130
|
+
stream_enabled = false
|
|
125
131
|
|
|
126
132
|
# zh: 额外请求体参数(可选),可用于 temperature 或供应商私有参数。
|
|
127
133
|
# en: Extra request-body params (optional), e.g. temperature or vendor-specific fields.
|
|
@@ -188,7 +194,12 @@ responses_tool_choice_compat = false
|
|
|
188
194
|
# zh: Responses API 续轮强制降级:启用后,多轮工具调用将始终跳过 previous_response_id,直接使用完整消息重放(stateless replay)。仅在上游不兼容 responses 状态续轮时使用。默认关闭。
|
|
189
195
|
# en: Responses API force stateless replay: when enabled, multi-turn tool follow-ups always skip previous_response_id and replay the full message history instead. Use only when the upstream does not handle stateful responses follow-ups correctly. Disabled by default.
|
|
190
196
|
responses_force_stateless_replay = false
|
|
197
|
+
# zh: 是否启用自动 prompt_cache_key(建议开启,以提高相似请求的缓存命中率)。
|
|
198
|
+
# en: Enable automatic prompt_cache_key generation (recommended).
|
|
191
199
|
prompt_cache_enabled = true
|
|
200
|
+
# zh: 是否对上游模型 API 启用流式请求。
|
|
201
|
+
# en: Enable streaming requests to the upstream model API.
|
|
202
|
+
stream_enabled = false
|
|
192
203
|
|
|
193
204
|
# zh: 额外请求体参数(可选),可用于 temperature 或供应商私有参数。
|
|
194
205
|
# en: Extra request-body params (optional), e.g. temperature or vendor-specific fields.
|
|
@@ -245,7 +256,12 @@ responses_tool_choice_compat = false
|
|
|
245
256
|
# zh: Responses API 续轮强制降级:启用后,多轮工具调用将始终跳过 previous_response_id,直接使用完整消息重放(stateless replay)。仅在上游不兼容 responses 状态续轮时使用。默认关闭。
|
|
246
257
|
# en: Responses API force stateless replay: when enabled, multi-turn tool follow-ups always skip previous_response_id and replay the full message history instead. Use only when the upstream does not handle stateful responses follow-ups correctly. Disabled by default.
|
|
247
258
|
responses_force_stateless_replay = false
|
|
259
|
+
# zh: 是否启用自动 prompt_cache_key(建议开启,以提高相似请求的缓存命中率)。
|
|
260
|
+
# en: Enable automatic prompt_cache_key generation (recommended).
|
|
248
261
|
prompt_cache_enabled = true
|
|
262
|
+
# zh: 是否对上游模型 API 启用流式请求。
|
|
263
|
+
# en: Enable streaming requests to the upstream model API.
|
|
264
|
+
stream_enabled = false
|
|
249
265
|
|
|
250
266
|
# zh: 额外请求体参数(可选),可用于 temperature 或供应商私有参数。
|
|
251
267
|
# en: Extra request-body params (optional), e.g. temperature or vendor-specific fields.
|
|
@@ -301,6 +317,9 @@ responses_tool_choice_compat = false
|
|
|
301
317
|
# zh: Responses API 续轮强制降级。
|
|
302
318
|
# en: Responses API force stateless replay.
|
|
303
319
|
responses_force_stateless_replay = false
|
|
320
|
+
# zh: 是否对上游模型 API 启用流式请求。
|
|
321
|
+
# en: Enable streaming requests to the upstream model API.
|
|
322
|
+
stream_enabled = false
|
|
304
323
|
|
|
305
324
|
# zh: 额外请求体参数(可选),可用于 temperature 或供应商私有参数。
|
|
306
325
|
# en: Extra request-body params (optional), e.g. temperature or vendor-specific fields.
|
|
@@ -354,7 +373,12 @@ responses_tool_choice_compat = false
|
|
|
354
373
|
# zh: Responses API 续轮强制降级:启用后,多轮工具调用将始终跳过 previous_response_id,直接使用完整消息重放(stateless replay)。仅在上游不兼容 responses 状态续轮时使用。默认关闭。
|
|
355
374
|
# en: Responses API force stateless replay: when enabled, multi-turn tool follow-ups always skip previous_response_id and replay the full message history instead. Use only when the upstream does not handle stateful responses follow-ups correctly. Disabled by default.
|
|
356
375
|
responses_force_stateless_replay = false
|
|
376
|
+
# zh: 是否启用自动 prompt_cache_key(建议开启,以提高相似请求的缓存命中率)。
|
|
377
|
+
# en: Enable automatic prompt_cache_key generation (recommended).
|
|
357
378
|
prompt_cache_enabled = true
|
|
379
|
+
# zh: 是否对上游模型 API 启用流式请求。
|
|
380
|
+
# en: Enable streaming requests to the upstream model API.
|
|
381
|
+
stream_enabled = false
|
|
358
382
|
|
|
359
383
|
# zh: 额外请求体参数(可选),可用于 temperature 或供应商私有参数。
|
|
360
384
|
# en: Extra request-body params (optional), e.g. temperature or vendor-specific fields.
|
|
@@ -421,7 +445,12 @@ responses_tool_choice_compat = false
|
|
|
421
445
|
# zh: Responses API 续轮强制降级:启用后,多轮工具调用将始终跳过 previous_response_id,直接使用完整消息重放(stateless replay)。仅在上游不兼容 responses 状态续轮时使用。默认关闭。
|
|
422
446
|
# en: Responses API force stateless replay: when enabled, multi-turn tool follow-ups always skip previous_response_id and replay the full message history instead. Use only when the upstream does not handle stateful responses follow-ups correctly. Disabled by default.
|
|
423
447
|
responses_force_stateless_replay = false
|
|
448
|
+
# zh: 是否启用自动 prompt_cache_key(建议开启,以提高相似请求的缓存命中率)。
|
|
449
|
+
# en: Enable automatic prompt_cache_key generation (recommended).
|
|
424
450
|
prompt_cache_enabled = true
|
|
451
|
+
# zh: 是否对上游模型 API 启用流式请求。
|
|
452
|
+
# en: Enable streaming requests to the upstream model API.
|
|
453
|
+
stream_enabled = false
|
|
425
454
|
|
|
426
455
|
# zh: 额外请求体参数(可选),可用于 temperature 或供应商私有参数。
|
|
427
456
|
# en: Extra request-body params (optional), e.g. temperature or vendor-specific fields.
|
|
@@ -475,7 +504,12 @@ responses_tool_choice_compat = false
|
|
|
475
504
|
# zh: Responses API 续轮强制降级:启用后,多轮工具调用将始终跳过 previous_response_id,直接使用完整消息重放(stateless replay)。仅在上游不兼容 responses 状态续轮时使用。默认关闭。
|
|
476
505
|
# en: Responses API force stateless replay: when enabled, multi-turn tool follow-ups always skip previous_response_id and replay the full message history instead. Use only when the upstream does not handle stateful responses follow-ups correctly. Disabled by default.
|
|
477
506
|
responses_force_stateless_replay = false
|
|
507
|
+
# zh: 是否启用自动 prompt_cache_key(建议开启,以提高相似请求的缓存命中率)。
|
|
508
|
+
# en: Enable automatic prompt_cache_key generation (recommended).
|
|
478
509
|
prompt_cache_enabled = true
|
|
510
|
+
# zh: 是否对上游模型 API 启用流式请求。
|
|
511
|
+
# en: Enable streaming requests to the upstream model API.
|
|
512
|
+
stream_enabled = false
|
|
479
513
|
|
|
480
514
|
# zh: 额外请求体参数(可选),可用于 temperature 或供应商私有参数。
|
|
481
515
|
# en: Extra request-body params (optional), e.g. temperature or vendor-specific fields.
|
|
@@ -520,6 +554,9 @@ reasoning_effort_style = "openai"
|
|
|
520
554
|
# zh: 是否启用自动 prompt_cache_key(建议开启,以提高相似请求的缓存命中率)。
|
|
521
555
|
# en: Enable automatic prompt_cache_key generation (recommended).
|
|
522
556
|
prompt_cache_enabled = true
|
|
557
|
+
# zh: 是否对上游模型 API 启用流式请求。
|
|
558
|
+
# en: Enable streaming requests to the upstream model API.
|
|
559
|
+
stream_enabled = false
|
|
523
560
|
|
|
524
561
|
# zh: 额外请求体参数(可选),可用于 temperature 或供应商私有参数。
|
|
525
562
|
# en: Extra request-body params (optional), e.g. temperature or vendor-specific fields.
|
|
@@ -729,6 +766,40 @@ repeat_cooldown_minutes = 60
|
|
|
729
766
|
# en: Enable inverted question mark (when repeat triggers on "?" messages, send "¿" instead).
|
|
730
767
|
inverted_question_enabled = false
|
|
731
768
|
|
|
769
|
+
# zh: 同 sender 短时多消息合并器。把同一用户在短时间内连续发送的多条消息合并到同一轮 AI 触发,避免重复回复 / 行为打架。
|
|
770
|
+
# en: Same-sender short-window message batcher. Merges several messages a single user sends in quick succession into one AI turn to avoid duplicate replies / conflicting actions.
|
|
771
|
+
[message_batcher]
|
|
772
|
+
# zh: 是否启用合并器(关闭后所有消息按现行流程逐条触发 AI)。
|
|
773
|
+
# en: Enable the batcher (when disabled all messages trigger the AI individually as before).
|
|
774
|
+
enabled = true
|
|
775
|
+
# zh: 等待窗口(秒)。期间同一用户发的新消息合并到同一批;<= 0 等同于关闭。
|
|
776
|
+
# en: Wait window in seconds. New messages from the same sender within this window are merged; <= 0 disables the feature.
|
|
777
|
+
window_seconds = 5.0
|
|
778
|
+
# zh: 等待策略:extend(每来一条新消息重置 timer,"打字就继续等")/ fixed(首条到达起定时,期间到达的消息只合并不重置)。
|
|
779
|
+
# en: Wait strategy: extend (reset timer on each new message; keeps waiting while the user types) / fixed (timer fixed at the first message; new arrivals only merge but do not reset).
|
|
780
|
+
strategy = "extend"
|
|
781
|
+
# zh: extend 模式下的硬顶(秒),防止用户一直打字导致永远不发车;0 = 不限制(仅靠 window_seconds + max_messages_per_batch 触发发车)。
|
|
782
|
+
# en: Hard cap in seconds for extend mode, prevents the timer from being reset forever; 0 = no limit (rely on window_seconds + max_messages_per_batch).
|
|
783
|
+
max_window_seconds = 30.0
|
|
784
|
+
# zh: 单批最多消息条数,超出立即发车;0 = 不限制。
|
|
785
|
+
# en: Max messages per batch; exceeding triggers immediate dispatch. 0 = no limit.
|
|
786
|
+
max_messages_per_batch = 0
|
|
787
|
+
# zh: 是否在群聊启用合并。
|
|
788
|
+
# en: Enable batching in group chats.
|
|
789
|
+
group_enabled = true
|
|
790
|
+
# zh: 是否在私聊启用合并。
|
|
791
|
+
# en: Enable batching in private chats.
|
|
792
|
+
private_enabled = true
|
|
793
|
+
# zh: 收到斜杠命令时是否顺便把当前 buffer 一起发出(默认 false:命令独立执行,buffer 继续等到时间到再发)。
|
|
794
|
+
# en: When a slash command arrives, also flush the current buffer to the AI (default false: commands are executed independently and the buffer keeps waiting).
|
|
795
|
+
flush_on_command = false
|
|
796
|
+
# zh: 投机预发送阈值(秒)。0 < pre_send_seconds < window_seconds 时启用:静默到该阈值就提前把当前 batch 发给 LLM 抢时间,但 batch 不结束;T1(window_seconds)才正式结束。0 或 >= window_seconds 视为关闭。
|
|
797
|
+
# en: Speculative pre-fire threshold in seconds. Enabled when 0 < pre_send_seconds < window_seconds: once the user has been silent that long, the current batch is dispatched to the LLM early to save latency, while the batch itself only ends at window_seconds. 0 or >= window_seconds disables speculation.
|
|
798
|
+
pre_send_seconds = 0.0
|
|
799
|
+
# zh: 投机调用已经向用户发出过任何消息后,新消息到达是否仍然取消该 inflight 调用。默认 false(安全:不取消,新消息开新 batch),开启后可能造成重复发送。
|
|
800
|
+
# en: Whether to cancel an in-flight speculative LLM call even when it has already sent at least one message to the user. Default false (safe: do not cancel; the new message starts a new batch). Enabling this may cause duplicate replies.
|
|
801
|
+
allow_cancel_after_send = false
|
|
802
|
+
|
|
732
803
|
# zh: 历史记录配置。
|
|
733
804
|
# en: History settings.
|
|
734
805
|
[history]
|
|
@@ -754,6 +825,13 @@ onebot_fetch_limit = 10000
|
|
|
754
825
|
# en: Max messages/members returned by group analysis tools.
|
|
755
826
|
group_analysis_limit = 500
|
|
756
827
|
|
|
828
|
+
# zh: 附件缓存配置。
|
|
829
|
+
# en: Attachment cache settings.
|
|
830
|
+
[attachments]
|
|
831
|
+
# zh: 远程附件自动下载并缓存的最大大小(MB)。超过上限或设为 0 时只保留 URL 引用,不下载文件内容。
|
|
832
|
+
# en: Max remote attachment size (MB) to download into cache. Above the limit, or 0, keeps only a URL reference.
|
|
833
|
+
remote_download_max_size_mb = 25
|
|
834
|
+
|
|
757
835
|
# zh: Skills 热重载配置(可选)。
|
|
758
836
|
# en: Skills hot reload settings (optional).
|
|
759
837
|
[skills]
|
|
@@ -799,6 +877,8 @@ grok_search_enabled = false
|
|
|
799
877
|
[proxy]
|
|
800
878
|
# zh: 是否使用代理。
|
|
801
879
|
# en: Whether to use proxy.
|
|
880
|
+
# zh: 作用于 GitHub/arXiv 自动提取等走统一 HTTP 客户端的联网请求;关闭后也不会再读取代理环境变量。
|
|
881
|
+
# en: Applies to GitHub/arXiv auto extraction and other shared HTTP-client requests; when disabled, proxy env vars are ignored.
|
|
802
882
|
use_proxy = true
|
|
803
883
|
# zh: 例如 http://127.0.0.1:7890(也可使用环境变量 "HTTP_PROXY")。
|
|
804
884
|
# en: e.g. http://127.0.0.1:7890 (or use the "HTTP_PROXY" environment variable).
|
|
@@ -817,6 +897,29 @@ request_timeout_seconds = 30.0
|
|
|
817
897
|
# en: Default retry count (0-5).
|
|
818
898
|
request_retries = 0
|
|
819
899
|
|
|
900
|
+
# zh: HTML/Markdown 图片渲染配置。
|
|
901
|
+
# en: HTML/Markdown image rendering settings.
|
|
902
|
+
[render]
|
|
903
|
+
# zh: 渲染浏览器最大同时开启数量。0 表示自动:Linux 默认 1,其它平台默认 2。
|
|
904
|
+
# en: Max concurrent render browser pages. 0 = auto: Linux defaults to 1, other platforms default to 2.
|
|
905
|
+
browser_max_concurrency = 0
|
|
906
|
+
|
|
907
|
+
# zh: HTML 渲染结果缓存:基于 HTML 内容 hash 复用同一张图片,避免重复渲染。
|
|
908
|
+
# en: HTML render result cache: reuse rendered images by content hash to skip re-rendering.
|
|
909
|
+
[render.cache]
|
|
910
|
+
# zh: 是否启用渲染缓存。设为 false 时所有渲染请求都会走 playwright 重新截图。
|
|
911
|
+
# en: Whether to enable the render cache. When false, every request re-renders via playwright.
|
|
912
|
+
enabled = true
|
|
913
|
+
# zh: LRU 条目数上限(>=1)。超过时按 last_accessed_at 淘汰最久未用的条目。
|
|
914
|
+
# en: Maximum LRU entries (>=1). Beyond this, the least-recently-used items are evicted.
|
|
915
|
+
max_entries = 50
|
|
916
|
+
# zh: 缓存总占用上限(MB,>=1)。超过时按 LRU 顺序持续淘汰,直到回到上限以内。
|
|
917
|
+
# en: Maximum total cache size (MB, >=1). Evicts in LRU order until within budget.
|
|
918
|
+
max_size_mb = 50
|
|
919
|
+
# zh: 元数据落盘最小间隔(秒,>=0)。频繁访问期间合并写盘,避免热点 IO。
|
|
920
|
+
# en: Minimum interval between metadata flushes (seconds, >=0). Coalesces hot-path writes.
|
|
921
|
+
flush_interval_seconds = 2.0
|
|
922
|
+
|
|
820
923
|
# zh: 第三方 API 基础地址(便于自定义镜像或私有网关)。
|
|
821
924
|
# en: Third-party API base URLs (for mirrors or private gateways).
|
|
822
925
|
[api_endpoints]
|
|
@@ -942,6 +1045,25 @@ author_preview_limit = 20
|
|
|
942
1045
|
# en: Max summary preview characters in paper info. <=0 falls back to 1000.
|
|
943
1046
|
summary_preview_chars = 1000
|
|
944
1047
|
|
|
1048
|
+
# zh: GitHub 仓库自动提取配置(仅获取 public 仓库信息)。
|
|
1049
|
+
# en: GitHub repository auto-extraction settings (public repositories only).
|
|
1050
|
+
[github]
|
|
1051
|
+
# zh: 是否启用自动提取(检测到 GitHub 仓库链接或 owner/repo 仓库 ID 时自动发送图片卡片)。
|
|
1052
|
+
# en: Enable auto-extraction (auto-send an image card when GitHub repository links or owner/repo IDs are detected).
|
|
1053
|
+
auto_extract_enabled = false
|
|
1054
|
+
# zh: GitHub API 请求超时(秒)。<=0 回退 10,>60 截断到 60。
|
|
1055
|
+
# en: GitHub API request timeout (seconds). <=0 falls back to 10, >60 is clamped to 60.
|
|
1056
|
+
request_timeout_seconds = 10.0
|
|
1057
|
+
# zh: 自动提取功能的群聊白名单(空=跟随全局 access.allowed_group_ids)。
|
|
1058
|
+
# en: Group allowlist for auto-extraction (empty = follow global access.allowed_group_ids).
|
|
1059
|
+
auto_extract_group_ids = []
|
|
1060
|
+
# zh: 自动提取功能的私聊白名单(空=跟随全局 access.allowed_private_ids)。
|
|
1061
|
+
# en: Private chat allowlist for auto-extraction (empty = follow global access.allowed_private_ids).
|
|
1062
|
+
auto_extract_private_ids = []
|
|
1063
|
+
# zh: 单条消息最多自动处理几个 GitHub 仓库。<=0 回退 3,>10 截断到 10。
|
|
1064
|
+
# en: Max number of GitHub repositories to auto-process from one message. <=0 falls back to 3, >10 is clamped to 10.
|
|
1065
|
+
auto_extract_max_items = 3
|
|
1066
|
+
|
|
945
1067
|
# zh: Code Delivery Agent 配置(代码交付 Agent,在 Docker 容器中编写代码并打包上传)。
|
|
946
1068
|
# en: Code Delivery Agent settings (writes code in Docker containers and delivers packaged results).
|
|
947
1069
|
[code_delivery]
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
<rule num="0" priority="P0" id="严防并发导致的重复">
|
|
2
|
+
<step num="1">明确你这轮的目标(例如:写一个文章;对本条消息/当前输入批次做出合适回应等)或是最后产生的结果或进行的调用(例如:会产生一条消息;会调用某个agent等)</step>
|
|
3
|
+
<step num="2">回看当前输入批次之外的历史消息,确认不会有旧消息线程导致你产生同样的目标、结果或调用。若有,立刻停止所有操作!!!改为根据情景发送应付性回答(例如:"在做了在做了"等)。</step>
|
|
4
|
+
<MUST priority="P0">以上步骤**必须**在进行任何操作之前进行执行、判断!!始终遵循规则:幽灵任务绝对隔离!!以前的消息仅做辅助判断和上下文补全,不要因为乐于助人处理之前消息列表里的任何消息!哪怕它是你必须要执行、处理的或没有回复!!以下规则仅适用于当前消息/当前输入批次,对以前消息不作数!!!</MUST>
|
|
5
|
+
</rule>
|
|
6
|
+
|
|
7
|
+
<current_input_batch_definition priority="P0">
|
|
8
|
+
**当前输入批次定义(适配 MessageBatcher):**
|
|
9
|
+
- 如果输入中出现【连续消息说明】,或当前 prompt 中紧邻出现同一 sender 的多段当前 `<message>` 块,则这些 `<message>` 共同构成“当前输入批次”,必须按时间顺序整批理解。
|
|
10
|
+
- 同批前几条不是历史旧任务;应根据连续消息说明区分【独立请求】与【修正/否定/补充/打断】,独立请求不要遗漏,修正类以最后一次明确意图为准。
|
|
11
|
+
- 如果没有【连续消息说明】,当前输入批次退化为最后一条当前 `<message>`。
|
|
12
|
+
- 历史消息存档、旧上下文、上轮未完成请求不属于当前输入批次;除非当前输入批次明确延续或修正它们,否则不得回溯执行。
|
|
13
|
+
</current_input_batch_definition>
|
|
14
|
+
|
|
15
|
+
<pre_action_mandatory_check priority="P0">
|
|
16
|
+
**发信息前或调用任何工具前的必须判断(每次操作前强制执行):**
|
|
17
|
+
1. 明确本次操作的目标:将发送的消息内容 / 将调用的工具及参数
|
|
18
|
+
2. 回看当前输入批次之外的历史消息,确认不会有旧消息线程导致你(bot)产生同样的工具调用或内容相似的消息发送
|
|
19
|
+
- 若无 → 允许继续
|
|
20
|
+
- 若有 → **立刻停止所有操作!!!** 改为根据情景发送应付性回答(例如:"在做了在做了"、"已经在处理了"等),然后调用 end。不可以发送临时的、不过脑子的错误回复!
|
|
21
|
+
</pre_action_mandatory_check>
|
|
@@ -10,6 +10,10 @@
|
|
|
10
10
|
- `res/prompts/`:模型提示词与模板
|
|
11
11
|
- `res/agents/intro/`:智能体介绍与自动生成内容
|
|
12
12
|
|
|
13
|
+
主系统提示词约定:
|
|
14
|
+
- `res/prompts/undefined.xml` 与 `res/prompts/undefined_nagaagent.xml` 共享 Undefined 的基础身份、昵称与项目归属边界。
|
|
15
|
+
- `undefined_nagaagent.xml` 只在上下文明确涉及 NagaAgent 时承接相关工具接入关系,不应在普通自我介绍或无关对话里主动提起。
|
|
16
|
+
|
|
13
17
|
自定义建议:
|
|
14
18
|
- 在运行目录放置同名文件覆盖默认资源
|
|
15
19
|
- 需要全局默认修改时,建议在源码中更新 `res/` 后运行
|