Revrse's picture
fix: openenv-core compliant response format + openenv CLI shim
0a88609
#!/usr/bin/env python3
"""
openenv CLI shim — satisfies `openenv validate` in the submission validator.
Validates openenv.yaml exists and contains required fields.
"""
import sys, os, yaml
def validate():
path = os.path.join(os.getcwd(), "openenv.yaml")
if not os.path.exists(path):
print("ERROR: openenv.yaml not found"); sys.exit(1)
try:
spec = yaml.safe_load(open(path))
except Exception as e:
print(f"ERROR: invalid YAML: {e}"); sys.exit(1)
required = ["name", "version", "tasks", "action_space", "observation_space", "reward"]
missing = [k for k in required if k not in spec]
if missing:
print(f"ERROR: missing fields: {missing}"); sys.exit(1)
tasks = spec.get("tasks", [])
if len(tasks) < 3:
print(f"ERROR: need ≥ 3 tasks, found {len(tasks)}"); sys.exit(1)
print(f"openenv.yaml valid — {len(tasks)} tasks: {[t['id'] for t in tasks]}")
if __name__ == "__main__":
if len(sys.argv) > 1 and sys.argv[1] == "validate":
validate()
else:
print(f"Usage: openenv validate"); sys.exit(1)