Zurück zur Dokumentation
Übersicht

Systemübersicht

Eine prägnante Karte des Systems, der Kernschleife und der erforderlichen Abhängigkeiten.

15 Min. Lesezeit

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.

PlanToCode-Systemkarten-Diagramm
Click to expand
Vierschichtige Architektur mit Daten, die nach unten fließen, und Ereignissen, die nach oben streamen.

Kernschleife in der Praxis

  1. Die Aufgabe aus Text, Sprachtranskription (über useVoiceTranscription-Hook) oder Video-Aufnahme-Analyse erfassen.
  2. Die Aufgabenbeschreibung und Ziele mit text_improvement-Jobs über TextImprovementProcessor verfeinern.
  3. Den Dateisuche-Workflow ausführen: RootFolderSelectionProcessor wählt Verzeichnisse, RegexFileFilterProcessor wendet Muster an, FileRelevanceAssessmentProcessor bewertet Inhalte, ExtendedPathFinderProcessor erweitert den Kontext.
  4. Implementierungspläne über ImplementationPlanProcessor generieren, der XML-formatierte Pläne an den Monaco-Viewer streamt.
  5. Optional mehrere Plan-Entwürfe mit ImplementationPlanMergeProcessor unter Verwendung von XML-getaggten Quellplänen zusammenführen.
  6. Den genehmigten Plan über PTY-Terminal-Sitzungen oder Kopier-Button-Vorlagen für externe Agenten ausführen oder exportieren.
  7. 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.