types.py python
51 lines 1.0 KB
Raw
sha256:a78e7e5a8740e03315f325d19edeb3aa1b306b3337d04abbaa9a9e0f3bbeb7a1 docs: MuseHub-first before ISR #74 — staging solidify NEXT Human 11 hours ago
1 """Types for declarative model-routing (§PR.4)."""
2
3 from __future__ import annotations
4
5 from dataclasses import dataclass
6
7
8 @dataclass(frozen=True)
9 class RouteSelector:
10 """Query or ``when`` selector triple; ``None`` means wildcard."""
11
12 position: str | None = None
13 phase_tier: str | None = None
14 gate: str | None = None
15
16
17 @dataclass(frozen=True)
18 class RouteEntry:
19 """One ordered routing rule."""
20
21 id: str
22 when: RouteSelector
23 model_tier: str
24 fallback: tuple[str, ...]
25
26
27 @dataclass(frozen=True)
28 class RoutingPolicy:
29 """Parsed routing policy (version 1)."""
30
31 version: int
32 defaults_model_tier: str
33 defaults_fallback: tuple[str, ...]
34 routes: tuple[RouteEntry, ...]
35
36
37 @dataclass(frozen=True)
38 class RouteDecision:
39 """Resolved routing decision returned by ``overseer route``."""
40
41 route_id: str
42 model_tier: str
43 fallback: tuple[str, ...]
44
45
46 @dataclass(frozen=True)
47 class PolicyValidationResult:
48 """Outcome of ``--validate`` or status policy-validity check."""
49
50 valid: bool
51 violation: str | None = None
File History 1 commit
sha256:a78e7e5a8740e03315f325d19edeb3aa1b306b3337d04abbaa9a9e0f3bbeb7a1 docs: MuseHub-first before ISR #74 — staging solidify NEXT Human 11 hours ago