"""Configuration models for the Memory Gateway layer.""" from __future__ import annotations from dataclasses import dataclass, field @dataclass(slots=True) class MemoryGatewayConfig: """Shared non-secret Memory Gateway settings.""" base_url: str = "" app_id: str = "default" project_id: str = "default" scope: list[str] = field( default_factory=lambda: ["current_chat", "resources", "all_user_memory"] ) top_k: int = 8 timeout_seconds: float = 10.0 @property def is_configured(self) -> bool: return bool(self.base_url.strip()) @dataclass(slots=True) class MemoryConfig: """Curated baseline plus optional Memory Gateway layer.""" mode: str = "hybrid" explicit: bool = False gateway: MemoryGatewayConfig = field(default_factory=MemoryGatewayConfig)