model-compose 0.4.49__tar.gz → 0.4.51__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 (538) hide show
  1. {model_compose-0.4.49/src/model_compose.egg-info → model_compose-0.4.51}/PKG-INFO +1 -1
  2. {model_compose-0.4.49 → model_compose-0.4.51}/pyproject.toml +1 -1
  3. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/component/services/__init__.py +1 -0
  4. model_compose-0.4.51/src/mindor/core/component/services/graph_store/__init__.py +1 -0
  5. model_compose-0.4.51/src/mindor/core/component/services/graph_store/base.py +31 -0
  6. model_compose-0.4.51/src/mindor/core/component/services/graph_store/drivers/__init__.py +2 -0
  7. model_compose-0.4.51/src/mindor/core/component/services/graph_store/drivers/arangodb.py +272 -0
  8. model_compose-0.4.51/src/mindor/core/component/services/graph_store/drivers/neo4j.py +310 -0
  9. model_compose-0.4.51/src/mindor/core/component/services/graph_store/graph_store.py +47 -0
  10. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/listener/services/http_callback.py +4 -0
  11. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/utils/renderers.py +1 -1
  12. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/action/action.py +2 -1
  13. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/action/impl/__init__.py +1 -0
  14. model_compose-0.4.51/src/mindor/dsl/schema/action/impl/graph_store/__init__.py +2 -0
  15. model_compose-0.4.51/src/mindor/dsl/schema/action/impl/graph_store/graph_store.py +8 -0
  16. model_compose-0.4.51/src/mindor/dsl/schema/action/impl/graph_store/impl/__init__.py +3 -0
  17. model_compose-0.4.51/src/mindor/dsl/schema/action/impl/graph_store/impl/arangodb.py +65 -0
  18. model_compose-0.4.51/src/mindor/dsl/schema/action/impl/graph_store/impl/common.py +110 -0
  19. model_compose-0.4.51/src/mindor/dsl/schema/action/impl/graph_store/impl/neo4j.py +36 -0
  20. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/component/component.py +2 -1
  21. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/component/impl/__init__.py +1 -0
  22. model_compose-0.4.51/src/mindor/dsl/schema/component/impl/graph_store/__init__.py +2 -0
  23. model_compose-0.4.51/src/mindor/dsl/schema/component/impl/graph_store/graph_store.py +11 -0
  24. model_compose-0.4.51/src/mindor/dsl/schema/component/impl/graph_store/impl/__init__.py +3 -0
  25. model_compose-0.4.51/src/mindor/dsl/schema/component/impl/graph_store/impl/arangodb.py +23 -0
  26. model_compose-0.4.51/src/mindor/dsl/schema/component/impl/graph_store/impl/common.py +13 -0
  27. model_compose-0.4.51/src/mindor/dsl/schema/component/impl/graph_store/impl/neo4j.py +23 -0
  28. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/component/impl/types.py +1 -0
  29. {model_compose-0.4.49 → model_compose-0.4.51/src/model_compose.egg-info}/PKG-INFO +1 -1
  30. {model_compose-0.4.49 → model_compose-0.4.51}/src/model_compose.egg-info/SOURCES.txt +18 -0
  31. {model_compose-0.4.49 → model_compose-0.4.51}/LICENSE +0 -0
  32. {model_compose-0.4.49 → model_compose-0.4.51}/README.md +0 -0
  33. {model_compose-0.4.49 → model_compose-0.4.51}/setup.cfg +0 -0
  34. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/__init__.py +0 -0
  35. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/cli/__init__.py +0 -0
  36. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/cli/compose.py +0 -0
  37. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/cli/interrupt.py +0 -0
  38. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/__init__.py +0 -0
  39. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/component/__init__.py +0 -0
  40. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/component/base.py +0 -0
  41. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/component/component.py +0 -0
  42. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/component/context.py +0 -0
  43. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/component/runtime/__init__.py +0 -0
  44. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/component/runtime/process_manager.py +0 -0
  45. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/component/runtime/process_worker.py +0 -0
  46. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/component/services/agent.py +0 -0
  47. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/component/services/audio_converter/__init__.py +0 -0
  48. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/component/services/audio_converter/audio_converter.py +0 -0
  49. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/component/services/audio_converter/base.py +0 -0
  50. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/component/services/audio_converter/drivers/__init__.py +0 -0
  51. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/component/services/audio_converter/drivers/common.py +0 -0
  52. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/component/services/audio_converter/drivers/ffmpeg.py +0 -0
  53. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/component/services/audio_extractor/__init__.py +0 -0
  54. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/component/services/audio_extractor/audio_extractor.py +0 -0
  55. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/component/services/audio_extractor/base.py +0 -0
  56. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/component/services/audio_extractor/drivers/__init__.py +0 -0
  57. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/component/services/audio_extractor/drivers/ffmpeg.py +0 -0
  58. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/component/services/datasets/__init__.py +0 -0
  59. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/component/services/datasets/datasets.py +0 -0
  60. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/component/services/datasets/providers/__init__.py +0 -0
  61. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/component/services/datasets/providers/common.py +0 -0
  62. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/component/services/datasets/providers/huggingface.py +0 -0
  63. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/component/services/datasets/providers/local.py +0 -0
  64. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/component/services/datasets/utils.py +0 -0
  65. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/component/services/http_client.py +0 -0
  66. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/component/services/http_server.py +0 -0
  67. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/component/services/image_processor.py +0 -0
  68. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/component/services/key_value_store/__init__.py +0 -0
  69. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/component/services/key_value_store/base.py +0 -0
  70. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/component/services/key_value_store/drivers/__init__.py +0 -0
  71. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/component/services/key_value_store/drivers/redis.py +0 -0
  72. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/component/services/key_value_store/key_value_store.py +0 -0
  73. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/component/services/mcp_client.py +0 -0
  74. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/component/services/mcp_server.py +0 -0
  75. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/component/services/model/__init__.py +0 -0
  76. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/component/services/model/base/__init__.py +0 -0
  77. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/component/services/model/base/common.py +0 -0
  78. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/component/services/model/base/huggingface.py +0 -0
  79. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/component/services/model/base/huggingface_hub.py +0 -0
  80. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/component/services/model/base/llamacpp.py +0 -0
  81. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/component/services/model/base/unsloth.py +0 -0
  82. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/component/services/model/model.py +0 -0
  83. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/component/services/model/tasks/__init__.py +0 -0
  84. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/component/services/model/tasks/chat_completion/__init__.py +0 -0
  85. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/component/services/model/tasks/chat_completion/huggingface.py +0 -0
  86. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/component/services/model/tasks/chat_completion/llamacpp.py +0 -0
  87. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/component/services/model/tasks/face_embedding/__init__.py +0 -0
  88. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/component/services/model/tasks/face_embedding/common.py +0 -0
  89. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/component/services/model/tasks/face_embedding/custom.py +0 -0
  90. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/component/services/model/tasks/face_embedding/insightface.py +0 -0
  91. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/component/services/model/tasks/image_generation/__init__.py +0 -0
  92. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/component/services/model/tasks/image_generation/common.py +0 -0
  93. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/component/services/model/tasks/image_generation/custom.py +0 -0
  94. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/component/services/model/tasks/image_generation/flux.py +0 -0
  95. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/component/services/model/tasks/image_generation/hunyuan_image.py +0 -0
  96. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/component/services/model/tasks/image_generation/sdxl.py +0 -0
  97. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/component/services/model/tasks/image_to_text/__init__.py +0 -0
  98. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/component/services/model/tasks/image_to_text/huggingface.py +0 -0
  99. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/component/services/model/tasks/image_upscale/__init__.py +0 -0
  100. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/component/services/model/tasks/image_upscale/common.py +0 -0
  101. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/component/services/model/tasks/image_upscale/custom.py +0 -0
  102. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/component/services/model/tasks/image_upscale/esrgan.py +0 -0
  103. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/component/services/model/tasks/image_upscale/ldsr.py +0 -0
  104. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/component/services/model/tasks/image_upscale/real_esrgan.py +0 -0
  105. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/component/services/model/tasks/image_upscale/swinir.py +0 -0
  106. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/component/services/model/tasks/speech_to_text/__init__.py +0 -0
  107. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/component/services/model/tasks/speech_to_text/huggingface.py +0 -0
  108. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/component/services/model/tasks/text_classification/__init__.py +0 -0
  109. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/component/services/model/tasks/text_classification/huggingface.py +0 -0
  110. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/component/services/model/tasks/text_embedding/__init__.py +0 -0
  111. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/component/services/model/tasks/text_embedding/huggingface.py +0 -0
  112. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/component/services/model/tasks/text_embedding/llamacpp.py +0 -0
  113. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/component/services/model/tasks/text_generation/__init__.py +0 -0
  114. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/component/services/model/tasks/text_generation/huggingface.py +0 -0
  115. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/component/services/model/tasks/text_generation/llamacpp.py +0 -0
  116. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/component/services/model/tasks/text_to_speech/__init__.py +0 -0
  117. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/component/services/model/tasks/text_to_speech/common.py +0 -0
  118. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/component/services/model/tasks/text_to_speech/custom.py +0 -0
  119. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/component/services/model/tasks/text_to_speech/qwen.py +0 -0
  120. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/component/services/shell.py +0 -0
  121. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/component/services/text_splitter.py +0 -0
  122. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/component/services/vector_store/__init__.py +0 -0
  123. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/component/services/vector_store/base.py +0 -0
  124. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/component/services/vector_store/drivers/__init__.py +0 -0
  125. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/component/services/vector_store/drivers/chroma.py +0 -0
  126. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/component/services/vector_store/drivers/milvus.py +0 -0
  127. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/component/services/vector_store/vector_store.py +0 -0
  128. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/component/services/video_converter/__init__.py +0 -0
  129. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/component/services/video_converter/base.py +0 -0
  130. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/component/services/video_converter/drivers/__init__.py +0 -0
  131. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/component/services/video_converter/drivers/common.py +0 -0
  132. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/component/services/video_converter/drivers/ffmpeg.py +0 -0
  133. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/component/services/video_converter/video_converter.py +0 -0
  134. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/component/services/video_scene_detector/__init__.py +0 -0
  135. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/component/services/video_scene_detector/base.py +0 -0
  136. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/component/services/video_scene_detector/drivers/__init__.py +0 -0
  137. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/component/services/video_scene_detector/drivers/ffmpeg.py +0 -0
  138. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/component/services/video_scene_detector/drivers/pyscenedetect.py +0 -0
  139. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/component/services/video_scene_detector/drivers/transnetv2.py +0 -0
  140. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/component/services/video_scene_detector/video_scene_detector.py +0 -0
  141. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/component/services/web_browser/__init__.py +0 -0
  142. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/component/services/web_browser/base.py +0 -0
  143. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/component/services/web_browser/drivers/__init__.py +0 -0
  144. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/component/services/web_browser/drivers/chrome.py +0 -0
  145. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/component/services/web_browser/drivers/playwright.py +0 -0
  146. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/component/services/web_browser/web_browser.py +0 -0
  147. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/component/services/web_scraper.py +0 -0
  148. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/component/services/websocket_client.py +0 -0
  149. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/component/services/websocket_server.py +0 -0
  150. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/component/services/workflow.py +0 -0
  151. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/compose/__init__.py +0 -0
  152. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/compose/compose.py +0 -0
  153. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/compose/manager.py +0 -0
  154. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/compose/validator.py +0 -0
  155. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/controller/__init__.py +0 -0
  156. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/controller/adapters/__init__.py +0 -0
  157. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/controller/adapters/adapter.py +0 -0
  158. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/controller/adapters/base.py +0 -0
  159. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/controller/adapters/services/__init__.py +0 -0
  160. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/controller/adapters/services/http_server.py +0 -0
  161. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/controller/adapters/services/mcp_server.py +0 -0
  162. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/controller/adapters/services/queue_subscriber/__init__.py +0 -0
  163. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/controller/adapters/services/queue_subscriber/base.py +0 -0
  164. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/controller/adapters/services/queue_subscriber/drivers/__init__.py +0 -0
  165. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/controller/adapters/services/queue_subscriber/drivers/redis.py +0 -0
  166. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/controller/adapters/services/queue_subscriber/queue_subscriber.py +0 -0
  167. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/controller/base.py +0 -0
  168. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/controller/controller.py +0 -0
  169. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/controller/queue/__init__.py +0 -0
  170. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/controller/queue/base.py +0 -0
  171. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/controller/queue/drivers/__init__.py +0 -0
  172. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/controller/queue/drivers/redis.py +0 -0
  173. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/controller/queue/queue.py +0 -0
  174. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/controller/runner/__init__.py +0 -0
  175. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/controller/runner/client.py +0 -0
  176. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/controller/runner/http_client.py +0 -0
  177. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/controller/runner/mcp_client.py +0 -0
  178. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/controller/runner/runner.py +0 -0
  179. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/controller/runtime/__init__.py +0 -0
  180. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/controller/runtime/apple_container/__init__.py +0 -0
  181. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/controller/runtime/apple_container/apple_container.py +0 -0
  182. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/controller/runtime/docker/__init__.py +0 -0
  183. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/controller/runtime/docker/context/Dockerfile +0 -0
  184. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/controller/runtime/docker/docker.py +0 -0
  185. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/controller/runtime/native/__init__.py +0 -0
  186. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/controller/runtime/native/native.py +0 -0
  187. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/controller/runtime/specs.py +0 -0
  188. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/controller/webui/__init__.py +0 -0
  189. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/controller/webui/driver.py +0 -0
  190. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/controller/webui/gradio/__init__.py +0 -0
  191. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/controller/webui/gradio/builder.py +0 -0
  192. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/controller/webui/gradio/driver.py +0 -0
  193. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/controller/webui/static/__init__.py +0 -0
  194. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/controller/webui/static/driver.py +0 -0
  195. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/controller/webui/webui.py +0 -0
  196. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/errors.py +0 -0
  197. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/evaluator/__init__.py +0 -0
  198. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/evaluator/condition.py +0 -0
  199. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/foundation/__init__.py +0 -0
  200. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/foundation/async_service.py +0 -0
  201. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/foundation/compat/__init__.py +0 -0
  202. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/foundation/compat/asyncio.py +0 -0
  203. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/foundation/ipc_messages.py +0 -0
  204. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/foundation/package.py +0 -0
  205. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/foundation/process_manager.py +0 -0
  206. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/foundation/process_worker.py +0 -0
  207. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/gateway/__init__.py +0 -0
  208. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/gateway/base.py +0 -0
  209. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/gateway/gateway.py +0 -0
  210. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/gateway/services/__init__.py +0 -0
  211. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/gateway/services/http_tunnel/__init__.py +0 -0
  212. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/gateway/services/http_tunnel/base.py +0 -0
  213. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/gateway/services/http_tunnel/drivers/__init__.py +0 -0
  214. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/gateway/services/http_tunnel/drivers/cloudflare.py +0 -0
  215. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/gateway/services/http_tunnel/drivers/ngrok.py +0 -0
  216. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/gateway/services/http_tunnel/http_tunnel.py +0 -0
  217. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/gateway/services/ssh_tunnel.py +0 -0
  218. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/listener/__init__.py +0 -0
  219. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/listener/base.py +0 -0
  220. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/listener/listener.py +0 -0
  221. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/listener/services/__init__.py +0 -0
  222. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/listener/services/http_trigger.py +0 -0
  223. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/logger/__init__.py +0 -0
  224. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/logger/base.py +0 -0
  225. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/logger/logger.py +0 -0
  226. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/logger/logging.py +0 -0
  227. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/logger/services/__init__.py +0 -0
  228. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/logger/services/console.py +0 -0
  229. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/logger/services/file.py +0 -0
  230. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/runtime/__init__.py +0 -0
  231. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/runtime/apple_container/__init__.py +0 -0
  232. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/runtime/apple_container/apple_container.py +0 -0
  233. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/runtime/docker/__init__.py +0 -0
  234. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/runtime/docker/docker.py +0 -0
  235. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/runtime/env.py +0 -0
  236. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/system/__init__.py +0 -0
  237. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/system/base.py +0 -0
  238. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/system/services/__init__.py +0 -0
  239. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/system/services/docker_compose.py +0 -0
  240. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/system/system.py +0 -0
  241. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/utils/__init__.py +0 -0
  242. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/utils/active_counter.py +0 -0
  243. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/utils/audio.py +0 -0
  244. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/utils/caching.py +0 -0
  245. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/utils/cdp_client.py +0 -0
  246. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/utils/http_client.py +0 -0
  247. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/utils/http_request.py +0 -0
  248. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/utils/http_response.py +0 -0
  249. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/utils/http_status.py +0 -0
  250. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/utils/image.py +0 -0
  251. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/utils/mcp_client.py +0 -0
  252. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/utils/resolvers.py +0 -0
  253. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/utils/shell.py +0 -0
  254. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/utils/ssh_client.py +0 -0
  255. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/utils/streamer.py +0 -0
  256. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/utils/streaming.py +0 -0
  257. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/utils/time.py +0 -0
  258. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/utils/url.py +0 -0
  259. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/utils/websocket_client.py +0 -0
  260. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/utils/work_queue.py +0 -0
  261. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/workflow/__init__.py +0 -0
  262. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/workflow/context.py +0 -0
  263. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/workflow/interrupt.py +0 -0
  264. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/workflow/job/__init__.py +0 -0
  265. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/workflow/job/base.py +0 -0
  266. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/workflow/job/impl/__init__.py +0 -0
  267. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/workflow/job/impl/component.py +0 -0
  268. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/workflow/job/impl/delay.py +0 -0
  269. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/workflow/job/impl/filter.py +0 -0
  270. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/workflow/job/impl/if_.py +0 -0
  271. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/workflow/job/impl/random_router.py +0 -0
  272. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/workflow/job/impl/switch.py +0 -0
  273. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/workflow/job/job.py +0 -0
  274. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/workflow/schema.py +0 -0
  275. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/workflow/tool.py +0 -0
  276. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/core/workflow/workflow.py +0 -0
  277. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/__init__.py +0 -0
  278. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/loader.py +0 -0
  279. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/__init__.py +0 -0
  280. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/action/__init__.py +0 -0
  281. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/action/impl/agent.py +0 -0
  282. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/action/impl/audio_converter.py +0 -0
  283. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/action/impl/audio_extractor.py +0 -0
  284. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/action/impl/common.py +0 -0
  285. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/action/impl/datasets/__init__.py +0 -0
  286. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/action/impl/datasets/common.py +0 -0
  287. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/action/impl/datasets/datasets.py +0 -0
  288. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/action/impl/datasets/providers/__init__.py +0 -0
  289. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/action/impl/datasets/providers/common.py +0 -0
  290. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/action/impl/datasets/providers/huggingface.py +0 -0
  291. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/action/impl/datasets/providers/local.py +0 -0
  292. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/action/impl/http_client.py +0 -0
  293. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/action/impl/http_server.py +0 -0
  294. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/action/impl/image_processor.py +0 -0
  295. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/action/impl/key_value_store/__init__.py +0 -0
  296. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/action/impl/key_value_store/impl/__init__.py +0 -0
  297. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/action/impl/key_value_store/impl/common.py +0 -0
  298. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/action/impl/key_value_store/impl/redis.py +0 -0
  299. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/action/impl/key_value_store/key_value_store.py +0 -0
  300. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/action/impl/mcp_client.py +0 -0
  301. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/action/impl/mcp_server.py +0 -0
  302. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/action/impl/model/__init__.py +0 -0
  303. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/action/impl/model/impl/__init__.py +0 -0
  304. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/action/impl/model/impl/chat_completion.py +0 -0
  305. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/action/impl/model/impl/common.py +0 -0
  306. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/action/impl/model/impl/face_embedding/__init__.py +0 -0
  307. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/action/impl/model/impl/face_embedding/face_embedding.py +0 -0
  308. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/action/impl/model/impl/face_embedding/impl/__init__.py +0 -0
  309. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/action/impl/model/impl/face_embedding/impl/common.py +0 -0
  310. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/action/impl/model/impl/face_embedding/impl/dlib.py +0 -0
  311. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/action/impl/model/impl/face_embedding/impl/facenet.py +0 -0
  312. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/action/impl/model/impl/face_embedding/impl/insightface.py +0 -0
  313. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/action/impl/model/impl/image_generation/__init__.py +0 -0
  314. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/action/impl/model/impl/image_generation/image_generation.py +0 -0
  315. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/action/impl/model/impl/image_generation/impl/__init__.py +0 -0
  316. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/action/impl/model/impl/image_generation/impl/common.py +0 -0
  317. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/action/impl/model/impl/image_generation/impl/flux.py +0 -0
  318. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/action/impl/model/impl/image_generation/impl/hunyuan_image.py +0 -0
  319. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/action/impl/model/impl/image_generation/impl/sdxl.py +0 -0
  320. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/action/impl/model/impl/image_to_text.py +0 -0
  321. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/action/impl/model/impl/image_upscale/__init__.py +0 -0
  322. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/action/impl/model/impl/image_upscale/image_upscale.py +0 -0
  323. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/action/impl/model/impl/image_upscale/impl/__init__.py +0 -0
  324. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/action/impl/model/impl/image_upscale/impl/common.py +0 -0
  325. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/action/impl/model/impl/image_upscale/impl/esrgan.py +0 -0
  326. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/action/impl/model/impl/image_upscale/impl/ldsr.py +0 -0
  327. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/action/impl/model/impl/image_upscale/impl/real_esrgan.py +0 -0
  328. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/action/impl/model/impl/image_upscale/impl/swinir.py +0 -0
  329. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/action/impl/model/impl/speech_to_text.py +0 -0
  330. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/action/impl/model/impl/text_classification.py +0 -0
  331. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/action/impl/model/impl/text_embedding.py +0 -0
  332. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/action/impl/model/impl/text_generation.py +0 -0
  333. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/action/impl/model/impl/text_to_speech/__init__.py +0 -0
  334. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/action/impl/model/impl/text_to_speech/impl/__init__.py +0 -0
  335. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/action/impl/model/impl/text_to_speech/impl/common.py +0 -0
  336. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/action/impl/model/impl/text_to_speech/impl/qwen.py +0 -0
  337. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/action/impl/model/impl/text_to_speech/text_to_speech.py +0 -0
  338. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/action/impl/model/model.py +0 -0
  339. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/action/impl/model_trainer/__init__.py +0 -0
  340. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/action/impl/model_trainer/impl/__init__.py +0 -0
  341. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/action/impl/model_trainer/impl/classification.py +0 -0
  342. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/action/impl/model_trainer/impl/common.py +0 -0
  343. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/action/impl/model_trainer/impl/sft.py +0 -0
  344. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/action/impl/model_trainer/model_trainer.py +0 -0
  345. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/action/impl/shell.py +0 -0
  346. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/action/impl/text_splitter.py +0 -0
  347. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/action/impl/vector_store/__init__.py +0 -0
  348. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/action/impl/vector_store/impl/__init__.py +0 -0
  349. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/action/impl/vector_store/impl/chroma.py +0 -0
  350. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/action/impl/vector_store/impl/common.py +0 -0
  351. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/action/impl/vector_store/impl/faiss.py +0 -0
  352. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/action/impl/vector_store/impl/milvus.py +0 -0
  353. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/action/impl/vector_store/impl/qdrant.py +0 -0
  354. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/action/impl/vector_store/vector_store.py +0 -0
  355. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/action/impl/video_converter.py +0 -0
  356. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/action/impl/video_scene_detector.py +0 -0
  357. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/action/impl/web_browser.py +0 -0
  358. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/action/impl/web_scraper.py +0 -0
  359. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/action/impl/websocket_client.py +0 -0
  360. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/action/impl/websocket_server.py +0 -0
  361. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/action/impl/workflow.py +0 -0
  362. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/component/__init__.py +0 -0
  363. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/component/impl/agent.py +0 -0
  364. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/component/impl/audio_converter.py +0 -0
  365. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/component/impl/audio_extractor.py +0 -0
  366. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/component/impl/common.py +0 -0
  367. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/component/impl/datasets/__init__.py +0 -0
  368. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/component/impl/datasets/datasets.py +0 -0
  369. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/component/impl/http_client.py +0 -0
  370. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/component/impl/http_server.py +0 -0
  371. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/component/impl/image_processor.py +0 -0
  372. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/component/impl/key_value_store/__init__.py +0 -0
  373. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/component/impl/key_value_store/impl/__init__.py +0 -0
  374. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/component/impl/key_value_store/impl/common.py +0 -0
  375. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/component/impl/key_value_store/impl/redis.py +0 -0
  376. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/component/impl/key_value_store/key_value_store.py +0 -0
  377. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/component/impl/mcp_client.py +0 -0
  378. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/component/impl/mcp_server.py +0 -0
  379. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/component/impl/model/__init__.py +0 -0
  380. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/component/impl/model/impl/__init__.py +0 -0
  381. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/component/impl/model/impl/chat_completion.py +0 -0
  382. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/component/impl/model/impl/common.py +0 -0
  383. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/component/impl/model/impl/face_embedding/__init__.py +0 -0
  384. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/component/impl/model/impl/face_embedding/face_embedding.py +0 -0
  385. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/component/impl/model/impl/face_embedding/impl/__init__.py +0 -0
  386. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/component/impl/model/impl/face_embedding/impl/common.py +0 -0
  387. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/component/impl/model/impl/face_embedding/impl/dlib.py +0 -0
  388. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/component/impl/model/impl/face_embedding/impl/facenet.py +0 -0
  389. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/component/impl/model/impl/face_embedding/impl/insightface.py +0 -0
  390. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/component/impl/model/impl/image_generation/__init__.py +0 -0
  391. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/component/impl/model/impl/image_generation/image_generation.py +0 -0
  392. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/component/impl/model/impl/image_generation/impl/__init__.py +0 -0
  393. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/component/impl/model/impl/image_generation/impl/common.py +0 -0
  394. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/component/impl/model/impl/image_generation/impl/flux.py +0 -0
  395. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/component/impl/model/impl/image_generation/impl/hunyuan_image.py +0 -0
  396. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/component/impl/model/impl/image_generation/impl/sdxl.py +0 -0
  397. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/component/impl/model/impl/image_to_text.py +0 -0
  398. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/component/impl/model/impl/image_upscale/__init__.py +0 -0
  399. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/component/impl/model/impl/image_upscale/image_upscale.py +0 -0
  400. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/component/impl/model/impl/image_upscale/impl/__init__.py +0 -0
  401. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/component/impl/model/impl/image_upscale/impl/common.py +0 -0
  402. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/component/impl/model/impl/image_upscale/impl/esrgan.py +0 -0
  403. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/component/impl/model/impl/image_upscale/impl/ldsr.py +0 -0
  404. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/component/impl/model/impl/image_upscale/impl/real_esrgan.py +0 -0
  405. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/component/impl/model/impl/image_upscale/impl/swinir.py +0 -0
  406. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/component/impl/model/impl/speech_to_text.py +0 -0
  407. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/component/impl/model/impl/text_classification.py +0 -0
  408. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/component/impl/model/impl/text_embedding.py +0 -0
  409. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/component/impl/model/impl/text_generation.py +0 -0
  410. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/component/impl/model/impl/text_to_speech/__init__.py +0 -0
  411. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/component/impl/model/impl/text_to_speech/impl/__init__.py +0 -0
  412. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/component/impl/model/impl/text_to_speech/impl/common.py +0 -0
  413. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/component/impl/model/impl/text_to_speech/impl/qwen.py +0 -0
  414. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/component/impl/model/impl/text_to_speech/text_to_speech.py +0 -0
  415. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/component/impl/model/model.py +0 -0
  416. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/component/impl/model_trainer/__init__.py +0 -0
  417. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/component/impl/model_trainer/impl/__init__.py +0 -0
  418. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/component/impl/model_trainer/impl/classification.py +0 -0
  419. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/component/impl/model_trainer/impl/common.py +0 -0
  420. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/component/impl/model_trainer/impl/sft.py +0 -0
  421. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/component/impl/model_trainer/model_trainer.py +0 -0
  422. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/component/impl/shell.py +0 -0
  423. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/component/impl/text_splitter.py +0 -0
  424. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/component/impl/vector_store/__init__.py +0 -0
  425. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/component/impl/vector_store/impl/__init__.py +0 -0
  426. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/component/impl/vector_store/impl/chroma.py +0 -0
  427. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/component/impl/vector_store/impl/common.py +0 -0
  428. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/component/impl/vector_store/impl/faiss.py +0 -0
  429. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/component/impl/vector_store/impl/milvus.py +0 -0
  430. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/component/impl/vector_store/impl/qdrant.py +0 -0
  431. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/component/impl/vector_store/vector_store.py +0 -0
  432. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/component/impl/video_converter.py +0 -0
  433. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/component/impl/video_scene_detector.py +0 -0
  434. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/component/impl/web_browser/__init__.py +0 -0
  435. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/component/impl/web_browser/impl/__init__.py +0 -0
  436. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/component/impl/web_browser/impl/chrome.py +0 -0
  437. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/component/impl/web_browser/impl/common.py +0 -0
  438. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/component/impl/web_browser/impl/playwright.py +0 -0
  439. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/component/impl/web_browser/web_browser.py +0 -0
  440. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/component/impl/web_scraper.py +0 -0
  441. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/component/impl/websocket_client.py +0 -0
  442. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/component/impl/websocket_server.py +0 -0
  443. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/component/impl/workflow.py +0 -0
  444. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/compose.py +0 -0
  445. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/controller/__init__.py +0 -0
  446. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/controller/adapter/__init__.py +0 -0
  447. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/controller/adapter/adapter.py +0 -0
  448. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/controller/adapter/common.py +0 -0
  449. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/controller/adapter/impl/__init__.py +0 -0
  450. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/controller/adapter/impl/http_server.py +0 -0
  451. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/controller/adapter/impl/mcp_server.py +0 -0
  452. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/controller/adapter/impl/queue_subscriber/__init__.py +0 -0
  453. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/controller/adapter/impl/queue_subscriber/impl/__init__.py +0 -0
  454. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/controller/adapter/impl/queue_subscriber/impl/common.py +0 -0
  455. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/controller/adapter/impl/queue_subscriber/impl/redis.py +0 -0
  456. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/controller/adapter/impl/queue_subscriber/queue_subscriber.py +0 -0
  457. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/controller/adapter/impl/types.py +0 -0
  458. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/controller/controller.py +0 -0
  459. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/controller/impl/__init__.py +0 -0
  460. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/controller/queue/__init__.py +0 -0
  461. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/controller/queue/impl/__init__.py +0 -0
  462. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/controller/queue/impl/common.py +0 -0
  463. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/controller/queue/impl/redis.py +0 -0
  464. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/controller/queue/queue.py +0 -0
  465. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/controller/webui/__init__.py +0 -0
  466. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/controller/webui/impl/__init__.py +0 -0
  467. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/controller/webui/impl/common.py +0 -0
  468. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/controller/webui/impl/dynamic.py +0 -0
  469. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/controller/webui/impl/gradio.py +0 -0
  470. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/controller/webui/impl/static.py +0 -0
  471. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/controller/webui/webui.py +0 -0
  472. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/gateway/__init__.py +0 -0
  473. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/gateway/gateway.py +0 -0
  474. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/gateway/impl/__init__.py +0 -0
  475. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/gateway/impl/common.py +0 -0
  476. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/gateway/impl/http_tunnel/__init__.py +0 -0
  477. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/gateway/impl/http_tunnel/http_tunnel.py +0 -0
  478. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/gateway/impl/http_tunnel/impl/__init__.py +0 -0
  479. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/gateway/impl/http_tunnel/impl/cloudflare.py +0 -0
  480. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/gateway/impl/http_tunnel/impl/common.py +0 -0
  481. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/gateway/impl/http_tunnel/impl/ngrok.py +0 -0
  482. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/gateway/impl/ssh_tunnel.py +0 -0
  483. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/gateway/impl/types.py +0 -0
  484. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/job/__init__.py +0 -0
  485. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/job/impl/__init__.py +0 -0
  486. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/job/impl/common.py +0 -0
  487. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/job/impl/component.py +0 -0
  488. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/job/impl/delay.py +0 -0
  489. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/job/impl/filter.py +0 -0
  490. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/job/impl/if_.py +0 -0
  491. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/job/impl/random_router.py +0 -0
  492. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/job/impl/switch.py +0 -0
  493. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/job/impl/types.py +0 -0
  494. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/job/job.py +0 -0
  495. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/listener/__init__.py +0 -0
  496. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/listener/impl/__init__.py +0 -0
  497. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/listener/impl/common.py +0 -0
  498. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/listener/impl/http_callback.py +0 -0
  499. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/listener/impl/http_trigger.py +0 -0
  500. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/listener/impl/types.py +0 -0
  501. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/listener/listener.py +0 -0
  502. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/logger/__init__.py +0 -0
  503. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/logger/impl/__init__.py +0 -0
  504. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/logger/impl/common.py +0 -0
  505. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/logger/impl/console.py +0 -0
  506. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/logger/impl/file.py +0 -0
  507. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/logger/impl/types.py +0 -0
  508. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/logger/logger.py +0 -0
  509. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/operator/__init__.py +0 -0
  510. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/operator/condition.py +0 -0
  511. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/runtime/__init__.py +0 -0
  512. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/runtime/impl/__init__.py +0 -0
  513. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/runtime/impl/apple_container.py +0 -0
  514. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/runtime/impl/common.py +0 -0
  515. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/runtime/impl/docker.py +0 -0
  516. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/runtime/impl/embedded.py +0 -0
  517. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/runtime/impl/native.py +0 -0
  518. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/runtime/impl/process.py +0 -0
  519. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/runtime/impl/types.py +0 -0
  520. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/runtime/runtime.py +0 -0
  521. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/system/__init__.py +0 -0
  522. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/system/impl/__init__.py +0 -0
  523. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/system/impl/common.py +0 -0
  524. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/system/impl/docker_compose.py +0 -0
  525. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/system/impl/types.py +0 -0
  526. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/system/system.py +0 -0
  527. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/transport/__init__.py +0 -0
  528. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/transport/http.py +0 -0
  529. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/transport/ssh.py +0 -0
  530. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/schema/workflow.py +0 -0
  531. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/utils/__init__.py +0 -0
  532. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/utils/enum.py +0 -0
  533. {model_compose-0.4.49 → model_compose-0.4.51}/src/mindor/dsl/utils/path.py +0 -0
  534. {model_compose-0.4.49 → model_compose-0.4.51}/src/model_compose.egg-info/dependency_links.txt +0 -0
  535. {model_compose-0.4.49 → model_compose-0.4.51}/src/model_compose.egg-info/entry_points.txt +0 -0
  536. {model_compose-0.4.49 → model_compose-0.4.51}/src/model_compose.egg-info/requires.txt +0 -0
  537. {model_compose-0.4.49 → model_compose-0.4.51}/src/model_compose.egg-info/top_level.txt +0 -0
  538. {model_compose-0.4.49 → model_compose-0.4.51}/tests/test_cli.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: model-compose
3
- Version: 0.4.49
3
+ Version: 0.4.51
4
4
  Summary: model-compose: Declarative AI 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.4.49"
3
+ version = "0.4.51"
4
4
  description = "model-compose: Declarative AI Workflow Orchestrator"
5
5
  authors = [
6
6
  { name = "Hanyeol Cho", email = "hanyeol.cho@gmail.com" }
@@ -19,3 +19,4 @@ from .video_scene_detector import *
19
19
  from .audio_extractor import *
20
20
  from .audio_converter import *
21
21
  from .key_value_store import *
22
+ from .graph_store import *
@@ -0,0 +1 @@
1
+ from .graph_store import *
@@ -0,0 +1,31 @@
1
+ from typing import Type, Union, Literal, Optional, Dict, List, Tuple, Set, Annotated, Callable, Any
2
+ from abc import ABC, abstractmethod
3
+ from mindor.dsl.schema.component import GraphStoreComponentConfig, GraphStoreDriver
4
+ from mindor.dsl.schema.action import GraphStoreActionConfig
5
+ from mindor.core.foundation import AsyncService
6
+ from ...context import ComponentActionContext
7
+
8
+ class GraphStoreService(AsyncService):
9
+ def __init__(self, id: str, config: GraphStoreComponentConfig, daemon: bool):
10
+ super().__init__(daemon)
11
+
12
+ self.id: str = id
13
+ self.config: GraphStoreComponentConfig = config
14
+
15
+ def get_setup_requirements(self) -> Optional[List[str]]:
16
+ return None
17
+
18
+ async def run(self, action: GraphStoreActionConfig, context: ComponentActionContext) -> Any:
19
+ return await self._run(action, context)
20
+
21
+ @abstractmethod
22
+ async def _run(self, action: GraphStoreActionConfig, context: ComponentActionContext) -> Any:
23
+ pass
24
+
25
+ def register_graph_store_service(driver: GraphStoreDriver):
26
+ def decorator(cls: Type[GraphStoreService]) -> Type[GraphStoreService]:
27
+ GraphStoreServiceRegistry[driver] = cls
28
+ return cls
29
+ return decorator
30
+
31
+ GraphStoreServiceRegistry: Dict[GraphStoreDriver, Type[GraphStoreService]] = {}
@@ -0,0 +1,2 @@
1
+ from .neo4j import *
2
+ from .arangodb import *
@@ -0,0 +1,272 @@
1
+ from __future__ import annotations
2
+ from typing import TYPE_CHECKING
3
+
4
+ from typing import Type, Union, Literal, Optional, Dict, List, Tuple, Set, Annotated, Callable, Any
5
+ from mindor.dsl.schema.component import GraphStoreComponentConfig
6
+ from mindor.dsl.schema.action import GraphStoreActionConfig, ArangoDBGraphStoreActionConfig
7
+ from mindor.dsl.schema.action import GraphStoreActionMethod
8
+ from mindor.core.utils.time import parse_duration
9
+ from mindor.core.logger import logging
10
+ from ..base import GraphStoreService, GraphStoreDriver, register_graph_store_service
11
+ from ..base import ComponentActionContext
12
+ import re
13
+
14
+ if TYPE_CHECKING:
15
+ from arango import ArangoClient
16
+ from arango.database import StandardDatabase
17
+
18
+ _IDENTIFIER_RE = re.compile(r"^[A-Za-z_][A-Za-z0-9_]*$")
19
+
20
+ def _verify_identifier(value: str, field: str) -> str:
21
+ if not _IDENTIFIER_RE.match(value):
22
+ raise ValueError(f"Invalid {field} identifier: '{value}'")
23
+ return value
24
+
25
+ def _resolve_doc_id(doc_id: str, default_collection: str) -> Tuple[str, str]:
26
+ if "/" in doc_id:
27
+ collection, key = doc_id.split("/", 1)
28
+ return collection, key
29
+ return default_collection, doc_id
30
+
31
+ def _build_insert_node_doc(node: Dict[str, Any], default_collection: Optional[str]) -> Tuple[str, Dict[str, Any]]:
32
+ collection = _verify_identifier(node.get("label", default_collection or "nodes"), "collection")
33
+ doc = { **node.get("properties", {}) }
34
+ node_id = node.get("id")
35
+ if node_id:
36
+ doc["_key"] = str(node_id)
37
+ return collection, doc
38
+
39
+ def _build_insert_edge_doc(rel: Dict[str, Any], default_edge_collection: Optional[str]) -> Tuple[str, Dict[str, Any]]:
40
+ collection = _verify_identifier(default_edge_collection or rel.get("type", "edges"), "edge collection")
41
+ doc = {
42
+ "_from": rel.get("from"),
43
+ "_to": rel.get("to"),
44
+ **(rel.get("properties", {}) or {}),
45
+ }
46
+ return collection, doc
47
+
48
+ def _build_update_doc(doc_id: str, properties: Dict[str, Any], default_collection: str) -> Tuple[str, Dict[str, Any]]:
49
+ collection, key = _resolve_doc_id(doc_id, default_collection)
50
+ doc = { "_key": key, **properties }
51
+ return collection, doc
52
+
53
+ def _build_traverse_query(
54
+ start_node: str,
55
+ direction: str,
56
+ max_depth: int,
57
+ edge_collection: Optional[str],
58
+ relationship_types: Optional[List[str]],
59
+ ) -> Tuple[str, Dict[str, Any]]:
60
+ direction_map = { "out": "outbound", "in": "inbound", "both": "any" }
61
+ arango_direction = direction_map.get(direction, "outbound")
62
+
63
+ edge_collections = []
64
+ if edge_collection:
65
+ edge_collections = [ edge_collection ]
66
+ elif relationship_types:
67
+ edge_collections = relationship_types
68
+
69
+ if edge_collections:
70
+ for collection in edge_collections:
71
+ _verify_identifier(collection, "edge collection")
72
+ edge_str = ", ".join(edge_collections)
73
+ else:
74
+ edge_str = "edges"
75
+
76
+ aql = f"FOR v, e, p IN 1..@max_depth {arango_direction.upper()} @start_node {edge_str} RETURN {{node: v, edge: e, depth: LENGTH(p.edges)}}"
77
+ return aql, { "start_node": str(start_node), "max_depth": max_depth }
78
+
79
+ class ArangoDBGraphStoreAction:
80
+ def __init__(self, config: ArangoDBGraphStoreActionConfig):
81
+ self.config: ArangoDBGraphStoreActionConfig = config
82
+
83
+ async def run(self, context: ComponentActionContext, db: StandardDatabase) -> Any:
84
+ result = await self._dispatch(context, db)
85
+ context.register_source("result", result)
86
+
87
+ return (await context.render_variable(self.config.output, ignore_files=True)) if self.config.output else result
88
+
89
+ async def _dispatch(self, context: ComponentActionContext, db: StandardDatabase) -> Any:
90
+ if self.config.method == GraphStoreActionMethod.QUERY:
91
+ return await self._query(context, db)
92
+
93
+ if self.config.method == GraphStoreActionMethod.INSERT:
94
+ return await self._insert(context, db)
95
+
96
+ if self.config.method == GraphStoreActionMethod.UPDATE:
97
+ return await self._update(context, db)
98
+
99
+ if self.config.method == GraphStoreActionMethod.DELETE:
100
+ return await self._delete(context, db)
101
+
102
+ if self.config.method == GraphStoreActionMethod.TRAVERSE:
103
+ return await self._traverse(context, db)
104
+
105
+ raise ValueError(f"Unsupported graph action method: {self.config.method}")
106
+
107
+ async def _query(self, context: ComponentActionContext, db: StandardDatabase) -> List[Dict[str, Any]]:
108
+ query = await context.render_variable(self.config.query)
109
+ params = await context.render_variable(self.config.params)
110
+
111
+ cursor = db.aql.execute(query, bind_vars=params or {})
112
+ return [ doc for doc in cursor ]
113
+
114
+ async def _insert(self, context: ComponentActionContext, db: StandardDatabase) -> Dict[str, Any]:
115
+ nodes = await context.render_variable(self.config.nodes)
116
+ relationships = await context.render_variable(self.config.relationships)
117
+ collection = getattr(self.config, "collection", None)
118
+ edge_collection = getattr(self.config, "edge_collection", None)
119
+
120
+ created_nodes = 0
121
+ created_relationships = 0
122
+ inserted_ids: List[str] = []
123
+
124
+ if nodes:
125
+ node_list = nodes if isinstance(nodes, list) else [nodes]
126
+ for node in node_list:
127
+ collection_name, doc = _build_insert_node_doc(node, collection)
128
+
129
+ if not db.has_collection(collection_name):
130
+ db.create_collection(collection_name)
131
+
132
+ result = db.collection(collection_name).insert(doc)
133
+ inserted_ids.append(result.get("_id", result.get("_key", "")))
134
+ created_nodes += 1
135
+
136
+ if relationships:
137
+ for relationship in relationships if isinstance(relationships, list) else [ relationships ]:
138
+ collection_name, doc = _build_insert_edge_doc(relationship, edge_collection)
139
+
140
+ if not db.has_collection(collection_name):
141
+ db.create_collection(collection_name, edge=True)
142
+
143
+ result = db.collection(collection_name).insert(doc)
144
+ inserted_ids.append(result.get("_id", result.get("_key", "")))
145
+ created_relationships += 1
146
+
147
+ return {
148
+ "ids": inserted_ids,
149
+ "created_nodes": created_nodes,
150
+ "created_relationships": created_relationships,
151
+ }
152
+
153
+ async def _update(self, context: ComponentActionContext, db: StandardDatabase) -> Dict[str, Any]:
154
+ node_id = await context.render_variable(self.config.node_id)
155
+ relationship_id = await context.render_variable(self.config.relationship_id)
156
+ properties = await context.render_variable(self.config.properties)
157
+ collection = getattr(self.config, "collection", None)
158
+
159
+ affected_rows = 0
160
+
161
+ if node_id is not None and properties:
162
+ node_ids = node_id if isinstance(node_id, list) else [node_id]
163
+ for nid in node_ids:
164
+ collection_name, doc = _build_update_doc(str(nid), properties, collection or "nodes")
165
+ db.collection(collection_name).update(doc)
166
+ affected_rows += 1
167
+
168
+ if relationship_id is not None and properties:
169
+ rel_ids = relationship_id if isinstance(relationship_id, list) else [relationship_id]
170
+ for rid in rel_ids:
171
+ collection_name, doc = _build_update_doc(str(rid), properties, collection or "edges")
172
+ db.collection(collection_name).update(doc)
173
+ affected_rows += 1
174
+
175
+ return {"affected_rows": affected_rows}
176
+
177
+ async def _delete(self, context: ComponentActionContext, db: StandardDatabase) -> Dict[str, Any]:
178
+ node_id = await context.render_variable(self.config.node_id)
179
+ relationship_id = await context.render_variable(self.config.relationship_id)
180
+ collection = getattr(self.config, "collection", None)
181
+
182
+ affected_rows = 0
183
+
184
+ if node_id is not None:
185
+ node_ids = node_id if isinstance(node_id, list) else [node_id]
186
+ for nid in node_ids:
187
+ collection_name, key = _resolve_doc_id(str(nid), collection or "nodes")
188
+ db.collection(collection_name).delete(key)
189
+ affected_rows += 1
190
+
191
+ if relationship_id is not None:
192
+ rel_ids = relationship_id if isinstance(relationship_id, list) else [relationship_id]
193
+ for rid in rel_ids:
194
+ collection_name, key = _resolve_doc_id(str(rid), collection or "edges")
195
+ db.collection(collection_name).delete(key)
196
+ affected_rows += 1
197
+
198
+ return {"affected_rows": affected_rows}
199
+
200
+ async def _traverse(self, context: ComponentActionContext, db: StandardDatabase) -> List[Dict[str, Any]]:
201
+ start_node = await context.render_variable(self.config.start_node)
202
+ relationship_types = await context.render_variable(self.config.relationship_types)
203
+ node_labels = await context.render_variable(self.config.node_labels)
204
+ graph_name = getattr(self.config, "graph", None)
205
+ edge_collection = getattr(self.config, "edge_collection", None)
206
+
207
+ direction_map = {"out": "outbound", "in": "inbound", "both": "any"}
208
+ arango_direction = direction_map.get(self.config.direction, "outbound")
209
+
210
+ if graph_name:
211
+ graph = db.graph(graph_name)
212
+ result = graph.traverse(
213
+ start_vertex=str(start_node),
214
+ direction=arango_direction,
215
+ max_depth=self.config.max_depth
216
+ )
217
+
218
+ vertices = result.get("vertices", [])
219
+ return [{"node": vertex, "depth": None} for vertex in vertices[1:]]
220
+
221
+ aql, bind_vars = _build_traverse_query(
222
+ start_node,
223
+ self.config.direction,
224
+ self.config.max_depth,
225
+ edge_collection,
226
+ relationship_types,
227
+ )
228
+ cursor = db.aql.execute(aql, bind_vars=bind_vars)
229
+ return [doc for doc in cursor]
230
+
231
+ @register_graph_store_service(GraphStoreDriver.ARANGODB)
232
+ class ArangoDBGraphStoreService(GraphStoreService):
233
+ def __init__(self, id: str, config: GraphStoreComponentConfig, daemon: bool):
234
+ super().__init__(id, config, daemon)
235
+
236
+ self.client: Optional[ArangoClient] = None
237
+ self.db: Optional[StandardDatabase] = None
238
+
239
+ def get_setup_requirements(self) -> Optional[List[str]]:
240
+ return ["python-arango"]
241
+
242
+ async def _serve(self) -> None:
243
+ self.client, self.db = self._create_client()
244
+
245
+ async def _shutdown(self) -> None:
246
+ if self.client:
247
+ self.client.close()
248
+ self.client = None
249
+ self.db = None
250
+
251
+ async def _run(self, action: GraphStoreActionConfig, context: ComponentActionContext) -> Any:
252
+ async def _run():
253
+ return await ArangoDBGraphStoreAction(action).run(context, self.db)
254
+
255
+ return await self.run_in_thread(_run)
256
+
257
+ def _create_client(self) -> Tuple[ArangoClient, StandardDatabase]:
258
+ from arango import ArangoClient
259
+
260
+ url = self.config.url if self.config.url else f"{self.config.protocol}://{self.config.host}:{self.config.port}"
261
+ client = ArangoClient(
262
+ hosts=url,
263
+ request_timeout=parse_duration(self.config.timeout).total_seconds()
264
+ )
265
+
266
+ database = client.db(
267
+ self.config.database,
268
+ username=self.config.username,
269
+ password=self.config.password
270
+ ) if self.config.username else client.db(self.config.database)
271
+
272
+ return client, database
@@ -0,0 +1,310 @@
1
+ from __future__ import annotations
2
+ from typing import TYPE_CHECKING
3
+
4
+ import re
5
+ from typing import Type, Union, Literal, Optional, Dict, List, Tuple, Set, Annotated, Callable, Any
6
+ from mindor.dsl.schema.component import GraphStoreComponentConfig
7
+ from mindor.dsl.schema.action import GraphStoreActionConfig, Neo4jGraphStoreActionConfig
8
+ from mindor.dsl.schema.action import GraphStoreActionMethod
9
+ from mindor.core.utils.time import parse_duration
10
+ from mindor.core.logger import logging
11
+ from ..base import GraphStoreService, GraphStoreDriver, register_graph_store_service
12
+ from ..base import ComponentActionContext
13
+
14
+ if TYPE_CHECKING:
15
+ from neo4j import AsyncGraphDatabase, AsyncDriver, AsyncSession
16
+
17
+ _IDENTIFIER_RE = re.compile(r"^[A-Za-z_][A-Za-z0-9_]*$")
18
+
19
+ def _verify_identifier(value: str, field: str) -> str:
20
+ if not _IDENTIFIER_RE.match(value):
21
+ raise ValueError(f"Invalid {field} identifier: '{value}'")
22
+ return value
23
+
24
+ def _build_create_node_query(label: str, properties: Dict[str, Any]) -> Tuple[str, Dict[str, Any]]:
25
+ label = _verify_identifier(label, "label")
26
+ prop_str = ", ".join(f"{k}: ${k}" for k in properties.keys())
27
+ cypher = f"CREATE (n:{label} {{{prop_str}}}) RETURN elementId(n) AS id"
28
+ return cypher, properties
29
+
30
+ def _build_create_relationship_query(
31
+ rel_type: str, from_id: str, to_id: str, properties: Dict[str, Any]
32
+ ) -> Tuple[str, Dict[str, Any]]:
33
+ rel_type = _verify_identifier(rel_type, "relationship type")
34
+ prop_params = {f"prop_{k}": v for k, v in properties.items()}
35
+ params: Dict[str, Any] = {"from_id": from_id, "to_id": to_id, **prop_params}
36
+
37
+ if properties:
38
+ prop_str = ", ".join(f"{k}: $prop_{k}" for k in properties.keys())
39
+ cypher = f"MATCH (a), (b) WHERE elementId(a) = $from_id AND elementId(b) = $to_id CREATE (a)-[r:{rel_type} {{{prop_str}}}]->(b) RETURN elementId(r) AS id"
40
+ else:
41
+ cypher = f"MATCH (a), (b) WHERE elementId(a) = $from_id AND elementId(b) = $to_id CREATE (a)-[r:{rel_type}]->(b) RETURN elementId(r) AS id"
42
+
43
+ return cypher, params
44
+
45
+ def _build_update_node_query(
46
+ node_id: str, properties: Optional[Dict[str, Any]], labels: Optional[Union[str, List[str]]]
47
+ ) -> Optional[Tuple[str, Dict[str, Any]]]:
48
+ clauses = []
49
+ params: Dict[str, Any] = {"id": node_id}
50
+
51
+ if properties:
52
+ set_parts = []
53
+ for k, v in properties.items():
54
+ params[f"prop_{k}"] = v
55
+ set_parts.append(f"n.{k} = $prop_{k}")
56
+ clauses.append("SET " + ", ".join(set_parts))
57
+
58
+ if labels:
59
+ label_list = labels if isinstance(labels, list) else [labels]
60
+ for label in label_list:
61
+ _verify_identifier(label, "label")
62
+ clauses.append(f"SET n:{label}")
63
+
64
+ if not clauses:
65
+ return None
66
+
67
+ cypher = f"MATCH (n) WHERE elementId(n) = $id {' '.join(clauses)} RETURN n"
68
+ return cypher, params
69
+
70
+ def _build_update_relationship_query(
71
+ relationship_id: str, properties: Dict[str, Any]
72
+ ) -> Tuple[str, Dict[str, Any]]:
73
+ params: Dict[str, Any] = {"id": relationship_id}
74
+ set_parts = []
75
+ for k, v in properties.items():
76
+ params[f"prop_{k}"] = v
77
+ set_parts.append(f"r.{k} = $prop_{k}")
78
+ cypher = f"MATCH ()-[r]->() WHERE elementId(r) = $id SET {', '.join(set_parts)} RETURN r"
79
+ return cypher, params
80
+
81
+ def _build_delete_node_query(node_id: str, detach: bool) -> Tuple[str, Dict[str, Any]]:
82
+ delete_clause = "DETACH DELETE n" if detach else "DELETE n"
83
+ cypher = f"MATCH (n) WHERE elementId(n) = $id {delete_clause}"
84
+ return cypher, {"id": node_id}
85
+
86
+ def _build_delete_relationship_query(relationship_id: str) -> Tuple[str, Dict[str, Any]]:
87
+ cypher = "MATCH ()-[r]->() WHERE elementId(r) = $id DELETE r"
88
+ return cypher, {"id": relationship_id}
89
+
90
+ def _build_traverse_query(
91
+ start_node: str,
92
+ direction: str,
93
+ max_depth: int,
94
+ relationship_types: Optional[List[str]],
95
+ node_labels: Optional[List[str]],
96
+ ) -> Tuple[str, Dict[str, Any]]:
97
+ rel_filter = ""
98
+ if relationship_types:
99
+ for rt in relationship_types:
100
+ _verify_identifier(rt, "relationship type")
101
+ rel_filter = ":" + "|".join(relationship_types)
102
+
103
+ if direction == "out":
104
+ path_pattern = f"(start)-[r{rel_filter}*1..{max_depth}]->(end)"
105
+ elif direction == "in":
106
+ path_pattern = f"(start)<-[r{rel_filter}*1..{max_depth}]-(end)"
107
+ else:
108
+ path_pattern = f"(start)-[r{rel_filter}*1..{max_depth}]-(end)"
109
+
110
+ label_filter = ""
111
+ if node_labels:
112
+ for nl in node_labels:
113
+ _verify_identifier(nl, "node label")
114
+ label_filter = " AND (" + " OR ".join(f"ANY(l IN labels(end) WHERE l = '{label}')" for label in node_labels) + ")"
115
+
116
+ cypher = f"MATCH p = {path_pattern} WHERE elementId(start) = $start_id{label_filter} RETURN end AS node, length(p) AS depth, [rel IN relationships(p) | type(rel)] AS relationship_types"
117
+ return cypher, {"start_id": start_node}
118
+
119
+ class Neo4jGraphStoreAction:
120
+ def __init__(self, config: Neo4jGraphStoreActionConfig):
121
+ self.config: Neo4jGraphStoreActionConfig = config
122
+
123
+ async def run(self, context: ComponentActionContext, driver: AsyncDriver, default_database: Optional[str]) -> Any:
124
+ result = await self._dispatch(context, driver, default_database)
125
+ context.register_source("result", result)
126
+
127
+ return (await context.render_variable(self.config.output, ignore_files=True)) if self.config.output else result
128
+
129
+ async def _dispatch(self, context: ComponentActionContext, driver: AsyncDriver, default_database: Optional[str]) -> Any:
130
+ if self.config.method == GraphStoreActionMethod.QUERY:
131
+ return await self._query(context, driver, default_database)
132
+
133
+ if self.config.method == GraphStoreActionMethod.INSERT:
134
+ return await self._insert(context, driver, default_database)
135
+
136
+ if self.config.method == GraphStoreActionMethod.UPDATE:
137
+ return await self._update(context, driver, default_database)
138
+
139
+ if self.config.method == GraphStoreActionMethod.DELETE:
140
+ return await self._delete(context, driver, default_database)
141
+
142
+ if self.config.method == GraphStoreActionMethod.TRAVERSE:
143
+ return await self._traverse(context, driver, default_database)
144
+
145
+ raise ValueError(f"Unsupported graph action method: {self.config.method}")
146
+
147
+ def _get_database(self, default_database: Optional[str]) -> Optional[str]:
148
+ return getattr(self.config, "database", None) or default_database
149
+
150
+ async def _query(self, context: ComponentActionContext, driver: AsyncDriver, default_database: Optional[str]) -> List[Dict[str, Any]]:
151
+ query = await context.render_variable(self.config.query)
152
+ params = await context.render_variable(self.config.params)
153
+ database = self._get_database(default_database)
154
+
155
+ async with driver.session(database=database) as session:
156
+ result = await session.run(query, parameters=params or {})
157
+ records = await result.data()
158
+ return records
159
+
160
+ async def _insert(self, context: ComponentActionContext, driver: AsyncDriver, default_database: Optional[str]) -> Dict[str, Any]:
161
+ nodes = await context.render_variable(self.config.nodes)
162
+ relationships = await context.render_variable(self.config.relationships)
163
+ database = self._get_database(default_database)
164
+
165
+ created_nodes = 0
166
+ created_relationships = 0
167
+
168
+ node_ids: List[str] = []
169
+ relationship_ids: List[str] = []
170
+
171
+ async with driver.session(database=database) as session:
172
+ if nodes:
173
+ node_list = nodes if isinstance(nodes, list) else [nodes]
174
+ for node in node_list:
175
+ cypher, params = _build_create_node_query(
176
+ node.get("label", "Node"),
177
+ node.get("properties", {}),
178
+ )
179
+ result = await session.run(cypher, parameters=params)
180
+ record = await result.single()
181
+ if record:
182
+ node_ids.append(record["id"])
183
+ created_nodes += 1
184
+
185
+ if relationships:
186
+ rel_list = relationships if isinstance(relationships, list) else [relationships]
187
+ for rel in rel_list:
188
+ cypher, params = _build_create_relationship_query(
189
+ rel.get("type", "RELATED_TO"),
190
+ rel.get("from"),
191
+ rel.get("to"),
192
+ rel.get("properties", {}) or {},
193
+ )
194
+ result = await session.run(cypher, parameters=params)
195
+ record = await result.single()
196
+ if record:
197
+ relationship_ids.append(record["id"])
198
+ created_relationships += 1
199
+
200
+ return {
201
+ "ids": node_ids + relationship_ids,
202
+ "created_nodes": created_nodes,
203
+ "created_relationships": created_relationships,
204
+ }
205
+
206
+ async def _update(self, context: ComponentActionContext, driver: AsyncDriver, default_database: Optional[str]) -> Dict[str, Any]:
207
+ node_id = await context.render_variable(self.config.node_id)
208
+ relationship_id = await context.render_variable(self.config.relationship_id)
209
+ properties = await context.render_variable(self.config.properties)
210
+ labels = await context.render_variable(self.config.labels)
211
+ database = self._get_database(default_database)
212
+
213
+ affected_rows = 0
214
+
215
+ async with driver.session(database=database) as session:
216
+ if node_id is not None:
217
+ node_ids = node_id if isinstance(node_id, list) else [node_id]
218
+ for nid in node_ids:
219
+ built = _build_update_node_query(nid, properties, labels)
220
+ if built:
221
+ cypher, params = built
222
+ await session.run(cypher, parameters=params)
223
+ affected_rows += 1
224
+
225
+ if relationship_id is not None:
226
+ rel_ids = relationship_id if isinstance(relationship_id, list) else [relationship_id]
227
+ for rid in rel_ids:
228
+ if properties:
229
+ cypher, params = _build_update_relationship_query(rid, properties)
230
+ await session.run(cypher, parameters=params)
231
+ affected_rows += 1
232
+
233
+ return {"affected_rows": affected_rows}
234
+
235
+ async def _delete(self, context: ComponentActionContext, driver: AsyncDriver, default_database: Optional[str]) -> Dict[str, Any]:
236
+ node_id = await context.render_variable(self.config.node_id)
237
+ relationship_id = await context.render_variable(self.config.relationship_id)
238
+ detach = self.config.detach
239
+ database = self._get_database(default_database)
240
+
241
+ affected_rows = 0
242
+
243
+ async with driver.session(database=database) as session:
244
+ if node_id is not None:
245
+ node_ids = node_id if isinstance(node_id, list) else [node_id]
246
+ for nid in node_ids:
247
+ cypher, params = _build_delete_node_query(nid, detach)
248
+ await session.run(cypher, parameters=params)
249
+ affected_rows += 1
250
+
251
+ if relationship_id is not None:
252
+ rel_ids = relationship_id if isinstance(relationship_id, list) else [relationship_id]
253
+ for rid in rel_ids:
254
+ cypher, params = _build_delete_relationship_query(rid)
255
+ await session.run(cypher, parameters=params)
256
+ affected_rows += 1
257
+
258
+ return {"affected_rows": affected_rows}
259
+
260
+ async def _traverse(self, context: ComponentActionContext, driver: AsyncDriver, default_database: Optional[str]) -> List[Dict[str, Any]]:
261
+ start_node = await context.render_variable(self.config.start_node)
262
+ relationship_types = await context.render_variable(self.config.relationship_types)
263
+ node_labels = await context.render_variable(self.config.node_labels)
264
+ database = self._get_database(default_database)
265
+
266
+ cypher, params = _build_traverse_query(
267
+ start_node,
268
+ self.config.direction,
269
+ self.config.max_depth,
270
+ relationship_types,
271
+ node_labels,
272
+ )
273
+
274
+ async with driver.session(database=database) as session:
275
+ result = await session.run(cypher, parameters=params)
276
+ records = await result.data()
277
+ return records
278
+
279
+ @register_graph_store_service(GraphStoreDriver.NEO4J)
280
+ class Neo4jGraphStoreService(GraphStoreService):
281
+ def __init__(self, id: str, config: GraphStoreComponentConfig, daemon: bool):
282
+ super().__init__(id, config, daemon)
283
+
284
+ self.driver: Optional[AsyncDriver] = None
285
+
286
+ def get_setup_requirements(self) -> Optional[List[str]]:
287
+ return ["neo4j"]
288
+
289
+ async def _serve(self) -> None:
290
+ self.driver = self._create_driver()
291
+
292
+ async def _shutdown(self) -> None:
293
+ if self.driver:
294
+ await self.driver.close()
295
+ self.driver = None
296
+
297
+ async def _run(self, action: GraphStoreActionConfig, context: ComponentActionContext) -> Any:
298
+ return await Neo4jGraphStoreAction(action).run(context, self.driver, self.config.database)
299
+
300
+ def _create_driver(self) -> AsyncDriver:
301
+ from neo4j import AsyncGraphDatabase
302
+
303
+ auth = (self.config.username, self.config.password) if self.config.username else None
304
+ url = self.config.url if self.config.url else f"{self.config.protocol}://{self.config.host}:{self.config.port}"
305
+
306
+ return AsyncGraphDatabase.driver(
307
+ url,
308
+ auth=auth,
309
+ connection_timeout=parse_duration(self.config.timeout).total_seconds()
310
+ )