Skip to content

list_files

list_filesツールは指定パスのファイルとディレクトリを表示し、VJSPがプロジェクト構造を理解してコードベースを効率的にナビゲートできるよう支援します。

パラメータ説明

このツールは以下のパラメータ設定をサポートしています:

  • path(必須):一覧表示するディレクトリのパス(現在の作業ディレクトリからの相対パス)
  • recursive(オプション):ファイルを再帰的に一覧表示するかどうか。trueに設定すると再帰的な一覧表示が有効になり、falseを設定するか省略すると最上位レベルのコンテンツのみが表示されます

機能概要

このツールは指定パスのすべてのファイルとディレクトリを一覧表示し、プロジェクト構造を明確に表示できます。最上位ディレクトリのコンテンツのみを表示するモード、またはすべてのサブディレクトリを再帰的に走査してコンテンツを表示するモードの2つをサポートしています。

適用シーン

  • VJSPがプロジェクト全体の構造を理解する必要がある場合
  • VJSPが特定のファイルを読み取る前に、利用可能なファイル一覧を確認する必要がある場合
  • VJSPがコードベースをマッピングして、その組織アーキテクチャをさらに深く理解する必要がある場合
  • read_filesearch_filesなどの精度の高いツールを使用する前の準備操作
  • VJSPがプロジェクト内で特定のタイプのファイル(設定ファイルなど)を検索する必要がある場合

コア機能

  • ファイルとディレクトリを同時に一覧表示し、ディレクトリを明確に識別
  • 再帰的および非再帰的なファイル一覧表示モードをサポート
  • 再帰モードでは、node_modules.gitなどの一般的な大型ディレクトリをインテリジェントに無視
  • 再帰モードでは、.gitignore設定ルールに従う
  • showVJSPIgnoredFilesを有効にすると、.vjspignoreによって無視されたファイルに鍵マーク(🔒)が表示されます
  • レイヤーごとのディレクトリ走査を採用し、ツールのパフォーマンスを最適化
  • 結果をソートし、ディレクトリを内部コンテンツより前に表示して論理階層を維持
  • 整然としたフォーマットで一覧結果を表示
  • プロジェクト構造の論理マッピングを自動的に構築

制限事項

  • パフォーマンス問題を回避するため、ファイル一覧結果はデフォルトで約200個のファイルに制限されます
  • ディレクトリ走査には10秒のタイムアウトメカニズムが設定されており、複雑なディレクトリ構造でプロセスがハングするのを防ぎます
  • ファイル数制限に達すると、特定のサブディレクトリでlist_filesを実行することを提案するプロンプトが表示されます
  • 新しく作成されたファイルが存在するかどうかを検証する検証ツールとしては使用しないでください
  • 非常に大きなディレクトリ構造で実行する場合、パフォーマンスが低下する可能性があります
  • セキュリティ上の理由により、ルートディレクトリまたはユーザーホームディレクトリのファイルを一覧表示することはできません

ワークフロー

list_filesツールを呼び出すと、以下のワークフローが実行されます:

  1. パラメータ検証:必須パラメータpathとオプションパラメータrecursiveの有効性を検証します

  2. パス解決:相対パスを絶対パスに解決します

  3. セキュリティ検証:ルートディレクトリ、ユーザーホームディレクトリなどの機密パスのファイル一覧表示を禁止します

  4. ディレクトリ走査

    • 非再帰モード:ディレクトリの最上位レベルのコンテンツのみを表示
    • 再帰モード:ディレクトリ構造をレイヤーごとに走査し、10秒のタイムアウトを設定
    • タイムアウトがトリガーされた場合、タイムアウトまでに収集された部分的な結果を返します
  5. 結果フィルタリング

    • 再帰モードでは、node_modules.gitなどの一般的な大型ディレクトリをスキップ
    • 再帰モードでは、.gitignore設定ルールに従う
    • .vjspignoreのフィルタリングルールを解析し、一致するファイルに対して非表示または鍵マーク操作を実行
  6. 結果フォーマット

    • ディレクトリに末尾のスラッシュ(/)を追加して識別
    • 結果をソートし、ディレクトリを内部コンテンツより前に表示して論理階層を保証
    • showVJSPIgnoredが有効な場合、無視されたファイルに鍵マーク(🔒)を表示
    • デフォルトで結果を200個のファイルに制限しながら、個別のサブディレクトリクエリのプロンプトを提供
    • 結果を整然とフォーマットして可読性を向上

結果表示フォーマット

ファイル一覧結果は以下の仕様に従います:

  • 各ファイルパスは別の行に表示されます
  • ディレクトリは末尾のスラッシュ(/)で識別されます
  • showVJSPIgnoredが有効な場合、.vjspignoreによって無視されたファイルには鍵マーク(🔒)が表示されます
  • 結果は論理的にソートされ、ディレクトリは内部コンテンツより前に表示されます
  • ファイル数制限に達すると、特定のサブディレクトリでlist_filesを実行することを提案するプロンプトが表示されます

結果表示の例:

src/
src/components/
src/components/Button.tsx
src/components/Header.tsx
src/utils/
src/utils/helpers.ts
src/index.ts
...
ファイル一覧結果が切り捨てられました(計543個のファイル、現在200個を表示)。完全なコンテンツを表示するには、特定のサブディレクトリでlist_filesを実行してください。

.vjspignoreが有効でshowVJSPIgnoredがオンの場合の表示例:

src/
src/components/
src/components/Button.tsx
src/components/Header.tsx
🔒 src/secrets.json
src/utils/
src/utils/helpers.ts
src/index.ts

実際の応用シーン

  • 新しいタスクを開始する際、VJSPは最初にプロジェクトファイルを一覧表示し、全体的な構造を理解してから、特定のコードを深く処理します
  • 特定のタイプのファイル(すべてのJavaScriptファイルなど)を検索する指示を受け取った場合、VJSPは最初にディレクトリを一覧表示して検索範囲を決定します
  • コード組織の最適化提案を提供する前に、VJSPは現在のプロジェクトの構造レイアウトを分析します
  • 新しい機能モジュールを構築する際、VJSPは関連するディレクトリを一覧表示し、プロジェクトの開発標準に適合させます

使用例

現在のディレクトリの最上位レベルのファイルを一覧表示:

<list_files>
<path>.</path>
</list_files>

ソースディレクトリのすべてのファイルを再帰的に一覧表示:

<list_files>
<path>src</path>
<recursive>true</recursive>
</list_files>

プロジェクトの特定のサブディレクトリのコンテンツを表示:

<list_files>
<path>src/components</path>
<recursive>false</recursive>
</list_files>