"""Permissions plugin contract — public interface for cross-plugin access.""" from __future__ import annotations from app.plugins.builtins.contracts import get_contract_registry from app.plugins.builtins.permissions.models import Permission, ShareLink class PermissionsContract: """Public contract for the permissions plugin.""" contract_name = "permissions" Permission = Permission ShareLink = ShareLink # ─── self-registration ─── _contract = PermissionsContract() get_contract_registry().register("permissions", _contract) # Backward-compatible local accessor _contract_instance: PermissionsContract | None = None def get_contract() -> PermissionsContract: global _contract_instance if _contract_instance is None: _contract_instance = PermissionsContract() return _contract_instance __all__ = ["PermissionsContract", "Permission", "ShareLink"]