Files
agentic-mobile-control/cloud/config.py
T
2026-07-06 23:44:18 +08:00

36 lines
1.3 KiB
Python

"""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
# 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"