mirror of
https://github.com/RooVetGit/Roo-Code.git
synced 2026-09-06 08:18:39 +00:00
Fix task creation in the "full" suite case
This commit is contained in:
parent
6e73aaf603
commit
e9fadc7cb1
8 changed files with 29 additions and 10 deletions
|
|
@ -52,15 +52,14 @@ const run = async (toolbox: GluegunToolbox) => {
|
|||
if (language === "all") {
|
||||
for (const language of languages) {
|
||||
const exercises = getExercises()[language as Language]
|
||||
await pMap(exercises, async (exercise) => createTask({ runId: run.id, language, exercise }), {
|
||||
|
||||
await pMap(exercises, (exercise) => createTask({ runId: run.id, language, exercise }), {
|
||||
concurrency: 10,
|
||||
})
|
||||
}
|
||||
} else if (exercise === "all") {
|
||||
const exercises = getExercises()[language as Language]
|
||||
await pMap(exercises, async (exercise) => createTask({ runId: run.id, language, exercise }), {
|
||||
concurrency: 10,
|
||||
})
|
||||
await pMap(exercises, (exercise) => createTask({ runId: run.id, language, exercise }), { concurrency: 10 })
|
||||
} else {
|
||||
language = language || (await askLanguage(prompt))
|
||||
exercise = exercise || (await askExercise(prompt, language))
|
||||
|
|
|
|||
|
|
@ -30,6 +30,7 @@
|
|||
"lucide-react": "^0.479.0",
|
||||
"next": "15.2.2",
|
||||
"next-themes": "^0.4.6",
|
||||
"p-map": "^7.0.3",
|
||||
"react": "^19.0.0",
|
||||
"react-dom": "^19.0.0",
|
||||
"react-hook-form": "^7.54.2",
|
||||
|
|
|
|||
|
|
@ -24,7 +24,7 @@ export default function RootLayout({
|
|||
<ThemeProvider attribute="class" defaultTheme="system" enableSystem disableTransitionOnChange>
|
||||
<ReactQueryProvider>
|
||||
<Header />
|
||||
<div className="max-w-3xl mx-auto">{children}</div>
|
||||
<div className="max-w-3xl mx-auto pb-12">{children}</div>
|
||||
</ReactQueryProvider>
|
||||
</ThemeProvider>
|
||||
</body>
|
||||
|
|
|
|||
|
|
@ -12,9 +12,11 @@ export const TaskStatus = ({ task, runningTaskId }: TaskStatusProps) => {
|
|||
<LoaderCircle className="size-4 animate-spin" />
|
||||
) : !task.finishedAt ? (
|
||||
<CircleDashed className="size-4" />
|
||||
) : !task.passed ? (
|
||||
) : task.passed === false ? (
|
||||
<CircleSlash className="size-4 text-destructive" />
|
||||
) : (
|
||||
) : task.passed === true ? (
|
||||
<CircleCheck className="size-4 text-green-500" />
|
||||
) : (
|
||||
<LoaderCircle className="size-4 animate-spin" />
|
||||
)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -15,6 +15,7 @@ export const useRunStatus = (run: Run) => {
|
|||
queryKey: ["run", run.id, runningTaskId],
|
||||
queryFn: async () => getTasks(run.id),
|
||||
placeholderData: keepPreviousData,
|
||||
refetchInterval: 10_000,
|
||||
})
|
||||
|
||||
const url = `/api/runs/${run.id}/stream`
|
||||
|
|
|
|||
|
|
@ -4,11 +4,11 @@ import * as fs from "fs/promises"
|
|||
import * as path from "path"
|
||||
import { fileURLToPath } from "url"
|
||||
|
||||
import { languages } from "@benchmark/types"
|
||||
import { Language, languages } from "@benchmark/types"
|
||||
|
||||
const __dirname = path.dirname(fileURLToPath(import.meta.url))
|
||||
|
||||
const listDirectories = async (relativePath: string) => {
|
||||
export const listDirectories = async (relativePath: string) => {
|
||||
try {
|
||||
const targetPath = path.resolve(__dirname, relativePath)
|
||||
const entries = await fs.readdir(targetPath, { withFileTypes: true })
|
||||
|
|
@ -33,3 +33,6 @@ export const getExercises = async () => {
|
|||
|
||||
return result.flat()
|
||||
}
|
||||
|
||||
export const getExercisesForLanguage = async (language: Language) =>
|
||||
listDirectories(path.join(EXERCISES_BASE_PATH, language))
|
||||
|
|
|
|||
|
|
@ -5,11 +5,13 @@ import path from "path"
|
|||
import os from "os"
|
||||
|
||||
import { revalidatePath } from "next/cache"
|
||||
import pMap from "p-map"
|
||||
|
||||
import { Language } from "@benchmark/types"
|
||||
import { Language, languages } from "@benchmark/types"
|
||||
import * as db from "@benchmark/db"
|
||||
|
||||
import { CreateRun } from "@/lib/schemas"
|
||||
import { getExercisesForLanguage } from "./exercises"
|
||||
|
||||
export async function createRun({ suite, exercises = [], ...values }: CreateRun) {
|
||||
const run = await db.createRun({
|
||||
|
|
@ -27,6 +29,14 @@ export async function createRun({ suite, exercises = [], ...values }: CreateRun)
|
|||
|
||||
await db.createTask({ ...values, runId: run.id, language: language as Language, exercise })
|
||||
}
|
||||
} else {
|
||||
for (const language of languages) {
|
||||
const exercises = await getExercisesForLanguage(language)
|
||||
|
||||
await pMap(exercises, (exercise) => db.createTask({ ...values, runId: run.id, language, exercise }), {
|
||||
concurrency: 10,
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
revalidatePath("/runs")
|
||||
|
|
|
|||
3
benchmark/pnpm-lock.yaml
generated
3
benchmark/pnpm-lock.yaml
generated
|
|
@ -129,6 +129,9 @@ importers:
|
|||
next-themes:
|
||||
specifier: ^0.4.6
|
||||
version: 0.4.6(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
|
||||
p-map:
|
||||
specifier: ^7.0.3
|
||||
version: 7.0.3
|
||||
react:
|
||||
specifier: ^19.0.0
|
||||
version: 19.0.0
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue