用途:json-render(Vercel Labs,Apache-2.0)是面向 AI 安全生成式 UI 的框架。AI 只生成受开发者目录约束的扁平树 JSON/YAML 规格,目录是设计系统与 AI 输出之间的契约;组件或属性不在目录中,AI 就无法生成。
主要能力:用 defineCatalog 定义 Zod 类型化组件目录,运行时由 Renderer 校验并渲染;catalog.jsonSchema({ strict: true }) 可导出兼容 LLM 结构化输出 API 的 schema。支持命名插槽、嵌套 repeat 与条目级可见性、三种编辑模式(patch/merge/diff)、YAML 线格式与流式解析、渐进式流式渲染(JSON Patch RFC 6902 over JSONL)。@json-render/directives 提供 $format、$math、$concat、$count、$truncate、$pluralize、$join 及 createI18nDirective,也可用 defineDirective 自定义指令。同一规格可渲染到 React、Vue、Svelte、Solid、终端(Ink)、Next.js、PDF、邮件、Remotion 等。
使用方式:先定义目录,再实现组件,最后用 defineRegistry 与 Renderer 渲染规格。Storybook 项目可用脚本导入目录:node "${CLAUDE_SKILL_DIR}/scripts/storybook-to-catalog.mjs" storybook-manifest.json --out src/genui/catalog.ts --components src/genui/components.tsx --project-root .。指令在 JSONUIProvider 上注册。
适用场景:需要让 AI 生成受控 UI、避免幻觉组件与非法属性的生成式界面、多端渲染同一规格。
限制:目录是唯一安全边界,指令是 AI 可输出非目录 JSON 的唯一位置,需保持 schema 严格;回调、原始对象属性与 z.any() 在导入时会被丢弃;流式内联模式需用 JSON,YAML 仅适合独立生成。具体收费、平台支持与效果数据暂未提供。