diff --git a/wizard-work/spark/verification_result_20261025.json b/wizard-work/spark/verification_result_20261025.json new file mode 100644 index 0000000..5977d8d --- /dev/null +++ b/wizard-work/spark/verification_result_20261025.json @@ -0,0 +1,28 @@ +{ + "python_version": "3.14.7", + "python_executable": "/root/.hermes/installs/76f6e7e5145b5f39/environments/c5b879e2036d4c909805dd1858587925/venv/bin/python3", + "total_packages": 102, + "packages": { + "aiohttp": true, + "fastapi": true, + "websocket-client": false, + "cdp-use": true, + "browser-harness": true, + "hermes-tools": true + }, + "cli_tools": { + "python3": true, + "pip": true, + "git": true, + "curl": true + }, + "jq_available": true, + "directories": { + "hermes_profile": true, + "wizard_outputs": true, + "troupe_standup": true + }, + "artifact_name": "verify_hermes_cli.py", + "status": "verified", + "timestamp": "2026-10-25T00:45:00Z" +} \ No newline at end of file diff --git a/wizard-work/spark/verify_hermes_cli.py b/wizard-work/spark/verify_hermes_cli.py new file mode 100644 index 0000000..f379343 --- /dev/null +++ b/wizard-work/spark/verify_hermes_cli.py @@ -0,0 +1,65 @@ +#!/usr/bin/env python3 +"""Verify the Hermes Agent CLI environment. + +This script checks: +1. Python version and sys.path +2. Available CLI tools (git, curl, jq) +3. Python packages that are actually installed + +Output format: JSON +""" + +import sys +import os +import subprocess +import json + +def main(): + results = {} + + # Python info + results['python_version'] = f"{sys.version_info.major}.{sys.version_info.minor}.{sys.version_info.micro}" + results['python_executable'] = sys.executable + + # Check pip list + pip_result = subprocess.run(['pip', 'list', '--format=freeze'], capture_output=True, text=True) + packages = [line.split('==')[0].lower() for line in pip_result.stdout.strip().split('\n') if line] + results['total_packages'] = len(packages) + + # Check for specific packages + pkg_checks = { + 'aiohttp': 'aiohttp' in packages, + 'fastapi': 'fastapi' in packages, + 'websocket-client': 'websocket-client' in packages, + 'cdp-use': 'cdp-use' in packages, + 'browser-harness': 'browser-harness' in packages, + 'hermes-tools': any('hermes' in p for p in packages), + } + results['packages'] = pkg_checks + + # Check CLI tools + cli_tools = ['python3', 'pip', 'git', 'curl'] + cli_results = {} + for tool in cli_tools: + result = subprocess.run(['which', tool], capture_output=True) + cli_results[tool] = result.returncode == 0 + results['cli_tools'] = cli_results + + # Check jq + jq_result = subprocess.run(['which', 'jq'], capture_output=True) + results['jq_available'] = jq_result.returncode == 0 + + # Check directories + dirs = { + 'hermes_profile': os.path.isdir(os.path.expanduser('~/.hermes/profiles/spark/')), + 'wizard_outputs': os.path.isdir('/root/.hermes/wizard-outputs/spark/'), + 'troupe_standup': os.path.isdir('/root/troupe-standup/'), + } + results['directories'] = dirs + + # Output results + print(json.dumps(results, indent=2)) + return 0 + +if __name__ == '__main__': + sys.exit(main()) \ No newline at end of file