using System.Collections.Generic; using System.IO; using System.Linq; using UnityEngine; namespace LLM.Editor.Analysis { /// /// Provides information about the project's directory structure. /// Can list directories at the root or the contents of a specific folder. /// public class DirectoryStructureProvider : IContextProvider { public class DirectoryContents { public List directories; public List files; } public object GetContext(Object target, string qualifier) { var rootPath = Application.dataPath; var searchPath = rootPath; if (!string.IsNullOrEmpty(qualifier)) { searchPath = Path.Combine(rootPath, qualifier); } if (!Directory.Exists(searchPath)) { return $"Error: Directory does not exist at path: '{qualifier}'"; } try { var result = new DirectoryContents { directories = Directory.GetDirectories(searchPath).Select(Path.GetFileName).ToList(), files = Directory.GetFiles(searchPath).Select(Path.GetFileName).Where(f => !f.EndsWith(".meta")).ToList() }; return result; } catch (System.Exception e) { return $"Error reading directory contents for '{qualifier}': {e.Message}"; } } } }