48 lines
1.4 KiB
Python
48 lines
1.4 KiB
Python
#!/usr/bin/env python3
|
|
"""Quick Hermes Agent environment collector - dumps runtime state to JSON."""
|
|
|
|
import json
|
|
import os
|
|
import platform
|
|
import subprocess
|
|
from pathlib import Path
|
|
|
|
def collect():
|
|
data = {
|
|
"platform": {
|
|
"system": platform.system(),
|
|
"node": platform.node(),
|
|
"release": platform.release(),
|
|
"version": platform.version(),
|
|
"machine": platform.machine(),
|
|
},
|
|
"hermes": {
|
|
"profile_dir": str(Path.home() / ".hermes" / "profiles" / "spark"),
|
|
"profile_exists": bool(Path.home().exists()),
|
|
},
|
|
"environment": {
|
|
"home": os.environ.get("HOME", ""),
|
|
"user": os.environ.get("USER", ""),
|
|
"pwd": os.getcwd(),
|
|
},
|
|
"python": f"{sys.version_info.major}.{sys.version_info.minor}.{sys.version_info.micro}" if (sys := __import__('sys')) else "unknown",
|
|
"shell": None
|
|
}
|
|
|
|
# Get shell PID
|
|
try:
|
|
data["shell"] = {"pid": os.getpid(), "ppid": os.getppid()}
|
|
except:
|
|
pass
|
|
|
|
# Check hermes cli
|
|
try:
|
|
result = subprocess.run(["which", "hermes"], capture_output=True, text=True, timeout=5)
|
|
data["hermes"]["cli_path"] = result.stdout.strip() or None
|
|
except:
|
|
data["hermes"]["cli_path"] = None
|
|
|
|
return data
|
|
|
|
if __name__ == "__main__":
|
|
print(json.dumps(collect(), indent=2)) |