"""Shared strategy-catalog domain errors used across API, service, and persistence layers.""" class StrategyNotFoundError(ValueError): """Raised when a referenced strategy ID does not exist.""" class StrategyInactiveError(ValueError): """Raised when a new portfolio selection targets an inactive strategy."""