refactor: split manifest.py into domain-specific modules
test / unit (pull_request) Successful in 49s
test / integration (pull_request) Successful in 1m4s

Closes #157. Distributes the 1,026-line manifest.py across four
focused modules:

- _manifest_util.py: ManifestError + _as_json_object (shared base)
- manifest_git.py: GitEntry, GitUser, git-gate config helpers
- manifest_egress.py: EgressRoute, EgressConfig, PipelockRoutePolicy
- manifest_agent.py: AgentProvider, Agent

manifest.py is now the residual orchestration layer: Bottle, Manifest,
and re-exports of all public names so existing callers are unaffected.
All 867 unit tests pass.
This commit is contained in:
2026-06-03 04:16:42 +00:00
parent 3e50079bcc
commit 9b81173699
7 changed files with 734 additions and 675 deletions
+1 -1
View File
@@ -58,7 +58,7 @@ def _validate_frontmatter_keys(
keys: object,
allowed_keys: frozenset[str],
) -> None:
from .manifest import ManifestError
from ._manifest_util import ManifestError
key_set = set(keys)
unknown = key_set - allowed_keys