mirror of
https://github.com/hanzo-apps/hanzo.ai.git
synced 2026-10-29 07:20:43 +00:00
zen-image, zen-voice, zen-music, zen-video and zen-rerank have no account behind them: /v1/models lists none, and a call answers 404 or 500. llms.txt offered them, the models page featured zen-image and the lineup counted zen-rerank as served.
195 lines
5.7 KiB
TypeScript
195 lines
5.7 KiB
TypeScript
/**
|
|
* The Zen lineage, said once and drawn from here.
|
|
*
|
|
* Which generation answers is lib/zen's `NOW`. This file is the history, and
|
|
* the ids the gateway listed on 2026-10-09 (`GET /v1/models`, 17 `zen*` ids;
|
|
* `hanzo/zen` was in the index and 404 on its own URL, so it is not here).
|
|
* An id outside `SERVED` is left off the page rather than drawn as callable.
|
|
* Re-check the gateway before trusting this list.
|
|
*
|
|
* Zen 5.8 is the serving bridge in the family record. The gateway did not
|
|
* list it on that read, and its model pages forward away, so the page says
|
|
* so and does not offer it as an id to call.
|
|
*/
|
|
import { FLASH, NEXT, NOW } from '@/lib/zen'
|
|
|
|
export type GenStatus =
|
|
| 'Historical'
|
|
| 'Open weights'
|
|
| 'Retired'
|
|
| 'Shipped'
|
|
| 'Served only'
|
|
| 'Current'
|
|
| 'Research preview'
|
|
|
|
export type FigureKind = 'dense' | 'wide' | 'branch' | 'sparse' | 'paths' | 'bridge' | 'practical' | 'research'
|
|
|
|
export interface GenRef {
|
|
label: string
|
|
href: string
|
|
}
|
|
|
|
export interface GenerationStep {
|
|
id: string
|
|
/** The numeral on the rail. `5.8` is the bridge, not a full generation. */
|
|
mark: string
|
|
name: string
|
|
period: string
|
|
status: GenStatus
|
|
theme: string
|
|
summary: string
|
|
/** What the diagram is, in words. */
|
|
shape: string
|
|
figure: FigureKind
|
|
/** Smaller than a numbered generation. */
|
|
bridge?: boolean
|
|
servedIds: readonly string[]
|
|
references?: readonly GenRef[]
|
|
}
|
|
|
|
/** Ids the gateway listed. Order is not significance. */
|
|
export const SERVED = [
|
|
'zen-embedding',
|
|
'zen-embedding-2',
|
|
'zen-free',
|
|
'zen-guard',
|
|
'zen-scribe',
|
|
'zen-vl',
|
|
'zen-voice-mini',
|
|
'zen5',
|
|
'zen5-coder',
|
|
'zen5-evo',
|
|
'zen5-flash',
|
|
'zen5-mini',
|
|
'zen5-pro',
|
|
'zen5-spark',
|
|
'zen6',
|
|
'zen6-flash',
|
|
] as const
|
|
|
|
export const JOBS_OF = ['Generate', 'Code', 'See', 'Speak and listen', 'Retrieve', 'Guard'] as const
|
|
export type Job = (typeof JOBS_OF)[number]
|
|
|
|
/** Where a served id sits. Unknown shapes stay in Generate. */
|
|
export function jobOf(id: string): Job {
|
|
if (id.includes('coder')) return 'Code'
|
|
if (id.includes('embed') || id.includes('rerank')) return 'Retrieve'
|
|
if (id.includes('guard')) return 'Guard'
|
|
if (/scribe|voice|foley|music/.test(id)) return 'Speak and listen'
|
|
if (/(^|-)(vl|vision|image|video|omni)(-|$)/.test(id)) return 'See'
|
|
return 'Generate'
|
|
}
|
|
|
|
const HF = 'https://huggingface.co/zenlm'
|
|
|
|
export const LINEAGE: readonly GenerationStep[] = [
|
|
{
|
|
id: 'zen1',
|
|
mark: '01',
|
|
name: 'Zen 1',
|
|
period: 'Q4 2023',
|
|
status: 'Historical',
|
|
theme: 'Foundation',
|
|
summary:
|
|
'Dense multilingual experiments at 7B, 14B and 72B, to prove an open foundation could scale. These are not models the gateway serves.',
|
|
shape: 'One dense block.',
|
|
figure: 'dense',
|
|
servedIds: [],
|
|
},
|
|
{
|
|
id: 'zen2',
|
|
mark: '02',
|
|
name: 'Zen 2',
|
|
period: 'Q2 2024',
|
|
status: 'Historical',
|
|
theme: 'Go longer',
|
|
summary:
|
|
'128K context, the first production deployments, and code and math specialists. From research model to production model. The context got longer. The architecture did not get more decorative.',
|
|
shape: 'The same block, wider.',
|
|
figure: 'wide',
|
|
servedIds: [],
|
|
},
|
|
{
|
|
id: 'zen3',
|
|
mark: '03',
|
|
name: 'Zen 3',
|
|
period: '2024',
|
|
status: 'Open weights',
|
|
theme: 'More than language',
|
|
summary:
|
|
'The line branched: sparse experts, vision, audio, image, retrieval and safety. This is where Zen becomes a family. None of these ids are in the live catalog. Open-weight specialist artifacts are still published.',
|
|
shape: 'One line, six branches.',
|
|
figure: 'branch',
|
|
servedIds: [],
|
|
references: [
|
|
{ label: 'zenlm/zen3-omni', href: `${HF}/zen3-omni` },
|
|
{ label: 'zenlm/zen3-tts', href: `${HF}/zen3-tts` },
|
|
{ label: 'zenlm/zen3-guard', href: `${HF}/zen3-guard` },
|
|
],
|
|
},
|
|
{
|
|
id: 'zen4',
|
|
mark: '04',
|
|
name: 'Zen 4',
|
|
period: '2025',
|
|
status: 'Retired',
|
|
theme: 'Scale up',
|
|
summary:
|
|
'Frontier-scale experts and a longer context. Retired. Not a current production model, and not a public download.',
|
|
shape: 'Large, and sparse.',
|
|
figure: 'sparse',
|
|
servedIds: [],
|
|
},
|
|
{
|
|
id: 'zen5',
|
|
mark: '05',
|
|
name: 'Zen 5',
|
|
period: '',
|
|
status: 'Shipped',
|
|
theme: 'Agentic generation',
|
|
summary:
|
|
'Code, long context, and smaller and host-specific variants. Older pages described a much larger routed checkpoint. It was not published. These are the models that were.',
|
|
shape: 'Paths for tools and hosts.',
|
|
figure: 'paths',
|
|
servedIds: ['zen5', 'zen5-coder', 'zen5-evo', 'zen5-flash', 'zen5-mini', 'zen5-pro', 'zen5-spark'],
|
|
},
|
|
{
|
|
id: 'zen58',
|
|
mark: '5.8',
|
|
name: 'Zen 5.8',
|
|
period: '',
|
|
status: 'Served only',
|
|
theme: 'Serving bridge',
|
|
summary:
|
|
'A served-only bridge between Zen 5 and Zen 6, with no public weights. The gateway does not list it now.',
|
|
shape: 'A thin serving step.',
|
|
figure: 'bridge',
|
|
bridge: true,
|
|
servedIds: [],
|
|
},
|
|
{
|
|
id: 'zen6',
|
|
mark: '06',
|
|
name: NOW.name,
|
|
period: '',
|
|
status: 'Current',
|
|
theme: 'Dense again',
|
|
summary: `${NOW.name} is a practical dense model: hybrid attention, a long context, images and video, speculative decoding, and ${FLASH.name}, a ternary build that fits a laptop. Available now.`,
|
|
shape: 'Smaller, and solid.',
|
|
figure: 'practical',
|
|
servedIds: NOW.ids,
|
|
},
|
|
{
|
|
id: 'zen7',
|
|
mark: '07',
|
|
name: NEXT.name,
|
|
period: '',
|
|
status: 'Research preview',
|
|
theme: 'Research preview',
|
|
summary: `${NEXT.name} has no public weights and no callable id. Its architecture, size, modalities and date are not stated. Research preview — not currently available.`,
|
|
shape: 'The release path, unresolved past the preview.',
|
|
figure: 'research',
|
|
servedIds: [],
|
|
},
|
|
]
|