From 1f296c0cdb7d743a434e3fb95d7c4f5920401047 Mon Sep 17 00:00:00 2001 From: pyr0ball Date: Mon, 30 Mar 2026 22:34:40 -0700 Subject: [PATCH] feat(resources): add [orch] package extras, cf-orch entry point, Docker compose --- .gitignore | 4 +++ circuitforge_core/resources/compose.yml | 44 +++++++++++++++++++++++++ pyproject.toml | 16 ++++++++- 3 files changed, 63 insertions(+), 1 deletion(-) create mode 100644 circuitforge_core/resources/compose.yml diff --git a/.gitignore b/.gitignore index f5ba6f6..7d7f62b 100644 --- a/.gitignore +++ b/.gitignore @@ -4,3 +4,7 @@ __pycache__/ *.egg-info/ dist/ .pytest_cache/ +.superpowers/ + +# cf-orch private profiles (commit on personal/heimdall branch only) +circuitforge_core/resources/profiles/private/ diff --git a/circuitforge_core/resources/compose.yml b/circuitforge_core/resources/compose.yml new file mode 100644 index 0000000..2cb4345 --- /dev/null +++ b/circuitforge_core/resources/compose.yml @@ -0,0 +1,44 @@ +# circuitforge_core/resources/compose.yml +# One-command cf-orch deployment for Docker self-hosters: +# docker compose -f path/to/compose.yml up cf-orch-coordinator + +services: + cf-orch-coordinator: + image: python:3.12-slim + command: > + sh -c "pip install 'circuitforge-core[orch]' && + cf-orch start --host 0.0.0.0 --port 7700" + ports: + - "7700:7700" + volumes: + - /run/docker.sock:/var/run/docker.sock:ro + - cf-orch-data:/data + environment: + - CFORCH_PROFILE=${CFORCH_PROFILE:-} + restart: unless-stopped + devices: + - /dev/nvidia0:/dev/nvidia0 + - /dev/nvidiactl:/dev/nvidiactl + runtime: nvidia + + cf-orch-agent: + image: python:3.12-slim + command: > + sh -c "pip install 'circuitforge-core[orch]' && + cf-orch agent --coordinator http://cf-orch-coordinator:7700 + --node-id ${CFORCH_NODE_ID:-local} + --host 0.0.0.0 --port 7701" + ports: + - "7701:7701" + depends_on: + - cf-orch-coordinator + environment: + - CFORCH_NODE_ID=${CFORCH_NODE_ID:-local} + restart: unless-stopped + devices: + - /dev/nvidia0:/dev/nvidia0 + - /dev/nvidiactl:/dev/nvidiactl + runtime: nvidia + +volumes: + cf-orch-data: diff --git a/pyproject.toml b/pyproject.toml index 1ee3704..78a5cfc 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta" [project] name = "circuitforge-core" -version = "0.1.0" +version = "0.2.0" description = "Shared scaffold for CircuitForge products" requires-python = ">=3.11" dependencies = [ @@ -13,6 +13,20 @@ dependencies = [ "openai>=1.0", ] +[project.optional-dependencies] +orch = [ + "fastapi>=0.110", + "uvicorn[standard]>=0.29", + "httpx>=0.27", + "pydantic>=2.0", + "typer[all]>=0.12", + "psutil>=5.9", + "pytest-asyncio>=0.23", +] + +[project.scripts] +cf-orch = "circuitforge_core.resources.cli:app" + [tool.setuptools.packages.find] where = ["."] include = ["circuitforge_core*"]