64 lines
2.0 KiB
Python
64 lines
2.0 KiB
Python
#!/usr/bin/env python3
|
|
"""Hermes environment verification script for spark profile."""
|
|
import os
|
|
import sys
|
|
import json
|
|
from pathlib import Path
|
|
|
|
def verify_hermes_env():
|
|
"""Verify Hermes runtime environment."""
|
|
results = {
|
|
"profile": "spark",
|
|
"checks": {},
|
|
"errors": []
|
|
}
|
|
|
|
# Check core directories
|
|
base = Path("/root/.hermes")
|
|
profile_dir = base / "profiles" / "spark"
|
|
wizard_outputs = base / "wizard-outputs" / "spark"
|
|
|
|
results["checks"]["base_dir_exists"] = base.exists()
|
|
results["checks"]["profile_dir_exists"] = profile_dir.exists()
|
|
results["checks"]["wizard_outputs_dir_exists"] = wizard_outputs.exists()
|
|
|
|
# Check profile config
|
|
config_path = profile_dir / "config.yaml"
|
|
results["checks"]["profile_config_exists"] = config_path.exists()
|
|
|
|
# Check skills directory
|
|
skills_dir = profile_dir / "skills"
|
|
results["checks"]["skills_dir_exists"] = skills_dir.exists()
|
|
|
|
# Count skills
|
|
if skills_dir.exists():
|
|
skill_count = len(list(skills_dir.glob("*.py"))) if skills_dir else 0
|
|
results["checks"]["skill_count"] = skill_count
|
|
|
|
# Check cron directory
|
|
cron_dir = profile_dir / "cron"
|
|
results["checks"]["cron_dir_exists"] = cron_dir.exists()
|
|
|
|
# Check memories directory
|
|
mem_dir = profile_dir / "memories"
|
|
results["checks"]["memories_dir_exists"] = mem_dir.exists()
|
|
|
|
# Check state database
|
|
state_db = profile_dir / "state.db"
|
|
results["checks"]["state_db_exists"] = state_db.exists()
|
|
|
|
# Check python
|
|
results["python_version"] = sys.version
|
|
results["python_available"] = True
|
|
|
|
# Overall status - only check boolean values
|
|
bool_checks = [v for k, v in results["checks"].items() if k != "skill_count"]
|
|
all_checks_pass = all(bool_checks)
|
|
results["overall_status"] = "PASS" if all_checks_pass else "FAIL"
|
|
|
|
return results
|
|
|
|
if __name__ == "__main__":
|
|
results = verify_hermes_env()
|
|
print(json.dumps(results, indent=2))
|
|
sys.exit(0 if results["overall_status"] == "PASS" else 1) |