@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
|
@@ -137,15 +137,17 @@
|
|
|
137
137
|
|
|
138
138
|
---
|
|
139
139
|
|
|
140
|
-
## Group ID
|
|
141
|
-
|
|
142
|
-
`
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
`group.
|
|
147
|
-
|
|
148
|
-
|
|
140
|
+
## Group AID / Group ID 兼容规范
|
|
141
|
+
|
|
142
|
+
目标态群组主标识是 `group_aid`,canonical 形式为 `{base}.{issuer-domain}`,例如 `10042.agentid.pub`、`team01.agentid.pub`、`g-abc123.agentid.pub`。新建群以 `group_aid` 为准;新群的兼容 `group_id` 列值也使用同一个 `group_aid` 字符串。历史 `group_id` 字段名和 RPC 参数名继续保留,但语义上只是兼容字段。
|
|
143
|
+
|
|
144
|
+
SDK 发起 `group.*` 调用时会把传入的 `group_id` / `groupId` / `group_aid` / `groupAid` 统一规范化为 `group_aid`。裸客户端也应使用同一 `group_aid` 生成签名材料和 E2EE AAD,避免同一群的历史别名产生不同材料。服务端响应可能同时返回 `group_id` 和 `group_aid`;新代码应优先读取 `group_aid`,仅兼容旧版本或历史数据时回退读取 `group_id`。
|
|
145
|
+
|
|
146
|
+
兼容输入包括目标态 `{base}.{issuer-domain}`、本域简写 `{base}` / `g-{slug}`,以及旧格式 `group.{issuer-domain}/{base}`、`{base}@issuer-domain`、`g-{slug}@issuer-domain`、`g-{slug}.{issuer-domain}`。带域的旧输入会转换为 `{base}.{issuer-domain}`;本域简写会在服务端或 SDK 有本域 issuer 配置时补成本域 `group_aid`。`base` 支持 5 位及以上小写字母或数字,或 4 到 64 位 `[a-z0-9_-]` 风格名称;旧 `g-` 前缀形式继续兼容,`g-` 后为 4 到 32 位小写字母或数字。命名群使用 `group_name` 作为 base,规则见 `group.create` 参数说明。
|
|
147
|
+
|
|
148
|
+
`group.create` 的新建语义以 `group_aid` 为准:命名群由 `group_name + issuer` 生成 `group_aid`,自动群由服务端群号生成 `{number}.{issuer}`。`group_id` 参数只作为旧客户端兼容别名;传入时不能是纯数字(纯数字群号保留给服务端自动分配),且规范化后的 `group_aid` 未被占用。如果已被占用或与历史别名碰撞会返回错误。
|
|
149
|
+
|
|
150
|
+
在 `https://group.issuer-domain/...` 这类群链接中,path 使用单段 `group_aid`,例如 `https://group.agentid.pub/10042.agentid.pub/invite/ic-xxx`、`https://group.agentid.pub/g-abc123.agentid.pub/invite/ic-xxx`。历史 base 简写链接可继续由服务端兼容解析。
|
|
149
151
|
|
|
150
152
|
---
|
|
151
153
|
|
|
@@ -153,15 +155,16 @@
|
|
|
153
155
|
|
|
154
156
|
### group.create
|
|
155
157
|
|
|
156
|
-
创建群组。调用者自动成为 owner。支持创建命名群(传入 `group_name` + `public_key
|
|
158
|
+
创建群组。调用者自动成为 owner。支持创建命名群(传入 `group_name` + `public_key`)。新建群主标识以 `group_aid` 为准;`group_id` 仅作为兼容字段保留。
|
|
157
159
|
|
|
158
160
|
**参数**:
|
|
159
161
|
|
|
160
162
|
| 参数 | 类型 | 必填 | 说明 |
|
|
161
163
|
|------|------|------|------|
|
|
162
164
|
| `name` | string | 是 | 群组显示名称 |
|
|
163
|
-
| `
|
|
164
|
-
| `
|
|
165
|
+
| `group_aid` | string | 否 | 目标态群 AID;新代码优先使用。传入时会规范化为 `{base}.{issuer-domain}`,不能是纯数字 |
|
|
166
|
+
| `group_id` | string | 否 | 兼容旧客户端的别名;值语义同 `group_aid`,不再推荐新代码使用 |
|
|
167
|
+
| `group_name` | string | 否 | 命名群标识,4-64 字符,`[a-z0-9_-]+`,不以 `guest`/`g-` 开头。与 `public_key` 同时提供时创建命名群,并生成 `{group_name}.{issuer-domain}` |
|
|
165
168
|
| `public_key` | string | 否 | 命名群公钥(base64 编码),与 `group_name` 同时提供 |
|
|
166
169
|
| `curve` | string | 否 | 密钥曲线,默认 `"P-256"` |
|
|
167
170
|
| `visibility` | string | 否 | `"public"` / `"private"`,默认由配置决定 |
|
|
@@ -178,7 +181,8 @@
|
|
|
178
181
|
```json
|
|
179
182
|
{
|
|
180
183
|
"group": {
|
|
181
|
-
"group_id": "
|
|
184
|
+
"group_id": "my-team.agentid.pub",
|
|
185
|
+
"group_aid": "my-team.agentid.pub",
|
|
182
186
|
"name": "测试群",
|
|
183
187
|
"owner_aid": "alice.agentid.pub",
|
|
184
188
|
"creator_aid": "alice.agentid.pub",
|
|
@@ -189,10 +193,9 @@
|
|
|
189
193
|
"member_count": 1,
|
|
190
194
|
"message_seq": 0,
|
|
191
195
|
"event_seq": 0,
|
|
192
|
-
"group_url": "https://group.agentid.pub/
|
|
193
|
-
"
|
|
194
|
-
"
|
|
195
|
-
"updated_at": 1234567890
|
|
196
|
+
"group_url": "https://group.agentid.pub/my-team.agentid.pub",
|
|
197
|
+
"created_at": 1234567890000,
|
|
198
|
+
"updated_at": 1234567890000
|
|
196
199
|
},
|
|
197
200
|
"aid_cert": {
|
|
198
201
|
"cert": "-----BEGIN CERTIFICATE-----...",
|
|
@@ -204,9 +207,9 @@
|
|
|
204
207
|
}
|
|
205
208
|
```
|
|
206
209
|
|
|
207
|
-
> `aid_cert` 仅在命名群创建时返回。`group_aid`
|
|
208
|
-
|
|
209
|
-
|
|
210
|
+
> `aid_cert` 仅在命名群创建时返回。`group_aid` 是新代码应使用的主标识;`group_id` 为兼容字段,新群通常与 `group_aid` 相同,历史群可能保留旧存储值。
|
|
211
|
+
|
|
212
|
+
**标识格式**:目标态为 `{base}.{issuer-domain}`。旧格式 `group.{issuer-domain}/{base}`、`{base}@{issuer-domain}` 会在 API 边界转换为目标态 `group_aid`。
|
|
210
213
|
|
|
211
214
|
### group.bind_aid
|
|
212
215
|
|
|
@@ -216,7 +219,7 @@
|
|
|
216
219
|
|
|
217
220
|
| 参数 | 类型 | 必填 | 说明 |
|
|
218
221
|
|------|------|------|------|
|
|
219
|
-
| `group_id` | string | 是 |
|
|
222
|
+
| `group_id` | string | 是 | 群组标识;兼容参数名,值使用目标态 `group_aid` |
|
|
220
223
|
| `group_name` | string | 是 | 命名群标识,4-64 字符,`[a-z0-9_-]+` |
|
|
221
224
|
| `public_key` | string | 是 | 群公钥(base64 编码) |
|
|
222
225
|
| `curve` | string | 否 | 密钥曲线,默认 `"P-256"` |
|
|
@@ -238,7 +241,7 @@
|
|
|
238
241
|
|
|
239
242
|
| 参数 | 类型 | 必填 | 说明 |
|
|
240
243
|
|------|------|------|------|
|
|
241
|
-
| `group_id` | string | 是 |
|
|
244
|
+
| `group_id` | string | 是 | 群组标识;兼容参数名,值使用目标态 `group_aid` |
|
|
242
245
|
| `required` | string[] | 否 | 受限字段声明:`member`、`state`、`e2ee`、`avatar` |
|
|
243
246
|
|
|
244
247
|
**默认响应**:
|
|
@@ -253,7 +256,7 @@
|
|
|
253
256
|
"status": "active",
|
|
254
257
|
"description": "技术讨论群",
|
|
255
258
|
"member_count": 42,
|
|
256
|
-
"created_at":
|
|
259
|
+
"created_at": 1234567890000
|
|
257
260
|
}
|
|
258
261
|
```
|
|
259
262
|
|
|
@@ -269,7 +272,7 @@
|
|
|
269
272
|
|
|
270
273
|
| 参数 | 类型 | 必填 | 说明 |
|
|
271
274
|
|------|------|------|------|
|
|
272
|
-
| `group_id` | string | 是 |
|
|
275
|
+
| `group_id` | string | 是 | 群组标识;兼容参数名,值使用目标态 `group_aid` |
|
|
273
276
|
| `name` | string | 否 | 新名称 |
|
|
274
277
|
| `visibility` | string | 否 | 新可见性 |
|
|
275
278
|
| `description` | string | 否 | 新描述 |
|
|
@@ -298,7 +301,7 @@
|
|
|
298
301
|
"name": "项目讨论",
|
|
299
302
|
"visibility": "private",
|
|
300
303
|
"member_count": 5,
|
|
301
|
-
"updated_at":
|
|
304
|
+
"updated_at": 1234567890000,
|
|
302
305
|
"role": "owner"
|
|
303
306
|
}
|
|
304
307
|
],
|
|
@@ -340,7 +343,7 @@
|
|
|
340
343
|
|
|
341
344
|
暂停群组。暂停期间不能发送消息。需要 **admin 及以上**权限。
|
|
342
345
|
|
|
343
|
-
**参数**:`group_id
|
|
346
|
+
**参数**:`group_id`(string,必填;兼容字段,值使用目标态 `group_aid`)
|
|
344
347
|
|
|
345
348
|
**响应**:
|
|
346
349
|
|
|
@@ -357,7 +360,7 @@
|
|
|
357
360
|
|
|
358
361
|
恢复暂停的群组。需要 **admin 及以上**权限。
|
|
359
362
|
|
|
360
|
-
**参数**:`group_id
|
|
363
|
+
**参数**:`group_id`(string,必填;兼容字段,值使用目标态 `group_aid`)
|
|
361
364
|
|
|
362
365
|
**响应**:
|
|
363
366
|
|
|
@@ -374,7 +377,7 @@
|
|
|
374
377
|
|
|
375
378
|
永久解散群组。不可恢复。需要 **owner** 权限。
|
|
376
379
|
|
|
377
|
-
**参数**:`group_id
|
|
380
|
+
**参数**:`group_id`(string,必填;兼容字段,值使用目标态 `group_aid`)
|
|
378
381
|
|
|
379
382
|
**响应**:
|
|
380
383
|
|
|
@@ -398,7 +401,7 @@
|
|
|
398
401
|
|
|
399
402
|
| 参数 | 类型 | 必填 | 说明 |
|
|
400
403
|
|------|------|------|------|
|
|
401
|
-
| `group_id` | string | 是 |
|
|
404
|
+
| `group_id` | string | 是 | 群组标识;兼容字段,值语义为目标态 `group_aid` |
|
|
402
405
|
| `aid` | string | 是 | 要添加的 AID |
|
|
403
406
|
| `role` | string | 否 | `"admin"` / `"member"`,默认 `"member"` |
|
|
404
407
|
| `member_type` | string | 否 | `"human"` / `"ai"`,默认 `"human"` |
|
|
@@ -412,7 +415,7 @@
|
|
|
412
415
|
"aid": "bob.agentid.pub",
|
|
413
416
|
"role": "member",
|
|
414
417
|
"member_type": "human",
|
|
415
|
-
"joined_at":
|
|
418
|
+
"joined_at": 1234567890000
|
|
416
419
|
}
|
|
417
420
|
}
|
|
418
421
|
```
|
|
@@ -425,7 +428,7 @@
|
|
|
425
428
|
|
|
426
429
|
| 参数 | 类型 | 必填 | 默认值 | 说明 |
|
|
427
430
|
|------|------|------|--------|------|
|
|
428
|
-
| `group_id` | string | 是 | — |
|
|
431
|
+
| `group_id` | string | 是 | — | 群组标识;兼容字段,值语义为目标态 `group_aid` |
|
|
429
432
|
| `page` | integer | 否 | 1 | 页码 |
|
|
430
433
|
| `size` | integer | 否 | 50 | 每页条数(最大 200) |
|
|
431
434
|
| `role` | string | 否 | — | 按角色过滤(owner/admin/member) |
|
|
@@ -441,9 +444,9 @@
|
|
|
441
444
|
"aid": "alice.agentid.pub",
|
|
442
445
|
"role": "owner",
|
|
443
446
|
"member_type": "human",
|
|
444
|
-
"joined_at":
|
|
447
|
+
"joined_at": 1234567890000,
|
|
445
448
|
"last_ack_seq": 100,
|
|
446
|
-
"last_pull_at":
|
|
449
|
+
"last_pull_at": 1234567890000
|
|
447
450
|
}
|
|
448
451
|
],
|
|
449
452
|
"total": 1,
|
|
@@ -461,7 +464,7 @@
|
|
|
461
464
|
|
|
462
465
|
| 参数 | 类型 | 必填 | 说明 |
|
|
463
466
|
|------|------|------|------|
|
|
464
|
-
| `group_id` | string | 是 |
|
|
467
|
+
| `group_id` | string | 是 | 群组标识;兼容字段,值语义为目标态 `group_aid` |
|
|
465
468
|
| `aid` | string | 是 | 要踢出的 AID |
|
|
466
469
|
|
|
467
470
|
**响应**:
|
|
@@ -477,7 +480,7 @@
|
|
|
477
480
|
|
|
478
481
|
主动退出群组。owner 不能直接退群,需先转让群主。
|
|
479
482
|
|
|
480
|
-
**参数**:`group_id
|
|
483
|
+
**参数**:`group_id`(string,必填;兼容字段,值使用目标态 `group_aid`)
|
|
481
484
|
|
|
482
485
|
**响应**:
|
|
483
486
|
|
|
@@ -496,7 +499,7 @@
|
|
|
496
499
|
|
|
497
500
|
| 参数 | 类型 | 必填 | 说明 |
|
|
498
501
|
|------|------|------|------|
|
|
499
|
-
| `group_id` | string | 是 |
|
|
502
|
+
| `group_id` | string | 是 | 群组标识;兼容字段,值语义为目标态 `group_aid` |
|
|
500
503
|
| `aid` | string | 是 | 目标 AID |
|
|
501
504
|
| `role` | string | 是 | `"admin"` / `"member"` |
|
|
502
505
|
|
|
@@ -510,7 +513,7 @@
|
|
|
510
513
|
"aid": "bob.agentid.pub",
|
|
511
514
|
"role": "admin",
|
|
512
515
|
"member_type": "human",
|
|
513
|
-
"joined_at":
|
|
516
|
+
"joined_at": 1234567890000,
|
|
514
517
|
"last_ack_seq": 0,
|
|
515
518
|
"last_pull_at": 0
|
|
516
519
|
},
|
|
@@ -529,7 +532,7 @@
|
|
|
529
532
|
|
|
530
533
|
| 参数 | 类型 | 必填 | 说明 |
|
|
531
534
|
|------|------|------|------|
|
|
532
|
-
| `group_id` | string | 是 |
|
|
535
|
+
| `group_id` | string | 是 | 群组标识;兼容字段,值语义为目标态 `group_aid` |
|
|
533
536
|
| `new_owner` | string | 是 | 新群主 AID(也接受 `aid`) |
|
|
534
537
|
|
|
535
538
|
**响应**:
|
|
@@ -555,7 +558,7 @@
|
|
|
555
558
|
|
|
556
559
|
| 参数 | 类型 | 必填 | 说明 |
|
|
557
560
|
|------|------|------|------|
|
|
558
|
-
| `group_id` | string | 是 |
|
|
561
|
+
| `group_id` | string | 是 | 群组标识;兼容字段,值语义为目标态 `group_aid` |
|
|
559
562
|
| `public_key` | string | 是 | 公钥 DER base64(SPKI 格式) |
|
|
560
563
|
| `curve` | string | 否 | 曲线名称(默认 P-256) |
|
|
561
564
|
|
|
@@ -564,7 +567,7 @@
|
|
|
564
567
|
```json
|
|
565
568
|
{
|
|
566
569
|
"group": {
|
|
567
|
-
"group_id": "my-team",
|
|
570
|
+
"group_id": "my-team.agentid.pub",
|
|
568
571
|
"group_aid": "my-team.agentid.pub",
|
|
569
572
|
...
|
|
570
573
|
},
|
|
@@ -599,7 +602,7 @@
|
|
|
599
602
|
|
|
600
603
|
| 参数 | 类型 | 必填 | 说明 |
|
|
601
604
|
|------|------|------|------|
|
|
602
|
-
| `group_id` | string | 是 |
|
|
605
|
+
| `group_id` | string | 是 | 群组标识;兼容字段,值语义为目标态 `group_aid` |
|
|
603
606
|
| `group_aid` | string | 否 | 群身份 AID(可选,服务端可推导) |
|
|
604
607
|
| `old_public_key` | string | 是 | 旧公钥 DER base64 |
|
|
605
608
|
| `new_public_key` | string | 是 | 新公钥 DER base64 |
|
|
@@ -629,7 +632,7 @@ aun-group-aid-renew-v1|{group_id}|{group_aid}|{sha256(old_public_key)}|{sha256(n
|
|
|
629
632
|
```json
|
|
630
633
|
{
|
|
631
634
|
"group": {
|
|
632
|
-
"group_id": "my-team",
|
|
635
|
+
"group_id": "my-team.agentid.pub",
|
|
633
636
|
"group_aid": "my-team.agentid.pub",
|
|
634
637
|
...
|
|
635
638
|
},
|
|
@@ -657,7 +660,7 @@ aun-group-aid-renew-v1|{group_id}|{group_aid}|{sha256(old_public_key)}|{sha256(n
|
|
|
657
660
|
|
|
658
661
|
| 参数 | 类型 | 必填 | 说明 |
|
|
659
662
|
|------|------|------|------|
|
|
660
|
-
| `group_id` | string | 是 |
|
|
663
|
+
| `group_id` | string | 是 | 群组标识;兼容字段,值语义为目标态 `group_aid` |
|
|
661
664
|
| `subject` | string | 是 | 要封禁的 AID(也接受 `aid`) |
|
|
662
665
|
| `reason` | string | 否 | 封禁原因 |
|
|
663
666
|
| `expires_at` | integer | 否 | 过期时间戳(0 = 永久) |
|
|
@@ -674,7 +677,7 @@ aun-group-aid-renew-v1|{group_id}|{group_aid}|{sha256(old_public_key)}|{sha256(n
|
|
|
674
677
|
"banned_by": "alice.agentid.pub",
|
|
675
678
|
"reason": "垃圾消息",
|
|
676
679
|
"expires_at": 0,
|
|
677
|
-
"created_at":
|
|
680
|
+
"created_at": 1234567890000
|
|
678
681
|
}
|
|
679
682
|
}
|
|
680
683
|
```
|
|
@@ -683,7 +686,7 @@ aun-group-aid-renew-v1|{group_id}|{group_aid}|{sha256(old_public_key)}|{sha256(n
|
|
|
683
686
|
|
|
684
687
|
解除封禁。需要 **admin 及以上**权限。
|
|
685
688
|
|
|
686
|
-
**参数**:`group_id
|
|
689
|
+
**参数**:`group_id`(string,兼容字段,值使用目标态 `group_aid`),`subject` 或 `aid` (string)
|
|
687
690
|
|
|
688
691
|
**响应**:
|
|
689
692
|
|
|
@@ -699,7 +702,7 @@ aun-group-aid-renew-v1|{group_id}|{group_aid}|{sha256(old_public_key)}|{sha256(n
|
|
|
699
702
|
|
|
700
703
|
获取封禁列表。需要 **admin 及以上**权限。
|
|
701
704
|
|
|
702
|
-
**参数**:`group_id
|
|
705
|
+
**参数**:`group_id`(string,必填;兼容字段,值使用目标态 `group_aid`)
|
|
703
706
|
|
|
704
707
|
**响应**:
|
|
705
708
|
|
|
@@ -713,7 +716,7 @@ aun-group-aid-renew-v1|{group_id}|{group_aid}|{sha256(old_public_key)}|{sha256(n
|
|
|
713
716
|
"banned_by": "alice.agentid.pub",
|
|
714
717
|
"reason": "垃圾消息",
|
|
715
718
|
"expires_at": 0,
|
|
716
|
-
"created_at":
|
|
719
|
+
"created_at": 1234567890000
|
|
717
720
|
}
|
|
718
721
|
],
|
|
719
722
|
"total": 1,
|
|
@@ -734,7 +737,7 @@ aun-group-aid-renew-v1|{group_id}|{group_aid}|{sha256(old_public_key)}|{sha256(n
|
|
|
734
737
|
|
|
735
738
|
| 参数 | 类型 | 必填 | 说明 |
|
|
736
739
|
|------|------|------|------|
|
|
737
|
-
| `group_id` | string | 是 |
|
|
740
|
+
| `group_id` | string | 是 | 群组标识;兼容字段,值语义为目标态 `group_aid` |
|
|
738
741
|
| `message` | string | 否 | 申请留言 |
|
|
739
742
|
| `answer` | string | 否 | 入群问题的答案 |
|
|
740
743
|
|
|
@@ -770,8 +773,8 @@ aun-group-aid-renew-v1|{group_id}|{group_aid}|{sha256(old_public_key)}|{sha256(n
|
|
|
770
773
|
"message": "请加我",
|
|
771
774
|
"answer": "...",
|
|
772
775
|
"status": "pending",
|
|
773
|
-
"created_at":
|
|
774
|
-
"updated_at":
|
|
776
|
+
"created_at": 1234567890000,
|
|
777
|
+
"updated_at": 1234567890000,
|
|
775
778
|
"expires_at": 1234654290,
|
|
776
779
|
"reviewed_by": null,
|
|
777
780
|
"rejection_reason": null
|
|
@@ -787,7 +790,7 @@ aun-group-aid-renew-v1|{group_id}|{group_aid}|{sha256(old_public_key)}|{sha256(n
|
|
|
787
790
|
|
|
788
791
|
| 参数 | 类型 | 必填 | 默认值 | 说明 |
|
|
789
792
|
|------|------|------|--------|------|
|
|
790
|
-
| `group_id` | string | 是 | — |
|
|
793
|
+
| `group_id` | string | 是 | — | 群组标识;兼容字段,值语义为目标态 `group_aid` |
|
|
791
794
|
| `status` | string | 否 | `"pending"` | `"pending"` / `"approved"` / `"rejected"` |
|
|
792
795
|
| `page` | integer | 否 | 1 | 页码 |
|
|
793
796
|
| `size` | integer | 否 | — | 每页数量 |
|
|
@@ -803,8 +806,8 @@ aun-group-aid-renew-v1|{group_id}|{group_aid}|{sha256(old_public_key)}|{sha256(n
|
|
|
803
806
|
"aid": "carol.agentid.pub",
|
|
804
807
|
"message": "请加我",
|
|
805
808
|
"status": "pending",
|
|
806
|
-
"created_at":
|
|
807
|
-
"updated_at":
|
|
809
|
+
"created_at": 1234567890000,
|
|
810
|
+
"updated_at": 1234567890000
|
|
808
811
|
}
|
|
809
812
|
],
|
|
810
813
|
"total": 1,
|
|
@@ -821,7 +824,7 @@ aun-group-aid-renew-v1|{group_id}|{group_aid}|{sha256(old_public_key)}|{sha256(n
|
|
|
821
824
|
|
|
822
825
|
| 参数 | 类型 | 必填 | 说明 |
|
|
823
826
|
|------|------|------|------|
|
|
824
|
-
| `group_id` | string | 是 |
|
|
827
|
+
| `group_id` | string | 是 | 群组标识;兼容字段,值语义为目标态 `group_aid` |
|
|
825
828
|
| `aid` | string | 是 | 申请人 AID |
|
|
826
829
|
| `approve` | boolean | 否 | 批准或拒绝,默认 `true` |
|
|
827
830
|
| `reason` | string | 否 | 拒绝原因 |
|
|
@@ -859,7 +862,7 @@ aun-group-aid-renew-v1|{group_id}|{group_aid}|{sha256(old_public_key)}|{sha256(n
|
|
|
859
862
|
|
|
860
863
|
| 参数 | 类型 | 必填 | 说明 |
|
|
861
864
|
|------|------|------|------|
|
|
862
|
-
| `group_id` | string | 是 |
|
|
865
|
+
| `group_id` | string | 是 | 群组标识;兼容字段,值语义为目标态 `group_aid` |
|
|
863
866
|
| `requests` | array | 是 | 审批列表 |
|
|
864
867
|
|
|
865
868
|
`requests` 数组每项:
|
|
@@ -891,7 +894,7 @@ aun-group-aid-renew-v1|{group_id}|{group_aid}|{sha256(old_public_key)}|{sha256(n
|
|
|
891
894
|
|
|
892
895
|
| 参数 | 类型 | 必填 | 说明 |
|
|
893
896
|
|------|------|------|------|
|
|
894
|
-
| `group_id` | string | 是 |
|
|
897
|
+
| `group_id` | string | 是 | 群组标识;兼容字段,值语义为目标态 `group_aid` |
|
|
895
898
|
| `code` | string | 否 | 自定义邀请码(不提供则自动生成) |
|
|
896
899
|
| `max_uses` | integer | 否 | 最大使用次数,默认 1,必须 > 0 |
|
|
897
900
|
| `expires_in_seconds` | integer | 否 | 有效期(秒),默认由 invite_code_ttl_days 配置(7 天) |
|
|
@@ -909,7 +912,7 @@ aun-group-aid-renew-v1|{group_id}|{group_aid}|{sha256(old_public_key)}|{sha256(n
|
|
|
909
912
|
"max_uses": 10,
|
|
910
913
|
"used_count": 0,
|
|
911
914
|
"status": "active",
|
|
912
|
-
"created_at":
|
|
915
|
+
"created_at": 1234567890000
|
|
913
916
|
}
|
|
914
917
|
}
|
|
915
918
|
```
|
|
@@ -934,13 +937,13 @@ aun-group-aid-renew-v1|{group_id}|{group_aid}|{sha256(old_public_key)}|{sha256(n
|
|
|
934
937
|
|
|
935
938
|
列出群组的邀请码。需要 admin 权限。
|
|
936
939
|
|
|
937
|
-
**参数**:`group_id
|
|
940
|
+
**参数**:`group_id`(string,必填;兼容字段,值使用目标态 `group_aid`)
|
|
938
941
|
|
|
939
942
|
### group.revoke_invite_code
|
|
940
943
|
|
|
941
944
|
撤销邀请码。需要 admin 权限。
|
|
942
945
|
|
|
943
|
-
**参数**:`group_id
|
|
946
|
+
**参数**:`group_id`(string,兼容字段,值使用目标态 `group_aid`),`code` (string)
|
|
944
947
|
|
|
945
948
|
---
|
|
946
949
|
|
|
@@ -956,7 +959,7 @@ aun-group-aid-renew-v1|{group_id}|{group_aid}|{sha256(old_public_key)}|{sha256(n
|
|
|
956
959
|
|
|
957
960
|
| 参数 | 类型 | 必填 | 说明 |
|
|
958
961
|
|------|------|------|------|
|
|
959
|
-
| `group_id` | string | 是 |
|
|
962
|
+
| `group_id` | string | 是 | 群组标识;兼容字段,值语义为目标态 `group_aid` |
|
|
960
963
|
| `settings` | object | 是 | 要写入的设置键值 |
|
|
961
964
|
| `settings["dispatch_mode"]` | string | 否 | `"broadcast"` / `"mention"`,默认 `"broadcast"` |
|
|
962
965
|
| `settings["rules.content"]` | string | 否 | 群规则正文 |
|
|
@@ -1003,7 +1006,7 @@ await client.call("group.set_settings", {
|
|
|
1003
1006
|
|
|
1004
1007
|
| 参数 | 类型 | 必填 | 说明 |
|
|
1005
1008
|
|------|------|------|------|
|
|
1006
|
-
| `group_id` | string | 是 |
|
|
1009
|
+
| `group_id` | string | 是 | 群组标识;兼容字段,值语义为目标态 `group_aid` |
|
|
1007
1010
|
| `keys` | array | 否 | 只读取指定 key,如 `["dispatch_mode", "rules.content"]` |
|
|
1008
1011
|
|
|
1009
1012
|
**响应**:
|
|
@@ -1029,7 +1032,7 @@ await client.call("group.set_settings", {
|
|
|
1029
1032
|
|
|
1030
1033
|
| 参数 | 类型 | 必填 | 说明 |
|
|
1031
1034
|
|------|------|------|------|
|
|
1032
|
-
| `group_id` | string | 是 |
|
|
1035
|
+
| `group_id` | string | 是 | 群组标识;兼容字段,值语义为目标态 `group_aid` |
|
|
1033
1036
|
| `payload` | object | 否 | 消息内容 |
|
|
1034
1037
|
| `type` | string | 否 | 信封/封装类型,普通业务消息无需填写;SDK 加密群消息时自动使用 `e2ee.group_encrypted` |
|
|
1035
1038
|
| `attachments` | array | 否 | 兼容旧接口的顶层附件元数据;推荐把业务附件放入 `payload.attachments` |
|
|
@@ -1037,7 +1040,7 @@ await client.call("group.set_settings", {
|
|
|
1037
1040
|
|
|
1038
1041
|
### Payload 参考约定
|
|
1039
1042
|
|
|
1040
|
-
`group.send.params.payload` 的统一业务负载格式见 [09-payload-reference](09-payload-reference.md)。完整群消息请求仍在 `payload` 同级传入 `group_id
|
|
1043
|
+
`group.send.params.payload` 的统一业务负载格式见 [09-payload-reference](09-payload-reference.md)。完整群消息请求仍在 `payload` 同级传入 `group_id`(兼容参数名,值使用目标态 `group_aid`);业务类型放在 `payload.type`,不要与 `group.send.params.type` 信封/封装类型混用。
|
|
1041
1044
|
|
|
1042
1045
|
`protected_headers` 只在 SDK 加密路径生效;裸 RPC 发送明文或已加密信封时,调用方需自行遵守 [05-E2EE加密通信](05-E2EE加密通信.md#protectedheaders-与可验证上下文) 的格式和校验规则。
|
|
1043
1046
|
|
|
@@ -1059,34 +1062,45 @@ await client.call("group.set_settings", {
|
|
|
1059
1062
|
},
|
|
1060
1063
|
"event": { ... },
|
|
1061
1064
|
"dispatch_mode": "broadcast",
|
|
1062
|
-
"dispatch": {"mode": "broadcast", "reason": "duty_disabled"},
|
|
1063
|
-
"message_dispatch": { ... }
|
|
1064
|
-
|
|
1065
|
-
|
|
1065
|
+
"dispatch": {"mode": "broadcast", "reason": "duty_disabled"},
|
|
1066
|
+
"message_dispatch": { ... },
|
|
1067
|
+
"envelope": {
|
|
1068
|
+
"from": "alice.agentid.pub",
|
|
1069
|
+
"group_id": "g-abc123.agentid.pub",
|
|
1070
|
+
"type": "text",
|
|
1071
|
+
"timestamp": 1234567890000,
|
|
1072
|
+
"encrypted": true,
|
|
1073
|
+
"payload_type": "text"
|
|
1074
|
+
},
|
|
1075
|
+
"payload": {"type": "text", "text": "Hello"}
|
|
1076
|
+
}
|
|
1077
|
+
```
|
|
1066
1078
|
|
|
1067
1079
|
| 字段 | 类型 | 说明 |
|
|
1068
1080
|
|------|------|------|
|
|
1069
|
-
| `group_id` | string |
|
|
1081
|
+
| `group_id` | string | 兼容字段,值语义为目标态 `group_aid` |
|
|
1070
1082
|
| `message` | object | 消息对象(含 seq、message_id、sender_aid 等) |
|
|
1071
1083
|
| `event` | object | 关联的群事件对象 |
|
|
1072
1084
|
| `dispatch_mode` | string | 群消息持久化分发模式标签:`"broadcast"` / `"mention"`;SDK 解密后也会注入到 `payload.dispatch_mode` |
|
|
1073
|
-
| `dispatch` | object | 分发策略:`mode` 为 `"broadcast"`(广播全员)或 `"duty"`(值班分发);`reason` 说明原因(如 `"duty_disabled"` / `"active_duty"` / `"no_duty_candidate"` 等) |
|
|
1074
|
-
| `duty_state` | object | 可选,值班模式下的当前状态 |
|
|
1075
|
-
| `message_dispatch` | object | 运行时分发结果;常见 `status` 包括 `"broadcast"`、`"sent"`、`"queued_batch"`、`"debounced"`、`"skipped"`、`"failed"` |
|
|
1085
|
+
| `dispatch` | object | 分发策略:`mode` 为 `"broadcast"`(广播全员)或 `"duty"`(值班分发);`reason` 说明原因(如 `"duty_disabled"` / `"active_duty"` / `"no_duty_candidate"` 等) |
|
|
1086
|
+
| `duty_state` | object | 可选,值班模式下的当前状态 |
|
|
1087
|
+
| `message_dispatch` | object | 运行时分发结果;常见 `status` 包括 `"broadcast"`、`"sent"`、`"queued_batch"`、`"debounced"`、`"skipped"`、`"failed"` |
|
|
1088
|
+
| `envelope` | object | SDK 回填的发送结果信封,包含发送方、群标识、业务类型、时间戳、加密标志、protected headers 等可转发元数据 |
|
|
1089
|
+
| `payload` | object | SDK 回填的应用层业务 payload;裸 RPC 或内部 `_skip_send_result_envelope` 路径可能没有该字段 |
|
|
1076
1090
|
|
|
1077
1091
|
### group.thought.put
|
|
1078
1092
|
|
|
1079
1093
|
写入某个发送者针对一个群上下文的思考内容。该内容不是普通群消息:服务端不分配消息 `seq`,不广播,不进入 `group.pull`,不需要 ack,也不持久化;只在内存中保留当前 head。
|
|
1080
1094
|
|
|
1081
|
-
SDK 调用时必须走群组 E2EE。应用层传入明文 `payload`,SDK 会加密成 `e2ee.group_encrypted` 信封、补齐 `thought_id` / `timestamp`,并附加 `client_signature`。裸 WebSocket 客户端若绕过 SDK
|
|
1095
|
+
SDK 调用时必须走群组 E2EE。应用层传入明文 `payload`,SDK 会加密成 V2 `e2ee.group_encrypted` 信封、补齐 `thought_id` / `timestamp`,并附加 `client_signature`。裸 WebSocket 客户端若绕过 SDK,至少必须自行完成 V2 envelope、`sender_signature`、AAD 和 state commitment 生成;`client_signature` 按 Gateway 连接级身份语义携带。
|
|
1082
1096
|
|
|
1083
|
-
|
|
1097
|
+
存储键为规范化后的 `group_aid + sender_aid + context.type + context.id`。RPC 字段名仍为 `group_id` 以兼容旧客户端,但服务端会先规范化为目标态群标识;`sender_aid` 由服务端认证态派生,不能由客户端指定;`context` 是 thought head 的唯一 selector,推荐使用 `{"type": "run", "id": "run-xxx"}`。同一 `(group_aid, sender_aid)` 保留最近 N 个 context 对应的 head,N 由群服务配置 `max_thought_heads_per_sender` 控制,当前默认值为 100;同一个 head 下可追加多条 thought item。
|
|
1084
1098
|
|
|
1085
1099
|
**参数**:
|
|
1086
1100
|
|
|
1087
1101
|
| 参数 | 类型 | 必填 | 说明 |
|
|
1088
1102
|
|------|------|------|------|
|
|
1089
|
-
| `group_id` | string | 是 |
|
|
1103
|
+
| `group_id` | string | 是 | 群组标识;兼容字段,值语义为目标态 `group_aid` |
|
|
1090
1104
|
| `context.type` | string | 是 | 思考的上下文类型,推荐 `run` |
|
|
1091
1105
|
| `context.id` | string | 是 | 思考的上下文 ID,如 `run_id` |
|
|
1092
1106
|
| `payload` | object | 是 | SDK 加密前的思考内容;推荐格式见 [09-payload-reference](09-payload-reference.md#thought思考内容) |
|
|
@@ -1114,7 +1128,7 @@ await client.call("group.thought.put", {
|
|
|
1114
1128
|
"thought_id": "gt-...",
|
|
1115
1129
|
"type": "e2ee.group_encrypted",
|
|
1116
1130
|
"encrypted": true,
|
|
1117
|
-
"payload": {"type": "e2ee.group_encrypted", "...": "..."},
|
|
1131
|
+
"payload": {"type": "e2ee.group_encrypted", "version": "v2", "...": "..."},
|
|
1118
1132
|
"client_signature": { "...": "..." }
|
|
1119
1133
|
}
|
|
1120
1134
|
```
|
|
@@ -1140,7 +1154,7 @@ await client.call("group.thought.put", {
|
|
|
1140
1154
|
|
|
1141
1155
|
| 参数 | 类型 | 必填 | 说明 |
|
|
1142
1156
|
|------|------|------|------|
|
|
1143
|
-
| `group_id` | string | 是 |
|
|
1157
|
+
| `group_id` | string | 是 | 群组标识;兼容字段,值语义为目标态 `group_aid` |
|
|
1144
1158
|
| `sender_aid` | string | 是 | thought 作者 AID |
|
|
1145
1159
|
| `context.type` | string | 是 | 思考的上下文类型,推荐 `run` |
|
|
1146
1160
|
| `context.id` | string | 是 | 思考的上下文 ID,如 `run_id` |
|
|
@@ -1189,9 +1203,9 @@ result = await client.call("group.thought.get", {
|
|
|
1189
1203
|
|
|
1190
1204
|
| 参数 | 类型 | 必填 | 默认值 | 说明 |
|
|
1191
1205
|
|------|------|------|--------|------|
|
|
1192
|
-
| `group_id` | string | 是 | — |
|
|
1206
|
+
| `group_id` | string | 是 | — | 群组标识;兼容字段,值语义为目标态 `group_aid` |
|
|
1193
1207
|
| `after_message_seq` | integer | 否 | 0 | 从该消息 seq 之后拉取 |
|
|
1194
|
-
| `limit` | integer | 否 |
|
|
1208
|
+
| `limit` | integer | 否 | 50 | 最大条数(最大 50;`pull_max_limit` 配置只能进一步收紧) |
|
|
1195
1209
|
| `device_id` | string | 否 | — | 设备 ID(多设备模式) |
|
|
1196
1210
|
|
|
1197
1211
|
**响应**:
|
|
@@ -1202,7 +1216,7 @@ result = await client.call("group.thought.get", {
|
|
|
1202
1216
|
"messages": [ ... ],
|
|
1203
1217
|
"latest_message_seq": 42,
|
|
1204
1218
|
"has_more": false,
|
|
1205
|
-
"limit":
|
|
1219
|
+
"limit": 50
|
|
1206
1220
|
}
|
|
1207
1221
|
```
|
|
1208
1222
|
|
|
@@ -1218,7 +1232,7 @@ result = await client.call("group.thought.get", {
|
|
|
1218
1232
|
|
|
1219
1233
|
| 参数 | 类型 | 必填 | 说明 |
|
|
1220
1234
|
|------|------|------|------|
|
|
1221
|
-
| `group_id` | string | 是 |
|
|
1235
|
+
| `group_id` | string | 是 | 群组标识;兼容字段,值语义为目标态 `group_aid` |
|
|
1222
1236
|
| `device_id` | string | 是 | 设备 ID |
|
|
1223
1237
|
| `msg_seq` | integer | 是 | 确认到的消息序号 |
|
|
1224
1238
|
|
|
@@ -1243,7 +1257,7 @@ result = await client.call("group.thought.get", {
|
|
|
1243
1257
|
|
|
1244
1258
|
| 参数 | 类型 | 必填 | 说明 |
|
|
1245
1259
|
|------|------|------|------|
|
|
1246
|
-
| `group_id` | string | 是 |
|
|
1260
|
+
| `group_id` | string | 是 | 群组标识;兼容字段,值语义为目标态 `group_aid` |
|
|
1247
1261
|
| `message_ids` | string[] | 是 | 待撤回消息 ID 列表,最多 100 个(`recall_max_batch`)|
|
|
1248
1262
|
| `reason` | string | 否 | 可选撤回理由,建议短文本(最长 255 字符)|
|
|
1249
1263
|
|
|
@@ -1392,7 +1406,7 @@ result = await client.call("group.thought.get", {
|
|
|
1392
1406
|
|
|
1393
1407
|
获取当前在线成员列表。
|
|
1394
1408
|
|
|
1395
|
-
**参数**:`group_id
|
|
1409
|
+
**参数**:`group_id`(string,必填;兼容字段,值使用目标态 `group_aid`)
|
|
1396
1410
|
|
|
1397
1411
|
**响应**:
|
|
1398
1412
|
|
|
@@ -1407,10 +1421,10 @@ result = await client.call("group.thought.get", {
|
|
|
1407
1421
|
{
|
|
1408
1422
|
"aid": "alice.agentid.pub",
|
|
1409
1423
|
"role": "owner",
|
|
1410
|
-
"joined_at":
|
|
1424
|
+
"joined_at": 1234567890000,
|
|
1411
1425
|
"online": true,
|
|
1412
1426
|
"session_id": "sess_123",
|
|
1413
|
-
"last_active_at":
|
|
1427
|
+
"last_active_at": 1234567890000,
|
|
1414
1428
|
"expire_at": 1234571490
|
|
1415
1429
|
}
|
|
1416
1430
|
]
|
|
@@ -1431,12 +1445,12 @@ result = await client.call("group.thought.get", {
|
|
|
1431
1445
|
|
|
1432
1446
|
| 参数 | 类型 | 必填 | 默认值 | 说明 |
|
|
1433
1447
|
|------|------|------|--------|------|
|
|
1434
|
-
| `group_id` | string | 是 | — |
|
|
1448
|
+
| `group_id` | string | 是 | — | 群组标识;兼容字段,值语义为目标态 `group_aid` |
|
|
1435
1449
|
| `device_id` | string | 否 | — | 设备 ID,多设备模式必填 |
|
|
1436
1450
|
| `device_name` | string | 否 | — | 设备名称(首次注册时使用) |
|
|
1437
1451
|
| `device_type` | string | 否 | — | 设备类型 |
|
|
1438
1452
|
| `after_event_seq` | integer | 否 | 游标位置 | 从该事件 seq 之后拉取;多设备模式下默认使用设备游标 |
|
|
1439
|
-
| `limit` | integer | 否 |
|
|
1453
|
+
| `limit` | integer | 否 | 50 | 最大条数(最大 50;`pull_max_limit` 配置只能进一步收紧) |
|
|
1440
1454
|
|
|
1441
1455
|
**响应**:
|
|
1442
1456
|
|
|
@@ -1446,7 +1460,7 @@ result = await client.call("group.thought.get", {
|
|
|
1446
1460
|
"events": [ ... ],
|
|
1447
1461
|
"latest_event_seq": 100,
|
|
1448
1462
|
"has_more": false,
|
|
1449
|
-
"limit":
|
|
1463
|
+
"limit": 50,
|
|
1450
1464
|
"cursor": {
|
|
1451
1465
|
"current_seq": 50,
|
|
1452
1466
|
"join_seq": 0,
|
|
@@ -1466,7 +1480,7 @@ result = await client.call("group.thought.get", {
|
|
|
1466
1480
|
|
|
1467
1481
|
| 参数 | 类型 | 必填 | 说明 |
|
|
1468
1482
|
|------|------|------|------|
|
|
1469
|
-
| `group_id` | string | 是 |
|
|
1483
|
+
| `group_id` | string | 是 | 群组标识;兼容字段,值语义为目标态 `group_aid` |
|
|
1470
1484
|
| `device_id` | string | 是 | 设备 ID |
|
|
1471
1485
|
| `msg_seq` | integer | 是 | 确认到的消息序号 |
|
|
1472
1486
|
|
|
@@ -1482,7 +1496,7 @@ result = await client.call("group.thought.get", {
|
|
|
1482
1496
|
|
|
1483
1497
|
| 参数 | 类型 | 必填 | 说明 |
|
|
1484
1498
|
|------|------|------|------|
|
|
1485
|
-
| `group_id` | string | 是 |
|
|
1499
|
+
| `group_id` | string | 是 | 群组标识;兼容字段,值语义为目标态 `group_aid` |
|
|
1486
1500
|
| `device_id` | string | 是 | 设备 ID |
|
|
1487
1501
|
| `event_seq` | integer | 是 | 确认到的事件序号 |
|
|
1488
1502
|
|
|
@@ -1492,7 +1506,7 @@ result = await client.call("group.thought.get", {
|
|
|
1492
1506
|
|
|
1493
1507
|
列出当前用户在指定群组的所有设备及游标状态。
|
|
1494
1508
|
|
|
1495
|
-
**参数**:`group_id`
|
|
1509
|
+
**参数**:`group_id`(必填;兼容字段,值使用目标态 `group_aid`)
|
|
1496
1510
|
|
|
1497
1511
|
**响应**:
|
|
1498
1512
|
|
|
@@ -1515,7 +1529,7 @@ result = await client.call("group.thought.get", {
|
|
|
1515
1529
|
|
|
1516
1530
|
注销设备游标(清理不再使用的设备记录)。
|
|
1517
1531
|
|
|
1518
|
-
**参数**:`group_id
|
|
1532
|
+
**参数**:`group_id`(必填;兼容字段,值使用目标态 `group_aid`),`device_id` (必填)
|
|
1519
1533
|
|
|
1520
1534
|
**响应**:`{ "success": true }`
|
|
1521
1535
|
|
|
@@ -1527,7 +1541,7 @@ result = await client.call("group.thought.get", {
|
|
|
1527
1541
|
|
|
1528
1542
|
获取管理员列表(owner + admin 角色)。
|
|
1529
1543
|
|
|
1530
|
-
**参数**:`group_id`
|
|
1544
|
+
**参数**:`group_id`(必填;兼容字段,值使用目标态 `group_aid`)
|
|
1531
1545
|
|
|
1532
1546
|
**响应**:
|
|
1533
1547
|
|
|
@@ -1538,7 +1552,7 @@ result = await client.call("group.thought.get", {
|
|
|
1538
1552
|
"aid": "alice.agentid.pub",
|
|
1539
1553
|
"role": "owner",
|
|
1540
1554
|
"member_type": "human",
|
|
1541
|
-
"joined_at":
|
|
1555
|
+
"joined_at": 1234567890000
|
|
1542
1556
|
}
|
|
1543
1557
|
]
|
|
1544
1558
|
}
|
|
@@ -1548,7 +1562,7 @@ result = await client.call("group.thought.get", {
|
|
|
1548
1562
|
|
|
1549
1563
|
获取群主 AID。
|
|
1550
1564
|
|
|
1551
|
-
**参数**:`group_id`
|
|
1565
|
+
**参数**:`group_id`(必填;兼容字段,值使用目标态 `group_aid`)
|
|
1552
1566
|
|
|
1553
1567
|
**响应**:`{ "group_id": "g-abc123.agentid.pub", "owner_aid": "alice.agentid.pub" }`
|
|
1554
1568
|
|
|
@@ -1556,7 +1570,7 @@ result = await client.call("group.thought.get", {
|
|
|
1556
1570
|
|
|
1557
1571
|
获取群组综合统计摘要。
|
|
1558
1572
|
|
|
1559
|
-
**参数**:`group_id`
|
|
1573
|
+
**参数**:`group_id`(必填;兼容字段,值使用目标态 `group_aid`)
|
|
1560
1574
|
|
|
1561
1575
|
**响应**:
|
|
1562
1576
|
|
|
@@ -1575,8 +1589,8 @@ result = await client.call("group.thought.get", {
|
|
|
1575
1589
|
"message_seq": 1000,
|
|
1576
1590
|
"event_seq": 2000,
|
|
1577
1591
|
"e2ee_epoch": 3,
|
|
1578
|
-
"created_at":
|
|
1579
|
-
"updated_at":
|
|
1592
|
+
"created_at": 1234567890000,
|
|
1593
|
+
"updated_at": 1234567890000
|
|
1580
1594
|
}
|
|
1581
1595
|
```
|
|
1582
1596
|
|
|
@@ -1585,7 +1599,7 @@ result = await client.call("group.thought.get", {
|
|
|
1585
1599
|
|
|
1586
1600
|
刷新成员类型分类统计。
|
|
1587
1601
|
|
|
1588
|
-
**参数**:`group_id`
|
|
1602
|
+
**参数**:`group_id`(必填;兼容字段,值使用目标态 `group_aid`)
|
|
1589
1603
|
|
|
1590
1604
|
**响应**:
|
|
1591
1605
|
|
|
@@ -1641,14 +1655,14 @@ result = await client.call("group.thought.get", {
|
|
|
1641
1655
|
}
|
|
1642
1656
|
```
|
|
1643
1657
|
|
|
1644
|
-
SDK 交付给应用层的群事件信封字段统一放在 `envelope`。0.
|
|
1658
|
+
SDK 交付给应用层的群事件信封字段统一放在 `envelope`。0.5.x 当前仍保留顶层 `module_id` / `action` / `group_id` / `event_seq` 等兼容别名;新代码应优先通过 `ev["envelope"]["action"]` 等路径访问。
|
|
1645
1659
|
|
|
1646
1660
|
| 字段 | 类型 | 说明 |
|
|
1647
1661
|
|------|------|------|
|
|
1648
1662
|
| `envelope` | object | 群事件信封,包含 `module_id`、`action`、`group_id`、`event_seq`、`event_type`、`actor_aid`、`created_at`、`device_id`、`slot_id` 等存在的字段 |
|
|
1649
1663
|
| `module_id` | string | 固定 `"group"` |
|
|
1650
1664
|
| `action` | string | 变更类型(见下表) |
|
|
1651
|
-
| `group_id` | string |
|
|
1665
|
+
| `group_id` | string | 兼容字段,值语义为目标态 `group_aid` |
|
|
1652
1666
|
| `event_seq` | integer | 可选,服务端分配的单调递增序号,用于 SDK 内部保序去重 |
|
|
1653
1667
|
| `path` | string | 可选,Group FS 相关 action 的节点路径 |
|
|
1654
1668
|
|
|
@@ -1686,12 +1700,9 @@ SDK 交付给应用层的群事件信封字段统一放在 `envelope`。0.4.x
|
|
|
1686
1700
|
| `invite_code_revoked` | 邀请码撤销 |
|
|
1687
1701
|
| `member_banned` | 成员封禁 |
|
|
1688
1702
|
| `member_unbanned` | 成员解封 |
|
|
1689
|
-
| `
|
|
1690
|
-
| `
|
|
1691
|
-
| `
|
|
1692
|
-
| `suspended` | 群组暂停 |
|
|
1693
|
-
| `resumed` | 群组恢复 |
|
|
1694
|
-
| `dissolved` | 群组解散 |
|
|
1703
|
+
| `suspended` | 群组暂停 |
|
|
1704
|
+
| `resumed` | 群组恢复 |
|
|
1705
|
+
| `dissolved` | 群组解散 |
|
|
1695
1706
|
|
|
1696
1707
|
**订阅**:
|
|
1697
1708
|
|
|
@@ -1715,11 +1726,21 @@ client.on("group.changed", lambda ev: print(ev["action"]))
|
|
|
1715
1726
|
"type": "e2ee.group_encrypted",
|
|
1716
1727
|
"dispatch_mode": "broadcast",
|
|
1717
1728
|
"payload": { "type": "e2ee.group_encrypted", "..." : "..." },
|
|
1718
|
-
"dispatch": {"mode": "broadcast", "reason": "duty_disabled"},
|
|
1719
|
-
"kind": "group.broadcast",
|
|
1720
|
-
"member_aids": ["bob.agentid.pub"]
|
|
1721
|
-
|
|
1722
|
-
|
|
1729
|
+
"dispatch": {"mode": "broadcast", "reason": "duty_disabled"},
|
|
1730
|
+
"kind": "group.broadcast",
|
|
1731
|
+
"member_aids": ["bob.agentid.pub"],
|
|
1732
|
+
"proximity": {
|
|
1733
|
+
"same_device": false,
|
|
1734
|
+
"same_egress_ip": true,
|
|
1735
|
+
"same_network": true,
|
|
1736
|
+
"basis": "egress_ip",
|
|
1737
|
+
"asserted_by": "gateway"
|
|
1738
|
+
},
|
|
1739
|
+
"same_device": false,
|
|
1740
|
+
"same_egress_ip": true,
|
|
1741
|
+
"same_network": true
|
|
1742
|
+
}
|
|
1743
|
+
```
|
|
1723
1744
|
|
|
1724
1745
|
SDK 收到后自动解密 `payload`,解密后的明文消息直接交付用户回调。
|
|
1725
1746
|
|
|
@@ -1760,7 +1781,7 @@ SDK 收到后自动调用 `group.pull` 拉取最新消息并逐条解密后交
|
|
|
1760
1781
|
}
|
|
1761
1782
|
```
|
|
1762
1783
|
|
|
1763
|
-
SDK 交付给应用层的 `payload` 是明文业务 JSON 对象;群消息信封字段统一放在 `envelope`。`envelope` 只保留可转发的归一化元数据,`from` 由 `sender_aid` 归一化而来,`timestamp` 由 `created_at` / `t_server` 归一化而来。0.
|
|
1784
|
+
SDK 交付给应用层的 `payload` 是明文业务 JSON 对象;群消息信封字段统一放在 `envelope`。`envelope` 只保留可转发的归一化元数据,`from` 由 `sender_aid` 归一化而来,`timestamp` 由 `created_at` / `t_server` 归一化而来。0.5.x 当前仍保留顶层 `group_id` / `seq` / `message_id` / `sender_aid` / `dispatch_mode` 等兼容别名;新代码应优先通过 `msg["envelope"]["from"]`、`msg["envelope"]["timestamp"]` 等路径访问。Gateway 可能附加 `proximity` 及 `same_device` / `same_egress_ip` / `same_network`,表示由 Gateway 基于连接上下文判断的近端关系提示,不参与 E2EE AAD 或业务鉴权。
|
|
1764
1785
|
|
|
1765
1786
|
### event/group.message_recalled
|
|
1766
1787
|
|
|
@@ -1792,13 +1813,13 @@ SDK 交付给应用层的 `payload` 是明文业务 JSON 对象;群消息信
|
|
|
1792
1813
|
}
|
|
1793
1814
|
```
|
|
1794
1815
|
|
|
1795
|
-
SDK 交付给应用层的撤回事件同样带 `envelope`。`envelope` 表示当前交付的撤回 tombstone / 通知自身信封,不是被撤回原消息的信封;业务侧被撤回的原消息列表继续使用 `message_ids` / `target_message_seqs`。`message_id` / `seq` 继续只保留在顶层兼容字段中,不进入 `envelope`。0.
|
|
1816
|
+
SDK 交付给应用层的撤回事件同样带 `envelope`。`envelope` 表示当前交付的撤回 tombstone / 通知自身信封,不是被撤回原消息的信封;业务侧被撤回的原消息列表继续使用 `message_ids` / `target_message_seqs`。`message_id` / `seq` 继续只保留在顶层兼容字段中,不进入 `envelope`。0.5.x 当前仍保留顶层 `group_id` / `seq` / `message_id` / `sender_aid` 等兼容别名;新代码应优先读取 `envelope`、`message_ids` 和 `target_message_seqs`。
|
|
1796
1817
|
|
|
1797
1818
|
| 字段 | 类型 | 说明 |
|
|
1798
1819
|
|------|------|------|
|
|
1799
1820
|
| `envelope` | object | 撤回 tombstone / 通知自身信封,包含 `group_id`、`from`、`type`、`kind`、`timestamp`、`encrypted`、`context`、`protected_headers` 等存在的字段 |
|
|
1800
1821
|
| `module_id` | string | 固定 `"group"` |
|
|
1801
|
-
| `group_id` | string |
|
|
1822
|
+
| `group_id` | string | 兼容字段,值语义为目标态 `group_aid` |
|
|
1802
1823
|
| `seq` | integer | 当前交付的撤回 tombstone / 通知 seq;在线 push 为 notice_seq,原 seq 占位 tombstone 为原消息 seq |
|
|
1803
1824
|
| `message_id` | string | 当前交付的撤回 tombstone / 通知自己的 message_id |
|
|
1804
1825
|
| `tombstone_message_id` | string | 兼容别名,等同于撤回 tombstone / 通知自身的 `message_id` |
|