/** * llmindex.io — CLI: pnpm duel:run --domain writing --pairs 500 * Author: Simon-Pierre Boucher * Contact: contact@spboucher.ai * License: Proprietary — © Simon-Pierre Boucher, all rights reserved */ import { parseArgs } from 'node:util'; import { prisma } from '@llmindex/db'; import '../env'; import { runDuelBatch } from '../duel-runner'; const { values } = parseArgs({ options: { domain: { type: 'string', default: 'writing' }, pairs: { type: 'string', default: '100' }, seed: { type: 'string' }, }, }); async function main(): Promise { if ( values.domain !== 'writing' && values.domain !== 'safety_refusal_quality' && values.domain !== 'svg_design' ) { console.error('Duel domains: writing | safety_refusal_quality | svg_design'); process.exit(2); } const result = await runDuelBatch({ domain: values.domain, pairs: Number(values.pairs), seed: values.seed, }); console.log(JSON.stringify(result)); } main() .catch((err) => { console.error(String(err)); process.exitCode = 1; }) .finally(() => prisma.$disconnect());