Systemübersicht
Eine prägnante Karte des Systems, der Kernschleife und der erforderlichen Abhängigkeiten.
PlanToCode ist ein Desktop-Arbeitsbereich, der Code-Änderungen vor der Ausführung plant und validiert. Er koordiniert eine lokale Rust-Job-Engine, eine React-UI und einen Server-Proxy für LLM-Aufrufe. Das System folgt einer Offline-First-Architektur, bei der die Desktop-App unabhängig mit SQLite für lokalen Zustand arbeitet, während der Server Authentifizierung, LLM-Anbieter-Routing und Abrechnung verwaltet. Ohne LLM-Zugriff (gehostet verwaltet oder selbst gehostet mit eigenen Schlüsseln) werden die Planungs- und Analyse-Pipelines nicht ausgeführt.
Systemkarte
Karte der Desktop-App, des Rust-Kerns, der lokalen SQLite-Speicherung und des Server-Proxys.
Kernschleife in der Praxis
- Die Aufgabe aus Text, Sprachtranskription (über useVoiceTranscription-Hook) oder Video-Aufnahme-Analyse erfassen.
- Die Aufgabenbeschreibung und Ziele mit text_improvement-Jobs über TextImprovementProcessor verfeinern.
- Den Dateisuche-Workflow ausführen: RootFolderSelectionProcessor wählt Verzeichnisse, RegexFileFilterProcessor wendet Muster an, FileRelevanceAssessmentProcessor bewertet Inhalte, ExtendedPathFinderProcessor erweitert den Kontext.
- Implementierungspläne über ImplementationPlanProcessor generieren, der XML-formatierte Pläne an den Monaco-Viewer streamt.
- Optional mehrere Plan-Entwürfe mit ImplementationPlanMergeProcessor unter Verwendung von XML-getaggten Quellplänen zusammenführen.
- Den genehmigten Plan über PTY-Terminal-Sitzungen oder Kopier-Button-Vorlagen für externe Agenten ausführen oder exportieren.
- Persist every job, artifact, and terminal log to SQLite (background_jobs, terminal_sessions tables) for history and recovery.
Hauptkomponenten
- Desktop-UI (React) in desktop/src/ mit Monaco-Plan-Ansichten, Terminal-Panels und Providern (SessionProvider, TextImprovementProvider).
- Rust-Kern (Tauri v2) in desktop/src-tauri/ für Befehle, Jobs und Persistenz mit fähigkeitsbasierten Berechtigungen.
- Lokales SQLite-Schema in desktop/src-tauri/migrations/consolidated_schema.sql mit WAL-Modus für gleichzeitigen Zugriff.
- Server-Proxy (Actix-Web) in server/src/ für Authentifizierung, Anbieter-Routing, Streaming-Antworten und Abrechnung über Stripe.
- Mobiler iOS-Client in mobile/ios/Core/ mit SwiftUI-Oberfläche, Auth0 PKCE und WebSocket-Geräteverbindung.
- Infrastruktur-Automatisierung in infrastructure/ansible/ für Hetzner (EU) und InterServer (US) dedizierte Server.
Erforderliche Abhängigkeiten
- Externe LLM-Anbieter (OpenAI, Anthropic, Google, X.AI, OpenRouter) für Plan-Generierung, Transkription und Analyse.
- Auth0-basierte Authentifizierung mit PKCE-Ablauf für Desktop- und Mobile-Sitzungen.
- PostgreSQL 17 und Redis 7+ für serverseitige Benutzerkonten, Abrechnungsstatus und Job-Warteschlangen (selbst gehostete Deployments).
- Lokaler Dateisystemzugriff über git ls-files oder Verzeichnisdurchquerung für Dateisuche-Workflows.
- Whisper-kompatibler Transkriptions-Endpunkt für Spracheingabe-Verarbeitung.
Wo sich das Verhalten im Repository befindet
- Tauri-Befehle: desktop/src-tauri/src/commands/ (35+ Befehlsmodule: job_commands.rs, workflow_commands.rs, terminal_commands.rs, session_commands.rs, auth0_commands.rs)
- Workflow-Orchestrierung: desktop/src-tauri/src/jobs/workflow_orchestrator/ (definition_loader.rs, stage_scheduler.rs, event_emitter.rs, payload_builder.rs)
- Job-Prozessoren: desktop/src-tauri/src/jobs/processors/ (implementation_plan_processor.rs, text_improvement_processor.rs, root_folder_selection_processor.rs)
- SQLite-Repositories: desktop/src-tauri/src/db_utils/ (background_job_repository/, session_repository.rs, terminal_repository.rs)
- Server-Routen: server/src/routes.rs (configure_routes, configure_public_auth_routes, configure_webhook_routes)
- LLM-Proxy-Handler: server/src/handlers/proxy_handlers.rs und server/src/handlers/proxy/ (router.rs, providers/)
- Anbieter-Transformatoren: server/src/handlers/provider_transformers/ (openai.rs, google.rs, anthropic.rs, xai.rs)
- iOS-Workflows: mobile/ios/Core/Sources/Workflows/WorkflowManager.swift mit MobileSessionManager und APIClient
- Infrastruktur-Playbooks: infrastructure/ansible/site-base.yml (Härtung, PostgreSQL, Redis) und site-app.yml (Deployment)
Continue to the runtime walkthrough
See how the core loop executes in practice with detailed job timelines and artifact flows.