Roo-Code/packages/evals/src/cli/index.ts
Chris Estreich 424bce6078
Add an option to use our cli for evals (#10456)
Co-authored-by: Roo Code <roomote@roocode.com>
2026-01-05 11:33:19 -08:00

55 lines
1.4 KiB
TypeScript

import * as fs from "fs"
import { run, command, option, flag, number, boolean } from "cmd-ts"
import { EVALS_REPO_PATH } from "../exercises/index.js"
import { runCi } from "./runCi.js"
import { runEvals } from "./runEvals.js"
import { processTask } from "./processTask.js"
const main = async () => {
await run(
command({
name: "cli",
description: "Execute an eval run.",
version: "0.0.0",
args: {
ci: flag({ type: boolean, long: "ci", defaultValue: () => false }),
runId: option({ type: number, long: "runId", short: "r", defaultValue: () => -1 }),
taskId: option({ type: number, long: "taskId", short: "t", defaultValue: () => -1 }),
},
handler: async (args) => {
const { runId, taskId, ci } = args
try {
if (ci) {
await runCi({ concurrency: 3, exercisesPerLanguage: 5 })
} else if (runId !== -1) {
await runEvals(runId)
} else if (taskId !== -1) {
await processTask({ taskId, jobToken: process.env.ROO_CODE_CLOUD_TOKEN || null })
} else {
throw new Error("Either runId or taskId must be provided.")
}
} catch (error) {
console.error(error)
process.exit(1)
}
},
}),
process.argv.slice(2),
)
process.exit(0)
}
if (!fs.existsSync(EVALS_REPO_PATH)) {
console.error(
`Exercises do not exist at ${EVALS_REPO_PATH}. Please run "git clone https://github.com/RooCodeInc/Roo-Code-Evals.git evals".`,
)
process.exit(1)
}
main()