"""Backend subsystem – register all known backends on import."""

from thryve.core.backends.factory import BackendFactory
from thryve.core.backends.llama_capp import LlamaCappBackend, LlamaCappBackendParam
from thryve.core.backends.ollama import OllamaBackend, OllamaBackendParam
from thryve.core.backends.openai import OpenAIBackend, OpenAIBackendParam
from thryve.core.backends.transformers import TransformersBackend, TransformersBackendParam

# Register backends (explicit, no file scanning – per DESIGN.md)
BackendFactory.register("openai", OpenAIBackend, OpenAIBackendParam)
BackendFactory.register("ollama", OllamaBackend, OllamaBackendParam)
BackendFactory.register("llama_capp", LlamaCappBackend, LlamaCappBackendParam)
BackendFactory.register("transformers", TransformersBackend, TransformersBackendParam)

__all__ = [
    "BackendFactory",
    "OpenAIBackend",
    "OpenAIBackendParam",
    "OllamaBackend",
    "OllamaBackendParam",
    "LlamaCappBackend",
    "LlamaCappBackendParam",
    "TransformersBackend",
    "TransformersBackendParam",
]
