from fusionagi._logger import logger from fusionagi.memory.procedural import ProceduralMemory from fusionagi.schemas.skill import Skill class SkillLibrary: def __init__(self, procedural: ProceduralMemory | None = None) -> None: self._proc = procedural or ProceduralMemory() def register(self, skill: Skill) -> None: self._proc.add_skill(skill) logger.info("Skill registered", extra={"skill_id": skill.skill_id, "name": skill.name}) def get(self, skill_id: str) -> Skill | None: return self._proc.get_skill(skill_id) def get_by_name(self, name: str) -> Skill | None: return self._proc.get_skill_by_name(name) def list_skills(self, limit: int = 200) -> list[Skill]: return self._proc.list_skills(limit=limit)