"""`SupervisePlan` — the launch-time supervise staging DTO. A pure value type (no store access), so it lives in the neutral package: the backend builds it at launch and the orchestrator's `Supervisor.prepare` returns it. The behaviour that fills it in — staging the host database — is the orchestrator's, in `bot_bottle.orchestrator.supervisor.Supervisor`. """ from __future__ import annotations from dataclasses import dataclass from pathlib import Path @dataclass(frozen=True) class SupervisePlan: """Output of `Supervisor.prepare`; consumed by `.start`. `db_path` is the host database bind-mounted into the gateway at /run/supervise/bot-bottle.db. `internal_network` is empty at prepare time; the backend's launch step fills it via `dataclasses.replace` before calling `.start`.""" slug: str db_path: Path internal_network: str = ""