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.
Files changed (853) hide show
  1. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/.gitignore +5 -0
  2. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/ARCHITECTURE.md +1 -0
  3. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/CHANGELOG.md +29 -0
  4. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/PKG-INFO +31 -21
  5. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/README.md +30 -20
  6. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/config.toml.example +6 -4
  7. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/pyproject.toml +2 -1
  8. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/__init__.py +1 -1
  9. undefined_bot-3.17.0/src/Undefined/deploy/__init__.py +12 -0
  10. undefined_bot-3.17.0/src/Undefined/deploy/__main__.py +8 -0
  11. undefined_bot-3.17.0/src/Undefined/deploy/catalog.py +285 -0
  12. undefined_bot-3.17.0/src/Undefined/deploy/cli.py +296 -0
  13. undefined_bot-3.17.0/src/Undefined/deploy/commands.py +26 -0
  14. undefined_bot-3.17.0/src/Undefined/deploy/config_patch.py +258 -0
  15. undefined_bot-3.17.0/src/Undefined/deploy/docker_cli.py +331 -0
  16. undefined_bot-3.17.0/src/Undefined/deploy/generate.py +702 -0
  17. undefined_bot-3.17.0/src/Undefined/deploy/images.py +189 -0
  18. undefined_bot-3.17.0/src/Undefined/deploy/nagaagent.py +211 -0
  19. undefined_bot-3.17.0/src/Undefined/deploy/runner.py +898 -0
  20. undefined_bot-3.17.0/src/Undefined/deploy/state.py +284 -0
  21. undefined_bot-3.17.0/src/Undefined/deploy/templates/.dockerignore +54 -0
  22. undefined_bot-3.17.0/src/Undefined/deploy/templates/Dockerfile.bot +91 -0
  23. undefined_bot-3.17.0/src/Undefined/deploy/templates/compose.base.yaml +14 -0
  24. undefined_bot-3.17.0/src/Undefined/deploy/templates/compose.bot.yaml +52 -0
  25. undefined_bot-3.17.0/src/Undefined/deploy/templates/compose.firecrawl.yaml +131 -0
  26. undefined_bot-3.17.0/src/Undefined/deploy/templates/compose.lxmusic2api.yaml +35 -0
  27. undefined_bot-3.17.0/src/Undefined/deploy/templates/compose.napcat.yaml +35 -0
  28. undefined_bot-3.17.0/src/Undefined/deploy/templates/compose.searxng.yaml +33 -0
  29. undefined_bot-3.17.0/src/Undefined/deploy/templates/lxmusic2api.config.toml +29 -0
  30. undefined_bot-3.17.0/src/Undefined/deploy/templates/napcat.ws.json +26 -0
  31. undefined_bot-3.17.0/src/Undefined/deploy/templates/searxng.settings.yml +27 -0
  32. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/webui/core.py +10 -1
  33. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/webui/static/js/runtime.js +44 -1
  34. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/LICENSE +0 -0
  35. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/config/README.md +0 -0
  36. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/config/mcp.json.example +0 -0
  37. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/img/undefined-9527.png +0 -0
  38. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/img/xlwy.jpg +0 -0
  39. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/res/IMPORTANT/each.md +0 -0
  40. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/res/README.md +0 -0
  41. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/res/prompts/agent_self_intro.txt +0 -0
  42. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/res/prompts/analyze_multimodal.txt +0 -0
  43. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/res/prompts/describe_image.txt +0 -0
  44. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/res/prompts/describe_meme_image.txt +0 -0
  45. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/res/prompts/generate_title.txt +0 -0
  46. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/res/prompts/historian_profile_merge.md +0 -0
  47. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/res/prompts/historian_rewrite.md +0 -0
  48. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/res/prompts/image_gen_moderation.txt +0 -0
  49. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/res/prompts/injection_detector.txt +0 -0
  50. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/res/prompts/injection_response_agent.txt +0 -0
  51. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/res/prompts/judge_meme_image.txt +0 -0
  52. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/res/prompts/merge_message_summaries.txt +0 -0
  53. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/res/prompts/merge_summaries.txt +0 -0
  54. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/res/prompts/message_summary.txt +0 -0
  55. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/res/prompts/naga_message_moderation.txt +0 -0
  56. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/res/prompts/stats_analysis.txt +0 -0
  57. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/res/prompts/summarize.txt +0 -0
  58. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/res/prompts/undefined.xml +0 -0
  59. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/res/prompts/undefined_nagaagent.xml +0 -0
  60. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/README.md +0 -0
  61. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/README.md +0 -0
  62. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/__main__.py +0 -0
  63. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/ai/__init__.py +0 -0
  64. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/ai/client/__init__.py +0 -0
  65. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/ai/client/ask_loop.py +0 -0
  66. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/ai/client/queue.py +0 -0
  67. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/ai/client/setup.py +0 -0
  68. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/ai/crawl4ai_support.py +0 -0
  69. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/ai/http.py +0 -0
  70. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/ai/llm/__init__.py +0 -0
  71. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/ai/llm/requester.py +0 -0
  72. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/ai/llm/retry.py +0 -0
  73. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/ai/llm/sanitize.py +0 -0
  74. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/ai/llm/streaming.py +0 -0
  75. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/ai/llm/thinking.py +0 -0
  76. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/ai/llm/types.py +0 -0
  77. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/ai/model_selector.py +0 -0
  78. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/ai/multimodal/__init__.py +0 -0
  79. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/ai/multimodal/analyzer.py +0 -0
  80. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/ai/multimodal/constants.py +0 -0
  81. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/ai/multimodal/detection.py +0 -0
  82. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/ai/multimodal/parsing.py +0 -0
  83. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/ai/parsing.py +0 -0
  84. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/ai/prompts/__init__.py +0 -0
  85. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/ai/prompts/builder.py +0 -0
  86. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/ai/prompts/cognitive.py +0 -0
  87. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/ai/prompts/constants.py +0 -0
  88. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/ai/prompts/current_input.py +0 -0
  89. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/ai/prompts/file_includes.py +0 -0
  90. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/ai/prompts/system_context.py +0 -0
  91. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/ai/prompts/system_info.py +0 -0
  92. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/ai/queue_budget.py +0 -0
  93. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/ai/retrieval.py +0 -0
  94. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/ai/summaries.py +0 -0
  95. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/ai/tokens.py +0 -0
  96. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/ai/tool_search.py +0 -0
  97. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/ai/tooling.py +0 -0
  98. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/ai/transports/__init__.py +0 -0
  99. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/ai/transports/anthropic_transport.py +0 -0
  100. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/ai/transports/openai_transport.py +0 -0
  101. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/ai/transports/replay.py +0 -0
  102. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/api/__init__.py +0 -0
  103. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/api/_context.py +0 -0
  104. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/api/_helpers.py +0 -0
  105. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/api/_naga_state.py +0 -0
  106. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/api/_openapi.py +0 -0
  107. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/api/_probes.py +0 -0
  108. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/api/app.py +0 -0
  109. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/api/naga_store.py +0 -0
  110. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/api/routes/__init__.py +0 -0
  111. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/api/routes/automations.py +0 -0
  112. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/api/routes/chat.py +0 -0
  113. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/api/routes/cognitive.py +0 -0
  114. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/api/routes/commands.py +0 -0
  115. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/api/routes/health.py +0 -0
  116. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/api/routes/memes.py +0 -0
  117. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/api/routes/memory.py +0 -0
  118. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/api/routes/naga/__init__.py +0 -0
  119. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/api/routes/naga/auth.py +0 -0
  120. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/api/routes/naga/bind.py +0 -0
  121. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/api/routes/naga/send.py +0 -0
  122. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/api/routes/naga/unbind.py +0 -0
  123. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/api/routes/onebot_files.py +0 -0
  124. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/api/routes/schedules.py +0 -0
  125. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/api/routes/system.py +0 -0
  126. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/api/routes/tools.py +0 -0
  127. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/api/routes/weixin.py +0 -0
  128. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/api/webchat_store.py +0 -0
  129. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/arxiv/__init__.py +0 -0
  130. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/arxiv/client.py +0 -0
  131. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/arxiv/downloader.py +0 -0
  132. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/arxiv/models.py +0 -0
  133. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/arxiv/parser.py +0 -0
  134. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/arxiv/sender.py +0 -0
  135. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/attachments/__init__.py +0 -0
  136. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/attachments/forward_snapshot.py +0 -0
  137. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/attachments/models.py +0 -0
  138. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/attachments/registry.py +0 -0
  139. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/attachments/render.py +0 -0
  140. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/attachments/segments.py +0 -0
  141. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/automations/__init__.py +0 -0
  142. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/automations/address.py +0 -0
  143. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/automations/catalog.py +0 -0
  144. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/automations/clock.py +0 -0
  145. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/automations/constants.py +0 -0
  146. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/automations/engine.py +0 -0
  147. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/automations/extract.py +0 -0
  148. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/automations/logutil.py +0 -0
  149. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/automations/match.py +0 -0
  150. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/automations/mentions.py +0 -0
  151. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/automations/migrate.py +0 -0
  152. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/automations/runner.py +0 -0
  153. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/automations/service.py +0 -0
  154. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/automations/short.py +0 -0
  155. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/automations/storage.py +0 -0
  156. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/automations/template.py +0 -0
  157. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/automations/triggers.py +0 -0
  158. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/automations/validate.py +0 -0
  159. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/bilibili/__init__.py +0 -0
  160. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/bilibili/api_client.py +0 -0
  161. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/bilibili/danmaku.py +0 -0
  162. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/bilibili/download_core.py +0 -0
  163. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/bilibili/downloader.py +0 -0
  164. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/bilibili/errors.py +0 -0
  165. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/bilibili/format.py +0 -0
  166. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/bilibili/models.py +0 -0
  167. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/bilibili/opus_parser.py +0 -0
  168. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/bilibili/opus_render.py +0 -0
  169. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/bilibili/opus_sender.py +0 -0
  170. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/bilibili/parser.py +0 -0
  171. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/bilibili/sender.py +0 -0
  172. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/bilibili/wbi.py +0 -0
  173. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/bilibili/wbi_request.py +0 -0
  174. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/changelog.py +0 -0
  175. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/cognitive/__init__.py +0 -0
  176. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/cognitive/chroma_scheduler.py +0 -0
  177. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/cognitive/historian/__init__.py +0 -0
  178. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/cognitive/historian/helpers.py +0 -0
  179. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/cognitive/historian/tools.py +0 -0
  180. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/cognitive/historian/worker.py +0 -0
  181. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/cognitive/job_queue.py +0 -0
  182. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/cognitive/profile_storage.py +0 -0
  183. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/cognitive/service/__init__.py +0 -0
  184. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/cognitive/service/helpers.py +0 -0
  185. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/cognitive/service/service.py +0 -0
  186. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/cognitive/vector_store.py +0 -0
  187. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/cognitive/vector_store_compat.py +0 -0
  188. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/config/__init__.py +0 -0
  189. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/config/admin.py +0 -0
  190. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/config/api_modes.py +0 -0
  191. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/config/build_config.py +0 -0
  192. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/config/coercers.py +0 -0
  193. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/config/config_class.py +0 -0
  194. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/config/domain_parsers.py +0 -0
  195. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/config/env_registry.py +0 -0
  196. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/config/hot_reload.py +0 -0
  197. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/config/load_sections/__init__.py +0 -0
  198. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/config/load_sections/access.py +0 -0
  199. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/config/load_sections/core.py +0 -0
  200. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/config/load_sections/domains.py +0 -0
  201. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/config/load_sections/finalize.py +0 -0
  202. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/config/load_sections/history_skills.py +0 -0
  203. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/config/load_sections/integrations.py +0 -0
  204. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/config/load_sections/knowledge.py +0 -0
  205. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/config/load_sections/logging_tools.py +0 -0
  206. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/config/load_sections/models.py +0 -0
  207. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/config/load_sections/network.py +0 -0
  208. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/config/loader.py +0 -0
  209. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/config/manager.py +0 -0
  210. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/config/model_parsers.py +0 -0
  211. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/config/models.py +0 -0
  212. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/config/naga_policy.py +0 -0
  213. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/config/onebot.py +0 -0
  214. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/config/parsers/__init__.py +0 -0
  215. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/config/parsers/agent.py +0 -0
  216. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/config/parsers/chat.py +0 -0
  217. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/config/parsers/embedding.py +0 -0
  218. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/config/parsers/grok.py +0 -0
  219. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/config/parsers/helpers.py +0 -0
  220. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/config/parsers/historian.py +0 -0
  221. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/config/parsers/image.py +0 -0
  222. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/config/parsers/naga.py +0 -0
  223. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/config/parsers/pool.py +0 -0
  224. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/config/parsers/security.py +0 -0
  225. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/config/parsers/summary.py +0 -0
  226. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/config/parsers/vision.py +0 -0
  227. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/config/resolvers.py +0 -0
  228. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/config/search.py +0 -0
  229. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/config/toml_io.py +0 -0
  230. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/config/webui_settings.py +0 -0
  231. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/context.py +0 -0
  232. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/context_resource_registry.py +0 -0
  233. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/douyin/__init__.py +0 -0
  234. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/douyin/client.py +0 -0
  235. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/douyin/downloader.py +0 -0
  236. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/douyin/models.py +0 -0
  237. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/douyin/parser.py +0 -0
  238. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/douyin/sender.py +0 -0
  239. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/end_summary_storage.py +0 -0
  240. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/faq.py +0 -0
  241. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/github/__init__.py +0 -0
  242. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/github/client.py +0 -0
  243. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/github/models.py +0 -0
  244. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/github/parser.py +0 -0
  245. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/github/sender.py +0 -0
  246. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/handlers/__init__.py +0 -0
  247. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/handlers/auto_extract.py +0 -0
  248. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/handlers/message_flow.py +0 -0
  249. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/handlers/poke.py +0 -0
  250. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/handlers/repeat.py +0 -0
  251. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/injection_response_agent.py +0 -0
  252. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/knowledge/__init__.py +0 -0
  253. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/knowledge/chunker.py +0 -0
  254. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/knowledge/embedder.py +0 -0
  255. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/knowledge/manager.py +0 -0
  256. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/knowledge/reranker.py +0 -0
  257. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/knowledge/runtime.py +0 -0
  258. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/knowledge/store.py +0 -0
  259. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/main.py +0 -0
  260. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/mcp/__init__.py +0 -0
  261. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/mcp/registry.py +0 -0
  262. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/memes/__init__.py +0 -0
  263. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/memes/_image_utils.py +0 -0
  264. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/memes/ingest.py +0 -0
  265. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/memes/models.py +0 -0
  266. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/memes/search.py +0 -0
  267. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/memes/service.py +0 -0
  268. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/memes/store.py +0 -0
  269. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/memes/vector_store.py +0 -0
  270. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/memes/worker.py +0 -0
  271. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/memory.py +0 -0
  272. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/onebot/__init__.py +0 -0
  273. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/onebot/client.py +0 -0
  274. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/onebot/file_errors.py +0 -0
  275. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/onebot/file_references.py +0 -0
  276. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/onebot/file_store.py +0 -0
  277. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/onebot/file_transport.py +0 -0
  278. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/onebot/message.py +0 -0
  279. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/py.typed +0 -0
  280. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/rate_limit.py +0 -0
  281. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/render.py +0 -0
  282. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/services/__init__.py +0 -0
  283. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/services/bugfix_command.py +0 -0
  284. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/services/command.py +0 -0
  285. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/services/commands/__init__.py +0 -0
  286. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/services/commands/catalog.py +0 -0
  287. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/services/commands/context.py +0 -0
  288. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/services/commands/registry.py +0 -0
  289. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/services/coordinator/__init__.py +0 -0
  290. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/services/coordinator/background.py +0 -0
  291. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/services/coordinator/batching.py +0 -0
  292. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/services/coordinator/group.py +0 -0
  293. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/services/coordinator/message_ids.py +0 -0
  294. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/services/coordinator/private.py +0 -0
  295. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/services/message_batcher/__init__.py +0 -0
  296. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/services/message_batcher/scheduler.py +0 -0
  297. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/services/message_batcher/state.py +0 -0
  298. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/services/message_summary_fetch.py +0 -0
  299. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/services/model_pool.py +0 -0
  300. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/services/queue_manager.py +0 -0
  301. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/services/security.py +0 -0
  302. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/services/stats_command.py +0 -0
  303. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/README.md +0 -0
  304. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/__init__.py +0 -0
  305. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/README.md +0 -0
  306. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/__init__.py +0 -0
  307. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/agent_tool_registry.py +0 -0
  308. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/code_delivery_agent/config.json +0 -0
  309. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/code_delivery_agent/docker_utils.py +0 -0
  310. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/code_delivery_agent/handler.py +0 -0
  311. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/code_delivery_agent/intro.md +0 -0
  312. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/code_delivery_agent/mcp.json +0 -0
  313. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/code_delivery_agent/prompt.md +0 -0
  314. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/code_delivery_agent/tools/copy/config.json +0 -0
  315. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/code_delivery_agent/tools/copy/handler.py +0 -0
  316. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/code_delivery_agent/tools/delete/config.json +0 -0
  317. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/code_delivery_agent/tools/delete/handler.py +0 -0
  318. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/code_delivery_agent/tools/diff/config.json +0 -0
  319. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/code_delivery_agent/tools/diff/handler.py +0 -0
  320. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/code_delivery_agent/tools/end/config.json +0 -0
  321. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/code_delivery_agent/tools/end/handler.py +0 -0
  322. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/code_delivery_agent/tools/glob/config.json +0 -0
  323. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/code_delivery_agent/tools/glob/handler.py +0 -0
  324. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/code_delivery_agent/tools/grep/config.json +0 -0
  325. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/code_delivery_agent/tools/grep/handler.py +0 -0
  326. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/code_delivery_agent/tools/init_docker/config.json +0 -0
  327. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/code_delivery_agent/tools/init_docker/handler.py +0 -0
  328. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/code_delivery_agent/tools/read/config.json +0 -0
  329. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/code_delivery_agent/tools/read/handler.py +0 -0
  330. {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
  331. {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
  332. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/code_delivery_agent/tools/todo/config.json +0 -0
  333. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/code_delivery_agent/tools/todo/handler.py +0 -0
  334. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/code_delivery_agent/tools/tree/config.json +0 -0
  335. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/code_delivery_agent/tools/tree/handler.py +0 -0
  336. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/code_delivery_agent/tools/write/config.json +0 -0
  337. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/code_delivery_agent/tools/write/handler.py +0 -0
  338. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/entertainment_agent/README.md +0 -0
  339. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/entertainment_agent/config.json +0 -0
  340. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/entertainment_agent/handler.py +0 -0
  341. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/entertainment_agent/intro.md +0 -0
  342. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/entertainment_agent/prompt.md +0 -0
  343. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/entertainment_agent/tools/__init__.py +0 -0
  344. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/entertainment_agent/tools/ai_draw_one/config.json +0 -0
  345. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/entertainment_agent/tools/ai_draw_one/handler.py +0 -0
  346. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/entertainment_agent/tools/horoscope/config.json +0 -0
  347. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/entertainment_agent/tools/horoscope/handler.py +0 -0
  348. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/entertainment_agent/tools/minecraft_skin/config.json +0 -0
  349. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/entertainment_agent/tools/minecraft_skin/handler.py +0 -0
  350. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/entertainment_agent/tools/renjian/config.json +0 -0
  351. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/entertainment_agent/tools/renjian/handler.py +0 -0
  352. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/entertainment_agent/tools/wenchang_dijun/config.json +0 -0
  353. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/entertainment_agent/tools/wenchang_dijun/handler.py +0 -0
  354. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/file_analysis_agent/README.md +0 -0
  355. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/file_analysis_agent/__init__.py +0 -0
  356. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/file_analysis_agent/config.json +0 -0
  357. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/file_analysis_agent/handler.py +0 -0
  358. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/file_analysis_agent/intro.md +0 -0
  359. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/file_analysis_agent/prompt.md +0 -0
  360. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/file_analysis_agent/tools/__init__.py +0 -0
  361. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/file_analysis_agent/tools/analyze_code/config.json +0 -0
  362. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/file_analysis_agent/tools/analyze_code/handler.py +0 -0
  363. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/file_analysis_agent/tools/analyze_multimodal/config.json +0 -0
  364. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/file_analysis_agent/tools/analyze_multimodal/handler.py +0 -0
  365. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/file_analysis_agent/tools/cleanup_temp/config.json +0 -0
  366. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/file_analysis_agent/tools/cleanup_temp/handler.py +0 -0
  367. {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
  368. {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
  369. {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
  370. {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
  371. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/file_analysis_agent/tools/download_file/config.json +0 -0
  372. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/file_analysis_agent/tools/download_file/handler.py +0 -0
  373. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/file_analysis_agent/tools/extract_archive/config.json +0 -0
  374. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/file_analysis_agent/tools/extract_archive/handler.py +0 -0
  375. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/file_analysis_agent/tools/extract_docx/config.json +0 -0
  376. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/file_analysis_agent/tools/extract_docx/handler.py +0 -0
  377. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/file_analysis_agent/tools/extract_pdf/config.json +0 -0
  378. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/file_analysis_agent/tools/extract_pdf/handler.py +0 -0
  379. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/file_analysis_agent/tools/extract_pptx/config.json +0 -0
  380. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/file_analysis_agent/tools/extract_pptx/handler.py +0 -0
  381. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/file_analysis_agent/tools/extract_xlsx/config.json +0 -0
  382. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/file_analysis_agent/tools/extract_xlsx/handler.py +0 -0
  383. {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
  384. {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
  385. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/info_agent/README.md +0 -0
  386. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/info_agent/config.json +0 -0
  387. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/info_agent/handler.py +0 -0
  388. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/info_agent/intro.md +0 -0
  389. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/info_agent/prompt.md +0 -0
  390. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/info_agent/tools/__init__.py +0 -0
  391. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/info_agent/tools/arxiv_search/config.json +0 -0
  392. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/info_agent/tools/arxiv_search/handler.py +0 -0
  393. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/info_agent/tools/baiduhot/config.json +0 -0
  394. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/info_agent/tools/baiduhot/handler.py +0 -0
  395. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/info_agent/tools/base64/config.json +0 -0
  396. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/info_agent/tools/base64/handler.py +0 -0
  397. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/info_agent/tools/bilibili_search/config.json +0 -0
  398. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/info_agent/tools/bilibili_search/handler.py +0 -0
  399. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/info_agent/tools/bilibili_user_info/config.json +0 -0
  400. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/info_agent/tools/bilibili_user_info/handler.py +0 -0
  401. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/info_agent/tools/douyinhot/config.json +0 -0
  402. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/info_agent/tools/douyinhot/handler.py +0 -0
  403. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/info_agent/tools/gold_price/config.json +0 -0
  404. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/info_agent/tools/gold_price/handler.py +0 -0
  405. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/info_agent/tools/hash/config.json +0 -0
  406. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/info_agent/tools/hash/handler.py +0 -0
  407. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/info_agent/tools/history/config.json +0 -0
  408. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/info_agent/tools/history/handler.py +0 -0
  409. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/info_agent/tools/net_check/config.json +0 -0
  410. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/info_agent/tools/net_check/handler.py +0 -0
  411. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/info_agent/tools/qq_level_query/config.json +0 -0
  412. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/info_agent/tools/qq_level_query/handler.py +0 -0
  413. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/info_agent/tools/speed/config.json +0 -0
  414. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/info_agent/tools/speed/handler.py +0 -0
  415. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/info_agent/tools/tcping/config.json +0 -0
  416. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/info_agent/tools/tcping/handler.py +0 -0
  417. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/info_agent/tools/weather_query/config.json +0 -0
  418. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/info_agent/tools/weather_query/handler.py +0 -0
  419. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/info_agent/tools/weibohot/config.json +0 -0
  420. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/info_agent/tools/weibohot/handler.py +0 -0
  421. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/info_agent/tools/whois/config.json +0 -0
  422. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/info_agent/tools/whois/handler.py +0 -0
  423. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/intro_generator.py +0 -0
  424. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/intro_utils.py +0 -0
  425. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/naga_code_analysis_agent/README.md +0 -0
  426. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/naga_code_analysis_agent/config.json +0 -0
  427. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/naga_code_analysis_agent/handler.py +0 -0
  428. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/naga_code_analysis_agent/intro.md +0 -0
  429. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/naga_code_analysis_agent/mcp.json +0 -0
  430. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/naga_code_analysis_agent/prompt.md +0 -0
  431. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/naga_code_analysis_agent/tools/__init__.py +0 -0
  432. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/naga_code_analysis_agent/tools/glob/config.json +0 -0
  433. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/naga_code_analysis_agent/tools/glob/handler.py +0 -0
  434. {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
  435. {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
  436. {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
  437. {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
  438. {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
  439. {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
  440. {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
  441. {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
  442. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/runner/__init__.py +0 -0
  443. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/runner/context.py +0 -0
  444. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/runner/loop.py +0 -0
  445. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/runner/tools.py +0 -0
  446. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/runner/webchat_utils.py +0 -0
  447. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/summary_agent/__init__.py +0 -0
  448. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/summary_agent/config.json +0 -0
  449. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/summary_agent/handler.py +0 -0
  450. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/summary_agent/intro.md +0 -0
  451. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/summary_agent/prompt.md +0 -0
  452. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/summary_agent/tools/__init__.py +0 -0
  453. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/summary_agent/tools/fetch_messages/config.json +0 -0
  454. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/summary_agent/tools/fetch_messages/handler.py +0 -0
  455. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/undefined_self_code_agent/README.md +0 -0
  456. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/undefined_self_code_agent/__init__.py +0 -0
  457. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/undefined_self_code_agent/config.json +0 -0
  458. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/undefined_self_code_agent/handler.py +0 -0
  459. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/undefined_self_code_agent/intro.md +0 -0
  460. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/undefined_self_code_agent/prompt.md +0 -0
  461. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/undefined_self_code_agent/tools/__init__.py +0 -0
  462. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/undefined_self_code_agent/tools/_shared.py +0 -0
  463. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/undefined_self_code_agent/tools/glob/config.json +0 -0
  464. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/undefined_self_code_agent/tools/glob/handler.py +0 -0
  465. {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
  466. {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
  467. {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
  468. {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
  469. {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
  470. {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
  471. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/web_agent/README.md +0 -0
  472. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/web_agent/callable.json +0 -0
  473. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/web_agent/config.json +0 -0
  474. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/web_agent/handler.py +0 -0
  475. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/web_agent/intro.md +0 -0
  476. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/web_agent/mcp.json +0 -0
  477. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/web_agent/prompt.md +0 -0
  478. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/web_agent/tools/__init__.py +0 -0
  479. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/web_agent/tools/crawl_webpage/config.json +0 -0
  480. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/web_agent/tools/crawl_webpage/handler.py +0 -0
  481. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/web_agent/tools/firecrawl_search/config.json +0 -0
  482. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/web_agent/tools/firecrawl_search/handler.py +0 -0
  483. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/web_agent/tools/grok_search/config.json +0 -0
  484. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/web_agent/tools/grok_search/handler.py +0 -0
  485. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/web_agent/tools/web_search/config.json +0 -0
  486. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/agents/web_agent/tools/web_search/handler.py +0 -0
  487. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/anthropic_skills/__init__.py +0 -0
  488. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/anthropic_skills/loader.py +0 -0
  489. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/commands/README.md +0 -0
  490. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/commands/admin/README.md +0 -0
  491. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/commands/admin/config.json +0 -0
  492. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/commands/admin/handler.py +0 -0
  493. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/commands/bugfix/README.md +0 -0
  494. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/commands/bugfix/config.json +0 -0
  495. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/commands/bugfix/handler.py +0 -0
  496. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/commands/changelog/README.md +0 -0
  497. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/commands/changelog/config.json +0 -0
  498. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/commands/changelog/handler.py +0 -0
  499. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/commands/copyright/README.md +0 -0
  500. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/commands/copyright/config.json +0 -0
  501. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/commands/copyright/handler.py +0 -0
  502. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/commands/faq/README.md +0 -0
  503. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/commands/faq/config.json +0 -0
  504. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/commands/faq/handler.py +0 -0
  505. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/commands/feedback/README.md +0 -0
  506. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/commands/feedback/config.json +0 -0
  507. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/commands/feedback/handler.py +0 -0
  508. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/commands/help/README.md +0 -0
  509. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/commands/help/config.json +0 -0
  510. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/commands/help/handler.py +0 -0
  511. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/commands/naga/README.md +0 -0
  512. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/commands/naga/config.json +0 -0
  513. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/commands/naga/handler.py +0 -0
  514. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/commands/naga/policy.py +0 -0
  515. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/commands/profile/README.md +0 -0
  516. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/commands/profile/config.json +0 -0
  517. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/commands/profile/handler.py +0 -0
  518. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/commands/stats/README.md +0 -0
  519. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/commands/stats/config.json +0 -0
  520. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/commands/stats/handler.py +0 -0
  521. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/commands/summary/README.md +0 -0
  522. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/commands/summary/config.json +0 -0
  523. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/commands/summary/handler.py +0 -0
  524. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/commands/version/README.md +0 -0
  525. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/commands/version/config.json +0 -0
  526. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/commands/version/handler.py +0 -0
  527. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/http_client.py +0 -0
  528. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/http_config.py +0 -0
  529. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/pipelines/__init__.py +0 -0
  530. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/pipelines/arxiv/config.json +0 -0
  531. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/pipelines/arxiv/handler.py +0 -0
  532. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/pipelines/bilibili/config.json +0 -0
  533. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/pipelines/bilibili/handler.py +0 -0
  534. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/pipelines/bilibili_opus/config.json +0 -0
  535. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/pipelines/bilibili_opus/handler.py +0 -0
  536. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/pipelines/context.py +0 -0
  537. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/pipelines/douyin/config.json +0 -0
  538. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/pipelines/douyin/handler.py +0 -0
  539. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/pipelines/github/config.json +0 -0
  540. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/pipelines/github/handler.py +0 -0
  541. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/pipelines/models.py +0 -0
  542. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/pipelines/registry.py +0 -0
  543. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/registry.py +0 -0
  544. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/shared.py +0 -0
  545. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/tools/README.md +0 -0
  546. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/tools/__init__.py +0 -0
  547. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/tools/arxiv_paper/README.md +0 -0
  548. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/tools/arxiv_paper/callable.json +0 -0
  549. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/tools/arxiv_paper/config.json +0 -0
  550. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/tools/arxiv_paper/handler.py +0 -0
  551. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/tools/bilibili_opus/README.md +0 -0
  552. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/tools/bilibili_opus/callable.json +0 -0
  553. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/tools/bilibili_opus/config.json +0 -0
  554. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/tools/bilibili_opus/handler.py +0 -0
  555. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/tools/bilibili_video/README.md +0 -0
  556. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/tools/bilibili_video/callable.json +0 -0
  557. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/tools/bilibili_video/config.json +0 -0
  558. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/tools/bilibili_video/handler.py +0 -0
  559. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/tools/calculator/README.md +0 -0
  560. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/tools/calculator/callable.json +0 -0
  561. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/tools/calculator/config.json +0 -0
  562. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/tools/calculator/handler.py +0 -0
  563. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/tools/changelog_query/README.md +0 -0
  564. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/tools/changelog_query/config.json +0 -0
  565. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/tools/changelog_query/handler.py +0 -0
  566. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/tools/douyin_video/README.md +0 -0
  567. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/tools/douyin_video/callable.json +0 -0
  568. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/tools/douyin_video/config.json +0 -0
  569. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/tools/douyin_video/handler.py +0 -0
  570. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/tools/end/README.md +0 -0
  571. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/tools/end/config.json +0 -0
  572. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/tools/end/handler.py +0 -0
  573. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/tools/fetch_image_uid/README.md +0 -0
  574. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/tools/fetch_image_uid/config.json +0 -0
  575. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/tools/fetch_image_uid/handler.py +0 -0
  576. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/tools/get_current_time/README.md +0 -0
  577. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/tools/get_current_time/callable.json +0 -0
  578. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/tools/get_current_time/config.json +0 -0
  579. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/tools/get_current_time/handler.py +0 -0
  580. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/tools/get_picture/README.md +0 -0
  581. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/tools/get_picture/config.json +0 -0
  582. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/tools/get_picture/handler.py +0 -0
  583. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/tools/get_user_info/README.md +0 -0
  584. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/tools/get_user_info/config.json +0 -0
  585. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/tools/get_user_info/handler.py +0 -0
  586. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/tools/knowledge_list/README.md +0 -0
  587. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/tools/knowledge_list/config.json +0 -0
  588. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/tools/knowledge_list/handler.py +0 -0
  589. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/tools/knowledge_semantic_search/README.md +0 -0
  590. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/tools/knowledge_semantic_search/config.json +0 -0
  591. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/tools/knowledge_semantic_search/handler.py +0 -0
  592. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/tools/knowledge_text_search/README.md +0 -0
  593. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/tools/knowledge_text_search/config.json +0 -0
  594. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/tools/knowledge_text_search/handler.py +0 -0
  595. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/tools/python_interpreter/README.md +0 -0
  596. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/tools/python_interpreter/config.json +0 -0
  597. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/tools/python_interpreter/handler.py +0 -0
  598. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/tools/qq_like/README.md +0 -0
  599. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/tools/qq_like/config.json +0 -0
  600. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/tools/qq_like/handler.py +0 -0
  601. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/tools/task_progress/README.md +0 -0
  602. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/tools/task_progress/config.json +0 -0
  603. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/tools/task_progress/handler.py +0 -0
  604. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/README.md +0 -0
  605. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/__init__.py +0 -0
  606. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/attachments/README.md +0 -0
  607. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/attachments/get_uid_by_url/config.json +0 -0
  608. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/attachments/get_uid_by_url/handler.py +0 -0
  609. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/attachments/get_url_by_uid/config.json +0 -0
  610. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/attachments/get_url_by_uid/handler.py +0 -0
  611. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/automation/README.md +0 -0
  612. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/automation/_runtime.py +0 -0
  613. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/automation/create/config.json +0 -0
  614. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/automation/create/handler.py +0 -0
  615. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/automation/delete/config.json +0 -0
  616. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/automation/delete/handler.py +0 -0
  617. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/automation/get/config.json +0 -0
  618. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/automation/get/handler.py +0 -0
  619. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/automation/list/config.json +0 -0
  620. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/automation/list/handler.py +0 -0
  621. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/automation/set_enabled/config.json +0 -0
  622. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/automation/set_enabled/handler.py +0 -0
  623. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/automation/update/config.json +0 -0
  624. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/automation/update/handler.py +0 -0
  625. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/cognitive/README.md +0 -0
  626. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/cognitive/get_profile/config.json +0 -0
  627. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/cognitive/get_profile/handler.py +0 -0
  628. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/cognitive/search_events/config.json +0 -0
  629. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/cognitive/search_events/handler.py +0 -0
  630. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/cognitive/search_profiles/config.json +0 -0
  631. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/cognitive/search_profiles/handler.py +0 -0
  632. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/commands/README.md +0 -0
  633. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/commands/get/config.json +0 -0
  634. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/commands/get/handler.py +0 -0
  635. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/commands/search/config.json +0 -0
  636. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/commands/search/handler.py +0 -0
  637. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/contacts/README.md +0 -0
  638. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/contacts/query_friends/config.json +0 -0
  639. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/contacts/query_friends/handler.py +0 -0
  640. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/contacts/query_groups/config.json +0 -0
  641. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/contacts/query_groups/handler.py +0 -0
  642. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/group/README.md +0 -0
  643. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/group/find_member/config.json +0 -0
  644. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/group/find_member/handler.py +0 -0
  645. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/group/get_avatar/config.json +0 -0
  646. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/group/get_avatar/handler.py +0 -0
  647. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/group/get_files/config.json +0 -0
  648. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/group/get_files/handler.py +0 -0
  649. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/group/get_honor_info/config.json +0 -0
  650. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/group/get_honor_info/handler.py +0 -0
  651. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/group/get_member_info/config.json +0 -0
  652. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/group/get_member_info/handler.py +0 -0
  653. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/group/get_member_list/config.json +0 -0
  654. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/group/get_member_list/handler.py +0 -0
  655. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/group/get_member_title/config.json +0 -0
  656. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/group/get_member_title/handler.py +0 -0
  657. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/group_analysis/README.md +0 -0
  658. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/group_analysis/activity_trend/config.json +0 -0
  659. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/group_analysis/activity_trend/handler.py +0 -0
  660. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/group_analysis/filter_members/config.json +0 -0
  661. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/group_analysis/filter_members/handler.py +0 -0
  662. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/group_analysis/inactive_risk/config.json +0 -0
  663. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/group_analysis/inactive_risk/handler.py +0 -0
  664. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/group_analysis/join_statistics/config.json +0 -0
  665. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/group_analysis/join_statistics/handler.py +0 -0
  666. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/group_analysis/level_distribution/config.json +0 -0
  667. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/group_analysis/level_distribution/handler.py +0 -0
  668. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/group_analysis/member_activity/config.json +0 -0
  669. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/group_analysis/member_activity/handler.py +0 -0
  670. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/group_analysis/member_messages/config.json +0 -0
  671. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/group_analysis/member_messages/handler.py +0 -0
  672. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/group_analysis/member_structure/config.json +0 -0
  673. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/group_analysis/member_structure/handler.py +0 -0
  674. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/group_analysis/message_mix/config.json +0 -0
  675. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/group_analysis/message_mix/handler.py +0 -0
  676. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/group_analysis/new_member_activity/config.json +0 -0
  677. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/group_analysis/new_member_activity/handler.py +0 -0
  678. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/group_analysis/rank_members/config.json +0 -0
  679. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/group_analysis/rank_members/handler.py +0 -0
  680. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/mcp/README.md +0 -0
  681. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/mcp/__init__.py +0 -0
  682. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/memes/README.md +0 -0
  683. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/memes/search_memes/config.json +0 -0
  684. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/memes/search_memes/handler.py +0 -0
  685. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/memes/send_meme_by_uid/config.json +0 -0
  686. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/memes/send_meme_by_uid/handler.py +0 -0
  687. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/memory/README.md +0 -0
  688. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/memory/add/config.json +0 -0
  689. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/memory/add/handler.py +0 -0
  690. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/memory/delete/config.json +0 -0
  691. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/memory/delete/handler.py +0 -0
  692. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/memory/list/config.json +0 -0
  693. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/memory/list/handler.py +0 -0
  694. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/memory/update/config.json +0 -0
  695. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/memory/update/handler.py +0 -0
  696. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/messages/README.md +0 -0
  697. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/messages/context_utils.py +0 -0
  698. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/messages/get_forward_msg/config.json +0 -0
  699. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/messages/get_forward_msg/handler.py +0 -0
  700. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/messages/get_messages_by_time/config.json +0 -0
  701. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/messages/get_messages_by_time/handler.py +0 -0
  702. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/messages/get_recent_messages/config.json +0 -0
  703. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/messages/get_recent_messages/handler.py +0 -0
  704. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/messages/list_emojis/config.json +0 -0
  705. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/messages/list_emojis/handler.py +0 -0
  706. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/messages/lookup_emoji_id/config.json +0 -0
  707. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/messages/lookup_emoji_id/handler.py +0 -0
  708. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/messages/react_message_emoji/config.json +0 -0
  709. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/messages/react_message_emoji/handler.py +0 -0
  710. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/messages/send_group_sign/config.json +0 -0
  711. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/messages/send_group_sign/handler.py +0 -0
  712. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/messages/send_message/config.json +0 -0
  713. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/messages/send_message/handler.py +0 -0
  714. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/messages/send_poke/config.json +0 -0
  715. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/messages/send_poke/handler.py +0 -0
  716. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/messages/send_private_message/config.json +0 -0
  717. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/messages/send_private_message/handler.py +0 -0
  718. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/messages/send_text_file/callable.json +0 -0
  719. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/messages/send_text_file/config.json +0 -0
  720. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/messages/send_text_file/handler.py +0 -0
  721. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/messages/send_url_file/callable.json +0 -0
  722. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/messages/send_url_file/config.json +0 -0
  723. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/messages/send_url_file/handler.py +0 -0
  724. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/messages/send_voice/config.json +0 -0
  725. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/messages/send_voice/handler.py +0 -0
  726. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/music/README.md +0 -0
  727. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/music/_client.py +0 -0
  728. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/music/_constants.py +0 -0
  729. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/music/_tools.py +0 -0
  730. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/music/_track_refs.py +0 -0
  731. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/music/browse_playlists/config.json +0 -0
  732. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/music/browse_playlists/handler.py +0 -0
  733. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/music/browse_rankings/config.json +0 -0
  734. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/music/browse_rankings/handler.py +0 -0
  735. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/music/find_song_matches/config.json +0 -0
  736. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/music/find_song_matches/handler.py +0 -0
  737. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/music/get_audio/config.json +0 -0
  738. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/music/get_audio/handler.py +0 -0
  739. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/music/get_comments/config.json +0 -0
  740. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/music/get_comments/handler.py +0 -0
  741. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/music/get_cover/config.json +0 -0
  742. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/music/get_cover/handler.py +0 -0
  743. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/music/get_hot_search/config.json +0 -0
  744. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/music/get_hot_search/handler.py +0 -0
  745. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/music/get_lyrics/config.json +0 -0
  746. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/music/get_lyrics/handler.py +0 -0
  747. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/music/search_playlists/config.json +0 -0
  748. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/music/search_playlists/handler.py +0 -0
  749. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/music/search_songs/config.json +0 -0
  750. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/music/search_songs/handler.py +0 -0
  751. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/notices/README.md +0 -0
  752. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/notices/get/config.json +0 -0
  753. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/notices/get/handler.py +0 -0
  754. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/notices/list/config.json +0 -0
  755. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/notices/list/handler.py +0 -0
  756. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/notices/stats/config.json +0 -0
  757. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/notices/stats/handler.py +0 -0
  758. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/render/README.md +0 -0
  759. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/render/layout.py +0 -0
  760. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/render/render_html/config.json +0 -0
  761. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/render/render_html/handler.py +0 -0
  762. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/render/render_latex/config.json +0 -0
  763. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/render/render_latex/handler.py +0 -0
  764. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/render/render_markdown/config.json +0 -0
  765. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/skills/toolsets/render/render_markdown/handler.py +0 -0
  766. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/token_usage_storage.py +0 -0
  767. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/utils/__init__.py +0 -0
  768. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/utils/cache.py +0 -0
  769. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/utils/coerce.py +0 -0
  770. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/utils/common.py +0 -0
  771. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/utils/cors.py +0 -0
  772. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/utils/easter_egg_calls.py +0 -0
  773. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/utils/fake_at.py +0 -0
  774. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/utils/file_lock.py +0 -0
  775. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/utils/group_metrics.py +0 -0
  776. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/utils/history.py +0 -0
  777. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/utils/http_download.py +0 -0
  778. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/utils/io.py +0 -0
  779. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/utils/logging.py +0 -0
  780. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/utils/member_utils.py +0 -0
  781. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/utils/message_reply.py +0 -0
  782. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/utils/message_targets.py +0 -0
  783. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/utils/message_turn.py +0 -0
  784. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/utils/message_utils.py +0 -0
  785. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/utils/paths.py +0 -0
  786. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/utils/qq_emoji.py +0 -0
  787. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/utils/queue_intervals.py +0 -0
  788. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/utils/recent_messages.py +0 -0
  789. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/utils/render_cache.py +0 -0
  790. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/utils/request_params.py +0 -0
  791. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/utils/resources.py +0 -0
  792. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/utils/scheduler.py +0 -0
  793. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/utils/self_update.py +0 -0
  794. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/utils/sender.py +0 -0
  795. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/utils/sender_helpers.py +0 -0
  796. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/utils/time_utils.py +0 -0
  797. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/utils/tool_calls.py +0 -0
  798. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/utils/xml.py +0 -0
  799. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/webui/__init__.py +0 -0
  800. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/webui/__main__.py +0 -0
  801. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/webui/app.py +0 -0
  802. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/webui/routes/__init__.py +0 -0
  803. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/webui/routes/_auth.py +0 -0
  804. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/webui/routes/_bot.py +0 -0
  805. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/webui/routes/_config.py +0 -0
  806. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/webui/routes/_index.py +0 -0
  807. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/webui/routes/_logs.py +0 -0
  808. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/webui/routes/_memes.py +0 -0
  809. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/webui/routes/_runtime.py +0 -0
  810. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/webui/routes/_shared.py +0 -0
  811. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/webui/routes/_system.py +0 -0
  812. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/webui/routes/_weixin.py +0 -0
  813. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/webui/static/css/.stylelintrc.json +0 -0
  814. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/webui/static/css/app.css +0 -0
  815. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/webui/static/css/base.css +0 -0
  816. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/webui/static/css/components.css +0 -0
  817. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/webui/static/css/highlight-github.min.css +0 -0
  818. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/webui/static/css/landing.css +0 -0
  819. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/webui/static/css/responsive.css +0 -0
  820. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/webui/static/css/style.css +0 -0
  821. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/webui/static/css/variables.css +0 -0
  822. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/webui/static/css/workflow.css +0 -0
  823. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/webui/static/favicon.svg +0 -0
  824. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/webui/static/js/api.js +0 -0
  825. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/webui/static/js/auth.js +0 -0
  826. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/webui/static/js/bot.js +0 -0
  827. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/webui/static/js/config-form.js +0 -0
  828. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/webui/static/js/i18n.js +0 -0
  829. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/webui/static/js/log-view.js +0 -0
  830. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/webui/static/js/logs.js +0 -0
  831. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/webui/static/js/main.js +0 -0
  832. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/webui/static/js/memes.js +0 -0
  833. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/webui/static/js/schedules.js +0 -0
  834. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/webui/static/js/state.js +0 -0
  835. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/webui/static/js/ui.js +0 -0
  836. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/webui/static/js/vendor/highlight.min.js +0 -0
  837. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/webui/static/js/vendor/highlightjs.LICENSE +0 -0
  838. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/webui/static/js/vendor/marked.min.js +0 -0
  839. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/webui/static/js/weixin.js +0 -0
  840. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/webui/static/js/workflow-canvas.js +0 -0
  841. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/webui/static/js/workflow-graph.js +0 -0
  842. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/webui/static/js/workflow-inspector.js +0 -0
  843. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/webui/templates/index.html +0 -0
  844. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/webui/utils/__init__.py +0 -0
  845. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/webui/utils/comment.py +0 -0
  846. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/webui/utils/config_io.py +0 -0
  847. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/webui/utils/config_sync.py +0 -0
  848. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/webui/utils/toml_render.py +0 -0
  849. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/weixin/__init__.py +0 -0
  850. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/weixin/audio.py +0 -0
  851. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/weixin/models.py +0 -0
  852. {undefined_bot-3.16.0 → undefined_bot-3.17.0}/src/Undefined/weixin/service.py +0 -0
  853. {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.16.0
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
- 如果只是部署和运行 QQ Bot,通常**不需要**在 GitHub Release 的 Assets 里下载任何文件。推荐按下方[快速开始](#-快速开始-源码模式)使用源码部署;只想快速体验命令行入口时,可使用 `pip install -U Undefined-bot` 或 `uv tool install Undefined-bot`。
86
+ **部署 QQ Bot 本身不需要下载 Release**:Release 里都是可选组件。源码部署见下方[快速开始](#-快速开始-源码模式),安装包用途与平台对应如下:
87
87
 
88
- Release 里的安装包是可选组件,不是 Bot 服务本体:
89
-
90
- | 目标 | 是否需要下载 Release | 选择 |
88
+ | 目标 | 文件 | 平台 |
91
89
  | --- | --- | --- |
92
- | 部署 / 运行 QQ Bot | 不需要 | 源码部署,启动 `uv run Undefined-webui`;或使用 `pip` / `uv tool` 安装 Python 包 |
93
- | 远程管理已有实例 | 可选 | `Undefined-Console-*`,用于连接 Management API 并打开远程 WebUI |
94
- | 使用原生聊天客户端 | 可选 | `Undefined-Chat-*`,用于连接 Runtime API 聊天 |
95
- | 离线安装 / 镜像缓存 Python 包 | 可选 | `undefined_bot-*.whl` 或 `undefined_bot-*.tar.gz` |
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 都需要连接到已经运行的 Undefined 服务。首次部署请先启动 `Undefined-webui`,完成配置和 Bot 启动后,再按需使用这些客户端连接。
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
- 如果只是部署和运行 QQ Bot,通常**不需要**在 GitHub Release 的 Assets 里下载任何文件。推荐按下方[快速开始](#-快速开始-源码模式)使用源码部署;只想快速体验命令行入口时,可使用 `pip install -U Undefined-bot` 或 `uv tool install Undefined-bot`。
35
+ **部署 QQ Bot 本身不需要下载 Release**:Release 里都是可选组件。源码部署见下方[快速开始](#-快速开始-源码模式),安装包用途与平台对应如下:
36
36
 
37
- Release 里的安装包是可选组件,不是 Bot 服务本体:
38
-
39
- | 目标 | 是否需要下载 Release | 选择 |
37
+ | 目标 | 文件 | 平台 |
40
38
  | --- | --- | --- |
41
- | 部署 / 运行 QQ Bot | 不需要 | 源码部署,启动 `uv run Undefined-webui`;或使用 `pip` / `uv tool` 安装 Python 包 |
42
- | 远程管理已有实例 | 可选 | `Undefined-Console-*`,用于连接 Management API 并打开远程 WebUI |
43
- | 使用原生聊天客户端 | 可选 | `Undefined-Chat-*`,用于连接 Runtime API 聊天 |
44
- | 离线安装 / 镜像缓存 Python 包 | 可选 | `undefined_bot-*.whl` 或 `undefined_bot-*.tar.gz` |
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 都需要连接到已经运行的 Undefined 服务。首次部署请先启动 `Undefined-webui`,完成配置和 Bot 启动后,再按需使用这些客户端连接。
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.16.0"
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.16.0"
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,8 @@
1
+ """支持 ``python -m Undefined.deploy``。"""
2
+
3
+ from __future__ import annotations
4
+
5
+ from .cli import main
6
+
7
+ if __name__ == "__main__":
8
+ raise SystemExit(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
+ ]