Undefined-bot 3.6.2__tar.gz → 3.6.3__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.2 → undefined_bot-3.6.3}/CHANGELOG.md +13 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/PKG-INFO +28 -2
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/README.md +27 -1
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/pyproject.toml +1 -1
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/__init__.py +1 -1
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/attachments/__init__.py +8 -0
- undefined_bot-3.6.3/src/Undefined/attachments/forward_snapshot.py +286 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/attachments/segments.py +69 -14
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/handlers/message_flow.py +1 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/file_analysis_agent/README.md +1 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/file_analysis_agent/prompt.md +2 -1
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/file_analysis_agent/tools/analyze_multimodal/handler.py +77 -1
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/messages/get_forward_msg/handler.py +121 -12
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/utils/paths.py +1 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/.gitignore +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/ARCHITECTURE.md +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/LICENSE +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/config/README.md +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/config/mcp.json.example +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/config.toml.example +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/img/xlwy.jpg +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/res/IMPORTANT/each.md +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/res/README.md +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/res/prompts/agent_self_intro.txt +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/res/prompts/analyze_multimodal.txt +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/res/prompts/describe_image.txt +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/res/prompts/describe_meme_image.txt +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/res/prompts/generate_title.txt +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/res/prompts/historian_profile_merge.md +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/res/prompts/historian_rewrite.md +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/res/prompts/image_gen_moderation.txt +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/res/prompts/injection_detector.txt +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/res/prompts/injection_response_agent.txt +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/res/prompts/judge_meme_image.txt +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/res/prompts/merge_message_summaries.txt +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/res/prompts/merge_summaries.txt +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/res/prompts/message_summary.txt +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/res/prompts/naga_message_moderation.txt +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/res/prompts/stats_analysis.txt +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/res/prompts/summarize.txt +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/res/prompts/undefined.xml +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/res/prompts/undefined_nagaagent.xml +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/README.md +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/README.md +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/__main__.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/ai/__init__.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/ai/client/__init__.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/ai/client/ask_loop.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/ai/client/queue.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/ai/client/setup.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/ai/crawl4ai_support.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/ai/http.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/ai/llm/__init__.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/ai/llm/requester.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/ai/llm/sanitize.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/ai/llm/streaming.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/ai/llm/thinking.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/ai/llm/types.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/ai/model_selector.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/ai/multimodal/__init__.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/ai/multimodal/analyzer.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/ai/multimodal/constants.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/ai/multimodal/detection.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/ai/multimodal/parsing.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/ai/parsing.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/ai/prompts/__init__.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/ai/prompts/builder.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/ai/prompts/cognitive.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/ai/prompts/constants.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/ai/prompts/current_input.py +4 -4
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/ai/prompts/system_context.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/ai/queue_budget.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/ai/retrieval.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/ai/summaries.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/ai/tokens.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/ai/tooling.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/ai/transports/__init__.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/ai/transports/openai_transport.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/api/__init__.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/api/_context.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/api/_helpers.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/api/_naga_state.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/api/_openapi.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/api/_probes.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/api/app.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/api/naga_store.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/api/routes/__init__.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/api/routes/chat.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/api/routes/cognitive.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/api/routes/commands.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/api/routes/health.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/api/routes/memes.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/api/routes/memory.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/api/routes/naga/__init__.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/api/routes/naga/auth.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/api/routes/naga/bind.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/api/routes/naga/send.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/api/routes/naga/unbind.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/api/routes/schedules.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/api/routes/system.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/api/routes/tools.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/api/webchat_store.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/arxiv/__init__.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/arxiv/client.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/arxiv/downloader.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/arxiv/models.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/arxiv/parser.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/arxiv/sender.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/attachments/models.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/attachments/registry.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/attachments/render.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/bilibili/__init__.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/bilibili/api_client.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/bilibili/danmaku.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/bilibili/download_core.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/bilibili/downloader.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/bilibili/errors.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/bilibili/models.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/bilibili/parser.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/bilibili/sender.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/bilibili/wbi.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/bilibili/wbi_request.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/changelog.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/cognitive/__init__.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/cognitive/chroma_scheduler.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/cognitive/historian/__init__.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/cognitive/historian/helpers.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/cognitive/historian/tools.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/cognitive/historian/worker.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/cognitive/job_queue.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/cognitive/profile_storage.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/cognitive/service/__init__.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/cognitive/service/helpers.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/cognitive/service/service.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/cognitive/vector_store.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/cognitive/vector_store_compat.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/config/__init__.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/config/admin.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/config/build_config.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/config/coercers.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/config/config_class.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/config/domain_parsers.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/config/env_registry.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/config/hot_reload.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/config/load_sections/__init__.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/config/load_sections/access.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/config/load_sections/core.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/config/load_sections/domains.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/config/load_sections/finalize.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/config/load_sections/history_skills.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/config/load_sections/integrations.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/config/load_sections/knowledge.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/config/load_sections/logging_tools.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/config/load_sections/models.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/config/load_sections/network.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/config/loader.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/config/manager.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/config/model_parsers.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/config/models.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/config/parsers/__init__.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/config/parsers/agent.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/config/parsers/chat.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/config/parsers/embedding.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/config/parsers/grok.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/config/parsers/helpers.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/config/parsers/historian.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/config/parsers/image.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/config/parsers/naga.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/config/parsers/pool.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/config/parsers/security.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/config/parsers/summary.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/config/parsers/vision.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/config/resolvers.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/config/toml_io.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/config/webui_settings.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/context.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/context_resource_registry.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/end_summary_storage.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/faq.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/github/__init__.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/github/client.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/github/models.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/github/parser.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/github/sender.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/handlers/__init__.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/handlers/auto_extract.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/handlers/poke.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/handlers/repeat.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/injection_response_agent.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/knowledge/__init__.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/knowledge/chunker.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/knowledge/embedder.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/knowledge/manager.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/knowledge/reranker.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/knowledge/runtime.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/knowledge/store.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/main.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/mcp/__init__.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/mcp/registry.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/memes/__init__.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/memes/_image_utils.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/memes/ingest.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/memes/models.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/memes/search.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/memes/service.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/memes/store.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/memes/vector_store.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/memes/worker.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/memory.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/onebot/__init__.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/onebot/client.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/onebot/message.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/py.typed +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/rate_limit.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/render.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/scheduled_task_storage.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/services/__init__.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/services/command.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/services/commands/__init__.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/services/commands/bugfix.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/services/commands/context.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/services/commands/registry.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/services/commands/stats.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/services/coordinator/__init__.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/services/coordinator/background.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/services/coordinator/batching.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/services/coordinator/group.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/services/coordinator/message_ids.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/services/coordinator/private.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/services/message_batcher/__init__.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/services/message_batcher/scheduler.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/services/message_batcher/state.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/services/message_summary_fetch.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/services/model_pool.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/services/queue_manager.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/services/security.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/README.md +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/__init__.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/README.md +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/__init__.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/agent_tool_registry.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/code_delivery_agent/config.json +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/code_delivery_agent/docker_utils.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/code_delivery_agent/handler.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/code_delivery_agent/intro.md +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/code_delivery_agent/mcp.json +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/code_delivery_agent/prompt.md +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/code_delivery_agent/tools/copy/config.json +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/code_delivery_agent/tools/copy/handler.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/code_delivery_agent/tools/delete/config.json +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/code_delivery_agent/tools/delete/handler.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/code_delivery_agent/tools/diff/config.json +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/code_delivery_agent/tools/diff/handler.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/code_delivery_agent/tools/end/config.json +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/code_delivery_agent/tools/end/handler.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/code_delivery_agent/tools/glob/config.json +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/code_delivery_agent/tools/glob/handler.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/code_delivery_agent/tools/grep/config.json +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/code_delivery_agent/tools/grep/handler.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/code_delivery_agent/tools/init_docker/config.json +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/code_delivery_agent/tools/init_docker/handler.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/code_delivery_agent/tools/read/config.json +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/code_delivery_agent/tools/read/handler.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/code_delivery_agent/tools/run_bash_command/config.json +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/code_delivery_agent/tools/run_bash_command/handler.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/code_delivery_agent/tools/todo/config.json +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/code_delivery_agent/tools/todo/handler.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/code_delivery_agent/tools/tree/config.json +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/code_delivery_agent/tools/tree/handler.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/code_delivery_agent/tools/write/config.json +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/code_delivery_agent/tools/write/handler.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/entertainment_agent/README.md +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/entertainment_agent/config.json +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/entertainment_agent/handler.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/entertainment_agent/intro.md +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/entertainment_agent/prompt.md +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/entertainment_agent/tools/__init__.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/entertainment_agent/tools/ai_draw_one/config.json +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/entertainment_agent/tools/ai_draw_one/handler.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/entertainment_agent/tools/horoscope/config.json +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/entertainment_agent/tools/horoscope/handler.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/entertainment_agent/tools/minecraft_skin/config.json +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/entertainment_agent/tools/minecraft_skin/handler.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/entertainment_agent/tools/renjian/config.json +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/entertainment_agent/tools/renjian/handler.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/entertainment_agent/tools/wenchang_dijun/config.json +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/entertainment_agent/tools/wenchang_dijun/handler.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/file_analysis_agent/__init__.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/file_analysis_agent/config.json +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/file_analysis_agent/handler.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/file_analysis_agent/intro.md +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/file_analysis_agent/tools/__init__.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/file_analysis_agent/tools/analyze_code/config.json +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/file_analysis_agent/tools/analyze_code/handler.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/file_analysis_agent/tools/analyze_multimodal/config.json +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/file_analysis_agent/tools/cleanup_temp/config.json +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/file_analysis_agent/tools/cleanup_temp/handler.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/file_analysis_agent/tools/describe_pdf_page/config.json +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/file_analysis_agent/tools/describe_pdf_page/handler.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/file_analysis_agent/tools/detect_file_type/config.json +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/file_analysis_agent/tools/detect_file_type/handler.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/file_analysis_agent/tools/download_file/config.json +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/file_analysis_agent/tools/download_file/handler.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/file_analysis_agent/tools/extract_archive/config.json +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/file_analysis_agent/tools/extract_archive/handler.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/file_analysis_agent/tools/extract_docx/config.json +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/file_analysis_agent/tools/extract_docx/handler.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/file_analysis_agent/tools/extract_pdf/config.json +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/file_analysis_agent/tools/extract_pdf/handler.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/file_analysis_agent/tools/extract_pptx/config.json +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/file_analysis_agent/tools/extract_pptx/handler.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/file_analysis_agent/tools/extract_xlsx/config.json +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/file_analysis_agent/tools/extract_xlsx/handler.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/file_analysis_agent/tools/read_text_file/config.json +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/file_analysis_agent/tools/read_text_file/handler.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/info_agent/README.md +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/info_agent/config.json +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/info_agent/handler.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/info_agent/intro.md +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/info_agent/prompt.md +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/info_agent/tools/__init__.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/info_agent/tools/arxiv_search/config.json +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/info_agent/tools/arxiv_search/handler.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/info_agent/tools/baiduhot/config.json +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/info_agent/tools/baiduhot/handler.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/info_agent/tools/base64/config.json +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/info_agent/tools/base64/handler.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/info_agent/tools/bilibili_search/config.json +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/info_agent/tools/bilibili_search/handler.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/info_agent/tools/bilibili_user_info/config.json +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/info_agent/tools/bilibili_user_info/handler.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/info_agent/tools/douyinhot/config.json +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/info_agent/tools/douyinhot/handler.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/info_agent/tools/gold_price/config.json +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/info_agent/tools/gold_price/handler.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/info_agent/tools/hash/config.json +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/info_agent/tools/hash/handler.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/info_agent/tools/history/config.json +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/info_agent/tools/history/handler.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/info_agent/tools/net_check/config.json +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/info_agent/tools/net_check/handler.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/info_agent/tools/qq_level_query/config.json +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/info_agent/tools/qq_level_query/handler.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/info_agent/tools/speed/config.json +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/info_agent/tools/speed/handler.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/info_agent/tools/tcping/config.json +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/info_agent/tools/tcping/handler.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/info_agent/tools/weather_query/config.json +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/info_agent/tools/weather_query/handler.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/info_agent/tools/weibohot/config.json +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/info_agent/tools/weibohot/handler.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/info_agent/tools/whois/config.json +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/info_agent/tools/whois/handler.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/intro_generator.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/intro_utils.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/naga_code_analysis_agent/README.md +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/naga_code_analysis_agent/config.json +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/naga_code_analysis_agent/handler.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/naga_code_analysis_agent/intro.md +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/naga_code_analysis_agent/mcp.json +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/naga_code_analysis_agent/prompt.md +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/naga_code_analysis_agent/tools/__init__.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/naga_code_analysis_agent/tools/glob/config.json +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/naga_code_analysis_agent/tools/glob/handler.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/naga_code_analysis_agent/tools/list_directory/config.json +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/naga_code_analysis_agent/tools/list_directory/handler.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/naga_code_analysis_agent/tools/read_file/config.json +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/naga_code_analysis_agent/tools/read_file/handler.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/naga_code_analysis_agent/tools/read_naga_intro/config.json +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/naga_code_analysis_agent/tools/read_naga_intro/handler.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/naga_code_analysis_agent/tools/search_file_content/config.json +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/naga_code_analysis_agent/tools/search_file_content/handler.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/runner/__init__.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/runner/context.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/runner/loop.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/runner/tools.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/runner/webchat_utils.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/summary_agent/__init__.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/summary_agent/config.json +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/summary_agent/handler.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/summary_agent/intro.md +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/summary_agent/prompt.md +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/summary_agent/tools/__init__.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/summary_agent/tools/fetch_messages/config.json +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/summary_agent/tools/fetch_messages/handler.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/undefined_self_code_agent/README.md +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/undefined_self_code_agent/__init__.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/undefined_self_code_agent/config.json +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/undefined_self_code_agent/handler.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/undefined_self_code_agent/intro.md +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/undefined_self_code_agent/prompt.md +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/undefined_self_code_agent/tools/__init__.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/undefined_self_code_agent/tools/_shared.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/undefined_self_code_agent/tools/glob/config.json +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/undefined_self_code_agent/tools/glob/handler.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/undefined_self_code_agent/tools/list_directory/config.json +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/undefined_self_code_agent/tools/list_directory/handler.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/undefined_self_code_agent/tools/read_file/config.json +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/undefined_self_code_agent/tools/read_file/handler.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/undefined_self_code_agent/tools/search_file_content/config.json +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/undefined_self_code_agent/tools/search_file_content/handler.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/web_agent/README.md +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/web_agent/callable.json +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/web_agent/config.json +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/web_agent/handler.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/web_agent/intro.md +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/web_agent/mcp.json +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/web_agent/prompt.md +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/web_agent/tools/__init__.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/web_agent/tools/crawl_webpage/config.json +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/web_agent/tools/crawl_webpage/handler.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/web_agent/tools/grok_search/config.json +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/web_agent/tools/grok_search/handler.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/web_agent/tools/web_search/config.json +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/web_agent/tools/web_search/handler.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/anthropic_skills/__init__.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/anthropic_skills/loader.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/commands/README.md +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/commands/admin/README.md +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/commands/admin/config.json +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/commands/admin/handler.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/commands/bugfix/README.md +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/commands/bugfix/config.json +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/commands/bugfix/handler.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/commands/changelog/README.md +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/commands/changelog/config.json +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/commands/changelog/handler.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/commands/copyright/README.md +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/commands/copyright/config.json +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/commands/copyright/handler.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/commands/faq/README.md +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/commands/faq/config.json +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/commands/faq/handler.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/commands/feedback/README.md +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/commands/feedback/config.json +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/commands/feedback/handler.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/commands/help/README.md +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/commands/help/config.json +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/commands/help/handler.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/commands/naga/README.md +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/commands/naga/config.json +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/commands/naga/handler.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/commands/naga/policy.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/commands/profile/README.md +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/commands/profile/config.json +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/commands/profile/handler.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/commands/stats/README.md +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/commands/stats/config.json +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/commands/stats/handler.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/commands/summary/config.json +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/commands/summary/handler.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/commands/version/config.json +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/commands/version/handler.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/http_client.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/http_config.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/pipelines/__init__.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/pipelines/arxiv/config.json +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/pipelines/arxiv/handler.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/pipelines/bilibili/config.json +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/pipelines/bilibili/handler.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/pipelines/context.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/pipelines/github/config.json +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/pipelines/github/handler.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/pipelines/models.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/pipelines/registry.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/registry.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/tools/README.md +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/tools/__init__.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/tools/arxiv_paper/README.md +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/tools/arxiv_paper/callable.json +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/tools/arxiv_paper/config.json +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/tools/arxiv_paper/handler.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/tools/bilibili_video/README.md +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/tools/bilibili_video/callable.json +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/tools/bilibili_video/config.json +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/tools/bilibili_video/handler.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/tools/calculator/callable.json +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/tools/calculator/config.json +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/tools/calculator/handler.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/tools/changelog_query/README.md +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/tools/changelog_query/config.json +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/tools/changelog_query/handler.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/tools/end/README.md +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/tools/end/config.json +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/tools/end/handler.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/tools/fetch_image_uid/config.json +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/tools/fetch_image_uid/handler.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/tools/get_current_time/README.md +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/tools/get_current_time/callable.json +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/tools/get_current_time/config.json +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/tools/get_current_time/handler.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/tools/get_picture/README.md +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/tools/get_picture/config.json +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/tools/get_picture/handler.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/tools/get_user_info/README.md +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/tools/get_user_info/config.json +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/tools/get_user_info/handler.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/tools/knowledge_list/config.json +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/tools/knowledge_list/handler.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/tools/knowledge_semantic_search/config.json +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/tools/knowledge_semantic_search/handler.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/tools/knowledge_text_search/config.json +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/tools/knowledge_text_search/handler.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/tools/python_interpreter/README.md +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/tools/python_interpreter/config.json +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/tools/python_interpreter/handler.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/tools/qq_like/README.md +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/tools/qq_like/config.json +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/tools/qq_like/handler.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/tools/task_progress/config.json +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/tools/task_progress/handler.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/README.md +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/__init__.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/attachments/get_uid_by_url/config.json +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/attachments/get_uid_by_url/handler.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/attachments/get_url_by_uid/config.json +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/attachments/get_url_by_uid/handler.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/cognitive/get_profile/config.json +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/cognitive/get_profile/handler.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/cognitive/search_events/config.json +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/cognitive/search_events/handler.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/cognitive/search_profiles/config.json +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/cognitive/search_profiles/handler.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/contacts/query_friends/config.json +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/contacts/query_friends/handler.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/contacts/query_groups/config.json +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/contacts/query_groups/handler.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/group/README.md +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/group/find_member/config.json +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/group/find_member/handler.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/group/get_avatar/config.json +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/group/get_avatar/handler.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/group/get_files/config.json +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/group/get_files/handler.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/group/get_honor_info/config.json +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/group/get_honor_info/handler.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/group/get_member_info/config.json +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/group/get_member_info/handler.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/group/get_member_list/config.json +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/group/get_member_list/handler.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/group/get_member_title/config.json +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/group/get_member_title/handler.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/group_analysis/README.md +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/group_analysis/activity_trend/config.json +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/group_analysis/activity_trend/handler.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/group_analysis/filter_members/config.json +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/group_analysis/filter_members/handler.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/group_analysis/inactive_risk/config.json +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/group_analysis/inactive_risk/handler.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/group_analysis/join_statistics/config.json +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/group_analysis/join_statistics/handler.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/group_analysis/level_distribution/config.json +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/group_analysis/level_distribution/handler.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/group_analysis/member_activity/config.json +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/group_analysis/member_activity/handler.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/group_analysis/member_messages/config.json +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/group_analysis/member_messages/handler.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/group_analysis/member_structure/config.json +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/group_analysis/member_structure/handler.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/group_analysis/message_mix/config.json +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/group_analysis/message_mix/handler.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/group_analysis/new_member_activity/config.json +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/group_analysis/new_member_activity/handler.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/group_analysis/rank_members/config.json +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/group_analysis/rank_members/handler.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/mcp/README.md +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/mcp/__init__.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/memes/README.md +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/memes/search_memes/config.json +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/memes/search_memes/handler.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/memes/send_meme_by_uid/config.json +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/memes/send_meme_by_uid/handler.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/memory/README.md +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/memory/add/config.json +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/memory/add/handler.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/memory/delete/config.json +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/memory/delete/handler.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/memory/list/config.json +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/memory/list/handler.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/memory/update/config.json +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/memory/update/handler.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/messages/README.md +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/messages/context_utils.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/messages/get_forward_msg/config.json +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/messages/get_messages_by_time/config.json +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/messages/get_messages_by_time/handler.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/messages/get_recent_messages/config.json +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/messages/get_recent_messages/handler.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/messages/list_emojis/config.json +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/messages/list_emojis/handler.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/messages/lookup_emoji_id/config.json +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/messages/lookup_emoji_id/handler.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/messages/react_message_emoji/config.json +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/messages/react_message_emoji/handler.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/messages/send_group_sign/config.json +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/messages/send_group_sign/handler.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/messages/send_message/config.json +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/messages/send_message/handler.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/messages/send_poke/config.json +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/messages/send_poke/handler.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/messages/send_private_message/config.json +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/messages/send_private_message/handler.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/messages/send_text_file/callable.json +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/messages/send_text_file/config.json +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/messages/send_text_file/handler.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/messages/send_url_file/callable.json +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/messages/send_url_file/config.json +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/messages/send_url_file/handler.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/notices/README.md +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/notices/get/config.json +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/notices/get/handler.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/notices/list/config.json +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/notices/list/handler.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/notices/stats/config.json +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/notices/stats/handler.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/render/README.md +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/render/render_html/config.json +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/render/render_html/handler.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/render/render_latex/config.json +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/render/render_latex/handler.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/render/render_markdown/config.json +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/render/render_markdown/handler.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/scheduler/README.md +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/scheduler/create_schedule_task/config.json +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/scheduler/create_schedule_task/handler.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/scheduler/delete_schedule_task/config.json +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/scheduler/delete_schedule_task/handler.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/scheduler/list_schedule_tasks/config.json +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/scheduler/list_schedule_tasks/handler.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/scheduler/update_schedule_task/config.json +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/scheduler/update_schedule_task/handler.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/token_usage_storage.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/utils/__init__.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/utils/cache.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/utils/coerce.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/utils/common.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/utils/cors.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/utils/fake_at.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/utils/file_lock.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/utils/group_metrics.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/utils/history.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/utils/http_download.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/utils/io.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/utils/logging.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/utils/member_utils.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/utils/message_targets.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/utils/message_turn.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/utils/message_utils.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/utils/qq_emoji.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/utils/queue_intervals.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/utils/recent_messages.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/utils/render_cache.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/utils/request_params.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/utils/resources.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/utils/scheduler.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/utils/self_update.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/utils/sender.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/utils/sender_helpers.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/utils/time_utils.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/utils/tool_calls.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/utils/xml.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/webui/__init__.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/webui/__main__.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/webui/app.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/webui/core.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/webui/routes/__init__.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/webui/routes/_auth.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/webui/routes/_bot.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/webui/routes/_config.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/webui/routes/_index.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/webui/routes/_logs.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/webui/routes/_memes.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/webui/routes/_runtime.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/webui/routes/_shared.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/webui/routes/_system.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/webui/static/css/.stylelintrc.json +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/webui/static/css/app.css +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/webui/static/css/base.css +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/webui/static/css/components.css +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/webui/static/css/highlight-github.min.css +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/webui/static/css/landing.css +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/webui/static/css/responsive.css +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/webui/static/css/style.css +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/webui/static/css/variables.css +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/webui/static/favicon.svg +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/webui/static/js/api.js +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/webui/static/js/auth.js +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/webui/static/js/bot.js +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/webui/static/js/config-form.js +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/webui/static/js/i18n.js +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/webui/static/js/log-view.js +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/webui/static/js/logs.js +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/webui/static/js/main.js +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/webui/static/js/memes.js +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/webui/static/js/runtime.js +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/webui/static/js/schedules.js +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/webui/static/js/state.js +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/webui/static/js/ui.js +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/webui/static/js/vendor/highlight.min.js +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/webui/static/js/vendor/highlightjs.LICENSE +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/webui/static/js/vendor/marked.min.js +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/webui/templates/index.html +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/webui/utils/__init__.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/webui/utils/comment.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/webui/utils/config_io.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/webui/utils/config_sync.py +0 -0
- {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/webui/utils/toml_render.py +0 -0
|
@@ -1,3 +1,16 @@
|
|
|
1
|
+
## v3.6.3 合并转发快照、附件 UID 分析与 Release 下载说明
|
|
2
|
+
|
|
3
|
+
本版本聚焦合并转发在协议端不可二次读取时的可用性:收到消息时先把可访问的转发树按会话保存为本地快照,后续工具读取优先复用快照,避免内层转发过期或回源失败导致 AI 看不到内容。同时补齐文件分析 Agent 对内部附件 UID 的直接解析能力,并澄清 Release 产物的下载选择。
|
|
4
|
+
|
|
5
|
+
- 新增合并转发快照缓存。消息预处理阶段会递归保存当前可访问的合并转发树到 `data/cache/forward_snapshots/`,保留实时上下文中的 `<forward uid="..."/>` 语义;快照按会话隔离,并合并同一转发的并发抓取。
|
|
6
|
+
- 改进 `messages.get_forward_msg`。工具支持 `forward_` UID 与原始 ID 优先读取本地快照,缺失时再回源 OneBot 并补写快照;协议端无法二次读取内层转发时,会返回明确诊断和可见原始字段,而不是只报空内容。
|
|
7
|
+
- 修复合并转发当前轮上下文重复。Prompt 构建在剔除当前消息历史副本时优先匹配 `message_id`,避免历史中的递归展开文本与实时 `<forward uid="..."/>` 在同一轮重复注入。
|
|
8
|
+
- 增强文件分析附件链路。`file_analysis_agent` 的 `analyze_multimodal` 可直接接收 `pic_` / `file_` UID,按当前会话作用域解析并本地化后再分析;Agent 提示同步明确不要改写或猜测附件 UID。
|
|
9
|
+
- 澄清 Release 下载选择。README 与部署、构建、App 文档补充说明:部署 QQ Bot 通常不需要下载 Release 客户端安装包,Console / Chat 仅作为远程管理或原生聊天的可选组件。
|
|
10
|
+
- 同步 3.6.3 版本号与测试覆盖。Python 包、Console、Chat、Tauri 与 lock 文件版本统一更新;新增合并转发快照、转发读取回退、多模态附件 UID 和当前消息去重回归测试。
|
|
11
|
+
|
|
12
|
+
---
|
|
13
|
+
|
|
1
14
|
## v3.6.2 合并转发 UID、表情包跟进与协调器清理
|
|
2
15
|
|
|
3
16
|
本版本继续收敛消息附件链路和协调器结构:合并转发可作为会话内 `forward_` UID 被 AI 按层读取和复用,表情包跟进策略更稳定,同时移除旧版协调器兼容模块,并完成 3.6.2 版本号同步。
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: Undefined-bot
|
|
3
|
-
Version: 3.6.
|
|
3
|
+
Version: 3.6.3
|
|
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
|
|
@@ -88,6 +88,32 @@ Description-Content-Type: text/markdown
|
|
|
88
88
|
|
|
89
89
|
[点击添加官方实例QQ](https://qm.qq.com/q/cvjJoNysGA)
|
|
90
90
|
|
|
91
|
+
## Release 下载速查
|
|
92
|
+
|
|
93
|
+
如果只是部署和运行 QQ Bot,通常**不需要**在 GitHub Release 的 Assets 里下载任何文件。推荐按下方[快速开始](#-快速开始-源码模式)使用源码部署;只想快速体验命令行入口时,可使用 `pip install -U Undefined-bot` 或 `uv tool install Undefined-bot`。
|
|
94
|
+
|
|
95
|
+
Release 里的安装包是可选组件,不是 Bot 服务本体:
|
|
96
|
+
|
|
97
|
+
| 目标 | 是否需要下载 Release | 选择 |
|
|
98
|
+
| --- | --- | --- |
|
|
99
|
+
| 部署 / 运行 QQ Bot | 不需要 | 源码部署,启动 `uv run Undefined-webui`;或使用 `pip` / `uv tool` 安装 Python 包 |
|
|
100
|
+
| 远程管理已有实例 | 可选 | `Undefined-Console-*`,用于连接 Management API 并打开远程 WebUI |
|
|
101
|
+
| 使用原生聊天客户端 | 可选 | `Undefined-Chat-*`,用于连接 Runtime API 聊天 |
|
|
102
|
+
| 离线安装 / 镜像缓存 Python 包 | 可选 | `undefined_bot-*.whl` 或 `undefined_bot-*.tar.gz` |
|
|
103
|
+
|
|
104
|
+
平台文件选择:
|
|
105
|
+
|
|
106
|
+
| 平台 | 推荐下载 |
|
|
107
|
+
| --- | --- |
|
|
108
|
+
| Windows x64 | `*-windows-x64-setup.exe`;批量部署或系统管理场景可选 `.msi` |
|
|
109
|
+
| macOS Apple Silicon | `*-macos-arm64.dmg` |
|
|
110
|
+
| macOS Intel | `*-macos-x64.dmg` |
|
|
111
|
+
| Debian / Ubuntu | `*.deb` |
|
|
112
|
+
| 其他 Linux x64 | `*.AppImage` |
|
|
113
|
+
| Android 常见手机 / 平板 | `*-android-arm64-v8a-release.apk`;旧 32 位设备选 `armeabi-v7a`,模拟器按需选 `x86_64` / `x86` |
|
|
114
|
+
|
|
115
|
+
Console 和 Chat 都需要连接到已经运行的 Undefined 服务。首次部署请先启动 `Undefined-webui`,完成配置和 Bot 启动后,再按需使用这些客户端连接。
|
|
116
|
+
|
|
91
117
|
## ⚡ 核心特性
|
|
92
118
|
|
|
93
119
|
- **Skills 架构**:全新设计的技能系统,将基础工具(Tools)与智能代理(Agents)分层管理,支持自动发现与注册。
|
|
@@ -185,7 +211,7 @@ uv run Undefined-webui
|
|
|
185
211
|
# cp config.toml.example config.toml
|
|
186
212
|
```
|
|
187
213
|
|
|
188
|
-
>
|
|
214
|
+
> 浏览器是默认入口;如果你按上方 [Release 下载速查](#release-下载速查)下载了桌面端或 Android 安装包,也可以在完成首轮密码设置后,连接到同一个 Management API 地址进行远程管理。
|
|
189
215
|
|
|
190
216
|
---
|
|
191
217
|
|
|
@@ -29,6 +29,32 @@
|
|
|
29
29
|
|
|
30
30
|
[点击添加官方实例QQ](https://qm.qq.com/q/cvjJoNysGA)
|
|
31
31
|
|
|
32
|
+
## Release 下载速查
|
|
33
|
+
|
|
34
|
+
如果只是部署和运行 QQ Bot,通常**不需要**在 GitHub Release 的 Assets 里下载任何文件。推荐按下方[快速开始](#-快速开始-源码模式)使用源码部署;只想快速体验命令行入口时,可使用 `pip install -U Undefined-bot` 或 `uv tool install Undefined-bot`。
|
|
35
|
+
|
|
36
|
+
Release 里的安装包是可选组件,不是 Bot 服务本体:
|
|
37
|
+
|
|
38
|
+
| 目标 | 是否需要下载 Release | 选择 |
|
|
39
|
+
| --- | --- | --- |
|
|
40
|
+
| 部署 / 运行 QQ Bot | 不需要 | 源码部署,启动 `uv run Undefined-webui`;或使用 `pip` / `uv tool` 安装 Python 包 |
|
|
41
|
+
| 远程管理已有实例 | 可选 | `Undefined-Console-*`,用于连接 Management API 并打开远程 WebUI |
|
|
42
|
+
| 使用原生聊天客户端 | 可选 | `Undefined-Chat-*`,用于连接 Runtime API 聊天 |
|
|
43
|
+
| 离线安装 / 镜像缓存 Python 包 | 可选 | `undefined_bot-*.whl` 或 `undefined_bot-*.tar.gz` |
|
|
44
|
+
|
|
45
|
+
平台文件选择:
|
|
46
|
+
|
|
47
|
+
| 平台 | 推荐下载 |
|
|
48
|
+
| --- | --- |
|
|
49
|
+
| Windows x64 | `*-windows-x64-setup.exe`;批量部署或系统管理场景可选 `.msi` |
|
|
50
|
+
| macOS Apple Silicon | `*-macos-arm64.dmg` |
|
|
51
|
+
| macOS Intel | `*-macos-x64.dmg` |
|
|
52
|
+
| Debian / Ubuntu | `*.deb` |
|
|
53
|
+
| 其他 Linux x64 | `*.AppImage` |
|
|
54
|
+
| Android 常见手机 / 平板 | `*-android-arm64-v8a-release.apk`;旧 32 位设备选 `armeabi-v7a`,模拟器按需选 `x86_64` / `x86` |
|
|
55
|
+
|
|
56
|
+
Console 和 Chat 都需要连接到已经运行的 Undefined 服务。首次部署请先启动 `Undefined-webui`,完成配置和 Bot 启动后,再按需使用这些客户端连接。
|
|
57
|
+
|
|
32
58
|
## ⚡ 核心特性
|
|
33
59
|
|
|
34
60
|
- **Skills 架构**:全新设计的技能系统,将基础工具(Tools)与智能代理(Agents)分层管理,支持自动发现与注册。
|
|
@@ -126,7 +152,7 @@ uv run Undefined-webui
|
|
|
126
152
|
# cp config.toml.example config.toml
|
|
127
153
|
```
|
|
128
154
|
|
|
129
|
-
>
|
|
155
|
+
> 浏览器是默认入口;如果你按上方 [Release 下载速查](#release-下载速查)下载了桌面端或 Android 安装包,也可以在完成首轮密码设置后,连接到同一个 Management API 地址进行远程管理。
|
|
130
156
|
|
|
131
157
|
---
|
|
132
158
|
|
|
@@ -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.3"
|
|
28
28
|
|
|
29
29
|
# symbol -> (module_path, attribute_name);首次访问时才 importlib 加载
|
|
30
30
|
_LAZY_IMPORTS: dict[str, tuple[str, str]] = {
|
|
@@ -10,6 +10,11 @@ from Undefined.attachments.models import (
|
|
|
10
10
|
RegisteredMessageAttachments,
|
|
11
11
|
RenderedRichMessage,
|
|
12
12
|
)
|
|
13
|
+
from Undefined.attachments.forward_snapshot import (
|
|
14
|
+
load_forward_snapshot,
|
|
15
|
+
save_forward_snapshot,
|
|
16
|
+
snapshot_forward_tree,
|
|
17
|
+
)
|
|
13
18
|
from Undefined.attachments.registry import AttachmentRegistry
|
|
14
19
|
from Undefined.attachments.render import (
|
|
15
20
|
dispatch_pending_file_sends,
|
|
@@ -40,8 +45,11 @@ __all__ = [
|
|
|
40
45
|
"attachment_refs_to_xml",
|
|
41
46
|
"build_attachment_scope",
|
|
42
47
|
"dispatch_pending_file_sends",
|
|
48
|
+
"load_forward_snapshot",
|
|
43
49
|
"register_message_attachments",
|
|
44
50
|
"render_message_with_attachments",
|
|
45
51
|
"render_message_with_pic_placeholders",
|
|
52
|
+
"save_forward_snapshot",
|
|
46
53
|
"scope_from_context",
|
|
54
|
+
"snapshot_forward_tree",
|
|
47
55
|
]
|
|
@@ -0,0 +1,286 @@
|
|
|
1
|
+
"""合并转发节点快照缓存。
|
|
2
|
+
|
|
3
|
+
OneBot 协议端可能只允许在收到外层合并转发时读取内层内容;之后再用
|
|
4
|
+
内层 ID 调 ``get_forward_msg`` 可能返回空。这里按会话作用域保存已见节点,
|
|
5
|
+
供 ``messages.get_forward_msg`` 在协议端不可回源时回退。
|
|
6
|
+
"""
|
|
7
|
+
|
|
8
|
+
from __future__ import annotations
|
|
9
|
+
|
|
10
|
+
import asyncio
|
|
11
|
+
from datetime import datetime
|
|
12
|
+
import hashlib
|
|
13
|
+
import logging
|
|
14
|
+
from pathlib import Path
|
|
15
|
+
from typing import Any, Awaitable, Callable, Mapping
|
|
16
|
+
|
|
17
|
+
from Undefined.utils import io
|
|
18
|
+
from Undefined.utils.paths import FORWARD_SNAPSHOT_CACHE_DIR
|
|
19
|
+
|
|
20
|
+
logger = logging.getLogger(__name__)
|
|
21
|
+
|
|
22
|
+
_MAX_RECURSIVE_SNAPSHOT_DEPTH = 3
|
|
23
|
+
_MAX_RECURSIVE_SNAPSHOT_NODES = 50
|
|
24
|
+
_snapshot_locks: dict[str, asyncio.Lock] = {}
|
|
25
|
+
_snapshot_lock_users: dict[str, int] = {}
|
|
26
|
+
_snapshot_inflight: dict[str, asyncio.Task[None]] = {}
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
def _snapshot_key(scope_key: str, forward_id: str) -> str:
|
|
30
|
+
payload = f"{scope_key}\n{forward_id}".encode("utf-8")
|
|
31
|
+
return hashlib.sha256(payload).hexdigest()
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
def _snapshot_path(scope_key: str, forward_id: str) -> Path:
|
|
35
|
+
return FORWARD_SNAPSHOT_CACHE_DIR / f"{_snapshot_key(scope_key, forward_id)}.json"
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
def _snapshot_lock(scope_key: str, forward_id: str) -> tuple[str, asyncio.Lock]:
|
|
39
|
+
key = _snapshot_key(scope_key, forward_id)
|
|
40
|
+
lock = _snapshot_locks.get(key)
|
|
41
|
+
if lock is None:
|
|
42
|
+
lock = asyncio.Lock()
|
|
43
|
+
_snapshot_locks[key] = lock
|
|
44
|
+
_snapshot_lock_users[key] = _snapshot_lock_users.get(key, 0) + 1
|
|
45
|
+
return key, lock
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
def _release_snapshot_lock(key: str, lock: asyncio.Lock) -> None:
|
|
49
|
+
users = _snapshot_lock_users.get(key, 0) - 1
|
|
50
|
+
if users > 0:
|
|
51
|
+
_snapshot_lock_users[key] = users
|
|
52
|
+
return
|
|
53
|
+
_snapshot_lock_users.pop(key, None)
|
|
54
|
+
if _snapshot_locks.get(key) is lock and not lock.locked():
|
|
55
|
+
_snapshot_locks.pop(key, None)
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
def _clean_json_value(value: Any) -> Any:
|
|
59
|
+
if value is None or isinstance(value, (str, int, float, bool)):
|
|
60
|
+
return value
|
|
61
|
+
if isinstance(value, Mapping):
|
|
62
|
+
cleaned: dict[str, Any] = {}
|
|
63
|
+
for raw_key, raw_value in value.items():
|
|
64
|
+
key = str(raw_key).strip()
|
|
65
|
+
if not key:
|
|
66
|
+
continue
|
|
67
|
+
cleaned[key] = _clean_json_value(raw_value)
|
|
68
|
+
return cleaned
|
|
69
|
+
if isinstance(value, (list, tuple)):
|
|
70
|
+
return [_clean_json_value(item) for item in value]
|
|
71
|
+
return str(value)
|
|
72
|
+
|
|
73
|
+
|
|
74
|
+
def normalize_forward_nodes_for_snapshot(nodes: Any) -> list[dict[str, Any]]:
|
|
75
|
+
"""把 OneBot 返回的合并转发节点清洗为可持久化列表。"""
|
|
76
|
+
if isinstance(nodes, Mapping):
|
|
77
|
+
messages = nodes.get("messages")
|
|
78
|
+
raw_nodes = messages if isinstance(messages, list) else []
|
|
79
|
+
elif isinstance(nodes, list):
|
|
80
|
+
raw_nodes = nodes
|
|
81
|
+
else:
|
|
82
|
+
raw_nodes = []
|
|
83
|
+
|
|
84
|
+
cleaned_nodes: list[dict[str, Any]] = []
|
|
85
|
+
for node in raw_nodes:
|
|
86
|
+
if not isinstance(node, Mapping):
|
|
87
|
+
continue
|
|
88
|
+
cleaned = _clean_json_value(node)
|
|
89
|
+
if isinstance(cleaned, dict):
|
|
90
|
+
cleaned_nodes.append(cleaned)
|
|
91
|
+
return cleaned_nodes
|
|
92
|
+
|
|
93
|
+
|
|
94
|
+
async def save_forward_snapshot(
|
|
95
|
+
*,
|
|
96
|
+
scope_key: str,
|
|
97
|
+
forward_id: str,
|
|
98
|
+
nodes: Any,
|
|
99
|
+
) -> bool:
|
|
100
|
+
"""保存合并转发节点快照;无有效节点时不写入。"""
|
|
101
|
+
normalized_scope = str(scope_key or "").strip()
|
|
102
|
+
normalized_forward_id = str(forward_id or "").strip()
|
|
103
|
+
if not normalized_scope or not normalized_forward_id:
|
|
104
|
+
return False
|
|
105
|
+
|
|
106
|
+
normalized_nodes = normalize_forward_nodes_for_snapshot(nodes)
|
|
107
|
+
if not normalized_nodes:
|
|
108
|
+
return False
|
|
109
|
+
|
|
110
|
+
payload = {
|
|
111
|
+
"scope_key": normalized_scope,
|
|
112
|
+
"forward_id": normalized_forward_id,
|
|
113
|
+
"created_at": datetime.now().isoformat(timespec="seconds"),
|
|
114
|
+
"nodes": normalized_nodes,
|
|
115
|
+
}
|
|
116
|
+
await io.write_json(
|
|
117
|
+
_snapshot_path(normalized_scope, normalized_forward_id),
|
|
118
|
+
payload,
|
|
119
|
+
use_lock=True,
|
|
120
|
+
)
|
|
121
|
+
return True
|
|
122
|
+
|
|
123
|
+
|
|
124
|
+
async def load_forward_snapshot(
|
|
125
|
+
*,
|
|
126
|
+
scope_key: str,
|
|
127
|
+
forward_id: str,
|
|
128
|
+
) -> list[dict[str, Any]]:
|
|
129
|
+
"""读取合并转发节点快照;不存在或格式不符时返回空列表。"""
|
|
130
|
+
normalized_scope = str(scope_key or "").strip()
|
|
131
|
+
normalized_forward_id = str(forward_id or "").strip()
|
|
132
|
+
if not normalized_scope or not normalized_forward_id:
|
|
133
|
+
return []
|
|
134
|
+
|
|
135
|
+
raw = await io.read_json(
|
|
136
|
+
_snapshot_path(normalized_scope, normalized_forward_id),
|
|
137
|
+
use_lock=False,
|
|
138
|
+
)
|
|
139
|
+
if not isinstance(raw, Mapping):
|
|
140
|
+
return []
|
|
141
|
+
if str(raw.get("scope_key", "") or "") != normalized_scope:
|
|
142
|
+
return []
|
|
143
|
+
if str(raw.get("forward_id", "") or "") != normalized_forward_id:
|
|
144
|
+
return []
|
|
145
|
+
return normalize_forward_nodes_for_snapshot(raw.get("nodes"))
|
|
146
|
+
|
|
147
|
+
|
|
148
|
+
def _extract_forward_id(data: Mapping[str, Any]) -> str:
|
|
149
|
+
forward_id = data.get("id") or data.get("resid") or data.get("message_id")
|
|
150
|
+
return str(forward_id).strip() if forward_id is not None else ""
|
|
151
|
+
|
|
152
|
+
|
|
153
|
+
def _normalize_message_segments(message: Any) -> list[Mapping[str, Any]]:
|
|
154
|
+
if isinstance(message, list):
|
|
155
|
+
return [item for item in message if isinstance(item, Mapping)]
|
|
156
|
+
if isinstance(message, Mapping):
|
|
157
|
+
return [message]
|
|
158
|
+
if isinstance(message, str):
|
|
159
|
+
return [{"type": "text", "data": {"text": message}}]
|
|
160
|
+
return []
|
|
161
|
+
|
|
162
|
+
|
|
163
|
+
def _iter_nested_forward_ids(nodes: list[dict[str, Any]]) -> list[str]:
|
|
164
|
+
forward_ids: list[str] = []
|
|
165
|
+
seen: set[str] = set()
|
|
166
|
+
for node in nodes:
|
|
167
|
+
raw_message = (
|
|
168
|
+
node.get("content") or node.get("message") or node.get("raw_message")
|
|
169
|
+
)
|
|
170
|
+
for segment in _normalize_message_segments(raw_message):
|
|
171
|
+
if str(segment.get("type", "") or "").strip().lower() != "forward":
|
|
172
|
+
continue
|
|
173
|
+
raw_data = segment.get("data", {})
|
|
174
|
+
data = raw_data if isinstance(raw_data, Mapping) else {}
|
|
175
|
+
forward_id = _extract_forward_id(data)
|
|
176
|
+
if forward_id and forward_id not in seen:
|
|
177
|
+
seen.add(forward_id)
|
|
178
|
+
forward_ids.append(forward_id)
|
|
179
|
+
return forward_ids
|
|
180
|
+
|
|
181
|
+
|
|
182
|
+
async def snapshot_forward_tree(
|
|
183
|
+
*,
|
|
184
|
+
scope_key: str,
|
|
185
|
+
forward_id: str,
|
|
186
|
+
get_forward_messages: Callable[[str], Awaitable[Any]],
|
|
187
|
+
max_depth: int = _MAX_RECURSIVE_SNAPSHOT_DEPTH,
|
|
188
|
+
max_nodes: int = _MAX_RECURSIVE_SNAPSHOT_NODES,
|
|
189
|
+
) -> None:
|
|
190
|
+
"""递归抓取并保存当前可访问的合并转发树。
|
|
191
|
+
|
|
192
|
+
同一 ``scope_key + forward_id`` 在进程内会合并并发抓取,避免多个消息或
|
|
193
|
+
工具调用同时触发同一层 OneBot 请求。
|
|
194
|
+
"""
|
|
195
|
+
normalized_scope = str(scope_key or "").strip()
|
|
196
|
+
normalized_forward_id = str(forward_id or "").strip()
|
|
197
|
+
if not normalized_scope or not normalized_forward_id:
|
|
198
|
+
return
|
|
199
|
+
if max_depth < 0 or max_nodes <= 0:
|
|
200
|
+
return
|
|
201
|
+
|
|
202
|
+
root_key = _snapshot_key(normalized_scope, normalized_forward_id)
|
|
203
|
+
inflight = _snapshot_inflight.get(root_key)
|
|
204
|
+
if inflight is not None and not inflight.done():
|
|
205
|
+
await asyncio.shield(inflight)
|
|
206
|
+
return
|
|
207
|
+
|
|
208
|
+
async def _run() -> None:
|
|
209
|
+
visited: set[str] = set()
|
|
210
|
+
remaining = max_nodes
|
|
211
|
+
|
|
212
|
+
async def _walk(current_forward_id: str, depth: int) -> None:
|
|
213
|
+
nonlocal remaining
|
|
214
|
+
normalized_current_id = str(current_forward_id or "").strip()
|
|
215
|
+
if not normalized_current_id:
|
|
216
|
+
return
|
|
217
|
+
if depth > max_depth or remaining <= 0:
|
|
218
|
+
return
|
|
219
|
+
if normalized_current_id in visited:
|
|
220
|
+
return
|
|
221
|
+
visited.add(normalized_current_id)
|
|
222
|
+
remaining -= 1
|
|
223
|
+
|
|
224
|
+
lock_key, lock = _snapshot_lock(normalized_scope, normalized_current_id)
|
|
225
|
+
try:
|
|
226
|
+
async with lock:
|
|
227
|
+
nodes: list[dict[str, Any]] = []
|
|
228
|
+
try:
|
|
229
|
+
nodes = await load_forward_snapshot(
|
|
230
|
+
scope_key=normalized_scope,
|
|
231
|
+
forward_id=normalized_current_id,
|
|
232
|
+
)
|
|
233
|
+
except Exception:
|
|
234
|
+
logger.debug(
|
|
235
|
+
"读取合并转发快照失败,将尝试回源: id=%s",
|
|
236
|
+
normalized_current_id,
|
|
237
|
+
exc_info=True,
|
|
238
|
+
)
|
|
239
|
+
if not nodes:
|
|
240
|
+
try:
|
|
241
|
+
raw_nodes = await get_forward_messages(
|
|
242
|
+
normalized_current_id
|
|
243
|
+
)
|
|
244
|
+
except Exception:
|
|
245
|
+
logger.debug(
|
|
246
|
+
"递归缓存合并转发失败: id=%s",
|
|
247
|
+
normalized_current_id,
|
|
248
|
+
exc_info=True,
|
|
249
|
+
)
|
|
250
|
+
return
|
|
251
|
+
nodes = normalize_forward_nodes_for_snapshot(raw_nodes)
|
|
252
|
+
if not nodes:
|
|
253
|
+
return
|
|
254
|
+
try:
|
|
255
|
+
await save_forward_snapshot(
|
|
256
|
+
scope_key=normalized_scope,
|
|
257
|
+
forward_id=normalized_current_id,
|
|
258
|
+
nodes=nodes,
|
|
259
|
+
)
|
|
260
|
+
except Exception:
|
|
261
|
+
logger.debug(
|
|
262
|
+
"写入合并转发快照失败: id=%s",
|
|
263
|
+
normalized_current_id,
|
|
264
|
+
exc_info=True,
|
|
265
|
+
)
|
|
266
|
+
finally:
|
|
267
|
+
_release_snapshot_lock(lock_key, lock)
|
|
268
|
+
|
|
269
|
+
if depth >= max_depth:
|
|
270
|
+
return
|
|
271
|
+
for nested_forward_id in _iter_nested_forward_ids(nodes):
|
|
272
|
+
if remaining <= 0:
|
|
273
|
+
break
|
|
274
|
+
await _walk(nested_forward_id, depth + 1)
|
|
275
|
+
|
|
276
|
+
await _walk(normalized_forward_id, 0)
|
|
277
|
+
|
|
278
|
+
task = asyncio.create_task(_run())
|
|
279
|
+
_snapshot_inflight[root_key] = task
|
|
280
|
+
|
|
281
|
+
def _forget(done: asyncio.Task[None]) -> None:
|
|
282
|
+
if _snapshot_inflight.get(root_key) is done:
|
|
283
|
+
_snapshot_inflight.pop(root_key, None)
|
|
284
|
+
|
|
285
|
+
task.add_done_callback(_forget)
|
|
286
|
+
await asyncio.shield(task)
|
|
@@ -16,6 +16,10 @@ from urllib.parse import unquote, urlsplit
|
|
|
16
16
|
|
|
17
17
|
import httpx
|
|
18
18
|
|
|
19
|
+
from Undefined.attachments.forward_snapshot import (
|
|
20
|
+
load_forward_snapshot,
|
|
21
|
+
snapshot_forward_tree,
|
|
22
|
+
)
|
|
19
23
|
from Undefined.attachments.models import RegisteredMessageAttachments
|
|
20
24
|
from Undefined.utils.paths import WEBUI_FILE_CACHE_DIR
|
|
21
25
|
from Undefined.utils.xml import escape_xml_attr
|
|
@@ -362,6 +366,8 @@ async def register_message_attachments(
|
|
|
362
366
|
| None = None,
|
|
363
367
|
register_forward_refs: bool = False,
|
|
364
368
|
expand_forward_attachments: bool = True,
|
|
369
|
+
snapshot_forward_messages: bool = False,
|
|
370
|
+
snapshot_nested_forward_messages: bool = False,
|
|
365
371
|
) -> RegisteredMessageAttachments:
|
|
366
372
|
"""扫描消息段并将图片/文件注册到 ``AttachmentRegistry``。
|
|
367
373
|
|
|
@@ -373,6 +379,8 @@ async def register_message_attachments(
|
|
|
373
379
|
get_forward_messages: 可选,拉取合并转发子消息。
|
|
374
380
|
register_forward_refs: 是否将顶层合并转发注册为 ``forward_`` 引用。
|
|
375
381
|
expand_forward_attachments: 是否递归扫描合并转发内的附件。
|
|
382
|
+
snapshot_forward_messages: 是否读取合并转发并递归缓存可访问的节点快照。
|
|
383
|
+
snapshot_nested_forward_messages: 向后兼容参数;递归缓存已覆盖内层转发。
|
|
376
384
|
|
|
377
385
|
Returns:
|
|
378
386
|
已注册附件引用与归一化纯文本。
|
|
@@ -392,6 +400,22 @@ async def register_message_attachments(
|
|
|
392
400
|
)
|
|
393
401
|
|
|
394
402
|
visited_forward_ids: set[str] = set()
|
|
403
|
+
should_snapshot_forward_messages = (
|
|
404
|
+
snapshot_forward_messages or snapshot_nested_forward_messages
|
|
405
|
+
)
|
|
406
|
+
|
|
407
|
+
async def _fetch_forward_nodes(forward_id: str) -> list[Mapping[str, Any]]:
|
|
408
|
+
if get_forward_messages is None:
|
|
409
|
+
return []
|
|
410
|
+
try:
|
|
411
|
+
return _normalize_forward_nodes(await get_forward_messages(forward_id))
|
|
412
|
+
except Exception as exc:
|
|
413
|
+
logger.debug(
|
|
414
|
+
"[AttachmentRegistry] forward resolver failed: id=%s err=%s",
|
|
415
|
+
forward_id,
|
|
416
|
+
exc,
|
|
417
|
+
)
|
|
418
|
+
return []
|
|
395
419
|
|
|
396
420
|
async def _collect_from_segments(
|
|
397
421
|
current_segments: Sequence[Mapping[str, Any]],
|
|
@@ -543,6 +567,7 @@ async def register_message_attachments(
|
|
|
543
567
|
elif type_ == "forward":
|
|
544
568
|
# 合并转发递归展开,深度上限防止无限嵌套
|
|
545
569
|
forward_id = _extract_forward_id(data)
|
|
570
|
+
forward_nodes: Sequence[Mapping[str, Any]] = []
|
|
546
571
|
if register_forward_refs and depth == 0 and forward_id:
|
|
547
572
|
register_forward = getattr(
|
|
548
573
|
registry,
|
|
@@ -559,26 +584,56 @@ async def register_message_attachments(
|
|
|
559
584
|
)
|
|
560
585
|
ref = record.prompt_ref()
|
|
561
586
|
|
|
587
|
+
should_fetch_forward = (
|
|
588
|
+
get_forward_messages is not None
|
|
589
|
+
and forward_id
|
|
590
|
+
and forward_id not in visited_forward_ids
|
|
591
|
+
and (
|
|
592
|
+
should_snapshot_forward_messages
|
|
593
|
+
or (
|
|
594
|
+
expand_forward_attachments
|
|
595
|
+
and depth < _FORWARD_ATTACHMENT_MAX_DEPTH
|
|
596
|
+
)
|
|
597
|
+
)
|
|
598
|
+
)
|
|
599
|
+
if should_fetch_forward:
|
|
600
|
+
assert get_forward_messages is not None
|
|
601
|
+
visited_forward_ids.add(forward_id)
|
|
602
|
+
if should_snapshot_forward_messages:
|
|
603
|
+
try:
|
|
604
|
+
await snapshot_forward_tree(
|
|
605
|
+
scope_key=scope_key,
|
|
606
|
+
forward_id=forward_id,
|
|
607
|
+
get_forward_messages=get_forward_messages,
|
|
608
|
+
)
|
|
609
|
+
except Exception:
|
|
610
|
+
logger.debug(
|
|
611
|
+
"[AttachmentRegistry] forward snapshot failed: id=%s",
|
|
612
|
+
forward_id,
|
|
613
|
+
exc_info=True,
|
|
614
|
+
)
|
|
615
|
+
forward_nodes = await load_forward_snapshot(
|
|
616
|
+
scope_key=scope_key,
|
|
617
|
+
forward_id=forward_id,
|
|
618
|
+
)
|
|
619
|
+
if not forward_nodes:
|
|
620
|
+
forward_nodes = await _fetch_forward_nodes(forward_id)
|
|
621
|
+
else:
|
|
622
|
+
forward_nodes = await _fetch_forward_nodes(forward_id)
|
|
623
|
+
|
|
562
624
|
if (
|
|
563
625
|
expand_forward_attachments
|
|
564
626
|
and get_forward_messages is not None
|
|
565
627
|
and depth < _FORWARD_ATTACHMENT_MAX_DEPTH
|
|
566
628
|
and forward_id
|
|
567
|
-
and forward_id not in visited_forward_ids
|
|
568
629
|
):
|
|
569
|
-
|
|
570
|
-
|
|
571
|
-
|
|
572
|
-
await
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
"[AttachmentRegistry] forward resolver failed: id=%s err=%s",
|
|
577
|
-
forward_id,
|
|
578
|
-
exc,
|
|
579
|
-
)
|
|
580
|
-
nodes = []
|
|
581
|
-
for node_index, node in enumerate(nodes):
|
|
630
|
+
if not forward_nodes:
|
|
631
|
+
if forward_id not in visited_forward_ids:
|
|
632
|
+
visited_forward_ids.add(forward_id)
|
|
633
|
+
forward_nodes = await _fetch_forward_nodes(forward_id)
|
|
634
|
+
if not forward_nodes:
|
|
635
|
+
continue
|
|
636
|
+
for node_index, node in enumerate(forward_nodes):
|
|
582
637
|
raw_message = (
|
|
583
638
|
node.get("content")
|
|
584
639
|
or node.get("message")
|
|
@@ -299,6 +299,7 @@ class MessageHandler(PokeMixin, RepeatMixin, AutoExtractMixin):
|
|
|
299
299
|
else None,
|
|
300
300
|
register_forward_refs=True,
|
|
301
301
|
expand_forward_attachments=False,
|
|
302
|
+
snapshot_forward_messages=True,
|
|
302
303
|
)
|
|
303
304
|
attachments = result.attachments
|
|
304
305
|
# 命中表情库时为 AI 上下文补充 [表情包] 描述
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
- 超大文件、乱码、缺页、格式损坏或工具无法解析时,如实说明影响,并尽量给出已能提取的部分。
|
|
7
7
|
|
|
8
8
|
附件输入规则:
|
|
9
|
-
- 用户上下文里有内部附件 UID(如 `pic_xxx` / `file_xxx
|
|
9
|
+
- 用户上下文里有内部附件 UID(如 `pic_xxx` / `file_xxx`)时,优先使用该 UID,不要改写成文件名或 URL。
|
|
10
10
|
- 没有内部 UID 时,才使用显式 URL、legacy `file_id`、arXiv 标识或 Bilibili 标识。
|
|
11
11
|
- 不要臆造、改写或猜测附件 UID。
|
|
12
12
|
|
|
@@ -15,6 +15,7 @@
|
|
|
15
15
|
- 如果文件源是 Bilibili BV 号、AV 号、B 站视频链接或 b23.tv 短链,先调用共享工具 `bilibili_video`,设置 `output_mode="uid"`,拿到 `<attachment uid="file_xxx"/>` 后再按普通视频 UID 下载和分析。
|
|
16
16
|
- 已经给出内部附件 UID 时,不要再调用 arXiv/Bilibili 获取工具。
|
|
17
17
|
- 根据用户目标选择合适工具:文本读取、文件类型检测、PDF/Office/表格/代码/压缩包/多模态分析都按内容类型处理。
|
|
18
|
+
- `analyze_multimodal` 支持直接传入内部附件 UID;其他需要本地路径的工具应先调用 `download_file` 将 UID 转成本地临时文件路径。
|
|
18
19
|
- PDF 文本和元数据优先用 `extract_pdf`;扫描版、图表、版式、公式图、截图式页面或用户指定页码时,用 `describe_pdf_page` 做逐页视觉分析。
|
|
19
20
|
- `describe_pdf_page` 支持页码范围,例如 `3`、`3-5`、`3,5,8-10`;单次最多 5 页,范围过大时请缩小。
|
|
20
21
|
- 对图片和多模态文件,重点报告客观可见信息,例如文字、UI、场景、人物、角色、应用/游戏名称和关键元素。
|