"""多渠道网关安全策略组件。""" from yuxi.channel.security.models import DmPolicy, GroupPolicy, RateLimitPolicy __all__ = [ "AllowlistChecker", "BotLoopDetector", "DmPolicy", "GroupPolicy", "IdentityLinkResolver", "PairingChecker", "PairingManager", "RateLimitPolicy", "RateLimiter", "SecurityCheckResult", "SecurityChecker", "SecurityCheckerRegistry", "SecurityContext", "SecurityPolicy", ] def __getattr__(name: str): if name == "AllowlistChecker": from .allowlist import AllowlistChecker return AllowlistChecker if name == "BotLoopDetector": from .bot_loop import BotLoopDetector return BotLoopDetector if name == "IdentityLinkResolver": from .identity import IdentityLinkResolver return IdentityLinkResolver if name == "PairingChecker": from .pairing import PairingChecker return PairingChecker if name == "PairingManager": from .pairing import PairingManager return PairingManager if name == "RateLimiter": from .rate_limit import RateLimiter return RateLimiter if name == "SecurityCheckResult": from .policy import SecurityCheckResult return SecurityCheckResult if name in ("SecurityChecker", "SecurityCheckerRegistry", "SecurityContext"): from . import registry return getattr(registry, name) if name == "SecurityPolicy": from .policy import SecurityPolicy return SecurityPolicy raise AttributeError(f"module {__name__!r} has no attribute {name!r}")