context.py python
45 lines 1.3 KB
Raw
sha256:106ef9e12cca7f3be3ffb2a6bd3abfa76f032dce453c9e5010d732a8d86f2e14 Reconcile reviewed credential compatibility 32254cd939885d9… Human patch 8 days ago
1 """Shared CLI runtime context."""
2
3 from __future__ import annotations
4
5 from dataclasses import dataclass
6 from pathlib import Path
7 from typing import Callable
8
9 from adapters.runner import CommandRunner, SubprocessRunner
10 from cli.kit_root import kit_root
11 from cli.output import OutputContext
12 from tools.checkpoints.executor import ScriptExecutor
13 from tools.freeze_reviewer.providers.base import ReviewProvider
14
15
16 @dataclass
17 class CliContext:
18 """Injectable runtime dependencies for commands and tests."""
19
20 kit: Path
21 runner: CommandRunner
22 output: OutputContext
23 cwd: Path
24 review_provider_factory: Callable[[str], ReviewProvider] | None = None
25 script_executor: ScriptExecutor | None = None
26
27 @classmethod
28 def create(
29 cls,
30 *,
31 output: OutputContext | None = None,
32 runner: CommandRunner | None = None,
33 cwd: Path | None = None,
34 kit: Path | None = None,
35 review_provider_factory: Callable[[str], ReviewProvider] | None = None,
36 script_executor: ScriptExecutor | None = None,
37 ) -> CliContext:
38 return cls(
39 kit=kit or kit_root(),
40 runner=runner or SubprocessRunner(),
41 output=output or OutputContext(),
42 cwd=cwd or Path.cwd(),
43 review_provider_factory=review_provider_factory,
44 script_executor=script_executor,
45 )
File History 2 commits
sha256:106ef9e12cca7f3be3ffb2a6bd3abfa76f032dce453c9e5010d732a8d86f2e14 Reconcile reviewed credential compatibility 32254cd939885d9… Human patch 8 days ago
sha256:c87cf2c2f03da507f66f93922cb339a2cbebb33ad6372a6039032fb09a20da12 Reconcile reviewed Overseer recovery d47291d5d9030de5ebef71… Human minor ⚠ 9 days ago