#!/usr/bin/env python3 """Final verification: validate real files using json_validator.py""" import json import subprocess from pathlib import Path VALIDATOR = "/root/.hermes/wizard-outputs/spark/json_validator.py" def validate_and_record(files, desc): """Validate files and return results.""" cmd = ["python3", VALIDATOR] + files result = subprocess.run(cmd, capture_output=True, text=True) return {"desc": desc, "files": files, "exit_code": result.returncode, "stdout": result.stdout} results = { "tests": [], "summary": {} } # Test 1: Hermes snap file (shell script - should be INVALID as JSON) hermes_file = "/root/.hermes/profiles/spark/cache/scratch/hermes-snap-82499c7d6a2e.sh" test1 = validate_and_record([hermes_file], "Hermes snap shell script (not JSON)") test1["expected"] = "invalid" test1["correct"] = test1["exit_code"] != 0 # Should fail for non-JSON results["tests"].append(test1) # Test 2: Valid JSON created on the fly import tempfile with tempfile.NamedTemporaryFile(mode='w', suffix='.json', delete=False) as f: f.write('{"verification": "passed", "timestamp": "2026-10-19", "test_data": [1,2,3]}') valid_json = f.name test2 = validate_and_record([valid_json], "Valid JSON file") test2["expected"] = "valid" test2["correct"] = test2["exit_code"] == 0 # Should pass for valid JSON results["tests"].append(test2) # Test 3: Multiple files at once test3 = validate_and_record([hermes_file, valid_json], "Multiple files (mixed validity)") test3["expected"] = "mixed" test3["correct"] = test3["exit_code"] != 0 # Should fail due to hermes_file results["tests"].append(test3) # Summary passed = sum(1 for t in results["tests"] if t["correct"]) total = len(results["tests"]) results["summary"] = { "passed": passed, "total": total, "all_correct": passed == total } Path("/root/.hermes/wizard-outputs/spark/final_verification.json").write_text(json.dumps(results, indent=2)) print(f"FINAL VERIFICATION: {passed}/{total} tests correct") print(f"All tests passed: {passed == total}") print(f"Results: /root/.hermes/wizard-outputs/spark/final_verification.json") exit(0 if passed == total else 1)