Source code for ralph.mcp.artifacts._bridge_artifact_deps
"""BridgeArtifactDeps — injectable artifact dependencies for the MCP bridge."""
from __future__ import annotations
from dataclasses import dataclass
from typing import TYPE_CHECKING
from ralph.mcp.artifacts._artifact_persistence import (
DEFAULT_ARTIFACT_PERSISTENCE,
ArtifactPersistence,
)
from ralph.mcp.artifacts.file_backend import DEFAULT_FILE_BACKEND, FileBackend
if TYPE_CHECKING:
from collections.abc import Callable
[docs]
@dataclass(frozen=True)
class BridgeArtifactDeps:
"""Dependencies injected into bridge artifact operations."""
backend: FileBackend = DEFAULT_FILE_BACKEND
now_iso: Callable[[], str] = DEFAULT_ARTIFACT_PERSISTENCE.now_iso
@property
def persistence(self) -> ArtifactPersistence:
return ArtifactPersistence(backend=self.backend, now_iso=self.now_iso)
DEFAULT_BRIDGE_ARTIFACT_DEPS = BridgeArtifactDeps()
__all__ = ["DEFAULT_BRIDGE_ARTIFACT_DEPS", "BridgeArtifactDeps"]