跳到主要内容

架构边界

AFS UI

把 AFS UI 理解为把 AFS 数据与能力投影到交互与站点 UI 的架构视角,而不是与 AUP、Web Device 并列的第三套 authoring board。

AFS UI 是把 AFS 资源与能力投影为人类或 agent 可交互之物的架构名称。它回答:给定路径、Provider 与操作,由哪类 UI 设备与合同来呈现?

不是与 AUP、Web Device 并列的第三套大型 authoring board。交互应用写在 AUP。静态站点写在 Web Device。本页只用于让这些目标与 AFS 对齐。

当前代码里有什么

对照 ARC 源码 44fbd616f 与树内包版本 2.0.0-beta.31

部件包 / 位置今日角色
AUP 类型与纯函数@aigne/afs-auppackages/aup语义节点图、校验与降级辅助,供各设备共享
交互 UI 设备运行时@aigne/afs-uiproviders/runtime/uiSession、AUP 应用加载、节点存储、事件/exec 连线、web-page surface
Web Device provider@aigne/afs-web-deviceproviders/runtime/web-device读取站点树(pages、content、.web/)并渲染静态 HTML;可对站点渲染受支持的 AUP shell
AFS Provider 基座@aigne/afspackages/core挂载、list/read/write/search/exec、能力与访问模式

把 UI 接到 AFS 的 AUP 节点字段包括 src(只读绑定)、bind(读写绑定)、propBind(服务端解析的 prop 路径),以及映射到 AFS exec 的事件。这些字段属于 AUP 合同,不是另一套「AFS UI API」。

架构关系

text
AFS(路径 + Provider + 操作)
  └─ AFS UI(投影视角)
       ├─ AUP + UI 运行时  → 交互 session / 设备 renderer
       └─ Web Device        → 静态 HTML 站点与内容对象

关注点归属说明
路径操作与 Provider 能力AFSUI 不能发明 Provider 未声明的操作
语义 tree、事件、降级AUP设备须报告能力;支持面并非处处相同
Session 握手与交互渲染UI 运行时(@aigne/afs-ui现在时行为随版本与目标而变
站点目录、markdown 内容、主题Web Device与交互 session 协议分离
站点上的 comments / collections surfaceWeb Device + UI surface 代码存在平台 surface;不保证每个站点都开启

草稿架构文档有、本页没有的主张

内部草稿材料(例如 ARC 仓库中的 docs/architecture/afs-ui.md)描述了更宽的愿景:每个 UI 元素都是 AFS 路径、完整的 /dev/ui 设备模型、窗口管理器、多后端 renderer。把它们当作考古与设计意图

本公开页只陈述:

  1. AFS UI 是把 UI 与 AFS 关联起来的有用视角
  2. AUPWeb Device 才是已文档化的 authoring 与运行时合同。
  3. 没有公开、带版本的「实现任意第三方 AFS UI 设备」扩展指南,并附有对外部作者保证的 E2E 样例——除非某一专题 board 已对照当前代码写出。

不要推断:

  • 每个 AFS path 都有 UI
  • 每个 UI 都能经 AFS 写入
  • 每个 renderer 支持同一套 primitive
  • 旧 ArcBlock 管理 UI 已是稳定 ARC 产品

下一步

任务Board
编写或校验 AUP 源AUP
设备能力与降级AUP 设备能力与降级(及相关 AUP 页)
构建静态站点Web Device
挂载数据或实现 ProviderAFS
打包应用Blocklets
Caller 与 session 数据视图Identity & Data Spaces