ランタイムウォークスルー
タスク入力からプラン出力までのエンドツーエンドランタイムタイムライン。
このウォークスルーは、初期キャプチャからファイル検出、プラン生成、ターミナル実行までの単一タスクを追跡します。各ステージは特定のジョブタイプにマップされ、SQLiteに保存されるアーティファクトを生成します。
ハイレベルランタイムシーケンス
- 1.ユーザーがTaskDescriptionEditorコンポーネントを介してデスクトップUIでタスクの説明を入力または音声入力。
- 2.オプション:text_improvementジョブがTextImprovementProcessorを通じて生の入力を洗練。
- 3.ユーザーが実装計画パネルのstart_file_finder_workflowコマンドを介してファイル検出ワークフローをトリガー。
- 4.desktop/src-tauri/src/jobs/workflow_orchestrator/のWorkflowOrchestratorがワークフローレコードを作成しステージ1をスケジュール。
- 5.ステージ1(root_folder_selection):RootFolderSelectionProcessorがディレクトリツリーをLLMに送信、選択されたルートをIntermediateData.selectedRootsに保存。
- 6.ステージ2(regex_file_filter):RegexFileFilterProcessorがパターンを生成、git ls-filesを実行、マッチをIntermediateData.locallyFilteredFilesに保存。
- 7.ステージ3(file_relevance_assessment):FileRelevanceAssessmentProcessorがファイル内容をチャンキング、関連性をスコアリング、IntermediateData.aiFilteredFilesに保存。
- 8.ステージ4(extended_path_finder):ExtendedPathFinderProcessorがインポートと依存関係でコンテキストを拡張、IntermediateData.verifiedPathsに保存。
- 9.UIがevent_emitter.rs経由でworkflow-completedイベントを受信、ファイル選択表示を更新。
- 10.ユーザーがgenerate_implementation_planコマンドを介して選択されたファイルでプラン生成をトリガー。
- 11.desktop/src-tauri/src/jobs/processors/implementation_plan_processor.rsのImplementationPlanProcessorがjob:stream-progressイベントを介してXMLプラン内容をMonacoビューアにストリーミング。
- 12.ユーザーがVirtualizedCodeViewerコンポーネントでプランをレビュー、直接編集またはマージをリクエスト可能。
- 13.承認されたプランがコピーボタンテンプレートを介してターミナルにコピーされるか、外部エージェント用にエクスポート。
- 14.terminal_commands.rsのターミナルセッションがPTY出力をキャプチャし、エージェント注意状態を検出。
- 15.すべてのアーティファクトが監査とセッションリカバリのためにSQLiteのbackground_jobsとterminal_sessionsテーブルに永続化。
ランタイムタイムライン
タスク入力、ワークフローステージ、プラン出力を示すビジュアルタイムライン。
ジョブタイプマッピング
- text_improvement → TextImprovementProcessor → 洗練されたタスク説明
- root_folder_selection → RootFolderSelectionProcessor → 選択されたディレクトリ
- regex_file_filter → RegexFileFilterProcessor → パターンマッチしたファイル
- file_relevance_assessment → FileRelevanceAssessmentProcessor → スコアリングされたファイル
- extended_path_finder → ExtendedPathFinderProcessor → 拡張されたコンテキスト
- implementation_plan → ImplementationPlanProcessor → XML計画ドキュメント
- implementation_plan_merge → ImplementationPlanMergeProcessor → マージされた計画
タスク入力のキャプチャ
タスクは複数の入力サーフェスからシステムに入ります:TaskDescriptionEditorでの入力テキスト、useVoiceTranscriptionフック経由の音声ディクテーション、またはVideoAnalysisDialog経由のビデオ分析。
各入力タイプはSQLiteに保存されるアーティファクトを生成します - sessionsテーブルのtask_description、background_jobsの文字起こし結果、関連するジョブメタデータのビデオフレーム。
入力の洗練
text_improvementジョブタイプはTextImprovementProcessorを通じて生の入力を洗練し、テキストをXMLでラップしてLLMに送信し、文法、明確さ、構造の改善を行います。
洗練されたテキストはbackground_jobs.responseに保存され、Reactプロバイダー経由でsessions.task_descriptionを更新できます。
ファイル検出ワークフロー
FileFinderWorkflowは4つの連続ステージを実行します:root_folder_selectionがディレクトリを絞り込み、regex_file_filterがパターンを適用し、file_relevance_assessmentがコンテンツをスコアリングし、extended_path_finderが依存関係で拡張します。
各ステージは結果をプロセッサ間で渡されるIntermediateData構造体に保存し、最終的なファイル選択はsessions.included_filesに永続化されます。
計画生成
implementation_planジョブタイプはImplementationPlanProcessorを使用して、ファイルパス、操作タイプ、コード変更を含むplan_step要素を持つXMLフォーマットの計画を生成します。
計画コンテンツはjob:stream-progress Tauriイベント経由でUIにストリーミングされ、シンタックスハイライト付きでVirtualizedCodeViewer Monacoコンポーネントに表示されます。
計画のマージ
implementation_plan_mergeジョブはsource_plans XMLタグとユーザー提供のマージ指示を使用して複数の計画を結合し、競合を解決して変更を統合します。
マージされた計画はソース計画へのトレーサビリティを維持し、最終的なbackground_jobsレコードにmerged_fromメタデータを含みます。
計画のレビュー
計画はレビュー用にMonacoベースのVirtualizedCodeViewerで開きます。ユーザーは計画テキストを直接編集し、修正をリクエストし、実行を承認できます。
すべてのレビューアクションはタイムスタンプとユーザーコンテキスト付きでログに記録され、計画の進化の監査証跡を提供します。
実行ハンドオフ
承認された計画はコピーボタンテンプレート経由で統合ターミナルにコピーされるか、Claude Code、Cursor、Codexなどの外部エージェント用にエクスポートされます。
terminal_commands.rsのターミナルセッションはPTY出力をキャプチャし、エージェント注意状態を検出し、すべての実行アクティビティをterminal_sessionsテーブルにログ記録します。
状態の永続化
すべてのジョブアーティファクトはsession_id、task_type、status、prompt、response、トークン数、コスト追跡を含むbackground_jobsテーブルに永続化されます。
アプリ再起動時、RustコアがSQLiteからセッション状態を復元し、古い実行中ジョブを失敗としてマークし、ターミナル出力ログを復元します。