model-compose 0.4.9__tar.gz → 0.4.11__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 (361) hide show
  1. model_compose-0.4.11/PKG-INFO +184 -0
  2. model_compose-0.4.11/README.md +160 -0
  3. {model_compose-0.4.9 → model_compose-0.4.11}/pyproject.toml +1 -1
  4. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/cli/compose.py +57 -26
  5. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/core/controller/base.py +18 -3
  6. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/core/controller/services/http_server.py +20 -4
  7. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/core/listener/base.py +1 -1
  8. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/core/listener/services/__init__.py +1 -0
  9. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/core/listener/services/http_callback.py +10 -12
  10. model_compose-0.4.11/src/mindor/core/listener/services/http_trigger.py +136 -0
  11. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/core/utils/http_client.py +6 -4
  12. model_compose-0.4.11/src/mindor/core/utils/url.py +33 -0
  13. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/dsl/schema/action/impl/datasets/providers/common.py +2 -2
  14. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/dsl/schema/action/impl/model/impl/common.py +1 -1
  15. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/dsl/schema/controller/impl/common.py +1 -1
  16. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/dsl/schema/listener/impl/__init__.py +1 -0
  17. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/dsl/schema/listener/impl/http_callback.py +1 -1
  18. model_compose-0.4.11/src/mindor/dsl/schema/listener/impl/http_trigger.py +27 -0
  19. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/dsl/schema/listener/impl/types.py +1 -0
  20. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/dsl/schema/listener/listener.py +2 -1
  21. model_compose-0.4.11/src/model_compose.egg-info/PKG-INFO +184 -0
  22. {model_compose-0.4.9 → model_compose-0.4.11}/src/model_compose.egg-info/SOURCES.txt +3 -0
  23. model_compose-0.4.9/PKG-INFO +0 -428
  24. model_compose-0.4.9/README.md +0 -404
  25. model_compose-0.4.9/src/model_compose.egg-info/PKG-INFO +0 -428
  26. {model_compose-0.4.9 → model_compose-0.4.11}/LICENSE +0 -0
  27. {model_compose-0.4.9 → model_compose-0.4.11}/setup.cfg +0 -0
  28. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/__init__.py +0 -0
  29. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/cli/__init__.py +0 -0
  30. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/core/__init__.py +0 -0
  31. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/core/component/__init__.py +0 -0
  32. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/core/component/base.py +0 -0
  33. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/core/component/component.py +0 -0
  34. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/core/component/context.py +0 -0
  35. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/core/component/services/__init__.py +0 -0
  36. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/core/component/services/datasets/__init__.py +0 -0
  37. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/core/component/services/datasets/datasets.py +0 -0
  38. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/core/component/services/datasets/providers/__init__.py +0 -0
  39. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/core/component/services/datasets/providers/common.py +0 -0
  40. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/core/component/services/datasets/providers/huggingface.py +0 -0
  41. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/core/component/services/datasets/providers/local.py +0 -0
  42. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/core/component/services/datasets/utils.py +0 -0
  43. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/core/component/services/http_client.py +0 -0
  44. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/core/component/services/http_server.py +0 -0
  45. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/core/component/services/image_processor.py +0 -0
  46. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/core/component/services/mcp_client.py +0 -0
  47. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/core/component/services/mcp_server.py +0 -0
  48. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/core/component/services/model/__init__.py +0 -0
  49. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/core/component/services/model/base/__init__.py +0 -0
  50. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/core/component/services/model/base/common.py +0 -0
  51. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/core/component/services/model/base/huggingface.py +0 -0
  52. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/core/component/services/model/base/huggingface_hub.py +0 -0
  53. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/core/component/services/model/base/unsloth.py +0 -0
  54. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/core/component/services/model/model.py +0 -0
  55. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/core/component/services/model/tasks/__init__.py +0 -0
  56. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/core/component/services/model/tasks/chat_completion/__init__.py +0 -0
  57. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/core/component/services/model/tasks/chat_completion/huggingface.py +0 -0
  58. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/core/component/services/model/tasks/face_embedding/__init__.py +0 -0
  59. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/core/component/services/model/tasks/face_embedding/common.py +0 -0
  60. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/core/component/services/model/tasks/face_embedding/custom.py +0 -0
  61. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/core/component/services/model/tasks/face_embedding/insightface.py +0 -0
  62. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/core/component/services/model/tasks/image_generation/__init__.py +0 -0
  63. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/core/component/services/model/tasks/image_generation/common.py +0 -0
  64. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/core/component/services/model/tasks/image_generation/custom.py +0 -0
  65. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/core/component/services/model/tasks/image_generation/flux.py +0 -0
  66. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/core/component/services/model/tasks/image_generation/hunyuan_image.py +0 -0
  67. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/core/component/services/model/tasks/image_generation/sdxl.py +0 -0
  68. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/core/component/services/model/tasks/image_to_text/__init__.py +0 -0
  69. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/core/component/services/model/tasks/image_to_text/huggingface.py +0 -0
  70. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/core/component/services/model/tasks/image_upscale/__init__.py +0 -0
  71. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/core/component/services/model/tasks/image_upscale/common.py +0 -0
  72. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/core/component/services/model/tasks/image_upscale/custom.py +0 -0
  73. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/core/component/services/model/tasks/image_upscale/esrgan.py +0 -0
  74. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/core/component/services/model/tasks/image_upscale/ldsr.py +0 -0
  75. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/core/component/services/model/tasks/image_upscale/real_esrgan.py +0 -0
  76. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/core/component/services/model/tasks/image_upscale/swinir.py +0 -0
  77. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/core/component/services/model/tasks/text_classification/__init__.py +0 -0
  78. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/core/component/services/model/tasks/text_classification/huggingface.py +0 -0
  79. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/core/component/services/model/tasks/text_embedding/__init__.py +0 -0
  80. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/core/component/services/model/tasks/text_embedding/huggingface.py +0 -0
  81. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/core/component/services/model/tasks/text_generation/__init__.py +0 -0
  82. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/core/component/services/model/tasks/text_generation/huggingface.py +0 -0
  83. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/core/component/services/shell.py +0 -0
  84. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/core/component/services/text_splitter.py +0 -0
  85. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/core/component/services/vector_store/__init__.py +0 -0
  86. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/core/component/services/vector_store/base.py +0 -0
  87. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/core/component/services/vector_store/drivers/__init__.py +0 -0
  88. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/core/component/services/vector_store/drivers/chroma.py +0 -0
  89. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/core/component/services/vector_store/drivers/milvus.py +0 -0
  90. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/core/component/services/vector_store/vector_store.py +0 -0
  91. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/core/component/services/workflow.py +0 -0
  92. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/core/compose/__init__.py +0 -0
  93. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/core/compose/compose.py +0 -0
  94. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/core/compose/manager.py +0 -0
  95. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/core/controller/__init__.py +0 -0
  96. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/core/controller/controller.py +0 -0
  97. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/core/controller/runner/__init__.py +0 -0
  98. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/core/controller/runner/client.py +0 -0
  99. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/core/controller/runner/http_client.py +0 -0
  100. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/core/controller/runner/mcp_client.py +0 -0
  101. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/core/controller/runner/runner.py +0 -0
  102. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/core/controller/runtime/__init__.py +0 -0
  103. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/core/controller/runtime/docker/__init__.py +0 -0
  104. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/core/controller/runtime/docker/context/Dockerfile +0 -0
  105. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/core/controller/runtime/docker/docker.py +0 -0
  106. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/core/controller/runtime/native/__init__.py +0 -0
  107. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/core/controller/runtime/native/native.py +0 -0
  108. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/core/controller/runtime/specs.py +0 -0
  109. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/core/controller/services/__init__.py +0 -0
  110. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/core/controller/services/mcp_server.py +0 -0
  111. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/core/controller/webui/__init__.py +0 -0
  112. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/core/controller/webui/gradio.py +0 -0
  113. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/core/controller/webui/webui.py +0 -0
  114. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/core/foundation/__init__.py +0 -0
  115. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/core/foundation/async_service.py +0 -0
  116. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/core/gateway/__init__.py +0 -0
  117. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/core/gateway/base.py +0 -0
  118. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/core/gateway/gateway.py +0 -0
  119. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/core/gateway/services/__init__.py +0 -0
  120. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/core/gateway/services/http_tunnel/__init__.py +0 -0
  121. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/core/gateway/services/http_tunnel/base.py +0 -0
  122. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/core/gateway/services/http_tunnel/drivers/__init__.py +0 -0
  123. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/core/gateway/services/http_tunnel/drivers/cloudflare.py +0 -0
  124. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/core/gateway/services/http_tunnel/drivers/ngrok.py +0 -0
  125. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/core/gateway/services/http_tunnel/http_tunnel.py +0 -0
  126. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/core/gateway/services/ssh_tunnel.py +0 -0
  127. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/core/listener/__init__.py +0 -0
  128. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/core/listener/listener.py +0 -0
  129. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/core/logger/__init__.py +0 -0
  130. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/core/logger/base.py +0 -0
  131. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/core/logger/logger.py +0 -0
  132. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/core/logger/logging.py +0 -0
  133. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/core/logger/services/__init__.py +0 -0
  134. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/core/logger/services/console.py +0 -0
  135. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/core/logger/services/file.py +0 -0
  136. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/core/runtime/__init__.py +0 -0
  137. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/core/runtime/docker/__init__.py +0 -0
  138. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/core/runtime/docker/docker.py +0 -0
  139. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/core/runtime/env.py +0 -0
  140. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/core/utils/__init__.py +0 -0
  141. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/core/utils/caching.py +0 -0
  142. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/core/utils/http_request.py +0 -0
  143. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/core/utils/http_response.py +0 -0
  144. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/core/utils/http_status.py +0 -0
  145. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/core/utils/image.py +0 -0
  146. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/core/utils/mcp_client.py +0 -0
  147. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/core/utils/package.py +0 -0
  148. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/core/utils/renderers.py +0 -0
  149. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/core/utils/resolvers.py +0 -0
  150. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/core/utils/shell.py +0 -0
  151. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/core/utils/ssh_client.py +0 -0
  152. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/core/utils/streamer.py +0 -0
  153. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/core/utils/streaming.py +0 -0
  154. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/core/utils/time.py +0 -0
  155. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/core/utils/websocket_client.py +0 -0
  156. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/core/utils/work_queue.py +0 -0
  157. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/core/workflow/__init__.py +0 -0
  158. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/core/workflow/context.py +0 -0
  159. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/core/workflow/job/__init__.py +0 -0
  160. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/core/workflow/job/base.py +0 -0
  161. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/core/workflow/job/impl/__init__.py +0 -0
  162. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/core/workflow/job/impl/action.py +0 -0
  163. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/core/workflow/job/impl/delay.py +0 -0
  164. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/core/workflow/job/impl/filter.py +0 -0
  165. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/core/workflow/job/impl/if_.py +0 -0
  166. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/core/workflow/job/impl/random_router.py +0 -0
  167. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/core/workflow/job/impl/switch.py +0 -0
  168. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/core/workflow/job/job.py +0 -0
  169. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/core/workflow/schema.py +0 -0
  170. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/core/workflow/workflow.py +0 -0
  171. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/dsl/__init__.py +0 -0
  172. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/dsl/loader.py +0 -0
  173. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/dsl/schema/__init__.py +0 -0
  174. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/dsl/schema/action/__init__.py +0 -0
  175. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/dsl/schema/action/action.py +0 -0
  176. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/dsl/schema/action/impl/__init__.py +0 -0
  177. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/dsl/schema/action/impl/common.py +0 -0
  178. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/dsl/schema/action/impl/datasets/__init__.py +0 -0
  179. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/dsl/schema/action/impl/datasets/common.py +0 -0
  180. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/dsl/schema/action/impl/datasets/datasets.py +0 -0
  181. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/dsl/schema/action/impl/datasets/providers/__init__.py +0 -0
  182. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/dsl/schema/action/impl/datasets/providers/huggingface.py +0 -0
  183. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/dsl/schema/action/impl/datasets/providers/local.py +0 -0
  184. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/dsl/schema/action/impl/http_client.py +0 -0
  185. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/dsl/schema/action/impl/http_server.py +0 -0
  186. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/dsl/schema/action/impl/image_processor.py +0 -0
  187. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/dsl/schema/action/impl/mcp_client.py +0 -0
  188. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/dsl/schema/action/impl/mcp_server.py +0 -0
  189. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/dsl/schema/action/impl/model/__init__.py +0 -0
  190. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/dsl/schema/action/impl/model/impl/__init__.py +0 -0
  191. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/dsl/schema/action/impl/model/impl/chat_completion.py +0 -0
  192. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/dsl/schema/action/impl/model/impl/face_embedding/__init__.py +0 -0
  193. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/dsl/schema/action/impl/model/impl/face_embedding/face_embedding.py +0 -0
  194. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/dsl/schema/action/impl/model/impl/face_embedding/impl/__init__.py +0 -0
  195. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/dsl/schema/action/impl/model/impl/face_embedding/impl/common.py +0 -0
  196. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/dsl/schema/action/impl/model/impl/face_embedding/impl/dlib.py +0 -0
  197. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/dsl/schema/action/impl/model/impl/face_embedding/impl/facenet.py +0 -0
  198. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/dsl/schema/action/impl/model/impl/face_embedding/impl/insightface.py +0 -0
  199. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/dsl/schema/action/impl/model/impl/image_generation/__init__.py +0 -0
  200. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/dsl/schema/action/impl/model/impl/image_generation/image_generation.py +0 -0
  201. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/dsl/schema/action/impl/model/impl/image_generation/impl/__init__.py +0 -0
  202. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/dsl/schema/action/impl/model/impl/image_generation/impl/common.py +0 -0
  203. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/dsl/schema/action/impl/model/impl/image_generation/impl/flux.py +0 -0
  204. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/dsl/schema/action/impl/model/impl/image_generation/impl/hunyuan_image.py +0 -0
  205. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/dsl/schema/action/impl/model/impl/image_generation/impl/sdxl.py +0 -0
  206. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/dsl/schema/action/impl/model/impl/image_to_text.py +0 -0
  207. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/dsl/schema/action/impl/model/impl/image_upscale/__init__.py +0 -0
  208. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/dsl/schema/action/impl/model/impl/image_upscale/image_upscale.py +0 -0
  209. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/dsl/schema/action/impl/model/impl/image_upscale/impl/__init__.py +0 -0
  210. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/dsl/schema/action/impl/model/impl/image_upscale/impl/common.py +0 -0
  211. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/dsl/schema/action/impl/model/impl/image_upscale/impl/esrgan.py +0 -0
  212. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/dsl/schema/action/impl/model/impl/image_upscale/impl/ldsr.py +0 -0
  213. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/dsl/schema/action/impl/model/impl/image_upscale/impl/real_esrgan.py +0 -0
  214. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/dsl/schema/action/impl/model/impl/image_upscale/impl/swinir.py +0 -0
  215. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/dsl/schema/action/impl/model/impl/text_classification.py +0 -0
  216. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/dsl/schema/action/impl/model/impl/text_embedding.py +0 -0
  217. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/dsl/schema/action/impl/model/impl/text_generation.py +0 -0
  218. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/dsl/schema/action/impl/model/model.py +0 -0
  219. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/dsl/schema/action/impl/model_trainer/__init__.py +0 -0
  220. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/dsl/schema/action/impl/model_trainer/impl/__init__.py +0 -0
  221. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/dsl/schema/action/impl/model_trainer/impl/classification.py +0 -0
  222. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/dsl/schema/action/impl/model_trainer/impl/common.py +0 -0
  223. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/dsl/schema/action/impl/model_trainer/impl/sft.py +0 -0
  224. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/dsl/schema/action/impl/model_trainer/model_trainer.py +0 -0
  225. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/dsl/schema/action/impl/shell.py +0 -0
  226. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/dsl/schema/action/impl/text_splitter.py +0 -0
  227. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/dsl/schema/action/impl/vector_store/__init__.py +0 -0
  228. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/dsl/schema/action/impl/vector_store/impl/__init__.py +0 -0
  229. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/dsl/schema/action/impl/vector_store/impl/chroma.py +0 -0
  230. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/dsl/schema/action/impl/vector_store/impl/common.py +0 -0
  231. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/dsl/schema/action/impl/vector_store/impl/faiss.py +0 -0
  232. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/dsl/schema/action/impl/vector_store/impl/milvus.py +0 -0
  233. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/dsl/schema/action/impl/vector_store/impl/qdrant.py +0 -0
  234. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/dsl/schema/action/impl/vector_store/vector_store.py +0 -0
  235. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/dsl/schema/action/impl/workflow.py +0 -0
  236. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/dsl/schema/component/__init__.py +0 -0
  237. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/dsl/schema/component/component.py +0 -0
  238. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/dsl/schema/component/impl/__init__.py +0 -0
  239. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/dsl/schema/component/impl/common.py +0 -0
  240. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/dsl/schema/component/impl/datasets/__init__.py +0 -0
  241. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/dsl/schema/component/impl/datasets/datasets.py +0 -0
  242. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/dsl/schema/component/impl/http_client.py +0 -0
  243. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/dsl/schema/component/impl/http_server.py +0 -0
  244. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/dsl/schema/component/impl/image_processor.py +0 -0
  245. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/dsl/schema/component/impl/mcp_client.py +0 -0
  246. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/dsl/schema/component/impl/mcp_server.py +0 -0
  247. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/dsl/schema/component/impl/model/__init__.py +0 -0
  248. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/dsl/schema/component/impl/model/impl/__init__.py +0 -0
  249. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/dsl/schema/component/impl/model/impl/chat_completion.py +0 -0
  250. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/dsl/schema/component/impl/model/impl/common.py +0 -0
  251. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/dsl/schema/component/impl/model/impl/face_embedding/__init__.py +0 -0
  252. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/dsl/schema/component/impl/model/impl/face_embedding/face_embedding.py +0 -0
  253. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/dsl/schema/component/impl/model/impl/face_embedding/impl/__init__.py +0 -0
  254. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/dsl/schema/component/impl/model/impl/face_embedding/impl/common.py +0 -0
  255. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/dsl/schema/component/impl/model/impl/face_embedding/impl/dlib.py +0 -0
  256. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/dsl/schema/component/impl/model/impl/face_embedding/impl/facenet.py +0 -0
  257. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/dsl/schema/component/impl/model/impl/face_embedding/impl/insightface.py +0 -0
  258. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/dsl/schema/component/impl/model/impl/image_generation/__init__.py +0 -0
  259. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/dsl/schema/component/impl/model/impl/image_generation/image_generation.py +0 -0
  260. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/dsl/schema/component/impl/model/impl/image_generation/impl/__init__.py +0 -0
  261. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/dsl/schema/component/impl/model/impl/image_generation/impl/common.py +0 -0
  262. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/dsl/schema/component/impl/model/impl/image_generation/impl/flux.py +0 -0
  263. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/dsl/schema/component/impl/model/impl/image_generation/impl/hunyuan_image.py +0 -0
  264. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/dsl/schema/component/impl/model/impl/image_generation/impl/sdxl.py +0 -0
  265. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/dsl/schema/component/impl/model/impl/image_to_text.py +0 -0
  266. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/dsl/schema/component/impl/model/impl/image_upscale/__init__.py +0 -0
  267. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/dsl/schema/component/impl/model/impl/image_upscale/image_upscale.py +0 -0
  268. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/dsl/schema/component/impl/model/impl/image_upscale/impl/__init__.py +0 -0
  269. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/dsl/schema/component/impl/model/impl/image_upscale/impl/common.py +0 -0
  270. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/dsl/schema/component/impl/model/impl/image_upscale/impl/esrgan.py +0 -0
  271. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/dsl/schema/component/impl/model/impl/image_upscale/impl/ldsr.py +0 -0
  272. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/dsl/schema/component/impl/model/impl/image_upscale/impl/real_esrgan.py +0 -0
  273. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/dsl/schema/component/impl/model/impl/image_upscale/impl/swinir.py +0 -0
  274. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/dsl/schema/component/impl/model/impl/text_classification.py +0 -0
  275. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/dsl/schema/component/impl/model/impl/text_embedding.py +0 -0
  276. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/dsl/schema/component/impl/model/impl/text_generation.py +0 -0
  277. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/dsl/schema/component/impl/model/model.py +0 -0
  278. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/dsl/schema/component/impl/model_trainer/__init__.py +0 -0
  279. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/dsl/schema/component/impl/model_trainer/impl/__init__.py +0 -0
  280. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/dsl/schema/component/impl/model_trainer/impl/classification.py +0 -0
  281. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/dsl/schema/component/impl/model_trainer/impl/common.py +0 -0
  282. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/dsl/schema/component/impl/model_trainer/impl/sft.py +0 -0
  283. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/dsl/schema/component/impl/model_trainer/model_trainer.py +0 -0
  284. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/dsl/schema/component/impl/shell.py +0 -0
  285. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/dsl/schema/component/impl/text_splitter.py +0 -0
  286. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/dsl/schema/component/impl/types.py +0 -0
  287. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/dsl/schema/component/impl/vector_store/__init__.py +0 -0
  288. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/dsl/schema/component/impl/vector_store/impl/__init__.py +0 -0
  289. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/dsl/schema/component/impl/vector_store/impl/chroma.py +0 -0
  290. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/dsl/schema/component/impl/vector_store/impl/common.py +0 -0
  291. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/dsl/schema/component/impl/vector_store/impl/faiss.py +0 -0
  292. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/dsl/schema/component/impl/vector_store/impl/milvus.py +0 -0
  293. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/dsl/schema/component/impl/vector_store/impl/qdrant.py +0 -0
  294. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/dsl/schema/component/impl/vector_store/vector_store.py +0 -0
  295. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/dsl/schema/component/impl/workflow.py +0 -0
  296. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/dsl/schema/compose.py +0 -0
  297. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/dsl/schema/controller/__init__.py +0 -0
  298. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/dsl/schema/controller/controller.py +0 -0
  299. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/dsl/schema/controller/impl/__init__.py +0 -0
  300. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/dsl/schema/controller/impl/http_server.py +0 -0
  301. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/dsl/schema/controller/impl/mcp_server.py +0 -0
  302. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/dsl/schema/controller/impl/types.py +0 -0
  303. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/dsl/schema/controller/webui/__init__.py +0 -0
  304. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/dsl/schema/controller/webui/impl/__init__.py +0 -0
  305. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/dsl/schema/controller/webui/impl/common.py +0 -0
  306. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/dsl/schema/controller/webui/impl/dynamic.py +0 -0
  307. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/dsl/schema/controller/webui/impl/gradio.py +0 -0
  308. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/dsl/schema/controller/webui/impl/static.py +0 -0
  309. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/dsl/schema/controller/webui/webui.py +0 -0
  310. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/dsl/schema/gateway/__init__.py +0 -0
  311. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/dsl/schema/gateway/gateway.py +0 -0
  312. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/dsl/schema/gateway/impl/__init__.py +0 -0
  313. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/dsl/schema/gateway/impl/common.py +0 -0
  314. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/dsl/schema/gateway/impl/http_tunnel/__init__.py +0 -0
  315. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/dsl/schema/gateway/impl/http_tunnel/http_tunnel.py +0 -0
  316. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/dsl/schema/gateway/impl/http_tunnel/impl/__init__.py +0 -0
  317. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/dsl/schema/gateway/impl/http_tunnel/impl/cloudflare.py +0 -0
  318. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/dsl/schema/gateway/impl/http_tunnel/impl/common.py +0 -0
  319. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/dsl/schema/gateway/impl/http_tunnel/impl/ngrok.py +0 -0
  320. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/dsl/schema/gateway/impl/ssh_tunnel.py +0 -0
  321. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/dsl/schema/gateway/impl/types.py +0 -0
  322. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/dsl/schema/job/__init__.py +0 -0
  323. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/dsl/schema/job/impl/__init__.py +0 -0
  324. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/dsl/schema/job/impl/action.py +0 -0
  325. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/dsl/schema/job/impl/common.py +0 -0
  326. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/dsl/schema/job/impl/delay.py +0 -0
  327. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/dsl/schema/job/impl/filter.py +0 -0
  328. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/dsl/schema/job/impl/if_.py +0 -0
  329. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/dsl/schema/job/impl/random_router.py +0 -0
  330. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/dsl/schema/job/impl/switch.py +0 -0
  331. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/dsl/schema/job/impl/types.py +0 -0
  332. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/dsl/schema/job/job.py +0 -0
  333. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/dsl/schema/listener/__init__.py +0 -0
  334. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/dsl/schema/listener/impl/common.py +0 -0
  335. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/dsl/schema/logger/__init__.py +0 -0
  336. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/dsl/schema/logger/impl/__init__.py +0 -0
  337. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/dsl/schema/logger/impl/common.py +0 -0
  338. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/dsl/schema/logger/impl/console.py +0 -0
  339. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/dsl/schema/logger/impl/file.py +0 -0
  340. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/dsl/schema/logger/impl/types.py +0 -0
  341. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/dsl/schema/logger/logger.py +0 -0
  342. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/dsl/schema/runtime/__init__.py +0 -0
  343. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/dsl/schema/runtime/impl/__init__.py +0 -0
  344. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/dsl/schema/runtime/impl/common.py +0 -0
  345. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/dsl/schema/runtime/impl/docker.py +0 -0
  346. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/dsl/schema/runtime/impl/native.py +0 -0
  347. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/dsl/schema/runtime/impl/types.py +0 -0
  348. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/dsl/schema/runtime/runtime.py +0 -0
  349. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/dsl/schema/transport/__init__.py +0 -0
  350. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/dsl/schema/transport/http.py +0 -0
  351. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/dsl/schema/transport/ssh.py +0 -0
  352. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/dsl/schema/workflow.py +0 -0
  353. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/dsl/utils/__init__.py +0 -0
  354. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/dsl/utils/annotation.py +0 -0
  355. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/dsl/utils/enum.py +0 -0
  356. {model_compose-0.4.9 → model_compose-0.4.11}/src/mindor/dsl/utils/path.py +0 -0
  357. {model_compose-0.4.9 → model_compose-0.4.11}/src/model_compose.egg-info/dependency_links.txt +0 -0
  358. {model_compose-0.4.9 → model_compose-0.4.11}/src/model_compose.egg-info/entry_points.txt +0 -0
  359. {model_compose-0.4.9 → model_compose-0.4.11}/src/model_compose.egg-info/requires.txt +0 -0
  360. {model_compose-0.4.9 → model_compose-0.4.11}/src/model_compose.egg-info/top_level.txt +0 -0
  361. {model_compose-0.4.9 → model_compose-0.4.11}/tests/test_cli.py +0 -0
@@ -0,0 +1,184 @@
1
+ Metadata-Version: 2.4
2
+ Name: model-compose
3
+ Version: 0.4.11
4
+ Summary: model-compose: Declarative AI Model and Workflow Orchestrator
5
+ Author-email: Hanyeol Cho <hanyeol.cho@gmail.com>
6
+ License-Expression: MIT
7
+ Project-URL: Homepage, https://github.com/hanyeol/model-compose
8
+ Description-Content-Type: text/markdown
9
+ License-File: LICENSE
10
+ Requires-Dist: click
11
+ Requires-Dist: pyyaml
12
+ Requires-Dist: pydantic
13
+ Requires-Dist: python-dotenv
14
+ Requires-Dist: aiohttp
15
+ Requires-Dist: requests
16
+ Requires-Dist: fastapi
17
+ Requires-Dist: uvicorn
18
+ Requires-Dist: mcp>=1.10.1
19
+ Requires-Dist: ulid
20
+ Requires-Dist: gradio
21
+ Requires-Dist: Pillow
22
+ Requires-Dist: docker
23
+ Dynamic: license-file
24
+
25
+ <div align="center">
26
+
27
+ ![model-compose - Declarative AI Workflow Orchestrator](docs/images/main-banner.png)
28
+
29
+ [![Python Version](https://img.shields.io/badge/python-3.9+-blue.svg)](https://python.org)
30
+ [![PyPI version](https://img.shields.io/pypi/v/model-compose.svg)](https://pypi.org/project/model-compose/)
31
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
32
+ [![Downloads](https://pepy.tech/badge/model-compose)](https://pepy.tech/project/model-compose)
33
+ [![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg)](http://makeapullrequest.com)
34
+
35
+ [한국어](README.ko.md) | [中文](README.zh-cn.md)
36
+
37
+ </div>
38
+
39
+ ---
40
+
41
+ # 🤖 model-compose
42
+
43
+ **model-compose** is a declarative AI workflow orchestrator inspired by `docker-compose`. It lets you define and run AI model pipelines using simple YAML files — no custom code required. Effortlessly connect external AI services (OpenAI, Anthropic, Google, etc.), run local AI models, integrate vector stores, and more — all within powerful, composable workflows.
44
+
45
+ **No custom code. Just YAML configuration.**
46
+
47
+ <div align="center">
48
+
49
+ [📖 User Guide](docs/user-guide/README.md) · [🚀 Quick Start](#-quick-start) · [💡 Examples](examples/README.md) · [🤝 Contributing](#-contributing)
50
+
51
+ </div>
52
+
53
+ ---
54
+
55
+ ## ✨ Features
56
+
57
+ - 🎨 **Zero Code**: Pure YAML configuration—no scripting required
58
+ - 🔄 **Composable**: Reusable components and multi-step workflows
59
+ - 🚀 **Production Ready**: HTTP/MCP servers + Web UI + Docker deployment
60
+ - 🔌 **Connect Anything**: External AI services, local models, vector stores, and more
61
+ - ⚡ **Stream & Scale**: Real-time streaming and event-driven automation
62
+ - 🛠️ **Developer Friendly**: Environment variables, tunneling, webhooks
63
+
64
+ ---
65
+
66
+
67
+ ## 📦 Installation
68
+
69
+ ```
70
+ pip install model-compose
71
+ ```
72
+
73
+ Or install from source:
74
+
75
+ ```
76
+ git clone https://github.com/hanyeol/model-compose.git
77
+ cd model-compose
78
+ pip install -e .
79
+ ```
80
+
81
+ > Requires: Python 3.9 or higher
82
+
83
+ ---
84
+
85
+ ## 🚀 Quick Start
86
+
87
+ Create a `model-compose.yml`:
88
+
89
+ ```yaml
90
+ controller:
91
+ type: http-server
92
+ port: 8080
93
+ webui:
94
+ port: 8081
95
+
96
+ components:
97
+ - id: chatgpt
98
+ type: http-client
99
+ base_url: https://api.openai.com/v1
100
+ path: /chat/completions
101
+ method: POST
102
+ headers:
103
+ Authorization: Bearer ${env.OPENAI_API_KEY}
104
+ body:
105
+ model: gpt-4o
106
+ messages:
107
+ - role: user
108
+ content: ${input.prompt}
109
+
110
+ workflows:
111
+ - id: chat
112
+ default: true
113
+ jobs:
114
+ - component: chatgpt
115
+ ```
116
+
117
+ Run it:
118
+
119
+ ```bash
120
+ export OPENAI_API_KEY=your-key
121
+ model-compose up
122
+ ```
123
+
124
+ Your API is now live at `http://localhost:8080` and Web UI at `http://localhost:8081` 🎉
125
+
126
+ > 💡 Explore [examples](examples/README.md) for more workflows or read the [User Guide](docs/user-guide/README.md).
127
+
128
+ ---
129
+ ## 💡 Key Capabilities
130
+
131
+ ### 🖥️ Built-in Web UI
132
+ Add a visual interface with just 3 lines of YAML:
133
+ ```yaml
134
+ controller:
135
+ webui:
136
+ port: 8081
137
+ ```
138
+ Instantly get a user-friendly interface to test and monitor your workflows. Supports both Gradio (default) and custom static frontends.
139
+
140
+ ### 🛰️ MCP Server Ready
141
+ Transform your workflows into MCP tools by changing one line:
142
+ ```yaml
143
+ controller:
144
+ type: mcp-server # Change from http-server to mcp-server
145
+ ```
146
+ No code changes needed. Your workflows become instantly accessible via the Model Context Protocol.
147
+
148
+ ### 🐳 Docker Deployment
149
+ Deploy anywhere with built-in Docker support:
150
+ ```yaml
151
+ controller:
152
+ runtime: docker
153
+ ```
154
+ Run your workflows in isolated containers with full control over images, volumes, ports, and environment variables.
155
+
156
+ > 📖 See the [User Guide](docs/user-guide/README.md) for detailed configuration and [Examples](examples/README.md) for ready-to-run samples.
157
+
158
+ ---
159
+ ## 🏗 Architecture
160
+
161
+ ![Archtecture Diagram](docs/images/architecture-diagram.png)
162
+
163
+ ---
164
+
165
+ ## 🤝 Contributing
166
+ We welcome all contributions!
167
+ Whether it's fixing bugs, improving docs, or adding examples — every bit helps.
168
+
169
+ ```
170
+ # Setup for development
171
+ git clone https://github.com/hanyeol/model-compose.git
172
+ cd model-compose
173
+ pip install -e .[dev]
174
+ ```
175
+
176
+ ---
177
+
178
+ ## 📄 License
179
+ MIT License © 2025 Hanyeol Cho.
180
+
181
+ ---
182
+
183
+ ## 📬 Contact
184
+ Have questions, ideas, or feedback? [Open an issue](https://github.com/hanyeol/model-compose/issues) or start a discussion on [GitHub Discussions](https://github.com/hanyeol/model-compose/discussions).
@@ -0,0 +1,160 @@
1
+ <div align="center">
2
+
3
+ ![model-compose - Declarative AI Workflow Orchestrator](docs/images/main-banner.png)
4
+
5
+ [![Python Version](https://img.shields.io/badge/python-3.9+-blue.svg)](https://python.org)
6
+ [![PyPI version](https://img.shields.io/pypi/v/model-compose.svg)](https://pypi.org/project/model-compose/)
7
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
8
+ [![Downloads](https://pepy.tech/badge/model-compose)](https://pepy.tech/project/model-compose)
9
+ [![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg)](http://makeapullrequest.com)
10
+
11
+ [한국어](README.ko.md) | [中文](README.zh-cn.md)
12
+
13
+ </div>
14
+
15
+ ---
16
+
17
+ # 🤖 model-compose
18
+
19
+ **model-compose** is a declarative AI workflow orchestrator inspired by `docker-compose`. It lets you define and run AI model pipelines using simple YAML files — no custom code required. Effortlessly connect external AI services (OpenAI, Anthropic, Google, etc.), run local AI models, integrate vector stores, and more — all within powerful, composable workflows.
20
+
21
+ **No custom code. Just YAML configuration.**
22
+
23
+ <div align="center">
24
+
25
+ [📖 User Guide](docs/user-guide/README.md) · [🚀 Quick Start](#-quick-start) · [💡 Examples](examples/README.md) · [🤝 Contributing](#-contributing)
26
+
27
+ </div>
28
+
29
+ ---
30
+
31
+ ## ✨ Features
32
+
33
+ - 🎨 **Zero Code**: Pure YAML configuration—no scripting required
34
+ - 🔄 **Composable**: Reusable components and multi-step workflows
35
+ - 🚀 **Production Ready**: HTTP/MCP servers + Web UI + Docker deployment
36
+ - 🔌 **Connect Anything**: External AI services, local models, vector stores, and more
37
+ - ⚡ **Stream & Scale**: Real-time streaming and event-driven automation
38
+ - 🛠️ **Developer Friendly**: Environment variables, tunneling, webhooks
39
+
40
+ ---
41
+
42
+
43
+ ## 📦 Installation
44
+
45
+ ```
46
+ pip install model-compose
47
+ ```
48
+
49
+ Or install from source:
50
+
51
+ ```
52
+ git clone https://github.com/hanyeol/model-compose.git
53
+ cd model-compose
54
+ pip install -e .
55
+ ```
56
+
57
+ > Requires: Python 3.9 or higher
58
+
59
+ ---
60
+
61
+ ## 🚀 Quick Start
62
+
63
+ Create a `model-compose.yml`:
64
+
65
+ ```yaml
66
+ controller:
67
+ type: http-server
68
+ port: 8080
69
+ webui:
70
+ port: 8081
71
+
72
+ components:
73
+ - id: chatgpt
74
+ type: http-client
75
+ base_url: https://api.openai.com/v1
76
+ path: /chat/completions
77
+ method: POST
78
+ headers:
79
+ Authorization: Bearer ${env.OPENAI_API_KEY}
80
+ body:
81
+ model: gpt-4o
82
+ messages:
83
+ - role: user
84
+ content: ${input.prompt}
85
+
86
+ workflows:
87
+ - id: chat
88
+ default: true
89
+ jobs:
90
+ - component: chatgpt
91
+ ```
92
+
93
+ Run it:
94
+
95
+ ```bash
96
+ export OPENAI_API_KEY=your-key
97
+ model-compose up
98
+ ```
99
+
100
+ Your API is now live at `http://localhost:8080` and Web UI at `http://localhost:8081` 🎉
101
+
102
+ > 💡 Explore [examples](examples/README.md) for more workflows or read the [User Guide](docs/user-guide/README.md).
103
+
104
+ ---
105
+ ## 💡 Key Capabilities
106
+
107
+ ### 🖥️ Built-in Web UI
108
+ Add a visual interface with just 3 lines of YAML:
109
+ ```yaml
110
+ controller:
111
+ webui:
112
+ port: 8081
113
+ ```
114
+ Instantly get a user-friendly interface to test and monitor your workflows. Supports both Gradio (default) and custom static frontends.
115
+
116
+ ### 🛰️ MCP Server Ready
117
+ Transform your workflows into MCP tools by changing one line:
118
+ ```yaml
119
+ controller:
120
+ type: mcp-server # Change from http-server to mcp-server
121
+ ```
122
+ No code changes needed. Your workflows become instantly accessible via the Model Context Protocol.
123
+
124
+ ### 🐳 Docker Deployment
125
+ Deploy anywhere with built-in Docker support:
126
+ ```yaml
127
+ controller:
128
+ runtime: docker
129
+ ```
130
+ Run your workflows in isolated containers with full control over images, volumes, ports, and environment variables.
131
+
132
+ > 📖 See the [User Guide](docs/user-guide/README.md) for detailed configuration and [Examples](examples/README.md) for ready-to-run samples.
133
+
134
+ ---
135
+ ## 🏗 Architecture
136
+
137
+ ![Archtecture Diagram](docs/images/architecture-diagram.png)
138
+
139
+ ---
140
+
141
+ ## 🤝 Contributing
142
+ We welcome all contributions!
143
+ Whether it's fixing bugs, improving docs, or adding examples — every bit helps.
144
+
145
+ ```
146
+ # Setup for development
147
+ git clone https://github.com/hanyeol/model-compose.git
148
+ cd model-compose
149
+ pip install -e .[dev]
150
+ ```
151
+
152
+ ---
153
+
154
+ ## 📄 License
155
+ MIT License © 2025 Hanyeol Cho.
156
+
157
+ ---
158
+
159
+ ## 📬 Contact
160
+ Have questions, ideas, or feedback? [Open an issue](https://github.com/hanyeol/model-compose/issues) or start a discussion on [GitHub Discussions](https://github.com/hanyeol/model-compose/discussions).
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "model-compose"
3
- version = "0.4.9"
3
+ version = "0.4.11"
4
4
  description = "model-compose: Declarative AI Model and Workflow Orchestrator"
5
5
  authors = [
6
6
  { name = "Hanyeol Cho", email = "hanyeol.cho@gmail.com" }
@@ -1,11 +1,18 @@
1
- import click
2
- import json
1
+ from typing import Optional, List
2
+ import importlib.metadata
3
3
  from pathlib import Path
4
+ import click
4
5
  import asyncio
6
+ import json
5
7
 
6
- from mindor.dsl.loader import load_compose_config
7
- from mindor.core.runtime.env import load_env_files, merge_env_data
8
- from mindor.core.compose import *
8
+ def _load_compose_config(config_files: List[Path], env_files: List[Path], env_data: List[str]):
9
+ from mindor.dsl.loader import load_compose_config
10
+ from mindor.core.runtime.env import load_env_files, merge_env_data
11
+
12
+ env = load_env_files(".", env_files or [])
13
+ env = merge_env_data(env, env_data)
14
+
15
+ return load_compose_config(".", config_files, env)
9
16
 
10
17
  @click.group()
11
18
  @click.option(
@@ -13,6 +20,10 @@ from mindor.core.compose import *
13
20
  type=click.Path(exists=True, dir_okay=False, path_type=Path),
14
21
  help="Compose configuration files."
15
22
  )
23
+ @click.version_option(
24
+ version=importlib.metadata.version("model-compose"),
25
+ message="%(prog)s %(version)s"
26
+ )
16
27
  @click.pass_context
17
28
  def compose_command(ctx: click.Context, config_files: List[Path]) -> None:
18
29
  """model-compose"""
@@ -34,21 +45,25 @@ def compose_command(ctx: click.Context, config_files: List[Path]) -> None:
34
45
  @click.option("--verbose", "-v", is_flag=True, help="Enable verbose output.")
35
46
  @click.pass_context
36
47
  def up_command(
37
- ctx: click.Context,
48
+ ctx: click.Context,
38
49
  detach: bool,
39
50
  env_files: List[Path],
40
51
  env_data: List[str],
41
52
  verbose: bool
42
53
  ) -> None:
54
+ from mindor.core.compose import launch_services
43
55
  config_files = ctx.obj.get("config_files", [])
44
56
  async def _async_command():
45
57
  try:
46
- env = load_env_files(".", env_files or [])
47
- env = merge_env_data(env, env_data)
48
- config = load_compose_config(".", config_files, env)
58
+ config = _load_compose_config(config_files, env_files, env_data)
49
59
  await launch_services(config, detach, verbose)
50
60
  except Exception as e:
51
- click.echo(f"❌ {e}", err=True)
61
+ if verbose:
62
+ import traceback
63
+ click.echo(f"❌ Error: {e}\n\nTraceback:", err=True)
64
+ traceback.print_exc()
65
+ else:
66
+ click.echo(f"❌ {e}", err=True)
52
67
  asyncio.run(_async_command())
53
68
 
54
69
  @click.command(name="down")
@@ -70,15 +85,19 @@ def down_command(
70
85
  env_data: List[str],
71
86
  verbose: bool
72
87
  ) -> None:
88
+ from mindor.core.compose import terminate_services
73
89
  config_files = ctx.obj.get("config_files", [])
74
90
  async def _async_command():
75
91
  try:
76
- env = load_env_files(".", env_files or [])
77
- env = merge_env_data(env, env_data)
78
- config = load_compose_config(".", config_files, env)
92
+ config = _load_compose_config(config_files, env_files, env_data)
79
93
  await terminate_services(config, verbose)
80
94
  except Exception as e:
81
- click.echo(f"❌ {e}", err=True)
95
+ if verbose:
96
+ import traceback
97
+ click.echo(f"❌ Error: {e}\n\nTraceback:", err=True)
98
+ traceback.print_exc()
99
+ else:
100
+ click.echo(f"❌ {e}", err=True)
82
101
  asyncio.run(_async_command())
83
102
 
84
103
  @click.command(name="start")
@@ -100,15 +119,19 @@ def start_command(
100
119
  env_data: List[str],
101
120
  verbose: bool
102
121
  ) -> None:
122
+ from mindor.core.compose import start_services
103
123
  config_files = ctx.obj.get("config_files", [])
104
124
  async def _async_command():
105
125
  try:
106
- env = load_env_files(".", env_files or [])
107
- env = merge_env_data(env, env_data)
108
- config = load_compose_config(".", config_files, env)
126
+ config = _load_compose_config(config_files, env_files, env_data)
109
127
  await start_services(config, verbose)
110
128
  except Exception as e:
111
- click.echo(f"❌ {e}", err=True)
129
+ if verbose:
130
+ import traceback
131
+ click.echo(f"❌ Error: {e}\n\nTraceback:", err=True)
132
+ traceback.print_exc()
133
+ else:
134
+ click.echo(f"❌ {e}", err=True)
112
135
  asyncio.run(_async_command())
113
136
 
114
137
  @click.command(name="stop")
@@ -130,15 +153,19 @@ def stop_command(
130
153
  env_data: List[str],
131
154
  verbose: bool
132
155
  ) -> None:
156
+ from mindor.core.compose import stop_services
133
157
  config_files = ctx.obj.get("config_files", [])
134
158
  async def _async_command():
135
159
  try:
136
- env = load_env_files(".", env_files or [])
137
- env = merge_env_data(env, env_data)
138
- config = load_compose_config(".", config_files, env)
160
+ config = _load_compose_config(config_files, env_files, env_data)
139
161
  await stop_services(config, verbose)
140
162
  except Exception as e:
141
- click.echo(f"❌ {e}", err=True)
163
+ if verbose:
164
+ import traceback
165
+ click.echo(f"❌ Error: {e}\n\nTraceback:", err=True)
166
+ traceback.print_exc()
167
+ else:
168
+ click.echo(f"❌ {e}", err=True)
142
169
  asyncio.run(_async_command())
143
170
 
144
171
  @click.command(name="run")
@@ -176,12 +203,11 @@ def run_command(
176
203
  output_path: Optional[Path],
177
204
  verbose: bool
178
205
  ) -> None:
206
+ from mindor.core.compose import run_workflow
179
207
  config_files = ctx.obj.get("config_files", [])
180
208
  async def _async_command():
181
209
  try:
182
- env = load_env_files(".", env_files or [])
183
- env = merge_env_data(env, env_data)
184
- config = load_compose_config(".", config_files, env)
210
+ config = _load_compose_config(config_files, env_files, env_data)
185
211
  input = json.loads(input_json) if input_json else {}
186
212
  state = await run_workflow(config, workflow_id or "__default__", input, output_path, verbose)
187
213
  if isinstance(state.output, (dict, list)) or state.error:
@@ -196,7 +222,12 @@ def run_command(
196
222
  except json.JSONDecodeError:
197
223
  click.echo("❌ Invalid JSON provided for --input", err=True)
198
224
  except Exception as e:
199
- click.echo(f"❌ {e}", err=True)
225
+ if verbose:
226
+ import traceback
227
+ click.echo(f"❌ Error: {e}\n\nTraceback:", err=True)
228
+ traceback.print_exc()
229
+ else:
230
+ click.echo(f"❌ {e}", err=True)
200
231
  asyncio.run(_async_command())
201
232
 
202
233
  compose_command.add_command(up_command)
@@ -16,14 +16,14 @@ from mindor.core.workflow import Workflow, WorkflowResolver, create_workflow
16
16
  from mindor.core.logger import LoggerService, create_logger
17
17
  from mindor.core.controller.webui import ControllerWebUI
18
18
  from mindor.core.workflow.schema import WorkflowSchema, create_workflow_schemas
19
- from mindor.core.utils.workqueue import WorkQueue
19
+ from mindor.core.utils.work_queue import WorkQueue
20
20
  from mindor.core.utils.caching import ExpiringDict
21
21
  from .runtime.specs import ControllerRuntimeSpecs
22
22
  from .runtime.native import NativeRuntimeLauncher
23
23
  from .runtime.docker import DockerRuntimeLauncher
24
24
  from threading import Lock
25
25
  from pathlib import Path
26
- import asyncio, ulid, os
26
+ import asyncio, ulid, os, threading
27
27
 
28
28
  class TaskStatus(str, Enum):
29
29
  PENDING = "pending"
@@ -39,6 +39,19 @@ class TaskState:
39
39
  error: Optional[Any] = None
40
40
 
41
41
  class ControllerService(AsyncService):
42
+ _shared_instance: Optional["ControllerService"] = None
43
+ _shared_instance_lock = threading.Lock()
44
+
45
+ def __new__(cls, *args, **kwargs):
46
+ with cls._shared_instance_lock:
47
+ if cls._shared_instance is None:
48
+ cls._shared_instance = super().__new__(cls)
49
+ return cls._shared_instance
50
+
51
+ @classmethod
52
+ def get_shared_instance(cls) -> Optional["ControllerService"]:
53
+ return cls._shared_instance
54
+
42
55
  def __init__(
43
56
  self,
44
57
  config: ControllerConfig,
@@ -279,7 +292,9 @@ class ControllerService(AsyncService):
279
292
  output = await workflow.run(task_id, input)
280
293
  state = TaskState(task_id=task_id, status=TaskStatus.COMPLETED, output=output)
281
294
  except Exception as e:
282
- state = TaskState(task_id=task_id, status=TaskStatus.FAILED, error=str(e))
295
+ import traceback
296
+ error_message = f"{str(e)}\n\nTraceback:\n{''.join(traceback.format_exception(type(e), e, e.__traceback__))}"
297
+ state = TaskState(task_id=task_id, status=TaskStatus.FAILED, error=error_message)
283
298
 
284
299
  with self.task_states_lock:
285
300
  self.task_states.set(task_id, state, 1 * 3600)
@@ -42,6 +42,10 @@ class TaskResult(BaseModel):
42
42
  error=instance.error
43
43
  )
44
44
 
45
+ @classmethod
46
+ def to_dict(cls, instance: TaskState) -> Dict[str, Any]:
47
+ return cls.from_instance(instance).model_dump(exclude_none=True)
48
+
45
49
  class WorkflowVariableResult(BaseModel):
46
50
  name: Optional[str]
47
51
  type: str
@@ -83,6 +87,10 @@ class WorkflowSimpleResult(BaseModel):
83
87
  default=instance.default or None
84
88
  )
85
89
 
90
+ @classmethod
91
+ def to_dict(cls, instance: WorkflowSchema) -> Dict[str, Any]:
92
+ return cls.from_instance(instance).model_dump(exclude_none=True)
93
+
86
94
  class WorkflowSchemaResult(BaseModel):
87
95
  workflow_id: str
88
96
  title: Optional[str] = None
@@ -102,6 +110,10 @@ class WorkflowSchemaResult(BaseModel):
102
110
  default=instance.default or None
103
111
  )
104
112
 
113
+ @classmethod
114
+ def to_dict(cls, instance: WorkflowSchema) -> Dict[str, Any]:
115
+ return cls.from_instance(instance).model_dump(exclude_none=True)
116
+
105
117
  @classmethod
106
118
  def _to_variable_result(cls, variable: Union[WorkflowVariableConfig, WorkflowVariableGroupConfig]) -> Union[WorkflowVariableResult, WorkflowVariableGroupResult]:
107
119
  if isinstance(variable, WorkflowVariableGroupConfig):
@@ -176,6 +188,10 @@ class HttpServerController(ControllerService):
176
188
 
177
189
  return self._render_task_response(state, output_only)
178
190
 
191
+ @self.router.get("/health")
192
+ async def health_check():
193
+ return JSONResponse(content={ "status": "ok" })
194
+
179
195
  async def _serve(self) -> None:
180
196
  self.server = uvicorn.Server(uvicorn.Config(
181
197
  self.app,
@@ -231,7 +247,7 @@ class HttpServerController(ControllerService):
231
247
  return self._render_task_state(state)
232
248
 
233
249
  def _render_task_state(self, state: TaskState) -> Response:
234
- return JSONResponse(content=TaskResult.from_instance(state).model_dump(exclude_none=True))
250
+ return JSONResponse(content=TaskResult.to_dict(state))
235
251
 
236
252
  def _render_task_output(self, state: TaskState) -> Response:
237
253
  if state.status in [ TaskStatus.PENDING, TaskStatus.PROCESSING ]:
@@ -279,13 +295,13 @@ class HttpServerController(ControllerService):
279
295
 
280
296
  def _render_workflow_list(self, workflows: Dict[str, WorkflowSchema]) -> Response:
281
297
  return JSONResponse(content=[
282
- WorkflowSimpleResult.from_instance(workflow).model_dump(exclude_none=True) for workflow in workflows.values()
298
+ WorkflowSimpleResult.to_dict(workflow) for workflow in workflows.values()
283
299
  ])
284
300
 
285
301
  def _render_workflow_schemas(self, workflows: Dict[str, WorkflowSchema]) -> Response:
286
302
  return JSONResponse(content=[
287
- WorkflowSchemaResult.from_instance(workflow).model_dump(exclude_none=True) for workflow in workflows.values()
303
+ WorkflowSchemaResult.to_dict(workflow) for workflow in workflows.values()
288
304
  ])
289
305
 
290
306
  def _render_workflow_schema(self, workflow: WorkflowSchema) -> Response:
291
- return JSONResponse(content=WorkflowSchemaResult.from_instance(workflow).model_dump(exclude_none=True))
307
+ return JSONResponse(content=WorkflowSchemaResult.to_dict(workflow))
@@ -1,7 +1,7 @@
1
1
  from typing import Type, Union, Literal, Optional, Dict, List, Tuple, Set, Annotated, Any
2
2
  from mindor.dsl.schema.listener import ListenerConfig, ListenerType
3
3
  from mindor.core.foundation import AsyncService
4
- from mindor.core.utils.workqueue import WorkQueue
4
+ from mindor.core.utils.work_queue import WorkQueue
5
5
  from mindor.core.logger import logging
6
6
 
7
7
  class ListenerService(AsyncService):
@@ -1 +1,2 @@
1
1
  from .http_callback import *
2
+ from .http_trigger import *