Undefined-bot 3.2.1__tar.gz → 3.2.2__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (485) hide show
  1. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/PKG-INFO +1 -1
  2. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/pyproject.toml +1 -1
  3. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/__init__.py +1 -1
  4. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/api/app.py +14 -14
  5. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/config/loader.py +7 -0
  6. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/config/models.py +40 -0
  7. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/webui/app.py +4 -2
  8. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/webui/routes/_runtime.py +1 -2
  9. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/webui/routes/_system.py +3 -3
  10. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/.gitignore +0 -0
  11. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/ARCHITECTURE.md +0 -0
  12. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/LICENSE +0 -0
  13. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/README.md +0 -0
  14. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/config/README.md +0 -0
  15. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/config/mcp.json.example +0 -0
  16. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/config.toml.example +0 -0
  17. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/img/head.jpg +0 -0
  18. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/img/xlwy.jpg +0 -0
  19. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/res/IMPORTANT/each.md +0 -0
  20. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/res/README.md +0 -0
  21. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/res/prompts/agent_self_intro.txt +0 -0
  22. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/res/prompts/analyze_multimodal.txt +0 -0
  23. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/res/prompts/describe_image.txt +0 -0
  24. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/res/prompts/generate_title.txt +0 -0
  25. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/res/prompts/historian_profile_merge.md +0 -0
  26. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/res/prompts/historian_rewrite.md +0 -0
  27. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/res/prompts/injection_detector.txt +0 -0
  28. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/res/prompts/injection_response_agent.txt +0 -0
  29. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/res/prompts/merge_summaries.txt +0 -0
  30. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/res/prompts/stats_analysis.txt +0 -0
  31. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/res/prompts/summarize.txt +0 -0
  32. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/res/prompts/undefined.xml +0 -0
  33. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/res/prompts/undefined_nagaagent.xml +0 -0
  34. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/README.md +0 -0
  35. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/README.md +0 -0
  36. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/__main__.py +0 -0
  37. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/ai/__init__.py +0 -0
  38. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/ai/client.py +0 -0
  39. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/ai/http.py +0 -0
  40. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/ai/llm.py +0 -0
  41. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/ai/model_selector.py +0 -0
  42. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/ai/multimodal.py +0 -0
  43. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/ai/parsing.py +0 -0
  44. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/ai/prompts.py +0 -0
  45. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/ai/retrieval.py +0 -0
  46. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/ai/summaries.py +0 -0
  47. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/ai/tokens.py +0 -0
  48. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/ai/tooling.py +0 -0
  49. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/ai/transports/__init__.py +0 -0
  50. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/ai/transports/openai_transport.py +0 -0
  51. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/api/__init__.py +0 -0
  52. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/api/naga_store.py +0 -0
  53. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/bilibili/__init__.py +0 -0
  54. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/bilibili/downloader.py +0 -0
  55. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/bilibili/parser.py +0 -0
  56. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/bilibili/sender.py +0 -0
  57. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/bilibili/wbi.py +0 -0
  58. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/bilibili/wbi_request.py +0 -0
  59. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/cognitive/__init__.py +0 -0
  60. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/cognitive/historian.py +0 -0
  61. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/cognitive/job_queue.py +0 -0
  62. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/cognitive/profile_storage.py +0 -0
  63. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/cognitive/service.py +0 -0
  64. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/cognitive/vector_store.py +0 -0
  65. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/config/__init__.py +0 -0
  66. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/config/hot_reload.py +0 -0
  67. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/config/manager.py +0 -0
  68. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/context.py +0 -0
  69. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/context_resource_registry.py +0 -0
  70. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/end_summary_storage.py +0 -0
  71. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/faq.py +0 -0
  72. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/handlers.py +0 -0
  73. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/injection_response_agent.py +0 -0
  74. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/knowledge/__init__.py +0 -0
  75. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/knowledge/chunker.py +0 -0
  76. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/knowledge/embedder.py +0 -0
  77. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/knowledge/manager.py +0 -0
  78. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/knowledge/reranker.py +0 -0
  79. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/knowledge/runtime.py +0 -0
  80. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/knowledge/store.py +0 -0
  81. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/main.py +0 -0
  82. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/mcp/__init__.py +0 -0
  83. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/mcp/registry.py +0 -0
  84. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/memory.py +0 -0
  85. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/onebot.py +0 -0
  86. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/rate_limit.py +0 -0
  87. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/render.py +0 -0
  88. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/scheduled_task_storage.py +0 -0
  89. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/services/__init__.py +0 -0
  90. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/services/ai_coordinator.py +0 -0
  91. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/services/command.py +0 -0
  92. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/services/commands/__init__.py +0 -0
  93. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/services/commands/context.py +0 -0
  94. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/services/commands/registry.py +0 -0
  95. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/services/model_pool.py +0 -0
  96. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/services/queue_manager.py +0 -0
  97. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/services/security.py +0 -0
  98. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/README.md +0 -0
  99. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/__init__.py +0 -0
  100. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/agents/README.md +0 -0
  101. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/agents/__init__.py +0 -0
  102. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/agents/agent_tool_registry.py +0 -0
  103. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/agents/code_delivery_agent/config.json +0 -0
  104. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/agents/code_delivery_agent/docker_utils.py +0 -0
  105. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/agents/code_delivery_agent/handler.py +0 -0
  106. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/agents/code_delivery_agent/intro.md +0 -0
  107. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/agents/code_delivery_agent/mcp.json +0 -0
  108. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/agents/code_delivery_agent/prompt.md +0 -0
  109. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/agents/code_delivery_agent/tools/copy/config.json +0 -0
  110. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/agents/code_delivery_agent/tools/copy/handler.py +0 -0
  111. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/agents/code_delivery_agent/tools/delete/config.json +0 -0
  112. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/agents/code_delivery_agent/tools/delete/handler.py +0 -0
  113. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/agents/code_delivery_agent/tools/diff/config.json +0 -0
  114. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/agents/code_delivery_agent/tools/diff/handler.py +0 -0
  115. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/agents/code_delivery_agent/tools/end/config.json +0 -0
  116. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/agents/code_delivery_agent/tools/end/handler.py +0 -0
  117. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/agents/code_delivery_agent/tools/glob/config.json +0 -0
  118. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/agents/code_delivery_agent/tools/glob/handler.py +0 -0
  119. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/agents/code_delivery_agent/tools/grep/config.json +0 -0
  120. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/agents/code_delivery_agent/tools/grep/handler.py +0 -0
  121. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/agents/code_delivery_agent/tools/init_docker/config.json +0 -0
  122. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/agents/code_delivery_agent/tools/init_docker/handler.py +0 -0
  123. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/agents/code_delivery_agent/tools/read/config.json +0 -0
  124. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/agents/code_delivery_agent/tools/read/handler.py +0 -0
  125. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/agents/code_delivery_agent/tools/run_bash_command/config.json +0 -0
  126. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/agents/code_delivery_agent/tools/run_bash_command/handler.py +0 -0
  127. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/agents/code_delivery_agent/tools/todo/config.json +0 -0
  128. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/agents/code_delivery_agent/tools/todo/handler.py +0 -0
  129. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/agents/code_delivery_agent/tools/tree/config.json +0 -0
  130. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/agents/code_delivery_agent/tools/tree/handler.py +0 -0
  131. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/agents/code_delivery_agent/tools/write/config.json +0 -0
  132. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/agents/code_delivery_agent/tools/write/handler.py +0 -0
  133. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/agents/entertainment_agent/README.md +0 -0
  134. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/agents/entertainment_agent/config.json +0 -0
  135. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/agents/entertainment_agent/handler.py +0 -0
  136. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/agents/entertainment_agent/intro.md +0 -0
  137. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/agents/entertainment_agent/prompt.md +0 -0
  138. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/agents/entertainment_agent/tools/__init__.py +0 -0
  139. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/agents/entertainment_agent/tools/ai_draw_one/config.json +0 -0
  140. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/agents/entertainment_agent/tools/ai_draw_one/handler.py +0 -0
  141. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/agents/entertainment_agent/tools/horoscope/config.json +0 -0
  142. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/agents/entertainment_agent/tools/horoscope/handler.py +0 -0
  143. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/agents/entertainment_agent/tools/minecraft_skin/config.json +0 -0
  144. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/agents/entertainment_agent/tools/minecraft_skin/handler.py +0 -0
  145. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/agents/entertainment_agent/tools/renjian/config.json +0 -0
  146. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/agents/entertainment_agent/tools/renjian/handler.py +0 -0
  147. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/agents/entertainment_agent/tools/wenchang_dijun/config.json +0 -0
  148. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/agents/entertainment_agent/tools/wenchang_dijun/handler.py +0 -0
  149. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/agents/file_analysis_agent/README.md +0 -0
  150. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/agents/file_analysis_agent/__init__.py +0 -0
  151. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/agents/file_analysis_agent/config.json +0 -0
  152. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/agents/file_analysis_agent/handler.py +0 -0
  153. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/agents/file_analysis_agent/intro.md +0 -0
  154. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/agents/file_analysis_agent/prompt.md +0 -0
  155. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/agents/file_analysis_agent/tools/__init__.py +0 -0
  156. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/agents/file_analysis_agent/tools/analyze_code/config.json +0 -0
  157. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/agents/file_analysis_agent/tools/analyze_code/handler.py +0 -0
  158. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/agents/file_analysis_agent/tools/analyze_multimodal/config.json +0 -0
  159. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/agents/file_analysis_agent/tools/analyze_multimodal/handler.py +0 -0
  160. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/agents/file_analysis_agent/tools/cleanup_temp/config.json +0 -0
  161. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/agents/file_analysis_agent/tools/cleanup_temp/handler.py +0 -0
  162. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/agents/file_analysis_agent/tools/detect_file_type/config.json +0 -0
  163. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/agents/file_analysis_agent/tools/detect_file_type/handler.py +0 -0
  164. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/agents/file_analysis_agent/tools/download_file/config.json +0 -0
  165. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/agents/file_analysis_agent/tools/download_file/handler.py +0 -0
  166. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/agents/file_analysis_agent/tools/extract_archive/config.json +0 -0
  167. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/agents/file_analysis_agent/tools/extract_archive/handler.py +0 -0
  168. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/agents/file_analysis_agent/tools/extract_docx/config.json +0 -0
  169. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/agents/file_analysis_agent/tools/extract_docx/handler.py +0 -0
  170. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/agents/file_analysis_agent/tools/extract_pdf/config.json +0 -0
  171. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/agents/file_analysis_agent/tools/extract_pdf/handler.py +0 -0
  172. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/agents/file_analysis_agent/tools/extract_pptx/config.json +0 -0
  173. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/agents/file_analysis_agent/tools/extract_pptx/handler.py +0 -0
  174. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/agents/file_analysis_agent/tools/extract_xlsx/config.json +0 -0
  175. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/agents/file_analysis_agent/tools/extract_xlsx/handler.py +0 -0
  176. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/agents/file_analysis_agent/tools/read_text_file/config.json +0 -0
  177. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/agents/file_analysis_agent/tools/read_text_file/handler.py +0 -0
  178. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/agents/info_agent/README.md +0 -0
  179. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/agents/info_agent/callable.json +0 -0
  180. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/agents/info_agent/config.json +0 -0
  181. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/agents/info_agent/handler.py +0 -0
  182. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/agents/info_agent/intro.md +0 -0
  183. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/agents/info_agent/prompt.md +0 -0
  184. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/agents/info_agent/tools/__init__.py +0 -0
  185. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/agents/info_agent/tools/baiduhot/config.json +0 -0
  186. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/agents/info_agent/tools/baiduhot/handler.py +0 -0
  187. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/agents/info_agent/tools/base64/config.json +0 -0
  188. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/agents/info_agent/tools/base64/handler.py +0 -0
  189. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/agents/info_agent/tools/bilibili_search/config.json +0 -0
  190. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/agents/info_agent/tools/bilibili_search/handler.py +0 -0
  191. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/agents/info_agent/tools/bilibili_user_info/config.json +0 -0
  192. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/agents/info_agent/tools/bilibili_user_info/handler.py +0 -0
  193. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/agents/info_agent/tools/douyinhot/config.json +0 -0
  194. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/agents/info_agent/tools/douyinhot/handler.py +0 -0
  195. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/agents/info_agent/tools/gold_price/config.json +0 -0
  196. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/agents/info_agent/tools/gold_price/handler.py +0 -0
  197. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/agents/info_agent/tools/hash/config.json +0 -0
  198. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/agents/info_agent/tools/hash/handler.py +0 -0
  199. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/agents/info_agent/tools/history/config.json +0 -0
  200. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/agents/info_agent/tools/history/handler.py +0 -0
  201. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/agents/info_agent/tools/net_check/config.json +0 -0
  202. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/agents/info_agent/tools/net_check/handler.py +0 -0
  203. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/agents/info_agent/tools/qq_level_query/config.json +0 -0
  204. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/agents/info_agent/tools/qq_level_query/handler.py +0 -0
  205. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/agents/info_agent/tools/speed/config.json +0 -0
  206. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/agents/info_agent/tools/speed/handler.py +0 -0
  207. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/agents/info_agent/tools/tcping/config.json +0 -0
  208. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/agents/info_agent/tools/tcping/handler.py +0 -0
  209. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/agents/info_agent/tools/weather_query/config.json +0 -0
  210. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/agents/info_agent/tools/weather_query/handler.py +0 -0
  211. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/agents/info_agent/tools/weibohot/config.json +0 -0
  212. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/agents/info_agent/tools/weibohot/handler.py +0 -0
  213. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/agents/info_agent/tools/whois/config.json +0 -0
  214. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/agents/info_agent/tools/whois/handler.py +0 -0
  215. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/agents/intro_generator.py +0 -0
  216. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/agents/intro_utils.py +0 -0
  217. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/agents/naga_code_analysis_agent/README.md +0 -0
  218. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/agents/naga_code_analysis_agent/config.json +0 -0
  219. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/agents/naga_code_analysis_agent/handler.py +0 -0
  220. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/agents/naga_code_analysis_agent/intro.md +0 -0
  221. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/agents/naga_code_analysis_agent/mcp.json +0 -0
  222. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/agents/naga_code_analysis_agent/prompt.md +0 -0
  223. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/agents/naga_code_analysis_agent/tools/__init__.py +0 -0
  224. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/agents/naga_code_analysis_agent/tools/glob/config.json +0 -0
  225. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/agents/naga_code_analysis_agent/tools/glob/handler.py +0 -0
  226. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/agents/naga_code_analysis_agent/tools/list_directory/config.json +0 -0
  227. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/agents/naga_code_analysis_agent/tools/list_directory/handler.py +0 -0
  228. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/agents/naga_code_analysis_agent/tools/read_file/config.json +0 -0
  229. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/agents/naga_code_analysis_agent/tools/read_file/handler.py +0 -0
  230. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/agents/naga_code_analysis_agent/tools/read_naga_intro/config.json +0 -0
  231. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/agents/naga_code_analysis_agent/tools/read_naga_intro/handler.py +0 -0
  232. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/agents/naga_code_analysis_agent/tools/search_file_content/config.json +0 -0
  233. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/agents/naga_code_analysis_agent/tools/search_file_content/handler.py +0 -0
  234. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/agents/runner.py +0 -0
  235. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/agents/web_agent/README.md +0 -0
  236. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/agents/web_agent/callable.json +0 -0
  237. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/agents/web_agent/config.json +0 -0
  238. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/agents/web_agent/handler.py +0 -0
  239. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/agents/web_agent/intro.md +0 -0
  240. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/agents/web_agent/mcp.json +0 -0
  241. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/agents/web_agent/prompt.md +0 -0
  242. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/agents/web_agent/tools/__init__.py +0 -0
  243. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/agents/web_agent/tools/crawl_webpage/config.json +0 -0
  244. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/agents/web_agent/tools/crawl_webpage/handler.py +0 -0
  245. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/agents/web_agent/tools/web_search/config.json +0 -0
  246. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/agents/web_agent/tools/web_search/handler.py +0 -0
  247. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/anthropic_skills/__init__.py +0 -0
  248. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/anthropic_skills/loader.py +0 -0
  249. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/commands/README.md +0 -0
  250. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/commands/addadmin/README.md +0 -0
  251. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/commands/addadmin/config.json +0 -0
  252. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/commands/addadmin/handler.py +0 -0
  253. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/commands/bugfix/README.md +0 -0
  254. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/commands/bugfix/config.json +0 -0
  255. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/commands/bugfix/handler.py +0 -0
  256. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/commands/copyright/README.md +0 -0
  257. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/commands/copyright/config.json +0 -0
  258. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/commands/copyright/handler.py +0 -0
  259. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/commands/delfaq/README.md +0 -0
  260. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/commands/delfaq/config.json +0 -0
  261. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/commands/delfaq/handler.py +0 -0
  262. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/commands/help/README.md +0 -0
  263. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/commands/help/config.json +0 -0
  264. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/commands/help/handler.py +0 -0
  265. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/commands/lsadmin/README.md +0 -0
  266. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/commands/lsadmin/config.json +0 -0
  267. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/commands/lsadmin/handler.py +0 -0
  268. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/commands/lsfaq/README.md +0 -0
  269. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/commands/lsfaq/config.json +0 -0
  270. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/commands/lsfaq/handler.py +0 -0
  271. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/commands/naga/config.json +0 -0
  272. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/commands/naga/handler.py +0 -0
  273. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/commands/naga/scopes.json +0 -0
  274. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/commands/rmadmin/README.md +0 -0
  275. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/commands/rmadmin/config.json +0 -0
  276. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/commands/rmadmin/handler.py +0 -0
  277. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/commands/searchfaq/README.md +0 -0
  278. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/commands/searchfaq/config.json +0 -0
  279. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/commands/searchfaq/handler.py +0 -0
  280. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/commands/stats/README.md +0 -0
  281. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/commands/stats/config.json +0 -0
  282. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/commands/stats/handler.py +0 -0
  283. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/commands/viewfaq/README.md +0 -0
  284. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/commands/viewfaq/config.json +0 -0
  285. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/commands/viewfaq/handler.py +0 -0
  286. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/http_client.py +0 -0
  287. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/http_config.py +0 -0
  288. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/registry.py +0 -0
  289. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/tools/README.md +0 -0
  290. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/tools/__init__.py +0 -0
  291. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/tools/bilibili_video/README.md +0 -0
  292. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/tools/bilibili_video/config.json +0 -0
  293. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/tools/bilibili_video/handler.py +0 -0
  294. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/tools/end/README.md +0 -0
  295. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/tools/end/config.json +0 -0
  296. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/tools/end/handler.py +0 -0
  297. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/tools/get_current_time/README.md +0 -0
  298. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/tools/get_current_time/callable.json +0 -0
  299. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/tools/get_current_time/config.json +0 -0
  300. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/tools/get_current_time/handler.py +0 -0
  301. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/tools/get_picture/README.md +0 -0
  302. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/tools/get_picture/config.json +0 -0
  303. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/tools/get_picture/handler.py +0 -0
  304. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/tools/get_user_info/README.md +0 -0
  305. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/tools/get_user_info/config.json +0 -0
  306. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/tools/get_user_info/handler.py +0 -0
  307. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/tools/knowledge_list/config.json +0 -0
  308. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/tools/knowledge_list/handler.py +0 -0
  309. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/tools/knowledge_semantic_search/config.json +0 -0
  310. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/tools/knowledge_semantic_search/handler.py +0 -0
  311. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/tools/knowledge_text_search/config.json +0 -0
  312. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/tools/knowledge_text_search/handler.py +0 -0
  313. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/tools/python_interpreter/README.md +0 -0
  314. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/tools/python_interpreter/config.json +0 -0
  315. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/tools/python_interpreter/handler.py +0 -0
  316. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/tools/qq_like/README.md +0 -0
  317. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/tools/qq_like/config.json +0 -0
  318. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/tools/qq_like/handler.py +0 -0
  319. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/tools/task_progress/config.json +0 -0
  320. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/tools/task_progress/handler.py +0 -0
  321. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/toolsets/README.md +0 -0
  322. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/toolsets/__init__.py +0 -0
  323. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/toolsets/cognitive/get_profile/config.json +0 -0
  324. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/toolsets/cognitive/get_profile/handler.py +0 -0
  325. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/toolsets/cognitive/search_events/config.json +0 -0
  326. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/toolsets/cognitive/search_events/handler.py +0 -0
  327. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/toolsets/cognitive/search_profiles/config.json +0 -0
  328. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/toolsets/cognitive/search_profiles/handler.py +0 -0
  329. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/toolsets/contacts/query_friends/config.json +0 -0
  330. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/toolsets/contacts/query_friends/handler.py +0 -0
  331. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/toolsets/contacts/query_groups/config.json +0 -0
  332. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/toolsets/contacts/query_groups/handler.py +0 -0
  333. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/toolsets/group/README.md +0 -0
  334. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/toolsets/group/activity_trend/config.json +0 -0
  335. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/toolsets/group/activity_trend/handler.py +0 -0
  336. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/toolsets/group/detect_inactive_risk/config.json +0 -0
  337. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/toolsets/group/detect_inactive_risk/handler.py +0 -0
  338. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/toolsets/group/filter_members/config.json +0 -0
  339. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/toolsets/group/filter_members/handler.py +0 -0
  340. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/toolsets/group/find_member/config.json +0 -0
  341. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/toolsets/group/find_member/handler.py +0 -0
  342. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/toolsets/group/get_files/config.json +0 -0
  343. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/toolsets/group/get_files/handler.py +0 -0
  344. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/toolsets/group/get_honor_info/config.json +0 -0
  345. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/toolsets/group/get_honor_info/handler.py +0 -0
  346. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/toolsets/group/get_member_activity/config.json +0 -0
  347. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/toolsets/group/get_member_activity/handler.py +0 -0
  348. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/toolsets/group/get_member_info/config.json +0 -0
  349. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/toolsets/group/get_member_info/handler.py +0 -0
  350. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/toolsets/group/get_member_list/config.json +0 -0
  351. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/toolsets/group/get_member_list/handler.py +0 -0
  352. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/toolsets/group/get_member_title/config.json +0 -0
  353. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/toolsets/group/get_member_title/handler.py +0 -0
  354. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/toolsets/group/level_distribution/config.json +0 -0
  355. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/toolsets/group/level_distribution/handler.py +0 -0
  356. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/toolsets/group/rank_members/config.json +0 -0
  357. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/toolsets/group/rank_members/handler.py +0 -0
  358. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/toolsets/group_analysis/analyze_join_statistics/config.json +0 -0
  359. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/toolsets/group_analysis/analyze_join_statistics/handler.py +0 -0
  360. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/toolsets/group_analysis/analyze_member_messages/config.json +0 -0
  361. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/toolsets/group_analysis/analyze_member_messages/handler.py +0 -0
  362. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/toolsets/group_analysis/analyze_new_member_activity/config.json +0 -0
  363. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/toolsets/group_analysis/analyze_new_member_activity/handler.py +0 -0
  364. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/toolsets/mcp/README.md +0 -0
  365. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/toolsets/mcp/__init__.py +0 -0
  366. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/toolsets/memory/README.md +0 -0
  367. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/toolsets/memory/add/config.json +0 -0
  368. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/toolsets/memory/add/handler.py +0 -0
  369. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/toolsets/memory/delete/config.json +0 -0
  370. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/toolsets/memory/delete/handler.py +0 -0
  371. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/toolsets/memory/list/config.json +0 -0
  372. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/toolsets/memory/list/handler.py +0 -0
  373. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/toolsets/memory/update/config.json +0 -0
  374. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/toolsets/memory/update/handler.py +0 -0
  375. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/toolsets/messages/README.md +0 -0
  376. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/toolsets/messages/get_forward_msg/config.json +0 -0
  377. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/toolsets/messages/get_forward_msg/handler.py +0 -0
  378. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/toolsets/messages/get_messages_by_time/config.json +0 -0
  379. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/toolsets/messages/get_messages_by_time/handler.py +0 -0
  380. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/toolsets/messages/get_recent_messages/config.json +0 -0
  381. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/toolsets/messages/get_recent_messages/handler.py +0 -0
  382. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/toolsets/messages/list_emojis/config.json +0 -0
  383. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/toolsets/messages/list_emojis/handler.py +0 -0
  384. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/toolsets/messages/lookup_emoji_id/config.json +0 -0
  385. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/toolsets/messages/lookup_emoji_id/handler.py +0 -0
  386. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/toolsets/messages/react_message_emoji/config.json +0 -0
  387. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/toolsets/messages/react_message_emoji/handler.py +0 -0
  388. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/toolsets/messages/send_group_sign/config.json +0 -0
  389. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/toolsets/messages/send_group_sign/handler.py +0 -0
  390. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/toolsets/messages/send_message/config.json +0 -0
  391. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/toolsets/messages/send_message/handler.py +0 -0
  392. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/toolsets/messages/send_poke/config.json +0 -0
  393. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/toolsets/messages/send_poke/handler.py +0 -0
  394. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/toolsets/messages/send_private_message/config.json +0 -0
  395. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/toolsets/messages/send_private_message/handler.py +0 -0
  396. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/toolsets/messages/send_text_file/callable.json +0 -0
  397. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/toolsets/messages/send_text_file/config.json +0 -0
  398. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/toolsets/messages/send_text_file/handler.py +0 -0
  399. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/toolsets/messages/send_url_file/callable.json +0 -0
  400. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/toolsets/messages/send_url_file/config.json +0 -0
  401. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/toolsets/messages/send_url_file/handler.py +0 -0
  402. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/toolsets/notices/README.md +0 -0
  403. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/toolsets/notices/get/config.json +0 -0
  404. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/toolsets/notices/get/handler.py +0 -0
  405. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/toolsets/notices/list/config.json +0 -0
  406. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/toolsets/notices/list/handler.py +0 -0
  407. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/toolsets/notices/stats/config.json +0 -0
  408. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/toolsets/notices/stats/handler.py +0 -0
  409. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/toolsets/render/README.md +0 -0
  410. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/toolsets/render/render_html/config.json +0 -0
  411. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/toolsets/render/render_html/handler.py +0 -0
  412. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/toolsets/render/render_latex/config.json +0 -0
  413. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/toolsets/render/render_latex/handler.py +0 -0
  414. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/toolsets/render/render_markdown/config.json +0 -0
  415. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/toolsets/render/render_markdown/handler.py +0 -0
  416. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/toolsets/scheduler/README.md +0 -0
  417. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/toolsets/scheduler/create_schedule_task/config.json +0 -0
  418. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/toolsets/scheduler/create_schedule_task/handler.py +0 -0
  419. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/toolsets/scheduler/delete_schedule_task/config.json +0 -0
  420. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/toolsets/scheduler/delete_schedule_task/handler.py +0 -0
  421. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/toolsets/scheduler/list_schedule_tasks/config.json +0 -0
  422. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/toolsets/scheduler/list_schedule_tasks/handler.py +0 -0
  423. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/toolsets/scheduler/update_schedule_task/config.json +0 -0
  424. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/skills/toolsets/scheduler/update_schedule_task/handler.py +0 -0
  425. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/token_usage_storage.py +0 -0
  426. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/utils/__init__.py +0 -0
  427. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/utils/cache.py +0 -0
  428. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/utils/common.py +0 -0
  429. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/utils/cors.py +0 -0
  430. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/utils/file_lock.py +0 -0
  431. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/utils/group_metrics.py +0 -0
  432. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/utils/history.py +0 -0
  433. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/utils/io.py +0 -0
  434. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/utils/logging.py +0 -0
  435. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/utils/member_utils.py +0 -0
  436. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/utils/message_utils.py +0 -0
  437. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/utils/paths.py +0 -0
  438. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/utils/qq_emoji.py +0 -0
  439. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/utils/queue_intervals.py +0 -0
  440. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/utils/recent_messages.py +0 -0
  441. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/utils/request_params.py +0 -0
  442. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/utils/resources.py +0 -0
  443. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/utils/scheduler.py +0 -0
  444. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/utils/self_update.py +0 -0
  445. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/utils/sender.py +0 -0
  446. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/utils/time_utils.py +0 -0
  447. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/utils/tool_calls.py +0 -0
  448. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/utils/xml.py +0 -0
  449. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/webui/__init__.py +0 -0
  450. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/webui/__main__.py +0 -0
  451. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/webui/core.py +0 -0
  452. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/webui/routes/__init__.py +0 -0
  453. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/webui/routes/_auth.py +0 -0
  454. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/webui/routes/_bot.py +0 -0
  455. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/webui/routes/_config.py +0 -0
  456. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/webui/routes/_index.py +0 -0
  457. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/webui/routes/_logs.py +0 -0
  458. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/webui/routes/_shared.py +0 -0
  459. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/webui/static/css/.stylelintrc.json +0 -0
  460. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/webui/static/css/app.css +0 -0
  461. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/webui/static/css/base.css +0 -0
  462. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/webui/static/css/components.css +0 -0
  463. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/webui/static/css/landing.css +0 -0
  464. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/webui/static/css/responsive.css +0 -0
  465. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/webui/static/css/style.css +0 -0
  466. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/webui/static/css/variables.css +0 -0
  467. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/webui/static/favicon.svg +0 -0
  468. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/webui/static/js/api.js +0 -0
  469. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/webui/static/js/auth.js +0 -0
  470. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/webui/static/js/bot.js +0 -0
  471. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/webui/static/js/config-form.js +0 -0
  472. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/webui/static/js/i18n.js +0 -0
  473. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/webui/static/js/log-view.js +0 -0
  474. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/webui/static/js/logs.js +0 -0
  475. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/webui/static/js/main.js +0 -0
  476. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/webui/static/js/runtime.js +0 -0
  477. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/webui/static/js/state.js +0 -0
  478. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/webui/static/js/ui.js +0 -0
  479. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/webui/static/js/vendor/marked.min.js +0 -0
  480. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/webui/templates/index.html +0 -0
  481. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/webui/utils/__init__.py +0 -0
  482. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/webui/utils/comment.py +0 -0
  483. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/webui/utils/config_io.py +0 -0
  484. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/webui/utils/config_sync.py +0 -0
  485. {undefined_bot-3.2.1 → undefined_bot-3.2.2}/src/Undefined/webui/utils/toml_render.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: Undefined-bot
3
- Version: 3.2.1
3
+ Version: 3.2.2
4
4
  Summary: QQ bot platform with cognitive memory architecture and multi-agent Skills, via OneBot V11.
5
5
  Project-URL: Repository, https://github.com/69gg/Undefined
6
6
  Project-URL: Issues, https://github.com/69gg/Undefined/issues
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "Undefined-bot"
3
- version = "3.2.1"
3
+ version = "3.2.2"
4
4
  description = "QQ bot platform with cognitive memory architecture and multi-agent Skills, via OneBot V11."
5
5
  readme = "README.md"
6
6
  authors = [
@@ -1,3 +1,3 @@
1
1
  """Undefined - A high-performance, highly scalable QQ group and private chat robot based on a self-developed architecture."""
2
2
 
3
- __version__ = "3.2.1"
3
+ __version__ = "3.2.2"
@@ -364,8 +364,8 @@ async def _probe_ws_endpoint(url: str, timeout_seconds: float = 5.0) -> dict[str
364
364
  }
365
365
 
366
366
 
367
- def _build_openapi_spec(ctx: RuntimeAPIContext) -> dict[str, Any]:
368
- cfg = ctx.config_getter()
367
+ def _build_openapi_spec(ctx: RuntimeAPIContext, request: web.Request) -> dict[str, Any]:
368
+ server_url = f"{request.scheme}://{request.host}"
369
369
  return {
370
370
  "openapi": "3.0.3",
371
371
  "info": {
@@ -375,8 +375,8 @@ def _build_openapi_spec(ctx: RuntimeAPIContext) -> dict[str, Any]:
375
375
  },
376
376
  "servers": [
377
377
  {
378
- "url": f"http://{cfg.api.host}:{cfg.api.port}",
379
- "description": "Local runtime endpoint",
378
+ "url": server_url,
379
+ "description": "Runtime endpoint",
380
380
  }
381
381
  ],
382
382
  "components": {
@@ -483,20 +483,21 @@ class RuntimeAPIServer:
483
483
  self._host = host
484
484
  self._port = port
485
485
  self._runner: web.AppRunner | None = None
486
- self._site: web.TCPSite | None = None
486
+ self._sites: list[web.TCPSite] = []
487
487
  self._background_tasks: set[asyncio.Task[Any]] = set()
488
488
 
489
489
  async def start(self) -> None:
490
+ from Undefined.config.models import resolve_bind_hosts
491
+
490
492
  app = self._create_app()
491
493
  self._runner = web.AppRunner(app)
492
494
  await self._runner.setup()
493
- self._site = web.TCPSite(self._runner, host=self._host, port=self._port)
494
- await self._site.start()
495
- logger.info(
496
- "[RuntimeAPI] 已启动: http://%s:%s",
497
- self._host,
498
- self._port,
499
- )
495
+ for h in resolve_bind_hosts(self._host):
496
+ site = web.TCPSite(self._runner, host=h, port=self._port)
497
+ await site.start()
498
+ self._sites.append(site)
499
+ cfg = self._context.config_getter()
500
+ logger.info("[RuntimeAPI] 已启动: %s", cfg.api.display_url)
500
501
 
501
502
  async def stop(self) -> None:
502
503
  # 取消所有后台任务(如异步 tool invoke 回调)
@@ -597,11 +598,10 @@ class RuntimeAPIServer:
597
598
  )
598
599
 
599
600
  async def _openapi_handler(self, request: web.Request) -> Response:
600
- _ = request
601
601
  cfg = self._ctx.config_getter()
602
602
  if not bool(getattr(cfg.api, "openapi_enabled", True)):
603
603
  return _json_error("OpenAPI disabled", status=404)
604
- return web.json_response(_build_openapi_spec(self._ctx))
604
+ return web.json_response(_build_openapi_spec(self._ctx, request))
605
605
 
606
606
  async def _internal_probe_handler(self, request: web.Request) -> Response:
607
607
  _ = request
@@ -390,6 +390,13 @@ class WebUISettings:
390
390
  using_default_password: bool
391
391
  config_exists: bool
392
392
 
393
+ @property
394
+ def display_url(self) -> str:
395
+ """用于日志和展示的格式化 URL。"""
396
+ from Undefined.config.models import format_netloc
397
+
398
+ return f"http://{format_netloc(self.url or '0.0.0.0', self.port)}"
399
+
393
400
 
394
401
  def load_webui_settings(config_path: Optional[Path] = None) -> WebUISettings:
395
402
  data = load_toml_data(config_path)
@@ -3,9 +3,28 @@
3
3
  from __future__ import annotations
4
4
 
5
5
  from dataclasses import dataclass, field
6
+ from ipaddress import ip_address
6
7
  from typing import Any
7
8
 
8
9
 
10
+ def format_netloc(host: str, port: int) -> str:
11
+ """格式化 host:port 为合法 netloc,IPv6 地址自动加方括号。"""
12
+ if ":" in host:
13
+ return f"[{host}]:{port}"
14
+ return f"{host}:{port}"
15
+
16
+
17
+ def resolve_bind_hosts(host: str) -> list[str]:
18
+ """将监听地址展开为 aiohttp 绑定列表。
19
+
20
+ Python asyncio 对 IPv6 socket 设置 ``IPV6_V6ONLY=1``,
21
+ 因此 ``::`` 只监听 IPv6。要实现双栈需同时绑定 IPv4 + IPv6。
22
+ """
23
+ if not host or host == "::":
24
+ return ["0.0.0.0", "::"]
25
+ return [host]
26
+
27
+
9
28
  @dataclass
10
29
  class ModelPoolEntry:
11
30
  """模型池中的单个模型条目(已合并缺省值后的完整配置)"""
@@ -247,3 +266,24 @@ class APIConfig:
247
266
  tool_invoke_denylist: list[str] = field(default_factory=list)
248
267
  tool_invoke_timeout: int = 120
249
268
  tool_invoke_callback_timeout: int = 10
269
+
270
+ @property
271
+ def loopback_url(self) -> str:
272
+ """同机代理用的回环 URL(通配地址映射到 127.0.0.1 / ::1)。"""
273
+ host = self.host
274
+ if not host:
275
+ host = "127.0.0.1"
276
+ else:
277
+ try:
278
+ addr = ip_address(host)
279
+ except ValueError:
280
+ pass # 域名,原样
281
+ else:
282
+ if addr.is_unspecified:
283
+ host = "127.0.0.1" if addr.version == 4 else "::1"
284
+ return f"http://{format_netloc(host, self.port)}"
285
+
286
+ @property
287
+ def display_url(self) -> str:
288
+ """用于日志和展示的格式化 URL(保留原始 host,仅处理 IPv6 方括号)。"""
289
+ return f"http://{format_netloc(self.host or '0.0.0.0', self.port)}"
@@ -323,16 +323,18 @@ def run() -> None:
323
323
  host = settings.url
324
324
  port = settings.port
325
325
 
326
- logger.info(f"Starting WebUI at http://{host}:{port}")
326
+ logger.info("Starting WebUI at %s", settings.display_url)
327
327
  if settings.using_default_password:
328
328
  logger.warning(
329
329
  "!!! USING DEFAULT PASSWORD !!! Please change 'webui.password' in config.toml"
330
330
  )
331
331
 
332
+ from Undefined.config.models import resolve_bind_hosts
333
+
332
334
  try:
333
335
  web.run_app(
334
336
  app,
335
- host=host,
337
+ host=resolve_bind_hosts(host),
336
338
  port=port,
337
339
  print=None,
338
340
  shutdown_timeout=1.0,
@@ -28,8 +28,7 @@ _ALLOWED_CHAT_IMAGE_EXTENSIONS = {
28
28
 
29
29
 
30
30
  def _runtime_base_url() -> str:
31
- cfg = get_config(strict=False)
32
- return f"http://{cfg.api.host}:{cfg.api.port}".rstrip("/")
31
+ return get_config(strict=False).api.loopback_url
33
32
 
34
33
 
35
34
  def _unauthorized() -> Response:
@@ -8,7 +8,7 @@ from aiohttp.web_response import Response
8
8
 
9
9
  from Undefined import __version__
10
10
  from Undefined.config import get_config
11
- from ._shared import auth_capabilities, routes, check_auth, get_settings
11
+ from ._shared import auth_capabilities, routes, check_auth
12
12
  from ..utils import load_bootstrap_probe_data
13
13
 
14
14
  try:
@@ -119,7 +119,7 @@ async def _runtime_health_status() -> tuple[bool, bool, str]:
119
119
  cfg = get_config(strict=False)
120
120
  if not bool(cfg.api.enabled):
121
121
  return False, False, "disabled"
122
- url = f"http://{cfg.api.host}:{cfg.api.port}/health"
122
+ url = f"{cfg.api.loopback_url}/health"
123
123
  try:
124
124
  timeout = ClientTimeout(total=3.0)
125
125
  async with ClientSession(timeout=timeout) as session:
@@ -161,7 +161,7 @@ async def bootstrap_probe_handler(request: web.Request) -> Response:
161
161
  "runtime_reachable": runtime_reachable,
162
162
  "runtime_detail": runtime_detail,
163
163
  "auth_mode": "token" if request.headers.get("Authorization") else "cookie",
164
- "management_url": f"http://{get_settings(request).url}:{get_settings(request).port}",
164
+ "management_url": f"{request.scheme}://{request.host}",
165
165
  }
166
166
  payload["advice"] = _bootstrap_advice(payload)
167
167
  return web.json_response(payload)
File without changes
File without changes
File without changes