From c10a481ce3b0d473e9fafe1b5fa92f74aa6db446 Mon Sep 17 00:00:00 2001 From: pyr0ball Date: Thu, 21 May 2026 15:05:11 -0700 Subject: [PATCH] chore: move circuitforge-orch to optional extras group Free-tier users get a clean `pip install snipe` (or pip install -e .) without hitting a resolution error for circuitforge-orch, which is not on PyPI and is a Paid+ feature. Runtime tier gate in runner.py / main.py already handles the missing- package case gracefully (falls back to LLMRouter when GPU_SERVER_URL is unset). Install-time gating was a violation of the CF MIT boundary. Upgrade path: pip install snipe[orchestration] Closes: https://git.opensourcesolarpunk.com/Circuit-Forge/snipe/issues/56 --- pyproject.toml | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 956a8e0..1775bcd 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -24,10 +24,15 @@ dependencies = [ "cryptography>=42.0", "PyJWT>=2.8", "httpx>=0.27", - "circuitforge-orch>=0.1.0", ] [project.optional-dependencies] +orchestration = [ + # Paid+ tier only — not published to PyPI. Install from source or Forgejo Packages. + # pip install -e ../circuitforge-orch (dev) + # pip install snipe[orchestration] (self-hosted Paid+) + "circuitforge-orch>=0.1.0", +] dev = [ "pytest>=8.0", "pytest-cov>=5.0",