| from fastapi import APIRouter, Depends, Query | |
| from app.auth import require_bearer_auth | |
| from app.services.engine_registry import EngineRegistry, get_engine_registry | |
| from app.schemas import ModelCard, ModelListResponse, VoiceBinding, VoiceListResponse | |
| router = APIRouter(prefix="/v1") | |
| def list_models(registry: EngineRegistry = Depends(get_engine_registry)) -> ModelListResponse: | |
| return ModelListResponse(data=[ModelCard(id=model_id) for model_id in registry.list_models()]) | |
| def list_voices( | |
| model: str | None = Query(default=None), | |
| registry: EngineRegistry = Depends(get_engine_registry), | |
| ) -> VoiceListResponse: | |
| return VoiceListResponse(data=[VoiceBinding(**row) for row in registry.list_voice_bindings(model=model)]) | |