types.py python
53 lines 991 B
Raw
sha256:0e9549ec7b463911bc08b7d586dc320b1ac9b1f5c943ee7e3865dcc6cb0f6f83 chore(governance): sync handover+roadmap to 84db8c8 (drift:… Human 2 days ago
1 """Typed results for the VCS adapter interface (§4)."""
2
3 from __future__ import annotations
4
5 from dataclasses import dataclass, field
6 from typing import Literal
7
8 RegimeName = Literal["muse+git-mirror", "muse-only", "git-only"]
9 ShaKind = Literal["git", "muse"]
10
11
12 @dataclass(frozen=True)
13 class StatusResult:
14 regime: str
15 dirty: bool
16 branch: str
17 notes: list[str] = field(default_factory=list)
18 muse_dirty: bool | None = None
19 git_dirty: bool | None = None
20
21
22 @dataclass(frozen=True)
23 class HeadResult:
24 sha: str
25 kind: ShaKind
26
27
28 @dataclass(frozen=True)
29 class AnchorResult:
30 anchor_sha: str
31 source: str
32
33
34 @dataclass(frozen=True)
35 class RealignResult:
36 would_import: int
37 applied: bool
38 from_ref: str | None
39 to_ref: str | None
40 reason: str | None = None
41
42
43 @dataclass(frozen=True)
44 class CommitResult:
45 committed: bool
46 sha: str
47
48
49 @dataclass(frozen=True)
50 class MirrorResult:
51 diff_summary: str
52 pushed: bool
53 reason: str | None = None
File History 1 commit
sha256:6abcf1fa82a7a621ccbc945f19acdba5bc0db54569599404a1452fb4a096a199 fix(ISR): default require_independent_second_reviewer to require Human minor 2 days ago