1// List/remove leaked bench sandboxes. Every VM the skill's scripts2// create is named sbench-* and tagged purpose=sandbox-bench; the3// harnesses remove their VMs in finally blocks, but a killed local4// process leaks them until their timeout.5//6// The project may be shared, so removal is deliberately conservative:7// a VM is only listed when its name matches, its tag matches, AND it is8// older than --min-age-hours (default 3 — longer than any healthy run),9// and removal is per exact listed name.10//11// node sandbox-sweep.mjs # list what would be removed12// node sandbox-sweep.mjs --yes # remove13// node sandbox-sweep.mjs --min-age-hours 0 # include fresh VMs (danger:14