import { execFile } from "node:child_process"; const TIMEOUT_MS = 15_000; const MAX_BUFFER = 10 * 1024 * 1024; // 10MB export function execAppleScript(script: string): Promise { return new Promise((resolve, reject) => { execFile( "osascript", ["-e", script], { timeout: TIMEOUT_MS, maxBuffer: MAX_BUFFER }, (err, stdout, stderr) => { if (err) { reject(new Error(`AppleScript failed: ${err.message}\n${stderr}`)); } else { resolve(stdout); } }, ); }); }