model-compose 0.3.17__tar.gz → 0.3.18__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 (256) hide show
  1. {model_compose-0.3.17/src/model_compose.egg-info → model_compose-0.3.18}/PKG-INFO +1 -1
  2. {model_compose-0.3.17 → model_compose-0.3.18}/pyproject.toml +1 -1
  3. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/core/component/base.py +4 -4
  4. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/core/component/services/model/tasks/text_generation.py +2 -2
  5. model_compose-0.3.18/src/mindor/core/utils/package.py +63 -0
  6. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/dsl/schema/component/impl/model/impl/common.py +3 -2
  7. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/dsl/schema/component/impl/model/impl/text_generation.py +1 -0
  8. {model_compose-0.3.17 → model_compose-0.3.18/src/model_compose.egg-info}/PKG-INFO +1 -1
  9. model_compose-0.3.17/src/mindor/core/utils/package.py +0 -57
  10. {model_compose-0.3.17 → model_compose-0.3.18}/LICENSE +0 -0
  11. {model_compose-0.3.17 → model_compose-0.3.18}/README.md +0 -0
  12. {model_compose-0.3.17 → model_compose-0.3.18}/setup.cfg +0 -0
  13. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/__init__.py +0 -0
  14. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/cli/__init__.py +0 -0
  15. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/cli/compose.py +0 -0
  16. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/core/__init__.py +0 -0
  17. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/core/component/__init__.py +0 -0
  18. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/core/component/component.py +0 -0
  19. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/core/component/context.py +0 -0
  20. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/core/component/services/__init__.py +0 -0
  21. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/core/component/services/http_client.py +0 -0
  22. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/core/component/services/http_server.py +0 -0
  23. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/core/component/services/mcp_client.py +0 -0
  24. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/core/component/services/mcp_server.py +0 -0
  25. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/core/component/services/model/__init__.py +0 -0
  26. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/core/component/services/model/base.py +0 -0
  27. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/core/component/services/model/loader.py +0 -0
  28. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/core/component/services/model/model.py +0 -0
  29. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/core/component/services/model/tasks/__init__.py +0 -0
  30. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/core/component/services/model/tasks/image_to_text.py +0 -0
  31. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/core/component/services/model/tasks/summarization.py +0 -0
  32. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/core/component/services/model/tasks/text_classification.py +0 -0
  33. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/core/component/services/model/tasks/text_embedding.py +0 -0
  34. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/core/component/services/model/tasks/translation.py +0 -0
  35. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/core/component/services/shell.py +0 -0
  36. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/core/component/services/text_splitter.py +0 -0
  37. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/core/component/services/vector_store/__init__.py +0 -0
  38. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/core/component/services/vector_store/base.py +0 -0
  39. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/core/component/services/vector_store/drivers/__init__.py +0 -0
  40. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/core/component/services/vector_store/drivers/chroma.py +0 -0
  41. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/core/component/services/vector_store/drivers/milvus.py +0 -0
  42. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/core/component/services/vector_store/vector_store.py +0 -0
  43. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/core/component/services/workflow.py +0 -0
  44. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/core/compose/__init__.py +0 -0
  45. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/core/compose/compose.py +0 -0
  46. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/core/compose/manager.py +0 -0
  47. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/core/controller/__init__.py +0 -0
  48. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/core/controller/base.py +0 -0
  49. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/core/controller/controller.py +0 -0
  50. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/core/controller/runner/__init__.py +0 -0
  51. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/core/controller/runner/client.py +0 -0
  52. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/core/controller/runner/http_client.py +0 -0
  53. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/core/controller/runner/mcp_client.py +0 -0
  54. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/core/controller/runner/runner.py +0 -0
  55. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/core/controller/runtime/__init__.py +0 -0
  56. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/core/controller/runtime/docker/__init__.py +0 -0
  57. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/core/controller/runtime/docker/context/Dockerfile +0 -0
  58. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/core/controller/runtime/docker/docker.py +0 -0
  59. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/core/controller/runtime/native/__init__.py +0 -0
  60. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/core/controller/runtime/native/native.py +0 -0
  61. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/core/controller/runtime/specs.py +0 -0
  62. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/core/controller/services/__init__.py +0 -0
  63. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/core/controller/services/http_server.py +0 -0
  64. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/core/controller/services/mcp_server.py +0 -0
  65. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/core/controller/webui/__init__.py +0 -0
  66. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/core/controller/webui/gradio.py +0 -0
  67. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/core/controller/webui/webui.py +0 -0
  68. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/core/gateway/__init__.py +0 -0
  69. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/core/gateway/base.py +0 -0
  70. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/core/gateway/gateway.py +0 -0
  71. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/core/gateway/services/__init__.py +0 -0
  72. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/core/gateway/services/http_tunnel.py +0 -0
  73. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/core/gateway/services/ssh_tunnel.py +0 -0
  74. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/core/listener/__init__.py +0 -0
  75. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/core/listener/base.py +0 -0
  76. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/core/listener/listener.py +0 -0
  77. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/core/listener/services/__init__.py +0 -0
  78. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/core/listener/services/http_callback.py +0 -0
  79. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/core/logger/__init__.py +0 -0
  80. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/core/logger/base.py +0 -0
  81. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/core/logger/logger.py +0 -0
  82. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/core/logger/logging.py +0 -0
  83. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/core/logger/services/__init__.py +0 -0
  84. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/core/logger/services/console.py +0 -0
  85. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/core/logger/services/file.py +0 -0
  86. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/core/runtime/__init__.py +0 -0
  87. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/core/runtime/docker/__init__.py +0 -0
  88. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/core/runtime/docker/docker.py +0 -0
  89. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/core/runtime/env.py +0 -0
  90. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/core/services/__init__.py +0 -0
  91. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/core/services/async_service.py +0 -0
  92. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/core/utils/__init__.py +0 -0
  93. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/core/utils/caching.py +0 -0
  94. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/core/utils/http_client.py +0 -0
  95. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/core/utils/http_request.py +0 -0
  96. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/core/utils/http_response.py +0 -0
  97. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/core/utils/http_status.py +0 -0
  98. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/core/utils/image.py +0 -0
  99. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/core/utils/mcp_client.py +0 -0
  100. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/core/utils/renderers.py +0 -0
  101. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/core/utils/resolvers.py +0 -0
  102. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/core/utils/shell.py +0 -0
  103. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/core/utils/ssh_client.py +0 -0
  104. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/core/utils/streamer.py +0 -0
  105. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/core/utils/streaming.py +0 -0
  106. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/core/utils/time.py +0 -0
  107. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/core/utils/workqueue.py +0 -0
  108. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/core/workflow/__init__.py +0 -0
  109. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/core/workflow/context.py +0 -0
  110. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/core/workflow/job/__init__.py +0 -0
  111. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/core/workflow/job/base.py +0 -0
  112. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/core/workflow/job/impl/__init__.py +0 -0
  113. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/core/workflow/job/impl/action.py +0 -0
  114. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/core/workflow/job/impl/delay.py +0 -0
  115. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/core/workflow/job/impl/filter.py +0 -0
  116. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/core/workflow/job/impl/if_.py +0 -0
  117. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/core/workflow/job/impl/random_router.py +0 -0
  118. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/core/workflow/job/impl/switch.py +0 -0
  119. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/core/workflow/job/job.py +0 -0
  120. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/core/workflow/schema.py +0 -0
  121. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/core/workflow/workflow.py +0 -0
  122. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/dsl/__init__.py +0 -0
  123. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/dsl/loader.py +0 -0
  124. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/dsl/schema/__init__.py +0 -0
  125. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/dsl/schema/action/__init__.py +0 -0
  126. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/dsl/schema/action/action.py +0 -0
  127. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/dsl/schema/action/impl/__init__.py +0 -0
  128. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/dsl/schema/action/impl/common.py +0 -0
  129. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/dsl/schema/action/impl/http_client.py +0 -0
  130. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/dsl/schema/action/impl/http_server.py +0 -0
  131. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/dsl/schema/action/impl/mcp_client.py +0 -0
  132. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/dsl/schema/action/impl/mcp_server.py +0 -0
  133. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/dsl/schema/action/impl/model/__init__.py +0 -0
  134. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/dsl/schema/action/impl/model/impl/__init__.py +0 -0
  135. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/dsl/schema/action/impl/model/impl/chat_completion.py +0 -0
  136. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/dsl/schema/action/impl/model/impl/common.py +0 -0
  137. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/dsl/schema/action/impl/model/impl/image_to_text.py +0 -0
  138. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/dsl/schema/action/impl/model/impl/summarization.py +0 -0
  139. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/dsl/schema/action/impl/model/impl/text_classification.py +0 -0
  140. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/dsl/schema/action/impl/model/impl/text_embedding.py +0 -0
  141. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/dsl/schema/action/impl/model/impl/text_generation.py +0 -0
  142. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/dsl/schema/action/impl/model/impl/translation.py +0 -0
  143. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/dsl/schema/action/impl/model/model.py +0 -0
  144. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/dsl/schema/action/impl/shell.py +0 -0
  145. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/dsl/schema/action/impl/text_splitter.py +0 -0
  146. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/dsl/schema/action/impl/vector_store/__init__.py +0 -0
  147. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/dsl/schema/action/impl/vector_store/impl/__init__.py +0 -0
  148. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/dsl/schema/action/impl/vector_store/impl/chroma.py +0 -0
  149. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/dsl/schema/action/impl/vector_store/impl/common.py +0 -0
  150. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/dsl/schema/action/impl/vector_store/impl/faiss.py +0 -0
  151. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/dsl/schema/action/impl/vector_store/impl/milvus.py +0 -0
  152. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/dsl/schema/action/impl/vector_store/impl/qdrant.py +0 -0
  153. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/dsl/schema/action/impl/vector_store/vector_store.py +0 -0
  154. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/dsl/schema/action/impl/workflow.py +0 -0
  155. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/dsl/schema/component/__init__.py +0 -0
  156. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/dsl/schema/component/component.py +0 -0
  157. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/dsl/schema/component/impl/__init__.py +0 -0
  158. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/dsl/schema/component/impl/common.py +0 -0
  159. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/dsl/schema/component/impl/http_client.py +0 -0
  160. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/dsl/schema/component/impl/http_server.py +0 -0
  161. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/dsl/schema/component/impl/mcp_client.py +0 -0
  162. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/dsl/schema/component/impl/mcp_server.py +0 -0
  163. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/dsl/schema/component/impl/model/__init__.py +0 -0
  164. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/dsl/schema/component/impl/model/impl/__init__.py +0 -0
  165. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/dsl/schema/component/impl/model/impl/chat_completion.py +0 -0
  166. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/dsl/schema/component/impl/model/impl/image_to_text.py +0 -0
  167. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/dsl/schema/component/impl/model/impl/summarization.py +0 -0
  168. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/dsl/schema/component/impl/model/impl/text_classification.py +0 -0
  169. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/dsl/schema/component/impl/model/impl/text_embedding.py +0 -0
  170. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/dsl/schema/component/impl/model/impl/translation.py +0 -0
  171. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/dsl/schema/component/impl/model/impl/types.py +0 -0
  172. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/dsl/schema/component/impl/model/model.py +0 -0
  173. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/dsl/schema/component/impl/shell.py +0 -0
  174. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/dsl/schema/component/impl/text_splitter.py +0 -0
  175. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/dsl/schema/component/impl/types.py +0 -0
  176. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/dsl/schema/component/impl/vector_store/__init__.py +0 -0
  177. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/dsl/schema/component/impl/vector_store/impl/__init__.py +0 -0
  178. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/dsl/schema/component/impl/vector_store/impl/chroma.py +0 -0
  179. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/dsl/schema/component/impl/vector_store/impl/common.py +0 -0
  180. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/dsl/schema/component/impl/vector_store/impl/faiss.py +0 -0
  181. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/dsl/schema/component/impl/vector_store/impl/milvus.py +0 -0
  182. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/dsl/schema/component/impl/vector_store/impl/qdrant.py +0 -0
  183. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/dsl/schema/component/impl/vector_store/impl/types.py +0 -0
  184. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/dsl/schema/component/impl/vector_store/vector_store.py +0 -0
  185. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/dsl/schema/component/impl/workflow.py +0 -0
  186. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/dsl/schema/compose.py +0 -0
  187. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/dsl/schema/controller/__init__.py +0 -0
  188. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/dsl/schema/controller/controller.py +0 -0
  189. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/dsl/schema/controller/impl/__init__.py +0 -0
  190. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/dsl/schema/controller/impl/common.py +0 -0
  191. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/dsl/schema/controller/impl/http_server.py +0 -0
  192. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/dsl/schema/controller/impl/mcp_server.py +0 -0
  193. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/dsl/schema/controller/impl/types.py +0 -0
  194. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/dsl/schema/controller/webui/__init__.py +0 -0
  195. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/dsl/schema/controller/webui/impl/__init__.py +0 -0
  196. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/dsl/schema/controller/webui/impl/common.py +0 -0
  197. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/dsl/schema/controller/webui/impl/dynamic.py +0 -0
  198. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/dsl/schema/controller/webui/impl/gradio.py +0 -0
  199. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/dsl/schema/controller/webui/impl/static.py +0 -0
  200. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/dsl/schema/controller/webui/webui.py +0 -0
  201. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/dsl/schema/gateway/__init__.py +0 -0
  202. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/dsl/schema/gateway/gateway.py +0 -0
  203. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/dsl/schema/gateway/impl/__init__.py +0 -0
  204. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/dsl/schema/gateway/impl/common.py +0 -0
  205. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/dsl/schema/gateway/impl/http_tunnel/__init__.py +0 -0
  206. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/dsl/schema/gateway/impl/http_tunnel/http_tunnel.py +0 -0
  207. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/dsl/schema/gateway/impl/http_tunnel/impl/__init__.py +0 -0
  208. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/dsl/schema/gateway/impl/http_tunnel/impl/cloudflare.py +0 -0
  209. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/dsl/schema/gateway/impl/http_tunnel/impl/common.py +0 -0
  210. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/dsl/schema/gateway/impl/http_tunnel/impl/ngrok.py +0 -0
  211. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/dsl/schema/gateway/impl/ssh_tunnel.py +0 -0
  212. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/dsl/schema/gateway/impl/types.py +0 -0
  213. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/dsl/schema/job/__init__.py +0 -0
  214. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/dsl/schema/job/impl/__init__.py +0 -0
  215. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/dsl/schema/job/impl/action.py +0 -0
  216. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/dsl/schema/job/impl/common.py +0 -0
  217. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/dsl/schema/job/impl/delay.py +0 -0
  218. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/dsl/schema/job/impl/filter.py +0 -0
  219. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/dsl/schema/job/impl/if_.py +0 -0
  220. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/dsl/schema/job/impl/random_router.py +0 -0
  221. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/dsl/schema/job/impl/switch.py +0 -0
  222. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/dsl/schema/job/impl/types.py +0 -0
  223. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/dsl/schema/job/job.py +0 -0
  224. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/dsl/schema/listener/__init__.py +0 -0
  225. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/dsl/schema/listener/impl/__init__.py +0 -0
  226. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/dsl/schema/listener/impl/common.py +0 -0
  227. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/dsl/schema/listener/impl/http_callback.py +0 -0
  228. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/dsl/schema/listener/impl/types.py +0 -0
  229. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/dsl/schema/listener/listener.py +0 -0
  230. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/dsl/schema/logger/__init__.py +0 -0
  231. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/dsl/schema/logger/impl/__init__.py +0 -0
  232. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/dsl/schema/logger/impl/common.py +0 -0
  233. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/dsl/schema/logger/impl/console.py +0 -0
  234. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/dsl/schema/logger/impl/file.py +0 -0
  235. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/dsl/schema/logger/impl/types.py +0 -0
  236. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/dsl/schema/logger/logger.py +0 -0
  237. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/dsl/schema/runtime/__init__.py +0 -0
  238. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/dsl/schema/runtime/impl/__init__.py +0 -0
  239. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/dsl/schema/runtime/impl/common.py +0 -0
  240. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/dsl/schema/runtime/impl/docker.py +0 -0
  241. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/dsl/schema/runtime/impl/native.py +0 -0
  242. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/dsl/schema/runtime/impl/types.py +0 -0
  243. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/dsl/schema/runtime/runtime.py +0 -0
  244. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/dsl/schema/transport/__init__.py +0 -0
  245. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/dsl/schema/transport/http.py +0 -0
  246. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/dsl/schema/transport/ssh.py +0 -0
  247. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/dsl/schema/workflow.py +0 -0
  248. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/dsl/utils/__init__.py +0 -0
  249. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/dsl/utils/annotation.py +0 -0
  250. {model_compose-0.3.17 → model_compose-0.3.18}/src/mindor/dsl/utils/enum.py +0 -0
  251. {model_compose-0.3.17 → model_compose-0.3.18}/src/model_compose.egg-info/SOURCES.txt +0 -0
  252. {model_compose-0.3.17 → model_compose-0.3.18}/src/model_compose.egg-info/dependency_links.txt +0 -0
  253. {model_compose-0.3.17 → model_compose-0.3.18}/src/model_compose.egg-info/entry_points.txt +0 -0
  254. {model_compose-0.3.17 → model_compose-0.3.18}/src/model_compose.egg-info/requires.txt +0 -0
  255. {model_compose-0.3.17 → model_compose-0.3.18}/src/model_compose.egg-info/top_level.txt +0 -0
  256. {model_compose-0.3.17 → model_compose-0.3.18}/tests/test_cli.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: model-compose
3
- Version: 0.3.17
3
+ Version: 0.3.18
4
4
  Summary: model-compose: Declarative AI Model and Workflow Orchestrator
5
5
  Author-email: Hanyeol Cho <hanyeol.cho@gmail.com>
6
6
  License-Expression: MIT
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "model-compose"
3
- version = "0.3.17"
3
+ version = "0.3.18"
4
4
  description = "model-compose: Declarative AI Model and Workflow Orchestrator"
5
5
  authors = [
6
6
  { name = "Hanyeol Cho", email = "hanyeol.cho@gmail.com" }
@@ -7,7 +7,7 @@ from mindor.dsl.schema.gateway import GatewayConfig
7
7
  from mindor.dsl.schema.workflow import WorkflowConfig
8
8
  from mindor.core.services import AsyncService
9
9
  from mindor.core.utils.workqueue import WorkQueue
10
- from mindor.core.utils.package import extract_module_name, is_module_installed, install_package
10
+ from mindor.core.utils.package import install_package, parse_requirement, is_requirement_satisfied
11
11
  from mindor.core.logger import logging
12
12
  from .context import ComponentActionContext
13
13
 
@@ -89,7 +89,7 @@ class ComponentService(AsyncService):
89
89
  async def _teardown(self) -> None:
90
90
  pass
91
91
 
92
- async def _get_setup_requirements(self) -> Optional[List[str]]:
92
+ def _get_setup_requirements(self) -> Optional[List[str]]:
93
93
  return None
94
94
 
95
95
  async def _start(self) -> None:
@@ -119,8 +119,8 @@ class ComponentService(AsyncService):
119
119
 
120
120
  async def _install_packages(self, packages: List[str]) -> None:
121
121
  for package_spec in packages:
122
- module_name = extract_module_name(package_spec)
123
- if not is_module_installed(module_name):
122
+ requirement = parse_requirement(package_spec)
123
+ if not requirement or not is_requirement_satisfied(requirement):
124
124
  logging.info(f"Installing missing module: {package_spec}")
125
125
  await install_package(package_spec)
126
126
 
@@ -2,7 +2,7 @@ from __future__ import annotations
2
2
  from typing import TYPE_CHECKING
3
3
 
4
4
  from typing import Type, Union, Literal, Optional, Dict, List, Tuple, Set, Annotated, Any
5
- from mindor.dsl.schema.component import ModelComponentConfig
5
+ from mindor.dsl.schema.component import ModelComponentConfig, ModelSourceConfig
6
6
  from mindor.dsl.schema.action import ModelActionConfig, TextGenerationModelActionConfig
7
7
  from mindor.core.utils.streamer import AsyncStreamer
8
8
  from mindor.core.logger import logging
@@ -126,7 +126,7 @@ class TextGenerationTaskService(ModelTaskService):
126
126
 
127
127
  async def _run(self, action: ModelActionConfig, context: ComponentActionContext, loop: asyncio.AbstractEventLoop) -> Any:
128
128
  return await TextGenerationTaskAction(action, self.model, self.tokenizer, self.device).run(context, loop)
129
-
129
+
130
130
  def _get_model_class(self) -> Type[PreTrainedModel]:
131
131
  from transformers import AutoModelForCausalLM
132
132
  return AutoModelForCausalLM
@@ -0,0 +1,63 @@
1
+ from typing import Optional
2
+ from packaging.requirements import Requirement, SpecifierSet
3
+ from packaging.utils import canonicalize_name
4
+ from importlib.metadata import version, PackageNotFoundError
5
+ import sys, subprocess, re
6
+ import asyncio
7
+
8
+ async def install_package(package_spec: str) -> None:
9
+ """Install a package using pip.
10
+
11
+ Args:
12
+ package_spec: Package specification to install (e.g., "torch>=2.0.0")
13
+ """
14
+ process = await asyncio.create_subprocess_exec(
15
+ sys.executable, "-m", "pip", "install", package_spec,
16
+ stdout=asyncio.subprocess.PIPE,
17
+ stderr=asyncio.subprocess.PIPE
18
+ )
19
+
20
+ stdout, stderr = await process.communicate()
21
+
22
+ if process.returncode != 0:
23
+ raise subprocess.CalledProcessError(
24
+ process.returncode,
25
+ [sys.executable, "-m", "pip", "install", package_spec],
26
+ output=stdout,
27
+ stderr=stderr
28
+ )
29
+
30
+ def parse_requirement(package_spec: str) -> Optional[Requirement]:
31
+ """Attempt to parse the package specification as a PEP 508 requirement.
32
+
33
+ Args:
34
+ package_spec: A package specification string (e.g., "torch>=2.0.0")
35
+
36
+ Returns:
37
+ A Requirement object if the specification can be parsed, None otherwise
38
+ """
39
+ try:
40
+ return Requirement(package_spec)
41
+ except Exception:
42
+ return None
43
+
44
+ def is_requirement_satisfied(requirement: Requirement) -> bool:
45
+ """Check whether the installed version of a package satisfies the given requirement.
46
+
47
+ Args:
48
+ requirement: Requirement object specifying the package name and version constraints.
49
+
50
+ Returns:
51
+ True if the package is installed and its version meets the requirement, False otherwise.
52
+ """
53
+ distribution_name = canonicalize_name(requirement.name)
54
+ try:
55
+ installed_version = version(distribution_name) # e.g. "4.41.2"
56
+ except PackageNotFoundError:
57
+ return False
58
+
59
+ specifier: SpecifierSet = requirement.specifier
60
+ if not specifier:
61
+ return True
62
+
63
+ return specifier.contains(installed_version, prereleases=True)
@@ -23,14 +23,15 @@ class AttentionMode(str, Enum):
23
23
 
24
24
  class ModelSourceConfig(BaseModel):
25
25
  model_id: str = Field(..., description="Model identifier.")
26
- provider: Optional[str] = Field(default=None, description="Model provider.")
26
+ provider: Literal[ "huggingface" ] = Field(default="huggingface", description="Model provider.")
27
27
  revision: Optional[str] = Field(default=None, description="Model version or branch to load.")
28
28
  filename: Optional[str] = Field(default=None, description="Specific file inside the model repo.")
29
29
 
30
30
  class CommonModelComponentConfig(CommonComponentConfig):
31
31
  type: Literal[ComponentType.MODEL]
32
32
  task: ModelTaskType = Field(..., description="Type of task the model performs.")
33
- model: Union[str, ModelSourceConfig] = Field(..., description="Model source.")
33
+ driver: Literal[ "huggingface" ] = Field(default="huggingface", description="")
34
+ model: Union[str, ModelSourceConfig] = Field(..., description="Model source configuration.")
34
35
  cache_dir: Optional[str] = Field(default=None, description="Directory to cache the model files.")
35
36
  local_files_only: bool = Field(default=False, description="Force loading from local files only.")
36
37
  device_mode: DeviceMode = Field(default=DeviceMode.AUTO, description="Device allocation mode.")
@@ -1,4 +1,5 @@
1
1
  from typing import Type, Union, Literal, Optional, Dict, List, Tuple, Set, Annotated, Any
2
+ from enum import Enum
2
3
  from pydantic import BaseModel, Field
3
4
  from pydantic import model_validator
4
5
  from mindor.dsl.schema.action import TextGenerationModelActionConfig
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: model-compose
3
- Version: 0.3.17
3
+ Version: 0.3.18
4
4
  Summary: model-compose: Declarative AI Model and Workflow Orchestrator
5
5
  Author-email: Hanyeol Cho <hanyeol.cho@gmail.com>
6
6
  License-Expression: MIT
@@ -1,57 +0,0 @@
1
- import sys, subprocess, re
2
- import asyncio
3
-
4
- _VERSION_SPEC_PATTERN = re.compile(r'^([a-zA-Z0-9_\-\.]+)([><=!]+.*)?$')
5
-
6
- async def install_package(package_spec: str) -> None:
7
- """Install a package using pip.
8
-
9
- Args:
10
- package_spec: Package specification to install (e.g., "torch>=2.0.0")
11
- """
12
- process = await asyncio.create_subprocess_exec(
13
- sys.executable, "-m", "pip", "install", package_spec,
14
- stdout=asyncio.subprocess.PIPE,
15
- stderr=asyncio.subprocess.PIPE
16
- )
17
-
18
- stdout, stderr = await process.communicate()
19
-
20
- if process.returncode != 0:
21
- raise subprocess.CalledProcessError(
22
- process.returncode,
23
- [sys.executable, "-m", "pip", "install", package_spec],
24
- output=stdout,
25
- stderr=stderr
26
- )
27
-
28
- def extract_module_name(package_spec: str) -> str:
29
- """Extract module name from package specification.
30
-
31
- Args:
32
- package_spec: Package specification like "torch>=2.0.0" or "transformers"
33
-
34
- Returns:
35
- Module name for importing (e.g., "torch" from "torch>=2.0.0")
36
- """
37
- match = re.match(_VERSION_SPEC_PATTERN, package_spec)
38
-
39
- if match:
40
- return match.group(1)
41
-
42
- return None
43
-
44
- def is_module_installed(module_name: str) -> bool:
45
- """Check if a module is installed and importable.
46
-
47
- Args:
48
- module_name: Name of the module to check
49
-
50
- Returns:
51
- True if module can be imported, False otherwise
52
- """
53
- try:
54
- __import__(module_name)
55
- return True
56
- except ImportError:
57
- return False
File without changes
File without changes
File without changes