Undefined-bot 3.6.2__tar.gz → 3.6.3__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 (707) hide show
  1. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/CHANGELOG.md +13 -0
  2. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/PKG-INFO +28 -2
  3. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/README.md +27 -1
  4. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/pyproject.toml +1 -1
  5. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/__init__.py +1 -1
  6. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/attachments/__init__.py +8 -0
  7. undefined_bot-3.6.3/src/Undefined/attachments/forward_snapshot.py +286 -0
  8. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/attachments/segments.py +69 -14
  9. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/handlers/message_flow.py +1 -0
  10. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/file_analysis_agent/README.md +1 -0
  11. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/file_analysis_agent/prompt.md +2 -1
  12. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/file_analysis_agent/tools/analyze_multimodal/handler.py +77 -1
  13. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/messages/get_forward_msg/handler.py +121 -12
  14. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/utils/paths.py +1 -0
  15. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/.gitignore +0 -0
  16. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/ARCHITECTURE.md +0 -0
  17. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/LICENSE +0 -0
  18. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/config/README.md +0 -0
  19. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/config/mcp.json.example +0 -0
  20. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/config.toml.example +0 -0
  21. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/img/xlwy.jpg +0 -0
  22. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/res/IMPORTANT/each.md +0 -0
  23. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/res/README.md +0 -0
  24. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/res/prompts/agent_self_intro.txt +0 -0
  25. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/res/prompts/analyze_multimodal.txt +0 -0
  26. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/res/prompts/describe_image.txt +0 -0
  27. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/res/prompts/describe_meme_image.txt +0 -0
  28. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/res/prompts/generate_title.txt +0 -0
  29. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/res/prompts/historian_profile_merge.md +0 -0
  30. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/res/prompts/historian_rewrite.md +0 -0
  31. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/res/prompts/image_gen_moderation.txt +0 -0
  32. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/res/prompts/injection_detector.txt +0 -0
  33. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/res/prompts/injection_response_agent.txt +0 -0
  34. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/res/prompts/judge_meme_image.txt +0 -0
  35. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/res/prompts/merge_message_summaries.txt +0 -0
  36. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/res/prompts/merge_summaries.txt +0 -0
  37. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/res/prompts/message_summary.txt +0 -0
  38. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/res/prompts/naga_message_moderation.txt +0 -0
  39. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/res/prompts/stats_analysis.txt +0 -0
  40. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/res/prompts/summarize.txt +0 -0
  41. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/res/prompts/undefined.xml +0 -0
  42. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/res/prompts/undefined_nagaagent.xml +0 -0
  43. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/README.md +0 -0
  44. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/README.md +0 -0
  45. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/__main__.py +0 -0
  46. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/ai/__init__.py +0 -0
  47. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/ai/client/__init__.py +0 -0
  48. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/ai/client/ask_loop.py +0 -0
  49. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/ai/client/queue.py +0 -0
  50. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/ai/client/setup.py +0 -0
  51. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/ai/crawl4ai_support.py +0 -0
  52. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/ai/http.py +0 -0
  53. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/ai/llm/__init__.py +0 -0
  54. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/ai/llm/requester.py +0 -0
  55. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/ai/llm/sanitize.py +0 -0
  56. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/ai/llm/streaming.py +0 -0
  57. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/ai/llm/thinking.py +0 -0
  58. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/ai/llm/types.py +0 -0
  59. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/ai/model_selector.py +0 -0
  60. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/ai/multimodal/__init__.py +0 -0
  61. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/ai/multimodal/analyzer.py +0 -0
  62. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/ai/multimodal/constants.py +0 -0
  63. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/ai/multimodal/detection.py +0 -0
  64. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/ai/multimodal/parsing.py +0 -0
  65. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/ai/parsing.py +0 -0
  66. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/ai/prompts/__init__.py +0 -0
  67. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/ai/prompts/builder.py +0 -0
  68. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/ai/prompts/cognitive.py +0 -0
  69. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/ai/prompts/constants.py +0 -0
  70. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/ai/prompts/current_input.py +4 -4
  71. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/ai/prompts/system_context.py +0 -0
  72. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/ai/queue_budget.py +0 -0
  73. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/ai/retrieval.py +0 -0
  74. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/ai/summaries.py +0 -0
  75. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/ai/tokens.py +0 -0
  76. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/ai/tooling.py +0 -0
  77. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/ai/transports/__init__.py +0 -0
  78. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/ai/transports/openai_transport.py +0 -0
  79. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/api/__init__.py +0 -0
  80. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/api/_context.py +0 -0
  81. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/api/_helpers.py +0 -0
  82. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/api/_naga_state.py +0 -0
  83. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/api/_openapi.py +0 -0
  84. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/api/_probes.py +0 -0
  85. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/api/app.py +0 -0
  86. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/api/naga_store.py +0 -0
  87. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/api/routes/__init__.py +0 -0
  88. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/api/routes/chat.py +0 -0
  89. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/api/routes/cognitive.py +0 -0
  90. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/api/routes/commands.py +0 -0
  91. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/api/routes/health.py +0 -0
  92. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/api/routes/memes.py +0 -0
  93. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/api/routes/memory.py +0 -0
  94. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/api/routes/naga/__init__.py +0 -0
  95. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/api/routes/naga/auth.py +0 -0
  96. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/api/routes/naga/bind.py +0 -0
  97. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/api/routes/naga/send.py +0 -0
  98. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/api/routes/naga/unbind.py +0 -0
  99. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/api/routes/schedules.py +0 -0
  100. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/api/routes/system.py +0 -0
  101. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/api/routes/tools.py +0 -0
  102. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/api/webchat_store.py +0 -0
  103. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/arxiv/__init__.py +0 -0
  104. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/arxiv/client.py +0 -0
  105. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/arxiv/downloader.py +0 -0
  106. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/arxiv/models.py +0 -0
  107. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/arxiv/parser.py +0 -0
  108. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/arxiv/sender.py +0 -0
  109. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/attachments/models.py +0 -0
  110. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/attachments/registry.py +0 -0
  111. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/attachments/render.py +0 -0
  112. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/bilibili/__init__.py +0 -0
  113. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/bilibili/api_client.py +0 -0
  114. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/bilibili/danmaku.py +0 -0
  115. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/bilibili/download_core.py +0 -0
  116. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/bilibili/downloader.py +0 -0
  117. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/bilibili/errors.py +0 -0
  118. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/bilibili/models.py +0 -0
  119. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/bilibili/parser.py +0 -0
  120. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/bilibili/sender.py +0 -0
  121. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/bilibili/wbi.py +0 -0
  122. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/bilibili/wbi_request.py +0 -0
  123. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/changelog.py +0 -0
  124. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/cognitive/__init__.py +0 -0
  125. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/cognitive/chroma_scheduler.py +0 -0
  126. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/cognitive/historian/__init__.py +0 -0
  127. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/cognitive/historian/helpers.py +0 -0
  128. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/cognitive/historian/tools.py +0 -0
  129. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/cognitive/historian/worker.py +0 -0
  130. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/cognitive/job_queue.py +0 -0
  131. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/cognitive/profile_storage.py +0 -0
  132. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/cognitive/service/__init__.py +0 -0
  133. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/cognitive/service/helpers.py +0 -0
  134. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/cognitive/service/service.py +0 -0
  135. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/cognitive/vector_store.py +0 -0
  136. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/cognitive/vector_store_compat.py +0 -0
  137. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/config/__init__.py +0 -0
  138. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/config/admin.py +0 -0
  139. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/config/build_config.py +0 -0
  140. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/config/coercers.py +0 -0
  141. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/config/config_class.py +0 -0
  142. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/config/domain_parsers.py +0 -0
  143. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/config/env_registry.py +0 -0
  144. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/config/hot_reload.py +0 -0
  145. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/config/load_sections/__init__.py +0 -0
  146. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/config/load_sections/access.py +0 -0
  147. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/config/load_sections/core.py +0 -0
  148. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/config/load_sections/domains.py +0 -0
  149. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/config/load_sections/finalize.py +0 -0
  150. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/config/load_sections/history_skills.py +0 -0
  151. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/config/load_sections/integrations.py +0 -0
  152. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/config/load_sections/knowledge.py +0 -0
  153. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/config/load_sections/logging_tools.py +0 -0
  154. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/config/load_sections/models.py +0 -0
  155. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/config/load_sections/network.py +0 -0
  156. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/config/loader.py +0 -0
  157. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/config/manager.py +0 -0
  158. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/config/model_parsers.py +0 -0
  159. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/config/models.py +0 -0
  160. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/config/parsers/__init__.py +0 -0
  161. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/config/parsers/agent.py +0 -0
  162. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/config/parsers/chat.py +0 -0
  163. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/config/parsers/embedding.py +0 -0
  164. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/config/parsers/grok.py +0 -0
  165. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/config/parsers/helpers.py +0 -0
  166. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/config/parsers/historian.py +0 -0
  167. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/config/parsers/image.py +0 -0
  168. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/config/parsers/naga.py +0 -0
  169. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/config/parsers/pool.py +0 -0
  170. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/config/parsers/security.py +0 -0
  171. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/config/parsers/summary.py +0 -0
  172. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/config/parsers/vision.py +0 -0
  173. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/config/resolvers.py +0 -0
  174. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/config/toml_io.py +0 -0
  175. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/config/webui_settings.py +0 -0
  176. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/context.py +0 -0
  177. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/context_resource_registry.py +0 -0
  178. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/end_summary_storage.py +0 -0
  179. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/faq.py +0 -0
  180. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/github/__init__.py +0 -0
  181. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/github/client.py +0 -0
  182. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/github/models.py +0 -0
  183. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/github/parser.py +0 -0
  184. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/github/sender.py +0 -0
  185. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/handlers/__init__.py +0 -0
  186. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/handlers/auto_extract.py +0 -0
  187. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/handlers/poke.py +0 -0
  188. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/handlers/repeat.py +0 -0
  189. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/injection_response_agent.py +0 -0
  190. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/knowledge/__init__.py +0 -0
  191. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/knowledge/chunker.py +0 -0
  192. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/knowledge/embedder.py +0 -0
  193. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/knowledge/manager.py +0 -0
  194. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/knowledge/reranker.py +0 -0
  195. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/knowledge/runtime.py +0 -0
  196. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/knowledge/store.py +0 -0
  197. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/main.py +0 -0
  198. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/mcp/__init__.py +0 -0
  199. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/mcp/registry.py +0 -0
  200. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/memes/__init__.py +0 -0
  201. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/memes/_image_utils.py +0 -0
  202. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/memes/ingest.py +0 -0
  203. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/memes/models.py +0 -0
  204. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/memes/search.py +0 -0
  205. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/memes/service.py +0 -0
  206. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/memes/store.py +0 -0
  207. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/memes/vector_store.py +0 -0
  208. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/memes/worker.py +0 -0
  209. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/memory.py +0 -0
  210. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/onebot/__init__.py +0 -0
  211. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/onebot/client.py +0 -0
  212. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/onebot/message.py +0 -0
  213. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/py.typed +0 -0
  214. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/rate_limit.py +0 -0
  215. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/render.py +0 -0
  216. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/scheduled_task_storage.py +0 -0
  217. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/services/__init__.py +0 -0
  218. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/services/command.py +0 -0
  219. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/services/commands/__init__.py +0 -0
  220. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/services/commands/bugfix.py +0 -0
  221. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/services/commands/context.py +0 -0
  222. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/services/commands/registry.py +0 -0
  223. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/services/commands/stats.py +0 -0
  224. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/services/coordinator/__init__.py +0 -0
  225. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/services/coordinator/background.py +0 -0
  226. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/services/coordinator/batching.py +0 -0
  227. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/services/coordinator/group.py +0 -0
  228. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/services/coordinator/message_ids.py +0 -0
  229. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/services/coordinator/private.py +0 -0
  230. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/services/message_batcher/__init__.py +0 -0
  231. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/services/message_batcher/scheduler.py +0 -0
  232. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/services/message_batcher/state.py +0 -0
  233. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/services/message_summary_fetch.py +0 -0
  234. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/services/model_pool.py +0 -0
  235. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/services/queue_manager.py +0 -0
  236. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/services/security.py +0 -0
  237. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/README.md +0 -0
  238. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/__init__.py +0 -0
  239. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/README.md +0 -0
  240. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/__init__.py +0 -0
  241. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/agent_tool_registry.py +0 -0
  242. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/code_delivery_agent/config.json +0 -0
  243. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/code_delivery_agent/docker_utils.py +0 -0
  244. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/code_delivery_agent/handler.py +0 -0
  245. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/code_delivery_agent/intro.md +0 -0
  246. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/code_delivery_agent/mcp.json +0 -0
  247. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/code_delivery_agent/prompt.md +0 -0
  248. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/code_delivery_agent/tools/copy/config.json +0 -0
  249. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/code_delivery_agent/tools/copy/handler.py +0 -0
  250. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/code_delivery_agent/tools/delete/config.json +0 -0
  251. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/code_delivery_agent/tools/delete/handler.py +0 -0
  252. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/code_delivery_agent/tools/diff/config.json +0 -0
  253. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/code_delivery_agent/tools/diff/handler.py +0 -0
  254. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/code_delivery_agent/tools/end/config.json +0 -0
  255. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/code_delivery_agent/tools/end/handler.py +0 -0
  256. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/code_delivery_agent/tools/glob/config.json +0 -0
  257. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/code_delivery_agent/tools/glob/handler.py +0 -0
  258. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/code_delivery_agent/tools/grep/config.json +0 -0
  259. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/code_delivery_agent/tools/grep/handler.py +0 -0
  260. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/code_delivery_agent/tools/init_docker/config.json +0 -0
  261. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/code_delivery_agent/tools/init_docker/handler.py +0 -0
  262. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/code_delivery_agent/tools/read/config.json +0 -0
  263. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/code_delivery_agent/tools/read/handler.py +0 -0
  264. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/code_delivery_agent/tools/run_bash_command/config.json +0 -0
  265. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/code_delivery_agent/tools/run_bash_command/handler.py +0 -0
  266. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/code_delivery_agent/tools/todo/config.json +0 -0
  267. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/code_delivery_agent/tools/todo/handler.py +0 -0
  268. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/code_delivery_agent/tools/tree/config.json +0 -0
  269. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/code_delivery_agent/tools/tree/handler.py +0 -0
  270. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/code_delivery_agent/tools/write/config.json +0 -0
  271. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/code_delivery_agent/tools/write/handler.py +0 -0
  272. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/entertainment_agent/README.md +0 -0
  273. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/entertainment_agent/config.json +0 -0
  274. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/entertainment_agent/handler.py +0 -0
  275. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/entertainment_agent/intro.md +0 -0
  276. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/entertainment_agent/prompt.md +0 -0
  277. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/entertainment_agent/tools/__init__.py +0 -0
  278. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/entertainment_agent/tools/ai_draw_one/config.json +0 -0
  279. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/entertainment_agent/tools/ai_draw_one/handler.py +0 -0
  280. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/entertainment_agent/tools/horoscope/config.json +0 -0
  281. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/entertainment_agent/tools/horoscope/handler.py +0 -0
  282. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/entertainment_agent/tools/minecraft_skin/config.json +0 -0
  283. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/entertainment_agent/tools/minecraft_skin/handler.py +0 -0
  284. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/entertainment_agent/tools/renjian/config.json +0 -0
  285. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/entertainment_agent/tools/renjian/handler.py +0 -0
  286. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/entertainment_agent/tools/wenchang_dijun/config.json +0 -0
  287. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/entertainment_agent/tools/wenchang_dijun/handler.py +0 -0
  288. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/file_analysis_agent/__init__.py +0 -0
  289. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/file_analysis_agent/config.json +0 -0
  290. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/file_analysis_agent/handler.py +0 -0
  291. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/file_analysis_agent/intro.md +0 -0
  292. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/file_analysis_agent/tools/__init__.py +0 -0
  293. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/file_analysis_agent/tools/analyze_code/config.json +0 -0
  294. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/file_analysis_agent/tools/analyze_code/handler.py +0 -0
  295. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/file_analysis_agent/tools/analyze_multimodal/config.json +0 -0
  296. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/file_analysis_agent/tools/cleanup_temp/config.json +0 -0
  297. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/file_analysis_agent/tools/cleanup_temp/handler.py +0 -0
  298. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/file_analysis_agent/tools/describe_pdf_page/config.json +0 -0
  299. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/file_analysis_agent/tools/describe_pdf_page/handler.py +0 -0
  300. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/file_analysis_agent/tools/detect_file_type/config.json +0 -0
  301. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/file_analysis_agent/tools/detect_file_type/handler.py +0 -0
  302. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/file_analysis_agent/tools/download_file/config.json +0 -0
  303. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/file_analysis_agent/tools/download_file/handler.py +0 -0
  304. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/file_analysis_agent/tools/extract_archive/config.json +0 -0
  305. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/file_analysis_agent/tools/extract_archive/handler.py +0 -0
  306. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/file_analysis_agent/tools/extract_docx/config.json +0 -0
  307. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/file_analysis_agent/tools/extract_docx/handler.py +0 -0
  308. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/file_analysis_agent/tools/extract_pdf/config.json +0 -0
  309. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/file_analysis_agent/tools/extract_pdf/handler.py +0 -0
  310. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/file_analysis_agent/tools/extract_pptx/config.json +0 -0
  311. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/file_analysis_agent/tools/extract_pptx/handler.py +0 -0
  312. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/file_analysis_agent/tools/extract_xlsx/config.json +0 -0
  313. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/file_analysis_agent/tools/extract_xlsx/handler.py +0 -0
  314. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/file_analysis_agent/tools/read_text_file/config.json +0 -0
  315. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/file_analysis_agent/tools/read_text_file/handler.py +0 -0
  316. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/info_agent/README.md +0 -0
  317. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/info_agent/config.json +0 -0
  318. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/info_agent/handler.py +0 -0
  319. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/info_agent/intro.md +0 -0
  320. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/info_agent/prompt.md +0 -0
  321. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/info_agent/tools/__init__.py +0 -0
  322. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/info_agent/tools/arxiv_search/config.json +0 -0
  323. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/info_agent/tools/arxiv_search/handler.py +0 -0
  324. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/info_agent/tools/baiduhot/config.json +0 -0
  325. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/info_agent/tools/baiduhot/handler.py +0 -0
  326. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/info_agent/tools/base64/config.json +0 -0
  327. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/info_agent/tools/base64/handler.py +0 -0
  328. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/info_agent/tools/bilibili_search/config.json +0 -0
  329. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/info_agent/tools/bilibili_search/handler.py +0 -0
  330. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/info_agent/tools/bilibili_user_info/config.json +0 -0
  331. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/info_agent/tools/bilibili_user_info/handler.py +0 -0
  332. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/info_agent/tools/douyinhot/config.json +0 -0
  333. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/info_agent/tools/douyinhot/handler.py +0 -0
  334. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/info_agent/tools/gold_price/config.json +0 -0
  335. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/info_agent/tools/gold_price/handler.py +0 -0
  336. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/info_agent/tools/hash/config.json +0 -0
  337. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/info_agent/tools/hash/handler.py +0 -0
  338. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/info_agent/tools/history/config.json +0 -0
  339. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/info_agent/tools/history/handler.py +0 -0
  340. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/info_agent/tools/net_check/config.json +0 -0
  341. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/info_agent/tools/net_check/handler.py +0 -0
  342. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/info_agent/tools/qq_level_query/config.json +0 -0
  343. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/info_agent/tools/qq_level_query/handler.py +0 -0
  344. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/info_agent/tools/speed/config.json +0 -0
  345. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/info_agent/tools/speed/handler.py +0 -0
  346. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/info_agent/tools/tcping/config.json +0 -0
  347. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/info_agent/tools/tcping/handler.py +0 -0
  348. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/info_agent/tools/weather_query/config.json +0 -0
  349. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/info_agent/tools/weather_query/handler.py +0 -0
  350. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/info_agent/tools/weibohot/config.json +0 -0
  351. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/info_agent/tools/weibohot/handler.py +0 -0
  352. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/info_agent/tools/whois/config.json +0 -0
  353. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/info_agent/tools/whois/handler.py +0 -0
  354. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/intro_generator.py +0 -0
  355. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/intro_utils.py +0 -0
  356. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/naga_code_analysis_agent/README.md +0 -0
  357. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/naga_code_analysis_agent/config.json +0 -0
  358. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/naga_code_analysis_agent/handler.py +0 -0
  359. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/naga_code_analysis_agent/intro.md +0 -0
  360. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/naga_code_analysis_agent/mcp.json +0 -0
  361. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/naga_code_analysis_agent/prompt.md +0 -0
  362. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/naga_code_analysis_agent/tools/__init__.py +0 -0
  363. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/naga_code_analysis_agent/tools/glob/config.json +0 -0
  364. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/naga_code_analysis_agent/tools/glob/handler.py +0 -0
  365. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/naga_code_analysis_agent/tools/list_directory/config.json +0 -0
  366. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/naga_code_analysis_agent/tools/list_directory/handler.py +0 -0
  367. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/naga_code_analysis_agent/tools/read_file/config.json +0 -0
  368. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/naga_code_analysis_agent/tools/read_file/handler.py +0 -0
  369. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/naga_code_analysis_agent/tools/read_naga_intro/config.json +0 -0
  370. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/naga_code_analysis_agent/tools/read_naga_intro/handler.py +0 -0
  371. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/naga_code_analysis_agent/tools/search_file_content/config.json +0 -0
  372. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/naga_code_analysis_agent/tools/search_file_content/handler.py +0 -0
  373. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/runner/__init__.py +0 -0
  374. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/runner/context.py +0 -0
  375. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/runner/loop.py +0 -0
  376. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/runner/tools.py +0 -0
  377. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/runner/webchat_utils.py +0 -0
  378. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/summary_agent/__init__.py +0 -0
  379. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/summary_agent/config.json +0 -0
  380. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/summary_agent/handler.py +0 -0
  381. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/summary_agent/intro.md +0 -0
  382. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/summary_agent/prompt.md +0 -0
  383. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/summary_agent/tools/__init__.py +0 -0
  384. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/summary_agent/tools/fetch_messages/config.json +0 -0
  385. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/summary_agent/tools/fetch_messages/handler.py +0 -0
  386. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/undefined_self_code_agent/README.md +0 -0
  387. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/undefined_self_code_agent/__init__.py +0 -0
  388. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/undefined_self_code_agent/config.json +0 -0
  389. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/undefined_self_code_agent/handler.py +0 -0
  390. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/undefined_self_code_agent/intro.md +0 -0
  391. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/undefined_self_code_agent/prompt.md +0 -0
  392. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/undefined_self_code_agent/tools/__init__.py +0 -0
  393. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/undefined_self_code_agent/tools/_shared.py +0 -0
  394. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/undefined_self_code_agent/tools/glob/config.json +0 -0
  395. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/undefined_self_code_agent/tools/glob/handler.py +0 -0
  396. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/undefined_self_code_agent/tools/list_directory/config.json +0 -0
  397. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/undefined_self_code_agent/tools/list_directory/handler.py +0 -0
  398. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/undefined_self_code_agent/tools/read_file/config.json +0 -0
  399. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/undefined_self_code_agent/tools/read_file/handler.py +0 -0
  400. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/undefined_self_code_agent/tools/search_file_content/config.json +0 -0
  401. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/undefined_self_code_agent/tools/search_file_content/handler.py +0 -0
  402. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/web_agent/README.md +0 -0
  403. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/web_agent/callable.json +0 -0
  404. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/web_agent/config.json +0 -0
  405. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/web_agent/handler.py +0 -0
  406. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/web_agent/intro.md +0 -0
  407. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/web_agent/mcp.json +0 -0
  408. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/web_agent/prompt.md +0 -0
  409. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/web_agent/tools/__init__.py +0 -0
  410. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/web_agent/tools/crawl_webpage/config.json +0 -0
  411. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/web_agent/tools/crawl_webpage/handler.py +0 -0
  412. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/web_agent/tools/grok_search/config.json +0 -0
  413. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/web_agent/tools/grok_search/handler.py +0 -0
  414. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/web_agent/tools/web_search/config.json +0 -0
  415. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/agents/web_agent/tools/web_search/handler.py +0 -0
  416. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/anthropic_skills/__init__.py +0 -0
  417. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/anthropic_skills/loader.py +0 -0
  418. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/commands/README.md +0 -0
  419. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/commands/admin/README.md +0 -0
  420. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/commands/admin/config.json +0 -0
  421. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/commands/admin/handler.py +0 -0
  422. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/commands/bugfix/README.md +0 -0
  423. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/commands/bugfix/config.json +0 -0
  424. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/commands/bugfix/handler.py +0 -0
  425. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/commands/changelog/README.md +0 -0
  426. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/commands/changelog/config.json +0 -0
  427. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/commands/changelog/handler.py +0 -0
  428. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/commands/copyright/README.md +0 -0
  429. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/commands/copyright/config.json +0 -0
  430. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/commands/copyright/handler.py +0 -0
  431. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/commands/faq/README.md +0 -0
  432. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/commands/faq/config.json +0 -0
  433. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/commands/faq/handler.py +0 -0
  434. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/commands/feedback/README.md +0 -0
  435. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/commands/feedback/config.json +0 -0
  436. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/commands/feedback/handler.py +0 -0
  437. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/commands/help/README.md +0 -0
  438. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/commands/help/config.json +0 -0
  439. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/commands/help/handler.py +0 -0
  440. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/commands/naga/README.md +0 -0
  441. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/commands/naga/config.json +0 -0
  442. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/commands/naga/handler.py +0 -0
  443. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/commands/naga/policy.py +0 -0
  444. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/commands/profile/README.md +0 -0
  445. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/commands/profile/config.json +0 -0
  446. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/commands/profile/handler.py +0 -0
  447. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/commands/stats/README.md +0 -0
  448. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/commands/stats/config.json +0 -0
  449. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/commands/stats/handler.py +0 -0
  450. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/commands/summary/config.json +0 -0
  451. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/commands/summary/handler.py +0 -0
  452. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/commands/version/config.json +0 -0
  453. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/commands/version/handler.py +0 -0
  454. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/http_client.py +0 -0
  455. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/http_config.py +0 -0
  456. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/pipelines/__init__.py +0 -0
  457. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/pipelines/arxiv/config.json +0 -0
  458. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/pipelines/arxiv/handler.py +0 -0
  459. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/pipelines/bilibili/config.json +0 -0
  460. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/pipelines/bilibili/handler.py +0 -0
  461. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/pipelines/context.py +0 -0
  462. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/pipelines/github/config.json +0 -0
  463. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/pipelines/github/handler.py +0 -0
  464. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/pipelines/models.py +0 -0
  465. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/pipelines/registry.py +0 -0
  466. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/registry.py +0 -0
  467. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/tools/README.md +0 -0
  468. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/tools/__init__.py +0 -0
  469. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/tools/arxiv_paper/README.md +0 -0
  470. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/tools/arxiv_paper/callable.json +0 -0
  471. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/tools/arxiv_paper/config.json +0 -0
  472. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/tools/arxiv_paper/handler.py +0 -0
  473. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/tools/bilibili_video/README.md +0 -0
  474. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/tools/bilibili_video/callable.json +0 -0
  475. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/tools/bilibili_video/config.json +0 -0
  476. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/tools/bilibili_video/handler.py +0 -0
  477. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/tools/calculator/callable.json +0 -0
  478. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/tools/calculator/config.json +0 -0
  479. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/tools/calculator/handler.py +0 -0
  480. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/tools/changelog_query/README.md +0 -0
  481. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/tools/changelog_query/config.json +0 -0
  482. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/tools/changelog_query/handler.py +0 -0
  483. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/tools/end/README.md +0 -0
  484. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/tools/end/config.json +0 -0
  485. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/tools/end/handler.py +0 -0
  486. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/tools/fetch_image_uid/config.json +0 -0
  487. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/tools/fetch_image_uid/handler.py +0 -0
  488. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/tools/get_current_time/README.md +0 -0
  489. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/tools/get_current_time/callable.json +0 -0
  490. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/tools/get_current_time/config.json +0 -0
  491. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/tools/get_current_time/handler.py +0 -0
  492. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/tools/get_picture/README.md +0 -0
  493. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/tools/get_picture/config.json +0 -0
  494. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/tools/get_picture/handler.py +0 -0
  495. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/tools/get_user_info/README.md +0 -0
  496. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/tools/get_user_info/config.json +0 -0
  497. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/tools/get_user_info/handler.py +0 -0
  498. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/tools/knowledge_list/config.json +0 -0
  499. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/tools/knowledge_list/handler.py +0 -0
  500. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/tools/knowledge_semantic_search/config.json +0 -0
  501. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/tools/knowledge_semantic_search/handler.py +0 -0
  502. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/tools/knowledge_text_search/config.json +0 -0
  503. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/tools/knowledge_text_search/handler.py +0 -0
  504. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/tools/python_interpreter/README.md +0 -0
  505. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/tools/python_interpreter/config.json +0 -0
  506. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/tools/python_interpreter/handler.py +0 -0
  507. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/tools/qq_like/README.md +0 -0
  508. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/tools/qq_like/config.json +0 -0
  509. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/tools/qq_like/handler.py +0 -0
  510. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/tools/task_progress/config.json +0 -0
  511. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/tools/task_progress/handler.py +0 -0
  512. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/README.md +0 -0
  513. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/__init__.py +0 -0
  514. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/attachments/get_uid_by_url/config.json +0 -0
  515. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/attachments/get_uid_by_url/handler.py +0 -0
  516. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/attachments/get_url_by_uid/config.json +0 -0
  517. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/attachments/get_url_by_uid/handler.py +0 -0
  518. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/cognitive/get_profile/config.json +0 -0
  519. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/cognitive/get_profile/handler.py +0 -0
  520. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/cognitive/search_events/config.json +0 -0
  521. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/cognitive/search_events/handler.py +0 -0
  522. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/cognitive/search_profiles/config.json +0 -0
  523. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/cognitive/search_profiles/handler.py +0 -0
  524. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/contacts/query_friends/config.json +0 -0
  525. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/contacts/query_friends/handler.py +0 -0
  526. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/contacts/query_groups/config.json +0 -0
  527. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/contacts/query_groups/handler.py +0 -0
  528. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/group/README.md +0 -0
  529. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/group/find_member/config.json +0 -0
  530. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/group/find_member/handler.py +0 -0
  531. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/group/get_avatar/config.json +0 -0
  532. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/group/get_avatar/handler.py +0 -0
  533. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/group/get_files/config.json +0 -0
  534. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/group/get_files/handler.py +0 -0
  535. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/group/get_honor_info/config.json +0 -0
  536. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/group/get_honor_info/handler.py +0 -0
  537. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/group/get_member_info/config.json +0 -0
  538. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/group/get_member_info/handler.py +0 -0
  539. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/group/get_member_list/config.json +0 -0
  540. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/group/get_member_list/handler.py +0 -0
  541. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/group/get_member_title/config.json +0 -0
  542. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/group/get_member_title/handler.py +0 -0
  543. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/group_analysis/README.md +0 -0
  544. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/group_analysis/activity_trend/config.json +0 -0
  545. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/group_analysis/activity_trend/handler.py +0 -0
  546. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/group_analysis/filter_members/config.json +0 -0
  547. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/group_analysis/filter_members/handler.py +0 -0
  548. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/group_analysis/inactive_risk/config.json +0 -0
  549. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/group_analysis/inactive_risk/handler.py +0 -0
  550. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/group_analysis/join_statistics/config.json +0 -0
  551. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/group_analysis/join_statistics/handler.py +0 -0
  552. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/group_analysis/level_distribution/config.json +0 -0
  553. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/group_analysis/level_distribution/handler.py +0 -0
  554. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/group_analysis/member_activity/config.json +0 -0
  555. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/group_analysis/member_activity/handler.py +0 -0
  556. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/group_analysis/member_messages/config.json +0 -0
  557. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/group_analysis/member_messages/handler.py +0 -0
  558. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/group_analysis/member_structure/config.json +0 -0
  559. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/group_analysis/member_structure/handler.py +0 -0
  560. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/group_analysis/message_mix/config.json +0 -0
  561. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/group_analysis/message_mix/handler.py +0 -0
  562. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/group_analysis/new_member_activity/config.json +0 -0
  563. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/group_analysis/new_member_activity/handler.py +0 -0
  564. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/group_analysis/rank_members/config.json +0 -0
  565. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/group_analysis/rank_members/handler.py +0 -0
  566. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/mcp/README.md +0 -0
  567. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/mcp/__init__.py +0 -0
  568. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/memes/README.md +0 -0
  569. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/memes/search_memes/config.json +0 -0
  570. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/memes/search_memes/handler.py +0 -0
  571. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/memes/send_meme_by_uid/config.json +0 -0
  572. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/memes/send_meme_by_uid/handler.py +0 -0
  573. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/memory/README.md +0 -0
  574. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/memory/add/config.json +0 -0
  575. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/memory/add/handler.py +0 -0
  576. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/memory/delete/config.json +0 -0
  577. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/memory/delete/handler.py +0 -0
  578. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/memory/list/config.json +0 -0
  579. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/memory/list/handler.py +0 -0
  580. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/memory/update/config.json +0 -0
  581. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/memory/update/handler.py +0 -0
  582. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/messages/README.md +0 -0
  583. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/messages/context_utils.py +0 -0
  584. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/messages/get_forward_msg/config.json +0 -0
  585. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/messages/get_messages_by_time/config.json +0 -0
  586. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/messages/get_messages_by_time/handler.py +0 -0
  587. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/messages/get_recent_messages/config.json +0 -0
  588. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/messages/get_recent_messages/handler.py +0 -0
  589. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/messages/list_emojis/config.json +0 -0
  590. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/messages/list_emojis/handler.py +0 -0
  591. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/messages/lookup_emoji_id/config.json +0 -0
  592. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/messages/lookup_emoji_id/handler.py +0 -0
  593. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/messages/react_message_emoji/config.json +0 -0
  594. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/messages/react_message_emoji/handler.py +0 -0
  595. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/messages/send_group_sign/config.json +0 -0
  596. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/messages/send_group_sign/handler.py +0 -0
  597. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/messages/send_message/config.json +0 -0
  598. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/messages/send_message/handler.py +0 -0
  599. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/messages/send_poke/config.json +0 -0
  600. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/messages/send_poke/handler.py +0 -0
  601. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/messages/send_private_message/config.json +0 -0
  602. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/messages/send_private_message/handler.py +0 -0
  603. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/messages/send_text_file/callable.json +0 -0
  604. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/messages/send_text_file/config.json +0 -0
  605. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/messages/send_text_file/handler.py +0 -0
  606. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/messages/send_url_file/callable.json +0 -0
  607. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/messages/send_url_file/config.json +0 -0
  608. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/messages/send_url_file/handler.py +0 -0
  609. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/notices/README.md +0 -0
  610. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/notices/get/config.json +0 -0
  611. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/notices/get/handler.py +0 -0
  612. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/notices/list/config.json +0 -0
  613. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/notices/list/handler.py +0 -0
  614. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/notices/stats/config.json +0 -0
  615. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/notices/stats/handler.py +0 -0
  616. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/render/README.md +0 -0
  617. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/render/render_html/config.json +0 -0
  618. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/render/render_html/handler.py +0 -0
  619. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/render/render_latex/config.json +0 -0
  620. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/render/render_latex/handler.py +0 -0
  621. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/render/render_markdown/config.json +0 -0
  622. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/render/render_markdown/handler.py +0 -0
  623. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/scheduler/README.md +0 -0
  624. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/scheduler/create_schedule_task/config.json +0 -0
  625. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/scheduler/create_schedule_task/handler.py +0 -0
  626. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/scheduler/delete_schedule_task/config.json +0 -0
  627. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/scheduler/delete_schedule_task/handler.py +0 -0
  628. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/scheduler/list_schedule_tasks/config.json +0 -0
  629. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/scheduler/list_schedule_tasks/handler.py +0 -0
  630. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/scheduler/update_schedule_task/config.json +0 -0
  631. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/skills/toolsets/scheduler/update_schedule_task/handler.py +0 -0
  632. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/token_usage_storage.py +0 -0
  633. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/utils/__init__.py +0 -0
  634. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/utils/cache.py +0 -0
  635. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/utils/coerce.py +0 -0
  636. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/utils/common.py +0 -0
  637. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/utils/cors.py +0 -0
  638. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/utils/fake_at.py +0 -0
  639. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/utils/file_lock.py +0 -0
  640. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/utils/group_metrics.py +0 -0
  641. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/utils/history.py +0 -0
  642. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/utils/http_download.py +0 -0
  643. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/utils/io.py +0 -0
  644. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/utils/logging.py +0 -0
  645. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/utils/member_utils.py +0 -0
  646. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/utils/message_targets.py +0 -0
  647. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/utils/message_turn.py +0 -0
  648. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/utils/message_utils.py +0 -0
  649. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/utils/qq_emoji.py +0 -0
  650. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/utils/queue_intervals.py +0 -0
  651. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/utils/recent_messages.py +0 -0
  652. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/utils/render_cache.py +0 -0
  653. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/utils/request_params.py +0 -0
  654. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/utils/resources.py +0 -0
  655. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/utils/scheduler.py +0 -0
  656. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/utils/self_update.py +0 -0
  657. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/utils/sender.py +0 -0
  658. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/utils/sender_helpers.py +0 -0
  659. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/utils/time_utils.py +0 -0
  660. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/utils/tool_calls.py +0 -0
  661. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/utils/xml.py +0 -0
  662. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/webui/__init__.py +0 -0
  663. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/webui/__main__.py +0 -0
  664. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/webui/app.py +0 -0
  665. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/webui/core.py +0 -0
  666. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/webui/routes/__init__.py +0 -0
  667. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/webui/routes/_auth.py +0 -0
  668. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/webui/routes/_bot.py +0 -0
  669. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/webui/routes/_config.py +0 -0
  670. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/webui/routes/_index.py +0 -0
  671. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/webui/routes/_logs.py +0 -0
  672. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/webui/routes/_memes.py +0 -0
  673. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/webui/routes/_runtime.py +0 -0
  674. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/webui/routes/_shared.py +0 -0
  675. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/webui/routes/_system.py +0 -0
  676. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/webui/static/css/.stylelintrc.json +0 -0
  677. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/webui/static/css/app.css +0 -0
  678. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/webui/static/css/base.css +0 -0
  679. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/webui/static/css/components.css +0 -0
  680. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/webui/static/css/highlight-github.min.css +0 -0
  681. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/webui/static/css/landing.css +0 -0
  682. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/webui/static/css/responsive.css +0 -0
  683. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/webui/static/css/style.css +0 -0
  684. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/webui/static/css/variables.css +0 -0
  685. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/webui/static/favicon.svg +0 -0
  686. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/webui/static/js/api.js +0 -0
  687. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/webui/static/js/auth.js +0 -0
  688. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/webui/static/js/bot.js +0 -0
  689. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/webui/static/js/config-form.js +0 -0
  690. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/webui/static/js/i18n.js +0 -0
  691. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/webui/static/js/log-view.js +0 -0
  692. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/webui/static/js/logs.js +0 -0
  693. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/webui/static/js/main.js +0 -0
  694. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/webui/static/js/memes.js +0 -0
  695. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/webui/static/js/runtime.js +0 -0
  696. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/webui/static/js/schedules.js +0 -0
  697. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/webui/static/js/state.js +0 -0
  698. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/webui/static/js/ui.js +0 -0
  699. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/webui/static/js/vendor/highlight.min.js +0 -0
  700. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/webui/static/js/vendor/highlightjs.LICENSE +0 -0
  701. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/webui/static/js/vendor/marked.min.js +0 -0
  702. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/webui/templates/index.html +0 -0
  703. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/webui/utils/__init__.py +0 -0
  704. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/webui/utils/comment.py +0 -0
  705. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/webui/utils/config_io.py +0 -0
  706. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/webui/utils/config_sync.py +0 -0
  707. {undefined_bot-3.6.2 → undefined_bot-3.6.3}/src/Undefined/webui/utils/toml_render.py +0 -0
@@ -1,3 +1,16 @@
1
+ ## v3.6.3 合并转发快照、附件 UID 分析与 Release 下载说明
2
+
3
+ 本版本聚焦合并转发在协议端不可二次读取时的可用性:收到消息时先把可访问的转发树按会话保存为本地快照,后续工具读取优先复用快照,避免内层转发过期或回源失败导致 AI 看不到内容。同时补齐文件分析 Agent 对内部附件 UID 的直接解析能力,并澄清 Release 产物的下载选择。
4
+
5
+ - 新增合并转发快照缓存。消息预处理阶段会递归保存当前可访问的合并转发树到 `data/cache/forward_snapshots/`,保留实时上下文中的 `<forward uid="..."/>` 语义;快照按会话隔离,并合并同一转发的并发抓取。
6
+ - 改进 `messages.get_forward_msg`。工具支持 `forward_` UID 与原始 ID 优先读取本地快照,缺失时再回源 OneBot 并补写快照;协议端无法二次读取内层转发时,会返回明确诊断和可见原始字段,而不是只报空内容。
7
+ - 修复合并转发当前轮上下文重复。Prompt 构建在剔除当前消息历史副本时优先匹配 `message_id`,避免历史中的递归展开文本与实时 `<forward uid="..."/>` 在同一轮重复注入。
8
+ - 增强文件分析附件链路。`file_analysis_agent` 的 `analyze_multimodal` 可直接接收 `pic_` / `file_` UID,按当前会话作用域解析并本地化后再分析;Agent 提示同步明确不要改写或猜测附件 UID。
9
+ - 澄清 Release 下载选择。README 与部署、构建、App 文档补充说明:部署 QQ Bot 通常不需要下载 Release 客户端安装包,Console / Chat 仅作为远程管理或原生聊天的可选组件。
10
+ - 同步 3.6.3 版本号与测试覆盖。Python 包、Console、Chat、Tauri 与 lock 文件版本统一更新;新增合并转发快照、转发读取回退、多模态附件 UID 和当前消息去重回归测试。
11
+
12
+ ---
13
+
1
14
  ## v3.6.2 合并转发 UID、表情包跟进与协调器清理
2
15
 
3
16
  本版本继续收敛消息附件链路和协调器结构:合并转发可作为会话内 `forward_` UID 被 AI 按层读取和复用,表情包跟进策略更稳定,同时移除旧版协调器兼容模块,并完成 3.6.2 版本号同步。
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: Undefined-bot
3
- Version: 3.6.2
3
+ Version: 3.6.3
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
@@ -88,6 +88,32 @@ Description-Content-Type: text/markdown
88
88
 
89
89
  [点击添加官方实例QQ](https://qm.qq.com/q/cvjJoNysGA)
90
90
 
91
+ ## Release 下载速查
92
+
93
+ 如果只是部署和运行 QQ Bot,通常**不需要**在 GitHub Release 的 Assets 里下载任何文件。推荐按下方[快速开始](#-快速开始-源码模式)使用源码部署;只想快速体验命令行入口时,可使用 `pip install -U Undefined-bot` 或 `uv tool install Undefined-bot`。
94
+
95
+ Release 里的安装包是可选组件,不是 Bot 服务本体:
96
+
97
+ | 目标 | 是否需要下载 Release | 选择 |
98
+ | --- | --- | --- |
99
+ | 部署 / 运行 QQ Bot | 不需要 | 源码部署,启动 `uv run Undefined-webui`;或使用 `pip` / `uv tool` 安装 Python 包 |
100
+ | 远程管理已有实例 | 可选 | `Undefined-Console-*`,用于连接 Management API 并打开远程 WebUI |
101
+ | 使用原生聊天客户端 | 可选 | `Undefined-Chat-*`,用于连接 Runtime API 聊天 |
102
+ | 离线安装 / 镜像缓存 Python 包 | 可选 | `undefined_bot-*.whl` 或 `undefined_bot-*.tar.gz` |
103
+
104
+ 平台文件选择:
105
+
106
+ | 平台 | 推荐下载 |
107
+ | --- | --- |
108
+ | Windows x64 | `*-windows-x64-setup.exe`;批量部署或系统管理场景可选 `.msi` |
109
+ | macOS Apple Silicon | `*-macos-arm64.dmg` |
110
+ | macOS Intel | `*-macos-x64.dmg` |
111
+ | Debian / Ubuntu | `*.deb` |
112
+ | 其他 Linux x64 | `*.AppImage` |
113
+ | Android 常见手机 / 平板 | `*-android-arm64-v8a-release.apk`;旧 32 位设备选 `armeabi-v7a`,模拟器按需选 `x86_64` / `x86` |
114
+
115
+ Console 和 Chat 都需要连接到已经运行的 Undefined 服务。首次部署请先启动 `Undefined-webui`,完成配置和 Bot 启动后,再按需使用这些客户端连接。
116
+
91
117
  ## ⚡ 核心特性
92
118
 
93
119
  - **Skills 架构**:全新设计的技能系统,将基础工具(Tools)与智能代理(Agents)分层管理,支持自动发现与注册。
@@ -185,7 +211,7 @@ uv run Undefined-webui
185
211
  # cp config.toml.example config.toml
186
212
  ```
187
213
 
188
- > 浏览器是默认入口;如果你下载了 Release 中的桌面端或 Android 安装包,也可以在完成首轮密码设置后,连接到同一个 Management API 地址进行远程管理。
214
+ > 浏览器是默认入口;如果你按上方 [Release 下载速查](#release-下载速查)下载了桌面端或 Android 安装包,也可以在完成首轮密码设置后,连接到同一个 Management API 地址进行远程管理。
189
215
 
190
216
  ---
191
217
 
@@ -29,6 +29,32 @@
29
29
 
30
30
  [点击添加官方实例QQ](https://qm.qq.com/q/cvjJoNysGA)
31
31
 
32
+ ## Release 下载速查
33
+
34
+ 如果只是部署和运行 QQ Bot,通常**不需要**在 GitHub Release 的 Assets 里下载任何文件。推荐按下方[快速开始](#-快速开始-源码模式)使用源码部署;只想快速体验命令行入口时,可使用 `pip install -U Undefined-bot` 或 `uv tool install Undefined-bot`。
35
+
36
+ Release 里的安装包是可选组件,不是 Bot 服务本体:
37
+
38
+ | 目标 | 是否需要下载 Release | 选择 |
39
+ | --- | --- | --- |
40
+ | 部署 / 运行 QQ Bot | 不需要 | 源码部署,启动 `uv run Undefined-webui`;或使用 `pip` / `uv tool` 安装 Python 包 |
41
+ | 远程管理已有实例 | 可选 | `Undefined-Console-*`,用于连接 Management API 并打开远程 WebUI |
42
+ | 使用原生聊天客户端 | 可选 | `Undefined-Chat-*`,用于连接 Runtime API 聊天 |
43
+ | 离线安装 / 镜像缓存 Python 包 | 可选 | `undefined_bot-*.whl` 或 `undefined_bot-*.tar.gz` |
44
+
45
+ 平台文件选择:
46
+
47
+ | 平台 | 推荐下载 |
48
+ | --- | --- |
49
+ | Windows x64 | `*-windows-x64-setup.exe`;批量部署或系统管理场景可选 `.msi` |
50
+ | macOS Apple Silicon | `*-macos-arm64.dmg` |
51
+ | macOS Intel | `*-macos-x64.dmg` |
52
+ | Debian / Ubuntu | `*.deb` |
53
+ | 其他 Linux x64 | `*.AppImage` |
54
+ | Android 常见手机 / 平板 | `*-android-arm64-v8a-release.apk`;旧 32 位设备选 `armeabi-v7a`,模拟器按需选 `x86_64` / `x86` |
55
+
56
+ Console 和 Chat 都需要连接到已经运行的 Undefined 服务。首次部署请先启动 `Undefined-webui`,完成配置和 Bot 启动后,再按需使用这些客户端连接。
57
+
32
58
  ## ⚡ 核心特性
33
59
 
34
60
  - **Skills 架构**:全新设计的技能系统,将基础工具(Tools)与智能代理(Agents)分层管理,支持自动发现与注册。
@@ -126,7 +152,7 @@ uv run Undefined-webui
126
152
  # cp config.toml.example config.toml
127
153
  ```
128
154
 
129
- > 浏览器是默认入口;如果你下载了 Release 中的桌面端或 Android 安装包,也可以在完成首轮密码设置后,连接到同一个 Management API 地址进行远程管理。
155
+ > 浏览器是默认入口;如果你按上方 [Release 下载速查](#release-下载速查)下载了桌面端或 Android 安装包,也可以在完成首轮密码设置后,连接到同一个 Management API 地址进行远程管理。
130
156
 
131
157
  ---
132
158
 
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "Undefined-bot"
3
- version = "3.6.2"
3
+ version = "3.6.3"
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__ = "3.6.2"
27
+ __version__ = "3.6.3"
28
28
 
29
29
  # symbol -> (module_path, attribute_name);首次访问时才 importlib 加载
30
30
  _LAZY_IMPORTS: dict[str, tuple[str, str]] = {
@@ -10,6 +10,11 @@ from Undefined.attachments.models import (
10
10
  RegisteredMessageAttachments,
11
11
  RenderedRichMessage,
12
12
  )
13
+ from Undefined.attachments.forward_snapshot import (
14
+ load_forward_snapshot,
15
+ save_forward_snapshot,
16
+ snapshot_forward_tree,
17
+ )
13
18
  from Undefined.attachments.registry import AttachmentRegistry
14
19
  from Undefined.attachments.render import (
15
20
  dispatch_pending_file_sends,
@@ -40,8 +45,11 @@ __all__ = [
40
45
  "attachment_refs_to_xml",
41
46
  "build_attachment_scope",
42
47
  "dispatch_pending_file_sends",
48
+ "load_forward_snapshot",
43
49
  "register_message_attachments",
44
50
  "render_message_with_attachments",
45
51
  "render_message_with_pic_placeholders",
52
+ "save_forward_snapshot",
46
53
  "scope_from_context",
54
+ "snapshot_forward_tree",
47
55
  ]
@@ -0,0 +1,286 @@
1
+ """合并转发节点快照缓存。
2
+
3
+ OneBot 协议端可能只允许在收到外层合并转发时读取内层内容;之后再用
4
+ 内层 ID 调 ``get_forward_msg`` 可能返回空。这里按会话作用域保存已见节点,
5
+ 供 ``messages.get_forward_msg`` 在协议端不可回源时回退。
6
+ """
7
+
8
+ from __future__ import annotations
9
+
10
+ import asyncio
11
+ from datetime import datetime
12
+ import hashlib
13
+ import logging
14
+ from pathlib import Path
15
+ from typing import Any, Awaitable, Callable, Mapping
16
+
17
+ from Undefined.utils import io
18
+ from Undefined.utils.paths import FORWARD_SNAPSHOT_CACHE_DIR
19
+
20
+ logger = logging.getLogger(__name__)
21
+
22
+ _MAX_RECURSIVE_SNAPSHOT_DEPTH = 3
23
+ _MAX_RECURSIVE_SNAPSHOT_NODES = 50
24
+ _snapshot_locks: dict[str, asyncio.Lock] = {}
25
+ _snapshot_lock_users: dict[str, int] = {}
26
+ _snapshot_inflight: dict[str, asyncio.Task[None]] = {}
27
+
28
+
29
+ def _snapshot_key(scope_key: str, forward_id: str) -> str:
30
+ payload = f"{scope_key}\n{forward_id}".encode("utf-8")
31
+ return hashlib.sha256(payload).hexdigest()
32
+
33
+
34
+ def _snapshot_path(scope_key: str, forward_id: str) -> Path:
35
+ return FORWARD_SNAPSHOT_CACHE_DIR / f"{_snapshot_key(scope_key, forward_id)}.json"
36
+
37
+
38
+ def _snapshot_lock(scope_key: str, forward_id: str) -> tuple[str, asyncio.Lock]:
39
+ key = _snapshot_key(scope_key, forward_id)
40
+ lock = _snapshot_locks.get(key)
41
+ if lock is None:
42
+ lock = asyncio.Lock()
43
+ _snapshot_locks[key] = lock
44
+ _snapshot_lock_users[key] = _snapshot_lock_users.get(key, 0) + 1
45
+ return key, lock
46
+
47
+
48
+ def _release_snapshot_lock(key: str, lock: asyncio.Lock) -> None:
49
+ users = _snapshot_lock_users.get(key, 0) - 1
50
+ if users > 0:
51
+ _snapshot_lock_users[key] = users
52
+ return
53
+ _snapshot_lock_users.pop(key, None)
54
+ if _snapshot_locks.get(key) is lock and not lock.locked():
55
+ _snapshot_locks.pop(key, None)
56
+
57
+
58
+ def _clean_json_value(value: Any) -> Any:
59
+ if value is None or isinstance(value, (str, int, float, bool)):
60
+ return value
61
+ if isinstance(value, Mapping):
62
+ cleaned: dict[str, Any] = {}
63
+ for raw_key, raw_value in value.items():
64
+ key = str(raw_key).strip()
65
+ if not key:
66
+ continue
67
+ cleaned[key] = _clean_json_value(raw_value)
68
+ return cleaned
69
+ if isinstance(value, (list, tuple)):
70
+ return [_clean_json_value(item) for item in value]
71
+ return str(value)
72
+
73
+
74
+ def normalize_forward_nodes_for_snapshot(nodes: Any) -> list[dict[str, Any]]:
75
+ """把 OneBot 返回的合并转发节点清洗为可持久化列表。"""
76
+ if isinstance(nodes, Mapping):
77
+ messages = nodes.get("messages")
78
+ raw_nodes = messages if isinstance(messages, list) else []
79
+ elif isinstance(nodes, list):
80
+ raw_nodes = nodes
81
+ else:
82
+ raw_nodes = []
83
+
84
+ cleaned_nodes: list[dict[str, Any]] = []
85
+ for node in raw_nodes:
86
+ if not isinstance(node, Mapping):
87
+ continue
88
+ cleaned = _clean_json_value(node)
89
+ if isinstance(cleaned, dict):
90
+ cleaned_nodes.append(cleaned)
91
+ return cleaned_nodes
92
+
93
+
94
+ async def save_forward_snapshot(
95
+ *,
96
+ scope_key: str,
97
+ forward_id: str,
98
+ nodes: Any,
99
+ ) -> bool:
100
+ """保存合并转发节点快照;无有效节点时不写入。"""
101
+ normalized_scope = str(scope_key or "").strip()
102
+ normalized_forward_id = str(forward_id or "").strip()
103
+ if not normalized_scope or not normalized_forward_id:
104
+ return False
105
+
106
+ normalized_nodes = normalize_forward_nodes_for_snapshot(nodes)
107
+ if not normalized_nodes:
108
+ return False
109
+
110
+ payload = {
111
+ "scope_key": normalized_scope,
112
+ "forward_id": normalized_forward_id,
113
+ "created_at": datetime.now().isoformat(timespec="seconds"),
114
+ "nodes": normalized_nodes,
115
+ }
116
+ await io.write_json(
117
+ _snapshot_path(normalized_scope, normalized_forward_id),
118
+ payload,
119
+ use_lock=True,
120
+ )
121
+ return True
122
+
123
+
124
+ async def load_forward_snapshot(
125
+ *,
126
+ scope_key: str,
127
+ forward_id: str,
128
+ ) -> list[dict[str, Any]]:
129
+ """读取合并转发节点快照;不存在或格式不符时返回空列表。"""
130
+ normalized_scope = str(scope_key or "").strip()
131
+ normalized_forward_id = str(forward_id or "").strip()
132
+ if not normalized_scope or not normalized_forward_id:
133
+ return []
134
+
135
+ raw = await io.read_json(
136
+ _snapshot_path(normalized_scope, normalized_forward_id),
137
+ use_lock=False,
138
+ )
139
+ if not isinstance(raw, Mapping):
140
+ return []
141
+ if str(raw.get("scope_key", "") or "") != normalized_scope:
142
+ return []
143
+ if str(raw.get("forward_id", "") or "") != normalized_forward_id:
144
+ return []
145
+ return normalize_forward_nodes_for_snapshot(raw.get("nodes"))
146
+
147
+
148
+ def _extract_forward_id(data: Mapping[str, Any]) -> str:
149
+ forward_id = data.get("id") or data.get("resid") or data.get("message_id")
150
+ return str(forward_id).strip() if forward_id is not None else ""
151
+
152
+
153
+ def _normalize_message_segments(message: Any) -> list[Mapping[str, Any]]:
154
+ if isinstance(message, list):
155
+ return [item for item in message if isinstance(item, Mapping)]
156
+ if isinstance(message, Mapping):
157
+ return [message]
158
+ if isinstance(message, str):
159
+ return [{"type": "text", "data": {"text": message}}]
160
+ return []
161
+
162
+
163
+ def _iter_nested_forward_ids(nodes: list[dict[str, Any]]) -> list[str]:
164
+ forward_ids: list[str] = []
165
+ seen: set[str] = set()
166
+ for node in nodes:
167
+ raw_message = (
168
+ node.get("content") or node.get("message") or node.get("raw_message")
169
+ )
170
+ for segment in _normalize_message_segments(raw_message):
171
+ if str(segment.get("type", "") or "").strip().lower() != "forward":
172
+ continue
173
+ raw_data = segment.get("data", {})
174
+ data = raw_data if isinstance(raw_data, Mapping) else {}
175
+ forward_id = _extract_forward_id(data)
176
+ if forward_id and forward_id not in seen:
177
+ seen.add(forward_id)
178
+ forward_ids.append(forward_id)
179
+ return forward_ids
180
+
181
+
182
+ async def snapshot_forward_tree(
183
+ *,
184
+ scope_key: str,
185
+ forward_id: str,
186
+ get_forward_messages: Callable[[str], Awaitable[Any]],
187
+ max_depth: int = _MAX_RECURSIVE_SNAPSHOT_DEPTH,
188
+ max_nodes: int = _MAX_RECURSIVE_SNAPSHOT_NODES,
189
+ ) -> None:
190
+ """递归抓取并保存当前可访问的合并转发树。
191
+
192
+ 同一 ``scope_key + forward_id`` 在进程内会合并并发抓取,避免多个消息或
193
+ 工具调用同时触发同一层 OneBot 请求。
194
+ """
195
+ normalized_scope = str(scope_key or "").strip()
196
+ normalized_forward_id = str(forward_id or "").strip()
197
+ if not normalized_scope or not normalized_forward_id:
198
+ return
199
+ if max_depth < 0 or max_nodes <= 0:
200
+ return
201
+
202
+ root_key = _snapshot_key(normalized_scope, normalized_forward_id)
203
+ inflight = _snapshot_inflight.get(root_key)
204
+ if inflight is not None and not inflight.done():
205
+ await asyncio.shield(inflight)
206
+ return
207
+
208
+ async def _run() -> None:
209
+ visited: set[str] = set()
210
+ remaining = max_nodes
211
+
212
+ async def _walk(current_forward_id: str, depth: int) -> None:
213
+ nonlocal remaining
214
+ normalized_current_id = str(current_forward_id or "").strip()
215
+ if not normalized_current_id:
216
+ return
217
+ if depth > max_depth or remaining <= 0:
218
+ return
219
+ if normalized_current_id in visited:
220
+ return
221
+ visited.add(normalized_current_id)
222
+ remaining -= 1
223
+
224
+ lock_key, lock = _snapshot_lock(normalized_scope, normalized_current_id)
225
+ try:
226
+ async with lock:
227
+ nodes: list[dict[str, Any]] = []
228
+ try:
229
+ nodes = await load_forward_snapshot(
230
+ scope_key=normalized_scope,
231
+ forward_id=normalized_current_id,
232
+ )
233
+ except Exception:
234
+ logger.debug(
235
+ "读取合并转发快照失败,将尝试回源: id=%s",
236
+ normalized_current_id,
237
+ exc_info=True,
238
+ )
239
+ if not nodes:
240
+ try:
241
+ raw_nodes = await get_forward_messages(
242
+ normalized_current_id
243
+ )
244
+ except Exception:
245
+ logger.debug(
246
+ "递归缓存合并转发失败: id=%s",
247
+ normalized_current_id,
248
+ exc_info=True,
249
+ )
250
+ return
251
+ nodes = normalize_forward_nodes_for_snapshot(raw_nodes)
252
+ if not nodes:
253
+ return
254
+ try:
255
+ await save_forward_snapshot(
256
+ scope_key=normalized_scope,
257
+ forward_id=normalized_current_id,
258
+ nodes=nodes,
259
+ )
260
+ except Exception:
261
+ logger.debug(
262
+ "写入合并转发快照失败: id=%s",
263
+ normalized_current_id,
264
+ exc_info=True,
265
+ )
266
+ finally:
267
+ _release_snapshot_lock(lock_key, lock)
268
+
269
+ if depth >= max_depth:
270
+ return
271
+ for nested_forward_id in _iter_nested_forward_ids(nodes):
272
+ if remaining <= 0:
273
+ break
274
+ await _walk(nested_forward_id, depth + 1)
275
+
276
+ await _walk(normalized_forward_id, 0)
277
+
278
+ task = asyncio.create_task(_run())
279
+ _snapshot_inflight[root_key] = task
280
+
281
+ def _forget(done: asyncio.Task[None]) -> None:
282
+ if _snapshot_inflight.get(root_key) is done:
283
+ _snapshot_inflight.pop(root_key, None)
284
+
285
+ task.add_done_callback(_forget)
286
+ await asyncio.shield(task)
@@ -16,6 +16,10 @@ from urllib.parse import unquote, urlsplit
16
16
 
17
17
  import httpx
18
18
 
19
+ from Undefined.attachments.forward_snapshot import (
20
+ load_forward_snapshot,
21
+ snapshot_forward_tree,
22
+ )
19
23
  from Undefined.attachments.models import RegisteredMessageAttachments
20
24
  from Undefined.utils.paths import WEBUI_FILE_CACHE_DIR
21
25
  from Undefined.utils.xml import escape_xml_attr
@@ -362,6 +366,8 @@ async def register_message_attachments(
362
366
  | None = None,
363
367
  register_forward_refs: bool = False,
364
368
  expand_forward_attachments: bool = True,
369
+ snapshot_forward_messages: bool = False,
370
+ snapshot_nested_forward_messages: bool = False,
365
371
  ) -> RegisteredMessageAttachments:
366
372
  """扫描消息段并将图片/文件注册到 ``AttachmentRegistry``。
367
373
 
@@ -373,6 +379,8 @@ async def register_message_attachments(
373
379
  get_forward_messages: 可选,拉取合并转发子消息。
374
380
  register_forward_refs: 是否将顶层合并转发注册为 ``forward_`` 引用。
375
381
  expand_forward_attachments: 是否递归扫描合并转发内的附件。
382
+ snapshot_forward_messages: 是否读取合并转发并递归缓存可访问的节点快照。
383
+ snapshot_nested_forward_messages: 向后兼容参数;递归缓存已覆盖内层转发。
376
384
 
377
385
  Returns:
378
386
  已注册附件引用与归一化纯文本。
@@ -392,6 +400,22 @@ async def register_message_attachments(
392
400
  )
393
401
 
394
402
  visited_forward_ids: set[str] = set()
403
+ should_snapshot_forward_messages = (
404
+ snapshot_forward_messages or snapshot_nested_forward_messages
405
+ )
406
+
407
+ async def _fetch_forward_nodes(forward_id: str) -> list[Mapping[str, Any]]:
408
+ if get_forward_messages is None:
409
+ return []
410
+ try:
411
+ return _normalize_forward_nodes(await get_forward_messages(forward_id))
412
+ except Exception as exc:
413
+ logger.debug(
414
+ "[AttachmentRegistry] forward resolver failed: id=%s err=%s",
415
+ forward_id,
416
+ exc,
417
+ )
418
+ return []
395
419
 
396
420
  async def _collect_from_segments(
397
421
  current_segments: Sequence[Mapping[str, Any]],
@@ -543,6 +567,7 @@ async def register_message_attachments(
543
567
  elif type_ == "forward":
544
568
  # 合并转发递归展开,深度上限防止无限嵌套
545
569
  forward_id = _extract_forward_id(data)
570
+ forward_nodes: Sequence[Mapping[str, Any]] = []
546
571
  if register_forward_refs and depth == 0 and forward_id:
547
572
  register_forward = getattr(
548
573
  registry,
@@ -559,26 +584,56 @@ async def register_message_attachments(
559
584
  )
560
585
  ref = record.prompt_ref()
561
586
 
587
+ should_fetch_forward = (
588
+ get_forward_messages is not None
589
+ and forward_id
590
+ and forward_id not in visited_forward_ids
591
+ and (
592
+ should_snapshot_forward_messages
593
+ or (
594
+ expand_forward_attachments
595
+ and depth < _FORWARD_ATTACHMENT_MAX_DEPTH
596
+ )
597
+ )
598
+ )
599
+ if should_fetch_forward:
600
+ assert get_forward_messages is not None
601
+ visited_forward_ids.add(forward_id)
602
+ if should_snapshot_forward_messages:
603
+ try:
604
+ await snapshot_forward_tree(
605
+ scope_key=scope_key,
606
+ forward_id=forward_id,
607
+ get_forward_messages=get_forward_messages,
608
+ )
609
+ except Exception:
610
+ logger.debug(
611
+ "[AttachmentRegistry] forward snapshot failed: id=%s",
612
+ forward_id,
613
+ exc_info=True,
614
+ )
615
+ forward_nodes = await load_forward_snapshot(
616
+ scope_key=scope_key,
617
+ forward_id=forward_id,
618
+ )
619
+ if not forward_nodes:
620
+ forward_nodes = await _fetch_forward_nodes(forward_id)
621
+ else:
622
+ forward_nodes = await _fetch_forward_nodes(forward_id)
623
+
562
624
  if (
563
625
  expand_forward_attachments
564
626
  and get_forward_messages is not None
565
627
  and depth < _FORWARD_ATTACHMENT_MAX_DEPTH
566
628
  and forward_id
567
- and forward_id not in visited_forward_ids
568
629
  ):
569
- visited_forward_ids.add(forward_id)
570
- try:
571
- nodes = _normalize_forward_nodes(
572
- await get_forward_messages(forward_id)
573
- )
574
- except Exception as exc:
575
- logger.debug(
576
- "[AttachmentRegistry] forward resolver failed: id=%s err=%s",
577
- forward_id,
578
- exc,
579
- )
580
- nodes = []
581
- for node_index, node in enumerate(nodes):
630
+ if not forward_nodes:
631
+ if forward_id not in visited_forward_ids:
632
+ visited_forward_ids.add(forward_id)
633
+ forward_nodes = await _fetch_forward_nodes(forward_id)
634
+ if not forward_nodes:
635
+ continue
636
+ for node_index, node in enumerate(forward_nodes):
582
637
  raw_message = (
583
638
  node.get("content")
584
639
  or node.get("message")
@@ -299,6 +299,7 @@ class MessageHandler(PokeMixin, RepeatMixin, AutoExtractMixin):
299
299
  else None,
300
300
  register_forward_refs=True,
301
301
  expand_forward_attachments=False,
302
+ snapshot_forward_messages=True,
302
303
  )
303
304
  attachments = result.attachments
304
305
  # 命中表情库时为 AI 上下文补充 [表情包] 描述
@@ -12,6 +12,7 @@
12
12
  运行机制:
13
13
  - 由 `AgentRegistry` 自动发现并注册
14
14
  - 通过 `prompt` 输入任务描述并调用内部工具
15
+ - 内部附件 UID(`pic_xxx` / `file_xxx`)由工具按当前会话作用域解析;多模态分析可直接传 UID,其他解析工具先用 `download_file` 转成本地路径
15
16
  - PDF 文字提取走 `extract_pdf`;扫描版、图表、版式或指定页码范围视觉分析走 `describe_pdf_page`
16
17
 
17
18
  开发提示:
@@ -6,7 +6,7 @@
6
6
  - 超大文件、乱码、缺页、格式损坏或工具无法解析时,如实说明影响,并尽量给出已能提取的部分。
7
7
 
8
8
  附件输入规则:
9
- - 用户上下文里有内部附件 UID(如 `pic_xxx` / `file_xxx`)时,优先直接使用该 UID。
9
+ - 用户上下文里有内部附件 UID(如 `pic_xxx` / `file_xxx`)时,优先使用该 UID,不要改写成文件名或 URL
10
10
  - 没有内部 UID 时,才使用显式 URL、legacy `file_id`、arXiv 标识或 Bilibili 标识。
11
11
  - 不要臆造、改写或猜测附件 UID。
12
12
 
@@ -15,6 +15,7 @@
15
15
  - 如果文件源是 Bilibili BV 号、AV 号、B 站视频链接或 b23.tv 短链,先调用共享工具 `bilibili_video`,设置 `output_mode="uid"`,拿到 `<attachment uid="file_xxx"/>` 后再按普通视频 UID 下载和分析。
16
16
  - 已经给出内部附件 UID 时,不要再调用 arXiv/Bilibili 获取工具。
17
17
  - 根据用户目标选择合适工具:文本读取、文件类型检测、PDF/Office/表格/代码/压缩包/多模态分析都按内容类型处理。
18
+ - `analyze_multimodal` 支持直接传入内部附件 UID;其他需要本地路径的工具应先调用 `download_file` 将 UID 转成本地临时文件路径。
18
19
  - PDF 文本和元数据优先用 `extract_pdf`;扫描版、图表、版式、公式图、截图式页面或用户指定页码时,用 `describe_pdf_page` 做逐页视觉分析。
19
20
  - `describe_pdf_page` 支持页码范围,例如 `3`、`3-5`、`3,5,8-10`;单次最多 5 页,范围过大时请缩小。
20
21
  - 对图片和多模态文件,重点报告客观可见信息,例如文字、UI、场景、人物、角色、应用/游戏名称和关键元素。