import os
import glob
import logging
from typing import List

# Configure logging
logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s')

def discover_capabilities(skills_dir: str = '/mnt/e/genesis-system/skills') -> List[str]:
    """
    Discovers capabilities by scanning the specified directory for files matching the pattern 'capability_*.py'.

    Args:
        skills_dir: The directory to search for capability files. Defaults to '/mnt/e/genesis-system/skills'.

    Returns:
        A list of strings, where each string is the absolute path to a capability file.  Returns an empty list if no
        capabilities are found or if an error occurs.
    """
    try:
        pattern = os.path.join(skills_dir, 'capability_*.py')
        capability_files = glob.glob(pattern)

        if not capability_files:
            logging.info(f"No capability files found in {skills_dir}")
            return []

        logging.info(f"Discovered capability files: {capability_files}")
        return capability_files
    except OSError as e:
        logging.error(f"Error discovering capabilities: {e}")
        return []
    except Exception as e:
        logging.exception(f"An unexpected error occurred: {e}")
        return []


if __name__ == '__main__':
    capabilities = discover_capabilities()
    if capabilities:
        print("Discovered Capabilities:")
        for capability in capabilities:
            print(capability)
    else:
        print("No capabilities discovered.")