factory.py python
32 lines 1.0 KB
Raw
sha256:a78e7e5a8740e03315f325d19edeb3aa1b306b3337d04abbaa9a9e0f3bbeb7a1 docs: MuseHub-first before ISR #74 — staging solidify NEXT Human 1 day ago
1 """Factory for regime-specific VCS adapters."""
2
3 from __future__ import annotations
4
5 from pathlib import Path
6
7 from adapters.base import VcsAdapter
8 from adapters.config import OverseerConfig
9 from adapters.errors import ConfigError
10 from adapters.runner import CommandRunner
11
12
13 def create_adapter(
14 config: OverseerConfig,
15 repo_root: Path,
16 runner: CommandRunner | None = None,
17 ) -> VcsAdapter:
18 """Instantiate the adapter for ``config.vcs.regime``."""
19 regime = config.vcs.regime
20 if regime == "git-only":
21 from adapters.git_only.adapter import GitOnlyAdapter
22
23 return GitOnlyAdapter(config, repo_root, runner=runner)
24 if regime == "muse-only":
25 from adapters.muse_only.adapter import MuseOnlyAdapter
26
27 return MuseOnlyAdapter(config, repo_root, runner=runner)
28 if regime == "muse+git-mirror":
29 from adapters.muse_git_mirror.adapter import MuseGitMirrorAdapter
30
31 return MuseGitMirrorAdapter(config, repo_root, runner=runner)
32 raise ConfigError(f"unsupported vcs.regime {regime!r}")
File History 2 commits
sha256:a78e7e5a8740e03315f325d19edeb3aa1b306b3337d04abbaa9a9e0f3bbeb7a1 docs: MuseHub-first before ISR #74 — staging solidify NEXT Human 1 day ago
sha256:4671b7f787ddbe63ced31c895b688c77ab495653b65a730b423329f26b3c1439 feat: K1-P1 complete — agent provenance, build-verification… Sonnet 4.6 patch 53 days ago