in src/nova_act/util/jsonschema.py [0:0]
def populate_json_schema_response(result: ActResult, schema: Dict[str, Any]) -> ActResult:
if not result.response:
return ActResult(
response=result.response,
parsed_response=None,
valid_json=False,
matches_schema=False,
metadata=result.metadata,
)
try:
parsed_response = json.loads(result.response)
jsonschema.validate(instance=parsed_response, schema=schema)
except json.JSONDecodeError:
return ActResult(
response=result.response,
parsed_response=None,
valid_json=False,
matches_schema=False,
metadata=result.metadata,
)
except jsonschema.ValidationError:
return ActResult(
response=result.response,
parsed_response=parsed_response,
valid_json=True,
matches_schema=False,
metadata=result.metadata,
)
return ActResult(
response=result.response,
parsed_response=parsed_response,
valid_json=True,
matches_schema=True,
metadata=result.metadata,
)