mirror of
https://github.com/hanzo-apps/hanzo.ai.git
synced 2026-10-30 14:58:08 +00:00
The owner's spec for a landing page is the models bento's: monochrome, the words left and the art right, no extra prose. The folds carried two to four sentences under each heading, and some a claim, a lede and a list besides. Each now says one line: ProductLanding the tagline where a page states one (the lede still describes it to search), a claim alone where the claim is the line (/payments, /treasury, /zap, the extension), and elsewhere the sentence that says what the thing is. /philosophy's two points, /dns' claim that repeated its title, /calculator's capabilities line and the Spare clauses on /research and /learn go.
99 lines
5.3 KiB
TypeScript
99 lines
5.3 KiB
TypeScript
'use client'
|
|
|
|
import { FlaskConical } from 'lucide-react'
|
|
import { Page, PageHero, Section, CardGrid, Prose, type CardItem } from '@/components/marketing/page-kit'
|
|
import { papers, PAPERS } from '@/lib/data/papers'
|
|
import { Action } from '@hanzo/ui/marketing'
|
|
import { Steps } from '@/components/preview/steps'
|
|
import { phrase } from '@hanzo/i18n'
|
|
import { useI18n } from '@hanzo/i18n/react'
|
|
|
|
/**
|
|
* The way in to the library. papers.hanzo.ai is where a paper is published; this
|
|
* page is the entry point, and it states nothing of its own.
|
|
*
|
|
* It used to hold six hand-typed titles under a comment reading "Titles mirror
|
|
* what is published on papers.hanzo.ai — add a paper there, then here". They did
|
|
* not mirror it. Not one of the six was a title the library serves, every card
|
|
* pointed at the library's ROOT rather than at its paper, and the instruction to
|
|
* update two places in step is exactly the arrangement that guarantees they
|
|
* drift. The list is now derived from `lib/data/papers.json`, which
|
|
* `scripts/sync-papers.mjs` re-fetches on every build — so adding a paper to the
|
|
* library is the whole of adding it here, and a card cannot name a paper that
|
|
* does not exist or link to a page that does not answer.
|
|
*/
|
|
const ITEMS: CardItem[] = PAPERS.map((paper) => ({
|
|
title: paper.title,
|
|
description: paper.subtitle,
|
|
meta: paper.date,
|
|
href: `${papers.source}/${paper.slug}/`,
|
|
}))
|
|
|
|
/**
|
|
* Doors into the specification index. Each URL was fetched and answered.
|
|
* This is not the whole index — hips.hanzo.ai is — and a card is added here
|
|
* only when this page should open that document.
|
|
*/
|
|
const SPECS: CardItem[] = [
|
|
{ title: phrase('All HIPs'), description: phrase('The specification index.'), href: 'https://hips.hanzo.ai' },
|
|
{ title: 'HIP-0000', description: phrase('The architecture framework.'), href: 'https://hips.hanzo.ai/docs/hip-0000-hanzo-ai-architecture-framework' },
|
|
{ title: 'HIP-0510', description: phrase('Enso, the learned router.'), href: 'https://hips.hanzo.ai/docs/hip-0510-enso-learned-router' },
|
|
{ title: 'HIP-1332', description: phrase('Kai, the decision model.'), href: 'https://hips.hanzo.ai/docs/hip-1332-kai-the-decision-model' },
|
|
{ title: 'HIP-0039', description: phrase('Zen model architecture.'), href: 'https://hips.hanzo.ai/docs/hip-0039-zen-model-architecture' },
|
|
{ title: 'HIP-1334', description: phrase('The research runtime.'), href: 'https://hips.hanzo.ai/docs/hip-1334-research-unified-runtime' },
|
|
{ title: 'HIP-1145', description: phrase('How an experiment is recorded.'), href: 'https://hips.hanzo.ai/docs/hip-1145-research-experiment-record' },
|
|
]
|
|
|
|
/** Standards Track documents the families are built against. */
|
|
const STANDARDS: CardItem[] = [
|
|
{ title: 'HIP-0043', description: phrase('The inference engine.'), href: 'https://hips.hanzo.ai/docs/hip-0043-llm-inference-engine-standard' },
|
|
{ title: 'HIP-1211', description: phrase('The model API.'), href: 'https://hips.hanzo.ai/docs/hip-1211-ai-the-model-api' },
|
|
{ title: 'HIP-0004', description: phrase('The gateway.'), href: 'https://hips.hanzo.ai/docs/hip-0004-llm-gateway-unified-ai-provider-interface' },
|
|
{ title: 'HIP-0019', description: phrase('Tensor operations.'), href: 'https://hips.hanzo.ai/docs/hip-0019-tensor-operations-standard' },
|
|
{ title: 'HIP-1105', description: phrase('The benchmark arena.'), href: 'https://hips.hanzo.ai/docs/hip-1105-benchmark-measurement-arena' },
|
|
]
|
|
|
|
export default function ResearchPage() {
|
|
const { t } = useI18n()
|
|
return (
|
|
<Page>
|
|
<PageHero
|
|
eyebrow={phrase('Research')}
|
|
icon={FlaskConical}
|
|
title={phrase('Work we publish')}
|
|
lede={t('Hanzo builds infrastructure that has to hold up under audit, regulation and adversaries.')}
|
|
visual={<Steps title="papers.hanzo.ai" icon={<FlaskConical size={12} color="currentColor" />} steps={PAPERS.slice(0, 6).map((p) => ({ title: p.title, body: `${p.date}. ${p.subtitle}` }))} />}
|
|
>
|
|
<Action href="https://papers.hanzo.ai" fill>
|
|
{t('Explore papers.hanzo.ai ↗')}
|
|
</Action>
|
|
<Action href="https://hips.hanzo.ai">{t('Specifications (HIPs) ↗')}</Action>
|
|
<Action href="/benchmarks">{t('Benchmarks')}</Action>
|
|
</PageHero>
|
|
|
|
<Section title={phrase('Papers')} lede={phrase('Each one links to its page on papers.hanzo.ai, where the PDF and the LaTeX live.')}>
|
|
<CardGrid items={ITEMS} columns={2} />
|
|
</Section>
|
|
|
|
<Section title={phrase('Specifications')} lede={phrase('HIPs. The index is hips.hanzo.ai. These are the ones the families are written against.')}>
|
|
<CardGrid items={SPECS} columns={2} />
|
|
</Section>
|
|
|
|
<Section title={phrase('Standards')} lede={phrase('The standards the runtime, the gateway, and the benchmark arena are built to.')}>
|
|
<CardGrid items={STANDARDS} columns={2} />
|
|
</Section>
|
|
|
|
<Section title={phrase('Open source')}>
|
|
<Prose>
|
|
<p>
|
|
{t(
|
|
'The systems described in these papers are open source. The cloud, the gateway, the agent runtime and the infrastructure around them are developed in the open at {link}, and the platform pays the open-source authors whose work runs on it.',
|
|
{ link: <a href="https://github.com/hanzoai">github.com/hanzoai</a> },
|
|
)}
|
|
</p>
|
|
</Prose>
|
|
</Section>
|
|
</Page>
|
|
)
|
|
}
|