按你要解决的问题选层次,不要按目录名或旧产品标签选。
分层地图
| 层次 | 拥有 | 不拥有 | 开发者入口 |
|---|---|---|---|
| AFS | 路径、挂载、Provider 操作、能力声明 | 站点主题、AUP primitive、Blocklet 发布策略 | AFS |
| AFS UI | UI 设备如何与 AFS 相关(架构解释) | 作为产品承诺的可移植第三方设备 SDK | AFS UI(本 board) |
| AUP | 语义 UI tree、事件、绑定、session、降级规则 | 网站内容模型、package 生命周期 | AUP |
| Web Device | 静态站点树、页面、内容对象、组件、HTML 渲染 | 交互 session 协议、身份生命周期 | Web Device |
| Blocklet | Package vs Instance、本地运行、manifest/check、组合边界 | 核心 AFS 操作语义、AUP 节点目录 | Blocklets |
| 身份与数据空间 | Caller 上下文、DID 作用域存储、session 数据视图、成员关系表面 | AFS Provider authoring、站点 markdown 管线 | Identity & Data Spaces |
| ARC CLI / 运行时 | 宿主进程、服务生命周期、运维命令 | 替代上一行各层自己的合同 | ARC CLI |
ARC 承载运行时。AFS、Blocklet 与身份是主要开发者表面。AFS UI 是把 AFS 资源接到 AUP 与 Web Device 的视角。
决策表
| 你在做… | 正确层次 | 常见错误 |
|---|---|---|
| 列举或写入路径、挂载 Provider | AFS | 假定每个挂载都支持 search 或 exec |
| 为交互应用描述按钮、表单与状态 | AUP | 把 Web 组件抄进 AUP 语义合同 |
| 发布页面、文章或营销站 | Web Device | 把 layout AUP 当成完整交互 session |
| 交付带配置与 surface 的可安装单元 | Blocklet | 把单个 .aup 文件叫作「整个 Blocklet」 |
| 知道谁登录了、可看哪些用户数据 | 身份 | 信任看起来像 DID 的路径段 |
| 尚未选定目标时理解 UI 与 AFS 的关系 | AFS UI(本 board) | 虚构第三套 authoring 产品 |
运行 arc service / arc blocklet / arc afs | ARC CLI | 把 CLI help 当成唯一产品合同 |
组合,而不是压扁
Blocklet 常常使用 AFS Provider、AUP 应用与 Web Device 站点。这种组合不会合并它们的合同:
- Web Device 仍是渲染站点树的 AFS provider(
@aigne/afs-web-device)。 - 交互式 AUP 经 UI 运行时(
@aigne/afs-ui)与 AUP 类型(@aigne/afs-aup)运行。 - DID Space(
@aigne/afs-did-space)是存储 Provider;session 视图把 caller 数据投影到 AFS 路径。
两层文档冲突时,把陈述放在真正拥有该行为的层上,另一层只作上下文链接。不要把它们「平均」成一个 API。
证据放在哪里
| 陈述类型 | 优先依据 |
|---|---|
| 现在时操作或字段 | 专题 board + 该层当前源码/测试 |
| 「层次如何配合」 | 本架构 board |
| 旧产品名 | 产品沿革 |
分类规则:合同与证据。