Undefined-bot 3.16.0__tar.gz → 3.17.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/.gitignore +5 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/ARCHITECTURE.md +1 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/CHANGELOG.md +29 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/PKG-INFO +31 -21
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/README.md +30 -20
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/config.toml.example +6 -4
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/pyproject.toml +2 -1
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/__init__.py +1 -1
- undefined_bot-3.17.0/src/Undefined/deploy/__init__.py +12 -0
- undefined_bot-3.17.0/src/Undefined/deploy/__main__.py +8 -0
- undefined_bot-3.17.0/src/Undefined/deploy/catalog.py +285 -0
- undefined_bot-3.17.0/src/Undefined/deploy/cli.py +296 -0
- undefined_bot-3.17.0/src/Undefined/deploy/commands.py +26 -0
- undefined_bot-3.17.0/src/Undefined/deploy/config_patch.py +258 -0
- undefined_bot-3.17.0/src/Undefined/deploy/docker_cli.py +331 -0
- undefined_bot-3.17.0/src/Undefined/deploy/generate.py +702 -0
- undefined_bot-3.17.0/src/Undefined/deploy/images.py +189 -0
- undefined_bot-3.17.0/src/Undefined/deploy/nagaagent.py +211 -0
- undefined_bot-3.17.0/src/Undefined/deploy/runner.py +898 -0
- undefined_bot-3.17.0/src/Undefined/deploy/state.py +284 -0
- undefined_bot-3.17.0/src/Undefined/deploy/templates/.dockerignore +54 -0
- undefined_bot-3.17.0/src/Undefined/deploy/templates/Dockerfile.bot +91 -0
- undefined_bot-3.17.0/src/Undefined/deploy/templates/compose.base.yaml +14 -0
- undefined_bot-3.17.0/src/Undefined/deploy/templates/compose.bot.yaml +52 -0
- undefined_bot-3.17.0/src/Undefined/deploy/templates/compose.firecrawl.yaml +131 -0
- undefined_bot-3.17.0/src/Undefined/deploy/templates/compose.lxmusic2api.yaml +35 -0
- undefined_bot-3.17.0/src/Undefined/deploy/templates/compose.napcat.yaml +35 -0
- undefined_bot-3.17.0/src/Undefined/deploy/templates/compose.searxng.yaml +33 -0
- undefined_bot-3.17.0/src/Undefined/deploy/templates/lxmusic2api.config.toml +29 -0
- undefined_bot-3.17.0/src/Undefined/deploy/templates/napcat.ws.json +26 -0
- undefined_bot-3.17.0/src/Undefined/deploy/templates/searxng.settings.yml +27 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/webui/core.py +10 -1
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/webui/static/js/runtime.js +44 -1
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/LICENSE +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/config/README.md +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/config/mcp.json.example +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/img/undefined-9527.png +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/img/xlwy.jpg +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/res/IMPORTANT/each.md +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/res/README.md +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/res/prompts/agent_self_intro.txt +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/res/prompts/analyze_multimodal.txt +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/res/prompts/describe_image.txt +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/res/prompts/describe_meme_image.txt +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/res/prompts/generate_title.txt +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/res/prompts/historian_profile_merge.md +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/res/prompts/historian_rewrite.md +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/res/prompts/image_gen_moderation.txt +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/res/prompts/injection_detector.txt +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/res/prompts/injection_response_agent.txt +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/res/prompts/judge_meme_image.txt +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/res/prompts/merge_message_summaries.txt +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/res/prompts/merge_summaries.txt +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/res/prompts/message_summary.txt +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/res/prompts/naga_message_moderation.txt +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/res/prompts/stats_analysis.txt +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/res/prompts/summarize.txt +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/res/prompts/undefined.xml +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/res/prompts/undefined_nagaagent.xml +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/README.md +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/README.md +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/__main__.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/ai/__init__.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/ai/client/__init__.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/ai/client/ask_loop.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/ai/client/queue.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/ai/client/setup.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/ai/crawl4ai_support.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/ai/http.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/ai/llm/__init__.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/ai/llm/requester.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/ai/llm/retry.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/ai/llm/sanitize.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/ai/llm/streaming.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/ai/llm/thinking.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/ai/llm/types.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/ai/model_selector.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/ai/multimodal/__init__.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/ai/multimodal/analyzer.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/ai/multimodal/constants.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/ai/multimodal/detection.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/ai/multimodal/parsing.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/ai/parsing.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/ai/prompts/__init__.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/ai/prompts/builder.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/ai/prompts/cognitive.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/ai/prompts/constants.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/ai/prompts/current_input.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/ai/prompts/file_includes.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/ai/prompts/system_context.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/ai/prompts/system_info.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/ai/queue_budget.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/ai/retrieval.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/ai/summaries.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/ai/tokens.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/ai/tool_search.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/ai/tooling.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/ai/transports/__init__.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/ai/transports/anthropic_transport.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/ai/transports/openai_transport.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/ai/transports/replay.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/api/__init__.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/api/_context.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/api/_helpers.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/api/_naga_state.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/api/_openapi.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/api/_probes.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/api/app.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/api/naga_store.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/api/routes/__init__.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/api/routes/automations.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/api/routes/chat.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/api/routes/cognitive.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/api/routes/commands.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/api/routes/health.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/api/routes/memes.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/api/routes/memory.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/api/routes/naga/__init__.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/api/routes/naga/auth.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/api/routes/naga/bind.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/api/routes/naga/send.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/api/routes/naga/unbind.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/api/routes/onebot_files.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/api/routes/schedules.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/api/routes/system.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/api/routes/tools.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/api/routes/weixin.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/api/webchat_store.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/arxiv/__init__.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/arxiv/client.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/arxiv/downloader.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/arxiv/models.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/arxiv/parser.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/arxiv/sender.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/attachments/__init__.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/attachments/forward_snapshot.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/attachments/models.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/attachments/registry.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/attachments/render.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/attachments/segments.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/automations/__init__.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/automations/address.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/automations/catalog.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/automations/clock.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/automations/constants.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/automations/engine.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/automations/extract.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/automations/logutil.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/automations/match.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/automations/mentions.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/automations/migrate.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/automations/runner.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/automations/service.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/automations/short.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/automations/storage.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/automations/template.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/automations/triggers.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/automations/validate.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/bilibili/__init__.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/bilibili/api_client.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/bilibili/danmaku.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/bilibili/download_core.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/bilibili/downloader.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/bilibili/errors.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/bilibili/format.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/bilibili/models.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/bilibili/opus_parser.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/bilibili/opus_render.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/bilibili/opus_sender.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/bilibili/parser.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/bilibili/sender.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/bilibili/wbi.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/bilibili/wbi_request.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/changelog.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/cognitive/__init__.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/cognitive/chroma_scheduler.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/cognitive/historian/__init__.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/cognitive/historian/helpers.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/cognitive/historian/tools.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/cognitive/historian/worker.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/cognitive/job_queue.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/cognitive/profile_storage.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/cognitive/service/__init__.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/cognitive/service/helpers.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/cognitive/service/service.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/cognitive/vector_store.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/cognitive/vector_store_compat.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/config/__init__.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/config/admin.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/config/api_modes.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/config/build_config.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/config/coercers.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/config/config_class.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/config/domain_parsers.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/config/env_registry.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/config/hot_reload.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/config/load_sections/__init__.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/config/load_sections/access.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/config/load_sections/core.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/config/load_sections/domains.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/config/load_sections/finalize.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/config/load_sections/history_skills.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/config/load_sections/integrations.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/config/load_sections/knowledge.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/config/load_sections/logging_tools.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/config/load_sections/models.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/config/load_sections/network.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/config/loader.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/config/manager.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/config/model_parsers.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/config/models.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/config/naga_policy.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/config/onebot.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/config/parsers/__init__.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/config/parsers/agent.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/config/parsers/chat.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/config/parsers/embedding.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/config/parsers/grok.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/config/parsers/helpers.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/config/parsers/historian.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/config/parsers/image.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/config/parsers/naga.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/config/parsers/pool.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/config/parsers/security.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/config/parsers/summary.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/config/parsers/vision.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/config/resolvers.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/config/search.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/config/toml_io.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/config/webui_settings.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/context.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/context_resource_registry.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/douyin/__init__.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/douyin/client.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/douyin/downloader.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/douyin/models.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/douyin/parser.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/douyin/sender.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/end_summary_storage.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/faq.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/github/__init__.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/github/client.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/github/models.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/github/parser.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/github/sender.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/handlers/__init__.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/handlers/auto_extract.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/handlers/message_flow.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/handlers/poke.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/handlers/repeat.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/injection_response_agent.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/knowledge/__init__.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/knowledge/chunker.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/knowledge/embedder.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/knowledge/manager.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/knowledge/reranker.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/knowledge/runtime.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/knowledge/store.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/main.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/mcp/__init__.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/mcp/registry.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/memes/__init__.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/memes/_image_utils.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/memes/ingest.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/memes/models.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/memes/search.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/memes/service.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/memes/store.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/memes/vector_store.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/memes/worker.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/memory.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/onebot/__init__.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/onebot/client.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/onebot/file_errors.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/onebot/file_references.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/onebot/file_store.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/onebot/file_transport.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/onebot/message.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/py.typed +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/rate_limit.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/render.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/services/__init__.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/services/bugfix_command.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/services/command.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/services/commands/__init__.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/services/commands/catalog.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/services/commands/context.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/services/commands/registry.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/services/coordinator/__init__.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/services/coordinator/background.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/services/coordinator/batching.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/services/coordinator/group.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/services/coordinator/message_ids.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/services/coordinator/private.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/services/message_batcher/__init__.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/services/message_batcher/scheduler.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/services/message_batcher/state.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/services/message_summary_fetch.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/services/model_pool.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/services/queue_manager.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/services/security.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/services/stats_command.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/README.md +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/__init__.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/README.md +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/__init__.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/agent_tool_registry.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/code_delivery_agent/config.json +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/code_delivery_agent/docker_utils.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/code_delivery_agent/handler.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/code_delivery_agent/intro.md +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/code_delivery_agent/mcp.json +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/code_delivery_agent/prompt.md +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/code_delivery_agent/tools/copy/config.json +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/code_delivery_agent/tools/copy/handler.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/code_delivery_agent/tools/delete/config.json +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/code_delivery_agent/tools/delete/handler.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/code_delivery_agent/tools/diff/config.json +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/code_delivery_agent/tools/diff/handler.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/code_delivery_agent/tools/end/config.json +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/code_delivery_agent/tools/end/handler.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/code_delivery_agent/tools/glob/config.json +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/code_delivery_agent/tools/glob/handler.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/code_delivery_agent/tools/grep/config.json +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/code_delivery_agent/tools/grep/handler.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/code_delivery_agent/tools/init_docker/config.json +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/code_delivery_agent/tools/init_docker/handler.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/code_delivery_agent/tools/read/config.json +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/code_delivery_agent/tools/read/handler.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/code_delivery_agent/tools/run_bash_command/config.json +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/code_delivery_agent/tools/run_bash_command/handler.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/code_delivery_agent/tools/todo/config.json +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/code_delivery_agent/tools/todo/handler.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/code_delivery_agent/tools/tree/config.json +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/code_delivery_agent/tools/tree/handler.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/code_delivery_agent/tools/write/config.json +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/code_delivery_agent/tools/write/handler.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/entertainment_agent/README.md +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/entertainment_agent/config.json +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/entertainment_agent/handler.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/entertainment_agent/intro.md +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/entertainment_agent/prompt.md +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/entertainment_agent/tools/__init__.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/entertainment_agent/tools/ai_draw_one/config.json +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/entertainment_agent/tools/ai_draw_one/handler.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/entertainment_agent/tools/horoscope/config.json +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/entertainment_agent/tools/horoscope/handler.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/entertainment_agent/tools/minecraft_skin/config.json +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/entertainment_agent/tools/minecraft_skin/handler.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/entertainment_agent/tools/renjian/config.json +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/entertainment_agent/tools/renjian/handler.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/entertainment_agent/tools/wenchang_dijun/config.json +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/entertainment_agent/tools/wenchang_dijun/handler.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/file_analysis_agent/README.md +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/file_analysis_agent/__init__.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/file_analysis_agent/config.json +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/file_analysis_agent/handler.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/file_analysis_agent/intro.md +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/file_analysis_agent/prompt.md +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/file_analysis_agent/tools/__init__.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/file_analysis_agent/tools/analyze_code/config.json +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/file_analysis_agent/tools/analyze_code/handler.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/file_analysis_agent/tools/analyze_multimodal/config.json +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/file_analysis_agent/tools/analyze_multimodal/handler.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/file_analysis_agent/tools/cleanup_temp/config.json +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/file_analysis_agent/tools/cleanup_temp/handler.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/file_analysis_agent/tools/describe_pdf_page/config.json +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/file_analysis_agent/tools/describe_pdf_page/handler.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/file_analysis_agent/tools/detect_file_type/config.json +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/file_analysis_agent/tools/detect_file_type/handler.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/file_analysis_agent/tools/download_file/config.json +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/file_analysis_agent/tools/download_file/handler.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/file_analysis_agent/tools/extract_archive/config.json +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/file_analysis_agent/tools/extract_archive/handler.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/file_analysis_agent/tools/extract_docx/config.json +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/file_analysis_agent/tools/extract_docx/handler.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/file_analysis_agent/tools/extract_pdf/config.json +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/file_analysis_agent/tools/extract_pdf/handler.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/file_analysis_agent/tools/extract_pptx/config.json +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/file_analysis_agent/tools/extract_pptx/handler.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/file_analysis_agent/tools/extract_xlsx/config.json +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/file_analysis_agent/tools/extract_xlsx/handler.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/file_analysis_agent/tools/read_text_file/config.json +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/file_analysis_agent/tools/read_text_file/handler.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/info_agent/README.md +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/info_agent/config.json +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/info_agent/handler.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/info_agent/intro.md +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/info_agent/prompt.md +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/info_agent/tools/__init__.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/info_agent/tools/arxiv_search/config.json +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/info_agent/tools/arxiv_search/handler.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/info_agent/tools/baiduhot/config.json +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/info_agent/tools/baiduhot/handler.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/info_agent/tools/base64/config.json +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/info_agent/tools/base64/handler.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/info_agent/tools/bilibili_search/config.json +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/info_agent/tools/bilibili_search/handler.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/info_agent/tools/bilibili_user_info/config.json +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/info_agent/tools/bilibili_user_info/handler.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/info_agent/tools/douyinhot/config.json +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/info_agent/tools/douyinhot/handler.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/info_agent/tools/gold_price/config.json +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/info_agent/tools/gold_price/handler.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/info_agent/tools/hash/config.json +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/info_agent/tools/hash/handler.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/info_agent/tools/history/config.json +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/info_agent/tools/history/handler.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/info_agent/tools/net_check/config.json +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/info_agent/tools/net_check/handler.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/info_agent/tools/qq_level_query/config.json +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/info_agent/tools/qq_level_query/handler.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/info_agent/tools/speed/config.json +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/info_agent/tools/speed/handler.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/info_agent/tools/tcping/config.json +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/info_agent/tools/tcping/handler.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/info_agent/tools/weather_query/config.json +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/info_agent/tools/weather_query/handler.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/info_agent/tools/weibohot/config.json +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/info_agent/tools/weibohot/handler.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/info_agent/tools/whois/config.json +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/info_agent/tools/whois/handler.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/intro_generator.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/intro_utils.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/naga_code_analysis_agent/README.md +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/naga_code_analysis_agent/config.json +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/naga_code_analysis_agent/handler.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/naga_code_analysis_agent/intro.md +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/naga_code_analysis_agent/mcp.json +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/naga_code_analysis_agent/prompt.md +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/naga_code_analysis_agent/tools/__init__.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/naga_code_analysis_agent/tools/glob/config.json +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/naga_code_analysis_agent/tools/glob/handler.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/naga_code_analysis_agent/tools/list_directory/config.json +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/naga_code_analysis_agent/tools/list_directory/handler.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/naga_code_analysis_agent/tools/read_file/config.json +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/naga_code_analysis_agent/tools/read_file/handler.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/naga_code_analysis_agent/tools/read_naga_intro/config.json +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/naga_code_analysis_agent/tools/read_naga_intro/handler.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/naga_code_analysis_agent/tools/search_file_content/config.json +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/naga_code_analysis_agent/tools/search_file_content/handler.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/runner/__init__.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/runner/context.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/runner/loop.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/runner/tools.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/runner/webchat_utils.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/summary_agent/__init__.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/summary_agent/config.json +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/summary_agent/handler.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/summary_agent/intro.md +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/summary_agent/prompt.md +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/summary_agent/tools/__init__.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/summary_agent/tools/fetch_messages/config.json +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/summary_agent/tools/fetch_messages/handler.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/undefined_self_code_agent/README.md +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/undefined_self_code_agent/__init__.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/undefined_self_code_agent/config.json +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/undefined_self_code_agent/handler.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/undefined_self_code_agent/intro.md +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/undefined_self_code_agent/prompt.md +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/undefined_self_code_agent/tools/__init__.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/undefined_self_code_agent/tools/_shared.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/undefined_self_code_agent/tools/glob/config.json +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/undefined_self_code_agent/tools/glob/handler.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/undefined_self_code_agent/tools/list_directory/config.json +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/undefined_self_code_agent/tools/list_directory/handler.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/undefined_self_code_agent/tools/read_file/config.json +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/undefined_self_code_agent/tools/read_file/handler.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/undefined_self_code_agent/tools/search_file_content/config.json +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/undefined_self_code_agent/tools/search_file_content/handler.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/web_agent/README.md +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/web_agent/callable.json +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/web_agent/config.json +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/web_agent/handler.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/web_agent/intro.md +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/web_agent/mcp.json +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/web_agent/prompt.md +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/web_agent/tools/__init__.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/web_agent/tools/crawl_webpage/config.json +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/web_agent/tools/crawl_webpage/handler.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/web_agent/tools/firecrawl_search/config.json +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/web_agent/tools/firecrawl_search/handler.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/web_agent/tools/grok_search/config.json +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/web_agent/tools/grok_search/handler.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/web_agent/tools/web_search/config.json +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/web_agent/tools/web_search/handler.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/anthropic_skills/__init__.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/anthropic_skills/loader.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/commands/README.md +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/commands/admin/README.md +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/commands/admin/config.json +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/commands/admin/handler.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/commands/bugfix/README.md +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/commands/bugfix/config.json +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/commands/bugfix/handler.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/commands/changelog/README.md +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/commands/changelog/config.json +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/commands/changelog/handler.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/commands/copyright/README.md +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/commands/copyright/config.json +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/commands/copyright/handler.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/commands/faq/README.md +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/commands/faq/config.json +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/commands/faq/handler.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/commands/feedback/README.md +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/commands/feedback/config.json +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/commands/feedback/handler.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/commands/help/README.md +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/commands/help/config.json +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/commands/help/handler.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/commands/naga/README.md +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/commands/naga/config.json +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/commands/naga/handler.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/commands/naga/policy.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/commands/profile/README.md +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/commands/profile/config.json +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/commands/profile/handler.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/commands/stats/README.md +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/commands/stats/config.json +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/commands/stats/handler.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/commands/summary/README.md +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/commands/summary/config.json +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/commands/summary/handler.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/commands/version/README.md +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/commands/version/config.json +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/commands/version/handler.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/http_client.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/http_config.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/pipelines/__init__.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/pipelines/arxiv/config.json +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/pipelines/arxiv/handler.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/pipelines/bilibili/config.json +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/pipelines/bilibili/handler.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/pipelines/bilibili_opus/config.json +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/pipelines/bilibili_opus/handler.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/pipelines/context.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/pipelines/douyin/config.json +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/pipelines/douyin/handler.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/pipelines/github/config.json +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/pipelines/github/handler.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/pipelines/models.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/pipelines/registry.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/registry.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/shared.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/tools/README.md +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/tools/__init__.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/tools/arxiv_paper/README.md +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/tools/arxiv_paper/callable.json +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/tools/arxiv_paper/config.json +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/tools/arxiv_paper/handler.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/tools/bilibili_opus/README.md +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/tools/bilibili_opus/callable.json +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/tools/bilibili_opus/config.json +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/tools/bilibili_opus/handler.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/tools/bilibili_video/README.md +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/tools/bilibili_video/callable.json +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/tools/bilibili_video/config.json +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/tools/bilibili_video/handler.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/tools/calculator/README.md +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/tools/calculator/callable.json +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/tools/calculator/config.json +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/tools/calculator/handler.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/tools/changelog_query/README.md +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/tools/changelog_query/config.json +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/tools/changelog_query/handler.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/tools/douyin_video/README.md +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/tools/douyin_video/callable.json +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/tools/douyin_video/config.json +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/tools/douyin_video/handler.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/tools/end/README.md +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/tools/end/config.json +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/tools/end/handler.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/tools/fetch_image_uid/README.md +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/tools/fetch_image_uid/config.json +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/tools/fetch_image_uid/handler.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/tools/get_current_time/README.md +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/tools/get_current_time/callable.json +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/tools/get_current_time/config.json +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/tools/get_current_time/handler.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/tools/get_picture/README.md +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/tools/get_picture/config.json +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/tools/get_picture/handler.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/tools/get_user_info/README.md +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/tools/get_user_info/config.json +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/tools/get_user_info/handler.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/tools/knowledge_list/README.md +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/tools/knowledge_list/config.json +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/tools/knowledge_list/handler.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/tools/knowledge_semantic_search/README.md +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/tools/knowledge_semantic_search/config.json +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/tools/knowledge_semantic_search/handler.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/tools/knowledge_text_search/README.md +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/tools/knowledge_text_search/config.json +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/tools/knowledge_text_search/handler.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/tools/python_interpreter/README.md +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/tools/python_interpreter/config.json +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/tools/python_interpreter/handler.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/tools/qq_like/README.md +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/tools/qq_like/config.json +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/tools/qq_like/handler.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/tools/task_progress/README.md +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/tools/task_progress/config.json +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/tools/task_progress/handler.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/README.md +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/__init__.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/attachments/README.md +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/attachments/get_uid_by_url/config.json +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/attachments/get_uid_by_url/handler.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/attachments/get_url_by_uid/config.json +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/attachments/get_url_by_uid/handler.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/automation/README.md +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/automation/_runtime.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/automation/create/config.json +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/automation/create/handler.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/automation/delete/config.json +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/automation/delete/handler.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/automation/get/config.json +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/automation/get/handler.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/automation/list/config.json +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/automation/list/handler.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/automation/set_enabled/config.json +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/automation/set_enabled/handler.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/automation/update/config.json +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/automation/update/handler.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/cognitive/README.md +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/cognitive/get_profile/config.json +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/cognitive/get_profile/handler.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/cognitive/search_events/config.json +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/cognitive/search_events/handler.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/cognitive/search_profiles/config.json +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/cognitive/search_profiles/handler.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/commands/README.md +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/commands/get/config.json +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/commands/get/handler.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/commands/search/config.json +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/commands/search/handler.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/contacts/README.md +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/contacts/query_friends/config.json +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/contacts/query_friends/handler.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/contacts/query_groups/config.json +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/contacts/query_groups/handler.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/group/README.md +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/group/find_member/config.json +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/group/find_member/handler.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/group/get_avatar/config.json +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/group/get_avatar/handler.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/group/get_files/config.json +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/group/get_files/handler.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/group/get_honor_info/config.json +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/group/get_honor_info/handler.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/group/get_member_info/config.json +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/group/get_member_info/handler.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/group/get_member_list/config.json +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/group/get_member_list/handler.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/group/get_member_title/config.json +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/group/get_member_title/handler.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/group_analysis/README.md +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/group_analysis/activity_trend/config.json +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/group_analysis/activity_trend/handler.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/group_analysis/filter_members/config.json +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/group_analysis/filter_members/handler.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/group_analysis/inactive_risk/config.json +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/group_analysis/inactive_risk/handler.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/group_analysis/join_statistics/config.json +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/group_analysis/join_statistics/handler.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/group_analysis/level_distribution/config.json +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/group_analysis/level_distribution/handler.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/group_analysis/member_activity/config.json +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/group_analysis/member_activity/handler.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/group_analysis/member_messages/config.json +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/group_analysis/member_messages/handler.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/group_analysis/member_structure/config.json +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/group_analysis/member_structure/handler.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/group_analysis/message_mix/config.json +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/group_analysis/message_mix/handler.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/group_analysis/new_member_activity/config.json +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/group_analysis/new_member_activity/handler.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/group_analysis/rank_members/config.json +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/group_analysis/rank_members/handler.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/mcp/README.md +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/mcp/__init__.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/memes/README.md +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/memes/search_memes/config.json +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/memes/search_memes/handler.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/memes/send_meme_by_uid/config.json +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/memes/send_meme_by_uid/handler.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/memory/README.md +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/memory/add/config.json +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/memory/add/handler.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/memory/delete/config.json +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/memory/delete/handler.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/memory/list/config.json +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/memory/list/handler.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/memory/update/config.json +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/memory/update/handler.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/messages/README.md +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/messages/context_utils.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/messages/get_forward_msg/config.json +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/messages/get_forward_msg/handler.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/messages/get_messages_by_time/config.json +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/messages/get_messages_by_time/handler.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/messages/get_recent_messages/config.json +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/messages/get_recent_messages/handler.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/messages/list_emojis/config.json +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/messages/list_emojis/handler.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/messages/lookup_emoji_id/config.json +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/messages/lookup_emoji_id/handler.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/messages/react_message_emoji/config.json +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/messages/react_message_emoji/handler.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/messages/send_group_sign/config.json +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/messages/send_group_sign/handler.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/messages/send_message/config.json +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/messages/send_message/handler.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/messages/send_poke/config.json +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/messages/send_poke/handler.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/messages/send_private_message/config.json +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/messages/send_private_message/handler.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/messages/send_text_file/callable.json +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/messages/send_text_file/config.json +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/messages/send_text_file/handler.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/messages/send_url_file/callable.json +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/messages/send_url_file/config.json +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/messages/send_url_file/handler.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/messages/send_voice/config.json +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/messages/send_voice/handler.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/music/README.md +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/music/_client.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/music/_constants.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/music/_tools.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/music/_track_refs.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/music/browse_playlists/config.json +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/music/browse_playlists/handler.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/music/browse_rankings/config.json +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/music/browse_rankings/handler.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/music/find_song_matches/config.json +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/music/find_song_matches/handler.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/music/get_audio/config.json +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/music/get_audio/handler.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/music/get_comments/config.json +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/music/get_comments/handler.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/music/get_cover/config.json +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/music/get_cover/handler.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/music/get_hot_search/config.json +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/music/get_hot_search/handler.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/music/get_lyrics/config.json +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/music/get_lyrics/handler.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/music/search_playlists/config.json +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/music/search_playlists/handler.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/music/search_songs/config.json +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/music/search_songs/handler.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/notices/README.md +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/notices/get/config.json +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/notices/get/handler.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/notices/list/config.json +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/notices/list/handler.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/notices/stats/config.json +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/notices/stats/handler.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/render/README.md +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/render/layout.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/render/render_html/config.json +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/render/render_html/handler.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/render/render_latex/config.json +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/render/render_latex/handler.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/render/render_markdown/config.json +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/render/render_markdown/handler.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/token_usage_storage.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/utils/__init__.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/utils/cache.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/utils/coerce.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/utils/common.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/utils/cors.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/utils/easter_egg_calls.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/utils/fake_at.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/utils/file_lock.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/utils/group_metrics.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/utils/history.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/utils/http_download.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/utils/io.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/utils/logging.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/utils/member_utils.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/utils/message_reply.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/utils/message_targets.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/utils/message_turn.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/utils/message_utils.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/utils/paths.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/utils/qq_emoji.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/utils/queue_intervals.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/utils/recent_messages.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/utils/render_cache.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/utils/request_params.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/utils/resources.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/utils/scheduler.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/utils/self_update.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/utils/sender.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/utils/sender_helpers.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/utils/time_utils.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/utils/tool_calls.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/utils/xml.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/webui/__init__.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/webui/__main__.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/webui/app.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/webui/routes/__init__.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/webui/routes/_auth.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/webui/routes/_bot.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/webui/routes/_config.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/webui/routes/_index.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/webui/routes/_logs.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/webui/routes/_memes.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/webui/routes/_runtime.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/webui/routes/_shared.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/webui/routes/_system.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/webui/routes/_weixin.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/webui/static/css/.stylelintrc.json +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/webui/static/css/app.css +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/webui/static/css/base.css +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/webui/static/css/components.css +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/webui/static/css/highlight-github.min.css +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/webui/static/css/landing.css +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/webui/static/css/responsive.css +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/webui/static/css/style.css +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/webui/static/css/variables.css +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/webui/static/css/workflow.css +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/webui/static/favicon.svg +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/webui/static/js/api.js +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/webui/static/js/auth.js +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/webui/static/js/bot.js +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/webui/static/js/config-form.js +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/webui/static/js/i18n.js +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/webui/static/js/log-view.js +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/webui/static/js/logs.js +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/webui/static/js/main.js +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/webui/static/js/memes.js +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/webui/static/js/schedules.js +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/webui/static/js/state.js +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/webui/static/js/ui.js +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/webui/static/js/vendor/highlight.min.js +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/webui/static/js/vendor/highlightjs.LICENSE +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/webui/static/js/vendor/marked.min.js +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/webui/static/js/weixin.js +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/webui/static/js/workflow-canvas.js +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/webui/static/js/workflow-graph.js +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/webui/static/js/workflow-inspector.js +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/webui/templates/index.html +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/webui/utils/__init__.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/webui/utils/comment.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/webui/utils/config_io.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/webui/utils/config_sync.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/webui/utils/toml_render.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/weixin/__init__.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/weixin/audio.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/weixin/models.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/weixin/service.py +0 -0
- {undefined_bot-3.16.0 → undefined_bot-3.17.0}/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,32 @@
|
|
|
1
|
+
## v3.17.0 容器化一键部署
|
|
2
|
+
|
|
3
|
+
本版本新增 `uv run deploy`:一条命令把本体、NapCat 与可选自托管服务编排成 Docker Compose,按部署模式自动对齐 `config.toml`、生成并复用凭据,最后输出全部管理入口与凭据;同时补上镜像的 CI 构建与多架构发布。
|
|
4
|
+
|
|
5
|
+
- 新增部署入口 `uv run deploy`(`up` / `down` / `status` / `logs`)。向导只问四件事:本体部署方式、额外部署哪些自托管服务、发布端口的绑定地址、是否拉取 NagaAgent 子模块;**默认不部署任何可选服务**,回车即「全不部署」(重跑时表示沿用上次选择)。`--yes` 走非交互默认值;`--dry-run` 只打印将写入的 `config.toml` 差异、生成的 compose/.env 与**将执行的命令**,不落盘、不建目录、不写备份。
|
|
6
|
+
- 两种部署模式:`container`(默认)把本体也放进 compose,镜像入口是 WebUI 并由它托管 Bot 进程(写入 `[webui].autostart_bot = true`);`host` 只用 Docker 跑依赖服务,本体仍在宿主机启动。
|
|
7
|
+
- `container` 模式把**整个仓库目录**以可写方式挂到容器内的 `/data/Undefined`(`res/`、`img/` 只读覆盖同名目录,`deploy/data`、`deploy/logs` 嵌套为 `data/`、`logs/`)。`up` 写 `config.toml` 走「临时文件 + `os.replace`」原子替换,单文件 bind mount 绑的是替换前的 inode,容器会一直读旧配置而 compose 也不会因此重建容器;挂目录同时保证 WebUI 在线改配置(原地写)仍然可用。
|
|
8
|
+
- 地址与端口按模式对齐:容器内走 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` 只作监听语义、不会被写成连接地址。
|
|
9
|
+
- 凭据自动生成并复用已有值,重跑不会把已生效的 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/` 整体不入库。
|
|
10
|
+
- 写入面严格限定在服务拓扑:模型端、访问控制与提示词一律不碰。NagaAgent 相关**只写** `[features].nagaagent_mode_enabled`,`[naga]` 整节(`enabled` / `api_url` / `api_key` / `mode`)原样保留——既不清空已填的凭据,也不会关掉你自己开着的网关。
|
|
11
|
+
- NapCat 以 `MODE=ws` 作正向 WebSocket 服务端,端口与令牌由生成的 `deploy/napcat/ws.json` 只读覆盖镜像模板,容器每次启动重新写出;登录之后 NapCat 优先读账号级 `onebot11_<QQ>.json` 且没有 fs.watch,`up` 的输出会点名该文件并给出处置办法,不再一律报「已就绪」。
|
|
12
|
+
- 自托管服务: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。
|
|
13
|
+
- `container` 模式下 `python_interpreter` / `code_delivery_agent` 通过挂载宿主 `/var/run/docker.sock` 走 DooD(不启 DinD),本体容器额外禁止提权;`down --purge` 会连同 `deploy/` 下的数据与凭据一并删除,不可恢复。
|
|
14
|
+
- 发布流程新增镜像构建:amd64 与 arm64 分别在原生 runner 上构建并按 digest 推送,再由合并任务生成 manifest list,产出 `ghcr.io/<owner>/undefined-bot:<tag>` 与 `undefined-lxmusic2api:<短sha>`,顺序在版本发布之前。GHCR 包首次推送默认为 private,拉取前需要 `docker login ghcr.io` 或把包改为 public。
|
|
15
|
+
- 部署过程本身按「失败可收拾」设计:`STATE.json` 在 `compose up` 之前落盘,任何失败之后 `down` / `status` / `logs` 仍然可用;镜像拉取超时按策略选择(首次部署用长超时);NapCat WebUI 的容器内端口固定,覆盖宿主端口不会让它失联。
|
|
16
|
+
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
## v3.16.1 自托管服务部署依赖说明
|
|
20
|
+
|
|
21
|
+
本版本补齐部署文档中长期缺失的一块:除 Python 运行环境外,Undefined 还需要连接若干由部署方自行搭建的服务,此前这些依赖只散落在配置字段注释里,没有一处说明哪些是必需的、不部署会失去什么。
|
|
22
|
+
|
|
23
|
+
- 部署文档新增「需要一并部署的自托管服务(概览)」,明确四项服务的必要性与影响面:OneBot V11 协议端(NapCat / Lagrange.Core)为必需项,QQ 消息的收发完全由协议端决定;SearXNG 只影响内置 `web_search`;Firecrawl 默认关闭,可用官方 keyless、官方 + 自己的 API Key 或自部署实例;lxmusic2api 不部署时整组 `music.*` 工具隐藏。每项给出配置位置与官方部署说明链接,不重复上游安装步骤。
|
|
24
|
+
- 同一节补充宿主环境依赖:Docker(Code Delivery Agent,可 `enabled = false` 关闭)、FFmpeg(Bilibili 音视频合并、原生语音与微信侧 SILK 编码),以及本地子进程 MCP 服务器所需的运行时(`npx` 需要 Node.js,`uvx` 随 `uv` 一同安装,无需 Node.js)。概览放在源码部署的安装步骤之后、配置环境之前,pip/uv tool 部署同样适用。
|
|
25
|
+
- 配置文档在 `[onebot]`、`[search]`、`[lxmusic2api]` 对应小节补充部署前提与可选性说明,`config.toml.example` 同步补注 SearXNG 与 Firecrawl 的自部署提示。
|
|
26
|
+
- 首页 Release 下载速查压缩为一张三列表格(目标 / 文件 / 平台),去掉与正文重复的表述。
|
|
27
|
+
|
|
28
|
+
---
|
|
29
|
+
|
|
1
30
|
## v3.16.0 Bilibili 图文(opus)提取
|
|
2
31
|
|
|
3
32
|
本版本为 B 站内容自动提取补齐图文(opus / 动态)类型,命中图文链接后发送一次合并转发:第一条是图文元数据、第二条起是正文,文字与图片按原顺序混排,正文超长自动分段;正文里的图文与视频卡片各自成为嵌套转发节点;新增的 `bilibili_opus` 工具还支持按字数区间或关键词读取正文。
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: Undefined-bot
|
|
3
|
-
Version: 3.
|
|
3
|
+
Version: 3.17.0
|
|
4
4
|
Summary: QQ bot platform with cognitive memory architecture and multi-agent Skills, via OneBot V11.
|
|
5
5
|
Project-URL: Repository, https://github.com/69gg/Undefined
|
|
6
6
|
Project-URL: Issues, https://github.com/69gg/Undefined/issues
|
|
@@ -83,29 +83,16 @@ Description-Content-Type: text/markdown
|
|
|
83
83
|
|
|
84
84
|
## Release 下载速查
|
|
85
85
|
|
|
86
|
-
|
|
86
|
+
**部署 QQ Bot 本身不需要下载 Release**:Release 里都是可选组件。源码部署见下方[快速开始](#-快速开始-源码模式),安装包用途与平台对应如下:
|
|
87
87
|
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
| 目标 | 是否需要下载 Release | 选择 |
|
|
88
|
+
| 目标 | 文件 | 平台 |
|
|
91
89
|
| --- | --- | --- |
|
|
92
|
-
| 部署 / 运行
|
|
93
|
-
|
|
|
94
|
-
|
|
|
95
|
-
|
|
|
96
|
-
|
|
97
|
-
平台文件选择:
|
|
98
|
-
|
|
99
|
-
| 平台 | 推荐下载 |
|
|
100
|
-
| --- | --- |
|
|
101
|
-
| Windows x64 | `*-windows-x64-setup.exe`;批量部署或系统管理场景可选 `.msi` |
|
|
102
|
-
| macOS Apple Silicon | `*-macos-arm64.dmg` |
|
|
103
|
-
| macOS Intel | `*-macos-x64.dmg` |
|
|
104
|
-
| Debian / Ubuntu | `*.deb` |
|
|
105
|
-
| 其他 Linux x64 | `*.AppImage` |
|
|
106
|
-
| Android 常见手机 / 平板 | `*-android-arm64-v8a-release.apk`;旧 32 位设备选 `armeabi-v7a`,模拟器按需选 `x86_64` / `x86` |
|
|
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`) |
|
|
107
94
|
|
|
108
|
-
Console 和 Chat
|
|
95
|
+
Console 和 Chat 都需要连接已运行的 Undefined 服务:首次部署请先启动 `Undefined-webui`,完成配置和 Bot 启动后再连接。
|
|
109
96
|
|
|
110
97
|
## ⚡ 核心特性
|
|
111
98
|
|
|
@@ -162,6 +149,7 @@ Console 和 Chat 都需要连接到已经运行的 Undefined 服务。首次部
|
|
|
162
149
|
Undefined 的功能极为丰富,为了让本页面不过于臃肿,我们将各个模块的深入解析与高阶玩法整理成了专题游览图。这里是开启探索的钥匙:
|
|
163
150
|
|
|
164
151
|
- ⚙️ **[安装与部署指南](docs/deployment.md)**:不管你是需要 `pip` 无脑一键安装,还是源码二次开发,这里的排坑指南应有尽有。
|
|
152
|
+
- 🐳 **[容器化一键部署](docs/docker-deploy.md)**:`uv run deploy` 一条命令拉起本体 + NapCat 与按需自托管服务(SearXNG / Firecrawl / lxmusic2api),含端口、凭据、模式选择与排查。
|
|
165
153
|
- 📦 **[Python 库 API 参考](docs/python-api.md)**:根包 lazy re-export、`Config.from_mapping` / `set_config`、公共 API 符号表与嵌入示例。
|
|
166
154
|
- 🖥️ **[WebUI 使用指南](docs/webui-guide.md)**:管理控制台功能一览——配置编辑、日志查看、认知记忆管理、表情包库、AI 对话与系统监控。
|
|
167
155
|
- 🧭 **[Management API 与远程管理](docs/management-api.md)**:WebUI / App 共用的管理接口、认证、配置/日志/Bot 控制与引导探针说明。
|
|
@@ -214,6 +202,28 @@ uv run Undefined-webui
|
|
|
214
202
|
|
|
215
203
|
> 浏览器是默认入口;如果你按上方 [Release 下载速查](#release-下载速查)下载了桌面端或 Android 安装包,也可以在完成首轮密码设置后,连接到同一个 Management API 地址进行远程管理。
|
|
216
204
|
|
|
205
|
+
---
|
|
206
|
+
|
|
207
|
+
## 🐳 快速开始 (容器模式,Linux)
|
|
208
|
+
|
|
209
|
+
不想手工装 Python 依赖、也不想自己起 NapCat / SearXNG 等服务?一条命令搞定(需要 Docker Engine,含 `docker compose` v2 插件):
|
|
210
|
+
|
|
211
|
+
```bash
|
|
212
|
+
git clone --recursive https://github.com/69gg/Undefined.git
|
|
213
|
+
cd Undefined
|
|
214
|
+
|
|
215
|
+
# 交互式向导:选“本体是否进容器”,以及要额外部署哪些自托管服务(默认全不选)
|
|
216
|
+
uv run deploy up
|
|
217
|
+
|
|
218
|
+
# 非交互式:只跑本体 + NapCat
|
|
219
|
+
uv run deploy up --yes
|
|
220
|
+
```
|
|
221
|
+
|
|
222
|
+
脚本会自动生成 compose 与各服务配置、按最小差异改好 `config.toml`(改前备份)、启动容器,最后把 **Undefined WebUI 密码、带 token 的 NapCat WebUI 链接、各服务入口**一次性打印出来。
|
|
223
|
+
|
|
224
|
+
后续:`uv run deploy status` 看状态与凭据、`uv run deploy logs` 看日志、`uv run deploy down` 停止(数据保留)。完整说明见 [容器化一键部署](docs/docker-deploy.md)。
|
|
225
|
+
|
|
226
|
+
|
|
217
227
|
---
|
|
218
228
|
|
|
219
229
|
## 作为 Python 库使用
|
|
@@ -32,29 +32,16 @@
|
|
|
32
32
|
|
|
33
33
|
## Release 下载速查
|
|
34
34
|
|
|
35
|
-
|
|
35
|
+
**部署 QQ Bot 本身不需要下载 Release**:Release 里都是可选组件。源码部署见下方[快速开始](#-快速开始-源码模式),安装包用途与平台对应如下:
|
|
36
36
|
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
| 目标 | 是否需要下载 Release | 选择 |
|
|
37
|
+
| 目标 | 文件 | 平台 |
|
|
40
38
|
| --- | --- | --- |
|
|
41
|
-
| 部署 / 运行
|
|
42
|
-
|
|
|
43
|
-
|
|
|
44
|
-
|
|
|
45
|
-
|
|
46
|
-
平台文件选择:
|
|
47
|
-
|
|
48
|
-
| 平台 | 推荐下载 |
|
|
49
|
-
| --- | --- |
|
|
50
|
-
| Windows x64 | `*-windows-x64-setup.exe`;批量部署或系统管理场景可选 `.msi` |
|
|
51
|
-
| macOS Apple Silicon | `*-macos-arm64.dmg` |
|
|
52
|
-
| macOS Intel | `*-macos-x64.dmg` |
|
|
53
|
-
| Debian / Ubuntu | `*.deb` |
|
|
54
|
-
| 其他 Linux x64 | `*.AppImage` |
|
|
55
|
-
| Android 常见手机 / 平板 | `*-android-arm64-v8a-release.apk`;旧 32 位设备选 `armeabi-v7a`,模拟器按需选 `x86_64` / `x86` |
|
|
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`) |
|
|
56
43
|
|
|
57
|
-
Console 和 Chat
|
|
44
|
+
Console 和 Chat 都需要连接已运行的 Undefined 服务:首次部署请先启动 `Undefined-webui`,完成配置和 Bot 启动后再连接。
|
|
58
45
|
|
|
59
46
|
## ⚡ 核心特性
|
|
60
47
|
|
|
@@ -111,6 +98,7 @@ Console 和 Chat 都需要连接到已经运行的 Undefined 服务。首次部
|
|
|
111
98
|
Undefined 的功能极为丰富,为了让本页面不过于臃肿,我们将各个模块的深入解析与高阶玩法整理成了专题游览图。这里是开启探索的钥匙:
|
|
112
99
|
|
|
113
100
|
- ⚙️ **[安装与部署指南](docs/deployment.md)**:不管你是需要 `pip` 无脑一键安装,还是源码二次开发,这里的排坑指南应有尽有。
|
|
101
|
+
- 🐳 **[容器化一键部署](docs/docker-deploy.md)**:`uv run deploy` 一条命令拉起本体 + NapCat 与按需自托管服务(SearXNG / Firecrawl / lxmusic2api),含端口、凭据、模式选择与排查。
|
|
114
102
|
- 📦 **[Python 库 API 参考](docs/python-api.md)**:根包 lazy re-export、`Config.from_mapping` / `set_config`、公共 API 符号表与嵌入示例。
|
|
115
103
|
- 🖥️ **[WebUI 使用指南](docs/webui-guide.md)**:管理控制台功能一览——配置编辑、日志查看、认知记忆管理、表情包库、AI 对话与系统监控。
|
|
116
104
|
- 🧭 **[Management API 与远程管理](docs/management-api.md)**:WebUI / App 共用的管理接口、认证、配置/日志/Bot 控制与引导探针说明。
|
|
@@ -163,6 +151,28 @@ uv run Undefined-webui
|
|
|
163
151
|
|
|
164
152
|
> 浏览器是默认入口;如果你按上方 [Release 下载速查](#release-下载速查)下载了桌面端或 Android 安装包,也可以在完成首轮密码设置后,连接到同一个 Management API 地址进行远程管理。
|
|
165
153
|
|
|
154
|
+
---
|
|
155
|
+
|
|
156
|
+
## 🐳 快速开始 (容器模式,Linux)
|
|
157
|
+
|
|
158
|
+
不想手工装 Python 依赖、也不想自己起 NapCat / SearXNG 等服务?一条命令搞定(需要 Docker Engine,含 `docker compose` v2 插件):
|
|
159
|
+
|
|
160
|
+
```bash
|
|
161
|
+
git clone --recursive https://github.com/69gg/Undefined.git
|
|
162
|
+
cd Undefined
|
|
163
|
+
|
|
164
|
+
# 交互式向导:选“本体是否进容器”,以及要额外部署哪些自托管服务(默认全不选)
|
|
165
|
+
uv run deploy up
|
|
166
|
+
|
|
167
|
+
# 非交互式:只跑本体 + NapCat
|
|
168
|
+
uv run deploy up --yes
|
|
169
|
+
```
|
|
170
|
+
|
|
171
|
+
脚本会自动生成 compose 与各服务配置、按最小差异改好 `config.toml`(改前备份)、启动容器,最后把 **Undefined WebUI 密码、带 token 的 NapCat WebUI 链接、各服务入口**一次性打印出来。
|
|
172
|
+
|
|
173
|
+
后续:`uv run deploy status` 看状态与凭据、`uv run deploy logs` 看日志、`uv run deploy down` 停止(数据保留)。完整说明见 [容器化一键部署](docs/docker-deploy.md)。
|
|
174
|
+
|
|
175
|
+
|
|
166
176
|
---
|
|
167
177
|
|
|
168
178
|
## 作为 Python 库使用
|
|
@@ -1270,7 +1270,9 @@ use_proxy = false
|
|
|
1270
1270
|
# 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
1271
|
priority = ["grok_search", "firecrawl_search", "web_search"]
|
|
1272
1272
|
# zh: SearxNG 搜索服务地址,例如 http://127.0.0.1:8849。
|
|
1273
|
+
# zh: 该服务需自行部署(官方说明:https://docs.searxng.org/),本项目不提供;留空时内置 web_search 工具不可用,grok_search / firecrawl_search / crawl_webpage 不受影响。
|
|
1273
1274
|
# en: SearxNG service URL, e.g. http://127.0.0.1:8849.
|
|
1275
|
+
# en: This service must be self-deployed (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.
|
|
1274
1276
|
searxng_url = ""
|
|
1275
1277
|
# zh: 是否在 web_agent 中启用 grok_search。关闭时该工具会从 web_agent 工具列表中隐藏。
|
|
1276
1278
|
# en: Enable grok_search in web_agent. When disabled, this tool is hidden from the web_agent tool list.
|
|
@@ -1282,11 +1284,11 @@ firecrawl_search_enabled = false
|
|
|
1282
1284
|
# zh: Firecrawl 搜索服务配置。
|
|
1283
1285
|
# en: Firecrawl search service config.
|
|
1284
1286
|
[search.firecrawl]
|
|
1285
|
-
# zh: Firecrawl API Key。为空时使用 Firecrawl keyless 搜索;填写后会发送 Authorization: Bearer
|
|
1286
|
-
# en: Firecrawl API key. Leave empty for Firecrawl keyless search; when set, Authorization: Bearer is sent.
|
|
1287
|
+
# zh: Firecrawl API Key。为空时使用 Firecrawl keyless 搜索;填写后会发送 Authorization: Bearer;自部署实例通常也可留空。
|
|
1288
|
+
# 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.
|
|
1287
1289
|
api_key = ""
|
|
1288
|
-
# zh: Firecrawl API
|
|
1289
|
-
# en: Firecrawl API base URL.
|
|
1290
|
+
# zh: Firecrawl API 基础地址。可用官方地址配自己的 Key,也可改为自部署实例地址(自托管说明:https://docs.firecrawl.dev/contributing/self-host)。
|
|
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).
|
|
1290
1292
|
base_url = "https://api.firecrawl.dev"
|
|
1291
1293
|
|
|
1292
1294
|
# zh: 代理设置(可选)。
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "Undefined-bot"
|
|
3
|
-
version = "3.
|
|
3
|
+
version = "3.17.0"
|
|
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.0"
|
|
28
28
|
|
|
29
29
|
# symbol -> (module_path, attribute_name);首次访问时才 importlib 加载
|
|
30
30
|
_LAZY_IMPORTS: dict[str, tuple[str, str]] = {
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"""一次性容器化部署入口(``uv run deploy``)。
|
|
2
|
+
|
|
3
|
+
本包只负责“把本体与依赖服务用 Docker Compose 跑起来”,不参与运行时逻辑。
|
|
4
|
+
对外只暴露 :func:`main`,实现按职责拆分在 ``catalog`` / ``generate`` /
|
|
5
|
+
``config_patch`` / ``nagaagent`` / ``state`` / ``docker_cli`` / ``cli`` 中。
|
|
6
|
+
"""
|
|
7
|
+
|
|
8
|
+
from __future__ import annotations
|
|
9
|
+
|
|
10
|
+
from .cli import main
|
|
11
|
+
|
|
12
|
+
__all__ = ["main"]
|
|
@@ -0,0 +1,285 @@
|
|
|
1
|
+
"""部署目录(唯一事实来源)。
|
|
2
|
+
|
|
3
|
+
集中定义:可部署服务清单、端口、默认值、以及 ``config.toml`` 的写入目标。
|
|
4
|
+
``generate`` / ``cli`` / ``state`` 都从这里取数据,避免同一事实散落多处。
|
|
5
|
+
"""
|
|
6
|
+
|
|
7
|
+
from __future__ import annotations
|
|
8
|
+
|
|
9
|
+
from dataclasses import dataclass
|
|
10
|
+
from typing import Final
|
|
11
|
+
|
|
12
|
+
# --------------------------------------------------------------------------- #
|
|
13
|
+
# 部署模式
|
|
14
|
+
# --------------------------------------------------------------------------- #
|
|
15
|
+
|
|
16
|
+
MODE_CONTAINER: Final[str] = "container"
|
|
17
|
+
MODE_HOST: Final[str] = "host"
|
|
18
|
+
DEPLOY_MODES: Final[tuple[str, ...]] = (MODE_CONTAINER, MODE_HOST)
|
|
19
|
+
|
|
20
|
+
#: 进程退出码,供 cli 与 commands 共用。
|
|
21
|
+
EXIT_OK: Final[int] = 0
|
|
22
|
+
EXIT_ERROR: Final[int] = 1
|
|
23
|
+
|
|
24
|
+
# --------------------------------------------------------------------------- #
|
|
25
|
+
# 运行态目录(相对仓库根,随 .gitignore 忽略)
|
|
26
|
+
# --------------------------------------------------------------------------- #
|
|
27
|
+
|
|
28
|
+
DEPLOY_DIR_NAME: Final[str] = "deploy"
|
|
29
|
+
STATE_FILE_NAME: Final[str] = "STATE.json"
|
|
30
|
+
ENV_FILE_NAME: Final[str] = ".env"
|
|
31
|
+
COMPOSE_FILE_NAME: Final[str] = "compose.yaml"
|
|
32
|
+
COMPOSE_PROJECT_NAME: Final[str] = "undefined-deploy"
|
|
33
|
+
|
|
34
|
+
# --------------------------------------------------------------------------- #
|
|
35
|
+
# 端口与绑定地址
|
|
36
|
+
# --------------------------------------------------------------------------- #
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
@dataclass(frozen=True, slots=True)
|
|
40
|
+
class PortSpec:
|
|
41
|
+
"""一个需要发布的端口。
|
|
42
|
+
|
|
43
|
+
``env_var`` 由 :func:`port_env_var` / :func:`bind_env_var` 生成,
|
|
44
|
+
模板与 ``.env`` 都用同一套命名,避免手写拼错。
|
|
45
|
+
"""
|
|
46
|
+
|
|
47
|
+
key: str
|
|
48
|
+
default: int
|
|
49
|
+
label: str
|
|
50
|
+
|
|
51
|
+
@property
|
|
52
|
+
def env_var(self) -> str:
|
|
53
|
+
return "UNDEFINED_DEPLOY_PORT_" + self.key.upper()
|
|
54
|
+
|
|
55
|
+
@property
|
|
56
|
+
def bind_env_var(self) -> str:
|
|
57
|
+
return self.env_var + "_BIND"
|
|
58
|
+
|
|
59
|
+
|
|
60
|
+
#: 所有部署端口默认只绑定回环地址;需要远程访问时由用户显式改成 0.0.0.0。
|
|
61
|
+
DEFAULT_PORT_BIND: Final[str] = "127.0.0.1"
|
|
62
|
+
|
|
63
|
+
# --------------------------------------------------------------------------- #
|
|
64
|
+
# 容器内固定端口
|
|
65
|
+
#
|
|
66
|
+
# ``PortSpec.default`` 是**宿主机发布端口**,可被 ``--port`` 覆盖;容器内真正监听
|
|
67
|
+
# 的端口必须是确定的,所以在这里固定下来,compose 一律写成
|
|
68
|
+
# ``${BIND}:${HOST_PORT}:<容器端口>``。
|
|
69
|
+
#
|
|
70
|
+
# 本体的 WebUI / Runtime API 端口由 ``config.toml`` 决定,因此生成配置时会把
|
|
71
|
+
# ``webui.port`` / ``api.port`` 同步成这里的值,保证「容器听什么」与
|
|
72
|
+
# 「compose 把宿主端口映到哪」一致(旧实现两者同用一个变量,覆盖端口后必然错位)。
|
|
73
|
+
# --------------------------------------------------------------------------- #
|
|
74
|
+
|
|
75
|
+
BOT_WEBUI_CONTAINER_PORT: Final[int] = 8787
|
|
76
|
+
BOT_API_CONTAINER_PORT: Final[int] = 8788
|
|
77
|
+
NAPCAT_WS_CONTAINER_PORT: Final[int] = 3001
|
|
78
|
+
NAPCAT_WEBUI_CONTAINER_PORT: Final[int] = 6099
|
|
79
|
+
SEARXNG_CONTAINER_PORT: Final[int] = 8080
|
|
80
|
+
FIRECRAWL_CONTAINER_PORT: Final[int] = 3002
|
|
81
|
+
LXMUSIC2API_CONTAINER_PORT: Final[int] = 3000
|
|
82
|
+
|
|
83
|
+
#: 端口键 -> 容器内端口。
|
|
84
|
+
CONTAINER_PORTS: Final[dict[str, int]] = {
|
|
85
|
+
"bot_webui": BOT_WEBUI_CONTAINER_PORT,
|
|
86
|
+
"bot_api": BOT_API_CONTAINER_PORT,
|
|
87
|
+
"napcat_ws": NAPCAT_WS_CONTAINER_PORT,
|
|
88
|
+
"napcat_webui": NAPCAT_WEBUI_CONTAINER_PORT,
|
|
89
|
+
"searxng": SEARXNG_CONTAINER_PORT,
|
|
90
|
+
"firecrawl": FIRECRAWL_CONTAINER_PORT,
|
|
91
|
+
"lxmusic2api": LXMUSIC2API_CONTAINER_PORT,
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
|
|
95
|
+
def container_port(key: str) -> int:
|
|
96
|
+
"""取容器内固定端口;未登记的键直接报错,避免拼错后静默取错值。"""
|
|
97
|
+
try:
|
|
98
|
+
return CONTAINER_PORTS[key]
|
|
99
|
+
except KeyError as exc:
|
|
100
|
+
known = ", ".join(sorted(CONTAINER_PORTS))
|
|
101
|
+
raise KeyError(f"未知端口键 {key!r};可选:{known}") from exc
|
|
102
|
+
|
|
103
|
+
|
|
104
|
+
# --------------------------------------------------------------------------- #
|
|
105
|
+
# config.toml 写入目标
|
|
106
|
+
# --------------------------------------------------------------------------- #
|
|
107
|
+
|
|
108
|
+
|
|
109
|
+
@dataclass(frozen=True, slots=True)
|
|
110
|
+
class ConfigTarget:
|
|
111
|
+
"""一条 ``config.toml`` 写入项。
|
|
112
|
+
|
|
113
|
+
``key`` 使用 ``apply_patch`` 支持的 dotted path;``rendered`` 用于让用户
|
|
114
|
+
在 ``--dry-run`` / 汇总输出里看到将写入的值(敏感值由调用方脱敏)。
|
|
115
|
+
"""
|
|
116
|
+
|
|
117
|
+
key: str
|
|
118
|
+
rendered: str
|
|
119
|
+
about: str
|
|
120
|
+
|
|
121
|
+
|
|
122
|
+
# --------------------------------------------------------------------------- #
|
|
123
|
+
# 服务清单
|
|
124
|
+
# --------------------------------------------------------------------------- #
|
|
125
|
+
|
|
126
|
+
|
|
127
|
+
@dataclass(frozen=True, slots=True)
|
|
128
|
+
class Service:
|
|
129
|
+
"""一个可部署的依赖服务。
|
|
130
|
+
|
|
131
|
+
``key`` 是稳定标识:同时用于 CLI ``--with``、``STATE.json`` 与配置目标命名,
|
|
132
|
+
因此不要为了改名而改名。``compose_fragment`` 指向包内模板文件名。
|
|
133
|
+
"""
|
|
134
|
+
|
|
135
|
+
key: str
|
|
136
|
+
label: str
|
|
137
|
+
about: str
|
|
138
|
+
compose_fragment: str
|
|
139
|
+
ports: tuple[PortSpec, ...] = ()
|
|
140
|
+
|
|
141
|
+
|
|
142
|
+
NAPCAT: Final[Service] = Service(
|
|
143
|
+
key="napcat",
|
|
144
|
+
label="NapCat(OneBot V11 协议端)",
|
|
145
|
+
about="QQ 消息收发的唯一通道,必需;QQ 登录需扫码。",
|
|
146
|
+
compose_fragment="compose.napcat.yaml",
|
|
147
|
+
ports=(
|
|
148
|
+
PortSpec("napcat_ws", 3001, "OneBot 正向 WebSocket"),
|
|
149
|
+
PortSpec("napcat_webui", 6099, "NapCat WebUI"),
|
|
150
|
+
),
|
|
151
|
+
)
|
|
152
|
+
|
|
153
|
+
SEARXNG: Final[Service] = Service(
|
|
154
|
+
key="searxng",
|
|
155
|
+
label="SearXNG(web_search)",
|
|
156
|
+
about="内置 web_search 工具的后端;不部署时该工具不可用。",
|
|
157
|
+
compose_fragment="compose.searxng.yaml",
|
|
158
|
+
ports=(PortSpec("searxng", 8080, "SearXNG WebUI / JSON API"),),
|
|
159
|
+
)
|
|
160
|
+
|
|
161
|
+
FIRECRAWL: Final[Service] = Service(
|
|
162
|
+
key="firecrawl",
|
|
163
|
+
label="Firecrawl(firecrawl_search)",
|
|
164
|
+
about="自带 api/playwright/redis/rabbitmq/postgres 五个容器,资源占用较高。",
|
|
165
|
+
compose_fragment="compose.firecrawl.yaml",
|
|
166
|
+
ports=(PortSpec("firecrawl", 3002, "Firecrawl API"),),
|
|
167
|
+
)
|
|
168
|
+
|
|
169
|
+
LXMUSIC2API: Final[Service] = Service(
|
|
170
|
+
key="lxmusic2api",
|
|
171
|
+
label="lxmusic2api(music.* 工具集)",
|
|
172
|
+
about="上游无官方镜像,由本项目构建;取音频直链需自备 LX 自定义音源脚本。",
|
|
173
|
+
compose_fragment="compose.lxmusic2api.yaml",
|
|
174
|
+
ports=(PortSpec("lxmusic2api", 3000, "lxmusic2api API / Swagger"),),
|
|
175
|
+
)
|
|
176
|
+
|
|
177
|
+
#: 可选的额外服务(NapCat 必需,单独处理,不在此列)。
|
|
178
|
+
OPTIONAL_SERVICES: Final[tuple[Service, ...]] = (SEARXNG, FIRECRAWL, LXMUSIC2API)
|
|
179
|
+
|
|
180
|
+
#: NapCat 是必装项。
|
|
181
|
+
REQUIRED_SERVICES: Final[tuple[Service, ...]] = (NAPCAT,)
|
|
182
|
+
|
|
183
|
+
#: key -> Service 的索引,供 CLI 与生成器查询。
|
|
184
|
+
ALL_SERVICES: Final[dict[str, Service]] = {
|
|
185
|
+
service.key: service for service in (*REQUIRED_SERVICES, *OPTIONAL_SERVICES)
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
# --------------------------------------------------------------------------- #
|
|
189
|
+
# 本体(Undefined)自身的端口;不是 Service,因为它随 mode 决定是否容器化
|
|
190
|
+
# --------------------------------------------------------------------------- #
|
|
191
|
+
|
|
192
|
+
BOT_PORTS: Final[tuple[PortSpec, ...]] = (
|
|
193
|
+
PortSpec("bot_webui", 8787, "Undefined WebUI"),
|
|
194
|
+
PortSpec("bot_api", 8788, "Runtime API"),
|
|
195
|
+
)
|
|
196
|
+
|
|
197
|
+
# --------------------------------------------------------------------------- #
|
|
198
|
+
# 默认值
|
|
199
|
+
# --------------------------------------------------------------------------- #
|
|
200
|
+
|
|
201
|
+
#: 部署脚本会写入的容器固定路径。
|
|
202
|
+
CONTAINER_REPO_ROOT: Final[str] = "/app"
|
|
203
|
+
CONTAINER_DOCKER_SOCK: Final[str] = "/var/run/docker.sock"
|
|
204
|
+
#: 未显式指定模型时输出给用户的提醒。
|
|
205
|
+
MODEL_REMINDER: Final[str] = (
|
|
206
|
+
"config.toml 的 [models.*] 仍需填写模型端与 API Key,Bot 才能真正收发消息。"
|
|
207
|
+
)
|
|
208
|
+
|
|
209
|
+
DEFAULTS: Final[dict[str, object]] = {
|
|
210
|
+
"mode": MODE_CONTAINER,
|
|
211
|
+
"services": (),
|
|
212
|
+
"nagaagent": False,
|
|
213
|
+
"port_bind": DEFAULT_PORT_BIND,
|
|
214
|
+
}
|
|
215
|
+
|
|
216
|
+
|
|
217
|
+
def port_defaults() -> dict[str, int]:
|
|
218
|
+
"""返回全部端口的默认值(含本体端口)。"""
|
|
219
|
+
ports: dict[str, int] = {}
|
|
220
|
+
for spec in BOT_PORTS:
|
|
221
|
+
ports[spec.key] = spec.default
|
|
222
|
+
for service in ALL_SERVICES.values():
|
|
223
|
+
for spec in service.ports:
|
|
224
|
+
ports[spec.key] = spec.default
|
|
225
|
+
return ports
|
|
226
|
+
|
|
227
|
+
|
|
228
|
+
def port_specs() -> dict[str, PortSpec]:
|
|
229
|
+
"""返回 key -> PortSpec 的索引(含本体端口)。"""
|
|
230
|
+
specs: dict[str, PortSpec] = {}
|
|
231
|
+
for spec in BOT_PORTS:
|
|
232
|
+
specs[spec.key] = spec
|
|
233
|
+
for service in ALL_SERVICES.values():
|
|
234
|
+
for spec in service.ports:
|
|
235
|
+
specs[spec.key] = spec
|
|
236
|
+
return specs
|
|
237
|
+
|
|
238
|
+
|
|
239
|
+
def selected_service(key: str) -> Service:
|
|
240
|
+
"""按键取服务;未知名直接报错,避免静默忽略用户输入。"""
|
|
241
|
+
try:
|
|
242
|
+
return ALL_SERVICES[key]
|
|
243
|
+
except KeyError as exc:
|
|
244
|
+
known = ", ".join(sorted(ALL_SERVICES))
|
|
245
|
+
raise KeyError(f"未知服务 {key!r};可选:{known}") from exc
|
|
246
|
+
|
|
247
|
+
|
|
248
|
+
__all__ = [
|
|
249
|
+
"ALL_SERVICES",
|
|
250
|
+
"BOT_API_CONTAINER_PORT",
|
|
251
|
+
"BOT_PORTS",
|
|
252
|
+
"BOT_WEBUI_CONTAINER_PORT",
|
|
253
|
+
"CONTAINER_PORTS",
|
|
254
|
+
"COMPOSE_FILE_NAME",
|
|
255
|
+
"COMPOSE_PROJECT_NAME",
|
|
256
|
+
"CONTAINER_DOCKER_SOCK",
|
|
257
|
+
"CONTAINER_REPO_ROOT",
|
|
258
|
+
"DEFAULT_PORT_BIND",
|
|
259
|
+
"DEFAULTS",
|
|
260
|
+
"DEPLOY_DIR_NAME",
|
|
261
|
+
"DEPLOY_MODES",
|
|
262
|
+
"ENV_FILE_NAME",
|
|
263
|
+
"FIRECRAWL",
|
|
264
|
+
"LXMUSIC2API",
|
|
265
|
+
"MODE_CONTAINER",
|
|
266
|
+
"FIRECRAWL_CONTAINER_PORT",
|
|
267
|
+
"LXMUSIC2API_CONTAINER_PORT",
|
|
268
|
+
"MODE_HOST",
|
|
269
|
+
"NAPCAT_WEBUI_CONTAINER_PORT",
|
|
270
|
+
"NAPCAT_WS_CONTAINER_PORT",
|
|
271
|
+
"MODEL_REMINDER",
|
|
272
|
+
"NAPCAT",
|
|
273
|
+
"OPTIONAL_SERVICES",
|
|
274
|
+
"PortSpec",
|
|
275
|
+
"REQUIRED_SERVICES",
|
|
276
|
+
"SEARXNG",
|
|
277
|
+
"SEARXNG_CONTAINER_PORT",
|
|
278
|
+
"STATE_FILE_NAME",
|
|
279
|
+
"Service",
|
|
280
|
+
"ConfigTarget",
|
|
281
|
+
"container_port",
|
|
282
|
+
"port_defaults",
|
|
283
|
+
"port_specs",
|
|
284
|
+
"selected_service",
|
|
285
|
+
]
|