"""Configuration for the cloud runtime with conservative inert defaults.""" from __future__ import annotations from dataclasses import dataclass @dataclass(frozen=True) class CloudConfig: """Tunable cloud-runtime knobs. Defaults are deliberately conservative so importing ``cloud`` is inert until a caller actually registers a second host or submits through the SDK. """ # How frequently a host is expected to push its device snapshot. Informational # only at runtime (the pool does not run a timer); drives operator expectations. sync_interval_seconds: int = 30 # A host whose ``last_seen_at`` is older than this threshold reports all its # devices as ``unreachable`` on the next pool read. stale_after_seconds: int = 90 # Bound on the number of ``queued`` ScheduledTasks. Submissions beyond this # are rejected rather than letting the backlog grow without limit. max_queue_depth: int = 100 # Duration of each scheduler-created assignment lease. lease_duration_seconds: float = 60.0 # Strategy name looked up in the AssignmentStrategy registry (default fifo_match). default_assignment_strategy: str = "fifo_match" # Public SDK URL prefix. Mounted as the FastAPI APIRouter ``prefix``. api_version_prefix: str = "/v1" # SQLite file path (relative to CWD or absolute) owned by CloudStore. db_path: str = "cloud/cloud.sqlite3"