model-compose 0.4.26__tar.gz → 0.4.27__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.
- {model_compose-0.4.26/src/model_compose.egg-info → model_compose-0.4.27}/PKG-INFO +14 -8
- {model_compose-0.4.26 → model_compose-0.4.27}/README.md +13 -7
- {model_compose-0.4.26 → model_compose-0.4.27}/pyproject.toml +1 -1
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/core/component/services/web_scraper.py +7 -3
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/core/compose/validator.py +3 -3
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/core/workflow/job/impl/__init__.py +1 -1
- model_compose-0.4.26/src/mindor/core/workflow/job/impl/action.py → model_compose-0.4.27/src/mindor/core/workflow/job/impl/component.py +8 -8
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/core/workflow/schema.py +4 -4
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/dsl/schema/job/impl/__init__.py +1 -1
- model_compose-0.4.26/src/mindor/dsl/schema/job/impl/action.py → model_compose-0.4.27/src/mindor/dsl/schema/job/impl/component.py +10 -10
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/dsl/schema/job/impl/types.py +1 -1
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/dsl/schema/job/job.py +1 -1
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/dsl/schema/workflow.py +4 -5
- {model_compose-0.4.26 → model_compose-0.4.27/src/model_compose.egg-info}/PKG-INFO +14 -8
- {model_compose-0.4.26 → model_compose-0.4.27}/src/model_compose.egg-info/SOURCES.txt +2 -3
- model_compose-0.4.26/src/mindor/dsl/utils/annotation.py +0 -19
- {model_compose-0.4.26 → model_compose-0.4.27}/LICENSE +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/setup.cfg +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/__init__.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/cli/__init__.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/cli/compose.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/cli/interrupt.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/core/__init__.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/core/component/__init__.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/core/component/base.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/core/component/component.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/core/component/context.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/core/component/runtime/__init__.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/core/component/runtime/process_manager.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/core/component/runtime/process_worker.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/core/component/services/__init__.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/core/component/services/agent.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/core/component/services/datasets/__init__.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/core/component/services/datasets/datasets.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/core/component/services/datasets/providers/__init__.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/core/component/services/datasets/providers/common.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/core/component/services/datasets/providers/huggingface.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/core/component/services/datasets/providers/local.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/core/component/services/datasets/utils.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/core/component/services/http_client.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/core/component/services/http_server.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/core/component/services/image_processor.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/core/component/services/mcp_client.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/core/component/services/mcp_server.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/core/component/services/model/__init__.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/core/component/services/model/base/__init__.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/core/component/services/model/base/common.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/core/component/services/model/base/huggingface.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/core/component/services/model/base/huggingface_hub.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/core/component/services/model/base/unsloth.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/core/component/services/model/model.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/core/component/services/model/tasks/__init__.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/core/component/services/model/tasks/chat_completion/__init__.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/core/component/services/model/tasks/chat_completion/huggingface.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/core/component/services/model/tasks/face_embedding/__init__.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/core/component/services/model/tasks/face_embedding/common.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/core/component/services/model/tasks/face_embedding/custom.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/core/component/services/model/tasks/face_embedding/insightface.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/core/component/services/model/tasks/image_generation/__init__.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/core/component/services/model/tasks/image_generation/common.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/core/component/services/model/tasks/image_generation/custom.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/core/component/services/model/tasks/image_generation/flux.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/core/component/services/model/tasks/image_generation/hunyuan_image.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/core/component/services/model/tasks/image_generation/sdxl.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/core/component/services/model/tasks/image_to_text/__init__.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/core/component/services/model/tasks/image_to_text/huggingface.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/core/component/services/model/tasks/image_upscale/__init__.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/core/component/services/model/tasks/image_upscale/common.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/core/component/services/model/tasks/image_upscale/custom.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/core/component/services/model/tasks/image_upscale/esrgan.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/core/component/services/model/tasks/image_upscale/ldsr.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/core/component/services/model/tasks/image_upscale/real_esrgan.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/core/component/services/model/tasks/image_upscale/swinir.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/core/component/services/model/tasks/text_classification/__init__.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/core/component/services/model/tasks/text_classification/huggingface.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/core/component/services/model/tasks/text_embedding/__init__.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/core/component/services/model/tasks/text_embedding/huggingface.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/core/component/services/model/tasks/text_generation/__init__.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/core/component/services/model/tasks/text_generation/huggingface.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/core/component/services/model/tasks/text_to_speech/__init__.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/core/component/services/model/tasks/text_to_speech/common.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/core/component/services/model/tasks/text_to_speech/custom.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/core/component/services/model/tasks/text_to_speech/qwen.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/core/component/services/shell.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/core/component/services/text_splitter.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/core/component/services/vector_store/__init__.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/core/component/services/vector_store/base.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/core/component/services/vector_store/drivers/__init__.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/core/component/services/vector_store/drivers/chroma.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/core/component/services/vector_store/drivers/milvus.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/core/component/services/vector_store/vector_store.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/core/component/services/workflow.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/core/compose/__init__.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/core/compose/compose.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/core/compose/manager.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/core/controller/__init__.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/core/controller/base.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/core/controller/controller.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/core/controller/runner/__init__.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/core/controller/runner/client.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/core/controller/runner/http_client.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/core/controller/runner/mcp_client.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/core/controller/runner/runner.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/core/controller/runtime/__init__.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/core/controller/runtime/docker/__init__.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/core/controller/runtime/docker/context/Dockerfile +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/core/controller/runtime/docker/docker.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/core/controller/runtime/native/__init__.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/core/controller/runtime/native/native.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/core/controller/runtime/specs.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/core/controller/services/__init__.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/core/controller/services/http_server.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/core/controller/services/mcp_server.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/core/controller/webui/__init__.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/core/controller/webui/gradio.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/core/controller/webui/webui.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/core/evaluator/__init__.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/core/evaluator/condition.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/core/foundation/__init__.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/core/foundation/async_service.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/core/foundation/ipc_messages.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/core/foundation/process_manager.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/core/foundation/process_worker.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/core/gateway/__init__.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/core/gateway/base.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/core/gateway/gateway.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/core/gateway/services/__init__.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/core/gateway/services/http_tunnel/__init__.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/core/gateway/services/http_tunnel/base.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/core/gateway/services/http_tunnel/drivers/__init__.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/core/gateway/services/http_tunnel/drivers/cloudflare.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/core/gateway/services/http_tunnel/drivers/ngrok.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/core/gateway/services/http_tunnel/http_tunnel.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/core/gateway/services/ssh_tunnel.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/core/listener/__init__.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/core/listener/base.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/core/listener/listener.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/core/listener/services/__init__.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/core/listener/services/http_callback.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/core/listener/services/http_trigger.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/core/logger/__init__.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/core/logger/base.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/core/logger/logger.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/core/logger/logging.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/core/logger/services/__init__.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/core/logger/services/console.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/core/logger/services/file.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/core/runtime/__init__.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/core/runtime/docker/__init__.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/core/runtime/docker/docker.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/core/runtime/env.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/core/utils/__init__.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/core/utils/caching.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/core/utils/http_client.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/core/utils/http_request.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/core/utils/http_response.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/core/utils/http_status.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/core/utils/image.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/core/utils/mcp_client.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/core/utils/package.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/core/utils/renderers.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/core/utils/resolvers.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/core/utils/shell.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/core/utils/ssh_client.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/core/utils/streamer.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/core/utils/streaming.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/core/utils/time.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/core/utils/url.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/core/utils/websocket_client.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/core/utils/work_queue.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/core/workflow/__init__.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/core/workflow/context.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/core/workflow/interrupt.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/core/workflow/job/__init__.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/core/workflow/job/base.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/core/workflow/job/impl/delay.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/core/workflow/job/impl/filter.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/core/workflow/job/impl/if_.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/core/workflow/job/impl/random_router.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/core/workflow/job/impl/switch.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/core/workflow/job/job.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/core/workflow/tool.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/core/workflow/workflow.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/dsl/__init__.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/dsl/loader.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/dsl/schema/__init__.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/dsl/schema/action/__init__.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/dsl/schema/action/action.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/dsl/schema/action/impl/__init__.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/dsl/schema/action/impl/agent.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/dsl/schema/action/impl/common.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/dsl/schema/action/impl/datasets/__init__.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/dsl/schema/action/impl/datasets/common.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/dsl/schema/action/impl/datasets/datasets.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/dsl/schema/action/impl/datasets/providers/__init__.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/dsl/schema/action/impl/datasets/providers/common.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/dsl/schema/action/impl/datasets/providers/huggingface.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/dsl/schema/action/impl/datasets/providers/local.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/dsl/schema/action/impl/http_client.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/dsl/schema/action/impl/http_server.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/dsl/schema/action/impl/image_processor.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/dsl/schema/action/impl/mcp_client.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/dsl/schema/action/impl/mcp_server.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/dsl/schema/action/impl/model/__init__.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/dsl/schema/action/impl/model/impl/__init__.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/dsl/schema/action/impl/model/impl/chat_completion.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/dsl/schema/action/impl/model/impl/common.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/dsl/schema/action/impl/model/impl/face_embedding/__init__.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/dsl/schema/action/impl/model/impl/face_embedding/face_embedding.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/dsl/schema/action/impl/model/impl/face_embedding/impl/__init__.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/dsl/schema/action/impl/model/impl/face_embedding/impl/common.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/dsl/schema/action/impl/model/impl/face_embedding/impl/dlib.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/dsl/schema/action/impl/model/impl/face_embedding/impl/facenet.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/dsl/schema/action/impl/model/impl/face_embedding/impl/insightface.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/dsl/schema/action/impl/model/impl/image_generation/__init__.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/dsl/schema/action/impl/model/impl/image_generation/image_generation.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/dsl/schema/action/impl/model/impl/image_generation/impl/__init__.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/dsl/schema/action/impl/model/impl/image_generation/impl/common.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/dsl/schema/action/impl/model/impl/image_generation/impl/flux.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/dsl/schema/action/impl/model/impl/image_generation/impl/hunyuan_image.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/dsl/schema/action/impl/model/impl/image_generation/impl/sdxl.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/dsl/schema/action/impl/model/impl/image_to_text.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/dsl/schema/action/impl/model/impl/image_upscale/__init__.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/dsl/schema/action/impl/model/impl/image_upscale/image_upscale.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/dsl/schema/action/impl/model/impl/image_upscale/impl/__init__.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/dsl/schema/action/impl/model/impl/image_upscale/impl/common.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/dsl/schema/action/impl/model/impl/image_upscale/impl/esrgan.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/dsl/schema/action/impl/model/impl/image_upscale/impl/ldsr.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/dsl/schema/action/impl/model/impl/image_upscale/impl/real_esrgan.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/dsl/schema/action/impl/model/impl/image_upscale/impl/swinir.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/dsl/schema/action/impl/model/impl/text_classification.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/dsl/schema/action/impl/model/impl/text_embedding.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/dsl/schema/action/impl/model/impl/text_generation.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/dsl/schema/action/impl/model/impl/text_to_speech/__init__.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/dsl/schema/action/impl/model/impl/text_to_speech/impl/__init__.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/dsl/schema/action/impl/model/impl/text_to_speech/impl/common.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/dsl/schema/action/impl/model/impl/text_to_speech/impl/qwen.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/dsl/schema/action/impl/model/impl/text_to_speech/text_to_speech.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/dsl/schema/action/impl/model/model.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/dsl/schema/action/impl/model_trainer/__init__.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/dsl/schema/action/impl/model_trainer/impl/__init__.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/dsl/schema/action/impl/model_trainer/impl/classification.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/dsl/schema/action/impl/model_trainer/impl/common.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/dsl/schema/action/impl/model_trainer/impl/sft.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/dsl/schema/action/impl/model_trainer/model_trainer.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/dsl/schema/action/impl/shell.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/dsl/schema/action/impl/text_splitter.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/dsl/schema/action/impl/vector_store/__init__.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/dsl/schema/action/impl/vector_store/impl/__init__.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/dsl/schema/action/impl/vector_store/impl/chroma.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/dsl/schema/action/impl/vector_store/impl/common.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/dsl/schema/action/impl/vector_store/impl/faiss.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/dsl/schema/action/impl/vector_store/impl/milvus.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/dsl/schema/action/impl/vector_store/impl/qdrant.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/dsl/schema/action/impl/vector_store/vector_store.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/dsl/schema/action/impl/web_scraper.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/dsl/schema/action/impl/workflow.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/dsl/schema/component/__init__.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/dsl/schema/component/component.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/dsl/schema/component/impl/__init__.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/dsl/schema/component/impl/agent.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/dsl/schema/component/impl/common.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/dsl/schema/component/impl/datasets/__init__.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/dsl/schema/component/impl/datasets/datasets.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/dsl/schema/component/impl/http_client.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/dsl/schema/component/impl/http_server.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/dsl/schema/component/impl/image_processor.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/dsl/schema/component/impl/mcp_client.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/dsl/schema/component/impl/mcp_server.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/dsl/schema/component/impl/model/__init__.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/dsl/schema/component/impl/model/impl/__init__.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/dsl/schema/component/impl/model/impl/chat_completion.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/dsl/schema/component/impl/model/impl/common.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/dsl/schema/component/impl/model/impl/face_embedding/__init__.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/dsl/schema/component/impl/model/impl/face_embedding/face_embedding.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/dsl/schema/component/impl/model/impl/face_embedding/impl/__init__.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/dsl/schema/component/impl/model/impl/face_embedding/impl/common.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/dsl/schema/component/impl/model/impl/face_embedding/impl/dlib.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/dsl/schema/component/impl/model/impl/face_embedding/impl/facenet.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/dsl/schema/component/impl/model/impl/face_embedding/impl/insightface.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/dsl/schema/component/impl/model/impl/image_generation/__init__.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/dsl/schema/component/impl/model/impl/image_generation/image_generation.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/dsl/schema/component/impl/model/impl/image_generation/impl/__init__.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/dsl/schema/component/impl/model/impl/image_generation/impl/common.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/dsl/schema/component/impl/model/impl/image_generation/impl/flux.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/dsl/schema/component/impl/model/impl/image_generation/impl/hunyuan_image.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/dsl/schema/component/impl/model/impl/image_generation/impl/sdxl.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/dsl/schema/component/impl/model/impl/image_to_text.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/dsl/schema/component/impl/model/impl/image_upscale/__init__.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/dsl/schema/component/impl/model/impl/image_upscale/image_upscale.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/dsl/schema/component/impl/model/impl/image_upscale/impl/__init__.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/dsl/schema/component/impl/model/impl/image_upscale/impl/common.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/dsl/schema/component/impl/model/impl/image_upscale/impl/esrgan.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/dsl/schema/component/impl/model/impl/image_upscale/impl/ldsr.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/dsl/schema/component/impl/model/impl/image_upscale/impl/real_esrgan.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/dsl/schema/component/impl/model/impl/image_upscale/impl/swinir.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/dsl/schema/component/impl/model/impl/text_classification.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/dsl/schema/component/impl/model/impl/text_embedding.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/dsl/schema/component/impl/model/impl/text_generation.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/dsl/schema/component/impl/model/impl/text_to_speech/__init__.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/dsl/schema/component/impl/model/impl/text_to_speech/impl/__init__.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/dsl/schema/component/impl/model/impl/text_to_speech/impl/common.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/dsl/schema/component/impl/model/impl/text_to_speech/impl/qwen.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/dsl/schema/component/impl/model/impl/text_to_speech/text_to_speech.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/dsl/schema/component/impl/model/model.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/dsl/schema/component/impl/model_trainer/__init__.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/dsl/schema/component/impl/model_trainer/impl/__init__.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/dsl/schema/component/impl/model_trainer/impl/classification.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/dsl/schema/component/impl/model_trainer/impl/common.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/dsl/schema/component/impl/model_trainer/impl/sft.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/dsl/schema/component/impl/model_trainer/model_trainer.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/dsl/schema/component/impl/shell.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/dsl/schema/component/impl/text_splitter.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/dsl/schema/component/impl/types.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/dsl/schema/component/impl/vector_store/__init__.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/dsl/schema/component/impl/vector_store/impl/__init__.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/dsl/schema/component/impl/vector_store/impl/chroma.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/dsl/schema/component/impl/vector_store/impl/common.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/dsl/schema/component/impl/vector_store/impl/faiss.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/dsl/schema/component/impl/vector_store/impl/milvus.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/dsl/schema/component/impl/vector_store/impl/qdrant.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/dsl/schema/component/impl/vector_store/vector_store.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/dsl/schema/component/impl/web_scraper.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/dsl/schema/component/impl/workflow.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/dsl/schema/compose.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/dsl/schema/controller/__init__.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/dsl/schema/controller/controller.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/dsl/schema/controller/impl/__init__.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/dsl/schema/controller/impl/common.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/dsl/schema/controller/impl/http_server.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/dsl/schema/controller/impl/mcp_server.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/dsl/schema/controller/impl/types.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/dsl/schema/controller/webui/__init__.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/dsl/schema/controller/webui/impl/__init__.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/dsl/schema/controller/webui/impl/common.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/dsl/schema/controller/webui/impl/dynamic.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/dsl/schema/controller/webui/impl/gradio.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/dsl/schema/controller/webui/impl/static.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/dsl/schema/controller/webui/webui.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/dsl/schema/gateway/__init__.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/dsl/schema/gateway/gateway.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/dsl/schema/gateway/impl/__init__.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/dsl/schema/gateway/impl/common.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/dsl/schema/gateway/impl/http_tunnel/__init__.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/dsl/schema/gateway/impl/http_tunnel/http_tunnel.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/dsl/schema/gateway/impl/http_tunnel/impl/__init__.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/dsl/schema/gateway/impl/http_tunnel/impl/cloudflare.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/dsl/schema/gateway/impl/http_tunnel/impl/common.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/dsl/schema/gateway/impl/http_tunnel/impl/ngrok.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/dsl/schema/gateway/impl/ssh_tunnel.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/dsl/schema/gateway/impl/types.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/dsl/schema/job/__init__.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/dsl/schema/job/impl/common.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/dsl/schema/job/impl/delay.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/dsl/schema/job/impl/filter.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/dsl/schema/job/impl/if_.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/dsl/schema/job/impl/random_router.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/dsl/schema/job/impl/switch.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/dsl/schema/listener/__init__.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/dsl/schema/listener/impl/__init__.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/dsl/schema/listener/impl/common.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/dsl/schema/listener/impl/http_callback.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/dsl/schema/listener/impl/http_trigger.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/dsl/schema/listener/impl/types.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/dsl/schema/listener/listener.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/dsl/schema/logger/__init__.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/dsl/schema/logger/impl/__init__.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/dsl/schema/logger/impl/common.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/dsl/schema/logger/impl/console.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/dsl/schema/logger/impl/file.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/dsl/schema/logger/impl/types.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/dsl/schema/logger/logger.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/dsl/schema/operator/__init__.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/dsl/schema/operator/condition.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/dsl/schema/runtime/__init__.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/dsl/schema/runtime/impl/__init__.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/dsl/schema/runtime/impl/common.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/dsl/schema/runtime/impl/docker.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/dsl/schema/runtime/impl/embedded.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/dsl/schema/runtime/impl/native.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/dsl/schema/runtime/impl/process.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/dsl/schema/runtime/impl/types.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/dsl/schema/runtime/runtime.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/dsl/schema/transport/__init__.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/dsl/schema/transport/http.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/dsl/schema/transport/ssh.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/dsl/utils/__init__.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/dsl/utils/enum.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/dsl/utils/path.py +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/model_compose.egg-info/dependency_links.txt +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/model_compose.egg-info/entry_points.txt +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/model_compose.egg-info/requires.txt +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/src/model_compose.egg-info/top_level.txt +0 -0
- {model_compose-0.4.26 → model_compose-0.4.27}/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.
|
|
3
|
+
Version: 0.4.27
|
|
4
4
|
Summary: model-compose: Declarative AI Workflow Orchestrator
|
|
5
5
|
Author-email: Hanyeol Cho <hanyeol.cho@gmail.com>
|
|
6
6
|
License-Expression: MIT
|
|
@@ -62,6 +62,12 @@ Define complex AI workflows entirely in YAML—no Python, no JavaScript, no codi
|
|
|
62
62
|
### 🔗 **Universal AI Service Integration**
|
|
63
63
|
Connect to any AI provider out of the box—OpenAI, Anthropic Claude, Google Gemini, ElevenLabs, Stability AI, Replicate, or any custom HTTP API. Mix and match services in a single workflow.
|
|
64
64
|
|
|
65
|
+
### 🤖 **Agent Components**
|
|
66
|
+
Build autonomous AI agents that use workflows as tools. Agents can reason, plan, and execute multi-step tasks by dynamically invoking other workflows—all defined declaratively in YAML.
|
|
67
|
+
|
|
68
|
+
### ✋ **Human-in-the-Loop**
|
|
69
|
+
Add approval gates and user input steps to any workflow with interrupt configuration. Workflows pause, prompt for human input via CLI, Web UI, or API, and resume seamlessly—perfect for review, moderation, and supervised AI pipelines.
|
|
70
|
+
|
|
65
71
|
### 🖥️ **Local Model Execution**
|
|
66
72
|
Run models from HuggingFace and other sources locally with native support for transformers, PyTorch, and model serving frameworks. Fine-tune models with LoRA/PEFT, train with custom datasets, all through YAML configuration.
|
|
67
73
|
|
|
@@ -124,6 +130,12 @@ controller:
|
|
|
124
130
|
webui:
|
|
125
131
|
port: 8081
|
|
126
132
|
|
|
133
|
+
workflows:
|
|
134
|
+
- id: chat
|
|
135
|
+
default: true
|
|
136
|
+
jobs:
|
|
137
|
+
- component: chatgpt
|
|
138
|
+
|
|
127
139
|
components:
|
|
128
140
|
- id: chatgpt
|
|
129
141
|
type: http-client
|
|
@@ -137,12 +149,6 @@ components:
|
|
|
137
149
|
messages:
|
|
138
150
|
- role: user
|
|
139
151
|
content: ${input.prompt}
|
|
140
|
-
|
|
141
|
-
workflows:
|
|
142
|
-
- id: chat
|
|
143
|
-
default: true
|
|
144
|
-
jobs:
|
|
145
|
-
- component: chatgpt
|
|
146
152
|
```
|
|
147
153
|
|
|
148
154
|
Create a `.env` file:
|
|
@@ -211,7 +217,7 @@ pip install -e .[dev]
|
|
|
211
217
|
---
|
|
212
218
|
|
|
213
219
|
## 📄 License
|
|
214
|
-
MIT License © 2025 Hanyeol Cho.
|
|
220
|
+
MIT License © 2025-2026 Hanyeol Cho.
|
|
215
221
|
|
|
216
222
|
---
|
|
217
223
|
|
|
@@ -36,6 +36,12 @@ Define complex AI workflows entirely in YAML—no Python, no JavaScript, no codi
|
|
|
36
36
|
### 🔗 **Universal AI Service Integration**
|
|
37
37
|
Connect to any AI provider out of the box—OpenAI, Anthropic Claude, Google Gemini, ElevenLabs, Stability AI, Replicate, or any custom HTTP API. Mix and match services in a single workflow.
|
|
38
38
|
|
|
39
|
+
### 🤖 **Agent Components**
|
|
40
|
+
Build autonomous AI agents that use workflows as tools. Agents can reason, plan, and execute multi-step tasks by dynamically invoking other workflows—all defined declaratively in YAML.
|
|
41
|
+
|
|
42
|
+
### ✋ **Human-in-the-Loop**
|
|
43
|
+
Add approval gates and user input steps to any workflow with interrupt configuration. Workflows pause, prompt for human input via CLI, Web UI, or API, and resume seamlessly—perfect for review, moderation, and supervised AI pipelines.
|
|
44
|
+
|
|
39
45
|
### 🖥️ **Local Model Execution**
|
|
40
46
|
Run models from HuggingFace and other sources locally with native support for transformers, PyTorch, and model serving frameworks. Fine-tune models with LoRA/PEFT, train with custom datasets, all through YAML configuration.
|
|
41
47
|
|
|
@@ -98,6 +104,12 @@ controller:
|
|
|
98
104
|
webui:
|
|
99
105
|
port: 8081
|
|
100
106
|
|
|
107
|
+
workflows:
|
|
108
|
+
- id: chat
|
|
109
|
+
default: true
|
|
110
|
+
jobs:
|
|
111
|
+
- component: chatgpt
|
|
112
|
+
|
|
101
113
|
components:
|
|
102
114
|
- id: chatgpt
|
|
103
115
|
type: http-client
|
|
@@ -111,12 +123,6 @@ components:
|
|
|
111
123
|
messages:
|
|
112
124
|
- role: user
|
|
113
125
|
content: ${input.prompt}
|
|
114
|
-
|
|
115
|
-
workflows:
|
|
116
|
-
- id: chat
|
|
117
|
-
default: true
|
|
118
|
-
jobs:
|
|
119
|
-
- component: chatgpt
|
|
120
126
|
```
|
|
121
127
|
|
|
122
128
|
Create a `.env` file:
|
|
@@ -185,7 +191,7 @@ pip install -e .[dev]
|
|
|
185
191
|
---
|
|
186
192
|
|
|
187
193
|
## 📄 License
|
|
188
|
-
MIT License © 2025 Hanyeol Cho.
|
|
194
|
+
MIT License © 2025-2026 Hanyeol Cho.
|
|
189
195
|
|
|
190
196
|
---
|
|
191
197
|
|
{model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/core/component/services/web_scraper.py
RENAMED
|
@@ -73,7 +73,7 @@ class WebScraperAction:
|
|
|
73
73
|
{
|
|
74
74
|
"name": name,
|
|
75
75
|
"value": value,
|
|
76
|
-
"domain": parsed_url.
|
|
76
|
+
"domain": parsed_url.hostname,
|
|
77
77
|
"path": "/"
|
|
78
78
|
}
|
|
79
79
|
for name, value in cookies.items()
|
|
@@ -122,7 +122,11 @@ class WebScraperAction:
|
|
|
122
122
|
await element.click()
|
|
123
123
|
else:
|
|
124
124
|
# No selector/xpath: find and submit the first form
|
|
125
|
-
await page.
|
|
125
|
+
element = await page.query_selector("form")
|
|
126
|
+
if element:
|
|
127
|
+
await element.evaluate("form => form.submit()")
|
|
128
|
+
else:
|
|
129
|
+
raise ValueError("No <form> element found on the page to submit")
|
|
126
130
|
|
|
127
131
|
# Wait for navigation or specific element after submit
|
|
128
132
|
if wait_for:
|
|
@@ -232,7 +236,7 @@ class WebScraperComponent(ComponentService):
|
|
|
232
236
|
super().__init__(id, config, global_configs, daemon)
|
|
233
237
|
|
|
234
238
|
def _get_setup_requirements(self) -> Optional[List[str]]:
|
|
235
|
-
return [ "playwright", "
|
|
239
|
+
return [ "playwright", "beautifulsoup4", "lxml" ]
|
|
236
240
|
|
|
237
241
|
async def _setup(self) -> None:
|
|
238
242
|
"""Install playwright browsers after package installation."""
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
from typing import Dict, List, Set
|
|
2
2
|
from mindor.dsl.schema.compose import ComposeConfig
|
|
3
|
-
from mindor.dsl.schema.job.impl.
|
|
3
|
+
from mindor.dsl.schema.job.impl.component import ComponentJobConfig
|
|
4
4
|
from mindor.dsl.schema.action.impl.workflow import WorkflowActionConfig
|
|
5
5
|
from mindor.dsl.schema.listener.impl.http_trigger import HttpTriggerListenerConfig
|
|
6
6
|
from mindor.dsl.schema.component.impl.workflow import WorkflowComponentConfig
|
|
@@ -70,7 +70,7 @@ class ComposeValidator:
|
|
|
70
70
|
|
|
71
71
|
for wi, workflow in enumerate(self.config.workflows):
|
|
72
72
|
for ji, job in enumerate(workflow.jobs):
|
|
73
|
-
if not isinstance(job,
|
|
73
|
+
if not isinstance(job, ComponentJobConfig):
|
|
74
74
|
continue
|
|
75
75
|
if not isinstance(job.component, str):
|
|
76
76
|
continue
|
|
@@ -91,7 +91,7 @@ class ComposeValidator:
|
|
|
91
91
|
|
|
92
92
|
for wi, workflow in enumerate(self.config.workflows):
|
|
93
93
|
for ji, job in enumerate(workflow.jobs):
|
|
94
|
-
if not isinstance(job,
|
|
94
|
+
if not isinstance(job, ComponentJobConfig):
|
|
95
95
|
continue
|
|
96
96
|
|
|
97
97
|
action_ref = job.action
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
from typing import Type, Union, Literal, Optional, Dict, List, Tuple, Set, Annotated, Callable, Any
|
|
2
|
-
from mindor.dsl.schema.job import
|
|
2
|
+
from mindor.dsl.schema.job import ComponentJobConfig, ComponentInterruptPointConfig, JobType
|
|
3
3
|
from mindor.core.evaluator.condition import evaluate_condition
|
|
4
4
|
from mindor.dsl.schema.component import ComponentConfig
|
|
5
5
|
from mindor.core.component import ComponentService, ComponentGlobalConfigs, ComponentResolver, create_component
|
|
@@ -10,9 +10,9 @@ from ..base import Job, JobType, WorkflowContext, RoutingTarget, register_job
|
|
|
10
10
|
from datetime import datetime
|
|
11
11
|
import asyncio, ulid
|
|
12
12
|
|
|
13
|
-
@register_job(JobType.
|
|
14
|
-
class
|
|
15
|
-
def __init__(self, id: str, config:
|
|
13
|
+
@register_job(JobType.COMPONENT)
|
|
14
|
+
class ComponentJob(Job):
|
|
15
|
+
def __init__(self, id: str, config: ComponentJobConfig, global_configs: ComponentGlobalConfigs):
|
|
16
16
|
super().__init__(id, config, global_configs)
|
|
17
17
|
|
|
18
18
|
async def run(self, context: WorkflowContext) -> Union[Any, RoutingTarget]:
|
|
@@ -28,7 +28,7 @@ class ActionJob(Job):
|
|
|
28
28
|
run_id: str = ulid.ulid()
|
|
29
29
|
|
|
30
30
|
job_time_tracker = TimeTracker()
|
|
31
|
-
logging.debug("[task-%s]
|
|
31
|
+
logging.debug("[task-%s] Component 'run-%s' started for job '%s'", context.task_id, run_id, self.id)
|
|
32
32
|
|
|
33
33
|
if self.config.interrupt and self.config.interrupt.before:
|
|
34
34
|
logging.info("[task-%s] Job '%s' interrupted at 'before' phase.", context.task_id, self.id)
|
|
@@ -46,7 +46,7 @@ class ActionJob(Job):
|
|
|
46
46
|
output = answer
|
|
47
47
|
context.register_source("output", output)
|
|
48
48
|
|
|
49
|
-
logging.debug("[task-%s]
|
|
49
|
+
logging.debug("[task-%s] Component 'run-%s' completed in %.2f seconds.", context.task_id, run_id, job_time_tracker.elapsed())
|
|
50
50
|
|
|
51
51
|
output = (await context.render_variable(self.config.output, ignore_files=True)) if self.config.output else output
|
|
52
52
|
outputs.append(output)
|
|
@@ -59,7 +59,7 @@ class ActionJob(Job):
|
|
|
59
59
|
|
|
60
60
|
return output
|
|
61
61
|
|
|
62
|
-
async def _interrupt(self, context: WorkflowContext, phase: str, point:
|
|
62
|
+
async def _interrupt(self, context: WorkflowContext, phase: str, point: ComponentInterruptPointConfig) -> Any:
|
|
63
63
|
if point.condition:
|
|
64
64
|
input = await context.render_variable(point.condition.input)
|
|
65
65
|
value = await context.render_variable(point.condition.value)
|
|
@@ -90,5 +90,5 @@ class ActionJob(Job):
|
|
|
90
90
|
def _resolve_component(self, id: str, component: Union[ComponentConfig, str]) -> Tuple[str, ComponentConfig]:
|
|
91
91
|
if isinstance(component, str):
|
|
92
92
|
return ComponentResolver(self.global_configs.components).resolve(component)
|
|
93
|
-
|
|
93
|
+
|
|
94
94
|
return id, component
|
|
@@ -2,7 +2,7 @@ from typing import Type, Union, Literal, Optional, Dict, List, Tuple, Set, Annot
|
|
|
2
2
|
from dataclasses import dataclass, asdict
|
|
3
3
|
from pydantic import BaseModel
|
|
4
4
|
from mindor.dsl.schema.workflow import WorkflowConfig, WorkflowVariableConfig, WorkflowVariableGroupConfig
|
|
5
|
-
from mindor.dsl.schema.job import
|
|
5
|
+
from mindor.dsl.schema.job import ComponentJobConfig, OutputJobConfig
|
|
6
6
|
from mindor.dsl.schema.component import ComponentConfig, ComponentType
|
|
7
7
|
from mindor.dsl.schema.action import ActionConfig
|
|
8
8
|
from mindor.core.component import ComponentResolver, ActionResolver
|
|
@@ -204,7 +204,7 @@ class WorkflowInputVariableResolver(WorkflowVariableResolver):
|
|
|
204
204
|
variables: List[WorkflowVariable] = []
|
|
205
205
|
|
|
206
206
|
for job in workflow.jobs:
|
|
207
|
-
if isinstance(job,
|
|
207
|
+
if isinstance(job, ComponentJobConfig) and (not job.input or job.input == "${input}"):
|
|
208
208
|
if isinstance(job.component, str):
|
|
209
209
|
_, component = ComponentResolver(components).resolve(job.component, raise_on_error=False)
|
|
210
210
|
if component:
|
|
@@ -245,12 +245,12 @@ class WorkflowOutputVariableResolver(WorkflowVariableResolver):
|
|
|
245
245
|
continue
|
|
246
246
|
|
|
247
247
|
job_variables: List[WorkflowVariable] = variables
|
|
248
|
-
repeat_count: int = job.repeat_count if isinstance(job,
|
|
248
|
+
repeat_count: int = job.repeat_count if isinstance(job, ComponentJobConfig) and isinstance(job.repeat_count, int) else 0
|
|
249
249
|
|
|
250
250
|
if repeat_count > 1:
|
|
251
251
|
variables.append(WorkflowVariableGroup(variables=(job_variables := []), repeat_count=repeat_count))
|
|
252
252
|
|
|
253
|
-
if isinstance(job,
|
|
253
|
+
if isinstance(job, ComponentJobConfig) and (not job.output or job.output == "${output}"):
|
|
254
254
|
if isinstance(job.component, str):
|
|
255
255
|
_, component = ComponentResolver(components).resolve(job.component, raise_on_error=False)
|
|
256
256
|
if component:
|
|
@@ -5,34 +5,34 @@ from mindor.dsl.schema.component import ComponentConfig
|
|
|
5
5
|
from mindor.dsl.schema.operator.condition import ConditionOperator
|
|
6
6
|
from .common import JobType, OutputJobConfig
|
|
7
7
|
|
|
8
|
-
class
|
|
8
|
+
class ComponentInterruptConditionConfig(BaseModel):
|
|
9
9
|
operator: ConditionOperator = Field(default=ConditionOperator.EQ, description="Condition operator.")
|
|
10
10
|
input: Optional[Any] = Field(default=None, description="Input to evaluate.")
|
|
11
11
|
value: Optional[Any] = Field(default=None, description="Value to compare against.")
|
|
12
12
|
|
|
13
|
-
class
|
|
14
|
-
condition: Optional[
|
|
13
|
+
class ComponentInterruptPointConfig(BaseModel):
|
|
14
|
+
condition: Optional[ComponentInterruptConditionConfig] = Field(default=None, description="Condition that must be true for the interrupt to fire. If omitted, always interrupts.")
|
|
15
15
|
message: Optional[str] = Field(default=None, description="A message displayed to the user when the workflow is interrupted.")
|
|
16
16
|
metadata: Optional[Dict[str, Any]] = Field(default=None, description="Structured metadata to pass to the client on interrupt.")
|
|
17
17
|
|
|
18
|
-
class
|
|
19
|
-
before: Union[bool,
|
|
20
|
-
after: Union[bool,
|
|
18
|
+
class ComponentInterruptConfig(BaseModel):
|
|
19
|
+
before: Union[bool, ComponentInterruptPointConfig] = Field(default=False, description="Interrupt before the component executes. Set to true or provide {message, metadata}.")
|
|
20
|
+
after: Union[bool, ComponentInterruptPointConfig] = Field(default=False, description="Interrupt after the component executes. Set to true or provide {message, metadata}.")
|
|
21
21
|
|
|
22
22
|
@field_validator("before", "after", mode="before")
|
|
23
23
|
def normalize_point(cls, value):
|
|
24
24
|
if value is True:
|
|
25
|
-
return
|
|
25
|
+
return ComponentInterruptPointConfig()
|
|
26
26
|
if value is False or value is None:
|
|
27
27
|
return False
|
|
28
28
|
return value
|
|
29
29
|
|
|
30
|
-
class
|
|
31
|
-
type: Literal[JobType.
|
|
30
|
+
class ComponentJobConfig(OutputJobConfig):
|
|
31
|
+
type: Literal[JobType.COMPONENT]
|
|
32
32
|
component: Union[str, ComponentConfig] = Field(default="__default__", description="The component to run. May be either a string identifier or a full config object.")
|
|
33
33
|
action: str = Field(default="__default__", description="The action to invoke on the component. Defaults to '__default__'.")
|
|
34
34
|
input: Optional[Any] = Field(default=None, description="Input data supplied to the component. Accepts any type.")
|
|
35
|
-
interrupt: Optional[
|
|
35
|
+
interrupt: Optional[ComponentInterruptConfig] = Field(default=None, description="Configuration for Human-in-the-Loop interrupt points around component execution.")
|
|
36
36
|
repeat_count: Union[int, str] = Field(default=1, description="Number of times to repeat the component execution. Must be at least 1.")
|
|
37
37
|
|
|
38
38
|
@field_validator("repeat_count")
|
|
@@ -2,7 +2,6 @@ from typing import Type, Union, Literal, Optional, Dict, List, Tuple, Set, Annot
|
|
|
2
2
|
from enum import Enum
|
|
3
3
|
from pydantic import BaseModel, Field
|
|
4
4
|
from pydantic import model_validator, field_validator
|
|
5
|
-
from mindor.dsl.utils.annotation import get_model_union_keys
|
|
6
5
|
from .job import JobConfig, JobType, DelayJobMode
|
|
7
6
|
|
|
8
7
|
class WorkflowVariableType(str, Enum):
|
|
@@ -79,16 +78,16 @@ class WorkflowConfig(BaseModel):
|
|
|
79
78
|
@classmethod
|
|
80
79
|
def inflate_single_job(cls, values: Dict[str, Any]):
|
|
81
80
|
if "jobs" not in values:
|
|
82
|
-
|
|
83
|
-
if
|
|
84
|
-
values["jobs"] = [
|
|
81
|
+
job_values = values.pop("job", None)
|
|
82
|
+
if job_values:
|
|
83
|
+
values["jobs"] = [ job_values ]
|
|
85
84
|
return values
|
|
86
85
|
|
|
87
86
|
@classmethod
|
|
88
87
|
def fill_missing_job_type(cls, jobs: List[Any]):
|
|
89
88
|
for job in jobs:
|
|
90
89
|
if "type" not in job:
|
|
91
|
-
job["type"] = JobType.
|
|
90
|
+
job["type"] = JobType.COMPONENT
|
|
92
91
|
|
|
93
92
|
@classmethod
|
|
94
93
|
def fill_missing_delay_job_mode(cls, jobs: List[Any]):
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: model-compose
|
|
3
|
-
Version: 0.4.
|
|
3
|
+
Version: 0.4.27
|
|
4
4
|
Summary: model-compose: Declarative AI Workflow Orchestrator
|
|
5
5
|
Author-email: Hanyeol Cho <hanyeol.cho@gmail.com>
|
|
6
6
|
License-Expression: MIT
|
|
@@ -62,6 +62,12 @@ Define complex AI workflows entirely in YAML—no Python, no JavaScript, no codi
|
|
|
62
62
|
### 🔗 **Universal AI Service Integration**
|
|
63
63
|
Connect to any AI provider out of the box—OpenAI, Anthropic Claude, Google Gemini, ElevenLabs, Stability AI, Replicate, or any custom HTTP API. Mix and match services in a single workflow.
|
|
64
64
|
|
|
65
|
+
### 🤖 **Agent Components**
|
|
66
|
+
Build autonomous AI agents that use workflows as tools. Agents can reason, plan, and execute multi-step tasks by dynamically invoking other workflows—all defined declaratively in YAML.
|
|
67
|
+
|
|
68
|
+
### ✋ **Human-in-the-Loop**
|
|
69
|
+
Add approval gates and user input steps to any workflow with interrupt configuration. Workflows pause, prompt for human input via CLI, Web UI, or API, and resume seamlessly—perfect for review, moderation, and supervised AI pipelines.
|
|
70
|
+
|
|
65
71
|
### 🖥️ **Local Model Execution**
|
|
66
72
|
Run models from HuggingFace and other sources locally with native support for transformers, PyTorch, and model serving frameworks. Fine-tune models with LoRA/PEFT, train with custom datasets, all through YAML configuration.
|
|
67
73
|
|
|
@@ -124,6 +130,12 @@ controller:
|
|
|
124
130
|
webui:
|
|
125
131
|
port: 8081
|
|
126
132
|
|
|
133
|
+
workflows:
|
|
134
|
+
- id: chat
|
|
135
|
+
default: true
|
|
136
|
+
jobs:
|
|
137
|
+
- component: chatgpt
|
|
138
|
+
|
|
127
139
|
components:
|
|
128
140
|
- id: chatgpt
|
|
129
141
|
type: http-client
|
|
@@ -137,12 +149,6 @@ components:
|
|
|
137
149
|
messages:
|
|
138
150
|
- role: user
|
|
139
151
|
content: ${input.prompt}
|
|
140
|
-
|
|
141
|
-
workflows:
|
|
142
|
-
- id: chat
|
|
143
|
-
default: true
|
|
144
|
-
jobs:
|
|
145
|
-
- component: chatgpt
|
|
146
152
|
```
|
|
147
153
|
|
|
148
154
|
Create a `.env` file:
|
|
@@ -211,7 +217,7 @@ pip install -e .[dev]
|
|
|
211
217
|
---
|
|
212
218
|
|
|
213
219
|
## 📄 License
|
|
214
|
-
MIT License © 2025 Hanyeol Cho.
|
|
220
|
+
MIT License © 2025-2026 Hanyeol Cho.
|
|
215
221
|
|
|
216
222
|
---
|
|
217
223
|
|
|
@@ -165,7 +165,7 @@ src/mindor/core/workflow/job/__init__.py
|
|
|
165
165
|
src/mindor/core/workflow/job/base.py
|
|
166
166
|
src/mindor/core/workflow/job/job.py
|
|
167
167
|
src/mindor/core/workflow/job/impl/__init__.py
|
|
168
|
-
src/mindor/core/workflow/job/impl/
|
|
168
|
+
src/mindor/core/workflow/job/impl/component.py
|
|
169
169
|
src/mindor/core/workflow/job/impl/delay.py
|
|
170
170
|
src/mindor/core/workflow/job/impl/filter.py
|
|
171
171
|
src/mindor/core/workflow/job/impl/if_.py
|
|
@@ -343,8 +343,8 @@ src/mindor/dsl/schema/gateway/impl/http_tunnel/impl/ngrok.py
|
|
|
343
343
|
src/mindor/dsl/schema/job/__init__.py
|
|
344
344
|
src/mindor/dsl/schema/job/job.py
|
|
345
345
|
src/mindor/dsl/schema/job/impl/__init__.py
|
|
346
|
-
src/mindor/dsl/schema/job/impl/action.py
|
|
347
346
|
src/mindor/dsl/schema/job/impl/common.py
|
|
347
|
+
src/mindor/dsl/schema/job/impl/component.py
|
|
348
348
|
src/mindor/dsl/schema/job/impl/delay.py
|
|
349
349
|
src/mindor/dsl/schema/job/impl/filter.py
|
|
350
350
|
src/mindor/dsl/schema/job/impl/if_.py
|
|
@@ -380,7 +380,6 @@ src/mindor/dsl/schema/transport/__init__.py
|
|
|
380
380
|
src/mindor/dsl/schema/transport/http.py
|
|
381
381
|
src/mindor/dsl/schema/transport/ssh.py
|
|
382
382
|
src/mindor/dsl/utils/__init__.py
|
|
383
|
-
src/mindor/dsl/utils/annotation.py
|
|
384
383
|
src/mindor/dsl/utils/enum.py
|
|
385
384
|
src/mindor/dsl/utils/path.py
|
|
386
385
|
src/model_compose.egg-info/PKG-INFO
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
from typing import Set, Any, get_args
|
|
2
|
-
from pydantic import BaseModel
|
|
3
|
-
|
|
4
|
-
def get_model_union_keys(model_union_type: Any) -> Set[str]:
|
|
5
|
-
keys, stack = set(), [ model_union_type ]
|
|
6
|
-
|
|
7
|
-
while stack:
|
|
8
|
-
current = stack.pop()
|
|
9
|
-
|
|
10
|
-
if isinstance(current, type) and issubclass(current, BaseModel):
|
|
11
|
-
keys |= set(current.model_fields.keys())
|
|
12
|
-
continue
|
|
13
|
-
|
|
14
|
-
args = get_args(current)
|
|
15
|
-
if args:
|
|
16
|
-
stack.extend(args)
|
|
17
|
-
continue
|
|
18
|
-
|
|
19
|
-
return keys
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/core/component/runtime/process_manager.py
RENAMED
|
File without changes
|
{model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/core/component/runtime/process_worker.py
RENAMED
|
File without changes
|
{model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/core/component/services/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/core/component/services/datasets/utils.py
RENAMED
|
File without changes
|
{model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/core/component/services/http_client.py
RENAMED
|
File without changes
|
{model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/core/component/services/http_server.py
RENAMED
|
File without changes
|
{model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/core/component/services/image_processor.py
RENAMED
|
File without changes
|
{model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/core/component/services/mcp_client.py
RENAMED
|
File without changes
|
{model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/core/component/services/mcp_server.py
RENAMED
|
File without changes
|
{model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/core/component/services/model/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{model_compose-0.4.26 → model_compose-0.4.27}/src/mindor/core/component/services/model/model.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|