Se ha completado la integración del RouterOrchestrator con la interfaz TUI (Terminal User Interface), permitiendo que el nuevo sistema de enrutamiento simplificado sea utilizable a través de la interfaz interactiva moderna.
Se creó un enum para envolver ambos tipos de orquestadores:
pub enum OrchestratorWrapper {
Planning(PlanningOrchestrator),
Router(RouterOrchestrator),
}Este wrapper permite que ModernApp trabaje con cualquiera de los dos orquestadores sin necesidad de duplicar código.
Se agregaron dos métodos de construcción:
new(orchestrator: PlanningOrchestrator): Constructor original para compatibilidad hacia atrásnew_with_router(orchestrator: RouterOrchestrator): Nuevo constructor para usar RouterOrchestratornew_internal(orchestrator: OrchestratorWrapper): Constructor interno compartido
El método start_processing() ahora detecta automáticamente el tipo de orquestrador y llama al método apropiado:
- PlanningOrchestrator: Usa
process_with_planning_and_progress()con seguimiento detallado de tareas - RouterOrchestrator: Usa
process()simple, ya que el router maneja la lógica internamente
Se implementó el comando especial !reindex que permite reconstruir el índice RAPTOR:
// En el chat, escribe:
!reindexComportamiento:
- Con RouterOrchestrator: Ejecuta
rebuild_raptor()en segundo plano y muestra el progreso - Con PlanningOrchestrator: Muestra mensaje de que el comando no está disponible
El método start_background_raptor_indexing() ahora maneja ambos orquestadores:
- PlanningOrchestrator: Ejecuta indexación progresiva con actualizaciones de estado
- RouterOrchestrator: Reconoce que RAPTOR ya está inicializado (se hace en el constructor)
Se descomentó y activó la función run_modern_tui_with_router():
if args.simple {
eprintln!("Simple mode not yet supported with RouterOrchestrator");
return Ok(());
} else {
run_modern_tui_with_router(router).await
}- Configurar en
config.json:
{
"use_router_orchestrator": true
}O establecer variable de entorno:
export NEURO_USE_ROUTER=true- Ejecutar:
./target/release/neuro- Configurar en
config.json:
{
"use_router_orchestrator": false
}- Ejecutar:
./target/release/neuroEl TUI soporta 4 modos de entrada que afectan cómo RouterOrchestrator clasifica las consultas:
- 🗨️ Chat (default): Conversación general, preguntas de contexto
- 🔨 Build: Construcción, implementación, refactorización
- 🔍 Ask: Análisis, explicación, investigación
- 📋 Plan: Planificación de múltiples tareas
!reindex: Reconstruye el índice RAPTOR (solo con RouterOrchestrator)- Tab: Navegar entre pantallas (Chat → Settings → ModelConfig)
- Ctrl+Q: Salir de la aplicación
- Ctrl+C (doble): Salir forzado
En Chat:
Enter: Enviar mensajeCtrl+N: Cambiar modo de entradaTab: Ir a SettingsPageUp/PageDown: Desplazar chatHome/End: Ir a inicio/fin del chat
En Settings:
Up/Down: Navegar herramientasSpace/Enter: Activar/desactivar herramientaL: Cambiar idioma (EN ↔ ES)Esc/Tab: Volver a Chat
✅ Compilación exitosa
- 0 errores
- 69 warnings (deprecación de PlanningOrchestrator, código no usado)
- Binario generado:
target/release/neuro(45MB)
- Testing: Probar el TUI con RouterOrchestrator en escenarios reales
- Performance: Medir tiempos de respuesta con clasificación rápida
- UX: Ajustar mensajes de progreso y feedback visual
- Cleanup: Remover PlanningOrchestrator cuando RouterOrchestrator esté completamente validado
| Aspecto | PlanningOrchestrator | RouterOrchestrator |
|---|---|---|
| Clasificación | Modelo pesado | Modelo ligero (qwen3:0.6b) |
| Inicialización RAPTOR | En background por TUI | En constructor |
| Progreso de tareas | Detallado con TaskProgressInfo |
Integrado en respuesta |
| Fallback | 4 capas | 3 rutas (DirectResponse, ToolExecution, FullPipeline) |
| Re-clasificación | No | Automática en caso de fallo |
- Velocidad: Clasificación <1s vs varios segundos
- Simplicidad: Menos código, lógica más clara
- Optimización: Diseñado para modelos pequeños
- RAPTOR: Indexación rápida + background completo
- Mantenibilidad: Menos capas, menos complejidad
- src/ui/modern_app.rs - Implementación principal del TUI
- src/agent/router_orchestrator.rs - Lógica del router
- src/main.rs - Punto de entrada y selección de orquestrador
- config.example.json - Configuración de ejemplo