"""Skill system - Domain knowledge for agents.

This module provides:
- Skill: Domain knowledge, pathway references, and script tools
- SkillRegistry: Centralized skill management
- Skill loading utilities

Usage:
    from core.skills import Skill, SkillRegistry, get_skill_registry

    # Create a skill
    skill = Skill(
        id="research",
        name="Research",
        description="Deep research capabilities",
        instructions="When researching...",
    )

    # Register it
    registry = get_skill_registry()
    registry.register(skill)

    # Load skills from filesystem
    from core.skills import load_skills_from_directory
    skills = load_skills_from_directory("/path/to/skills")
"""

# Skill definitions
# OSS Skill Import
from core.skills.importer import (
    SKILLS_DIR,
    install_skill,
    list_installed,
    uninstall_skill,
)

# Loading utilities
from core.skills.loader import (
    SCRIPT_INTERPRETERS,
    extract_skill_instructions,
    load_agent_skills_from_directories,
    load_skill_from_directory,
    load_skills_from_directory,
    parse_frontmatter,
)
from core.skills.models import (
    ScriptToolDeclaration,
    ScriptToolParam,
    Skill,
)

# Registry
from core.skills.registry import (
    SkillRegistry,
    get_skill_registry,
    set_skill_registry,
)

__all__ = [
    "SCRIPT_INTERPRETERS",
    "SKILLS_DIR",
    "ScriptToolDeclaration",
    "ScriptToolParam",
    # Skill
    "Skill",
    # Registry
    "SkillRegistry",
    "extract_skill_instructions",
    "get_skill_registry",
    # OSS Import
    "install_skill",
    "list_installed",
    "load_agent_skills_from_directories",
    # Loading
    "load_skill_from_directory",
    "load_skills_from_directory",
    "parse_frontmatter",
    "set_skill_registry",
    "uninstall_skill",
]
