ドキュメントに戻る
概要

システム概要

システム、コアループ、必要な依存関係の簡潔なマップ。

15分 で読めます

PlanToCodeは、実行前にコード変更を計画・検証するデスクトップワークスペースです。ローカルのRustジョブエンジン、React UI、LLM呼び出し用のサーバープロキシを調整します。システムはオフラインファーストアーキテクチャに従い、デスクトップアプリはローカル状態にSQLiteを使用して独立して動作し、サーバーは認証、LLMプロバイダールーティング、課金を処理します。外部LLMプロバイダーがAPIキーで設定されていない場合、計画と分析パイプラインは実行されません。

システムマップ

デスクトップアプリ、Rustコア、ローカルSQLiteストレージ、サーバープロキシのマップ。

PlanToCodeシステムマップ図
Click to expand
データが下に流れ、イベントが上にストリーミングされる4層アーキテクチャ。

実践におけるコアループ

  1. テキスト、音声文字起こし(useVoiceTranscriptionフック経由)、またはビデオ録画分析からタスクをキャプチャ。
  2. TextImprovementProcessorを通じてtext_improvementジョブでタスクの説明と目標を洗練。
  3. ファイル検出ワークフローを実行:RootFolderSelectionProcessorがディレクトリを選択、RegexFileFilterProcessorがパターンを適用、FileRelevanceAssessmentProcessorが内容をスコアリング、ExtendedPathFinderProcessorがコンテキストを拡張。
  4. ImplementationPlanProcessorを介して実装計画を生成し、XML形式のプランをMonacoビューアにストリーミング。
  5. オプションで、XMLタグ付きソースプランを使用してImplementationPlanMergeProcessorで複数のプランドラフトをマージ。
  6. PTYターミナルセッションまたは外部エージェント用のコピーボタンテンプレートを通じて承認されたプランを実行またはエクスポート。
  7. 監査可能性のためにすべてのジョブ、アーティファクト、ターミナルログをSQLite(background_jobs、terminal_sessionsテーブル)に永続化。

主要コンポーネント

  • デスクトップUI(React):desktop/src/内にMonacoプランビュー、ターミナルパネル、プロバイダー(SessionProvider、TextImprovementProvider)。
  • Rustコア(Tauri v2):desktop/src-tauri/内でコマンド、ジョブ、永続化を機能ベースのパーミッションで処理。
  • ローカルSQLiteスキーマ:並行アクセス用のWALモードを持つdesktop/src-tauri/migrations/consolidated_schema.sql。
  • サーバープロキシ(Actix-Web):認証、プロバイダールーティング、ストリーミングレスポンス、Stripe経由の課金用にserver/src/内。
  • モバイルiOSクライアント:SwiftUIインターフェース、Auth0 PKCE、WebSocketデバイスリンクを持つmobile/ios/Core/内。
  • インフラ自動化:Hetzner(EU)とInterServer(US)専用サーバー用のinfrastructure/ansible/内。

必要な依存関係

  • プラン生成、文字起こし、分析用の外部LLMプロバイダー(OpenAI、Anthropic、Google、X.AI、OpenRouter)。
  • デスクトップとモバイルセッション用のPKCEフローを持つAuth0ベースの認証。
  • サーバー側のユーザーアカウント、課金状態、ジョブキュー用のPostgreSQL 17とRedis 7+(セルフホストデプロイメント)。
  • ファイル検出ワークフロー用のgit ls-filesまたはディレクトリトラバーサルによるローカルファイルシステムアクセス。
  • 音声入力処理用のWhisper互換文字起こしエンドポイント。

リポジトリ内の動作の場所

  • Tauriコマンド:desktop/src-tauri/src/commands/(35以上のコマンドモジュール:job_commands.rs、workflow_commands.rs、terminal_commands.rs、session_commands.rs、auth0_commands.rs)
  • ワークフローオーケストレーション:desktop/src-tauri/src/jobs/workflow_orchestrator/(definition_loader.rs、stage_scheduler.rs、event_emitter.rs、payload_builder.rs)
  • ジョブプロセッサ:desktop/src-tauri/src/jobs/processors/(implementation_plan_processor.rs、text_improvement_processor.rs、root_folder_selection_processor.rs)
  • SQLiteリポジトリ:desktop/src-tauri/src/db_utils/(background_job_repository/、session_repository.rs、terminal_repository.rs)
  • サーバールート:server/src/routes.rs(configure_routes、configure_public_auth_routes、configure_webhook_routes)
  • LLMプロキシハンドラー:server/src/handlers/proxy_handlers.rsとserver/src/handlers/proxy/(router.rs、providers/)
  • プロバイダートランスフォーマー:server/src/handlers/provider_transformers/(openai.rs、google.rs、anthropic.rs、xai.rs)
  • iOSワークフロー:MobileSessionManagerとAPIClientを持つmobile/ios/Core/Sources/Workflows/WorkflowManager.swift
  • インフラプレイブック:infrastructure/ansible/site-base.yml(強化、PostgreSQL、Redis)とsite-app.yml(デプロイメント)

Continue to the runtime walkthrough

See how the core loop executes in practice with detailed job timelines and artifact flows.