Shared scaffold for CircuitForge products
Extracts the JWT validation + Heimdall tier resolution + guest session pattern that was duplicated across kiwi and peregrine into a single reusable module. CloudSessionFactory is parameterized by product name. Products instantiate it once at module level and call .dependency() to get a FastAPI-compatible Depends() function. .require_tier(min_tier) returns a dependency factory for gated routes. CloudUser carries: user_id — Directus UUID, "local" (self-hosted), "local-dev" (bypass), "anon-<uuid>" tier — free | paid | premium | ultra | local product — which CF product this session is for has_byok — whether user has a configured LLM backend meta — dict for product-specific extras (household_id, license_key, etc.) Products can pass extra_meta= to attach product-specific fields without subclassing. The module is FastAPI-only (fastapi is a lazy import so local-mode products that never hit cloud paths don't pay the import cost). |
||
|---|---|---|
| .forgejo/workflows | ||
| circuitforge_core | ||
| docker | ||
| docs | ||
| scripts | ||
| tests | ||
| .cliff.toml | ||
| .gitignore | ||
| CHANGELOG.md | ||
| Dockerfile.orch | ||
| LICENSE | ||
| mkdocs.yml | ||
| pyproject.toml | ||
| README.md | ||
circuitforge-core
Shared scaffold for CircuitForge products.
Current version: 0.7.0
Modules
Implemented
circuitforge_core.db— SQLite connection factory and migration runnercircuitforge_core.llm— LLM router with fallback chain (Ollama, vLLM, Anthropic, OpenAI-compatible)circuitforge_core.tiers— Tier system with BYOK and local vision unlockscircuitforge_core.config— Env validation and .env loadercircuitforge_core.hardware— Hardware detection and LLM backend profile generation (VRAM tiers, GPU/CPU auto-select)circuitforge_core.documents— Document ingestion pipeline: PDF, DOCX, and image OCR →StructuredDocumentcircuitforge_core.affiliates— Affiliate URL wrapping with opt-out, BYOK user IDs, and CF env-var fallback (wrap_url)circuitforge_core.preferences— User preference store (local YAML file, pluggable backend); dot-path get/set APIcircuitforge_core.tasks— VRAM-aware LLM task scheduler; shared slot manager across services (TaskScheduler)circuitforge_core.manage— Cross-platform product process manager (Docker and native modes)circuitforge_core.resources— Resource coordinator and agent: VRAM allocation, eviction engine, GPU profile registry
Stubs (in-tree, not yet implemented)
circuitforge_core.vision— Vision router base class (planned: moondream2 / Claude vision dispatch)circuitforge_core.wizard— First-run wizard base class (products subclassBaseWizard)circuitforge_core.pipeline— Staging queue base (StagingDB; products provide concrete schema)
Install
pip install -e .
License
BSL 1.1 — see LICENSE