@json-render/core 是 json-render 的核心包,用于 schema 定义、catalog 创建与 spec 流式构建。核心概念包括 Schema(定义 spec 与 catalog 结构,使用 defineSchema)、Catalog(将组件/动作名映射到定义,使用 defineCatalog)、Spec(AI 输出且符合 schema 的 JSON)以及 SpecStream(用于渐进构建 spec 的 JSONL 流式格式)。用法上,先通过 defineSchema 定义 spec 与 catalog 结构,可传入可选的自定义 promptTemplate;再用 defineCatalog(schema, {...}) 注册组件及其 props(基于 zod)与描述;随后用 catalog.prompt() 生成系统提示词,可传 customRules。SpecStream 方面用 createSpecStreamCompiler 处理流式分块,通过 push(chunk) 得到 result 与 newPatches,并用 getResult() 获取最终 spec。动态属性表达式支持 $state(单向读取)、$bindState(双向绑定,用于表单组件的 value、checked、pressed 等自然值属性)、$bindItem(repeat 作用域内双向绑定)、$cond/$then/$else(按可见性条件选择分支,可递归)、$template(插值 ${/path})以及 $computed(调用注册函数并解析参数)。解析可用 resolvePropValue 与 resolveElementProps。元素可通过顶层 watch 字段在状态值变化时触发动作,但仅在值变化时触发,初始渲染不触发。校验提供 required、email、url、numeric、minLength、maxLength、min、max、pattern、matches、equalTo、lessThan、greaterThan、requiredIf 等内置函数,跨字段校验可在参数中使用 $state 表达式。buildUserPrompt 可构建结构化用户提示词,支持全新生成、基于 currentSpec 的补丁式细化以及传入 state 运行时上下文。validateSpec 与 autoFixSpec 用于校验结构并自动修复常见问题。可见性条件支持 $state 真值、not、eq 及数组隐式 AND,并提供 visibility.when、unless、eq、and、or、always、never 等辅助方法。Schema 可声明 builtInActions,运行时始终可用并自动注入提示词(标记为 [built-in]),无需在 defineRegistry 中提供处理器。StateStore 接口允许 Redux、Zustand、XState 等外部状态库接入渲染器,createStateStore 提供内存实现,接口含 get、set、update、getSnapshot、subscribe;另有 createJsonRenderTransform、parseSpecStreamLine、applySpecStreamPatch 等工具。关于收费、价格、平台或效果,资料暂未提供。
json-render-core
编程与开发
更新于 10-15 17:23