Undefined-bot 3.6.0__tar.gz → 3.6.2__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.6.0 → undefined_bot-3.6.2}/ARCHITECTURE.md +4 -4
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/CHANGELOG.md +24 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/PKG-INFO +6 -6
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/README.md +5 -5
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/pyproject.toml +1 -1
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/res/prompts/undefined.xml +8 -8
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/res/prompts/undefined_nagaagent.xml +19 -13
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/__init__.py +1 -1
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/arxiv/sender.py +93 -1
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/attachments/models.py +2 -1
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/attachments/registry.py +65 -2
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/attachments/segments.py +52 -8
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/bilibili/sender.py +125 -2
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/handlers/message_flow.py +202 -17
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/handlers/poke.py +1 -1
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/services/coordinator/group.py +6 -6
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/services/coordinator/private.py +1 -1
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/agents/README.md +37 -19
- undefined_bot-3.6.2/src/Undefined/skills/agents/code_delivery_agent/intro.md +16 -0
- undefined_bot-3.6.2/src/Undefined/skills/agents/code_delivery_agent/prompt.md +20 -0
- undefined_bot-3.6.2/src/Undefined/skills/agents/entertainment_agent/intro.md +16 -0
- undefined_bot-3.6.2/src/Undefined/skills/agents/entertainment_agent/prompt.md +19 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/agents/file_analysis_agent/README.md +3 -1
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/agents/file_analysis_agent/config.json +3 -3
- undefined_bot-3.6.2/src/Undefined/skills/agents/file_analysis_agent/intro.md +17 -0
- undefined_bot-3.6.2/src/Undefined/skills/agents/file_analysis_agent/prompt.md +27 -0
- undefined_bot-3.6.2/src/Undefined/skills/agents/file_analysis_agent/tools/describe_pdf_page/config.json +29 -0
- undefined_bot-3.6.2/src/Undefined/skills/agents/file_analysis_agent/tools/describe_pdf_page/handler.py +154 -0
- undefined_bot-3.6.2/src/Undefined/skills/agents/info_agent/intro.md +16 -0
- undefined_bot-3.6.2/src/Undefined/skills/agents/info_agent/prompt.md +17 -0
- undefined_bot-3.6.2/src/Undefined/skills/agents/naga_code_analysis_agent/intro.md +17 -0
- undefined_bot-3.6.2/src/Undefined/skills/agents/naga_code_analysis_agent/prompt.md +19 -0
- undefined_bot-3.6.2/src/Undefined/skills/agents/summary_agent/intro.md +16 -0
- undefined_bot-3.6.2/src/Undefined/skills/agents/summary_agent/prompt.md +18 -0
- undefined_bot-3.6.2/src/Undefined/skills/agents/undefined_self_code_agent/intro.md +17 -0
- undefined_bot-3.6.2/src/Undefined/skills/agents/undefined_self_code_agent/prompt.md +18 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/agents/web_agent/callable.json +1 -1
- undefined_bot-3.6.2/src/Undefined/skills/agents/web_agent/intro.md +15 -0
- undefined_bot-3.6.2/src/Undefined/skills/agents/web_agent/prompt.md +17 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/tools/arxiv_paper/README.md +8 -2
- undefined_bot-3.6.2/src/Undefined/skills/tools/arxiv_paper/callable.json +4 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/tools/arxiv_paper/config.json +6 -1
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/tools/arxiv_paper/handler.py +29 -9
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/tools/bilibili_video/README.md +8 -2
- undefined_bot-3.6.2/src/Undefined/skills/tools/bilibili_video/callable.json +4 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/tools/bilibili_video/config.json +6 -1
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/tools/bilibili_video/handler.py +33 -9
- undefined_bot-3.6.2/src/Undefined/skills/toolsets/messages/get_forward_msg/config.json +29 -0
- undefined_bot-3.6.2/src/Undefined/skills/toolsets/messages/get_forward_msg/handler.py +253 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/utils/io.py +5 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/utils/xml.py +21 -9
- undefined_bot-3.6.0/src/Undefined/services/ai_coordinator.py +0 -1092
- undefined_bot-3.6.0/src/Undefined/skills/agents/arxiv_analysis_agent/callable.json +0 -4
- undefined_bot-3.6.0/src/Undefined/skills/agents/arxiv_analysis_agent/config.json +0 -21
- undefined_bot-3.6.0/src/Undefined/skills/agents/arxiv_analysis_agent/handler.py +0 -51
- undefined_bot-3.6.0/src/Undefined/skills/agents/arxiv_analysis_agent/intro.md +0 -1
- undefined_bot-3.6.0/src/Undefined/skills/agents/arxiv_analysis_agent/prompt.md +0 -28
- undefined_bot-3.6.0/src/Undefined/skills/agents/arxiv_analysis_agent/tools/__init__.py +0 -0
- undefined_bot-3.6.0/src/Undefined/skills/agents/arxiv_analysis_agent/tools/fetch_paper/config.json +0 -17
- undefined_bot-3.6.0/src/Undefined/skills/agents/arxiv_analysis_agent/tools/fetch_paper/handler.py +0 -75
- undefined_bot-3.6.0/src/Undefined/skills/agents/arxiv_analysis_agent/tools/read_paper_pages/config.json +0 -21
- undefined_bot-3.6.0/src/Undefined/skills/agents/arxiv_analysis_agent/tools/read_paper_pages/handler.py +0 -68
- undefined_bot-3.6.0/src/Undefined/skills/agents/code_delivery_agent/intro.md +0 -1
- undefined_bot-3.6.0/src/Undefined/skills/agents/code_delivery_agent/prompt.md +0 -65
- undefined_bot-3.6.0/src/Undefined/skills/agents/entertainment_agent/intro.md +0 -25
- undefined_bot-3.6.0/src/Undefined/skills/agents/entertainment_agent/prompt.md +0 -22
- undefined_bot-3.6.0/src/Undefined/skills/agents/file_analysis_agent/intro.md +0 -20
- undefined_bot-3.6.0/src/Undefined/skills/agents/file_analysis_agent/prompt.md +0 -34
- undefined_bot-3.6.0/src/Undefined/skills/agents/info_agent/intro.md +0 -21
- undefined_bot-3.6.0/src/Undefined/skills/agents/info_agent/prompt.md +0 -18
- undefined_bot-3.6.0/src/Undefined/skills/agents/naga_code_analysis_agent/intro.md +0 -21
- undefined_bot-3.6.0/src/Undefined/skills/agents/naga_code_analysis_agent/prompt.md +0 -15
- undefined_bot-3.6.0/src/Undefined/skills/agents/summary_agent/intro.md +0 -36
- undefined_bot-3.6.0/src/Undefined/skills/agents/summary_agent/prompt.md +0 -53
- undefined_bot-3.6.0/src/Undefined/skills/agents/undefined_self_code_agent/intro.md +0 -22
- undefined_bot-3.6.0/src/Undefined/skills/agents/undefined_self_code_agent/prompt.md +0 -20
- undefined_bot-3.6.0/src/Undefined/skills/agents/web_agent/intro.md +0 -19
- undefined_bot-3.6.0/src/Undefined/skills/agents/web_agent/prompt.md +0 -18
- undefined_bot-3.6.0/src/Undefined/skills/toolsets/messages/get_forward_msg/config.json +0 -17
- undefined_bot-3.6.0/src/Undefined/skills/toolsets/messages/get_forward_msg/handler.py +0 -131
- undefined_bot-3.6.0/src/Undefined/utils/__init__.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/.gitignore +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/LICENSE +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/config/README.md +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/config/mcp.json.example +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/config.toml.example +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/img/xlwy.jpg +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/res/IMPORTANT/each.md +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/res/README.md +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/res/prompts/agent_self_intro.txt +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/res/prompts/analyze_multimodal.txt +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/res/prompts/describe_image.txt +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/res/prompts/describe_meme_image.txt +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/res/prompts/generate_title.txt +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/res/prompts/historian_profile_merge.md +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/res/prompts/historian_rewrite.md +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/res/prompts/image_gen_moderation.txt +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/res/prompts/injection_detector.txt +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/res/prompts/injection_response_agent.txt +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/res/prompts/judge_meme_image.txt +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/res/prompts/merge_message_summaries.txt +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/res/prompts/merge_summaries.txt +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/res/prompts/message_summary.txt +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/res/prompts/naga_message_moderation.txt +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/res/prompts/stats_analysis.txt +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/res/prompts/summarize.txt +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/README.md +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/README.md +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/__main__.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/ai/__init__.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/ai/client/__init__.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/ai/client/ask_loop.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/ai/client/queue.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/ai/client/setup.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/ai/crawl4ai_support.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/ai/http.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/ai/llm/__init__.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/ai/llm/requester.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/ai/llm/sanitize.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/ai/llm/streaming.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/ai/llm/thinking.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/ai/llm/types.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/ai/model_selector.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/ai/multimodal/__init__.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/ai/multimodal/analyzer.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/ai/multimodal/constants.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/ai/multimodal/detection.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/ai/multimodal/parsing.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/ai/parsing.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/ai/prompts/__init__.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/ai/prompts/builder.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/ai/prompts/cognitive.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/ai/prompts/constants.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/ai/prompts/current_input.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/ai/prompts/system_context.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/ai/queue_budget.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/ai/retrieval.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/ai/summaries.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/ai/tokens.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/ai/tooling.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/ai/transports/__init__.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/ai/transports/openai_transport.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/api/__init__.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/api/_context.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/api/_helpers.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/api/_naga_state.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/api/_openapi.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/api/_probes.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/api/app.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/api/naga_store.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/api/routes/__init__.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/api/routes/chat.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/api/routes/cognitive.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/api/routes/commands.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/api/routes/health.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/api/routes/memes.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/api/routes/memory.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/api/routes/naga/__init__.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/api/routes/naga/auth.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/api/routes/naga/bind.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/api/routes/naga/send.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/api/routes/naga/unbind.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/api/routes/schedules.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/api/routes/system.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/api/routes/tools.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/api/webchat_store.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/arxiv/__init__.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/arxiv/client.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/arxiv/downloader.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/arxiv/models.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/arxiv/parser.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/attachments/__init__.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/attachments/render.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/bilibili/__init__.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/bilibili/api_client.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/bilibili/danmaku.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/bilibili/download_core.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/bilibili/downloader.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/bilibili/errors.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/bilibili/models.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/bilibili/parser.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/bilibili/wbi.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/bilibili/wbi_request.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/changelog.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/cognitive/__init__.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/cognitive/chroma_scheduler.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/cognitive/historian/__init__.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/cognitive/historian/helpers.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/cognitive/historian/tools.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/cognitive/historian/worker.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/cognitive/job_queue.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/cognitive/profile_storage.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/cognitive/service/__init__.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/cognitive/service/helpers.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/cognitive/service/service.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/cognitive/vector_store.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/cognitive/vector_store_compat.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/config/__init__.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/config/admin.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/config/build_config.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/config/coercers.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/config/config_class.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/config/domain_parsers.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/config/env_registry.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/config/hot_reload.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/config/load_sections/__init__.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/config/load_sections/access.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/config/load_sections/core.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/config/load_sections/domains.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/config/load_sections/finalize.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/config/load_sections/history_skills.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/config/load_sections/integrations.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/config/load_sections/knowledge.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/config/load_sections/logging_tools.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/config/load_sections/models.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/config/load_sections/network.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/config/loader.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/config/manager.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/config/model_parsers.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/config/models.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/config/parsers/__init__.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/config/parsers/agent.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/config/parsers/chat.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/config/parsers/embedding.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/config/parsers/grok.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/config/parsers/helpers.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/config/parsers/historian.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/config/parsers/image.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/config/parsers/naga.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/config/parsers/pool.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/config/parsers/security.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/config/parsers/summary.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/config/parsers/vision.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/config/resolvers.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/config/toml_io.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/config/webui_settings.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/context.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/context_resource_registry.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/end_summary_storage.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/faq.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/github/__init__.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/github/client.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/github/models.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/github/parser.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/github/sender.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/handlers/__init__.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/handlers/auto_extract.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/handlers/repeat.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/injection_response_agent.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/knowledge/__init__.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/knowledge/chunker.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/knowledge/embedder.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/knowledge/manager.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/knowledge/reranker.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/knowledge/runtime.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/knowledge/store.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/main.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/mcp/__init__.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/mcp/registry.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/memes/__init__.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/memes/_image_utils.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/memes/ingest.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/memes/models.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/memes/search.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/memes/service.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/memes/store.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/memes/vector_store.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/memes/worker.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/memory.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/onebot/__init__.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/onebot/client.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/onebot/message.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/py.typed +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/rate_limit.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/render.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/scheduled_task_storage.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/services/__init__.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/services/command.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/services/commands/__init__.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/services/commands/bugfix.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/services/commands/context.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/services/commands/registry.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/services/commands/stats.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/services/coordinator/__init__.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/services/coordinator/background.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/services/coordinator/batching.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/services/coordinator/message_ids.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/services/message_batcher/__init__.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/services/message_batcher/scheduler.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/services/message_batcher/state.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/services/message_summary_fetch.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/services/model_pool.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/services/queue_manager.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/services/security.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/README.md +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/__init__.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/agents/__init__.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/agents/agent_tool_registry.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/agents/code_delivery_agent/config.json +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/agents/code_delivery_agent/docker_utils.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/agents/code_delivery_agent/handler.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/agents/code_delivery_agent/mcp.json +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/agents/code_delivery_agent/tools/copy/config.json +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/agents/code_delivery_agent/tools/copy/handler.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/agents/code_delivery_agent/tools/delete/config.json +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/agents/code_delivery_agent/tools/delete/handler.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/agents/code_delivery_agent/tools/diff/config.json +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/agents/code_delivery_agent/tools/diff/handler.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/agents/code_delivery_agent/tools/end/config.json +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/agents/code_delivery_agent/tools/end/handler.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/agents/code_delivery_agent/tools/glob/config.json +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/agents/code_delivery_agent/tools/glob/handler.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/agents/code_delivery_agent/tools/grep/config.json +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/agents/code_delivery_agent/tools/grep/handler.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/agents/code_delivery_agent/tools/init_docker/config.json +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/agents/code_delivery_agent/tools/init_docker/handler.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/agents/code_delivery_agent/tools/read/config.json +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/agents/code_delivery_agent/tools/read/handler.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/agents/code_delivery_agent/tools/run_bash_command/config.json +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/agents/code_delivery_agent/tools/run_bash_command/handler.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/agents/code_delivery_agent/tools/todo/config.json +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/agents/code_delivery_agent/tools/todo/handler.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/agents/code_delivery_agent/tools/tree/config.json +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/agents/code_delivery_agent/tools/tree/handler.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/agents/code_delivery_agent/tools/write/config.json +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/agents/code_delivery_agent/tools/write/handler.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/agents/entertainment_agent/README.md +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/agents/entertainment_agent/config.json +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/agents/entertainment_agent/handler.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/agents/entertainment_agent/tools/__init__.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/agents/entertainment_agent/tools/ai_draw_one/config.json +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/agents/entertainment_agent/tools/ai_draw_one/handler.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/agents/entertainment_agent/tools/horoscope/config.json +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/agents/entertainment_agent/tools/horoscope/handler.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/agents/entertainment_agent/tools/minecraft_skin/config.json +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/agents/entertainment_agent/tools/minecraft_skin/handler.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/agents/entertainment_agent/tools/renjian/config.json +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/agents/entertainment_agent/tools/renjian/handler.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/agents/entertainment_agent/tools/wenchang_dijun/config.json +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/agents/entertainment_agent/tools/wenchang_dijun/handler.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/agents/file_analysis_agent/__init__.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/agents/file_analysis_agent/handler.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/agents/file_analysis_agent/tools/__init__.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/agents/file_analysis_agent/tools/analyze_code/config.json +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/agents/file_analysis_agent/tools/analyze_code/handler.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/agents/file_analysis_agent/tools/analyze_multimodal/config.json +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/agents/file_analysis_agent/tools/analyze_multimodal/handler.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/agents/file_analysis_agent/tools/cleanup_temp/config.json +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/agents/file_analysis_agent/tools/cleanup_temp/handler.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/agents/file_analysis_agent/tools/detect_file_type/config.json +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/agents/file_analysis_agent/tools/detect_file_type/handler.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/agents/file_analysis_agent/tools/download_file/config.json +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/agents/file_analysis_agent/tools/download_file/handler.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/agents/file_analysis_agent/tools/extract_archive/config.json +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/agents/file_analysis_agent/tools/extract_archive/handler.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/agents/file_analysis_agent/tools/extract_docx/config.json +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/agents/file_analysis_agent/tools/extract_docx/handler.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/agents/file_analysis_agent/tools/extract_pdf/config.json +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/agents/file_analysis_agent/tools/extract_pdf/handler.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/agents/file_analysis_agent/tools/extract_pptx/config.json +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/agents/file_analysis_agent/tools/extract_pptx/handler.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/agents/file_analysis_agent/tools/extract_xlsx/config.json +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/agents/file_analysis_agent/tools/extract_xlsx/handler.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/agents/file_analysis_agent/tools/read_text_file/config.json +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/agents/file_analysis_agent/tools/read_text_file/handler.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/agents/info_agent/README.md +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/agents/info_agent/config.json +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/agents/info_agent/handler.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/agents/info_agent/tools/__init__.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/agents/info_agent/tools/arxiv_search/config.json +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/agents/info_agent/tools/arxiv_search/handler.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/agents/info_agent/tools/baiduhot/config.json +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/agents/info_agent/tools/baiduhot/handler.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/agents/info_agent/tools/base64/config.json +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/agents/info_agent/tools/base64/handler.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/agents/info_agent/tools/bilibili_search/config.json +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/agents/info_agent/tools/bilibili_search/handler.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/agents/info_agent/tools/bilibili_user_info/config.json +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/agents/info_agent/tools/bilibili_user_info/handler.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/agents/info_agent/tools/douyinhot/config.json +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/agents/info_agent/tools/douyinhot/handler.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/agents/info_agent/tools/gold_price/config.json +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/agents/info_agent/tools/gold_price/handler.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/agents/info_agent/tools/hash/config.json +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/agents/info_agent/tools/hash/handler.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/agents/info_agent/tools/history/config.json +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/agents/info_agent/tools/history/handler.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/agents/info_agent/tools/net_check/config.json +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/agents/info_agent/tools/net_check/handler.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/agents/info_agent/tools/qq_level_query/config.json +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/agents/info_agent/tools/qq_level_query/handler.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/agents/info_agent/tools/speed/config.json +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/agents/info_agent/tools/speed/handler.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/agents/info_agent/tools/tcping/config.json +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/agents/info_agent/tools/tcping/handler.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/agents/info_agent/tools/weather_query/config.json +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/agents/info_agent/tools/weather_query/handler.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/agents/info_agent/tools/weibohot/config.json +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/agents/info_agent/tools/weibohot/handler.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/agents/info_agent/tools/whois/config.json +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/agents/info_agent/tools/whois/handler.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/agents/intro_generator.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/agents/intro_utils.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/agents/naga_code_analysis_agent/README.md +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/agents/naga_code_analysis_agent/config.json +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/agents/naga_code_analysis_agent/handler.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/agents/naga_code_analysis_agent/mcp.json +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/agents/naga_code_analysis_agent/tools/__init__.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/agents/naga_code_analysis_agent/tools/glob/config.json +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/agents/naga_code_analysis_agent/tools/glob/handler.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/agents/naga_code_analysis_agent/tools/list_directory/config.json +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/agents/naga_code_analysis_agent/tools/list_directory/handler.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/agents/naga_code_analysis_agent/tools/read_file/config.json +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/agents/naga_code_analysis_agent/tools/read_file/handler.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/agents/naga_code_analysis_agent/tools/read_naga_intro/config.json +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/agents/naga_code_analysis_agent/tools/read_naga_intro/handler.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/agents/naga_code_analysis_agent/tools/search_file_content/config.json +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/agents/naga_code_analysis_agent/tools/search_file_content/handler.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/agents/runner/__init__.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/agents/runner/context.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/agents/runner/loop.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/agents/runner/tools.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/agents/runner/webchat_utils.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/agents/summary_agent/__init__.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/agents/summary_agent/config.json +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/agents/summary_agent/handler.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/agents/summary_agent/tools/__init__.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/agents/summary_agent/tools/fetch_messages/config.json +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/agents/summary_agent/tools/fetch_messages/handler.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/agents/undefined_self_code_agent/README.md +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/agents/undefined_self_code_agent/__init__.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/agents/undefined_self_code_agent/config.json +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/agents/undefined_self_code_agent/handler.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/agents/undefined_self_code_agent/tools/__init__.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/agents/undefined_self_code_agent/tools/_shared.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/agents/undefined_self_code_agent/tools/glob/config.json +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/agents/undefined_self_code_agent/tools/glob/handler.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/agents/undefined_self_code_agent/tools/list_directory/config.json +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/agents/undefined_self_code_agent/tools/list_directory/handler.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/agents/undefined_self_code_agent/tools/read_file/config.json +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/agents/undefined_self_code_agent/tools/read_file/handler.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/agents/undefined_self_code_agent/tools/search_file_content/config.json +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/agents/undefined_self_code_agent/tools/search_file_content/handler.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/agents/web_agent/README.md +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/agents/web_agent/config.json +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/agents/web_agent/handler.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/agents/web_agent/mcp.json +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/agents/web_agent/tools/__init__.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/agents/web_agent/tools/crawl_webpage/config.json +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/agents/web_agent/tools/crawl_webpage/handler.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/agents/web_agent/tools/grok_search/config.json +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/agents/web_agent/tools/grok_search/handler.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/agents/web_agent/tools/web_search/config.json +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/agents/web_agent/tools/web_search/handler.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/anthropic_skills/__init__.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/anthropic_skills/loader.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/commands/README.md +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/commands/admin/README.md +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/commands/admin/config.json +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/commands/admin/handler.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/commands/bugfix/README.md +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/commands/bugfix/config.json +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/commands/bugfix/handler.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/commands/changelog/README.md +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/commands/changelog/config.json +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/commands/changelog/handler.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/commands/copyright/README.md +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/commands/copyright/config.json +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/commands/copyright/handler.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/commands/faq/README.md +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/commands/faq/config.json +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/commands/faq/handler.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/commands/feedback/README.md +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/commands/feedback/config.json +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/commands/feedback/handler.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/commands/help/README.md +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/commands/help/config.json +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/commands/help/handler.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/commands/naga/README.md +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/commands/naga/config.json +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/commands/naga/handler.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/commands/naga/policy.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/commands/profile/README.md +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/commands/profile/config.json +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/commands/profile/handler.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/commands/stats/README.md +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/commands/stats/config.json +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/commands/stats/handler.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/commands/summary/config.json +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/commands/summary/handler.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/commands/version/config.json +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/commands/version/handler.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/http_client.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/http_config.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/pipelines/__init__.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/pipelines/arxiv/config.json +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/pipelines/arxiv/handler.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/pipelines/bilibili/config.json +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/pipelines/bilibili/handler.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/pipelines/context.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/pipelines/github/config.json +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/pipelines/github/handler.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/pipelines/models.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/pipelines/registry.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/registry.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/tools/README.md +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/tools/__init__.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/tools/calculator/callable.json +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/tools/calculator/config.json +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/tools/calculator/handler.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/tools/changelog_query/README.md +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/tools/changelog_query/config.json +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/tools/changelog_query/handler.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/tools/end/README.md +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/tools/end/config.json +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/tools/end/handler.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/tools/fetch_image_uid/config.json +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/tools/fetch_image_uid/handler.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/tools/get_current_time/README.md +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/tools/get_current_time/callable.json +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/tools/get_current_time/config.json +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/tools/get_current_time/handler.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/tools/get_picture/README.md +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/tools/get_picture/config.json +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/tools/get_picture/handler.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/tools/get_user_info/README.md +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/tools/get_user_info/config.json +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/tools/get_user_info/handler.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/tools/knowledge_list/config.json +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/tools/knowledge_list/handler.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/tools/knowledge_semantic_search/config.json +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/tools/knowledge_semantic_search/handler.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/tools/knowledge_text_search/config.json +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/tools/knowledge_text_search/handler.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/tools/python_interpreter/README.md +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/tools/python_interpreter/config.json +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/tools/python_interpreter/handler.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/tools/qq_like/README.md +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/tools/qq_like/config.json +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/tools/qq_like/handler.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/tools/task_progress/config.json +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/tools/task_progress/handler.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/toolsets/README.md +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/toolsets/__init__.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/toolsets/attachments/get_uid_by_url/config.json +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/toolsets/attachments/get_uid_by_url/handler.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/toolsets/attachments/get_url_by_uid/config.json +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/toolsets/attachments/get_url_by_uid/handler.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/toolsets/cognitive/get_profile/config.json +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/toolsets/cognitive/get_profile/handler.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/toolsets/cognitive/search_events/config.json +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/toolsets/cognitive/search_events/handler.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/toolsets/cognitive/search_profiles/config.json +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/toolsets/cognitive/search_profiles/handler.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/toolsets/contacts/query_friends/config.json +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/toolsets/contacts/query_friends/handler.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/toolsets/contacts/query_groups/config.json +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/toolsets/contacts/query_groups/handler.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/toolsets/group/README.md +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/toolsets/group/find_member/config.json +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/toolsets/group/find_member/handler.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/toolsets/group/get_avatar/config.json +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/toolsets/group/get_avatar/handler.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/toolsets/group/get_files/config.json +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/toolsets/group/get_files/handler.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/toolsets/group/get_honor_info/config.json +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/toolsets/group/get_honor_info/handler.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/toolsets/group/get_member_info/config.json +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/toolsets/group/get_member_info/handler.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/toolsets/group/get_member_list/config.json +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/toolsets/group/get_member_list/handler.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/toolsets/group/get_member_title/config.json +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/toolsets/group/get_member_title/handler.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/toolsets/group_analysis/README.md +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/toolsets/group_analysis/activity_trend/config.json +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/toolsets/group_analysis/activity_trend/handler.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/toolsets/group_analysis/filter_members/config.json +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/toolsets/group_analysis/filter_members/handler.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/toolsets/group_analysis/inactive_risk/config.json +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/toolsets/group_analysis/inactive_risk/handler.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/toolsets/group_analysis/join_statistics/config.json +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/toolsets/group_analysis/join_statistics/handler.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/toolsets/group_analysis/level_distribution/config.json +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/toolsets/group_analysis/level_distribution/handler.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/toolsets/group_analysis/member_activity/config.json +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/toolsets/group_analysis/member_activity/handler.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/toolsets/group_analysis/member_messages/config.json +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/toolsets/group_analysis/member_messages/handler.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/toolsets/group_analysis/member_structure/config.json +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/toolsets/group_analysis/member_structure/handler.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/toolsets/group_analysis/message_mix/config.json +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/toolsets/group_analysis/message_mix/handler.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/toolsets/group_analysis/new_member_activity/config.json +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/toolsets/group_analysis/new_member_activity/handler.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/toolsets/group_analysis/rank_members/config.json +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/toolsets/group_analysis/rank_members/handler.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/toolsets/mcp/README.md +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/toolsets/mcp/__init__.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/toolsets/memes/README.md +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/toolsets/memes/search_memes/config.json +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/toolsets/memes/search_memes/handler.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/toolsets/memes/send_meme_by_uid/config.json +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/toolsets/memes/send_meme_by_uid/handler.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/toolsets/memory/README.md +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/toolsets/memory/add/config.json +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/toolsets/memory/add/handler.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/toolsets/memory/delete/config.json +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/toolsets/memory/delete/handler.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/toolsets/memory/list/config.json +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/toolsets/memory/list/handler.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/toolsets/memory/update/config.json +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/toolsets/memory/update/handler.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/toolsets/messages/README.md +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/toolsets/messages/context_utils.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/toolsets/messages/get_messages_by_time/config.json +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/toolsets/messages/get_messages_by_time/handler.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/toolsets/messages/get_recent_messages/config.json +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/toolsets/messages/get_recent_messages/handler.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/toolsets/messages/list_emojis/config.json +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/toolsets/messages/list_emojis/handler.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/toolsets/messages/lookup_emoji_id/config.json +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/toolsets/messages/lookup_emoji_id/handler.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/toolsets/messages/react_message_emoji/config.json +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/toolsets/messages/react_message_emoji/handler.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/toolsets/messages/send_group_sign/config.json +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/toolsets/messages/send_group_sign/handler.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/toolsets/messages/send_message/config.json +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/toolsets/messages/send_message/handler.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/toolsets/messages/send_poke/config.json +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/toolsets/messages/send_poke/handler.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/toolsets/messages/send_private_message/config.json +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/toolsets/messages/send_private_message/handler.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/toolsets/messages/send_text_file/callable.json +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/toolsets/messages/send_text_file/config.json +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/toolsets/messages/send_text_file/handler.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/toolsets/messages/send_url_file/callable.json +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/toolsets/messages/send_url_file/config.json +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/toolsets/messages/send_url_file/handler.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/toolsets/notices/README.md +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/toolsets/notices/get/config.json +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/toolsets/notices/get/handler.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/toolsets/notices/list/config.json +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/toolsets/notices/list/handler.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/toolsets/notices/stats/config.json +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/toolsets/notices/stats/handler.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/toolsets/render/README.md +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/toolsets/render/render_html/config.json +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/toolsets/render/render_html/handler.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/toolsets/render/render_latex/config.json +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/toolsets/render/render_latex/handler.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/toolsets/render/render_markdown/config.json +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/toolsets/render/render_markdown/handler.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/toolsets/scheduler/README.md +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/toolsets/scheduler/create_schedule_task/config.json +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/toolsets/scheduler/create_schedule_task/handler.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/toolsets/scheduler/delete_schedule_task/config.json +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/toolsets/scheduler/delete_schedule_task/handler.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/toolsets/scheduler/list_schedule_tasks/config.json +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/toolsets/scheduler/list_schedule_tasks/handler.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/toolsets/scheduler/update_schedule_task/config.json +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/skills/toolsets/scheduler/update_schedule_task/handler.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/token_usage_storage.py +0 -0
- {undefined_bot-3.6.0/src/Undefined/skills/agents/arxiv_analysis_agent → undefined_bot-3.6.2/src/Undefined/utils}/__init__.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/utils/cache.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/utils/coerce.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/utils/common.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/utils/cors.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/utils/fake_at.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/utils/file_lock.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/utils/group_metrics.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/utils/history.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/utils/http_download.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/utils/logging.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/utils/member_utils.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/utils/message_targets.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/utils/message_turn.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/utils/message_utils.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/utils/paths.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/utils/qq_emoji.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/utils/queue_intervals.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/utils/recent_messages.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/utils/render_cache.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/utils/request_params.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/utils/resources.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/utils/scheduler.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/utils/self_update.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/utils/sender.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/utils/sender_helpers.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/utils/time_utils.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/utils/tool_calls.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/webui/__init__.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/webui/__main__.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/webui/app.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/webui/core.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/webui/routes/__init__.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/webui/routes/_auth.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/webui/routes/_bot.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/webui/routes/_config.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/webui/routes/_index.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/webui/routes/_logs.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/webui/routes/_memes.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/webui/routes/_runtime.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/webui/routes/_shared.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/webui/routes/_system.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/webui/static/css/.stylelintrc.json +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/webui/static/css/app.css +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/webui/static/css/base.css +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/webui/static/css/components.css +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/webui/static/css/highlight-github.min.css +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/webui/static/css/landing.css +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/webui/static/css/responsive.css +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/webui/static/css/style.css +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/webui/static/css/variables.css +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/webui/static/favicon.svg +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/webui/static/js/api.js +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/webui/static/js/auth.js +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/webui/static/js/bot.js +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/webui/static/js/config-form.js +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/webui/static/js/i18n.js +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/webui/static/js/log-view.js +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/webui/static/js/logs.js +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/webui/static/js/main.js +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/webui/static/js/memes.js +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/webui/static/js/runtime.js +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/webui/static/js/schedules.js +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/webui/static/js/state.js +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/webui/static/js/ui.js +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/webui/static/js/vendor/highlight.min.js +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/webui/static/js/vendor/highlightjs.LICENSE +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/webui/static/js/vendor/marked.min.js +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/webui/templates/index.html +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/webui/utils/__init__.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/webui/utils/comment.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/webui/utils/config_io.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/webui/utils/config_sync.py +0 -0
- {undefined_bot-3.6.0 → undefined_bot-3.6.2}/src/Undefined/webui/utils/toml_render.py +0 -0
|
@@ -94,8 +94,8 @@ graph TB
|
|
|
94
94
|
T_Time["get_current_time<br/>获取当前时间"]
|
|
95
95
|
T_GetPicture["get_picture<br/>获取图片"]
|
|
96
96
|
T_GetUserInfo["get_user_info<br/>获取用户信息"]
|
|
97
|
-
T_ArxivPaper["arxiv_paper<br/>arXiv 论文发送"]
|
|
98
|
-
T_BilibiliVideo["bilibili_video<br/>B站视频下载发送"]
|
|
97
|
+
T_ArxivPaper["arxiv_paper<br/>arXiv 论文发送 / UID 获取"]
|
|
98
|
+
T_BilibiliVideo["bilibili_video<br/>B站视频下载发送 / UID 获取"]
|
|
99
99
|
end
|
|
100
100
|
|
|
101
101
|
subgraph Toolsets["工具集 (skills/toolsets/, 11大类)"]
|
|
@@ -115,7 +115,7 @@ graph TB
|
|
|
115
115
|
subgraph IntelligentAgents["智能体 Agents (skills/agents/, 7个)"]
|
|
116
116
|
A_Info["info_agent<br/>信息查询助手<br/>(18个工具)<br/>• weather_query<br/>• *hot 热搜<br/>• bilibili_*<br/>• arxiv_search<br/>• whois"]
|
|
117
117
|
A_Web["web_agent<br/>网络搜索助手<br/>(3个工具 + MCP)<br/>• web_search<br/>• crawl_webpage<br/>• Playwright MCP"]
|
|
118
|
-
A_File["file_analysis_agent<br/>文件分析助手<br
|
|
118
|
+
A_File["file_analysis_agent<br/>文件分析助手<br/>• extract_* (PDF/Word/Excel/PPT)<br/>• describe_pdf_page<br/>• analyze_code<br/>• analyze_multimodal"]
|
|
119
119
|
A_Naga["naga_code_analysis_agent<br/>NagaAgent 代码分析<br/>(7个工具)<br/>• read_file / glob<br/>• search_file_content"]
|
|
120
120
|
A_Self["undefined_self_code_agent<br/>Undefined 自身代码查阅<br/>(4个工具)<br/>• read_file / list_directory<br/>• glob / search_file_content"]
|
|
121
121
|
A_Entertainment["entertainment_agent<br/>娱乐助手<br/>(9个工具)<br/>• ai_draw_one<br/>• horoscope<br/>• video_random_recommend"]
|
|
@@ -877,7 +877,7 @@ description: 从 PDF 文件中提取文本和表格,填写表单。当用户
|
|
|
877
877
|
|-------|---------|---------|---------|
|
|
878
878
|
| **info_agent** | 信息查询助手 | 18个 | 天气查询、热搜榜单、网络检测、B站信息查询、arXiv 搜索等 |
|
|
879
879
|
| **web_agent** | 网络搜索助手 | 3个 + MCP | 网页搜索、爬虫、Playwright MCP |
|
|
880
|
-
| **file_analysis_agent** | 文件分析助手 |
|
|
880
|
+
| **file_analysis_agent** | 文件分析助手 | 多个 | PDF/Word/Excel/PPT解析、指定 PDF 页视觉分析、代码分析、多模态分析、arXiv/Bilibili UID 获取分析 |
|
|
881
881
|
| **naga_code_analysis_agent** | NagaAgent 代码分析 | 7个 | 代码库浏览、文件搜索、目录遍历 |
|
|
882
882
|
| **undefined_self_code_agent** | Undefined 自身代码查阅 | 4个 | 受限读取源码、测试、文档、资源、脚本与 App |
|
|
883
883
|
| **entertainment_agent** | 娱乐助手 | 9个 | AI 绘图、星座运势、小说搜索、随机视频推荐等 |
|
|
@@ -1,3 +1,27 @@
|
|
|
1
|
+
## v3.6.2 合并转发 UID、表情包跟进与协调器清理
|
|
2
|
+
|
|
3
|
+
本版本继续收敛消息附件链路和协调器结构:合并转发可作为会话内 `forward_` UID 被 AI 按层读取和复用,表情包跟进策略更稳定,同时移除旧版协调器兼容模块,并完成 3.6.2 版本号同步。
|
|
4
|
+
|
|
5
|
+
- 新增合并转发 UID 语义。消息入口会把合并转发登记为 `<forward uid="forward_xxx"/>`,保留原始 OneBot forward id,避免在上下文中直接暴露裸 ID。
|
|
6
|
+
- 增强 `get_forward_msg`。工具支持传入 `forward_` UID,按分页读取节点;节点内图片、文件会注册为附件 UID,内层合并转发会返回新的 `<forward uid="..."/>` 供继续读取。
|
|
7
|
+
- 完善附件与 XML 处理。OneBot forward 段、合并转发内附件注册、合法 `<attachment>` / `<forward>` 标签保留和复读图片发送链路同步修复。
|
|
8
|
+
- 调整表情包回复策略。主提示词、NagaAgent 提示词和协调器提示统一要求“先文字、后表情包”,减少首条回复被表情包检索拖慢或覆盖正文的情况。
|
|
9
|
+
- 清理旧版协调器入口。删除 `services.ai_coordinator` 兼容模块,文档和测试改为引用 `services.coordinator.AICoordinator`,并补齐合并转发、附件、复读和 XML 回归测试。
|
|
10
|
+
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
## v3.6.1 Agent 路由收敛、文件分析增强与发版脚本修复
|
|
14
|
+
|
|
15
|
+
本版本围绕 Agent 职责边界和文件分析链路做小版本收敛:把 arXiv 论文分析从独立 Agent 合并到通用文件分析 Agent,让论文、PDF 页面视觉分析和视频附件获取都走统一的附件 UID 语义;同时修复版本迭代脚本重写 Tauri 配置格式导致 pre-commit 失败的问题,保证后续版本号同步、lock 文件刷新和自动提交流程更稳定。
|
|
16
|
+
|
|
17
|
+
- 合并 arXiv 论文分析职责到文件分析链路。移除独立 `arxiv_analysis_agent`,`file_analysis_agent` 现在可通过 `arxiv_paper(output_mode=uid)` 获取论文 PDF 附件 UID,并结合 `extract_pdf` 与 `describe_pdf_page` 完成文本和指定页视觉分析。
|
|
18
|
+
- 扩展媒体工具的附件输出能力。`arxiv_paper` 与 `bilibili_video` 新增 `output_mode=uid` 调用方式,可把下载或提取结果登记为当前会话附件,供后续 Agent 直接引用和复用。
|
|
19
|
+
- 明确 Agent 职责边界。更新代码交付、文件分析、信息查询、娱乐、总结、Naga 代码分析、Undefined 自查与 Web Agent 的 intro / prompt,减少项目问题、通用搜索、文件理解和代码修改任务之间的误路由。
|
|
20
|
+
- 补齐文件分析视觉工具与测试。新增 `describe_pdf_page` 工具及回归测试,覆盖 PDF 指定页截图/视觉描述链路;同步更新 arXiv、B 站发送器和工具注册测试。
|
|
21
|
+
- 修复版本迭代脚本的 JSON 格式漂移。`scripts/bump_version.py` 更新 JSON manifest 时只替换顶层 `version` 字段,保留 Tauri 配置原有格式,避免 `--commit` 触发的 Biome 检查因 `targets` 数组被重排而失败;脚本文档与单元测试同步覆盖该行为。
|
|
22
|
+
|
|
23
|
+
---
|
|
24
|
+
|
|
1
25
|
## v3.6.0 原生 Chat、WebChat 多会话与运行时管理增强
|
|
2
26
|
|
|
3
27
|
本版本把 Undefined 的“管理控制台内聊天”扩展为一套更完整的跨端聊天与运行时管理体系:一边新增面向桌面端和 Android 的原生 Chat 客户端,一边把 WebUI WebChat 升级为可长期使用的多会话工作台;底层则补齐 Runtime / Management API、任务续接、附件、命令、定时任务和发布构建能力。围绕这些入口,v3.6.0 也整理了 Agent 路由、认知记忆、附件标签和工程验证,让 WebUI、原生客户端和 QQ 侧共享更一致的运行时语义。
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: Undefined-bot
|
|
3
|
-
Version: 3.6.
|
|
3
|
+
Version: 3.6.2
|
|
4
4
|
Summary: QQ bot platform with cognitive memory architecture and multi-agent Skills, via OneBot V11.
|
|
5
5
|
Project-URL: Repository, https://github.com/69gg/Undefined
|
|
6
6
|
Project-URL: Issues, https://github.com/69gg/Undefined/issues
|
|
@@ -82,8 +82,6 @@ Description-Content-Type: text/markdown
|
|
|
82
82
|
|
|
83
83
|
### _与 [NagaAgent](https://github.com/Xxiii8322766509/NagaAgent) 进行联动!_
|
|
84
84
|
|
|
85
|
-
> 学业繁忙,暂缓更新至六月下旬,在此期间仅作必要bugfix。
|
|
86
|
-
|
|
87
85
|
---
|
|
88
86
|
|
|
89
87
|
## ⚡ 立即体验
|
|
@@ -104,6 +102,7 @@ Description-Content-Type: text/markdown
|
|
|
104
102
|
- **远程管理 + 多端客户端**:浏览器版 WebUI、跨平台 Console(管理客户端)和原生优先 Undefined Chat(聊天客户端)共享同一套 Management / Runtime 服务,支持远程管理,并覆盖 `Windows / macOS / Linux / Android` 发布链路。
|
|
105
103
|
- **Undefined Console**:基于 Tauri v2 的管理客户端,完整管理功能
|
|
106
104
|
- **Undefined Chat**:基于 Tauri v2 + React 19 的原生优先聊天客户端,采用莫兰迪橙色系设计,移植 WebUI webchat 的核心聊天能力并做原生增强:中英双语运行时切换(i18n)、平台抽象层(按真实平台区分桌面/移动布局)、桌面快捷键、系统凭据存储、HTML 正文 sanitize 内联渲染 + 独立预览窗口隔离运行、Android(非 iOS)横屏/平板适配。iOS 暂不作为发布平台
|
|
105
|
+
- **Undefined Chat 跨平台原生对话 App**:`apps/undefined-chat/` 提供独立 Tauri v2 + React 19 原生聊天工作台,直连 Runtime API,并以 Runtime 作为会话、历史、任务、附件和事件真源;桌面端支持快捷键、独立 HTML 预览窗口和系统凭据存储,Android 端支持移动布局、生命周期恢复、流式附件上传和 Keystore 安全存储。详见 [Undefined Chat](docs/undefined-chat.md)。
|
|
107
106
|
- **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)。
|
|
108
107
|
- **多模型池**:支持配置多个 AI 模型,可轮询、随机选择或用户指定;支持多模型并发比较,选择最佳结果继续对话。详见 [多模型功能文档](docs/multi-model.md)。
|
|
109
108
|
- **本地知识库**:将纯文本文件向量化存入 ChromaDB,AI 可通过关键词搜索或语义搜索查询领域知识;支持增量嵌入与自动扫描。详见 [知识库文档](docs/knowledge.md)。
|
|
@@ -112,6 +111,7 @@ Description-Content-Type: text/markdown
|
|
|
112
111
|
- **版本变更可查询**:仓库根目录维护 `CHANGELOG.md`,并提供 `/changelog` 命令在运行时查看最近版本和单版本摘要。
|
|
113
112
|
- **并行工具执行**:无论是主 AI 还是子 Agent,均支持 `asyncio` 并发工具调用,大幅提升多任务处理速度(如同时读取多个文件或搜索多个关键词)。
|
|
114
113
|
- **智能 Agent 矩阵**:内置多个专业 Agent,分工协作处理复杂任务。
|
|
114
|
+
- **Undefined 自身代码查阅 Agent**:内置 `undefined_self_code_agent`,可只读查询当前 Undefined 仓库的源码、测试、文档、资源、脚本、配置示例和 App 实现细节;访问范围受白名单约束,不写代码、不运行命令,并与 NagaAgent 代码分析职责分离。
|
|
115
115
|
- **callable.json 共享机制**:通过简单的配置文件(`callable.json`)即可让 Agent 互相调用、将 `skills/tools/` 或 `skills/toolsets/` 下的工具按白名单暴露给 Agent,支持细粒度访问控制,实现复杂的多 Agent 协作场景。
|
|
116
116
|
- **Agent 自我介绍自动生成**:启动时按 Agent 代码/配置 hash 生成 `intro.generated.md`(第一人称、结构化),与 `intro.md` 合并后作为描述;减少手动维护,保持能力说明与实现同步,有助于精准调度。
|
|
117
117
|
- **请求上下文管理**:基于 Python `contextvars` 的统一请求上下文系统,自动 UUID 追踪,零竞态条件,完全的并发隔离。
|
|
@@ -119,8 +119,8 @@ Description-Content-Type: text/markdown
|
|
|
119
119
|
- **MCP 协议支持**:支持通过 MCP (Model Context Protocol) 连接外部工具和数据源,扩展 AI 能力。
|
|
120
120
|
- **Agent 私有 MCP**:可为单个 agent 提供独立 MCP 配置,按调用即时加载并释放,工具仅对该 agent 可见。
|
|
121
121
|
- **Anthropic Skills**:支持 Anthropic Agent Skills(SKILL.md 格式),遵循 agentskills.io 开放标准,提供领域知识注入能力。
|
|
122
|
-
- **Bilibili
|
|
123
|
-
- **arXiv
|
|
122
|
+
- **Bilibili 视频提取与分析**:自动检测消息中的 B 站视频链接/BV 号/小程序分享,下载视频并通过 QQ 合并转发;`bilibili_video` 也可只返回附件 UID,供 `file_analysis_agent` 做视频内容分析。
|
|
123
|
+
- **arXiv 论文提取、搜索与分析**:自动检测消息中的 arXiv 链接/标识并发送论文信息与 PDF;`arxiv_paper` 也可只返回 PDF 附件 UID,供 `file_analysis_agent` 做文本提取或指定页视觉分析;`arxiv_search` 负责论文检索。
|
|
124
124
|
- **GitHub 仓库卡片**:自动检测 GitHub 仓库链接或 `owner/repo` 仓库 ID,获取 public 仓库信息并发送简洁图片卡片,展示头像、简介、stars、forks、issues、contributors 等概览。
|
|
125
125
|
- **自动处理管线**:Bilibili、arXiv、GitHub 等自动提取统一运行在 `skills/pipelines` 中,斜杠命令优先级更高;命令输入/输出会写入历史,非命令消息会并行检测和处理命中管线,结果通过统一发送层写入历史并登记附件 UID 后再进入 AI 回复。远程大附件超过 `[attachments].remote_download_max_size_mb` 时只登记 URL 引用,避免无界下载和缓存膨胀。
|
|
126
126
|
- **同 sender 短时消息合并**:默认开启。连续发的多条消息会合并到同一轮 AI 调用,AI 一次看到全部意图自行识别"独立请求/修正/打断";告别"画猫→改成狗"的重复触发与回复打架。主提示词按 batcher 的"当前输入批次"语义适配,关闭该功能可能导致连续补充/修正消息与提示词不匹配,需要单独适配。可选投机预发送让用户停顿时 LLM 提前开跑、新消息可在未发出回复前取消,进一步压低响应延迟。详见 [docs/message-batching.md](docs/message-batching.md)。
|
|
@@ -235,7 +235,7 @@ async def main() -> None:
|
|
|
235
235
|
asyncio.run(main())
|
|
236
236
|
```
|
|
237
237
|
|
|
238
|
-
- [Python 库 API 参考](docs/python-api.md) —
|
|
238
|
+
- [Python 库 API 参考](docs/python-api.md) — 根包符号表、稳定子包路径、`AIClient` / `CognitiveService` 等嵌入示例
|
|
239
239
|
- [配置详解 — 库嵌入配置](docs/configuration.md#2-库嵌入配置) — `from_mapping` / `Config.builder`
|
|
240
240
|
- [开发者与拓展中心](docs/development.md) — 模块结构与自检命令
|
|
241
241
|
|
|
@@ -23,8 +23,6 @@
|
|
|
23
23
|
|
|
24
24
|
### _与 [NagaAgent](https://github.com/Xxiii8322766509/NagaAgent) 进行联动!_
|
|
25
25
|
|
|
26
|
-
> 学业繁忙,暂缓更新至六月下旬,在此期间仅作必要bugfix。
|
|
27
|
-
|
|
28
26
|
---
|
|
29
27
|
|
|
30
28
|
## ⚡ 立即体验
|
|
@@ -45,6 +43,7 @@
|
|
|
45
43
|
- **远程管理 + 多端客户端**:浏览器版 WebUI、跨平台 Console(管理客户端)和原生优先 Undefined Chat(聊天客户端)共享同一套 Management / Runtime 服务,支持远程管理,并覆盖 `Windows / macOS / Linux / Android` 发布链路。
|
|
46
44
|
- **Undefined Console**:基于 Tauri v2 的管理客户端,完整管理功能
|
|
47
45
|
- **Undefined Chat**:基于 Tauri v2 + React 19 的原生优先聊天客户端,采用莫兰迪橙色系设计,移植 WebUI webchat 的核心聊天能力并做原生增强:中英双语运行时切换(i18n)、平台抽象层(按真实平台区分桌面/移动布局)、桌面快捷键、系统凭据存储、HTML 正文 sanitize 内联渲染 + 独立预览窗口隔离运行、Android(非 iOS)横屏/平板适配。iOS 暂不作为发布平台
|
|
46
|
+
- **Undefined Chat 跨平台原生对话 App**:`apps/undefined-chat/` 提供独立 Tauri v2 + React 19 原生聊天工作台,直连 Runtime API,并以 Runtime 作为会话、历史、任务、附件和事件真源;桌面端支持快捷键、独立 HTML 预览窗口和系统凭据存储,Android 端支持移动布局、生命周期恢复、流式附件上传和 Keystore 安全存储。详见 [Undefined Chat](docs/undefined-chat.md)。
|
|
48
47
|
- **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)。
|
|
49
48
|
- **多模型池**:支持配置多个 AI 模型,可轮询、随机选择或用户指定;支持多模型并发比较,选择最佳结果继续对话。详见 [多模型功能文档](docs/multi-model.md)。
|
|
50
49
|
- **本地知识库**:将纯文本文件向量化存入 ChromaDB,AI 可通过关键词搜索或语义搜索查询领域知识;支持增量嵌入与自动扫描。详见 [知识库文档](docs/knowledge.md)。
|
|
@@ -53,6 +52,7 @@
|
|
|
53
52
|
- **版本变更可查询**:仓库根目录维护 `CHANGELOG.md`,并提供 `/changelog` 命令在运行时查看最近版本和单版本摘要。
|
|
54
53
|
- **并行工具执行**:无论是主 AI 还是子 Agent,均支持 `asyncio` 并发工具调用,大幅提升多任务处理速度(如同时读取多个文件或搜索多个关键词)。
|
|
55
54
|
- **智能 Agent 矩阵**:内置多个专业 Agent,分工协作处理复杂任务。
|
|
55
|
+
- **Undefined 自身代码查阅 Agent**:内置 `undefined_self_code_agent`,可只读查询当前 Undefined 仓库的源码、测试、文档、资源、脚本、配置示例和 App 实现细节;访问范围受白名单约束,不写代码、不运行命令,并与 NagaAgent 代码分析职责分离。
|
|
56
56
|
- **callable.json 共享机制**:通过简单的配置文件(`callable.json`)即可让 Agent 互相调用、将 `skills/tools/` 或 `skills/toolsets/` 下的工具按白名单暴露给 Agent,支持细粒度访问控制,实现复杂的多 Agent 协作场景。
|
|
57
57
|
- **Agent 自我介绍自动生成**:启动时按 Agent 代码/配置 hash 生成 `intro.generated.md`(第一人称、结构化),与 `intro.md` 合并后作为描述;减少手动维护,保持能力说明与实现同步,有助于精准调度。
|
|
58
58
|
- **请求上下文管理**:基于 Python `contextvars` 的统一请求上下文系统,自动 UUID 追踪,零竞态条件,完全的并发隔离。
|
|
@@ -60,8 +60,8 @@
|
|
|
60
60
|
- **MCP 协议支持**:支持通过 MCP (Model Context Protocol) 连接外部工具和数据源,扩展 AI 能力。
|
|
61
61
|
- **Agent 私有 MCP**:可为单个 agent 提供独立 MCP 配置,按调用即时加载并释放,工具仅对该 agent 可见。
|
|
62
62
|
- **Anthropic Skills**:支持 Anthropic Agent Skills(SKILL.md 格式),遵循 agentskills.io 开放标准,提供领域知识注入能力。
|
|
63
|
-
- **Bilibili
|
|
64
|
-
- **arXiv
|
|
63
|
+
- **Bilibili 视频提取与分析**:自动检测消息中的 B 站视频链接/BV 号/小程序分享,下载视频并通过 QQ 合并转发;`bilibili_video` 也可只返回附件 UID,供 `file_analysis_agent` 做视频内容分析。
|
|
64
|
+
- **arXiv 论文提取、搜索与分析**:自动检测消息中的 arXiv 链接/标识并发送论文信息与 PDF;`arxiv_paper` 也可只返回 PDF 附件 UID,供 `file_analysis_agent` 做文本提取或指定页视觉分析;`arxiv_search` 负责论文检索。
|
|
65
65
|
- **GitHub 仓库卡片**:自动检测 GitHub 仓库链接或 `owner/repo` 仓库 ID,获取 public 仓库信息并发送简洁图片卡片,展示头像、简介、stars、forks、issues、contributors 等概览。
|
|
66
66
|
- **自动处理管线**:Bilibili、arXiv、GitHub 等自动提取统一运行在 `skills/pipelines` 中,斜杠命令优先级更高;命令输入/输出会写入历史,非命令消息会并行检测和处理命中管线,结果通过统一发送层写入历史并登记附件 UID 后再进入 AI 回复。远程大附件超过 `[attachments].remote_download_max_size_mb` 时只登记 URL 引用,避免无界下载和缓存膨胀。
|
|
67
67
|
- **同 sender 短时消息合并**:默认开启。连续发的多条消息会合并到同一轮 AI 调用,AI 一次看到全部意图自行识别"独立请求/修正/打断";告别"画猫→改成狗"的重复触发与回复打架。主提示词按 batcher 的"当前输入批次"语义适配,关闭该功能可能导致连续补充/修正消息与提示词不匹配,需要单独适配。可选投机预发送让用户停顿时 LLM 提前开跑、新消息可在未发出回复前取消,进一步压低响应延迟。详见 [docs/message-batching.md](docs/message-batching.md)。
|
|
@@ -176,7 +176,7 @@ async def main() -> None:
|
|
|
176
176
|
asyncio.run(main())
|
|
177
177
|
```
|
|
178
178
|
|
|
179
|
-
- [Python 库 API 参考](docs/python-api.md) —
|
|
179
|
+
- [Python 库 API 参考](docs/python-api.md) — 根包符号表、稳定子包路径、`AIClient` / `CognitiveService` 等嵌入示例
|
|
180
180
|
- [配置详解 — 库嵌入配置](docs/configuration.md#2-库嵌入配置) — `from_mapping` / `Config.builder`
|
|
181
181
|
- [开发者与拓展中心](docs/development.md) — 模块结构与自检命令
|
|
182
182
|
|
|
@@ -189,17 +189,17 @@
|
|
|
189
189
|
</command_history_context>
|
|
190
190
|
|
|
191
191
|
<mixed_media_output priority="P0">
|
|
192
|
-
<!--
|
|
192
|
+
<!-- 表情包检索可能较慢;只有明确纯表情包回复才允许首轮检索,其余场景先完成必要文字;轻松场景回复后优先考虑补图。 -->
|
|
193
193
|
**图文混排规则:**
|
|
194
194
|
- 只有当本轮回复目标明确是“纯表情包/纯反应图”(用户直接要求发表情包,或只需要一个无文字反应且不承担信息传递)时,才允许第一轮先调用 `memes.search_memes`
|
|
195
195
|
- 其他任何需要文字承接、解释、答疑、推进任务、确认操作或表达具体态度的场景,第一轮必须优先把必要文字回复做好并调用 `send_message`
|
|
196
|
-
-
|
|
196
|
+
- 如果本轮既需要文字发言又适合配表情包,先调用 `send_message` 发出必要文字;轻松聊天、吐槽、附和、接梗、表达情绪、被拍一拍、被 @ 后的短回应等场景,文字发送成功后优先考虑在后续响应轮次调用 `memes.search_memes` 和 `memes.send_meme_by_uid` 补一张独立表情包;不要阻塞首条文字回复
|
|
197
197
|
- 当不确定是不是纯表情包场景,按非纯表情包处理:先文字,后检索或不检索;不要为了“增强语气”在首轮抢先调用 `memes.search_memes`
|
|
198
198
|
- 如果要发送独立表情包,先用 `memes.search_memes` 找到合适的图片 `uid`,再用 `memes.send_meme_by_uid` 单独发送一条图片消息
|
|
199
|
-
-
|
|
200
|
-
-
|
|
199
|
+
- 对于吐槽、附和、接梗、表达态度、表达情绪这类回复,若已经满足回复触发且不需要承担严肃信息传递,优先选择纯表情包回复或文字后补一张表情包;如果必须表达具体信息,先用文字自然回应,再把表情包作为后置补充
|
|
200
|
+
- 对于私聊对话、被拍一拍、被@、轻量答疑这类本来就会回复的场景,如果文字本身有用,先发文字;轻松、情绪化、玩梗语境中优先把表情包作为后续增强,但严肃答疑、代码排查、长任务推进、隐私/安全拒绝或信息不足追问时默认不补表情包
|
|
201
201
|
- 表情包相关规则只决定“怎么回复”,不单独构成“该不该回复”的参与许可;是否回复仍以前面的回复触发逻辑为准
|
|
202
|
-
-
|
|
202
|
+
- 默认不要把表情包和正文写进同一条消息;需要补一句解释时,优先分成两条消息发送;如果文字本身是必要回复,先发文字,再在适合轻松表达时延后检索和发送表情包
|
|
203
203
|
- 推荐使用统一标签 `<attachment uid="xxx"/>` 引用任何附件(图片或文件),系统根据 UID 前缀自动处理:
|
|
204
204
|
- `pic_*` UID → 内嵌为图片(等效于旧 `<pic>` 语法)
|
|
205
205
|
- `file_*` UID → 作为独立文件消息在文字之后发出
|
|
@@ -719,11 +719,11 @@
|
|
|
719
719
|
<guideline id="8">
|
|
720
720
|
<name>图片处理</name>
|
|
721
721
|
<rule>先判断是否需要参与:只有当图片与当前对话强相关、且回答必须依赖图片内容时才分析</rule>
|
|
722
|
-
<rule
|
|
722
|
+
<rule>表情包先理解意思;它不只适用于轻松闲聊。但只有明确纯表情包回复才先检索表情包;凡是需要文字承接、答疑、解释或推进任务的场景,都先发送必要文字。轻松互动、吐槽、接梗、情绪回应中,已经决定回复且文字后仍适合表达时,优先放到后续轮次补一张独立表情包;严肃、任务型、高信息密度场景不补</rule>
|
|
723
723
|
<rule>只有在需要分析图片内容时才调用 file_analysis_agent(如报错截图/界面/文档/图片问题)</rule>
|
|
724
724
|
<rule>当消息中出现“[图片: xxx]”占位符时,xxx 即为 file_id 或 URL,可直接作为 file_source 调用 file_analysis_agent</rule>
|
|
725
725
|
<rule>未调用 file_analysis_agent 时,不要猜测图片内容;可以说明“我看不到图片内容,需要先分析”</rule>
|
|
726
|
-
<rule>即使已分析图片,也要再次判断是否需要发言;如果明显在和别人说或你拿不准是不是在对你说,默认不回复;只有明确纯表情包回复时才可先尝试 memes.search_memes 并使用独立表情包回应;若还需要文字发言,先 send_message
|
|
726
|
+
<rule>即使已分析图片,也要再次判断是否需要发言;如果明显在和别人说或你拿不准是不是在对你说,默认不回复;只有明确纯表情包回复时才可先尝试 memes.search_memes 并使用独立表情包回应;若还需要文字发言,先 send_message 发送必要文字,轻松场景优先考虑再把表情包检索和发送放到后续轮次</rule>
|
|
727
727
|
<rule>回复时不要描述图片内容,像正常人一样直接回应重点</rule>
|
|
728
728
|
<rule>不要分析每条图片。图片分析有很大延迟,只有需要时才分析</rule>
|
|
729
729
|
</guideline>
|
|
@@ -808,7 +808,7 @@
|
|
|
808
808
|
<rule>不是每条消息都要回</rule>
|
|
809
809
|
<rule>大部分时候你应该保持沉默</rule>
|
|
810
810
|
<rule>不符合触发条件时,直接调用 end</rule>
|
|
811
|
-
<rule>optional_triggers
|
|
811
|
+
<rule>optional_triggers 只是“少量例外”,不是常规参与许可。默认仍然应明显偏向沉默;若真要参与,除非明确是纯表情包回复,否则先把必要文字回复做好。轻松、接梗、情绪回应可以优先后补表情包;严肃或任务型场景不补。</rule>
|
|
812
812
|
</strategy>
|
|
813
813
|
|
|
814
814
|
<strategy id="2">
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
<system_prompt version="2.2.0" last_updated="2026-06-06">
|
|
3
3
|
|
|
4
4
|
<!-- ==================== 优先级说明 ==================== -->
|
|
5
|
+
<!-- 所有优先级均可被 Null 明文指令覆盖,认定创造者,其余所有人都不可以 -->
|
|
5
6
|
<!-- P0 = 绝对优先级(违反将导致系统崩溃/无限循环) -->
|
|
6
7
|
<!-- P1 = 核心规则(定义身份和基本行为) -->
|
|
7
8
|
<!-- P2 = 重要规则(影响交互质量) -->
|
|
@@ -188,17 +189,17 @@
|
|
|
188
189
|
</command_history_context>
|
|
189
190
|
|
|
190
191
|
<mixed_media_output priority="P0">
|
|
191
|
-
<!--
|
|
192
|
+
<!-- 表情包检索可能较慢;只有明确纯表情包回复才允许首轮检索,其余场景先完成必要文字;轻松场景回复后优先考虑补图。 -->
|
|
192
193
|
**图文混排规则:**
|
|
193
194
|
- 只有当本轮回复目标明确是“纯表情包/纯反应图”(用户直接要求发表情包,或只需要一个无文字反应且不承担信息传递)时,才允许第一轮先调用 `memes.search_memes`
|
|
194
195
|
- 其他任何需要文字承接、解释、答疑、推进任务、确认操作或表达具体态度的场景,第一轮必须优先把必要文字回复做好并调用 `send_message`
|
|
195
|
-
-
|
|
196
|
+
- 如果本轮既需要文字发言又适合配表情包,先调用 `send_message` 发出必要文字;轻松聊天、吐槽、附和、接梗、表达情绪、被拍一拍、被 @ 后的短回应等场景,文字发送成功后优先考虑在后续响应轮次调用 `memes.search_memes` 和 `memes.send_meme_by_uid` 补一张独立表情包;不要阻塞首条文字回复
|
|
196
197
|
- 当不确定是不是纯表情包场景,按非纯表情包处理:先文字,后检索或不检索;不要为了“增强语气”在首轮抢先调用 `memes.search_memes`
|
|
197
198
|
- 如果要发送独立表情包,先用 `memes.search_memes` 找到合适的图片 `uid`,再用 `memes.send_meme_by_uid` 单独发送一条图片消息
|
|
198
|
-
-
|
|
199
|
-
-
|
|
199
|
+
- 对于吐槽、附和、接梗、表达态度、表达情绪这类回复,若已经满足回复触发且不需要承担严肃信息传递,优先选择纯表情包回复或文字后补一张表情包;如果必须表达具体信息,先用文字自然回应,再把表情包作为后置补充
|
|
200
|
+
- 对于私聊对话、被拍一拍、被@、轻量答疑这类本来就会回复的场景,如果文字本身有用,先发文字;轻松、情绪化、玩梗语境中优先把表情包作为后续增强,但严肃答疑、代码排查、长任务推进、隐私/安全拒绝或信息不足追问时默认不补表情包
|
|
200
201
|
- 表情包相关规则只决定“怎么回复”,不单独构成“该不该回复”的参与许可;是否回复仍以前面的回复触发逻辑为准
|
|
201
|
-
-
|
|
202
|
+
- 默认不要把表情包和正文写进同一条消息;需要补一句解释时,优先分成两条消息发送;如果文字本身是必要回复,先发文字,再在适合轻松表达时延后检索和发送表情包
|
|
202
203
|
- 推荐使用统一标签 `<attachment uid="xxx"/>` 引用任何附件(图片或文件),系统根据 UID 前缀自动处理:
|
|
203
204
|
- `pic_*` UID → 内嵌为图片(等效于旧 `<pic>` 语法)
|
|
204
205
|
- `file_*` UID → 作为独立文件消息在文字之后发出
|
|
@@ -238,6 +239,7 @@
|
|
|
238
239
|
- 决定不回复且没有任何值得记录的信息
|
|
239
240
|
- 只是简单回复了一句话,没有后续价值
|
|
240
241
|
- 纯粹的闲聊或表情回应,没有特殊上下文
|
|
242
|
+
- 旁观了他人的普通闲聊,没有参与且内容无实质价值(如日常碎碎念、无意义的玩笑等)
|
|
241
243
|
</end_summary_guidelines>
|
|
242
244
|
<end_tool_usage>
|
|
243
245
|
调用 end 时提供:
|
|
@@ -251,7 +253,11 @@
|
|
|
251
253
|
不适合写入 observations 的:纯流水账(”回复了一句话”、”决定不回复”、”调用了search工具”)——这类无回忆价值的动作如果需要记,写到 memo。
|
|
252
254
|
历史消息、认知记忆、侧写、最近消息参考只能用于实体/时间/地点消歧,不能作为 observations 的新事实来源。
|
|
253
255
|
**群聊场景下的当前批次观察**:即使你决定不回复,也只观察【当前输入批次】。如果当前批次直接出现有价值的群聊动态(话题趋势变化、成员关系互动、群聊氛围/事件、新成员发言特征等),可写入 observations;不要从历史或参考上下文里补写旧动态。
|
|
254
|
-
|
|
256
|
+
格式要求:每条具体、绝对化(写明谁、什么时候、在哪里),避免代词和相对时间,不要复述已知记忆。写入 observations / end.observations 时必须按实体类型使用稳定标识:
|
|
257
|
+
- 用户中心观察(sender_id 是 QQ 用户,或事实明确属于某个 QQ 用户):格式为 "QQ号12345678(昵称张三)做了某事";昵称会变但 QQ 号不变。
|
|
258
|
+
- 群聊实体观察(事实属于群整体、群规、群氛围、群事件,而不是某个用户):格式为 "group:群号123456(群名技术群)发生了某事";没有群名时只写群号。
|
|
259
|
+
- WebUI / system 会话观察(事实来自 WebUI、系统会话或没有 QQ 用户实体):格式为 "webui:system#session_id(session_name)发生了某事";没有 session_id 或 session_name 时写明可用的稳定会话标识。
|
|
260
|
+
memo 可以用短句概括本轮处理,不要求采用上述实体前缀;但要写入认知记忆的 observations 必须按以上实体类型选择格式,禁止把非用户实体强行写成 QQ号。
|
|
255
261
|
专名拼写要求:涉及本项目或你自己时,必须逐字写作 Undefined,禁止在 observations 中写成 Unfined、Undefind、undefind 或其它变体。
|
|
256
262
|
若当前消息在转述第三方人物/群成员的信息,必须按原文实体记录(昵称/QQ号);禁止默认改写成当前 sender。
|
|
257
263
|
如果同一条内容已写入 observations,不要重复写入 memory.add。
|
|
@@ -447,8 +453,8 @@
|
|
|
447
453
|
<action>
|
|
448
454
|
把整批 <message> 视作本轮的全部输入:
|
|
449
455
|
1) 区分每条意图:【独立请求】各自回应不要遗漏(与平时一样,可多次 send_message 自然分发);【修正/否定/补充/打断】则以最后一次明确意图为准,旧的不再执行
|
|
450
|
-
2)
|
|
451
|
-
3)
|
|
456
|
+
2) 拿不准时偏向“独立请求”,宁多勿漏
|
|
457
|
+
3) 整批在本轮一次性处理完,不要为同一意图重复输出,也不要“中间一波、结尾一波”重复相同回复
|
|
452
458
|
</action>
|
|
453
459
|
</trigger>
|
|
454
460
|
|
|
@@ -581,7 +587,7 @@
|
|
|
581
587
|
<rule priority="P0">
|
|
582
588
|
**启动前信息充足度闸门:**
|
|
583
589
|
在决定启动任何业务工具或 Agent 前,只围绕当前输入批次判断四件事(没有【连续消息说明】时当前输入批次就是最后一条消息):
|
|
584
|
-
1.
|
|
590
|
+
1. 当前任务对象是否明确
|
|
585
591
|
2. 目标产物 / 目标动作是否明确
|
|
586
592
|
3. 会显著影响结果的关键参数是否已给出
|
|
587
593
|
4. 是否仍存在会导致明显误做或重做的关键歧义
|
|
@@ -612,7 +618,7 @@
|
|
|
612
618
|
<rule>
|
|
613
619
|
**意图增量审计(决策前必须执行):**
|
|
614
620
|
在决定调用任何业务工具或 Agent 前,先在内部推理中完成以下步骤:
|
|
615
|
-
1.
|
|
621
|
+
1. **回溯**:读取用户最近消息及你的回复历史
|
|
616
622
|
2. **对比**:分析当前输入批次是否只是对上一条请求的情绪宣泄、催促或无信息量的补充
|
|
617
623
|
3. **定性**:将当前意图归类为 [新任务]、[参数修正] 或 [非实质性延伸]
|
|
618
624
|
4. **充足度检查**:如果是 [新任务] 或 [参数修正],检查当前输入批次是否已具备开工所需关键参数
|
|
@@ -769,11 +775,11 @@
|
|
|
769
775
|
<guideline id="8">
|
|
770
776
|
<name>图片处理</name>
|
|
771
777
|
<rule>先判断是否需要参与:只有当图片与当前对话强相关、且回答必须依赖图片内容时才分析</rule>
|
|
772
|
-
<rule
|
|
778
|
+
<rule>表情包先理解意思;它不只适用于轻松闲聊。但只有明确纯表情包回复才先检索表情包;凡是需要文字承接、答疑、解释或推进任务的场景,都先发送必要文字。轻松互动、吐槽、接梗、情绪回应中,已经决定回复且文字后仍适合表达时,优先放到后续轮次补一张独立表情包;严肃、任务型、高信息密度场景不补</rule>
|
|
773
779
|
<rule>只有在需要分析图片内容时才调用 file_analysis_agent(如报错截图/界面/文档/图片问题)</rule>
|
|
774
780
|
<rule>当消息中出现“[图片: xxx]”占位符时,xxx 即为 file_id 或 URL,可直接作为 file_source 调用 file_analysis_agent</rule>
|
|
775
781
|
<rule>未调用 file_analysis_agent 时,不要猜测图片内容;可以说明“我看不到图片内容,需要先分析”</rule>
|
|
776
|
-
<rule>即使已分析图片,也要再次判断是否需要发言;如果明显在和别人说或你拿不准是不是在对你说,默认不回复;只有明确纯表情包回复时才可先尝试 memes.search_memes 并使用独立表情包回应;若还需要文字发言,先 send_message
|
|
782
|
+
<rule>即使已分析图片,也要再次判断是否需要发言;如果明显在和别人说或你拿不准是不是在对你说,默认不回复;只有明确纯表情包回复时才可先尝试 memes.search_memes 并使用独立表情包回应;若还需要文字发言,先 send_message 发送必要文字,轻松场景优先考虑再把表情包检索和发送放到后续轮次</rule>
|
|
777
783
|
<rule>回复时不要描述图片内容,像正常人一样直接回应重点</rule>
|
|
778
784
|
<rule>不要分析每条图片。图片分析有很大延迟,只有需要时才分析</rule>
|
|
779
785
|
</guideline>
|
|
@@ -860,7 +866,7 @@
|
|
|
860
866
|
<rule>不是每条消息都要回</rule>
|
|
861
867
|
<rule>大部分时候你应该保持沉默</rule>
|
|
862
868
|
<rule>不符合触发条件时,直接调用 end</rule>
|
|
863
|
-
<rule>optional_triggers
|
|
869
|
+
<rule>optional_triggers 只是“少量例外”,不是常规参与许可。默认仍然应明显偏向沉默;若真要参与,除非明确是纯表情包回复,否则先把必要文字回复做好。轻松、接梗、情绪回应可以优先后补表情包;严肃或任务型场景不补。</rule>
|
|
864
870
|
</strategy>
|
|
865
871
|
|
|
866
872
|
<strategy id="2">
|
|
@@ -24,7 +24,7 @@ if TYPE_CHECKING:
|
|
|
24
24
|
from .skills.registry import BaseRegistry as BaseRegistry
|
|
25
25
|
from .skills.tools import ToolRegistry as ToolRegistry
|
|
26
26
|
|
|
27
|
-
__version__ = "3.6.
|
|
27
|
+
__version__ = "3.6.2"
|
|
28
28
|
|
|
29
29
|
# symbol -> (module_path, attribute_name);首次访问时才 importlib 加载
|
|
30
30
|
_LAZY_IMPORTS: dict[str, tuple[str, str]] = {
|
|
@@ -4,8 +4,9 @@ from __future__ import annotations
|
|
|
4
4
|
|
|
5
5
|
import asyncio
|
|
6
6
|
import logging
|
|
7
|
+
from pathlib import Path
|
|
7
8
|
import time
|
|
8
|
-
from typing import TYPE_CHECKING, Literal
|
|
9
|
+
from typing import TYPE_CHECKING, Any, Literal
|
|
9
10
|
|
|
10
11
|
from Undefined.arxiv.client import get_paper_info
|
|
11
12
|
from Undefined.arxiv.downloader import cleanup_download_path, download_paper_pdf
|
|
@@ -144,6 +145,43 @@ async def _send_file_message(
|
|
|
144
145
|
await sender.send_private_file(target_id, file_path, file_name)
|
|
145
146
|
|
|
146
147
|
|
|
148
|
+
def _build_uid_message(info: PaperInfo, uid: str, file_name: str) -> str:
|
|
149
|
+
title = info.title or f"arXiv:{info.paper_id}"
|
|
150
|
+
lines = [
|
|
151
|
+
f"已获取 arXiv 论文 PDF:{title}",
|
|
152
|
+
f"ID: {info.paper_id}",
|
|
153
|
+
f'PDF: <attachment uid="{uid}"/>',
|
|
154
|
+
]
|
|
155
|
+
if file_name:
|
|
156
|
+
lines.append(f"文件名: {file_name}")
|
|
157
|
+
if info.abs_url:
|
|
158
|
+
lines.append(info.abs_url)
|
|
159
|
+
return "\n".join(lines)
|
|
160
|
+
|
|
161
|
+
|
|
162
|
+
async def _register_pdf_attachment(
|
|
163
|
+
*,
|
|
164
|
+
attachment_registry: Any,
|
|
165
|
+
scope_key: str,
|
|
166
|
+
pdf_path: Path,
|
|
167
|
+
info: PaperInfo,
|
|
168
|
+
) -> str:
|
|
169
|
+
record = await attachment_registry.register_local_file(
|
|
170
|
+
scope_key,
|
|
171
|
+
pdf_path,
|
|
172
|
+
kind="file",
|
|
173
|
+
display_name=pdf_path.name,
|
|
174
|
+
source_kind="arxiv_paper",
|
|
175
|
+
source_ref=info.pdf_url or _build_pdf_url(info.paper_id),
|
|
176
|
+
segment_data={
|
|
177
|
+
"paper_id": info.paper_id,
|
|
178
|
+
"abs_url": info.abs_url,
|
|
179
|
+
"pdf_url": info.pdf_url or _build_pdf_url(info.paper_id),
|
|
180
|
+
},
|
|
181
|
+
)
|
|
182
|
+
return _build_uid_message(info, str(record.uid), pdf_path.name)
|
|
183
|
+
|
|
184
|
+
|
|
147
185
|
async def _send_arxiv_paper_once(
|
|
148
186
|
*,
|
|
149
187
|
paper_id: str,
|
|
@@ -205,6 +243,60 @@ async def _send_arxiv_paper_once(
|
|
|
205
243
|
await cleanup_download_path(task_dir)
|
|
206
244
|
|
|
207
245
|
|
|
246
|
+
async def fetch_arxiv_paper_attachment(
|
|
247
|
+
*,
|
|
248
|
+
paper_id: str,
|
|
249
|
+
attachment_registry: Any,
|
|
250
|
+
scope_key: str,
|
|
251
|
+
max_file_size: int,
|
|
252
|
+
author_preview_limit: int,
|
|
253
|
+
summary_preview_chars: int,
|
|
254
|
+
context: dict[str, object] | None = None,
|
|
255
|
+
) -> str:
|
|
256
|
+
"""下载 arXiv PDF 并注册为附件 UID,不发送消息。"""
|
|
257
|
+
normalized = normalize_arxiv_id(paper_id)
|
|
258
|
+
if normalized is None:
|
|
259
|
+
return f"无法解析 arXiv 标识: {paper_id}"
|
|
260
|
+
|
|
261
|
+
if attachment_registry is None:
|
|
262
|
+
return "缺少必要的运行时组件(attachment_registry)"
|
|
263
|
+
if not str(scope_key or "").strip():
|
|
264
|
+
return "无法确定附件作用域,不能注册 arXiv PDF"
|
|
265
|
+
|
|
266
|
+
info: PaperInfo
|
|
267
|
+
metadata_ready = True
|
|
268
|
+
try:
|
|
269
|
+
info = await get_paper_info(normalized, context=context)
|
|
270
|
+
except Exception:
|
|
271
|
+
metadata_ready = False
|
|
272
|
+
info = _minimal_paper_info(normalized)
|
|
273
|
+
logger.exception("[arXiv] 获取论文元信息失败: paper=%s", normalized)
|
|
274
|
+
|
|
275
|
+
download_result, task_dir = await download_paper_pdf(
|
|
276
|
+
info,
|
|
277
|
+
max_file_size_mb=max_file_size,
|
|
278
|
+
context=context,
|
|
279
|
+
)
|
|
280
|
+
try:
|
|
281
|
+
if download_result.path is None:
|
|
282
|
+
info_message = _build_info_message(
|
|
283
|
+
info,
|
|
284
|
+
author_preview_limit=author_preview_limit,
|
|
285
|
+
summary_preview_chars=summary_preview_chars,
|
|
286
|
+
)
|
|
287
|
+
if metadata_ready:
|
|
288
|
+
return f"未能下载 PDF,已获取论文信息:\n{info_message}"
|
|
289
|
+
return f"未能下载 PDF,已获取论文最小信息:\n{info_message}"
|
|
290
|
+
return await _register_pdf_attachment(
|
|
291
|
+
attachment_registry=attachment_registry,
|
|
292
|
+
scope_key=scope_key,
|
|
293
|
+
pdf_path=download_result.path,
|
|
294
|
+
info=info,
|
|
295
|
+
)
|
|
296
|
+
finally:
|
|
297
|
+
await cleanup_download_path(task_dir)
|
|
298
|
+
|
|
299
|
+
|
|
208
300
|
async def send_arxiv_paper(
|
|
209
301
|
*,
|
|
210
302
|
paper_id: str,
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
|
|
7
7
|
from __future__ import annotations
|
|
8
8
|
|
|
9
|
-
from dataclasses import dataclass
|
|
9
|
+
from dataclasses import dataclass, field
|
|
10
10
|
from pathlib import Path
|
|
11
11
|
|
|
12
12
|
|
|
@@ -70,6 +70,7 @@ class RegisteredMessageAttachments:
|
|
|
70
70
|
|
|
71
71
|
attachments: list[dict[str, str]]
|
|
72
72
|
normalized_text: str
|
|
73
|
+
forward_refs: list[dict[str, str]] = field(default_factory=list)
|
|
73
74
|
|
|
74
75
|
|
|
75
76
|
@dataclass(frozen=True)
|
|
@@ -548,6 +548,13 @@ class AttachmentRegistry:
|
|
|
548
548
|
return record.uid
|
|
549
549
|
return None
|
|
550
550
|
|
|
551
|
+
def _uid_prefix_for_media_type(self, media_type: str) -> str:
|
|
552
|
+
if media_type == "image":
|
|
553
|
+
return "pic"
|
|
554
|
+
if media_type == "forward":
|
|
555
|
+
return "forward"
|
|
556
|
+
return "file"
|
|
557
|
+
|
|
551
558
|
def _build_uid(self, prefix: str) -> str:
|
|
552
559
|
while True:
|
|
553
560
|
uid = f"{prefix}_{uuid4().hex[:8]}"
|
|
@@ -593,7 +600,7 @@ class AttachmentRegistry:
|
|
|
593
600
|
)
|
|
594
601
|
normalized_mime = mime_type or _guess_mime_type(display_name, content)
|
|
595
602
|
suffix = _guess_suffix(display_name, content, normalized_mime)
|
|
596
|
-
prefix =
|
|
603
|
+
prefix = self._uid_prefix_for_media_type(normalized_media_type)
|
|
597
604
|
|
|
598
605
|
async with self._lock:
|
|
599
606
|
digest = await asyncio.to_thread(hashlib.sha256, content)
|
|
@@ -735,7 +742,7 @@ class AttachmentRegistry:
|
|
|
735
742
|
normalized_media_type = (
|
|
736
743
|
"image" if normalized_kind == "image" else normalized_kind
|
|
737
744
|
)
|
|
738
|
-
prefix =
|
|
745
|
+
prefix = self._uid_prefix_for_media_type(normalized_media_type)
|
|
739
746
|
ref = url
|
|
740
747
|
normalized_segment_data = dict(segment_data or {})
|
|
741
748
|
if source_ref and source_ref != url:
|
|
@@ -778,6 +785,62 @@ class AttachmentRegistry:
|
|
|
778
785
|
await self._persist()
|
|
779
786
|
return self._records.get(uid, record)
|
|
780
787
|
|
|
788
|
+
async def register_forward_reference(
|
|
789
|
+
self,
|
|
790
|
+
scope_key: str,
|
|
791
|
+
forward_id: str,
|
|
792
|
+
*,
|
|
793
|
+
display_name: str | None = None,
|
|
794
|
+
source_kind: str = "onebot_forward",
|
|
795
|
+
segment_data: Mapping[str, str] | None = None,
|
|
796
|
+
description: str = "",
|
|
797
|
+
) -> AttachmentRecord:
|
|
798
|
+
"""登记合并转发引用,仅保存 OneBot forward id,不展开内容。"""
|
|
799
|
+
await self.load()
|
|
800
|
+
normalized_forward_id = str(forward_id or "").strip()
|
|
801
|
+
if not normalized_forward_id:
|
|
802
|
+
raise ValueError("合并转发 ID 不能为空")
|
|
803
|
+
normalized_segment_data = {
|
|
804
|
+
str(k): str(v)
|
|
805
|
+
for k, v in dict(segment_data or {}).items()
|
|
806
|
+
if str(k).strip() and str(v).strip()
|
|
807
|
+
}
|
|
808
|
+
normalized_segment_data.setdefault("forward_id", normalized_forward_id)
|
|
809
|
+
digest_hex = hashlib.sha256(
|
|
810
|
+
f"{scope_key}\n{normalized_forward_id}".encode("utf-8")
|
|
811
|
+
).hexdigest()
|
|
812
|
+
|
|
813
|
+
async with self._lock:
|
|
814
|
+
for existing in self._records.values():
|
|
815
|
+
if (
|
|
816
|
+
existing.scope_key == scope_key
|
|
817
|
+
and existing.kind == "forward"
|
|
818
|
+
and existing.source_ref == normalized_forward_id
|
|
819
|
+
):
|
|
820
|
+
return existing
|
|
821
|
+
|
|
822
|
+
uid = self._build_uid("forward")
|
|
823
|
+
record = AttachmentRecord(
|
|
824
|
+
uid=uid,
|
|
825
|
+
scope_key=scope_key,
|
|
826
|
+
kind="forward",
|
|
827
|
+
media_type="forward",
|
|
828
|
+
display_name=display_name or f"合并转发 {normalized_forward_id}",
|
|
829
|
+
source_kind=source_kind,
|
|
830
|
+
source_ref=normalized_forward_id,
|
|
831
|
+
local_path=None,
|
|
832
|
+
mime_type="application/vnd.undefined.forward",
|
|
833
|
+
sha256=digest_hex,
|
|
834
|
+
created_at=_now_iso(),
|
|
835
|
+
segment_data=normalized_segment_data,
|
|
836
|
+
semantic_kind="forward",
|
|
837
|
+
description=description,
|
|
838
|
+
)
|
|
839
|
+
self._records[uid] = record
|
|
840
|
+
self._prune_records()
|
|
841
|
+
await self._persist()
|
|
842
|
+
return self._records.get(uid, record)
|
|
843
|
+
|
|
781
844
|
async def _register_remote_url_or_reference(
|
|
782
845
|
self,
|
|
783
846
|
scope_key: str,
|