"""Shared VaultWatcher handle (ROADMAP #85, tranche 8). Holder extrait de :mod:`backend.main` sans changement de comportement : le lifespan de ``main`` y dépose l'instance (``set_watcher``) et l'y reprend à l'extinction ; le router ``vaults`` la consulte via :func:`get_watcher` (démarrage/arrêt de surveillance à l'ajout/retrait dynamique de vault, état dans ``/api/vaults/status``). """ from __future__ import annotations from typing import TYPE_CHECKING if TYPE_CHECKING: from backend.watcher import VaultWatcher _watcher: VaultWatcher | None = None def get_watcher() -> VaultWatcher | None: """Return the shared VaultWatcher instance (``None`` if disabled).""" return _watcher def set_watcher(watcher: VaultWatcher | None) -> None: """Store (or clear) the shared VaultWatcher instance.""" global _watcher _watcher = watcher