namespace MCPForUnity.Editor.Services { /// /// Service for resolving paths to required tools and supporting user overrides /// public interface IPathResolverService { /// /// Gets the uvx package manager path (respects override if set) /// /// Path to the uvx executable, or null if not found string GetUvxPath(); /// /// Gets the Claude CLI path (respects override if set) /// /// Path to the claude executable, or null if not found string GetClaudeCliPath(); /// /// Checks if Python is detected on the system /// /// True if Python is found bool IsPythonDetected(); /// /// Checks if Claude CLI is detected on the system /// /// True if Claude CLI is found bool IsClaudeCliDetected(); /// /// Sets an override for the uvx path /// /// Path to override with void SetUvxPathOverride(string path); /// /// Sets an override for the Claude CLI path /// /// Path to override with void SetClaudeCliPathOverride(string path); /// /// Clears the uvx path override /// void ClearUvxPathOverride(); /// /// Clears the Claude CLI path override /// void ClearClaudeCliPathOverride(); /// /// Gets whether a uvx path override is active /// bool HasUvxPathOverride { get; } /// /// Gets whether a Claude CLI path override is active /// bool HasClaudeCliPathOverride { get; } /// /// Gets whether the uvx path used a fallback from override to system path /// bool HasUvxPathFallback { get; } /// /// Validates the provided uv executable by running "--version" and parsing the output. /// /// Absolute or relative path to the uv/uvx executable. /// Parsed version string if successful. /// True when the executable runs and returns a uv version string. bool TryValidateUvxExecutable(string uvPath, out string version); } }