import { execSync } from "node:child_process";

const COMMANDS = [
    "npm run typecheck",
    "npm run phase3:smoke",
    "npm run phase4:smoke",
    "npm run phase5:smoke",
    "npm run phase6:smoke",
    "npm run phase7:smoke",
    "npm run phase8:smoke",
    "npm run phase9:smoke",
    "npm run phase10:smoke",
    "npm run phase11:smoke",
    "npm run phase12:smoke",
    "npm run phase13:smoke",
    "npm run phase14:smoke",
    "npm run phase15:smoke",
    "npm run phase16:smoke",
    "npm run phase17:smoke",
    "npm run phase18:smoke",
    "npm run phase19:smoke",
    "npm run phase20:smoke",
    "npm run phase21:smoke",
    "npm run phase22:smoke",
    "npm run e2e:smoke"
];

function main(): void {
    for (const command of COMMANDS) {
        console.log(`\n=== ${command} ===`);
        execSync(command, {
            cwd: process.cwd(),
            stdio: "inherit",
            env: process.env
        });
    }

    console.log("\nAll regression checks passed.");
}

try {
    main();
} catch (error: unknown) {
    const message = error instanceof Error ? error.message : String(error);
    console.error(`Regression run failed: ${message}`);
    process.exit(1);
}
