@adia-ai/gen-ui
v0.8.51
Published
AdiaUI generative-UI system — compose strategies, retrieval, the harvested training corpus, and catalog-aware + LLM-judge validation. Emits A2UI protocol messages; pairs with @adia-ai/a2ui (the protocol runtime). Folded from @adia-ai/a2ui-{compose,retriev
Downloads
1,989
Readme
@adia-ai/gen-ui
The AdiaUI generation system: it turns a natural-language intent into A2UI protocol messages.
One-way dependency: gen-ui → a2ui. This package produces A2UI documents;
@adia-ai/a2ui is the protocol runtime that renders them. Nothing here is
required to render A2UI — only to generate it.
Minted by ADR-0048 by folding together four previously separate packages.
What's inside
| Dir | Was | Does |
|---|---|---|
| compose/ | @adia-ai/a2ui-compose | Strategy engines (monolithic · zettel · chunk-zettel · free-form), the escalation cascade, the HTML→A2UI transpiler, eval harness |
| retrieval/ | @adia-ai/a2ui-retrieval | Intent classification, domain routing, embeddings, anti-patterns, context assembly, the feedback loop |
| corpus/ | @adia-ai/a2ui-corpus | The v0.9 component catalog, harvested training chunks, chunk embeddings, eval fixtures |
| validate/ | @adia-ai/a2ui-validator (catalog + semantic halves) | Catalog-aware structural validation and the LLM semantic judge |
Folding retrieval and compose into one package is what dissolved the
long-standing import cycle between them — both sides are now plain relative
imports.
Install
npm i @adia-ai/gen-uiUse
import { generateUI } from '@adia-ai/gen-ui';
const { messages } = await generateUI('a login form with email and password');Subpaths address each half directly:
import { pick, registerEngine } from '@adia-ai/gen-ui/compose/strategies/registry';
import { classifyIntent } from '@adia-ai/gen-ui/retrieval/domain-router';
import { getChunk } from '@adia-ai/gen-ui/corpus/chunk-library';
import { validateMessages } from '@adia-ai/gen-ui/validate/catalog';
import catalog from '@adia-ai/a2ui/catalog' with { type: 'json' };The catalog import is not a typo: since ADR-0050 the catalog is the
protocol-side contract and ships from @adia-ai/a2ui/catalog (this package
consumes it over the one-way gen-ui → a2ui edge). @adia-ai/gen-ui/corpus/*
still serves the corpus fuel — chunks, manifest, embeddings, chunk-library —
and the bare @adia-ai/gen-ui/corpus root export was removed with the move.
Migrating from the old package names
| Old | New |
|---|---|
| @adia-ai/a2ui-compose | @adia-ai/gen-ui |
| @adia-ai/a2ui-compose/<sub> | @adia-ai/gen-ui/compose/<sub> |
| @adia-ai/a2ui-retrieval (/<sub>) | @adia-ai/gen-ui/retrieval (/<sub>) |
| @adia-ai/a2ui-corpus (/<sub>) | @adia-ai/gen-ui/corpus (/<sub>) |
| @adia-ai/a2ui-validator/catalog | @adia-ai/gen-ui/validate/catalog |
| @adia-ai/a2ui-validator/semantic | @adia-ai/gen-ui/validate/semantic |
The deprecated @adia-ai/a2ui-compose/engine and /engines/* aliases are
not carried over — they were already deprecated one cycle. Use
compose/core and compose/strategies/*.
Protocol-side validation (validateSchema) did not move here — it stays
in the protocol package. The full map lives in
.claude/docs/MIGRATION GUIDE.md.
Maintaining
The corpus chunks are build outputs — harvested from data-chunk-tagged
demo HTML via npm run harvest:chunks. Never hand-edit
corpus/chunks/*.json. Likewise the catalog artifact is generated by
scripts/build/components.mjs.
Eval floors are preserve-not-regress and gate every calibration change; see
the a2ui-maintenance skill for the pipeline contract and the floor numbers.
