Generative UI architecture
The single protocol, authority boundary, commit path, and render path used by Tessera Agent.
This repository implements the final Tessera Agent Generative UI architecture directly. It has no MVP protocol, legacy Artifact compatibility layer, or second renderer. The current proof is intentionally limited to data-agent workflows. A separate Open Generative project is created only after that proof succeeds.
governed query result
-> Resource + Evidence offers
-> frozen Tessera CatalogSetSlice
-> present_ui proposal
-> Compiler transaction
-> immutable committed Revision
-> trusted SurfaceEventStream
-> SurfaceController
-> GenerativeSurface
-> exact RendererRegistryThe model proposes declarative composition. The Host owns data, identity, authority, validation, state, effects, persistence, and commit. A model never emits JSX, HTML, CSS, JavaScript, SQL, URLs, tool names, or Resource payloads.
Every component has one immutable, revisioned, framework-neutral
ComponentContract. It deterministically produces provider schemas,
validators, TypeScript types, renderer requirements, fixtures, documentation,
and hashes. React implementations register against a complete ContractRef;
they are not part of the canonical protocol. The current Tessera Agent Catalog
contains six analytical Contracts. Its sole chart Contract, data.chart, has
17 designs as a discriminated spec.recipe union, not 17 Component Contracts.
Model Proposal, Canonical Document, and Resolved Render Projection are separate representations with separate validation. Streaming applies only complete entities. A transaction follows begin -> apply -> preview -> finalize -> commit, preserves last-good on every failure, and permits at most one active preview overlay per Surface.
Query rows remain inside the Resource Gateway. The data.chart authoring spec
contains a typed resource reference; the resolved renderer projection contains
the validated dataset for that node and Revision. No row is copied into the
model proposal or canonical Document. The browser executes only Surface-local
transitions and focus. Document state and every HostIntent pass through server
authority.
Data Chart specialization
The common Contract fixes identity, resource binding, accessibility,
equivalent-view semantics, placement, and renderer integrity. spec.recipe
then narrows the allowed fields for one of the 17 designs. It cannot carry raw
colors, class names, CSS, callbacks, React props, or SVG markup. DOM/SVG is used
for stage bars, funnels, Sankey, heatmaps, calendars, devices, and rings where
the information structure demands it; Recharts is used for area, bar, radar,
scatter, radial, and combo plots. Both implementation paths remain private to
the same exact data.chart renderer registration.
The only React chain is SurfaceEventStream -> SurfaceController -> GenerativeSurface -> RendererRegistry. Preview nodes have no emitter, each node has an error boundary, and renderer lookup uses the exact Contract identity.