"""FastAPI dependencies — provider, settings, sessions, agents via app.state (DI).""" from fastapi import Request from ..agents.registry import AgentRegistry from ..agents.session import SessionStore from ..config import Settings from ..llm.base import LLMProvider from ..sandbox.manager import SandboxManager from ..sandbox.workdir import SandboxDir def get_settings(request: Request) -> Settings: return request.app.state.settings def get_provider(request: Request) -> LLMProvider: return request.app.state.provider def get_session_store(request: Request) -> SessionStore: return request.app.state.session_store def get_agent_registry(request: Request) -> AgentRegistry: return request.app.state.agent_registry def get_sandbox_manager(request: Request) -> SandboxManager: return request.app.state.sandbox_manager def get_sandbox_test_layout(request: Request) -> SandboxDir | None: """Optional test seam (app.state.sandbox_test_layout); always None in prod.""" return getattr(request.app.state, "sandbox_test_layout", None)