PlanToCode 아키텍처
데스크톱 셸, 백그라운드 워크플로우 및 공유 서비스가 어떻게 구성되어 있는지 설명합니다.
PlanToCode는 React 프론트엔드를 사용하는 Tauri 데스크톱 애플리케이션입니다. UI는 구현 플랜, 터미널 및 구성 컨트롤을 렌더링하며, Rust 백엔드는 워크플로우, 토큰 추정 및 영구 터미널 세션을 위한 명령을 노출합니다. 이 개요는 이러한 구성 요소가 어떻게 함께 작동하는지 요약합니다.
프론트엔드 인터페이스
데스크톱 UI는 React 컴포넌트로 구축되었습니다. 구현 플랜 콘텐츠는 대용량 플랜을 가상화하고, 언어를 감지하며, 복사 작업을 지원하는 Monaco 기반 뷰어를 통해 표시되어 검토자가 성능 문제 없이 플랜 텍스트를 검토할 수 있습니다. 터미널 세션은 PTY 출력에 연결되고 연결 상태 업데이트를 표시하는 버퍼링된 뷰 내에서 렌더링됩니다.
공유 프로바이더는 알림, 런타임 구성 및 플랜 상태를 처리합니다. 구현 플랜 패널은 플랜 메타데이터를 유지하고, 모달 가시성을 관리하며, 필요에 따라 토큰 추정 또는 프롬프트 콘텐츠를 요청합니다.
Tauri 명령 및 서비스
애플리케이션의 Rust 측은 워크플로우, 터미널 세션 및 모델 도구를 위한 명령을 노출합니다. 워크플로우 명령은 워크플로우 오케스트레이터를 통해 백그라운드 작업을 시작하고, 입력을 검증하며, 파일 검색 파이프라인이 실행될 때 진행 이벤트를 발생시킵니다. 토큰 추정 명령은 현재 선택된 모델에 대한 프롬프트 크기를 계산합니다.
터미널 명령은 PTY 프로세스를 관리하고, 원격 클라이언트를 추적하며, 세션을 시작하기 전에 지원되는 CLI 바이너리를 사용할 수 있는지 확인합니다. 상태 확인은 PTY 상태와 데이터베이스 레코드를 결합하여 세션이 여전히 활성 상태인지 보고합니다.
영속성 및 구성
터미널 출력 및 세션 메타데이터는 터미널 세션 저장소를 통해 SQLite에 저장됩니다. 각 레코드에는 식별자, 타임스탬프, 작업 디렉터리, 환경 변수 및 누적 로그가 포함되어 재시작 시 이전 출력을 복구할 수 있습니다. 동일한 저장소는 세션 상태가 변경될 때 이벤트를 발생시킵니다.
모델 기본값은 애플리케이션 구성 테이블에 저장됩니다. 각 작업은 기본 모델, 허용된 대안 목록, 토큰 예산 및 선택적 복사 버튼 사전 설정을 정의합니다. React 레이어는 이러한 설정을 읽어 모델 선택기와 가드레일을 채웁니다.
음성 전사 파이프라인
음성 전사는 미디어 권한, 마이크 선택 및 스트리밍 전사 요청을 조정하는 React 훅으로 구현됩니다. 이 훅은 플랜 터미널 및 프롬프트 편집기와 통합되어 인식된 텍스트를 활성 컴포넌트에 직접 삽입하고 전사가 실패하면 알림을 표시합니다.