Undefined-bot 3.14.0__tar.gz → 3.15.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 (827) hide show
  1. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/ARCHITECTURE.md +12 -12
  2. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/CHANGELOG.md +19 -0
  3. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/PKG-INFO +1 -14
  4. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/config.toml.example +157 -8
  5. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/pyproject.toml +13 -22
  6. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/__init__.py +1 -1
  7. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/ai/client/ask_loop.py +2 -4
  8. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/ai/client/setup.py +52 -64
  9. undefined_bot-3.15.0/src/Undefined/ai/crawl4ai_support.py +55 -0
  10. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/cognitive/historian/worker.py +45 -15
  11. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/cognitive/profile_storage.py +82 -4
  12. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/config/coercers.py +12 -0
  13. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/config/config_class.py +61 -22
  14. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/config/domain_parsers.py +7 -3
  15. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/config/hot_reload.py +174 -43
  16. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/config/load_sections/knowledge.py +3 -0
  17. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/config/manager.py +14 -1
  18. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/config/model_parsers.py +2 -0
  19. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/config/models.py +68 -2
  20. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/config/parsers/__init__.py +6 -1
  21. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/config/parsers/embedding.py +83 -3
  22. undefined_bot-3.15.0/src/Undefined/knowledge/__init__.py +14 -0
  23. undefined_bot-3.15.0/src/Undefined/knowledge/runtime.py +210 -0
  24. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/main.py +151 -19
  25. undefined_bot-3.14.0/src/Undefined/services/commands/bugfix.py → undefined_bot-3.15.0/src/Undefined/services/bugfix_command.py +23 -19
  26. undefined_bot-3.15.0/src/Undefined/services/command.py +550 -0
  27. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/services/coordinator/background.py +11 -2
  28. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/services/security.py +0 -8
  29. undefined_bot-3.14.0/src/Undefined/services/commands/stats.py → undefined_bot-3.15.0/src/Undefined/services/stats_command.py +189 -110
  30. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/README.md +35 -36
  31. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/README.md +5 -3
  32. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/code_delivery_agent/tools/end/handler.py +4 -9
  33. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/web_agent/tools/crawl_webpage/handler.py +5 -8
  34. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/web_agent/tools/web_search/handler.py +1 -1
  35. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/commands/README.md +7 -2
  36. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/commands/bugfix/handler.py +1 -1
  37. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/commands/stats/handler.py +2 -2
  38. undefined_bot-3.15.0/src/Undefined/skills/commands/summary/README.md +14 -0
  39. undefined_bot-3.15.0/src/Undefined/skills/commands/version/README.md +11 -0
  40. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/registry.py +171 -27
  41. undefined_bot-3.15.0/src/Undefined/skills/shared.py +61 -0
  42. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/tools/README.md +2 -2
  43. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/tools/__init__.py +4 -1
  44. undefined_bot-3.15.0/src/Undefined/skills/tools/calculator/README.md +11 -0
  45. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/tools/end/README.md +1 -0
  46. undefined_bot-3.15.0/src/Undefined/skills/tools/fetch_image_uid/README.md +12 -0
  47. undefined_bot-3.15.0/src/Undefined/skills/tools/get_current_time/README.md +17 -0
  48. undefined_bot-3.15.0/src/Undefined/skills/tools/get_picture/README.md +19 -0
  49. undefined_bot-3.15.0/src/Undefined/skills/tools/knowledge_list/README.md +16 -0
  50. undefined_bot-3.15.0/src/Undefined/skills/tools/knowledge_semantic_search/README.md +20 -0
  51. undefined_bot-3.15.0/src/Undefined/skills/tools/knowledge_text_search/README.md +19 -0
  52. undefined_bot-3.15.0/src/Undefined/skills/tools/python_interpreter/README.md +19 -0
  53. undefined_bot-3.15.0/src/Undefined/skills/tools/task_progress/README.md +12 -0
  54. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/README.md +20 -20
  55. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/__init__.py +3 -1
  56. undefined_bot-3.15.0/src/Undefined/skills/toolsets/attachments/README.md +18 -0
  57. undefined_bot-3.15.0/src/Undefined/skills/toolsets/cognitive/README.md +36 -0
  58. undefined_bot-3.15.0/src/Undefined/skills/toolsets/contacts/README.md +22 -0
  59. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/group/get_member_title/handler.py +4 -15
  60. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/messages/react_message_emoji/handler.py +12 -37
  61. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/messages/send_message/handler.py +2 -15
  62. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/messages/send_poke/handler.py +15 -44
  63. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/messages/send_private_message/handler.py +2 -15
  64. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/messages/send_text_file/handler.py +9 -28
  65. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/messages/send_url_file/handler.py +9 -28
  66. undefined_bot-3.15.0/src/Undefined/skills/toolsets/music/README.md +104 -0
  67. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/render/README.md +6 -0
  68. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/utils/sender.py +25 -97
  69. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/webui/static/js/config-form.js +6 -0
  70. undefined_bot-3.14.0/src/Undefined/ai/crawl4ai_support.py +0 -54
  71. undefined_bot-3.14.0/src/Undefined/knowledge/__init__.py +0 -8
  72. undefined_bot-3.14.0/src/Undefined/knowledge/runtime.py +0 -108
  73. undefined_bot-3.14.0/src/Undefined/services/command.py +0 -1582
  74. undefined_bot-3.14.0/src/Undefined/skills/tools/get_current_time/README.md +0 -9
  75. undefined_bot-3.14.0/src/Undefined/skills/tools/get_picture/README.md +0 -15
  76. undefined_bot-3.14.0/src/Undefined/skills/tools/python_interpreter/README.md +0 -14
  77. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/.gitignore +0 -0
  78. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/LICENSE +0 -0
  79. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/README.md +0 -0
  80. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/config/README.md +0 -0
  81. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/config/mcp.json.example +0 -0
  82. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/img/undefined-9527.png +0 -0
  83. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/img/xlwy.jpg +0 -0
  84. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/res/IMPORTANT/each.md +0 -0
  85. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/res/README.md +0 -0
  86. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/res/prompts/agent_self_intro.txt +0 -0
  87. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/res/prompts/analyze_multimodal.txt +0 -0
  88. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/res/prompts/describe_image.txt +0 -0
  89. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/res/prompts/describe_meme_image.txt +0 -0
  90. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/res/prompts/generate_title.txt +0 -0
  91. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/res/prompts/historian_profile_merge.md +0 -0
  92. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/res/prompts/historian_rewrite.md +0 -0
  93. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/res/prompts/image_gen_moderation.txt +0 -0
  94. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/res/prompts/injection_detector.txt +0 -0
  95. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/res/prompts/injection_response_agent.txt +0 -0
  96. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/res/prompts/judge_meme_image.txt +0 -0
  97. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/res/prompts/merge_message_summaries.txt +0 -0
  98. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/res/prompts/merge_summaries.txt +0 -0
  99. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/res/prompts/message_summary.txt +0 -0
  100. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/res/prompts/naga_message_moderation.txt +0 -0
  101. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/res/prompts/stats_analysis.txt +0 -0
  102. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/res/prompts/summarize.txt +0 -0
  103. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/res/prompts/undefined.xml +0 -0
  104. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/res/prompts/undefined_nagaagent.xml +0 -0
  105. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/README.md +0 -0
  106. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/README.md +0 -0
  107. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/__main__.py +0 -0
  108. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/ai/__init__.py +0 -0
  109. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/ai/client/__init__.py +0 -0
  110. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/ai/client/queue.py +0 -0
  111. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/ai/http.py +0 -0
  112. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/ai/llm/__init__.py +0 -0
  113. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/ai/llm/requester.py +0 -0
  114. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/ai/llm/retry.py +0 -0
  115. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/ai/llm/sanitize.py +0 -0
  116. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/ai/llm/streaming.py +0 -0
  117. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/ai/llm/thinking.py +0 -0
  118. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/ai/llm/types.py +0 -0
  119. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/ai/model_selector.py +0 -0
  120. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/ai/multimodal/__init__.py +0 -0
  121. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/ai/multimodal/analyzer.py +0 -0
  122. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/ai/multimodal/constants.py +0 -0
  123. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/ai/multimodal/detection.py +0 -0
  124. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/ai/multimodal/parsing.py +0 -0
  125. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/ai/parsing.py +0 -0
  126. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/ai/prompts/__init__.py +0 -0
  127. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/ai/prompts/builder.py +0 -0
  128. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/ai/prompts/cognitive.py +0 -0
  129. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/ai/prompts/constants.py +0 -0
  130. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/ai/prompts/current_input.py +0 -0
  131. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/ai/prompts/file_includes.py +0 -0
  132. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/ai/prompts/system_context.py +0 -0
  133. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/ai/prompts/system_info.py +0 -0
  134. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/ai/queue_budget.py +0 -0
  135. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/ai/retrieval.py +0 -0
  136. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/ai/summaries.py +0 -0
  137. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/ai/tokens.py +0 -0
  138. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/ai/tool_search.py +0 -0
  139. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/ai/tooling.py +0 -0
  140. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/ai/transports/__init__.py +0 -0
  141. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/ai/transports/anthropic_transport.py +0 -0
  142. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/ai/transports/openai_transport.py +0 -0
  143. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/ai/transports/replay.py +0 -0
  144. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/api/__init__.py +0 -0
  145. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/api/_context.py +0 -0
  146. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/api/_helpers.py +0 -0
  147. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/api/_naga_state.py +0 -0
  148. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/api/_openapi.py +0 -0
  149. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/api/_probes.py +0 -0
  150. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/api/app.py +0 -0
  151. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/api/naga_store.py +0 -0
  152. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/api/routes/__init__.py +0 -0
  153. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/api/routes/automations.py +0 -0
  154. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/api/routes/chat.py +0 -0
  155. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/api/routes/cognitive.py +0 -0
  156. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/api/routes/commands.py +0 -0
  157. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/api/routes/health.py +0 -0
  158. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/api/routes/memes.py +0 -0
  159. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/api/routes/memory.py +0 -0
  160. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/api/routes/naga/__init__.py +0 -0
  161. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/api/routes/naga/auth.py +0 -0
  162. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/api/routes/naga/bind.py +0 -0
  163. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/api/routes/naga/send.py +0 -0
  164. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/api/routes/naga/unbind.py +0 -0
  165. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/api/routes/onebot_files.py +0 -0
  166. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/api/routes/schedules.py +0 -0
  167. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/api/routes/system.py +0 -0
  168. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/api/routes/tools.py +0 -0
  169. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/api/routes/weixin.py +0 -0
  170. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/api/webchat_store.py +0 -0
  171. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/arxiv/__init__.py +0 -0
  172. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/arxiv/client.py +0 -0
  173. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/arxiv/downloader.py +0 -0
  174. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/arxiv/models.py +0 -0
  175. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/arxiv/parser.py +0 -0
  176. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/arxiv/sender.py +0 -0
  177. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/attachments/__init__.py +0 -0
  178. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/attachments/forward_snapshot.py +0 -0
  179. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/attachments/models.py +0 -0
  180. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/attachments/registry.py +0 -0
  181. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/attachments/render.py +0 -0
  182. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/attachments/segments.py +0 -0
  183. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/automations/__init__.py +0 -0
  184. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/automations/address.py +0 -0
  185. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/automations/catalog.py +0 -0
  186. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/automations/clock.py +0 -0
  187. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/automations/constants.py +0 -0
  188. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/automations/engine.py +0 -0
  189. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/automations/extract.py +0 -0
  190. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/automations/logutil.py +0 -0
  191. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/automations/match.py +0 -0
  192. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/automations/mentions.py +0 -0
  193. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/automations/migrate.py +0 -0
  194. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/automations/runner.py +0 -0
  195. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/automations/service.py +0 -0
  196. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/automations/short.py +0 -0
  197. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/automations/storage.py +0 -0
  198. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/automations/template.py +0 -0
  199. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/automations/triggers.py +0 -0
  200. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/automations/validate.py +0 -0
  201. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/bilibili/__init__.py +0 -0
  202. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/bilibili/api_client.py +0 -0
  203. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/bilibili/danmaku.py +0 -0
  204. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/bilibili/download_core.py +0 -0
  205. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/bilibili/downloader.py +0 -0
  206. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/bilibili/errors.py +0 -0
  207. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/bilibili/models.py +0 -0
  208. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/bilibili/parser.py +0 -0
  209. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/bilibili/sender.py +0 -0
  210. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/bilibili/wbi.py +0 -0
  211. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/bilibili/wbi_request.py +0 -0
  212. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/changelog.py +0 -0
  213. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/cognitive/__init__.py +0 -0
  214. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/cognitive/chroma_scheduler.py +0 -0
  215. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/cognitive/historian/__init__.py +0 -0
  216. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/cognitive/historian/helpers.py +0 -0
  217. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/cognitive/historian/tools.py +0 -0
  218. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/cognitive/job_queue.py +0 -0
  219. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/cognitive/service/__init__.py +0 -0
  220. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/cognitive/service/helpers.py +0 -0
  221. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/cognitive/service/service.py +0 -0
  222. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/cognitive/vector_store.py +0 -0
  223. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/cognitive/vector_store_compat.py +0 -0
  224. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/config/__init__.py +0 -0
  225. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/config/admin.py +0 -0
  226. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/config/api_modes.py +0 -0
  227. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/config/build_config.py +0 -0
  228. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/config/env_registry.py +0 -0
  229. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/config/load_sections/__init__.py +0 -0
  230. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/config/load_sections/access.py +0 -0
  231. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/config/load_sections/core.py +0 -0
  232. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/config/load_sections/domains.py +0 -0
  233. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/config/load_sections/finalize.py +0 -0
  234. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/config/load_sections/history_skills.py +0 -0
  235. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/config/load_sections/integrations.py +0 -0
  236. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/config/load_sections/logging_tools.py +0 -0
  237. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/config/load_sections/models.py +0 -0
  238. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/config/load_sections/network.py +0 -0
  239. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/config/loader.py +0 -0
  240. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/config/naga_policy.py +0 -0
  241. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/config/onebot.py +0 -0
  242. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/config/parsers/agent.py +0 -0
  243. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/config/parsers/chat.py +0 -0
  244. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/config/parsers/grok.py +0 -0
  245. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/config/parsers/helpers.py +0 -0
  246. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/config/parsers/historian.py +0 -0
  247. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/config/parsers/image.py +0 -0
  248. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/config/parsers/naga.py +0 -0
  249. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/config/parsers/pool.py +0 -0
  250. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/config/parsers/security.py +0 -0
  251. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/config/parsers/summary.py +0 -0
  252. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/config/parsers/vision.py +0 -0
  253. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/config/resolvers.py +0 -0
  254. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/config/search.py +0 -0
  255. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/config/toml_io.py +0 -0
  256. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/config/webui_settings.py +0 -0
  257. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/context.py +0 -0
  258. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/context_resource_registry.py +0 -0
  259. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/douyin/__init__.py +0 -0
  260. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/douyin/client.py +0 -0
  261. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/douyin/downloader.py +0 -0
  262. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/douyin/models.py +0 -0
  263. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/douyin/parser.py +0 -0
  264. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/douyin/sender.py +0 -0
  265. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/end_summary_storage.py +0 -0
  266. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/faq.py +0 -0
  267. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/github/__init__.py +0 -0
  268. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/github/client.py +0 -0
  269. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/github/models.py +0 -0
  270. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/github/parser.py +0 -0
  271. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/github/sender.py +0 -0
  272. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/handlers/__init__.py +0 -0
  273. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/handlers/auto_extract.py +0 -0
  274. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/handlers/message_flow.py +0 -0
  275. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/handlers/poke.py +0 -0
  276. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/handlers/repeat.py +0 -0
  277. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/injection_response_agent.py +0 -0
  278. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/knowledge/chunker.py +0 -0
  279. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/knowledge/embedder.py +0 -0
  280. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/knowledge/manager.py +0 -0
  281. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/knowledge/reranker.py +0 -0
  282. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/knowledge/store.py +0 -0
  283. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/mcp/__init__.py +0 -0
  284. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/mcp/registry.py +0 -0
  285. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/memes/__init__.py +0 -0
  286. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/memes/_image_utils.py +0 -0
  287. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/memes/ingest.py +0 -0
  288. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/memes/models.py +0 -0
  289. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/memes/search.py +0 -0
  290. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/memes/service.py +0 -0
  291. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/memes/store.py +0 -0
  292. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/memes/vector_store.py +0 -0
  293. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/memes/worker.py +0 -0
  294. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/memory.py +0 -0
  295. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/onebot/__init__.py +0 -0
  296. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/onebot/client.py +0 -0
  297. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/onebot/file_errors.py +0 -0
  298. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/onebot/file_references.py +0 -0
  299. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/onebot/file_store.py +0 -0
  300. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/onebot/file_transport.py +0 -0
  301. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/onebot/message.py +0 -0
  302. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/py.typed +0 -0
  303. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/rate_limit.py +0 -0
  304. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/render.py +0 -0
  305. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/services/__init__.py +0 -0
  306. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/services/commands/__init__.py +0 -0
  307. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/services/commands/catalog.py +0 -0
  308. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/services/commands/context.py +0 -0
  309. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/services/commands/registry.py +0 -0
  310. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/services/coordinator/__init__.py +0 -0
  311. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/services/coordinator/batching.py +0 -0
  312. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/services/coordinator/group.py +0 -0
  313. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/services/coordinator/message_ids.py +0 -0
  314. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/services/coordinator/private.py +0 -0
  315. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/services/message_batcher/__init__.py +0 -0
  316. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/services/message_batcher/scheduler.py +0 -0
  317. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/services/message_batcher/state.py +0 -0
  318. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/services/message_summary_fetch.py +0 -0
  319. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/services/model_pool.py +0 -0
  320. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/services/queue_manager.py +0 -0
  321. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/__init__.py +0 -0
  322. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/__init__.py +0 -0
  323. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/agent_tool_registry.py +0 -0
  324. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/code_delivery_agent/config.json +0 -0
  325. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/code_delivery_agent/docker_utils.py +0 -0
  326. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/code_delivery_agent/handler.py +0 -0
  327. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/code_delivery_agent/intro.md +0 -0
  328. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/code_delivery_agent/mcp.json +0 -0
  329. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/code_delivery_agent/prompt.md +0 -0
  330. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/code_delivery_agent/tools/copy/config.json +0 -0
  331. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/code_delivery_agent/tools/copy/handler.py +0 -0
  332. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/code_delivery_agent/tools/delete/config.json +0 -0
  333. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/code_delivery_agent/tools/delete/handler.py +0 -0
  334. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/code_delivery_agent/tools/diff/config.json +0 -0
  335. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/code_delivery_agent/tools/diff/handler.py +0 -0
  336. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/code_delivery_agent/tools/end/config.json +0 -0
  337. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/code_delivery_agent/tools/glob/config.json +0 -0
  338. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/code_delivery_agent/tools/glob/handler.py +0 -0
  339. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/code_delivery_agent/tools/grep/config.json +0 -0
  340. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/code_delivery_agent/tools/grep/handler.py +0 -0
  341. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/code_delivery_agent/tools/init_docker/config.json +0 -0
  342. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/code_delivery_agent/tools/init_docker/handler.py +0 -0
  343. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/code_delivery_agent/tools/read/config.json +0 -0
  344. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/code_delivery_agent/tools/read/handler.py +0 -0
  345. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/code_delivery_agent/tools/run_bash_command/config.json +0 -0
  346. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/code_delivery_agent/tools/run_bash_command/handler.py +0 -0
  347. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/code_delivery_agent/tools/todo/config.json +0 -0
  348. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/code_delivery_agent/tools/todo/handler.py +0 -0
  349. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/code_delivery_agent/tools/tree/config.json +0 -0
  350. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/code_delivery_agent/tools/tree/handler.py +0 -0
  351. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/code_delivery_agent/tools/write/config.json +0 -0
  352. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/code_delivery_agent/tools/write/handler.py +0 -0
  353. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/entertainment_agent/README.md +0 -0
  354. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/entertainment_agent/config.json +0 -0
  355. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/entertainment_agent/handler.py +0 -0
  356. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/entertainment_agent/intro.md +0 -0
  357. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/entertainment_agent/prompt.md +0 -0
  358. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/entertainment_agent/tools/__init__.py +0 -0
  359. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/entertainment_agent/tools/ai_draw_one/config.json +0 -0
  360. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/entertainment_agent/tools/ai_draw_one/handler.py +0 -0
  361. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/entertainment_agent/tools/horoscope/config.json +0 -0
  362. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/entertainment_agent/tools/horoscope/handler.py +0 -0
  363. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/entertainment_agent/tools/minecraft_skin/config.json +0 -0
  364. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/entertainment_agent/tools/minecraft_skin/handler.py +0 -0
  365. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/entertainment_agent/tools/renjian/config.json +0 -0
  366. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/entertainment_agent/tools/renjian/handler.py +0 -0
  367. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/entertainment_agent/tools/wenchang_dijun/config.json +0 -0
  368. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/entertainment_agent/tools/wenchang_dijun/handler.py +0 -0
  369. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/file_analysis_agent/README.md +0 -0
  370. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/file_analysis_agent/__init__.py +0 -0
  371. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/file_analysis_agent/config.json +0 -0
  372. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/file_analysis_agent/handler.py +0 -0
  373. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/file_analysis_agent/intro.md +0 -0
  374. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/file_analysis_agent/prompt.md +0 -0
  375. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/file_analysis_agent/tools/__init__.py +0 -0
  376. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/file_analysis_agent/tools/analyze_code/config.json +0 -0
  377. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/file_analysis_agent/tools/analyze_code/handler.py +0 -0
  378. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/file_analysis_agent/tools/analyze_multimodal/config.json +0 -0
  379. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/file_analysis_agent/tools/analyze_multimodal/handler.py +0 -0
  380. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/file_analysis_agent/tools/cleanup_temp/config.json +0 -0
  381. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/file_analysis_agent/tools/cleanup_temp/handler.py +0 -0
  382. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/file_analysis_agent/tools/describe_pdf_page/config.json +0 -0
  383. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/file_analysis_agent/tools/describe_pdf_page/handler.py +0 -0
  384. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/file_analysis_agent/tools/detect_file_type/config.json +0 -0
  385. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/file_analysis_agent/tools/detect_file_type/handler.py +0 -0
  386. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/file_analysis_agent/tools/download_file/config.json +0 -0
  387. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/file_analysis_agent/tools/download_file/handler.py +0 -0
  388. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/file_analysis_agent/tools/extract_archive/config.json +0 -0
  389. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/file_analysis_agent/tools/extract_archive/handler.py +0 -0
  390. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/file_analysis_agent/tools/extract_docx/config.json +0 -0
  391. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/file_analysis_agent/tools/extract_docx/handler.py +0 -0
  392. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/file_analysis_agent/tools/extract_pdf/config.json +0 -0
  393. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/file_analysis_agent/tools/extract_pdf/handler.py +0 -0
  394. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/file_analysis_agent/tools/extract_pptx/config.json +0 -0
  395. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/file_analysis_agent/tools/extract_pptx/handler.py +0 -0
  396. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/file_analysis_agent/tools/extract_xlsx/config.json +0 -0
  397. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/file_analysis_agent/tools/extract_xlsx/handler.py +0 -0
  398. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/file_analysis_agent/tools/read_text_file/config.json +0 -0
  399. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/file_analysis_agent/tools/read_text_file/handler.py +0 -0
  400. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/info_agent/README.md +0 -0
  401. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/info_agent/config.json +0 -0
  402. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/info_agent/handler.py +0 -0
  403. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/info_agent/intro.md +0 -0
  404. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/info_agent/prompt.md +0 -0
  405. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/info_agent/tools/__init__.py +0 -0
  406. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/info_agent/tools/arxiv_search/config.json +0 -0
  407. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/info_agent/tools/arxiv_search/handler.py +0 -0
  408. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/info_agent/tools/baiduhot/config.json +0 -0
  409. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/info_agent/tools/baiduhot/handler.py +0 -0
  410. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/info_agent/tools/base64/config.json +0 -0
  411. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/info_agent/tools/base64/handler.py +0 -0
  412. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/info_agent/tools/bilibili_search/config.json +0 -0
  413. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/info_agent/tools/bilibili_search/handler.py +0 -0
  414. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/info_agent/tools/bilibili_user_info/config.json +0 -0
  415. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/info_agent/tools/bilibili_user_info/handler.py +0 -0
  416. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/info_agent/tools/douyinhot/config.json +0 -0
  417. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/info_agent/tools/douyinhot/handler.py +0 -0
  418. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/info_agent/tools/gold_price/config.json +0 -0
  419. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/info_agent/tools/gold_price/handler.py +0 -0
  420. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/info_agent/tools/hash/config.json +0 -0
  421. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/info_agent/tools/hash/handler.py +0 -0
  422. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/info_agent/tools/history/config.json +0 -0
  423. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/info_agent/tools/history/handler.py +0 -0
  424. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/info_agent/tools/net_check/config.json +0 -0
  425. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/info_agent/tools/net_check/handler.py +0 -0
  426. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/info_agent/tools/qq_level_query/config.json +0 -0
  427. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/info_agent/tools/qq_level_query/handler.py +0 -0
  428. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/info_agent/tools/speed/config.json +0 -0
  429. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/info_agent/tools/speed/handler.py +0 -0
  430. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/info_agent/tools/tcping/config.json +0 -0
  431. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/info_agent/tools/tcping/handler.py +0 -0
  432. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/info_agent/tools/weather_query/config.json +0 -0
  433. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/info_agent/tools/weather_query/handler.py +0 -0
  434. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/info_agent/tools/weibohot/config.json +0 -0
  435. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/info_agent/tools/weibohot/handler.py +0 -0
  436. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/info_agent/tools/whois/config.json +0 -0
  437. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/info_agent/tools/whois/handler.py +0 -0
  438. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/intro_generator.py +0 -0
  439. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/intro_utils.py +0 -0
  440. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/naga_code_analysis_agent/README.md +0 -0
  441. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/naga_code_analysis_agent/config.json +0 -0
  442. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/naga_code_analysis_agent/handler.py +0 -0
  443. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/naga_code_analysis_agent/intro.md +0 -0
  444. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/naga_code_analysis_agent/mcp.json +0 -0
  445. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/naga_code_analysis_agent/prompt.md +0 -0
  446. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/naga_code_analysis_agent/tools/__init__.py +0 -0
  447. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/naga_code_analysis_agent/tools/glob/config.json +0 -0
  448. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/naga_code_analysis_agent/tools/glob/handler.py +0 -0
  449. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/naga_code_analysis_agent/tools/list_directory/config.json +0 -0
  450. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/naga_code_analysis_agent/tools/list_directory/handler.py +0 -0
  451. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/naga_code_analysis_agent/tools/read_file/config.json +0 -0
  452. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/naga_code_analysis_agent/tools/read_file/handler.py +0 -0
  453. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/naga_code_analysis_agent/tools/read_naga_intro/config.json +0 -0
  454. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/naga_code_analysis_agent/tools/read_naga_intro/handler.py +0 -0
  455. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/naga_code_analysis_agent/tools/search_file_content/config.json +0 -0
  456. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/naga_code_analysis_agent/tools/search_file_content/handler.py +0 -0
  457. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/runner/__init__.py +0 -0
  458. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/runner/context.py +0 -0
  459. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/runner/loop.py +0 -0
  460. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/runner/tools.py +0 -0
  461. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/runner/webchat_utils.py +0 -0
  462. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/summary_agent/__init__.py +0 -0
  463. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/summary_agent/config.json +0 -0
  464. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/summary_agent/handler.py +0 -0
  465. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/summary_agent/intro.md +0 -0
  466. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/summary_agent/prompt.md +0 -0
  467. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/summary_agent/tools/__init__.py +0 -0
  468. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/summary_agent/tools/fetch_messages/config.json +0 -0
  469. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/summary_agent/tools/fetch_messages/handler.py +0 -0
  470. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/undefined_self_code_agent/README.md +0 -0
  471. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/undefined_self_code_agent/__init__.py +0 -0
  472. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/undefined_self_code_agent/config.json +0 -0
  473. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/undefined_self_code_agent/handler.py +0 -0
  474. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/undefined_self_code_agent/intro.md +0 -0
  475. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/undefined_self_code_agent/prompt.md +0 -0
  476. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/undefined_self_code_agent/tools/__init__.py +0 -0
  477. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/undefined_self_code_agent/tools/_shared.py +0 -0
  478. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/undefined_self_code_agent/tools/glob/config.json +0 -0
  479. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/undefined_self_code_agent/tools/glob/handler.py +0 -0
  480. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/undefined_self_code_agent/tools/list_directory/config.json +0 -0
  481. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/undefined_self_code_agent/tools/list_directory/handler.py +0 -0
  482. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/undefined_self_code_agent/tools/read_file/config.json +0 -0
  483. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/undefined_self_code_agent/tools/read_file/handler.py +0 -0
  484. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/undefined_self_code_agent/tools/search_file_content/config.json +0 -0
  485. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/undefined_self_code_agent/tools/search_file_content/handler.py +0 -0
  486. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/web_agent/README.md +0 -0
  487. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/web_agent/callable.json +0 -0
  488. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/web_agent/config.json +0 -0
  489. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/web_agent/handler.py +0 -0
  490. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/web_agent/intro.md +0 -0
  491. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/web_agent/mcp.json +0 -0
  492. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/web_agent/prompt.md +0 -0
  493. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/web_agent/tools/__init__.py +0 -0
  494. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/web_agent/tools/crawl_webpage/config.json +0 -0
  495. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/web_agent/tools/firecrawl_search/config.json +0 -0
  496. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/web_agent/tools/firecrawl_search/handler.py +0 -0
  497. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/web_agent/tools/grok_search/config.json +0 -0
  498. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/web_agent/tools/grok_search/handler.py +0 -0
  499. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/agents/web_agent/tools/web_search/config.json +0 -0
  500. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/anthropic_skills/__init__.py +0 -0
  501. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/anthropic_skills/loader.py +0 -0
  502. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/commands/admin/README.md +0 -0
  503. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/commands/admin/config.json +0 -0
  504. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/commands/admin/handler.py +0 -0
  505. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/commands/bugfix/README.md +0 -0
  506. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/commands/bugfix/config.json +0 -0
  507. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/commands/changelog/README.md +0 -0
  508. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/commands/changelog/config.json +0 -0
  509. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/commands/changelog/handler.py +0 -0
  510. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/commands/copyright/README.md +0 -0
  511. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/commands/copyright/config.json +0 -0
  512. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/commands/copyright/handler.py +0 -0
  513. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/commands/faq/README.md +0 -0
  514. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/commands/faq/config.json +0 -0
  515. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/commands/faq/handler.py +0 -0
  516. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/commands/feedback/README.md +0 -0
  517. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/commands/feedback/config.json +0 -0
  518. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/commands/feedback/handler.py +0 -0
  519. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/commands/help/README.md +0 -0
  520. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/commands/help/config.json +0 -0
  521. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/commands/help/handler.py +0 -0
  522. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/commands/naga/README.md +0 -0
  523. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/commands/naga/config.json +0 -0
  524. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/commands/naga/handler.py +0 -0
  525. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/commands/naga/policy.py +0 -0
  526. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/commands/profile/README.md +0 -0
  527. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/commands/profile/config.json +0 -0
  528. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/commands/profile/handler.py +0 -0
  529. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/commands/stats/README.md +0 -0
  530. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/commands/stats/config.json +0 -0
  531. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/commands/summary/config.json +0 -0
  532. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/commands/summary/handler.py +0 -0
  533. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/commands/version/config.json +0 -0
  534. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/commands/version/handler.py +0 -0
  535. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/http_client.py +0 -0
  536. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/http_config.py +0 -0
  537. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/pipelines/__init__.py +0 -0
  538. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/pipelines/arxiv/config.json +0 -0
  539. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/pipelines/arxiv/handler.py +0 -0
  540. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/pipelines/bilibili/config.json +0 -0
  541. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/pipelines/bilibili/handler.py +0 -0
  542. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/pipelines/context.py +0 -0
  543. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/pipelines/douyin/config.json +0 -0
  544. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/pipelines/douyin/handler.py +0 -0
  545. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/pipelines/github/config.json +0 -0
  546. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/pipelines/github/handler.py +0 -0
  547. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/pipelines/models.py +0 -0
  548. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/pipelines/registry.py +0 -0
  549. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/tools/arxiv_paper/README.md +0 -0
  550. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/tools/arxiv_paper/callable.json +0 -0
  551. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/tools/arxiv_paper/config.json +0 -0
  552. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/tools/arxiv_paper/handler.py +0 -0
  553. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/tools/bilibili_video/README.md +0 -0
  554. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/tools/bilibili_video/callable.json +0 -0
  555. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/tools/bilibili_video/config.json +0 -0
  556. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/tools/bilibili_video/handler.py +0 -0
  557. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/tools/calculator/callable.json +0 -0
  558. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/tools/calculator/config.json +0 -0
  559. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/tools/calculator/handler.py +0 -0
  560. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/tools/changelog_query/README.md +0 -0
  561. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/tools/changelog_query/config.json +0 -0
  562. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/tools/changelog_query/handler.py +0 -0
  563. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/tools/douyin_video/README.md +0 -0
  564. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/tools/douyin_video/callable.json +0 -0
  565. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/tools/douyin_video/config.json +0 -0
  566. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/tools/douyin_video/handler.py +0 -0
  567. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/tools/end/config.json +0 -0
  568. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/tools/end/handler.py +0 -0
  569. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/tools/fetch_image_uid/config.json +0 -0
  570. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/tools/fetch_image_uid/handler.py +0 -0
  571. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/tools/get_current_time/callable.json +0 -0
  572. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/tools/get_current_time/config.json +0 -0
  573. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/tools/get_current_time/handler.py +0 -0
  574. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/tools/get_picture/config.json +0 -0
  575. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/tools/get_picture/handler.py +0 -0
  576. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/tools/get_user_info/README.md +0 -0
  577. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/tools/get_user_info/config.json +0 -0
  578. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/tools/get_user_info/handler.py +0 -0
  579. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/tools/knowledge_list/config.json +0 -0
  580. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/tools/knowledge_list/handler.py +0 -0
  581. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/tools/knowledge_semantic_search/config.json +0 -0
  582. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/tools/knowledge_semantic_search/handler.py +0 -0
  583. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/tools/knowledge_text_search/config.json +0 -0
  584. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/tools/knowledge_text_search/handler.py +0 -0
  585. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/tools/python_interpreter/config.json +0 -0
  586. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/tools/python_interpreter/handler.py +0 -0
  587. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/tools/qq_like/README.md +0 -0
  588. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/tools/qq_like/config.json +0 -0
  589. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/tools/qq_like/handler.py +0 -0
  590. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/tools/task_progress/config.json +0 -0
  591. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/tools/task_progress/handler.py +0 -0
  592. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/attachments/get_uid_by_url/config.json +0 -0
  593. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/attachments/get_uid_by_url/handler.py +0 -0
  594. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/attachments/get_url_by_uid/config.json +0 -0
  595. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/attachments/get_url_by_uid/handler.py +0 -0
  596. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/automation/README.md +0 -0
  597. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/automation/_runtime.py +0 -0
  598. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/automation/create/config.json +0 -0
  599. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/automation/create/handler.py +0 -0
  600. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/automation/delete/config.json +0 -0
  601. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/automation/delete/handler.py +0 -0
  602. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/automation/get/config.json +0 -0
  603. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/automation/get/handler.py +0 -0
  604. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/automation/list/config.json +0 -0
  605. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/automation/list/handler.py +0 -0
  606. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/automation/set_enabled/config.json +0 -0
  607. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/automation/set_enabled/handler.py +0 -0
  608. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/automation/update/config.json +0 -0
  609. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/automation/update/handler.py +0 -0
  610. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/cognitive/get_profile/config.json +0 -0
  611. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/cognitive/get_profile/handler.py +0 -0
  612. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/cognitive/search_events/config.json +0 -0
  613. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/cognitive/search_events/handler.py +0 -0
  614. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/cognitive/search_profiles/config.json +0 -0
  615. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/cognitive/search_profiles/handler.py +0 -0
  616. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/commands/README.md +0 -0
  617. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/commands/get/config.json +0 -0
  618. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/commands/get/handler.py +0 -0
  619. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/commands/search/config.json +0 -0
  620. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/commands/search/handler.py +0 -0
  621. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/contacts/query_friends/config.json +0 -0
  622. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/contacts/query_friends/handler.py +0 -0
  623. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/contacts/query_groups/config.json +0 -0
  624. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/contacts/query_groups/handler.py +0 -0
  625. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/group/README.md +0 -0
  626. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/group/find_member/config.json +0 -0
  627. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/group/find_member/handler.py +0 -0
  628. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/group/get_avatar/config.json +0 -0
  629. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/group/get_avatar/handler.py +0 -0
  630. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/group/get_files/config.json +0 -0
  631. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/group/get_files/handler.py +0 -0
  632. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/group/get_honor_info/config.json +0 -0
  633. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/group/get_honor_info/handler.py +0 -0
  634. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/group/get_member_info/config.json +0 -0
  635. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/group/get_member_info/handler.py +0 -0
  636. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/group/get_member_list/config.json +0 -0
  637. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/group/get_member_list/handler.py +0 -0
  638. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/group/get_member_title/config.json +0 -0
  639. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/group_analysis/README.md +0 -0
  640. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/group_analysis/activity_trend/config.json +0 -0
  641. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/group_analysis/activity_trend/handler.py +0 -0
  642. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/group_analysis/filter_members/config.json +0 -0
  643. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/group_analysis/filter_members/handler.py +0 -0
  644. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/group_analysis/inactive_risk/config.json +0 -0
  645. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/group_analysis/inactive_risk/handler.py +0 -0
  646. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/group_analysis/join_statistics/config.json +0 -0
  647. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/group_analysis/join_statistics/handler.py +0 -0
  648. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/group_analysis/level_distribution/config.json +0 -0
  649. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/group_analysis/level_distribution/handler.py +0 -0
  650. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/group_analysis/member_activity/config.json +0 -0
  651. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/group_analysis/member_activity/handler.py +0 -0
  652. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/group_analysis/member_messages/config.json +0 -0
  653. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/group_analysis/member_messages/handler.py +0 -0
  654. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/group_analysis/member_structure/config.json +0 -0
  655. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/group_analysis/member_structure/handler.py +0 -0
  656. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/group_analysis/message_mix/config.json +0 -0
  657. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/group_analysis/message_mix/handler.py +0 -0
  658. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/group_analysis/new_member_activity/config.json +0 -0
  659. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/group_analysis/new_member_activity/handler.py +0 -0
  660. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/group_analysis/rank_members/config.json +0 -0
  661. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/group_analysis/rank_members/handler.py +0 -0
  662. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/mcp/README.md +0 -0
  663. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/mcp/__init__.py +0 -0
  664. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/memes/README.md +0 -0
  665. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/memes/search_memes/config.json +0 -0
  666. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/memes/search_memes/handler.py +0 -0
  667. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/memes/send_meme_by_uid/config.json +0 -0
  668. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/memes/send_meme_by_uid/handler.py +0 -0
  669. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/memory/README.md +0 -0
  670. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/memory/add/config.json +0 -0
  671. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/memory/add/handler.py +0 -0
  672. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/memory/delete/config.json +0 -0
  673. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/memory/delete/handler.py +0 -0
  674. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/memory/list/config.json +0 -0
  675. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/memory/list/handler.py +0 -0
  676. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/memory/update/config.json +0 -0
  677. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/memory/update/handler.py +0 -0
  678. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/messages/README.md +0 -0
  679. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/messages/context_utils.py +0 -0
  680. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/messages/get_forward_msg/config.json +0 -0
  681. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/messages/get_forward_msg/handler.py +0 -0
  682. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/messages/get_messages_by_time/config.json +0 -0
  683. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/messages/get_messages_by_time/handler.py +0 -0
  684. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/messages/get_recent_messages/config.json +0 -0
  685. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/messages/get_recent_messages/handler.py +0 -0
  686. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/messages/list_emojis/config.json +0 -0
  687. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/messages/list_emojis/handler.py +0 -0
  688. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/messages/lookup_emoji_id/config.json +0 -0
  689. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/messages/lookup_emoji_id/handler.py +0 -0
  690. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/messages/react_message_emoji/config.json +0 -0
  691. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/messages/send_group_sign/config.json +0 -0
  692. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/messages/send_group_sign/handler.py +0 -0
  693. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/messages/send_message/config.json +0 -0
  694. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/messages/send_poke/config.json +0 -0
  695. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/messages/send_private_message/config.json +0 -0
  696. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/messages/send_text_file/callable.json +0 -0
  697. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/messages/send_text_file/config.json +0 -0
  698. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/messages/send_url_file/callable.json +0 -0
  699. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/messages/send_url_file/config.json +0 -0
  700. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/messages/send_voice/config.json +0 -0
  701. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/messages/send_voice/handler.py +0 -0
  702. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/music/_client.py +0 -0
  703. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/music/_constants.py +0 -0
  704. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/music/_tools.py +0 -0
  705. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/music/_track_refs.py +0 -0
  706. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/music/browse_playlists/config.json +0 -0
  707. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/music/browse_playlists/handler.py +0 -0
  708. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/music/browse_rankings/config.json +0 -0
  709. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/music/browse_rankings/handler.py +0 -0
  710. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/music/find_song_matches/config.json +0 -0
  711. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/music/find_song_matches/handler.py +0 -0
  712. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/music/get_audio/config.json +0 -0
  713. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/music/get_audio/handler.py +0 -0
  714. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/music/get_comments/config.json +0 -0
  715. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/music/get_comments/handler.py +0 -0
  716. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/music/get_cover/config.json +0 -0
  717. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/music/get_cover/handler.py +0 -0
  718. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/music/get_hot_search/config.json +0 -0
  719. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/music/get_hot_search/handler.py +0 -0
  720. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/music/get_lyrics/config.json +0 -0
  721. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/music/get_lyrics/handler.py +0 -0
  722. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/music/search_playlists/config.json +0 -0
  723. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/music/search_playlists/handler.py +0 -0
  724. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/music/search_songs/config.json +0 -0
  725. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/music/search_songs/handler.py +0 -0
  726. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/notices/README.md +0 -0
  727. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/notices/get/config.json +0 -0
  728. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/notices/get/handler.py +0 -0
  729. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/notices/list/config.json +0 -0
  730. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/notices/list/handler.py +0 -0
  731. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/notices/stats/config.json +0 -0
  732. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/notices/stats/handler.py +0 -0
  733. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/render/layout.py +0 -0
  734. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/render/render_html/config.json +0 -0
  735. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/render/render_html/handler.py +0 -0
  736. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/render/render_latex/config.json +0 -0
  737. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/render/render_latex/handler.py +0 -0
  738. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/render/render_markdown/config.json +0 -0
  739. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/skills/toolsets/render/render_markdown/handler.py +0 -0
  740. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/token_usage_storage.py +0 -0
  741. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/utils/__init__.py +0 -0
  742. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/utils/cache.py +0 -0
  743. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/utils/coerce.py +0 -0
  744. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/utils/common.py +0 -0
  745. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/utils/cors.py +0 -0
  746. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/utils/easter_egg_calls.py +0 -0
  747. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/utils/fake_at.py +0 -0
  748. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/utils/file_lock.py +0 -0
  749. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/utils/group_metrics.py +0 -0
  750. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/utils/history.py +0 -0
  751. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/utils/http_download.py +0 -0
  752. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/utils/io.py +0 -0
  753. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/utils/logging.py +0 -0
  754. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/utils/member_utils.py +0 -0
  755. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/utils/message_reply.py +0 -0
  756. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/utils/message_targets.py +0 -0
  757. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/utils/message_turn.py +0 -0
  758. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/utils/message_utils.py +0 -0
  759. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/utils/paths.py +0 -0
  760. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/utils/qq_emoji.py +0 -0
  761. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/utils/queue_intervals.py +0 -0
  762. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/utils/recent_messages.py +0 -0
  763. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/utils/render_cache.py +0 -0
  764. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/utils/request_params.py +0 -0
  765. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/utils/resources.py +0 -0
  766. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/utils/scheduler.py +0 -0
  767. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/utils/self_update.py +0 -0
  768. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/utils/sender_helpers.py +0 -0
  769. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/utils/time_utils.py +0 -0
  770. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/utils/tool_calls.py +0 -0
  771. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/utils/xml.py +0 -0
  772. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/webui/__init__.py +0 -0
  773. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/webui/__main__.py +0 -0
  774. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/webui/app.py +0 -0
  775. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/webui/core.py +0 -0
  776. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/webui/routes/__init__.py +0 -0
  777. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/webui/routes/_auth.py +0 -0
  778. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/webui/routes/_bot.py +0 -0
  779. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/webui/routes/_config.py +0 -0
  780. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/webui/routes/_index.py +0 -0
  781. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/webui/routes/_logs.py +0 -0
  782. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/webui/routes/_memes.py +0 -0
  783. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/webui/routes/_runtime.py +0 -0
  784. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/webui/routes/_shared.py +0 -0
  785. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/webui/routes/_system.py +0 -0
  786. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/webui/routes/_weixin.py +0 -0
  787. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/webui/static/css/.stylelintrc.json +0 -0
  788. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/webui/static/css/app.css +0 -0
  789. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/webui/static/css/base.css +0 -0
  790. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/webui/static/css/components.css +0 -0
  791. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/webui/static/css/highlight-github.min.css +0 -0
  792. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/webui/static/css/landing.css +0 -0
  793. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/webui/static/css/responsive.css +0 -0
  794. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/webui/static/css/style.css +0 -0
  795. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/webui/static/css/variables.css +0 -0
  796. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/webui/static/css/workflow.css +0 -0
  797. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/webui/static/favicon.svg +0 -0
  798. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/webui/static/js/api.js +0 -0
  799. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/webui/static/js/auth.js +0 -0
  800. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/webui/static/js/bot.js +0 -0
  801. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/webui/static/js/i18n.js +0 -0
  802. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/webui/static/js/log-view.js +0 -0
  803. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/webui/static/js/logs.js +0 -0
  804. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/webui/static/js/main.js +0 -0
  805. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/webui/static/js/memes.js +0 -0
  806. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/webui/static/js/runtime.js +0 -0
  807. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/webui/static/js/schedules.js +0 -0
  808. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/webui/static/js/state.js +0 -0
  809. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/webui/static/js/ui.js +0 -0
  810. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/webui/static/js/vendor/highlight.min.js +0 -0
  811. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/webui/static/js/vendor/highlightjs.LICENSE +0 -0
  812. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/webui/static/js/vendor/marked.min.js +0 -0
  813. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/webui/static/js/weixin.js +0 -0
  814. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/webui/static/js/workflow-canvas.js +0 -0
  815. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/webui/static/js/workflow-graph.js +0 -0
  816. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/webui/static/js/workflow-inspector.js +0 -0
  817. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/webui/templates/index.html +0 -0
  818. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/webui/utils/__init__.py +0 -0
  819. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/webui/utils/comment.py +0 -0
  820. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/webui/utils/config_io.py +0 -0
  821. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/webui/utils/config_sync.py +0 -0
  822. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/webui/utils/toml_render.py +0 -0
  823. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/weixin/__init__.py +0 -0
  824. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/weixin/audio.py +0 -0
  825. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/weixin/models.py +0 -0
  826. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/weixin/service.py +0 -0
  827. {undefined_bot-3.14.0 → undefined_bot-3.15.0}/src/Undefined/weixin/store.py +0 -0
@@ -18,7 +18,7 @@ graph TB
18
18
  ConfigLoader["ConfigManager<br/>配置管理器<br/>[config/manager.py + loader.py]"]
19
19
  ConfigHotReload["ConfigHotReload<br/>热更新应用器<br/>[config/hot_reload.py]"]
20
20
  ConfigModels["配置模型<br/>[config/models.py]<br/>ChatModelConfig<br/>VisionModelConfig<br/>SecurityModelConfig<br/>AgentModelConfig"]
21
- OneBotClient["OneBotClient<br/>WebSocket 客户端<br/>[onebot/ + onebot.py shim]"]
21
+ OneBotClient["OneBotClient<br/>WebSocket 客户端<br/>[onebot/]"]
22
22
  Context["RequestContext<br/>请求上下文<br/>[context.py]"]
23
23
  WebUI["webui.py<br/>配置控制台<br/>[src/Undefined/webui.py]"]
24
24
  end
@@ -47,10 +47,10 @@ graph TB
47
47
 
48
48
  CommandDispatcher["CommandDispatcher<br/>命令分发器<br/>• /help /stats /admin<br/>• /bugfix /faq<br/>[services/command.py]"]
49
49
 
50
- MessageBatcher["MessageBatcher<br/>同 sender 短时合并<br/>• 按 (scope, sender_id) 分桶<br/>• T1=window_seconds 结束 batch<br/>• T2=pre_send_seconds 投机预发送<br/>• 拍一拍/buffer 内 @bot 旁路<br/>• 首条 @bot 整批走 mention 队列<br/>[services/message_batcher/ + shim]"]
50
+ MessageBatcher["MessageBatcher<br/>同 sender 短时合并<br/>• 按 (scope, sender_id) 分桶<br/>• T1=window_seconds 结束 batch<br/>• T2=pre_send_seconds 投机预发送<br/>• 拍一拍/buffer 内 @bot 旁路<br/>• 首条 @bot 整批走 mention 队列<br/>[services/message_batcher/]"]
51
51
 
52
52
  subgraph QueueSystem["车站-列车 队列系统 (services/)"]
53
- AICoordinator["AICoordinator<br/>AI 协调器<br/>• Prompt 构建<br/>• 队列管理<br/>• 回复执行<br/>[services/coordinator/ + ai_coordinator.py shim]"]
53
+ AICoordinator["AICoordinator<br/>AI 协调器<br/>• Prompt 构建<br/>• 队列管理<br/>• 回复执行<br/>[services/coordinator/]"]
54
54
  QueueManager["QueueManager<br/>队列管理器<br/>[queue_manager.py]"]
55
55
 
56
56
  subgraph ModelQueues["ModelQueue 队列组 (按模型隔离)"]
@@ -66,14 +66,14 @@ graph TB
66
66
 
67
67
  %% ==================== AI 核心能力层 ====================
68
68
  subgraph AILayer["AI 核心能力层 (src/Undefined/ai/)"]
69
- AIClient["AIClient<br/>AI 客户端主入口<br/>[ai/client/ + client.py shim]<br/>• 技能热重载 • MCP 初始化<br/>• Agent intro 生成"]
69
+ AIClient["AIClient<br/>AI 客户端主入口<br/>[ai/client/]<br/>• 技能热重载 • MCP 初始化<br/>• Agent intro 生成"]
70
70
 
71
71
  subgraph AIComponents["AI 组件"]
72
- PromptBuilder["PromptBuilder<br/>提示词构建器<br/>[ai/prompts/ + prompts.py shim]"]
72
+ PromptBuilder["PromptBuilder<br/>提示词构建器<br/>[ai/prompts/]"]
73
73
  ToolSearchSession["ToolSearchSession<br/>请求级工具按需投影<br/>[ai/tool_search.py]<br/>• 名称检索 • schema 逐轮扩展"]
74
- ModelRequester["ModelRequester<br/>模型请求器<br/>[ai/llm/ + llm.py shim]<br/>• OpenAI SDK • 工具清理<br/>• Thinking 提取"]
74
+ ModelRequester["ModelRequester<br/>模型请求器<br/>[ai/llm/]<br/>• OpenAI SDK • 工具清理<br/>• Thinking 提取"]
75
75
  ToolManager["ToolManager<br/>工具管理器<br/>[tooling.py]<br/>• 工具执行 • Agent 工具合并<br/>• MCP 工具注入"]
76
- MultimodalAnalyzer["MultimodalAnalyzer<br/>多模态分析器<br/>[ai/multimodal/ + multimodal.py shim]<br/>• 图片/音频/视频"]
76
+ MultimodalAnalyzer["MultimodalAnalyzer<br/>多模态分析器<br/>[ai/multimodal/]<br/>• 图片/音频/视频"]
77
77
  SummaryService["SummaryService<br/>总结服务<br/>[summaries.py]<br/>• 聊天记录总结<br/>• 标题生成"]
78
78
  TokenCounter["TokenCounter<br/>Token 统计<br/>[tokens.py]"]
79
79
  Parsing["Parsing<br/>响应解析<br/>[parsing.py]"]
@@ -663,7 +663,7 @@ graph TB
663
663
 
664
664
  subgraph Features["特性"]
665
665
  F1["非阻塞: 即使前一个请求未完成,<br/>新请求也会按时分发"]
666
- F2["优先级: 四级优先级,<br/>确保重要消息优先响应"]
666
+ F2["优先级: 六条车道,<br/>确保重要消息优先响应"]
667
667
  F3["隔离性: 每个模型独立队列,<br/>互不干扰"]
668
668
  F4["自动修剪: 普通队列超过10条时,<br/>只保留最新2条"]
669
669
  F5["可配置节奏: 每个模型可独立设置<br/>队列发车间隔"]
@@ -860,10 +860,10 @@ description: 从 PDF 文件中提取文本和表格,填写表单。当用户
860
860
  ### 8层架构分层
861
861
 
862
862
  1. **外部实体层**:用户、管理员、OneBot 协议端 (NapCat/Lagrange.Core)、大模型 API 服务商
863
- 2. **核心入口层**:main.py 启动入口、配置管理器 (config/loader.py + parsers/ + load_sections/)、热更新应用器 (config/hot_reload.py)、OneBotClient (onebot/ + onebot.py shim)、WeixinService (`weixin/` + `weixin-ilink-client`)、RequestContext (context.py)、Runtime API Server (api/app.py → api/routes/ 路由子模块,含 naga/ 子包)
864
- 3. **消息处理层**:MessageHandler (`handlers/`)、统一 DeliveryAddress 路由 (`utils/message_targets.py`)、SecurityService (security.py)、CommandDispatcher (services/command.py + commands/ mixins)、自动处理管线 (skills/pipelines/)、AutomationService (`automations/service.py`,pipeline 之后、对应 AI loop 之前 await,命中可拦截)、MessageBatcher (services/message_batcher/)、AICoordinator (services/coordinator/ + ai_coordinator.py 门面)、QueueManager (queue_manager.py)、Bilibili/arXiv/GitHub 解析与发送模块
863
+ 2. **核心入口层**(目录级事实来源见 [docs/development.md](docs/development.md)):main.py 启动入口、配置管理器 (config/loader.py + parsers/ + load_sections/)、热更新应用器 (config/hot_reload.py)、OneBotClient (onebot/)、WeixinService (`weixin/` + `weixin-ilink-client`)、RequestContext (context.py)、Runtime API Server (api/app.py → api/routes/ 路由子模块,含 naga/ 子包)
864
+ 3. **消息处理层**:MessageHandler (`handlers/`)、统一 DeliveryAddress 路由 (`utils/message_targets.py`)、SecurityService (security.py)、CommandDispatcher (services/command.py + services/commands/)、自动处理管线 (skills/pipelines/)、AutomationService (`automations/service.py`,pipeline 之后、对应 AI loop 之前 await,命中可拦截)、MessageBatcher (services/message_batcher/)、AICoordinator (services/coordinator/)、QueueManager (queue_manager.py)、Bilibili/arXiv/GitHub 解析与发送模块
865
865
  自动提取由 `PipelineRegistry` 并行检测、并行处理全部命中的管线;随后 `await` 自动化工作流,未拦截时再进入 AI 自动回复。
866
- 4. **AI 核心能力层**:AIClient (ai/client/ + client.py shim)、PromptBuilder (ai/prompts/ + prompts.py shim)、ModelRequester (ai/llm/ + llm.py shim)、ToolManager (tooling.py)、MultimodalAnalyzer (ai/multimodal/ + multimodal.py shim)、SummaryService (summaries.py)、TokenCounter (tokens.py)。OpenAI Chat Completions / Responses、Anthropic Messages SDK 归一化、CoT 续传与文本 Tool Call 容错见[模型 API 与兼容层](docs/model-compatibility.md)。
866
+ 4. **AI 核心能力层**:AIClient (ai/client/)、PromptBuilder (ai/prompts/)、ModelRequester (ai/llm/)、ToolManager (tooling.py)、MultimodalAnalyzer (ai/multimodal/)、SummaryService (summaries.py)、TokenCounter (tokens.py)。OpenAI Chat Completions / Responses、Anthropic Messages SDK 归一化、CoT 续传与文本 Tool Call 容错见[模型 API 与兼容层](docs/model-compatibility.md)。
867
867
  5. **存储与上下文层**:MessageHistoryManager (utils/history.py, 10000条限制)、MemoryStorage (memory.py, 置顶备忘录, 500条上限)、EndSummaryStorage、CognitiveService + JobQueue + HistorianWorker + VectorStore + ProfileStorage、MemeService + MemeWorker + MemeStore + MemeVectorStore (表情包库)、FAQStorage、AutomationStorage (`data/automations.json`;旧 `scheduled_tasks.json` 启动时一次性转为新格式,不删旧文件、不双写)、TokenUsageStorage (自动归档)
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)
@@ -880,7 +880,7 @@ description: 从 PDF 文件中提取文本和表格,填写表单。当用户
880
880
  * **多模型隔离**:每个 AI 模型拥有独立的请求队列组("站台"),互不干扰。
881
881
  * **非阻塞发车**:实现了可配置节奏的非阻塞调度循环(默认 **1Hz**)。列车按节奏出发,带走一个请求到后台异步处理。
882
882
  * **高可用性**:即使前一个请求仍在处理(如耗时的网络搜索),新的请求也会按时被分发,不会造成队列堵塞。
883
- * **优先级管理**:支持四级优先级(超级管理员 > 私聊 > 群聊@ > 群聊普通),确保重要消息优先响应。
883
+ * **优先级管理**:支持六条车道(超级管理员私聊 > 群聊超级管理员 > 普通私聊 > 群聊@ > 群聊普通 > 后台请求),前两条为严格优先级、中间三条轮转发车,确保重要消息优先响应。
884
884
  * **关停收敛**:`MessageHandler.close()` 会先 flush `MessageBatcher`,再调用 `QueueManager.drain()` 等待已入队请求和在途请求自然完成,最后才停止队列处理器,避免缓冲消息只入队未执行。
885
885
 
886
886
  ### 7个智能体 Agent
@@ -1,3 +1,22 @@
1
+ ## v3.15.0 按功能拆分 Embedding 配置与稳定性修复
2
+
3
+ 本版本将嵌入模型配置按功能拆分,知识库、认知记忆与表情包可以共用默认模型或各自覆写连接、维度与指令;同时修复侧写并发合并丢失更新、Agent 技能无法加载、热更新静默失效、SIGTERM 停机缺失等多处影响长期运行的问题。
4
+
5
+ - `[models.embedding]` 保留为全局默认模型与默认参数,新增 `[models.embedding.features.<name>]`(`knowledge` / `cognitive` / `memes`)按功能覆写:`use_default` 整体继承默认表,也可按字段覆写连接信息、`context_window_tokens`、`queue_interval_seconds`、`dimensions`、`query_instruction` / `document_instruction`,`request_params` 与默认表按键合并。WebUI 配置表单同步支持覆写段编辑,`use_proxy` 的三态语义(继承 / 启用 / 禁用)改为下拉选择。
6
+ - 生效配置相同的功能复用同一个 Embedder 与发车队列,重排器全局共享,避免重复加载与重复排队。
7
+ - 修复嵌入指令前缀被剥离的问题:query / document instruction 与文本直接拼接,`"passage: "` 这类带尾随空格的前缀现在原样保留。
8
+ - 修复认知侧写并发合并丢失更新:同一实体的「读取 → LLM 改写 → 写入」整段互斥,后一个合并基于前一个已落盘的结果继续,不再互相覆盖。`ProfileStorage` 新增版本读取与恢复,恢复前自动把当前内容另存为新快照(恢复操作本身可回退);新增 `scripts/restore_profile.py` 提供 list / show / restore 与 `--dry-run`,侧写回滚不再依赖手工复制文件。
9
+ - 史官 worker 新增并发上限 `[cognitive.historian].max_concurrency`(默认 4),以信号量与在途计数双重约束,不再无上限并发。
10
+ - 修复随包 Agent 的 handler 无法加载:handler 模块改按真实包路径导入,`code_delivery_agent` 等使用相对导入的 Agent 恢复可用;注册阶段即预导入全部 handler,失败项记录 `load_error` 并从 schema 中排除,主 AI 不再看到不可用的技能。
11
+ - 配置热更新失败不再静默:更新改为步骤表逐项执行,单步异常不中断其余步骤,失败项与「未完全生效」汇总以 error 级日志输出;异步热更新任务与配置回调的异常均会被记录。嵌入 / 重排模型配置变更加入需重启提示,避免热重载静默无效。
12
+ - 新增 SIGTERM 优雅停机:容器 / systemd / supervisor 停止时不再被直接终止并跳过落盘清理,SIGTERM 与 SIGINT 收敛到同一停机事件,取消连接任务并等待收敛;停机完成后恢复系统原有信号处理器。
13
+ - 修复消息队列重试上限口径分叉:coordinator 与 QueueManager 各用一套重试上限,热更新后两者可分叉,导致等待方在仍会重试时被误判为失败、或重试已耗尽后干等到 480 秒超时;现统一由 `resolve_effective_retry_count` 计算并与等待超时预算同口径。
14
+ - `scripts/reembed_cognitive.py` 支持维度变化迁移:检测到新旧向量维度不同时把新向量全部写入临时 collection,校验记录数后删除原库并原子换名,原库在迁移完成前保持不动,中途被杀可自动清理或从临时库恢复,记录不丢;`--dry-run` 不做任何写入。
15
+ - 依赖与配置清理:crawl4ai 与 langchain-community 改为必需依赖,删除「未安装则降级」的静默回退(crawl4ai 环境异常时启动降级为网页获取不可用并以 error 日志提示修复,不再让 Bot 启动崩溃);移除零引用的死配置 `cognitive.historian.rewrite_max_retry`、无调用方的 `SecurityService.check_rate_limit` / `record_rate_limit`(限流由 rate_limiter 承担)与死依赖 imgkit、croniter。
16
+ - CI 补齐治理:工作流收敛只读权限、并发取消与任务超时,前端行为测试真实执行而非静默跳过,新增 Python 3.11 / 3.13 兼容矩阵,测试开启 65% 覆盖率门禁。
17
+
18
+ ---
19
+
1
20
  ## v3.14.0 OneBot 本地文件三模式传输
2
21
 
3
22
  本版本为 Bot 本地文件新增统一传输层,支持 `local`、`url`、`stream` 三种发送方式并按投递快照热更新;默认保持 `local` 兼容旧部署,跨文件系统发送可显式启用 Runtime 临时链接或 NapCat Stream 分块上传。
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: Undefined-bot
3
- Version: 3.14.0
3
+ Version: 3.15.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
@@ -14,10 +14,8 @@ Requires-Dist: apscheduler>=3.10.0
14
14
  Requires-Dist: chardet>=7.4.0.post1
15
15
  Requires-Dist: chromadb>=1.5.5
16
16
  Requires-Dist: crawl4ai>=0.8.6
17
- Requires-Dist: croniter>=6.2.2
18
17
  Requires-Dist: fastmcp>=3.1.1
19
18
  Requires-Dist: httpx>=0.27.0
20
- Requires-Dist: imgkit
21
19
  Requires-Dist: langchain-community>=0.3.0
22
20
  Requires-Dist: linkify-it-py>=2.0.3
23
21
  Requires-Dist: lunar-python>=1.4.8
@@ -47,19 +45,8 @@ Requires-Dist: regex>=2026.2.28
47
45
  Requires-Dist: rich>=14.2.0
48
46
  Requires-Dist: silk-python<0.3.0,>=0.2.8
49
47
  Requires-Dist: tiktoken>=0.7.0
50
- Requires-Dist: types-aiofiles>=25.1.0.20251011
51
- Requires-Dist: types-markdown>=3.10.0.20251106
52
48
  Requires-Dist: websockets>=12.0
53
49
  Requires-Dist: weixin-ilink-client<0.2.0,>=0.1.3
54
- Provides-Extra: ci
55
- Requires-Dist: mypy>=1.8.0; extra == 'ci'
56
- Requires-Dist: ruff>=0.15.8; extra == 'ci'
57
- Provides-Extra: dev
58
- Requires-Dist: mypy>=1.8.0; extra == 'dev'
59
- Requires-Dist: pytest-asyncio>=0.23.0; extra == 'dev'
60
- Requires-Dist: pytest-cov>=7.1.0; extra == 'dev'
61
- Requires-Dist: pytest>=8.0.0; extra == 'dev'
62
- Requires-Dist: ruff>=0.15.8; extra == 'dev'
63
50
  Description-Content-Type: text/markdown
64
51
 
65
52
  <table border="0">
@@ -685,8 +685,8 @@ stream_enabled = false
685
685
  # en: Extra request-body params (optional), e.g. temperature or vendor-specific fields.
686
686
  [models.grok.request_params]
687
687
 
688
- # zh: 嵌入模型配置(知识库语义检索使用)。
689
- # en: Embedding model config (used by knowledge semantic retrieval).
688
+ # zh: 嵌入模型默认配置(知识库 / 认知记忆 / 梗库默认共用;各功能可在下方 features 中单独覆写)。
689
+ # en: Default embedding model config (shared by knowledge, cognitive memory and memes by default; override per feature below).
690
690
  [models.embedding]
691
691
  # zh: 是否让该模型请求使用 [proxy] 代理地址。默认关闭。
692
692
  # en: Whether this model uses proxy addresses from [proxy]. Disabled by default.
@@ -710,8 +710,11 @@ queue_interval_seconds = 0.0
710
710
  # zh: 向量维度(可选)。0 或留空表示使用模型默认维度。
711
711
  # en: Embedding dimensions (optional). Use 0/empty to use model defaults.
712
712
  dimensions = 0
713
- # zh: 查询端指令前缀(可选,Qwen3/BGE 等模型常用)。
713
+ # zh: 查询端指令前缀(可选,Qwen3/BGE 等模型常用)。指令与文本直接拼接,
714
+ # 首尾空白与换行原样保留;留空表示不使用指令。
714
715
  # en: Query instruction prefix (optional, common for Qwen3/BGE-style models).
716
+ # The instruction is concatenated directly with the text, whitespace and
717
+ # newlines preserved; leave empty to disable.
715
718
  query_instruction = ""
716
719
  # zh: 文档端指令前缀(可选,E5 等模型常用,例如 "passage: ")。
717
720
  # en: Document instruction prefix (optional, common for E5-style models, e.g. "passage: ").
@@ -721,6 +724,144 @@ document_instruction = ""
721
724
  # en: Extra request-body params (optional) for embedding-provider-specific fields.
722
725
  [models.embedding.request_params]
723
726
 
727
+ # zh: 按功能覆写的 embedding 配置。每个功能可完全继承 [models.embedding] 默认配置,
728
+ # 也可单独设置并按字段覆写;生效配置完全相同的功能共用一个发车队列。
729
+ # 通用哨兵规则:所有字符串字段(api_url / api_key / model_name / 指令前缀)
730
+ # 空字符串均表示继承默认配置、无法表达显式清空;数值与 use_proxy 的哨兵见各字段注释。
731
+ # en: Per-feature embedding overrides. Each feature either inherits the
732
+ # [models.embedding] defaults or overrides individual fields; features with
733
+ # the same effective config share one dispatch queue.
734
+ # Sentinel rule: empty strings in api_url / api_key / model_name / instruction
735
+ # prefixes all mean "inherit the default" and cannot express an explicit clear;
736
+ # numeric and use_proxy sentinels are documented on each field.
737
+
738
+ # zh: 按功能覆写示例:知识库(knowledge)。仅 use_default = false 时下方字段生效,取哨兵值仍表示继承默认配置。
739
+ # en: Per-feature override example: knowledge base (knowledge). Fields below apply only when use_default = false; sentinel values inherit the defaults.
740
+ [models.embedding.features.knowledge]
741
+ # zh: 是否完全使用 [models.embedding] 默认配置;true 时本表其余字段全部忽略。
742
+ # en: Whether to fully inherit the [models.embedding] defaults; when true, all other fields here are ignored.
743
+ use_default = true
744
+ # zh: 覆写 API 地址;空字符串表示继承默认配置。
745
+ # en: Override API URL; an empty string inherits the default.
746
+ api_url = ""
747
+ # zh: 覆写 API Key;空字符串表示继承默认配置。
748
+ # en: Override API key; an empty string inherits the default.
749
+ api_key = ""
750
+ # zh: 覆写模型名称;空字符串表示继承默认配置。
751
+ # en: Override model name; an empty string inherits the default.
752
+ model_name = ""
753
+ # zh: 覆写代理开关;"inherit"(或 "default")表示继承默认配置,也可写 true / false。
754
+ # en: Override the proxy switch; "inherit" (or "default") inherits the default, true / false override it.
755
+ use_proxy = "inherit"
756
+ # zh: 覆写上下文窗口上限(token);<=0 表示继承默认配置。
757
+ # en: Override the context window cap (tokens); <=0 inherits the default.
758
+ context_window_tokens = 0
759
+ # zh: 覆写队列发车间隔(秒);<0 表示继承默认配置,0 表示请求到达立即发车。
760
+ # en: Override the queue interval (seconds); <0 inherits the default, 0 dispatches on arrival.
761
+ queue_interval_seconds = -1.0
762
+ # zh: 覆写向量维度;<0 表示继承默认配置,0 表示使用模型默认维度。
763
+ # en: Override embedding dimensions; <0 inherits the default, 0 uses the model default.
764
+ dimensions = -1
765
+ # zh: 覆写查询端指令前缀;空字符串或纯空白都表示继承默认配置。覆写表无法表达
766
+ # 「显式清空」——若默认表带前缀而本功能不需要,请把默认前缀留空、只在需要
767
+ # 的功能上单独设置。
768
+ # en: Override the query instruction prefix; an empty or whitespace-only string
769
+ # inherits the default. Overrides cannot express "explicitly empty" — if the
770
+ # default table has a prefix this feature does not need, keep the default
771
+ # empty and set the prefix only on the features that need it.
772
+ query_instruction = ""
773
+ # zh: 覆写文档端指令前缀;语义同 query_instruction(空/纯空白 = 继承)。
774
+ # en: Override the document instruction prefix; same semantics as query_instruction (empty/whitespace = inherit).
775
+ document_instruction = ""
776
+
777
+ # zh: 覆写额外请求体参数,按 key 合并到默认 request_params 之上(同名以本表为准)。
778
+ # en: Override extra request-body params, merged over the default request_params (this table wins).
779
+ [models.embedding.features.knowledge.request_params]
780
+ # zh: 按功能覆写示例:认知记忆(cognitive)。仅 use_default = false 时下方字段生效,取哨兵值仍表示继承默认配置。
781
+ # en: Per-feature override example: cognitive memory (cognitive). Fields below apply only when use_default = false; sentinel values inherit the defaults.
782
+ [models.embedding.features.cognitive]
783
+ # zh: 是否完全使用 [models.embedding] 默认配置;true 时本表其余字段全部忽略。
784
+ # en: Whether to fully inherit the [models.embedding] defaults; when true, all other fields here are ignored.
785
+ use_default = true
786
+ # zh: 覆写 API 地址;空字符串表示继承默认配置。
787
+ # en: Override API URL; an empty string inherits the default.
788
+ api_url = ""
789
+ # zh: 覆写 API Key;空字符串表示继承默认配置。
790
+ # en: Override API key; an empty string inherits the default.
791
+ api_key = ""
792
+ # zh: 覆写模型名称;空字符串表示继承默认配置。
793
+ # en: Override model name; an empty string inherits the default.
794
+ model_name = ""
795
+ # zh: 覆写代理开关;"inherit"(或 "default")表示继承默认配置,也可写 true / false。
796
+ # en: Override the proxy switch; "inherit" (or "default") inherits the default, true / false override it.
797
+ use_proxy = "inherit"
798
+ # zh: 覆写上下文窗口上限(token);<=0 表示继承默认配置。
799
+ # en: Override the context window cap (tokens); <=0 inherits the default.
800
+ context_window_tokens = 0
801
+ # zh: 覆写队列发车间隔(秒);<0 表示继承默认配置,0 表示请求到达立即发车。
802
+ # en: Override the queue interval (seconds); <0 inherits the default, 0 dispatches on arrival.
803
+ queue_interval_seconds = -1.0
804
+ # zh: 覆写向量维度;<0 表示继承默认配置,0 表示使用模型默认维度。
805
+ # en: Override embedding dimensions; <0 inherits the default, 0 uses the model default.
806
+ dimensions = -1
807
+ # zh: 覆写查询端指令前缀;空字符串或纯空白都表示继承默认配置。覆写表无法表达
808
+ # 「显式清空」——若默认表带前缀而本功能不需要,请把默认前缀留空、只在需要
809
+ # 的功能上单独设置。
810
+ # en: Override the query instruction prefix; an empty or whitespace-only string
811
+ # inherits the default. Overrides cannot express "explicitly empty" — if the
812
+ # default table has a prefix this feature does not need, keep the default
813
+ # empty and set the prefix only on the features that need it.
814
+ query_instruction = ""
815
+ # zh: 覆写文档端指令前缀;语义同 query_instruction(空/纯空白 = 继承)。
816
+ # en: Override the document instruction prefix; same semantics as query_instruction (empty/whitespace = inherit).
817
+ document_instruction = ""
818
+
819
+ # zh: 覆写额外请求体参数,按 key 合并到默认 request_params 之上(同名以本表为准)。
820
+ # en: Override extra request-body params, merged over the default request_params (this table wins).
821
+ [models.embedding.features.cognitive.request_params]
822
+ # zh: 按功能覆写示例:梗库(memes)。仅 use_default = false 时下方字段生效,取哨兵值仍表示继承默认配置。
823
+ # en: Per-feature override example: meme library (memes). Fields below apply only when use_default = false; sentinel values inherit the defaults.
824
+ [models.embedding.features.memes]
825
+ # zh: 是否完全使用 [models.embedding] 默认配置;true 时本表其余字段全部忽略。
826
+ # en: Whether to fully inherit the [models.embedding] defaults; when true, all other fields here are ignored.
827
+ use_default = true
828
+ # zh: 覆写 API 地址;空字符串表示继承默认配置。
829
+ # en: Override API URL; an empty string inherits the default.
830
+ api_url = ""
831
+ # zh: 覆写 API Key;空字符串表示继承默认配置。
832
+ # en: Override API key; an empty string inherits the default.
833
+ api_key = ""
834
+ # zh: 覆写模型名称;空字符串表示继承默认配置。
835
+ # en: Override model name; an empty string inherits the default.
836
+ model_name = ""
837
+ # zh: 覆写代理开关;"inherit"(或 "default")表示继承默认配置,也可写 true / false。
838
+ # en: Override the proxy switch; "inherit" (or "default") inherits the default, true / false override it.
839
+ use_proxy = "inherit"
840
+ # zh: 覆写上下文窗口上限(token);<=0 表示继承默认配置。
841
+ # en: Override the context window cap (tokens); <=0 inherits the default.
842
+ context_window_tokens = 0
843
+ # zh: 覆写队列发车间隔(秒);<0 表示继承默认配置,0 表示请求到达立即发车。
844
+ # en: Override the queue interval (seconds); <0 inherits the default, 0 dispatches on arrival.
845
+ queue_interval_seconds = -1.0
846
+ # zh: 覆写向量维度;<0 表示继承默认配置,0 表示使用模型默认维度。
847
+ # en: Override embedding dimensions; <0 inherits the default, 0 uses the model default.
848
+ dimensions = -1
849
+ # zh: 覆写查询端指令前缀;空字符串或纯空白都表示继承默认配置。覆写表无法表达
850
+ # 「显式清空」——若默认表带前缀而本功能不需要,请把默认前缀留空、只在需要
851
+ # 的功能上单独设置。
852
+ # en: Override the query instruction prefix; an empty or whitespace-only string
853
+ # inherits the default. Overrides cannot express "explicitly empty" — if the
854
+ # default table has a prefix this feature does not need, keep the default
855
+ # empty and set the prefix only on the features that need it.
856
+ query_instruction = ""
857
+ # zh: 覆写文档端指令前缀;语义同 query_instruction(空/纯空白 = 继承)。
858
+ # en: Override the document instruction prefix; same semantics as query_instruction (empty/whitespace = inherit).
859
+ document_instruction = ""
860
+
861
+ # zh: 覆写额外请求体参数,按 key 合并到默认 request_params 之上(同名以本表为准)。
862
+ # en: Override extra request-body params, merged over the default request_params (this table wins).
863
+ [models.embedding.features.memes.request_params]
864
+
724
865
  # zh: 重排模型配置(知识库二阶段检索使用)。
725
866
  # en: Rerank model config (used in second-stage knowledge retrieval).
726
867
  [models.rerank]
@@ -1064,12 +1205,20 @@ tool_search_max_results = 5
1064
1205
  # zh: 主 Prompt 固定插槽对应的本地 UTF-8 文件。路径为空时不注入。
1065
1206
  # en: Local UTF-8 files mapped to stable main-Prompt slots. Empty paths disable injection.
1066
1207
  [prompt.file_includes]
1067
- # zh: P0 / P1 / P2 / P3 分别位于对应优先级区块开头;summary 位于总结区块开头。
1068
- # en: P0-P3 are placed at the start of their priority sections; summary is placed at the start of the summary section.
1208
+ # zh: 插入 <absolute_priority level="P0"> 开头(绝对优先级区块)。
1209
+ # en: Inserted at the start of the <absolute_priority level="P0"> block.
1069
1210
  p0 = ""
1211
+ # zh: 插入 <core_rules level="P1"> 开头(核心规则区块)。
1212
+ # en: Inserted at the start of the <core_rules level="P1"> block.
1070
1213
  p1 = ""
1214
+ # zh: 插入 <important_rules level="P2"> 开头(重要规则区块)。
1215
+ # en: Inserted at the start of the <important_rules level="P2"> block.
1071
1216
  p2 = ""
1217
+ # zh: 插入 <optimization_rules level="P3"> 开头(优化规则区块)。
1218
+ # en: Inserted at the start of the <optimization_rules level="P3"> block.
1072
1219
  p3 = ""
1220
+ # zh: 插入 <summary> 开头(总结区块)。
1221
+ # en: Inserted at the start of the <summary> block.
1073
1222
  summary = ""
1074
1223
 
1075
1224
  # zh: Prompt 系统信息注入。总开关默认关闭;开启后各子项默认展示,可逐项关闭。
@@ -1636,9 +1785,6 @@ profile_top_k = 8
1636
1785
  rerank_candidate_multiplier = 3
1637
1786
 
1638
1787
  [cognitive.historian]
1639
- # zh: 记忆改写最大重试次数。
1640
- # en: Max retries for memory rewrite.
1641
- rewrite_max_retry = 2
1642
1788
  # zh: 提供给史官的最近消息参考条数(用于实体消歧);0=禁用。
1643
1789
  # en: Number of recent message references for historian disambiguation; 0 disables.
1644
1790
  recent_messages_inject_k = 12
@@ -1654,6 +1800,9 @@ poll_interval_seconds = 1.0
1654
1800
  # zh: 任务超时时间(秒),超时后重新入队。
1655
1801
  # en: Stale job timeout (seconds), re-queued after timeout.
1656
1802
  stale_job_timeout_seconds = 300.0
1803
+ # zh: 史官同时在途处理的任务上限(>=1);超出后暂停取新任务,避免并发无上限。
1804
+ # en: Max in-flight historian jobs (>=1); new jobs wait until in-flight drops below it.
1805
+ max_concurrency = 4
1657
1806
 
1658
1807
  [cognitive.profile]
1659
1808
  # zh: 用户画像存储路径。
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "Undefined-bot"
3
- version = "3.14.0"
3
+ version = "3.15.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 = [
@@ -17,9 +17,7 @@ dependencies = [
17
17
  "crawl4ai>=0.8.6",
18
18
  "matplotlib",
19
19
  "pillow",
20
- "imgkit",
21
20
  "markdown>=3.10",
22
- "types-markdown>=3.10.0.20251106",
23
21
  "aiofiles>=25.1.0",
24
22
  "markdown-it-py[plugins]>=4.0.0",
25
23
  "mdit-py-plugins>=0.5.0",
@@ -29,9 +27,7 @@ dependencies = [
29
27
  "pymdown-extensions>=10.20",
30
28
  "playwright>=1.57.0",
31
29
  "aiohttp>=3.13.2",
32
- "types-aiofiles>=25.1.0.20251011",
33
30
  "APScheduler>=3.10.0",
34
- "croniter>=6.2.2",
35
31
  "pymupdf>=1.27.2,!=1.27.2.2",
36
32
  "python-docx>=1.2.0",
37
33
  "python-pptx>=1.0.2",
@@ -63,19 +59,6 @@ Issues = "https://github.com/69gg/Undefined/issues"
63
59
  Undefined = "Undefined.main:run"
64
60
  Undefined-webui = "Undefined.webui:run"
65
61
 
66
- [project.optional-dependencies]
67
- dev = [
68
- "mypy>=1.8.0",
69
- "ruff>=0.15.8",
70
- "pytest>=8.0.0",
71
- "pytest-asyncio>=0.23.0",
72
- "pytest-cov>=7.1.0",
73
- ]
74
- ci = [
75
- "ruff>=0.15.8",
76
- "mypy>=1.8.0",
77
- ]
78
-
79
62
  [[tool.uv.index]]
80
63
  url = "https://pypi.org/simple"
81
64
 
@@ -129,7 +112,17 @@ exclude = ["code"]
129
112
  asyncio_mode = "auto"
130
113
  testpaths = ["tests"]
131
114
 
115
+ [tool.coverage.run]
116
+ source = ["Undefined"]
117
+ branch = false
118
+
119
+ [tool.coverage.report]
120
+ # 覆盖率棘轮:整体不低于 65%(当前约 69%),防止明显回退
121
+ fail_under = 65
122
+ skip_covered = true
123
+
132
124
  [dependency-groups]
125
+ # 开发与 CI 共用同一组工具(CI 通过 --group dev 安装,避免两份清单漂移)
133
126
  dev = [
134
127
  "mypy>=1.8.0",
135
128
  "ruff>=0.15.8",
@@ -137,8 +130,6 @@ dev = [
137
130
  "pytest-asyncio>=0.23.0",
138
131
  "pytest-cov>=7.1.0",
139
132
  "types-pyyaml>=6.0.12.20250915",
140
- ]
141
- ci = [
142
- "ruff>=0.15.8",
143
- "mypy>=1.8.0",
133
+ "types-markdown>=3.10.0.20251106",
134
+ "types-aiofiles>=25.1.0.20251011",
144
135
  ]
@@ -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.14.0"
27
+ __version__: str = "3.15.0"
28
28
 
29
29
  # symbol -> (module_path, attribute_name);首次访问时才 importlib 加载
30
30
  _LAZY_IMPORTS: dict[str, tuple[str, str]] = {
@@ -322,12 +322,10 @@ class ClientAskLoopMixin(ClientQueueMixin):
322
322
  ):
323
323
  tool_context[MUSIC_TRACK_STORE_CONTEXT_KEY] = MusicTrackReferenceStore()
324
324
  tool_context.setdefault("search_wrapper", self._search_wrapper)
325
- tool_context.setdefault(
326
- "crawl4ai_available", self._crawl4ai_capabilities.available
327
- )
328
325
  tool_context.setdefault(
329
326
  "crawl4ai_proxy_config_available",
330
- self._crawl4ai_capabilities.proxy_config_available,
327
+ self._crawl4ai_capabilities is not None
328
+ and self._crawl4ai_capabilities.proxy_config_available,
331
329
  )
332
330
  tool_context.setdefault("end_summary_storage", self._end_summary_storage)
333
331
  tool_context.setdefault("end_summaries", self._prompt_builder.end_summaries)
@@ -7,7 +7,7 @@ import logging
7
7
  import re
8
8
  from collections.abc import Collection
9
9
  from pathlib import Path
10
- from typing import Any, Awaitable, Callable, Optional, Protocol, TYPE_CHECKING
10
+ from typing import Any, Awaitable, Callable, Optional, Protocol
11
11
 
12
12
  import httpx
13
13
 
@@ -16,7 +16,10 @@ from Undefined.ai.llm import ModelRequester
16
16
  from Undefined.ai.model_selector import ModelSelector
17
17
  from Undefined.ai.multimodal import MultimodalAnalyzer
18
18
  from Undefined.ai.prompts import PromptBuilder
19
- from Undefined.ai.crawl4ai_support import get_crawl4ai_capabilities
19
+ from Undefined.ai.crawl4ai_support import (
20
+ Crawl4AICapabilities,
21
+ get_crawl4ai_capabilities,
22
+ )
20
23
  from Undefined.ai.summaries import SummaryService
21
24
  from Undefined.ai.tokens import TokenCounter
22
25
  from Undefined.ai.tool_search import TOOL_SEARCH_NAME
@@ -98,27 +101,6 @@ class SendPrivateMessageCallback(Protocol):
98
101
  ) -> Awaitable[None]: ...
99
102
 
100
103
 
101
- # 尝试导入 langchain SearxSearchWrapper
102
- if TYPE_CHECKING:
103
- from langchain_community.utilities import (
104
- SearxSearchWrapper as SearxSearchWrapperType,
105
- )
106
- else:
107
- SearxSearchWrapperType = object
108
-
109
- _SearxSearchWrapper: type[SearxSearchWrapperType] | None
110
- try:
111
- from langchain_community.utilities import SearxSearchWrapper as _SearxSearchWrapper
112
-
113
- _SEARX_AVAILABLE = True
114
- except Exception:
115
- _SearxSearchWrapper = None
116
- _SEARX_AVAILABLE = False
117
- logger.warning(
118
- "[初始化] langchain_community 未安装或 SearxSearchWrapper 不可用,搜索功能将禁用"
119
- )
120
-
121
-
122
104
  def _attachment_remote_download_max_bytes(runtime_config: Config) -> int:
123
105
  value = int(runtime_config.attachment_remote_download_max_size_mb)
124
106
  return max(0, value) * 1024 * 1024
@@ -151,6 +133,17 @@ def _resolve_summary_model_config(
151
133
  return fallback
152
134
 
153
135
 
136
+ def _build_searx_wrapper(searxng_url: str) -> Any:
137
+ """构造 SearxSearchWrapper;langchain_community 为必需依赖。
138
+
139
+ 导入放在使用点而非模块顶层:依赖缺失或版本不兼容时不会让整个 AI 客户端
140
+ 无法构造,搜索能力降级为不可用,并由调用方的 error 日志暴露环境问题。
141
+ """
142
+ from langchain_community.utilities import SearxSearchWrapper # noqa: PLC0415
143
+
144
+ return SearxSearchWrapper(searx_host=searxng_url, k=10)
145
+
146
+
154
147
  class ClientSetupMixin:
155
148
  """AI 客户端初始化、配置热更新与资源清理。"""
156
149
 
@@ -182,7 +175,18 @@ class ClientSetupMixin:
182
175
  self.runtime_config = runtime_config
183
176
  self.memory_storage = memory_storage
184
177
  self._end_summary_storage = end_summary_storage or EndSummaryStorage()
185
- self._crawl4ai_capabilities = get_crawl4ai_capabilities()
178
+ self._crawl4ai_capabilities: Crawl4AICapabilities | None
179
+ # crawl4ai 是必需依赖,但安装损坏 / 版本不兼容不应让整个 Bot 启动失败:
180
+ # 这里降级为能力缺失(网页获取工具运行时会明确报错),并以 error 日志暴露环境问题
181
+ try:
182
+ self._crawl4ai_capabilities = get_crawl4ai_capabilities()
183
+ except Exception as exc:
184
+ self._crawl4ai_capabilities = None
185
+ logger.error(
186
+ "[初始化] crawl4ai 初始化失败,网页获取功能不可用,"
187
+ "请修复 crawl4ai 安装后重启: %s",
188
+ exc,
189
+ )
186
190
 
187
191
  self._http_client = httpx.AsyncClient(timeout=480.0, trust_env=False)
188
192
  self._token_usage_storage = TokenUsageStorage()
@@ -295,35 +299,30 @@ class ClientSetupMixin:
295
299
  else:
296
300
  logger.info("[初始化] 技能热重载已禁用")
297
301
 
298
- # 初始化搜索 wrapper
302
+ # 初始化搜索 wrapper(langchain_community 为必需依赖)
299
303
  self._search_wrapper: Optional[Any] = None
300
- if _SEARX_AVAILABLE and _SearxSearchWrapper is not None:
301
- searxng_url = runtime_config.searxng_url
302
- if searxng_url:
303
- try:
304
- self._search_wrapper = _SearxSearchWrapper(
305
- searx_host=searxng_url, k=10
306
- )
307
- logger.info(
308
- "[初始化] SearxSearchWrapper 初始化成功: url=%s k=10",
309
- redact_string(searxng_url),
310
- )
311
- except Exception as exc:
312
- logger.warning("[初始化] SearxSearchWrapper 初始化失败: %s", exc)
313
- else:
314
- logger.info("[初始化] SEARXNG_URL 未配置,搜索功能禁用")
315
-
316
- if self._crawl4ai_capabilities.available:
317
- logger.info("[初始化] crawl4ai 可用,网页获取功能已启用")
318
- else:
319
- detail = self._crawl4ai_capabilities.error
320
- if detail:
321
- logger.warning(
322
- "[初始化] crawl4ai 不可用,网页获取功能将禁用: %s",
323
- detail,
304
+ searxng_url = runtime_config.searxng_url
305
+ if searxng_url:
306
+ try:
307
+ self._search_wrapper = _build_searx_wrapper(searxng_url)
308
+ logger.info(
309
+ "[初始化] SearxSearchWrapper 初始化成功: url=%s k=10",
310
+ redact_string(searxng_url),
324
311
  )
325
- else:
326
- logger.warning("[初始化] crawl4ai 不可用,网页获取功能将禁用")
312
+ except Exception as exc:
313
+ logger.error(
314
+ "[初始化] SearxSearchWrapper 初始化失败,搜索功能不可用,"
315
+ "请修复 langchain-community 安装: %s",
316
+ exc,
317
+ )
318
+ else:
319
+ logger.info("[初始化] SEARXNG_URL 未配置,搜索功能禁用")
320
+
321
+ if self._crawl4ai_capabilities is not None:
322
+ logger.info(
323
+ "[初始化] crawl4ai 已就绪,网页获取功能已启用: proxy_config=%s",
324
+ self._crawl4ai_capabilities.proxy_config_available,
325
+ )
327
326
 
328
327
  self._prompt_builder = PromptBuilder(
329
328
  bot_qq=self.bot_qq,
@@ -561,30 +560,19 @@ class ClientSetupMixin:
561
560
 
562
561
  def apply_search_config(self, searxng_url: str) -> None:
563
562
  """应用搜索服务配置(支持热更新)。"""
564
- if not _SEARX_AVAILABLE or _SearxSearchWrapper is None:
565
- if searxng_url:
566
- logger.warning(
567
- "[配置] 搜索组件不可用,已忽略 SEARXNG_URL=%s",
568
- redact_string(searxng_url),
569
- )
570
- else:
571
- logger.info("[配置] 搜索组件不可用,搜索已禁用")
572
- self._search_wrapper = None
573
- return
574
-
575
563
  if not searxng_url:
576
564
  self._search_wrapper = None
577
565
  logger.info("[配置] SEARXNG_URL 未配置,搜索功能已禁用")
578
566
  return
579
567
 
580
568
  try:
581
- self._search_wrapper = _SearxSearchWrapper(searx_host=searxng_url, k=10)
569
+ self._search_wrapper = _build_searx_wrapper(searxng_url)
582
570
  logger.info(
583
571
  "[配置] 搜索服务已更新: url=%s k=10",
584
572
  redact_string(searxng_url),
585
573
  )
586
574
  except Exception as exc:
587
- logger.warning("[配置] 搜索服务更新失败: %s", exc)
575
+ logger.error("[配置] 搜索服务更新失败: %s", exc)
588
576
  self._search_wrapper = None
589
577
  logger.info("[配置] 搜索服务已回退为禁用")
590
578