Parent
Часть плана модульной декомпозиции: #489
Контекст
Фаза 4e из оригинального плана #489 предполагала декларативную загрузку модулей:
MODULES = {
"full": [..., speech, telephony],
"cloud": [...], # speech и telephony не загружаются
}
Сейчас в orchestrator.py используется условная регистрация:
if DEPLOYMENT_MODE != "cloud":
app.include_router(...) # GPU/hardware роутеры
Аналогично в startup-функциях (init_tts_services, init_gsm_services и т.д.) проверяется DEPLOYMENT_MODE строкой.
Что нужно
- Создать декларативный реестр модулей с маппингом
DEPLOYMENT_MODE → набор модулей
- Каждый домен экспортирует свою конфигурацию (роутеры + startup + shutdown)
orchestrator.py итерирует по реестру, а не хардкодит include_router + условия
- Это должно ужать orchestrator.py (текущие 355 строк → ближе к цели 100-150)
Критерии готовности
Зависимости
Нет.
Оценка: M (1-2 PR)
Parent
Часть плана модульной декомпозиции: #489
Контекст
Фаза 4e из оригинального плана #489 предполагала декларативную загрузку модулей:
Сейчас в
orchestrator.pyиспользуется условная регистрация:Аналогично в startup-функциях (
init_tts_services,init_gsm_servicesи т.д.) проверяетсяDEPLOYMENT_MODEстрокой.Что нужно
DEPLOYMENT_MODE → набор модулейorchestrator.pyитерирует по реестру, а не хардкодитinclude_router+ условияКритерии готовности
cloudmode корректно исключает GPU/hardware модулиЗависимости
Нет.
Оценка: M (1-2 PR)