"""Wiring for the delivery workstream (repo workspaces, delivery hooks, deploy tester). Foundation defaults are in-memory fakes. The delivery agent replaces the bodies (behind settings) with the real adapters; the function names and return types are FROZEN. """ from __future__ import annotations from sqlalchemy.ext.asyncio import AsyncSession from app.application.ports.delivery_hooks import DeliveryHooks, NullDeliveryHooks from app.application.ports.deploy_target import DeployTargetTester, FakeDeployTargetTester from app.application.ports.repo_workspace import FakeRepoWorkspace, RepoWorkspacePort _fake_workspace = FakeRepoWorkspace() _null_hooks = NullDeliveryHooks() _fake_deploy_tester = FakeDeployTargetTester() def build_repo_workspace(session: AsyncSession) -> RepoWorkspacePort: return _fake_workspace def build_delivery_hooks(session: AsyncSession) -> DeliveryHooks: return _null_hooks def build_deploy_target_tester(session: AsyncSession) -> DeployTargetTester: return _fake_deploy_tester