From 39b300e82d8414e437115082e9652d34cc247b57 Mon Sep 17 00:00:00 2001 From: cte Date: Sat, 22 Mar 2025 02:01:11 -0700 Subject: [PATCH] More progress --- benchmark/apps/cli/package.json | 1 + benchmark/apps/cli/src/exercises.ts | 2 +- benchmark/apps/cli/src/index.ts | 5 +- benchmark/apps/web/package.json | 6 + .../apps/web/src/app/runs/new/new-run.tsx | 43 ++ .../apps/web/src/components/ui/badge.tsx | 36 ++ .../apps/web/src/components/ui/command.tsx | 134 +++++ .../apps/web/src/components/ui/dialog.tsx | 110 ++++ benchmark/apps/web/src/components/ui/index.ts | 7 + .../apps/web/src/components/ui/label.tsx | 2 +- .../web/src/components/ui/multi-select.tsx | 264 +++++++++ .../apps/web/src/components/ui/popover.tsx | 42 ++ .../apps/web/src/components/ui/separator.tsx | 28 + benchmark/apps/web/src/components/ui/tabs.tsx | 122 ++++ benchmark/packages/db/package.json | 5 +- benchmark/packages/db/src/db.ts | 5 +- benchmark/packages/db/src/index.ts | 14 - benchmark/packages/db/src/queries/tasks.ts | 3 +- benchmark/packages/db/src/schema.ts | 2 +- benchmark/packages/db/tsup.config.ts | 28 +- benchmark/packages/ipc/package.json | 4 +- benchmark/packages/ipc/src/index.ts | 2 +- benchmark/packages/ipc/tsup.config.ts | 30 +- benchmark/packages/lib/eslint.config.mjs | 4 + benchmark/packages/lib/package.json | 24 + benchmark/packages/lib/src/index.ts | 1 + benchmark/packages/lib/tsconfig.cjs.json | 8 + benchmark/packages/lib/tsconfig.json | 5 + benchmark/packages/lib/tsup.config.ts | 21 + benchmark/packages/runner/src/index.ts | 43 +- benchmark/packages/types/eslint.config.mjs | 4 + benchmark/packages/types/package.json | 24 + .../{db/src/enums.ts => types/src/index.ts} | 0 benchmark/packages/types/tsconfig.cjs.json | 8 + benchmark/packages/types/tsconfig.json | 5 + benchmark/packages/types/tsup.config.ts | 21 + benchmark/pnpm-lock.yaml | 552 ++++++++++++++++++ benchmark/turbo.json | 2 - 38 files changed, 1548 insertions(+), 69 deletions(-) create mode 100644 benchmark/apps/web/src/components/ui/badge.tsx create mode 100644 benchmark/apps/web/src/components/ui/command.tsx create mode 100644 benchmark/apps/web/src/components/ui/dialog.tsx create mode 100644 benchmark/apps/web/src/components/ui/multi-select.tsx create mode 100644 benchmark/apps/web/src/components/ui/popover.tsx create mode 100644 benchmark/apps/web/src/components/ui/separator.tsx create mode 100644 benchmark/apps/web/src/components/ui/tabs.tsx create mode 100644 benchmark/packages/lib/eslint.config.mjs create mode 100644 benchmark/packages/lib/package.json create mode 100644 benchmark/packages/lib/src/index.ts create mode 100644 benchmark/packages/lib/tsconfig.cjs.json create mode 100644 benchmark/packages/lib/tsconfig.json create mode 100644 benchmark/packages/lib/tsup.config.ts create mode 100644 benchmark/packages/types/eslint.config.mjs create mode 100644 benchmark/packages/types/package.json rename benchmark/packages/{db/src/enums.ts => types/src/index.ts} (100%) create mode 100644 benchmark/packages/types/tsconfig.cjs.json create mode 100644 benchmark/packages/types/tsconfig.json create mode 100644 benchmark/packages/types/tsup.config.ts diff --git a/benchmark/apps/cli/package.json b/benchmark/apps/cli/package.json index 686f5b5e9d..87656318bc 100644 --- a/benchmark/apps/cli/package.json +++ b/benchmark/apps/cli/package.json @@ -10,6 +10,7 @@ }, "dependencies": { "@benchmark/db": "workspace:^", + "@benchmark/types": "workspace:^", "@vscode/test-electron": "^2.4.0", "gluegun": "^5.1.2", "p-map": "^7.0.3" diff --git a/benchmark/apps/cli/src/exercises.ts b/benchmark/apps/cli/src/exercises.ts index e1a76ab198..8f2aabff0d 100644 --- a/benchmark/apps/cli/src/exercises.ts +++ b/benchmark/apps/cli/src/exercises.ts @@ -3,7 +3,7 @@ import * as fs from "fs" import { filesystem } from "gluegun" -import { type Language, languages } from "@benchmark/db" +import { type Language, languages } from "@benchmark/types" import { exercisesPath } from "./paths.js" diff --git a/benchmark/apps/cli/src/index.ts b/benchmark/apps/cli/src/index.ts index 3ddc110df6..e6db9dfdd6 100644 --- a/benchmark/apps/cli/src/index.ts +++ b/benchmark/apps/cli/src/index.ts @@ -6,7 +6,8 @@ import pMap from "p-map" import { build, filesystem, GluegunPrompt, GluegunToolbox } from "gluegun" import { runTests } from "@vscode/test-electron" -import { type Language, languages, type Run, findRun, createRun, getTask, createTask, Task } from "@benchmark/db" +import { type Language, languages } from "@benchmark/types" +import { type Run, findRun, createRun, getTask, createTask, Task } from "@benchmark/db" import { __dirname, extensionDevelopmentPath, extensionTestsPath, exercisesPath } from "./paths.js" import { getExercises } from "./exercises.js" @@ -99,8 +100,6 @@ const runExercise = async ({ run, task }: { run: Run; task: Task }) => { launchArgs: [workspacePath, "--disable-extensions"], extensionTestsEnv: { TASK_ID: task.id.toString(), - LANGUAGE: language, - EXERCISE: exercise, PROMPT_PATH: promptPath, WORKSPACE_PATH: workspacePath, OPENROUTER_MODEL_ID: run.model, diff --git a/benchmark/apps/web/package.json b/benchmark/apps/web/package.json index da27e02e8b..d47b35f1fe 100644 --- a/benchmark/apps/web/package.json +++ b/benchmark/apps/web/package.json @@ -12,14 +12,20 @@ "dependencies": { "@benchmark/db": "workspace:^", "@benchmark/ipc": "workspace:^", + "@benchmark/types": "workspace:^", "@hookform/resolvers": "^4.1.3", + "@radix-ui/react-dialog": "^1.1.6", "@radix-ui/react-label": "^2.1.2", + "@radix-ui/react-popover": "^1.1.6", "@radix-ui/react-scroll-area": "^1.2.3", "@radix-ui/react-select": "^2.1.6", + "@radix-ui/react-separator": "^1.1.2", "@radix-ui/react-slot": "^1.1.2", + "@radix-ui/react-tabs": "^1.1.3", "@tanstack/react-query": "^5.69.0", "class-variance-authority": "^0.7.1", "clsx": "^2.1.1", + "cmdk": "1.0.0", "lucide-react": "^0.479.0", "next": "15.2.2", "next-themes": "^0.4.6", diff --git a/benchmark/apps/web/src/app/runs/new/new-run.tsx b/benchmark/apps/web/src/app/runs/new/new-run.tsx index 71e67eaecd..9dd23aedfb 100644 --- a/benchmark/apps/web/src/app/runs/new/new-run.tsx +++ b/benchmark/apps/web/src/app/runs/new/new-run.tsx @@ -7,6 +7,8 @@ import { zodResolver } from "@hookform/resolvers/zod" import { z } from "zod" import { X, Loader2, Rocket } from "lucide-react" +import { languages } from "@benchmark/types" + import { useOpenRouterModels } from "@/hooks/use-open-router-models" import { Button, @@ -15,15 +17,22 @@ import { FormItem, FormLabel, FormMessage, + FormDescription, Select, SelectContent, SelectItem, SelectTrigger, SelectValue, Textarea, + Tabs, + TabsContent, + TabsList, + TabsTrigger, + MultiSelect, } from "@/components/ui" import { createRun } from "./actions" +import { cn } from "@/lib/utils" const formSchema = z.object({ model: z.string(), @@ -56,6 +65,9 @@ export function NewRun() { } } + const [selectedSuite, setSelectedSuite] = useState<"full" | "partial">("full") + const [selectedExercises, setSelectedExercises] = useState([]) + return ( <> @@ -92,6 +104,36 @@ export function NewRun() { )} /> + + + Exercise Suite + setSelectedSuite(value as "full" | "partial")}> + + Full + Partial + + + + + {selectedSuite === "partial" && ( + + Exercises + ({ + value: language, + label: language, + }))} + onValueChange={setSelectedExercises} + defaultValue={selectedExercises} + placeholder="Select" + variant="inverted" + maxCount={10} + /> + + )} + )} /> +