Skip to content

OSSS.config.config_mapper

OSSS.config.config_mapper

Configuration mapper for supporting both flat chart format and nested Pydantic format.

This module handles the mapping between: 1. Flat format (chart workflows): custom_constraints: ["term1", "term2"] 2. Nested format (Pydantic): behavioral_config.custom_constraints: ["term1", "term2"]

Modernized to use Pydantic's native validation and transformation capabilities while maintaining backward compatibility with existing chart workflows.

ConfigMapper

Maps between flat configuration format (used in chart workflows) and nested Pydantic format (used in our configuration classes).

map_flat_to_nested(flat_config, agent_type) classmethod

Convert flat configuration format to nested Pydantic format.

Parameters:

Name Type Description Default
flat_config Dict[str, Any]

Configuration in flat format (e.g., from chart workflows)

required
agent_type str

Type of agent ('refiner', 'critic', 'historian', 'synthesis')

required

Returns:

Type Description
Dict[str, Any]

Configuration in nested format suitable for Pydantic validation

create_agent_config(flat_config, agent_type) classmethod

Create a Pydantic agent configuration from flat configuration format.

Parameters:

Name Type Description Default
flat_config Dict[str, Any]

Configuration in flat format

required
agent_type str

Type of agent ('refiner', 'critic', 'historian', 'synthesis')

required

Returns:

Type Description
AgentConfigType

Appropriate Pydantic configuration object

Raises:

Type Description
ValueError

If agent_type is not supported

model_validate_config(config_data, agent_type) classmethod

model_validate_config(
    config_data: Optional[Dict[str, Any]],
    agent_type: Literal["refiner"],
) -> Optional[RefinerConfig]
model_validate_config(
    config_data: Optional[Dict[str, Any]],
    agent_type: Literal["critic"],
) -> Optional[CriticConfig]
model_validate_config(
    config_data: Optional[Dict[str, Any]],
    agent_type: Literal["historian"],
) -> Optional[HistorianConfig]
model_validate_config(
    config_data: Optional[Dict[str, Any]],
    agent_type: Literal["synthesis"],
) -> Optional[SynthesisConfig]
model_validate_config(
    config_data: Optional[Dict[str, Any]], agent_type: str
) -> Optional[AgentConfigType]

Validate configuration data using Pydantic's model_validate().

This is the modernized approach that leverages Pydantic's native validation and error handling capabilities.

Parameters:

Name Type Description Default
config_data Optional[Dict[str, Any]]

Configuration data in either format

required
agent_type str

Type of agent

required

Returns:

Type Description
Optional[AgentConfigType]

Pydantic configuration object or None if validation fails

validate_and_create_config(config_data, agent_type) classmethod

validate_and_create_config(
    config_data: Dict[str, Any],
    agent_type: Literal["refiner"],
) -> Optional[RefinerConfig]
validate_and_create_config(
    config_data: Dict[str, Any],
    agent_type: Literal["critic"],
) -> Optional[CriticConfig]
validate_and_create_config(
    config_data: Dict[str, Any],
    agent_type: Literal["historian"],
) -> Optional[HistorianConfig]
validate_and_create_config(
    config_data: Dict[str, Any],
    agent_type: Literal["synthesis"],
) -> Optional[SynthesisConfig]
validate_and_create_config(
    config_data: Dict[str, Any], agent_type: str
) -> Optional[AgentConfigType]

Validate configuration data and create appropriate config object.

Maintained for backward compatibility. New code should use model_validate_config().

Parameters:

Name Type Description Default
config_data Dict[str, Any]

Configuration data in either format

required
agent_type str

Type of agent

required

Returns:

Type Description
Optional[AgentConfigType]

Pydantic configuration object or None if creation fails