/** * Platform detection utilities */ import * as fs from 'fs'; /** * Get the WSL version (1 or 2+) if running in WSL. * Returns undefined if not running in WSL. */ export function getWslVersion() { if (process.platform !== 'linux') { return undefined; } try { const procVersion = fs.readFileSync('/proc/version', { encoding: 'utf8' }); // Check for explicit WSL version markers (e.g., "WSL2", "WSL3", etc.) const wslVersionMatch = procVersion.match(/WSL(\d+)/i); if (wslVersionMatch && wslVersionMatch[1]) { return wslVersionMatch[1]; } // If no explicit WSL version but contains Microsoft, assume WSL1 // This handles the original WSL1 format: "4.4.0-19041-Microsoft" if (procVersion.toLowerCase().includes('microsoft')) { return '1'; } return undefined; } catch { return undefined; } } /** * Detect the current platform. * Note: All Linux including WSL returns 'linux'. Use getWslVersion() to detect WSL1 (unsupported). */ export function getPlatform() { switch (process.platform) { case 'darwin': return 'macos'; case 'linux': // WSL2+ is treated as Linux (same sandboxing) // WSL1 is also returned as 'linux' but will fail isSupportedPlatform check return 'linux'; case 'win32': return 'windows'; default: return 'unknown'; } } //# sourceMappingURL=platform.js.map