跳到主要内容

Generative UI 终局架构

Tessera Agent 用于数据分析生成界面的唯一协议、权限边界、提交链路和渲染链路。

本仓库直接实现 Tessera Agent 的终局 Generative UI 架构,不存在 MVP 协议、旧 Artifact 兼容层或第二套 renderer。当前只用 data-agent 场景证明这套架构;证明完成后,framework-neutral core 才会提炼到独立 Open Generative 项目。

永久数据流

governed query result
-> Resource + Evidence offers
-> frozen Tessera CatalogSetSlice
-> present_ui proposal
-> Compiler transaction
-> immutable committed Revision
-> trusted SurfaceEventStream
-> SurfaceController
-> GenerativeSurface
-> exact RendererRegistry

Preview、恢复、冲突、placement 和移动端布局都不能创建另一条渲染路径。

权力边界

模型只负责提出声明式 UI proposal。Host 永远拥有数据、身份、权限、Schema、状态、副作用、持久化和最终 commit。模型不能生成 JSX、HTML、CSS、JavaScript、SQL、URL、tool name 或任意可执行代码,也不能把 Resource payload 写入 proposal 或 Document。

平面拥有的职责禁止承担的职责
Model authoring在冻结 Catalog slice 内组合组件、绑定资源引用、提出动作读取 rows、扩大权限、生成执行代码
Compiler/runtimeDecode、Normalize、Validate、transaction、Revision、replay、migration持有 credential、执行任意业务工具
Host authorityactor/tenant、Resource Gateway、Capability Broker、approval、effect receipt、audit接受模型自授予权限
Renderer精确 Contract 渲染、可访问性、局部状态、声明事件直接调用模型指定的 API 或 tool

唯一 Component Contract

每个组件只有一个 framework-neutral、immutable、revisioned ComponentContract。它同时定义 resolved props schema、可绑定字段、slots、event ports、允许的 Action Contracts、readiness、placement、accessibility、prompt metadata 和 migrations。当前 Tessera Agent Catalog 包含六个分析 Contract;其中唯一的 Chart Contract data.chart 通过 spec.recipe 的 Discriminated Union 提供 17 种设计,它们不是 17 个 Component Contract。

同一个 Contract 必须确定性地产生 provider schema、server validators、canonical validator、client props validator、TypeScript 类型、RendererRegistry 要求、fixtures、docs 和 contract hash。React component 不属于 Contract;React renderer 使用完整 ContractRef 注册。

三层表示

表示用途信任等级
Model Authoring Proposal适合模型生成的 snapshot 或单 entity operations不可信
Canonical DocumentID 已归一、引用已解析、Contract 已锁定的确定性 IR仅在 commit gate 后可信
Resolved Render ProjectionHost 解析 state/resource/context 后交给 renderer 的 node-scoped props只对当前 Surface 与 Revision 有效

三者不能复用同一份宽松 JSON Schema。半截流式 JSON 永远不能进入 preview;只有完整 entity operation 可以应用。

Transaction 与 last-good

一次生成或编辑必须经历 begin -> apply -> preview -> finalize -> commit。每个 Surface 同时最多一个 active preview overlay。Preview 只读且没有 action emitter;任何 parse、validation、policy、timeout、abort 或 CAS conflict 都保留 last-good Revision。成功 commit 原子替换 Revision 并清除 overlay。

数据和动作

Query Row 只存在于 Resource Gateway。data.chart Authoring Spec 只保存 Typed Resource Reference; Resolved Renderer Projection 才包含当前 Node 与 Revision 已校验的数据集。模型 Proposal 与 Canonical Document 都不能复制 Row。

浏览器只执行 Surface-local transition 和 node.focus。Document state 写入及所有 HostIntent 都进入 server authority。Capability Broker 负责重新认证、授权、precondition、单次 approval、idempotency、timeout、cancel 和 effect receipt。

Data Chart 专用层

公共 Contract 固定 Identity、Resource Binding、Accessibility、Equivalent View、Placement 与 Renderer Integrity。spec.recipe 再把字段收窄为 17 种设计之一,不能携带原始颜色、Class Name、CSS、 Callback、React Props 或 SVG Markup。Stage Bar、Funnel、Sankey、Heatmap、Calendar、Devices 与 Rings 按照信息结构使用 Schema-driven DOM/SVG;Area、Bar、Radar、Scatter、Radial 与 Combo 使用 Recharts。 两种实现都只是同一个 data.chart Exact Renderer Registration 内部的实现细节。

唯一 React 渲染链

SurfaceEventStream
-> SurfaceController
-> GenerativeSurface
-> RendererRegistry

SurfaceController 验证 event hash、sequence、cursor、epoch 和 audience binding,并归约 snapshot、Revision、state、resources、actions、approvals 与 preview。GenerativeSurface 只做 React 投影;每个 node 通过完整 ContractRef 查找 renderer,并拥有独立 error boundary。Preview node 永远拿不到 emitter。

当前实现包图

Package职责
@open-generative/protocolCanonical schema、wire unions、hash、ID、diagnostics
@open-generative/catalogComponent/Action Contract、manifest、Catalog slice、renderer negotiation
@open-generative/compilerProposal decode、provider schema、normalize、validate、repair、commit gate
@open-generative/runtimeDocument、transaction、preview、state、replay、migration
@open-generative/serverHostServer、Surface session、authority、transaction publication
@open-generative/clientSurfaceController、trusted stream reducer、command transport
@open-generative/resourcesResource publication、grant、projection、window、evidence
@open-generative/capabilitiesAction policy、approval、effect、receipt、cancel、idempotency
@open-generative/react唯一 GenerativeSurface 和 React RendererRegistry
@open-generative/componentsTessera data-agent Component Contracts、ChartSpec、recipes、fixtures
@open-generative/ui基于 Open Generative UI primitives 与 Recharts 的 renderer
adaptersAI SDK v7、Mastra 与 AG-UI 的薄映射,不拥有 commit 语义

当前 namespace 是未来抽取边界,不表示已经开始通用产品发布。当前唯一产品验收对象仍是 Tessera Agent 的 data-agent workflow。