"""Controller package — DB-owned PR state machine. See ``.drew/controller_state_machine.md`` for the full plan. This package is the Phase 0+ implementation of that plan; it is being built incrementally on the ``controller-state-machine`` branch. The package layout mirrors the plan's responsibilities: - ``contracts/`` — Pydantic V1 contracts for worker I/O. Strict-parse helpers. The single source of truth for "what shape does a reviewer / implementer / estimator / conflict-resolver / summarizer produce." - ``ci_summary_parsers/`` — deterministic per-CI-tool parsers that consume raw Forgejo CI logs and produce ``CIFailure`` rows. Called from the master's prefetch path. - (later) ``master.py`` — singleton process: state-machine driver, discovery, prefetch, reconciliation, Forgejo writes, merge. - (later) ``worker.py`` — scalable process: dequeue, lock+heartbeat, OpenCode invocation, output write. - (later) ``state_machine.py`` — ``TRANSITIONS`` dict + property tests. - (later) ``mcp/`` — per-role response-builder MCP servers. """ from . import state_machine # re-exported for tests from . import reaper # re-exported for tests from . import pickup_guard # re-exported for tests __all__ = ["contracts", "state_machine", "reaper", "pickup_guard"]