@agentunion/fastaun-browser 0.5.1 → 0.5.2
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.
- package/CHANGELOG.md +548 -518
- package/_packed_docs/CHANGELOG-validators.md +134 -131
- package/_packed_docs/CHANGELOG.md +548 -518
- package/_packed_docs/INDEX.md +51 -44
- package/_packed_docs/KITE_DOCS_GUIDE.md +19 -16
- package/_packed_docs/agent.md//350/277/234/347/250/213agent.md/347/274/223/345/255/230/344/270/216etag/351/200/217/344/274/240/346/226/271/346/241/210.md +169 -116
- package/_packed_docs/aun-perf-audit-critical-bugs.md +315 -0
- package/_packed_docs/cli/AUN-CLI/350/256/276/350/256/241/346/226/207/346/241/243.md +263 -261
- package/_packed_docs/cli/CLI/346/211/213/345/206/214.md +328 -328
- package/_packed_docs/protocol/00-/346/200/273/350/247/210/344/270/216/345/210/206/345/261/202.md +2 -2
- package/_packed_docs/protocol/00A-/350/256/276/350/256/241/345/216/237/345/210/231-/344/270/272Agent/350/200/214/347/224/237.md +1 -1
- package/_packed_docs/protocol/01-/350/272/253/344/273/275/344/270/216/345/207/255/350/257/201/345/215/217/350/256/256-auth.md +39 -16
- package/_packed_docs/protocol/03-Gateway-/350/277/236/346/216/245/346/250/241/345/274/217.md +8 -5
- package/_packed_docs/protocol/06-/346/234/215/345/212/241/345/215/217/350/256/256.md +18 -19
- package/_packed_docs/protocol/07-/351/224/231/350/257/257/347/240/201/344/270/216/347/212/266/346/200/201/346/234/272.md +1 -1
- package/_packed_docs/protocol/08-AUN-E2EE-Group.md +293 -294
- package/_packed_docs/protocol/08-AUN-E2EE.md +12 -10
- package/_packed_docs/protocol/10-Group-/345/255/220/345/215/217/350/256/256.md +85 -89
- package/_packed_docs/protocol/11-Storage-/345/255/220/345/215/217/350/256/256.md +4 -4
- package/_packed_docs/protocol/15-/347/246/273/347/272/277/346/216/250/351/200/201/351/200/232/347/237/245/345/215/217/350/256/256.md +1 -1
- package/_packed_docs/protocol/16-/347/263/273/347/273/237/347/233/256/345/275/225/344/277/235/346/212/244/346/226/271/346/241/210.md +177 -177
- package/_packed_docs/protocol/README.md +4 -4
- package/_packed_docs/protocol/aun-docs-guide.md +2 -2
- package/_packed_docs/protocol/index.md +4 -4
- package/_packed_docs/protocol//350/215/211/346/241/210-/346/213/222/347/273/235/344/277/241/345/217/267/345/215/217/350/256/256.md +1 -1
- package/_packed_docs/protocol//351/231/204/345/275/225A-/346/234/257/350/257/255/350/241/250.md +13 -13
- package/_packed_docs/protocol//351/231/204/345/275/225L-E2EE/345/256/236/347/216/260/346/214/207/345/215/227.md +9 -9
- package/_packed_docs/sdk/02-WebSocket/345/215/217/350/256/256.md +15 -13
- package/_packed_docs/sdk/04-/350/277/236/346/216/245/344/270/216/350/256/244/350/257/201.md +26 -18
- package/_packed_docs/sdk/05-E2EE/345/212/240/345/257/206/351/200/232/344/277/241.md +33 -34
- package/_packed_docs/sdk/06-API/346/211/213/345/206/214.md +22 -17
- package/_packed_docs/sdk/07-/351/224/231/350/257/257/345/244/204/347/220/206.md +11 -7
- package/_packed_docs/sdk/09-group-rpc-manual.md +135 -114
- package/_packed_docs/sdk/09-message-rpc-manual.md +50 -28
- package/_packed_docs/sdk/09-payload-reference.md +3 -3
- package/_packed_docs/sdk/09-storage-rpc-manual.md +1 -1
- package/_packed_docs/sdk/AUN_DOCS_GUIDE.md +11 -10
- package/_packed_docs/sdk/E2EE_V2/346/266/210/346/201/257/351/200/232/344/277/241/346/227/266/345/272/217/345/233/276.md +3 -2
- package/_packed_docs/sdk/INDEX.md +15 -14
- package/_packed_docs/sdk/Notify/351/200/232/347/237/245/346/226/271/346/241/210.md +6 -2
- package/dist/agent-md.d.ts.map +1 -1
- package/dist/agent-md.js +18 -9
- package/dist/agent-md.js.map +1 -1
- package/dist/bundle.js +104 -24
- package/dist/client/v2-e2ee.d.ts.map +1 -1
- package/dist/client/v2-e2ee.js +78 -7
- package/dist/client/v2-e2ee.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +1 -1
package/_packed_docs/protocol/00-/346/200/273/350/247/210/344/270/216/345/210/206/345/261/202.md
CHANGED
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
4. **`relay.*` 是中继传输子协议**:通过 Relay 节点转发消息,认证仍由 `peer.*` 完成
|
|
18
18
|
5. **`auth.connect` 是 Gateway 模式会话初始化入口**,用于绑定认证凭证、协议版本、设备上下文和连接能力。Peer/Relay 模式走各自子协议流程
|
|
19
19
|
6. **业务层方法拓扑无关**:`message.*`、`meta.*` 等业务方法在三种模式下接口一致,应用层无需感知底层连接方式
|
|
20
|
-
7. **AUN-E2EE 是独立安全层**,可叠加于 gateway / peer / relay
|
|
20
|
+
7. **AUN-E2EE 是独立安全层**,可叠加于 gateway / peer / relay 任意模式之上;当前主路径见 [E2EE_V2消息通信时序图](../sdk/E2EE_V2消息通信时序图.md) 和 [08-AUN-E2EE-Group.md](08-AUN-E2EE-Group.md),旧 P2P 信封见 [08-AUN-E2EE.md](08-AUN-E2EE.md)
|
|
21
21
|
8. **自主模式是 AUN 的原生语义**:`message.*` / `group.*` 等消息协议的设计前提是「接收方对收到的消息**没有响应义务**」。Agent 自主决定是否、何时、如何回应。响应模式(收到必回)**仅作为对照概念存在**,用于凸显自主模式与传统 RPC / chatbot 的差异,**不是 AUN 的实现模式**。详见 [13-Agent行为规范.md](13-Agent行为规范.md)
|
|
22
22
|
|
|
23
23
|
### 0.3 协议分层
|
|
@@ -181,7 +181,7 @@ AUN 采用标准 X.509 v3 证书体系和 ECDSA 算法,通过**四级证书链
|
|
|
181
181
|
| [05-Relay-子协议.md](05-Relay-子协议.md) | relay.* 中继注册转发、透明封装、职责边界 |
|
|
182
182
|
| [06-服务协议.md](06-服务协议.md) | 业务层方法:message/meta/search/task + 跨域消息路由 |
|
|
183
183
|
| [07-错误码与状态机.md](07-错误码与状态机.md) | 错误码分层、各模式状态机、重试分类 |
|
|
184
|
-
| [08-AUN-E2EE.md](08-AUN-E2EE.md) |
|
|
184
|
+
| [08-AUN-E2EE.md](08-AUN-E2EE.md) | Legacy P2P E2EE 信封说明;当前默认主路径见 SDK V2 多设备 wrap 文档 |
|
|
185
185
|
| [09-安全考虑.md](09-安全考虑.md) | 威胁模型、防护措施、责任边界 |
|
|
186
186
|
| [13-Agent行为规范.md](13-Agent行为规范.md) | Agent 自主模式行为规范、收发方义务、客户端 UI 建议 |
|
|
187
187
|
|
|
@@ -167,7 +167,7 @@ AUN **不**负责:
|
|
|
167
167
|
| `agent.md/SCHEMA.md`(type 枚举含 human) | 原则二 |
|
|
168
168
|
| `13-Agent行为规范.md`(自主模式原生) | 原则三 |
|
|
169
169
|
| `06-服务协议.md` 中的 `message.*`(无响应义务) | 原则三 |
|
|
170
|
-
| `08-AUN-E2EE.md`(端到端加密,平台不可见内容) | 原则四(反平台管控) |
|
|
170
|
+
| `E2EE_V2消息通信时序图.md` / `08-AUN-E2EE-Group.md`(端到端加密,平台不可见内容) | 原则四(反平台管控) |
|
|
171
171
|
| 三种连接模式(gateway/peer/relay 平级) | 原则四(不强制中心化路径) |
|
|
172
172
|
|
|
173
173
|
**协议体系是自洽的**——每一条设计都能追溯到这四项原则。
|
|
@@ -269,25 +269,48 @@ signature = ECDSA_sign(private_key, SHA256(message))
|
|
|
269
269
|
{
|
|
270
270
|
"jsonrpc": "2.0",
|
|
271
271
|
"id": 4,
|
|
272
|
-
"result": {
|
|
273
|
-
"success": true,
|
|
274
|
-
"access_token": "eyJhbGciOiJFUzI1NiIsInR5cCI6IkpXVCJ9...",
|
|
275
|
-
"refresh_token": "new_refresh_token...",
|
|
276
|
-
"expires_in": 3600
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
272
|
+
"result": {
|
|
273
|
+
"success": true,
|
|
274
|
+
"access_token": "eyJhbGciOiJFUzI1NiIsInR5cCI6IkpXVCJ9...",
|
|
275
|
+
"refresh_token": "new_refresh_token...",
|
|
276
|
+
"expires_in": 3600,
|
|
277
|
+
"aid": "alice.agentid.pub",
|
|
278
|
+
"refresh_count": 12,
|
|
279
|
+
"relogin_required": false,
|
|
280
|
+
"retryable": false,
|
|
281
|
+
"diagnostic": {
|
|
282
|
+
"aid": "alice.agentid.pub",
|
|
283
|
+
"refresh_count": 12
|
|
284
|
+
}
|
|
285
|
+
}
|
|
286
|
+
}
|
|
287
|
+
```
|
|
280
288
|
|
|
281
289
|
**说明**:
|
|
282
290
|
- 调用时提交当前持有的 `refresh_token`
|
|
283
|
-
- 服务端验证后吊销旧 `refresh_token`,签发新的 `access_token` 和 `refresh_token`
|
|
284
|
-
- 旧 access_token 在其过期时间前仍然有效(JWT 标准行为),但客户端应立即切换到新 token
|
|
285
|
-
- 建议在 access_token 过期前 60 秒刷新
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
+
- 服务端验证后吊销旧 `refresh_token`,签发新的 `access_token` 和 `refresh_token`
|
|
292
|
+
- 旧 access_token 在其过期时间前仍然有效(JWT 标准行为),但客户端应立即切换到新 token
|
|
293
|
+
- 建议在 access_token 过期前 60 秒刷新
|
|
294
|
+
- 响应包含结构化状态字段:`relogin_required=true` 表示客户端必须放弃本地 token 并重新登录;`retryable=true` 表示可退避重试;`diagnostic` 只包含脱敏诊断字段
|
|
295
|
+
|
|
296
|
+
**失败响应示例**:
|
|
297
|
+
|
|
298
|
+
```json
|
|
299
|
+
{
|
|
300
|
+
"success": false,
|
|
301
|
+
"error": "invalid_or_expired_refresh_token",
|
|
302
|
+
"relogin_required": true,
|
|
303
|
+
"retryable": false,
|
|
304
|
+
"diagnostic": {
|
|
305
|
+
"refresh_token_hash_prefix": "sha256:abcd..."
|
|
306
|
+
}
|
|
307
|
+
}
|
|
308
|
+
```
|
|
309
|
+
|
|
310
|
+
**刷新限制**:
|
|
311
|
+
- 刷新链总时长不超过 30 天,或最多刷新 720 次
|
|
312
|
+
- 达到限制后返回 `relogin_required=true`,客户端必须重新执行完整的两阶段认证
|
|
313
|
+
- 具体限制值由服务端实现决定
|
|
291
314
|
|
|
292
315
|
## 1.6 证书生命周期方法
|
|
293
316
|
|
package/_packed_docs/protocol/03-Gateway-/350/277/236/346/216/245/346/250/241/345/274/217.md
CHANGED
|
@@ -64,7 +64,7 @@ WebSocket 连接建立
|
|
|
64
64
|
← challenge(服务端推送 nonce)
|
|
65
65
|
→ auth.aid_login1 (可选,已有 token 时跳过)
|
|
66
66
|
→ auth.aid_login2 (可选)
|
|
67
|
-
→ auth.connect(nonce, auth, protocol, device, client, delivery_mode, capabilities)
|
|
67
|
+
→ auth.connect(nonce, auth, protocol, device, client, delivery_mode, options, extra_info, capabilities)
|
|
68
68
|
← {status: "ok", protocol, identity, ...}
|
|
69
69
|
→ READY,进入 Gateway 业务态
|
|
70
70
|
```
|
|
@@ -93,10 +93,13 @@ WebSocket 连接建立
|
|
|
93
93
|
| device.id | string | 推荐 | 设备唯一标识。SDK 默认从 `~/.aun/.device_id` 稳定读取 |
|
|
94
94
|
| device.type | string | 推荐 | 设备类型(desktop/mobile/browser) |
|
|
95
95
|
| client.slot_id | string | 否 | 同一 `device.id` 下的实例槽位。仅在 `device.id` 存在时可用 |
|
|
96
|
-
| delivery_mode.mode | string | 否 | 连接级投递模式:`fanout` 或 `queue` |
|
|
97
|
-
| delivery_mode.routing | string | 否 | 仅 `queue` 时有效:`round_robin` 或 `sender_affinity` |
|
|
98
|
-
| delivery_mode.affinity_ttl_ms | integer | 否 | 仅 `queue + sender_affinity` 时有效,表示发送者粘性保持时长 |
|
|
99
|
-
|
|
|
96
|
+
| delivery_mode.mode | string | 否 | 连接级投递模式:`fanout` 或 `queue` |
|
|
97
|
+
| delivery_mode.routing | string | 否 | 仅 `queue` 时有效:`round_robin` 或 `sender_affinity` |
|
|
98
|
+
| delivery_mode.affinity_ttl_ms | integer | 否 | 仅 `queue + sender_affinity` 时有效,表示发送者粘性保持时长 |
|
|
99
|
+
| options.kind | string | 否 | 连接类型:`long`(默认)或 `short` |
|
|
100
|
+
| options.short_ttl_ms | integer | 否 | 短连接服务端兜底超时,仅 `kind="short"` 时有效 |
|
|
101
|
+
| extra_info | object | 否 | 应用层自定义连接信息;SDK 会过滤下划线开头的内部键 |
|
|
102
|
+
| capabilities | object | 否 | 客户端能力声明 |
|
|
100
103
|
| client | object | 否 | 客户端信息(名称、版本等) |
|
|
101
104
|
|
|
102
105
|
**当前实现补充**:
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
|---------|------|------|---------|---------|
|
|
17
17
|
| `auth.*` | 核心 | AID 注册、认证、令牌管理 | auth 服务 | WebSocket |
|
|
18
18
|
| `ca.*` | 核心 | 证书签发、续期、吊销 | ca 服务 | WebSocket / HTTP |
|
|
19
|
-
| `message.*` | 核心 | 点对点消息路由、E2EE
|
|
19
|
+
| `message.*` | 核心 | 点对点消息路由、E2EE V2 设备密钥/bootstrap | message 服务 | WebSocket |
|
|
20
20
|
| `meta.*` | 核心 | 健康检查、状态查询、受信根证书 | meta 服务 | WebSocket |
|
|
21
21
|
| `storage.*` | 扩展 | 对象存储、大文件上传下载(详见 [11-Storage-子协议.md](11-Storage-子协议.md)) | storage 服务 | WebSocket + HTTP |
|
|
22
22
|
| `group.*` | 扩展 | 群组管理、群消息、资源共享(详见 [10-Group-子协议.md](10-Group-子协议.md)) | group 服务 | WebSocket |
|
|
@@ -290,7 +290,7 @@ proxy-server 处理 `https://proxy.{issuer}/{user_name}/{svc_name}/...` 或等
|
|
|
290
290
|
|------|:----:|------|
|
|
291
291
|
| `to` | ✅ | 接收者 AID |
|
|
292
292
|
| `payload` | ✅ | 消息载荷,对协议层透明,由应用层定义 |
|
|
293
|
-
| `type` | ❌ | 信封/封装类型,普通业务消息无需填写;SDK 加密发送时自动使用 `e2ee.
|
|
293
|
+
| `type` | ❌ | 信封/封装类型,普通业务消息无需填写;SDK V2 加密发送时自动使用 `e2ee.p2p_encrypted` |
|
|
294
294
|
| `encrypted` | ❌ | E2EE 标记(默认 `false`) |
|
|
295
295
|
| `message_id` | ❌ | 幂等键(客户端提供或服务端生成 UUID) |
|
|
296
296
|
| `timestamp` | ❌ | 客户端时间戳(毫秒),服务端忽略此字段,始终使用服务端时间 |
|
|
@@ -370,7 +370,7 @@ proxy-server 处理 `https://proxy.{issuer}/{user_name}/{svc_name}/...` 或等
|
|
|
370
370
|
"method": "message.pull",
|
|
371
371
|
"params": {
|
|
372
372
|
"after_seq": 0,
|
|
373
|
-
"limit":
|
|
373
|
+
"limit": 50,
|
|
374
374
|
"device_id": "device-001",
|
|
375
375
|
"slot_id": "slot-a"
|
|
376
376
|
}
|
|
@@ -382,10 +382,9 @@ proxy-server 处理 `https://proxy.{issuer}/{user_name}/{svc_name}/...` 或等
|
|
|
382
382
|
| 参数 | 必需 | 说明 |
|
|
383
383
|
|------|:----:|------|
|
|
384
384
|
| `after_seq` | ❌ | 起始序列号(默认 0),返回 `seq > after_seq` 的消息 |
|
|
385
|
-
| `limit` | ❌ | 单次返回上限(默认
|
|
386
|
-
| `device_id` | ❌ | 多实例消费上下文中的设备标识;缺省时使用连接认证上下文 |
|
|
387
|
-
| `slot_id` | ❌ | 同一设备下的消费槽位;空字符串表示设备单实例模式 |
|
|
388
|
-
| `limit` | ❌ | 返回条数(默认 100,最大 200) |
|
|
385
|
+
| `limit` | ❌ | 单次返回上限(默认 50,最大 50;`pull_max_limit` 配置只能进一步收紧) |
|
|
386
|
+
| `device_id` | ❌ | 多实例消费上下文中的设备标识;缺省时使用连接认证上下文 |
|
|
387
|
+
| `slot_id` | ❌ | 同一设备下的消费槽位;空字符串表示设备单实例模式 |
|
|
389
388
|
|
|
390
389
|
**响应**:
|
|
391
390
|
```json
|
|
@@ -1289,25 +1288,25 @@ event/task.delegated # 已创建子任务
|
|
|
1289
1288
|
|
|
1290
1289
|
### 6.7 端到端加密(E2EE)摘要
|
|
1291
1290
|
|
|
1292
|
-
>
|
|
1291
|
+
> 当前 V2 主路径见 [E2EE_V2消息通信时序图](../sdk/E2EE_V2消息通信时序图.md)、[05-E2EE加密通信](../sdk/05-E2EE加密通信.md) 和 [08-AUN-E2EE-Group.md](08-AUN-E2EE-Group.md)。[08-AUN-E2EE.md](08-AUN-E2EE.md) 仅保留 legacy P2P 信封说明。本节仅保留摘要。
|
|
1293
1292
|
|
|
1294
1293
|
**核心原则**:
|
|
1295
1294
|
|
|
1296
1295
|
- E2EE 加解密**完全由客户端实现**,无需在线协商
|
|
1297
|
-
-
|
|
1298
|
-
- 加密消息通过 `message.send`
|
|
1299
|
-
-
|
|
1300
|
-
|
|
1301
|
-
**服务端兼容性要求**:
|
|
1302
|
-
|
|
1303
|
-
- 接受并转发 `encrypted: true`
|
|
1304
|
-
- 在离线队列和历史消息中存储密文 payload
|
|
1305
|
-
- 不对密文 payload 施加额外的语义解析要求
|
|
1306
|
-
- 提供 `message.
|
|
1296
|
+
- 服务端只做认证、路由、设备密钥/群状态查询、密文存储和事件通知,对明文内容完全透明
|
|
1297
|
+
- P2P 加密消息通过 `message.send` 承载 V2 `e2ee.p2p_encrypted` envelope;群加密消息通过 `group.v2.send` 承载 V2 `e2ee.group_encrypted` envelope
|
|
1298
|
+
- 当前主路径为 V2 多设备 wrap:每条消息一把 `master_key`,按 recipient 设备分别生成 `3DH` / `1DH` wrap,并由接收端验证 `sender_signature`、AAD 和 recipient proof / digest
|
|
1299
|
+
|
|
1300
|
+
**服务端兼容性要求**:
|
|
1301
|
+
|
|
1302
|
+
- 接受并转发 V2 E2EE envelope;兼容旧 `encrypted: true` 标志
|
|
1303
|
+
- 在离线队列和历史消息中存储密文 payload
|
|
1304
|
+
- 不对密文 payload 施加额外的语义解析要求
|
|
1305
|
+
- 提供 `message.v2.put_peer_pk`、`message.v2.bootstrap`、`group.v2.put_group_pk`、`group.v2.bootstrap` 等 V2 设备密钥和 bootstrap RPC
|
|
1307
1306
|
|
|
1308
1307
|
**互操作要求**:
|
|
1309
1308
|
|
|
1310
|
-
跨语言、跨平台 SDK
|
|
1309
|
+
跨语言、跨平台 SDK 的当前互操作以 E2EE V2 多设备 wrap 为准:P2P 参见 SDK V2 时序和各语言 `v2/e2ee` 实现,群组参见 [08-AUN-E2EE-Group.md](08-AUN-E2EE-Group.md)。旧 `e2ee.encrypted` 信封互操作才查 [08-AUN-E2EE.md](08-AUN-E2EE.md)。
|
|
1311
1310
|
|
|
1312
1311
|
**错误码**:
|
|
1313
1312
|
|
|
@@ -102,7 +102,7 @@
|
|
|
102
102
|
|
|
103
103
|
| 错误码 | 说明 | 客户端处理 |
|
|
104
104
|
|--------|------|-----------|
|
|
105
|
-
| -33001 | Group not found |
|
|
105
|
+
| -33001 | Group not found | 检查规范化后的 `group_aid`(`group_id` 为兼容参数名) |
|
|
106
106
|
| -33002 | Group state invalid(群状态不允许该操作) | 检查群状态 |
|
|
107
107
|
| -33003 | Group suspended | 等待恢复或联系管理员 |
|
|
108
108
|
| -33004 | Group member limit reached | 不重试 |
|