plexus.cli.procedure.lua_dsl.output_validator module

Output Schema Validator for Lua DSL Procedures

Validates that Lua workflow return values match the declared output schema. Enables type safety and composability for sub-agent workflows.

exception plexus.cli.procedure.lua_dsl.output_validator.OutputValidationError

Bases: Exception

Raised when workflow output doesn’t match schema.

class plexus.cli.procedure.lua_dsl.output_validator.OutputValidator(output_schema: Dict[str, Any] | None = None)

Bases: object

Validates procedure output against declared schema.

Supports: - Type checking (string, number, boolean, object, array) - Required field validation - Nested object validation - Clear error messages

Initialize validator with output schema.

Args:
output_schema: Dict of output field definitions

Example: {

‘limerick’: {

‘type’: ‘string’, ‘required’: True, ‘description’: ‘The generated limerick’

}, ‘node_id’: {

‘type’: ‘string’, ‘required’: False

}

}

TYPE_MAP = {'array': <class 'list'>, 'boolean': <class 'bool'>, 'number': (<class 'int'>, <class 'float'>), 'object': <class 'dict'>, 'string': <class 'str'>}
__init__(output_schema: Dict[str, Any] | None = None)

Initialize validator with output schema.

Args:
output_schema: Dict of output field definitions

Example: {

‘limerick’: {

‘type’: ‘string’, ‘required’: True, ‘description’: ‘The generated limerick’

}, ‘node_id’: {

‘type’: ‘string’, ‘required’: False

}

}

get_field_description(field_name: str) str | None

Get description for an output field.

get_optional_fields() List[str]

Get list of optional output fields.

get_required_fields() List[str]

Get list of required output fields.

validate(output: Any) Dict[str, Any]

Validate workflow output against schema.

Args:

output: The return value from Lua workflow

Returns:

Validated output dict

Raises:

OutputValidationError: If validation fails