"""Analysis adapters package.

Provides language-specific analysis adapters for static analysis.
"""

from unfamiliar.analysis.adapters.javascript_adapter import JavaScriptAdapter
from unfamiliar.analysis.adapters.protocol import AdapterRegistry
from unfamiliar.analysis.adapters.python_adapter import PythonAdapter
from unfamiliar.analysis.adapters.typescript_adapter import TypeScriptAdapter

__all__ = [
    # Public API
    "AdapterRegistry",
    "create_default_registry",
    "JavaScriptAdapter",
    "PythonAdapter",
    "TypeScriptAdapter",
]


def create_default_registry() -> AdapterRegistry:
    """Create and populate a registry with all language adapters.

    Returns:
        AdapterRegistry with PythonAdapter, TypeScriptAdapter, and
        JavaScriptAdapter registered.
    """
    registry = AdapterRegistry()
    registry.register(PythonAdapter())
    registry.register(TypeScriptAdapter())
    registry.register(JavaScriptAdapter())
    return registry
