Volver a Documentación
Arquitectura

Tutorial de Ejecución

Línea de tiempo de ejecución de extremo a extremo desde la entrada de la tarea hasta la salida del plan.

12 min de lectura

Este tutorial traza una sola tarea desde la captura inicial a través del descubrimiento de archivos, generación de planes y ejecución de terminal. Cada etapa se mapea a tipos de trabajos específicos y produce artefactos almacenados en SQLite.

Secuencia de ejecución de alto nivel

  • 1.El usuario ingresa o dicta una descripción de tarea en la UI de escritorio a través del componente TaskDescriptionEditor.
  • 2.Opcional: el trabajo text_improvement refina la entrada sin procesar a través de TextImprovementProcessor.
  • 3.El usuario activa el flujo de trabajo de descubrimiento de archivos a través del comando start_file_finder_workflow del panel de Planes de Implementación.
  • 4.WorkflowOrchestrator en desktop/src-tauri/src/jobs/workflow_orchestrator/ crea un registro de flujo de trabajo y programa la etapa 1.
  • 5.Etapa 1 (root_folder_selection): RootFolderSelectionProcessor envía el árbol de directorios al LLM, almacena las raíces seleccionadas en IntermediateData.selectedRoots.
  • 6.Etapa 2 (regex_file_filter): RegexFileFilterProcessor genera patrones, ejecuta git ls-files, almacena coincidencias en IntermediateData.locallyFilteredFiles.
  • 7.Etapa 3 (file_relevance_assessment): FileRelevanceAssessmentProcessor fragmenta contenidos de archivos, puntúa relevancia, almacena en IntermediateData.aiFilteredFiles.
  • 8.Etapa 4 (extended_path_finder): ExtendedPathFinderProcessor expande el contexto con imports y dependencias, almacena en IntermediateData.verifiedPaths.
  • 9.La UI recibe el evento workflow-completed a través de event_emitter.rs, actualiza la visualización de selección de archivos.
  • 10.El usuario activa la generación de planes con los archivos seleccionados a través del comando generate_implementation_plan.
  • 11.ImplementationPlanProcessor en desktop/src-tauri/src/jobs/processors/implementation_plan_processor.rs transmite contenido del plan XML al visor Monaco a través de eventos job:stream-progress.
  • 12.El usuario revisa el plan en el componente VirtualizedCodeViewer, puede editar directamente o solicitar fusión.
  • 13.El plan aprobado se copia al terminal a través de plantillas de botones de copiado o se exporta para agentes externos.
  • 14.La sesión de terminal en terminal_commands.rs captura la salida PTY, detecta estados de atención del agente.
  • 15.Todos los artefactos persisten en las tablas SQLite background_jobs y terminal_sessions para auditoría y recuperación de sesión.

Línea de tiempo de ejecución

Línea de tiempo visual mostrando entrada de tarea, etapas de flujo de trabajo y salida del plan.

Diagrama de línea de tiempo de ejecución
Click to expand
La ejecución de la tarea fluye a través de seis etapas, con todos los artefactos persistidos en SQLite.

Mapeo de tipos de trabajo

  • text_improvement → TextImprovementProcessor → descripciones de tareas refinadas
  • root_folder_selection → RootFolderSelectionProcessor → directorios seleccionados
  • regex_file_filter → RegexFileFilterProcessor → archivos coincidentes por patrón
  • file_relevance_assessment → FileRelevanceAssessmentProcessor → archivos puntuados
  • extended_path_finder → ExtendedPathFinderProcessor → contexto expandido
  • implementation_plan → ImplementationPlanProcessor → documentos de plan XML
  • implementation_plan_merge → ImplementationPlanMergeProcessor → planes fusionados

Captura de entrada de tarea

Las tareas ingresan al sistema a través de múltiples superficies de entrada: texto escrito en TaskDescriptionEditor, dictado de voz a través del hook useVoiceTranscription, o análisis de video a través de VideoAnalysisDialog.

Cada tipo de entrada produce artefactos almacenados en SQLite - task_description en la tabla sessions, resultados de transcripción en background_jobs, y fotogramas de video en metadatos del trabajo asociado.

Refinamiento de entrada

El tipo de trabajo text_improvement refina la entrada sin procesar a través de TextImprovementProcessor, envolviendo texto en XML y enviándolo al LLM para mejoras de gramática, claridad y estructura.

El texto refinado se almacena en background_jobs.response y puede actualizar sessions.task_description a través del proveedor React.

Flujo de trabajo de descubrimiento de archivos

FileFinderWorkflow ejecuta cuatro etapas secuenciales: root_folder_selection reduce directorios, regex_file_filter aplica patrones, file_relevance_assessment puntúa contenido, y extended_path_finder expande con dependencias.

Cada etapa almacena resultados en estructuras IntermediateData pasadas entre procesadores, con selecciones finales de archivos persistidas en sessions.included_files.

Generación de planes

El tipo de trabajo implementation_plan usa ImplementationPlanProcessor para generar planes formateados en XML con elementos plan_step conteniendo rutas de archivos, tipos de operación y cambios de código.

El contenido del plan se transmite a la UI a través de eventos Tauri job:stream-progress, mostrado en el componente VirtualizedCodeViewer Monaco con resaltado de sintaxis.

Fusión de planes

El trabajo implementation_plan_merge combina múltiples planes usando etiquetas XML source_plans e instrucciones de fusión proporcionadas por el usuario para resolver conflictos y consolidar cambios.

Los planes fusionados mantienen trazabilidad a los planes fuente e incluyen metadatos merged_from en el registro final de background_jobs.

Revisión de planes

Los planes se abren en el VirtualizedCodeViewer basado en Monaco para revisión. Los usuarios pueden editar el texto del plan directamente, solicitar modificaciones o aprobar para ejecución.

Todas las acciones de revisión se registran con marcas de tiempo y contexto del usuario, proporcionando una pista de auditoría de la evolución del plan.

Transferencia de ejecución

Los planes aprobados se copian al terminal integrado a través de plantillas de botones de copiado, o se exportan para agentes externos como Claude Code, Cursor o Codex.

Las sesiones de terminal en terminal_commands.rs capturan salida PTY, detectan estados de atención del agente y registran toda la actividad de ejecución en la tabla terminal_sessions.

Persistencia de estado

Todos los artefactos de trabajos persisten en la tabla background_jobs con session_id, task_type, status, prompt, response, conteos de tokens y seguimiento de costos.

Al reiniciar la aplicación, el núcleo Rust rehidrata el estado de sesión desde SQLite, marca trabajos en ejecución obsoletos como fallidos y restaura logs de salida del terminal.

Explora la arquitectura

Comprende cómo encajan los componentes en detalle.