import fs from 'fs-extra'; import path from 'path'; import inquirer from 'inquirer'; import { execSync } from 'child_process'; import { fileURLToPath } from 'url'; const __filename = fileURLToPath(import.meta.url); const __dirname = path.dirname(__filename); const rootDir = path.resolve(__dirname, '..', '..'); const packageJsonPath = path.join(rootDir, 'package.json'); export const runRootScript = async (scriptArg) => { const pkg = await fs.readJson(packageJsonPath); const scripts = pkg.scripts || {}; let script = scriptArg; if (!script) { const { selected } = await inquirer.prompt([{ type: 'list', name: 'selected', message: 'Select a script to run:', choices: Object.keys(scripts) }]); script = selected; } if (!scripts[script]) { console.error(`❌ Script "${script}" not found in package.json`); process.exit(1); } try { execSync(`npm run ${script}`, { stdio: 'inherit', cwd: rootDir }); } catch (err) { console.error(`❌ Failed to run script "${script}"`); process.exit(1); } }