Undefined-bot 3.16.1__tar.gz → 3.17.1__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.16.1 → undefined_bot-3.17.1}/.gitignore +5 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/ARCHITECTURE.md +1 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/CHANGELOG.md +33 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/PKG-INFO +50 -21
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/README.md +49 -20
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/config.toml.example +11 -8
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/pyproject.toml +2 -1
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/__init__.py +1 -1
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/ai/client/setup.py +6 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/attachments/registry.py +28 -17
- undefined_bot-3.17.1/src/Undefined/attachments/remote.py +242 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/attachments/segments.py +19 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/bilibili/format.py +8 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/bilibili/opus_sender.py +50 -12
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/config/config_class.py +1 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/config/env_registry.py +4 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/config/hot_reload.py +1 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/config/load_sections/history_skills.py +8 -0
- undefined_bot-3.17.1/src/Undefined/deploy/__init__.py +12 -0
- undefined_bot-3.17.1/src/Undefined/deploy/__main__.py +8 -0
- undefined_bot-3.17.1/src/Undefined/deploy/catalog.py +294 -0
- undefined_bot-3.17.1/src/Undefined/deploy/cli.py +296 -0
- undefined_bot-3.17.1/src/Undefined/deploy/commands.py +26 -0
- undefined_bot-3.17.1/src/Undefined/deploy/config_patch.py +258 -0
- undefined_bot-3.17.1/src/Undefined/deploy/docker_cli.py +331 -0
- undefined_bot-3.17.1/src/Undefined/deploy/generate.py +693 -0
- undefined_bot-3.17.1/src/Undefined/deploy/images.py +189 -0
- undefined_bot-3.17.1/src/Undefined/deploy/nagaagent.py +211 -0
- undefined_bot-3.17.1/src/Undefined/deploy/runner.py +906 -0
- undefined_bot-3.17.1/src/Undefined/deploy/state.py +284 -0
- undefined_bot-3.17.1/src/Undefined/deploy/templates/.dockerignore +54 -0
- undefined_bot-3.17.1/src/Undefined/deploy/templates/Dockerfile.bot +91 -0
- undefined_bot-3.17.1/src/Undefined/deploy/templates/compose.base.yaml +14 -0
- undefined_bot-3.17.1/src/Undefined/deploy/templates/compose.bot.yaml +52 -0
- undefined_bot-3.17.1/src/Undefined/deploy/templates/compose.firecrawl.yaml +131 -0
- undefined_bot-3.17.1/src/Undefined/deploy/templates/compose.lxmusic2api.yaml +35 -0
- undefined_bot-3.17.1/src/Undefined/deploy/templates/compose.napcat.yaml +35 -0
- undefined_bot-3.17.1/src/Undefined/deploy/templates/compose.searxng.yaml +33 -0
- undefined_bot-3.17.1/src/Undefined/deploy/templates/lxmusic2api.config.toml +29 -0
- undefined_bot-3.17.1/src/Undefined/deploy/templates/napcat.ws.json +26 -0
- undefined_bot-3.17.1/src/Undefined/deploy/templates/searxng.settings.yml +27 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/douyin/parser.py +11 -4
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/render.py +80 -1
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/README.md +1 -1
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/agents/file_analysis_agent/README.md +1 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/agents/file_analysis_agent/tools/download_file/handler.py +3 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/registry.py +19 -8
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/tools/bilibili_opus/README.md +1 -1
- undefined_bot-3.17.1/src/Undefined/skills/toolsets/render/README.md +24 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/toolsets/render/layout.py +3 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/toolsets/render/render_html/config.json +1 -1
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/toolsets/render/render_markdown/config.json +1 -1
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/utils/render_cache.py +2 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/utils/sender.py +187 -5
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/webui/core.py +10 -1
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/webui/static/js/runtime.js +44 -1
- undefined_bot-3.16.1/src/Undefined/skills/toolsets/render/README.md +0 -20
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/LICENSE +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/config/README.md +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/config/mcp.json.example +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/img/undefined-9527.png +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/img/xlwy.jpg +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/res/IMPORTANT/each.md +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/res/README.md +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/res/prompts/agent_self_intro.txt +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/res/prompts/analyze_multimodal.txt +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/res/prompts/describe_image.txt +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/res/prompts/describe_meme_image.txt +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/res/prompts/generate_title.txt +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/res/prompts/historian_profile_merge.md +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/res/prompts/historian_rewrite.md +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/res/prompts/image_gen_moderation.txt +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/res/prompts/injection_detector.txt +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/res/prompts/injection_response_agent.txt +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/res/prompts/judge_meme_image.txt +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/res/prompts/merge_message_summaries.txt +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/res/prompts/merge_summaries.txt +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/res/prompts/message_summary.txt +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/res/prompts/naga_message_moderation.txt +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/res/prompts/stats_analysis.txt +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/res/prompts/summarize.txt +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/res/prompts/undefined.xml +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/res/prompts/undefined_nagaagent.xml +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/README.md +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/README.md +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/__main__.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/ai/__init__.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/ai/client/__init__.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/ai/client/ask_loop.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/ai/client/queue.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/ai/crawl4ai_support.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/ai/http.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/ai/llm/__init__.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/ai/llm/requester.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/ai/llm/retry.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/ai/llm/sanitize.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/ai/llm/streaming.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/ai/llm/thinking.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/ai/llm/types.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/ai/model_selector.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/ai/multimodal/__init__.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/ai/multimodal/analyzer.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/ai/multimodal/constants.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/ai/multimodal/detection.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/ai/multimodal/parsing.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/ai/parsing.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/ai/prompts/__init__.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/ai/prompts/builder.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/ai/prompts/cognitive.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/ai/prompts/constants.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/ai/prompts/current_input.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/ai/prompts/file_includes.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/ai/prompts/system_context.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/ai/prompts/system_info.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/ai/queue_budget.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/ai/retrieval.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/ai/summaries.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/ai/tokens.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/ai/tool_search.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/ai/tooling.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/ai/transports/__init__.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/ai/transports/anthropic_transport.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/ai/transports/openai_transport.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/ai/transports/replay.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/api/__init__.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/api/_context.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/api/_helpers.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/api/_naga_state.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/api/_openapi.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/api/_probes.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/api/app.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/api/naga_store.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/api/routes/__init__.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/api/routes/automations.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/api/routes/chat.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/api/routes/cognitive.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/api/routes/commands.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/api/routes/health.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/api/routes/memes.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/api/routes/memory.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/api/routes/naga/__init__.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/api/routes/naga/auth.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/api/routes/naga/bind.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/api/routes/naga/send.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/api/routes/naga/unbind.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/api/routes/onebot_files.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/api/routes/schedules.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/api/routes/system.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/api/routes/tools.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/api/routes/weixin.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/api/webchat_store.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/arxiv/__init__.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/arxiv/client.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/arxiv/downloader.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/arxiv/models.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/arxiv/parser.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/arxiv/sender.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/attachments/__init__.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/attachments/forward_snapshot.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/attachments/models.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/attachments/render.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/automations/__init__.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/automations/address.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/automations/catalog.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/automations/clock.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/automations/constants.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/automations/engine.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/automations/extract.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/automations/logutil.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/automations/match.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/automations/mentions.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/automations/migrate.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/automations/runner.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/automations/service.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/automations/short.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/automations/storage.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/automations/template.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/automations/triggers.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/automations/validate.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/bilibili/__init__.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/bilibili/api_client.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/bilibili/danmaku.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/bilibili/download_core.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/bilibili/downloader.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/bilibili/errors.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/bilibili/models.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/bilibili/opus_parser.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/bilibili/opus_render.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/bilibili/parser.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/bilibili/sender.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/bilibili/wbi.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/bilibili/wbi_request.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/changelog.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/cognitive/__init__.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/cognitive/chroma_scheduler.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/cognitive/historian/__init__.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/cognitive/historian/helpers.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/cognitive/historian/tools.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/cognitive/historian/worker.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/cognitive/job_queue.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/cognitive/profile_storage.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/cognitive/service/__init__.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/cognitive/service/helpers.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/cognitive/service/service.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/cognitive/vector_store.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/cognitive/vector_store_compat.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/config/__init__.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/config/admin.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/config/api_modes.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/config/build_config.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/config/coercers.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/config/domain_parsers.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/config/load_sections/__init__.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/config/load_sections/access.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/config/load_sections/core.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/config/load_sections/domains.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/config/load_sections/finalize.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/config/load_sections/integrations.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/config/load_sections/knowledge.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/config/load_sections/logging_tools.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/config/load_sections/models.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/config/load_sections/network.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/config/loader.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/config/manager.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/config/model_parsers.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/config/models.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/config/naga_policy.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/config/onebot.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/config/parsers/__init__.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/config/parsers/agent.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/config/parsers/chat.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/config/parsers/embedding.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/config/parsers/grok.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/config/parsers/helpers.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/config/parsers/historian.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/config/parsers/image.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/config/parsers/naga.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/config/parsers/pool.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/config/parsers/security.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/config/parsers/summary.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/config/parsers/vision.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/config/resolvers.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/config/search.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/config/toml_io.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/config/webui_settings.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/context.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/context_resource_registry.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/douyin/__init__.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/douyin/client.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/douyin/downloader.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/douyin/models.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/douyin/sender.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/end_summary_storage.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/faq.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/github/__init__.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/github/client.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/github/models.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/github/parser.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/github/sender.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/handlers/__init__.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/handlers/auto_extract.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/handlers/message_flow.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/handlers/poke.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/handlers/repeat.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/injection_response_agent.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/knowledge/__init__.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/knowledge/chunker.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/knowledge/embedder.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/knowledge/manager.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/knowledge/reranker.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/knowledge/runtime.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/knowledge/store.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/main.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/mcp/__init__.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/mcp/registry.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/memes/__init__.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/memes/_image_utils.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/memes/ingest.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/memes/models.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/memes/search.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/memes/service.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/memes/store.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/memes/vector_store.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/memes/worker.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/memory.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/onebot/__init__.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/onebot/client.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/onebot/file_errors.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/onebot/file_references.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/onebot/file_store.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/onebot/file_transport.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/onebot/message.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/py.typed +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/rate_limit.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/services/__init__.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/services/bugfix_command.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/services/command.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/services/commands/__init__.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/services/commands/catalog.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/services/commands/context.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/services/commands/registry.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/services/coordinator/__init__.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/services/coordinator/background.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/services/coordinator/batching.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/services/coordinator/group.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/services/coordinator/message_ids.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/services/coordinator/private.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/services/message_batcher/__init__.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/services/message_batcher/scheduler.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/services/message_batcher/state.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/services/message_summary_fetch.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/services/model_pool.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/services/queue_manager.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/services/security.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/services/stats_command.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/__init__.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/agents/README.md +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/agents/__init__.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/agents/agent_tool_registry.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/agents/code_delivery_agent/config.json +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/agents/code_delivery_agent/docker_utils.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/agents/code_delivery_agent/handler.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/agents/code_delivery_agent/intro.md +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/agents/code_delivery_agent/mcp.json +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/agents/code_delivery_agent/prompt.md +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/agents/code_delivery_agent/tools/copy/config.json +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/agents/code_delivery_agent/tools/copy/handler.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/agents/code_delivery_agent/tools/delete/config.json +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/agents/code_delivery_agent/tools/delete/handler.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/agents/code_delivery_agent/tools/diff/config.json +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/agents/code_delivery_agent/tools/diff/handler.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/agents/code_delivery_agent/tools/end/config.json +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/agents/code_delivery_agent/tools/end/handler.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/agents/code_delivery_agent/tools/glob/config.json +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/agents/code_delivery_agent/tools/glob/handler.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/agents/code_delivery_agent/tools/grep/config.json +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/agents/code_delivery_agent/tools/grep/handler.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/agents/code_delivery_agent/tools/init_docker/config.json +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/agents/code_delivery_agent/tools/init_docker/handler.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/agents/code_delivery_agent/tools/read/config.json +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/agents/code_delivery_agent/tools/read/handler.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/agents/code_delivery_agent/tools/run_bash_command/config.json +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/agents/code_delivery_agent/tools/run_bash_command/handler.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/agents/code_delivery_agent/tools/todo/config.json +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/agents/code_delivery_agent/tools/todo/handler.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/agents/code_delivery_agent/tools/tree/config.json +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/agents/code_delivery_agent/tools/tree/handler.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/agents/code_delivery_agent/tools/write/config.json +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/agents/code_delivery_agent/tools/write/handler.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/agents/entertainment_agent/README.md +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/agents/entertainment_agent/config.json +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/agents/entertainment_agent/handler.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/agents/entertainment_agent/intro.md +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/agents/entertainment_agent/prompt.md +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/agents/entertainment_agent/tools/__init__.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/agents/entertainment_agent/tools/ai_draw_one/config.json +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/agents/entertainment_agent/tools/ai_draw_one/handler.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/agents/entertainment_agent/tools/horoscope/config.json +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/agents/entertainment_agent/tools/horoscope/handler.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/agents/entertainment_agent/tools/minecraft_skin/config.json +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/agents/entertainment_agent/tools/minecraft_skin/handler.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/agents/entertainment_agent/tools/renjian/config.json +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/agents/entertainment_agent/tools/renjian/handler.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/agents/entertainment_agent/tools/wenchang_dijun/config.json +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/agents/entertainment_agent/tools/wenchang_dijun/handler.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/agents/file_analysis_agent/__init__.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/agents/file_analysis_agent/config.json +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/agents/file_analysis_agent/handler.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/agents/file_analysis_agent/intro.md +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/agents/file_analysis_agent/prompt.md +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/agents/file_analysis_agent/tools/__init__.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/agents/file_analysis_agent/tools/analyze_code/config.json +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/agents/file_analysis_agent/tools/analyze_code/handler.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/agents/file_analysis_agent/tools/analyze_multimodal/config.json +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/agents/file_analysis_agent/tools/analyze_multimodal/handler.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/agents/file_analysis_agent/tools/cleanup_temp/config.json +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/agents/file_analysis_agent/tools/cleanup_temp/handler.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/agents/file_analysis_agent/tools/describe_pdf_page/config.json +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/agents/file_analysis_agent/tools/describe_pdf_page/handler.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/agents/file_analysis_agent/tools/detect_file_type/config.json +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/agents/file_analysis_agent/tools/detect_file_type/handler.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/agents/file_analysis_agent/tools/download_file/config.json +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/agents/file_analysis_agent/tools/extract_archive/config.json +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/agents/file_analysis_agent/tools/extract_archive/handler.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/agents/file_analysis_agent/tools/extract_docx/config.json +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/agents/file_analysis_agent/tools/extract_docx/handler.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/agents/file_analysis_agent/tools/extract_pdf/config.json +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/agents/file_analysis_agent/tools/extract_pdf/handler.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/agents/file_analysis_agent/tools/extract_pptx/config.json +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/agents/file_analysis_agent/tools/extract_pptx/handler.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/agents/file_analysis_agent/tools/extract_xlsx/config.json +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/agents/file_analysis_agent/tools/extract_xlsx/handler.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/agents/file_analysis_agent/tools/read_text_file/config.json +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/agents/file_analysis_agent/tools/read_text_file/handler.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/agents/info_agent/README.md +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/agents/info_agent/config.json +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/agents/info_agent/handler.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/agents/info_agent/intro.md +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/agents/info_agent/prompt.md +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/agents/info_agent/tools/__init__.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/agents/info_agent/tools/arxiv_search/config.json +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/agents/info_agent/tools/arxiv_search/handler.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/agents/info_agent/tools/baiduhot/config.json +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/agents/info_agent/tools/baiduhot/handler.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/agents/info_agent/tools/base64/config.json +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/agents/info_agent/tools/base64/handler.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/agents/info_agent/tools/bilibili_search/config.json +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/agents/info_agent/tools/bilibili_search/handler.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/agents/info_agent/tools/bilibili_user_info/config.json +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/agents/info_agent/tools/bilibili_user_info/handler.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/agents/info_agent/tools/douyinhot/config.json +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/agents/info_agent/tools/douyinhot/handler.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/agents/info_agent/tools/gold_price/config.json +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/agents/info_agent/tools/gold_price/handler.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/agents/info_agent/tools/hash/config.json +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/agents/info_agent/tools/hash/handler.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/agents/info_agent/tools/history/config.json +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/agents/info_agent/tools/history/handler.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/agents/info_agent/tools/net_check/config.json +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/agents/info_agent/tools/net_check/handler.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/agents/info_agent/tools/qq_level_query/config.json +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/agents/info_agent/tools/qq_level_query/handler.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/agents/info_agent/tools/speed/config.json +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/agents/info_agent/tools/speed/handler.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/agents/info_agent/tools/tcping/config.json +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/agents/info_agent/tools/tcping/handler.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/agents/info_agent/tools/weather_query/config.json +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/agents/info_agent/tools/weather_query/handler.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/agents/info_agent/tools/weibohot/config.json +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/agents/info_agent/tools/weibohot/handler.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/agents/info_agent/tools/whois/config.json +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/agents/info_agent/tools/whois/handler.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/agents/intro_generator.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/agents/intro_utils.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/agents/naga_code_analysis_agent/README.md +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/agents/naga_code_analysis_agent/config.json +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/agents/naga_code_analysis_agent/handler.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/agents/naga_code_analysis_agent/intro.md +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/agents/naga_code_analysis_agent/mcp.json +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/agents/naga_code_analysis_agent/prompt.md +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/agents/naga_code_analysis_agent/tools/__init__.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/agents/naga_code_analysis_agent/tools/glob/config.json +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/agents/naga_code_analysis_agent/tools/glob/handler.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/agents/naga_code_analysis_agent/tools/list_directory/config.json +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/agents/naga_code_analysis_agent/tools/list_directory/handler.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/agents/naga_code_analysis_agent/tools/read_file/config.json +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/agents/naga_code_analysis_agent/tools/read_file/handler.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/agents/naga_code_analysis_agent/tools/read_naga_intro/config.json +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/agents/naga_code_analysis_agent/tools/read_naga_intro/handler.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/agents/naga_code_analysis_agent/tools/search_file_content/config.json +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/agents/naga_code_analysis_agent/tools/search_file_content/handler.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/agents/runner/__init__.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/agents/runner/context.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/agents/runner/loop.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/agents/runner/tools.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/agents/runner/webchat_utils.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/agents/summary_agent/__init__.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/agents/summary_agent/config.json +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/agents/summary_agent/handler.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/agents/summary_agent/intro.md +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/agents/summary_agent/prompt.md +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/agents/summary_agent/tools/__init__.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/agents/summary_agent/tools/fetch_messages/config.json +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/agents/summary_agent/tools/fetch_messages/handler.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/agents/undefined_self_code_agent/README.md +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/agents/undefined_self_code_agent/__init__.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/agents/undefined_self_code_agent/config.json +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/agents/undefined_self_code_agent/handler.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/agents/undefined_self_code_agent/intro.md +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/agents/undefined_self_code_agent/prompt.md +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/agents/undefined_self_code_agent/tools/__init__.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/agents/undefined_self_code_agent/tools/_shared.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/agents/undefined_self_code_agent/tools/glob/config.json +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/agents/undefined_self_code_agent/tools/glob/handler.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/agents/undefined_self_code_agent/tools/list_directory/config.json +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/agents/undefined_self_code_agent/tools/list_directory/handler.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/agents/undefined_self_code_agent/tools/read_file/config.json +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/agents/undefined_self_code_agent/tools/read_file/handler.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/agents/undefined_self_code_agent/tools/search_file_content/config.json +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/agents/undefined_self_code_agent/tools/search_file_content/handler.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/agents/web_agent/README.md +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/agents/web_agent/callable.json +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/agents/web_agent/config.json +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/agents/web_agent/handler.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/agents/web_agent/intro.md +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/agents/web_agent/mcp.json +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/agents/web_agent/prompt.md +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/agents/web_agent/tools/__init__.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/agents/web_agent/tools/crawl_webpage/config.json +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/agents/web_agent/tools/crawl_webpage/handler.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/agents/web_agent/tools/firecrawl_search/config.json +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/agents/web_agent/tools/firecrawl_search/handler.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/agents/web_agent/tools/grok_search/config.json +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/agents/web_agent/tools/grok_search/handler.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/agents/web_agent/tools/web_search/config.json +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/agents/web_agent/tools/web_search/handler.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/anthropic_skills/__init__.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/anthropic_skills/loader.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/commands/README.md +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/commands/admin/README.md +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/commands/admin/config.json +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/commands/admin/handler.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/commands/bugfix/README.md +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/commands/bugfix/config.json +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/commands/bugfix/handler.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/commands/changelog/README.md +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/commands/changelog/config.json +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/commands/changelog/handler.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/commands/copyright/README.md +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/commands/copyright/config.json +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/commands/copyright/handler.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/commands/faq/README.md +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/commands/faq/config.json +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/commands/faq/handler.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/commands/feedback/README.md +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/commands/feedback/config.json +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/commands/feedback/handler.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/commands/help/README.md +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/commands/help/config.json +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/commands/help/handler.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/commands/naga/README.md +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/commands/naga/config.json +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/commands/naga/handler.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/commands/naga/policy.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/commands/profile/README.md +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/commands/profile/config.json +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/commands/profile/handler.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/commands/stats/README.md +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/commands/stats/config.json +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/commands/stats/handler.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/commands/summary/README.md +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/commands/summary/config.json +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/commands/summary/handler.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/commands/version/README.md +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/commands/version/config.json +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/commands/version/handler.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/http_client.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/http_config.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/pipelines/__init__.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/pipelines/arxiv/config.json +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/pipelines/arxiv/handler.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/pipelines/bilibili/config.json +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/pipelines/bilibili/handler.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/pipelines/bilibili_opus/config.json +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/pipelines/bilibili_opus/handler.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/pipelines/context.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/pipelines/douyin/config.json +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/pipelines/douyin/handler.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/pipelines/github/config.json +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/pipelines/github/handler.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/pipelines/models.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/pipelines/registry.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/shared.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/tools/README.md +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/tools/__init__.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/tools/arxiv_paper/README.md +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/tools/arxiv_paper/callable.json +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/tools/arxiv_paper/config.json +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/tools/arxiv_paper/handler.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/tools/bilibili_opus/callable.json +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/tools/bilibili_opus/config.json +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/tools/bilibili_opus/handler.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/tools/bilibili_video/README.md +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/tools/bilibili_video/callable.json +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/tools/bilibili_video/config.json +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/tools/bilibili_video/handler.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/tools/calculator/README.md +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/tools/calculator/callable.json +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/tools/calculator/config.json +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/tools/calculator/handler.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/tools/changelog_query/README.md +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/tools/changelog_query/config.json +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/tools/changelog_query/handler.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/tools/douyin_video/README.md +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/tools/douyin_video/callable.json +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/tools/douyin_video/config.json +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/tools/douyin_video/handler.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/tools/end/README.md +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/tools/end/config.json +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/tools/end/handler.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/tools/fetch_image_uid/README.md +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/tools/fetch_image_uid/config.json +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/tools/fetch_image_uid/handler.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/tools/get_current_time/README.md +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/tools/get_current_time/callable.json +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/tools/get_current_time/config.json +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/tools/get_current_time/handler.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/tools/get_picture/README.md +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/tools/get_picture/config.json +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/tools/get_picture/handler.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/tools/get_user_info/README.md +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/tools/get_user_info/config.json +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/tools/get_user_info/handler.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/tools/knowledge_list/README.md +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/tools/knowledge_list/config.json +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/tools/knowledge_list/handler.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/tools/knowledge_semantic_search/README.md +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/tools/knowledge_semantic_search/config.json +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/tools/knowledge_semantic_search/handler.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/tools/knowledge_text_search/README.md +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/tools/knowledge_text_search/config.json +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/tools/knowledge_text_search/handler.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/tools/python_interpreter/README.md +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/tools/python_interpreter/config.json +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/tools/python_interpreter/handler.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/tools/qq_like/README.md +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/tools/qq_like/config.json +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/tools/qq_like/handler.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/tools/task_progress/README.md +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/tools/task_progress/config.json +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/tools/task_progress/handler.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/toolsets/README.md +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/toolsets/__init__.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/toolsets/attachments/README.md +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/toolsets/attachments/get_uid_by_url/config.json +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/toolsets/attachments/get_uid_by_url/handler.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/toolsets/attachments/get_url_by_uid/config.json +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/toolsets/attachments/get_url_by_uid/handler.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/toolsets/automation/README.md +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/toolsets/automation/_runtime.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/toolsets/automation/create/config.json +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/toolsets/automation/create/handler.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/toolsets/automation/delete/config.json +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/toolsets/automation/delete/handler.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/toolsets/automation/get/config.json +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/toolsets/automation/get/handler.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/toolsets/automation/list/config.json +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/toolsets/automation/list/handler.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/toolsets/automation/set_enabled/config.json +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/toolsets/automation/set_enabled/handler.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/toolsets/automation/update/config.json +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/toolsets/automation/update/handler.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/toolsets/cognitive/README.md +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/toolsets/cognitive/get_profile/config.json +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/toolsets/cognitive/get_profile/handler.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/toolsets/cognitive/search_events/config.json +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/toolsets/cognitive/search_events/handler.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/toolsets/cognitive/search_profiles/config.json +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/toolsets/cognitive/search_profiles/handler.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/toolsets/commands/README.md +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/toolsets/commands/get/config.json +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/toolsets/commands/get/handler.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/toolsets/commands/search/config.json +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/toolsets/commands/search/handler.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/toolsets/contacts/README.md +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/toolsets/contacts/query_friends/config.json +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/toolsets/contacts/query_friends/handler.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/toolsets/contacts/query_groups/config.json +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/toolsets/contacts/query_groups/handler.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/toolsets/group/README.md +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/toolsets/group/find_member/config.json +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/toolsets/group/find_member/handler.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/toolsets/group/get_avatar/config.json +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/toolsets/group/get_avatar/handler.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/toolsets/group/get_files/config.json +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/toolsets/group/get_files/handler.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/toolsets/group/get_honor_info/config.json +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/toolsets/group/get_honor_info/handler.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/toolsets/group/get_member_info/config.json +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/toolsets/group/get_member_info/handler.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/toolsets/group/get_member_list/config.json +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/toolsets/group/get_member_list/handler.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/toolsets/group/get_member_title/config.json +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/toolsets/group/get_member_title/handler.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/toolsets/group_analysis/README.md +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/toolsets/group_analysis/activity_trend/config.json +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/toolsets/group_analysis/activity_trend/handler.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/toolsets/group_analysis/filter_members/config.json +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/toolsets/group_analysis/filter_members/handler.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/toolsets/group_analysis/inactive_risk/config.json +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/toolsets/group_analysis/inactive_risk/handler.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/toolsets/group_analysis/join_statistics/config.json +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/toolsets/group_analysis/join_statistics/handler.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/toolsets/group_analysis/level_distribution/config.json +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/toolsets/group_analysis/level_distribution/handler.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/toolsets/group_analysis/member_activity/config.json +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/toolsets/group_analysis/member_activity/handler.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/toolsets/group_analysis/member_messages/config.json +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/toolsets/group_analysis/member_messages/handler.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/toolsets/group_analysis/member_structure/config.json +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/toolsets/group_analysis/member_structure/handler.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/toolsets/group_analysis/message_mix/config.json +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/toolsets/group_analysis/message_mix/handler.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/toolsets/group_analysis/new_member_activity/config.json +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/toolsets/group_analysis/new_member_activity/handler.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/toolsets/group_analysis/rank_members/config.json +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/toolsets/group_analysis/rank_members/handler.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/toolsets/mcp/README.md +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/toolsets/mcp/__init__.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/toolsets/memes/README.md +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/toolsets/memes/search_memes/config.json +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/toolsets/memes/search_memes/handler.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/toolsets/memes/send_meme_by_uid/config.json +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/toolsets/memes/send_meme_by_uid/handler.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/toolsets/memory/README.md +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/toolsets/memory/add/config.json +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/toolsets/memory/add/handler.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/toolsets/memory/delete/config.json +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/toolsets/memory/delete/handler.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/toolsets/memory/list/config.json +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/toolsets/memory/list/handler.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/toolsets/memory/update/config.json +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/toolsets/memory/update/handler.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/toolsets/messages/README.md +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/toolsets/messages/context_utils.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/toolsets/messages/get_forward_msg/config.json +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/toolsets/messages/get_forward_msg/handler.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/toolsets/messages/get_messages_by_time/config.json +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/toolsets/messages/get_messages_by_time/handler.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/toolsets/messages/get_recent_messages/config.json +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/toolsets/messages/get_recent_messages/handler.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/toolsets/messages/list_emojis/config.json +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/toolsets/messages/list_emojis/handler.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/toolsets/messages/lookup_emoji_id/config.json +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/toolsets/messages/lookup_emoji_id/handler.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/toolsets/messages/react_message_emoji/config.json +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/toolsets/messages/react_message_emoji/handler.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/toolsets/messages/send_group_sign/config.json +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/toolsets/messages/send_group_sign/handler.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/toolsets/messages/send_message/config.json +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/toolsets/messages/send_message/handler.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/toolsets/messages/send_poke/config.json +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/toolsets/messages/send_poke/handler.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/toolsets/messages/send_private_message/config.json +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/toolsets/messages/send_private_message/handler.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/toolsets/messages/send_text_file/callable.json +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/toolsets/messages/send_text_file/config.json +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/toolsets/messages/send_text_file/handler.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/toolsets/messages/send_url_file/callable.json +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/toolsets/messages/send_url_file/config.json +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/toolsets/messages/send_url_file/handler.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/toolsets/messages/send_voice/config.json +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/toolsets/messages/send_voice/handler.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/toolsets/music/README.md +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/toolsets/music/_client.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/toolsets/music/_constants.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/toolsets/music/_tools.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/toolsets/music/_track_refs.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/toolsets/music/browse_playlists/config.json +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/toolsets/music/browse_playlists/handler.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/toolsets/music/browse_rankings/config.json +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/toolsets/music/browse_rankings/handler.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/toolsets/music/find_song_matches/config.json +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/toolsets/music/find_song_matches/handler.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/toolsets/music/get_audio/config.json +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/toolsets/music/get_audio/handler.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/toolsets/music/get_comments/config.json +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/toolsets/music/get_comments/handler.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/toolsets/music/get_cover/config.json +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/toolsets/music/get_cover/handler.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/toolsets/music/get_hot_search/config.json +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/toolsets/music/get_hot_search/handler.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/toolsets/music/get_lyrics/config.json +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/toolsets/music/get_lyrics/handler.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/toolsets/music/search_playlists/config.json +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/toolsets/music/search_playlists/handler.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/toolsets/music/search_songs/config.json +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/toolsets/music/search_songs/handler.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/toolsets/notices/README.md +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/toolsets/notices/get/config.json +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/toolsets/notices/get/handler.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/toolsets/notices/list/config.json +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/toolsets/notices/list/handler.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/toolsets/notices/stats/config.json +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/toolsets/notices/stats/handler.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/toolsets/render/render_html/handler.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/toolsets/render/render_latex/config.json +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/toolsets/render/render_latex/handler.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/skills/toolsets/render/render_markdown/handler.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/token_usage_storage.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/utils/__init__.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/utils/cache.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/utils/coerce.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/utils/common.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/utils/cors.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/utils/easter_egg_calls.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/utils/fake_at.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/utils/file_lock.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/utils/group_metrics.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/utils/history.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/utils/http_download.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/utils/io.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/utils/logging.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/utils/member_utils.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/utils/message_reply.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/utils/message_targets.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/utils/message_turn.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/utils/message_utils.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/utils/paths.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/utils/qq_emoji.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/utils/queue_intervals.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/utils/recent_messages.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/utils/request_params.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/utils/resources.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/utils/scheduler.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/utils/self_update.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/utils/sender_helpers.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/utils/time_utils.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/utils/tool_calls.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/utils/xml.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/webui/__init__.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/webui/__main__.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/webui/app.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/webui/routes/__init__.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/webui/routes/_auth.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/webui/routes/_bot.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/webui/routes/_config.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/webui/routes/_index.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/webui/routes/_logs.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/webui/routes/_memes.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/webui/routes/_runtime.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/webui/routes/_shared.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/webui/routes/_system.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/webui/routes/_weixin.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/webui/static/css/.stylelintrc.json +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/webui/static/css/app.css +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/webui/static/css/base.css +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/webui/static/css/components.css +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/webui/static/css/highlight-github.min.css +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/webui/static/css/landing.css +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/webui/static/css/responsive.css +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/webui/static/css/style.css +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/webui/static/css/variables.css +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/webui/static/css/workflow.css +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/webui/static/favicon.svg +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/webui/static/js/api.js +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/webui/static/js/auth.js +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/webui/static/js/bot.js +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/webui/static/js/config-form.js +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/webui/static/js/i18n.js +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/webui/static/js/log-view.js +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/webui/static/js/logs.js +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/webui/static/js/main.js +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/webui/static/js/memes.js +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/webui/static/js/schedules.js +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/webui/static/js/state.js +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/webui/static/js/ui.js +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/webui/static/js/vendor/highlight.min.js +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/webui/static/js/vendor/highlightjs.LICENSE +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/webui/static/js/vendor/marked.min.js +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/webui/static/js/weixin.js +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/webui/static/js/workflow-canvas.js +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/webui/static/js/workflow-graph.js +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/webui/static/js/workflow-inspector.js +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/webui/templates/index.html +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/webui/utils/__init__.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/webui/utils/comment.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/webui/utils/config_io.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/webui/utils/config_sync.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/webui/utils/toml_render.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/weixin/__init__.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/weixin/audio.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/weixin/models.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/weixin/service.py +0 -0
- {undefined_bot-3.16.1 → undefined_bot-3.17.1}/src/Undefined/weixin/store.py +0 -0
|
@@ -42,6 +42,11 @@ __pycache__/
|
|
|
42
42
|
logs/*
|
|
43
43
|
data/
|
|
44
44
|
|
|
45
|
+
# 容器化部署的运行态:.env / STATE.json / compose.yaml / 各服务配置与数据
|
|
46
|
+
# 均含凭据或运行时数据,全部不入库(模板在 src/Undefined/deploy/templates/)
|
|
47
|
+
# 必须用前导 / 锚定到仓库根,否则会连 src/Undefined/deploy 一起忽略
|
|
48
|
+
/deploy/
|
|
49
|
+
|
|
45
50
|
#AGENTS.md
|
|
46
51
|
.DS_Store
|
|
47
52
|
.claude/
|
|
@@ -868,6 +868,7 @@ description: 从 PDF 文件中提取文本和表格,填写表单。当用户
|
|
|
868
868
|
6. **技能系统层**:ToolRegistry (registry.py)、AgentRegistry、7个 Agents、13类 Toolsets
|
|
869
869
|
7. **异步 IO 层**:统一 IO 工具 (utils/io.py),包含 write_json、read_json、append_line、跨平台文件锁 (flock/msvcrt)
|
|
870
870
|
8. **数据持久化层**:历史数据目录、FAQ 目录、Token 归档目录、记忆文件、总结文件、自动化文件、微信绑定/游标/隔离/审计状态
|
|
871
|
+
9. **部署编排层**(`deploy/`,不参与运行时):`uv run deploy` 把本体与 NapCat、可选自托管服务(SearXNG / Firecrawl / lxmusic2api)编排成一份 Docker Compose。`catalog.py` 是服务、端口与默认值的唯一事实来源(容器内端口固定、宿主端口可覆盖),`generate.py` 由包内 compose 片段与配置模板渲染出 `deploy/` 下的运行态,`config_patch.py` 只对 `config.toml` 做最小差异写入并把原文件备份到 `deploy/backup/`(**注意它是整份重排后原子替换,不是原地编辑**:注释会尽量保留,但不要指望行号与手工排版不变),`state.py` 定义 `deploy/` 运行态布局与 `STATE.json`(端口、绑定地址、服务选择跨次复用的来源),`images.py` 集中管理上游镜像 pin,`nagaagent.py` 负责子模块就绪与「只开问答能力、绝不改写 `[naga]`」的开关写入,`docker_cli.py` 是唯一的进程外调用边界,`runner.py` 实现 up/down/status/logs,`cli.py` 负责参数解析与交互向导。注意 `deploy/` 运行态目录不入库,模板随 wheel 分发;详见 [容器化一键部署](docs/docker-deploy.md)。
|
|
871
872
|
|
|
872
873
|
### 微信 iLink 路由边界
|
|
873
874
|
|
|
@@ -1,3 +1,36 @@
|
|
|
1
|
+
## v3.17.1 交付体积边界收敛
|
|
2
|
+
|
|
3
|
+
本版本收敛「内容一变大就发不出去」的两处交付边界:合并转发不再因为顶层节点塞满全文而被 QQ 拒收,长图不再因为页面自身更窄而右侧留白;同时补上图片消息段与 Agent 私有工具的静默丢失点。
|
|
4
|
+
|
|
5
|
+
- 长图宽度自适应:`layout=long` 时 `width` 改为**上限**,渲染前探测页面自身布局宽度(`html` / `body` 盒宽与后代最大右边界),比设定宽度窄时把视口收缩到「内容宽度 + 2 × `padding`」(下限 320),两侧不再留白。只在页面自己更窄时收敛,铺满视口的响应式页面(含 Markdown 模板)宽度与旧版完全一致;探测失败只记日志并保持原视口,不影响渲染本身。`[render].long_image_default_width` 语义随之变为上限,缓存键补上收敛参数。
|
|
6
|
+
- 合并转发预览收敛:NapCat packet 模式的转发卡片把**顶层节点**文本全部写进 `news` 预览,顶层文本量因此约等于卡片体积,约 14KB 会被 QQ 以 retcode=1200(`发送转发消息(res_id:… 失败`)拒收。`MessageSender` 在群聊与私聊发送前统一下沉:顶层直接文本合计超过 2000 字时,按文本量从大到小把节点内容改为 ≤1200 字的嵌套节点,嵌套节点段原样保留、不递归;发送被拒时以 error 级别记录节点数、顶层文本量、段数与图片数,便于定位。
|
|
7
|
+
- Bilibili 图文正文改为按单节点 1200 字(`format.NODE_TEXT_BUDGET`)与单节点 9 张图切分,节点名形如 `正文 1/12`;正文超过一个节点时整体收进顶层 `正文` 节点的嵌套内容,让卡片体积与正文长度解耦,不再出现「图文越长越容易被拒收」。未超预算时仍是单个顶层 `正文` 节点,结构与旧版一致。
|
|
8
|
+
- 图片消息段不再静默丢失:OneBot 图片段同时带 NapCat 的 `file` id 与可下载 `url`,先用 `get_image` 解析 `file`;解析失败或返回的既不是 HTTP URL 也不是本地路径时(典型是 NapCat 富媒体下载超时只给裸文件名),回落到段内 `url` 登记远程附件。
|
|
9
|
+
- 修复 Agent 私有工具全部无法加载:随包技能的 handler 模块名一律以真实包根 `Undefined/skills` 计算,`agents/<agent>/tools/<tool>/handler.py` 不再被算成不存在的 `Undefined.skills.tools.<tool>`;此前这些工具会在注册阶段被记入 `load_error` 并从 schema 中排除。不随包的目录(测试或外部注入)保持原有上溯规则。
|
|
10
|
+
- 裸数字不再误判为 Douyin aweme_id:只有不落在任何链接内的 16–25 位数字才算裸 ID,`bilibili.com/opus/933099353259638816` 这类链接里的数字不再让同一张图文链接同时触发抖音管线。
|
|
11
|
+
- 部署后的首次启动改为手动:`uv run deploy up` 在 `container` 与 `host` 模式统一写入 `[webui].autostart_bot = false`,并在输出里给出「填配置 → NapCat 扫码 → WebUI 点启动机器人」的顺序,避免容器一起来就连不上未登录的协议端;文件发送同时从 `url` 改为 `stream`(`[onebot].file_send_mode = "stream"`),不再依赖共享发送目录或 Runtime 下载地址。
|
|
12
|
+
- 文档重排:新增面向使用者的 [Docker 一键部署指南](docs/docker-deploy.md)(环境准备、向导选项、首次配置与 QQ 登录、远程访问、可选服务、日常管理与排查),README 与部署指南统一为「源码部署 → Docker 一键部署 → pip / uv tool」的推荐顺序,并补上镜像构建与维护说明。
|
|
13
|
+
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
## v3.17.0 容器化一键部署
|
|
17
|
+
|
|
18
|
+
本版本新增 `uv run deploy`:一条命令把本体、NapCat 与可选自托管服务编排成 Docker Compose,按部署模式自动对齐 `config.toml`、生成并复用凭据,最后输出全部管理入口与凭据;同时补上镜像的 CI 构建与多架构发布。
|
|
19
|
+
|
|
20
|
+
- 新增部署入口 `uv run deploy`(`up` / `down` / `status` / `logs`)。向导只问四件事:本体部署方式、额外部署哪些自托管服务、发布端口的绑定地址、是否拉取 NagaAgent 子模块;**默认不部署任何可选服务**,回车即「全不部署」(重跑时表示沿用上次选择)。`--yes` 走非交互默认值;`--dry-run` 只打印将写入的 `config.toml` 差异、生成的 compose/.env 与**将执行的命令**,不落盘、不建目录、不写备份。
|
|
21
|
+
- 两种部署模式:`container`(默认)把本体也放进 compose,镜像入口是 WebUI 并由它托管 Bot 进程(写入 `[webui].autostart_bot = true`);`host` 只用 Docker 跑依赖服务,本体仍在宿主机启动。
|
|
22
|
+
- `container` 模式把**整个仓库目录**以可写方式挂到容器内的 `/data/Undefined`(`res/`、`img/` 只读覆盖同名目录,`deploy/data`、`deploy/logs` 嵌套为 `data/`、`logs/`)。`up` 写 `config.toml` 走「临时文件 + `os.replace`」原子替换,单文件 bind mount 绑的是替换前的 inode,容器会一直读旧配置而 compose 也不会因此重建容器;挂目录同时保证 WebUI 在线改配置(原地写)仍然可用。
|
|
23
|
+
- 地址与端口按模式对齐:容器内走 compose 服务名与固定的容器内端口,`--port` 覆盖的是宿主机发布端口——`[webui].port` / `[api].port` 与映射目标始终一致,`[onebot].ws_url` 不会被宿主端口污染;`host` 模式下本体自己就是监听方,端口跟随 `--port`。`up` / `status` 输出的入口地址取同一份解析后的端口(`host` 模式不发布本体端口,只看 `.env` 会把覆盖过的端口印成默认值)。`--port-bind` 默认只绑 `127.0.0.1`,`0.0.0.0` 只作监听语义、不会被写成连接地址。
|
|
24
|
+
- 凭据自动生成并复用已有值,重跑不会把已生效的 WebUI 密码、Runtime `auth_key`、NapCat token、SearXNG `secret_key`、Firecrawl 与 lxmusic2api 凭据换掉(`changeme` 与空值视为占位符,且占位值不会挡住下一个来源)。`[webui].password` 与 `[api].auth_key` 以 `config.toml` 里已生效的值为准(`.env` 只是留档,否则一份过期的 `.env` 会把用户手改过的密码改回去),其余凭据只认 `deploy/.env`;凭据文件权限 0600,`deploy/` 整体不入库。
|
|
25
|
+
- 写入面严格限定在服务拓扑:模型端、访问控制与提示词一律不碰。NagaAgent 相关**只写** `[features].nagaagent_mode_enabled`,`[naga]` 整节(`enabled` / `api_url` / `api_key` / `mode`)原样保留——既不清空已填的凭据,也不会关掉你自己开着的网关。
|
|
26
|
+
- NapCat 以 `MODE=ws` 作正向 WebSocket 服务端,端口与令牌由生成的 `deploy/napcat/ws.json` 只读覆盖镜像模板,容器每次启动重新写出;登录之后 NapCat 优先读账号级 `onebot11_<QQ>.json` 且没有 fs.watch,`up` 的输出会点名该文件并给出处置办法,不再一律报「已就绪」。
|
|
27
|
+
- 自托管服务:SearXNG 自带 `search.formats: [html, json]`(缺 `json` 时 `web_search` 会收到 403)并关闭入口对挂载目录的 chown;Firecrawl 拉起 api / playwright / redis / rabbitmq / postgres 五个容器,`USE_DB_AUTHENTICATION=false` 时不校验 key,管理界面只有 `/admin/<BULL_AUTH_KEY>/queues`;lxmusic2api 上游没有镜像,由本项目在 CI 里 clone 固定 commit 构建,pin 必须是完整 sha。
|
|
28
|
+
- `container` 模式下 `python_interpreter` / `code_delivery_agent` 通过挂载宿主 `/var/run/docker.sock` 走 DooD(不启 DinD),本体容器额外禁止提权;`down --purge` 会连同 `deploy/` 下的数据与凭据一并删除,不可恢复。
|
|
29
|
+
- 发布流程新增镜像构建:amd64 与 arm64 分别在原生 runner 上构建并按 digest 推送,再由合并任务生成 manifest list,产出 `ghcr.io/<owner>/undefined-bot:<tag>` 与 `undefined-lxmusic2api:<短sha>`,顺序在版本发布之前。GHCR 包首次推送默认为 private,拉取前需要 `docker login ghcr.io` 或把包改为 public。
|
|
30
|
+
- 部署过程本身按「失败可收拾」设计:`STATE.json` 在 `compose up` 之前落盘,任何失败之后 `down` / `status` / `logs` 仍然可用;镜像拉取超时按策略选择(首次部署用长超时);NapCat WebUI 的容器内端口固定,覆盖宿主端口不会让它失联。
|
|
31
|
+
|
|
32
|
+
---
|
|
33
|
+
|
|
1
34
|
## v3.16.1 自托管服务部署依赖说明
|
|
2
35
|
|
|
3
36
|
本版本补齐部署文档中长期缺失的一块:除 Python 运行环境外,Undefined 还需要连接若干由部署方自行搭建的服务,此前这些依赖只散落在配置字段注释里,没有一处说明哪些是必需的、不部署会失去什么。
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: Undefined-bot
|
|
3
|
-
Version: 3.
|
|
3
|
+
Version: 3.17.1
|
|
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
|
|
@@ -81,18 +81,7 @@ Description-Content-Type: text/markdown
|
|
|
81
81
|
|
|
82
82
|
---
|
|
83
83
|
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
**部署 QQ Bot 本身不需要下载 Release**:Release 里都是可选组件。源码部署见下方[快速开始](#-快速开始-源码模式),安装包用途与平台对应如下:
|
|
87
|
-
|
|
88
|
-
| 目标 | 文件 | 平台 |
|
|
89
|
-
| --- | --- | --- |
|
|
90
|
-
| 部署 / 运行 Bot | 不需要下载 Release;源码部署并启动 `uv run Undefined-webui` | 任意 |
|
|
91
|
-
| 离线安装 / 镜像缓存 | `undefined_bot-*.whl` 或 `undefined_bot-*.tar.gz` | 任意 |
|
|
92
|
-
| 远程管理已有实例 | `Undefined-Console-*`(连接 Management API 打开远程 WebUI) | Windows x64 `*-windows-x64-setup.exe`(批量部署可选 `.msi`)/macOS `*-macos-arm64.dmg`、`*-macos-x64.dmg`/Debian、Ubuntu `*.deb`/其他 Linux `*.AppImage` |
|
|
93
|
-
| 原生聊天客户端 | `Undefined-Chat-*`(连接 Runtime API 聊天) | 同上;Android 为 `*-android-arm64-v8a-release.apk`(旧 32 位设备用 `armeabi-v7a`,模拟器按需 `x86_64` / `x86`) |
|
|
94
|
-
|
|
95
|
-
Console 和 Chat 都需要连接已运行的 Undefined 服务:首次部署请先启动 `Undefined-webui`,完成配置和 Bot 启动后再连接。
|
|
84
|
+
> 🚀 **开始使用 Undefined**:从[快速开始](#-快速开始)了解部署步骤、首次配置和可选客户端的下载方式。
|
|
96
85
|
|
|
97
86
|
## ⚡ 核心特性
|
|
98
87
|
|
|
@@ -148,7 +137,8 @@ Console 和 Chat 都需要连接已运行的 Undefined 服务:首次部署请
|
|
|
148
137
|
|
|
149
138
|
Undefined 的功能极为丰富,为了让本页面不过于臃肿,我们将各个模块的深入解析与高阶玩法整理成了专题游览图。这里是开启探索的钥匙:
|
|
150
139
|
|
|
151
|
-
- ⚙️ **[安装与部署指南](docs/deployment.md)
|
|
140
|
+
- ⚙️ **[安装与部署指南](docs/deployment.md)**:首选源码部署;按源码、Docker、pip / uv tool 的推荐顺序介绍各安装方式。
|
|
141
|
+
- 🐳 **[Docker 一键部署指南(Linux)](docs/docker-deploy.md)**:源码部署之外的推荐选择,自动部署 Undefined + NapCat,并按需添加搜索、音乐服务。
|
|
152
142
|
- 📦 **[Python 库 API 参考](docs/python-api.md)**:根包 lazy re-export、`Config.from_mapping` / `set_config`、公共 API 符号表与嵌入示例。
|
|
153
143
|
- 🖥️ **[WebUI 使用指南](docs/webui-guide.md)**:管理控制台功能一览——配置编辑、日志查看、认知记忆管理、表情包库、AI 对话与系统监控。
|
|
154
144
|
- 🧭 **[Management API 与远程管理](docs/management-api.md)**:WebUI / App 共用的管理接口、认证、配置/日志/Bot 控制与引导探针说明。
|
|
@@ -175,11 +165,15 @@ Undefined 的功能极为丰富,为了让本页面不过于臃肿,我们将
|
|
|
175
165
|
|
|
176
166
|
---
|
|
177
167
|
|
|
178
|
-
## ⚡ 快速开始
|
|
168
|
+
## ⚡ 快速开始
|
|
169
|
+
|
|
170
|
+
推荐优先采用源码部署;希望在 Linux 上自动搭建 Undefined、NapCat 和可选服务时,也可以选择 Docker 一键部署。两种方式任选其一,部署完成后可直接使用 WebUI,也可按本节末尾的说明下载独立客户端。
|
|
171
|
+
|
|
172
|
+
<a id="-快速开始-源码模式"></a>
|
|
179
173
|
|
|
180
|
-
|
|
174
|
+
### 源码部署(推荐)
|
|
181
175
|
|
|
182
|
-
|
|
176
|
+
使用 `uv` 安装依赖并启动管理控制台。首次部署还需要准备 QQ 协议端、模型 API 和帐号配置,完整步骤见 [源码部署指南](docs/deployment.md#源码部署推荐)。
|
|
183
177
|
|
|
184
178
|
```bash
|
|
185
179
|
# 1. 完整克隆源码库(注意附带 NagaAgent 模块)
|
|
@@ -193,13 +187,48 @@ uv run playwright install # 安装浏览器内核(用于页面截图等能力
|
|
|
193
187
|
|
|
194
188
|
# 3. 启动管理控制台(推荐入口)
|
|
195
189
|
uv run Undefined-webui
|
|
190
|
+
```
|
|
191
|
+
|
|
192
|
+
启动后,按终端显示的地址打开 WebUI,设置管理密码并填写模型与 QQ 配置;校验通过后,在页面中启动 Bot。后续配置、日志查看和 Bot 启停都可以在 WebUI 中完成。
|
|
193
|
+
|
|
194
|
+
<a id="-docker-一键部署linux"></a>
|
|
195
|
+
<a id="docker-一键部署linux"></a>
|
|
196
|
+
|
|
197
|
+
### Docker 一键部署(Linux) · [完整部署指南](docs/docker-deploy.md)
|
|
198
|
+
|
|
199
|
+
已安装 Docker Engine、`docker compose` 插件、Git 和 uv 后,在 Linux 上执行以下命令;未安装时先看 [开始前的准备](docs/docker-deploy.md#1-开始前的准备)。默认部署 Undefined + NapCat,其他服务按需选择:
|
|
196
200
|
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
201
|
+
```bash
|
|
202
|
+
git clone https://github.com/69gg/Undefined.git
|
|
203
|
+
cd Undefined
|
|
204
|
+
uv run deploy up
|
|
200
205
|
```
|
|
201
206
|
|
|
202
|
-
|
|
207
|
+
部署结束后,终端会显示 **Undefined WebUI 地址和密码、NapCat 登录链接**。打开 WebUI 填写模型 API、机器人 QQ 号和管理员 QQ 号,到 NapCat 扫码登录后,再返回 WebUI 点击“启动机器人”。部署配置默认关闭 Bot 自动启动,并使用 Stream 发送文件。完整步骤见 [部署后的首次配置](docs/docker-deploy.md#3-完成配置并登录-qq)。
|
|
208
|
+
|
|
209
|
+
后续可用 `uv run deploy status` 查看入口与状态、`uv run deploy logs` 查看日志、`uv run deploy down` 停止服务并保留数据。
|
|
210
|
+
|
|
211
|
+
### Release 下载速查
|
|
212
|
+
|
|
213
|
+
完成上述部署后,可直接通过浏览器使用 WebUI。需要独立的管理或聊天客户端时,再前往 [GitHub Releases](https://github.com/69gg/Undefined/releases),按用途选择组件:
|
|
214
|
+
|
|
215
|
+
| 你需要的功能 | 下载组件 |
|
|
216
|
+
| --- | --- |
|
|
217
|
+
| 远程管理已有实例,编辑配置、查看日志、启停 Bot | **Undefined Console**:选择 `Undefined-Console-*` |
|
|
218
|
+
| 使用独立的原生聊天界面 | **Undefined Chat**:选择 `Undefined-Chat-*` |
|
|
219
|
+
|
|
220
|
+
选好 Console 或 Chat 后,在该组件的文件中选择适合设备的安装包:
|
|
221
|
+
|
|
222
|
+
| 平台 | 安装包 |
|
|
223
|
+
| --- | --- |
|
|
224
|
+
| Windows x64 | `*-windows-x64-setup.exe`;批量部署可选 `*-windows-x64.msi` |
|
|
225
|
+
| macOS | Apple Silicon 选 `*-macos-arm64.dmg`,Intel 选 `*-macos-x64.dmg` |
|
|
226
|
+
| Linux | Debian / Ubuntu 选 `*.deb`,其他发行版可选 `*.AppImage` |
|
|
227
|
+
| Android | 通常选 `*-android-arm64-v8a-release.apk`;旧 32 位设备选 `armeabi-v7a`,模拟器按架构选择 `x86_64` 或 `x86` |
|
|
228
|
+
|
|
229
|
+
安装后,Console 连接已部署实例的 Management API,Chat 连接 Bot 的 Runtime API;请使用该实例对应的地址和凭据。**两个客户端都需要已有的 Undefined 服务,部署 Bot 本身无需下载客户端安装包。**
|
|
230
|
+
|
|
231
|
+
如需离线安装 Python 包或缓存安装文件,可下载 `undefined_bot-*.whl` 或 `undefined_bot-*.tar.gz`;安装方式见 [pip / uv tool 部署说明](docs/deployment.md#pipuv-tool-部署快速体验)。
|
|
203
232
|
|
|
204
233
|
---
|
|
205
234
|
|
|
@@ -30,18 +30,7 @@
|
|
|
30
30
|
|
|
31
31
|
---
|
|
32
32
|
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
**部署 QQ Bot 本身不需要下载 Release**:Release 里都是可选组件。源码部署见下方[快速开始](#-快速开始-源码模式),安装包用途与平台对应如下:
|
|
36
|
-
|
|
37
|
-
| 目标 | 文件 | 平台 |
|
|
38
|
-
| --- | --- | --- |
|
|
39
|
-
| 部署 / 运行 Bot | 不需要下载 Release;源码部署并启动 `uv run Undefined-webui` | 任意 |
|
|
40
|
-
| 离线安装 / 镜像缓存 | `undefined_bot-*.whl` 或 `undefined_bot-*.tar.gz` | 任意 |
|
|
41
|
-
| 远程管理已有实例 | `Undefined-Console-*`(连接 Management API 打开远程 WebUI) | Windows x64 `*-windows-x64-setup.exe`(批量部署可选 `.msi`)/macOS `*-macos-arm64.dmg`、`*-macos-x64.dmg`/Debian、Ubuntu `*.deb`/其他 Linux `*.AppImage` |
|
|
42
|
-
| 原生聊天客户端 | `Undefined-Chat-*`(连接 Runtime API 聊天) | 同上;Android 为 `*-android-arm64-v8a-release.apk`(旧 32 位设备用 `armeabi-v7a`,模拟器按需 `x86_64` / `x86`) |
|
|
43
|
-
|
|
44
|
-
Console 和 Chat 都需要连接已运行的 Undefined 服务:首次部署请先启动 `Undefined-webui`,完成配置和 Bot 启动后再连接。
|
|
33
|
+
> 🚀 **开始使用 Undefined**:从[快速开始](#-快速开始)了解部署步骤、首次配置和可选客户端的下载方式。
|
|
45
34
|
|
|
46
35
|
## ⚡ 核心特性
|
|
47
36
|
|
|
@@ -97,7 +86,8 @@ Console 和 Chat 都需要连接已运行的 Undefined 服务:首次部署请
|
|
|
97
86
|
|
|
98
87
|
Undefined 的功能极为丰富,为了让本页面不过于臃肿,我们将各个模块的深入解析与高阶玩法整理成了专题游览图。这里是开启探索的钥匙:
|
|
99
88
|
|
|
100
|
-
- ⚙️ **[安装与部署指南](docs/deployment.md)
|
|
89
|
+
- ⚙️ **[安装与部署指南](docs/deployment.md)**:首选源码部署;按源码、Docker、pip / uv tool 的推荐顺序介绍各安装方式。
|
|
90
|
+
- 🐳 **[Docker 一键部署指南(Linux)](docs/docker-deploy.md)**:源码部署之外的推荐选择,自动部署 Undefined + NapCat,并按需添加搜索、音乐服务。
|
|
101
91
|
- 📦 **[Python 库 API 参考](docs/python-api.md)**:根包 lazy re-export、`Config.from_mapping` / `set_config`、公共 API 符号表与嵌入示例。
|
|
102
92
|
- 🖥️ **[WebUI 使用指南](docs/webui-guide.md)**:管理控制台功能一览——配置编辑、日志查看、认知记忆管理、表情包库、AI 对话与系统监控。
|
|
103
93
|
- 🧭 **[Management API 与远程管理](docs/management-api.md)**:WebUI / App 共用的管理接口、认证、配置/日志/Bot 控制与引导探针说明。
|
|
@@ -124,11 +114,15 @@ Undefined 的功能极为丰富,为了让本页面不过于臃肿,我们将
|
|
|
124
114
|
|
|
125
115
|
---
|
|
126
116
|
|
|
127
|
-
## ⚡ 快速开始
|
|
117
|
+
## ⚡ 快速开始
|
|
118
|
+
|
|
119
|
+
推荐优先采用源码部署;希望在 Linux 上自动搭建 Undefined、NapCat 和可选服务时,也可以选择 Docker 一键部署。两种方式任选其一,部署完成后可直接使用 WebUI,也可按本节末尾的说明下载独立客户端。
|
|
120
|
+
|
|
121
|
+
<a id="-快速开始-源码模式"></a>
|
|
128
122
|
|
|
129
|
-
|
|
123
|
+
### 源码部署(推荐)
|
|
130
124
|
|
|
131
|
-
|
|
125
|
+
使用 `uv` 安装依赖并启动管理控制台。首次部署还需要准备 QQ 协议端、模型 API 和帐号配置,完整步骤见 [源码部署指南](docs/deployment.md#源码部署推荐)。
|
|
132
126
|
|
|
133
127
|
```bash
|
|
134
128
|
# 1. 完整克隆源码库(注意附带 NagaAgent 模块)
|
|
@@ -142,13 +136,48 @@ uv run playwright install # 安装浏览器内核(用于页面截图等能力
|
|
|
142
136
|
|
|
143
137
|
# 3. 启动管理控制台(推荐入口)
|
|
144
138
|
uv run Undefined-webui
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
启动后,按终端显示的地址打开 WebUI,设置管理密码并填写模型与 QQ 配置;校验通过后,在页面中启动 Bot。后续配置、日志查看和 Bot 启停都可以在 WebUI 中完成。
|
|
142
|
+
|
|
143
|
+
<a id="-docker-一键部署linux"></a>
|
|
144
|
+
<a id="docker-一键部署linux"></a>
|
|
145
|
+
|
|
146
|
+
### Docker 一键部署(Linux) · [完整部署指南](docs/docker-deploy.md)
|
|
147
|
+
|
|
148
|
+
已安装 Docker Engine、`docker compose` 插件、Git 和 uv 后,在 Linux 上执行以下命令;未安装时先看 [开始前的准备](docs/docker-deploy.md#1-开始前的准备)。默认部署 Undefined + NapCat,其他服务按需选择:
|
|
145
149
|
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
150
|
+
```bash
|
|
151
|
+
git clone https://github.com/69gg/Undefined.git
|
|
152
|
+
cd Undefined
|
|
153
|
+
uv run deploy up
|
|
149
154
|
```
|
|
150
155
|
|
|
151
|
-
|
|
156
|
+
部署结束后,终端会显示 **Undefined WebUI 地址和密码、NapCat 登录链接**。打开 WebUI 填写模型 API、机器人 QQ 号和管理员 QQ 号,到 NapCat 扫码登录后,再返回 WebUI 点击“启动机器人”。部署配置默认关闭 Bot 自动启动,并使用 Stream 发送文件。完整步骤见 [部署后的首次配置](docs/docker-deploy.md#3-完成配置并登录-qq)。
|
|
157
|
+
|
|
158
|
+
后续可用 `uv run deploy status` 查看入口与状态、`uv run deploy logs` 查看日志、`uv run deploy down` 停止服务并保留数据。
|
|
159
|
+
|
|
160
|
+
### Release 下载速查
|
|
161
|
+
|
|
162
|
+
完成上述部署后,可直接通过浏览器使用 WebUI。需要独立的管理或聊天客户端时,再前往 [GitHub Releases](https://github.com/69gg/Undefined/releases),按用途选择组件:
|
|
163
|
+
|
|
164
|
+
| 你需要的功能 | 下载组件 |
|
|
165
|
+
| --- | --- |
|
|
166
|
+
| 远程管理已有实例,编辑配置、查看日志、启停 Bot | **Undefined Console**:选择 `Undefined-Console-*` |
|
|
167
|
+
| 使用独立的原生聊天界面 | **Undefined Chat**:选择 `Undefined-Chat-*` |
|
|
168
|
+
|
|
169
|
+
选好 Console 或 Chat 后,在该组件的文件中选择适合设备的安装包:
|
|
170
|
+
|
|
171
|
+
| 平台 | 安装包 |
|
|
172
|
+
| --- | --- |
|
|
173
|
+
| Windows x64 | `*-windows-x64-setup.exe`;批量部署可选 `*-windows-x64.msi` |
|
|
174
|
+
| macOS | Apple Silicon 选 `*-macos-arm64.dmg`,Intel 选 `*-macos-x64.dmg` |
|
|
175
|
+
| Linux | Debian / Ubuntu 选 `*.deb`,其他发行版可选 `*.AppImage` |
|
|
176
|
+
| Android | 通常选 `*-android-arm64-v8a-release.apk`;旧 32 位设备选 `armeabi-v7a`,模拟器按架构选择 `x86_64` 或 `x86` |
|
|
177
|
+
|
|
178
|
+
安装后,Console 连接已部署实例的 Management API,Chat 连接 Bot 的 Runtime API;请使用该实例对应的地址和凭据。**两个客户端都需要已有的 Undefined 服务,部署 Bot 本身无需下载客户端安装包。**
|
|
179
|
+
|
|
180
|
+
如需离线安装 Python 包或缓存安装文件,可下载 `undefined_bot-*.whl` 或 `undefined_bot-*.tar.gz`;安装方式见 [pip / uv tool 部署说明](docs/deployment.md#pipuv-tool-部署快速体验)。
|
|
152
181
|
|
|
153
182
|
---
|
|
154
183
|
|
|
@@ -1146,6 +1146,9 @@ use_proxy = false
|
|
|
1146
1146
|
# zh: 远程附件自动下载并缓存的最大大小(MB)。超过上限或设为 0 时只保留 URL 引用,不下载文件内容。
|
|
1147
1147
|
# en: Max remote attachment size (MB) to download into cache. Above the limit, or 0, keeps only a URL reference.
|
|
1148
1148
|
remote_download_max_size_mb = 25
|
|
1149
|
+
# zh: 默认拒绝远程附件访问非公网地址。仅为信任的内网媒体服务添加精确 origin(协议、主机、端口),例如 ["http://media.internal:8080"];不支持路径、凭据或通配符。支持热重载。
|
|
1150
|
+
# en: Remote attachments reject non-public destinations by default. Allow only trusted private media origins (scheme, host, port), e.g. ["http://media.internal:8080"]. Paths, credentials and wildcards are not supported. Hot-reloadable.
|
|
1151
|
+
remote_download_allow_private_origins = []
|
|
1149
1152
|
# zh: 附件缓存文件总大小上限(MB)。0 表示不按总容量清理;达到上限时优先删除最旧的本地缓存副本,若记录有 URL 则保留 UID 与 URL 以便后续回源。
|
|
1150
1153
|
# en: Total attachment cache file size limit (MB). 0 disables total-size pruning; when exceeded, oldest local cache copies are removed while URL-backed UIDs keep their URL for later re-download.
|
|
1151
1154
|
cache_max_total_size_mb = 0
|
|
@@ -1270,15 +1273,15 @@ use_proxy = false
|
|
|
1270
1273
|
# en: Search tool priority for web_agent. Disabled tools are hidden; enabled tools are preferred in this order by prompt guidance, not hard routing.
|
|
1271
1274
|
priority = ["grok_search", "firecrawl_search", "web_search"]
|
|
1272
1275
|
# zh: SearxNG 搜索服务地址,例如 http://127.0.0.1:8849。
|
|
1273
|
-
# zh:
|
|
1276
|
+
# zh: 可用 uv run deploy up --with searxng 一键部署,或连接已有实例(官方说明:https://docs.searxng.org/);留空时内置 web_search 工具不可用,grok_search / firecrawl_search / crawl_webpage 不受影响。
|
|
1274
1277
|
# en: SearxNG service URL, e.g. http://127.0.0.1:8849.
|
|
1275
|
-
# en:
|
|
1278
|
+
# en: Deploy with uv run deploy up --with searxng or connect to an existing instance (official guide: https://docs.searxng.org/); when empty the built-in web_search tool is unavailable while grok_search / firecrawl_search / crawl_webpage keep working.
|
|
1276
1279
|
searxng_url = ""
|
|
1277
1280
|
# zh: 是否在 web_agent 中启用 grok_search。关闭时该工具会从 web_agent 工具列表中隐藏。
|
|
1278
1281
|
# en: Enable grok_search in web_agent. When disabled, this tool is hidden from the web_agent tool list.
|
|
1279
1282
|
grok_search_enabled = false
|
|
1280
|
-
# zh: 是否在 web_agent 中启用 firecrawl_search
|
|
1281
|
-
# en: Enable firecrawl_search in web_agent. Disabled by default; when disabled, this tool is hidden.
|
|
1283
|
+
# zh: 是否在 web_agent 中启用 firecrawl_search。默认关闭;关闭时该工具会隐藏。无需自部署 Firecrawl,启用后可使用官方 keyless。
|
|
1284
|
+
# en: Enable firecrawl_search in web_agent. Disabled by default; when disabled, this tool is hidden. Self-hosting is optional; enable this to use official keyless search.
|
|
1282
1285
|
firecrawl_search_enabled = false
|
|
1283
1286
|
|
|
1284
1287
|
# zh: Firecrawl 搜索服务配置。
|
|
@@ -1287,8 +1290,8 @@ firecrawl_search_enabled = false
|
|
|
1287
1290
|
# zh: Firecrawl API Key。为空时使用 Firecrawl keyless 搜索;填写后会发送 Authorization: Bearer;自部署实例通常也可留空。
|
|
1288
1291
|
# en: Firecrawl API key. Leave empty for Firecrawl keyless search; when set, Authorization: Bearer is sent; self-hosted instances can usually leave it empty too.
|
|
1289
1292
|
api_key = ""
|
|
1290
|
-
# zh: Firecrawl API
|
|
1291
|
-
# en: Firecrawl API base URL. Use the official endpoint with your own key, or point it at a self-hosted instance (self-host guide: https://docs.firecrawl.dev/contributing/self-host).
|
|
1293
|
+
# zh: Firecrawl API 基础地址。官方地址支持 keyless(API Key 留空,受官方配额与限流限制)或自己的 Key,也可改为自部署实例地址(自托管说明:https://docs.firecrawl.dev/contributing/self-host)。
|
|
1294
|
+
# en: Firecrawl API base URL. Use the official endpoint with keyless access (empty API key, subject to official quotas and rate limits) or your own key, or point it at a self-hosted instance (self-host guide: https://docs.firecrawl.dev/contributing/self-host).
|
|
1292
1295
|
base_url = "https://api.firecrawl.dev"
|
|
1293
1296
|
|
|
1294
1297
|
# zh: 代理设置(可选)。
|
|
@@ -1325,8 +1328,8 @@ browser_max_concurrency = 0
|
|
|
1325
1328
|
# zh: 可选的 Chrome/Chromium 可执行文件路径。留空时优先使用 Playwright 自带浏览器,缺失时再自动查找系统浏览器。
|
|
1326
1329
|
# en: Optional Chrome/Chromium executable path. Empty prefers Playwright's bundled browser, then discovers an installed system browser if missing.
|
|
1327
1330
|
browser_executable_path = ""
|
|
1328
|
-
# zh: render_html/render_markdown 的 long 布局未显式传 width
|
|
1329
|
-
# en:
|
|
1331
|
+
# zh: render_html/render_markdown 的 long 布局未显式传 width 时使用的图片宽度上限(像素,320-2048)。页面自身布局更窄时按「内容宽度 + 2×padding」收敛,两侧不留空白。
|
|
1332
|
+
# en: Upper bound of the long-layout image width when width is omitted (pixels, 320-2048). When the page lays out narrower, the image shrinks to content width + 2×padding so no side whitespace is left.
|
|
1330
1333
|
long_image_default_width = 900
|
|
1331
1334
|
# zh: long 布局未显式传 padding 时使用的内边距(像素,0-160)。
|
|
1332
1335
|
# en: Content padding used by the long layout when padding is omitted (pixels, 0-160).
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "Undefined-bot"
|
|
3
|
-
version = "3.
|
|
3
|
+
version = "3.17.1"
|
|
4
4
|
description = "QQ bot platform with cognitive memory architecture and multi-agent Skills, via OneBot V11."
|
|
5
5
|
readme = "README.md"
|
|
6
6
|
authors = [
|
|
@@ -58,6 +58,7 @@ Issues = "https://github.com/69gg/Undefined/issues"
|
|
|
58
58
|
[project.scripts]
|
|
59
59
|
Undefined = "Undefined.main:run"
|
|
60
60
|
Undefined-webui = "Undefined.webui:run"
|
|
61
|
+
deploy = "Undefined.deploy:main"
|
|
61
62
|
|
|
62
63
|
[[tool.uv.index]]
|
|
63
64
|
url = "https://pypi.org/simple"
|
|
@@ -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__: str = "3.
|
|
27
|
+
__version__: str = "3.17.1"
|
|
28
28
|
|
|
29
29
|
# symbol -> (module_path, attribute_name);首次访问时才 importlib 加载
|
|
30
30
|
_LAZY_IMPORTS: dict[str, tuple[str, str]] = {
|
|
@@ -202,6 +202,9 @@ class ClientSetupMixin:
|
|
|
202
202
|
self._meme_service: Any = None
|
|
203
203
|
if self.runtime_config is not None:
|
|
204
204
|
self.attachment_registry = AttachmentRegistry(
|
|
205
|
+
remote_download_allow_private_origins=(
|
|
206
|
+
self.runtime_config.attachment_remote_download_allow_private_origins
|
|
207
|
+
),
|
|
205
208
|
remote_download_max_bytes=_attachment_remote_download_max_bytes(
|
|
206
209
|
self.runtime_config
|
|
207
210
|
),
|
|
@@ -625,6 +628,9 @@ class ClientSetupMixin:
|
|
|
625
628
|
|
|
626
629
|
def apply_attachment_config(self, runtime_config: Config) -> None:
|
|
627
630
|
self.attachment_registry.set_limits(
|
|
631
|
+
remote_download_allow_private_origins=(
|
|
632
|
+
runtime_config.attachment_remote_download_allow_private_origins
|
|
633
|
+
),
|
|
628
634
|
remote_download_max_bytes=_attachment_remote_download_max_bytes(
|
|
629
635
|
runtime_config
|
|
630
636
|
),
|
|
@@ -20,13 +20,13 @@ from uuid import uuid4
|
|
|
20
20
|
import httpx
|
|
21
21
|
|
|
22
22
|
from Undefined.attachments.models import AttachmentRecord, _RemoteAttachmentTooLarge
|
|
23
|
+
from Undefined.attachments.remote import RemoteURLPolicy, stream_remote_url
|
|
23
24
|
from Undefined.attachments.segments import (
|
|
24
25
|
display_name_from_source,
|
|
25
26
|
is_http_url,
|
|
26
27
|
media_kind_from_value,
|
|
27
28
|
scope_from_context,
|
|
28
29
|
)
|
|
29
|
-
from Undefined.skills.http_config import build_httpx_client_kwargs
|
|
30
30
|
from Undefined.utils import io
|
|
31
31
|
from Undefined.utils.paths import (
|
|
32
32
|
ATTACHMENT_CACHE_DIR,
|
|
@@ -129,6 +129,7 @@ class AttachmentRegistry:
|
|
|
129
129
|
url_reference_max_records: int = _ATTACHMENT_URL_REFERENCE_MAX_RECORDS,
|
|
130
130
|
url_max_length: int = _ATTACHMENT_URL_MAX_LENGTH,
|
|
131
131
|
remote_download_max_bytes: int = _DEFAULT_REMOTE_DOWNLOAD_MAX_BYTES,
|
|
132
|
+
remote_download_allow_private_origins: list[str] | tuple[str, ...] = (),
|
|
132
133
|
proxy_config: Any | None = None,
|
|
133
134
|
) -> None:
|
|
134
135
|
self._registry_path = registry_path
|
|
@@ -140,6 +141,9 @@ class AttachmentRegistry:
|
|
|
140
141
|
self._url_reference_max_records = max(0, int(url_reference_max_records))
|
|
141
142
|
self._url_max_length = max(0, int(url_max_length))
|
|
142
143
|
self._remote_download_max_bytes = max(0, int(remote_download_max_bytes))
|
|
144
|
+
self._remote_url_policy = RemoteURLPolicy.create(
|
|
145
|
+
remote_download_allow_private_origins, self._url_max_length
|
|
146
|
+
)
|
|
143
147
|
self._proxy_config = proxy_config
|
|
144
148
|
self._lock = asyncio.Lock()
|
|
145
149
|
self._records: dict[str, AttachmentRecord] = {}
|
|
@@ -160,6 +164,9 @@ class AttachmentRegistry:
|
|
|
160
164
|
self,
|
|
161
165
|
*,
|
|
162
166
|
remote_download_max_bytes: int | None = None,
|
|
167
|
+
remote_download_allow_private_origins: list[str]
|
|
168
|
+
| tuple[str, ...]
|
|
169
|
+
| None = None,
|
|
163
170
|
max_cache_bytes: int | None = None,
|
|
164
171
|
max_records: int | None = None,
|
|
165
172
|
max_age_seconds: int | None = None,
|
|
@@ -167,7 +174,7 @@ class AttachmentRegistry:
|
|
|
167
174
|
url_max_length: int | None = None,
|
|
168
175
|
proxy_config: Any | None = None,
|
|
169
176
|
) -> None:
|
|
170
|
-
"""
|
|
177
|
+
"""批量更新注册表容量、TTL 限制与远程目标策略。"""
|
|
171
178
|
if remote_download_max_bytes is not None:
|
|
172
179
|
self._remote_download_max_bytes = max(0, int(remote_download_max_bytes))
|
|
173
180
|
if max_cache_bytes is not None:
|
|
@@ -180,6 +187,14 @@ class AttachmentRegistry:
|
|
|
180
187
|
self._url_reference_max_records = max(0, int(url_reference_max_records))
|
|
181
188
|
if url_max_length is not None:
|
|
182
189
|
self._url_max_length = max(0, int(url_max_length))
|
|
190
|
+
if remote_download_allow_private_origins is not None:
|
|
191
|
+
self._remote_url_policy = RemoteURLPolicy.create(
|
|
192
|
+
remote_download_allow_private_origins, self._url_max_length
|
|
193
|
+
)
|
|
194
|
+
else:
|
|
195
|
+
self._remote_url_policy = replace(
|
|
196
|
+
self._remote_url_policy, max_url_length=self._url_max_length
|
|
197
|
+
)
|
|
183
198
|
if proxy_config is not None:
|
|
184
199
|
self._proxy_config = proxy_config
|
|
185
200
|
|
|
@@ -767,6 +782,7 @@ class AttachmentRegistry:
|
|
|
767
782
|
await self.load()
|
|
768
783
|
if not self._normalized_url_ref(url):
|
|
769
784
|
raise ValueError("远程附件 URL 为空或超过长度上限")
|
|
785
|
+
self._remote_url_policy.validate(url)
|
|
770
786
|
normalized_kind = media_kind_from_value(kind)
|
|
771
787
|
normalized_media_type = (
|
|
772
788
|
"image" if normalized_kind == "image" else normalized_kind
|
|
@@ -901,9 +917,13 @@ class AttachmentRegistry:
|
|
|
901
917
|
description="远程附件未下载:remote_download_max_size_mb=0",
|
|
902
918
|
)
|
|
903
919
|
|
|
904
|
-
async def _stream(
|
|
905
|
-
async with
|
|
906
|
-
|
|
920
|
+
async def _stream() -> tuple[bytes, str]:
|
|
921
|
+
async with stream_remote_url(
|
|
922
|
+
url,
|
|
923
|
+
policy=self._remote_url_policy,
|
|
924
|
+
timeout=timeout,
|
|
925
|
+
client=self._http_client,
|
|
926
|
+
proxy_config=self._proxy_config,
|
|
907
927
|
) as response:
|
|
908
928
|
response.raise_for_status()
|
|
909
929
|
mime_type = (
|
|
@@ -924,18 +944,9 @@ class AttachmentRegistry:
|
|
|
924
944
|
return b"".join(chunks), mime_type
|
|
925
945
|
|
|
926
946
|
try:
|
|
927
|
-
|
|
928
|
-
|
|
929
|
-
|
|
930
|
-
client_kwargs = build_httpx_client_kwargs(
|
|
931
|
-
url,
|
|
932
|
-
proxy_scope="attachments",
|
|
933
|
-
timeout=timeout,
|
|
934
|
-
follow_redirects=True,
|
|
935
|
-
config=self._proxy_config,
|
|
936
|
-
)
|
|
937
|
-
async with httpx.AsyncClient(**client_kwargs) as client:
|
|
938
|
-
content, mime_type = await _stream(client)
|
|
947
|
+
# DNS、连接、重定向与读取共用总时限,避免逐跳重置超时。
|
|
948
|
+
async with asyncio.timeout(_DEFAULT_REMOTE_TIMEOUT_SECONDS):
|
|
949
|
+
content, mime_type = await _stream()
|
|
939
950
|
except _RemoteAttachmentTooLarge as exc:
|
|
940
951
|
return await self.register_remote_reference(
|
|
941
952
|
scope_key,
|