import { Title } from "@solidjs/meta" import { A, createAsync, query } from "@solidjs/router" import { createMemo, For, Show } from "solid-js" import { Database, desc } from "@opencode-ai/console-core/drizzle/index.js" import { BenchmarkTable } from "@opencode-ai/console-core/schema/benchmark.sql.js" interface BenchmarkResult { averageScore: number tasks: { averageScore: number; task: { id: string } }[] } async function getBenchmarks() { "use server" const rows = await Database.use((tx) => tx.select().from(BenchmarkTable).orderBy(desc(BenchmarkTable.timeCreated)).limit(100), ) return rows.map((row) => { const parsed = JSON.parse(row.result) as BenchmarkResult const taskScores: Record = {} for (const t of parsed.tasks) { taskScores[t.task.id] = t.averageScore } return { id: row.id, agent: row.agent, model: row.model, averageScore: parsed.averageScore, taskScores, } }) } const queryBenchmarks = query(getBenchmarks, "benchmarks.list") export default function Bench() { const benchmarks = createAsync(() => queryBenchmarks()) const taskIds = createMemo(() => { const ids = new Set() for (const row of benchmarks() ?? []) { for (const id of Object.keys(row.taskScores)) { ids.add(id) } } return [...ids].sort() }) return (
Benchmark

Benchmarks

{(id) => } {(row) => ( {(id) => ( )} )}
Agent Model Score {id}
{row.agent} {row.model} {row.averageScore.toFixed(3)} {row.taskScores[id]?.toFixed(3)}
) }