Files
clawX/harness/src/profiles.mjs
2026-05-01 00:22:30 +08:00

30 lines
994 B
JavaScript

export const PROFILES = {
fast: [
{ name: 'Generate extension bridge', command: 'pnpm', args: ['run', 'ext:bridge'] },
{ name: 'Lint without autofix', command: 'pnpm', args: ['run', 'lint:check'] },
{ name: 'Typecheck', command: 'pnpm', args: ['run', 'typecheck'] },
{ name: 'Unit tests', command: 'pnpm', args: ['test'] },
],
comms: [
{ name: 'Comms replay', command: 'pnpm', args: ['run', 'comms:replay'] },
{ name: 'Comms compare', command: 'pnpm', args: ['run', 'comms:compare'] },
],
e2e: [
{ name: 'Electron E2E', command: 'pnpm', args: ['run', 'test:e2e'] },
],
};
export function selectSteps(requiredProfiles) {
const selected = [];
const seen = new Set();
for (const profile of requiredProfiles) {
for (const step of PROFILES[profile] ?? []) {
const key = `${step.command} ${step.args.join(' ')}`;
if (seen.has(key)) continue;
seen.add(key);
selected.push({ profile, ...step });
}
}
return selected;
}