Shared scaffold for CircuitForge products
Find a file
pyr0ball 67701f0d29 feat(orch): agent self-registration and coordinator heartbeat loop
coordinator/app.py:
- Add POST /api/nodes — agents POST {node_id, agent_url} to self-register;
  coordinator immediately polls the new agent for GPU info
- Add lifespan context manager that starts/stops AgentSupervisor heartbeat
  loop (previously the loop was never started)

cli.py start:
- Add --node-id flag (default 'local')
- Pre-register the local agent URL (http://127.0.0.1:{agent_port}) so the
  heartbeat loop can poll it immediately on startup
- Drop redundant lease_manager.register_gpu() call — supervisor.poll_agent()
  now does this via the heartbeat after the agent responds

cli.py agent:
- Add --advertise-host flag for NATted/multi-homed nodes
- Fire registration POST to coordinator in a daemon thread (2s delay) so
  uvicorn.run() can start binding immediately; no double uvicorn.run()
2026-03-31 19:20:35 -07:00
circuitforge_core feat(orch): agent self-registration and coordinator heartbeat loop 2026-03-31 19:20:35 -07:00
tests feat(dashboard): add self-hosted coordinator dashboard at GET / 2026-03-31 18:57:25 -07:00
.gitignore feat(resources): add [orch] package extras, cf-orch entry point, Docker compose 2026-03-30 22:34:40 -07:00
pyproject.toml feat(tasks): add shared VRAM-aware LLM task scheduler 2026-03-30 23:12:23 -07:00
README.md feat: scaffold circuitforge-core package 2026-03-25 11:02:26 -07:00

circuitforge-core

Shared scaffold for CircuitForge products.

Modules

  • circuitforge_core.db — SQLite connection factory and migration runner
  • circuitforge_core.llm — LLM router with fallback chain
  • circuitforge_core.tiers — Tier system with BYOK and local vision unlocks
  • circuitforge_core.config — Env validation and .env loader
  • circuitforge_core.vision — Vision router stub (v0.2+)
  • circuitforge_core.wizard — First-run wizard base class stub
  • circuitforge_core.pipeline — Staging queue stub (v0.2+)

Install

pip install -e .

License

BSL 1.1 — see LICENSE