@agentunion/fastaun-browser 0.2.18 → 0.2.20
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 +26 -0
- package/_packed_docs/CHANGELOG.md +26 -0
- package/_packed_docs/agent.md/SCHEMA.md +173 -0
- package/_packed_docs/agent.md/examples/codeagent-claudecode.md +61 -0
- package/_packed_docs/agent.md/examples/human-developer.md +60 -0
- package/_packed_docs/agent.md/examples/openclaw-lobster.md +52 -0
- package/_packed_docs/agent.md/examples/signed-openclaw-lobster.md +43 -0
- package/_packed_docs/protocol/00-/346/200/273/350/247/210/344/270/216/345/210/206/345/261/202.md +205 -0
- 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 +197 -0
- 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 +549 -0
- package/_packed_docs/protocol/02-/350/257/201/344/271/246/344/270/216/344/277/241/344/273/273/344/275/223/347/263/273.md +810 -0
- package/_packed_docs/protocol/03-Gateway-/350/277/236/346/216/245/346/250/241/345/274/217.md +262 -0
- package/_packed_docs/protocol/04-Peer-/345/255/220/345/215/217/350/256/256.md +180 -0
- package/_packed_docs/protocol/05-Relay-/345/255/220/345/215/217/350/256/256.md +164 -0
- package/_packed_docs/protocol/06-/346/234/215/345/212/241/345/215/217/350/256/256.md +1135 -0
- 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 +234 -0
- package/_packed_docs/protocol/08-AUN-E2EE-Group.md +900 -0
- package/_packed_docs/protocol/08-AUN-E2EE.md +413 -0
- package/_packed_docs/protocol/09-/345/256/211/345/205/250/350/200/203/350/231/221.md +316 -0
- package/_packed_docs/protocol/10-Group-/345/255/220/345/215/217/350/256/256.md +804 -0
- package/_packed_docs/protocol/11-Storage-/345/255/220/345/215/217/350/256/256.md +271 -0
- package/_packed_docs/protocol/12-Stream-/345/255/220/345/215/217/350/256/256.md +329 -0
- package/_packed_docs/protocol/13-Agent/350/241/214/344/270/272/350/247/204/350/214/203.md +141 -0
- package/_packed_docs/protocol/14-/344/272/244/344/272/222/346/234/272/345/210/266-/345/223/215/345/272/224/346/250/241/345/274/217/344/270/216/350/207/252/344/270/273/346/250/241/345/274/217.md +170 -0
- package/_packed_docs/protocol/README.md +71 -0
- package/_packed_docs/protocol/agent.md/SCHEMA.md +118 -0
- package/_packed_docs/protocol/agent.md/examples/codeagent-claudecode.md +61 -0
- package/_packed_docs/protocol/agent.md/examples/human-developer.md +60 -0
- package/_packed_docs/protocol/agent.md/examples/openclaw-lobster.md +52 -0
- package/_packed_docs/protocol/aun-docs-guide.md +49 -0
- package/_packed_docs/protocol/index.md +114 -0
- package/_packed_docs/protocol//350/215/211/346/241/210-agent.md/347/255/276/345/220/215/345/215/217/350/256/256.md +205 -0
- 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 +249 -0
- package/_packed_docs/protocol//351/231/204/345/275/225A-/346/234/257/350/257/255/350/241/250.md +337 -0
- package/_packed_docs/protocol//351/231/204/345/275/225B-/346/211/251/345/261/225/346/200/247/346/214/207/345/215/227.md +80 -0
- package/_packed_docs/protocol//351/231/204/345/275/225C-/347/247/201/351/222/245/347/256/241/347/220/206/344/270/216/350/272/253/344/273/275/346/201/242/345/244/215.md +704 -0
- package/_packed_docs/protocol//351/231/204/345/275/225D-Root_CA_/346/262/273/347/220/206/346/234/272/345/210/266.md +620 -0
- package/_packed_docs/protocol//351/231/204/345/275/225E-Root_CA_/345/207/206/345/205/245/346/265/201/347/250/213.md +605 -0
- package/_packed_docs/protocol//351/231/204/345/275/225F-Issuer_CA_/347/224/263/350/257/267/346/265/201/347/250/213.md +548 -0
- package/_packed_docs/protocol//351/231/204/345/275/225G-AID_/345/255/244/345/204/277/351/242/204/351/230/262/344/270/216/346/225/221/346/217/264/346/234/272/345/210/266.md +513 -0
- package/_packed_docs/protocol//351/231/204/345/275/225H-Identity/346/234/215/345/212/241/345/256/236/347/216/260/346/214/207/345/215/227.md +619 -0
- package/_packed_docs/protocol//351/231/204/345/275/225I-/350/267/250/345/237/237/346/266/210/346/201/257/350/267/257/347/224/261/345/256/236/347/216/260/346/214/207/345/215/227.md +492 -0
- package/_packed_docs/protocol//351/231/204/345/275/225J-/345/256/242/346/210/267/347/253/257/346/216/245/345/205/245/347/244/272/344/276/213.md +402 -0
- package/_packed_docs/protocol//351/231/204/345/275/225K-Agent_Web/345/217/221/347/216/260/345/215/217/350/256/256.md +130 -0
- package/_packed_docs/protocol//351/231/204/345/275/225L-E2EE/345/256/236/347/216/260/346/214/207/345/215/227.md +267 -0
- package/_packed_docs/protocol//351/231/204/345/275/225M-JWT/350/256/244/350/257/201/345/256/236/347/216/260/346/214/207/345/215/227.md +367 -0
- package/_packed_docs/sdk/01-/345/277/253/351/200/237/345/274/200/345/247/213.md +223 -0
- package/_packed_docs/sdk/02-WebSocket/345/215/217/350/256/256.md +354 -0
- package/_packed_docs/sdk/03-/346/240/270/345/277/203/346/246/202/345/277/265.md +172 -0
- package/_packed_docs/sdk/04-/350/277/236/346/216/245/344/270/216/350/256/244/350/257/201.md +373 -0
- package/_packed_docs/sdk/05-E2EE/345/212/240/345/257/206/351/200/232/344/277/241.md +611 -0
- package/_packed_docs/sdk/06-API/346/211/213/345/206/214.md +1152 -0
- package/_packed_docs/sdk/07-/351/224/231/350/257/257/345/244/204/347/220/206.md +150 -0
- package/_packed_docs/sdk/08-/346/234/200/344/275/263/345/256/236/350/267/265.md +89 -0
- package/_packed_docs/sdk/09-custody-api-manual.md +445 -0
- package/_packed_docs/sdk/09-group-rpc-manual.md +1895 -0
- package/_packed_docs/sdk/09-message-rpc-manual.md +597 -0
- package/_packed_docs/sdk/09-meta-rpc-manual.md +142 -0
- package/_packed_docs/sdk/09-payload-reference.md +702 -0
- package/_packed_docs/sdk/09-storage-rpc-manual.md +408 -0
- package/_packed_docs/sdk/09-stream-rpc-manual.md +275 -0
- package/_packed_docs/sdk/AUN_DOCS_GUIDE.md +72 -0
- package/_packed_docs/sdk/INDEX.md +131 -0
- package/_packed_docs/sdk/README.md +307 -0
- package/dist/auth.d.ts +11 -1
- package/dist/auth.d.ts.map +1 -1
- package/dist/auth.js +92 -17
- package/dist/auth.js.map +1 -1
- package/dist/client.d.ts +51 -9
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +394 -122
- package/dist/client.js.map +1 -1
- package/dist/e2ee.d.ts.map +1 -1
- package/dist/e2ee.js +20 -0
- package/dist/e2ee.js.map +1 -1
- package/dist/keystore/index.d.ts +11 -0
- package/dist/keystore/index.d.ts.map +1 -1
- package/dist/keystore/indexeddb.d.ts +35 -0
- package/dist/keystore/indexeddb.d.ts.map +1 -1
- package/dist/keystore/indexeddb.js +91 -0
- package/dist/keystore/indexeddb.js.map +1 -1
- package/dist/namespaces/auth.d.ts +10 -3
- package/dist/namespaces/auth.d.ts.map +1 -1
- package/dist/namespaces/auth.js +94 -15
- package/dist/namespaces/auth.js.map +1 -1
- package/dist/transport.d.ts +9 -1
- package/dist/transport.d.ts.map +1 -1
- package/dist/transport.js +24 -0
- package/dist/transport.js.map +1 -1
- package/package.json +4 -1
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
# AUN SDK Python 文档查阅指南
|
|
2
|
+
|
|
3
|
+
AUN SDK 文档在 `docs/sdk/` 下,索引文件 `docs/sdk/INDEX.md` 分三层,**严格按需逐层加载,禁止一次性读取整个索引**。
|
|
4
|
+
|
|
5
|
+
行区间格式:`L43-49` 表示用 Read 工具读取时读取第 43 行到 49 行。
|
|
6
|
+
|
|
7
|
+
## SDK 文档定位
|
|
8
|
+
|
|
9
|
+
SDK 文档聚焦核心封装:**认证(`client.auth`)**、**元信息与信任根(`client.meta`)** 和 **E2EE(`client.e2ee`)**。AID 托管是可选 HTTP 服务,查 `10-custody-api-manual.md`。
|
|
10
|
+
|
|
11
|
+
其他业务操作(消息、群组、存储等)通过 `client.call(method, params)` 调用 RPC 方法,参数和响应格式见 `docs/sdk/09-*-rpc-manual.md`;`message.send` / `message.thought.put` / `group.send` / `group.thought.put` 的业务 payload 共用格式见 `docs/sdk/09-payload-reference.md`。
|
|
12
|
+
|
|
13
|
+
## 渐进式查阅流程
|
|
14
|
+
|
|
15
|
+
### Step 1:只读 Layer 1(L7-33)
|
|
16
|
+
|
|
17
|
+
列出所有文档名和章节行区间。能直接定位目标 → 跳 Step 4。
|
|
18
|
+
|
|
19
|
+
### Step 2:按需读 Layer 2 对应小节
|
|
20
|
+
|
|
21
|
+
仅当 Step 1 不够时,按关键词读:
|
|
22
|
+
|
|
23
|
+
身份与认证 L39-44 · 连接与状态 L46-51 · E2EE L53-61 · RPC与事件 L63-75 · 配置与存储 L77-83 · 错误处理 L85-88 · AID托管 L44
|
|
24
|
+
|
|
25
|
+
### Step 3:按需读 Layer 3 单篇摘要
|
|
26
|
+
|
|
27
|
+
仅当需要某篇详情但不确定读哪个章节时:
|
|
28
|
+
|
|
29
|
+
快速开始 L94-95 · WebSocket协议 L97-98 · 核心概念 L100-101 · 连接与认证 L103-104 · E2EE加密通信 L106-107 · GROUP-E2EE轮换竞态清单 L109-110 · GROUP-E2EE现状对比与改进建议 L112-113 · API参考 L115-116 · 错误处理 L118-119 · 最佳实践 L121-122 · AID托管 L124-125 · 消息Payload L127-128 · 多语言SDK对齐审查 L130-131
|
|
30
|
+
|
|
31
|
+
大多数问题在摘要层就能解答。
|
|
32
|
+
|
|
33
|
+
### Step 4:读原文目标章节
|
|
34
|
+
|
|
35
|
+
根据前面获得的文档路径和行区间,精确读取对应章节。**只有需要完整分析时才读整篇原文。**
|
|
36
|
+
|
|
37
|
+
## 文档总览
|
|
38
|
+
|
|
39
|
+
| 编号 | 文档 | 定位 |
|
|
40
|
+
|------|------|------|
|
|
41
|
+
| 01 | [快速开始](01-快速开始.md) | 安装、配置、最小示例 |
|
|
42
|
+
| 02 | [WebSocket协议](02-WebSocket协议.md) | 握手流程、消息格式、裸 WebSocket 示例 |
|
|
43
|
+
| 03 | [核心概念](03-核心概念.md) | AID、状态机、认证、E2EE |
|
|
44
|
+
| 04 | [连接与认证](04-连接与认证.md) | 认证封装、call()、on()、连接 |
|
|
45
|
+
| 05 | [E2EE加密通信](05-E2EE加密通信.md) | E2EE封装、ProtectedHeaders、自定义存储 |
|
|
46
|
+
| - | [GROUP-E2EE轮换竞态清单](GROUP-E2EE轮换竞态清单.md) | GROUP epoch key 轮换状态、竞态条件、补测清单 |
|
|
47
|
+
| - | [GROUP-E2EE现状对比与改进建议](GROUP-E2EE现状对比与改进建议.md) | 当前 GROUP E2EE 实现定位、成熟方案对比、风险边界、分阶段改进建议 |
|
|
48
|
+
| 06 | [API手册](06-API手册.md) | AUNClient / AuthNamespace / MetaNamespace(信任根列表与 issuer root 更新) / E2EEManager |
|
|
49
|
+
| 07 | [错误处理](07-错误处理.md) | 错误类层级、错误码、重试 |
|
|
50
|
+
| 08 | [最佳实践](08-最佳实践.md) | 幂等、隔离、资源清理 |
|
|
51
|
+
| 10 | [AID托管API手册](10-custody-api-manual.md) | 手机号验证码、证书与加密私钥备份恢复、跨设备复制 |
|
|
52
|
+
| - | [09-payload-reference](09-payload-reference.md) | `message.send` / `message.thought.put` / `group.send` / `group.thought.put` 共用业务负载格式、类型总览、思考内容、交互卡片/action_card_reply、任务事件、附件引用 |
|
|
53
|
+
| - | [多语言SDK使用场景与调用链路对齐审查清单](多语言SDK使用场景与调用链路对齐审查清单.md) | 多语言场景、调用链路、字段对齐、竞态和服务端风险总表 |
|
|
54
|
+
|
|
55
|
+
## 常见查阅场景
|
|
56
|
+
|
|
57
|
+
| 场景 | 推荐路径 |
|
|
58
|
+
|------|----------|
|
|
59
|
+
| 首次使用 SDK | 01-快速开始 全文 |
|
|
60
|
+
| 裸 WebSocket 或其他语言实现 | 02-WebSocket协议 |
|
|
61
|
+
| 理解 AID / E2EE 原理 | 03-核心概念 对应章节 |
|
|
62
|
+
| 认证 + 连接 + call/on 用法 | 04-连接与认证 |
|
|
63
|
+
| 需要加密通信 | 05-E2EE加密通信 |
|
|
64
|
+
| GROUP E2EE 轮换竞态/测试设计 | [GROUP-E2EE轮换竞态清单](GROUP-E2EE轮换竞态清单.md) |
|
|
65
|
+
| GROUP E2EE 架构评估/演进路线 | [GROUP-E2EE现状对比与改进建议](GROUP-E2EE现状对比与改进建议.md) |
|
|
66
|
+
| 查消息或思考内容 payload 类型和格式 | [09-payload-reference](09-payload-reference.md) |
|
|
67
|
+
| 查某个方法的签名 | 06-API手册 |
|
|
68
|
+
| 遇到报错需排查 | 07-错误处理 |
|
|
69
|
+
| 部署前检查 | 08-最佳实践 |
|
|
70
|
+
| AID 证书和加密私钥托管恢复/跨设备复制 | 10-custody-api-manual |
|
|
71
|
+
| 查 RPC 方法参数 | `docs/sdk/*-rpc-manual.md` |
|
|
72
|
+
| 多语言 SDK 功能 gap / 字段和事件对齐 / 失败分支审查 | [多语言SDK使用场景与调用链路对齐审查清单](多语言SDK使用场景与调用链路对齐审查清单.md) |
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
# AUN SDK 文档索引
|
|
2
|
+
|
|
3
|
+
> 渐进式三层结构。Layer 1 极简地图,总是加载;Layer 2 概念交叉索引,按主题查找时加载;Layer 3 每篇文档的详细摘要,需要深入时加载。
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Layer 1:文档地图
|
|
8
|
+
|
|
9
|
+
| 文档 | 说明 |
|
|
10
|
+
|------|------|
|
|
11
|
+
| [01-快速开始](01-快速开始.md) | 最小示例 · 安装 · 配置 · 核心流程 |
|
|
12
|
+
| [02-WebSocket协议](02-WebSocket协议.md) | 握手流程 · 消息格式 · 裸 WebSocket 示例 |
|
|
13
|
+
| [03-核心概念](03-核心概念.md) | AID · 连接状态机 · 认证流程 · E2EE |
|
|
14
|
+
| [04-连接与认证](04-连接与认证.md) | 创建AID · 连接网关 · 网关发现 · 调用RPC · 事件订阅 |
|
|
15
|
+
| [05-E2EE加密通信](05-E2EE加密通信.md) | E2EE加密消息 · ProtectedHeaders · 会话管理 · 自定义密钥存储 |
|
|
16
|
+
| [GROUP-E2EE轮换竞态清单](GROUP-E2EE轮换竞态清单.md) | GROUP epoch key 轮换状态 · 竞态条件 · 补测清单 |
|
|
17
|
+
| [GROUP-E2EE现状对比与改进建议](GROUP-E2EE现状对比与改进建议.md) | 当前 GROUP E2EE 实现定位 · 成熟方案对比 · 风险边界 · 分阶段改进建议 |
|
|
18
|
+
| [06-API手册](06-API手册.md) | AUNClient · AuthNamespace · MetaNamespace(信任根列表 / issuer root 更新) · E2EEManager · 内置事件 · RPC手册索引 |
|
|
19
|
+
| [07-错误处理](07-错误处理.md) | 错误类层级 · 错误码速查 · 重试策略 |
|
|
20
|
+
| [08-最佳实践](08-最佳实践.md) | 幂等初始化 · 多AID隔离 · 环境变量 · 资源清理 |
|
|
21
|
+
| [10-custody-api-manual](10-custody-api-manual.md) | AID 托管 · 手机号验证码 · 备份恢复 · 跨设备复制 |
|
|
22
|
+
| [多语言SDK使用场景与调用链路对齐审查清单](多语言SDK使用场景与调用链路对齐审查清单.md) | 多语言场景清单 · 调用链路 · 字段对齐 · 竞态与服务端风险 · 旧清单复审 |
|
|
23
|
+
|
|
24
|
+
### RPC 手册
|
|
25
|
+
|
|
26
|
+
| 文档 | 说明 |
|
|
27
|
+
|------|------|
|
|
28
|
+
| [09-payload-reference](09-payload-reference.md) | `message.send` / `message.thought.put` / `group.send` / `group.thought.put` 共用业务负载格式 · `payload.type` 类型总览 · 交互卡片/action_card_reply · 任务事件 · 附件引用 |
|
|
29
|
+
| [09-group-rpc-manual](09-group-rpc-manual.md) | Group 服务 RPC 接口 · 群组创建/加入/成员管理/设置与分发/消息收发/思考内容 · `payload.type` 负载类型 |
|
|
30
|
+
| [09-message-rpc-manual](09-message-rpc-manual.md) | Message 服务 RPC 接口 · 点对点消息发送/拉取/确认/P2P 思考内容 · `payload.type` 负载类型 |
|
|
31
|
+
| [09-meta-rpc-manual](09-meta-rpc-manual.md) | Meta 服务 RPC 接口 · ping/status/信任根列表与 PKI 下载端点 |
|
|
32
|
+
| [09-storage-rpc-manual](09-storage-rpc-manual.md) | Storage 服务 RPC 接口 · 文件上传/下载/对象管理 |
|
|
33
|
+
| [09-stream-rpc-manual](09-stream-rpc-manual.md) | Stream 服务 RPC 接口 · 流式数据传输 |
|
|
34
|
+
|
|
35
|
+
---
|
|
36
|
+
|
|
37
|
+
## Layer 2:概念交叉索引
|
|
38
|
+
|
|
39
|
+
### 身份与认证
|
|
40
|
+
- **AID 格式与结构** → [03-核心概念](03-核心概念.md)
|
|
41
|
+
- **创建 AID** → [04-连接与认证](04-连接与认证.md) · [06-API手册](06-API手册.md)
|
|
42
|
+
- **认证流程(挑战-应答)** → [03-核心概念](03-核心概念.md)
|
|
43
|
+
- **认证失败处理** → [07-错误处理](07-错误处理.md)
|
|
44
|
+
- **AID 证书与加密私钥托管恢复/跨设备复制** → [10-custody-api-manual](10-custody-api-manual.md)
|
|
45
|
+
|
|
46
|
+
### 连接与协议
|
|
47
|
+
- **WebSocket 握手协议** → [02-WebSocket协议](02-WebSocket协议.md)
|
|
48
|
+
- **状态机(4 状态)** → [03-核心概念](03-核心概念.md)
|
|
49
|
+
- **连接网关** → [04-连接与认证](04-连接与认证.md)
|
|
50
|
+
- **网关自动发现** → [04-连接与认证](04-连接与认证.md)
|
|
51
|
+
- **连接状态事件** → [06-API手册](06-API手册.md)
|
|
52
|
+
|
|
53
|
+
### E2EE 端到端加密
|
|
54
|
+
- **E2EE 机制概述** → [03-核心概念](03-核心概念.md)
|
|
55
|
+
- **加密消息收发** → [05-E2EE加密通信](05-E2EE加密通信.md)
|
|
56
|
+
- **会话管理** → [05-E2EE加密通信](05-E2EE加密通信.md)
|
|
57
|
+
- **GROUP epoch key 轮换竞态/补测清单** → [GROUP-E2EE轮换竞态清单](GROUP-E2EE轮换竞态清单.md)
|
|
58
|
+
- **GROUP E2EE 现状对比与演进建议** → [GROUP-E2EE现状对比与改进建议](GROUP-E2EE现状对比与改进建议.md)
|
|
59
|
+
- **E2EEManager API** → [06-API手册](06-API手册.md)
|
|
60
|
+
- **E2EE 错误类** → [07-错误处理](07-错误处理.md)
|
|
61
|
+
- **E2EE 幂等运行** → [08-最佳实践](08-最佳实践.md)
|
|
62
|
+
|
|
63
|
+
### RPC 调用与事件
|
|
64
|
+
- **`client.call()` 模式** → [04-连接与认证](04-连接与认证.md)
|
|
65
|
+
- **`client.on()` 事件订阅** → [04-连接与认证](04-连接与认证.md)
|
|
66
|
+
- **裸 WebSocket RPC 调用** → [02-WebSocket协议](02-WebSocket协议.md)
|
|
67
|
+
- **内置事件列表** → [06-API手册](06-API手册.md)
|
|
68
|
+
- **RPC 手册索引** → [06-API手册](06-API手册.md)
|
|
69
|
+
- **多语言 SDK gap、字段、事件、调用链路对齐审查** → [多语言SDK使用场景与调用链路对齐审查清单](多语言SDK使用场景与调用链路对齐审查清单.md)
|
|
70
|
+
- **消息 payload 类型总览与格式约定** → [09-payload-reference](09-payload-reference.md)
|
|
71
|
+
- **Group RPC 与群设置、群消息、群思考内容收发** → [09-group-rpc-manual](09-group-rpc-manual.md)
|
|
72
|
+
- **Message RPC 与 P2P 消息、P2P 思考内容收发** → [09-message-rpc-manual](09-message-rpc-manual.md)
|
|
73
|
+
- **Meta RPC** → [09-meta-rpc-manual](09-meta-rpc-manual.md)
|
|
74
|
+
- **Storage RPC** → [09-storage-rpc-manual](09-storage-rpc-manual.md)
|
|
75
|
+
- **Stream RPC** → [09-stream-rpc-manual](09-stream-rpc-manual.md)
|
|
76
|
+
|
|
77
|
+
### 配置与存储
|
|
78
|
+
- **构造参数** → [01-快速开始](01-快速开始.md)
|
|
79
|
+
- **数据目录布局** → [01-快速开始](01-快速开始.md)
|
|
80
|
+
- **自定义 KeyStore** → [05-E2EE加密通信](05-E2EE加密通信.md)
|
|
81
|
+
- **自定义 SecretStore** → [05-E2EE加密通信](05-E2EE加密通信.md)
|
|
82
|
+
- **多 AID 隔离** → [08-最佳实践](08-最佳实践.md)
|
|
83
|
+
- **环境变量配置** → [08-最佳实践](08-最佳实践.md)
|
|
84
|
+
|
|
85
|
+
### 错误处理
|
|
86
|
+
- **错误类层级** → [07-错误处理](07-错误处理.md)
|
|
87
|
+
- **错误码对照表** → [07-错误处理](07-错误处理.md)
|
|
88
|
+
- **重试策略** → [07-错误处理](07-错误处理.md)
|
|
89
|
+
|
|
90
|
+
---
|
|
91
|
+
|
|
92
|
+
## Layer 3:文档详细摘要
|
|
93
|
+
|
|
94
|
+
### 01-快速开始
|
|
95
|
+
入门文档。双客户端最小可运行示例(创建 AID → 认证 → 连接 → 消息收发 → 关闭),pip 安装命令,AUNClient 构造参数,数据目录布局。
|
|
96
|
+
|
|
97
|
+
### 02-WebSocket协议
|
|
98
|
+
底层协议细节。连接握手流程(challenge → auth.connect → hello-ok),消息格式(RPC 请求/响应/事件通知),裸 WebSocket 完整示例。适合在其他语言中实现客户端。
|
|
99
|
+
|
|
100
|
+
### 03-核心概念
|
|
101
|
+
SDK 的核心抽象。AID 域名格式身份及本地密钥对管理;连接状态机及自动重连;认证流程(挑战-应答);E2EE 两级离线加密流程。
|
|
102
|
+
|
|
103
|
+
### 04-连接与认证
|
|
104
|
+
SDK 高层封装。`create_aid` + `authenticate` 认证流程;`connect` 参数(含自动重连、心跳、令牌刷新);`client.call()` RPC 调用模式;`client.on()` 事件订阅。
|
|
105
|
+
|
|
106
|
+
### 05-E2EE加密通信
|
|
107
|
+
E2EE 完整收发流程(加密发送 + 监听解密 + 后台消息循环);`protected_headers` 与可验证 `context` 元数据;密钥管理(prekey 缓存 / replay guard / group epoch);自定义 `KeyStore` / `SecretStore` Protocol。
|
|
108
|
+
|
|
109
|
+
### GROUP-E2EE轮换竞态清单
|
|
110
|
+
GROUP epoch key 两阶段轮换的状态边界和竞态检查项。覆盖 pending 期间成员变更、leader 竞争、分发/ack/commit 失败、stale pending、key recovery、旧 epoch 保留等场景,用于补充测试和实现审查。
|
|
111
|
+
|
|
112
|
+
### GROUP-E2EE现状对比与改进建议
|
|
113
|
+
当前 GROUP E2EE 实现的架构评估。对比 Signal Private Groups、WhatsApp Sender Key、Matrix Megolm 和 MLS,明确 AUN 当前处于“内容 E2EE + 服务端可见成员关系”的安全层级;列出旧 epoch key 恢复、signed group state commit、manifest hash / epoch chain 绑定、多设备模型和 epoch 内前向安全等改进方向。
|
|
114
|
+
|
|
115
|
+
### 06-API手册
|
|
116
|
+
完整 API 文档。AUNClient 构造函数/属性/方法;AuthNamespace 方法;E2EEManager 方法;内置事件列表;RPC 手册索引。
|
|
117
|
+
|
|
118
|
+
### 07-错误处理
|
|
119
|
+
`AUNError` 基类及子类层级;错误属性;错误码速查表;指数退避重试策略;常见错误场景。
|
|
120
|
+
|
|
121
|
+
### 08-最佳实践
|
|
122
|
+
幂等连接初始化;安全关闭;E2EE 幂等运行;多 AID 隔离;环境变量驱动配置;资源清理。
|
|
123
|
+
|
|
124
|
+
### 10-custody-api-manual
|
|
125
|
+
AID 托管 HTTP API。通过手机号验证码上传和下载 AID 证书、客户端加密后的私钥密文;定义 `send-code`、`bind-phone`、`restore-phone` 主流程;补充旧设备 AID token 授权的跨设备复制流程、CT 记录要求及安全边界。
|
|
126
|
+
|
|
127
|
+
### 09-payload-reference
|
|
128
|
+
`message.send`、`message.thought.put`、`group.send` 和 `group.thought.put` 共用的业务 payload 约定。包含 `payload.type` 类型总览、信封字段边界、公共辅助字段、提及语义、`thought` 思考内容、群消息 `dispatch_mode`、各类型字段格式、交互卡片及 `action_card_reply`、`status` / `event` 任务生命周期约定、附件引用规范和降级处理建议。
|
|
129
|
+
|
|
130
|
+
### 多语言SDK使用场景与调用链路对齐审查清单
|
|
131
|
+
多语言 SDK 与服务端的总审查文档。覆盖使用场景清单、主调用链路、错误/超时/竞态分支、字段与事件对齐矩阵、高影响问题总表,以及旧清单复审结论。
|
|
@@ -0,0 +1,307 @@
|
|
|
1
|
+
# AUN Protocol — Python SDK
|
|
2
|
+
|
|
3
|
+
## 概述
|
|
4
|
+
|
|
5
|
+
AUN(Agent Union Network)定义 Agent 之间安全通信的标准接口——基于 WebSocket + JSON-RPC 2.0,涵盖身份、认证、消息和 Agent 间自主交互,不绑定单一通信拓扑。
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## 核心要点
|
|
10
|
+
|
|
11
|
+
**问题**:AI Agent 被困在各自的平台里,无法跨域通信与协作。
|
|
12
|
+
|
|
13
|
+
**AUN 的答案**:
|
|
14
|
+
|
|
15
|
+
- **AID 身份**:`{name}.{issuer}` 格式的全局唯一标识(如 `alice.agentid.pub`),基于 X.509 证书链
|
|
16
|
+
- **三种连接模式**:协议层定义 Gateway(标准接入)、Peer(点对点直连)、Relay(中继转发)三种模式;当前各语言 SDK 的连接层稳定支持 Gateway,Peer/Relay 仍处于协议定义状态
|
|
17
|
+
- **Agent 工具使用展示**:原生 `tool_call` / `tool_result` payload 类型,用于在 IM/查看端可视化展示 Agent 的工具使用过程(**不是跨 Agent 能力调用契约**)
|
|
18
|
+
|
|
19
|
+
```
|
|
20
|
+
┌─ Gateway ──→ 标准接入(浏览器/移动端/服务端)
|
|
21
|
+
Agent A ← WSS → ─┤─ Peer ─────→ 点对点直连(同内网/低延迟)
|
|
22
|
+
└─ Relay ────→ 中继转发(NAT 穿透/轻量部署)
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
**本 SDK** 是 AUN 协议的 Python 客户端实现。`pip install fastaun` 即可使用。
|
|
26
|
+
|
|
27
|
+
---
|
|
28
|
+
|
|
29
|
+
## 深入了解
|
|
30
|
+
|
|
31
|
+
### AID 身份体系
|
|
32
|
+
|
|
33
|
+
AID(Agent Identifier)是 AUN 的核心身份标识,格式为 `{name}.{issuer}`:
|
|
34
|
+
|
|
35
|
+
```
|
|
36
|
+
alice.agentid.pub ← agentid.pub 签发的 Agent
|
|
37
|
+
weather-bot.aun.pub ← aun.pub 签发的天气 Agent
|
|
38
|
+
data-agent.corp.io ← 企业自有域名签发的内部 Agent
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
任何拥有域名的组织都可以成为 Issuer,签发自己的 AID。AUN 采用标准 X.509 v3 证书和 ECDSA 算法,通过**四级证书链**建立联邦信任机制:
|
|
42
|
+
|
|
43
|
+
```
|
|
44
|
+
Root CA → Registry CA → Issuer CA → Agent 证书
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
### 协议分层
|
|
48
|
+
|
|
49
|
+
```
|
|
50
|
+
Layer 4: 服务层 — auth服务、ca服务、message服务、storage服务、group服务、mail服务、
|
|
51
|
+
stream服务、meta服务、search服务、relay服务、泛域名解析服务
|
|
52
|
+
(peer.*、task.* 仅有协议定义,无对应服务)
|
|
53
|
+
Layer 3: 协议层 — auth.* / ca.* / message.* / storage.* / group.* / mail.* / stream.* /
|
|
54
|
+
meta.* / search.* / task.* / peer.* / relay.*
|
|
55
|
+
Layer 2: 通信层 — WebSocket + JSON-RPC 2.0 / HTTP/HTTPS
|
|
56
|
+
Layer 1: 安全层 — TLS 1.3(传输加密)+ AUN E2EE(端到端加密)
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
### 三种连接模式
|
|
60
|
+
|
|
61
|
+
| 模式 | 认证方式 | 适用场景 |
|
|
62
|
+
|------|---------|---------|
|
|
63
|
+
| **Gateway** | `auth.*` JWT 认证 | 浏览器、移动端、标准接入 |
|
|
64
|
+
| **Peer** | `peer.*` 证书互验 | 同内网、已知地址、低延迟 |
|
|
65
|
+
| **Relay** | `relay.*` 穿透中继 | 双方在 NAT 后、轻量中继 |
|
|
66
|
+
|
|
67
|
+
三种模式共享相同的 AID 身份、X.509 证书信任体系和业务层 API(`message.*`、`meta.*` 等)。
|
|
68
|
+
|
|
69
|
+
**当前 SDK 实现状态**:
|
|
70
|
+
|
|
71
|
+
| SDK | Gateway | Peer | Relay |
|
|
72
|
+
|-----|---------|------|-------|
|
|
73
|
+
| Python | 已实现 | `connect(topology={"mode":"peer"})` 明确报未实现 | `connect(topology={"mode":"relay"})` 明确报未实现 |
|
|
74
|
+
| Browser JS | 已实现 | 明确报未实现 | 明确报未实现 |
|
|
75
|
+
| TypeScript | 已实现 | 明确报未实现 | 明确报未实现 |
|
|
76
|
+
| Go | 已实现(当前按 `gateway` URL 建立会话) | 未实现独立 peer 传输 | 未实现独立 relay 传输 |
|
|
77
|
+
|
|
78
|
+
> `peer.*` / `relay.*` 出现在协议表中,表示协议命名空间已定义,不代表 SDK 的 `connect()` 已支持对应拓扑。
|
|
79
|
+
|
|
80
|
+
### 消息类型
|
|
81
|
+
|
|
82
|
+
| type | 说明 | 场景 |
|
|
83
|
+
|------|------|------|
|
|
84
|
+
| `text` | 纯文本消息 | Agent 间自然语言交流 |
|
|
85
|
+
| `json` | 结构化数据消息 | 传递参数、配置、状态 |
|
|
86
|
+
| `tool-call` | **Agent 工具调用过程标注**(请求段) | 由发送方标注自身正在调用的本地工具,供查看端渲染 |
|
|
87
|
+
| `tool-result` | **Agent 工具调用过程标注**(结果段) | 由同一发送方标注本地工具的执行结果,供查看端渲染 |
|
|
88
|
+
| `event` | 事件通知 | 状态变更、异步回调 |
|
|
89
|
+
| `binary-ref` | 文件引用 | 文件分享(图片、视频、文档等,实际数据走 storage,通过 `mime_type` 区分文件类型) |
|
|
90
|
+
|
|
91
|
+
`tool-call` / `tool-result` 由**同一发送方**先后发出,描述自己的工具使用过程;接收方收到后**不需要执行、不需要响应**,仅用于结构化展示(如 IM 的工具气泡、折叠卡片)。它不是跨 Agent 调用契约。
|
|
92
|
+
|
|
93
|
+
---
|
|
94
|
+
|
|
95
|
+
## 协议详解
|
|
96
|
+
|
|
97
|
+
### 架构总览
|
|
98
|
+
|
|
99
|
+
```mermaid
|
|
100
|
+
graph TD
|
|
101
|
+
subgraph Client["客户端 / Agent"]
|
|
102
|
+
Browser["浏览器"]
|
|
103
|
+
Mobile["移动端"]
|
|
104
|
+
Desktop["桌面/服务器 Agent"]
|
|
105
|
+
end
|
|
106
|
+
|
|
107
|
+
subgraph Access["接入模式"]
|
|
108
|
+
GW["Gateway"]
|
|
109
|
+
Peer["Peer 直连"]
|
|
110
|
+
Relay["Relay 中继"]
|
|
111
|
+
end
|
|
112
|
+
|
|
113
|
+
subgraph Infra["基础设施"]
|
|
114
|
+
Auth["Auth 服务 / Issuer CA"]
|
|
115
|
+
Roots["Root CA 列表"]
|
|
116
|
+
end
|
|
117
|
+
|
|
118
|
+
subgraph Services["AUN 服务"]
|
|
119
|
+
direction LR
|
|
120
|
+
Message["Message"] --- Group["Group"] --- Storage["Storage"] --- Stream["Stream"]
|
|
121
|
+
end
|
|
122
|
+
|
|
123
|
+
Browser --> GW
|
|
124
|
+
Mobile --> GW
|
|
125
|
+
Desktop --> GW
|
|
126
|
+
Desktop -.-> Peer
|
|
127
|
+
Desktop --> Relay
|
|
128
|
+
|
|
129
|
+
GW --> Services
|
|
130
|
+
|
|
131
|
+
Browser -.证书/JWT.-> Auth
|
|
132
|
+
Desktop -.证书/JWT.-> Auth
|
|
133
|
+
Auth --> Roots
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
- **Auth 服务 / Issuer CA** 是必须的基础设施(AID 注册、证书签发、JWT 签发)
|
|
137
|
+
- **Gateway** 是最常见的接入方式,但不是协议唯一入口
|
|
138
|
+
- **Peer / Relay** 模式下,身份验证基于证书链,本地即可完成
|
|
139
|
+
|
|
140
|
+
### 协议层(RPC 方法)
|
|
141
|
+
|
|
142
|
+
| 命名空间 | 职责 | 关键方法 |
|
|
143
|
+
|----------|------|----------|
|
|
144
|
+
| `auth.*` | 身份认证、JWT 签发与刷新 | create_aid / authenticate / refresh_token |
|
|
145
|
+
| `peer.*` | 对等认证、证书互验 | hello / verify / establish |
|
|
146
|
+
| `relay.*` | 中继注册与转发 | register / forward / unregister |
|
|
147
|
+
| `message.*` | 消息收发、离线队列、P2P 思考内容 | send / pull / ack / recall / thought.put / thought.get |
|
|
148
|
+
| `meta.*` | 元信息查询 | ping / status / trust_roots |
|
|
149
|
+
| `group.*` | 群组生命周期、成员管理、群设置、群消息 | create / invite / set_settings / send / thought.put / thought.get / dissolve |
|
|
150
|
+
| `storage.*` | 文件上传下载、权限管理 | upload / download / share |
|
|
151
|
+
| `stream.*` | 实时流式传输(推流 WS / 拉流 SSE) | create / close / get_info / list_active |
|
|
152
|
+
| `mail.*` | 异步邮件式消息 | send / list / read |
|
|
153
|
+
| `search.*` | Agent 与能力搜索发现 | query / browse |
|
|
154
|
+
| `task.*` | 跨 Agent 任务协作 | create / assign / update / complete |
|
|
155
|
+
|
|
156
|
+
协议层可由用户自定义扩展命名空间。
|
|
157
|
+
|
|
158
|
+
> `peer.*` / `relay.*` 目前主要是协议规范与服务侧能力定义;当前 SDK 的连接建立与会话生命周期仍以 Gateway 为主。
|
|
159
|
+
|
|
160
|
+
### 消息层
|
|
161
|
+
|
|
162
|
+
AUN 使用 JSON-RPC 2.0 原生三类消息:
|
|
163
|
+
|
|
164
|
+
| 类型 | 有 `id` | 说明 |
|
|
165
|
+
|------|:-------:|------|
|
|
166
|
+
| **Request** | 是 | 调用方法,期望对端返回 Response |
|
|
167
|
+
| **Response** | 是 | 对 Request 的回复(`result` 或 `error`) |
|
|
168
|
+
| **Notification** | 否 | 单向通知,无需回复 |
|
|
169
|
+
|
|
170
|
+
命名约定区分用途:
|
|
171
|
+
|
|
172
|
+
| 前缀 | 示例 | 用途 |
|
|
173
|
+
|------|------|------|
|
|
174
|
+
| `namespace.action` | `message.send` | Request 方法名 |
|
|
175
|
+
| `event/xxx` | `event/message.received` | 业务层事件推送 |
|
|
176
|
+
| `notification/xxx` | `notification/initialized` | 协议级通知 |
|
|
177
|
+
|
|
178
|
+
### 安全模型
|
|
179
|
+
|
|
180
|
+
- **四级证书链**:Root CA → Registry CA → Issuer CA → Agent 证书,双向验证
|
|
181
|
+
- **Challenge-Response**:Nonce 防重放 + 时间戳验证
|
|
182
|
+
- **Token 体系**:access_token(短期)+ refresh_token(长期,一次性)
|
|
183
|
+
- **E2EE**:协议层可扩展多种密码学套件,当前 Python SDK 仅实现 P-256 + HKDF-SHA256 + AES-256-GCM。可叠加于任意连接模式
|
|
184
|
+
|
|
185
|
+
> **⚠️ V2 群 E2EE 安全等级警示**
|
|
186
|
+
>
|
|
187
|
+
> V2 群消息加密强度取决于群的 `join_mode`:
|
|
188
|
+
>
|
|
189
|
+
> - **end_to_end(真正端到端)**:`approval` / `closed` 群。新成员必须经 owner/admin 签名确认,可防服务端注入幽灵成员窃听
|
|
190
|
+
> - **transport(仅传输加密)**:`open` / `invite_code` / `invite_only` 群。任何人可自由入群,wrap 接收方不绑定到授权成员,**E2EE 等同传输层加密,不提供"仅授权成员可读"保证**
|
|
191
|
+
>
|
|
192
|
+
> `group.v2.bootstrap` 响应中的 `e2ee_security_level` 字段标识当前群的安全等级。**UI 应在 transport 等级群中显著提示用户"非端到端加密"**,避免用户对安全保证产生误判。
|
|
193
|
+
|
|
194
|
+
### Gateway 模式连接流程
|
|
195
|
+
|
|
196
|
+
```mermaid
|
|
197
|
+
sequenceDiagram
|
|
198
|
+
participant C as Agent
|
|
199
|
+
participant G as Gateway
|
|
200
|
+
|
|
201
|
+
C->>G: WebSocket 连接
|
|
202
|
+
G->>C: challenge(nonce, protocol, auth_methods)
|
|
203
|
+
C->>G: auth.connect(nonce, token, protocol)
|
|
204
|
+
G->>C: hello-ok(identity, capabilities)
|
|
205
|
+
Note over C,G: 握手完成,进入双向 RPC / 事件通信
|
|
206
|
+
C->>G: message.send / group.create / ...
|
|
207
|
+
G->>C: event/message.received / ...
|
|
208
|
+
```
|
|
209
|
+
|
|
210
|
+
### Agent 生命周期
|
|
211
|
+
|
|
212
|
+
```mermaid
|
|
213
|
+
stateDiagram-v2
|
|
214
|
+
[*] --> 未注册
|
|
215
|
+
未注册 --> 已注册: create_aid(生成密钥对 + 签发证书)
|
|
216
|
+
已注册 --> 已认证: authenticate(Challenge-Response)
|
|
217
|
+
已认证 --> 已连接: connect(WebSocket)
|
|
218
|
+
已连接 --> 已连接: call / on(业务操作)
|
|
219
|
+
已连接 --> 断线重连: 网络断开
|
|
220
|
+
断线重连 --> 已连接: Token 有效
|
|
221
|
+
断线重连 --> 已注册: Token 过期
|
|
222
|
+
已连接 --> 已注册: close / logout
|
|
223
|
+
已注册 --> [*]: deregister
|
|
224
|
+
```
|
|
225
|
+
|
|
226
|
+
### AUN 协议完整文档
|
|
227
|
+
|
|
228
|
+
协议文档随 SDK 包一起分发,安装后位于 `aun_core/docs/protocol/`:
|
|
229
|
+
|
|
230
|
+
| 文档 | 内容 |
|
|
231
|
+
|------|------|
|
|
232
|
+
| [00-总览与分层](../src/aun_core/docs/protocol/00-总览与分层.md) | 协议总览、分层架构 |
|
|
233
|
+
| [01-身份与凭证协议](../src/aun_core/docs/protocol/01-身份与凭证协议-auth.md) | auth.* 方法定义 |
|
|
234
|
+
| [02-证书与信任体系](../src/aun_core/docs/protocol/02-证书与信任体系.md) | 四级证书链、信任模型 |
|
|
235
|
+
| [03-Gateway连接模式](../src/aun_core/docs/protocol/03-Gateway-连接模式.md) | Gateway 连接流程 |
|
|
236
|
+
| [04-Peer子协议](../src/aun_core/docs/protocol/04-Peer-子协议.md) | 对等认证 |
|
|
237
|
+
| [05-Relay子协议](../src/aun_core/docs/protocol/05-Relay-子协议.md) | 中继转发 |
|
|
238
|
+
| [06-服务协议](../src/aun_core/docs/protocol/06-服务协议.md) | message/meta/search/task/group/stream |
|
|
239
|
+
| [08-AUN-E2EE](../src/aun_core/docs/protocol/08-AUN-E2EE.md) | 端到端加密 |
|
|
240
|
+
| [10-Group子协议](../src/aun_core/docs/protocol/10-Group-子协议.md) | 群组管理 |
|
|
241
|
+
| [11-Storage子协议](../src/aun_core/docs/protocol/11-Storage-子协议.md) | 对象存储 |
|
|
242
|
+
| [12-Stream子协议](../src/aun_core/docs/protocol/12-Stream-子协议.md) | 实时流式传输 |
|
|
243
|
+
|
|
244
|
+
---
|
|
245
|
+
|
|
246
|
+
## SDK 快速开始
|
|
247
|
+
|
|
248
|
+
```bash
|
|
249
|
+
pip install fastaun
|
|
250
|
+
```
|
|
251
|
+
|
|
252
|
+
```python
|
|
253
|
+
import asyncio, random
|
|
254
|
+
from aun_core import AUNClient
|
|
255
|
+
|
|
256
|
+
DOMAIN = "agentid.pub"
|
|
257
|
+
ALICE = f"alice-{random.randint(1000,9999)}.{DOMAIN}"
|
|
258
|
+
BOB = f"bob-{random.randint(1000,9999)}.{DOMAIN}"
|
|
259
|
+
|
|
260
|
+
async def create_client(aid: str) -> tuple[AUNClient, dict]:
|
|
261
|
+
client = AUNClient({"aun_path": f"~/.aun/{aid}"})
|
|
262
|
+
identity = client._auth.load_identity_or_none(aid)
|
|
263
|
+
if not identity:
|
|
264
|
+
await client.auth.create_aid({"aid": aid})
|
|
265
|
+
auth = await client.auth.authenticate({"aid": aid})
|
|
266
|
+
return client, auth
|
|
267
|
+
|
|
268
|
+
async def main():
|
|
269
|
+
alice, alice_auth = await create_client(ALICE)
|
|
270
|
+
bob, bob_auth = await create_client(BOB)
|
|
271
|
+
|
|
272
|
+
received = asyncio.Event()
|
|
273
|
+
bob.on("message.received", lambda e: (print(f"Bob 收到: {e['payload']}"), received.set()))
|
|
274
|
+
|
|
275
|
+
await alice.connect(alice_auth, {})
|
|
276
|
+
await bob.connect(bob_auth, {})
|
|
277
|
+
|
|
278
|
+
await alice.call("message.send", {
|
|
279
|
+
"to": BOB,
|
|
280
|
+
"payload": {"type": "text", "text": "Hello from Alice!"},
|
|
281
|
+
})
|
|
282
|
+
|
|
283
|
+
try:
|
|
284
|
+
await asyncio.wait_for(received.wait(), timeout=5.0)
|
|
285
|
+
except asyncio.TimeoutError:
|
|
286
|
+
pull = await bob.call("message.pull", {"after_seq": 0, "limit": 10})
|
|
287
|
+
for m in pull.get("messages", []):
|
|
288
|
+
print(f"Bob 拉取: {m.get('payload')}")
|
|
289
|
+
|
|
290
|
+
await alice.close()
|
|
291
|
+
await bob.close()
|
|
292
|
+
|
|
293
|
+
asyncio.run(main())
|
|
294
|
+
```
|
|
295
|
+
|
|
296
|
+
### SDK 文档
|
|
297
|
+
|
|
298
|
+
| 章节 | 说明 |
|
|
299
|
+
|------|------|
|
|
300
|
+
| [01-快速开始](01-快速开始.md) | 安装、配置、双客户端消息收发完整示例 |
|
|
301
|
+
| [02-WebSocket协议](02-WebSocket协议.md) | 握手流程、消息格式、裸 WebSocket 示例 |
|
|
302
|
+
| [03-核心概念](03-核心概念.md) | AID、连接状态机、认证流程、E2EE |
|
|
303
|
+
| [04-连接与认证](04-连接与认证.md) | 认证封装、call()、on()、网关发现 |
|
|
304
|
+
| [05-E2EE加密通信](05-E2EE加密通信.md) | 端到端加密收发、ProtectedHeaders、密钥管理、自定义存储 |
|
|
305
|
+
| [06-API手册](06-API手册.md) | AUNClient / AuthNamespace / E2EEManager 完整 API |
|
|
306
|
+
| [07-错误处理](07-错误处理.md) | 错误类层级、错误码速查、重试策略 |
|
|
307
|
+
| [08-最佳实践](08-最佳实践.md) | 幂等初始化、多 AID 隔离、资源清理 |
|
package/dist/auth.d.ts
CHANGED
|
@@ -5,6 +5,7 @@ import { type IdentityRecord, type JsonObject, type RpcMessage, type RpcParams,
|
|
|
5
5
|
interface AuthContext extends JsonObject {
|
|
6
6
|
token?: string;
|
|
7
7
|
identity?: IdentityRecord;
|
|
8
|
+
hello?: JsonObject;
|
|
8
9
|
}
|
|
9
10
|
interface TransportLike {
|
|
10
11
|
call(method: string, params: RpcParams): Promise<RpcResult>;
|
|
@@ -69,6 +70,9 @@ export declare class AuthFlow {
|
|
|
69
70
|
createAid(gatewayUrl: string, aid: string): Promise<JsonObject>;
|
|
70
71
|
/**
|
|
71
72
|
* 认证已有 AID — login1/login2 双阶段流程。
|
|
73
|
+
*
|
|
74
|
+
* 优先复用 keystore 里的 cached access_token(未过期且有 refresh_token),
|
|
75
|
+
* 避免每次 authenticate 都走两阶段重登的网络往返。与 Python SDK 行为对齐。
|
|
72
76
|
*/
|
|
73
77
|
authenticate(gatewayUrl: string, aid?: string): Promise<JsonObject>;
|
|
74
78
|
/**
|
|
@@ -82,7 +86,10 @@ export declare class AuthFlow {
|
|
|
82
86
|
deviceId?: string;
|
|
83
87
|
slotId?: string;
|
|
84
88
|
deliveryMode?: JsonObject | null;
|
|
85
|
-
|
|
89
|
+
connectionKind?: string;
|
|
90
|
+
shortTtlMs?: number;
|
|
91
|
+
extraInfo?: Record<string, unknown>;
|
|
92
|
+
}): Promise<JsonObject>;
|
|
86
93
|
/**
|
|
87
94
|
* 连接会话 — 多策略认证:显式 token → 缓存 token → refresh → 重新登录。
|
|
88
95
|
*/
|
|
@@ -91,6 +98,9 @@ export declare class AuthFlow {
|
|
|
91
98
|
deviceId?: string;
|
|
92
99
|
slotId?: string;
|
|
93
100
|
deliveryMode?: JsonObject | null;
|
|
101
|
+
connectionKind?: string;
|
|
102
|
+
shortTtlMs?: number;
|
|
103
|
+
extraInfo?: Record<string, unknown>;
|
|
94
104
|
}): Promise<AuthContext>;
|
|
95
105
|
/**
|
|
96
106
|
* 刷新 token。
|
package/dist/auth.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../src/auth.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,cAAc,EAAkE,MAAM,aAAa,CAAC;AAM7G,OAAO,EAEL,KAAK,cAAc,EACnB,KAAK,UAAU,EAEf,KAAK,UAAU,EACf,KAAK,SAAS,EACd,KAAK,SAAS,EACf,MAAM,YAAY,CAAC;AAwFpB,UAAU,WAAY,SAAQ,UAAU;IACtC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../src/auth.ts"],"names":[],"mappings":"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"}
|