MVP / dev-agent /app /validators /schema_validator.py
github-actions[bot]
Deploy application
595d60e
Raw History Blame Contribute Delete
997 Bytes
import pydantic
from typing import List
from ..schemas.agent_spec import AgentSpec
from ..schemas.conversation import ValidationError, ValidationResult
class SchemaValidator:
def validate(self, spec_dict: dict) -> ValidationResult:
errors = []
try:
AgentSpec.model_validate(spec_dict)
except pydantic.ValidationError as e:
for err in e.errors():
loc_path = ".".join(str(loc) for loc in err.get("loc", []))
errors.append(ValidationError(
code="SCHEMA_VALIDATION_FAILED",
message=f"{loc_path}: {err.get('msg')}" if loc_path else err.get('msg'),
path=loc_path or None
))
except Exception as e:
errors.append(ValidationError(
code="SCHEMA_VALIDATION_FAILED",
message=str(e),
path=None
))
return ValidationResult(valid=len(errors) == 0, errors=errors)