mirror of
https://github.com/hanzo-apps/hanzo.ai.git
synced 2026-10-29 07:20:43 +00:00
Sixteen tasks fixed on 2026-10-15, Kai beside Jev on each: the eleven harness suites Kai leads, choices of 16 and 77 options, the same request three times, false alarms on real benign prompts, and cost and deployment. Each row names the research runs it reads by id, its public dataset, and the hanzoai/benchmarks folder that re-runs it; one line under the board links decision/SUITE.md. A row whose runs are not yet public prints "pending" and holds the count back, so "16 of 16" is stated only once every row holds both figures. Under the title, the owner's note: the frozen 12-suite harness, including the row Jev leads, is below, and that board now prints all twelve suites. lib/api/research reads GET /v1/research/runs?org=hanzo through lib/api/read; useKai derives the boards from it and every section draws reading, the figures, or unreachable, with no snapshot standing in. The cost row is GET /v1/models. /kai leads under its hero with the suite's own rows as headlines. The gates serve the runs and an invented model list, read the pending, loading and unreachable states, and hold the export to carrying no Kai figure.
24 lines
1009 B
TypeScript
24 lines
1009 B
TypeScript
'use client'
|
|
|
|
import { useMemo } from 'react'
|
|
import { Unreachable } from '@/lib/api/read'
|
|
import { RESEARCH, runs } from '@/lib/api/research'
|
|
import { useReading, type Reading } from '@/lib/api/use'
|
|
import { derive, type Kai } from '@/lib/kai'
|
|
|
|
/**
|
|
* Kai's boards and claims, derived from the research API's runs as the page
|
|
* reads them (lib/api/research): loading, then ready, or unreachable. Nothing
|
|
* stands in while they are read, and no earlier answer is shown when they are
|
|
* not; a read that holds no Kai harness run has nothing to draw and says so.
|
|
* A module that imports React cannot sit in lib/kai, which scripts read too.
|
|
*/
|
|
export function useKai(): Reading<Kai> {
|
|
const reading = useReading(runs)
|
|
return useMemo((): Reading<Kai> => {
|
|
if (reading.state !== 'ready') return reading
|
|
const kai = derive(reading.data)
|
|
return kai ? { state: 'ready', data: kai } : { state: 'unreachable', error: new Unreachable(RESEARCH, 'no Kai run on the frozen harness') }
|
|
}, [reading])
|
|
}
|