"""Avocet -- eval router aggregator. Collects benchmark sub-routers into a single importable `router` for the api.py factory. Each sub-router retains its established prefix so no frontend URL changes are needed. Route prefixes when mounted at /api in api.py: /api/cforch/* -- cf-orch benchmark routes /api/style/* -- writing style benchmark routes /api/voice/* -- voice benchmark routes /api/plans-bench/* -- plans benchmark routes """ from __future__ import annotations from fastapi import APIRouter from app.cforch import router as _cforch_router from app.style import router as _style_router from app.voice import router as _voice_router from app.plans_bench import router as _plans_router router = APIRouter() router.include_router(_cforch_router, prefix="/cforch") router.include_router(_style_router, prefix="/style") router.include_router(_voice_router, prefix="/voice") router.include_router(_plans_router, prefix="/plans-bench") def set_config_dir(path) -> None: """Propagate config dir override to all sub-modules -- used by tests.""" import app.cforch as _cforch_mod import app.style as _style_mod import app.voice as _voice_mod import app.plans_bench as _plans_mod _cforch_mod.set_config_dir(path) _style_mod.set_config_dir(path) _voice_mod.set_config_dir(path) _plans_mod.set_config_dir(path)