@agentunion/fastaun-browser 0.4.12 → 0.5.0
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 +480 -359
- package/_packed_docs/CHANGELOG.md +480 -359
- package/_packed_docs/INDEX.md +111 -53
- package/_packed_docs/KITE_DOCS_GUIDE.md +43 -29
- package/_packed_docs/agent.md/SCHEMA.md +2 -0
- package/_packed_docs/agent.md/examples/codeagent-claudecode.md +2 -0
- package/_packed_docs/agent.md/examples/human-developer.md +2 -0
- package/_packed_docs/agent.md/examples/openclaw-lobster.md +2 -0
- package/_packed_docs/agent.md/examples/signed-openclaw-lobster.md +2 -0
- 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 +2 -0
- package/_packed_docs/cli/AUN-CLI/350/256/276/350/256/241/346/226/207/346/241/243.md +265 -686
- package/_packed_docs/collab-gateway-boundary-test-report.md +164 -0
- package/_packed_docs/design/2026-05-22-aun-rpc-trace-enhancement.md +2 -0
- package/_packed_docs/design/AUNClient/346/213/206/345/210/206/351/207/215/346/236/204/346/211/247/350/241/214/346/226/271/346/241/210.md +2 -0
- package/_packed_docs/design/E2EE_V2/347/256/200/345/214/226/344/270/2721DH/345/212/240Per-AID_Wrap/346/226/271/346/241/210.md +2 -0
- package/_packed_docs/design//350/267/250/350/257/255/350/250/200/345/256/271/345/231/250E2E/346/265/213/350/257/225/346/226/271/346/241/210.md +2 -0
- package/_packed_docs/protocol/00-/346/200/273/350/247/210/344/270/216/345/210/206/345/261/202.md +2 -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 +2 -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 +2 -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 +2 -0
- package/_packed_docs/protocol/03-Gateway-/350/277/236/346/216/245/346/250/241/345/274/217.md +2 -0
- package/_packed_docs/protocol/04-Peer-/345/255/220/345/215/217/350/256/256.md +2 -0
- package/_packed_docs/protocol/05-Relay-/345/255/220/345/215/217/350/256/256.md +2 -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 +2 -0
- package/_packed_docs/protocol/08-AUN-E2EE-Group.md +2 -0
- package/_packed_docs/protocol/08-AUN-E2EE.md +2 -0
- package/_packed_docs/protocol/09-/345/256/211/345/205/250/350/200/203/350/231/221.md +2 -0
- package/_packed_docs/protocol/10-Group-/345/255/220/345/215/217/350/256/256.md +28 -85
- package/_packed_docs/protocol/11-Storage-/345/255/220/345/215/217/350/256/256.md +49 -0
- package/_packed_docs/protocol/12-Stream-/345/255/220/345/215/217/350/256/256.md +2 -0
- package/_packed_docs/protocol/13-Agent/350/241/214/344/270/272/350/247/204/350/214/203.md +2 -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 +2 -0
- 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 +2 -0
- package/_packed_docs/protocol/README.md +2 -0
- package/_packed_docs/protocol/agent.md/SCHEMA.md +2 -0
- package/_packed_docs/protocol/agent.md/examples/codeagent-claudecode.md +2 -0
- package/_packed_docs/protocol/agent.md/examples/human-developer.md +2 -0
- package/_packed_docs/protocol/agent.md/examples/openclaw-lobster.md +2 -0
- package/_packed_docs/protocol/aun-docs-guide.md +2 -0
- package/_packed_docs/protocol/index.md +3 -1
- 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 +2 -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 +2 -0
- package/_packed_docs/protocol//351/231/204/345/275/225A-/346/234/257/350/257/255/350/241/250.md +2 -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 +2 -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 +2 -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 +2 -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 +2 -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 +2 -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 +2 -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 +2 -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 +2 -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 +2 -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 +2 -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 +2 -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 +2 -0
- package/_packed_docs/protocol//351/231/204/345/275/225N-/345/210/206/345/270/203/345/274/217Trace/345/215/217/350/256/256.md +2 -0
- package/_packed_docs/sdk/01-/345/277/253/351/200/237/345/274/200/345/247/213.md +2 -0
- package/_packed_docs/sdk/02-WebSocket/345/215/217/350/256/256.md +2 -0
- package/_packed_docs/sdk/03-/346/240/270/345/277/203/346/246/202/345/277/265.md +2 -0
- package/_packed_docs/sdk/04-/350/277/236/346/216/245/344/270/216/350/256/244/350/257/201.md +2 -0
- package/_packed_docs/sdk/05-E2EE/345/212/240/345/257/206/351/200/232/344/277/241.md +2 -0
- package/_packed_docs/sdk/06-API/346/211/213/345/206/214.md +283 -267
- package/_packed_docs/sdk/07-/351/224/231/350/257/257/345/244/204/347/220/206.md +4 -1
- package/_packed_docs/sdk/08-/346/234/200/344/275/263/345/256/236/350/267/265.md +2 -0
- package/_packed_docs/sdk/09-collab-rpc-manual.md +550 -0
- package/_packed_docs/sdk/09-custody-api-manual.md +2 -0
- package/_packed_docs/sdk/09-group-rpc-manual.md +197 -445
- package/_packed_docs/sdk/09-message-rpc-manual.md +8 -7
- package/_packed_docs/sdk/09-meta-rpc-manual.md +2 -0
- package/_packed_docs/sdk/09-payload-reference.md +2 -0
- package/_packed_docs/sdk/09-proxy-rpc-manual.md +2 -0
- package/_packed_docs/sdk/09-storage-rpc-manual.md +952 -279
- package/_packed_docs/sdk/09-stream-rpc-manual.md +2 -0
- package/_packed_docs/sdk/AUN_DOCS_GUIDE.md +33 -20
- 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 +2 -0
- package/_packed_docs/sdk/INDEX.md +46 -29
- package/_packed_docs/sdk/Notify/351/200/232/347/237/245/346/226/271/346/241/210.md +2 -0
- package/_packed_docs/sdk/README.md +17 -15
- package/dist/aid-store.d.ts +25 -0
- package/dist/aid-store.d.ts.map +1 -1
- package/dist/aid-store.js +89 -8
- package/dist/aid-store.js.map +1 -1
- package/dist/auth.d.ts +2 -0
- package/dist/auth.d.ts.map +1 -1
- package/dist/auth.js +98 -9
- package/dist/auth.js.map +1 -1
- package/dist/bundle.js +19156 -16554
- package/dist/client/delivery.d.ts +5 -0
- package/dist/client/delivery.d.ts.map +1 -1
- package/dist/client/delivery.js +169 -15
- package/dist/client/delivery.js.map +1 -1
- package/dist/client/rpc-pipeline.d.ts +1 -0
- package/dist/client/rpc-pipeline.d.ts.map +1 -1
- package/dist/client/rpc-pipeline.js +76 -34
- package/dist/client/rpc-pipeline.js.map +1 -1
- package/dist/client/v2-e2ee.d.ts.map +1 -1
- package/dist/client/v2-e2ee.js +67 -8
- package/dist/client/v2-e2ee.js.map +1 -1
- package/dist/client.d.ts +31 -0
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +313 -23
- package/dist/client.js.map +1 -1
- package/dist/collab/client.d.ts +39 -0
- package/dist/collab/client.d.ts.map +1 -0
- package/dist/collab/client.js +124 -0
- package/dist/collab/client.js.map +1 -0
- package/dist/collab/errors.d.ts +16 -0
- package/dist/collab/errors.d.ts.map +1 -0
- package/dist/collab/errors.js +60 -0
- package/dist/collab/errors.js.map +1 -0
- package/dist/collab/index.d.ts +4 -0
- package/dist/collab/index.d.ts.map +1 -0
- package/dist/collab/index.js +4 -0
- package/dist/collab/index.js.map +1 -0
- package/dist/collab/types.d.ts +111 -0
- package/dist/collab/types.d.ts.map +1 -0
- package/dist/collab/types.js +2 -0
- package/dist/collab/types.js.map +1 -0
- package/dist/crypto.d.ts +6 -0
- package/dist/crypto.d.ts.map +1 -1
- package/dist/crypto.js +6 -0
- package/dist/crypto.js.map +1 -1
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +16 -1
- package/dist/errors.js.map +1 -1
- package/dist/facades.d.ts +89 -0
- package/dist/facades.d.ts.map +1 -0
- package/dist/facades.js +228 -0
- package/dist/facades.js.map +1 -0
- package/dist/group-fs.d.ts +103 -0
- package/dist/group-fs.d.ts.map +1 -0
- package/dist/group-fs.js +496 -0
- package/dist/group-fs.js.map +1 -0
- package/dist/group-resources.d.ts +98 -0
- package/dist/group-resources.d.ts.map +1 -0
- package/dist/group-resources.js +635 -0
- package/dist/group-resources.js.map +1 -0
- package/dist/index.d.ts +4 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -0
- package/dist/index.js.map +1 -1
- package/dist/register-flow.d.ts +1 -0
- package/dist/register-flow.d.ts.map +1 -1
- package/dist/register-flow.js +3 -0
- package/dist/register-flow.js.map +1 -1
- package/dist/service-proxy.d.ts +1 -0
- package/dist/service-proxy.d.ts.map +1 -1
- package/dist/service-proxy.js +15 -3
- package/dist/service-proxy.js.map +1 -1
- package/dist/storage/errors.d.ts +28 -0
- package/dist/storage/errors.d.ts.map +1 -0
- package/dist/storage/errors.js +65 -0
- package/dist/storage/errors.js.map +1 -0
- package/dist/storage/index.d.ts +2 -0
- package/dist/storage/index.d.ts.map +1 -0
- package/dist/storage/index.js +2 -0
- package/dist/storage/index.js.map +1 -0
- package/dist/storage/lowlevel.d.ts +314 -0
- package/dist/storage/lowlevel.d.ts.map +1 -0
- package/dist/storage/lowlevel.js +460 -0
- package/dist/storage/lowlevel.js.map +1 -0
- package/dist/storage/types.d.ts +59 -0
- package/dist/storage/types.d.ts.map +1 -0
- package/dist/storage/types.js +113 -0
- package/dist/storage/types.js.map +1 -0
- package/dist/storage/vfs.d.ts +144 -0
- package/dist/storage/vfs.d.ts.map +1 -0
- package/dist/storage/vfs.js +403 -0
- package/dist/storage/vfs.js.map +1 -0
- package/dist/tools/cross-sdk-agent.d.ts +3 -0
- package/dist/tools/cross-sdk-agent.d.ts.map +1 -0
- package/dist/tools/cross-sdk-agent.js +1089 -0
- package/dist/tools/cross-sdk-agent.js.map +1 -0
- package/dist/transport.d.ts +3 -0
- package/dist/transport.d.ts.map +1 -1
- package/dist/transport.js +33 -13
- package/dist/transport.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.d.ts.map +1 -1
- package/dist/version.js +1 -1
- package/dist/version.js.map +1 -1
- package/package.json +44 -44
|
@@ -1,686 +1,265 @@
|
|
|
1
|
-
# AUN CLI 设计文档
|
|
2
|
-
|
|
3
|
-
## 1. 定位
|
|
4
|
-
|
|
5
|
-
AUN CLI
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
```
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
aun
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
```
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
aun
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
-
|
|
161
|
-
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
aun
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
aun
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
```
|
|
267
|
-
aun group members <group-id>
|
|
268
|
-
|
|
269
|
-
输出:
|
|
270
|
-
AID ROLE JOINED
|
|
271
|
-
alice@aid.com owner 2026-05-01
|
|
272
|
-
bob@aid.com admin 2026-05-02
|
|
273
|
-
carol@aid.com member 2026-05-10
|
|
274
|
-
```
|
|
275
|
-
|
|
276
|
-
#### `aun group info`
|
|
277
|
-
|
|
278
|
-
```
|
|
279
|
-
aun group info <group-id>
|
|
280
|
-
|
|
281
|
-
输出:
|
|
282
|
-
Name: Project Alpha
|
|
283
|
-
ID: g:abc123
|
|
284
|
-
Owner: alice@aid.com
|
|
285
|
-
Members: 5
|
|
286
|
-
Epoch: 3
|
|
287
|
-
E2EE: enabled (V2)
|
|
288
|
-
Created: 2026-05-01
|
|
289
|
-
```
|
|
290
|
-
|
|
291
|
-
#### `aun group listen`
|
|
292
|
-
|
|
293
|
-
```
|
|
294
|
-
aun group listen <group-id>
|
|
295
|
-
|
|
296
|
-
输出(逐行):
|
|
297
|
-
[14:32:01] bob@aid.com: let's sync
|
|
298
|
-
[14:32:05] carol@aid.com: sounds good
|
|
299
|
-
```
|
|
300
|
-
|
|
301
|
-
### 4.4 存储 (storage)
|
|
302
|
-
|
|
303
|
-
#### `aun storage upload`
|
|
304
|
-
|
|
305
|
-
```
|
|
306
|
-
aun storage upload <local-path> [--name <remote-name>]
|
|
307
|
-
|
|
308
|
-
示例:
|
|
309
|
-
aun storage upload ./report.pdf
|
|
310
|
-
aun storage upload ./img.png --name avatar.png
|
|
311
|
-
```
|
|
312
|
-
|
|
313
|
-
#### `aun storage download`
|
|
314
|
-
|
|
315
|
-
```
|
|
316
|
-
aun storage download <object-id> [--output <path>]
|
|
317
|
-
```
|
|
318
|
-
|
|
319
|
-
#### `aun storage delete`
|
|
320
|
-
|
|
321
|
-
```
|
|
322
|
-
aun storage delete <object-id>
|
|
323
|
-
```
|
|
324
|
-
|
|
325
|
-
### 4.5 密钥管理 (keys)
|
|
326
|
-
|
|
327
|
-
#### `aun keys list`
|
|
328
|
-
|
|
329
|
-
```
|
|
330
|
-
aun keys list
|
|
331
|
-
|
|
332
|
-
输出:
|
|
333
|
-
TYPE ID/FINGERPRINT CREATED EXPIRES STATUS
|
|
334
|
-
IK SHA256:a1b2c3... 2026-05-01 2027-05-01 active
|
|
335
|
-
SPK SHA256:d4e5f6... 2026-05-20 2026-06-20 active
|
|
336
|
-
SPK SHA256:789abc... 2026-04-20 2026-05-20 expired
|
|
337
|
-
```
|
|
338
|
-
|
|
339
|
-
#### `aun keys rotate`
|
|
340
|
-
|
|
341
|
-
```
|
|
342
|
-
aun keys rotate [--type spk|ik]
|
|
343
|
-
|
|
344
|
-
示例:
|
|
345
|
-
aun keys rotate # 轮换 SPK
|
|
346
|
-
aun keys rotate --type ik # 轮换 IK(需确认)
|
|
347
|
-
```
|
|
348
|
-
|
|
349
|
-
#### `aun keys export`
|
|
350
|
-
|
|
351
|
-
导出身份(加密打包)。
|
|
352
|
-
|
|
353
|
-
```
|
|
354
|
-
aun keys export [aid] --output <path> --password <password>
|
|
355
|
-
|
|
356
|
-
示例:
|
|
357
|
-
aun keys export alice@aid.com --output ./alice-backup.aun
|
|
358
|
-
```
|
|
359
|
-
|
|
360
|
-
#### `aun keys import`
|
|
361
|
-
|
|
362
|
-
导入身份。
|
|
363
|
-
|
|
364
|
-
```
|
|
365
|
-
aun keys import <path> --password <password> [--profile <name>]
|
|
366
|
-
```
|
|
367
|
-
|
|
368
|
-
### 4.6 诊断 (diag)
|
|
369
|
-
|
|
370
|
-
#### `aun doctor`
|
|
371
|
-
|
|
372
|
-
一键健康检查。
|
|
373
|
-
|
|
374
|
-
```
|
|
375
|
-
aun doctor
|
|
376
|
-
|
|
377
|
-
输出:
|
|
378
|
-
✓ Profile "default" exists
|
|
379
|
-
✓ Identity alice@aid.com found
|
|
380
|
-
✓ Private key intact (P-256)
|
|
381
|
-
✓ Certificate valid (expires 2027-01-15)
|
|
382
|
-
✓ Gateway wss://gw.aid.com reachable (latency: 45ms)
|
|
383
|
-
✓ Authentication successful
|
|
384
|
-
✓ SPK valid (expires 2026-06-20)
|
|
385
|
-
✗ Trust root CA not configured (optional)
|
|
386
|
-
|
|
387
|
-
7/8 checks passed
|
|
388
|
-
```
|
|
389
|
-
|
|
390
|
-
#### `aun status`
|
|
391
|
-
|
|
392
|
-
连接状态概览。
|
|
393
|
-
|
|
394
|
-
```
|
|
395
|
-
aun status
|
|
396
|
-
|
|
397
|
-
输出:
|
|
398
|
-
Gateway: wss://gw.aid.com/ws
|
|
399
|
-
Protocol: AUN/1.0
|
|
400
|
-
Connection: connected
|
|
401
|
-
Latency: 42ms
|
|
402
|
-
Session: active (expires in 23h)
|
|
403
|
-
```
|
|
404
|
-
|
|
405
|
-
#### `aun ping`
|
|
406
|
-
|
|
407
|
-
验证目标 AID 可达性。
|
|
408
|
-
|
|
409
|
-
```
|
|
410
|
-
aun ping <target-aid> [--count N]
|
|
411
|
-
|
|
412
|
-
示例:
|
|
413
|
-
aun ping bob@aid.com
|
|
414
|
-
aun ping bob@aid.com --count 5
|
|
415
|
-
|
|
416
|
-
输出:
|
|
417
|
-
bob@aid.com is reachable (latency: 67ms)
|
|
418
|
-
```
|
|
419
|
-
|
|
420
|
-
#### `aun logs`
|
|
421
|
-
|
|
422
|
-
查看本地 SDK 日志。
|
|
423
|
-
|
|
424
|
-
```
|
|
425
|
-
aun logs [--tail N] [--follow]
|
|
426
|
-
|
|
427
|
-
示例:
|
|
428
|
-
aun logs --tail 50
|
|
429
|
-
aun logs --follow # 实时跟踪
|
|
430
|
-
```
|
|
431
|
-
|
|
432
|
-
## 5. 配置系统
|
|
433
|
-
|
|
434
|
-
### 5.1 配置文件
|
|
435
|
-
|
|
436
|
-
```toml
|
|
437
|
-
# ~/.aun/cli.toml
|
|
438
|
-
|
|
439
|
-
[default]
|
|
440
|
-
profile = "default" # 默认 profile
|
|
441
|
-
output = "table" # 默认输出格式: table | json | plain
|
|
442
|
-
color = true # 彩色输出
|
|
443
|
-
timeout = 30 # 默认超时(秒)
|
|
444
|
-
|
|
445
|
-
[profiles.default]
|
|
446
|
-
aid = "alice@aid.com"
|
|
447
|
-
gateway = "wss://gw.aid.com/ws"
|
|
448
|
-
aun_path = "~/.aun/profiles/default"
|
|
449
|
-
|
|
450
|
-
[profiles.work]
|
|
451
|
-
aid = "bot@corp.com"
|
|
452
|
-
gateway = "wss://gw.corp.com/ws"
|
|
453
|
-
aun_path = "~/.aun/profiles/work"
|
|
454
|
-
```
|
|
455
|
-
|
|
456
|
-
### 5.2 Profile 管理命令
|
|
457
|
-
|
|
458
|
-
```
|
|
459
|
-
aun config init # 初始化配置
|
|
460
|
-
aun config set <key> <value> # 设置配置项
|
|
461
|
-
aun config get <key> # 读取配置项
|
|
462
|
-
aun config profile create <name> # 创建 profile
|
|
463
|
-
aun config profile delete <name> # 删除 profile
|
|
464
|
-
aun config profile switch <name> # 切换默认 profile
|
|
465
|
-
```
|
|
466
|
-
|
|
467
|
-
### 5.3 配置优先级
|
|
468
|
-
|
|
469
|
-
```
|
|
470
|
-
命令行参数 > 环境变量 > cli.toml > 内置默认值
|
|
471
|
-
```
|
|
472
|
-
|
|
473
|
-
环境变量映射:
|
|
474
|
-
- `AUN_PROFILE` → `--profile`
|
|
475
|
-
- `AUN_GATEWAY` → `--gateway`
|
|
476
|
-
- `AUN_DEBUG` → `--debug`
|
|
477
|
-
- `AUN_DATA_ROOT` → 覆盖 aun_path
|
|
478
|
-
|
|
479
|
-
## 6. 会话管理
|
|
480
|
-
|
|
481
|
-
### 6.1 短命令模式(默认)
|
|
482
|
-
|
|
483
|
-
每次命令执行:连接 → 认证 → 操作 → 断开。
|
|
484
|
-
|
|
485
|
-
为避免每次都做完整握手,引入 session cache:
|
|
486
|
-
|
|
487
|
-
```
|
|
488
|
-
~/.aun/profiles/{profile}/.session.json
|
|
489
|
-
{
|
|
490
|
-
"gateway": "wss://gw.aid.com/ws",
|
|
491
|
-
"token": "...",
|
|
492
|
-
"expires_at": "2026-05-22T14:00:00Z",
|
|
493
|
-
"device_id": "d8f2..."
|
|
494
|
-
}
|
|
495
|
-
```
|
|
496
|
-
|
|
497
|
-
- token 未过期:跳过认证,直接用 token 连接
|
|
498
|
-
- token 过期:重新挑战-响应认证,更新 cache
|
|
499
|
-
|
|
500
|
-
### 6.2 长连接模式(listen)
|
|
501
|
-
|
|
502
|
-
`aun listen` 和 `aun group listen` 保持 WebSocket 长连接:
|
|
503
|
-
- 前台运行,Ctrl+C 优雅退出
|
|
504
|
-
- 自动重连(SDK 内置机制)
|
|
505
|
-
- 断线时输出提示,重连后继续
|
|
506
|
-
|
|
507
|
-
## 7. 输出格式
|
|
508
|
-
|
|
509
|
-
### 7.1 Human-readable(默认)
|
|
510
|
-
|
|
511
|
-
```
|
|
512
|
-
aun group list
|
|
513
|
-
|
|
514
|
-
GROUP ID NAME MEMBERS ROLE
|
|
515
|
-
g:abc123 Project Alpha 5 owner
|
|
516
|
-
g:def456 Team Chat 3 member
|
|
517
|
-
```
|
|
518
|
-
|
|
519
|
-
### 7.2 JSON(`--json`)
|
|
520
|
-
|
|
521
|
-
```json
|
|
522
|
-
[
|
|
523
|
-
{"group_id": "g:abc123", "name": "Project Alpha", "members": 5, "role": "owner"},
|
|
524
|
-
{"group_id": "g:def456", "name": "Team Chat", "members": 3, "role": "member"}
|
|
525
|
-
]
|
|
526
|
-
```
|
|
527
|
-
|
|
528
|
-
JSON 模式适合脚本管道:`aun group list --json | jq '.[0].group_id'`
|
|
529
|
-
|
|
530
|
-
## 8. 错误处理
|
|
531
|
-
|
|
532
|
-
### 8.1 退出码
|
|
533
|
-
|
|
534
|
-
| 退出码 | 含义 |
|
|
535
|
-
|--------|------|
|
|
536
|
-
| 0 | 成功 |
|
|
537
|
-
| 1 | 通用错误 |
|
|
538
|
-
| 2 | 参数错误 |
|
|
539
|
-
| 3 | 认证失败 |
|
|
540
|
-
| 4 | 连接失败(网关不可达) |
|
|
541
|
-
| 5 | 超时 |
|
|
542
|
-
| 6 | 权限不足 |
|
|
543
|
-
| 7 | 目标不存在(AID/群组) |
|
|
544
|
-
|
|
545
|
-
### 8.2 错误输出
|
|
546
|
-
|
|
547
|
-
```
|
|
548
|
-
# 默认模式
|
|
549
|
-
Error: Gateway wss://gw.aid.com unreachable (connection refused)
|
|
550
|
-
Hint: Check network connectivity or verify gateway URL with `aun config get profiles.default.gateway`
|
|
551
|
-
|
|
552
|
-
# JSON 模式
|
|
553
|
-
{"error": "connection_failed", "message": "Gateway unreachable", "code": 4}
|
|
554
|
-
```
|
|
555
|
-
|
|
556
|
-
## 9. SDK Adapter Layer
|
|
557
|
-
|
|
558
|
-
CLI 与 SDK 之间的桥接层,解决以下问题:
|
|
559
|
-
|
|
560
|
-
### 9.1 异步桥接
|
|
561
|
-
|
|
562
|
-
```python
|
|
563
|
-
# adapter.py 核心模式
|
|
564
|
-
import asyncio
|
|
565
|
-
from aun_core import AUNClient
|
|
566
|
-
|
|
567
|
-
def run_async(coro):
|
|
568
|
-
"""CLI 同步入口调用 SDK 异步方法"""
|
|
569
|
-
return asyncio.run(coro)
|
|
570
|
-
|
|
571
|
-
class CLISession:
|
|
572
|
-
"""管理 SDK client 生命周期"""
|
|
573
|
-
|
|
574
|
-
def __init__(self, profile: str, gateway: str = None, timeout: int = 30):
|
|
575
|
-
self.profile = profile
|
|
576
|
-
self.gateway = gateway
|
|
577
|
-
self.timeout = timeout
|
|
578
|
-
|
|
579
|
-
async def __aenter__(self):
|
|
580
|
-
# 加载配置 → 创建 client → 连接/认证
|
|
581
|
-
...
|
|
582
|
-
return self.client
|
|
583
|
-
|
|
584
|
-
async def __aexit__(self, *exc):
|
|
585
|
-
await self.client.close()
|
|
586
|
-
```
|
|
587
|
-
|
|
588
|
-
### 9.2 命令实现模式
|
|
589
|
-
|
|
590
|
-
```python
|
|
591
|
-
# commands/message.py 示例模式
|
|
592
|
-
@app.command()
|
|
593
|
-
def send(target: str, message: str, no_encrypt: bool = False):
|
|
594
|
-
async def _send():
|
|
595
|
-
async with CLISession(profile) as client:
|
|
596
|
-
result = await client.call("message.send", {
|
|
597
|
-
"to": target,
|
|
598
|
-
"content": {"text": message},
|
|
599
|
-
"encrypt": not no_encrypt,
|
|
600
|
-
})
|
|
601
|
-
return result
|
|
602
|
-
result = run_async(_send())
|
|
603
|
-
output(result)
|
|
604
|
-
```
|
|
605
|
-
|
|
606
|
-
## 10. 分发策略
|
|
607
|
-
|
|
608
|
-
### 10.1 开发阶段
|
|
609
|
-
|
|
610
|
-
```bash
|
|
611
|
-
# 直接运行
|
|
612
|
-
python -m aun_cli send bob@aid.com "hello"
|
|
613
|
-
|
|
614
|
-
# 或 editable install
|
|
615
|
-
pip install -e ".[cli]"
|
|
616
|
-
aun send bob@aid.com "hello"
|
|
617
|
-
```
|
|
618
|
-
|
|
619
|
-
### 10.2 正式发布
|
|
620
|
-
|
|
621
|
-
**pip 包**(面向 Python 开发者):
|
|
622
|
-
```bash
|
|
623
|
-
pip install fastaun[cli]
|
|
624
|
-
```
|
|
625
|
-
|
|
626
|
-
**独立二进制**(面向终端用户):
|
|
627
|
-
```bash
|
|
628
|
-
# 构建
|
|
629
|
-
pyinstaller --onefile src/aun_cli/main.py -n aun --hidden-import aun_core
|
|
630
|
-
|
|
631
|
-
# 产出
|
|
632
|
-
dist/aun (Linux/Mac)
|
|
633
|
-
dist/aun.exe (Windows)
|
|
634
|
-
```
|
|
635
|
-
|
|
636
|
-
### 10.3 pyproject.toml 变更
|
|
637
|
-
|
|
638
|
-
```toml
|
|
639
|
-
[project.optional-dependencies]
|
|
640
|
-
cli = ["typer>=0.9", "rich>=13.0"]
|
|
641
|
-
|
|
642
|
-
[project.scripts]
|
|
643
|
-
aun = "aun_cli.main:app"
|
|
644
|
-
```
|
|
645
|
-
|
|
646
|
-
## 11. 实现优先级
|
|
647
|
-
|
|
648
|
-
### Phase 1:核心可用(MVP)
|
|
649
|
-
|
|
650
|
-
- [ ] 项目骨架(typer app + 全局选项 + 配置加载)
|
|
651
|
-
- [ ] `aun register` / `aun login` / `aun whoami`
|
|
652
|
-
- [ ] `aun send` / `aun pull`
|
|
653
|
-
- [ ] `aun status` / `aun ping`
|
|
654
|
-
- [ ] 基本输出格式化(table + json)
|
|
655
|
-
|
|
656
|
-
### Phase 2:完整通信
|
|
657
|
-
|
|
658
|
-
- [ ] `aun listen`(长连接)
|
|
659
|
-
- [ ] `aun group create/send/list/members/invite/kick/leave`
|
|
660
|
-
- [ ] `aun group listen`
|
|
661
|
-
- [ ] `aun ack`
|
|
662
|
-
|
|
663
|
-
### Phase 3:管理与诊断
|
|
664
|
-
|
|
665
|
-
- [ ] `aun keys list/rotate/export/import`
|
|
666
|
-
- [ ] `aun doctor`
|
|
667
|
-
- [ ] `aun logs`
|
|
668
|
-
- [ ] `aun storage upload/download/delete`
|
|
669
|
-
- [ ] `aun config` 子命令
|
|
670
|
-
|
|
671
|
-
### Phase 4:体验优化
|
|
672
|
-
|
|
673
|
-
- [ ] Shell 自动补全(typer 内置支持)
|
|
674
|
-
- [ ] PyInstaller 打包流程
|
|
675
|
-
- [ ] 交互式模式(`aun interactive` — REPL 风格)
|
|
676
|
-
- [ ] `aun trace <message-id>` 消息追踪
|
|
677
|
-
|
|
678
|
-
## 12. 与现有工具的关系
|
|
679
|
-
|
|
680
|
-
| 工具 | 定位 | 用户 |
|
|
681
|
-
|------|------|------|
|
|
682
|
-
| **certool** | 服务端 CA 证书管理 | 运维 |
|
|
683
|
-
| **aun CLI** | 客户端身份 + 通信 | 开发者/Agent |
|
|
684
|
-
| **SDK** | 编程接口 | 应用开发者 |
|
|
685
|
-
|
|
686
|
-
三者互补:certool 管服务端证书链,CLI 管客户端身份和消息,SDK 供应用集成。
|
|
1
|
+
# AUN CLI 设计文档
|
|
2
|
+
|
|
3
|
+
## 1. 定位
|
|
4
|
+
|
|
5
|
+
AUN CLI 是 Python SDK 随包提供的命令行入口,用于在不编写业务代码的情况下完成身份管理、消息收发、群组操作、Storage / Group FS 文件操作、Collab 协作层操作、agent.md 管理、诊断和压测。
|
|
6
|
+
|
|
7
|
+
当前实现位于:
|
|
8
|
+
|
|
9
|
+
- 源码目录:`D:\modelunion\kite\aun-sdk-core\python\src\aun_cli`
|
|
10
|
+
- 包内入口:`python/src/aun_cli/main.py`
|
|
11
|
+
- 模块入口:`python -m aun_cli`
|
|
12
|
+
- 安装后命令:`aun`
|
|
13
|
+
- 脚本注册:`python/pyproject.toml` 中的 `[project.scripts] aun = "aun_cli.main:app"`
|
|
14
|
+
|
|
15
|
+
CLI 是 SDK 的薄封装和调试入口,不直接实现协议状态机、E2EE、Gateway 发现或业务 RPC 语义;这些能力由 `aun_core` 提供。
|
|
16
|
+
|
|
17
|
+
## 2. 当前架构
|
|
18
|
+
|
|
19
|
+
```text
|
|
20
|
+
aun CLI
|
|
21
|
+
├─ main.py # Typer 根应用、全局选项、命令组注册
|
|
22
|
+
├─ config.py # cli.toml、profile、终端标签页状态
|
|
23
|
+
├─ adapter.py # AUNClient / AIDStore 生命周期桥接
|
|
24
|
+
├─ output.py # human / table / JSON 输出
|
|
25
|
+
├─ storage_core.py # storage object 上传下载数据面复用逻辑
|
|
26
|
+
├─ fs_utils.py # AID:path 远程路径解析
|
|
27
|
+
└─ commands/
|
|
28
|
+
├─ identity.py # identity list/check;根命令 register/login/whoami 复用这里
|
|
29
|
+
├─ message.py # send/pull/ack
|
|
30
|
+
├─ listen.py # listen 长连接监听
|
|
31
|
+
├─ group.py # group.* 与 group fs
|
|
32
|
+
├─ fs.py # storage VFS POSIX 风格 fs 命令
|
|
33
|
+
├─ storage.py # object storage 兼容命令
|
|
34
|
+
├─ collab.py # collab 与 collab tag
|
|
35
|
+
├─ agentmd.py # agent.md 上传、下载、检查
|
|
36
|
+
├─ keys.py # 本地密钥与 seed 迁移
|
|
37
|
+
├─ diag.py # status/ping/doctor/logs
|
|
38
|
+
├─ config.py # config/profile
|
|
39
|
+
└─ bench.py # message/group 发送压测
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
核心调用链:
|
|
43
|
+
|
|
44
|
+
```text
|
|
45
|
+
Typer command
|
|
46
|
+
-> resolve_profile_config(ctx)
|
|
47
|
+
-> CLISession(ctx)
|
|
48
|
+
-> AIDStore.load(aid)
|
|
49
|
+
-> AUNClient.authenticate()
|
|
50
|
+
-> AUNClient.connect()
|
|
51
|
+
-> client.call(...) / client.storage.* / client.group.fs.* / client.collab.*
|
|
52
|
+
-> output_json / output_table / output_dict
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
## 3. 关键设计决策
|
|
56
|
+
|
|
57
|
+
| 主题 | 当前实现 |
|
|
58
|
+
|------|----------|
|
|
59
|
+
| 命令框架 | 使用 Typer,根应用在 `main.py` 中注册 |
|
|
60
|
+
| SDK 桥接 | `adapter.run_async()` 用 `asyncio.run()` 执行 SDK 异步调用 |
|
|
61
|
+
| 会话生命周期 | 每个短命令创建一个 `CLISession`,完成后关闭 `AUNClient` 和 `AIDStore` |
|
|
62
|
+
| Gateway | CLI 不提供 `--gateway` 覆盖;Gateway 发现交给 SDK |
|
|
63
|
+
| Profile | 默认读取 `~/.aun/cli.toml`,支持终端标签页级 profile 状态 |
|
|
64
|
+
| 输出 | 默认人类可读;`--json` 输出结构化 JSON |
|
|
65
|
+
| RPC 统计 | 非 JSON 模式下输出本次 CLI 调用的 RPC / phase summary |
|
|
66
|
+
| 长连接 | `aun listen` 使用 `background_sync=True`,监听 P2P 与群消息事件 |
|
|
67
|
+
| 数据面 | Storage / Group FS 的上传下载由 SDK 高层或 `storage_core.py` 编排 |
|
|
68
|
+
|
|
69
|
+
## 4. 全局选项
|
|
70
|
+
|
|
71
|
+
当前根命令支持:
|
|
72
|
+
|
|
73
|
+
```text
|
|
74
|
+
aun [全局选项] <command> [参数]
|
|
75
|
+
|
|
76
|
+
--profile, -p TEXT 仅本次命令使用指定 profile
|
|
77
|
+
--json JSON 格式输出
|
|
78
|
+
--debug 启用 debug 日志
|
|
79
|
+
--no-color 禁用彩色输出
|
|
80
|
+
--timeout, -t INT 操作超时秒数,默认 30
|
|
81
|
+
--version, -V 显示 CLI 版本
|
|
82
|
+
--install-completion 安装当前 shell 的补全脚本,Typer 自动提供
|
|
83
|
+
--show-completion 输出补全脚本,Typer 自动提供
|
|
84
|
+
--help 显示帮助
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
注意:旧设计稿中的 `--gateway`、`-g` 不存在。当前 Gateway 路由由 SDK discovery 处理。
|
|
88
|
+
|
|
89
|
+
## 5. 配置与 Profile
|
|
90
|
+
|
|
91
|
+
配置文件默认路径为 `~/.aun/cli.toml`,可用 `AUN_CLI_CONFIG` 覆盖。配置结构:
|
|
92
|
+
|
|
93
|
+
```toml
|
|
94
|
+
[default]
|
|
95
|
+
profile = "default"
|
|
96
|
+
output = "table"
|
|
97
|
+
color = true
|
|
98
|
+
timeout = 30
|
|
99
|
+
|
|
100
|
+
[profiles.default]
|
|
101
|
+
aid = "alice.agentid.pub"
|
|
102
|
+
aun_path = "~/.aun/profiles/default"
|
|
103
|
+
active_group = "group.agentid.pub/10042"
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
有效 profile 解析顺序:
|
|
107
|
+
|
|
108
|
+
```text
|
|
109
|
+
--profile > AUN_PROFILE > 当前终端标签页状态 > [default].profile
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
`aun profile switch` 会写入当前终端标签页状态,同时更新新标签页默认 profile。终端标签页状态目录默认在 `~/.aun/cli-sessions/`,可用 `AUN_CLI_STATE_DIR` 覆盖。
|
|
113
|
+
|
|
114
|
+
常用环境变量:
|
|
115
|
+
|
|
116
|
+
| 变量 | 用途 |
|
|
117
|
+
|------|------|
|
|
118
|
+
| `AUN_CLI_CONFIG` | 覆盖 CLI 配置文件路径 |
|
|
119
|
+
| `AUN_PROFILE` | 覆盖本次命令 profile |
|
|
120
|
+
| `AUN_CLI_SESSION_ID` | 显式指定终端标签页状态 ID |
|
|
121
|
+
| `AUN_CLI_STATE_DIR` | 覆盖标签页状态目录 |
|
|
122
|
+
| `AUN_DATA_ROOT` | 覆盖当前 profile 的 `aun_path` |
|
|
123
|
+
| `AUN_DEBUG` | 开启 debug |
|
|
124
|
+
| `AUN_ENCRYPTION_SEED` / `AUN_SEED_PASSWORD` | 本地身份材料加密 seed |
|
|
125
|
+
|
|
126
|
+
## 6. 命令注册面
|
|
127
|
+
|
|
128
|
+
根命令在 `main.py` 中注册:
|
|
129
|
+
|
|
130
|
+
| 命令 | 来源模块 | 说明 |
|
|
131
|
+
|------|----------|------|
|
|
132
|
+
| `register` / `login` / `whoami` | `commands.identity` | 根级身份快捷命令 |
|
|
133
|
+
| `identity` | `commands.identity` | 身份列表和诊断 |
|
|
134
|
+
| `send` / `pull` / `ack` | `commands.message` | P2P 消息 |
|
|
135
|
+
| `listen` | `commands.listen` | P2P + 群消息实时监听 |
|
|
136
|
+
| `group` | `commands.group` | 群组管理和 `group fs` |
|
|
137
|
+
| `status` / `ping` / `doctor` / `logs` | `commands.diag` | 诊断 |
|
|
138
|
+
| `config` / `profile` | `commands.config` | 配置和 profile 管理;`profile` 也挂在 `config profile` 下 |
|
|
139
|
+
| `storage` | `commands.storage` | 对象存储兼容命令 |
|
|
140
|
+
| `fs` | `commands.fs` | Storage VFS / POSIX 风格命令 |
|
|
141
|
+
| `collab` | `commands.collab` | 版本化协作层 |
|
|
142
|
+
| `agentmd` | `commands.agentmd` | agent.md 管理 |
|
|
143
|
+
| `keys` | `commands.keys` | 本地密钥与 seed 管理 |
|
|
144
|
+
| `bench` | `commands.bench` | 消息发送压测 |
|
|
145
|
+
|
|
146
|
+
## 7. 命令组职责
|
|
147
|
+
|
|
148
|
+
### 7.1 身份与连接
|
|
149
|
+
|
|
150
|
+
- `aun register <aid>`:注册 AID,并写入当前 profile 的 `aid` / `aun_path`。
|
|
151
|
+
- `aun login [aid]`:加载本地身份、认证并连接一次,成功后更新当前 profile 的 AID。
|
|
152
|
+
- `aun whoami`:显示当前 profile、AID 和数据目录。
|
|
153
|
+
- `aun identity list`:列出本地身份。
|
|
154
|
+
- `aun identity check <aid>`:检查本地身份材料和远端注册状态。
|
|
155
|
+
|
|
156
|
+
### 7.2 消息
|
|
157
|
+
|
|
158
|
+
- `aun send <target-aid> <message|-> [--no-encrypt]`:发送 P2P 消息,`-` 表示从 stdin 读取。
|
|
159
|
+
- `aun pull [--from <aid>] [--limit N] [--after-seq N]`:拉取离线消息。
|
|
160
|
+
- `aun ack <sender-aid> --seq N`:推进消息 ack。
|
|
161
|
+
- `aun listen [--from <aid>] [--group <group-id>]`:监听 P2P 和群消息,Ctrl+C 退出。
|
|
162
|
+
|
|
163
|
+
### 7.3 群组
|
|
164
|
+
|
|
165
|
+
- `aun group create <name> [--members a,b] [--group-name name]`
|
|
166
|
+
- `aun group use <group-id>` / `aun group current`
|
|
167
|
+
- `aun group send [group-id] <message> [--no-encrypt]`
|
|
168
|
+
- `aun group list` / `aun group info [group-id]` / `aun group members [group-id]`
|
|
169
|
+
- `aun group invite [group-id] <aid...>`
|
|
170
|
+
- `aun group add-member [group-id] <aid> [--role member|admin] [--member-type human|ai]`
|
|
171
|
+
- `aun group kick [group-id] <aid>`
|
|
172
|
+
- `aun group leave [group-id]`
|
|
173
|
+
- `aun group dissolve [group-id]`
|
|
174
|
+
- `aun group bind [group-id] [--group-name name]`
|
|
175
|
+
- `aun group transfer [group-id] <new-owner>`
|
|
176
|
+
- `aun group complete-transfer [group-id]`
|
|
177
|
+
|
|
178
|
+
公开兼容别名包括 `aun group bind-aid` 和 `aun group add_member`。
|
|
179
|
+
|
|
180
|
+
多数群命令省略 `group-id` 时使用当前 profile 的 `active_group`。`aun group create` 成功后会自动把新群设为 active group。
|
|
181
|
+
|
|
182
|
+
### 7.4 群文件系统
|
|
183
|
+
|
|
184
|
+
`aun group fs` 面向 `group.fs.*` 和 SDK `client.group.fs`。裸路径会绑定当前 active group;完整 group path 可直接传入。
|
|
185
|
+
|
|
186
|
+
主要命令:
|
|
187
|
+
|
|
188
|
+
- `ls` / `find` / `stat` / `lstat`
|
|
189
|
+
- `mkdir` / `rm`
|
|
190
|
+
- `cp` / `mv`
|
|
191
|
+
- `df`
|
|
192
|
+
- `mount` / `umount`
|
|
193
|
+
|
|
194
|
+
群自有区写入需要按服务端要求使用 `group_aid` 身份签名,CLI 通过 `--as` 传入操作者 AID。
|
|
195
|
+
|
|
196
|
+
### 7.5 Storage VFS
|
|
197
|
+
|
|
198
|
+
`aun fs` 面向 SDK Storage VFS,路径格式为 `<AID>:/path`。裸路径会补当前 profile AID。
|
|
199
|
+
|
|
200
|
+
主要命令:
|
|
201
|
+
|
|
202
|
+
- 读侧:`ls`、`stat`、`cat`、`find`、`df`
|
|
203
|
+
- 写侧:`cp`、`mv`、`rm`、`mkdir`、`ln -s`
|
|
204
|
+
- 权限:`chmod`、`setfacl`、`getfacl`
|
|
205
|
+
- 挂载:`mount`、`approve`、`reject`、`umount`
|
|
206
|
+
- token:`token issue`、`token revoke`、`token ls`
|
|
207
|
+
|
|
208
|
+
### 7.6 对象存储兼容命令
|
|
209
|
+
|
|
210
|
+
`aun storage` 保留对象级快捷入口:
|
|
211
|
+
|
|
212
|
+
- `aun storage ls [prefix]`
|
|
213
|
+
- `aun storage info <object-key>`
|
|
214
|
+
- `aun storage upload <local-path> [--name key] [--public] [--force]`
|
|
215
|
+
- `aun storage download <object-key> [-o path] [--force]`
|
|
216
|
+
- `aun storage delete <object-key>`
|
|
217
|
+
|
|
218
|
+
新应用优先使用 `aun fs`;对象命令主要用于兼容对象存储心智和低层调试。
|
|
219
|
+
|
|
220
|
+
### 7.7 Collab
|
|
221
|
+
|
|
222
|
+
`aun collab` 面向版本化协作目录:
|
|
223
|
+
|
|
224
|
+
- 文档:`ls-files`、`create`、`show`、`commit`、`merge`、`log`、`diff`、`revert`
|
|
225
|
+
- 运维:`clone`、`prune`、`gc`、`reflog`
|
|
226
|
+
- 群发现:`ls-remote`、`unregister`
|
|
227
|
+
- 标签:`tag create/list/show/diff/restore/rm/prune`
|
|
228
|
+
|
|
229
|
+
`create` / `commit` / `merge` 的 `source` 支持 AID 远程路径、本地文件、base64 或普通文本。
|
|
230
|
+
|
|
231
|
+
### 7.8 agent.md、keys、诊断与压测
|
|
232
|
+
|
|
233
|
+
- `aun agentmd upload/download/check`
|
|
234
|
+
- `aun keys list/rotate/change-seed`
|
|
235
|
+
- `aun status` / `aun ping` / `aun doctor` / `aun logs`
|
|
236
|
+
- `aun bench send` / `aun bench group-send` / `aun bench group send`
|
|
237
|
+
|
|
238
|
+
公开兼容别名包括 `aun agentmd upload_agent_md/download_agent_md/check_agent_md` 和 `aun bench group_send`。
|
|
239
|
+
|
|
240
|
+
当前没有 `keys export/import`、`group listen`、`config init`、`profile delete` 这些命令;需要新增时应先更新实现和本文档。
|
|
241
|
+
|
|
242
|
+
## 8. 错误处理与退出码
|
|
243
|
+
|
|
244
|
+
错误映射在 `adapter.handle_error()` 中:
|
|
245
|
+
|
|
246
|
+
| 退出码 | 含义 |
|
|
247
|
+
|--------|------|
|
|
248
|
+
| 0 | 成功 |
|
|
249
|
+
| 1 | 通用错误 |
|
|
250
|
+
| 2 | 参数错误 |
|
|
251
|
+
| 3 | 认证失败 |
|
|
252
|
+
| 4 | 连接失败 |
|
|
253
|
+
| 5 | 超时 |
|
|
254
|
+
| 6 | 权限不足 |
|
|
255
|
+
| 7 | 目标不存在 |
|
|
256
|
+
|
|
257
|
+
JSON 模式下错误仍通过统一错误输出函数输出,便于脚本判断。
|
|
258
|
+
|
|
259
|
+
## 9. 当前实现边界
|
|
260
|
+
|
|
261
|
+
- CLI 不直接接受外部 Gateway URL,避免绕过 SDK discovery。
|
|
262
|
+
- CLI 不维护独立协议实现;业务行为以 SDK 和服务端为准。
|
|
263
|
+
- 默认短命令不启用长连接重连;`listen` 使用后台同步和自动重连。
|
|
264
|
+
- `--json` 会关闭 banner 和 RPC summary,适合脚本管道。
|
|
265
|
+
- `aun group fs` 是 Group FS 入口;`aun fs` 是普通 Storage VFS 入口,两者路径模型不同。
|