Back to Docs
Arquitectura

Arquitectura de PlanToCode

Cómo están organizados el shell de escritorio, los flujos de trabajo en segundo plano y los servicios compartidos.

7 min read

PlanToCode es una aplicación de escritorio Tauri con un frontend React. La interfaz renderiza planes de implementación, terminales y controles de configuración, mientras que el backend Rust expone comandos para flujos de trabajo, estimación de tokens y sesiones de terminal persistentes. Esta descripción resume cómo encajan estas piezas.

Superficie del frontend

La interfaz de escritorio está construida con componentes React. El contenido del plan de implementación se muestra a través de un visor basado en Monaco que virtualiza planes grandes, detecta lenguajes y admite acciones de copia para que los revisores puedan examinar el texto del plan sin problemas de rendimiento. Las sesiones de terminal se renderizan dentro de una vista con búfer que se conecta a la salida PTY y muestra actualizaciones del estado de conexión.

Los proveedores compartidos gestionan notificaciones, configuración en tiempo de ejecución y estado del plan. El panel de Planes de Implementación mantiene los metadatos del plan, gestiona la visibilidad del modal y solicita estimaciones de tokens o contenido de prompts según sea necesario.

Comandos y servicios Tauri

El lado Rust de la aplicación expone comandos para flujos de trabajo, sesiones de terminal y herramientas de modelo. Los comandos de flujo de trabajo inician trabajos en segundo plano a través del Orquestador de Flujo de Trabajo, validando entradas y emitiendo eventos de progreso mientras se ejecuta el pipeline de descubrimiento de archivos. Los comandos de estimación de tokens calculan tamaños de prompts para el modelo actualmente seleccionado.

Los comandos de terminal gestionan procesos PTY, rastrean clientes remotos y verifican si los binarios CLI compatibles están disponibles antes de iniciar una sesión. Las comprobaciones de estado combinan el estado PTY con los registros de la base de datos para informar si una sesión sigue activa.

Persistencia y configuración

La salida del terminal y los metadatos de sesión se almacenan en SQLite a través del repositorio de sesiones de terminal. Cada registro incluye identificadores, marcas de tiempo, directorios de trabajo, variables de entorno y el registro acumulado para que los reinicios puedan recuperar la salida anterior. El mismo repositorio emite eventos cuando cambia el estado de la sesión.

Los valores predeterminados del modelo residen en la tabla de configuración de la aplicación. Cada tarea define un modelo predeterminado, una lista de alternativas permitidas, presupuestos de tokens y preajustes opcionales de botones de copia. La capa React lee esta configuración para completar el selector de modelos y las barreras de protección.

Pipeline de transcripción de voz

La transcripción de voz se implementa como un hook de React que coordina permisos de medios, selección de micrófono y solicitudes de transcripción en streaming. El hook se integra con el terminal del plan y los editores de prompts, insertando texto reconocido directamente en el componente activo y mostrando notificaciones si falla la transcripción.

Descripción general de la arquitectura de PlanToCode