39 lines
1.1 KiB
Python
39 lines
1.1 KiB
Python
"""Hermes wrapper for the OpenAI Codex Game Studio plugin.
|
|
|
|
This plugin was imported from a Codex curated plugin cache. It exposes the
|
|
plugin's bundled SKILL.md files as Hermes plugin skills using qualified names
|
|
like `game-studio:phaser-2d-game`.
|
|
"""
|
|
|
|
from __future__ import annotations
|
|
|
|
from pathlib import Path
|
|
|
|
|
|
def _read_description(skill_md: Path) -> str:
|
|
try:
|
|
text = skill_md.read_text(encoding="utf-8")[:4000]
|
|
except Exception:
|
|
return ""
|
|
if text.startswith("---"):
|
|
end = text.find("\n---", 3)
|
|
if end != -1:
|
|
frontmatter = text[3:end]
|
|
for line in frontmatter.splitlines():
|
|
if line.strip().startswith("description:"):
|
|
return line.split(":", 1)[1].strip().strip("\"'")
|
|
return ""
|
|
|
|
|
|
def register(ctx) -> None:
|
|
root = Path(__file__).resolve().parent
|
|
skills_root = root / "skills"
|
|
if not skills_root.exists():
|
|
return
|
|
for skill_md in sorted(skills_root.glob("*/SKILL.md")):
|
|
ctx.register_skill(
|
|
name=skill_md.parent.name,
|
|
path=skill_md,
|
|
description=_read_description(skill_md),
|
|
)
|