model-compose 0.4.29__tar.gz → 0.4.30__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 (454) hide show
  1. {model_compose-0.4.29/src/model_compose.egg-info → model_compose-0.4.30}/PKG-INFO +5 -1
  2. {model_compose-0.4.29 → model_compose-0.4.30}/README.md +3 -0
  3. {model_compose-0.4.29 → model_compose-0.4.30}/pyproject.toml +3 -2
  4. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/core/component/base.py +51 -27
  5. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/core/component/runtime/process_manager.py +1 -8
  6. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/core/component/runtime/process_worker.py +8 -13
  7. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/core/component/services/__init__.py +1 -0
  8. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/core/component/services/agent.py +22 -3
  9. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/core/component/services/datasets/datasets.py +9 -2
  10. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/core/component/services/datasets/providers/common.py +2 -1
  11. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/core/component/services/datasets/providers/huggingface.py +2 -1
  12. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/core/component/services/datasets/providers/local.py +2 -1
  13. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/core/component/services/http_client.py +9 -2
  14. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/core/component/services/http_server.py +7 -4
  15. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/core/component/services/image_processor.py +21 -3
  16. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/core/component/services/mcp_client.py +7 -1
  17. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/core/component/services/mcp_server.py +7 -4
  18. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/core/component/services/model/base/common.py +6 -1
  19. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/core/component/services/model/model.py +9 -2
  20. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/core/component/services/model/tasks/chat_completion/huggingface.py +13 -2
  21. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/core/component/services/model/tasks/face_embedding/insightface.py +6 -4
  22. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/core/component/services/model/tasks/image_generation/flux.py +12 -2
  23. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/core/component/services/model/tasks/image_generation/hunyuan_image.py +12 -2
  24. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/core/component/services/model/tasks/image_generation/sdxl.py +12 -2
  25. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/core/component/services/model/tasks/image_to_text/huggingface.py +13 -2
  26. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/core/component/services/model/tasks/image_upscale/esrgan.py +12 -2
  27. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/core/component/services/model/tasks/image_upscale/ldsr.py +12 -2
  28. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/core/component/services/model/tasks/image_upscale/real_esrgan.py +12 -2
  29. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/core/component/services/model/tasks/image_upscale/swinir.py +12 -2
  30. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/core/component/services/model/tasks/text_classification/huggingface.py +18 -3
  31. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/core/component/services/model/tasks/text_embedding/huggingface.py +13 -2
  32. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/core/component/services/model/tasks/text_generation/huggingface.py +13 -2
  33. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/core/component/services/model/tasks/text_to_speech/qwen.py +6 -1
  34. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/core/component/services/shell.py +20 -3
  35. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/core/component/services/text_splitter.py +7 -1
  36. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/core/component/services/vector_store/vector_store.py +9 -2
  37. model_compose-0.4.30/src/mindor/core/component/services/video_scene_detector/__init__.py +1 -0
  38. model_compose-0.4.30/src/mindor/core/component/services/video_scene_detector/base.py +31 -0
  39. model_compose-0.4.30/src/mindor/core/component/services/video_scene_detector/drivers/__init__.py +3 -0
  40. model_compose-0.4.30/src/mindor/core/component/services/video_scene_detector/drivers/ffmpeg.py +147 -0
  41. model_compose-0.4.30/src/mindor/core/component/services/video_scene_detector/drivers/pyscenedetect.py +97 -0
  42. model_compose-0.4.30/src/mindor/core/component/services/video_scene_detector/drivers/transnetv2.py +103 -0
  43. model_compose-0.4.30/src/mindor/core/component/services/video_scene_detector/video_scene_detector.py +47 -0
  44. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/core/component/services/web_browser.py +7 -1
  45. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/core/component/services/web_scraper.py +14 -2
  46. model_compose-0.4.30/src/mindor/core/component/services/workflow.py +30 -0
  47. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/core/compose/manager.py +8 -2
  48. model_compose-0.4.30/src/mindor/core/controller/adapters/__init__.py +1 -0
  49. model_compose-0.4.30/src/mindor/core/controller/adapters/adapter.py +16 -0
  50. model_compose-0.4.30/src/mindor/core/controller/adapters/base.py +23 -0
  51. {model_compose-0.4.29/src/mindor/core/controller → model_compose-0.4.30/src/mindor/core/controller/adapters}/services/__init__.py +1 -0
  52. {model_compose-0.4.29/src/mindor/core/controller → model_compose-0.4.30/src/mindor/core/controller/adapters}/services/http_server.py +39 -42
  53. {model_compose-0.4.29/src/mindor/core/controller → model_compose-0.4.30/src/mindor/core/controller/adapters}/services/mcp_server.py +28 -25
  54. model_compose-0.4.30/src/mindor/core/controller/adapters/services/queue_subscriber/__init__.py +1 -0
  55. model_compose-0.4.30/src/mindor/core/controller/adapters/services/queue_subscriber/base.py +29 -0
  56. model_compose-0.4.30/src/mindor/core/controller/adapters/services/queue_subscriber/drivers/__init__.py +1 -0
  57. model_compose-0.4.30/src/mindor/core/controller/adapters/services/queue_subscriber/drivers/redis.py +192 -0
  58. model_compose-0.4.30/src/mindor/core/controller/adapters/services/queue_subscriber/queue_subscriber.py +35 -0
  59. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/core/controller/base.py +104 -38
  60. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/core/controller/controller.py +3 -8
  61. model_compose-0.4.30/src/mindor/core/controller/queue/__init__.py +1 -0
  62. model_compose-0.4.30/src/mindor/core/controller/queue/base.py +56 -0
  63. model_compose-0.4.30/src/mindor/core/controller/queue/drivers/__init__.py +1 -0
  64. model_compose-0.4.30/src/mindor/core/controller/queue/drivers/redis.py +159 -0
  65. model_compose-0.4.30/src/mindor/core/controller/queue/queue.py +35 -0
  66. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/core/controller/runner/client.py +3 -3
  67. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/core/controller/runner/http_client.py +6 -6
  68. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/core/controller/runner/mcp_client.py +10 -4
  69. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/core/controller/runner/runner.py +10 -9
  70. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/core/controller/runtime/docker/docker.py +11 -7
  71. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/core/controller/webui/gradio.py +31 -5
  72. model_compose-0.4.30/src/mindor/core/errors.py +3 -0
  73. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/core/foundation/async_service.py +2 -4
  74. model_compose-0.4.30/src/mindor/core/foundation/compat/asyncio.py +8 -0
  75. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/core/foundation/ipc_messages.py +1 -1
  76. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/core/foundation/process_manager.py +4 -9
  77. model_compose-0.4.30/src/mindor/core/foundation/process_worker.py +102 -0
  78. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/core/gateway/services/http_tunnel/drivers/cloudflare.py +4 -3
  79. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/core/gateway/services/ssh_tunnel.py +0 -3
  80. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/core/listener/services/http_callback.py +9 -2
  81. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/core/listener/services/http_trigger.py +10 -2
  82. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/core/runtime/docker/docker.py +19 -17
  83. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/core/utils/http_client.py +2 -1
  84. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/core/utils/http_response.py +2 -1
  85. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/core/utils/image.py +2 -1
  86. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/core/utils/mcp_client.py +8 -2
  87. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/core/utils/renderers.py +5 -4
  88. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/core/utils/streaming.py +8 -2
  89. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/core/utils/work_queue.py +4 -3
  90. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/core/workflow/context.py +12 -3
  91. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/core/workflow/schema.py +46 -9
  92. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/core/workflow/tool.py +14 -2
  93. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/core/workflow/workflow.py +18 -6
  94. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/dsl/loader.py +6 -1
  95. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/dsl/schema/action/action.py +2 -1
  96. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/dsl/schema/action/impl/__init__.py +1 -0
  97. model_compose-0.4.30/src/mindor/dsl/schema/action/impl/video_scene_detector.py +18 -0
  98. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/dsl/schema/component/component.py +2 -1
  99. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/dsl/schema/component/impl/__init__.py +1 -0
  100. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/dsl/schema/component/impl/types.py +1 -0
  101. model_compose-0.4.30/src/mindor/dsl/schema/component/impl/video_scene_detector.py +15 -0
  102. model_compose-0.4.30/src/mindor/dsl/schema/controller/__init__.py +3 -0
  103. model_compose-0.4.30/src/mindor/dsl/schema/controller/adapter/__init__.py +3 -0
  104. model_compose-0.4.30/src/mindor/dsl/schema/controller/adapter/adapter.py +12 -0
  105. model_compose-0.4.30/src/mindor/dsl/schema/controller/adapter/common.py +9 -0
  106. {model_compose-0.4.29/src/mindor/dsl/schema/controller → model_compose-0.4.30/src/mindor/dsl/schema/controller/adapter}/impl/__init__.py +2 -1
  107. model_compose-0.4.30/src/mindor/dsl/schema/controller/adapter/impl/http_server.py +8 -0
  108. model_compose-0.4.30/src/mindor/dsl/schema/controller/adapter/impl/mcp_server.py +7 -0
  109. model_compose-0.4.30/src/mindor/dsl/schema/controller/adapter/impl/queue_subscriber/__init__.py +1 -0
  110. model_compose-0.4.30/src/mindor/dsl/schema/controller/adapter/impl/queue_subscriber/impl/__init__.py +2 -0
  111. model_compose-0.4.30/src/mindor/dsl/schema/controller/adapter/impl/queue_subscriber/impl/common.py +24 -0
  112. model_compose-0.4.30/src/mindor/dsl/schema/controller/adapter/impl/queue_subscriber/impl/redis.py +19 -0
  113. model_compose-0.4.30/src/mindor/dsl/schema/controller/adapter/impl/queue_subscriber/queue_subscriber.py +10 -0
  114. model_compose-0.4.30/src/mindor/dsl/schema/controller/adapter/impl/types.py +6 -0
  115. model_compose-0.4.29/src/mindor/dsl/schema/controller/impl/common.py → model_compose-0.4.30/src/mindor/dsl/schema/controller/controller.py +14 -4
  116. model_compose-0.4.30/src/mindor/dsl/schema/controller/queue/__init__.py +1 -0
  117. model_compose-0.4.30/src/mindor/dsl/schema/controller/queue/impl/__init__.py +2 -0
  118. model_compose-0.4.30/src/mindor/dsl/schema/controller/queue/impl/common.py +11 -0
  119. model_compose-0.4.30/src/mindor/dsl/schema/controller/queue/impl/redis.py +18 -0
  120. model_compose-0.4.30/src/mindor/dsl/schema/controller/queue/queue.py +10 -0
  121. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/dsl/schema/gateway/impl/ssh_tunnel.py +2 -2
  122. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/dsl/schema/runtime/impl/docker.py +10 -2
  123. model_compose-0.4.30/src/mindor/dsl/schema/transport/__init__.py +0 -0
  124. model_compose-0.4.30/src/mindor/dsl/utils/__init__.py +0 -0
  125. {model_compose-0.4.29 → model_compose-0.4.30/src/model_compose.egg-info}/PKG-INFO +5 -1
  126. {model_compose-0.4.29 → model_compose-0.4.30}/src/model_compose.egg-info/SOURCES.txt +46 -8
  127. {model_compose-0.4.29 → model_compose-0.4.30}/src/model_compose.egg-info/requires.txt +3 -0
  128. model_compose-0.4.29/src/mindor/core/component/services/workflow.py +0 -33
  129. model_compose-0.4.29/src/mindor/core/foundation/process_worker.py +0 -143
  130. model_compose-0.4.29/src/mindor/dsl/schema/controller/__init__.py +0 -1
  131. model_compose-0.4.29/src/mindor/dsl/schema/controller/controller.py +0 -11
  132. model_compose-0.4.29/src/mindor/dsl/schema/controller/impl/http_server.py +0 -11
  133. model_compose-0.4.29/src/mindor/dsl/schema/controller/impl/mcp_server.py +0 -10
  134. model_compose-0.4.29/src/mindor/dsl/schema/controller/impl/types.py +0 -5
  135. {model_compose-0.4.29 → model_compose-0.4.30}/LICENSE +0 -0
  136. {model_compose-0.4.29 → model_compose-0.4.30}/setup.cfg +0 -0
  137. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/__init__.py +0 -0
  138. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/cli/__init__.py +0 -0
  139. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/cli/compose.py +0 -0
  140. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/cli/interrupt.py +0 -0
  141. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/core/__init__.py +0 -0
  142. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/core/component/__init__.py +0 -0
  143. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/core/component/component.py +0 -0
  144. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/core/component/context.py +0 -0
  145. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/core/component/runtime/__init__.py +0 -0
  146. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/core/component/services/datasets/__init__.py +0 -0
  147. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/core/component/services/datasets/providers/__init__.py +0 -0
  148. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/core/component/services/datasets/utils.py +0 -0
  149. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/core/component/services/model/__init__.py +0 -0
  150. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/core/component/services/model/base/__init__.py +0 -0
  151. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/core/component/services/model/base/huggingface.py +0 -0
  152. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/core/component/services/model/base/huggingface_hub.py +0 -0
  153. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/core/component/services/model/base/unsloth.py +0 -0
  154. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/core/component/services/model/tasks/__init__.py +0 -0
  155. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/core/component/services/model/tasks/chat_completion/__init__.py +0 -0
  156. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/core/component/services/model/tasks/face_embedding/__init__.py +0 -0
  157. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/core/component/services/model/tasks/face_embedding/common.py +0 -0
  158. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/core/component/services/model/tasks/face_embedding/custom.py +0 -0
  159. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/core/component/services/model/tasks/image_generation/__init__.py +0 -0
  160. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/core/component/services/model/tasks/image_generation/common.py +0 -0
  161. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/core/component/services/model/tasks/image_generation/custom.py +0 -0
  162. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/core/component/services/model/tasks/image_to_text/__init__.py +0 -0
  163. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/core/component/services/model/tasks/image_upscale/__init__.py +0 -0
  164. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/core/component/services/model/tasks/image_upscale/common.py +0 -0
  165. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/core/component/services/model/tasks/image_upscale/custom.py +0 -0
  166. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/core/component/services/model/tasks/text_classification/__init__.py +0 -0
  167. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/core/component/services/model/tasks/text_embedding/__init__.py +0 -0
  168. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/core/component/services/model/tasks/text_generation/__init__.py +0 -0
  169. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/core/component/services/model/tasks/text_to_speech/__init__.py +0 -0
  170. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/core/component/services/model/tasks/text_to_speech/common.py +0 -0
  171. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/core/component/services/model/tasks/text_to_speech/custom.py +0 -0
  172. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/core/component/services/vector_store/__init__.py +0 -0
  173. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/core/component/services/vector_store/base.py +0 -0
  174. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/core/component/services/vector_store/drivers/__init__.py +0 -0
  175. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/core/component/services/vector_store/drivers/chroma.py +0 -0
  176. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/core/component/services/vector_store/drivers/milvus.py +0 -0
  177. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/core/compose/__init__.py +0 -0
  178. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/core/compose/compose.py +0 -0
  179. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/core/compose/validator.py +0 -0
  180. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/core/controller/__init__.py +0 -0
  181. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/core/controller/runner/__init__.py +0 -0
  182. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/core/controller/runtime/__init__.py +0 -0
  183. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/core/controller/runtime/docker/__init__.py +0 -0
  184. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/core/controller/runtime/docker/context/Dockerfile +0 -0
  185. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/core/controller/runtime/native/__init__.py +0 -0
  186. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/core/controller/runtime/native/native.py +0 -0
  187. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/core/controller/runtime/specs.py +0 -0
  188. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/core/controller/webui/__init__.py +0 -0
  189. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/core/controller/webui/webui.py +0 -0
  190. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/core/evaluator/__init__.py +0 -0
  191. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/core/evaluator/condition.py +0 -0
  192. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/core/foundation/__init__.py +0 -0
  193. {model_compose-0.4.29/src/mindor/core/runtime → model_compose-0.4.30/src/mindor/core/foundation/compat}/__init__.py +0 -0
  194. {model_compose-0.4.29/src/mindor/core/utils → model_compose-0.4.30/src/mindor/core/foundation}/package.py +0 -0
  195. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/core/gateway/__init__.py +0 -0
  196. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/core/gateway/base.py +0 -0
  197. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/core/gateway/gateway.py +0 -0
  198. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/core/gateway/services/__init__.py +0 -0
  199. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/core/gateway/services/http_tunnel/__init__.py +0 -0
  200. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/core/gateway/services/http_tunnel/base.py +0 -0
  201. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/core/gateway/services/http_tunnel/drivers/__init__.py +0 -0
  202. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/core/gateway/services/http_tunnel/drivers/ngrok.py +0 -0
  203. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/core/gateway/services/http_tunnel/http_tunnel.py +0 -0
  204. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/core/listener/__init__.py +0 -0
  205. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/core/listener/base.py +0 -0
  206. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/core/listener/listener.py +0 -0
  207. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/core/listener/services/__init__.py +0 -0
  208. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/core/logger/__init__.py +0 -0
  209. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/core/logger/base.py +0 -0
  210. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/core/logger/logger.py +0 -0
  211. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/core/logger/logging.py +0 -0
  212. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/core/logger/services/__init__.py +0 -0
  213. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/core/logger/services/console.py +0 -0
  214. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/core/logger/services/file.py +0 -0
  215. {model_compose-0.4.29/src/mindor/core/utils → model_compose-0.4.30/src/mindor/core/runtime}/__init__.py +0 -0
  216. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/core/runtime/docker/__init__.py +0 -0
  217. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/core/runtime/env.py +0 -0
  218. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/core/system/__init__.py +0 -0
  219. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/core/system/base.py +0 -0
  220. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/core/system/services/__init__.py +0 -0
  221. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/core/system/services/docker_compose.py +0 -0
  222. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/core/system/system.py +0 -0
  223. {model_compose-0.4.29/src/mindor/dsl → model_compose-0.4.30/src/mindor/core/utils}/__init__.py +0 -0
  224. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/core/utils/active_counter.py +0 -0
  225. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/core/utils/caching.py +0 -0
  226. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/core/utils/cdp_client.py +0 -0
  227. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/core/utils/http_request.py +0 -0
  228. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/core/utils/http_status.py +0 -0
  229. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/core/utils/resolvers.py +0 -0
  230. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/core/utils/shell.py +0 -0
  231. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/core/utils/ssh_client.py +0 -0
  232. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/core/utils/streamer.py +0 -0
  233. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/core/utils/time.py +0 -0
  234. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/core/utils/url.py +0 -0
  235. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/core/utils/websocket_client.py +0 -0
  236. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/core/workflow/__init__.py +0 -0
  237. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/core/workflow/interrupt.py +0 -0
  238. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/core/workflow/job/__init__.py +0 -0
  239. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/core/workflow/job/base.py +0 -0
  240. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/core/workflow/job/impl/__init__.py +0 -0
  241. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/core/workflow/job/impl/component.py +0 -0
  242. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/core/workflow/job/impl/delay.py +0 -0
  243. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/core/workflow/job/impl/filter.py +0 -0
  244. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/core/workflow/job/impl/if_.py +0 -0
  245. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/core/workflow/job/impl/random_router.py +0 -0
  246. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/core/workflow/job/impl/switch.py +0 -0
  247. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/core/workflow/job/job.py +0 -0
  248. {model_compose-0.4.29/src/mindor/dsl/schema → model_compose-0.4.30/src/mindor/dsl}/__init__.py +0 -0
  249. {model_compose-0.4.29/src/mindor/dsl/schema/transport → model_compose-0.4.30/src/mindor/dsl/schema}/__init__.py +0 -0
  250. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/dsl/schema/action/__init__.py +0 -0
  251. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/dsl/schema/action/impl/agent.py +0 -0
  252. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/dsl/schema/action/impl/common.py +0 -0
  253. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/dsl/schema/action/impl/datasets/__init__.py +0 -0
  254. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/dsl/schema/action/impl/datasets/common.py +0 -0
  255. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/dsl/schema/action/impl/datasets/datasets.py +0 -0
  256. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/dsl/schema/action/impl/datasets/providers/__init__.py +0 -0
  257. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/dsl/schema/action/impl/datasets/providers/common.py +0 -0
  258. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/dsl/schema/action/impl/datasets/providers/huggingface.py +0 -0
  259. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/dsl/schema/action/impl/datasets/providers/local.py +0 -0
  260. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/dsl/schema/action/impl/http_client.py +0 -0
  261. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/dsl/schema/action/impl/http_server.py +0 -0
  262. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/dsl/schema/action/impl/image_processor.py +0 -0
  263. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/dsl/schema/action/impl/mcp_client.py +0 -0
  264. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/dsl/schema/action/impl/mcp_server.py +0 -0
  265. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/dsl/schema/action/impl/model/__init__.py +0 -0
  266. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/dsl/schema/action/impl/model/impl/__init__.py +0 -0
  267. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/dsl/schema/action/impl/model/impl/chat_completion.py +0 -0
  268. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/dsl/schema/action/impl/model/impl/common.py +0 -0
  269. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/dsl/schema/action/impl/model/impl/face_embedding/__init__.py +0 -0
  270. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/dsl/schema/action/impl/model/impl/face_embedding/face_embedding.py +0 -0
  271. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/dsl/schema/action/impl/model/impl/face_embedding/impl/__init__.py +0 -0
  272. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/dsl/schema/action/impl/model/impl/face_embedding/impl/common.py +0 -0
  273. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/dsl/schema/action/impl/model/impl/face_embedding/impl/dlib.py +0 -0
  274. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/dsl/schema/action/impl/model/impl/face_embedding/impl/facenet.py +0 -0
  275. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/dsl/schema/action/impl/model/impl/face_embedding/impl/insightface.py +0 -0
  276. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/dsl/schema/action/impl/model/impl/image_generation/__init__.py +0 -0
  277. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/dsl/schema/action/impl/model/impl/image_generation/image_generation.py +0 -0
  278. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/dsl/schema/action/impl/model/impl/image_generation/impl/__init__.py +0 -0
  279. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/dsl/schema/action/impl/model/impl/image_generation/impl/common.py +0 -0
  280. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/dsl/schema/action/impl/model/impl/image_generation/impl/flux.py +0 -0
  281. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/dsl/schema/action/impl/model/impl/image_generation/impl/hunyuan_image.py +0 -0
  282. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/dsl/schema/action/impl/model/impl/image_generation/impl/sdxl.py +0 -0
  283. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/dsl/schema/action/impl/model/impl/image_to_text.py +0 -0
  284. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/dsl/schema/action/impl/model/impl/image_upscale/__init__.py +0 -0
  285. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/dsl/schema/action/impl/model/impl/image_upscale/image_upscale.py +0 -0
  286. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/dsl/schema/action/impl/model/impl/image_upscale/impl/__init__.py +0 -0
  287. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/dsl/schema/action/impl/model/impl/image_upscale/impl/common.py +0 -0
  288. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/dsl/schema/action/impl/model/impl/image_upscale/impl/esrgan.py +0 -0
  289. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/dsl/schema/action/impl/model/impl/image_upscale/impl/ldsr.py +0 -0
  290. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/dsl/schema/action/impl/model/impl/image_upscale/impl/real_esrgan.py +0 -0
  291. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/dsl/schema/action/impl/model/impl/image_upscale/impl/swinir.py +0 -0
  292. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/dsl/schema/action/impl/model/impl/text_classification.py +0 -0
  293. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/dsl/schema/action/impl/model/impl/text_embedding.py +0 -0
  294. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/dsl/schema/action/impl/model/impl/text_generation.py +0 -0
  295. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/dsl/schema/action/impl/model/impl/text_to_speech/__init__.py +0 -0
  296. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/dsl/schema/action/impl/model/impl/text_to_speech/impl/__init__.py +0 -0
  297. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/dsl/schema/action/impl/model/impl/text_to_speech/impl/common.py +0 -0
  298. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/dsl/schema/action/impl/model/impl/text_to_speech/impl/qwen.py +0 -0
  299. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/dsl/schema/action/impl/model/impl/text_to_speech/text_to_speech.py +0 -0
  300. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/dsl/schema/action/impl/model/model.py +0 -0
  301. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/dsl/schema/action/impl/model_trainer/__init__.py +0 -0
  302. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/dsl/schema/action/impl/model_trainer/impl/__init__.py +0 -0
  303. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/dsl/schema/action/impl/model_trainer/impl/classification.py +0 -0
  304. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/dsl/schema/action/impl/model_trainer/impl/common.py +0 -0
  305. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/dsl/schema/action/impl/model_trainer/impl/sft.py +0 -0
  306. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/dsl/schema/action/impl/model_trainer/model_trainer.py +0 -0
  307. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/dsl/schema/action/impl/shell.py +0 -0
  308. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/dsl/schema/action/impl/text_splitter.py +0 -0
  309. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/dsl/schema/action/impl/vector_store/__init__.py +0 -0
  310. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/dsl/schema/action/impl/vector_store/impl/__init__.py +0 -0
  311. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/dsl/schema/action/impl/vector_store/impl/chroma.py +0 -0
  312. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/dsl/schema/action/impl/vector_store/impl/common.py +0 -0
  313. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/dsl/schema/action/impl/vector_store/impl/faiss.py +0 -0
  314. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/dsl/schema/action/impl/vector_store/impl/milvus.py +0 -0
  315. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/dsl/schema/action/impl/vector_store/impl/qdrant.py +0 -0
  316. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/dsl/schema/action/impl/vector_store/vector_store.py +0 -0
  317. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/dsl/schema/action/impl/web_browser.py +0 -0
  318. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/dsl/schema/action/impl/web_scraper.py +0 -0
  319. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/dsl/schema/action/impl/workflow.py +0 -0
  320. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/dsl/schema/component/__init__.py +0 -0
  321. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/dsl/schema/component/impl/agent.py +0 -0
  322. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/dsl/schema/component/impl/common.py +0 -0
  323. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/dsl/schema/component/impl/datasets/__init__.py +0 -0
  324. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/dsl/schema/component/impl/datasets/datasets.py +0 -0
  325. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/dsl/schema/component/impl/http_client.py +0 -0
  326. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/dsl/schema/component/impl/http_server.py +0 -0
  327. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/dsl/schema/component/impl/image_processor.py +0 -0
  328. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/dsl/schema/component/impl/mcp_client.py +0 -0
  329. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/dsl/schema/component/impl/mcp_server.py +0 -0
  330. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/dsl/schema/component/impl/model/__init__.py +0 -0
  331. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/dsl/schema/component/impl/model/impl/__init__.py +0 -0
  332. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/dsl/schema/component/impl/model/impl/chat_completion.py +0 -0
  333. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/dsl/schema/component/impl/model/impl/common.py +0 -0
  334. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/dsl/schema/component/impl/model/impl/face_embedding/__init__.py +0 -0
  335. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/dsl/schema/component/impl/model/impl/face_embedding/face_embedding.py +0 -0
  336. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/dsl/schema/component/impl/model/impl/face_embedding/impl/__init__.py +0 -0
  337. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/dsl/schema/component/impl/model/impl/face_embedding/impl/common.py +0 -0
  338. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/dsl/schema/component/impl/model/impl/face_embedding/impl/dlib.py +0 -0
  339. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/dsl/schema/component/impl/model/impl/face_embedding/impl/facenet.py +0 -0
  340. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/dsl/schema/component/impl/model/impl/face_embedding/impl/insightface.py +0 -0
  341. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/dsl/schema/component/impl/model/impl/image_generation/__init__.py +0 -0
  342. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/dsl/schema/component/impl/model/impl/image_generation/image_generation.py +0 -0
  343. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/dsl/schema/component/impl/model/impl/image_generation/impl/__init__.py +0 -0
  344. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/dsl/schema/component/impl/model/impl/image_generation/impl/common.py +0 -0
  345. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/dsl/schema/component/impl/model/impl/image_generation/impl/flux.py +0 -0
  346. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/dsl/schema/component/impl/model/impl/image_generation/impl/hunyuan_image.py +0 -0
  347. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/dsl/schema/component/impl/model/impl/image_generation/impl/sdxl.py +0 -0
  348. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/dsl/schema/component/impl/model/impl/image_to_text.py +0 -0
  349. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/dsl/schema/component/impl/model/impl/image_upscale/__init__.py +0 -0
  350. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/dsl/schema/component/impl/model/impl/image_upscale/image_upscale.py +0 -0
  351. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/dsl/schema/component/impl/model/impl/image_upscale/impl/__init__.py +0 -0
  352. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/dsl/schema/component/impl/model/impl/image_upscale/impl/common.py +0 -0
  353. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/dsl/schema/component/impl/model/impl/image_upscale/impl/esrgan.py +0 -0
  354. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/dsl/schema/component/impl/model/impl/image_upscale/impl/ldsr.py +0 -0
  355. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/dsl/schema/component/impl/model/impl/image_upscale/impl/real_esrgan.py +0 -0
  356. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/dsl/schema/component/impl/model/impl/image_upscale/impl/swinir.py +0 -0
  357. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/dsl/schema/component/impl/model/impl/text_classification.py +0 -0
  358. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/dsl/schema/component/impl/model/impl/text_embedding.py +0 -0
  359. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/dsl/schema/component/impl/model/impl/text_generation.py +0 -0
  360. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/dsl/schema/component/impl/model/impl/text_to_speech/__init__.py +0 -0
  361. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/dsl/schema/component/impl/model/impl/text_to_speech/impl/__init__.py +0 -0
  362. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/dsl/schema/component/impl/model/impl/text_to_speech/impl/common.py +0 -0
  363. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/dsl/schema/component/impl/model/impl/text_to_speech/impl/qwen.py +0 -0
  364. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/dsl/schema/component/impl/model/impl/text_to_speech/text_to_speech.py +0 -0
  365. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/dsl/schema/component/impl/model/model.py +0 -0
  366. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/dsl/schema/component/impl/model_trainer/__init__.py +0 -0
  367. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/dsl/schema/component/impl/model_trainer/impl/__init__.py +0 -0
  368. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/dsl/schema/component/impl/model_trainer/impl/classification.py +0 -0
  369. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/dsl/schema/component/impl/model_trainer/impl/common.py +0 -0
  370. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/dsl/schema/component/impl/model_trainer/impl/sft.py +0 -0
  371. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/dsl/schema/component/impl/model_trainer/model_trainer.py +0 -0
  372. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/dsl/schema/component/impl/shell.py +0 -0
  373. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/dsl/schema/component/impl/text_splitter.py +0 -0
  374. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/dsl/schema/component/impl/vector_store/__init__.py +0 -0
  375. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/dsl/schema/component/impl/vector_store/impl/__init__.py +0 -0
  376. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/dsl/schema/component/impl/vector_store/impl/chroma.py +0 -0
  377. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/dsl/schema/component/impl/vector_store/impl/common.py +0 -0
  378. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/dsl/schema/component/impl/vector_store/impl/faiss.py +0 -0
  379. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/dsl/schema/component/impl/vector_store/impl/milvus.py +0 -0
  380. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/dsl/schema/component/impl/vector_store/impl/qdrant.py +0 -0
  381. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/dsl/schema/component/impl/vector_store/vector_store.py +0 -0
  382. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/dsl/schema/component/impl/web_browser.py +0 -0
  383. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/dsl/schema/component/impl/web_scraper.py +0 -0
  384. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/dsl/schema/component/impl/workflow.py +0 -0
  385. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/dsl/schema/compose.py +0 -0
  386. {model_compose-0.4.29/src/mindor/dsl/utils → model_compose-0.4.30/src/mindor/dsl/schema/controller/impl}/__init__.py +0 -0
  387. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/dsl/schema/controller/webui/__init__.py +0 -0
  388. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/dsl/schema/controller/webui/impl/__init__.py +0 -0
  389. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/dsl/schema/controller/webui/impl/common.py +0 -0
  390. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/dsl/schema/controller/webui/impl/dynamic.py +0 -0
  391. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/dsl/schema/controller/webui/impl/gradio.py +0 -0
  392. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/dsl/schema/controller/webui/impl/static.py +0 -0
  393. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/dsl/schema/controller/webui/webui.py +0 -0
  394. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/dsl/schema/gateway/__init__.py +0 -0
  395. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/dsl/schema/gateway/gateway.py +0 -0
  396. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/dsl/schema/gateway/impl/__init__.py +0 -0
  397. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/dsl/schema/gateway/impl/common.py +0 -0
  398. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/dsl/schema/gateway/impl/http_tunnel/__init__.py +0 -0
  399. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/dsl/schema/gateway/impl/http_tunnel/http_tunnel.py +0 -0
  400. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/dsl/schema/gateway/impl/http_tunnel/impl/__init__.py +0 -0
  401. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/dsl/schema/gateway/impl/http_tunnel/impl/cloudflare.py +0 -0
  402. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/dsl/schema/gateway/impl/http_tunnel/impl/common.py +0 -0
  403. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/dsl/schema/gateway/impl/http_tunnel/impl/ngrok.py +0 -0
  404. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/dsl/schema/gateway/impl/types.py +0 -0
  405. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/dsl/schema/job/__init__.py +0 -0
  406. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/dsl/schema/job/impl/__init__.py +0 -0
  407. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/dsl/schema/job/impl/common.py +0 -0
  408. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/dsl/schema/job/impl/component.py +0 -0
  409. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/dsl/schema/job/impl/delay.py +0 -0
  410. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/dsl/schema/job/impl/filter.py +0 -0
  411. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/dsl/schema/job/impl/if_.py +0 -0
  412. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/dsl/schema/job/impl/random_router.py +0 -0
  413. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/dsl/schema/job/impl/switch.py +0 -0
  414. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/dsl/schema/job/impl/types.py +0 -0
  415. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/dsl/schema/job/job.py +0 -0
  416. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/dsl/schema/listener/__init__.py +0 -0
  417. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/dsl/schema/listener/impl/__init__.py +0 -0
  418. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/dsl/schema/listener/impl/common.py +0 -0
  419. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/dsl/schema/listener/impl/http_callback.py +0 -0
  420. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/dsl/schema/listener/impl/http_trigger.py +0 -0
  421. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/dsl/schema/listener/impl/types.py +0 -0
  422. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/dsl/schema/listener/listener.py +0 -0
  423. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/dsl/schema/logger/__init__.py +0 -0
  424. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/dsl/schema/logger/impl/__init__.py +0 -0
  425. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/dsl/schema/logger/impl/common.py +0 -0
  426. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/dsl/schema/logger/impl/console.py +0 -0
  427. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/dsl/schema/logger/impl/file.py +0 -0
  428. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/dsl/schema/logger/impl/types.py +0 -0
  429. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/dsl/schema/logger/logger.py +0 -0
  430. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/dsl/schema/operator/__init__.py +0 -0
  431. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/dsl/schema/operator/condition.py +0 -0
  432. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/dsl/schema/runtime/__init__.py +0 -0
  433. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/dsl/schema/runtime/impl/__init__.py +0 -0
  434. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/dsl/schema/runtime/impl/common.py +0 -0
  435. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/dsl/schema/runtime/impl/embedded.py +0 -0
  436. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/dsl/schema/runtime/impl/native.py +0 -0
  437. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/dsl/schema/runtime/impl/process.py +0 -0
  438. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/dsl/schema/runtime/impl/types.py +0 -0
  439. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/dsl/schema/runtime/runtime.py +0 -0
  440. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/dsl/schema/system/__init__.py +0 -0
  441. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/dsl/schema/system/impl/__init__.py +0 -0
  442. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/dsl/schema/system/impl/common.py +0 -0
  443. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/dsl/schema/system/impl/docker_compose.py +0 -0
  444. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/dsl/schema/system/impl/types.py +0 -0
  445. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/dsl/schema/system/system.py +0 -0
  446. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/dsl/schema/transport/http.py +0 -0
  447. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/dsl/schema/transport/ssh.py +0 -0
  448. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/dsl/schema/workflow.py +0 -0
  449. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/dsl/utils/enum.py +0 -0
  450. {model_compose-0.4.29 → model_compose-0.4.30}/src/mindor/dsl/utils/path.py +0 -0
  451. {model_compose-0.4.29 → model_compose-0.4.30}/src/model_compose.egg-info/dependency_links.txt +0 -0
  452. {model_compose-0.4.29 → model_compose-0.4.30}/src/model_compose.egg-info/entry_points.txt +0 -0
  453. {model_compose-0.4.29 → model_compose-0.4.30}/src/model_compose.egg-info/top_level.txt +0 -0
  454. {model_compose-0.4.29 → model_compose-0.4.30}/tests/test_cli.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: model-compose
3
- Version: 0.4.29
3
+ Version: 0.4.30
4
4
  Summary: model-compose: Declarative AI Workflow Orchestrator
5
5
  Author-email: Hanyeol Cho <hanyeol.cho@gmail.com>
6
6
  License-Expression: MIT
@@ -23,6 +23,7 @@ Requires-Dist: gradio>=6.0.0
23
23
  Requires-Dist: Pillow
24
24
  Requires-Dist: beautifulsoup4
25
25
  Requires-Dist: lxml
26
+ Requires-Dist: async_timeout>=4.0; python_version < "3.11"
26
27
  Dynamic: license-file
27
28
 
28
29
  <div align="center">
@@ -81,6 +82,9 @@ Build multi-step pipelines with conditional logic, data transformation, and para
81
82
  ### 🚀 **Production-Ready Deployment**
82
83
  Deploy as HTTP REST API or MCP (Model Context Protocol) server by changing one line. Includes concurrency control, health checks, and automatic API documentation.
83
84
 
85
+ ### 📡 **Distributed Workflow Execution**
86
+ Scale AI workloads across multiple machines using Redis-backed queue dispatch. Dispatcher instances route workflow requests to remote subscribers—no shared filesystem or code changes needed. Add workers to scale horizontally.
87
+
84
88
  ### 🎯 **Event-Driven Architecture**
85
89
  HTTP Callback listeners for async workflows (image generation, video processing). HTTP Trigger listeners for webhooks and external events. Build reactive AI systems that respond to real-world events.
86
90
 
@@ -54,6 +54,9 @@ Build multi-step pipelines with conditional logic, data transformation, and para
54
54
  ### 🚀 **Production-Ready Deployment**
55
55
  Deploy as HTTP REST API or MCP (Model Context Protocol) server by changing one line. Includes concurrency control, health checks, and automatic API documentation.
56
56
 
57
+ ### 📡 **Distributed Workflow Execution**
58
+ Scale AI workloads across multiple machines using Redis-backed queue dispatch. Dispatcher instances route workflow requests to remote subscribers—no shared filesystem or code changes needed. Add workers to scale horizontally.
59
+
57
60
  ### 🎯 **Event-Driven Architecture**
58
61
  HTTP Callback listeners for async workflows (image generation, video processing). HTTP Trigger listeners for webhooks and external events. Build reactive AI systems that respond to real-world events.
59
62
 
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "model-compose"
3
- version = "0.4.29"
3
+ version = "0.4.30"
4
4
  description = "model-compose: Declarative AI Workflow Orchestrator"
5
5
  authors = [
6
6
  { name = "Hanyeol Cho", email = "hanyeol.cho@gmail.com" }
@@ -23,7 +23,8 @@ dependencies = [
23
23
  "gradio>=6.0.0",
24
24
  "Pillow",
25
25
  "beautifulsoup4",
26
- "lxml"
26
+ "lxml",
27
+ "async_timeout>=4.0; python_version < '3.11'"
27
28
  ]
28
29
 
29
30
  [project.scripts]
@@ -5,7 +5,7 @@ from mindor.dsl.schema.action import ActionConfig
5
5
  from mindor.dsl.schema.listener import ListenerConfig
6
6
  from mindor.dsl.schema.gateway import GatewayConfig
7
7
  from mindor.dsl.schema.workflow import WorkflowConfig
8
- from mindor.dsl.schema.runtime import ProcessRuntimeConfig
8
+ from mindor.dsl.schema.runtime import RuntimeType
9
9
  from mindor.core.foundation import AsyncService
10
10
  from mindor.core.utils.work_queue import WorkQueue
11
11
  from mindor.core.utils.active_counter import ActiveCounter
@@ -45,7 +45,13 @@ class ComponentGlobalConfigs:
45
45
  self.workflows: List[WorkflowConfig] = workflows
46
46
 
47
47
  class ComponentService(AsyncService):
48
- def __init__(self, id: str, config: ComponentConfig, global_configs: ComponentGlobalConfigs, daemon: bool):
48
+ def __init__(
49
+ self,
50
+ id: str,
51
+ config: ComponentConfig,
52
+ global_configs: ComponentGlobalConfigs,
53
+ daemon: bool
54
+ ):
49
55
  super().__init__(daemon)
50
56
 
51
57
  self.id: str = id
@@ -53,27 +59,33 @@ class ComponentService(AsyncService):
53
59
  self.global_configs: ComponentGlobalConfigs = global_configs
54
60
  self.work_queue: Optional[WorkQueue] = None
55
61
  self._process_manager = None
62
+ self._docker_manager = None
56
63
  self._active_counter: ActiveCounter = ActiveCounter()
57
64
 
58
65
  if self.config.max_concurrent_count > 0:
59
66
  self.work_queue = WorkQueue(self.config.max_concurrent_count, self._run)
60
67
 
61
68
  async def start(self, background: bool = False) -> None:
62
- if isinstance(self.config.runtime, ProcessRuntimeConfig):
63
- from mindor.core.component.runtime import ComponentProcessRuntimeManager
64
-
65
- self._process_manager = ComponentProcessRuntimeManager(
66
- self.id,
67
- self.config,
68
- self.global_configs
69
- )
70
- await self._process_manager.start()
71
- logging.info(f"Component {self.id} started in separate process")
69
+ if self.config.runtime.type == RuntimeType.PROCESS:
70
+ await self._start_process_runtime()
72
71
  return
73
-
72
+
73
+ if self.config.runtime.type == RuntimeType.DOCKER:
74
+ await self._start_docker_runtime()
75
+
74
76
  await super().start(background)
75
77
  await self.wait_until_ready()
76
78
 
79
+ async def stop(self) -> None:
80
+ if self._process_manager:
81
+ await self._stop_process_runtime()
82
+ return
83
+
84
+ await super().stop()
85
+
86
+ if self._docker_manager:
87
+ await self._stop_docker_runtime()
88
+
77
89
  async def run(self, action_id: str, run_id: str, input: Dict[str, Any], workflow=None) -> Dict[str, Any]:
78
90
  if self._process_manager:
79
91
  return await self._process_manager.run(action_id, run_id, input)
@@ -90,13 +102,6 @@ class ComponentService(AsyncService):
90
102
  finally:
91
103
  self._active_counter.release()
92
104
 
93
- async def stop(self) -> None:
94
- if self._process_manager:
95
- await self._process_manager.stop()
96
- return
97
-
98
- await super().stop()
99
-
100
105
  async def _start(self) -> None:
101
106
  if self.work_queue:
102
107
  await self.work_queue.start()
@@ -110,23 +115,42 @@ class ComponentService(AsyncService):
110
115
  await self._active_counter.wait_for_zero()
111
116
  await super()._stop()
112
117
 
113
- async def _serve(self) -> None:
114
- pass
115
-
116
- async def _shutdown(self) -> None:
117
- pass
118
-
119
118
  async def _is_ready(self) -> bool:
120
119
  return True
121
120
 
122
121
  @abstractmethod
123
122
  async def _run(self, action: ActionConfig, context: ComponentActionContext) -> Any:
124
123
  pass
125
-
124
+
126
125
  async def _install_package(self, package_spec: str, repository: Optional[str]) -> None:
127
126
  logging.info(f"Installing required module: {package_spec}")
128
127
  await super()._install_package(package_spec, repository)
129
128
 
129
+ async def _start_process_runtime(self) -> None:
130
+ from mindor.core.component.runtime import ComponentProcessRuntimeManager
131
+ self._process_manager = ComponentProcessRuntimeManager(self.id, self.config, self.global_configs)
132
+ await self._process_manager.start()
133
+ logging.info(f"Component '{self.id}' started with process runtime")
134
+
135
+ async def _stop_process_runtime(self) -> None:
136
+ await self._process_manager.stop()
137
+ logging.info(f"Component '{self.id}' process runtime stopped")
138
+
139
+ async def _start_docker_runtime(self) -> None:
140
+ from mindor.core.runtime.docker import DockerRuntimeManager
141
+ self._docker_manager = DockerRuntimeManager(self.config.runtime, verbose=False)
142
+ if not await self._docker_manager.exists_image():
143
+ await self._docker_manager.pull_image()
144
+ if await self._docker_manager.exists_container():
145
+ await self._docker_manager.remove_container(force=True)
146
+ await self._docker_manager.start_container(detach=True)
147
+ logging.info(f"Component '{self.id}' started with Docker runtime")
148
+
149
+ async def _stop_docker_runtime(self) -> None:
150
+ await self._docker_manager.stop_container()
151
+ await self._docker_manager.remove_container(force=True)
152
+ logging.info(f"Component '{self.id}' Docker container stopped")
153
+
130
154
  def register_component(type: ComponentType):
131
155
  def decorator(cls: Type[ComponentService]) -> Type[ComponentService]:
132
156
  ComponentRegistry[type] = cls
@@ -18,9 +18,6 @@ class ComponentProcessRuntimeManager(ProcessRuntimeManager):
18
18
  config: ComponentConfig,
19
19
  global_configs: ComponentGlobalConfigs
20
20
  ):
21
- if not isinstance(config.runtime, ProcessRuntimeConfig):
22
- raise ValueError("ComponentProcessRuntimeManager requires ProcessRuntimeConfig")
23
-
24
21
  self.config = config
25
22
  self.global_configs = global_configs
26
23
 
@@ -35,11 +32,7 @@ class ComponentProcessRuntimeManager(ProcessRuntimeManager):
35
32
  # Convert ProcessRuntimeConfig to ProcessWorkerParams
36
33
  worker_params = self._convert_runtime_config(config.runtime)
37
34
 
38
- super().__init__(
39
- worker_id=component_id,
40
- worker_factory=worker_factory,
41
- worker_params=worker_params
42
- )
35
+ super().__init__(component_id, worker_factory, worker_params)
43
36
 
44
37
  @staticmethod
45
38
  def _convert_runtime_config(config: ProcessRuntimeConfig) -> ProcessWorkerParams:
@@ -8,8 +8,6 @@ from mindor.core.logger import logging
8
8
  from multiprocessing import Queue
9
9
 
10
10
  class ComponentProcessWorker(ProcessWorker):
11
- """Worker for running components in separate processes"""
12
-
13
11
  def __init__(
14
12
  self,
15
13
  component_id: str,
@@ -23,8 +21,7 @@ class ComponentProcessWorker(ProcessWorker):
23
21
  self.global_configs = global_configs
24
22
  self.component = None
25
23
 
26
- async def _initialize(self) -> None:
27
- """Initialize and start the component"""
24
+ async def _start(self) -> None:
28
25
  embedded_config = self.config.model_copy(deep=True)
29
26
  embedded_config.runtime = EmbeddedRuntimeConfig(type="embedded")
30
27
 
@@ -40,16 +37,14 @@ class ComponentProcessWorker(ProcessWorker):
40
37
 
41
38
  logging.info(f"Component {self.worker_id} started in subprocess")
42
39
 
40
+ async def _stop(self) -> None:
41
+ if self.component:
42
+ await self.component.stop()
43
+ await self.component.teardown()
44
+
43
45
  async def _execute_task(self, payload: Dict[str, Any]) -> Any:
44
- """Execute component action"""
45
- action_id = payload["action_id"]
46
- run_id = payload["run_id"]
46
+ action_id = payload["action_id"]
47
+ run_id = payload["run_id"]
47
48
  input_data = payload["input"]
48
49
 
49
50
  return await self.component.run(action_id, run_id, input_data)
50
-
51
- async def _cleanup(self) -> None:
52
- """Clean up the component"""
53
- if self.component:
54
- await self.component.stop()
55
- await self.component.teardown()
@@ -12,3 +12,4 @@ from .image_processor import *
12
12
  from .web_scraper import *
13
13
  from .web_browser import *
14
14
  from .agent import *
15
+ from .video_scene_detector import *
@@ -12,7 +12,14 @@ import asyncio, ulid, json
12
12
  _JSON_SCHEMA_TYPE_MAP = { "int": "integer", "float": "number", "bool": "boolean", "list[dict]": "array" }
13
13
 
14
14
  class AgentAction:
15
- def __init__(self, action: AgentActionConfig, config: AgentComponentConfig, global_configs: ComponentGlobalConfigs, tools: Dict[str, WorkflowTool], function_schemas: List[Dict[str, Any]]):
15
+ def __init__(
16
+ self,
17
+ action: AgentActionConfig,
18
+ config: AgentComponentConfig,
19
+ global_configs: ComponentGlobalConfigs,
20
+ tools: Dict[str, WorkflowTool],
21
+ function_schemas: List[Dict[str, Any]]
22
+ ):
16
23
  self.action: AgentActionConfig = action
17
24
  self.config: AgentComponentConfig = config
18
25
  self.global_configs: ComponentGlobalConfigs = global_configs
@@ -90,7 +97,13 @@ class AgentAction:
90
97
  _, config = ComponentResolver(self.global_configs.components).resolve(component_id)
91
98
  return create_component(component_id, config, self.global_configs, daemon=False)
92
99
 
93
- async def _render_model_input(self, context: ComponentActionContext, input_mapping: Dict[str, Any], messages: List[Dict[str, Any]], tools: Optional[List[Dict[str, Any]]]) -> Dict[str, Any]:
100
+ async def _render_model_input(
101
+ self,
102
+ context: ComponentActionContext,
103
+ input_mapping: Dict[str, Any],
104
+ messages: List[Dict[str, Any]],
105
+ tools: Optional[List[Dict[str, Any]]]
106
+ ) -> Dict[str, Any]:
94
107
  context.register_source("messages", messages)
95
108
  if tools:
96
109
  context.register_source("tools", tools)
@@ -161,7 +174,13 @@ async def _build_function_schema(name: str, tool: WorkflowTool) -> Dict[str, Any
161
174
 
162
175
  @register_component(ComponentType.AGENT)
163
176
  class AgentComponent(ComponentService):
164
- def __init__(self, id: str, config: AgentComponentConfig, global_configs: ComponentGlobalConfigs, daemon: bool):
177
+ def __init__(
178
+ self,
179
+ id: str,
180
+ config: AgentComponentConfig,
181
+ global_configs: ComponentGlobalConfigs,
182
+ daemon: bool
183
+ ):
165
184
  super().__init__(id, config, global_configs, daemon)
166
185
 
167
186
  self.tools: Optional[Dict[str, WorkflowTool]] = None
@@ -1,7 +1,8 @@
1
1
  from __future__ import annotations
2
2
  from typing import TYPE_CHECKING
3
3
 
4
- from typing import Type, Union, Literal, Optional, Dict, List, Tuple, Set, Annotated, AsyncIterator, Any
4
+ from typing import Type, Union, Literal, Optional, Dict, List, Tuple, Set, Annotated, Any
5
+ from collections.abc import AsyncIterator
5
6
  from mindor.dsl.schema.action import DatasetsActionConfig, DatasetsActionMethod, DatasetsProvider
6
7
  from ...base import ComponentService, ComponentType, ComponentGlobalConfigs, register_component
7
8
  from ...context import ComponentActionContext
@@ -116,7 +117,13 @@ class DatasetsAction:
116
117
 
117
118
  @register_component(ComponentType.DATASETS)
118
119
  class DatasetsComponent(ComponentService):
119
- def __init__(self, id: str, config: DatasetsActionConfig, global_configs: ComponentGlobalConfigs, daemon: bool):
120
+ def __init__(
121
+ self,
122
+ id: str,
123
+ config: DatasetsActionConfig,
124
+ global_configs: ComponentGlobalConfigs,
125
+ daemon: bool
126
+ ):
120
127
  super().__init__(id, config, global_configs, daemon)
121
128
 
122
129
  def _get_setup_requirements(self) -> Optional[List[str]]:
@@ -1,7 +1,8 @@
1
1
  from __future__ import annotations
2
2
  from typing import TYPE_CHECKING
3
3
 
4
- from typing import Type, Union, Literal, Optional, Dict, List, Tuple, Set, Annotated, AsyncIterator, Any
4
+ from typing import Type, Union, Literal, Optional, Dict, List, Tuple, Set, Annotated, Any
5
+ from collections.abc import AsyncIterator
5
6
  from abc import ABC, abstractmethod
6
7
  from mindor.dsl.schema.action import DatasetsLoadActionConfig
7
8
  from ....context import ComponentActionContext
@@ -1,7 +1,8 @@
1
1
  from __future__ import annotations
2
2
  from typing import TYPE_CHECKING
3
3
 
4
- from typing import Type, Union, Literal, Optional, Dict, List, Tuple, Set, Annotated, AsyncIterator, Any
4
+ from typing import Type, Union, Literal, Optional, Dict, List, Tuple, Set, Annotated, Any
5
+ from collections.abc import AsyncIterator
5
6
  from .common import CommonDatasetsProvider, ComponentActionContext
6
7
 
7
8
  if TYPE_CHECKING:
@@ -1,7 +1,8 @@
1
1
  from __future__ import annotations
2
2
  from typing import TYPE_CHECKING
3
3
 
4
- from typing import Type, Union, Literal, Optional, Dict, List, Tuple, Set, Annotated, AsyncIterator, Any
4
+ from typing import Type, Union, Literal, Optional, Dict, List, Tuple, Set, Annotated, Any
5
+ from collections.abc import AsyncIterator
5
6
  from .common import CommonDatasetsProvider, ComponentActionContext
6
7
 
7
8
  if TYPE_CHECKING:
@@ -1,4 +1,5 @@
1
- from typing import Type, Union, Literal, Optional, Dict, List, Tuple, Set, Annotated, AsyncIterator, Any
1
+ from typing import Type, Union, Literal, Optional, Dict, List, Tuple, Set, Annotated, Any
2
+ from collections.abc import AsyncIterator
2
3
  from abc import ABC, abstractmethod
3
4
  from mindor.dsl.schema.component import HttpClientComponentConfig
4
5
  from mindor.dsl.schema.action import ActionConfig, HttpClientActionConfig, HttpClientCompletionType, HttpClientCompletionConfig
@@ -141,7 +142,13 @@ class HttpClientAction:
141
142
 
142
143
  @register_component(ComponentType.HTTP_CLIENT)
143
144
  class HttpClientComponent(ComponentService):
144
- def __init__(self, id: str, config: HttpClientComponentConfig, global_configs: ComponentGlobalConfigs, daemon: bool):
145
+ def __init__(
146
+ self,
147
+ id: str,
148
+ config: HttpClientComponentConfig,
149
+ global_configs: ComponentGlobalConfigs,
150
+ daemon: bool
151
+ ):
145
152
  super().__init__(id, config, global_configs, daemon)
146
153
 
147
154
  self.client: Optional[HttpClient] = None
@@ -130,7 +130,13 @@ class HttpServerAction:
130
130
 
131
131
  @register_component(ComponentType.HTTP_SERVER)
132
132
  class HttpServerComponent(ComponentService):
133
- def __init__(self, id: str, config: HttpServerComponentConfig, global_configs: ComponentGlobalConfigs, daemon: bool):
133
+ def __init__(
134
+ self,
135
+ id: str,
136
+ config: HttpServerComponentConfig,
137
+ global_configs: ComponentGlobalConfigs,
138
+ daemon: bool
139
+ ):
134
140
  super().__init__(id, config, global_configs, daemon)
135
141
 
136
142
  self.client: Optional[HttpClient] = None
@@ -163,9 +169,6 @@ class HttpServerComponent(ComponentService):
163
169
  if self.config.manage.scripts.start:
164
170
  await run_command_streaming(self.config.manage.scripts.start, self.config.manage.working_dir, self.config.manage.env)
165
171
 
166
- async def _shutdown(self) -> None:
167
- pass
168
-
169
172
  async def _is_ready(self) -> bool:
170
173
  try:
171
174
  _, writer = await asyncio.open_connection("localhost", self.config.port)
@@ -169,7 +169,13 @@ class ImageProcessorAction:
169
169
 
170
170
  raise ValueError(f"Invalid scale_mode: {scale_mode}")
171
171
 
172
- def _get_size_aspect_fit(self, target_width: int, target_height: int, original_width: int, original_height: int) -> Tuple[int, int]:
172
+ def _get_size_aspect_fit(
173
+ self,
174
+ target_width: int,
175
+ target_height: int,
176
+ original_width: int,
177
+ original_height: int
178
+ ) -> Tuple[int, int]:
173
179
  aspect_ratio = original_width / original_height
174
180
 
175
181
  height = target_height
@@ -181,7 +187,13 @@ class ImageProcessorAction:
181
187
 
182
188
  return (int(width), int(height))
183
189
 
184
- def _get_size_aspect_fill(self, target_width: int, target_height: int, original_width: int, original_height: int) -> Tuple[int, int]:
190
+ def _get_size_aspect_fill(
191
+ self,
192
+ target_width: int,
193
+ target_height: int,
194
+ original_width: int,
195
+ original_height: int
196
+ ) -> Tuple[int, int]:
185
197
  aspect_ratio = original_width / original_height
186
198
 
187
199
  height = target_height
@@ -203,7 +215,13 @@ class ImageProcessorAction:
203
215
 
204
216
  @register_component(ComponentType.IMAGE_PROCESSOR)
205
217
  class ImageProcessorComponent(ComponentService):
206
- def __init__(self, id: str, config: ImageProcessorComponentConfig, global_configs: ComponentGlobalConfigs, daemon: bool):
218
+ def __init__(
219
+ self,
220
+ id: str,
221
+ config: ImageProcessorComponentConfig,
222
+ global_configs: ComponentGlobalConfigs,
223
+ daemon: bool
224
+ ):
207
225
  super().__init__(id, config, global_configs, daemon)
208
226
 
209
227
  async def _run(self, action: ActionConfig, context: ComponentActionContext) -> Any:
@@ -29,7 +29,13 @@ class McpClientAction:
29
29
 
30
30
  @register_component(ComponentType.MCP_CLIENT)
31
31
  class McpClientComponent(ComponentService):
32
- def __init__(self, id: str, config: McpClientComponentConfig, global_configs: ComponentGlobalConfigs, daemon: bool):
32
+ def __init__(
33
+ self,
34
+ id: str,
35
+ config: McpClientComponentConfig,
36
+ global_configs: ComponentGlobalConfigs,
37
+ daemon: bool
38
+ ):
33
39
  super().__init__(id, config, global_configs, daemon)
34
40
 
35
41
  self.client: Optional[McpClient] = None
@@ -31,7 +31,13 @@ class McpServerAction:
31
31
 
32
32
  @register_component(ComponentType.MCP_SERVER)
33
33
  class McpServerComponent(ComponentService):
34
- def __init__(self, id: str, config: McpServerComponentConfig, global_configs: ComponentGlobalConfigs, daemon: bool):
34
+ def __init__(
35
+ self,
36
+ id: str,
37
+ config: McpServerComponentConfig,
38
+ global_configs: ComponentGlobalConfigs,
39
+ daemon: bool
40
+ ):
35
41
  super().__init__(id, config, global_configs, daemon)
36
42
 
37
43
  self.client: Optional[McpClient] = None
@@ -64,9 +70,6 @@ class McpServerComponent(ComponentService):
64
70
  if self.config.manage.scripts.start:
65
71
  await run_command_streaming(self.config.manage.scripts.start, self.config.manage.working_dir, self.config.manage.env)
66
72
 
67
- async def _shutdown(self) -> None:
68
- pass
69
-
70
73
  async def _is_ready(self) -> bool:
71
74
  try:
72
75
  _, writer = await asyncio.open_connection("localhost", self.config.port)
@@ -64,7 +64,12 @@ class ModelTaskService(AsyncService):
64
64
  pass
65
65
 
66
66
  @abstractmethod
67
- async def _run(self, action: ModelActionConfig, context: ComponentActionContext, loop: asyncio.AbstractEventLoop) -> Any:
67
+ async def _run(
68
+ self,
69
+ action: ModelActionConfig,
70
+ context: ComponentActionContext,
71
+ loop: asyncio.AbstractEventLoop
72
+ ) -> Any:
68
73
  pass
69
74
 
70
75
  def _get_model_path(self) -> str:
@@ -1,4 +1,5 @@
1
- from typing import Type, Union, Literal, Optional, Dict, List, Tuple, Set, Annotated, AsyncIterator, Any
1
+ from typing import Type, Union, Literal, Optional, Dict, List, Tuple, Set, Annotated, Any
2
+ from collections.abc import AsyncIterator
2
3
  from mindor.dsl.schema.component import ModelComponentConfig, ModelTaskType, ModelDriver
3
4
  from mindor.dsl.schema.action import ActionConfig, ModelActionConfig
4
5
  from ...base import ComponentService, ComponentType, ComponentGlobalConfigs, register_component
@@ -14,7 +15,13 @@ class ModelAction:
14
15
 
15
16
  @register_component(ComponentType.MODEL)
16
17
  class ModelComponent(ComponentService):
17
- def __init__(self, id: str, config: ModelComponentConfig, global_configs: ComponentGlobalConfigs, daemon: bool):
18
+ def __init__(
19
+ self,
20
+ id: str,
21
+ config: ModelComponentConfig,
22
+ global_configs: ComponentGlobalConfigs,
23
+ daemon: bool
24
+ ):
18
25
  super().__init__(id, config, global_configs, daemon)
19
26
 
20
27
  self.task_service: ModelTaskService = self._create_task_service(self.config.task, self.config.driver)
@@ -13,7 +13,13 @@ if TYPE_CHECKING:
13
13
  import torch
14
14
 
15
15
  class HuggingfaceChatCompletionTaskAction(HuggingfaceTextGenerationTaskAction):
16
- def __init__(self, config: ChatCompletionModelActionConfig, model: PreTrainedModel, tokenizer: PreTrainedTokenizer, device: torch.device):
16
+ def __init__(
17
+ self,
18
+ config: ChatCompletionModelActionConfig,
19
+ model: PreTrainedModel,
20
+ tokenizer: PreTrainedTokenizer,
21
+ device: torch.device
22
+ ):
17
23
  super().__init__(config, model, tokenizer, device)
18
24
 
19
25
  self.config: ChatCompletionModelActionConfig = config # For type only
@@ -39,7 +45,12 @@ class HuggingfaceChatCompletionTaskAction(HuggingfaceTextGenerationTaskAction):
39
45
 
40
46
  @register_model_task_service(ModelTaskType.CHAT_COMPLETION, ModelDriver.HUGGINGFACE)
41
47
  class HuggingfaceChatCompletionTaskService(HuggingfaceLanguageModelTaskService):
42
- async def _run(self, action: ModelActionConfig, context: ComponentActionContext, loop: asyncio.AbstractEventLoop) -> Any:
48
+ async def _run(
49
+ self,
50
+ action: ModelActionConfig,
51
+ context: ComponentActionContext,
52
+ loop: asyncio.AbstractEventLoop
53
+ ) -> Any:
43
54
  return await HuggingfaceChatCompletionTaskAction(action, self.model, self.tokenizer, self.device).run(context, loop)
44
55
 
45
56
  def _get_model_class(self) -> Type[PreTrainedModel]:
@@ -51,9 +51,6 @@ class InsightfaceFaceEmbeddingTaskService(FaceEmbeddingTaskService):
51
51
  logging.error(f"Failed to load model '{self.config.model}': {e}")
52
52
  raise
53
53
 
54
- async def _shutdown(self) -> None:
55
- pass
56
-
57
54
  def _load_pretrained_model(self) -> FaceAnalysis:
58
55
  from insightface.app import FaceAnalysis
59
56
 
@@ -109,5 +106,10 @@ class InsightfaceFaceEmbeddingTaskService(FaceEmbeddingTaskService):
109
106
  def _get_device_id(self) -> int:
110
107
  return 0
111
108
 
112
- async def _run(self, action: ModelActionConfig, context: ComponentActionContext, loop: asyncio.AbstractEventLoop) -> Any:
109
+ async def _run(
110
+ self,
111
+ action: ModelActionConfig,
112
+ context: ComponentActionContext,
113
+ loop: asyncio.AbstractEventLoop
114
+ ) -> Any:
113
115
  return await InsightfaceFaceEmbeddingTaskAction(action, self.model).run(context)
@@ -14,7 +14,12 @@ if TYPE_CHECKING:
14
14
  import torch
15
15
 
16
16
  class FluxImageGenerationTaskAction(ImageGenerationTaskAction):
17
- def __init__(self, config: FluxImageGenerationModelActionConfig, pipeline: Any, device: Optional[torch.device]):
17
+ def __init__(
18
+ self,
19
+ config: FluxImageGenerationModelActionConfig,
20
+ pipeline: Any,
21
+ device: Optional[torch.device]
22
+ ):
18
23
  super().__init__(config, device)
19
24
 
20
25
  self.pipeline = pipeline
@@ -50,5 +55,10 @@ class FluxImageGenerationTaskService(ImageGenerationTaskService):
50
55
  def _load_pretrained_pipeline(self) -> Tuple[Any, torch.device]:
51
56
  pass
52
57
 
53
- async def _run(self, action: ModelActionConfig, context: ComponentActionContext, loop: asyncio.AbstractEventLoop) -> Any:
58
+ async def _run(
59
+ self,
60
+ action: ModelActionConfig,
61
+ context: ComponentActionContext,
62
+ loop: asyncio.AbstractEventLoop
63
+ ) -> Any:
54
64
  return FluxImageGenerationModelActionConfig(action, self.model).run(context)
@@ -14,7 +14,12 @@ if TYPE_CHECKING:
14
14
  import torch
15
15
 
16
16
  class HunyuanImageGenerationTaskAction(ImageGenerationTaskAction):
17
- def __init__(self, config: HunyuanImageGenerationModelActionConfig, pipeline: Any, device: Optional[torch.device]):
17
+ def __init__(
18
+ self,
19
+ config: HunyuanImageGenerationModelActionConfig,
20
+ pipeline: Any,
21
+ device: Optional[torch.device]
22
+ ):
18
23
  super().__init__(config, device)
19
24
 
20
25
  self.pipeline = pipeline
@@ -50,5 +55,10 @@ class HunyuanImageGenerationTaskService(ImageGenerationTaskService):
50
55
  def _load_pretrained_pipeline(self) -> Tuple[Any, torch.device]:
51
56
  pass
52
57
 
53
- async def _run(self, action: ModelActionConfig, context: ComponentActionContext, loop: asyncio.AbstractEventLoop) -> Any:
58
+ async def _run(
59
+ self,
60
+ action: ModelActionConfig,
61
+ context: ComponentActionContext,
62
+ loop: asyncio.AbstractEventLoop
63
+ ) -> Any:
54
64
  return HunyuanImageGenerationModelActionConfig(action, self.model).run(context)