用途:@json-render/ink 是 Ink 终端渲染器,把 JSON 规格转换为交互式终端组件树,用于以 JSON 描述并渲染终端界面。
主要能力:提供标准组件,包括布局类 Box、Text、Newline、Spacer;内容类 Heading、Divider、Badge、Spinner、ProgressBar、Sparkline、BarChart、Table、List、ListItem、Card、KeyValue、Link、StatusLine、Markdown;交互类 TextInput、Select、MultiSelect、ConfirmInput、Tabs。支持可见性条件($state、eq、not、$and、$or)、动态属性表达式($state、$bindState、$bindItem、$cond、$template)、事件系统(emit 与 on 绑定动作)、内置动作 setState、pushState、removeState,以及 repeat 动态列表和 useUIStream 流式渲染。
使用方式:通过 defineCatalog 定义目录,defineRegistry 注册自定义组件,Renderer 渲染规格;也可用 createRenderer 创建带内置 Provider 的高层组件。规格采用带 root 的扁平元素映射。服务端可用 ./server 导出从目录生成 AI 系统提示。Provider 包括 StateProvider、ActionProvider、VisibilityProvider、ValidationProvider、FocusProvider 和 JSONUIProvider。
适用场景:构建终端仪表盘、表单、多视图界面等交互式终端 UI。
限制:资料未提供收费、价格、平台支持范围等信息;终端宽度约 80-120 列,建议主结构使用纵向布局。