iamt 1.1.27__py3-none-any.whl

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 (482) hide show
  1. iamt/__init__.py +67 -0
  2. iamt/__main__.py +5 -0
  3. iamt/client_config/client_config.py +354 -0
  4. iamt/completers/customCompleter.py +143 -0
  5. iamt/composes/5425CICD/gitea/.rdm.md +4 -0
  6. iamt/composes/5425CICD/gitea/docker-compose.yml +52 -0
  7. iamt/composes/5425CICD/gitlab/.rdm.md +20 -0
  8. iamt/composes/5425CICD/gitlab/config/ssl/.gitkeep +0 -0
  9. iamt/composes/5425CICD/gitlab/docker-compose.yml +32 -0
  10. iamt/composes/5425CICD/gitlabDocs/.rdm.md +3 -0
  11. iamt/composes/5425CICD/gitlabRunner/.rdm.md +5 -0
  12. iamt/composes/5425CICD/sonarQube/.rdm.md +14 -0
  13. iamt/composes/5425CICD/sonarQube/docker-compose.yml +46 -0
  14. iamt/composes/5425CICD/sonarQube/docker-compose3.yml +41 -0
  15. iamt/composes/5425CICD/sonarQube/docker-compose4.yml +33 -0
  16. iamt/composes/5425CICD/sonarQube/sonarqube_conf/.gitkeep +0 -0
  17. iamt/composes/5425CICD/sonarQube/sonarqube_data/.gitkeep +0 -0
  18. iamt/composes/5425CICD/sonarQube/sonarqube_extensions/.gitkeep +0 -0
  19. iamt/composes/5425CICD/sonarQube/sonarqube_logs/.gitkeep +0 -0
  20. iamt/composes/5425CICD/sonarQube/sonarqube_temp/.gitkeep +0 -0
  21. iamt/composes/5435PROMPT/.rdm.md +11 -0
  22. iamt/composes/5435PROMPT/langfuse/.env +276 -0
  23. iamt/composes/5435PROMPT/langfuse/.rdm.md +3 -0
  24. iamt/composes/5435PROMPT/langfuse/docker-compose.yml +166 -0
  25. iamt/composes/5435PROMPT/prompt-optimizer/.rdm.md +3 -0
  26. iamt/composes/5465BASE/alpine/.rdm.md +6 -0
  27. iamt/composes/5465BASE/mysql/.rdm.md +40 -0
  28. iamt/composes/5465BASE/mysql/conf/my.cnf +52 -0
  29. iamt/composes/5465BASE/mysql/docker-compose.yml +31 -0
  30. iamt/composes/5465BASE/mysql/init/01-init.sql +14 -0
  31. iamt/composes/5465BASE/nginx/.rdm.md +16 -0
  32. iamt/composes/5465BASE/nginx/docker-compose.yml +29 -0
  33. iamt/composes/5465BASE/nginx/html/index.html +11 -0
  34. iamt/composes/5465BASE/nginx/nginx/conf.d/default.conf +22 -0
  35. iamt/composes/5465BASE/nginx/nginx/nginx.conf +35 -0
  36. iamt/composes/5465BASE/node/.rdm.md +0 -0
  37. iamt/composes/5465BASE/node/docker-compose.yml +0 -0
  38. iamt/composes/5465BASE/php/.rdm.md +0 -0
  39. iamt/composes/5465BASE/php/docker-compose.yml +0 -0
  40. iamt/composes/5465BASE/redis/.env +11 -0
  41. iamt/composes/5465BASE/redis/.rdm.md +7 -0
  42. iamt/composes/5465BASE/redis/config/redis.conf +57 -0
  43. iamt/composes/5465BASE/redis/docker-compose.yml +35 -0
  44. iamt/composes/5475TTS/GPTsovits/.rdm.md +4 -0
  45. iamt/composes/5475TTS/GPTsovits/docker-compose.yml +34 -0
  46. iamt/composes/5475TTS/indexTTS/.rdm.md +3 -0
  47. iamt/composes/5485MCP/.rdm.md +5 -0
  48. iamt/composes/5485MCP/mcpGateway/.rdm.md +2 -0
  49. iamt/composes/5485MCP/mcpGateway/docker-compose.yml +0 -0
  50. iamt/composes/5485MCP/mcpProxy/.rdm.md +2 -0
  51. iamt/composes/5485MCP/mcpProxy/config.json +53 -0
  52. iamt/composes/5485MCP/mcpProxy/docker-compose.yml +34 -0
  53. iamt/composes/5485MCP/superGateway/.env +2 -0
  54. iamt/composes/5485MCP/superGateway/.rdm.md +17 -0
  55. iamt/composes/5485MCP/superGateway/docker-compose.yml +21 -0
  56. iamt/composes/5495LLM/ollama_nvidia/.rdm.md +21 -0
  57. iamt/composes/5495LLM/ollama_nvidia/docker-compose.yml +24 -0
  58. iamt/composes/5555RAG/QAnything/.rdm.md +5 -0
  59. iamt/composes/5555RAG/bisheng/.rdm.md +4 -0
  60. iamt/composes/5555RAG/devdocs/.rdm.md +4 -0
  61. iamt/composes/5555RAG/devdocs/docker-compose.yml +81 -0
  62. iamt/composes/5555RAG/kotaemon/.rdm.md +3 -0
  63. iamt/composes/5555RAG/kotaemon/docker-compose.yml +3 -0
  64. iamt/composes/5555RAG/llama_index/.rdm.md +3 -0
  65. iamt/composes/5555RAG/ragflow/.rdm.md +4 -0
  66. iamt/composes/5555RAG/ragflow/docker-compose.yml +0 -0
  67. iamt/composes/5556LLMAPI/litellm/.env +29 -0
  68. iamt/composes/5556LLMAPI/litellm/.rdm.md +17 -0
  69. iamt/composes/5556LLMAPI/litellm/config.yaml +211 -0
  70. iamt/composes/5556LLMAPI/litellm/docker-compose.yml +68 -0
  71. iamt/composes/5556LLMAPI/litellm/prometheus.yml +9 -0
  72. iamt/composes/5556LLMAPI/newapi/.env +7 -0
  73. iamt/composes/5556LLMAPI/newapi/docker-compose.yml +54 -0
  74. iamt/composes/5556LLMAPI/newapi_sqlite/.env +3 -0
  75. iamt/composes/5556LLMAPI/newapi_sqlite/.rdm.md +15 -0
  76. iamt/composes/5556LLMAPI/newapi_sqlite/docker-compose.yml +15 -0
  77. iamt/composes/5556LLMAPI/oneapi/.env +5 -0
  78. iamt/composes/5556LLMAPI/oneapi/docker-compose.yml +51 -0
  79. iamt/composes/5556LLMAPI/oneapi_postgresql/docker-compose.yml +51 -0
  80. iamt/composes/5556LLMAPI/oneapi_sqlite/.rdm.md +10 -0
  81. iamt/composes/5556LLMAPI/oneapi_sqlite/docker-compose.yml +15 -0
  82. iamt/composes/5557AICLIENT/chatgpt-web-midjourney-proxy/.rdm.md +4 -0
  83. iamt/composes/5557AICLIENT/librechat/.env +511 -0
  84. iamt/composes/5557AICLIENT/librechat/.env.example +509 -0
  85. iamt/composes/5557AICLIENT/librechat/README.md +10 -0
  86. iamt/composes/5557AICLIENT/librechat/docker-compose.override.yml +21 -0
  87. iamt/composes/5557AICLIENT/librechat/docker-compose.yml +70 -0
  88. iamt/composes/5557AICLIENT/librechat/librechat.yaml +19 -0
  89. iamt/composes/5557AICLIENT/librechat/litellm-config.yml +21 -0
  90. iamt/composes/5557AICLIENT/librechat_oneapi/.env +535 -0
  91. iamt/composes/5557AICLIENT/librechat_oneapi/.rdm.md +19 -0
  92. iamt/composes/5557AICLIENT/librechat_oneapi/docker-compose.override.yml +14 -0
  93. iamt/composes/5557AICLIENT/librechat_oneapi/docker-compose.yml +72 -0
  94. iamt/composes/5557AICLIENT/librechat_oneapi/librechat.yaml +42 -0
  95. iamt/composes/5557AICLIENT/nextChat/.rdm.md +13 -0
  96. iamt/composes/5557AICLIENT/nextChat/docker-compose.yml +2 -0
  97. iamt/composes/5557AICLIENT/openwebui/.env +15 -0
  98. iamt/composes/5557AICLIENT/openwebui/.rdm.md +6 -0
  99. iamt/composes/5557AICLIENT/openwebui/docker-compose.yml +33 -0
  100. iamt/composes/5558AIWORKFLOW/coze_studio/.env +193 -0
  101. iamt/composes/5558AIWORKFLOW/coze_studio/.rdm.md +15 -0
  102. iamt/composes/5558AIWORKFLOW/coze_studio/atlas/README.md +71 -0
  103. iamt/composes/5558AIWORKFLOW/coze_studio/atlas/atlas.hcl +12 -0
  104. iamt/composes/5558AIWORKFLOW/coze_studio/atlas/migrations/20250703095335_initial.sql +90 -0
  105. iamt/composes/5558AIWORKFLOW/coze_studio/atlas/migrations/20250703115304_update.sql +2 -0
  106. iamt/composes/5558AIWORKFLOW/coze_studio/atlas/migrations/20250704040445_update.sql +2 -0
  107. iamt/composes/5558AIWORKFLOW/coze_studio/atlas/migrations/20250708075302_update.sql +10 -0
  108. iamt/composes/5558AIWORKFLOW/coze_studio/atlas/migrations/20250710100212_update.sql +38 -0
  109. iamt/composes/5558AIWORKFLOW/coze_studio/atlas/migrations/20250711034533_update.sql +8 -0
  110. iamt/composes/5558AIWORKFLOW/coze_studio/atlas/migrations/20250717125913_update.sql +12 -0
  111. iamt/composes/5558AIWORKFLOW/coze_studio/atlas/migrations/atlas.sum +8 -0
  112. iamt/composes/5558AIWORKFLOW/coze_studio/atlas/opencoze_latest_schema.hcl +4057 -0
  113. iamt/composes/5558AIWORKFLOW/coze_studio/backend/conf/model/model_template_qwen.yaml +106 -0
  114. iamt/composes/5558AIWORKFLOW/coze_studio/backend/conf/model/template/model_template_ark.yaml +133 -0
  115. iamt/composes/5558AIWORKFLOW/coze_studio/backend/conf/model/template/model_template_ark_doubao-1.5-lite.yaml +108 -0
  116. iamt/composes/5558AIWORKFLOW/coze_studio/backend/conf/model/template/model_template_ark_doubao-1.5-pro-256k.yaml +108 -0
  117. iamt/composes/5558AIWORKFLOW/coze_studio/backend/conf/model/template/model_template_ark_doubao-1.5-pro-32k.yaml +108 -0
  118. iamt/composes/5558AIWORKFLOW/coze_studio/backend/conf/model/template/model_template_ark_doubao-1.5-thinking-pro.yaml +131 -0
  119. iamt/composes/5558AIWORKFLOW/coze_studio/backend/conf/model/template/model_template_ark_doubao-1.5-thinking-vision-pro.yaml +132 -0
  120. iamt/composes/5558AIWORKFLOW/coze_studio/backend/conf/model/template/model_template_ark_doubao-1.5-vision-lite.yaml +131 -0
  121. iamt/composes/5558AIWORKFLOW/coze_studio/backend/conf/model/template/model_template_ark_doubao-1.5-vision-pro.yaml +132 -0
  122. iamt/composes/5558AIWORKFLOW/coze_studio/backend/conf/model/template/model_template_ark_doubao-seed-1.6-flash.yaml +132 -0
  123. iamt/composes/5558AIWORKFLOW/coze_studio/backend/conf/model/template/model_template_ark_doubao-seed-1.6-thinking.yaml +132 -0
  124. iamt/composes/5558AIWORKFLOW/coze_studio/backend/conf/model/template/model_template_ark_doubao-seed-1.6.yaml +132 -0
  125. iamt/composes/5558AIWORKFLOW/coze_studio/backend/conf/model/template/model_template_ark_volc_deepseek-r1.yaml +108 -0
  126. iamt/composes/5558AIWORKFLOW/coze_studio/backend/conf/model/template/model_template_ark_volc_deepseek-v3.yaml +108 -0
  127. iamt/composes/5558AIWORKFLOW/coze_studio/backend/conf/model/template/model_template_basic.yaml +201 -0
  128. iamt/composes/5558AIWORKFLOW/coze_studio/backend/conf/model/template/model_template_claude.yaml +90 -0
  129. iamt/composes/5558AIWORKFLOW/coze_studio/backend/conf/model/template/model_template_deepseek.yaml +107 -0
  130. iamt/composes/5558AIWORKFLOW/coze_studio/backend/conf/model/template/model_template_gemini.yaml +139 -0
  131. iamt/composes/5558AIWORKFLOW/coze_studio/backend/conf/model/template/model_template_ollama.yaml +84 -0
  132. iamt/composes/5558AIWORKFLOW/coze_studio/backend/conf/model/template/model_template_openai.yaml +171 -0
  133. iamt/composes/5558AIWORKFLOW/coze_studio/backend/conf/model/template/model_template_qwen.yaml +106 -0
  134. iamt/composes/5558AIWORKFLOW/coze_studio/backend/conf/plugin/common/oauth_schema.json +42 -0
  135. iamt/composes/5558AIWORKFLOW/coze_studio/backend/conf/plugin/pluginproduct/bocha_search.yaml +179 -0
  136. iamt/composes/5558AIWORKFLOW/coze_studio/backend/conf/plugin/pluginproduct/chestnut_sign.yaml +50 -0
  137. iamt/composes/5558AIWORKFLOW/coze_studio/backend/conf/plugin/pluginproduct/gaode_map.yaml +754 -0
  138. iamt/composes/5558AIWORKFLOW/coze_studio/backend/conf/plugin/pluginproduct/image_compression.yaml +58 -0
  139. iamt/composes/5558AIWORKFLOW/coze_studio/backend/conf/plugin/pluginproduct/lark_authentication_authorization.yaml +56 -0
  140. iamt/composes/5558AIWORKFLOW/coze_studio/backend/conf/plugin/pluginproduct/lark_base.yaml +1172 -0
  141. iamt/composes/5558AIWORKFLOW/coze_studio/backend/conf/plugin/pluginproduct/lark_calendar.yaml +479 -0
  142. iamt/composes/5558AIWORKFLOW/coze_studio/backend/conf/plugin/pluginproduct/lark_docx.yaml +552 -0
  143. iamt/composes/5558AIWORKFLOW/coze_studio/backend/conf/plugin/pluginproduct/lark_message.yaml +499 -0
  144. iamt/composes/5558AIWORKFLOW/coze_studio/backend/conf/plugin/pluginproduct/lark_sheet.yaml +795 -0
  145. iamt/composes/5558AIWORKFLOW/coze_studio/backend/conf/plugin/pluginproduct/lark_task.yaml +409 -0
  146. iamt/composes/5558AIWORKFLOW/coze_studio/backend/conf/plugin/pluginproduct/lark_wiki.yaml +95 -0
  147. iamt/composes/5558AIWORKFLOW/coze_studio/backend/conf/plugin/pluginproduct/library_search.yaml +73 -0
  148. iamt/composes/5558AIWORKFLOW/coze_studio/backend/conf/plugin/pluginproduct/maker_smart_design.yaml +82 -0
  149. iamt/composes/5558AIWORKFLOW/coze_studio/backend/conf/plugin/pluginproduct/plugin_meta.yaml +913 -0
  150. iamt/composes/5558AIWORKFLOW/coze_studio/backend/conf/plugin/pluginproduct/sky_eye_check.yaml +431 -0
  151. iamt/composes/5558AIWORKFLOW/coze_studio/backend/conf/plugin/pluginproduct/sohu_hot_news.yaml +69 -0
  152. iamt/composes/5558AIWORKFLOW/coze_studio/backend/conf/plugin/pluginproduct/wolfram_alpha.yaml +100 -0
  153. iamt/composes/5558AIWORKFLOW/coze_studio/backend/conf/plugin/pluginproduct/worth_buying.yaml +77 -0
  154. iamt/composes/5558AIWORKFLOW/coze_studio/backend/conf/prompt/messages_to_query_template_jinja2.json +10 -0
  155. iamt/composes/5558AIWORKFLOW/coze_studio/backend/conf/prompt/nl2sql_template_jinja2.json +10 -0
  156. iamt/composes/5558AIWORKFLOW/coze_studio/docker-compose.yml +549 -0
  157. iamt/composes/5558AIWORKFLOW/coze_studio/proxy/go.mod +3 -0
  158. iamt/composes/5558AIWORKFLOW/coze_studio/proxy/proxy.go +100 -0
  159. iamt/composes/5558AIWORKFLOW/coze_studio/volumes/elasticsearch/analysis-smartcn.zip +0 -0
  160. iamt/composes/5558AIWORKFLOW/coze_studio/volumes/elasticsearch/elasticsearch.yml +14 -0
  161. iamt/composes/5558AIWORKFLOW/coze_studio/volumes/elasticsearch/es_index_schema/coze_resource.index-template.json +74 -0
  162. iamt/composes/5558AIWORKFLOW/coze_studio/volumes/elasticsearch/es_index_schema/project_draft.index-template.json +79 -0
  163. iamt/composes/5558AIWORKFLOW/coze_studio/volumes/elasticsearch/setup_es.sh +142 -0
  164. iamt/composes/5558AIWORKFLOW/coze_studio/volumes/etcd/etcd.conf.yml +0 -0
  165. iamt/composes/5558AIWORKFLOW/coze_studio/volumes/minio/.mc/config.json +1 -0
  166. iamt/composes/5558AIWORKFLOW/coze_studio/volumes/minio/default_icon/claude_v2.png +0 -0
  167. iamt/composes/5558AIWORKFLOW/coze_studio/volumes/minio/default_icon/connector-api.jpg +0 -0
  168. iamt/composes/5558AIWORKFLOW/coze_studio/volumes/minio/default_icon/connector-chat-sdk.jpg +0 -0
  169. iamt/composes/5558AIWORKFLOW/coze_studio/volumes/minio/default_icon/connector-coze.png +0 -0
  170. iamt/composes/5558AIWORKFLOW/coze_studio/volumes/minio/default_icon/deepseek_v2.png +0 -0
  171. iamt/composes/5558AIWORKFLOW/coze_studio/volumes/minio/default_icon/default_agent_icon.png +0 -0
  172. iamt/composes/5558AIWORKFLOW/coze_studio/volumes/minio/default_icon/default_app_icon.png +0 -0
  173. iamt/composes/5558AIWORKFLOW/coze_studio/volumes/minio/default_icon/default_database_icon.png +0 -0
  174. iamt/composes/5558AIWORKFLOW/coze_studio/volumes/minio/default_icon/default_dataset_icon.png +0 -0
  175. iamt/composes/5558AIWORKFLOW/coze_studio/volumes/minio/default_icon/default_prompt_icon.png +0 -0
  176. iamt/composes/5558AIWORKFLOW/coze_studio/volumes/minio/default_icon/default_workflow_icon.png +0 -0
  177. iamt/composes/5558AIWORKFLOW/coze_studio/volumes/minio/default_icon/doubao_v2.png +0 -0
  178. iamt/composes/5558AIWORKFLOW/coze_studio/volumes/minio/default_icon/gemini_v2.png +0 -0
  179. iamt/composes/5558AIWORKFLOW/coze_studio/volumes/minio/default_icon/image_kn_default_icon.png +0 -0
  180. iamt/composes/5558AIWORKFLOW/coze_studio/volumes/minio/default_icon/ollama.png +0 -0
  181. iamt/composes/5558AIWORKFLOW/coze_studio/volumes/minio/default_icon/openai_v2.png +0 -0
  182. iamt/composes/5558AIWORKFLOW/coze_studio/volumes/minio/default_icon/plugin_default_icon.png +0 -0
  183. iamt/composes/5558AIWORKFLOW/coze_studio/volumes/minio/default_icon/qwen_v2.png +0 -0
  184. iamt/composes/5558AIWORKFLOW/coze_studio/volumes/minio/default_icon/shortcut_10coz_folder.png +0 -0
  185. iamt/composes/5558AIWORKFLOW/coze_studio/volumes/minio/default_icon/shortcut_11coz_trans_switch.png +0 -0
  186. iamt/composes/5558AIWORKFLOW/coze_studio/volumes/minio/default_icon/shortcut_12coz_location.png +0 -0
  187. iamt/composes/5558AIWORKFLOW/coze_studio/volumes/minio/default_icon/shortcut_13coz_link.png +0 -0
  188. iamt/composes/5558AIWORKFLOW/coze_studio/volumes/minio/default_icon/shortcut_14coz_clock.png +0 -0
  189. iamt/composes/5558AIWORKFLOW/coze_studio/volumes/minio/default_icon/shortcut_1coz_ai.png +0 -0
  190. iamt/composes/5558AIWORKFLOW/coze_studio/volumes/minio/default_icon/shortcut_2icon_ai_writing.png +0 -0
  191. iamt/composes/5558AIWORKFLOW/coze_studio/volumes/minio/default_icon/shortcut_3coz_imageflow.png +0 -0
  192. iamt/composes/5558AIWORKFLOW/coze_studio/volumes/minio/default_icon/shortcut_4icon_aisearch.png +0 -0
  193. iamt/composes/5558AIWORKFLOW/coze_studio/volumes/minio/default_icon/shortcut_5icon_summary.png +0 -0
  194. iamt/composes/5558AIWORKFLOW/coze_studio/volumes/minio/default_icon/shortcut_6icon_digest.png +0 -0
  195. iamt/composes/5558AIWORKFLOW/coze_studio/volumes/minio/default_icon/shortcut_7icon_video.png +0 -0
  196. iamt/composes/5558AIWORKFLOW/coze_studio/volumes/minio/default_icon/shortcut_8icon_audio.png +0 -0
  197. iamt/composes/5558AIWORKFLOW/coze_studio/volumes/minio/default_icon/shortcut_9coz_variables.png +0 -0
  198. iamt/composes/5558AIWORKFLOW/coze_studio/volumes/minio/default_icon/table_kn_default_icon.png +0 -0
  199. iamt/composes/5558AIWORKFLOW/coze_studio/volumes/minio/default_icon/team_default_icon.png +0 -0
  200. iamt/composes/5558AIWORKFLOW/coze_studio/volumes/minio/default_icon/template_7416518827749425204.png +0 -0
  201. iamt/composes/5558AIWORKFLOW/coze_studio/volumes/minio/default_icon/template_7418535986059067392.png +0 -0
  202. iamt/composes/5558AIWORKFLOW/coze_studio/volumes/minio/default_icon/text_kn_default_icon.png +0 -0
  203. iamt/composes/5558AIWORKFLOW/coze_studio/volumes/minio/default_icon/user_default_icon.png +0 -0
  204. iamt/composes/5558AIWORKFLOW/coze_studio/volumes/minio/official_plugin_icon/plugin_ai_ppt.jpeg +0 -0
  205. iamt/composes/5558AIWORKFLOW/coze_studio/volumes/minio/official_plugin_icon/plugin_bocha_search.jpeg +0 -0
  206. iamt/composes/5558AIWORKFLOW/coze_studio/volumes/minio/official_plugin_icon/plugin_chat_ppt.png +0 -0
  207. iamt/composes/5558AIWORKFLOW/coze_studio/volumes/minio/official_plugin_icon/plugin_chestnut_sign.png +0 -0
  208. iamt/composes/5558AIWORKFLOW/coze_studio/volumes/minio/official_plugin_icon/plugin_constellation.png +0 -0
  209. iamt/composes/5558AIWORKFLOW/coze_studio/volumes/minio/official_plugin_icon/plugin_gaode_map.jpeg +0 -0
  210. iamt/composes/5558AIWORKFLOW/coze_studio/volumes/minio/official_plugin_icon/plugin_image_compression.jpeg +0 -0
  211. iamt/composes/5558AIWORKFLOW/coze_studio/volumes/minio/official_plugin_icon/plugin_lark_authentication_authorization.png +0 -0
  212. iamt/composes/5558AIWORKFLOW/coze_studio/volumes/minio/official_plugin_icon/plugin_lark_base.png +0 -0
  213. iamt/composes/5558AIWORKFLOW/coze_studio/volumes/minio/official_plugin_icon/plugin_lark_calendar.png +0 -0
  214. iamt/composes/5558AIWORKFLOW/coze_studio/volumes/minio/official_plugin_icon/plugin_lark_docx.png +0 -0
  215. iamt/composes/5558AIWORKFLOW/coze_studio/volumes/minio/official_plugin_icon/plugin_lark_message.png +0 -0
  216. iamt/composes/5558AIWORKFLOW/coze_studio/volumes/minio/official_plugin_icon/plugin_lark_sheet.png +0 -0
  217. iamt/composes/5558AIWORKFLOW/coze_studio/volumes/minio/official_plugin_icon/plugin_lark_task.png +0 -0
  218. iamt/composes/5558AIWORKFLOW/coze_studio/volumes/minio/official_plugin_icon/plugin_lark_wiki.png +0 -0
  219. iamt/composes/5558AIWORKFLOW/coze_studio/volumes/minio/official_plugin_icon/plugin_library_search.png +0 -0
  220. iamt/composes/5558AIWORKFLOW/coze_studio/volumes/minio/official_plugin_icon/plugin_liepin.png +0 -0
  221. iamt/composes/5558AIWORKFLOW/coze_studio/volumes/minio/official_plugin_icon/plugin_maker_smart_design.png +0 -0
  222. iamt/composes/5558AIWORKFLOW/coze_studio/volumes/minio/official_plugin_icon/plugin_sky_eye_check.jpeg +0 -0
  223. iamt/composes/5558AIWORKFLOW/coze_studio/volumes/minio/official_plugin_icon/plugin_sohu_hot_news.png +0 -0
  224. iamt/composes/5558AIWORKFLOW/coze_studio/volumes/minio/official_plugin_icon/plugin_wolfram_alpha.png +0 -0
  225. iamt/composes/5558AIWORKFLOW/coze_studio/volumes/minio/official_plugin_icon/plugin_worth_buying.jpeg +0 -0
  226. iamt/composes/5558AIWORKFLOW/coze_studio/volumes/mysql/schema.sql +836 -0
  227. iamt/composes/5558AIWORKFLOW/coze_studio/volumes/mysql/sql_init.sql +666 -0
  228. iamt/composes/5558AIWORKFLOW/coze_studio/volumes/rocketmq/broker.conf +28 -0
  229. iamt/composes/5558AIWORKFLOW/dify/.env +1090 -0
  230. iamt/composes/5558AIWORKFLOW/dify/.rdm.md +11 -0
  231. iamt/composes/5558AIWORKFLOW/dify/certbot/README.md +76 -0
  232. iamt/composes/5558AIWORKFLOW/dify/certbot/docker-entrypoint.sh +30 -0
  233. iamt/composes/5558AIWORKFLOW/dify/certbot/update-cert.template.txt +19 -0
  234. iamt/composes/5558AIWORKFLOW/dify/couchbase-server/Dockerfile +4 -0
  235. iamt/composes/5558AIWORKFLOW/dify/couchbase-server/init-cbserver.sh +44 -0
  236. iamt/composes/5558AIWORKFLOW/dify/docker-compose.yml +1174 -0
  237. iamt/composes/5558AIWORKFLOW/dify/elasticsearch/docker-entrypoint.sh +25 -0
  238. iamt/composes/5558AIWORKFLOW/dify/image.png +0 -0
  239. iamt/composes/5558AIWORKFLOW/dify/nginx/conf.d/default.conf.template +48 -0
  240. iamt/composes/5558AIWORKFLOW/dify/nginx/docker-entrypoint.sh +42 -0
  241. iamt/composes/5558AIWORKFLOW/dify/nginx/https.conf.template +9 -0
  242. iamt/composes/5558AIWORKFLOW/dify/nginx/nginx.conf.template +34 -0
  243. iamt/composes/5558AIWORKFLOW/dify/nginx/proxy.conf.template +11 -0
  244. iamt/composes/5558AIWORKFLOW/dify/nginx/ssl/.gitkeep +0 -0
  245. iamt/composes/5558AIWORKFLOW/dify/pgvector/docker-entrypoint.sh +24 -0
  246. iamt/composes/5558AIWORKFLOW/dify/ssrf_proxy/docker-entrypoint.sh +42 -0
  247. iamt/composes/5558AIWORKFLOW/dify/ssrf_proxy/squid.conf.template +56 -0
  248. iamt/composes/5558AIWORKFLOW/dify/startupscripts/init.sh +13 -0
  249. iamt/composes/5558AIWORKFLOW/dify/startupscripts/init_user.script +10 -0
  250. iamt/composes/5558AIWORKFLOW/dify/tidb/config/pd.toml +4 -0
  251. iamt/composes/5558AIWORKFLOW/dify/tidb/config/tiflash-learner.toml +13 -0
  252. iamt/composes/5558AIWORKFLOW/dify/tidb/config/tiflash.toml +19 -0
  253. iamt/composes/5558AIWORKFLOW/dify/tidb/docker-compose.yaml +62 -0
  254. iamt/composes/5558AIWORKFLOW/dify/volumes/myscale/config/users.d/custom_users_config.xml +17 -0
  255. iamt/composes/5558AIWORKFLOW/dify/volumes/oceanbase/init.d/vec_memory.sql +1 -0
  256. iamt/composes/5558AIWORKFLOW/dify/volumes/opensearch/opensearch_dashboards.yml +222 -0
  257. iamt/composes/5558AIWORKFLOW/dify/volumes/sandbox/conf/config.yaml +14 -0
  258. iamt/composes/5558AIWORKFLOW/dify/volumes/sandbox/conf/config.yaml.example +35 -0
  259. iamt/composes/5558AIWORKFLOW/dify/volumes/sandbox/dependencies/python-requirements.txt +0 -0
  260. iamt/composes/5558AIWORKFLOW/fastgpt/.rdm.md +14 -0
  261. iamt/composes/5558AIWORKFLOW/fastgpt/docker-compose-pgvector.yml +177 -0
  262. iamt/composes/5558AIWORKFLOW/langflow/.rdm.md +9 -0
  263. iamt/composes/5558AIWORKFLOW/langflow/docker-compose.yml +30 -0
  264. iamt/composes/5558AIWORKFLOW/n8n/.env +6 -0
  265. iamt/composes/5558AIWORKFLOW/n8n/.rdm.md +24 -0
  266. iamt/composes/5558AIWORKFLOW/n8n/docker-compose.yml +52 -0
  267. iamt/composes/5558AIWORKFLOW/n8n/init-data.sh +13 -0
  268. iamt/composes/5558AIWORKFLOW/n8n/n8n_storage/.gitkeep +0 -0
  269. iamt/composes/5559MJAPI/midjourney-proxy/.rdm.md +10 -0
  270. iamt/composes/5559MJAPI/midjourney-proxy/docker-compose.yml +0 -0
  271. iamt/composes/5559MJAPI/midjourney-proxy2/.rdm.md +5 -0
  272. iamt/composes/5559MJAPI/midjourney-proxy2/docker-compose.yml +21 -0
  273. iamt/composes/5655PROXY/3xui/.rdm.md +12 -0
  274. iamt/composes/5655PROXY/3xui/docker-compose.yml +15 -0
  275. iamt/composes/5655PROXY/hui/.rdm.md +6 -0
  276. iamt/composes/5655PROXY/hui/docker-compose.yml +18 -0
  277. iamt/composes/5655PROXY/mihomo/.rdm.config.md +17 -0
  278. iamt/composes/5655PROXY/mihomo/.rdm.md +40 -0
  279. iamt/composes/5655PROXY/mihomo/clash_meta_config/config.yaml +584 -0
  280. iamt/composes/5655PROXY/mihomo/clash_meta_config/geoip.metadb +0 -0
  281. iamt/composes/5655PROXY/mihomo/clash_meta_config/sub1.yaml +7 -0
  282. iamt/composes/5655PROXY/mihomo/clash_meta_config/sub2.yaml +56 -0
  283. iamt/composes/5655PROXY/mihomo/docker-compose.yml +33 -0
  284. iamt/composes/5655PROXY/nginx/.rdm +2 -0
  285. iamt/composes/5655PROXY/nginx/docker-compose.yml +21 -0
  286. iamt/composes/5655PROXY/sub-web/.rdm.md +9 -0
  287. iamt/composes/5655PROXY/sub2clash/.rdm.md +3 -0
  288. iamt/composes/5655PROXY/sub2clash/docker-compose.yml +21 -0
  289. iamt/composes/5655PROXY/subconverter/.rdm.md +4 -0
  290. iamt/composes/5655PROXY/v2ray/.rdm.md +3 -0
  291. iamt/composes/5655PROXY/v2raya/.rdm.md +33 -0
  292. iamt/composes/5655PROXY/v2raya/docker-compose.yml +19 -0
  293. iamt/composes/5655PROXY/xui/.rdm.md +3 -0
  294. iamt/composes/5755COMFYUI/akegarasu_lora-scripts/.rdm.md +18 -0
  295. iamt/composes/5755COMFYUI/akegarasu_lora-scripts/Dockerfile-for-Mainland-China +42 -0
  296. iamt/composes/5755COMFYUI/akegarasu_lora-scripts/docker-compose.yml +39 -0
  297. iamt/composes/5755COMFYUI/comfyui_boot/.rdm.md +29 -0
  298. iamt/composes/5755COMFYUI/comfyui_boot/docker-compose.yml +0 -0
  299. iamt/composes/5755COMFYUI/comfyui_boot_cu121/.env +1 -0
  300. iamt/composes/5755COMFYUI/comfyui_boot_cu121/.rdm.md +20 -0
  301. iamt/composes/5755COMFYUI/comfyui_boot_cu121/docker-compose.yml +45 -0
  302. iamt/composes/5755COMFYUI/comfyui_boot_cu121/storage/.gitkeep +0 -0
  303. iamt/composes/5755COMFYUI/comfyui_boot_cu124-cn/.rdm.md +22 -0
  304. iamt/composes/5755COMFYUI/comfyui_boot_cu124-cn/docker-compose.yml +31 -0
  305. iamt/composes/5755COMFYUI/comfyui_boot_minimal/.rdm.md +26 -0
  306. iamt/composes/5755COMFYUI/comfyui_boot_minimal/docker-compose.yml +0 -0
  307. iamt/composes/5755COMFYUI/comfyui_boot_slim/.env +0 -0
  308. iamt/composes/5755COMFYUI/comfyui_boot_slim/.rdm.md +23 -0
  309. iamt/composes/5755COMFYUI/comfyui_boot_slim/docker-compose.yml +24 -0
  310. iamt/composes/5755COMFYUI/swarmui/.rdm.md +5 -0
  311. iamt/composes/5755COMFYUI/swarmui/docker-compose.yml +38 -0
  312. iamt/composes/5855MEDIA/any-listen/.rdm.md +7 -0
  313. iamt/composes/5855MEDIA/any-listen/data/config.cjs +20 -0
  314. iamt/composes/5855MEDIA/any-listen/docker-compose.yml +10 -0
  315. iamt/composes/5855MEDIA/blackcandy/.rdm.md +1 -0
  316. iamt/composes/5855MEDIA/koel/.rdm.md +17 -0
  317. iamt/composes/5855MEDIA/koel/docker-compose.yml +41 -0
  318. iamt/composes/5855MEDIA/navidrome/.rdm.md +15 -0
  319. iamt/composes/5855MEDIA/navidrome/docker-compose.yml +15 -0
  320. iamt/composes/5955BACKUP/gobackup/.rdm.md +9 -0
  321. iamt/composes/5955BACKUP/gobackup/docker-compose.yml +19 -0
  322. iamt/composes/5955BACKUP/gobackup/gobackup/gobackup.yml +5 -0
  323. iamt/composes/5955BACKUP/rclone/.rdm.md +6 -0
  324. iamt/composes/5955BACKUP/rclone/docker-compose.yml +0 -0
  325. iamt/composes/5965SYNC/verysync/.rdm.md +16 -0
  326. iamt/composes/5965SYNC/verysync/docker-compose.yml +22 -0
  327. iamt/composes/6055DATABASE/adminer/.rdm.md +13 -0
  328. iamt/composes/6055DATABASE/cloudbeaver/.rdm.md +10 -0
  329. iamt/composes/6055DATABASE/mongodb/.env +7 -0
  330. iamt/composes/6055DATABASE/mongodb/.rdm.md +8 -0
  331. iamt/composes/6055DATABASE/mongodb/docker-compose.yml +24 -0
  332. iamt/composes/6055DATABASE/mongodbExpress/.env +10 -0
  333. iamt/composes/6055DATABASE/mongodbExpress/.rdm.md +14 -0
  334. iamt/composes/6055DATABASE/mongodbExpress/docker-compose.yml +24 -0
  335. iamt/composes/6055DATABASE/mysql/.env +0 -0
  336. iamt/composes/6055DATABASE/mysql/.rdm.md +0 -0
  337. iamt/composes/6055DATABASE/mysql/docker-compose.yml +26 -0
  338. iamt/composes/6055DATABASE/mysql/my.cnf +107 -0
  339. iamt/composes/6155AUTH/authentik/.env +10 -0
  340. iamt/composes/6155AUTH/authentik/.rdm.md +7 -0
  341. iamt/composes/6155AUTH/authentik/docker-compose.yml +90 -0
  342. iamt/composes/6155AUTH/casdoor/conf/app.conf +30 -0
  343. iamt/composes/6155AUTH/casdoor/docker-compose.yml +20 -0
  344. iamt/composes/6255Monitor/dcgm_exporter/.rdm.md +5 -0
  345. iamt/composes/6255Monitor/dcgm_exporter/docker-compose.yml +34 -0
  346. iamt/composes/6255Monitor/grafana/.env +5 -0
  347. iamt/composes/6255Monitor/grafana/.rdm.md +0 -0
  348. iamt/composes/6255Monitor/grafana/docker-compose.yml +22 -0
  349. iamt/composes/6255Monitor/node_exporter/.env +1 -0
  350. iamt/composes/6255Monitor/node_exporter/docker-compose.yml +19 -0
  351. iamt/composes/6255Monitor/prometheus/.env +6 -0
  352. iamt/composes/6255Monitor/prometheus/.rdm.md +8 -0
  353. iamt/composes/6255Monitor/prometheus/conf/prometheus.yml +39 -0
  354. iamt/composes/6255Monitor/prometheus/docker-compose.yml +28 -0
  355. iamt/composes/6255Monitor/prometheus/prometheus/.gitkeep +0 -0
  356. iamt/composes/6355SSL/certbot/.rdm.md +4 -0
  357. iamt/composes/6355SSL/certd/.rdm.md +4 -0
  358. iamt/composes/6355SSL/certimate/.rdm.md +23 -0
  359. iamt/composes/6355SSL/certimate/docker-compose.yml +17 -0
  360. iamt/composes/6455Storage/fileBrowser/.env +5 -0
  361. iamt/composes/6455Storage/fileBrowser/.rdm.md +17 -0
  362. iamt/composes/6455Storage/fileBrowser/docker-compose.yml +14 -0
  363. iamt/composes/6455Storage/fileBrowser/filebrowser.db +0 -0
  364. iamt/composes/6455Storage/fileBrowser/settings.json +8 -0
  365. iamt/composes/6455Storage/kskypro/.env +3 -0
  366. iamt/composes/6455Storage/kskypro/.rdm.md +30 -0
  367. iamt/composes/6455Storage/kskypro/buildimg/000-default.conf.template +45 -0
  368. iamt/composes/6455Storage/kskypro/buildimg/Dockerfile +97 -0
  369. iamt/composes/6455Storage/kskypro/buildimg/LICENSE +661 -0
  370. iamt/composes/6455Storage/kskypro/buildimg/entrypoint.sh +29 -0
  371. iamt/composes/6455Storage/kskypro/buildimg/ports.conf.template +2 -0
  372. iamt/composes/6455Storage/kskypro/buildimg/ssl/certs/ssl-cert-snakeoil.pem +21 -0
  373. iamt/composes/6455Storage/kskypro/buildimg/ssl/private/ssl-cert-snakeoil.key +28 -0
  374. iamt/composes/6455Storage/kskypro/docker-compose.yml +43 -0
  375. iamt/composes/6455Storage/kskypro/env.conf +43 -0
  376. iamt/composes/6455Storage/kskypro/mysql/conf/.gitkeep +0 -0
  377. iamt/composes/6455Storage/kskypro/mysql/data/.gitkeep +0 -0
  378. iamt/composes/6455Storage/kskypro/mysql/log/.gitkeep +0 -0
  379. iamt/composes/6455Storage/lskypro/.rdm.md +15 -0
  380. iamt/composes/6455Storage/lskypro/Dockerfile +12 -0
  381. iamt/composes/6455Storage/lskypro/docker-compose.yml +51 -0
  382. iamt/composes/6455Storage/minio/.rdm.md +1 -0
  383. iamt/composes/6455Storage/minio/docker-compose.yml +31 -0
  384. iamt/composes/6455Storage/nextcloud/.rdm.md +0 -0
  385. iamt/composes/6455Storage/nextcloud/docker-compose.yml +25 -0
  386. iamt/composes/6455Storage/seafile/.env +46 -0
  387. iamt/composes/6455Storage/seafile/.rdm.md +31 -0
  388. iamt/composes/6455Storage/seafile/caddy.yml +26 -0
  389. iamt/composes/6455Storage/seafile/seadoc.yml +39 -0
  390. iamt/composes/6455Storage/seafile/seafile-server.yml +79 -0
  391. iamt/composes/6555DNS/ddnsgo/.env +8 -0
  392. iamt/composes/6555DNS/ddnsgo/.rdm.md +7 -0
  393. iamt/composes/6555DNS/ddnsgo/docker-compose.yml +17 -0
  394. iamt/composes/6555DNS/lucky/.rdm.md +4 -0
  395. iamt/composes/6555DNS/lucky/docker-compose.yml +14 -0
  396. iamt/composes/6655CONTAINER/harbor/.rdm.md +1 -0
  397. iamt/composes/6755SHOP/dujiaoka/.rdm.md +10 -0
  398. iamt/composes/6755SHOP/dujiaoka/docker-compose.yml +37 -0
  399. iamt/composes/6755SHOP/dujiaoka/env.conf +46 -0
  400. iamt/composes/6755SHOP/dujiaoka/storage/.gitkeep +0 -0
  401. iamt/composes/6755SHOP/dujiaoka/uploads/.gitkeep +0 -0
  402. iamt/composes/6755SHOP/dujiaoka2/.rdm.md +3 -0
  403. iamt/composes/8888Others/apitable/docker-compose.yml +233 -0
  404. iamt/composes/8888Others/changeDetect/README +18 -0
  405. iamt/composes/8888Others/changeDetect/docker-compose.yml +44 -0
  406. iamt/composes/8888Others/codeServer/.rdm.md +7 -0
  407. iamt/composes/8888Others/codeServer/docker-compose.yml +39 -0
  408. iamt/composes/8888Others/douyin_tiktok_download_api/.rdm.md +19 -0
  409. iamt/composes/8888Others/douyin_tiktok_download_api/config.yaml +32 -0
  410. iamt/composes/8888Others/douyin_tiktok_download_api/docker-compose.yml +17 -0
  411. iamt/composes/8888Others/kasmweb_chrome/.rdm.md +19 -0
  412. iamt/composes/8888Others/kasmweb_chrome/docker-compose.yml +17 -0
  413. iamt/composes/8888Others/meilisearch/.env +10 -0
  414. iamt/composes/8888Others/meilisearch/config/config.toml +132 -0
  415. iamt/composes/8888Others/meilisearch/docker-compose.yml +34 -0
  416. iamt/composes/8888Others/memcached/.env +8 -0
  417. iamt/composes/8888Others/memcached/docker-compose.yml +20 -0
  418. iamt/composes/8888Others/minio/docker-compose.yml +20 -0
  419. iamt/composes/8888Others/minio/minio +9 -0
  420. iamt/composes/8888Others/neko/README.md +11 -0
  421. iamt/composes/8888Others/neko/docker-compose.yml +16 -0
  422. iamt/composes/8888Others/ocrmypdf/README.md +14 -0
  423. iamt/composes/8888Others/outline/docker-compose.yml +76 -0
  424. iamt/composes/8888Others/outline/docker.env +164 -0
  425. iamt/composes/8888Others/outline/redis.conf +0 -0
  426. iamt/composes/8888Others/pandas_ai/.rdm.md +5 -0
  427. iamt/composes/8888Others/pandas_ai/docker-compose.yml +49 -0
  428. iamt/composes/8888Others/rancher/.rdm.md +4 -0
  429. iamt/composes/8888Others/rustdesk/.env +10 -0
  430. iamt/composes/8888Others/rustdesk/docker-compose.yml +29 -0
  431. iamt/composes/8888Others/ttrss/docker-compose.yml +74 -0
  432. iamt/composes/8888Others/vultrCLI/.rdm.md +9 -0
  433. iamt/composes/8888Others/wewerss/docker-compose.yml +44 -0
  434. iamt/dcd/dcd.py +337 -0
  435. iamt/decorators/singleton.py +224 -0
  436. iamt/modules/_utils/_utils.py +1 -0
  437. iamt/modules/_utils/arch.py +22 -0
  438. iamt/modules/_utils/cleanup_network_config.py +68 -0
  439. iamt/modules/_utils/github.py +123 -0
  440. iamt/modules/_utils/setup_apt_sources.py +94 -0
  441. iamt/modules/_utils/steps.py +26 -0
  442. iamt/modules/claudecode/claudecode.py +0 -0
  443. iamt/modules/dcdtask/dcdtask.py +164 -0
  444. iamt/modules/docker/docker.py +370 -0
  445. iamt/modules/docker/roles/role.py +54 -0
  446. iamt/modules/docker/templates/daemon/daemon_multi_mirrors.json +21 -0
  447. iamt/modules/docker/templates/gpgkey/debian_gpgkey +62 -0
  448. iamt/modules/docker/templates/gpgkey/ubuntu_gpgkey +62 -0
  449. iamt/modules/github/ghcli.py +197 -0
  450. iamt/modules/nvm/nvm.py +183 -0
  451. iamt/modules/nvm/roles/role.py +24 -0
  452. iamt/modules/runlinetask/runlinetask.py +22 -0
  453. iamt/modules/ubuntud/antigravity.py +191 -0
  454. iamt/modules/ubuntud/chrome.py +111 -0
  455. iamt/modules/ubuntud/fcitx5.py +0 -0
  456. iamt/modules/ubuntud/ibus.py +53 -0
  457. iamt/modules/ubuntud/kiro.py +41 -0
  458. iamt/modules/ubuntud/rime_ice.py +173 -0
  459. iamt/modules/ubuntud/roles/role.py +28 -0
  460. iamt/modules/ubuntud/templates/ibus/ibus_rime.custom.yaml +3 -0
  461. iamt/modules/ubuntud/v2ray-core.py +238 -0
  462. iamt/modules/ubuntud/v2rayN.py +127 -0
  463. iamt/modules/ubuntud/vscode.py +162 -0
  464. iamt/modules/uv/roles/role.py +56 -0
  465. iamt/modules/uv/templates/uv.toml +5 -0
  466. iamt/modules/uv/uv.py +315 -0
  467. iamt/modules/vagrant/templates/Vagrantfile +25 -0
  468. iamt/modules/vagrant/vagrant.py +91 -0
  469. iamt/modules/vboxinit/base_box_init.py +142 -0
  470. iamt/modules/vboxinit/roles/role.py +15 -0
  471. iamt/role/role.py +134 -0
  472. iamt/run_file/run_file.py +121 -0
  473. iamt/run_line/commands.py +70 -0
  474. iamt/run_line/run_line.py +78 -0
  475. iamt/task/task.py +108 -0
  476. iamt/utils/__init__.py +6 -0
  477. iamt/utils/config_saver.py +90 -0
  478. iamt/utils/task_tracker.py +136 -0
  479. iamt-1.1.27.dist-info/METADATA +19 -0
  480. iamt-1.1.27.dist-info/RECORD +482 -0
  481. iamt-1.1.27.dist-info/WHEEL +4 -0
  482. iamt-1.1.27.dist-info/entry_points.txt +5 -0
iamt/task/task.py ADDED
@@ -0,0 +1,108 @@
1
+ import inspect
2
+ import importlib
3
+ from pathlib import Path
4
+
5
+ from fabric import Task as FabricTask
6
+
7
+
8
+ class Task:
9
+
10
+ def _scan_tasks(self) -> dict[str, dict]:
11
+ """扫描 modules 目录下所有子目录中的 task"""
12
+ tasks = {}
13
+ modules_path = Path(__file__).parent.parent / "modules"
14
+
15
+ # region 遍历 modules 目录下的非下划线开头的子目录
16
+ for module_dir in modules_path.iterdir():
17
+ if not module_dir.is_dir() or module_dir.name.startswith("_"):
18
+ continue
19
+
20
+ # region 扫描子目录下不以下划线开头的 Python 文件
21
+ for py_file in module_dir.glob("*.py"):
22
+ if py_file.name.startswith("_"):
23
+ continue
24
+
25
+ module_name = py_file.stem
26
+ import_path = f".modules.{module_dir.name}.{module_name}"
27
+
28
+ try:
29
+ module = importlib.import_module(import_path, package="iamt")
30
+ source_file = py_file.name
31
+
32
+ for name, obj in vars(module).items():
33
+ if isinstance(obj, FabricTask):
34
+ tasks[name] = {
35
+ "task": obj,
36
+ "source": source_file,
37
+ "module": module_dir
38
+ }
39
+ except ImportError as e:
40
+ print(f"警告: 无法导入模块 {import_path}: {e}")
41
+ # endregion
42
+ # endregion
43
+
44
+ return tasks
45
+
46
+ def ls(self):
47
+ """列出所有任务"""
48
+ print("可用任务:")
49
+ for name, task_info in (self._scan_tasks()).items():
50
+ task_obj = task_info["task"]
51
+ sig = inspect.signature(task_obj.body)
52
+ params = [p for p in sig.parameters.keys() if p != 'ctx']
53
+ params_str = f"({', '.join(params)})" if params else "()"
54
+ doc = (task_obj.body.__doc__ or "").strip().split('\n')[0]
55
+ location = f"@ {task_info['module'].name}/{task_info['source']}"
56
+ print(f" {name}{params_str}: {doc} {location}")
57
+
58
+ def run(self):
59
+ """交互式选择并运行任务"""
60
+ from prompt_toolkit import prompt
61
+ from ..completers.customCompleter import CustomCompleter, CustomValidator
62
+ from ..client_config.client_config import ClientConfig
63
+
64
+ if not self._scan_tasks():
65
+ print("没有可用的任务")
66
+ return
67
+
68
+ # region 构建 模块名.task函数名 格式的选项列表
69
+ task_options = {
70
+ f"{task_info['module'].name}.{name}": f"{task_info['module'].name}.{name}"
71
+ for name, task_info in (self._scan_tasks()).items()
72
+ }
73
+ completer = CustomCompleter(task_options)
74
+ validator = CustomValidator(completer, error_msg="无效的任务,请从补全列表中选择")
75
+ # endregion
76
+
77
+ # region 模糊搜索选择
78
+ try:
79
+ selected_key = prompt(
80
+ "请选择要运行的任务 (Tab补全, 支持模糊搜索): ",
81
+ completer=completer,
82
+ validator=validator
83
+ ).strip()
84
+ except (KeyboardInterrupt, EOFError):
85
+ print("\n已取消选择")
86
+ return
87
+
88
+ if not selected_key or selected_key not in task_options:
89
+ print(f"无效的选择: {selected_key}")
90
+ return
91
+ # endregion
92
+
93
+ # region 执行选中的任务
94
+ task_name = selected_key.split(".")[-1]
95
+ task_info = (self._scan_tasks())[task_name]
96
+ task_obj = task_info["task"]
97
+ config = ClientConfig()
98
+ conn = config.connect()
99
+ if conn is None:
100
+ return
101
+ doc = (task_obj.body.__doc__ or "").strip()
102
+ if doc:
103
+ print(f"\n{doc}\n")
104
+ try:
105
+ task_obj(conn)
106
+ except Exception as e:
107
+ print(f"任务 '{task_name}' 执行失败: {e}")
108
+ # endregion
iamt/utils/__init__.py ADDED
@@ -0,0 +1,6 @@
1
+ """工具模块"""
2
+
3
+ from .config_saver import save_task_config, TaskCall, get_hostname_from_iamt_config
4
+ from .task_tracker import TaskTracker
5
+
6
+ __all__ = ["save_task_config", "TaskCall", "get_hostname_from_iamt_config", "TaskTracker"]
@@ -0,0 +1,90 @@
1
+ """配置保存工具模块
2
+
3
+ 提供统一的 task 配置保存功能,供 DCD 和 role 执行时复用。
4
+ """
5
+
6
+ from pathlib import Path
7
+ from typing import TypedDict
8
+
9
+ import yaml
10
+ from rich.console import Console
11
+
12
+
13
+ class TaskCall(TypedDict):
14
+ """Task 函数调用记录"""
15
+ task: str # task 函数名称 (格式: module.function)
16
+ args: dict # 调用参数 (不含 conn)
17
+
18
+
19
+ class TaskConfig(TypedDict):
20
+ """Task 配置文件结构"""
21
+ hostname: str # iamt.yaml 中的主机名
22
+ tasks: list[TaskCall] # 执行的 task 函数列表
23
+
24
+
25
+ def save_task_config(
26
+ hostname: str,
27
+ tasks: list[TaskCall],
28
+ config_name: str,
29
+ suffix: str = ".dcd.yaml",
30
+ output_dir: Path | None = None,
31
+ ) -> Path | None:
32
+ """保存 task 配置到文件
33
+
34
+ Args:
35
+ hostname: iamt.yaml 中的主机名
36
+ tasks: 执行的 task 函数调用列表
37
+ config_name: 配置文件名 (不含后缀)
38
+ suffix: 配置文件后缀,默认 ".dcd.yaml"
39
+ output_dir: 输出目录,默认为当前工作目录
40
+
41
+ Returns:
42
+ 保存成功返回配置文件路径,失败返回 None
43
+ """
44
+ console = Console()
45
+
46
+ if not hostname:
47
+ console.print("[red]hostname 不能为空[/red]")
48
+ return None
49
+
50
+ if not tasks:
51
+ console.print("[red]tasks 列表不能为空[/red]")
52
+ return None
53
+
54
+ config_data: TaskConfig = {
55
+ "hostname": hostname,
56
+ "tasks": tasks,
57
+ }
58
+
59
+ output_dir = output_dir or Path.cwd()
60
+ config_file = output_dir / f"{hostname}_{config_name}{suffix}"
61
+
62
+ try:
63
+ config_file.write_text(
64
+ yaml.dump(config_data, default_flow_style=False, allow_unicode=True, sort_keys=False),
65
+ encoding="utf-8",
66
+ )
67
+ console.print(f"[green]配置已保存到 {config_file.name}[/green]")
68
+ return config_file
69
+ except Exception as e:
70
+ console.print(f"[red]保存配置失败: {e}[/red]")
71
+ return None
72
+
73
+
74
+ def get_hostname_from_iamt_config() -> str:
75
+ """从 iamt.yaml 中获取第一个 hostname
76
+
77
+ Returns:
78
+ hostname 字符串,未找到返回空字符串
79
+ """
80
+ from ..client_config.client_config import ClientConfig
81
+
82
+ config = ClientConfig()
83
+ if not config.config_file.exists():
84
+ return ""
85
+
86
+ try:
87
+ config_data = yaml.safe_load(config.config_file.read_text(encoding="utf-8"))
88
+ return next(iter(config_data.get("hosts", {})), "")
89
+ except Exception:
90
+ return ""
@@ -0,0 +1,136 @@
1
+ """Task 调用追踪模块
2
+
3
+ 提供 Connection 包装类,用于追踪 role 执行过程中调用的 task 函数及其参数。
4
+ """
5
+
6
+ import functools
7
+ import importlib
8
+ import sys
9
+ from pathlib import Path
10
+ from typing import Any, Callable
11
+
12
+ from fabric import Connection, Task
13
+
14
+ from .config_saver import TaskCall
15
+
16
+
17
+ class TaskTracker:
18
+ """Task 调用追踪器
19
+
20
+ 通过 monkey-patch 模块中的 task 函数,记录 role 执行过程中的所有 task 调用。
21
+ """
22
+
23
+ def __init__(self):
24
+ self._calls: list[TaskCall] = []
25
+ self._patched: dict[str, dict[str, Any]] = {} # module_name -> {func_name -> original_func}
26
+
27
+ @property
28
+ def calls(self) -> list[TaskCall]:
29
+ """获取记录的 task 调用列表"""
30
+ return self._calls.copy()
31
+
32
+ def clear(self) -> None:
33
+ """清空调用记录"""
34
+ self._calls.clear()
35
+
36
+ def _get_task_name(self, func: Callable) -> str:
37
+ """从函数获取 task 名称 (格式: module.function)"""
38
+ module_name = func.__module__
39
+ func_name = func.__name__
40
+
41
+ # 从模块路径提取简短名称 (如 iamt.modules.docker.docker -> docker)
42
+ module_parts = module_name.split(".")
43
+ if "modules" in module_parts:
44
+ idx = module_parts.index("modules")
45
+ short_module = module_parts[idx + 1] if idx + 1 < len(module_parts) else module_parts[-1]
46
+ else:
47
+ short_module = module_parts[-1]
48
+
49
+ return f"{short_module}.{func_name}"
50
+
51
+ def _wrap_func(self, func: Callable, task_name: str) -> Callable:
52
+ """包装函数以追踪调用"""
53
+ tracker = self
54
+
55
+ @functools.wraps(func)
56
+ def wrapper(conn: Connection, *args: Any, **kwargs: Any) -> Any:
57
+ tracker._calls.append({
58
+ "task": task_name,
59
+ "args": kwargs.copy(),
60
+ })
61
+ return func(conn, *args, **kwargs)
62
+
63
+ return wrapper
64
+
65
+ def patch_module(self, module_name: str) -> None:
66
+ """Patch 指定模块中的所有 task 函数
67
+
68
+ Args:
69
+ module_name: 完整模块名 (如 iamt.modules.docker.docker)
70
+ """
71
+ if module_name in self._patched:
72
+ return
73
+
74
+ try:
75
+ module = importlib.import_module(module_name)
76
+ except ImportError:
77
+ return
78
+
79
+ self._patched[module_name] = {}
80
+
81
+ for name in dir(module):
82
+ obj = getattr(module, name)
83
+ # 检查是否是在该模块定义的函数且被 @task 装饰
84
+ if isinstance(obj, Task) and obj.body.__module__ == module_name:
85
+ original_func = obj.body
86
+ task_name = self._get_task_name(original_func)
87
+ wrapped = self._wrap_func(original_func, task_name)
88
+ # 保存原始函数
89
+ self._patched[module_name][name] = original_func
90
+ # 替换 Task 对象的 body
91
+ obj.body = wrapped
92
+
93
+ def unpatch_all(self) -> None:
94
+ """恢复所有被 patch 的函数"""
95
+ for module_name, funcs in self._patched.items():
96
+ try:
97
+ module = sys.modules.get(module_name)
98
+ if module is None:
99
+ continue
100
+ for name, original_func in funcs.items():
101
+ obj = getattr(module, name, None)
102
+ if isinstance(obj, Task):
103
+ obj.body = original_func
104
+ except Exception:
105
+ pass
106
+ self._patched.clear()
107
+
108
+ def patch_role_module(self, role_module_name: str) -> None:
109
+ """根据 role 所在模块,patch 相关的 task 模块
110
+
111
+ Args:
112
+ role_module_name: role 函数所在的模块名 (如 docker)
113
+ """
114
+ # region patch 该模块目录下所有非下划线开头的 py 文件
115
+ module_dir = Path(__file__).parent.parent / "modules" / role_module_name
116
+ if module_dir.exists():
117
+ for py_file in module_dir.glob("*.py"):
118
+ if py_file.name.startswith("_"):
119
+ continue
120
+ task_module = f"iamt.modules.{role_module_name}.{py_file.stem}"
121
+ self.patch_module(task_module)
122
+ # endregion
123
+
124
+ def patch_all_modules(self) -> None:
125
+ """Patch 所有 modules 目录下的 task 模块"""
126
+ modules_dir = Path(__file__).parent.parent / "modules"
127
+ for module_dir in modules_dir.iterdir():
128
+ if not module_dir.is_dir() or module_dir.name.startswith("_"):
129
+ continue
130
+ self.patch_role_module(module_dir.name)
131
+
132
+ def __enter__(self) -> "TaskTracker":
133
+ return self
134
+
135
+ def __exit__(self, *args: Any) -> None:
136
+ self.unpatch_all()
@@ -0,0 +1,19 @@
1
+ Metadata-Version: 2.3
2
+ Name: iamt
3
+ Version: 1.1.27
4
+ Summary: Add your description here
5
+ Author: lipanpan
6
+ Author-email: lipanpan <lipanpanmail@163.com>
7
+ Requires-Dist: fabric>=3.2.2
8
+ Requires-Dist: fire>=0.7.1
9
+ Requires-Dist: gitpython>=3.1.46
10
+ Requires-Dist: jinja2>=3.1.6
11
+ Requires-Dist: prompt-toolkit>=3.0.52
12
+ Requires-Dist: pyperclip>=1.11.0
13
+ Requires-Dist: pyyaml>=6.0.3
14
+ Requires-Dist: questionary>=2.1.1
15
+ Requires-Dist: rich>=14.2.0
16
+ Requires-Dist: toml>=0.10.2
17
+ Requires-Python: ~=3.13.0
18
+ Description-Content-Type: text/markdown
19
+