# Output Schema Management - common/langchain/outputs/base.py from typing import Dict, Type, Any from pydantic import BaseModel class BaseSpecialistOutput(BaseModel): """Base class for all specialist outputs""" pass class OutputRegistry: """Registry for specialist output schemas""" _schemas: Dict[str, Type[BaseSpecialistOutput]] = {} @classmethod def register(cls, specialist_type: str, schema_class: Type[BaseSpecialistOutput]): cls._schemas[specialist_type] = schema_class @classmethod def get_schema(cls, specialist_type: str) -> Type[BaseSpecialistOutput]: if specialist_type not in cls._schemas: raise ValueError(f"No output schema registered for {specialist_type}") return cls._schemas[specialist_type]