from typing import Dict, Type from .base import BaseSpecialist class SpecialistRegistry: """Registry for specialist types""" _registry: Dict[str, Type[BaseSpecialist]] = {} @classmethod def register(cls, specialist_type: str, specialist_class: Type[BaseSpecialist]): """Register a new specialist type""" cls._registry[specialist_type] = specialist_class @classmethod def get_specialist_class(cls, specialist_type: str) -> Type[BaseSpecialist]: """Get the specialist class for a given type""" if specialist_type not in cls._registry: raise ValueError(f"Unknown specialist type: {specialist_type}") return cls._registry[specialist_type]