Files

117 lines
3.7 KiB
Python

#!/usr/bin/env python3
"""Verify the Hermes Agent skill system is working correctly."""
import sys
from pathlib import Path
def verify_skill_system():
"""Test skill loading and structure verification."""
from hermes_tools import skill_view, skills_list
results = {
"passed": 0,
"failed": 0,
"tests": []
}
# Test 1: skills_list returns a valid response
try:
skills_response = skills_list()
if skills_response.get("success") and "skills" in skills_response:
skills = skills_response["skills"]
results["passed"] += 1
results["tests"].append({
"name": "skills_list returns valid response",
"status": "PASS",
"details": f"Found {len(skills)} skills"
})
else:
results["failed"] += 1
results["tests"].append({
"name": "skills_list returns valid response",
"status": "FAIL",
"details": "Invalid response structure"
})
except Exception as e:
results["failed"] += 1
results["tests"].append({
"name": "skills_list returns valid response",
"status": "FAIL",
"details": str(e)
})
# Test 2: skill_view loads a skill successfully
try:
skill_response = skill_view("hermes-agent")
if skill_response.get("success") and skill_response.get("name") == "hermes-agent":
results["passed"] += 1
results["tests"].append({
"name": "skill_view loads hermes-agent skill",
"status": "PASS",
"details": "Skill loaded with name: hermes-agent"
})
else:
results["failed"] += 1
results["tests"].append({
"name": "skill_view loads hermes-agent skill",
"status": "FAIL",
"details": "Failed to load skill"
})
except Exception as e:
results["failed"] += 1
results["tests"].append({
"name": "skill_view loads hermes-agent skill",
"status": "FAIL",
"details": str(e)
})
# Test 3: skill has required fields
try:
skill_response = skill_view("hermes-agent")
required_fields = ["name", "description", "version", "content", "tags"]
missing = [f for f in required_fields if f not in skill_response]
if not missing:
results["passed"] += 1
results["tests"].append({
"name": "Skill has all required fields",
"status": "PASS",
"details": f"All fields present: {required_fields}"
})
else:
results["failed"] += 1
results["tests"].append({
"name": "Skill has all required fields",
"status": "FAIL",
"details": f"Missing fields: {missing}"
})
except Exception as e:
results["failed"] += 1
results["tests"].append({
"name": "Skill has all required fields",
"status": "FAIL",
"details": str(e)
})
return results
if __name__ == "__main__":
print("=" * 60)
print("HERMES AGENT SKILL SYSTEM VERIFICATION")
print("=" * 60)
print()
results = verify_skill_system()
for test in results["tests"]:
status_symbol = "✓" if test["status"] == "PASS" else "✗"
print(f"[{status_symbol}] {test['name']}")
print(f" {test['details']}")
print()
print("=" * 60)
print(f"SUMMARY: {results['passed']} passed, {results['failed']} failed")
print("=" * 60)
if results["failed"] > 0:
sys.exit(1)
sys.exit(0)