Undefined-bot 3.18.9__tar.gz → 3.19.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (870) hide show
  1. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/CHANGELOG.md +25 -0
  2. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/PKG-INFO +1 -1
  3. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/pyproject.toml +1 -1
  4. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/res/IMPORTANT/each.md +1 -0
  5. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/res/prompts/undefined.xml +20 -0
  6. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/res/prompts/undefined_nagaagent.xml +20 -0
  7. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/__init__.py +1 -1
  8. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/utils/paths.py +1 -0
  9. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/webui/app.py +22 -7
  10. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/webui/core.py +202 -24
  11. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/webui/routes/_auth.py +31 -6
  12. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/webui/routes/_shared.py +0 -1
  13. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/webui/static/js/api.js +45 -6
  14. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/webui/static/js/state.js +23 -18
  15. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/.gitignore +0 -0
  16. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/ARCHITECTURE.md +0 -0
  17. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/LICENSE +0 -0
  18. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/README.md +0 -0
  19. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/config/README.md +0 -0
  20. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/config/mcp.json.example +0 -0
  21. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/config.toml.example +0 -0
  22. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/img/undefined-9527.png +0 -0
  23. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/img/xlwy.jpg +0 -0
  24. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/res/README.md +0 -0
  25. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/res/prompts/agent_self_intro.txt +0 -0
  26. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/res/prompts/analyze_multimodal.txt +0 -0
  27. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/res/prompts/describe_image.txt +0 -0
  28. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/res/prompts/describe_meme_image.txt +0 -0
  29. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/res/prompts/generate_title.txt +0 -0
  30. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/res/prompts/historian_profile_merge.md +0 -0
  31. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/res/prompts/historian_rewrite.md +0 -0
  32. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/res/prompts/image_gen_moderation.txt +0 -0
  33. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/res/prompts/injection_detector.txt +0 -0
  34. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/res/prompts/injection_response_agent.txt +0 -0
  35. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/res/prompts/judge_meme_image.txt +0 -0
  36. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/res/prompts/merge_message_summaries.txt +0 -0
  37. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/res/prompts/merge_summaries.txt +0 -0
  38. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/res/prompts/message_summary.txt +0 -0
  39. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/res/prompts/naga_message_moderation.txt +0 -0
  40. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/res/prompts/stats_analysis.txt +0 -0
  41. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/res/prompts/summarize.txt +0 -0
  42. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/README.md +0 -0
  43. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/README.md +0 -0
  44. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/__main__.py +0 -0
  45. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/ai/__init__.py +0 -0
  46. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/ai/client/__init__.py +0 -0
  47. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/ai/client/ask_loop.py +0 -0
  48. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/ai/client/queue.py +0 -0
  49. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/ai/client/setup.py +0 -0
  50. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/ai/crawl4ai_support.py +0 -0
  51. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/ai/http.py +0 -0
  52. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/ai/llm/__init__.py +0 -0
  53. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/ai/llm/requester.py +0 -0
  54. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/ai/llm/retry.py +0 -0
  55. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/ai/llm/sanitize.py +0 -0
  56. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/ai/llm/streaming.py +0 -0
  57. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/ai/llm/thinking.py +0 -0
  58. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/ai/llm/types.py +0 -0
  59. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/ai/model_selector.py +0 -0
  60. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/ai/multimodal/__init__.py +0 -0
  61. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/ai/multimodal/analyzer.py +0 -0
  62. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/ai/multimodal/constants.py +0 -0
  63. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/ai/multimodal/detection.py +0 -0
  64. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/ai/multimodal/parsing.py +0 -0
  65. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/ai/parsing.py +0 -0
  66. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/ai/prompts/__init__.py +0 -0
  67. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/ai/prompts/builder.py +0 -0
  68. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/ai/prompts/cognitive.py +0 -0
  69. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/ai/prompts/constants.py +0 -0
  70. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/ai/prompts/current_input.py +0 -0
  71. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/ai/prompts/file_includes.py +0 -0
  72. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/ai/prompts/system_context.py +0 -0
  73. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/ai/prompts/system_info.py +0 -0
  74. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/ai/queue_budget.py +0 -0
  75. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/ai/retrieval.py +0 -0
  76. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/ai/summaries.py +0 -0
  77. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/ai/tokens.py +0 -0
  78. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/ai/tool_search.py +0 -0
  79. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/ai/tooling.py +0 -0
  80. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/ai/transports/__init__.py +0 -0
  81. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/ai/transports/anthropic_transport.py +0 -0
  82. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/ai/transports/openai_transport.py +0 -0
  83. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/ai/transports/replay.py +0 -0
  84. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/api/__init__.py +0 -0
  85. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/api/_context.py +0 -0
  86. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/api/_helpers.py +0 -0
  87. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/api/_naga_state.py +0 -0
  88. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/api/_openapi.py +0 -0
  89. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/api/_probes.py +0 -0
  90. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/api/app.py +0 -0
  91. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/api/naga_store.py +0 -0
  92. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/api/routes/__init__.py +0 -0
  93. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/api/routes/automations.py +0 -0
  94. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/api/routes/chat.py +0 -0
  95. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/api/routes/cognitive.py +0 -0
  96. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/api/routes/commands.py +0 -0
  97. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/api/routes/health.py +0 -0
  98. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/api/routes/memes.py +0 -0
  99. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/api/routes/memory.py +0 -0
  100. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/api/routes/naga/__init__.py +0 -0
  101. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/api/routes/naga/auth.py +0 -0
  102. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/api/routes/naga/bind.py +0 -0
  103. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/api/routes/naga/send.py +0 -0
  104. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/api/routes/naga/unbind.py +0 -0
  105. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/api/routes/onebot_files.py +0 -0
  106. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/api/routes/schedules.py +0 -0
  107. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/api/routes/system.py +0 -0
  108. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/api/routes/tools.py +0 -0
  109. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/api/routes/weixin.py +0 -0
  110. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/api/webchat_store.py +0 -0
  111. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/arxiv/__init__.py +0 -0
  112. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/arxiv/client.py +0 -0
  113. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/arxiv/downloader.py +0 -0
  114. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/arxiv/models.py +0 -0
  115. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/arxiv/parser.py +0 -0
  116. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/arxiv/sender.py +0 -0
  117. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/attachments/__init__.py +0 -0
  118. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/attachments/forward_snapshot.py +0 -0
  119. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/attachments/models.py +0 -0
  120. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/attachments/registry.py +0 -0
  121. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/attachments/remote.py +0 -0
  122. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/attachments/render.py +0 -0
  123. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/attachments/segments.py +0 -0
  124. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/automations/__init__.py +0 -0
  125. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/automations/address.py +0 -0
  126. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/automations/catalog.py +0 -0
  127. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/automations/clock.py +0 -0
  128. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/automations/constants.py +0 -0
  129. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/automations/engine.py +0 -0
  130. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/automations/extract.py +0 -0
  131. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/automations/logutil.py +0 -0
  132. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/automations/match.py +0 -0
  133. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/automations/mentions.py +0 -0
  134. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/automations/migrate.py +0 -0
  135. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/automations/runner.py +0 -0
  136. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/automations/service.py +0 -0
  137. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/automations/short.py +0 -0
  138. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/automations/storage.py +0 -0
  139. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/automations/template.py +0 -0
  140. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/automations/triggers.py +0 -0
  141. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/automations/validate.py +0 -0
  142. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/bilibili/__init__.py +0 -0
  143. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/bilibili/api_client.py +0 -0
  144. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/bilibili/danmaku.py +0 -0
  145. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/bilibili/download_core.py +0 -0
  146. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/bilibili/downloader.py +0 -0
  147. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/bilibili/errors.py +0 -0
  148. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/bilibili/format.py +0 -0
  149. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/bilibili/models.py +0 -0
  150. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/bilibili/opus_parser.py +0 -0
  151. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/bilibili/opus_render.py +0 -0
  152. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/bilibili/opus_sender.py +0 -0
  153. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/bilibili/parser.py +0 -0
  154. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/bilibili/sender.py +0 -0
  155. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/bilibili/wbi.py +0 -0
  156. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/bilibili/wbi_request.py +0 -0
  157. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/changelog.py +0 -0
  158. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/cognitive/__init__.py +0 -0
  159. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/cognitive/chroma_scheduler.py +0 -0
  160. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/cognitive/historian/__init__.py +0 -0
  161. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/cognitive/historian/helpers.py +0 -0
  162. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/cognitive/historian/scheduling.py +0 -0
  163. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/cognitive/historian/tools.py +0 -0
  164. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/cognitive/historian/worker.py +0 -0
  165. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/cognitive/job_queue.py +0 -0
  166. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/cognitive/profile_storage.py +0 -0
  167. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/cognitive/service/__init__.py +0 -0
  168. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/cognitive/service/helpers.py +0 -0
  169. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/cognitive/service/service.py +0 -0
  170. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/cognitive/vector_store.py +0 -0
  171. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/cognitive/vector_store_compat.py +0 -0
  172. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/config/__init__.py +0 -0
  173. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/config/admin.py +0 -0
  174. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/config/api_modes.py +0 -0
  175. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/config/build_config.py +0 -0
  176. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/config/coercers.py +0 -0
  177. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/config/config_class.py +0 -0
  178. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/config/domain_parsers.py +0 -0
  179. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/config/env_registry.py +0 -0
  180. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/config/hot_reload.py +0 -0
  181. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/config/load_sections/__init__.py +0 -0
  182. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/config/load_sections/access.py +0 -0
  183. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/config/load_sections/core.py +0 -0
  184. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/config/load_sections/domains.py +0 -0
  185. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/config/load_sections/finalize.py +0 -0
  186. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/config/load_sections/history_skills.py +0 -0
  187. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/config/load_sections/integrations.py +0 -0
  188. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/config/load_sections/knowledge.py +0 -0
  189. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/config/load_sections/logging_tools.py +0 -0
  190. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/config/load_sections/models.py +0 -0
  191. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/config/load_sections/network.py +0 -0
  192. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/config/loader.py +0 -0
  193. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/config/manager.py +0 -0
  194. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/config/model_parsers.py +0 -0
  195. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/config/models.py +0 -0
  196. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/config/naga_policy.py +0 -0
  197. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/config/onebot.py +0 -0
  198. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/config/parsers/__init__.py +0 -0
  199. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/config/parsers/agent.py +0 -0
  200. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/config/parsers/chat.py +0 -0
  201. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/config/parsers/embedding.py +0 -0
  202. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/config/parsers/grok.py +0 -0
  203. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/config/parsers/helpers.py +0 -0
  204. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/config/parsers/historian.py +0 -0
  205. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/config/parsers/image.py +0 -0
  206. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/config/parsers/naga.py +0 -0
  207. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/config/parsers/pool.py +0 -0
  208. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/config/parsers/security.py +0 -0
  209. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/config/parsers/summary.py +0 -0
  210. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/config/parsers/vision.py +0 -0
  211. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/config/resolvers.py +0 -0
  212. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/config/search.py +0 -0
  213. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/config/toml_io.py +0 -0
  214. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/config/webui_settings.py +0 -0
  215. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/context.py +0 -0
  216. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/context_resource_registry.py +0 -0
  217. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/deploy/__init__.py +0 -0
  218. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/deploy/__main__.py +0 -0
  219. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/deploy/catalog.py +0 -0
  220. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/deploy/cli.py +0 -0
  221. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/deploy/commands.py +0 -0
  222. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/deploy/config_patch.py +0 -0
  223. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/deploy/docker_cli.py +0 -0
  224. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/deploy/generate.py +0 -0
  225. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/deploy/images.py +0 -0
  226. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/deploy/nagaagent.py +0 -0
  227. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/deploy/runner.py +0 -0
  228. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/deploy/state.py +0 -0
  229. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/deploy/templates/.dockerignore +0 -0
  230. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/deploy/templates/Dockerfile.bot +0 -0
  231. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/deploy/templates/compose.base.yaml +0 -0
  232. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/deploy/templates/compose.bot.yaml +0 -0
  233. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/deploy/templates/compose.firecrawl.yaml +0 -0
  234. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/deploy/templates/compose.lxmusic2api.yaml +0 -0
  235. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/deploy/templates/compose.napcat.yaml +0 -0
  236. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/deploy/templates/compose.searxng.yaml +0 -0
  237. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/deploy/templates/lxmusic2api.config.toml +0 -0
  238. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/deploy/templates/napcat.ws.json +0 -0
  239. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/deploy/templates/searxng.settings.yml +0 -0
  240. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/douyin/__init__.py +0 -0
  241. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/douyin/client.py +0 -0
  242. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/douyin/downloader.py +0 -0
  243. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/douyin/models.py +0 -0
  244. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/douyin/parser.py +0 -0
  245. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/douyin/sender.py +0 -0
  246. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/end_summary_storage.py +0 -0
  247. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/faq.py +0 -0
  248. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/github/__init__.py +0 -0
  249. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/github/client.py +0 -0
  250. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/github/models.py +0 -0
  251. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/github/parser.py +0 -0
  252. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/github/sender.py +0 -0
  253. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/handlers/__init__.py +0 -0
  254. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/handlers/auto_extract.py +0 -0
  255. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/handlers/message_flow.py +0 -0
  256. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/handlers/poke.py +0 -0
  257. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/handlers/repeat.py +0 -0
  258. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/injection_response_agent.py +0 -0
  259. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/jm/__init__.py +0 -0
  260. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/jm/client.py +0 -0
  261. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/jm/downloader.py +0 -0
  262. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/jm/parser.py +0 -0
  263. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/jm/searcher.py +0 -0
  264. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/jm/sender.py +0 -0
  265. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/knowledge/__init__.py +0 -0
  266. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/knowledge/chunker.py +0 -0
  267. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/knowledge/embedder.py +0 -0
  268. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/knowledge/manager.py +0 -0
  269. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/knowledge/reranker.py +0 -0
  270. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/knowledge/runtime.py +0 -0
  271. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/knowledge/store.py +0 -0
  272. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/main.py +0 -0
  273. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/mcp/__init__.py +0 -0
  274. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/mcp/registry.py +0 -0
  275. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/memes/__init__.py +0 -0
  276. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/memes/_image_utils.py +0 -0
  277. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/memes/ingest.py +0 -0
  278. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/memes/models.py +0 -0
  279. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/memes/search.py +0 -0
  280. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/memes/service.py +0 -0
  281. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/memes/store.py +0 -0
  282. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/memes/vector_store.py +0 -0
  283. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/memes/worker.py +0 -0
  284. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/memory.py +0 -0
  285. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/onebot/__init__.py +0 -0
  286. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/onebot/client.py +0 -0
  287. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/onebot/file_errors.py +0 -0
  288. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/onebot/file_references.py +0 -0
  289. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/onebot/file_store.py +0 -0
  290. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/onebot/file_transport.py +0 -0
  291. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/onebot/message.py +0 -0
  292. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/py.typed +0 -0
  293. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/rate_limit.py +0 -0
  294. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/render.py +0 -0
  295. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/services/__init__.py +0 -0
  296. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/services/bugfix_command.py +0 -0
  297. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/services/command.py +0 -0
  298. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/services/commands/__init__.py +0 -0
  299. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/services/commands/catalog.py +0 -0
  300. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/services/commands/context.py +0 -0
  301. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/services/commands/registry.py +0 -0
  302. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/services/coordinator/__init__.py +0 -0
  303. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/services/coordinator/background.py +0 -0
  304. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/services/coordinator/batching.py +0 -0
  305. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/services/coordinator/group.py +0 -0
  306. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/services/coordinator/message_ids.py +0 -0
  307. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/services/coordinator/private.py +0 -0
  308. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/services/message_batcher/__init__.py +0 -0
  309. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/services/message_batcher/scheduler.py +0 -0
  310. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/services/message_batcher/state.py +0 -0
  311. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/services/message_summary_fetch.py +0 -0
  312. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/services/model_pool.py +0 -0
  313. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/services/queue_manager.py +0 -0
  314. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/services/security.py +0 -0
  315. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/services/stats_command.py +0 -0
  316. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/README.md +0 -0
  317. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/__init__.py +0 -0
  318. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/agents/README.md +0 -0
  319. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/agents/__init__.py +0 -0
  320. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/agents/agent_tool_registry.py +0 -0
  321. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/agents/code_delivery_agent/config.json +0 -0
  322. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/agents/code_delivery_agent/docker_utils.py +0 -0
  323. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/agents/code_delivery_agent/handler.py +0 -0
  324. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/agents/code_delivery_agent/intro.md +0 -0
  325. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/agents/code_delivery_agent/mcp.json +0 -0
  326. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/agents/code_delivery_agent/prompt.md +0 -0
  327. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/agents/code_delivery_agent/tools/copy/config.json +0 -0
  328. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/agents/code_delivery_agent/tools/copy/handler.py +0 -0
  329. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/agents/code_delivery_agent/tools/delete/config.json +0 -0
  330. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/agents/code_delivery_agent/tools/delete/handler.py +0 -0
  331. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/agents/code_delivery_agent/tools/diff/config.json +0 -0
  332. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/agents/code_delivery_agent/tools/diff/handler.py +0 -0
  333. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/agents/code_delivery_agent/tools/end/config.json +0 -0
  334. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/agents/code_delivery_agent/tools/end/handler.py +0 -0
  335. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/agents/code_delivery_agent/tools/glob/config.json +0 -0
  336. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/agents/code_delivery_agent/tools/glob/handler.py +0 -0
  337. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/agents/code_delivery_agent/tools/grep/config.json +0 -0
  338. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/agents/code_delivery_agent/tools/grep/handler.py +0 -0
  339. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/agents/code_delivery_agent/tools/init_docker/config.json +0 -0
  340. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/agents/code_delivery_agent/tools/init_docker/handler.py +0 -0
  341. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/agents/code_delivery_agent/tools/read/config.json +0 -0
  342. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/agents/code_delivery_agent/tools/read/handler.py +0 -0
  343. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/agents/code_delivery_agent/tools/run_bash_command/config.json +0 -0
  344. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/agents/code_delivery_agent/tools/run_bash_command/handler.py +0 -0
  345. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/agents/code_delivery_agent/tools/todo/config.json +0 -0
  346. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/agents/code_delivery_agent/tools/todo/handler.py +0 -0
  347. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/agents/code_delivery_agent/tools/tree/config.json +0 -0
  348. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/agents/code_delivery_agent/tools/tree/handler.py +0 -0
  349. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/agents/code_delivery_agent/tools/write/config.json +0 -0
  350. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/agents/code_delivery_agent/tools/write/handler.py +0 -0
  351. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/agents/entertainment_agent/README.md +0 -0
  352. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/agents/entertainment_agent/config.json +0 -0
  353. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/agents/entertainment_agent/handler.py +0 -0
  354. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/agents/entertainment_agent/intro.md +0 -0
  355. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/agents/entertainment_agent/prompt.md +0 -0
  356. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/agents/entertainment_agent/tools/__init__.py +0 -0
  357. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/agents/entertainment_agent/tools/ai_draw_one/config.json +0 -0
  358. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/agents/entertainment_agent/tools/ai_draw_one/handler.py +0 -0
  359. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/agents/entertainment_agent/tools/horoscope/config.json +0 -0
  360. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/agents/entertainment_agent/tools/horoscope/handler.py +0 -0
  361. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/agents/entertainment_agent/tools/minecraft_skin/config.json +0 -0
  362. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/agents/entertainment_agent/tools/minecraft_skin/handler.py +0 -0
  363. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/agents/entertainment_agent/tools/renjian/config.json +0 -0
  364. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/agents/entertainment_agent/tools/renjian/handler.py +0 -0
  365. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/agents/entertainment_agent/tools/wenchang_dijun/config.json +0 -0
  366. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/agents/entertainment_agent/tools/wenchang_dijun/handler.py +0 -0
  367. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/agents/file_analysis_agent/README.md +0 -0
  368. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/agents/file_analysis_agent/__init__.py +0 -0
  369. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/agents/file_analysis_agent/config.json +0 -0
  370. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/agents/file_analysis_agent/handler.py +0 -0
  371. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/agents/file_analysis_agent/intro.md +0 -0
  372. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/agents/file_analysis_agent/prompt.md +0 -0
  373. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/agents/file_analysis_agent/tools/__init__.py +0 -0
  374. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/agents/file_analysis_agent/tools/analyze_code/config.json +0 -0
  375. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/agents/file_analysis_agent/tools/analyze_code/handler.py +0 -0
  376. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/agents/file_analysis_agent/tools/analyze_multimodal/config.json +0 -0
  377. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/agents/file_analysis_agent/tools/analyze_multimodal/handler.py +0 -0
  378. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/agents/file_analysis_agent/tools/cleanup_temp/config.json +0 -0
  379. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/agents/file_analysis_agent/tools/cleanup_temp/handler.py +0 -0
  380. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/agents/file_analysis_agent/tools/describe_pdf_page/config.json +0 -0
  381. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/agents/file_analysis_agent/tools/describe_pdf_page/handler.py +0 -0
  382. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/agents/file_analysis_agent/tools/detect_file_type/config.json +0 -0
  383. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/agents/file_analysis_agent/tools/detect_file_type/handler.py +0 -0
  384. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/agents/file_analysis_agent/tools/download_file/config.json +0 -0
  385. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/agents/file_analysis_agent/tools/download_file/handler.py +0 -0
  386. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/agents/file_analysis_agent/tools/extract_archive/config.json +0 -0
  387. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/agents/file_analysis_agent/tools/extract_archive/handler.py +0 -0
  388. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/agents/file_analysis_agent/tools/extract_docx/config.json +0 -0
  389. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/agents/file_analysis_agent/tools/extract_docx/handler.py +0 -0
  390. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/agents/file_analysis_agent/tools/extract_pdf/config.json +0 -0
  391. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/agents/file_analysis_agent/tools/extract_pdf/handler.py +0 -0
  392. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/agents/file_analysis_agent/tools/extract_pptx/config.json +0 -0
  393. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/agents/file_analysis_agent/tools/extract_pptx/handler.py +0 -0
  394. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/agents/file_analysis_agent/tools/extract_xlsx/config.json +0 -0
  395. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/agents/file_analysis_agent/tools/extract_xlsx/handler.py +0 -0
  396. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/agents/file_analysis_agent/tools/read_text_file/config.json +0 -0
  397. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/agents/file_analysis_agent/tools/read_text_file/handler.py +0 -0
  398. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/agents/info_agent/README.md +0 -0
  399. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/agents/info_agent/config.json +0 -0
  400. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/agents/info_agent/handler.py +0 -0
  401. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/agents/info_agent/intro.md +0 -0
  402. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/agents/info_agent/prompt.md +0 -0
  403. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/agents/info_agent/tools/__init__.py +0 -0
  404. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/agents/info_agent/tools/arxiv_search/config.json +0 -0
  405. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/agents/info_agent/tools/arxiv_search/handler.py +0 -0
  406. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/agents/info_agent/tools/baiduhot/config.json +0 -0
  407. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/agents/info_agent/tools/baiduhot/handler.py +0 -0
  408. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/agents/info_agent/tools/base64/config.json +0 -0
  409. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/agents/info_agent/tools/base64/handler.py +0 -0
  410. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/agents/info_agent/tools/bilibili_search/config.json +0 -0
  411. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/agents/info_agent/tools/bilibili_search/handler.py +0 -0
  412. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/agents/info_agent/tools/bilibili_user_info/config.json +0 -0
  413. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/agents/info_agent/tools/bilibili_user_info/handler.py +0 -0
  414. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/agents/info_agent/tools/douyinhot/config.json +0 -0
  415. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/agents/info_agent/tools/douyinhot/handler.py +0 -0
  416. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/agents/info_agent/tools/gold_price/config.json +0 -0
  417. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/agents/info_agent/tools/gold_price/handler.py +0 -0
  418. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/agents/info_agent/tools/hash/config.json +0 -0
  419. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/agents/info_agent/tools/hash/handler.py +0 -0
  420. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/agents/info_agent/tools/history/config.json +0 -0
  421. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/agents/info_agent/tools/history/handler.py +0 -0
  422. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/agents/info_agent/tools/jm_search/config.json +0 -0
  423. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/agents/info_agent/tools/jm_search/handler.py +0 -0
  424. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/agents/info_agent/tools/net_check/config.json +0 -0
  425. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/agents/info_agent/tools/net_check/handler.py +0 -0
  426. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/agents/info_agent/tools/qq_level_query/config.json +0 -0
  427. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/agents/info_agent/tools/qq_level_query/handler.py +0 -0
  428. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/agents/info_agent/tools/speed/config.json +0 -0
  429. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/agents/info_agent/tools/speed/handler.py +0 -0
  430. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/agents/info_agent/tools/tcping/config.json +0 -0
  431. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/agents/info_agent/tools/tcping/handler.py +0 -0
  432. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/agents/info_agent/tools/weather_query/config.json +0 -0
  433. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/agents/info_agent/tools/weather_query/handler.py +0 -0
  434. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/agents/info_agent/tools/weibohot/config.json +0 -0
  435. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/agents/info_agent/tools/weibohot/handler.py +0 -0
  436. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/agents/info_agent/tools/whois/config.json +0 -0
  437. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/agents/info_agent/tools/whois/handler.py +0 -0
  438. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/agents/intro_generator.py +0 -0
  439. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/agents/intro_utils.py +0 -0
  440. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/agents/naga_code_analysis_agent/README.md +0 -0
  441. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/agents/naga_code_analysis_agent/config.json +0 -0
  442. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/agents/naga_code_analysis_agent/handler.py +0 -0
  443. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/agents/naga_code_analysis_agent/intro.md +0 -0
  444. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/agents/naga_code_analysis_agent/mcp.json +0 -0
  445. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/agents/naga_code_analysis_agent/prompt.md +0 -0
  446. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/agents/naga_code_analysis_agent/tools/__init__.py +0 -0
  447. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/agents/naga_code_analysis_agent/tools/glob/config.json +0 -0
  448. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/agents/naga_code_analysis_agent/tools/glob/handler.py +0 -0
  449. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/agents/naga_code_analysis_agent/tools/list_directory/config.json +0 -0
  450. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/agents/naga_code_analysis_agent/tools/list_directory/handler.py +0 -0
  451. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/agents/naga_code_analysis_agent/tools/read_file/config.json +0 -0
  452. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/agents/naga_code_analysis_agent/tools/read_file/handler.py +0 -0
  453. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/agents/naga_code_analysis_agent/tools/read_naga_intro/config.json +0 -0
  454. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/agents/naga_code_analysis_agent/tools/read_naga_intro/handler.py +0 -0
  455. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/agents/naga_code_analysis_agent/tools/search_file_content/config.json +0 -0
  456. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/agents/naga_code_analysis_agent/tools/search_file_content/handler.py +0 -0
  457. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/agents/runner/__init__.py +0 -0
  458. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/agents/runner/context.py +0 -0
  459. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/agents/runner/loop.py +0 -0
  460. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/agents/runner/tools.py +0 -0
  461. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/agents/runner/webchat_utils.py +0 -0
  462. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/agents/summary_agent/__init__.py +0 -0
  463. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/agents/summary_agent/config.json +0 -0
  464. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/agents/summary_agent/handler.py +0 -0
  465. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/agents/summary_agent/intro.md +0 -0
  466. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/agents/summary_agent/prompt.md +0 -0
  467. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/agents/summary_agent/tools/__init__.py +0 -0
  468. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/agents/summary_agent/tools/fetch_messages/config.json +0 -0
  469. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/agents/summary_agent/tools/fetch_messages/handler.py +0 -0
  470. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/agents/undefined_self_code_agent/README.md +0 -0
  471. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/agents/undefined_self_code_agent/__init__.py +0 -0
  472. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/agents/undefined_self_code_agent/config.json +0 -0
  473. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/agents/undefined_self_code_agent/handler.py +0 -0
  474. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/agents/undefined_self_code_agent/intro.md +0 -0
  475. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/agents/undefined_self_code_agent/prompt.md +0 -0
  476. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/agents/undefined_self_code_agent/tools/__init__.py +0 -0
  477. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/agents/undefined_self_code_agent/tools/_shared.py +0 -0
  478. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/agents/undefined_self_code_agent/tools/glob/config.json +0 -0
  479. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/agents/undefined_self_code_agent/tools/glob/handler.py +0 -0
  480. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/agents/undefined_self_code_agent/tools/list_directory/config.json +0 -0
  481. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/agents/undefined_self_code_agent/tools/list_directory/handler.py +0 -0
  482. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/agents/undefined_self_code_agent/tools/read_file/config.json +0 -0
  483. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/agents/undefined_self_code_agent/tools/read_file/handler.py +0 -0
  484. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/agents/undefined_self_code_agent/tools/search_file_content/config.json +0 -0
  485. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/agents/undefined_self_code_agent/tools/search_file_content/handler.py +0 -0
  486. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/agents/web_agent/README.md +0 -0
  487. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/agents/web_agent/callable.json +0 -0
  488. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/agents/web_agent/config.json +0 -0
  489. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/agents/web_agent/handler.py +0 -0
  490. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/agents/web_agent/intro.md +0 -0
  491. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/agents/web_agent/mcp.json +0 -0
  492. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/agents/web_agent/prompt.md +0 -0
  493. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/agents/web_agent/tools/__init__.py +0 -0
  494. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/agents/web_agent/tools/crawl_webpage/config.json +0 -0
  495. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/agents/web_agent/tools/crawl_webpage/handler.py +0 -0
  496. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/agents/web_agent/tools/firecrawl_search/config.json +0 -0
  497. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/agents/web_agent/tools/firecrawl_search/handler.py +0 -0
  498. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/agents/web_agent/tools/grok_search/config.json +0 -0
  499. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/agents/web_agent/tools/grok_search/handler.py +0 -0
  500. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/agents/web_agent/tools/web_search/config.json +0 -0
  501. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/agents/web_agent/tools/web_search/handler.py +0 -0
  502. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/anthropic_skills/__init__.py +0 -0
  503. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/anthropic_skills/loader.py +0 -0
  504. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/commands/README.md +0 -0
  505. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/commands/admin/README.md +0 -0
  506. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/commands/admin/config.json +0 -0
  507. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/commands/admin/handler.py +0 -0
  508. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/commands/bugfix/README.md +0 -0
  509. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/commands/bugfix/config.json +0 -0
  510. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/commands/bugfix/handler.py +0 -0
  511. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/commands/changelog/README.md +0 -0
  512. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/commands/changelog/config.json +0 -0
  513. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/commands/changelog/handler.py +0 -0
  514. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/commands/copyright/README.md +0 -0
  515. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/commands/copyright/config.json +0 -0
  516. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/commands/copyright/handler.py +0 -0
  517. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/commands/faq/README.md +0 -0
  518. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/commands/faq/config.json +0 -0
  519. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/commands/faq/handler.py +0 -0
  520. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/commands/feedback/README.md +0 -0
  521. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/commands/feedback/config.json +0 -0
  522. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/commands/feedback/handler.py +0 -0
  523. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/commands/help/README.md +0 -0
  524. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/commands/help/config.json +0 -0
  525. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/commands/help/handler.py +0 -0
  526. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/commands/naga/README.md +0 -0
  527. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/commands/naga/config.json +0 -0
  528. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/commands/naga/handler.py +0 -0
  529. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/commands/naga/policy.py +0 -0
  530. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/commands/profile/README.md +0 -0
  531. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/commands/profile/config.json +0 -0
  532. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/commands/profile/handler.py +0 -0
  533. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/commands/stats/README.md +0 -0
  534. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/commands/stats/config.json +0 -0
  535. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/commands/stats/handler.py +0 -0
  536. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/commands/summary/README.md +0 -0
  537. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/commands/summary/config.json +0 -0
  538. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/commands/summary/handler.py +0 -0
  539. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/commands/version/README.md +0 -0
  540. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/commands/version/config.json +0 -0
  541. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/commands/version/handler.py +0 -0
  542. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/http_client.py +0 -0
  543. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/http_config.py +0 -0
  544. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/pipelines/__init__.py +0 -0
  545. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/pipelines/arxiv/config.json +0 -0
  546. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/pipelines/arxiv/handler.py +0 -0
  547. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/pipelines/bilibili/config.json +0 -0
  548. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/pipelines/bilibili/handler.py +0 -0
  549. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/pipelines/bilibili_opus/config.json +0 -0
  550. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/pipelines/bilibili_opus/handler.py +0 -0
  551. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/pipelines/context.py +0 -0
  552. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/pipelines/douyin/config.json +0 -0
  553. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/pipelines/douyin/handler.py +0 -0
  554. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/pipelines/github/config.json +0 -0
  555. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/pipelines/github/handler.py +0 -0
  556. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/pipelines/jm/config.json +0 -0
  557. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/pipelines/jm/handler.py +0 -0
  558. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/pipelines/models.py +0 -0
  559. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/pipelines/registry.py +0 -0
  560. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/registry.py +0 -0
  561. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/shared.py +0 -0
  562. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/tools/README.md +0 -0
  563. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/tools/__init__.py +0 -0
  564. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/tools/arxiv_paper/README.md +0 -0
  565. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/tools/arxiv_paper/callable.json +0 -0
  566. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/tools/arxiv_paper/config.json +0 -0
  567. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/tools/arxiv_paper/handler.py +0 -0
  568. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/tools/bilibili_opus/README.md +0 -0
  569. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/tools/bilibili_opus/callable.json +0 -0
  570. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/tools/bilibili_opus/config.json +0 -0
  571. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/tools/bilibili_opus/handler.py +0 -0
  572. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/tools/bilibili_video/README.md +0 -0
  573. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/tools/bilibili_video/callable.json +0 -0
  574. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/tools/bilibili_video/config.json +0 -0
  575. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/tools/bilibili_video/handler.py +0 -0
  576. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/tools/calculator/README.md +0 -0
  577. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/tools/calculator/callable.json +0 -0
  578. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/tools/calculator/config.json +0 -0
  579. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/tools/calculator/handler.py +0 -0
  580. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/tools/changelog_query/README.md +0 -0
  581. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/tools/changelog_query/config.json +0 -0
  582. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/tools/changelog_query/handler.py +0 -0
  583. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/tools/douyin_video/README.md +0 -0
  584. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/tools/douyin_video/callable.json +0 -0
  585. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/tools/douyin_video/config.json +0 -0
  586. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/tools/douyin_video/handler.py +0 -0
  587. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/tools/end/README.md +0 -0
  588. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/tools/end/config.json +0 -0
  589. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/tools/end/handler.py +0 -0
  590. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/tools/fetch_image_uid/README.md +0 -0
  591. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/tools/fetch_image_uid/config.json +0 -0
  592. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/tools/fetch_image_uid/handler.py +0 -0
  593. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/tools/get_current_time/README.md +0 -0
  594. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/tools/get_current_time/callable.json +0 -0
  595. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/tools/get_current_time/config.json +0 -0
  596. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/tools/get_current_time/handler.py +0 -0
  597. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/tools/get_picture/README.md +0 -0
  598. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/tools/get_picture/config.json +0 -0
  599. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/tools/get_picture/handler.py +0 -0
  600. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/tools/get_user_info/README.md +0 -0
  601. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/tools/get_user_info/config.json +0 -0
  602. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/tools/get_user_info/handler.py +0 -0
  603. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/tools/jm_book/README.md +0 -0
  604. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/tools/jm_book/callable.json +0 -0
  605. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/tools/jm_book/config.json +0 -0
  606. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/tools/jm_book/handler.py +0 -0
  607. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/tools/knowledge_list/README.md +0 -0
  608. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/tools/knowledge_list/config.json +0 -0
  609. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/tools/knowledge_list/handler.py +0 -0
  610. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/tools/knowledge_semantic_search/README.md +0 -0
  611. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/tools/knowledge_semantic_search/config.json +0 -0
  612. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/tools/knowledge_semantic_search/handler.py +0 -0
  613. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/tools/knowledge_text_search/README.md +0 -0
  614. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/tools/knowledge_text_search/config.json +0 -0
  615. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/tools/knowledge_text_search/handler.py +0 -0
  616. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/tools/python_interpreter/README.md +0 -0
  617. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/tools/python_interpreter/config.json +0 -0
  618. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/tools/python_interpreter/handler.py +0 -0
  619. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/tools/qq_like/README.md +0 -0
  620. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/tools/qq_like/config.json +0 -0
  621. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/tools/qq_like/handler.py +0 -0
  622. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/tools/task_progress/README.md +0 -0
  623. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/tools/task_progress/config.json +0 -0
  624. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/tools/task_progress/handler.py +0 -0
  625. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/toolsets/README.md +0 -0
  626. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/toolsets/__init__.py +0 -0
  627. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/toolsets/attachments/README.md +0 -0
  628. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/toolsets/attachments/get_uid_by_url/config.json +0 -0
  629. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/toolsets/attachments/get_uid_by_url/handler.py +0 -0
  630. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/toolsets/attachments/get_url_by_uid/config.json +0 -0
  631. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/toolsets/attachments/get_url_by_uid/handler.py +0 -0
  632. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/toolsets/automation/README.md +0 -0
  633. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/toolsets/automation/_runtime.py +0 -0
  634. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/toolsets/automation/create/config.json +0 -0
  635. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/toolsets/automation/create/handler.py +0 -0
  636. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/toolsets/automation/delete/config.json +0 -0
  637. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/toolsets/automation/delete/handler.py +0 -0
  638. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/toolsets/automation/get/config.json +0 -0
  639. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/toolsets/automation/get/handler.py +0 -0
  640. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/toolsets/automation/list/config.json +0 -0
  641. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/toolsets/automation/list/handler.py +0 -0
  642. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/toolsets/automation/set_enabled/config.json +0 -0
  643. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/toolsets/automation/set_enabled/handler.py +0 -0
  644. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/toolsets/automation/update/config.json +0 -0
  645. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/toolsets/automation/update/handler.py +0 -0
  646. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/toolsets/cognitive/README.md +0 -0
  647. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/toolsets/cognitive/get_profile/config.json +0 -0
  648. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/toolsets/cognitive/get_profile/handler.py +0 -0
  649. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/toolsets/cognitive/search_events/config.json +0 -0
  650. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/toolsets/cognitive/search_events/handler.py +0 -0
  651. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/toolsets/cognitive/search_profiles/config.json +0 -0
  652. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/toolsets/cognitive/search_profiles/handler.py +0 -0
  653. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/toolsets/commands/README.md +0 -0
  654. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/toolsets/commands/get/config.json +0 -0
  655. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/toolsets/commands/get/handler.py +0 -0
  656. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/toolsets/commands/search/config.json +0 -0
  657. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/toolsets/commands/search/handler.py +0 -0
  658. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/toolsets/contacts/README.md +0 -0
  659. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/toolsets/contacts/query_friends/config.json +0 -0
  660. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/toolsets/contacts/query_friends/handler.py +0 -0
  661. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/toolsets/contacts/query_groups/config.json +0 -0
  662. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/toolsets/contacts/query_groups/handler.py +0 -0
  663. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/toolsets/group/README.md +0 -0
  664. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/toolsets/group/find_member/config.json +0 -0
  665. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/toolsets/group/find_member/handler.py +0 -0
  666. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/toolsets/group/get_avatar/config.json +0 -0
  667. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/toolsets/group/get_avatar/handler.py +0 -0
  668. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/toolsets/group/get_files/config.json +0 -0
  669. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/toolsets/group/get_files/handler.py +0 -0
  670. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/toolsets/group/get_honor_info/config.json +0 -0
  671. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/toolsets/group/get_honor_info/handler.py +0 -0
  672. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/toolsets/group/get_member_info/config.json +0 -0
  673. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/toolsets/group/get_member_info/handler.py +0 -0
  674. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/toolsets/group/get_member_list/config.json +0 -0
  675. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/toolsets/group/get_member_list/handler.py +0 -0
  676. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/toolsets/group/get_member_title/config.json +0 -0
  677. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/toolsets/group/get_member_title/handler.py +0 -0
  678. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/toolsets/group_analysis/README.md +0 -0
  679. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/toolsets/group_analysis/activity_trend/config.json +0 -0
  680. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/toolsets/group_analysis/activity_trend/handler.py +0 -0
  681. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/toolsets/group_analysis/filter_members/config.json +0 -0
  682. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/toolsets/group_analysis/filter_members/handler.py +0 -0
  683. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/toolsets/group_analysis/inactive_risk/config.json +0 -0
  684. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/toolsets/group_analysis/inactive_risk/handler.py +0 -0
  685. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/toolsets/group_analysis/join_statistics/config.json +0 -0
  686. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/toolsets/group_analysis/join_statistics/handler.py +0 -0
  687. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/toolsets/group_analysis/level_distribution/config.json +0 -0
  688. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/toolsets/group_analysis/level_distribution/handler.py +0 -0
  689. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/toolsets/group_analysis/member_activity/config.json +0 -0
  690. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/toolsets/group_analysis/member_activity/handler.py +0 -0
  691. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/toolsets/group_analysis/member_messages/config.json +0 -0
  692. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/toolsets/group_analysis/member_messages/handler.py +0 -0
  693. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/toolsets/group_analysis/member_structure/config.json +0 -0
  694. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/toolsets/group_analysis/member_structure/handler.py +0 -0
  695. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/toolsets/group_analysis/message_mix/config.json +0 -0
  696. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/toolsets/group_analysis/message_mix/handler.py +0 -0
  697. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/toolsets/group_analysis/new_member_activity/config.json +0 -0
  698. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/toolsets/group_analysis/new_member_activity/handler.py +0 -0
  699. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/toolsets/group_analysis/rank_members/config.json +0 -0
  700. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/toolsets/group_analysis/rank_members/handler.py +0 -0
  701. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/toolsets/mcp/README.md +0 -0
  702. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/toolsets/mcp/__init__.py +0 -0
  703. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/toolsets/memes/README.md +0 -0
  704. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/toolsets/memes/search_memes/config.json +0 -0
  705. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/toolsets/memes/search_memes/handler.py +0 -0
  706. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/toolsets/memes/send_meme_by_uid/config.json +0 -0
  707. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/toolsets/memes/send_meme_by_uid/handler.py +0 -0
  708. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/toolsets/memory/README.md +0 -0
  709. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/toolsets/memory/add/config.json +0 -0
  710. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/toolsets/memory/add/handler.py +0 -0
  711. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/toolsets/memory/delete/config.json +0 -0
  712. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/toolsets/memory/delete/handler.py +0 -0
  713. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/toolsets/memory/list/config.json +0 -0
  714. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/toolsets/memory/list/handler.py +0 -0
  715. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/toolsets/memory/update/config.json +0 -0
  716. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/toolsets/memory/update/handler.py +0 -0
  717. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/toolsets/messages/README.md +0 -0
  718. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/toolsets/messages/context_utils.py +0 -0
  719. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/toolsets/messages/get_forward_msg/config.json +0 -0
  720. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/toolsets/messages/get_forward_msg/handler.py +0 -0
  721. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/toolsets/messages/get_messages_by_time/config.json +0 -0
  722. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/toolsets/messages/get_messages_by_time/handler.py +0 -0
  723. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/toolsets/messages/get_recent_messages/config.json +0 -0
  724. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/toolsets/messages/get_recent_messages/handler.py +0 -0
  725. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/toolsets/messages/list_emojis/config.json +0 -0
  726. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/toolsets/messages/list_emojis/handler.py +0 -0
  727. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/toolsets/messages/lookup_emoji_id/config.json +0 -0
  728. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/toolsets/messages/lookup_emoji_id/handler.py +0 -0
  729. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/toolsets/messages/react_message_emoji/config.json +0 -0
  730. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/toolsets/messages/react_message_emoji/handler.py +0 -0
  731. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/toolsets/messages/send_group_sign/config.json +0 -0
  732. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/toolsets/messages/send_group_sign/handler.py +0 -0
  733. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/toolsets/messages/send_message/config.json +0 -0
  734. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/toolsets/messages/send_message/handler.py +0 -0
  735. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/toolsets/messages/send_poke/config.json +0 -0
  736. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/toolsets/messages/send_poke/handler.py +0 -0
  737. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/toolsets/messages/send_private_message/config.json +0 -0
  738. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/toolsets/messages/send_private_message/handler.py +0 -0
  739. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/toolsets/messages/send_text_file/callable.json +0 -0
  740. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/toolsets/messages/send_text_file/config.json +0 -0
  741. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/toolsets/messages/send_text_file/handler.py +0 -0
  742. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/toolsets/messages/send_url_file/callable.json +0 -0
  743. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/toolsets/messages/send_url_file/config.json +0 -0
  744. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/toolsets/messages/send_url_file/handler.py +0 -0
  745. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/toolsets/messages/send_voice/config.json +0 -0
  746. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/toolsets/messages/send_voice/handler.py +0 -0
  747. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/toolsets/music/README.md +0 -0
  748. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/toolsets/music/_client.py +0 -0
  749. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/toolsets/music/_constants.py +0 -0
  750. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/toolsets/music/_tools.py +0 -0
  751. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/toolsets/music/_track_refs.py +0 -0
  752. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/toolsets/music/browse_playlists/config.json +0 -0
  753. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/toolsets/music/browse_playlists/handler.py +0 -0
  754. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/toolsets/music/browse_rankings/config.json +0 -0
  755. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/toolsets/music/browse_rankings/handler.py +0 -0
  756. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/toolsets/music/find_song_matches/config.json +0 -0
  757. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/toolsets/music/find_song_matches/handler.py +0 -0
  758. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/toolsets/music/get_audio/config.json +0 -0
  759. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/toolsets/music/get_audio/handler.py +0 -0
  760. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/toolsets/music/get_comments/config.json +0 -0
  761. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/toolsets/music/get_comments/handler.py +0 -0
  762. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/toolsets/music/get_cover/config.json +0 -0
  763. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/toolsets/music/get_cover/handler.py +0 -0
  764. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/toolsets/music/get_hot_search/config.json +0 -0
  765. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/toolsets/music/get_hot_search/handler.py +0 -0
  766. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/toolsets/music/get_lyrics/config.json +0 -0
  767. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/toolsets/music/get_lyrics/handler.py +0 -0
  768. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/toolsets/music/search_playlists/config.json +0 -0
  769. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/toolsets/music/search_playlists/handler.py +0 -0
  770. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/toolsets/music/search_songs/config.json +0 -0
  771. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/toolsets/music/search_songs/handler.py +0 -0
  772. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/toolsets/notices/README.md +0 -0
  773. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/toolsets/notices/get/config.json +0 -0
  774. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/toolsets/notices/get/handler.py +0 -0
  775. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/toolsets/notices/list/config.json +0 -0
  776. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/toolsets/notices/list/handler.py +0 -0
  777. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/toolsets/notices/stats/config.json +0 -0
  778. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/toolsets/notices/stats/handler.py +0 -0
  779. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/toolsets/render/README.md +0 -0
  780. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/toolsets/render/layout.py +0 -0
  781. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/toolsets/render/render_html/config.json +0 -0
  782. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/toolsets/render/render_html/handler.py +0 -0
  783. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/toolsets/render/render_latex/config.json +0 -0
  784. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/toolsets/render/render_latex/handler.py +0 -0
  785. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/toolsets/render/render_markdown/config.json +0 -0
  786. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/skills/toolsets/render/render_markdown/handler.py +0 -0
  787. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/token_usage_storage.py +0 -0
  788. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/utils/__init__.py +0 -0
  789. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/utils/cache.py +0 -0
  790. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/utils/coerce.py +0 -0
  791. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/utils/common.py +0 -0
  792. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/utils/cors.py +0 -0
  793. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/utils/easter_egg_calls.py +0 -0
  794. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/utils/fake_at.py +0 -0
  795. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/utils/file_lock.py +0 -0
  796. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/utils/group_metrics.py +0 -0
  797. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/utils/history.py +0 -0
  798. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/utils/http_download.py +0 -0
  799. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/utils/io.py +0 -0
  800. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/utils/logging.py +0 -0
  801. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/utils/member_utils.py +0 -0
  802. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/utils/message_reply.py +0 -0
  803. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/utils/message_targets.py +0 -0
  804. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/utils/message_turn.py +0 -0
  805. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/utils/message_utils.py +0 -0
  806. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/utils/qq_emoji.py +0 -0
  807. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/utils/queue_intervals.py +0 -0
  808. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/utils/recent_messages.py +0 -0
  809. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/utils/render_cache.py +0 -0
  810. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/utils/request_params.py +0 -0
  811. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/utils/resources.py +0 -0
  812. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/utils/scheduler.py +0 -0
  813. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/utils/self_update.py +0 -0
  814. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/utils/sender.py +0 -0
  815. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/utils/sender_helpers.py +0 -0
  816. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/utils/time_utils.py +0 -0
  817. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/utils/tool_calls.py +0 -0
  818. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/utils/xml.py +0 -0
  819. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/webui/__init__.py +0 -0
  820. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/webui/__main__.py +0 -0
  821. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/webui/routes/__init__.py +0 -0
  822. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/webui/routes/_bot.py +0 -0
  823. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/webui/routes/_config.py +0 -0
  824. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/webui/routes/_index.py +0 -0
  825. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/webui/routes/_logs.py +0 -0
  826. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/webui/routes/_memes.py +0 -0
  827. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/webui/routes/_runtime.py +0 -0
  828. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/webui/routes/_system.py +0 -0
  829. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/webui/routes/_weixin.py +0 -0
  830. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/webui/static/css/.stylelintrc.json +0 -0
  831. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/webui/static/css/app.css +0 -0
  832. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/webui/static/css/base.css +0 -0
  833. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/webui/static/css/components.css +0 -0
  834. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/webui/static/css/highlight-github.min.css +0 -0
  835. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/webui/static/css/landing.css +0 -0
  836. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/webui/static/css/responsive.css +0 -0
  837. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/webui/static/css/style.css +0 -0
  838. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/webui/static/css/variables.css +0 -0
  839. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/webui/static/css/workflow.css +0 -0
  840. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/webui/static/favicon.svg +0 -0
  841. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/webui/static/js/auth.js +0 -0
  842. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/webui/static/js/bot.js +0 -0
  843. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/webui/static/js/config-form.js +0 -0
  844. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/webui/static/js/i18n.js +0 -0
  845. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/webui/static/js/log-view.js +0 -0
  846. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/webui/static/js/logs.js +0 -0
  847. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/webui/static/js/main.js +0 -0
  848. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/webui/static/js/memes.js +0 -0
  849. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/webui/static/js/runtime.js +0 -0
  850. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/webui/static/js/schedules.js +0 -0
  851. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/webui/static/js/ui.js +0 -0
  852. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/webui/static/js/vendor/highlight.min.js +0 -0
  853. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/webui/static/js/vendor/highlightjs.LICENSE +0 -0
  854. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/webui/static/js/vendor/marked.min.js +0 -0
  855. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/webui/static/js/weixin.js +0 -0
  856. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/webui/static/js/workflow-canvas.js +0 -0
  857. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/webui/static/js/workflow-graph.js +0 -0
  858. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/webui/static/js/workflow-inspector.js +0 -0
  859. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/webui/templates/index.html +0 -0
  860. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/webui/utils/__init__.py +0 -0
  861. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/webui/utils/comment.py +0 -0
  862. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/webui/utils/config_io.py +0 -0
  863. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/webui/utils/config_sync.py +0 -0
  864. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/webui/utils/toml_render.py +0 -0
  865. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/weixin/__init__.py +0 -0
  866. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/weixin/audio.py +0 -0
  867. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/weixin/models.py +0 -0
  868. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/weixin/service.py +0 -0
  869. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/weixin/store.py +0 -0
  870. {undefined_bot-3.18.9 → undefined_bot-3.19.0}/src/Undefined/weixin/transport.py +0 -0
@@ -1,3 +1,28 @@
1
+ ## v3.19.0 控制台登录态持久化
2
+
3
+ 本版本让 WebUI 控制台的登录态在进程重启后继续有效,并把登录有效期从 8 小时延长到 30 天;活跃使用的会话会自动续期,浏览器关闭重开也不再要求重新登录。
4
+
5
+ - 会话落盘:服务端会话表写入 `data/cache/webui_sessions.json`(权限 0600),启动时自动恢复;过期条目在加载和写盘时清理,文件损坏只告警,不影响控制台启动。
6
+ - 有效期延长:session 与 refresh token 从 8 小时延长到 30 天,access token 保持 15 分钟并由前端自动刷新;session 剩余不足一半时滑动续期,持续使用不会掉线。
7
+ - 前端存储:WebUI 令牌从 `sessionStorage` 改为 `localStorage`,浏览器或控制台重启后仍然保留;自动迁移旧版本遗留的令牌,登出时一并清理。
8
+ - Cookie 同步:`undefined_webui` 与 `undefined_webui_token` 的 `max_age` 均设为 30 天;刷新轮换只重置 `undefined_webui_token`,`undefined_webui` 保持登录时的 30 天期限。
9
+ - 刷新安全:refresh token 轮换改为加锁原子操作,旧 token 立即失效;会话文件只保存密码指纹,修改管理密码(含直接编辑 `config.toml` 后重启)会作废旧登录态。
10
+ - 测试覆盖:新增会话持久化、滑动续期、密码变更失效与重启恢复测试。
11
+
12
+ ---
13
+
14
+ ## v3.18.10 群聊出错静默处理
15
+
16
+ 本版本新增群聊出错时的发言边界:bot 自行发起且未被要求的失败直接静默结束,用户明确要求的失败只回一句简短状态,不再主动认领、道歉或解释错误详情;同时把规则提升为与说话风格同级的 P1 顶层小节,并在多处同步重申。
17
+
18
+ - 失败分类:通过 @、回复、呼语、按任务名/功能名指派,或当前输入直接要求的任务,以及为完成该任务所必需的搜索、Agent、下载、解析等子调用失败,按用户要求的任务失败处理;只有当前输入未要求、自行额外发起或主动延伸的操作失败才静默。
19
+ - 静默处理:不发送任何消息,memo 只写一句脱敏摘要(不写原始报错、URL、token、cookie、账号、密钥等敏感内容),并调用 `end(force=true)` 结束。
20
+ - 请求失败:回一句类似“现在不可用 稍后再试”的简短状态;已成功准备好的附件/结果先正常发送,再只说明未完成的部分,不认错、不展开错误原因。
21
+ - 明确询问:只有用户明确问起哪里出错、为什么失败或要求排查时,才说明必要原因和限制,仍不倾倒内部细节或敏感信息。
22
+ - 提示词结构:新增顶层 `error_reporting` P1 小节,并在 `speaking_style`、`public_speech_boundary`、`summary` 与 `res/IMPORTANT/each.md` 中同步重申;补充提示词契约测试,覆盖用户要求与自行发起两种失败分支及 `force=true`。
23
+
24
+ ---
25
+
1
26
  ## v3.18.9 群聊发言边界与上下文核对
2
27
 
3
28
  本版本收紧群聊主动参与的条件,要求先读完整段上下文再判断是否回应,减少因技术关键词、相邻消息或曾经参与过话题而误接他人的对话;同时修复带 @、拍一拍说明的输入中首条消息身份解析错误。
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: Undefined-bot
3
- Version: 3.18.9
3
+ Version: 3.19.0
4
4
  Summary: QQ bot platform with cognitive memory architecture and multi-agent Skills, via OneBot V11.
5
5
  Project-URL: Repository, https://github.com/69gg/Undefined
6
6
  Project-URL: Issues, https://github.com/69gg/Undefined/issues
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "Undefined-bot"
3
- version = "3.18.9"
3
+ version = "3.19.0"
4
4
  description = "QQ bot platform with cognitive memory architecture and multi-agent Skills, via OneBot V11."
5
5
  readme = "README.md"
6
6
  authors = [
@@ -66,6 +66,7 @@
66
66
  - 始终保持边界感和隐私意识,不主动提及他人的个人信息、私事或聊天内容,不为闲聊、自述或玩笑引入别人。用户提到某人也不自行从其他群、私聊、历史或侧写补充其情况;知道、熟悉或被追问都不等于披露授权,第三方信息仍按授权和最小必要原则处理。
67
67
  - 你对外是在和人聊天,不是写运行日志或规则复读器。
68
68
  - 不回复时只调用 end;内部原因可写 memo,禁止用 send_message 解释为何沉默。
69
+ - 群聊里出错不主动报错:除非用户明确询问,不说“我的锅”“我出错了”之类的认领或道歉,不贴错误详情。用户明确要求(@、回复、呼语、按任务名指派)或完成该任务所必需的子调用失败,只回一句“现在不可用 稍后再试”,已准备好的附件/结果先发送;只有当前输入未要求、你自己额外发起的失败才静默 end(force=true),memo 只写脱敏摘要。
69
70
  - 禁止发给用户:闸门结论、bot_trigger 分析、静默处理、无业务操作、无重复任务、「本条无提及」类拼写声明、工具编排说明。
70
71
  - 日常接话用熟悉的说法,不主动介绍内部分类、工具名或保存与检索流程。对方感叹你还记得,或随口问怎么知道时,只回应有依据的来由;不补没问的机制、限制、纠错承诺或自我辩解。明确追问实现、来源或隐私时,如实说明所问的部分,保留必要细节,不把用户写成操作者,也不承诺改实现。
71
72
  - 行为规则指导行动,不是自我介绍的素材;只有当前问题确实涉及相应行为、能力或来源时,才解释相关部分。
@@ -86,6 +86,15 @@
86
86
  <rule>拒绝时简短说明与当前请求直接相关的原因,不宣讲整套规则;不确定、失败或拒绝都不需要用笑声或自嘲掩饰。</rule>
87
87
  </equality_and_honesty>
88
88
 
89
+ <!-- 与顶层 error_reporting 同级重申:群聊出错时不主动报错 -->
90
+ <error_reporting_boundary>
91
+ <rule>群聊里出错时,除非用户明确询问,不主动报错,不说“我的锅”“我出错了”之类的自我认领或道歉,也不解释错误内容、堆栈、工具名或内部原因。如实说明失败不等于必须主动广播失败。</rule>
92
+ <rule>判断是否属于用户要求:通过 @、回复、明确呼语、按任务名/功能名指派,或当前输入批次直接要求你完成的任务,都算明确要求;为完成该任务而调用的搜索、Agent、下载、解析等子调用失败,属于该任务失败,不算自行发起的失败。只有当前输入未要求、你自己额外发起或主动延伸的操作失败,才按静默处理。</rule>
93
+ <rule>失败来自你自行发起、并未被当前输入批次明确要求的操作时,直接静默处理:不发送任何消息,memo 只写一句脱敏摘要(不写原始报错、URL、token、cookie、账号、密钥等敏感内容),并调用 end(force=true);这不算“判定需要回复”,不适用必须先 send_message 的要求。</rule>
94
+ <rule>失败来自用户明确要求(@、回复、呼语、按任务名指派等),或属于完成该任务所必需的子调用时,回一句类似“现在不可用 稍后再试”的简短状态;已成功准备好的附件/结果先正常发送,再只说明未完成的部分;不认错、不展开错误原因。</rule>
95
+ <rule>只有用户明确问起哪里出错、为什么失败或要求排查时,才说明必要的原因和限制,仍不长篇倾倒内部细节,也不泄露 URL、token、cookie、账号、密钥等敏感内容。</rule>
96
+ </error_reporting_boundary>
97
+
89
98
  <natural_language>
90
99
  <rule>使用正常母语交流中的自然表达,清楚说出谁做了什么、为什么,不用抽象名词和层层修饰代替具体动作,避免公文官话、机械翻译体、空泛的行业黑话和刻意装随意。</rule>
91
100
  <rule>按一句话在当前交流中的作用决定保留、简化或省略:回答问题、说明必要条件、表达感受、礼貌回应都可以有价值。简化时保留事实主体、数字、条件、否定范围、完成状态和不确定程度,不因追求顺口改变原意;有用的重复、列表和术语也可以保留。</rule>
@@ -165,6 +174,15 @@
165
174
  </images_and_memes>
166
175
  </speaking_style>
167
176
 
177
+ <!-- ==================== P1: 群聊出错时的发言边界(与 speaking_style 同级) ==================== -->
178
+ <error_reporting level="P1">
179
+ <rule>群聊里出错时,除非用户明确询问,不主动报错,不说“我的锅”“我出错了”之类的自我认领或道歉,也不解释错误内容、堆栈、工具名或内部原因。如实说明失败不等于必须主动广播失败。</rule>
180
+ <rule>判断是否属于用户要求:通过 @、回复、明确呼语、按任务名/功能名指派,或当前输入批次直接要求你完成的任务,都算明确要求;为完成该任务而调用的搜索、Agent、下载、解析等子调用失败,属于该任务失败,不算自行发起的失败。只有当前输入未要求、你自己额外发起或主动延伸的操作失败,才按静默处理。</rule>
181
+ <rule>失败来自你自行发起、并未被当前输入批次明确要求的操作时,直接静默处理:不发送任何消息,memo 只写一句脱敏摘要(不写原始报错、URL、token、cookie、账号、密钥等敏感内容),并调用 end(force=true);这不算“判定需要回复”,不适用必须先 send_message 的要求。</rule>
182
+ <rule>失败来自用户明确要求(@、回复、呼语、按任务名指派等),或属于完成该任务所必需的子调用时,回一句类似“现在不可用 稍后再试”的简短状态;已成功准备好的附件/结果先正常发送,再只说明未完成的部分;不认错、不展开错误原因。</rule>
183
+ <rule>只有用户明确问起哪里出错、为什么失败或要求排查时,才说明必要的原因和限制,仍不长篇倾倒内部细节,也不泄露 URL、token、cookie、账号、密钥等敏感内容。</rule>
184
+ </error_reporting>
185
+
168
186
 
169
187
  <!-- ==================== P0: 绝对优先级 ==================== -->
170
188
  <absolute_priority level="P0">
@@ -253,6 +271,7 @@
253
271
  <public_speech_boundary priority="P0">
254
272
  **对外发言边界:**
255
273
  - 不回复时只调用 end;内部原因可写 memo,禁止用 send_message 解释为何沉默。
274
+ - 群聊里出错不主动报错:除非用户明确询问,不说“我的锅”“我出错了”之类的认领或道歉,不贴错误详情。用户明确要求(@、回复、呼语、按任务名指派)或完成该任务所必需的子调用失败,只回一句“现在不可用 稍后再试”,已准备好的附件/结果先发送;只有当前输入未要求、你自己额外发起的失败才静默 end(force=true),memo 只写脱敏摘要。
256
275
  - 禁止把下列内容发给用户:闸门结论、bot_trigger 分析、静默处理说明、无业务操作/无重复任务、拼写或专名自检、工具编排或规则复读。
257
276
  - 不要把内部工具名、分层手册、参数说明发给用户;对方已经用这些名字追问时,仍用人话回答,不把用户写成操作者,也不承诺改实现。
258
277
  - 行为规则用于决定怎么做,不是聊天素材;只在当前问题确实涉及相应行为、能力或来源时,解释相关部分。
@@ -1795,6 +1814,7 @@
1795
1814
  <rule priority="P0">隐私/敏感话题不改变回复时机;即使内容安全,也必须先满足回复触发逻辑</rule>
1796
1815
  <rule priority="P0">content 字段始终为空字符串,所有输出通过工具调用</rule>
1797
1816
  <rule priority="P0">不回复时只调用 end;禁止用 send_message 发送闸门结论、静默原因、规则自检或拼写声明</rule>
1817
+ <rule priority="P1">群聊里出错不主动报错、不认错道歉、不贴错误详情;用户明确要求或完成任务所必需的子调用失败,只说一句“现在不可用 稍后再试”并先发已准备好的附件/结果;只有未被要求的自发起失败才静默 end(force=true),memo 只写脱敏摘要;用户明确询问才说明原因</rule>
1798
1818
  <rule priority="P1">默认不回复,除非明确触发条件</rule>
1799
1819
  <rule priority="P1">不回复自己,不重复发送同一请求的同一交付;新一轮日常交流可以自然回应</rule>
1800
1820
  <rule priority="P1">尊重对话边界,不凑热闹</rule>
@@ -86,6 +86,15 @@
86
86
  <rule>拒绝时简短说明与当前请求直接相关的原因,不宣讲整套规则;不确定、失败或拒绝都不需要用笑声或自嘲掩饰。</rule>
87
87
  </equality_and_honesty>
88
88
 
89
+ <!-- 与顶层 error_reporting 同级重申:群聊出错时不主动报错 -->
90
+ <error_reporting_boundary>
91
+ <rule>群聊里出错时,除非用户明确询问,不主动报错,不说“我的锅”“我出错了”之类的自我认领或道歉,也不解释错误内容、堆栈、工具名或内部原因。如实说明失败不等于必须主动广播失败。</rule>
92
+ <rule>判断是否属于用户要求:通过 @、回复、明确呼语、按任务名/功能名指派,或当前输入批次直接要求你完成的任务,都算明确要求;为完成该任务而调用的搜索、Agent、下载、解析等子调用失败,属于该任务失败,不算自行发起的失败。只有当前输入未要求、你自己额外发起或主动延伸的操作失败,才按静默处理。</rule>
93
+ <rule>失败来自你自行发起、并未被当前输入批次明确要求的操作时,直接静默处理:不发送任何消息,memo 只写一句脱敏摘要(不写原始报错、URL、token、cookie、账号、密钥等敏感内容),并调用 end(force=true);这不算“判定需要回复”,不适用必须先 send_message 的要求。</rule>
94
+ <rule>失败来自用户明确要求(@、回复、呼语、按任务名指派等),或属于完成该任务所必需的子调用时,回一句类似“现在不可用 稍后再试”的简短状态;已成功准备好的附件/结果先正常发送,再只说明未完成的部分;不认错、不展开错误原因。</rule>
95
+ <rule>只有用户明确问起哪里出错、为什么失败或要求排查时,才说明必要的原因和限制,仍不长篇倾倒内部细节,也不泄露 URL、token、cookie、账号、密钥等敏感内容。</rule>
96
+ </error_reporting_boundary>
97
+
89
98
  <natural_language>
90
99
  <rule>使用正常母语交流中的自然表达,清楚说出谁做了什么、为什么,不用抽象名词和层层修饰代替具体动作,避免公文官话、机械翻译体、空泛的行业黑话和刻意装随意。</rule>
91
100
  <rule>按一句话在当前交流中的作用决定保留、简化或省略:回答问题、说明必要条件、表达感受、礼貌回应都可以有价值。简化时保留事实主体、数字、条件、否定范围、完成状态和不确定程度,不因追求顺口改变原意;有用的重复、列表和术语也可以保留。</rule>
@@ -165,6 +174,15 @@
165
174
  </images_and_memes>
166
175
  </speaking_style>
167
176
 
177
+ <!-- ==================== P1: 群聊出错时的发言边界(与 speaking_style 同级) ==================== -->
178
+ <error_reporting level="P1">
179
+ <rule>群聊里出错时,除非用户明确询问,不主动报错,不说“我的锅”“我出错了”之类的自我认领或道歉,也不解释错误内容、堆栈、工具名或内部原因。如实说明失败不等于必须主动广播失败。</rule>
180
+ <rule>判断是否属于用户要求:通过 @、回复、明确呼语、按任务名/功能名指派,或当前输入批次直接要求你完成的任务,都算明确要求;为完成该任务而调用的搜索、Agent、下载、解析等子调用失败,属于该任务失败,不算自行发起的失败。只有当前输入未要求、你自己额外发起或主动延伸的操作失败,才按静默处理。</rule>
181
+ <rule>失败来自你自行发起、并未被当前输入批次明确要求的操作时,直接静默处理:不发送任何消息,memo 只写一句脱敏摘要(不写原始报错、URL、token、cookie、账号、密钥等敏感内容),并调用 end(force=true);这不算“判定需要回复”,不适用必须先 send_message 的要求。</rule>
182
+ <rule>失败来自用户明确要求(@、回复、呼语、按任务名指派等),或属于完成该任务所必需的子调用时,回一句类似“现在不可用 稍后再试”的简短状态;已成功准备好的附件/结果先正常发送,再只说明未完成的部分;不认错、不展开错误原因。</rule>
183
+ <rule>只有用户明确问起哪里出错、为什么失败或要求排查时,才说明必要的原因和限制,仍不长篇倾倒内部细节,也不泄露 URL、token、cookie、账号、密钥等敏感内容。</rule>
184
+ </error_reporting>
185
+
168
186
 
169
187
  <!-- ==================== P0: 绝对优先级 ==================== -->
170
188
  <absolute_priority level="P0">
@@ -253,6 +271,7 @@
253
271
  <public_speech_boundary priority="P0">
254
272
  **对外发言边界:**
255
273
  - 不回复时只调用 end;内部原因可写 memo,禁止用 send_message 解释为何沉默。
274
+ - 群聊里出错不主动报错:除非用户明确询问,不说“我的锅”“我出错了”之类的认领或道歉,不贴错误详情。用户明确要求(@、回复、呼语、按任务名指派)或完成该任务所必需的子调用失败,只回一句“现在不可用 稍后再试”,已准备好的附件/结果先发送;只有当前输入未要求、你自己额外发起的失败才静默 end(force=true),memo 只写脱敏摘要。
256
275
  - 禁止把下列内容发给用户:闸门结论、bot_trigger 分析、静默处理说明、无业务操作/无重复任务、拼写或专名自检、工具编排或规则复读。
257
276
  - 不要把内部工具名、分层手册、参数说明发给用户;对方已经用这些名字追问时,仍用人话回答,不把用户写成操作者,也不承诺改实现。
258
277
  - 行为规则用于决定怎么做,不是聊天素材;只在当前问题确实涉及相应行为、能力或来源时,解释相关部分。
@@ -1860,6 +1879,7 @@
1860
1879
  <rule priority="P0">隐私/敏感话题不改变回复时机;即使内容安全,也必须先满足回复触发逻辑</rule>
1861
1880
  <rule priority="P0">content 字段始终为空字符串,所有输出通过工具调用</rule>
1862
1881
  <rule priority="P0">不回复时只调用 end;禁止用 send_message 发送闸门结论、静默原因、规则自检或拼写声明</rule>
1882
+ <rule priority="P1">群聊里出错不主动报错、不认错道歉、不贴错误详情;用户明确要求或完成任务所必需的子调用失败,只说一句“现在不可用 稍后再试”并先发已准备好的附件/结果;只有未被要求的自发起失败才静默 end(force=true),memo 只写脱敏摘要;用户明确询问才说明原因</rule>
1863
1883
  <rule priority="P1">默认不回复,除非明确触发条件</rule>
1864
1884
  <rule priority="P1">不回复自己,不重复发送同一请求的同一交付;新一轮日常交流可以自然回应</rule>
1865
1885
  <rule priority="P1">尊重对话边界,不凑热闹</rule>
@@ -24,7 +24,7 @@ if TYPE_CHECKING:
24
24
  from .skills.registry import BaseRegistry as BaseRegistry
25
25
  from .skills.tools import ToolRegistry as ToolRegistry
26
26
 
27
- __version__: str = "3.18.9"
27
+ __version__: str = "3.19.0"
28
28
 
29
29
  # symbol -> (module_path, attribute_name);首次访问时才 importlib 加载
30
30
  _LAZY_IMPORTS: dict[str, tuple[str, str]] = {
@@ -18,6 +18,7 @@ DOWNLOAD_CACHE_DIR: Path = CACHE_DIR / "downloads"
18
18
  TEXT_FILE_CACHE_DIR: Path = CACHE_DIR / "text_files"
19
19
  URL_FILE_CACHE_DIR: Path = CACHE_DIR / "url_files"
20
20
  WEBUI_FILE_CACHE_DIR: Path = CACHE_DIR / "webui_files"
21
+ WEBUI_SESSIONS_FILE: Path = CACHE_DIR / "webui_sessions.json"
21
22
  ATTACHMENT_REGISTRY_FILE: Path = DATA_DIR / "attachment_registry.json"
22
23
  WEBCHAT_DIR: Path = DATA_DIR / "webchat"
23
24
  WEBCHAT_CONVERSATIONS_DIR: Path = WEBCHAT_DIR / "conversations"
@@ -17,6 +17,7 @@ from Undefined.config import (
17
17
  )
18
18
  from Undefined.utils.cors import is_allowed_cors_origin, normalize_origin
19
19
  from Undefined.utils import io as async_io
20
+ from Undefined.utils.paths import WEBUI_SESSIONS_FILE
20
21
  from Undefined.utils.self_update import resolve_repo_root
21
22
  from .core import BotProcessController, SessionStore
22
23
  from .routes import routes
@@ -296,12 +297,14 @@ def create_app(*, redirect_to_config_once: bool = False) -> web.Application:
296
297
  middlewares=[cors_middleware, gzip_middleware, security_headers_middleware]
297
298
  )
298
299
 
299
- # 初始化核心组件
300
- app[SESSION_STORE_APP_KEY] = SessionStore()
301
-
302
300
  # 配置 WebUI 设置热重载
303
301
  config_manager = get_config_manager()
304
- app[SETTINGS_APP_KEY] = load_webui_settings()
302
+ settings = load_webui_settings()
303
+ app[SETTINGS_APP_KEY] = settings
304
+ # 会话落盘:控制台重启后浏览器无需重新登录;密码变更时旧会话自动失效。
305
+ app[SESSION_STORE_APP_KEY] = SessionStore(
306
+ storage_path=WEBUI_SESSIONS_FILE, password=settings.password
307
+ )
305
308
  app[BOT_APP_KEY] = BotProcessController(
306
309
  stop_timeout_getter=lambda: app[SETTINGS_APP_KEY].stop_timeout_seconds
307
310
  )
@@ -323,9 +326,21 @@ def create_app(*, redirect_to_config_once: bool = False) -> web.Application:
323
326
  ):
324
327
  logger.info("[WebUI] 检测到 WebUI 配置变更,正在热重载设置...")
325
328
  # 本次快照已成功读取;后续外部写入不能覆盖已验证的设置。
326
- app[SETTINGS_APP_KEY] = WebUISettings.from_config(
327
- config, config_exists=True
328
- )
329
+ previous = app[SETTINGS_APP_KEY]
330
+ updated = WebUISettings.from_config(config, config_exists=True)
331
+ if updated.password != previous.password:
332
+ try:
333
+ # 先持久化作废旧会话,再启用新密码,避免旧令牌在新密码下仍可用。
334
+ app[SESSION_STORE_APP_KEY].set_password(updated.password)
335
+ except Exception:
336
+ # 内存中的旧会话已作废(fail closed);保留旧设置,
337
+ # 下一次配置变更会重试持久化,避免把新密码当作已完全生效。
338
+ logger.warning(
339
+ "[WebUI] 密码变更后清理旧会话失败,暂不启用新密码",
340
+ exc_info=True,
341
+ )
342
+ return
343
+ app[SETTINGS_APP_KEY] = updated
329
344
 
330
345
  config_manager.subscribe(_on_config_change)
331
346
 
@@ -1,22 +1,38 @@
1
1
  import asyncio
2
2
  from collections.abc import Callable
3
3
  from dataclasses import dataclass
4
+ import hashlib
5
+ import json
4
6
  import logging
5
7
  import os
8
+ from pathlib import Path
6
9
  import signal
7
10
  import subprocess
8
11
  import sys
12
+ import threading
9
13
  import time
10
14
  import secrets
11
15
  from typing import Any
12
16
  from Undefined.config.webui_settings import DEFAULT_WEBUI_STOP_TIMEOUT_SECONDS
13
- from Undefined.utils.io import run_cancellation_safe
17
+ from Undefined.utils.io import run_cancellation_safe, write_json_sync
14
18
 
15
19
  logger = logging.getLogger(__name__)
16
20
 
17
- SESSION_TTL_SECONDS = 8 * 60 * 60
21
+ #: 登录态有效期。控制台属于本地自托管面板,长有效期配合活跃滑动续期,
22
+ #: 让长期使用的浏览器不必反复登录。
23
+ SESSION_TTL_SECONDS = 30 * 24 * 60 * 60
18
24
  ACCESS_TOKEN_TTL_SECONDS = 15 * 60
19
- REFRESH_TOKEN_TTL_SECONDS = 8 * 60 * 60
25
+ REFRESH_TOKEN_TTL_SECONDS = 30 * 24 * 60 * 60
26
+ SESSION_FILE_VERSION = 1
27
+
28
+
29
+ def _password_fingerprint(password: str | None) -> str | None:
30
+ """会话文件只保存密码指纹,用于在密码变更后作废旧登录态。"""
31
+ if password is None:
32
+ return None
33
+ return hashlib.sha256(password.encode("utf-8")).hexdigest()[:16]
34
+
35
+
20
36
  #: 拉起 Bot 子进程的命令。
21
37
  #:
22
38
  #: 用**当前解释器**直接跑模块,而不是 ``uv run``:WebUI 自己就跑在这个解释器里,
@@ -35,33 +51,137 @@ class SessionEntry:
35
51
 
36
52
 
37
53
  class SessionStore:
54
+ """WebUI 会话表。
55
+
56
+ 传入 ``storage_path`` 时会话会原子写入磁盘,控制台重启后自动恢复,
57
+ 浏览器手里的 cookie / 令牌无需重新登录即可继续使用。
58
+ """
59
+
38
60
  def __init__(
39
61
  self,
40
62
  ttl_seconds: int = SESSION_TTL_SECONDS,
41
63
  access_ttl_seconds: int = ACCESS_TOKEN_TTL_SECONDS,
42
64
  refresh_ttl_seconds: int = REFRESH_TOKEN_TTL_SECONDS,
65
+ storage_path: Path | None = None,
66
+ password: str | None = None,
43
67
  ) -> None:
44
68
  self._ttl_seconds = ttl_seconds
45
69
  self._access_ttl_seconds = access_ttl_seconds
46
70
  self._refresh_ttl_seconds = refresh_ttl_seconds
71
+ self._storage_path = storage_path
72
+ self._password_fingerprint = _password_fingerprint(password)
47
73
  self._sessions: dict[str, SessionEntry] = {}
74
+ self._lock = threading.RLock()
75
+ self._load()
76
+
77
+ def _load(self) -> None:
78
+ path = self._storage_path
79
+ if path is None:
80
+ return
81
+ try:
82
+ raw = path.read_text(encoding="utf-8")
83
+ except FileNotFoundError:
84
+ return
85
+ except (OSError, UnicodeError) as exc:
86
+ logger.warning("[WebUI] 读取会话文件失败: %s", exc)
87
+ return
88
+ try:
89
+ payload = json.loads(raw)
90
+ except (ValueError, TypeError):
91
+ logger.warning("[WebUI] 会话文件损坏,已忽略: %s", path)
92
+ return
93
+ if not isinstance(payload, dict):
94
+ return
95
+ stored_fingerprint = payload.get("password_fingerprint")
96
+ if (
97
+ self._password_fingerprint is not None
98
+ and stored_fingerprint != self._password_fingerprint
99
+ ):
100
+ # 密码已变更(例如直接编辑 config.toml 后重启),旧令牌必须失效。
101
+ logger.info("[WebUI] 管理密码已变更,清除旧登录会话")
102
+ # 立即用新指纹覆盖磁盘,避免密码回滚后旧会话重新生效。
103
+ self._persist()
104
+ return
105
+ raw_sessions = payload.get("sessions")
106
+ if not isinstance(raw_sessions, dict):
107
+ return
108
+ now = time.time()
109
+ for token, value in raw_sessions.items():
110
+ if not isinstance(token, str) or not token or not isinstance(value, dict):
111
+ continue
112
+ try:
113
+ expires_at = float(value.get("expires_at") or 0)
114
+ except (TypeError, ValueError):
115
+ continue
116
+ kind = str(value.get("kind") or "session")
117
+ if kind not in {"session", "access", "refresh"} or expires_at <= now:
118
+ continue
119
+ self._sessions[token] = SessionEntry(expires_at=expires_at, kind=kind)
120
+
121
+ def _payload(self) -> dict[str, object]:
122
+ now = time.time()
123
+ return {
124
+ "version": SESSION_FILE_VERSION,
125
+ "password_fingerprint": self._password_fingerprint,
126
+ "sessions": {
127
+ token: {"expires_at": entry.expires_at, "kind": entry.kind}
128
+ for token, entry in self._sessions.items()
129
+ if entry.expires_at > now
130
+ },
131
+ }
132
+
133
+ def _persist_strict(self) -> None:
134
+ """写盘失败时向上抛出,供登出/刷新等需要强一致性的路径回滚。"""
135
+ path = self._storage_path
136
+ if path is None:
137
+ return
138
+ write_json_sync(path, self._payload(), use_lock=False)
139
+
140
+ def _prune_expired(self) -> None:
141
+ now = time.time()
142
+ for token in [
143
+ token for token, entry in self._sessions.items() if entry.expires_at <= now
144
+ ]:
145
+ self._sessions.pop(token, None)
146
+
147
+ def _persist(self) -> None:
148
+ """登录与校验路径的 best-effort 写盘;磁盘异常只告警。"""
149
+ try:
150
+ self._persist_strict()
151
+ except Exception as exc: # 磁盘异常不应让登录/校验直接失败
152
+ logger.warning("[WebUI] 写入会话文件失败: %s", exc)
153
+ return
154
+ self._prune_expired()
48
155
 
49
156
  def create(self, *, ttl_seconds: int | None = None, kind: str = "session") -> str:
50
157
  token = secrets.token_urlsafe(32)
51
158
  ttl = self._ttl_seconds if ttl_seconds is None else ttl_seconds
52
- self._sessions[token] = SessionEntry(expires_at=time.time() + ttl, kind=kind)
159
+ with self._lock:
160
+ self._sessions[token] = SessionEntry(
161
+ expires_at=time.time() + ttl, kind=kind
162
+ )
163
+ self._persist()
53
164
  return token
54
165
 
55
166
  def _resolve_entry(self, token: str | None) -> SessionEntry | None:
56
167
  if not token:
57
168
  return None
58
- entry = self._sessions.get(token)
59
- if entry is None:
60
- return None
61
- if entry.expires_at < time.time():
62
- self._sessions.pop(token, None)
63
- return None
64
- return entry
169
+ with self._lock:
170
+ entry = self._sessions.get(token)
171
+ if entry is None:
172
+ return None
173
+ now = time.time()
174
+ if entry.expires_at < now:
175
+ self._sessions.pop(token, None)
176
+ self._persist()
177
+ return None
178
+ # 活跃会话滑动续期:剩余不足一半时重新计时,长期使用不会掉线。
179
+ if entry.kind == "session":
180
+ ttl = self._ttl_seconds
181
+ if ttl > 0 and entry.expires_at - now < ttl / 2:
182
+ entry.expires_at = now + ttl
183
+ self._persist()
184
+ return entry
65
185
 
66
186
  def is_valid(
67
187
  self,
@@ -86,38 +206,96 @@ class SessionStore:
86
206
  entry = self._resolve_entry(token)
87
207
  return None if entry is None else entry.kind
88
208
 
89
- def issue_auth_tokens(self) -> dict[str, int | str]:
90
- access_token = self.create(
91
- ttl_seconds=self._access_ttl_seconds,
92
- kind="access",
209
+ def _issue_auth_tokens_locked(self) -> dict[str, int | str]:
210
+ now = time.time()
211
+ access_token = secrets.token_urlsafe(32)
212
+ refresh_token = secrets.token_urlsafe(32)
213
+ self._sessions[access_token] = SessionEntry(
214
+ expires_at=now + self._access_ttl_seconds, kind="access"
93
215
  )
94
- refresh_token = self.create(
95
- ttl_seconds=self._refresh_ttl_seconds,
96
- kind="refresh",
216
+ self._sessions[refresh_token] = SessionEntry(
217
+ expires_at=now + self._refresh_ttl_seconds, kind="refresh"
97
218
  )
98
219
  return {
99
220
  "access_token": access_token,
100
221
  "refresh_token": refresh_token,
101
222
  "expires_in": self._access_ttl_seconds,
102
223
  "refresh_expires_in": self._refresh_ttl_seconds,
103
- "access_token_expires_at": self.get_expiry_ms(access_token),
224
+ "access_token_expires_at": int((now + self._access_ttl_seconds) * 1000),
104
225
  }
105
226
 
227
+ def issue_auth_tokens(self) -> dict[str, int | str]:
228
+ with self._lock:
229
+ tokens = self._issue_auth_tokens_locked()
230
+ self._persist()
231
+ return tokens
232
+
106
233
  def refresh_auth_tokens(
107
234
  self, refresh_token: str | None
108
235
  ) -> dict[str, int | str] | None:
109
- if not self.is_valid(refresh_token, allowed_kinds={"refresh"}):
236
+ if not refresh_token:
110
237
  return None
111
- self.revoke(refresh_token)
112
- return self.issue_auth_tokens()
238
+ with self._lock:
239
+ entry = self._sessions.get(refresh_token)
240
+ if entry is None or entry.kind != "refresh":
241
+ return None
242
+ if entry.expires_at < time.time():
243
+ self._sessions.pop(refresh_token, None)
244
+ try:
245
+ self._persist_strict()
246
+ except Exception:
247
+ self._sessions[refresh_token] = entry
248
+ raise
249
+ return None
250
+ # 旧 refresh token 立即作废并轮换,避免重放。
251
+ previous = dict(self._sessions)
252
+ self._sessions.pop(refresh_token, None)
253
+ tokens = self._issue_auth_tokens_locked()
254
+ try:
255
+ self._persist_strict()
256
+ except Exception:
257
+ self._sessions = previous
258
+ raise
259
+ return tokens
113
260
 
114
261
  def revoke(self, token: str | None) -> None:
115
262
  if not token:
116
263
  return
117
- self._sessions.pop(token, None)
264
+ with self._lock:
265
+ entry = self._sessions.pop(token, None)
266
+ if entry is None:
267
+ return
268
+ try:
269
+ self._persist_strict()
270
+ except Exception:
271
+ self._sessions[token] = entry
272
+ raise
273
+
274
+ def set_password(self, password: str | None) -> None:
275
+ """密码变更后作废全部旧会话,并更新会话文件中的密码指纹。
276
+
277
+ 写盘失败时内存中的旧会话保持作废(fail closed),但密码指纹回滚,
278
+ 异常抛给调用方;后续密码重载会重新尝试持久化新指纹。
279
+ """
280
+ with self._lock:
281
+ previous_fingerprint = self._password_fingerprint
282
+ self._password_fingerprint = _password_fingerprint(password)
283
+ self._sessions.clear()
284
+ try:
285
+ self._persist_strict()
286
+ except Exception:
287
+ self._password_fingerprint = previous_fingerprint
288
+ raise
118
289
 
119
290
  def clear(self) -> None:
120
- self._sessions.clear()
291
+ with self._lock:
292
+ previous = dict(self._sessions)
293
+ self._sessions.clear()
294
+ try:
295
+ self._persist_strict()
296
+ except Exception:
297
+ self._sessions = previous
298
+ raise
121
299
 
122
300
 
123
301
  class BotProcessController:
@@ -1,4 +1,5 @@
1
1
  import asyncio
2
+ import logging
2
3
  import tomllib
3
4
 
4
5
  from aiohttp import web
@@ -7,13 +8,13 @@ from aiohttp.web_response import Response
7
8
  from Undefined.config.loader import CONFIG_PATH, DEFAULT_WEBUI_PASSWORD
8
9
  from Undefined.config import WebUISettings, get_config_manager
9
10
  from Undefined.utils import io as async_io
11
+ from ..core import REFRESH_TOKEN_TTL_SECONDS, SESSION_TTL_SECONDS
10
12
  from ..utils.config_io import config_write_lock
11
13
  from ._shared import (
12
14
  auth_capabilities,
13
15
  routes,
14
16
  SESSION_COOKIE,
15
17
  TOKEN_COOKIE,
16
- SESSION_TTL_SECONDS,
17
18
  SETTINGS_APP_KEY,
18
19
  get_bearer_token,
19
20
  get_refresh_token,
@@ -29,6 +30,8 @@ from ._shared import (
29
30
  )
30
31
  from ..utils import read_config_source, apply_patch, load_comment_map, render_toml
31
32
 
33
+ logger = logging.getLogger(__name__)
34
+
32
35
 
33
36
  def _build_session_payload(
34
37
  request: web.Request, authenticated: bool
@@ -120,7 +123,7 @@ async def login_handler(request: web.Request) -> Response:
120
123
  str(auth_tokens["refresh_token"]),
121
124
  httponly=True,
122
125
  samesite="Lax",
123
- max_age=SESSION_TTL_SECONDS,
126
+ max_age=REFRESH_TOKEN_TTL_SECONDS,
124
127
  )
125
128
  return resp
126
129
 
@@ -154,7 +157,13 @@ async def refresh_handler(request: web.Request) -> Response:
154
157
  except Exception:
155
158
  data = {}
156
159
  refresh_token = get_refresh_token(request, data)
157
- tokens = get_session_store(request).refresh_auth_tokens(refresh_token)
160
+ try:
161
+ tokens = get_session_store(request).refresh_auth_tokens(refresh_token)
162
+ except OSError as exc:
163
+ logger.warning("[WebUI] 刷新令牌时写入会话文件失败: %s", exc)
164
+ return web.json_response(
165
+ {"success": False, "error": "Failed to persist session"}, status=500
166
+ )
158
167
  if tokens is None:
159
168
  return web.json_response(
160
169
  {"success": False, "error": "Unauthorized"}, status=401
@@ -172,7 +181,7 @@ async def refresh_handler(request: web.Request) -> Response:
172
181
  str(tokens["refresh_token"]),
173
182
  httponly=True,
174
183
  samesite="Lax",
175
- max_age=SESSION_TTL_SECONDS,
184
+ max_age=REFRESH_TOKEN_TTL_SECONDS,
176
185
  )
177
186
  return resp
178
187
 
@@ -185,6 +194,7 @@ async def logout_handler(request: web.Request) -> Response:
185
194
  except Exception:
186
195
  data = {}
187
196
  sessions = get_session_store(request)
197
+ failed = False
188
198
  for token in {
189
199
  get_valid_auth_token(request),
190
200
  request.cookies.get(SESSION_COOKIE),
@@ -192,7 +202,15 @@ async def logout_handler(request: web.Request) -> Response:
192
202
  get_refresh_token(request, data),
193
203
  get_bearer_token(request),
194
204
  }:
195
- sessions.revoke(token)
205
+ try:
206
+ sessions.revoke(token)
207
+ except OSError as exc:
208
+ failed = True
209
+ logger.warning("[WebUI] 登出时写入会话文件失败: %s", exc)
210
+ if failed:
211
+ return web.json_response(
212
+ {"success": False, "error": "Failed to persist session"}, status=500
213
+ )
196
214
  resp = web.json_response({"success": True})
197
215
  resp.del_cookie(SESSION_COOKIE)
198
216
  resp.del_cookie(TOKEN_COOKIE)
@@ -264,10 +282,11 @@ async def password_handler(request: web.Request) -> Response:
264
282
  await asyncio.to_thread(write_password)
265
283
  manager = get_config_manager()
266
284
  manager.reload()
285
+ # 先完成会话失效持久化,再启用新密码;失败时由 500 分支返回。
286
+ get_session_store(request).set_password(new_password)
267
287
  request.app[SETTINGS_APP_KEY] = WebUISettings.from_config(
268
288
  manager.load(strict=False), config_exists=True
269
289
  )
270
- get_session_store(request).clear()
271
290
 
272
291
  try:
273
292
  await async_io.run_cancellation_safe(password_and_reload())
@@ -275,6 +294,12 @@ async def password_handler(request: web.Request) -> Response:
275
294
  return web.json_response(
276
295
  {"success": False, "error": f"TOML parse error: {exc}"}, status=400
277
296
  )
297
+ except OSError as exc:
298
+ logger.warning("[WebUI] 更新密码后写入持久化状态失败: %s", exc)
299
+ return web.json_response(
300
+ {"success": False, "error": "Failed to persist password change"},
301
+ status=500,
302
+ )
278
303
 
279
304
  resp = web.json_response({"success": True, "message": "Password updated"})
280
305
  resp.del_cookie(SESSION_COOKIE)
@@ -27,7 +27,6 @@ _PENDING_BOT_AUTOSTART_MARKER = Path("data/cache/pending_bot_autostart")
27
27
 
28
28
  SESSION_COOKIE = "undefined_webui"
29
29
  TOKEN_COOKIE = "undefined_webui_token"
30
- SESSION_TTL_SECONDS = 8 * 60 * 60
31
30
  LOGIN_ATTEMPT_LIMIT = 5
32
31
  LOGIN_ATTEMPT_WINDOW = 5 * 60
33
32
  LOGIN_BLOCK_SECONDS = 15 * 60