Coverage for smith / application / status.py: 100%
0 statements
« prev ^ index » next coverage.py v7.13.5, created at 2026-05-01 18:48 +0000
« prev ^ index » next coverage.py v7.13.5, created at 2026-05-01 18:48 +0000
1"""Status use-case — report the current connection state of a project."""
3from __future__ import annotations
5from pathlib import Path
7from smith.domain.connection import Connection
8from smith.domain.value_objects import ConnectionStatus, TemplateSource
9from smith.infrastructure.filesystem import AtomicFileSystem
10from smith.infrastructure.gitignore import GitignoreManager
11from smith.infrastructure.metadata import SectionMetadata
12from smith.infrastructure.template_source import TemplateSourceAdapter
15class StatusUseCase:
16 """Orchestrate querying the connection status of a project."""
18 def __init__(self, project_dir: Path) -> None:
19 """Initialise with the target project directory."""
20 self._project_dir = project_dir
22 def execute(self) -> ConnectionStatus:
23 """Return the current connection status of the project."""
24 connection = Connection(
25 template_source_port=TemplateSourceAdapter(
26 TemplateSource(kind="bundled", location="agents-smith"),
27 ),
28 filesystem_port=AtomicFileSystem(self._project_dir),
29 gitignore_port=GitignoreManager(self._project_dir),
30 metadata_port=SectionMetadata(self._project_dir),
31 )
32 return connection.status()