import { build } from 'esbuild' import { spawnSync } from 'node:child_process' const tests = [ 'prompt-queue-regression.ts', 'prompt-queue-adversarial-regression.ts', 'input-composition-regression.ts', 'capability-picker-regression.tsx', 'request-settings-regression.ts', 'context-usage-regression.ts', 'claude-capabilities-regression.ts' ] const directory = '.tmp/composer-capabilities-tests' await build({ entryPoints: tests.map(file => `scripts/${file}`), outdir: directory, outExtension: { '.js': '.mjs' }, bundle: true, platform: 'node', format: 'esm', packages: 'external', jsx: 'automatic', loader: { '.css': 'empty' }, logLevel: 'warning' }) for (const file of tests) { const result = spawnSync(process.execPath, [`${directory}/${file.replace(/\.tsx?$/, '.mjs')}`], { stdio: 'inherit', windowsHide: true, timeout: 120000 }) if (result.error) throw result.error if (result.status !== 0) process.exit(result.status ?? 1) }