| .claude/rules | ||
| .forgejo/workflows | ||
| docs | ||
| hub_core | ||
| registry | ||
| tests | ||
| workplans | ||
| .custodian-brief.md | ||
| .dockerignore | ||
| .gitignore | ||
| .repo-classification.yaml | ||
| AGENTS.md | ||
| CLAUDE.md | ||
| Containerfile | ||
| INTENT.md | ||
| LICENSE | ||
| Makefile | ||
| pyproject.toml | ||
| README.md | ||
| SCOPE.md | ||
| uv.lock | ||
| WORK-RECORDS.md | ||
Hub Core
Contracts, reusable Python primitives, and the surviving runtime for HelixForge hubs.
Hub stack glossary
| Name | Role |
|---|---|
| hub-core | This repo — importable package plus target primary runtime image |
| state-hub | Legacy coordination host being replaced capability by capability |
| core-hub | Current /api/v2 runtime retained temporarily for absorption rollback |
Ecosystem architecture: /home/worsch/the-custodian/docs/hub-ecosystem-architecture.md
Runtime packaging is fixed by docs/adr/ADR-0001-runtime-packaging.md: the
wheel remains importable, while this repository will also own the primary OCI
image. API, MCP, and migration workloads may run separately from that same
image. Core-hub is not a permanent thin host.
hub-core is being extracted from the standalone State Hub repository as part
of CUST-WP-0025. The initial package slice contains only the generic database
models and schemas that can move without importing dev-hub concepts such as
topics, workplans, tasks, decisions, SBOM, or token accounting.
Source boundary notes live in:
/home/worsch/the-custodian/docs/hub-core-extraction-boundary.md
Extension contract
The wheel includes helixforge.hub-extension 0.1.0 under
hub_core.contracts. Use extension_contract_root() to locate the packaged
descriptor and manifest schemas, event catalog schema and seed, named-port
OpenAPI fragments, ops-hub fixture, and compatibility matrix.
from hub_core.contracts import CONTRACT_VERSION, extension_contract_root
contract_root = extension_contract_root()
Runtime scaffold
Install the runtime extra and start the API, MCP, or migration process through the shared console entrypoint:
uv sync --extra runtime
hub-core api
hub-core mcp --api-base http://127.0.0.1:8010
hub-core migrate head --database-url postgresql+asyncpg://...
The initial runtime exposes registry, messaging, progress-event,
interaction-event, and projection-query ports. Its included memory backend is
for local/conformance use and fails production readiness unless explicitly
enabled. See docs/runtime.md.
The reusable Tier 2/3 scaffold is documented in docs/conformance.md and runs
against any compatible HTTP target with
hub-core conformance --base-url <url>.
The staged Core Hub transition is defined in
docs/core-hub-absorption-plan.md; it keeps one writer per capability and
retains Core Hub as rollback until data, consumer, and stabilization gates
close.
First Slice
- SQLAlchemy base metadata and timestamp helpers.
- Domain and managed-repository registry primitives.
- Agent message inbox primitives.
- Progress-event and capability-request primitives with generic JSON context fields for hub-specific references.
- Third-party service catalog and snapshot primitives.
- Matching Pydantic schemas for those primitives.
- Generic DoI report and summary schemas used by the MCP DoI tools.
- Router factory functions for domains, repos, messages, policy lookup, and progress, capability, and TPSC catalog/snapshot/report endpoints.
- Canonical FOS §10 risk and alert event types with
/progress/risksand/progress/alertsread views. - Shared utility helpers for slugs, pagination, repo path resolution, and trailing-slash path normalization.
- Alembic templates plus an initial core-schema migration for hub adopters.
- FastMCP base-server wrapper for generic orientation, messaging, capability, repo, DoI, TPSC/GDPR, risk/alert, and progress tools.
- Packaged
helixforge.hub-extension0.1.0 Tier 1 schemas, OpenAPI port fragments, event catalog, compatibility matrix, and ops-hub fixture. - Injectable primary runtime scaffold with five named ports, health/readiness, API/MCP/migration commands, and a locked non-root OCI image.
Domain-specific MCP tools follow in each hub package.