import * as React from "react"; import { api } from "@/src/utils/api"; import { useRouter } from "next/router"; import EvalLogTable from "@/src/features/evals/components/eval-log"; import { StatusBadge } from "@/src/components/layouts/status-badge"; import { DetailPageNav } from "@/src/features/navigate-detail-pages/DetailPageNav"; import Page from "@/src/components/layouts/page"; import { LevelCountsDisplay } from "@/src/components/level-counts-display"; import { type JobExecutionState, generateJobExecutionCounts, } from "@/src/features/evals/utils/job-execution-utils"; const JobExecutionCounts = ({ jobExecutionsByState, }: { jobExecutionsByState?: JobExecutionState[]; }) => { if (!jobExecutionsByState || jobExecutionsByState.length === 0) { return null; } const counts = generateJobExecutionCounts(jobExecutionsByState); return ; }; export const EvaluatorDetail = () => { const router = useRouter(); const projectId = router.query.projectId as string; const evaluatorId = router.query.evaluatorId as string; // get the current template by id const evaluator = api.evals.configById.useQuery({ projectId: projectId, id: evaluatorId, }); // get all templates for the current template name const allTemplates = api.evals.allTemplatesForName.useQuery( { projectId: projectId, name: evaluator.data?.evalTemplate?.name ?? "", }, { enabled: !evaluator.isPending && !evaluator.isError, }, ); if ( evaluator.isPending || !evaluator.data || allTemplates.isLoading || !allTemplates.data ) { return
Loading...
; } if (evaluator.data && evaluator.data.evalTemplate === null) { return
Evaluator not found
; } const existingEvaluator = evaluator.data && evaluator.data.evalTemplate ? { ...evaluator.data, evalTemplate: evaluator.data.evalTemplate, } : undefined; return ( {evaluator.data?.jobExecutionsByState && (
)} {evaluator.data && ( `/project/${projectId}/evals/${encodeURIComponent(entry.id)}` } listKey="evals" /> )} ), }} > {existingEvaluator && (
)}
); };