@agentunion/fastaun 0.5.30 → 0.5.32

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (105) hide show
  1. package/CHANGELOG.md +60 -0
  2. package/_packed_docs/CHANGELOG.md +60 -0
  3. package/_packed_docs/sdk/0.5.31-SDK/345/272/224/347/224/250/351/233/206/346/210/220/346/214/207/345/215/227.md +162 -0
  4. package/_packed_docs/sdk/0.5.31-SDK/345/274/200/345/217/221/344/270/216/347/247/273/346/244/215/346/214/207/345/215/227.md +167 -0
  5. package/_packed_docs/sdk/0.5.32-SDK/345/272/224/347/224/250/351/233/206/346/210/220/346/214/207/345/215/227.md +350 -0
  6. package/_packed_docs/sdk/0.5.32-SDK/345/274/200/345/217/221/344/270/216/347/247/273/346/244/215/346/214/207/345/215/227.md +319 -0
  7. package/_packed_docs/sdk/AUN_DOCS_GUIDE.md +12 -5
  8. package/_packed_docs/sdk/AUN/344/272/213/344/273/266/345/217/221/345/270/203/350/256/242/351/230/205/345/272/224/347/224/250/351/233/206/346/210/220/346/214/207/345/215/227.md +459 -0
  9. package/_packed_docs/sdk/AUN/344/272/213/344/273/266/345/217/221/345/270/203/350/256/242/351/230/205/345/274/200/345/217/221/347/247/273/346/244/215/346/214/207/345/215/227.md +554 -0
  10. package/_packed_docs/sdk/INDEX.md +27 -5
  11. package/_packed_docs/sdk//345/255/220AID/344/277/256/346/224/271agent.md/351/200/232/347/237/245Owner/345/234/272/346/231/257/346/214/207/345/215/227.md +234 -0
  12. package/dist/agent-md-schema.js +7 -6
  13. package/dist/agent-md-schema.js.map +1 -1
  14. package/dist/agent-md.d.ts +2 -0
  15. package/dist/agent-md.js +20 -6
  16. package/dist/agent-md.js.map +1 -1
  17. package/dist/aid-store.d.ts +1 -0
  18. package/dist/aid-store.js +1 -0
  19. package/dist/aid-store.js.map +1 -1
  20. package/dist/aid.js +1 -1
  21. package/dist/aid.js.map +1 -1
  22. package/dist/auth.js +1 -1
  23. package/dist/auth.js.map +1 -1
  24. package/dist/client/control-messages.d.ts +22 -7
  25. package/dist/client/control-messages.js +220 -185
  26. package/dist/client/control-messages.js.map +1 -1
  27. package/dist/client/delivery.d.ts +3 -0
  28. package/dist/client/delivery.js +67 -3
  29. package/dist/client/delivery.js.map +1 -1
  30. package/dist/client/group-state.d.ts +3 -0
  31. package/dist/client/group-state.js +48 -14
  32. package/dist/client/group-state.js.map +1 -1
  33. package/dist/client/lifecycle.js +12 -3
  34. package/dist/client/lifecycle.js.map +1 -1
  35. package/dist/client/rpc-pipeline.d.ts +9 -3
  36. package/dist/client/rpc-pipeline.js +61 -26
  37. package/dist/client/rpc-pipeline.js.map +1 -1
  38. package/dist/client/v2-e2ee.d.ts +13 -1
  39. package/dist/client/v2-e2ee.js +32 -19
  40. package/dist/client/v2-e2ee.js.map +1 -1
  41. package/dist/client.d.ts +18 -1
  42. package/dist/client.js +396 -140
  43. package/dist/client.js.map +1 -1
  44. package/dist/discovery.d.ts +1 -0
  45. package/dist/discovery.js +3 -1
  46. package/dist/discovery.js.map +1 -1
  47. package/dist/group-fs.js +1 -1
  48. package/dist/group-fs.js.map +1 -1
  49. package/dist/index.d.ts +2 -0
  50. package/dist/index.js +1 -0
  51. package/dist/index.js.map +1 -1
  52. package/dist/ownership-v21.d.ts +2 -2
  53. package/dist/ownership-v21.js +18 -21
  54. package/dist/ownership-v21.js.map +1 -1
  55. package/dist/ownership-workflow.js +6 -4
  56. package/dist/ownership-workflow.js.map +1 -1
  57. package/dist/pubsub/binding.d.ts +54 -0
  58. package/dist/pubsub/binding.js +343 -0
  59. package/dist/pubsub/binding.js.map +1 -0
  60. package/dist/pubsub/channel.d.ts +45 -0
  61. package/dist/pubsub/channel.js +137 -0
  62. package/dist/pubsub/channel.js.map +1 -0
  63. package/dist/pubsub/client.d.ts +93 -0
  64. package/dist/pubsub/client.js +318 -0
  65. package/dist/pubsub/client.js.map +1 -0
  66. package/dist/pubsub/credentials.d.ts +51 -0
  67. package/dist/pubsub/credentials.js +360 -0
  68. package/dist/pubsub/credentials.js.map +1 -0
  69. package/dist/pubsub/errors.d.ts +5 -0
  70. package/dist/pubsub/errors.js +6 -0
  71. package/dist/pubsub/errors.js.map +1 -0
  72. package/dist/pubsub/index.d.ts +48 -0
  73. package/dist/pubsub/index.js +152 -0
  74. package/dist/pubsub/index.js.map +1 -0
  75. package/dist/pubsub/scheduler.d.ts +58 -0
  76. package/dist/pubsub/scheduler.js +249 -0
  77. package/dist/pubsub/scheduler.js.map +1 -0
  78. package/dist/pubsub/service.d.ts +100 -0
  79. package/dist/pubsub/service.js +650 -0
  80. package/dist/pubsub/service.js.map +1 -0
  81. package/dist/pubsub/types.d.ts +119 -0
  82. package/dist/pubsub/types.js +2 -0
  83. package/dist/pubsub/types.js.map +1 -0
  84. package/dist/register-flow.js +1 -1
  85. package/dist/register-flow.js.map +1 -1
  86. package/dist/storage/lowlevel.js +49 -8
  87. package/dist/storage/lowlevel.js.map +1 -1
  88. package/dist/storage/read-cache.d.ts +7 -3
  89. package/dist/storage/read-cache.js +137 -18
  90. package/dist/storage/read-cache.js.map +1 -1
  91. package/dist/storage/vfs.d.ts +1 -0
  92. package/dist/storage/vfs.js +12 -4
  93. package/dist/storage/vfs.js.map +1 -1
  94. package/dist/tools/cross-sdk-agent.d.ts +1 -1
  95. package/dist/tools/cross-sdk-agent.js +4 -2
  96. package/dist/tools/cross-sdk-agent.js.map +1 -1
  97. package/dist/tools/pubsub-actor.d.ts +27 -0
  98. package/dist/tools/pubsub-actor.js +260 -0
  99. package/dist/tools/pubsub-actor.js.map +1 -0
  100. package/dist/transport.d.ts +26 -2
  101. package/dist/transport.js +182 -17
  102. package/dist/transport.js.map +1 -1
  103. package/dist/version.d.ts +1 -1
  104. package/dist/version.js +1 -1
  105. package/package.json +1 -1
@@ -8,12 +8,15 @@
8
8
 
9
9
  | 文档 | 说明 |
10
10
  |------|------|
11
+ | [AUN事件发布订阅应用集成指南](AUN事件发布订阅应用集成指南.md) | 应用视角:整体架构、Bus/Pub/Sub调用序列与多事件API示例、凭证审批及结果处理 |
12
+ | [AUN事件发布订阅开发移植指南](AUN事件发布订阅开发移植指南.md) | SDK移植视角:架构分层、三端内部序列与伪代码、协议状态、背压调度及四端验收 |
11
13
  | [0.5.21 SDK 应用集成指南](0.5.21-SDK应用集成指南.md) | TypeScript 接入 · batch 持久幂等 · peer 同步 · resolve/owner 展示 · 凭证组织恢复 · 诊断与升级 |
12
14
  | [0.5.21 SDK 开发与移植指南](0.5.21-SDK开发与移植指南.md) | 四端公开契约 · peer 水位/流控/提交 · frontmatter 与共识缓存 · 原 CAS/旧任务/reset · checkpoint · 语言差异和验收 |
13
15
  | [0.5.22 SDK 应用集成指南](0.5.22-SDK应用集成指南.md) | TypeScript 接入 · 消息订阅 · 两种绑定与审批恢复 · resolve 展示 · 60 秒读缓存与刷新 · 撤销同步和完整成员包 |
14
16
  | [0.5.22 SDK 开发与移植指南](0.5.22-SDK开发与移植指南.md) | 后台退避 · 群状态 · 两种绑定与 Stage/CAS · 消息内部消费 · 撤销同步 · 组织恢复及配套服务修复 · 默认读缓存 · Rust 清单 |
15
17
  | [0.5.24 SDK 应用集成指南](0.5.24-SDK应用集成指南.md) | 当前身份与消息接入 · 无任务 Ownership · local 双/三身份编排 · resolve 与文件缓存 · 凭证组织 · 升级 |
16
18
  | [0.5.24 SDK 开发与移植指南](0.5.24-SDK开发与移植指南.md) | peer/batch 提交 · NS 事实与远端 CAS · local 短连接 · 观察与 PKI 缓存 · 持久化边界 · 语言差异和验收 |
19
+ | [0.5.32 应用集成指南](0.5.32-SDK应用集成指南.md)、[开发与移植指南](0.5.32-SDK开发与移植指南.md)、[变更与跨端对齐](../../python/CHANGES_FOR_PARITY.md#v0532);[Python](../../python/CHANGELOG.md)、[Go](../../go/CHANGELOG.md)、[TS](../../ts/CHANGELOG.md)、[JS](../../js/CHANGELOG.md) CHANGELOG | 对照已发布 0.5.31:EventService · 设备租约 · 有界背压 · 消息调度 · 限流缓存 · Ownership · 已有验证范围 |
17
20
  | [0.5.30 SDK 应用集成指南](0.5.30-SDK应用集成指南.md)、[开发与移植指南](0.5.30-SDK开发与移植指南.md)、[变更与跨端对齐](../../python/CHANGES_FOR_PARITY.md#v0530--控制流按需恢复与-sdk-行为对齐未发布) | 按需控制流恢复 · observer.forward 本地字段剥离 · human owner 本地 Ownership · Storage 版本预检 · 内部 RPC 边界 |
18
21
  | [0.5.29 应用指南](0.5.29-SDK应用集成指南.md)、[开发与移植指南](0.5.29-SDK开发与移植指南.md)、[变更与跨端对齐](../../python/CHANGES_FOR_PARITY.md#v0529--共识查询缓存与普通上传未发布);[Python](../../python/CHANGELOG.md)、[Go](../../go/CHANGELOG.md)、[TS](../../ts/CHANGELOG.md)、[JS](../../js/CHANGELOG.md) CHANGELOG | 0.5.29 基线:共识默认 force=false、NS 单次查询、无 TTL 的 ETag 缓存、resolve、普通上传锁/恢复与四端移植 |
19
22
  | [0.5.28 应用指南](0.5.28-SDK应用集成指南.md)、[开发与移植指南](0.5.28-SDK开发与移植指南.md);[0.5.27 应用指南](0.5.27-SDK应用集成指南.md)、[开发与移植指南](0.5.27-SDK开发与移植指南.md) | 历史 agent.md 校验、共识 fresh、分类控制消息、Owner 通知与风控;四端差异及验证边界见 [parity 0.5.28](../../python/CHANGES_FOR_PARITY.md#v0528--校验控制消息与风控未发布),公共共识规则以 0.5.29 为准 |
@@ -59,6 +62,7 @@
59
62
  | [09-proxy-rpc-manual](09-proxy-rpc-manual.md) | Service Proxy 控制面 RPC 和数据面隧道注册 |
60
63
  | [09-custody-api-manual](09-custody-api-manual.md) | 可选 AID 托管 HTTP API |
61
64
  | [Notify通知方案](Notify通知方案.md) | `client.notify()` 在线轻量通知、跨域 federation 和可靠消息分工 |
65
+ | [子 AID 修改 agent.md 通知 Owner 场景指南](子AID修改agent.md通知Owner场景指南.md) | 架构/时序/流程图、TypeScript 上传与订阅、持久离线交付、重复与归属变化 |
62
66
 
63
67
  ---
64
68
 
@@ -78,8 +82,9 @@
78
82
 
79
83
  - 当前身份与消息接入、无任务 Ownership、两个 local 场景、名片及文件缓存、凭证组织与升级 → [应用集成指南](0.5.24-SDK应用集成指南.md)
80
84
  - 三主体分层、提交/ACK、NS 事实和远端 CAS、local 身份隔离、缓存新鲜度、语言差异与验收 → [开发与移植指南](0.5.24-SDK开发与移植指南.md)
85
+ - 当前 0.5.32 应用调用与升级影响 → [应用集成指南](0.5.32-SDK应用集成指南.md);四端契约、内部流程及验收 → [开发与移植指南](0.5.32-SDK开发与移植指南.md);源码差异与已有验证 → [parity](../../python/CHANGES_FOR_PARITY.md#v0532)。覆盖 EventService、VFS Cache、消息恢复、RPC/限流、Ownership 与各端修复。
81
86
  - 0.5.30 应用行为、主动 Pull 边界、本地 Ownership、Storage 版本及内部 RPC → [应用指南](0.5.30-SDK应用集成指南.md);控制恢复、转发净化、YAML 与版本预检的四端契约 → [开发与移植指南](0.5.30-SDK开发与移植指南.md);验证范围见 [parity](../../python/CHANGES_FOR_PARITY.md#v0530--控制流按需恢复与-sdk-行为对齐未发布)。
82
- - 0.5.29 应用接入、共识输入输出、resolve、上传与业务服务 → [应用指南](0.5.29-SDK应用集成指南.md);缓存并发、上传恢复、NS 配套与四端落点 → [开发与移植指南](0.5.29-SDK开发与移植指南.md);已有增量及验证见 [parity 当前章节](../../python/CHANGES_FOR_PARITY.md#v0529--共识查询缓存与普通上传未发布)。
87
+ - 0.5.29 应用接入、共识输入输出、resolve、上传与业务服务 → [应用指南](0.5.29-SDK应用集成指南.md);缓存并发、上传恢复、NS 配套与四端落点 → [开发与移植指南](0.5.29-SDK开发与移植指南.md);已有增量及验证见 [历史 parity](../../python/CHANGES_FOR_PARITY.md#v0529--共识查询缓存与普通上传未发布)。
83
88
  - 0.5.28 agent.md 校验、共识 fresh、分类控制消息、Owner 通知、风控和四端验证边界 → [应用指南](0.5.28-SDK应用集成指南.md)、[开发与移植指南](0.5.28-SDK开发与移植指南.md);实现差异见 [历史 parity](../../python/CHANGES_FOR_PARITY.md#v0528--校验控制消息与风控未发布)。0.5.27 历史版本见对应旧指南与 parity。
84
89
 
85
90
  ### 身份与认证
@@ -128,6 +133,7 @@
128
133
 
129
134
  ### RPC 与事件
130
135
 
136
+ - AUN EventService 整体架构、Bus/Pub/Sub应用流程图与多事件API示例 → [应用集成指南](AUN事件发布订阅应用集成指南.md);SDK内部序列与伪代码、四端契约、授权分页、实例代次、64条/64 MiB及16/8/4/4 → [开发移植指南](AUN事件发布订阅开发移植指南.md)
131
137
  - `client.call()` / `client.on()` → [04-连接与认证](04-连接与认证.md)、[06-API手册](06-API手册.md)
132
138
  - Python `connect()` 携带 `push_notify_aid/push_token` 自动登记,以及 `client.push.register/unregister` 运行期变更 → [04-连接与认证](04-连接与认证.md)、[06-API手册](06-API手册.md)、`docs/protocol/15-离线推送通知协议.md`
133
139
  - `client.notify()` 在线轻量通知、跨域 federation、在线/离线边界 → [Notify通知方案](Notify通知方案.md)
@@ -180,23 +186,31 @@ TypeScript 身份与消息接线、Ownership 审批恢复、resolve、默认缓
180
186
 
181
187
  定义消息 peer/batch/Gate、Ownership NS 事实和远端 CAS、Stage、local 专属 slot 与身份代际、展示及文件缓存、PKI 和 Credential 查询新鲜度、组织 checkpoint。列出四端兼容差异、Rust 核查与分层验收,不将已有专项证据等同完整发布验证。
182
188
 
189
+ ### 0.5.32 更新日志与跨端对齐
190
+
191
+ [应用集成指南](0.5.32-SDK应用集成指南.md):本版变化/整体架构 L5-52、身份与入口 L53-87、白名单多事件流程 L88-171、凭证审批签发 L172-246、设备/租约/容量/存储 L247-282、VFS Cache L283-330、其它主要改动与验收 L331-350。
192
+
193
+ [开发与移植指南](0.5.32-SDK开发与移植指南.md):基线/架构/四端入口 L5-53、单实例注册与状态 L54-107、鉴权和目录原子提交 L108-156、消息/公平背压/RPC预算 L157-227、恢复/限流/任务 L228-242、VFS并发失效 L243-288、四端落点/独有变化 L289-303、验收入口及已有证据 L304-319。
194
+
195
+ 当前 [parity](../../python/CHANGES_FOR_PARITY.md#v0532) L17-114:发布基线 L21-26、门面 L27-42、授权与默认凭证存储 L43-58、消息及设备租约 L59-68、容量与公平调度 L69-85、通用消息恢复/限流 L86-94、Storage/Ownership L95-104、已有验证和发布边界 L105-114。四 SDK CHANGELOG 按各语言整理同一基线后的实际增量;0.5.31 已发布,较早章节保留历史语义。
196
+
183
197
  ### 0.5.30 更新日志与跨端对齐
184
198
 
185
199
  0.5.30 [应用指南](0.5.30-SDK应用集成指南.md):行为摘要 §1 L5-14、消息恢复 §2 L16-29、本地 Ownership §3 L31-43、Storage §4 L45-47、转发与风控 §5 L49-53、升级 §6 L55-61;[开发与移植指南](0.5.30-SDK开发与移植指南.md):跨端契约 §1 L5-14、控制恢复 §2 L16-29、observer.forward §3 L31-43、Ownership/YAML §4 L45-49、Storage §5 L51-55、内部 RPC 与差异 §6 L57-68。
186
200
 
187
- 当前 [0.5.30 变更与对齐清单](../../python/CHANGES_FOR_PARITY.md#v0530--控制流按需恢复与-sdk-行为对齐未发布) L15-58:控制流恢复 L19-24、observer.forward L26-29、本地 Ownership 与 agent.md L31-35、Storage 预检 L37-41、内部 RPC/版本及验证边界 L43-58。
201
+ 历史 [0.5.30 变更与对齐清单](../../python/CHANGES_FOR_PARITY.md#v0530--控制流按需恢复与-sdk-行为对齐未发布) L186-227:按需恢复、转发净化、本地 Ownership、Storage 预检与当时的验证范围;当前增量见 0.5.32。
188
202
 
189
203
  ### 0.5.29 更新日志与跨端对齐
190
204
 
191
205
  0.5.29 [应用指南](0.5.29-SDK应用集成指南.md):接入与消息 §1—§2 L5-54、共识 §3 L55-80、resolve §4 L81-104、上传管理 §5 L105-145、缓存/业务 §6—§7 L146-167、升级 §8 L168-180;[开发与移植指南](0.5.29-SDK开发与移植指南.md):契约 §1—§2 L5-63、缓存/resolve §3—§4 L64-94、上传恢复 §5 L95-123、四端/继承 §6—§7 L124-151、核查 §8 L152-164。
192
206
 
193
- 当前 [0.5.29 变更与对齐清单](../../python/CHANGES_FOR_PARITY.md#v0529--共识查询缓存与普通上传未发布) L15-87:公共入口及 NS 请求 L19-39、ETag 缓存/resolve L40-47、普通上传/恢复 L48-67、NS 配套与验证 L68-87;四端 CHANGELOG 提供接口摘要。
207
+ 历史 [0.5.29 变更与对齐清单](../../python/CHANGES_FOR_PARITY.md#v0529--共识查询缓存与普通上传未发布) L231-300:公共共识、ETag/resolve、普通上传、NS 配套与当时的验证范围;四端 CHANGELOG 提供接口摘要。
194
208
 
195
209
  ### 0.5.28 更新日志与跨端对齐
196
210
 
197
- 历史 0.5.28 [应用指南](0.5.28-SDK应用集成指南.md):身份/消息接入 §2—§3 L18-95、凭证/组织 §4—§5 L96-137、Storage/Ownership §6—§7 L138-186、Owner 通知 §8 L187-201、风控/升级 §9—§10 L202-228;[开发与移植指南](0.5.28-SDK开发与移植指南.md):上传/下载 schema §1 L7-36、非一致共识 fresh §2 L37-62、分类控制消息 §3 L63-108、Owner outbox §4 L109-121、风控 §5 L122-134、移植矩阵 §6 L135-146。 [历史对齐清单](../../python/CHANGES_FOR_PARITY.md#v0528--校验控制消息与风控未发布) L88-172 记录四端落点、已有测试入口及服务依赖/验收边界;公共共识流程以 0.5.29 为准。
211
+ 历史 0.5.28 [应用指南](0.5.28-SDK应用集成指南.md):身份/消息接入 §2—§3 L18-95、凭证/组织 §4—§5 L96-137、Storage/Ownership §6—§7 L138-186、Owner 通知 §8 L187-201、风控/升级 §9—§10 L202-228;[开发与移植指南](0.5.28-SDK开发与移植指南.md):上传/下载 schema §1 L7-36、非一致共识 fresh §2 L37-62、分类控制消息 §3 L63-108、Owner outbox §4 L109-121、风控 §5 L122-134、移植矩阵 §6 L135-146。 [历史对齐清单](../../python/CHANGES_FOR_PARITY.md#v0528--校验控制消息与风控未发布) L304-385 记录四端落点、已有测试入口及服务依赖/验收边界;公共共识流程以 0.5.29 为准。
198
212
 
199
- 0.5.27 [应用指南](0.5.27-SDK应用集成指南.md):身份/连接/消息迁移 §2—§3 L30-133,结构化 §4 L134-192/语义 §5 L193-349,组织与缓存 §6—§7 L350-388,升级 §8 L389-408;[开发与移植指南](0.5.27-SDK开发与移植指南.md):字节/签名 §2 L38-84,结构化 §3 L85-123/语义 §4 L124-297,组织 §5 L298-334,迁移交付 §6 L335-383,平台与回归 §7—§8 L384-410。 [变更与对齐清单](../../python/CHANGES_FOR_PARITY.md#v0527--相对于-v0525-基线的变更未发布) L173-290 对照 0.5.25 源码,说明语义凭证、消息证据、状态/Usage 恢复、Gateway 迁移、时间容错、组织及 CLI;四端 CHANGELOG 提供接口级摘要,parity 列出实现落点、语言差异和已有验证范围。0.5.26 仅为 TypeScript 根证书打包修正,旧版本章节保留历史记录。
213
+ 0.5.27 [应用指南](0.5.27-SDK应用集成指南.md):身份/连接/消息迁移 §2—§3 L30-133,结构化 §4 L134-192/语义 §5 L193-349,组织与缓存 §6—§7 L350-388,升级 §8 L389-408;[开发与移植指南](0.5.27-SDK开发与移植指南.md):字节/签名 §2 L38-84,结构化 §3 L85-123/语义 §4 L124-297,组织 §5 L298-334,迁移交付 §6 L335-383,平台与回归 §7—§8 L384-410。 [变更与对齐清单](../../python/CHANGES_FOR_PARITY.md#v0527--相对于-v0525-基线的变更未发布) L389-503 对照 0.5.25 源码,说明语义凭证、消息证据、状态/Usage 恢复、Gateway 迁移、时间容错、组织及 CLI;四端 CHANGELOG 提供接口级摘要,parity 列出实现落点、语言差异和已有验证范围。0.5.26 仅为 TypeScript 根证书打包修正,旧版本章节保留历史记录。
200
214
 
201
215
  ### CHANGELOG-0.5.6
202
216
 
@@ -302,4 +316,12 @@ TypeScript 身份与消息接线、Ownership 审批恢复、resolve、默认缓
302
316
 
303
317
  定义 `client.notify()` 的在线轻量通知语义、服务端/AID/群路由方式、跨域 federation 在线转发、无离线存储边界、安全约束,以及与 `message.send` / `group.send` 可靠应用事件的分工。
304
318
 
319
+ ### AUN事件发布订阅应用集成指南
320
+
321
+ [应用集成指南](AUN事件发布订阅应用集成指南.md):面向应用开发者:整体架构 L9-43、三角色总流程 L44-75、Facade与角色阅读入口 L76-102;Bus启动序列及配置 L105-170、Sub订阅/回调序列及多事件示例 L171-221、Pub异步发布序列及结果示例 L222-279;凭证启动/签发验证序列/两方接入 L280-387、多设备与目录 L388-403、生命周期 L404-419、默认存储/本地统计 L420-453、源码验收 L454-459。
322
+
323
+ ### AUN事件发布订阅开发移植指南
324
+
325
+ [开发移植指南](AUN事件发布订阅开发移植指南.md):面向SDK维护与移植:整体架构及分层 L5-62、Bus注册续租序列/单调截止伪代码 L63-129、消息字段/设备路由/幂等 L130-179;Bus签发与Pub/Sub鉴权序列/目录原子提交伪代码 L180-316、目录契约 L317-332;Pub异步入队与Bus背压fanout序列/伪代码/预算 L333-416、Sub接收及续租恢复序列/伪代码 L417-508、四端存储 L509-529、统计错误验收 L530-554。
326
+
305
327
 
@@ -0,0 +1,234 @@
1
+ # 子 AID 修改 agent.md 后通知 Owner:场景指南
2
+
3
+ 依据当前 `0.5.31` TypeScript SDK 源码。示例使用 Node.js `>=22.16.0` 和 `@agentunion/fastaun`;包发布与服务部署状态另行核对。
4
+
5
+ ## 1. 场景与架构
6
+
7
+ `worker.agentid.cn` 已与 `owner.agentid.cn` 建立有效归属关系。worker 修改能力说明后发布自己的 `agent.md`,owner 应用收到变更事件,刷新所管理主体的资料索引。
8
+
9
+ ```mermaid
10
+ flowchart LR
11
+ subgraph S[子 AID 侧]
12
+ SA[子主体应用] --> SS[SDK:签名、上传]
13
+ SS --> OB[本次提交的通知记录]
14
+ end
15
+ SS -->|签名 agent.md| NS[Name Service:验证、保存、返回 ETag]
16
+ NS -->|确认提交| OB
17
+ OB -->|核对当前 owner 后发送| MSG[AUN Gateway / Message<br/>持久 P2P 加密消息]
18
+ subgraph O[Owner 侧]
19
+ OS[SDK:消费内部控制消息] --> V[下载最新名片、验签<br/>重新确认当前归属]
20
+ V --> EV[owned_agentmd.changed]
21
+ EV --> OA[Owner 应用:幂等更新资料索引]
22
+ end
23
+ MSG --> OS
24
+ V -->|读取权威名片| NS
25
+ ```
26
+
27
+ 通知由上传 SDK 发起,使用已有持久 P2P 消息链路。**消息已被服务端持久接收后,owner 离线无需发送方补发,上线后由正常消息同步交付。**
28
+
29
+ | 角色 | 职责 |
30
+ | --- | --- |
31
+ | 子 AID 应用 | 编辑合法名片,调用 SDK 上传 |
32
+ | 上传 SDK | 签名、提交,确认当前 owner,发送本次变更提示 |
33
+ | Name Service | 校验名片、身份、权限和版本条件,保存权威正文 |
34
+ | Gateway / Message | 持久接收、路由及在线/离线消息交付 |
35
+ | Owner SDK | 解密内部消息,下载验签并确认归属,产生应用事件 |
36
+ | Owner 应用 | 持久化业务更新,处理重复事件 |
37
+
38
+ ## 2. 正常在线流程
39
+
40
+ ```mermaid
41
+ sequenceDiagram
42
+ participant A as 子 AID 应用
43
+ participant S as 上传 SDK
44
+ participant N as Name Service
45
+ participant M as Gateway / Message
46
+ participant O as Owner SDK
47
+ participant B as Owner 应用
48
+ A->>S: uploadAgentMd(subAid, candidate)
49
+ S->>S: 签名并保存本次上传材料
50
+ S->>N: PUT agent.md,携带版本条件
51
+ N->>N: 校验并保存权威正文
52
+ N-->>S: 上传成功及 ETag
53
+ S->>S: 保存提交状态与本次通知记录
54
+ S->>S: fresh 核对当前 owner
55
+ S->>M: 加密 sdk_control:aun.agent_md.changed v1
56
+ M-->>S: 消息发送成功
57
+ S->>S: 清理本次发送通知记录
58
+ S-->>A: 返回名片上传结果
59
+ M->>O: 在线推送或消息拉取
60
+ O->>N: 下载最新 agent.md,fresh 核对归属
61
+ N-->>O: 正文、签名及当前归属信息
62
+ O->>O: 验签,确认本端为 owner,记录新 ETag 与事件
63
+ O->>B: owned_agentmd.changed
64
+ B->>B: 幂等提交业务更新
65
+ B-->>O: handler Promise 成功
66
+ O->>O: 清理本次待交付应用事件
67
+ ```
68
+
69
+ `uploadAgentMd()` 返回成功表示名片提交成功,不表示 owner 应用已经处理。通知不携带名片全文,owner SDK 回源取得当前版本。
70
+
71
+ ## 3. TypeScript 接入示例
72
+
73
+ ### 3.1 Owner 加载身份
74
+
75
+ 已有身份、seed 和目录由应用提供;两个主体可以运行在不同机器。
76
+
77
+ ```ts
78
+ import { AIDStore, AUNClient } from '@agentunion/fastaun';
79
+
80
+ const ownerStore = new AIDStore({
81
+ aunPath: process.env.OWNER_AUN_PATH!,
82
+ encryptionSeed: process.env.OWNER_AUN_SEED!,
83
+ slotId: 'owner-profile', verifySsl: true,
84
+ });
85
+ const ownerIdentity = ownerStore.load('owner.agentid.cn');
86
+ if (!ownerIdentity.ok) throw new Error(ownerIdentity.error.message);
87
+ const ownerClient = new AUNClient(ownerIdentity.data.aid);
88
+ ```
89
+
90
+ ### 3.2 Owner 先订阅,再连接
91
+
92
+ `commitOwnedProfileRefresh` 由应用实现:将刷新任务/资料索引更新与已处理 `event_id` 在业务事务中一起提交,重复 event ID 直接成功返回。Promise 应在持久化完成后结束。
93
+
94
+ ```ts
95
+ type OwnedAgentMdChange = { aid: string; etag: string; event_id: string };
96
+ declare function commitOwnedProfileRefresh(event: OwnedAgentMdChange): Promise<void>;
97
+
98
+ ownerClient.on('owned_agentmd.changed', async value => {
99
+ await commitOwnedProfileRefresh(value as OwnedAgentMdChange);
100
+ });
101
+ await ownerClient.connect({ auto_reconnect: true });
102
+ ```
103
+
104
+ SDK 已完成通知的身份、名片签名和当前归属检查,应用无需为接收该事件再执行一遍同样检查。应用自己的资源授权仍按其业务规则执行。
105
+
106
+ ### 3.3 子 AID 修改正文并上传
107
+
108
+ 下面保留原 frontmatter 的全部字段,只替换 Markdown 正文;旧尾部签名不拼入新正文,由 SDK 重新签名。已锁定关系中的 `owner`、`ownership`、proof/release 材料保持原值。
109
+
110
+ ```ts
111
+ const subStore = new AIDStore({
112
+ aunPath: process.env.SUB_AUN_PATH!,
113
+ encryptionSeed: process.env.SUB_AUN_SEED!,
114
+ slotId: 'worker-profile', verifySsl: true,
115
+ });
116
+ const subAid = 'worker.agentid.cn';
117
+
118
+ async function publishProfile(markdown: string): Promise<void> {
119
+ const current = await subStore.downloadAgentMd(subAid);
120
+ if (!current.ok) throw new Error(current.error.message);
121
+ const header = /^\ufeff?---\r?\n[\s\S]*?\r?\n---(?:\r?\n|$)/u
122
+ .exec(current.data.content)?.[0];
123
+ if (!header) throw new Error('名片缺少 YAML frontmatter');
124
+ const candidate = header + markdown.trim() + '\n';
125
+ const uploaded = await subStore.uploadAgentMd(subAid, candidate);
126
+ if (!uploaded.ok) throw new Error(uploaded.error.message);
127
+ }
128
+
129
+ await publishProfile('# Worker\n\n新增能力:整理设备巡检结果。');
130
+ ```
131
+
132
+ 这里使用普通子主体、单主签名片作为示例;已有附签的名片须按其签名规则重新准备完整候选。SDK 上传仍执行 schema、签名、关系锁及版本条件检查。
133
+
134
+ 公开 `store.uploadAgentMd()` 会为通知尝试建立独立短连接,结束后关闭;无需应用再创建 sub 长连接或手工发送 `sdk_control`。只编辑本地文件、或绕过 SDK 直接 HTTP PUT,不会自动触发这条 SDK owner 通知链路。
135
+
136
+ ### 3.4 应用退出
137
+
138
+ Owner 保持连接以消费后续变更,在应用正常退出时关闭:
139
+
140
+ ```ts
141
+ await ownerClient.close();
142
+ ```
143
+
144
+ ## 4. Owner 离线:持久消息负责交付
145
+
146
+ ```mermaid
147
+ sequenceDiagram
148
+ participant S as 上传 SDK
149
+ participant M as AUN 持久消息系统
150
+ participant O as Owner SDK
151
+ participant A as Owner 应用
152
+ Note over O,A: Owner 当前离线
153
+ S->>M: 发送本次名片变更通知
154
+ M->>M: 持久保存
155
+ M-->>S: 发送成功
156
+ S->>S: 本次通知发送完成
157
+ Note over S,M: 发送方无需因 owner 离线补发
158
+ O->>M: Owner 上线,按消费进度同步消息
159
+ M-->>O: 交付持久控制消息
160
+ O->>O: 下载最新名片、验签并核对当前归属
161
+ O->>A: owned_agentmd.changed
162
+ A-->>O: 业务持久化成功
163
+ ```
164
+
165
+ 通知使用持久消息语义,不设置正 TTL。离线交付遵循现有消息保留与同步规则,无需额外设计 owner 上线扫描或发送方定时补发。
166
+
167
+ ## 5. 重复、晚到和归属变化
168
+
169
+ ```mermaid
170
+ flowchart TD
171
+ H[收到内部名片变更提示] --> P{加密、协议版本、发送者合法?}
172
+ P -->|否| DROP[忽略]
173
+ P -->|是| GET[下载当前 agent.md 并验签]
174
+ GET --> V{签名及当前归属检查通过?}
175
+ V -->|失败或暂不可用| HOLD[本次不交付应用事件]
176
+ V -->|已不属于本端 owner| OLD[不向旧 owner 应用交付]
177
+ V -->|通过| E{当前已验证 ETag 是否变化?}
178
+ E -->|是| NEW[保存新 ETag 与新 event_id]
179
+ E -->|否且无待交付事件| END[无需重复业务处理]
180
+ E -->|否但本版本事件尚未成功| REUSE[复用已有 event_id]
181
+ NEW --> APP[调用 owned_agentmd.changed handler]
182
+ REUSE --> APP
183
+ APP --> OK{应用持久化成功?}
184
+ OK -->|是| CLEAN[清理本次应用事件]
185
+ OK -->|否| KEEP[保留本版本待交付事件]
186
+ ```
187
+
188
+ | 场景 | 当前处理 |
189
+ | --- | --- |
190
+ | 同一提示重复到达 | 当前 ETag 相同且已处理时,不再生成新应用事件 |
191
+ | v1 提示晚到,名片已到 v3 | 下载、验证并处理当前 v3;不要求依次重放每次编辑 |
192
+ | ETag 从 A → B → A | 最后一次 A 是新的版本观察,生成新的 event ID;ETag 不是递增序号 |
193
+ | 上传后、发送前更换 owner | 发送前重新查归属,不继续发送给原通知中的旧 owner |
194
+ | 通知在途时更换 owner | 接收端重新确认本端仍是当前 owner,通过才交付应用 |
195
+ | 应用 handler 失败 | 保留事件;后续收到对应目标提示并再次取得同一版本时,可用原 event ID 再交付 |
196
+
197
+ 这是“当前资料已变更”的提示机制,不是每个历史版本必达的编辑流水。外部业务副作用按 `event_id` 幂等;资料索引可以按 AID 保存当前已处理 ETag。
198
+
199
+ ## 6. 三种名称与成功边界
200
+
201
+ ```ts
202
+ type AgentMdChangedHint = {
203
+ type: 'aun.agent_md.changed';
204
+ version: 1;
205
+ aid: string;
206
+ etag: string;
207
+ };
208
+ ```
209
+
210
+ 这个类型描述 SDK 内部加密载荷;应用监听的是 `owned_agentmd.changed`,不会收到上述控制消息原文。
211
+
212
+ | 名称/状态 | 含义 |
213
+ | --- | --- |
214
+ | `nameservice.agent_md_updated` | 服务端内部名片更新事件,供 Gateway 等失效缓存;不是 owner 应用通知 |
215
+ | `aun.agent_md.changed` v1 | SDK 内部 P2P 控制协议,载荷中的 ETag 是刷新提示 |
216
+ | `owned_agentmd.changed` | 验签及归属检查通过后的应用事件,字段为 `aid`、`etag`、`event_id` |
217
+ | agent.md 上传成功 | 权威名片已提交;不等于通知已发送或 owner 业务已完成 |
218
+ | 通知发送成功 | 消息进入既有持久交付链路;owner 离线无需补发 |
219
+ | 通知发送失败或结果未知 | 持久消息不能保证尚未确认接收的消息;本地保留发送记录,不回滚名片 |
220
+
221
+ 当前 SDK 没有连接/重连时自动扫描发送记录的机制,也没有公开的“flush 名片通知”接口。此边界与已持久接收消息的离线交付无关;不要为了 owner 离线重新上传名片。
222
+
223
+ 应用事件处理失败或名片下载失败,也不等于需要发送方补发。当前 SDK 会保留相应状态,但不保证由定时器自动重试业务回调;持久消息交付与业务处理完成应分别理解。
224
+
225
+ 通知不替代 Ownership 绑定/转移流程,也不是 owner.md 审批回执或授权证明。
226
+
227
+ ## 7. 实现与接口依据
228
+
229
+ - [TypeScript 上传/下载公共入口](../../ts/src/aid-store.ts):`downloadAgentMd`、`uploadAgentMd`,以及独立短连接通知回调。
230
+ - [上传提交与通知记录](../../ts/src/agent-md.ts):提交确认后持久保存本次通知,随后执行提交回调。
231
+ - [通知发送与 Owner 应用事件](../../ts/src/agent-md-changes.ts):发送前归属复核、接收后回源验证、ETag 判重及 handler 完成确认。
232
+ - [内部控制消息消费](../../ts/src/client/control-messages.ts):加密与 protected headers 检查。
233
+ - [已有名片接口与通知测试](../../ts/tests/unit/client-agent-md-api.test.ts):重复提示、归属变化、失败记录及短连接行为。
234
+ - [当前 SDK 应用指南](0.5.31-SDK应用集成指南.md)、[Ownership 应用指南](Ownership2.1-SDK应用集成指南.md)、[ETag 观察与同步](agent.md与group.index的ETag观察与同步机制.md)。
@@ -35,7 +35,7 @@ function parseFileFrontmatterInternal(payload, validateOwnership, forUpload = fa
35
35
  });
36
36
  if (doc.warnings.length)
37
37
  throw new ValidationError(`agent.md frontmatter is invalid: ${doc.warnings[0].message}`);
38
- if (validateOwnership && !(forUpload && ['group', 'org'].includes(String(doc.get('type')))))
38
+ if (validateOwnership)
39
39
  for (const [section, fields] of [['statement', ['version', 'relation_version', 'declared_at']], ['transfer', ['target_relation_version', 'expires_at']]]) {
40
40
  for (const field of fields) {
41
41
  const node = doc.getIn(['ownership', section, field], true);
@@ -70,7 +70,7 @@ function validateAgentMdDocumentInternal(content, opts) {
70
70
  const bare = opts.readCompatibility && parsed.payload.replace(/^\ufeff/, '').split(/\r\n|\n|\r/, 1)[0]?.trim() !== '---';
71
71
  const meta = bare ? {} : parseFileFrontmatterInternal(parsed.payload, !opts.readCompatibility && (opts.forUpload || (opts.validateOwnership ?? true)), opts.forUpload);
72
72
  const legacyEntity = meta.type === 'group' && parsed.signatures.length === 1 && !Object.hasOwn(meta, 'entity_cert_fingerprint') && (parsed.fields?.signer_aid === undefined || aidEqual(parsed.fields.signer_aid, meta.aid));
73
- if (opts.readCompatibility && ['group', 'org'].includes(String(meta.type)) && !legacyEntity)
73
+ if (opts.readCompatibility && ['group', 'org'].includes(String(meta.type)) && !Object.hasOwn(meta, 'ownership') && !legacyEntity)
74
74
  return validateAgentMdDocumentInternal(content, { ...opts, readCompatibility: false, historicalEntityOwner: parsed.signatures.length === 1 && parsed.fields?.signer_aid !== undefined && aidEqual(parsed.fields.signer_aid, meta.owner) && !aidEqual(parsed.fields.signer_aid, meta.aid) });
75
75
  for (const key of opts.readCompatibility ? [] : ['aid', 'name', 'type', 'version'])
76
76
  if (!(key in meta))
@@ -104,7 +104,8 @@ function validateAgentMdDocumentInternal(content, opts) {
104
104
  const human = String(meta.type ?? '').trim().toLowerCase() === 'human';
105
105
  if (human && ['owner', 'ownership', 'ownership_proof', 'ownership_release'].some(field => Object.hasOwn(meta, field)))
106
106
  throw new ValidationError('human AID cannot specify owner or ownership');
107
- if (entity) {
107
+ const modernEntity = entity && Object.hasOwn(meta, 'ownership');
108
+ if (entity && !modernEntity) {
108
109
  if (opts.forUpload) {
109
110
  if (!Object.hasOwn(meta, 'owner'))
110
111
  throw new ValidationError('group/org agent.md requires owner');
@@ -136,15 +137,15 @@ function validateAgentMdDocumentInternal(content, opts) {
136
137
  if (fields) {
137
138
  if (Object.keys(fields).some((key) => !['cert_fingerprint', 'public_key_fingerprint', 'timestamp', 'signature', 'signer_aid'].includes(key)))
138
139
  throw new ValidationError('agent.md signature contains unknown fields');
139
- if (entity && !opts.readCompatibility && fields.signer_aid === undefined)
140
+ if (entity && !modernEntity && !opts.readCompatibility && fields.signer_aid === undefined)
140
141
  throw new ValidationError('group/org agent.md main signature requires signer_aid');
141
- if (!entity && fields.signer_aid !== undefined)
142
+ if ((!entity || modernEntity) && fields.signer_aid !== undefined)
142
143
  throw new ValidationError('ordinary agent.md main signature contains unknown signer_aid');
143
144
  if (fields.signer_aid !== undefined && !aidEqual(fields.signer_aid, opts.historicalEntityOwner ? meta.owner : meta.aid))
144
145
  throw new ValidationError('agent.md main signer must be its own AID');
145
146
  if (entity && !opts.forUpload && !opts.historicalEntityOwner && Object.hasOwn(meta, 'entity_cert_fingerprint') && fields.cert_fingerprint !== meta.entity_cert_fingerprint)
146
147
  throw new ValidationError('entity signature certificate fingerprint does not match entity_cert_fingerprint', { stringCode: 'invalid' });
147
- if (entity && parsed.signatures.slice(1).some(item => !aidEqual(item.fields.signer_aid, meta.owner)))
148
+ if (entity && !modernEntity && parsed.signatures.slice(1).some(item => !aidEqual(item.fields.signer_aid, meta.owner)))
148
149
  throw new ValidationError('group/org additional signer must be owner');
149
150
  const validFingerprint = (value) => opts.readCompatibility ? !!normalizeFingerprintHex(value) : /^sha256:[0-9a-f]{64}$/.test(value);
150
151
  if (!validFingerprint(fields.cert_fingerprint))
@@ -1 +1 @@
1
- {"version":3,"file":"agent-md-schema.js","sourceRoot":"","sources":["../src/agent-md-schema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent-md-schema.js","sourceRoot":"","sources":["../src/agent-md-schema.ts"],"names":[],"mappings":"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"}
@@ -80,6 +80,7 @@ export interface AgentMdManagerOptions {
80
80
  currentAidGetter?: () => AID | null | undefined;
81
81
  entityIdentityGetter?: (aid: string, type?: string) => Promise<AID> | AID;
82
82
  entityOwnerResolver?: (aid: string, type: string) => Promise<string> | string;
83
+ sourceGuard?: () => void;
83
84
  entitySignerResolver?: (aid: string, fingerprint: string) => Promise<AID> | AID;
84
85
  gatewayResolver?: (aid: string) => Promise<string> | string;
85
86
  peerResolver?: (aid: string, certFingerprint?: string | null, signedAt?: number) => Promise<AID> | AID;
@@ -98,6 +99,7 @@ export declare class AgentMdManager {
98
99
  private _ownerAidGetter?;
99
100
  private _entityIdentityGetter?;
100
101
  private _entityOwnerResolver?;
102
+ private _sourceGuard?;
101
103
  private _entitySignerResolver?;
102
104
  private _currentAidGetter?;
103
105
  private _gatewayResolver?;
package/dist/agent-md.js CHANGED
@@ -204,6 +204,7 @@ export class AgentMdManager {
204
204
  _ownerAidGetter;
205
205
  _entityIdentityGetter;
206
206
  _entityOwnerResolver;
207
+ _sourceGuard;
207
208
  _entitySignerResolver;
208
209
  _currentAidGetter;
209
210
  _gatewayResolver;
@@ -219,9 +220,13 @@ export class AgentMdManager {
219
220
  _httpHandler = null;
220
221
  setHttpHandler(handler) { this._httpHandler = handler; }
221
222
  async _requestText(url, opts) {
223
+ if (opts.method === 'PUT')
224
+ this._sourceGuard?.();
222
225
  if (!this._httpHandler)
223
226
  return requestText(url, opts);
224
227
  const perform = async () => {
228
+ if (opts.method === 'PUT')
229
+ this._sourceGuard?.();
225
230
  const result = await requestText(url, opts);
226
231
  return new Response(opts.method === 'HEAD' || [204, 205, 304].includes(result.status) ? null : result.text, { status: result.status, headers: result.headers });
227
232
  };
@@ -239,6 +244,7 @@ export class AgentMdManager {
239
244
  this._ownerAidGetter = opts.ownerAidGetter;
240
245
  this._entityIdentityGetter = opts.entityIdentityGetter;
241
246
  this._entityOwnerResolver = opts.entityOwnerResolver;
247
+ this._sourceGuard = opts.sourceGuard;
242
248
  this._entitySignerResolver = opts.entitySignerResolver;
243
249
  this._currentAidGetter = opts.currentAidGetter;
244
250
  this._gatewayResolver = opts.gatewayResolver;
@@ -517,8 +523,6 @@ export class AgentMdManager {
517
523
  }
518
524
  catch { }
519
525
  }
520
- if (['group', 'org'].includes(String(type)))
521
- throw ownershipFailure('not_applicable', 'group/org uses its lifecycle owner relationship');
522
526
  const protocol = headerValue(response.headers, 'X-AUN-Ownership-Protocol');
523
527
  if (protocol !== '2.1')
524
528
  throw ownershipFailure('unsupported_protocol', 'NS does not provide Ownership 2.1 metadata');
@@ -679,7 +683,7 @@ export class AgentMdManager {
679
683
  if (pending.content_etag !== AgentMdManager.contentEtag(pending.content))
680
684
  throw ownershipFailure('persistence_unavailable', 'pending entity original bytes are corrupt');
681
685
  await this._verifyDocument(pending.content, aid, identity, true);
682
- const remote = await this._readEntityFresh(aid);
686
+ const remote = meta.ownership ? await this.readAgentMdFresh(aid) : await this._readEntityFresh(aid);
683
687
  if (remote.exists && remote.content === pending.content && remote.etag === pending.content_etag) {
684
688
  const saved = await this._saveCommittedRecord(aid, { content: pending.content, remote_etag: remote.etag, pending_operation: '', pending_content: '', pending_content_etag: '', pending_error: '', pending_condition: {}, pending_relation: {}, pending_authorization: '' });
685
689
  if (!saved.aid)
@@ -738,7 +742,7 @@ export class AgentMdManager {
738
742
  let condition = originalCondition;
739
743
  let relation = entityContext ?? (this._pendingUpload(target, draftStrict))?.relation;
740
744
  if (!condition) {
741
- const fresh = entity ? await this._readEntityFresh(target) : await this._readBodyOriginalFresh(target);
745
+ const fresh = entity ? await this.readAgentMdFresh(target) : await this._readBodyOriginalFresh(target);
742
746
  condition = fresh.exists ? { if_match: fresh.etag } : { if_none_match: '*' };
743
747
  if (!entity) {
744
748
  // 锁未知时按 locked 处理:关系字段必须与原件完全一致
@@ -951,7 +955,7 @@ export class AgentMdManager {
951
955
  throw ownershipFailure('unavailable', 'entity current certificate is unavailable', true);
952
956
  if (observed && observed.entity_cert_fingerprint !== entity.certFingerprint)
953
957
  throw ownershipFailure('conflict', 'entity authority changed during verification');
954
- if (meta.entity_cert_fingerprint !== entity.certFingerprint)
958
+ if (meta.entity_cert_fingerprint !== undefined && meta.entity_cert_fingerprint !== entity.certFingerprint)
955
959
  throw ownershipFailure('conflict', 'entity agent.md certificate generation changed');
956
960
  return { type: meta.type, owner_aid: owner, entity_cert_fingerprint: entity.certFingerprint };
957
961
  }
@@ -986,6 +990,7 @@ export class AgentMdManager {
986
990
  const entity = ['group', 'org'].includes(String(meta.type));
987
991
  const uploadHeaders = {
988
992
  'X-AUN-Signature-Format': 'multi-v1',
993
+ ...(entity && meta.ownership ? { 'X-AUN-Ownership-Check': '1' } : {}),
989
994
  'Content-Type': 'text/markdown; charset=utf-8',
990
995
  ...(condition.if_match ? { 'If-Match': condition.if_match } : { 'If-None-Match': '*' }),
991
996
  ...(this._uploadViaGatewayHost ? { Host: target } : {}),
@@ -1397,7 +1402,16 @@ export class AgentMdManager {
1397
1402
  throw new ClientSignatureError(`agent.md verification failed for ${target}${reason ? `: ${reason}` : ''}`, entity ? { stringCode: 'invalid' } : {});
1398
1403
  }
1399
1404
  let ownershipStatus;
1400
- if (entity)
1405
+ if (Object.hasOwn(frontmatter, 'ownership')) {
1406
+ try {
1407
+ parseOwnershipFile(content, 'agent', { expectedSubAid: target });
1408
+ ownershipStatus = 'incomplete';
1409
+ }
1410
+ catch {
1411
+ ownershipStatus = 'invalid';
1412
+ }
1413
+ }
1414
+ else if (entity)
1401
1415
  ownershipStatus = 'not_applicable';
1402
1416
  else {
1403
1417
  try {