Undefined-bot 3.18.4__tar.gz → 3.18.5__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 (874) hide show
  1. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/ARCHITECTURE.md +2 -0
  2. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/CHANGELOG.md +19 -0
  3. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/PKG-INFO +1 -1
  4. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/config.toml.example +8 -2
  5. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/pyproject.toml +1 -1
  6. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/__init__.py +1 -1
  7. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/ai/client/ask_loop.py +1 -0
  8. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/ai/client/queue.py +17 -0
  9. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/ai/multimodal/analyzer.py +6 -2
  10. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/api/_helpers.py +4 -3
  11. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/api/app.py +31 -3
  12. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/api/routes/chat.py +99 -48
  13. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/api/routes/cognitive.py +4 -1
  14. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/api/routes/memory.py +12 -3
  15. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/api/routes/naga/send.py +50 -14
  16. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/api/webchat_store.py +24 -15
  17. undefined_bot-3.18.5/src/Undefined/arxiv/downloader.py +115 -0
  18. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/arxiv/sender.py +19 -4
  19. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/attachments/render.py +1 -1
  20. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/attachments/segments.py +8 -5
  21. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/automations/runner.py +19 -10
  22. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/automations/storage.py +17 -8
  23. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/automations/validate.py +9 -0
  24. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/bilibili/downloader.py +13 -9
  25. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/cognitive/historian/worker.py +42 -1
  26. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/cognitive/profile_storage.py +34 -9
  27. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/cognitive/service/service.py +7 -6
  28. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/config/build_config.py +6 -5
  29. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/config/config_class.py +7 -4
  30. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/config/env_registry.py +2 -0
  31. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/config/hot_reload.py +21 -3
  32. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/config/load_sections/core.py +16 -0
  33. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/config/load_sections/domains.py +5 -7
  34. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/config/manager.py +44 -10
  35. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/config/models.py +1 -0
  36. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/config/parsers/helpers.py +4 -2
  37. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/config/webui_settings.py +40 -3
  38. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/deploy/config_patch.py +17 -3
  39. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/deploy/generate.py +36 -14
  40. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/deploy/runner.py +30 -27
  41. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/deploy/templates/compose.bot.yaml +4 -0
  42. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/deploy/templates/compose.lxmusic2api.yaml +1 -0
  43. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/douyin/sender.py +4 -0
  44. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/handlers/message_flow.py +1 -0
  45. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/jm/client.py +3 -0
  46. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/jm/downloader.py +38 -35
  47. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/jm/parser.py +7 -3
  48. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/knowledge/embedder.py +2 -0
  49. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/knowledge/manager.py +23 -8
  50. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/knowledge/reranker.py +2 -0
  51. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/knowledge/store.py +21 -3
  52. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/main.py +89 -30
  53. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/memes/models.py +2 -0
  54. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/memes/search.py +65 -33
  55. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/memes/service.py +186 -152
  56. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/memes/store.py +61 -13
  57. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/memes/worker.py +25 -11
  58. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/memory.py +68 -63
  59. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/onebot/client.py +61 -31
  60. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/onebot/file_references.py +2 -7
  61. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/services/coordinator/background.py +17 -1
  62. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/services/coordinator/group.py +13 -5
  63. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/services/coordinator/private.py +13 -3
  64. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/services/message_batcher/scheduler.py +34 -13
  65. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/services/queue_manager.py +49 -10
  66. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/README.md +2 -0
  67. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/agents/file_analysis_agent/README.md +2 -0
  68. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/agents/file_analysis_agent/prompt.md +1 -0
  69. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/agents/file_analysis_agent/tools/cleanup_temp/config.json +1 -1
  70. undefined_bot-3.18.5/src/Undefined/skills/agents/file_analysis_agent/tools/cleanup_temp/handler.py +53 -0
  71. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/agents/file_analysis_agent/tools/extract_archive/config.json +2 -2
  72. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/agents/file_analysis_agent/tools/extract_archive/handler.py +22 -3
  73. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/registry.py +6 -4
  74. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/shared.py +38 -1
  75. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/tools/arxiv_paper/README.md +4 -0
  76. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/tools/bilibili_opus/README.md +2 -0
  77. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/tools/bilibili_video/README.md +2 -0
  78. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/tools/douyin_video/README.md +2 -0
  79. undefined_bot-3.18.5/src/Undefined/skills/tools/python_interpreter/README.md +34 -0
  80. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/tools/python_interpreter/handler.py +51 -12
  81. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/tools/task_progress/README.md +2 -0
  82. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/tools/task_progress/handler.py +2 -3
  83. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/cognitive/README.md +3 -2
  84. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/cognitive/get_profile/handler.py +7 -4
  85. undefined_bot-3.18.5/src/Undefined/skills/toolsets/memory/README.md +16 -0
  86. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/messages/README.md +2 -0
  87. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/utils/common.py +13 -1
  88. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/utils/http_download.py +25 -9
  89. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/utils/io.py +4 -2
  90. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/utils/paths.py +12 -0
  91. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/utils/sender.py +284 -248
  92. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/webui/app.py +25 -10
  93. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/webui/core.py +33 -12
  94. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/webui/routes/_auth.py +27 -15
  95. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/webui/routes/_bot.py +5 -5
  96. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/webui/routes/_config.py +97 -40
  97. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/webui/static/js/api.js +37 -17
  98. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/webui/static/js/config-form.js +171 -98
  99. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/webui/static/js/log-view.js +42 -8
  100. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/webui/static/js/main.js +24 -10
  101. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/webui/static/js/memes.js +69 -35
  102. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/webui/static/js/runtime.js +208 -75
  103. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/webui/static/js/schedules.js +62 -12
  104. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/webui/static/js/weixin.js +79 -24
  105. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/webui/static/js/workflow-inspector.js +1 -1
  106. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/webui/utils/config_io.py +6 -0
  107. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/webui/utils/config_sync.py +15 -9
  108. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/weixin/service.py +66 -28
  109. undefined_bot-3.18.5/src/Undefined/weixin/transport.py +73 -0
  110. undefined_bot-3.18.4/src/Undefined/arxiv/downloader.py +0 -108
  111. undefined_bot-3.18.4/src/Undefined/skills/agents/file_analysis_agent/tools/cleanup_temp/handler.py +0 -37
  112. undefined_bot-3.18.4/src/Undefined/skills/tools/python_interpreter/README.md +0 -19
  113. undefined_bot-3.18.4/src/Undefined/skills/toolsets/memory/README.md +0 -10
  114. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/.gitignore +0 -0
  115. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/LICENSE +0 -0
  116. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/README.md +0 -0
  117. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/config/README.md +0 -0
  118. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/config/mcp.json.example +0 -0
  119. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/img/undefined-9527.png +0 -0
  120. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/img/xlwy.jpg +0 -0
  121. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/res/IMPORTANT/each.md +0 -0
  122. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/res/README.md +0 -0
  123. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/res/prompts/agent_self_intro.txt +0 -0
  124. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/res/prompts/analyze_multimodal.txt +0 -0
  125. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/res/prompts/describe_image.txt +0 -0
  126. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/res/prompts/describe_meme_image.txt +0 -0
  127. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/res/prompts/generate_title.txt +0 -0
  128. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/res/prompts/historian_profile_merge.md +0 -0
  129. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/res/prompts/historian_rewrite.md +0 -0
  130. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/res/prompts/image_gen_moderation.txt +0 -0
  131. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/res/prompts/injection_detector.txt +0 -0
  132. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/res/prompts/injection_response_agent.txt +0 -0
  133. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/res/prompts/judge_meme_image.txt +0 -0
  134. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/res/prompts/merge_message_summaries.txt +0 -0
  135. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/res/prompts/merge_summaries.txt +0 -0
  136. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/res/prompts/message_summary.txt +0 -0
  137. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/res/prompts/naga_message_moderation.txt +0 -0
  138. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/res/prompts/stats_analysis.txt +0 -0
  139. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/res/prompts/summarize.txt +0 -0
  140. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/res/prompts/undefined.xml +0 -0
  141. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/res/prompts/undefined_nagaagent.xml +0 -0
  142. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/README.md +0 -0
  143. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/README.md +0 -0
  144. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/__main__.py +0 -0
  145. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/ai/__init__.py +0 -0
  146. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/ai/client/__init__.py +0 -0
  147. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/ai/client/setup.py +0 -0
  148. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/ai/crawl4ai_support.py +0 -0
  149. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/ai/http.py +0 -0
  150. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/ai/llm/__init__.py +0 -0
  151. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/ai/llm/requester.py +0 -0
  152. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/ai/llm/retry.py +0 -0
  153. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/ai/llm/sanitize.py +0 -0
  154. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/ai/llm/streaming.py +0 -0
  155. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/ai/llm/thinking.py +0 -0
  156. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/ai/llm/types.py +0 -0
  157. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/ai/model_selector.py +0 -0
  158. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/ai/multimodal/__init__.py +0 -0
  159. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/ai/multimodal/constants.py +0 -0
  160. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/ai/multimodal/detection.py +0 -0
  161. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/ai/multimodal/parsing.py +0 -0
  162. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/ai/parsing.py +0 -0
  163. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/ai/prompts/__init__.py +0 -0
  164. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/ai/prompts/builder.py +0 -0
  165. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/ai/prompts/cognitive.py +0 -0
  166. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/ai/prompts/constants.py +0 -0
  167. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/ai/prompts/current_input.py +0 -0
  168. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/ai/prompts/file_includes.py +0 -0
  169. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/ai/prompts/system_context.py +0 -0
  170. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/ai/prompts/system_info.py +0 -0
  171. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/ai/queue_budget.py +0 -0
  172. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/ai/retrieval.py +0 -0
  173. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/ai/summaries.py +0 -0
  174. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/ai/tokens.py +0 -0
  175. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/ai/tool_search.py +0 -0
  176. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/ai/tooling.py +0 -0
  177. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/ai/transports/__init__.py +0 -0
  178. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/ai/transports/anthropic_transport.py +0 -0
  179. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/ai/transports/openai_transport.py +0 -0
  180. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/ai/transports/replay.py +0 -0
  181. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/api/__init__.py +0 -0
  182. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/api/_context.py +0 -0
  183. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/api/_naga_state.py +0 -0
  184. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/api/_openapi.py +0 -0
  185. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/api/_probes.py +0 -0
  186. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/api/naga_store.py +0 -0
  187. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/api/routes/__init__.py +0 -0
  188. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/api/routes/automations.py +0 -0
  189. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/api/routes/commands.py +0 -0
  190. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/api/routes/health.py +0 -0
  191. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/api/routes/memes.py +0 -0
  192. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/api/routes/naga/__init__.py +0 -0
  193. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/api/routes/naga/auth.py +0 -0
  194. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/api/routes/naga/bind.py +0 -0
  195. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/api/routes/naga/unbind.py +0 -0
  196. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/api/routes/onebot_files.py +0 -0
  197. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/api/routes/schedules.py +0 -0
  198. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/api/routes/system.py +0 -0
  199. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/api/routes/tools.py +0 -0
  200. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/api/routes/weixin.py +0 -0
  201. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/arxiv/__init__.py +0 -0
  202. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/arxiv/client.py +0 -0
  203. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/arxiv/models.py +0 -0
  204. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/arxiv/parser.py +0 -0
  205. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/attachments/__init__.py +0 -0
  206. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/attachments/forward_snapshot.py +0 -0
  207. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/attachments/models.py +0 -0
  208. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/attachments/registry.py +0 -0
  209. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/attachments/remote.py +0 -0
  210. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/automations/__init__.py +0 -0
  211. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/automations/address.py +0 -0
  212. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/automations/catalog.py +0 -0
  213. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/automations/clock.py +0 -0
  214. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/automations/constants.py +0 -0
  215. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/automations/engine.py +0 -0
  216. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/automations/extract.py +0 -0
  217. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/automations/logutil.py +0 -0
  218. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/automations/match.py +0 -0
  219. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/automations/mentions.py +0 -0
  220. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/automations/migrate.py +0 -0
  221. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/automations/service.py +0 -0
  222. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/automations/short.py +0 -0
  223. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/automations/template.py +0 -0
  224. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/automations/triggers.py +0 -0
  225. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/bilibili/__init__.py +0 -0
  226. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/bilibili/api_client.py +0 -0
  227. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/bilibili/danmaku.py +0 -0
  228. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/bilibili/download_core.py +0 -0
  229. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/bilibili/errors.py +0 -0
  230. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/bilibili/format.py +0 -0
  231. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/bilibili/models.py +0 -0
  232. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/bilibili/opus_parser.py +0 -0
  233. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/bilibili/opus_render.py +0 -0
  234. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/bilibili/opus_sender.py +0 -0
  235. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/bilibili/parser.py +0 -0
  236. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/bilibili/sender.py +0 -0
  237. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/bilibili/wbi.py +0 -0
  238. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/bilibili/wbi_request.py +0 -0
  239. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/changelog.py +0 -0
  240. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/cognitive/__init__.py +0 -0
  241. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/cognitive/chroma_scheduler.py +0 -0
  242. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/cognitive/historian/__init__.py +0 -0
  243. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/cognitive/historian/helpers.py +0 -0
  244. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/cognitive/historian/scheduling.py +0 -0
  245. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/cognitive/historian/tools.py +0 -0
  246. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/cognitive/job_queue.py +0 -0
  247. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/cognitive/service/__init__.py +0 -0
  248. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/cognitive/service/helpers.py +0 -0
  249. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/cognitive/vector_store.py +0 -0
  250. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/cognitive/vector_store_compat.py +0 -0
  251. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/config/__init__.py +0 -0
  252. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/config/admin.py +0 -0
  253. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/config/api_modes.py +0 -0
  254. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/config/coercers.py +0 -0
  255. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/config/domain_parsers.py +0 -0
  256. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/config/load_sections/__init__.py +0 -0
  257. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/config/load_sections/access.py +0 -0
  258. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/config/load_sections/finalize.py +0 -0
  259. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/config/load_sections/history_skills.py +0 -0
  260. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/config/load_sections/integrations.py +0 -0
  261. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/config/load_sections/knowledge.py +0 -0
  262. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/config/load_sections/logging_tools.py +0 -0
  263. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/config/load_sections/models.py +0 -0
  264. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/config/load_sections/network.py +0 -0
  265. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/config/loader.py +0 -0
  266. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/config/model_parsers.py +0 -0
  267. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/config/naga_policy.py +0 -0
  268. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/config/onebot.py +0 -0
  269. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/config/parsers/__init__.py +0 -0
  270. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/config/parsers/agent.py +0 -0
  271. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/config/parsers/chat.py +0 -0
  272. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/config/parsers/embedding.py +0 -0
  273. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/config/parsers/grok.py +0 -0
  274. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/config/parsers/historian.py +0 -0
  275. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/config/parsers/image.py +0 -0
  276. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/config/parsers/naga.py +0 -0
  277. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/config/parsers/pool.py +0 -0
  278. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/config/parsers/security.py +0 -0
  279. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/config/parsers/summary.py +0 -0
  280. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/config/parsers/vision.py +0 -0
  281. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/config/resolvers.py +0 -0
  282. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/config/search.py +0 -0
  283. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/config/toml_io.py +0 -0
  284. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/context.py +0 -0
  285. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/context_resource_registry.py +0 -0
  286. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/deploy/__init__.py +0 -0
  287. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/deploy/__main__.py +0 -0
  288. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/deploy/catalog.py +0 -0
  289. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/deploy/cli.py +0 -0
  290. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/deploy/commands.py +0 -0
  291. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/deploy/docker_cli.py +0 -0
  292. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/deploy/images.py +0 -0
  293. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/deploy/nagaagent.py +0 -0
  294. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/deploy/state.py +0 -0
  295. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/deploy/templates/.dockerignore +0 -0
  296. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/deploy/templates/Dockerfile.bot +0 -0
  297. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/deploy/templates/compose.base.yaml +0 -0
  298. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/deploy/templates/compose.firecrawl.yaml +0 -0
  299. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/deploy/templates/compose.napcat.yaml +0 -0
  300. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/deploy/templates/compose.searxng.yaml +0 -0
  301. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/deploy/templates/lxmusic2api.config.toml +0 -0
  302. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/deploy/templates/napcat.ws.json +0 -0
  303. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/deploy/templates/searxng.settings.yml +0 -0
  304. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/douyin/__init__.py +0 -0
  305. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/douyin/client.py +0 -0
  306. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/douyin/downloader.py +0 -0
  307. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/douyin/models.py +0 -0
  308. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/douyin/parser.py +0 -0
  309. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/end_summary_storage.py +0 -0
  310. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/faq.py +0 -0
  311. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/github/__init__.py +0 -0
  312. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/github/client.py +0 -0
  313. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/github/models.py +0 -0
  314. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/github/parser.py +0 -0
  315. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/github/sender.py +0 -0
  316. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/handlers/__init__.py +0 -0
  317. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/handlers/auto_extract.py +0 -0
  318. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/handlers/poke.py +0 -0
  319. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/handlers/repeat.py +0 -0
  320. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/injection_response_agent.py +0 -0
  321. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/jm/__init__.py +0 -0
  322. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/jm/searcher.py +0 -0
  323. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/jm/sender.py +0 -0
  324. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/knowledge/__init__.py +0 -0
  325. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/knowledge/chunker.py +0 -0
  326. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/knowledge/runtime.py +0 -0
  327. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/mcp/__init__.py +0 -0
  328. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/mcp/registry.py +0 -0
  329. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/memes/__init__.py +0 -0
  330. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/memes/_image_utils.py +0 -0
  331. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/memes/ingest.py +0 -0
  332. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/memes/vector_store.py +0 -0
  333. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/onebot/__init__.py +0 -0
  334. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/onebot/file_errors.py +0 -0
  335. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/onebot/file_store.py +0 -0
  336. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/onebot/file_transport.py +0 -0
  337. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/onebot/message.py +0 -0
  338. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/py.typed +0 -0
  339. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/rate_limit.py +0 -0
  340. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/render.py +0 -0
  341. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/services/__init__.py +0 -0
  342. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/services/bugfix_command.py +0 -0
  343. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/services/command.py +0 -0
  344. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/services/commands/__init__.py +0 -0
  345. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/services/commands/catalog.py +0 -0
  346. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/services/commands/context.py +0 -0
  347. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/services/commands/registry.py +0 -0
  348. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/services/coordinator/__init__.py +0 -0
  349. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/services/coordinator/batching.py +0 -0
  350. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/services/coordinator/message_ids.py +0 -0
  351. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/services/message_batcher/__init__.py +0 -0
  352. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/services/message_batcher/state.py +0 -0
  353. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/services/message_summary_fetch.py +0 -0
  354. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/services/model_pool.py +0 -0
  355. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/services/security.py +0 -0
  356. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/services/stats_command.py +0 -0
  357. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/__init__.py +0 -0
  358. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/agents/README.md +0 -0
  359. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/agents/__init__.py +0 -0
  360. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/agents/agent_tool_registry.py +0 -0
  361. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/agents/code_delivery_agent/config.json +0 -0
  362. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/agents/code_delivery_agent/docker_utils.py +0 -0
  363. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/agents/code_delivery_agent/handler.py +0 -0
  364. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/agents/code_delivery_agent/intro.md +0 -0
  365. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/agents/code_delivery_agent/mcp.json +0 -0
  366. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/agents/code_delivery_agent/prompt.md +0 -0
  367. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/agents/code_delivery_agent/tools/copy/config.json +0 -0
  368. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/agents/code_delivery_agent/tools/copy/handler.py +0 -0
  369. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/agents/code_delivery_agent/tools/delete/config.json +0 -0
  370. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/agents/code_delivery_agent/tools/delete/handler.py +0 -0
  371. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/agents/code_delivery_agent/tools/diff/config.json +0 -0
  372. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/agents/code_delivery_agent/tools/diff/handler.py +0 -0
  373. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/agents/code_delivery_agent/tools/end/config.json +0 -0
  374. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/agents/code_delivery_agent/tools/end/handler.py +0 -0
  375. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/agents/code_delivery_agent/tools/glob/config.json +0 -0
  376. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/agents/code_delivery_agent/tools/glob/handler.py +0 -0
  377. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/agents/code_delivery_agent/tools/grep/config.json +0 -0
  378. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/agents/code_delivery_agent/tools/grep/handler.py +0 -0
  379. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/agents/code_delivery_agent/tools/init_docker/config.json +0 -0
  380. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/agents/code_delivery_agent/tools/init_docker/handler.py +0 -0
  381. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/agents/code_delivery_agent/tools/read/config.json +0 -0
  382. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/agents/code_delivery_agent/tools/read/handler.py +0 -0
  383. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/agents/code_delivery_agent/tools/run_bash_command/config.json +0 -0
  384. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/agents/code_delivery_agent/tools/run_bash_command/handler.py +0 -0
  385. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/agents/code_delivery_agent/tools/todo/config.json +0 -0
  386. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/agents/code_delivery_agent/tools/todo/handler.py +0 -0
  387. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/agents/code_delivery_agent/tools/tree/config.json +0 -0
  388. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/agents/code_delivery_agent/tools/tree/handler.py +0 -0
  389. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/agents/code_delivery_agent/tools/write/config.json +0 -0
  390. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/agents/code_delivery_agent/tools/write/handler.py +0 -0
  391. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/agents/entertainment_agent/README.md +0 -0
  392. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/agents/entertainment_agent/config.json +0 -0
  393. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/agents/entertainment_agent/handler.py +0 -0
  394. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/agents/entertainment_agent/intro.md +0 -0
  395. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/agents/entertainment_agent/prompt.md +0 -0
  396. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/agents/entertainment_agent/tools/__init__.py +0 -0
  397. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/agents/entertainment_agent/tools/ai_draw_one/config.json +0 -0
  398. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/agents/entertainment_agent/tools/ai_draw_one/handler.py +0 -0
  399. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/agents/entertainment_agent/tools/horoscope/config.json +0 -0
  400. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/agents/entertainment_agent/tools/horoscope/handler.py +0 -0
  401. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/agents/entertainment_agent/tools/minecraft_skin/config.json +0 -0
  402. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/agents/entertainment_agent/tools/minecraft_skin/handler.py +0 -0
  403. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/agents/entertainment_agent/tools/renjian/config.json +0 -0
  404. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/agents/entertainment_agent/tools/renjian/handler.py +0 -0
  405. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/agents/entertainment_agent/tools/wenchang_dijun/config.json +0 -0
  406. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/agents/entertainment_agent/tools/wenchang_dijun/handler.py +0 -0
  407. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/agents/file_analysis_agent/__init__.py +0 -0
  408. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/agents/file_analysis_agent/config.json +0 -0
  409. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/agents/file_analysis_agent/handler.py +0 -0
  410. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/agents/file_analysis_agent/intro.md +0 -0
  411. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/agents/file_analysis_agent/tools/__init__.py +0 -0
  412. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/agents/file_analysis_agent/tools/analyze_code/config.json +0 -0
  413. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/agents/file_analysis_agent/tools/analyze_code/handler.py +0 -0
  414. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/agents/file_analysis_agent/tools/analyze_multimodal/config.json +0 -0
  415. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/agents/file_analysis_agent/tools/analyze_multimodal/handler.py +0 -0
  416. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/agents/file_analysis_agent/tools/describe_pdf_page/config.json +0 -0
  417. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/agents/file_analysis_agent/tools/describe_pdf_page/handler.py +0 -0
  418. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/agents/file_analysis_agent/tools/detect_file_type/config.json +0 -0
  419. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/agents/file_analysis_agent/tools/detect_file_type/handler.py +0 -0
  420. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/agents/file_analysis_agent/tools/download_file/config.json +0 -0
  421. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/agents/file_analysis_agent/tools/download_file/handler.py +0 -0
  422. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/agents/file_analysis_agent/tools/extract_docx/config.json +0 -0
  423. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/agents/file_analysis_agent/tools/extract_docx/handler.py +0 -0
  424. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/agents/file_analysis_agent/tools/extract_pdf/config.json +0 -0
  425. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/agents/file_analysis_agent/tools/extract_pdf/handler.py +0 -0
  426. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/agents/file_analysis_agent/tools/extract_pptx/config.json +0 -0
  427. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/agents/file_analysis_agent/tools/extract_pptx/handler.py +0 -0
  428. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/agents/file_analysis_agent/tools/extract_xlsx/config.json +0 -0
  429. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/agents/file_analysis_agent/tools/extract_xlsx/handler.py +0 -0
  430. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/agents/file_analysis_agent/tools/read_text_file/config.json +0 -0
  431. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/agents/file_analysis_agent/tools/read_text_file/handler.py +0 -0
  432. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/agents/info_agent/README.md +0 -0
  433. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/agents/info_agent/config.json +0 -0
  434. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/agents/info_agent/handler.py +0 -0
  435. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/agents/info_agent/intro.md +0 -0
  436. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/agents/info_agent/prompt.md +0 -0
  437. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/agents/info_agent/tools/__init__.py +0 -0
  438. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/agents/info_agent/tools/arxiv_search/config.json +0 -0
  439. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/agents/info_agent/tools/arxiv_search/handler.py +0 -0
  440. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/agents/info_agent/tools/baiduhot/config.json +0 -0
  441. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/agents/info_agent/tools/baiduhot/handler.py +0 -0
  442. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/agents/info_agent/tools/base64/config.json +0 -0
  443. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/agents/info_agent/tools/base64/handler.py +0 -0
  444. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/agents/info_agent/tools/bilibili_search/config.json +0 -0
  445. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/agents/info_agent/tools/bilibili_search/handler.py +0 -0
  446. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/agents/info_agent/tools/bilibili_user_info/config.json +0 -0
  447. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/agents/info_agent/tools/bilibili_user_info/handler.py +0 -0
  448. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/agents/info_agent/tools/douyinhot/config.json +0 -0
  449. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/agents/info_agent/tools/douyinhot/handler.py +0 -0
  450. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/agents/info_agent/tools/gold_price/config.json +0 -0
  451. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/agents/info_agent/tools/gold_price/handler.py +0 -0
  452. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/agents/info_agent/tools/hash/config.json +0 -0
  453. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/agents/info_agent/tools/hash/handler.py +0 -0
  454. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/agents/info_agent/tools/history/config.json +0 -0
  455. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/agents/info_agent/tools/history/handler.py +0 -0
  456. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/agents/info_agent/tools/jm_search/config.json +0 -0
  457. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/agents/info_agent/tools/jm_search/handler.py +0 -0
  458. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/agents/info_agent/tools/net_check/config.json +0 -0
  459. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/agents/info_agent/tools/net_check/handler.py +0 -0
  460. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/agents/info_agent/tools/qq_level_query/config.json +0 -0
  461. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/agents/info_agent/tools/qq_level_query/handler.py +0 -0
  462. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/agents/info_agent/tools/speed/config.json +0 -0
  463. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/agents/info_agent/tools/speed/handler.py +0 -0
  464. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/agents/info_agent/tools/tcping/config.json +0 -0
  465. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/agents/info_agent/tools/tcping/handler.py +0 -0
  466. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/agents/info_agent/tools/weather_query/config.json +0 -0
  467. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/agents/info_agent/tools/weather_query/handler.py +0 -0
  468. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/agents/info_agent/tools/weibohot/config.json +0 -0
  469. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/agents/info_agent/tools/weibohot/handler.py +0 -0
  470. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/agents/info_agent/tools/whois/config.json +0 -0
  471. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/agents/info_agent/tools/whois/handler.py +0 -0
  472. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/agents/intro_generator.py +0 -0
  473. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/agents/intro_utils.py +0 -0
  474. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/agents/naga_code_analysis_agent/README.md +0 -0
  475. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/agents/naga_code_analysis_agent/config.json +0 -0
  476. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/agents/naga_code_analysis_agent/handler.py +0 -0
  477. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/agents/naga_code_analysis_agent/intro.md +0 -0
  478. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/agents/naga_code_analysis_agent/mcp.json +0 -0
  479. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/agents/naga_code_analysis_agent/prompt.md +0 -0
  480. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/agents/naga_code_analysis_agent/tools/__init__.py +0 -0
  481. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/agents/naga_code_analysis_agent/tools/glob/config.json +0 -0
  482. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/agents/naga_code_analysis_agent/tools/glob/handler.py +0 -0
  483. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/agents/naga_code_analysis_agent/tools/list_directory/config.json +0 -0
  484. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/agents/naga_code_analysis_agent/tools/list_directory/handler.py +0 -0
  485. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/agents/naga_code_analysis_agent/tools/read_file/config.json +0 -0
  486. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/agents/naga_code_analysis_agent/tools/read_file/handler.py +0 -0
  487. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/agents/naga_code_analysis_agent/tools/read_naga_intro/config.json +0 -0
  488. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/agents/naga_code_analysis_agent/tools/read_naga_intro/handler.py +0 -0
  489. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/agents/naga_code_analysis_agent/tools/search_file_content/config.json +0 -0
  490. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/agents/naga_code_analysis_agent/tools/search_file_content/handler.py +0 -0
  491. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/agents/runner/__init__.py +0 -0
  492. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/agents/runner/context.py +0 -0
  493. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/agents/runner/loop.py +0 -0
  494. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/agents/runner/tools.py +0 -0
  495. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/agents/runner/webchat_utils.py +0 -0
  496. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/agents/summary_agent/__init__.py +0 -0
  497. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/agents/summary_agent/config.json +0 -0
  498. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/agents/summary_agent/handler.py +0 -0
  499. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/agents/summary_agent/intro.md +0 -0
  500. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/agents/summary_agent/prompt.md +0 -0
  501. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/agents/summary_agent/tools/__init__.py +0 -0
  502. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/agents/summary_agent/tools/fetch_messages/config.json +0 -0
  503. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/agents/summary_agent/tools/fetch_messages/handler.py +0 -0
  504. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/agents/undefined_self_code_agent/README.md +0 -0
  505. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/agents/undefined_self_code_agent/__init__.py +0 -0
  506. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/agents/undefined_self_code_agent/config.json +0 -0
  507. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/agents/undefined_self_code_agent/handler.py +0 -0
  508. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/agents/undefined_self_code_agent/intro.md +0 -0
  509. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/agents/undefined_self_code_agent/prompt.md +0 -0
  510. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/agents/undefined_self_code_agent/tools/__init__.py +0 -0
  511. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/agents/undefined_self_code_agent/tools/_shared.py +0 -0
  512. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/agents/undefined_self_code_agent/tools/glob/config.json +0 -0
  513. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/agents/undefined_self_code_agent/tools/glob/handler.py +0 -0
  514. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/agents/undefined_self_code_agent/tools/list_directory/config.json +0 -0
  515. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/agents/undefined_self_code_agent/tools/list_directory/handler.py +0 -0
  516. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/agents/undefined_self_code_agent/tools/read_file/config.json +0 -0
  517. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/agents/undefined_self_code_agent/tools/read_file/handler.py +0 -0
  518. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/agents/undefined_self_code_agent/tools/search_file_content/config.json +0 -0
  519. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/agents/undefined_self_code_agent/tools/search_file_content/handler.py +0 -0
  520. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/agents/web_agent/README.md +0 -0
  521. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/agents/web_agent/callable.json +0 -0
  522. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/agents/web_agent/config.json +0 -0
  523. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/agents/web_agent/handler.py +0 -0
  524. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/agents/web_agent/intro.md +0 -0
  525. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/agents/web_agent/mcp.json +0 -0
  526. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/agents/web_agent/prompt.md +0 -0
  527. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/agents/web_agent/tools/__init__.py +0 -0
  528. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/agents/web_agent/tools/crawl_webpage/config.json +0 -0
  529. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/agents/web_agent/tools/crawl_webpage/handler.py +0 -0
  530. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/agents/web_agent/tools/firecrawl_search/config.json +0 -0
  531. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/agents/web_agent/tools/firecrawl_search/handler.py +0 -0
  532. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/agents/web_agent/tools/grok_search/config.json +0 -0
  533. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/agents/web_agent/tools/grok_search/handler.py +0 -0
  534. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/agents/web_agent/tools/web_search/config.json +0 -0
  535. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/agents/web_agent/tools/web_search/handler.py +0 -0
  536. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/anthropic_skills/__init__.py +0 -0
  537. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/anthropic_skills/loader.py +0 -0
  538. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/commands/README.md +0 -0
  539. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/commands/admin/README.md +0 -0
  540. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/commands/admin/config.json +0 -0
  541. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/commands/admin/handler.py +0 -0
  542. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/commands/bugfix/README.md +0 -0
  543. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/commands/bugfix/config.json +0 -0
  544. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/commands/bugfix/handler.py +0 -0
  545. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/commands/changelog/README.md +0 -0
  546. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/commands/changelog/config.json +0 -0
  547. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/commands/changelog/handler.py +0 -0
  548. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/commands/copyright/README.md +0 -0
  549. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/commands/copyright/config.json +0 -0
  550. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/commands/copyright/handler.py +0 -0
  551. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/commands/faq/README.md +0 -0
  552. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/commands/faq/config.json +0 -0
  553. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/commands/faq/handler.py +0 -0
  554. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/commands/feedback/README.md +0 -0
  555. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/commands/feedback/config.json +0 -0
  556. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/commands/feedback/handler.py +0 -0
  557. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/commands/help/README.md +0 -0
  558. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/commands/help/config.json +0 -0
  559. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/commands/help/handler.py +0 -0
  560. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/commands/naga/README.md +0 -0
  561. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/commands/naga/config.json +0 -0
  562. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/commands/naga/handler.py +0 -0
  563. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/commands/naga/policy.py +0 -0
  564. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/commands/profile/README.md +0 -0
  565. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/commands/profile/config.json +0 -0
  566. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/commands/profile/handler.py +0 -0
  567. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/commands/stats/README.md +0 -0
  568. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/commands/stats/config.json +0 -0
  569. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/commands/stats/handler.py +0 -0
  570. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/commands/summary/README.md +0 -0
  571. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/commands/summary/config.json +0 -0
  572. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/commands/summary/handler.py +0 -0
  573. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/commands/version/README.md +0 -0
  574. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/commands/version/config.json +0 -0
  575. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/commands/version/handler.py +0 -0
  576. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/http_client.py +0 -0
  577. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/http_config.py +0 -0
  578. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/pipelines/__init__.py +0 -0
  579. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/pipelines/arxiv/config.json +0 -0
  580. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/pipelines/arxiv/handler.py +0 -0
  581. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/pipelines/bilibili/config.json +0 -0
  582. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/pipelines/bilibili/handler.py +0 -0
  583. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/pipelines/bilibili_opus/config.json +0 -0
  584. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/pipelines/bilibili_opus/handler.py +0 -0
  585. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/pipelines/context.py +0 -0
  586. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/pipelines/douyin/config.json +0 -0
  587. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/pipelines/douyin/handler.py +0 -0
  588. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/pipelines/github/config.json +0 -0
  589. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/pipelines/github/handler.py +0 -0
  590. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/pipelines/jm/config.json +0 -0
  591. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/pipelines/jm/handler.py +0 -0
  592. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/pipelines/models.py +0 -0
  593. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/pipelines/registry.py +0 -0
  594. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/tools/README.md +0 -0
  595. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/tools/__init__.py +0 -0
  596. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/tools/arxiv_paper/callable.json +0 -0
  597. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/tools/arxiv_paper/config.json +0 -0
  598. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/tools/arxiv_paper/handler.py +0 -0
  599. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/tools/bilibili_opus/callable.json +0 -0
  600. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/tools/bilibili_opus/config.json +0 -0
  601. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/tools/bilibili_opus/handler.py +0 -0
  602. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/tools/bilibili_video/callable.json +0 -0
  603. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/tools/bilibili_video/config.json +0 -0
  604. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/tools/bilibili_video/handler.py +0 -0
  605. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/tools/calculator/README.md +0 -0
  606. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/tools/calculator/callable.json +0 -0
  607. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/tools/calculator/config.json +0 -0
  608. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/tools/calculator/handler.py +0 -0
  609. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/tools/changelog_query/README.md +0 -0
  610. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/tools/changelog_query/config.json +0 -0
  611. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/tools/changelog_query/handler.py +0 -0
  612. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/tools/douyin_video/callable.json +0 -0
  613. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/tools/douyin_video/config.json +0 -0
  614. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/tools/douyin_video/handler.py +0 -0
  615. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/tools/end/README.md +0 -0
  616. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/tools/end/config.json +0 -0
  617. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/tools/end/handler.py +0 -0
  618. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/tools/fetch_image_uid/README.md +0 -0
  619. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/tools/fetch_image_uid/config.json +0 -0
  620. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/tools/fetch_image_uid/handler.py +0 -0
  621. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/tools/get_current_time/README.md +0 -0
  622. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/tools/get_current_time/callable.json +0 -0
  623. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/tools/get_current_time/config.json +0 -0
  624. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/tools/get_current_time/handler.py +0 -0
  625. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/tools/get_picture/README.md +0 -0
  626. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/tools/get_picture/config.json +0 -0
  627. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/tools/get_picture/handler.py +0 -0
  628. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/tools/get_user_info/README.md +0 -0
  629. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/tools/get_user_info/config.json +0 -0
  630. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/tools/get_user_info/handler.py +0 -0
  631. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/tools/jm_book/README.md +0 -0
  632. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/tools/jm_book/callable.json +0 -0
  633. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/tools/jm_book/config.json +0 -0
  634. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/tools/jm_book/handler.py +0 -0
  635. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/tools/knowledge_list/README.md +0 -0
  636. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/tools/knowledge_list/config.json +0 -0
  637. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/tools/knowledge_list/handler.py +0 -0
  638. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/tools/knowledge_semantic_search/README.md +0 -0
  639. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/tools/knowledge_semantic_search/config.json +0 -0
  640. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/tools/knowledge_semantic_search/handler.py +0 -0
  641. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/tools/knowledge_text_search/README.md +0 -0
  642. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/tools/knowledge_text_search/config.json +0 -0
  643. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/tools/knowledge_text_search/handler.py +0 -0
  644. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/tools/python_interpreter/config.json +0 -0
  645. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/tools/qq_like/README.md +0 -0
  646. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/tools/qq_like/config.json +0 -0
  647. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/tools/qq_like/handler.py +0 -0
  648. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/tools/task_progress/config.json +0 -0
  649. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/README.md +0 -0
  650. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/__init__.py +0 -0
  651. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/attachments/README.md +0 -0
  652. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/attachments/get_uid_by_url/config.json +0 -0
  653. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/attachments/get_uid_by_url/handler.py +0 -0
  654. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/attachments/get_url_by_uid/config.json +0 -0
  655. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/attachments/get_url_by_uid/handler.py +0 -0
  656. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/automation/README.md +0 -0
  657. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/automation/_runtime.py +0 -0
  658. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/automation/create/config.json +0 -0
  659. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/automation/create/handler.py +0 -0
  660. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/automation/delete/config.json +0 -0
  661. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/automation/delete/handler.py +0 -0
  662. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/automation/get/config.json +0 -0
  663. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/automation/get/handler.py +0 -0
  664. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/automation/list/config.json +0 -0
  665. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/automation/list/handler.py +0 -0
  666. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/automation/set_enabled/config.json +0 -0
  667. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/automation/set_enabled/handler.py +0 -0
  668. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/automation/update/config.json +0 -0
  669. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/automation/update/handler.py +0 -0
  670. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/cognitive/get_profile/config.json +0 -0
  671. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/cognitive/search_events/config.json +0 -0
  672. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/cognitive/search_events/handler.py +0 -0
  673. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/cognitive/search_profiles/config.json +0 -0
  674. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/cognitive/search_profiles/handler.py +0 -0
  675. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/commands/README.md +0 -0
  676. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/commands/get/config.json +0 -0
  677. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/commands/get/handler.py +0 -0
  678. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/commands/search/config.json +0 -0
  679. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/commands/search/handler.py +0 -0
  680. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/contacts/README.md +0 -0
  681. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/contacts/query_friends/config.json +0 -0
  682. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/contacts/query_friends/handler.py +0 -0
  683. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/contacts/query_groups/config.json +0 -0
  684. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/contacts/query_groups/handler.py +0 -0
  685. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/group/README.md +0 -0
  686. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/group/find_member/config.json +0 -0
  687. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/group/find_member/handler.py +0 -0
  688. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/group/get_avatar/config.json +0 -0
  689. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/group/get_avatar/handler.py +0 -0
  690. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/group/get_files/config.json +0 -0
  691. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/group/get_files/handler.py +0 -0
  692. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/group/get_honor_info/config.json +0 -0
  693. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/group/get_honor_info/handler.py +0 -0
  694. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/group/get_member_info/config.json +0 -0
  695. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/group/get_member_info/handler.py +0 -0
  696. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/group/get_member_list/config.json +0 -0
  697. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/group/get_member_list/handler.py +0 -0
  698. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/group/get_member_title/config.json +0 -0
  699. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/group/get_member_title/handler.py +0 -0
  700. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/group_analysis/README.md +0 -0
  701. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/group_analysis/activity_trend/config.json +0 -0
  702. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/group_analysis/activity_trend/handler.py +0 -0
  703. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/group_analysis/filter_members/config.json +0 -0
  704. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/group_analysis/filter_members/handler.py +0 -0
  705. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/group_analysis/inactive_risk/config.json +0 -0
  706. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/group_analysis/inactive_risk/handler.py +0 -0
  707. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/group_analysis/join_statistics/config.json +0 -0
  708. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/group_analysis/join_statistics/handler.py +0 -0
  709. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/group_analysis/level_distribution/config.json +0 -0
  710. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/group_analysis/level_distribution/handler.py +0 -0
  711. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/group_analysis/member_activity/config.json +0 -0
  712. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/group_analysis/member_activity/handler.py +0 -0
  713. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/group_analysis/member_messages/config.json +0 -0
  714. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/group_analysis/member_messages/handler.py +0 -0
  715. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/group_analysis/member_structure/config.json +0 -0
  716. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/group_analysis/member_structure/handler.py +0 -0
  717. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/group_analysis/message_mix/config.json +0 -0
  718. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/group_analysis/message_mix/handler.py +0 -0
  719. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/group_analysis/new_member_activity/config.json +0 -0
  720. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/group_analysis/new_member_activity/handler.py +0 -0
  721. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/group_analysis/rank_members/config.json +0 -0
  722. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/group_analysis/rank_members/handler.py +0 -0
  723. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/mcp/README.md +0 -0
  724. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/mcp/__init__.py +0 -0
  725. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/memes/README.md +0 -0
  726. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/memes/search_memes/config.json +0 -0
  727. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/memes/search_memes/handler.py +0 -0
  728. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/memes/send_meme_by_uid/config.json +0 -0
  729. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/memes/send_meme_by_uid/handler.py +0 -0
  730. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/memory/add/config.json +0 -0
  731. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/memory/add/handler.py +0 -0
  732. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/memory/delete/config.json +0 -0
  733. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/memory/delete/handler.py +0 -0
  734. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/memory/list/config.json +0 -0
  735. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/memory/list/handler.py +0 -0
  736. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/memory/update/config.json +0 -0
  737. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/memory/update/handler.py +0 -0
  738. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/messages/context_utils.py +0 -0
  739. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/messages/get_forward_msg/config.json +0 -0
  740. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/messages/get_forward_msg/handler.py +0 -0
  741. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/messages/get_messages_by_time/config.json +0 -0
  742. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/messages/get_messages_by_time/handler.py +0 -0
  743. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/messages/get_recent_messages/config.json +0 -0
  744. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/messages/get_recent_messages/handler.py +0 -0
  745. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/messages/list_emojis/config.json +0 -0
  746. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/messages/list_emojis/handler.py +0 -0
  747. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/messages/lookup_emoji_id/config.json +0 -0
  748. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/messages/lookup_emoji_id/handler.py +0 -0
  749. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/messages/react_message_emoji/config.json +0 -0
  750. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/messages/react_message_emoji/handler.py +0 -0
  751. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/messages/send_group_sign/config.json +0 -0
  752. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/messages/send_group_sign/handler.py +0 -0
  753. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/messages/send_message/config.json +0 -0
  754. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/messages/send_message/handler.py +0 -0
  755. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/messages/send_poke/config.json +0 -0
  756. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/messages/send_poke/handler.py +0 -0
  757. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/messages/send_private_message/config.json +0 -0
  758. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/messages/send_private_message/handler.py +0 -0
  759. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/messages/send_text_file/callable.json +0 -0
  760. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/messages/send_text_file/config.json +0 -0
  761. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/messages/send_text_file/handler.py +0 -0
  762. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/messages/send_url_file/callable.json +0 -0
  763. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/messages/send_url_file/config.json +0 -0
  764. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/messages/send_url_file/handler.py +0 -0
  765. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/messages/send_voice/config.json +0 -0
  766. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/messages/send_voice/handler.py +0 -0
  767. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/music/README.md +0 -0
  768. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/music/_client.py +0 -0
  769. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/music/_constants.py +0 -0
  770. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/music/_tools.py +0 -0
  771. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/music/_track_refs.py +0 -0
  772. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/music/browse_playlists/config.json +0 -0
  773. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/music/browse_playlists/handler.py +0 -0
  774. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/music/browse_rankings/config.json +0 -0
  775. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/music/browse_rankings/handler.py +0 -0
  776. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/music/find_song_matches/config.json +0 -0
  777. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/music/find_song_matches/handler.py +0 -0
  778. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/music/get_audio/config.json +0 -0
  779. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/music/get_audio/handler.py +0 -0
  780. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/music/get_comments/config.json +0 -0
  781. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/music/get_comments/handler.py +0 -0
  782. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/music/get_cover/config.json +0 -0
  783. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/music/get_cover/handler.py +0 -0
  784. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/music/get_hot_search/config.json +0 -0
  785. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/music/get_hot_search/handler.py +0 -0
  786. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/music/get_lyrics/config.json +0 -0
  787. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/music/get_lyrics/handler.py +0 -0
  788. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/music/search_playlists/config.json +0 -0
  789. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/music/search_playlists/handler.py +0 -0
  790. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/music/search_songs/config.json +0 -0
  791. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/music/search_songs/handler.py +0 -0
  792. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/notices/README.md +0 -0
  793. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/notices/get/config.json +0 -0
  794. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/notices/get/handler.py +0 -0
  795. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/notices/list/config.json +0 -0
  796. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/notices/list/handler.py +0 -0
  797. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/notices/stats/config.json +0 -0
  798. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/notices/stats/handler.py +0 -0
  799. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/render/README.md +0 -0
  800. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/render/layout.py +0 -0
  801. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/render/render_html/config.json +0 -0
  802. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/render/render_html/handler.py +0 -0
  803. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/render/render_latex/config.json +0 -0
  804. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/render/render_latex/handler.py +0 -0
  805. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/render/render_markdown/config.json +0 -0
  806. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/skills/toolsets/render/render_markdown/handler.py +0 -0
  807. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/token_usage_storage.py +0 -0
  808. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/utils/__init__.py +0 -0
  809. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/utils/cache.py +0 -0
  810. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/utils/coerce.py +0 -0
  811. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/utils/cors.py +0 -0
  812. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/utils/easter_egg_calls.py +0 -0
  813. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/utils/fake_at.py +0 -0
  814. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/utils/file_lock.py +0 -0
  815. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/utils/group_metrics.py +0 -0
  816. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/utils/history.py +0 -0
  817. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/utils/logging.py +0 -0
  818. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/utils/member_utils.py +0 -0
  819. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/utils/message_reply.py +0 -0
  820. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/utils/message_targets.py +0 -0
  821. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/utils/message_turn.py +0 -0
  822. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/utils/message_utils.py +0 -0
  823. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/utils/qq_emoji.py +0 -0
  824. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/utils/queue_intervals.py +0 -0
  825. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/utils/recent_messages.py +0 -0
  826. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/utils/render_cache.py +0 -0
  827. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/utils/request_params.py +0 -0
  828. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/utils/resources.py +0 -0
  829. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/utils/scheduler.py +0 -0
  830. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/utils/self_update.py +0 -0
  831. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/utils/sender_helpers.py +0 -0
  832. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/utils/time_utils.py +0 -0
  833. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/utils/tool_calls.py +0 -0
  834. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/utils/xml.py +0 -0
  835. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/webui/__init__.py +0 -0
  836. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/webui/__main__.py +0 -0
  837. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/webui/routes/__init__.py +0 -0
  838. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/webui/routes/_index.py +0 -0
  839. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/webui/routes/_logs.py +0 -0
  840. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/webui/routes/_memes.py +0 -0
  841. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/webui/routes/_runtime.py +0 -0
  842. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/webui/routes/_shared.py +0 -0
  843. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/webui/routes/_system.py +0 -0
  844. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/webui/routes/_weixin.py +0 -0
  845. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/webui/static/css/.stylelintrc.json +0 -0
  846. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/webui/static/css/app.css +0 -0
  847. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/webui/static/css/base.css +0 -0
  848. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/webui/static/css/components.css +0 -0
  849. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/webui/static/css/highlight-github.min.css +0 -0
  850. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/webui/static/css/landing.css +0 -0
  851. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/webui/static/css/responsive.css +0 -0
  852. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/webui/static/css/style.css +0 -0
  853. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/webui/static/css/variables.css +0 -0
  854. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/webui/static/css/workflow.css +0 -0
  855. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/webui/static/favicon.svg +0 -0
  856. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/webui/static/js/auth.js +0 -0
  857. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/webui/static/js/bot.js +0 -0
  858. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/webui/static/js/i18n.js +0 -0
  859. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/webui/static/js/logs.js +0 -0
  860. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/webui/static/js/state.js +0 -0
  861. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/webui/static/js/ui.js +0 -0
  862. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/webui/static/js/vendor/highlight.min.js +0 -0
  863. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/webui/static/js/vendor/highlightjs.LICENSE +0 -0
  864. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/webui/static/js/vendor/marked.min.js +0 -0
  865. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/webui/static/js/workflow-canvas.js +0 -0
  866. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/webui/static/js/workflow-graph.js +0 -0
  867. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/webui/templates/index.html +0 -0
  868. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/webui/utils/__init__.py +0 -0
  869. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/webui/utils/comment.py +0 -0
  870. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/webui/utils/toml_render.py +0 -0
  871. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/weixin/__init__.py +0 -0
  872. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/weixin/audio.py +0 -0
  873. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/weixin/models.py +0 -0
  874. {undefined_bot-3.18.4 → undefined_bot-3.18.5}/src/Undefined/weixin/store.py +0 -0
@@ -886,6 +886,8 @@ description: 从 PDF 文件中提取文本和表格,填写表单。当用户
886
886
 
887
887
  微信接入由主进程独立管理,不依赖 OneBot 是否在线。`WeixinService` 先校验帐号与 peer,再把已绑定来源映射为逻辑 QQ 私聊交给 `MessageHandler`;未知来源在写历史或调用 AI 之前进入隔离存储。`DeliveryAddress` 将逻辑身份与物理通道分离:`qq:<id>` 和 `wechat:<id>` 可共享同一个用户历史、认知记忆与权限,但发送器、消息合并 scope 和 transport 元数据保持通道隔离。自动化同样持久化规范 `address`,旧 `target_type + target_id` 在加载时转换为 `group:` 或 `qq:` 地址。
888
888
 
889
+ OneBot 消息处理任务由客户端跨连接跟踪。网络断线只结束接收循环、通知未完成的 API 请求连接失败,不等待媒体下载等处理任务即可重连;已有处理任务继续运行。主动断开、停止或取消连接任务时,会取消并等待这些处理任务收尾,连接建立或重连等待阶段收到取消也会执行同样的清理,避免后台任务遗留。
890
+
889
891
  ### "车站-列车" 队列模型
890
892
 
891
893
  针对高并发消息处理,Undefined 实现了全新的 **ModelQueue** 调度机制:
@@ -1,3 +1,22 @@
1
+ ## v3.18.5 会话恢复、消息投递与并发持久化修复
2
+
3
+ 本版本集中修复聊天续接、消息发送和后台任务在切换会话、取消、断线、重启及写入失败时的状态错乱:保留已经完成的投递与提交,避免重复回复、旧响应覆盖新操作,以及界面显示成功但数据尚未保存的问题。
4
+
5
+ - 聊天恢复与历史一致性:WebChat 只有在任务收尾、历史落盘并释放会话占用后才确认完成,创建任务失败会撤销占用,删除会话与接收新任务按顺序处理。完整任务快照保留正文、工具调用与嵌套 Agent 时间线,Chat 客户端修复断线续接、旧版事件重放和分页恢复;离线期间已经完成的会话也会刷新,旧连接、旧会话和旧请求的迟到结果不会覆盖当前状态。
6
+ - WebUI 与客户端交互:修复切换会话后发送归属错误、旧轮询重复追加正文、迟到历史清空刚发送的消息,以及发送失败覆盖后续草稿的问题。保存连接配置时暂停请求,将未完成上传标记失败并忽略迟到结果,旧缓存迁移失败保留原数据;日志、工作流、表情包编辑和微信登录弹窗隔离各自请求,刷新与翻页保留未保存的编辑。恢复配置失败会保留表单并显示错误,不再误报恢复成功;登录凭据刷新串行执行,避免并发刷新相互失效。
7
+ - 消息投递不再被后续故障误判:微信按每次服务端确认及时记录已发送状态,支持展开嵌套转发;历史、附件登记或使用统计失败不会把已送达内容当作未发送。分片或批量发送已有部分成功、或投递结果无法确认时,微信、抖音、JM 等业务降级不再重发整条内容;仍保留对明确未投递内容的降级。令牌失效、会话暂停、配置错误及明确的连接前失败保留原异常,不再误标为可能送达;认证问题不触发拆分消息的结构降级。微信帐号变更与客户端启停串行,OneBot 重连不再等待消息处理任务阻塞;arXiv 去重按实际平台与投递地址隔离。
8
+ - 配置保存与热更新:整体保存、增量修改、恢复、模板同步和密码更新共用原子写入顺序,同一时刻的备份不会互相覆盖;取消请求会等已开始的写入与必要更新完成。热更新失败可以重试,监听器重启会补读停止窗口内的修改,连续调整轮询间隔不会留下多个监听任务或继续使用旧间隔。内存构建配置不再意外读取本地文件,损坏的 TOML 即使使用 `strict=False` 也会明确报错。
9
+ - 停止与取消:停止 Bot 先关闭新任务入口,等待已接收的回复、后台任务和持久化收尾,再关闭模型队列与消息通道。新增 `[webui].stop_timeout_seconds`(环境变量 `WEBUI_STOP_TIMEOUT_SECONDS`),**默认 `0` 表示等待自然结束,正整数才会在对应秒数后强制终止**;停止按钮、关闭 WebUI 和更新前停止共用此规则。取消模型请求会同步清理排队及重试任务,普通群聊队列裁剪保留已启动调用所依赖的子请求。新增 `[core].group_llm_queue_max_pending`(默认 `128`,支持热更新),每模型普通群聊 LLM 等待队列满时明确拒绝新请求并清理其等待状态,保留已接收任务与重试;这是排队准入限制,不限制在途调用或总内存,过载时普通自动回复可能结束而不发送消息。
10
+ - 连续消息与工具状态:已经回复完成的投机批次及时结束,后续消息开启新批次,避免把旧输入再次回复;批次取消只作用于对应任务,不会误伤独立的 @ 或拍一拍回复。`task_progress` 在多轮工具调用间共享,技能热重载保留在途统计;多模态分析缓存使用完整媒体来源、类型与补充指令,避免长链接或 data URL 前缀相同而串用结果。
11
+ - 记忆与知识库:长期记忆和会话数据在落盘成功后才发布新状态,取消会等待已开始的提交,写入失败不会让内存与磁盘各自保留不同版本。知识文件替换先完成新内容读取、嵌入和写入,再清理旧索引;读取、嵌入或新块写入失败时保留旧索引供重试。侧写昵称刷新与史官跳过合并时也会补齐检索索引,索引失败不再提前确认完成;记忆时间筛选统一比较含时区与不含时区的时间。
12
+ - 表情包生命周期:重分析不会覆盖期间的人工编辑、恢复已删除内容或影响同 UID 重新入库的记录;停用、删除与附件缓存失效保持一致,搜索不会返回已停用条目。使用统计失败保留发送成功结果,容量清理跳过刚置顶或修改的候选,删除失败保留可重试记录;异常退出遗留的处理任务会在后续轮询中恢复,正在执行的任务不会被重复调度。
13
+ - 自动化流程:持久化按顺序完成,取消不会让旧快照覆盖新状态;嵌套并行循环只合并本轮修改的变量,避免覆盖同级节点刚产生的输出。`loop.times.count=0` 正确跳过循环,旧存档的 `count:null` 兼容默认次数;新建、更新与启用任务仍严格拒绝负数、布尔值、字符串及 `null`。
14
+ - 文件与附件:统一解析本地 `file://` URI,保留中文、空格及原始路径中的百分号;CQ 参数转义与解码保留链接里的逗号、方括号和实体文本。HTTP 压缩响应按传输字节校验完整性、按解压后大小执行容量限制。JM、Bilibili、arXiv 下载及 Python 执行目录在取消后等待后台文件操作结束再清理;JM 配置的会话目录生效,畸形输入和单章异常不再拖垮整次处理。侧写路径与归档解压目标限制在各自目录内,缓存清理拒绝符号链接目录,TAR 解压启用安全过滤。
15
+ - 原生显示与连接:附件下载以独占方式创建文件,避免覆盖同名文件;图片仍显示时保留其 Blob,代码高亮失败回落纯文本,生产构建拆分体积并保留完整语言支持。Console 迁移旧连接时保留协议与 IPv6 地址,Android 生命周期监听即使延迟注册也会在退出后释放。恢复应用时保留刷新途中刚获确认的新任务,同一任务不会重复建立在途 SSE 订阅;迟到旧句柄会关闭,避免覆盖当前订阅或在取消后泄漏。
16
+ - 部署与维护:部署向导中断不再继续写配置,备份名称不冲突,IPv6 服务地址正确加括号;容器模式为 Python 解释器映射宿主 Docker 可见的共享目录,LxMusic 配置变化会触发容器重建。`restore_profile.py restore` 现在同时恢复侧写并同步检索正文与向量,失败后可用 `sync` 补齐,**执行前须停止机器人及其他写入进程**。重嵌入的 `--dry-run` 在临时副本上读取,不修改源向量库,但仍会调用嵌入 API;侧写恢复的 `--dry-run` 不写盘、不调用模型。版本脚本支持失败后重跑,补齐全部版本文件与锁文件,并将此前已修改的版本目标纳入提交。
17
+
18
+ ---
19
+
1
20
  ## v3.18.4 添加宣传片链接
2
21
 
3
22
  在 README.md 中添加了宣传片链接。
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: Undefined-bot
3
- Version: 3.18.4
3
+ Version: 3.18.5
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
@@ -28,6 +28,9 @@ context_recent_messages_limit = 20
28
28
  # zh: 单次 LLM 请求失败时最大静默重试次数(0=不重试,默认2)。失败的请求会回到原队列的第 2 个位置。
29
29
  # en: Max silent retries for a single failed LLM request (0=no retry, default 2). Failed requests are reinserted at position 2 of their original queue lane.
30
30
  ai_request_max_retries = 2
31
+ # zh: 每模型普通群聊 LLM 等待队列的新请求准入上限(正整数,默认128,可热更新)。满时拒绝新请求;保留已接收请求和重试,不限制在途调用。
32
+ # en: Per-model admission limit for new ordinary-group queued LLM calls (positive integer, default 128, hot reload). Rejects new calls when full; retains accepted calls and retries, and does not cap in-flight calls.
33
+ group_llm_queue_max_pending = 128
31
34
  # zh: 模型返回纯文本但未调用 send_message/end 等工具时的最大纠正重试次数(0=不重试,默认3)。
32
35
  # en: Max correction retries when the model returns plain text without tool calls (0=no retry, default 3).
33
36
  missing_tool_call_retries = 3
@@ -1611,8 +1614,8 @@ request_timeout = 20.0
1611
1614
  # zh: 图片下载超时(秒)。<=0 回退 60,>600 截断到 600。
1612
1615
  # en: Image download timeout (seconds). <=0 falls back to 60, >600 is clamped to 600.
1613
1616
  image_timeout = 60.0
1614
- # zh: jmcpy 的配置目录(登录态与会话文件所在目录,可指向已登录的 JMCPY_HOME)。留空使用平台默认目录。
1615
- # en: jmcpy config directory (login session files; point it at an existing JMCPY_HOME). Empty uses the platform default directory.
1617
+ # zh: jmcpy 的配置目录(登录态与会话文件所在目录)。显式值优先;留空读取 JMCPY_HOME,两者均为空时使用平台默认目录。
1618
+ # en: jmcpy config directory (login session files). An explicit value takes precedence; empty falls back to JMCPY_HOME, then the platform default directory.
1616
1619
  session_dir = ""
1617
1620
 
1618
1621
  # zh: Code Delivery Agent 配置(代码交付 Agent,在 Docker 容器中编写代码并打包上传)。
@@ -1685,6 +1688,9 @@ autostart_bot = false
1685
1688
  # zh: 每次打开 WebUI 时是否在后台检查 GitHub Release 更新。
1686
1689
  # en: Check GitHub Releases for updates in the background whenever WebUI is opened.
1687
1690
  check_updates = true
1691
+ # zh: 停止机器人时等待优雅收尾的秒数;0 等待自然结束,正整数超时后强制终止。
1692
+ # en: Graceful bot shutdown timeout in seconds; 0 waits until completion, positive values force termination after the deadline.
1693
+ stop_timeout_seconds = 0
1688
1694
 
1689
1695
  # zh: 微信 ClawBot/iLink 私聊接入。凭据与游标仅写入 state_dir,不写入本配置。
1690
1696
  # zh: 关闭时不会创建网络连接;二维码登录只能从管理界面显式发起。
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "Undefined-bot"
3
- version = "3.18.4"
3
+ version = "3.18.5"
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 = [
@@ -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.18.4"
27
+ __version__: str = "3.18.5"
28
28
 
29
29
  # symbol -> (module_path, attribute_name);首次访问时才 importlib 加载
30
30
  _LAZY_IMPORTS: dict[str, tuple[str, str]] = {
@@ -316,6 +316,7 @@ class ClientAskLoopMixin(ClientQueueMixin):
316
316
  # 注入常用资源(用于工具执行)
317
317
  tool_context.setdefault("ai_client", self)
318
318
  tool_context.setdefault("runtime_config", self._get_runtime_config())
319
+ tool_context.setdefault("_task_progress", [])
319
320
  if not isinstance(
320
321
  tool_context.get(MUSIC_TRACK_STORE_CONTEXT_KEY),
321
322
  MusicTrackReferenceStore,
@@ -3,6 +3,7 @@
3
3
  from __future__ import annotations
4
4
 
5
5
  import asyncio
6
+ from dataclasses import dataclass
6
7
  import logging
7
8
  from typing import Any
8
9
  from uuid import uuid4
@@ -29,6 +30,19 @@ from Undefined.ai.client.setup import ClientSetupMixin
29
30
  logger = logging.getLogger(__name__)
30
31
 
31
32
 
33
+ @dataclass(slots=True)
34
+ class QueuedLLMCallState:
35
+ """Share caller cancellation with queued retries and the active model task."""
36
+
37
+ cancelled: bool = False
38
+ task: asyncio.Task[dict[str, Any]] | None = None
39
+
40
+ def cancel(self) -> None:
41
+ self.cancelled = True
42
+ if self.task is not None and not self.task.done():
43
+ self.task.cancel()
44
+
45
+
32
46
  class ClientQueueMixin(ClientSetupMixin):
33
47
  """统一队列 LLM 调用与会话摘要投递。"""
34
48
 
@@ -107,6 +121,7 @@ class ClientQueueMixin(ClientSetupMixin):
107
121
  )
108
122
  request_id = uuid4().hex
109
123
  event: asyncio.Event = asyncio.Event()
124
+ call_state = QueuedLLMCallState()
110
125
  # 挂起表:QueueManager 回调 set_llm_call_result 时唤醒等待方
111
126
  self._pending_llm_calls[request_id] = (event, None)
112
127
  model_name = getattr(model_config, "model_name", "default")
@@ -121,6 +136,7 @@ class ClientQueueMixin(ClientSetupMixin):
121
136
  "max_tokens": effective_max_tokens,
122
137
  "transport_state": transport_state,
123
138
  "skip_prefetch_tools": skip_prefetch_tools,
139
+ "_llm_call_state": call_state,
124
140
  }
125
141
  ctx = RequestContext.current()
126
142
  if ctx is not None:
@@ -168,6 +184,7 @@ class ClientQueueMixin(ClientSetupMixin):
168
184
  )
169
185
  raise
170
186
  finally:
187
+ call_state.cancel()
171
188
  entry = self._pending_llm_calls.pop(request_id, None)
172
189
  _, result = entry if entry is not None else (None, None)
173
190
  if isinstance(result, Exception):
@@ -329,7 +329,7 @@ class MultimodalAnalyzer:
329
329
  ) -> dict[str, str]:
330
330
  """分析媒体文件。
331
331
 
332
- 始终调用视觉模型进行真实分析,不会因历史缓存而跳过。
332
+ 相同媒体类型、完整来源与补充指令复用本次进程内的分析结果。
333
333
 
334
334
  Args:
335
335
  media_url: 媒体文件 URL 或本地路径
@@ -350,7 +350,11 @@ class MultimodalAnalyzer:
350
350
  len(prompt_extra),
351
351
  )
352
352
 
353
- cache_key = f"{detected_type}:{media_url[:100]}:{prompt_extra}"
353
+ cache_key = hashlib.sha256(
354
+ json.dumps(
355
+ [detected_type, media_url, prompt_extra], ensure_ascii=False
356
+ ).encode("utf-8")
357
+ ).hexdigest()
354
358
  if cache_key in self._cache:
355
359
  logger.debug("[媒体分析] 命中缓存: key=%s", cache_key[:120])
356
360
  return self._cache[cache_key]
@@ -8,7 +8,7 @@ import json
8
8
  import logging
9
9
  from contextlib import suppress
10
10
  from dataclasses import dataclass
11
- from datetime import datetime
11
+ from datetime import datetime, timezone
12
12
  from typing import Any, Awaitable, Callable
13
13
  from urllib.parse import urlsplit
14
14
 
@@ -191,6 +191,7 @@ def _optional_query_param(request: web.Request, key: str) -> str | None:
191
191
 
192
192
 
193
193
  def _parse_query_time(value: str | None) -> datetime | None:
194
+ """统一为 UTC;旧记录及无时区查询沿用系统本地时间含义。"""
194
195
  text = str(value or "").strip()
195
196
  if not text:
196
197
  return None
@@ -198,8 +199,8 @@ def _parse_query_time(value: str | None) -> datetime | None:
198
199
  if "T" in text:
199
200
  candidates.append(text.replace("T", " "))
200
201
  for candidate in candidates:
201
- with suppress(ValueError):
202
- return datetime.fromisoformat(candidate)
202
+ with suppress(ValueError, OverflowError, OSError):
203
+ return datetime.fromisoformat(candidate).astimezone(timezone.utc)
203
204
  return None
204
205
 
205
206
 
@@ -44,6 +44,8 @@ from .routes import (
44
44
 
45
45
  logger = logging.getLogger(__name__)
46
46
 
47
+ RUNTIME_API_CONTEXT_APP_KEY = web.AppKey("runtime_api_context", RuntimeAPIContext)
48
+
47
49
 
48
50
  class RuntimeAPIServer:
49
51
  def __init__(
@@ -60,6 +62,8 @@ class RuntimeAPIServer:
60
62
  self._runner: web.AppRunner | None = None
61
63
  self._sites: list[web.TCPSite] = []
62
64
  self._background_tasks: set[asyncio.Task[Any]] = set()
65
+ self._request_tasks: set[asyncio.Task[Any]] = set()
66
+ self._stopping = False
63
67
  self._naga_state = NagaState()
64
68
  self._chat_job_manager = chat.ChatJobManager(context)
65
69
  transport = getattr(context.onebot, "file_transport", None)
@@ -94,10 +98,22 @@ class RuntimeAPIServer:
94
98
  cfg = self._context.config_getter()
95
99
  logger.info("[RuntimeAPI] 已启动: %s", cfg.api.display_url)
96
100
 
101
+ def begin_shutdown(self) -> None:
102
+ """关闭普通 API 接入,但保留待发 OneBot 文件的 HTTP 服务。"""
103
+ self._stopping = True
104
+ self._chat_job_manager.begin_shutdown()
105
+
106
+ async def drain_requests(self) -> None:
107
+ await self._chat_job_manager.stop()
108
+ tasks = self._request_tasks - {asyncio.current_task()}
109
+ if tasks:
110
+ await asyncio.gather(*tasks, return_exceptions=True)
111
+
97
112
  async def stop(self) -> None:
113
+ self.begin_shutdown()
114
+ await self.drain_requests()
98
115
  if self._file_store is not None:
99
116
  self._file_store.unavailable()
100
- await self._chat_job_manager.stop()
101
117
 
102
118
  for task in self._background_tasks:
103
119
  task.cancel()
@@ -140,12 +156,24 @@ class RuntimeAPIServer:
140
156
  response = _json_error("Unauthorized", status=401)
141
157
  _apply_cors_headers(request, response)
142
158
  return response
143
- response = await handler(request)
159
+ is_file_request = onebot_files.is_file_request(request)
160
+ if self._stopping and not is_file_request:
161
+ response = _json_error("Runtime is shutting down", status=503)
162
+ _apply_cors_headers(request, response)
163
+ return response
164
+ task = asyncio.current_task()
165
+ if task is not None and not is_file_request:
166
+ self._request_tasks.add(task)
167
+ try:
168
+ response = await handler(request)
169
+ finally:
170
+ if task is not None:
171
+ self._request_tasks.discard(task)
144
172
  _apply_cors_headers(request, response)
145
173
  return response
146
174
 
147
175
  app = web.Application(middlewares=[_auth_middleware])
148
- app["runtime_api_context"] = self._context
176
+ app[RUNTIME_API_CONTEXT_APP_KEY] = self._context
149
177
  app.add_routes(
150
178
  [
151
179
  web.get("/health", self._health_handler),
@@ -260,6 +260,14 @@ class ChatJob:
260
260
  now = time.time()
261
261
  elapsed_ms = _job_elapsed_ms(self, now)
262
262
  stage_elapsed_ms = _stage_elapsed_ms(self, now)
263
+ timeline_events = (
264
+ _finalize_webchat_history_events(self)
265
+ if self.status in {"done", "error", "cancelled"}
266
+ else [
267
+ {"seq": item.seq, "event": item.event, "payload": dict(item.payload)}
268
+ for item in self.webchat_events
269
+ ]
270
+ )
263
271
  return {
264
272
  "job_id": self.job_id,
265
273
  "conversation_id": self.conversation_id,
@@ -280,7 +288,9 @@ class ChatJob:
280
288
  "messages": list(self.outputs),
281
289
  "current_agent_stages": self.current_agent_stage_snapshots(now),
282
290
  "current_tool_calls": self.current_tool_call_snapshots(now),
283
- "history_finalized": self.history_finalized,
291
+ "current_timeline": _build_webchat_timeline(timeline_events),
292
+ # 对外完成信号与新任务/历史修改的放行门槛一致。
293
+ "history_finalized": self.history_finalized and self.done.is_set(),
284
294
  "waiting_input": None,
285
295
  }
286
296
 
@@ -378,14 +388,23 @@ class ChatJob:
378
388
  return payloads
379
389
 
380
390
 
391
+ class ChatJobManagerClosingError(RuntimeError):
392
+ """Runtime 正在收尾,不能接受新的聊天任务。"""
393
+
394
+
381
395
  class ChatJobManager:
382
396
  def __init__(self, ctx: RuntimeAPIContext) -> None:
383
397
  self._ctx = ctx
384
398
  self._jobs: dict[str, ChatJob] = {}
385
399
  self._lock = asyncio.Lock()
400
+ self._closing = False
386
401
  self._title_schedule_lock = asyncio.Lock()
387
402
  self.conversation_store = WebChatConversationStore()
388
403
 
404
+ def begin_shutdown(self) -> None:
405
+ """立即关闭任务创建入口,已有任务由 stop 收尾。"""
406
+ self._closing = True
407
+
389
408
  async def create_job(
390
409
  self,
391
410
  text: str,
@@ -396,68 +415,84 @@ class ChatJobManager:
396
415
  pre_record_user_history: bool = False,
397
416
  reuse_previous_user_history: bool = False,
398
417
  ) -> ChatJob:
418
+ if self._closing:
419
+ raise ChatJobManagerClosingError("Chat service is stopping")
399
420
  await self.conversation_store.ensure_ready(self._ctx.history_manager)
400
421
  requested_conversation_id = str(conversation_id or "").strip()
401
422
  resolved_conversation_id = requested_conversation_id or _DEFAULT_CONVERSATION_ID
402
- conversation = await self.conversation_store.get_conversation(
403
- resolved_conversation_id
404
- )
405
- if conversation is None:
406
- if requested_conversation_id:
407
- raise KeyError(resolved_conversation_id)
408
- conversation = await self.conversation_store.ensure_default_conversation()
409
- resolved_conversation_id = str(conversation["id"])
410
- now = time.time()
411
- job = ChatJob(
412
- job_id=uuid4().hex,
413
- text=text,
414
- created_at=now,
415
- updated_at=now,
416
- conversation_id=resolved_conversation_id,
417
- user_history_attachments=list(user_history_attachments or []),
418
- user_history_references=list(user_history_references or []),
419
- user_history_pre_recorded=pre_record_user_history
420
- or reuse_previous_user_history,
421
- )
422
423
  async with self._lock:
424
+ if self._closing:
425
+ raise ChatJobManagerClosingError("Chat service is stopping")
426
+ # 会话存在性检查与 job 接受必须和删除共用同一串行边界。
427
+ # 历史写入也在锁内,其他会话需等待写入完成,确保 stop/删除不会漏掉在途创建。
428
+ conversation = await self.conversation_store.get_conversation(
429
+ resolved_conversation_id
430
+ )
431
+ if conversation is None:
432
+ if requested_conversation_id:
433
+ raise KeyError(resolved_conversation_id)
434
+ conversation = (
435
+ await self.conversation_store.ensure_default_conversation()
436
+ )
437
+ resolved_conversation_id = str(conversation["id"])
423
438
  if any(
424
439
  self._job_blocks_history_mutation(existing)
425
440
  for existing in self._jobs.values()
426
441
  if existing.conversation_id == resolved_conversation_id
427
442
  ):
428
443
  raise RuntimeError("Chat job is still running")
429
- self._jobs[job.job_id] = job
430
- if pre_record_user_history:
431
- await self.conversation_store.append_message(
432
- resolved_conversation_id,
433
- role="user",
434
- text_content=text,
435
- display_name=_VIRTUAL_USER_NAME,
436
- user_name=_VIRTUAL_USER_NAME,
437
- attachments=job.user_history_attachments or None,
438
- references=job.user_history_references or None,
444
+ now = time.time()
445
+ job = ChatJob(
446
+ job_id=uuid4().hex,
447
+ text=text,
448
+ created_at=now,
449
+ updated_at=now,
450
+ conversation_id=resolved_conversation_id,
451
+ user_history_attachments=list(user_history_attachments or []),
452
+ user_history_references=list(user_history_references or []),
453
+ user_history_pre_recorded=pre_record_user_history
454
+ or reuse_previous_user_history,
439
455
  )
456
+ self._jobs[job.job_id] = job
457
+ try:
458
+ # stop 必须等创建阶段收敛后再快照,避免漏掉稍后才启动的 task。
459
+ if pre_record_user_history:
460
+ await self.conversation_store.append_message(
461
+ resolved_conversation_id,
462
+ role="user",
463
+ text_content=text,
464
+ display_name=_VIRTUAL_USER_NAME,
465
+ user_name=_VIRTUAL_USER_NAME,
466
+ attachments=job.user_history_attachments or None,
467
+ references=job.user_history_references or None,
468
+ )
469
+ await self._append_event(
470
+ job,
471
+ "meta",
472
+ {
473
+ "job_id": job.job_id,
474
+ "conversation_id": job.conversation_id,
475
+ "virtual_user_id": _VIRTUAL_USER_ID,
476
+ "permission": "superadmin",
477
+ },
478
+ )
479
+ await self._append_stage(job, "received")
480
+ job.task = asyncio.create_task(
481
+ self._run_job(job), name=f"webchat:{job.job_id}"
482
+ )
483
+ except BaseException:
484
+ self._jobs.pop(job.job_id, None)
485
+ raise
440
486
  logger.info(
441
487
  "[RuntimeAPI][WebChat] 创建 job: job_id=%s conversation_id=%s text_len=%s",
442
488
  job.job_id,
443
489
  job.conversation_id,
444
490
  len(text),
445
491
  )
446
- await self._append_event(
447
- job,
448
- "meta",
449
- {
450
- "job_id": job.job_id,
451
- "conversation_id": job.conversation_id,
452
- "virtual_user_id": _VIRTUAL_USER_ID,
453
- "permission": "superadmin",
454
- },
455
- )
456
- await self._append_stage(job, "received")
457
- job.task = asyncio.create_task(self._run_job(job), name=f"webchat:{job.job_id}")
458
492
  return job
459
493
 
460
494
  async def stop(self) -> None:
495
+ self.begin_shutdown()
461
496
  async with self._lock:
462
497
  jobs = list(self._jobs.values())
463
498
  for job in jobs:
@@ -565,6 +600,18 @@ class ChatJobManager:
565
600
  or 0
566
601
  )
567
602
 
603
+ async def delete_conversation_when_idle(self, conversation_id: str) -> bool | None:
604
+ """删除空闲会话;None 表示会话仍被已接受的任务占用。"""
605
+ await self.conversation_store.ensure_ready(self._ctx.history_manager)
606
+ async with self._lock:
607
+ if any(
608
+ self._job_blocks_history_mutation(job)
609
+ and job.conversation_id == conversation_id
610
+ for job in self._jobs.values()
611
+ ):
612
+ return None
613
+ return await self.conversation_store.delete_conversation(conversation_id)
614
+
568
615
  async def cancel_job(self, job_id: str) -> ChatJob | None:
569
616
  job = await self.get_job(job_id)
570
617
  if job is None:
@@ -926,9 +973,8 @@ class ChatJobManager:
926
973
  if len(job.events) > _CHAT_JOB_EVENT_BUFFER_LIMIT:
927
974
  job.events = job.events[-_CHAT_JOB_EVENT_BUFFER_LIMIT:]
928
975
  if item.event in _WEBCHAT_HISTORY_EVENTS:
976
+ # 展示快照与历史需要完整内容;只有 SSE 重放缓冲采用固定上限。
929
977
  job.webchat_events.append(item)
930
- if len(job.webchat_events) > _CHAT_JOB_EVENT_BUFFER_LIMIT:
931
- job.webchat_events = job.webchat_events[-_CHAT_JOB_EVENT_BUFFER_LIMIT:]
932
978
  job.changed.notify_all()
933
979
  return item
934
980
 
@@ -2810,11 +2856,10 @@ async def chat_conversation_delete_handler(
2810
2856
  job_manager: ChatJobManager,
2811
2857
  request: web.Request,
2812
2858
  ) -> Response:
2813
- await job_manager.conversation_store.ensure_ready(ctx.history_manager)
2814
2859
  conversation_id = str(request.match_info.get("conversation_id", "") or "").strip()
2815
- if await job_manager.has_running_job(conversation_id):
2860
+ existed = await job_manager.delete_conversation_when_idle(conversation_id)
2861
+ if existed is None:
2816
2862
  return _json_error("Chat job is still running", status=409)
2817
- existed = await job_manager.conversation_store.delete_conversation(conversation_id)
2818
2863
  if not existed:
2819
2864
  return _json_error("Conversation not found", status=404)
2820
2865
  logger.info(
@@ -2955,6 +3000,8 @@ async def chat_handler(
2955
3000
  job = await job_manager.create_job(text, conversation_id)
2956
3001
  except KeyError:
2957
3002
  return _json_error("Conversation not found", status=404)
3003
+ except ChatJobManagerClosingError as exc:
3004
+ return _json_error(str(exc), status=503)
2958
3005
  except RuntimeError:
2959
3006
  return _json_error("Chat job is still running", status=409)
2960
3007
  try:
@@ -2988,6 +3035,8 @@ async def chat_handler(
2988
3035
  job = await job_manager.create_job(text, conversation_id)
2989
3036
  except KeyError:
2990
3037
  return _json_error("Conversation not found", status=404)
3038
+ except ChatJobManagerClosingError as exc:
3039
+ return _json_error(str(exc), status=503)
2991
3040
  except RuntimeError:
2992
3041
  return _json_error("Chat job is still running", status=409)
2993
3042
  logger.info(
@@ -3105,6 +3154,8 @@ async def chat_job_create_handler(
3105
3154
  return _json_error("Attachment not found", status=404)
3106
3155
  except ValueError as exc:
3107
3156
  return _json_error(str(exc), status=400)
3157
+ except ChatJobManagerClosingError as exc:
3158
+ return _json_error(str(exc), status=503)
3108
3159
  except RuntimeError:
3109
3160
  return _json_error("Chat job is still running", status=409)
3110
3161
  logger.info(
@@ -75,7 +75,10 @@ async def cognitive_profile_handler(
75
75
  if not entity_type or not entity_id:
76
76
  return _json_error("entity_type/entity_id are required", status=400)
77
77
 
78
- profile = await cognitive_service.get_profile(entity_type, entity_id)
78
+ try:
79
+ profile = await cognitive_service.get_profile(entity_type, entity_id)
80
+ except ValueError as exc:
81
+ return _json_error(str(exc), status=400)
79
82
  return web.json_response(
80
83
  {
81
84
  "entity_type": entity_type,
@@ -104,7 +104,10 @@ async def memory_create_handler(
104
104
  fact = str(body.get("fact", "") or "").strip()
105
105
  if not fact:
106
106
  return _json_error("fact must not be empty", status=400)
107
- new_uuid = await memory_storage.add(fact)
107
+ try:
108
+ new_uuid = await memory_storage.add(fact)
109
+ except OSError:
110
+ return _json_error("Failed to persist memory", status=500)
108
111
  if new_uuid is None:
109
112
  return _json_error("Failed to create memory", status=500)
110
113
  existing = [m for m in memory_storage.get_all() if m.uuid == new_uuid]
@@ -135,7 +138,10 @@ async def memory_update_handler(
135
138
  fact = str(body.get("fact", "") or "").strip()
136
139
  if not fact:
137
140
  return _json_error("fact must not be empty", status=400)
138
- ok = await memory_storage.update(target_uuid, fact)
141
+ try:
142
+ ok = await memory_storage.update(target_uuid, fact)
143
+ except OSError:
144
+ return _json_error("Failed to persist memory", status=500)
139
145
  if not ok:
140
146
  return _json_error(f"Memory {target_uuid} not found", status=404)
141
147
  return web.json_response({"uuid": target_uuid, "fact": fact, "updated": True})
@@ -150,7 +156,10 @@ async def memory_delete_handler(
150
156
  target_uuid = str(request.match_info.get("uuid", "")).strip()
151
157
  if not target_uuid:
152
158
  return _json_error("uuid is required", status=400)
153
- ok = await memory_storage.delete(target_uuid)
159
+ try:
160
+ ok = await memory_storage.delete(target_uuid)
161
+ except OSError:
162
+ return _json_error("Failed to persist memory", status=500)
154
163
  if not ok:
155
164
  return _json_error(f"Memory {target_uuid} not found", status=404)
156
165
  return web.json_response({"uuid": target_uuid, "deleted": True})