Daemon @extension メンションサポート
目標
Daemon WebShell は、アクティブな拡張機能に対する CLI のメンション動作と一致する必要があります。ユーザーは @ 補完からアクティブな拡張機能を発見し、標準の @ext:<name> メンションを選択することで、表示上のプロンプトテキストを変更せずに、daemon がその拡張機能のコンテキストをモデルのターンに注入できるようになります。
設計
- WebShell の
@補完は、ワークスペース拡張機能ステータスからのアクティブな拡張機能エントリと、既存のワークスペースファイルのマッチ結果を組み合わせます。@単体では拡張機能が最初に表示され、@broは拡張機能とファイルをフィルタリングし、@ext:は拡張機能のみの補完に切り替わります。 - 拡張機能の補完では
@ext:<extension.name>が挿入されるため、daemon は表示テキストに依存しない安定した参照を受け取れます。 - Daemon の拡張機能ステータスには、インストール済み拡張機能のコンフィグから設定されるオプションの
descriptionフィールドが含まれます。古いクライアントにとっては、このフィールドは追加情報となります。 - ACP セッションのプロンプト解決では、テキストプロンプトブロック内の
@ext:<name>トークンをスキャンし、セッションコンフィグ内のアクティブな拡張機能のみとマッチングします。また、重複するメンションを排除し、不明または非アクティブな名前はサイレントにスキップします。 - ユーザーに表示されるテキストは完全に保持されます。解決された拡張機能のコンテキストは、ユーザーのテキストの後に追加のモデルテキストパーツとして追加されます。
- CLI と daemon は、解析、表示テキストのサニタイズ、機能のフォーマット、およびサブパスとサイズ制限によるコンテキストファイルの読み取りを行うための、拡張機能メンション用ヘルパーを共有します。
制限事項
コンテキストファイルの読み取りは、ファイルごと、および拡張機能コンテキストの合計予算によって制限されます。インストール済み拡張機能ディレクトリ外のファイルはスキップされ、読み取り不能なファイルはデバッグ出力を伴ってスキップされます。また、重複するメンションによる予算の消費は1回のみです。
検証
対象のテストでは、WebShell の補完モード、daemon による ACP コンテキストの注入、重複および不明なメンション、制限付きコンテキストファイル、および既存の CLI 拡張機能メンションプロセッサをカバーしています。最終検証では、リポジトリのビルドと型チェックを実行します。
Last updated on