// ── Python Runner ────────────────────────────────────────────────── // Detects the system's Python executable (python vs python3) and runs // a given script with arguments. Used by the dev:browser-use npm script. // Avoids shell:true — spawns Python directly with its full path. // Cross-platform: uses where (Windows) or which (Linux/Mac). import { execSync, spawn } from "node:child_process" import { platform } from "node:os" function detectPython() { const candidates = platform() === "win32" ? ["python", "python3"] : ["python3", "python"] for (const cmd of candidates) { try { const out = execSync(platform() === "win32" ? `where ${cmd}` : `which ${cmd}`, { encoding: "utf8", timeout: 5000 }) const path = out.trim().split("\n")[0].replace(/\r$/, "") if (path) return path } catch {} } console.error("Python not found. Install Python 3 from https://python.org") process.exit(1) } const PYTHON = detectPython() const script = process.argv[2] const args = process.argv.slice(3) if (!script) { console.error("Usage: node run-python.mjs