Undefined-bot 3.18.0__tar.gz → 3.18.2__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 (869) hide show
  1. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/ARCHITECTURE.md +1 -1
  2. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/CHANGELOG.md +22 -0
  3. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/PKG-INFO +2 -2
  4. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/README.md +1 -1
  5. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/pyproject.toml +1 -1
  6. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/__init__.py +1 -1
  7. undefined_bot-3.18.2/src/Undefined/jm/searcher.py +278 -0
  8. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/jm/sender.py +66 -61
  9. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/agents/README.md +2 -2
  10. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/agents/info_agent/config.json +1 -1
  11. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/agents/info_agent/intro.md +2 -1
  12. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/agents/info_agent/prompt.md +2 -1
  13. undefined_bot-3.18.2/src/Undefined/skills/agents/info_agent/tools/jm_search/config.json +55 -0
  14. undefined_bot-3.18.2/src/Undefined/skills/agents/info_agent/tools/jm_search/handler.py +193 -0
  15. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/shared.py +47 -2
  16. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/tools/jm_book/README.md +3 -3
  17. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/tools/jm_book/config.json +2 -2
  18. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/.gitignore +0 -0
  19. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/LICENSE +0 -0
  20. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/config/README.md +0 -0
  21. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/config/mcp.json.example +0 -0
  22. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/config.toml.example +0 -0
  23. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/img/undefined-9527.png +0 -0
  24. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/img/xlwy.jpg +0 -0
  25. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/res/IMPORTANT/each.md +0 -0
  26. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/res/README.md +0 -0
  27. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/res/prompts/agent_self_intro.txt +0 -0
  28. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/res/prompts/analyze_multimodal.txt +0 -0
  29. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/res/prompts/describe_image.txt +0 -0
  30. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/res/prompts/describe_meme_image.txt +0 -0
  31. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/res/prompts/generate_title.txt +0 -0
  32. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/res/prompts/historian_profile_merge.md +0 -0
  33. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/res/prompts/historian_rewrite.md +0 -0
  34. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/res/prompts/image_gen_moderation.txt +0 -0
  35. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/res/prompts/injection_detector.txt +0 -0
  36. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/res/prompts/injection_response_agent.txt +0 -0
  37. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/res/prompts/judge_meme_image.txt +0 -0
  38. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/res/prompts/merge_message_summaries.txt +0 -0
  39. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/res/prompts/merge_summaries.txt +0 -0
  40. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/res/prompts/message_summary.txt +0 -0
  41. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/res/prompts/naga_message_moderation.txt +0 -0
  42. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/res/prompts/stats_analysis.txt +0 -0
  43. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/res/prompts/summarize.txt +0 -0
  44. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/res/prompts/undefined.xml +0 -0
  45. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/res/prompts/undefined_nagaagent.xml +0 -0
  46. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/README.md +0 -0
  47. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/README.md +0 -0
  48. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/__main__.py +0 -0
  49. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/ai/__init__.py +0 -0
  50. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/ai/client/__init__.py +0 -0
  51. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/ai/client/ask_loop.py +0 -0
  52. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/ai/client/queue.py +0 -0
  53. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/ai/client/setup.py +0 -0
  54. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/ai/crawl4ai_support.py +0 -0
  55. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/ai/http.py +0 -0
  56. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/ai/llm/__init__.py +0 -0
  57. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/ai/llm/requester.py +0 -0
  58. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/ai/llm/retry.py +0 -0
  59. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/ai/llm/sanitize.py +0 -0
  60. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/ai/llm/streaming.py +0 -0
  61. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/ai/llm/thinking.py +0 -0
  62. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/ai/llm/types.py +0 -0
  63. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/ai/model_selector.py +0 -0
  64. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/ai/multimodal/__init__.py +0 -0
  65. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/ai/multimodal/analyzer.py +0 -0
  66. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/ai/multimodal/constants.py +0 -0
  67. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/ai/multimodal/detection.py +0 -0
  68. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/ai/multimodal/parsing.py +0 -0
  69. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/ai/parsing.py +0 -0
  70. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/ai/prompts/__init__.py +0 -0
  71. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/ai/prompts/builder.py +0 -0
  72. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/ai/prompts/cognitive.py +0 -0
  73. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/ai/prompts/constants.py +0 -0
  74. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/ai/prompts/current_input.py +0 -0
  75. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/ai/prompts/file_includes.py +0 -0
  76. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/ai/prompts/system_context.py +0 -0
  77. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/ai/prompts/system_info.py +0 -0
  78. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/ai/queue_budget.py +0 -0
  79. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/ai/retrieval.py +0 -0
  80. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/ai/summaries.py +0 -0
  81. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/ai/tokens.py +0 -0
  82. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/ai/tool_search.py +0 -0
  83. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/ai/tooling.py +0 -0
  84. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/ai/transports/__init__.py +0 -0
  85. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/ai/transports/anthropic_transport.py +0 -0
  86. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/ai/transports/openai_transport.py +0 -0
  87. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/ai/transports/replay.py +0 -0
  88. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/api/__init__.py +0 -0
  89. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/api/_context.py +0 -0
  90. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/api/_helpers.py +0 -0
  91. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/api/_naga_state.py +0 -0
  92. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/api/_openapi.py +0 -0
  93. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/api/_probes.py +0 -0
  94. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/api/app.py +0 -0
  95. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/api/naga_store.py +0 -0
  96. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/api/routes/__init__.py +0 -0
  97. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/api/routes/automations.py +0 -0
  98. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/api/routes/chat.py +0 -0
  99. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/api/routes/cognitive.py +0 -0
  100. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/api/routes/commands.py +0 -0
  101. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/api/routes/health.py +0 -0
  102. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/api/routes/memes.py +0 -0
  103. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/api/routes/memory.py +0 -0
  104. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/api/routes/naga/__init__.py +0 -0
  105. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/api/routes/naga/auth.py +0 -0
  106. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/api/routes/naga/bind.py +0 -0
  107. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/api/routes/naga/send.py +0 -0
  108. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/api/routes/naga/unbind.py +0 -0
  109. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/api/routes/onebot_files.py +0 -0
  110. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/api/routes/schedules.py +0 -0
  111. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/api/routes/system.py +0 -0
  112. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/api/routes/tools.py +0 -0
  113. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/api/routes/weixin.py +0 -0
  114. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/api/webchat_store.py +0 -0
  115. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/arxiv/__init__.py +0 -0
  116. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/arxiv/client.py +0 -0
  117. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/arxiv/downloader.py +0 -0
  118. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/arxiv/models.py +0 -0
  119. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/arxiv/parser.py +0 -0
  120. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/arxiv/sender.py +0 -0
  121. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/attachments/__init__.py +0 -0
  122. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/attachments/forward_snapshot.py +0 -0
  123. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/attachments/models.py +0 -0
  124. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/attachments/registry.py +0 -0
  125. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/attachments/remote.py +0 -0
  126. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/attachments/render.py +0 -0
  127. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/attachments/segments.py +0 -0
  128. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/automations/__init__.py +0 -0
  129. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/automations/address.py +0 -0
  130. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/automations/catalog.py +0 -0
  131. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/automations/clock.py +0 -0
  132. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/automations/constants.py +0 -0
  133. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/automations/engine.py +0 -0
  134. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/automations/extract.py +0 -0
  135. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/automations/logutil.py +0 -0
  136. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/automations/match.py +0 -0
  137. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/automations/mentions.py +0 -0
  138. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/automations/migrate.py +0 -0
  139. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/automations/runner.py +0 -0
  140. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/automations/service.py +0 -0
  141. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/automations/short.py +0 -0
  142. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/automations/storage.py +0 -0
  143. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/automations/template.py +0 -0
  144. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/automations/triggers.py +0 -0
  145. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/automations/validate.py +0 -0
  146. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/bilibili/__init__.py +0 -0
  147. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/bilibili/api_client.py +0 -0
  148. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/bilibili/danmaku.py +0 -0
  149. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/bilibili/download_core.py +0 -0
  150. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/bilibili/downloader.py +0 -0
  151. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/bilibili/errors.py +0 -0
  152. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/bilibili/format.py +0 -0
  153. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/bilibili/models.py +0 -0
  154. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/bilibili/opus_parser.py +0 -0
  155. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/bilibili/opus_render.py +0 -0
  156. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/bilibili/opus_sender.py +0 -0
  157. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/bilibili/parser.py +0 -0
  158. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/bilibili/sender.py +0 -0
  159. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/bilibili/wbi.py +0 -0
  160. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/bilibili/wbi_request.py +0 -0
  161. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/changelog.py +0 -0
  162. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/cognitive/__init__.py +0 -0
  163. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/cognitive/chroma_scheduler.py +0 -0
  164. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/cognitive/historian/__init__.py +0 -0
  165. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/cognitive/historian/helpers.py +0 -0
  166. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/cognitive/historian/scheduling.py +0 -0
  167. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/cognitive/historian/tools.py +0 -0
  168. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/cognitive/historian/worker.py +0 -0
  169. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/cognitive/job_queue.py +0 -0
  170. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/cognitive/profile_storage.py +0 -0
  171. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/cognitive/service/__init__.py +0 -0
  172. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/cognitive/service/helpers.py +0 -0
  173. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/cognitive/service/service.py +0 -0
  174. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/cognitive/vector_store.py +0 -0
  175. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/cognitive/vector_store_compat.py +0 -0
  176. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/config/__init__.py +0 -0
  177. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/config/admin.py +0 -0
  178. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/config/api_modes.py +0 -0
  179. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/config/build_config.py +0 -0
  180. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/config/coercers.py +0 -0
  181. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/config/config_class.py +0 -0
  182. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/config/domain_parsers.py +0 -0
  183. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/config/env_registry.py +0 -0
  184. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/config/hot_reload.py +0 -0
  185. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/config/load_sections/__init__.py +0 -0
  186. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/config/load_sections/access.py +0 -0
  187. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/config/load_sections/core.py +0 -0
  188. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/config/load_sections/domains.py +0 -0
  189. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/config/load_sections/finalize.py +0 -0
  190. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/config/load_sections/history_skills.py +0 -0
  191. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/config/load_sections/integrations.py +0 -0
  192. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/config/load_sections/knowledge.py +0 -0
  193. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/config/load_sections/logging_tools.py +0 -0
  194. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/config/load_sections/models.py +0 -0
  195. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/config/load_sections/network.py +0 -0
  196. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/config/loader.py +0 -0
  197. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/config/manager.py +0 -0
  198. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/config/model_parsers.py +0 -0
  199. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/config/models.py +0 -0
  200. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/config/naga_policy.py +0 -0
  201. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/config/onebot.py +0 -0
  202. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/config/parsers/__init__.py +0 -0
  203. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/config/parsers/agent.py +0 -0
  204. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/config/parsers/chat.py +0 -0
  205. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/config/parsers/embedding.py +0 -0
  206. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/config/parsers/grok.py +0 -0
  207. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/config/parsers/helpers.py +0 -0
  208. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/config/parsers/historian.py +0 -0
  209. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/config/parsers/image.py +0 -0
  210. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/config/parsers/naga.py +0 -0
  211. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/config/parsers/pool.py +0 -0
  212. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/config/parsers/security.py +0 -0
  213. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/config/parsers/summary.py +0 -0
  214. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/config/parsers/vision.py +0 -0
  215. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/config/resolvers.py +0 -0
  216. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/config/search.py +0 -0
  217. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/config/toml_io.py +0 -0
  218. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/config/webui_settings.py +0 -0
  219. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/context.py +0 -0
  220. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/context_resource_registry.py +0 -0
  221. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/deploy/__init__.py +0 -0
  222. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/deploy/__main__.py +0 -0
  223. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/deploy/catalog.py +0 -0
  224. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/deploy/cli.py +0 -0
  225. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/deploy/commands.py +0 -0
  226. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/deploy/config_patch.py +0 -0
  227. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/deploy/docker_cli.py +0 -0
  228. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/deploy/generate.py +0 -0
  229. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/deploy/images.py +0 -0
  230. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/deploy/nagaagent.py +0 -0
  231. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/deploy/runner.py +0 -0
  232. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/deploy/state.py +0 -0
  233. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/deploy/templates/.dockerignore +0 -0
  234. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/deploy/templates/Dockerfile.bot +0 -0
  235. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/deploy/templates/compose.base.yaml +0 -0
  236. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/deploy/templates/compose.bot.yaml +0 -0
  237. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/deploy/templates/compose.firecrawl.yaml +0 -0
  238. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/deploy/templates/compose.lxmusic2api.yaml +0 -0
  239. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/deploy/templates/compose.napcat.yaml +0 -0
  240. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/deploy/templates/compose.searxng.yaml +0 -0
  241. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/deploy/templates/lxmusic2api.config.toml +0 -0
  242. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/deploy/templates/napcat.ws.json +0 -0
  243. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/deploy/templates/searxng.settings.yml +0 -0
  244. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/douyin/__init__.py +0 -0
  245. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/douyin/client.py +0 -0
  246. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/douyin/downloader.py +0 -0
  247. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/douyin/models.py +0 -0
  248. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/douyin/parser.py +0 -0
  249. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/douyin/sender.py +0 -0
  250. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/end_summary_storage.py +0 -0
  251. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/faq.py +0 -0
  252. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/github/__init__.py +0 -0
  253. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/github/client.py +0 -0
  254. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/github/models.py +0 -0
  255. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/github/parser.py +0 -0
  256. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/github/sender.py +0 -0
  257. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/handlers/__init__.py +0 -0
  258. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/handlers/auto_extract.py +0 -0
  259. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/handlers/message_flow.py +0 -0
  260. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/handlers/poke.py +0 -0
  261. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/handlers/repeat.py +0 -0
  262. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/injection_response_agent.py +0 -0
  263. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/jm/__init__.py +0 -0
  264. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/jm/client.py +0 -0
  265. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/jm/downloader.py +0 -0
  266. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/jm/parser.py +0 -0
  267. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/knowledge/__init__.py +0 -0
  268. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/knowledge/chunker.py +0 -0
  269. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/knowledge/embedder.py +0 -0
  270. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/knowledge/manager.py +0 -0
  271. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/knowledge/reranker.py +0 -0
  272. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/knowledge/runtime.py +0 -0
  273. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/knowledge/store.py +0 -0
  274. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/main.py +0 -0
  275. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/mcp/__init__.py +0 -0
  276. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/mcp/registry.py +0 -0
  277. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/memes/__init__.py +0 -0
  278. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/memes/_image_utils.py +0 -0
  279. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/memes/ingest.py +0 -0
  280. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/memes/models.py +0 -0
  281. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/memes/search.py +0 -0
  282. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/memes/service.py +0 -0
  283. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/memes/store.py +0 -0
  284. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/memes/vector_store.py +0 -0
  285. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/memes/worker.py +0 -0
  286. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/memory.py +0 -0
  287. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/onebot/__init__.py +0 -0
  288. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/onebot/client.py +0 -0
  289. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/onebot/file_errors.py +0 -0
  290. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/onebot/file_references.py +0 -0
  291. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/onebot/file_store.py +0 -0
  292. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/onebot/file_transport.py +0 -0
  293. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/onebot/message.py +0 -0
  294. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/py.typed +0 -0
  295. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/rate_limit.py +0 -0
  296. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/render.py +0 -0
  297. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/services/__init__.py +0 -0
  298. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/services/bugfix_command.py +0 -0
  299. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/services/command.py +0 -0
  300. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/services/commands/__init__.py +0 -0
  301. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/services/commands/catalog.py +0 -0
  302. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/services/commands/context.py +0 -0
  303. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/services/commands/registry.py +0 -0
  304. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/services/coordinator/__init__.py +0 -0
  305. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/services/coordinator/background.py +0 -0
  306. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/services/coordinator/batching.py +0 -0
  307. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/services/coordinator/group.py +0 -0
  308. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/services/coordinator/message_ids.py +0 -0
  309. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/services/coordinator/private.py +0 -0
  310. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/services/message_batcher/__init__.py +0 -0
  311. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/services/message_batcher/scheduler.py +0 -0
  312. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/services/message_batcher/state.py +0 -0
  313. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/services/message_summary_fetch.py +0 -0
  314. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/services/model_pool.py +0 -0
  315. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/services/queue_manager.py +0 -0
  316. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/services/security.py +0 -0
  317. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/services/stats_command.py +0 -0
  318. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/README.md +0 -0
  319. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/__init__.py +0 -0
  320. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/agents/__init__.py +0 -0
  321. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/agents/agent_tool_registry.py +0 -0
  322. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/agents/code_delivery_agent/config.json +0 -0
  323. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/agents/code_delivery_agent/docker_utils.py +0 -0
  324. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/agents/code_delivery_agent/handler.py +0 -0
  325. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/agents/code_delivery_agent/intro.md +0 -0
  326. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/agents/code_delivery_agent/mcp.json +0 -0
  327. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/agents/code_delivery_agent/prompt.md +0 -0
  328. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/agents/code_delivery_agent/tools/copy/config.json +0 -0
  329. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/agents/code_delivery_agent/tools/copy/handler.py +0 -0
  330. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/agents/code_delivery_agent/tools/delete/config.json +0 -0
  331. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/agents/code_delivery_agent/tools/delete/handler.py +0 -0
  332. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/agents/code_delivery_agent/tools/diff/config.json +0 -0
  333. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/agents/code_delivery_agent/tools/diff/handler.py +0 -0
  334. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/agents/code_delivery_agent/tools/end/config.json +0 -0
  335. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/agents/code_delivery_agent/tools/end/handler.py +0 -0
  336. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/agents/code_delivery_agent/tools/glob/config.json +0 -0
  337. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/agents/code_delivery_agent/tools/glob/handler.py +0 -0
  338. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/agents/code_delivery_agent/tools/grep/config.json +0 -0
  339. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/agents/code_delivery_agent/tools/grep/handler.py +0 -0
  340. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/agents/code_delivery_agent/tools/init_docker/config.json +0 -0
  341. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/agents/code_delivery_agent/tools/init_docker/handler.py +0 -0
  342. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/agents/code_delivery_agent/tools/read/config.json +0 -0
  343. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/agents/code_delivery_agent/tools/read/handler.py +0 -0
  344. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/agents/code_delivery_agent/tools/run_bash_command/config.json +0 -0
  345. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/agents/code_delivery_agent/tools/run_bash_command/handler.py +0 -0
  346. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/agents/code_delivery_agent/tools/todo/config.json +0 -0
  347. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/agents/code_delivery_agent/tools/todo/handler.py +0 -0
  348. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/agents/code_delivery_agent/tools/tree/config.json +0 -0
  349. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/agents/code_delivery_agent/tools/tree/handler.py +0 -0
  350. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/agents/code_delivery_agent/tools/write/config.json +0 -0
  351. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/agents/code_delivery_agent/tools/write/handler.py +0 -0
  352. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/agents/entertainment_agent/README.md +0 -0
  353. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/agents/entertainment_agent/config.json +0 -0
  354. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/agents/entertainment_agent/handler.py +0 -0
  355. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/agents/entertainment_agent/intro.md +0 -0
  356. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/agents/entertainment_agent/prompt.md +0 -0
  357. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/agents/entertainment_agent/tools/__init__.py +0 -0
  358. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/agents/entertainment_agent/tools/ai_draw_one/config.json +0 -0
  359. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/agents/entertainment_agent/tools/ai_draw_one/handler.py +0 -0
  360. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/agents/entertainment_agent/tools/horoscope/config.json +0 -0
  361. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/agents/entertainment_agent/tools/horoscope/handler.py +0 -0
  362. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/agents/entertainment_agent/tools/minecraft_skin/config.json +0 -0
  363. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/agents/entertainment_agent/tools/minecraft_skin/handler.py +0 -0
  364. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/agents/entertainment_agent/tools/renjian/config.json +0 -0
  365. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/agents/entertainment_agent/tools/renjian/handler.py +0 -0
  366. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/agents/entertainment_agent/tools/wenchang_dijun/config.json +0 -0
  367. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/agents/entertainment_agent/tools/wenchang_dijun/handler.py +0 -0
  368. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/agents/file_analysis_agent/README.md +0 -0
  369. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/agents/file_analysis_agent/__init__.py +0 -0
  370. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/agents/file_analysis_agent/config.json +0 -0
  371. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/agents/file_analysis_agent/handler.py +0 -0
  372. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/agents/file_analysis_agent/intro.md +0 -0
  373. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/agents/file_analysis_agent/prompt.md +0 -0
  374. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/agents/file_analysis_agent/tools/__init__.py +0 -0
  375. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/agents/file_analysis_agent/tools/analyze_code/config.json +0 -0
  376. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/agents/file_analysis_agent/tools/analyze_code/handler.py +0 -0
  377. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/agents/file_analysis_agent/tools/analyze_multimodal/config.json +0 -0
  378. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/agents/file_analysis_agent/tools/analyze_multimodal/handler.py +0 -0
  379. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/agents/file_analysis_agent/tools/cleanup_temp/config.json +0 -0
  380. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/agents/file_analysis_agent/tools/cleanup_temp/handler.py +0 -0
  381. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/agents/file_analysis_agent/tools/describe_pdf_page/config.json +0 -0
  382. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/agents/file_analysis_agent/tools/describe_pdf_page/handler.py +0 -0
  383. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/agents/file_analysis_agent/tools/detect_file_type/config.json +0 -0
  384. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/agents/file_analysis_agent/tools/detect_file_type/handler.py +0 -0
  385. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/agents/file_analysis_agent/tools/download_file/config.json +0 -0
  386. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/agents/file_analysis_agent/tools/download_file/handler.py +0 -0
  387. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/agents/file_analysis_agent/tools/extract_archive/config.json +0 -0
  388. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/agents/file_analysis_agent/tools/extract_archive/handler.py +0 -0
  389. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/agents/file_analysis_agent/tools/extract_docx/config.json +0 -0
  390. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/agents/file_analysis_agent/tools/extract_docx/handler.py +0 -0
  391. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/agents/file_analysis_agent/tools/extract_pdf/config.json +0 -0
  392. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/agents/file_analysis_agent/tools/extract_pdf/handler.py +0 -0
  393. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/agents/file_analysis_agent/tools/extract_pptx/config.json +0 -0
  394. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/agents/file_analysis_agent/tools/extract_pptx/handler.py +0 -0
  395. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/agents/file_analysis_agent/tools/extract_xlsx/config.json +0 -0
  396. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/agents/file_analysis_agent/tools/extract_xlsx/handler.py +0 -0
  397. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/agents/file_analysis_agent/tools/read_text_file/config.json +0 -0
  398. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/agents/file_analysis_agent/tools/read_text_file/handler.py +0 -0
  399. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/agents/info_agent/README.md +0 -0
  400. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/agents/info_agent/handler.py +0 -0
  401. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/agents/info_agent/tools/__init__.py +0 -0
  402. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/agents/info_agent/tools/arxiv_search/config.json +0 -0
  403. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/agents/info_agent/tools/arxiv_search/handler.py +0 -0
  404. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/agents/info_agent/tools/baiduhot/config.json +0 -0
  405. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/agents/info_agent/tools/baiduhot/handler.py +0 -0
  406. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/agents/info_agent/tools/base64/config.json +0 -0
  407. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/agents/info_agent/tools/base64/handler.py +0 -0
  408. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/agents/info_agent/tools/bilibili_search/config.json +0 -0
  409. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/agents/info_agent/tools/bilibili_search/handler.py +0 -0
  410. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/agents/info_agent/tools/bilibili_user_info/config.json +0 -0
  411. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/agents/info_agent/tools/bilibili_user_info/handler.py +0 -0
  412. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/agents/info_agent/tools/douyinhot/config.json +0 -0
  413. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/agents/info_agent/tools/douyinhot/handler.py +0 -0
  414. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/agents/info_agent/tools/gold_price/config.json +0 -0
  415. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/agents/info_agent/tools/gold_price/handler.py +0 -0
  416. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/agents/info_agent/tools/hash/config.json +0 -0
  417. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/agents/info_agent/tools/hash/handler.py +0 -0
  418. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/agents/info_agent/tools/history/config.json +0 -0
  419. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/agents/info_agent/tools/history/handler.py +0 -0
  420. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/agents/info_agent/tools/net_check/config.json +0 -0
  421. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/agents/info_agent/tools/net_check/handler.py +0 -0
  422. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/agents/info_agent/tools/qq_level_query/config.json +0 -0
  423. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/agents/info_agent/tools/qq_level_query/handler.py +0 -0
  424. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/agents/info_agent/tools/speed/config.json +0 -0
  425. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/agents/info_agent/tools/speed/handler.py +0 -0
  426. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/agents/info_agent/tools/tcping/config.json +0 -0
  427. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/agents/info_agent/tools/tcping/handler.py +0 -0
  428. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/agents/info_agent/tools/weather_query/config.json +0 -0
  429. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/agents/info_agent/tools/weather_query/handler.py +0 -0
  430. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/agents/info_agent/tools/weibohot/config.json +0 -0
  431. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/agents/info_agent/tools/weibohot/handler.py +0 -0
  432. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/agents/info_agent/tools/whois/config.json +0 -0
  433. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/agents/info_agent/tools/whois/handler.py +0 -0
  434. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/agents/intro_generator.py +0 -0
  435. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/agents/intro_utils.py +0 -0
  436. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/agents/naga_code_analysis_agent/README.md +0 -0
  437. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/agents/naga_code_analysis_agent/config.json +0 -0
  438. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/agents/naga_code_analysis_agent/handler.py +0 -0
  439. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/agents/naga_code_analysis_agent/intro.md +0 -0
  440. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/agents/naga_code_analysis_agent/mcp.json +0 -0
  441. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/agents/naga_code_analysis_agent/prompt.md +0 -0
  442. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/agents/naga_code_analysis_agent/tools/__init__.py +0 -0
  443. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/agents/naga_code_analysis_agent/tools/glob/config.json +0 -0
  444. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/agents/naga_code_analysis_agent/tools/glob/handler.py +0 -0
  445. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/agents/naga_code_analysis_agent/tools/list_directory/config.json +0 -0
  446. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/agents/naga_code_analysis_agent/tools/list_directory/handler.py +0 -0
  447. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/agents/naga_code_analysis_agent/tools/read_file/config.json +0 -0
  448. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/agents/naga_code_analysis_agent/tools/read_file/handler.py +0 -0
  449. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/agents/naga_code_analysis_agent/tools/read_naga_intro/config.json +0 -0
  450. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/agents/naga_code_analysis_agent/tools/read_naga_intro/handler.py +0 -0
  451. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/agents/naga_code_analysis_agent/tools/search_file_content/config.json +0 -0
  452. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/agents/naga_code_analysis_agent/tools/search_file_content/handler.py +0 -0
  453. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/agents/runner/__init__.py +0 -0
  454. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/agents/runner/context.py +0 -0
  455. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/agents/runner/loop.py +0 -0
  456. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/agents/runner/tools.py +0 -0
  457. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/agents/runner/webchat_utils.py +0 -0
  458. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/agents/summary_agent/__init__.py +0 -0
  459. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/agents/summary_agent/config.json +0 -0
  460. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/agents/summary_agent/handler.py +0 -0
  461. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/agents/summary_agent/intro.md +0 -0
  462. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/agents/summary_agent/prompt.md +0 -0
  463. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/agents/summary_agent/tools/__init__.py +0 -0
  464. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/agents/summary_agent/tools/fetch_messages/config.json +0 -0
  465. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/agents/summary_agent/tools/fetch_messages/handler.py +0 -0
  466. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/agents/undefined_self_code_agent/README.md +0 -0
  467. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/agents/undefined_self_code_agent/__init__.py +0 -0
  468. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/agents/undefined_self_code_agent/config.json +0 -0
  469. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/agents/undefined_self_code_agent/handler.py +0 -0
  470. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/agents/undefined_self_code_agent/intro.md +0 -0
  471. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/agents/undefined_self_code_agent/prompt.md +0 -0
  472. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/agents/undefined_self_code_agent/tools/__init__.py +0 -0
  473. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/agents/undefined_self_code_agent/tools/_shared.py +0 -0
  474. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/agents/undefined_self_code_agent/tools/glob/config.json +0 -0
  475. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/agents/undefined_self_code_agent/tools/glob/handler.py +0 -0
  476. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/agents/undefined_self_code_agent/tools/list_directory/config.json +0 -0
  477. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/agents/undefined_self_code_agent/tools/list_directory/handler.py +0 -0
  478. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/agents/undefined_self_code_agent/tools/read_file/config.json +0 -0
  479. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/agents/undefined_self_code_agent/tools/read_file/handler.py +0 -0
  480. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/agents/undefined_self_code_agent/tools/search_file_content/config.json +0 -0
  481. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/agents/undefined_self_code_agent/tools/search_file_content/handler.py +0 -0
  482. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/agents/web_agent/README.md +0 -0
  483. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/agents/web_agent/callable.json +0 -0
  484. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/agents/web_agent/config.json +0 -0
  485. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/agents/web_agent/handler.py +0 -0
  486. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/agents/web_agent/intro.md +0 -0
  487. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/agents/web_agent/mcp.json +0 -0
  488. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/agents/web_agent/prompt.md +0 -0
  489. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/agents/web_agent/tools/__init__.py +0 -0
  490. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/agents/web_agent/tools/crawl_webpage/config.json +0 -0
  491. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/agents/web_agent/tools/crawl_webpage/handler.py +0 -0
  492. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/agents/web_agent/tools/firecrawl_search/config.json +0 -0
  493. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/agents/web_agent/tools/firecrawl_search/handler.py +0 -0
  494. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/agents/web_agent/tools/grok_search/config.json +0 -0
  495. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/agents/web_agent/tools/grok_search/handler.py +0 -0
  496. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/agents/web_agent/tools/web_search/config.json +0 -0
  497. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/agents/web_agent/tools/web_search/handler.py +0 -0
  498. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/anthropic_skills/__init__.py +0 -0
  499. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/anthropic_skills/loader.py +0 -0
  500. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/commands/README.md +0 -0
  501. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/commands/admin/README.md +0 -0
  502. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/commands/admin/config.json +0 -0
  503. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/commands/admin/handler.py +0 -0
  504. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/commands/bugfix/README.md +0 -0
  505. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/commands/bugfix/config.json +0 -0
  506. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/commands/bugfix/handler.py +0 -0
  507. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/commands/changelog/README.md +0 -0
  508. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/commands/changelog/config.json +0 -0
  509. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/commands/changelog/handler.py +0 -0
  510. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/commands/copyright/README.md +0 -0
  511. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/commands/copyright/config.json +0 -0
  512. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/commands/copyright/handler.py +0 -0
  513. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/commands/faq/README.md +0 -0
  514. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/commands/faq/config.json +0 -0
  515. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/commands/faq/handler.py +0 -0
  516. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/commands/feedback/README.md +0 -0
  517. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/commands/feedback/config.json +0 -0
  518. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/commands/feedback/handler.py +0 -0
  519. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/commands/help/README.md +0 -0
  520. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/commands/help/config.json +0 -0
  521. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/commands/help/handler.py +0 -0
  522. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/commands/naga/README.md +0 -0
  523. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/commands/naga/config.json +0 -0
  524. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/commands/naga/handler.py +0 -0
  525. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/commands/naga/policy.py +0 -0
  526. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/commands/profile/README.md +0 -0
  527. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/commands/profile/config.json +0 -0
  528. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/commands/profile/handler.py +0 -0
  529. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/commands/stats/README.md +0 -0
  530. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/commands/stats/config.json +0 -0
  531. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/commands/stats/handler.py +0 -0
  532. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/commands/summary/README.md +0 -0
  533. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/commands/summary/config.json +0 -0
  534. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/commands/summary/handler.py +0 -0
  535. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/commands/version/README.md +0 -0
  536. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/commands/version/config.json +0 -0
  537. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/commands/version/handler.py +0 -0
  538. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/http_client.py +0 -0
  539. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/http_config.py +0 -0
  540. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/pipelines/__init__.py +0 -0
  541. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/pipelines/arxiv/config.json +0 -0
  542. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/pipelines/arxiv/handler.py +0 -0
  543. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/pipelines/bilibili/config.json +0 -0
  544. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/pipelines/bilibili/handler.py +0 -0
  545. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/pipelines/bilibili_opus/config.json +0 -0
  546. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/pipelines/bilibili_opus/handler.py +0 -0
  547. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/pipelines/context.py +0 -0
  548. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/pipelines/douyin/config.json +0 -0
  549. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/pipelines/douyin/handler.py +0 -0
  550. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/pipelines/github/config.json +0 -0
  551. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/pipelines/github/handler.py +0 -0
  552. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/pipelines/jm/config.json +0 -0
  553. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/pipelines/jm/handler.py +0 -0
  554. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/pipelines/models.py +0 -0
  555. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/pipelines/registry.py +0 -0
  556. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/registry.py +0 -0
  557. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/tools/README.md +0 -0
  558. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/tools/__init__.py +0 -0
  559. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/tools/arxiv_paper/README.md +0 -0
  560. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/tools/arxiv_paper/callable.json +0 -0
  561. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/tools/arxiv_paper/config.json +0 -0
  562. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/tools/arxiv_paper/handler.py +0 -0
  563. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/tools/bilibili_opus/README.md +0 -0
  564. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/tools/bilibili_opus/callable.json +0 -0
  565. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/tools/bilibili_opus/config.json +0 -0
  566. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/tools/bilibili_opus/handler.py +0 -0
  567. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/tools/bilibili_video/README.md +0 -0
  568. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/tools/bilibili_video/callable.json +0 -0
  569. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/tools/bilibili_video/config.json +0 -0
  570. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/tools/bilibili_video/handler.py +0 -0
  571. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/tools/calculator/README.md +0 -0
  572. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/tools/calculator/callable.json +0 -0
  573. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/tools/calculator/config.json +0 -0
  574. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/tools/calculator/handler.py +0 -0
  575. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/tools/changelog_query/README.md +0 -0
  576. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/tools/changelog_query/config.json +0 -0
  577. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/tools/changelog_query/handler.py +0 -0
  578. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/tools/douyin_video/README.md +0 -0
  579. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/tools/douyin_video/callable.json +0 -0
  580. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/tools/douyin_video/config.json +0 -0
  581. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/tools/douyin_video/handler.py +0 -0
  582. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/tools/end/README.md +0 -0
  583. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/tools/end/config.json +0 -0
  584. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/tools/end/handler.py +0 -0
  585. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/tools/fetch_image_uid/README.md +0 -0
  586. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/tools/fetch_image_uid/config.json +0 -0
  587. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/tools/fetch_image_uid/handler.py +0 -0
  588. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/tools/get_current_time/README.md +0 -0
  589. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/tools/get_current_time/callable.json +0 -0
  590. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/tools/get_current_time/config.json +0 -0
  591. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/tools/get_current_time/handler.py +0 -0
  592. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/tools/get_picture/README.md +0 -0
  593. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/tools/get_picture/config.json +0 -0
  594. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/tools/get_picture/handler.py +0 -0
  595. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/tools/get_user_info/README.md +0 -0
  596. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/tools/get_user_info/config.json +0 -0
  597. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/tools/get_user_info/handler.py +0 -0
  598. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/tools/jm_book/callable.json +0 -0
  599. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/tools/jm_book/handler.py +0 -0
  600. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/tools/knowledge_list/README.md +0 -0
  601. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/tools/knowledge_list/config.json +0 -0
  602. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/tools/knowledge_list/handler.py +0 -0
  603. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/tools/knowledge_semantic_search/README.md +0 -0
  604. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/tools/knowledge_semantic_search/config.json +0 -0
  605. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/tools/knowledge_semantic_search/handler.py +0 -0
  606. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/tools/knowledge_text_search/README.md +0 -0
  607. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/tools/knowledge_text_search/config.json +0 -0
  608. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/tools/knowledge_text_search/handler.py +0 -0
  609. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/tools/python_interpreter/README.md +0 -0
  610. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/tools/python_interpreter/config.json +0 -0
  611. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/tools/python_interpreter/handler.py +0 -0
  612. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/tools/qq_like/README.md +0 -0
  613. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/tools/qq_like/config.json +0 -0
  614. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/tools/qq_like/handler.py +0 -0
  615. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/tools/task_progress/README.md +0 -0
  616. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/tools/task_progress/config.json +0 -0
  617. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/tools/task_progress/handler.py +0 -0
  618. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/toolsets/README.md +0 -0
  619. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/toolsets/__init__.py +0 -0
  620. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/toolsets/attachments/README.md +0 -0
  621. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/toolsets/attachments/get_uid_by_url/config.json +0 -0
  622. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/toolsets/attachments/get_uid_by_url/handler.py +0 -0
  623. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/toolsets/attachments/get_url_by_uid/config.json +0 -0
  624. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/toolsets/attachments/get_url_by_uid/handler.py +0 -0
  625. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/toolsets/automation/README.md +0 -0
  626. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/toolsets/automation/_runtime.py +0 -0
  627. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/toolsets/automation/create/config.json +0 -0
  628. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/toolsets/automation/create/handler.py +0 -0
  629. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/toolsets/automation/delete/config.json +0 -0
  630. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/toolsets/automation/delete/handler.py +0 -0
  631. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/toolsets/automation/get/config.json +0 -0
  632. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/toolsets/automation/get/handler.py +0 -0
  633. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/toolsets/automation/list/config.json +0 -0
  634. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/toolsets/automation/list/handler.py +0 -0
  635. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/toolsets/automation/set_enabled/config.json +0 -0
  636. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/toolsets/automation/set_enabled/handler.py +0 -0
  637. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/toolsets/automation/update/config.json +0 -0
  638. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/toolsets/automation/update/handler.py +0 -0
  639. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/toolsets/cognitive/README.md +0 -0
  640. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/toolsets/cognitive/get_profile/config.json +0 -0
  641. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/toolsets/cognitive/get_profile/handler.py +0 -0
  642. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/toolsets/cognitive/search_events/config.json +0 -0
  643. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/toolsets/cognitive/search_events/handler.py +0 -0
  644. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/toolsets/cognitive/search_profiles/config.json +0 -0
  645. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/toolsets/cognitive/search_profiles/handler.py +0 -0
  646. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/toolsets/commands/README.md +0 -0
  647. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/toolsets/commands/get/config.json +0 -0
  648. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/toolsets/commands/get/handler.py +0 -0
  649. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/toolsets/commands/search/config.json +0 -0
  650. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/toolsets/commands/search/handler.py +0 -0
  651. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/toolsets/contacts/README.md +0 -0
  652. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/toolsets/contacts/query_friends/config.json +0 -0
  653. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/toolsets/contacts/query_friends/handler.py +0 -0
  654. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/toolsets/contacts/query_groups/config.json +0 -0
  655. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/toolsets/contacts/query_groups/handler.py +0 -0
  656. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/toolsets/group/README.md +0 -0
  657. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/toolsets/group/find_member/config.json +0 -0
  658. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/toolsets/group/find_member/handler.py +0 -0
  659. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/toolsets/group/get_avatar/config.json +0 -0
  660. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/toolsets/group/get_avatar/handler.py +0 -0
  661. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/toolsets/group/get_files/config.json +0 -0
  662. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/toolsets/group/get_files/handler.py +0 -0
  663. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/toolsets/group/get_honor_info/config.json +0 -0
  664. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/toolsets/group/get_honor_info/handler.py +0 -0
  665. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/toolsets/group/get_member_info/config.json +0 -0
  666. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/toolsets/group/get_member_info/handler.py +0 -0
  667. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/toolsets/group/get_member_list/config.json +0 -0
  668. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/toolsets/group/get_member_list/handler.py +0 -0
  669. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/toolsets/group/get_member_title/config.json +0 -0
  670. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/toolsets/group/get_member_title/handler.py +0 -0
  671. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/toolsets/group_analysis/README.md +0 -0
  672. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/toolsets/group_analysis/activity_trend/config.json +0 -0
  673. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/toolsets/group_analysis/activity_trend/handler.py +0 -0
  674. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/toolsets/group_analysis/filter_members/config.json +0 -0
  675. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/toolsets/group_analysis/filter_members/handler.py +0 -0
  676. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/toolsets/group_analysis/inactive_risk/config.json +0 -0
  677. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/toolsets/group_analysis/inactive_risk/handler.py +0 -0
  678. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/toolsets/group_analysis/join_statistics/config.json +0 -0
  679. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/toolsets/group_analysis/join_statistics/handler.py +0 -0
  680. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/toolsets/group_analysis/level_distribution/config.json +0 -0
  681. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/toolsets/group_analysis/level_distribution/handler.py +0 -0
  682. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/toolsets/group_analysis/member_activity/config.json +0 -0
  683. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/toolsets/group_analysis/member_activity/handler.py +0 -0
  684. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/toolsets/group_analysis/member_messages/config.json +0 -0
  685. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/toolsets/group_analysis/member_messages/handler.py +0 -0
  686. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/toolsets/group_analysis/member_structure/config.json +0 -0
  687. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/toolsets/group_analysis/member_structure/handler.py +0 -0
  688. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/toolsets/group_analysis/message_mix/config.json +0 -0
  689. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/toolsets/group_analysis/message_mix/handler.py +0 -0
  690. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/toolsets/group_analysis/new_member_activity/config.json +0 -0
  691. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/toolsets/group_analysis/new_member_activity/handler.py +0 -0
  692. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/toolsets/group_analysis/rank_members/config.json +0 -0
  693. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/toolsets/group_analysis/rank_members/handler.py +0 -0
  694. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/toolsets/mcp/README.md +0 -0
  695. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/toolsets/mcp/__init__.py +0 -0
  696. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/toolsets/memes/README.md +0 -0
  697. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/toolsets/memes/search_memes/config.json +0 -0
  698. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/toolsets/memes/search_memes/handler.py +0 -0
  699. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/toolsets/memes/send_meme_by_uid/config.json +0 -0
  700. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/toolsets/memes/send_meme_by_uid/handler.py +0 -0
  701. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/toolsets/memory/README.md +0 -0
  702. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/toolsets/memory/add/config.json +0 -0
  703. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/toolsets/memory/add/handler.py +0 -0
  704. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/toolsets/memory/delete/config.json +0 -0
  705. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/toolsets/memory/delete/handler.py +0 -0
  706. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/toolsets/memory/list/config.json +0 -0
  707. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/toolsets/memory/list/handler.py +0 -0
  708. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/toolsets/memory/update/config.json +0 -0
  709. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/toolsets/memory/update/handler.py +0 -0
  710. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/toolsets/messages/README.md +0 -0
  711. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/toolsets/messages/context_utils.py +0 -0
  712. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/toolsets/messages/get_forward_msg/config.json +0 -0
  713. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/toolsets/messages/get_forward_msg/handler.py +0 -0
  714. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/toolsets/messages/get_messages_by_time/config.json +0 -0
  715. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/toolsets/messages/get_messages_by_time/handler.py +0 -0
  716. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/toolsets/messages/get_recent_messages/config.json +0 -0
  717. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/toolsets/messages/get_recent_messages/handler.py +0 -0
  718. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/toolsets/messages/list_emojis/config.json +0 -0
  719. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/toolsets/messages/list_emojis/handler.py +0 -0
  720. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/toolsets/messages/lookup_emoji_id/config.json +0 -0
  721. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/toolsets/messages/lookup_emoji_id/handler.py +0 -0
  722. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/toolsets/messages/react_message_emoji/config.json +0 -0
  723. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/toolsets/messages/react_message_emoji/handler.py +0 -0
  724. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/toolsets/messages/send_group_sign/config.json +0 -0
  725. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/toolsets/messages/send_group_sign/handler.py +0 -0
  726. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/toolsets/messages/send_message/config.json +0 -0
  727. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/toolsets/messages/send_message/handler.py +0 -0
  728. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/toolsets/messages/send_poke/config.json +0 -0
  729. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/toolsets/messages/send_poke/handler.py +0 -0
  730. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/toolsets/messages/send_private_message/config.json +0 -0
  731. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/toolsets/messages/send_private_message/handler.py +0 -0
  732. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/toolsets/messages/send_text_file/callable.json +0 -0
  733. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/toolsets/messages/send_text_file/config.json +0 -0
  734. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/toolsets/messages/send_text_file/handler.py +0 -0
  735. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/toolsets/messages/send_url_file/callable.json +0 -0
  736. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/toolsets/messages/send_url_file/config.json +0 -0
  737. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/toolsets/messages/send_url_file/handler.py +0 -0
  738. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/toolsets/messages/send_voice/config.json +0 -0
  739. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/toolsets/messages/send_voice/handler.py +0 -0
  740. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/toolsets/music/README.md +0 -0
  741. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/toolsets/music/_client.py +0 -0
  742. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/toolsets/music/_constants.py +0 -0
  743. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/toolsets/music/_tools.py +0 -0
  744. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/toolsets/music/_track_refs.py +0 -0
  745. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/toolsets/music/browse_playlists/config.json +0 -0
  746. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/toolsets/music/browse_playlists/handler.py +0 -0
  747. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/toolsets/music/browse_rankings/config.json +0 -0
  748. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/toolsets/music/browse_rankings/handler.py +0 -0
  749. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/toolsets/music/find_song_matches/config.json +0 -0
  750. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/toolsets/music/find_song_matches/handler.py +0 -0
  751. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/toolsets/music/get_audio/config.json +0 -0
  752. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/toolsets/music/get_audio/handler.py +0 -0
  753. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/toolsets/music/get_comments/config.json +0 -0
  754. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/toolsets/music/get_comments/handler.py +0 -0
  755. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/toolsets/music/get_cover/config.json +0 -0
  756. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/toolsets/music/get_cover/handler.py +0 -0
  757. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/toolsets/music/get_hot_search/config.json +0 -0
  758. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/toolsets/music/get_hot_search/handler.py +0 -0
  759. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/toolsets/music/get_lyrics/config.json +0 -0
  760. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/toolsets/music/get_lyrics/handler.py +0 -0
  761. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/toolsets/music/search_playlists/config.json +0 -0
  762. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/toolsets/music/search_playlists/handler.py +0 -0
  763. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/toolsets/music/search_songs/config.json +0 -0
  764. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/toolsets/music/search_songs/handler.py +0 -0
  765. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/toolsets/notices/README.md +0 -0
  766. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/toolsets/notices/get/config.json +0 -0
  767. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/toolsets/notices/get/handler.py +0 -0
  768. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/toolsets/notices/list/config.json +0 -0
  769. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/toolsets/notices/list/handler.py +0 -0
  770. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/toolsets/notices/stats/config.json +0 -0
  771. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/toolsets/notices/stats/handler.py +0 -0
  772. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/toolsets/render/README.md +0 -0
  773. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/toolsets/render/layout.py +0 -0
  774. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/toolsets/render/render_html/config.json +0 -0
  775. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/toolsets/render/render_html/handler.py +0 -0
  776. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/toolsets/render/render_latex/config.json +0 -0
  777. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/toolsets/render/render_latex/handler.py +0 -0
  778. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/toolsets/render/render_markdown/config.json +0 -0
  779. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/skills/toolsets/render/render_markdown/handler.py +0 -0
  780. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/token_usage_storage.py +0 -0
  781. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/utils/__init__.py +0 -0
  782. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/utils/cache.py +0 -0
  783. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/utils/coerce.py +0 -0
  784. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/utils/common.py +0 -0
  785. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/utils/cors.py +0 -0
  786. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/utils/easter_egg_calls.py +0 -0
  787. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/utils/fake_at.py +0 -0
  788. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/utils/file_lock.py +0 -0
  789. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/utils/group_metrics.py +0 -0
  790. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/utils/history.py +0 -0
  791. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/utils/http_download.py +0 -0
  792. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/utils/io.py +0 -0
  793. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/utils/logging.py +0 -0
  794. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/utils/member_utils.py +0 -0
  795. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/utils/message_reply.py +0 -0
  796. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/utils/message_targets.py +0 -0
  797. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/utils/message_turn.py +0 -0
  798. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/utils/message_utils.py +0 -0
  799. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/utils/paths.py +0 -0
  800. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/utils/qq_emoji.py +0 -0
  801. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/utils/queue_intervals.py +0 -0
  802. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/utils/recent_messages.py +0 -0
  803. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/utils/render_cache.py +0 -0
  804. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/utils/request_params.py +0 -0
  805. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/utils/resources.py +0 -0
  806. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/utils/scheduler.py +0 -0
  807. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/utils/self_update.py +0 -0
  808. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/utils/sender.py +0 -0
  809. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/utils/sender_helpers.py +0 -0
  810. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/utils/time_utils.py +0 -0
  811. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/utils/tool_calls.py +0 -0
  812. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/utils/xml.py +0 -0
  813. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/webui/__init__.py +0 -0
  814. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/webui/__main__.py +0 -0
  815. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/webui/app.py +0 -0
  816. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/webui/core.py +0 -0
  817. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/webui/routes/__init__.py +0 -0
  818. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/webui/routes/_auth.py +0 -0
  819. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/webui/routes/_bot.py +0 -0
  820. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/webui/routes/_config.py +0 -0
  821. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/webui/routes/_index.py +0 -0
  822. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/webui/routes/_logs.py +0 -0
  823. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/webui/routes/_memes.py +0 -0
  824. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/webui/routes/_runtime.py +0 -0
  825. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/webui/routes/_shared.py +0 -0
  826. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/webui/routes/_system.py +0 -0
  827. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/webui/routes/_weixin.py +0 -0
  828. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/webui/static/css/.stylelintrc.json +0 -0
  829. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/webui/static/css/app.css +0 -0
  830. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/webui/static/css/base.css +0 -0
  831. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/webui/static/css/components.css +0 -0
  832. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/webui/static/css/highlight-github.min.css +0 -0
  833. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/webui/static/css/landing.css +0 -0
  834. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/webui/static/css/responsive.css +0 -0
  835. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/webui/static/css/style.css +0 -0
  836. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/webui/static/css/variables.css +0 -0
  837. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/webui/static/css/workflow.css +0 -0
  838. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/webui/static/favicon.svg +0 -0
  839. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/webui/static/js/api.js +0 -0
  840. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/webui/static/js/auth.js +0 -0
  841. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/webui/static/js/bot.js +0 -0
  842. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/webui/static/js/config-form.js +0 -0
  843. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/webui/static/js/i18n.js +0 -0
  844. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/webui/static/js/log-view.js +0 -0
  845. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/webui/static/js/logs.js +0 -0
  846. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/webui/static/js/main.js +0 -0
  847. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/webui/static/js/memes.js +0 -0
  848. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/webui/static/js/runtime.js +0 -0
  849. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/webui/static/js/schedules.js +0 -0
  850. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/webui/static/js/state.js +0 -0
  851. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/webui/static/js/ui.js +0 -0
  852. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/webui/static/js/vendor/highlight.min.js +0 -0
  853. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/webui/static/js/vendor/highlightjs.LICENSE +0 -0
  854. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/webui/static/js/vendor/marked.min.js +0 -0
  855. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/webui/static/js/weixin.js +0 -0
  856. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/webui/static/js/workflow-canvas.js +0 -0
  857. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/webui/static/js/workflow-graph.js +0 -0
  858. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/webui/static/js/workflow-inspector.js +0 -0
  859. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/webui/templates/index.html +0 -0
  860. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/webui/utils/__init__.py +0 -0
  861. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/webui/utils/comment.py +0 -0
  862. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/webui/utils/config_io.py +0 -0
  863. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/webui/utils/config_sync.py +0 -0
  864. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/webui/utils/toml_render.py +0 -0
  865. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/weixin/__init__.py +0 -0
  866. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/weixin/audio.py +0 -0
  867. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/weixin/models.py +0 -0
  868. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/weixin/service.py +0 -0
  869. {undefined_bot-3.18.0 → undefined_bot-3.18.2}/src/Undefined/weixin/store.py +0 -0
@@ -121,7 +121,7 @@ graph TB
121
121
  end
122
122
 
123
123
  subgraph IntelligentAgents["智能体 Agents (skills/agents/, 7个)"]
124
- A_Info["info_agent<br/>信息查询助手<br/>(18个工具)<br/>• weather_query<br/>• *hot 热搜<br/>• bilibili_*<br/>• arxiv_search<br/>• whois"]
124
+ A_Info["info_agent<br/>信息查询助手<br/>(17个工具)<br/>• weather_query<br/>• *hot 热搜<br/>• bilibili_*<br/>• arxiv_search<br/>• jm_search<br/>• whois"]
125
125
  A_Web["web_agent<br/>网络搜索助手<br/>(4个工具 + MCP)<br/>• grok_search<br/>• firecrawl_search<br/>• web_search<br/>• crawl_webpage<br/>• Playwright MCP"]
126
126
  A_File["file_analysis_agent<br/>文件分析助手<br/>• extract_* (PDF/Word/Excel/PPT)<br/>• describe_pdf_page<br/>• analyze_code<br/>• analyze_multimodal"]
127
127
  A_Naga["naga_code_analysis_agent<br/>NagaAgent 代码分析<br/>(7个工具)<br/>• read_file / glob<br/>• search_file_content"]
@@ -1,3 +1,25 @@
1
+ ## v3.18.2 禁漫列表查询工具
2
+
3
+ 本版本给 `info_agent` 新增 `jm_search` 工具:AI 可以直接查询禁漫本子列表(关键词检索 / 分类浏览 / 日周月排行),拿到车号后再由主 AI 的 `jm_book` 取详情或 PDF;工具本身只查列表,不下载也不发送。
4
+
5
+ - 新增 `jm_search` 工具(`src/Undefined/skills/agents/info_agent/tools/jm_search/`)与领域层 `src/Undefined/jm/searcher.py`:`mode=search` 关键词检索、`mode=browse` 分类浏览(不需要关键词)、`mode=ranking` 日/周/月排行,三种模式共用 `genre` 大分类与 `page` 翻页;返回车号(`JM<数字>`)、标题、作者、分类与更新时间,`n` 默认 5、上限 20。
6
+ - 筛选参数:`target`(站内/作品/作者/标签/角色)、`sort`(最新/观看/图片/点赞/评分/评论)、`time_range`(`all`/`day`/`week`/`month`,`mode=ranking` 时表示日榜/周榜/月榜,`all` 等同 jmcpy 默认的周榜)、`genre`(同人/单行本/短篇/汉漫/美漫/3D/英译站等)与 `sub_genre`(中文/日文/CG 等);副分类必须与 `genre` 同时给出,且只有网页端接口支持,网页端被反爬拦截时直接返回失败原因。
7
+ - 参数校验与提示:`mode=search` 必须提供 `msg`(至少 2 个字,纯数字车号会直接定位到该本子),`mode=browse` / `ranking` 带关键词会被拦下并提示改用 `mode=search`;`ranking` 固定按观看数排序,显式传其它 `sort` 时提示改用 `browse`;非法枚举值回显可选值。
8
+ - 结果表头写明模式与生效筛选(如 `🏆 禁漫日榜(同人 / CG)`);分类页与排行榜不返回总数,这类结果只提示「需要更多结果时可用 page=N+1 继续」,只有确实知道总页数时才说「还有更多」。
9
+ - 工具仅 `info_agent` 可见(不带 `callable.json`),域层通过 `skills/shared.py` 桥接;查询复用 `[jm]` 的代理、`request_timeout` 与 `session_dir`,且**不受** `[jm].auto_extract_enabled` 影响——该开关只约束自动提取管线。
10
+
11
+ ---
12
+
13
+ ## v3.18.1 JM 本子文件改到转发外发送
14
+
15
+ 本版本修复禁漫自动提取的加密 PDF 在合并转发节点里下载失败的问题:转发退回「本子信息 / 解密密码」两个节点,PDF 改为转发之后单独发一条文件消息。
16
+
17
+ - 加密 PDF 不再放进合并转发:转发节点里的文件在 QQ 客户端下载会失败,改为紧随转发之后单独发送(群聊走群文件上传、私聊走私聊文件),独立文件消息可以正常下载;群聊下同一个 PDF 仍会出现在群文件列表里。`build_forward_nodes()` 因此不再接收 PDF 路径,没有 PDF 时依然是「本子信息 / 状态」两个节点。
18
+ - 转发与文件分离后的投递语义:转发被协议端**明确拒绝**时退化为「信息 + 密码两条普通消息」,文件照旧单独发送;转发遇到「投递结果未确认」(`delivery_uncertain`)或「文件传输错误」(`file_transfer_error`)时不重发转发与信息/密码(转发可能已经送达),但文件此前从未发出、不算重复投递,仍会继续单独发送,否则整本下载白跑。文件自身投递结果未确认时直接上抛不重发,普通失败时补一条「PDF 上传失败」提示(这条提示写入历史,转发投递未确认时提示里也不会声称信息与密码已经送达)。
19
+ - 发送状态与历史摘要同步:状态前缀改为「已发送合并转发 / 合并转发被拒,已改为普通消息发送信息与密码 / 合并转发投递结果未确认」+「PDF 文件已单独发送」或「PDF 文件发送失败」;写历史时摘要只说「PDF: 加密文件随后单独发送(…,密码见转发节点)」——这条摘要随转发落地、此时文件尚未上传,不能提前声称已发送,文件真正发出后由 `send_group_file` 自己补一条 `[文件] …` 历史记录。密码仍然只出现在转发节点里、不进历史。
20
+
21
+ ---
22
+
1
23
  ## v3.18.0 JM 漫画自动提取
2
24
 
3
25
  本版本新增禁漫自动提取管线:消息里出现 `JM` 车号或禁漫链接时,自动获取本子详情、把全部章节合成为一个带密码的 PDF,以「本子信息 / 解密密码 / PDF 文件」三节点合并转发发送(文件只放在转发里,群聊下同时进入群文件列表),并新增与 `arxiv_paper` 同构的 `jm_book` 工具供 AI 按需取详情或附件。功能默认关闭,密码随机生成且不写进历史。
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: Undefined-bot
3
- Version: 3.18.0
3
+ Version: 3.18.2
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
@@ -122,7 +122,7 @@ Description-Content-Type: text/markdown
122
122
  - **可选音乐工具集**:配置独立部署的 [lxmusic2api](https://github.com/69gg/lxmusic2api) 后,主 AI 可搜索歌曲/歌单、浏览热搜与排行榜、读取歌词/封面/评论、跨平台匹配并交付普通音频附件;完整 Track 通过任务内短引用流转,只暴露面向用户的高层 `music.*` 能力,不暴露下载作业生命周期接口。详见 [使用指南](docs/usage.md#音乐-music) 与 [配置说明](docs/configuration.md#4201-lxmusic2api-音乐服务)。
123
123
  - **arXiv 论文提取、搜索与分析**:自动检测消息中的 arXiv 链接/标识并发送论文信息与 PDF;`arxiv_paper` 也可只返回 PDF 附件 UID,供 `file_analysis_agent` 做文本提取或指定页视觉分析;`arxiv_search` 负责论文检索。
124
124
  - **GitHub 仓库卡片**:自动检测 GitHub 仓库链接或 `owner/repo` 仓库 ID,获取 public 仓库信息并发送简洁图片卡片,展示头像、简介、stars、forks、issues、contributors 等概览;API 与头像下载统一遵循 `[github].use_proxy`,头像以内联资源进入离线渲染器。
125
- - **禁漫(JM)本子提取**:自动检测 `JM`+车号或禁漫链接,下载全部章节并合成为一个 AES-256 加密 PDF,以「本子信息 / 解密密码 / PDF 文件」三节点合并转发发送(文件只在转发里,群聊下同时进入群文件列表),密码每次随机生成且不写入历史;`jm_book` 工具也可只返回本子信息或未加密 PDF 附件 UID,供 `file_analysis_agent` 解析。默认关闭,`[jm].auto_extract_enabled` 打开。详见 [配置说明](docs/configuration.md#4203-jm-禁漫自动提取)。
125
+ - **禁漫(JM)本子提取**:自动检测 `JM`+车号或禁漫链接,下载全部章节并合成为一个 AES-256 加密 PDF,以「本子信息 / 解密密码」两节点合并转发发送,加密 PDF 不进转发、随后单独作为一条文件消息发送(转发里的文件在 QQ 客户端下载会失败,独立文件消息才下得动,群聊下同时进入群文件列表),密码每次随机生成且不写入历史;`jm_book` 工具也可只返回本子信息或未加密 PDF 附件 UID,供 `file_analysis_agent` 解析;`info_agent` 另有 `jm_search` 工具:关键词检索(可限定作者/标签/角色与分类)、分类浏览、日/周/月排行三种模式,返回车号清单。默认关闭,`[jm].auto_extract_enabled` 打开。详见 [配置说明](docs/configuration.md#4203-jm-禁漫自动提取)。
126
126
  - **自动处理管线**:Bilibili、arXiv、GitHub、JM 等自动提取统一运行在 `skills/pipelines` 中,斜杠命令优先级更高;命令输入/输出会写入历史,非命令消息会并行检测和处理命中管线,结果通过统一发送层写入历史并登记附件 UID 后再进入 AI 回复。远程大附件超过 `[attachments].remote_download_max_size_mb` 时只登记 URL 引用,避免无界下载和缓存膨胀。
127
127
  - **同 sender 短时消息合并**:默认开启。连续发的多条消息会合并到同一轮 AI 调用,AI 一次看到全部意图自行识别"独立请求/修正/打断";告别"画猫→改成狗"的重复触发与回复打架。主提示词按 batcher 的"当前输入批次"语义适配,关闭该功能可能导致连续补充/修正消息与提示词不匹配,需要单独适配。可选投机预发送让用户停顿时 LLM 提前开跑、新消息可在未发出回复前取消,进一步压低响应延迟。详见 [docs/message-batching.md](docs/message-batching.md)。
128
128
  - **思维链支持**:支持开启思维链,提升复杂逻辑推理能力。
@@ -70,7 +70,7 @@
70
70
  - **可选音乐工具集**:配置独立部署的 [lxmusic2api](https://github.com/69gg/lxmusic2api) 后,主 AI 可搜索歌曲/歌单、浏览热搜与排行榜、读取歌词/封面/评论、跨平台匹配并交付普通音频附件;完整 Track 通过任务内短引用流转,只暴露面向用户的高层 `music.*` 能力,不暴露下载作业生命周期接口。详见 [使用指南](docs/usage.md#音乐-music) 与 [配置说明](docs/configuration.md#4201-lxmusic2api-音乐服务)。
71
71
  - **arXiv 论文提取、搜索与分析**:自动检测消息中的 arXiv 链接/标识并发送论文信息与 PDF;`arxiv_paper` 也可只返回 PDF 附件 UID,供 `file_analysis_agent` 做文本提取或指定页视觉分析;`arxiv_search` 负责论文检索。
72
72
  - **GitHub 仓库卡片**:自动检测 GitHub 仓库链接或 `owner/repo` 仓库 ID,获取 public 仓库信息并发送简洁图片卡片,展示头像、简介、stars、forks、issues、contributors 等概览;API 与头像下载统一遵循 `[github].use_proxy`,头像以内联资源进入离线渲染器。
73
- - **禁漫(JM)本子提取**:自动检测 `JM`+车号或禁漫链接,下载全部章节并合成为一个 AES-256 加密 PDF,以「本子信息 / 解密密码 / PDF 文件」三节点合并转发发送(文件只在转发里,群聊下同时进入群文件列表),密码每次随机生成且不写入历史;`jm_book` 工具也可只返回本子信息或未加密 PDF 附件 UID,供 `file_analysis_agent` 解析。默认关闭,`[jm].auto_extract_enabled` 打开。详见 [配置说明](docs/configuration.md#4203-jm-禁漫自动提取)。
73
+ - **禁漫(JM)本子提取**:自动检测 `JM`+车号或禁漫链接,下载全部章节并合成为一个 AES-256 加密 PDF,以「本子信息 / 解密密码」两节点合并转发发送,加密 PDF 不进转发、随后单独作为一条文件消息发送(转发里的文件在 QQ 客户端下载会失败,独立文件消息才下得动,群聊下同时进入群文件列表),密码每次随机生成且不写入历史;`jm_book` 工具也可只返回本子信息或未加密 PDF 附件 UID,供 `file_analysis_agent` 解析;`info_agent` 另有 `jm_search` 工具:关键词检索(可限定作者/标签/角色与分类)、分类浏览、日/周/月排行三种模式,返回车号清单。默认关闭,`[jm].auto_extract_enabled` 打开。详见 [配置说明](docs/configuration.md#4203-jm-禁漫自动提取)。
74
74
  - **自动处理管线**:Bilibili、arXiv、GitHub、JM 等自动提取统一运行在 `skills/pipelines` 中,斜杠命令优先级更高;命令输入/输出会写入历史,非命令消息会并行检测和处理命中管线,结果通过统一发送层写入历史并登记附件 UID 后再进入 AI 回复。远程大附件超过 `[attachments].remote_download_max_size_mb` 时只登记 URL 引用,避免无界下载和缓存膨胀。
75
75
  - **同 sender 短时消息合并**:默认开启。连续发的多条消息会合并到同一轮 AI 调用,AI 一次看到全部意图自行识别"独立请求/修正/打断";告别"画猫→改成狗"的重复触发与回复打架。主提示词按 batcher 的"当前输入批次"语义适配,关闭该功能可能导致连续补充/修正消息与提示词不匹配,需要单独适配。可选投机预发送让用户停顿时 LLM 提前开跑、新消息可在未发出回复前取消,进一步压低响应延迟。详见 [docs/message-batching.md](docs/message-batching.md)。
76
76
  - **思维链支持**:支持开启思维链,提升复杂逻辑推理能力。
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "Undefined-bot"
3
- version = "3.18.0"
3
+ version = "3.18.2"
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.0"
27
+ __version__: str = "3.18.2"
28
28
 
29
29
  # symbol -> (module_path, attribute_name);首次访问时才 importlib 加载
30
30
  _LAZY_IMPORTS: dict[str, tuple[str, str]] = {
@@ -0,0 +1,278 @@
1
+ """禁漫列表查询:关键词搜索、分类浏览与排行榜(只读列表,不下载任何图片)。
2
+
3
+ 统一入口 :func:`fetch_listing` 按 ``mode`` 分派到 jmcpy 的 ``Client.search`` /
4
+ ``browse`` / ``ranking``,返回一页 ``BookBrief``:只有车号、标题、作者、分类与
5
+ 更新时间,不请求正文或图片。查询在 jmcpy 自己的线程里跑,与
6
+ :mod:`Undefined.jm.downloader` 的 ``fetch_book`` 同一形态,不阻塞事件循环。
7
+
8
+ 副分类(``sub_genre``)只有网页端接口支持,门面会自动路由;网页端不可用时
9
+ jmcpy 抛 ``ChallengeBlocked`` 一类异常,由调用方转成可读提示。
10
+ """
11
+
12
+ from __future__ import annotations
13
+
14
+ import asyncio
15
+ from datetime import datetime, timedelta, timezone
16
+ from typing import Any, Literal
17
+
18
+ from jmcpy import (
19
+ BookBrief,
20
+ Client,
21
+ Genre,
22
+ Listing,
23
+ RankingSpan,
24
+ SearchTarget,
25
+ SortBy,
26
+ Settings,
27
+ SubGenre,
28
+ TimeRange,
29
+ )
30
+
31
+ from Undefined.jm.client import build_settings
32
+
33
+ #: 列表来源:关键词搜索 / 分类浏览 / 排行榜
34
+ JmListingMode = Literal["search", "browse", "ranking"]
35
+
36
+ #: 展示用时间统一按北京时间(站点面向中文用户,jmcpy 返回的是秒级时间戳)
37
+ _BEIJING_TIMEZONE = timezone(timedelta(hours=8))
38
+ #: 列表项标题缺失时的占位(与 ``sender.format_jm_book_info`` 同一文案)
39
+ _UNKNOWN_TITLE = "未知标题"
40
+
41
+ _TARGET_LABELS: dict[SearchTarget, str] = {
42
+ SearchTarget.SITE: "站内",
43
+ SearchTarget.WORK: "作品",
44
+ SearchTarget.AUTHOR: "作者",
45
+ SearchTarget.TAG: "标签",
46
+ SearchTarget.ACTOR: "角色",
47
+ }
48
+
49
+ _SORT_LABELS: dict[SortBy, str] = {
50
+ SortBy.LATEST: "最新",
51
+ SortBy.VIEWS: "观看数",
52
+ SortBy.PICTURES: "图片数",
53
+ SortBy.LIKES: "点赞数",
54
+ SortBy.SCORE: "评分",
55
+ SortBy.COMMENTS: "评论数",
56
+ }
57
+
58
+ _TIME_LABELS: dict[TimeRange, str] = {
59
+ TimeRange.DAY: "今日",
60
+ TimeRange.WEEK: "近一周",
61
+ TimeRange.MONTH: "近一月",
62
+ }
63
+
64
+ _GENRE_LABELS: dict[Genre, str] = {
65
+ Genre.DOUJIN: "同人",
66
+ Genre.SINGLE: "单行本",
67
+ Genre.SHORT: "短篇",
68
+ Genre.ANOTHER: "其他",
69
+ Genre.HANMAN: "汉漫",
70
+ Genre.MEIMAN: "美漫",
71
+ Genre.DOUJIN_COSPLAY: "同人Cosplay",
72
+ Genre.THREE_D: "3D",
73
+ Genre.ENGLISH_SITE: "英译站",
74
+ }
75
+
76
+ _SUB_GENRE_LABELS: dict[SubGenre, str] = {
77
+ SubGenre.CHINESE: "中文",
78
+ SubGenre.JAPANESE: "日文",
79
+ SubGenre.CG: "CG",
80
+ SubGenre.YOUTH: "青年",
81
+ SubGenre.OTHER: "其他",
82
+ SubGenre.THREE_D: "3D",
83
+ SubGenre.COSPLAY: "Cosplay",
84
+ }
85
+
86
+ #: 排行榜跨度:jmcpy 的 ``RankingSpan`` 与 ``TimeRange`` 的 day/week/month 取值一致
87
+ _RANKING_SPANS: dict[TimeRange, RankingSpan] = {
88
+ TimeRange.DAY: RankingSpan.DAY,
89
+ TimeRange.WEEK: RankingSpan.WEEK,
90
+ TimeRange.MONTH: RankingSpan.MONTH,
91
+ }
92
+ _RANKING_LABELS: dict[TimeRange, str] = {
93
+ TimeRange.DAY: "日榜",
94
+ TimeRange.WEEK: "周榜",
95
+ TimeRange.MONTH: "月榜",
96
+ }
97
+
98
+
99
+ def _fetch_sync(
100
+ settings: Settings,
101
+ *,
102
+ mode: JmListingMode,
103
+ query: str,
104
+ page: int,
105
+ target: SearchTarget,
106
+ sort: SortBy,
107
+ time_range: TimeRange,
108
+ genre: Genre,
109
+ sub_genre: SubGenre | None,
110
+ ) -> Listing[BookBrief]:
111
+ with Client(settings) as client:
112
+ if mode == "ranking":
113
+ span = _RANKING_SPANS.get(time_range, RankingSpan.WEEK)
114
+ return client.ranking(span, page=page, genre=genre, sub_genre=sub_genre)
115
+ if mode == "browse":
116
+ return client.browse(
117
+ page=page,
118
+ genre=genre,
119
+ sub_genre=sub_genre,
120
+ sort=sort,
121
+ time_range=time_range,
122
+ )
123
+ return client.search(
124
+ query,
125
+ page=page,
126
+ target=target,
127
+ sort=sort,
128
+ time_range=time_range,
129
+ genre=genre,
130
+ sub_genre=sub_genre,
131
+ )
132
+
133
+
134
+ async def fetch_listing(
135
+ *,
136
+ config: Any,
137
+ mode: JmListingMode,
138
+ query: str = "",
139
+ page: int = 1,
140
+ target: SearchTarget = SearchTarget.SITE,
141
+ sort: SortBy = SortBy.LATEST,
142
+ time_range: TimeRange = TimeRange.ALL,
143
+ genre: Genre = Genre.ALL,
144
+ sub_genre: SubGenre | None = None,
145
+ ) -> Listing[BookBrief]:
146
+ """按模式取一页本子列表(只查列表,线程里跑,不阻塞事件循环)。"""
147
+ return await asyncio.to_thread(
148
+ _fetch_sync,
149
+ build_settings(config),
150
+ mode=mode,
151
+ query=query,
152
+ page=page,
153
+ target=target,
154
+ sort=sort,
155
+ time_range=time_range,
156
+ genre=genre,
157
+ sub_genre=sub_genre,
158
+ )
159
+
160
+
161
+ def _format_updated_at(value: int | None) -> str:
162
+ """把 ``update_at`` 秒级时间戳格式化为北京时间 ``YYYY-MM-DD``。
163
+
164
+ 缺失或越界的时间戳返回空串:列表里少一个日期,比展示错误时间安全。
165
+ """
166
+ if value is None or value <= 0:
167
+ return ""
168
+ try:
169
+ moment = datetime.fromtimestamp(int(value), tz=_BEIJING_TIMEZONE)
170
+ except (OverflowError, OSError, ValueError):
171
+ return ""
172
+ return moment.strftime("%Y-%m-%d")
173
+
174
+
175
+ def _taxonomy_titles(book: BookBrief) -> list[str]:
176
+ """按「大分类 / 副分类」顺序收集非空分类名。"""
177
+ titles: list[str] = []
178
+ for taxonomy in (book.category, book.sub_category):
179
+ if taxonomy is None:
180
+ continue
181
+ title = str(taxonomy).strip()
182
+ if title:
183
+ titles.append(title)
184
+ return titles
185
+
186
+
187
+ def _format_item(index: int, book: BookBrief) -> str:
188
+ """把一条结果渲染成「标题行 + 可选明细行」。
189
+
190
+ 车号写成 ``JM<数字>``:它是后续取详情/附件的标识,比站点链接更适合复制。
191
+ """
192
+ lines = [f"{index}. 「JM{book.book_id} {book.title.strip() or _UNKNOWN_TITLE}」"]
193
+ details: list[str] = []
194
+ author = book.author.strip()
195
+ if author:
196
+ details.append(f"作者: {author}")
197
+ categories = " / ".join(_taxonomy_titles(book))
198
+ if categories:
199
+ details.append(f"分类: {categories}")
200
+ updated = _format_updated_at(book.updated_at)
201
+ if updated:
202
+ details.append(f"更新: {updated}")
203
+ if details:
204
+ lines.append(" " + " | ".join(details))
205
+ return "\n".join(lines)
206
+
207
+
208
+ def _category_label(genre: Genre, sub_genre: SubGenre | None) -> str:
209
+ """把大分类与副分类拼成「同人 / 中文」形式的说明。"""
210
+ labels = [_GENRE_LABELS.get(genre, "")]
211
+ if sub_genre is not None:
212
+ labels.append(_SUB_GENRE_LABELS.get(sub_genre, ""))
213
+ return " / ".join(label for label in labels if label)
214
+
215
+
216
+ def _sort_label(sort: SortBy) -> str:
217
+ """排序说明;默认的「最新」不写进表头,避免每个表头都挂一句废话。"""
218
+ if sort is SortBy.LATEST:
219
+ return ""
220
+ label = _SORT_LABELS.get(sort, "")
221
+ return f"按{label}" if label else ""
222
+
223
+
224
+ def describe_query(
225
+ *,
226
+ mode: JmListingMode,
227
+ query: str = "",
228
+ target: SearchTarget = SearchTarget.SITE,
229
+ sort: SortBy = SortBy.LATEST,
230
+ time_range: TimeRange = TimeRange.ALL,
231
+ genre: Genre = Genre.ALL,
232
+ sub_genre: SubGenre | None = None,
233
+ ) -> str:
234
+ """生成结果表头,说明这批车号是怎么来的(模式 + 生效的筛选条件)。"""
235
+ if mode == "ranking":
236
+ heading = f"🏆 禁漫{_RANKING_LABELS.get(time_range, '周榜')}"
237
+ details = [_category_label(genre, sub_genre)]
238
+ elif mode == "browse":
239
+ heading = "📚 禁漫分类浏览"
240
+ details = [
241
+ _category_label(genre, sub_genre),
242
+ _sort_label(sort),
243
+ _TIME_LABELS.get(time_range, ""),
244
+ ]
245
+ else:
246
+ heading = f"🔍 禁漫搜索「{query}」"
247
+ details = [
248
+ "" if target is SearchTarget.SITE else _TARGET_LABELS.get(target, ""),
249
+ _category_label(genre, sub_genre),
250
+ _sort_label(sort),
251
+ _TIME_LABELS.get(time_range, ""),
252
+ ]
253
+ qualifiers = ",".join(item for item in details if item)
254
+ return f"{heading}({qualifiers})" if qualifiers else heading
255
+
256
+
257
+ def format_listing(listing: Listing[BookBrief], *, heading: str, limit: int) -> str:
258
+ """把一页结果渲染成可直接返回给模型/用户的文本。"""
259
+ items = list(listing.items)[: max(0, int(limit))]
260
+ if not items:
261
+ return f"{heading}:没有找到结果。"
262
+
263
+ header = heading
264
+ page_count = listing.page_count
265
+ if listing.total is None:
266
+ header += f":第 {listing.page} 页"
267
+ else:
268
+ header += f":共 {listing.total} 条,第 {listing.page}"
269
+ header += f"/{page_count} 页" if page_count else " 页"
270
+
271
+ lines = [header]
272
+ lines.extend(_format_item(index, book) for index, book in enumerate(items, start=1))
273
+ if page_count is None:
274
+ # 分类页与排行榜不返回总数:只能提示「需要更多时」翻页,不谎称一定还有
275
+ lines.append(f"—— 需要更多结果时可用 page={listing.page + 1} 继续")
276
+ elif listing.page < page_count:
277
+ lines.append(f"—— 还有更多结果,可用 page={listing.page + 1} 继续")
278
+ return "\n".join(lines)
@@ -1,6 +1,7 @@
1
1
  """禁漫的合并转发发送与附件交付。
2
2
 
3
- 自动提取一次发送三个节点:本子信息、PDF 解密密码、PDF 文件(本地合成后随转发上传)。
3
+ 自动提取先发「本子信息 + PDF 解密密码」两节点合并转发,随后把本地合成的加密 PDF
4
+ 作为独立文件消息单独发出:转发节点里的文件在 QQ 客户端下载会失败,所以文件不进转发。
4
5
  工具侧另有两条路:``format_jm_book_info`` 只输出详情(不下载),
5
6
  ``fetch_jm_book_attachment`` 下载整本并把**未加密** PDF 注册为附件 UID(不发送),
6
7
  供 ``file_analysis_agent`` 继续解析。密码始终不会写进历史。
@@ -117,19 +118,16 @@ def build_password_text(password: str) -> str:
117
118
  def build_forward_nodes(
118
119
  info_text: str,
119
120
  *,
120
- pdf_path: Path | None = None,
121
121
  password: str = "",
122
122
  status_text: str = "",
123
123
  ) -> list[dict[str, Any]]:
124
- """构建合并转发节点:信息 / 密码或状态 / PDF 文件。
124
+ """构建合并转发节点:信息 +(密码或状态)。
125
125
 
126
- PDF 是本地合成好的真实文件,随转发一起上传:群聊下 NapCat 会把它作为群文件上传
127
- (``isGroupFile``、``busid=102``,元素里带 ``fileId`` / ``fileMd5`` / ``fileSha1``),
128
- 因此同一个 PDF 也会出现在群文件列表里,转发节点里的文件可以直接下载
129
- (2026-10-01 用 14MB PDF 实测通过)。文件只发一次,不另外发独立文件消息。
126
+ PDF 不放进转发:转发节点里的文件在 QQ 客户端下载会失败,改由 :func:`_send_result`
127
+ 在转发之后单独发一条文件消息(2026-10-01 实测,同一份文件独立发送可正常下载)。
130
128
  """
131
- if pdf_path is None:
132
- # 没有可发送的 PDF 时用状态说明替代密码与文件节点
129
+ if not password:
130
+ # 没有可发送的 PDF 时用状态说明替代密码节点
133
131
  return [
134
132
  _node(info_text, name="本子信息"),
135
133
  _node(status_text or "PDF 未发送", name="状态"),
@@ -137,18 +135,6 @@ def build_forward_nodes(
137
135
  return [
138
136
  _node(info_text, name="本子信息"),
139
137
  _node(build_password_text(password), name="解密密码"),
140
- _node(
141
- [
142
- {
143
- "type": "file",
144
- "data": {
145
- "file": f"file://{pdf_path.resolve()}",
146
- "name": pdf_path.name,
147
- },
148
- }
149
- ],
150
- name="PDF",
151
- ),
152
138
  ]
153
139
 
154
140
 
@@ -161,8 +147,10 @@ def build_history_message(result: JmDownload) -> str:
161
147
  f"章节: {result.chapter_count} 章 | 页数: {result.page_count}",
162
148
  ]
163
149
  if result.ok:
150
+ # 这条摘要随转发写入,此时文件还没上传:不能提前声称已发送。
151
+ # 上传成功时 send_group_file 会自己补一条「[文件] … 」历史,失败时补提示。
164
152
  lines.append(
165
- f"PDF: 已发送加密文件({_format_size(result.size_bytes)},密码见转发节点)"
153
+ f"PDF: 加密文件随后单独发送({_format_size(result.size_bytes)},密码见转发节点)"
166
154
  )
167
155
  else:
168
156
  lines.append("PDF: 未发送")
@@ -332,6 +320,12 @@ def _is_fatal_delivery_error(exc: BaseException) -> bool:
332
320
  )
333
321
 
334
322
 
323
+ #: 转发投递结果的三态,既进日志也拼进返回值
324
+ _FORWARD_SENT = "已发送合并转发"
325
+ _FORWARD_REJECTED = "合并转发被拒,已改为普通消息发送信息与密码"
326
+ _FORWARD_UNCERTAIN = "合并转发投递结果未确认"
327
+
328
+
335
329
  async def _send_result(
336
330
  sender: "MessageSender",
337
331
  target_type: Literal["group", "private"],
@@ -343,57 +337,68 @@ async def _send_result(
343
337
  pdf_path: Path,
344
338
  history_message: str,
345
339
  ) -> str:
346
- """发送「信息 + 密码 + PDF」三节点合并转发,返回可记录的真实投递状态。
347
-
348
- 文件只在转发里,不再额外发独立文件消息。群聊下这次上传会让 PDF 同时出现在群的
349
- 文件列表里(``busid=102``),那是 QQ 自己的行为,不是我们单独发出去的。
350
- 投递未确认 / 文件传输错误一律上抛,只有协议端**明确拒绝**才降级重发;降级时
351
- 文件没有别的入口,必须补发一条独立文件消息,否则用户拿不到 PDF。
340
+ """发送「信息 + 密码」合并转发,再单独发送 PDF 文件,返回可记录的真实投递状态。
341
+
342
+ 文件不进转发:转发节点里的文件在 QQ 客户端下载会失败,独立文件消息才下得动。
343
+ 转发被协议端**明确拒绝**时降级为两条普通消息(信息 / 密码)。投递结果未确认
344
+ (``delivery_uncertain`` / ``file_transfer_error``)时不能降级重发信息与密码——
345
+ 转发可能已经送达;但文件是另一条消息、此前从未发出,必须继续单独发送,否则用户
346
+ 整本下载白跑。文件自身投递结果未确认时同样不重发,直接上抛调用方;普通失败时补
347
+ 一条写入历史的「PDF 上传失败」提示,转发投递未确认时提示不声称信息与密码已送达。
352
348
  """
353
- nodes = build_forward_nodes(info_text, pdf_path=pdf_path, password=password)
349
+ nodes = build_forward_nodes(info_text, password=password)
350
+ forward_status = _FORWARD_SENT
354
351
  try:
355
352
  await _send_forward(
356
353
  sender, target_type, target_id, nodes, history_message=history_message
357
354
  )
358
355
  except Exception as exc:
359
356
  if _is_fatal_delivery_error(exc):
360
- logger.error("[JM] 合并转发投递结果未确认,不重发: book=%s", book_id)
361
- raise
362
- logger.exception("[JM] 合并转发失败,回退为普通消息 + 文件: book=%s", book_id)
363
- # 历史里不留密码:历史摘要与用户可见正文分开;密码消息只记「已单独发送」
364
- await _send_text(
365
- sender,
366
- target_type,
367
- target_id,
368
- info_text,
369
- history_message=history_message,
370
- )
371
- await _send_text(
372
- sender,
373
- target_type,
374
- target_id,
375
- build_password_text(password),
376
- history_message="[JM] PDF 解密密码已单独发送",
377
- )
378
- try:
379
- await _send_file(
380
- sender, target_type, target_id, str(pdf_path), str(pdf_path.name)
357
+ logger.error(
358
+ "[JM] 合并转发投递结果未确认,不重发信息与密码,继续单独发送 PDF: book=%s",
359
+ book_id,
360
+ )
361
+ forward_status = _FORWARD_UNCERTAIN
362
+ else:
363
+ logger.exception(
364
+ "[JM] 合并转发失败,回退为普通消息发送信息与密码: book=%s", book_id
365
+ )
366
+ forward_status = _FORWARD_REJECTED
367
+ # 历史里不留密码:历史摘要与用户可见正文分开;密码消息只记「已单独发送」
368
+ await _send_text(
369
+ sender,
370
+ target_type,
371
+ target_id,
372
+ info_text,
373
+ history_message=history_message,
381
374
  )
382
- except Exception as file_exc:
383
- if _is_fatal_delivery_error(file_exc):
384
- logger.error("[JM] 文件投递结果未确认,不重发: book=%s", book_id)
385
- raise
386
- logger.exception("[JM] 降级后的 PDF 文件发送失败: book=%s", book_id)
387
375
  await _send_text(
388
376
  sender,
389
377
  target_type,
390
378
  target_id,
391
- "PDF 上传失败,本次没有发送文件(信息与密码如上)。",
392
- auto_history=False,
379
+ build_password_text(password),
380
+ history_message="[JM] PDF 解密密码已单独发送",
393
381
  )
394
- return "合并转发与 PDF 文件均发送失败,已改为普通消息发送信息与密码"
395
- return "合并转发被拒,已改为普通消息发送信息与密码,并补发独立 PDF 文件"
396
- return "已发送合并转发与 PDF 文件"
382
+
383
+ try:
384
+ await _send_file(
385
+ sender, target_type, target_id, str(pdf_path), str(pdf_path.name)
386
+ )
387
+ except Exception as file_exc:
388
+ if _is_fatal_delivery_error(file_exc):
389
+ logger.error("[JM] 文件投递结果未确认,不重发: book=%s", book_id)
390
+ raise
391
+ logger.exception("[JM] PDF 文件发送失败: book=%s", book_id)
392
+ # 转发投递未确认时不能声称「信息与密码如上」——转发可能压根没送达
393
+ notice = (
394
+ "PDF 上传失败,本次没有发送文件(合并转发投递结果未确认,信息与密码可能没有送达)。"
395
+ if forward_status == _FORWARD_UNCERTAIN
396
+ else "PDF 上传失败,本次没有发送文件(信息与密码如上)。"
397
+ )
398
+ # 写进历史:转发摘要只说「随后发送」,真正发没发出去靠这条记录收口
399
+ await _send_text(sender, target_type, target_id, notice)
400
+ return f"{forward_status},PDF 文件发送失败"
401
+ return f"{forward_status},PDF 文件已单独发送"
397
402
 
398
403
 
399
404
  async def send_jm_book(
@@ -404,7 +409,7 @@ async def send_jm_book(
404
409
  target_id: int,
405
410
  config: Any,
406
411
  ) -> str:
407
- """下载整本并发送合并转发,返回可记录的状态说明。"""
412
+ """下载整本,发送「信息 + 密码」合并转发,再单独发送加密 PDF 文件。"""
408
413
  password = generate_pdf_password()
409
414
  result, task_dir = await download_book_pdf(
410
415
  book_id, config=config, password=password
@@ -295,9 +295,9 @@ mv skills/tools/my_tool skills/agents/my_agent/tools/
295
295
 
296
296
  ### info_agent(信息查询助手)
297
297
  - **功能**:调用结构化工具完成参数明确的信息查询。
298
- - **适用场景**:天气、金价、热搜、历史、Whois、网络诊断、测速、编码/哈希、B 站、QQ 等级、arXiv 检索。
298
+ - **适用场景**:天气、金价、热搜、历史、Whois、网络诊断、测速、编码/哈希、B 站、QQ 等级、arXiv 检索、禁漫本子搜索。
299
299
  - **不适用**:开放式网页搜索、网页阅读、来源核验、文件解析或长篇研究。
300
- - **子工具**:`weather_query`, `gold_price`, `baiduhot`, `weibohot`, `douyinhot`, `history`, `whois`, `net_check`, `speed`, `tcping`, `base64`, `hash`, `bilibili_search`, `bilibili_user_info`, `qq_level_query`, `arxiv_search`。
300
+ - **子工具**:`weather_query`, `gold_price`, `baiduhot`, `weibohot`, `douyinhot`, `history`, `whois`, `net_check`, `speed`, `tcping`, `base64`, `hash`, `bilibili_search`, `bilibili_user_info`, `qq_level_query`, `arxiv_search`, `jm_search`。
301
301
 
302
302
  ### entertainment_agent(娱乐助手)
303
303
  - **功能**:轻松互动、趣味内容和休闲创作。
@@ -2,7 +2,7 @@
2
2
  "type": "function",
3
3
  "function": {
4
4
  "name": "info_agent",
5
- "description": "信息查询助手,提供天气、热搜、新闻、历史、网络诊断、B站查询、arXiv 搜索、编码工具等各类实用信息查询功能。",
5
+ "description": "信息查询助手,提供天气、热搜、新闻、历史、网络诊断、B站查询、arXiv 搜索、禁漫(JM)本子搜索、编码工具等各类实用信息查询功能。",
6
6
  "parameters": {
7
7
  "type": "object",
8
8
  "properties": {
@@ -7,10 +7,11 @@
7
7
  - Whois、连通性检测、测速、TCPing、编码、哈希
8
8
  - B 站视频搜索、UP 主信息、QQ 等级
9
9
  - arXiv 论文检索
10
+ - 禁漫(JM)本子检索:关键词/作者/标签搜索、分类浏览与日周月排行,返回车号列表
10
11
 
11
12
  不适合:
12
13
  - 开放式联网搜索、网页阅读、来源核验,交给 `web_agent`
13
14
  - 文件/附件解析,交给 `file_analysis_agent`
14
15
  - 长篇研究、创作或没有明确工具参数的泛泛问题
15
16
 
16
- 输入最好包含城市、域名/IP、QQ 号、B 站关键词/UID、arXiv 关键词、待编码文本等明确参数。
17
+ 输入最好包含城市、域名/IP、QQ 号、B 站关键词/UID、arXiv 关键词、禁漫关键词、待编码文本等明确参数。
@@ -1,7 +1,7 @@
1
1
  你是信息查询助手,负责把明确的查询需求交给合适工具,并返回简明可靠的结果。
2
2
 
3
3
  能力边界:
4
- - 适合天气、金价、热搜、历史、网络诊断、Whois、编码/哈希、B 站查询、QQ 等级和 arXiv 检索。
4
+ - 适合天气、金价、热搜、历史、网络诊断、Whois、编码/哈希、B 站查询、QQ 等级、arXiv 检索和禁漫(JM)本子搜索。
5
5
  - 不做开放式网页搜索或网页阅读;这类需求应交给 `web_agent`。
6
6
  - 不做文件、附件、图片、PDF 等内容解析;这类需求应交给 `file_analysis_agent`。
7
7
 
@@ -9,6 +9,7 @@
9
9
  - 能用工具查询的内容不要凭记忆猜测。
10
10
  - 参数不足时询问关键参数;如果能从用户话里可靠推断,也可以直接查询。
11
11
  - B 站相关需求使用对应 B 站工具;arXiv 论文检索使用 `arxiv_search`。
12
+ - 禁漫本子用 `jm_search`:关键词检索用 `mode=search`(可限定作者/标签/角色、分类、时间与排序),分类浏览用 `mode=browse`,日/周/月榜用 `mode=ranking`;它只返回车号与列表,下载、发文件或正文详情不在你的能力范围内,交给主 AI 处理。
12
13
  - 相对时间相关问题如“今天”“当前”,如有当前时间工具,先校准日期。
13
14
 
14
15
  回答要求: