@agentunion/fastaun-browser 0.4.13 → 0.5.1
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 +536 -386
- package/_packed_docs/CHANGELOG-validators.md +144 -0
- package/_packed_docs/CHANGELOG.md +536 -386
- package/_packed_docs/INDEX.md +159 -84
- package/_packed_docs/KITE_DOCS_GUIDE.md +48 -31
- 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 +266 -686
- package/_packed_docs/cli/CLI/346/211/213/345/206/214.md +331 -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 +296 -900
- 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 +66 -173
- package/_packed_docs/protocol/11-Storage-/345/255/220/345/215/217/350/256/256.md +55 -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/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 -0
- package/_packed_docs/protocol/README.md +4 -1
- 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 +10 -3
- 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 +6 -252
- package/_packed_docs/sdk/06-API/346/211/213/345/206/214.md +219 -177
- 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 +581 -0
- package/_packed_docs/sdk/09-custody-api-manual.md +2 -0
- package/_packed_docs/sdk/09-group-rpc-manual.md +301 -634
- package/_packed_docs/sdk/09-message-rpc-manual.md +2 -0
- 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 +984 -274
- package/_packed_docs/sdk/09-stream-rpc-manual.md +2 -0
- package/_packed_docs/sdk/AUN_DOCS_GUIDE.md +36 -23
- 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 +47 -30
- 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/bundle.js +19615 -16870
- package/dist/client/delivery.d.ts +15 -2
- package/dist/client/delivery.d.ts.map +1 -1
- package/dist/client/delivery.js +303 -54
- package/dist/client/delivery.js.map +1 -1
- package/dist/client/group-state.d.ts.map +1 -1
- package/dist/client/group-state.js +36 -14
- package/dist/client/group-state.js.map +1 -1
- package/dist/client/lifecycle.js +2 -2
- package/dist/client/lifecycle.js.map +1 -1
- package/dist/client/rpc-pipeline.d.ts +2 -0
- package/dist/client/rpc-pipeline.d.ts.map +1 -1
- package/dist/client/rpc-pipeline.js +235 -82
- package/dist/client/rpc-pipeline.js.map +1 -1
- package/dist/client/v2-e2ee.d.ts +14 -1
- package/dist/client/v2-e2ee.d.ts.map +1 -1
- package/dist/client/v2-e2ee.js +300 -121
- package/dist/client/v2-e2ee.js.map +1 -1
- package/dist/client.d.ts +36 -4
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +460 -57
- package/dist/client.js.map +1 -1
- package/dist/collab/client.d.ts +47 -0
- package/dist/collab/client.d.ts.map +1 -0
- package/dist/collab/client.js +136 -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 +0 -20
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +9 -37
- package/dist/errors.js.map +1 -1
- package/dist/facades.d.ts +94 -0
- package/dist/facades.d.ts.map +1 -0
- package/dist/facades.js +389 -0
- package/dist/facades.js.map +1 -0
- package/dist/group-fs.d.ts +120 -0
- package/dist/group-fs.d.ts.map +1 -0
- package/dist/group-fs.js +539 -0
- package/dist/group-fs.js.map +1 -0
- package/dist/group-id.d.ts +9 -12
- package/dist/group-id.d.ts.map +1 -1
- package/dist/group-id.js +41 -63
- package/dist/group-id.js.map +1 -1
- 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 +8 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +10 -1
- package/dist/index.js.map +1 -1
- package/dist/keystore/index.d.ts +2 -54
- package/dist/keystore/index.d.ts.map +1 -1
- package/dist/keystore/indexeddb-identity-store.d.ts +3 -0
- package/dist/keystore/indexeddb-identity-store.d.ts.map +1 -1
- package/dist/keystore/indexeddb-identity-store.js +65 -0
- package/dist/keystore/indexeddb-identity-store.js.map +1 -1
- package/dist/keystore/indexeddb-shared.d.ts +3 -17
- package/dist/keystore/indexeddb-shared.d.ts.map +1 -1
- package/dist/keystore/indexeddb-shared.js +4 -47
- package/dist/keystore/indexeddb-shared.js.map +1 -1
- package/dist/keystore/indexeddb-token-store.d.ts +1 -64
- package/dist/keystore/indexeddb-token-store.d.ts.map +1 -1
- package/dist/keystore/indexeddb-token-store.js +45 -774
- package/dist/keystore/indexeddb-token-store.js.map +1 -1
- package/dist/logger.d.ts +2 -0
- package/dist/logger.d.ts.map +1 -1
- package/dist/logger.js +4 -0
- package/dist/logger.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 +322 -0
- package/dist/storage/lowlevel.d.ts.map +1 -0
- package/dist/storage/lowlevel.js +471 -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 +166 -0
- package/dist/storage/vfs.d.ts.map +1 -0
- package/dist/storage/vfs.js +457 -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 +1376 -0
- package/dist/tools/cross-sdk-agent.js.map +1 -0
- package/dist/transport.d.ts +5 -0
- package/dist/transport.d.ts.map +1 -1
- package/dist/transport.js +125 -12
- package/dist/transport.js.map +1 -1
- package/dist/types.d.ts +39 -56
- package/dist/types.d.ts.map +1 -1
- package/dist/v2/session/session.d.ts +2 -0
- package/dist/v2/session/session.d.ts.map +1 -1
- package/dist/v2/session/session.js +58 -22
- package/dist/v2/session/session.js.map +1 -1
- package/dist/v2/state/commitment.d.ts +1 -1
- package/dist/v2/state/commitment.d.ts.map +1 -1
- package/dist/v2/state/commitment.js +5 -3
- package/dist/v2/state/commitment.js.map +1 -1
- package/dist/validators.d.ts +35 -0
- package/dist/validators.d.ts.map +1 -0
- package/dist/validators.js +127 -0
- package/dist/validators.js.map +1 -0
- 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
|
@@ -17,15 +17,13 @@
|
|
|
17
17
|
|------|------|
|
|
18
18
|
| [group.create](#groupcreate) | 创建群组 |
|
|
19
19
|
| [group.bind_aid](#groupbind_aid) | 为普通群绑定命名 AID |
|
|
20
|
-
| [group.
|
|
20
|
+
| [group.get_info](#groupget_info) | 查询群组信息(平铺格式,唯一推荐入口) |
|
|
21
21
|
| [group.update](#groupupdate) | 更新群组资料 |
|
|
22
22
|
| [group.list_my](#grouplist_my) | 列出我的群组 |
|
|
23
23
|
| [group.search](#groupsearch) | 搜索公开群 |
|
|
24
|
-
| [group.get_public_info](#groupget_public_info) | 查询公开群信息 |
|
|
25
24
|
| [group.suspend](#groupsuspend) | 暂停群组 |
|
|
26
25
|
| [group.resume](#groupresume) | 恢复群组 |
|
|
27
26
|
| [group.dissolve](#groupdissolve) | 解散群组 |
|
|
28
|
-
| [group.get_stats](#groupget_stats) | 获取统计信息 |
|
|
29
27
|
|
|
30
28
|
### 成员管理
|
|
31
29
|
|
|
@@ -37,6 +35,8 @@
|
|
|
37
35
|
| [group.leave](#groupleave) | 主动退群 |
|
|
38
36
|
| [group.set_role](#groupset_role) | 设置角色 |
|
|
39
37
|
| [group.transfer_owner](#grouptransfer_owner) | 转让群主 |
|
|
38
|
+
| [group.bind_group_aid](#groupbind_group_aid) | 为匿名群绑定群身份 |
|
|
39
|
+
| [group.renew_group_aid](#grouprenew_group_aid) | 轮换群身份密钥 |
|
|
40
40
|
| [group.ban](#groupban) | 封禁成员 |
|
|
41
41
|
| [group.unban](#groupunban) | 解封成员 |
|
|
42
42
|
| [group.get_banlist](#groupget_banlist) | 获取封禁列表 |
|
|
@@ -60,7 +60,6 @@
|
|
|
60
60
|
|------|------|
|
|
61
61
|
| [group.set_settings](#groupset_settings) | 统一设置群参数,含 `dispatch_mode` |
|
|
62
62
|
| [group.get_settings](#groupget_settings) | 统一读取群参数 |
|
|
63
|
-
| [group.get_dispatch_log](#groupget_dispatch_log) | 查看值班分发日志 |
|
|
64
63
|
|
|
65
64
|
### 消息
|
|
66
65
|
|
|
@@ -96,52 +95,39 @@
|
|
|
96
95
|
| 方法 | 说明 |
|
|
97
96
|
|------|------|
|
|
98
97
|
| [group.get_summary](#groupget_summary) | 获取群组摘要 |
|
|
99
|
-
| [group.get_metrics](#groupget_metrics) | 获取性能指标 |
|
|
100
98
|
|
|
101
|
-
###
|
|
99
|
+
### 群设置
|
|
102
100
|
|
|
103
101
|
| 方法 | 说明 |
|
|
104
102
|
|------|------|
|
|
105
|
-
| [group.
|
|
106
|
-
| [group.
|
|
107
|
-
|
|
108
|
-
### 公告与规则
|
|
103
|
+
| [group.set_settings](#groupset_settings) | 统一设置群参数(含公告、规则、入群要求、dispatch_mode 等) |
|
|
104
|
+
| [group.get_settings](#groupget_settings) | 统一读取群参数 |
|
|
109
105
|
|
|
110
|
-
|
|
111
|
-
|------|------|
|
|
112
|
-
| [group.get_announcement](#groupget_announcement) | 获取公告 |
|
|
113
|
-
| [group.update_announcement](#groupupdate_announcement) | 更新公告 |
|
|
114
|
-
| [group.get_rules](#groupget_rules) | 获取群规则 |
|
|
115
|
-
| [group.update_rules](#groupupdate_rules) | 更新群规则 |
|
|
116
|
-
| [group.get_join_requirements](#groupget_join_requirements) | 获取入群要求 |
|
|
117
|
-
| [group.update_join_requirements](#groupupdate_join_requirements) | 更新入群要求 |
|
|
106
|
+
**便利方法**:SDK 提供向后兼容的便利方法(`getAnnouncement`/`updateAnnouncement`/`getRules`/`updateRules`/`getJoinRequirements`/`updateJoinRequirements`),内部调用 `set_settings`/`get_settings`,返回旧格式。新代码建议直接使用 `set_settings`/`get_settings`。
|
|
118
107
|
|
|
119
|
-
###
|
|
108
|
+
### 群文件系统
|
|
120
109
|
|
|
121
110
|
| 方法 | 说明 |
|
|
122
111
|
|------|------|
|
|
123
|
-
| [group.
|
|
124
|
-
| [group.
|
|
125
|
-
| [group.
|
|
126
|
-
| [group.
|
|
127
|
-
| [group.
|
|
128
|
-
| [group.
|
|
129
|
-
| [group.
|
|
130
|
-
| [group.
|
|
131
|
-
| [group.
|
|
132
|
-
| [group.
|
|
133
|
-
| [group.
|
|
134
|
-
| [group.
|
|
135
|
-
| [group.
|
|
136
|
-
| [group.
|
|
137
|
-
| [group.
|
|
138
|
-
| [group.
|
|
139
|
-
| [group.
|
|
140
|
-
| [group.
|
|
141
|
-
| [group.
|
|
142
|
-
| [group.resources.list_pending](#groupresourceslist_pending) | 待审批列表 |
|
|
143
|
-
| [group.resources.approve_request](#groupresourcesapprove_request) | 批准申请 |
|
|
144
|
-
| [group.resources.reject_request](#groupresourcesreject_request) | 拒绝申请 |
|
|
112
|
+
| [group.fs.ls](#groupfsls) | 列出目录 |
|
|
113
|
+
| [group.fs.find](#groupfsfind) | 查找节点 |
|
|
114
|
+
| [group.fs.stat](#groupfsstat) | 查看节点 |
|
|
115
|
+
| [group.fs.lstat](#groupfslstat) | 查看链接本身 |
|
|
116
|
+
| [group.fs.df](#groupfsdf) | 查看用量 |
|
|
117
|
+
| [group.fs.create_download_ticket](#groupfscreate_download_ticket) | 创建下载票据 |
|
|
118
|
+
| [group.fs.set_acl](#groupfsset_acl) | 授予群自有区角色写 ACL |
|
|
119
|
+
| [group.fs.remove_acl](#groupfsremove_acl) | 撤销群自有区角色写 ACL |
|
|
120
|
+
| [group.fs.get_acl](#groupfsget_acl) | 查询群自有区角色 ACL |
|
|
121
|
+
| [group.fs.list_acl](#groupfslist_acl) | 查询群自有区角色 ACL(别名) |
|
|
122
|
+
| [group.fs.mkdir](#groupfsmkdir) | 创建目录 |
|
|
123
|
+
| [group.fs.rm](#groupfsrm) | 删除节点 |
|
|
124
|
+
| [group.fs.cp](#groupfscp) | 远程复制 |
|
|
125
|
+
| [group.fs.mv](#groupfsmv) | 远程移动 |
|
|
126
|
+
| [group.fs.check_upload](#groupfscheck_upload) | 上传前检查 |
|
|
127
|
+
| [group.fs.create_upload_session](#groupfscreate_upload_session) | 创建上传会话 |
|
|
128
|
+
| [group.fs.complete_upload](#groupfscomplete_upload) | 完成上传 |
|
|
129
|
+
| [group.fs.mount](#groupfsmount) | 挂载成员数据区 |
|
|
130
|
+
| [group.fs.umount](#groupfsumount) | 卸载成员数据区 |
|
|
145
131
|
|
|
146
132
|
### 在线状态
|
|
147
133
|
|
|
@@ -153,11 +139,13 @@
|
|
|
153
139
|
|
|
154
140
|
## Group ID 规范
|
|
155
141
|
|
|
156
|
-
`group_id`
|
|
142
|
+
`group_id` 的 canonical 形式为 `group.{issuer-domain}/{base}`,例如 `group.agentid.pub/10042`、`group.agentid.pub/team01`、`group.agentid.pub/g-abc123`。服务端接受输入后会规范化为 canonical group_id;响应和内部存储以 canonical 形式为准。SDK 发起 `group.*` 调用时也会对带域旧格式做同等规范化;裸客户端应使用同一规则生成签名和 E2EE AAD,避免同一群的不同别名产生不同材料。
|
|
157
143
|
|
|
158
|
-
|
|
144
|
+
兼容输入包括 canonical `group.{issuer-domain}/{base}`、本域简写 `{base}` / `g-{slug}`,以及旧跨域形式 `{base}@issuer-domain`、`{base}.issuer-domain`、`g-{slug}@issuer-domain`、`g-{slug}.issuer-domain`。`base` 支持 5 位及以上小写字母或数字,或 4 到 64 位 `[a-z0-9_-]` 风格名称;旧 `g-` 前缀形式继续兼容,`g-` 后为 4 到 32 位小写字母或数字。命名群使用 `group_name` 作为 base,规则见 `group.create` 参数说明。
|
|
159
145
|
|
|
160
|
-
|
|
146
|
+
`group.create` 可以指定自定义 `group_id`,但不能是纯数字(纯数字群号保留给服务端自动分配),且规范化后的 canonical group_id 未被占用;如果已被占用或与旧别名碰撞会返回错误。不指定 `group_id` 时服务端按群号自动分配,并通过唯一约束兜底,发现碰撞会重新生成。
|
|
147
|
+
|
|
148
|
+
在 `https://group.issuer-domain/...` 这类群链接中,host 已携带 issuer,path 中的 `group_id` 使用 base 简写形式,例如 `https://group.agentid.pub/10042/invite/ic-xxx`;旧 `g-` base 群也可以表示为 `https://group.agentid.pub/g-abc123/invite/ic-xxx`。
|
|
161
149
|
|
|
162
150
|
---
|
|
163
151
|
|
|
@@ -242,27 +230,36 @@
|
|
|
242
230
|
}
|
|
243
231
|
```
|
|
244
232
|
|
|
245
|
-
### group.
|
|
233
|
+
### group.get_info
|
|
246
234
|
|
|
247
|
-
|
|
235
|
+
查询群组信息,返回平铺格式。默认返回公开字段;需要成员或管理员权限的字段必须通过 `required` 显式声明。
|
|
248
236
|
|
|
249
237
|
**参数**:
|
|
250
238
|
|
|
251
239
|
| 参数 | 类型 | 必填 | 说明 |
|
|
252
240
|
|------|------|------|------|
|
|
253
241
|
| `group_id` | string | 是 | 群组 ID |
|
|
242
|
+
| `required` | string[] | 否 | 受限字段声明:`member`、`state`、`e2ee`、`avatar` |
|
|
254
243
|
|
|
255
|
-
|
|
244
|
+
**默认响应**:
|
|
256
245
|
|
|
257
246
|
```json
|
|
258
247
|
{
|
|
259
248
|
"found": true,
|
|
260
249
|
"group_id": "g-abc123.agentid.pub",
|
|
261
|
-
"
|
|
250
|
+
"group_aid": "g-abc123.agentid.pub",
|
|
251
|
+
"name": "开发讨论组",
|
|
252
|
+
"visibility": "public",
|
|
253
|
+
"status": "active",
|
|
254
|
+
"description": "技术讨论群",
|
|
255
|
+
"member_count": 42,
|
|
256
|
+
"created_at": 1234567890
|
|
262
257
|
}
|
|
263
258
|
```
|
|
264
259
|
|
|
265
|
-
|
|
260
|
+
`required=["member"]` 会额外返回 `owner_aid`、`creator_aid`、`message_seq`、`event_seq`、`e2ee_epoch`、`updated_at`、`my_role` 等成员可见字段。
|
|
261
|
+
|
|
262
|
+
> `group.get` 和 `group.info` 已合并到 `group.get_info`;`group.get_info` 默认行为等价于原公开信息查询。
|
|
266
263
|
|
|
267
264
|
### group.update
|
|
268
265
|
|
|
@@ -339,21 +336,6 @@
|
|
|
339
336
|
|
|
340
337
|
> **注意**:当前 `page` 固定为 1,不支持翻页。仅返回公开群组。
|
|
341
338
|
|
|
342
|
-
### group.get_public_info
|
|
343
|
-
|
|
344
|
-
查询公开群组信息。仅限 `visibility=public` 的群组可查询。
|
|
345
|
-
|
|
346
|
-
**参数**:`group_id` (string, 必填)
|
|
347
|
-
|
|
348
|
-
**响应**:
|
|
349
|
-
|
|
350
|
-
```json
|
|
351
|
-
{
|
|
352
|
-
"group_id": "g-abc123.agentid.pub",
|
|
353
|
-
"group": { ... }
|
|
354
|
-
}
|
|
355
|
-
```
|
|
356
|
-
|
|
357
339
|
### group.suspend
|
|
358
340
|
|
|
359
341
|
暂停群组。暂停期间不能发送消息。需要 **admin 及以上**权限。
|
|
@@ -403,29 +385,6 @@
|
|
|
403
385
|
}
|
|
404
386
|
```
|
|
405
387
|
|
|
406
|
-
### group.get_stats
|
|
407
|
-
|
|
408
|
-
获取群组统计信息。需要 **admin 及以上**权限。
|
|
409
|
-
|
|
410
|
-
**参数**:`group_id` (string, 必填)
|
|
411
|
-
|
|
412
|
-
**响应**:
|
|
413
|
-
|
|
414
|
-
```json
|
|
415
|
-
{
|
|
416
|
-
"group_id": "g-abc123.agentid.pub",
|
|
417
|
-
"status": "active",
|
|
418
|
-
"member_count": 42,
|
|
419
|
-
"message_seq": 1000,
|
|
420
|
-
"event_seq": 500,
|
|
421
|
-
"pending_join_request_count": 3,
|
|
422
|
-
"active_invite_code_count": 2,
|
|
423
|
-
"ban_count": 1,
|
|
424
|
-
"online_count": 10,
|
|
425
|
-
"runtime_stats": { ... },
|
|
426
|
-
"cleanup": { ... }
|
|
427
|
-
}
|
|
428
|
-
```
|
|
429
388
|
|
|
430
389
|
---
|
|
431
390
|
|
|
@@ -531,7 +490,7 @@
|
|
|
531
490
|
|
|
532
491
|
### group.set_role
|
|
533
492
|
|
|
534
|
-
设置成员角色。需要 **owner** 权限。不能改变 owner
|
|
493
|
+
设置成员角色。需要 **owner** 权限。不能改变 owner 角色。该 RPC 只改变 membership 中的角色事实,不授予或撤销群自有区写 ACL;`role:admin` 是否可写群自有区由 `group.fs.set_acl` / `group.fs.remove_acl` 显式控制。
|
|
535
494
|
|
|
536
495
|
**参数**:
|
|
537
496
|
|
|
@@ -545,7 +504,7 @@
|
|
|
545
504
|
|
|
546
505
|
```json
|
|
547
506
|
{
|
|
548
|
-
"
|
|
507
|
+
"group": { ... },
|
|
549
508
|
"member": {
|
|
550
509
|
"group_id": "g-abc123.agentid.pub",
|
|
551
510
|
"aid": "bob.agentid.pub",
|
|
@@ -554,7 +513,11 @@
|
|
|
554
513
|
"joined_at": 1234567890,
|
|
555
514
|
"last_ack_seq": 0,
|
|
556
515
|
"last_pull_at": 0
|
|
557
|
-
}
|
|
516
|
+
},
|
|
517
|
+
"old_role": "member",
|
|
518
|
+
"new_role": "admin",
|
|
519
|
+
"acl_model": "role_based",
|
|
520
|
+
"acl_policy": "unchanged"
|
|
558
521
|
}
|
|
559
522
|
```
|
|
560
523
|
|
|
@@ -579,6 +542,113 @@
|
|
|
579
542
|
}
|
|
580
543
|
```
|
|
581
544
|
|
|
545
|
+
### group.bind_group_aid
|
|
546
|
+
|
|
547
|
+
为匿名群绑定群身份(group_aid)。需要 owner 权限。
|
|
548
|
+
|
|
549
|
+
**幂等保证**:
|
|
550
|
+
- 已绑定且公钥匹配:返回已绑定的 group_aid 和证书
|
|
551
|
+
- 已绑定但公钥不同:报错 `group_aid_already_bound_different_key`
|
|
552
|
+
- 未绑定:签发新 group_aid 并绑定
|
|
553
|
+
|
|
554
|
+
**参数**:
|
|
555
|
+
|
|
556
|
+
| 参数 | 类型 | 必填 | 说明 |
|
|
557
|
+
|------|------|------|------|
|
|
558
|
+
| `group_id` | string | 是 | 群组 ID |
|
|
559
|
+
| `public_key` | string | 是 | 公钥 DER base64(SPKI 格式) |
|
|
560
|
+
| `curve` | string | 否 | 曲线名称(默认 P-256) |
|
|
561
|
+
|
|
562
|
+
**响应**:
|
|
563
|
+
|
|
564
|
+
```json
|
|
565
|
+
{
|
|
566
|
+
"group": {
|
|
567
|
+
"group_id": "my-team",
|
|
568
|
+
"group_aid": "my-team.agentid.pub",
|
|
569
|
+
...
|
|
570
|
+
},
|
|
571
|
+
"aid_cert": {
|
|
572
|
+
"cert": "-----BEGIN CERTIFICATE-----...",
|
|
573
|
+
"agentid": "my-team.agentid.pub"
|
|
574
|
+
}
|
|
575
|
+
}
|
|
576
|
+
```
|
|
577
|
+
|
|
578
|
+
**SDK 封装**:
|
|
579
|
+
|
|
580
|
+
各语言 SDK 的 `bindGroupAid` 方法已实现幂等逻辑:
|
|
581
|
+
1. 优先从 pending 槽位加载暂存密钥(崩溃恢复)
|
|
582
|
+
2. 未命中则生成新密钥并暂存到 pending 槽位
|
|
583
|
+
3. 调用 RPC 成功后导入 group_aid 身份并清理 pending 槽位
|
|
584
|
+
|
|
585
|
+
### group.renew_group_aid
|
|
586
|
+
|
|
587
|
+
轮换群身份密钥。需要 owner 权限,且必须持有旧 group_aid 私钥。
|
|
588
|
+
|
|
589
|
+
**用途**:
|
|
590
|
+
- 群主密钥泄露后的安全轮换
|
|
591
|
+
- 定期密钥更新符合安全策略
|
|
592
|
+
|
|
593
|
+
**验证**:
|
|
594
|
+
- 服务端验证 `renew_proof` 签名(用旧私钥签名 canonical payload)
|
|
595
|
+
- 验证 `old_public_key` 与当前 group_aid 证书匹配
|
|
596
|
+
- 签发新证书并更新 group_aid
|
|
597
|
+
|
|
598
|
+
**参数**:
|
|
599
|
+
|
|
600
|
+
| 参数 | 类型 | 必填 | 说明 |
|
|
601
|
+
|------|------|------|------|
|
|
602
|
+
| `group_id` | string | 是 | 群组 ID |
|
|
603
|
+
| `group_aid` | string | 否 | 群身份 AID(可选,服务端可推导) |
|
|
604
|
+
| `old_public_key` | string | 是 | 旧公钥 DER base64 |
|
|
605
|
+
| `new_public_key` | string | 是 | 新公钥 DER base64 |
|
|
606
|
+
| `curve` | string | 否 | 新密钥曲线(默认 P-256) |
|
|
607
|
+
| `renew_proof` | object | 是 | 轮换授权签名 |
|
|
608
|
+
|
|
609
|
+
**renew_proof 结构**:
|
|
610
|
+
|
|
611
|
+
```json
|
|
612
|
+
{
|
|
613
|
+
"nonce": "随机 nonce(32 字符十六进制)",
|
|
614
|
+
"issued_ms": 1234567890000,
|
|
615
|
+
"signature": "用旧私钥签名的 base64"
|
|
616
|
+
}
|
|
617
|
+
```
|
|
618
|
+
|
|
619
|
+
**签名 canonical payload**:
|
|
620
|
+
|
|
621
|
+
```
|
|
622
|
+
aun-group-aid-renew-v1|{group_id}|{group_aid}|{sha256(old_public_key)}|{sha256(new_public_key)}|{nonce}|{issued_ms}
|
|
623
|
+
```
|
|
624
|
+
|
|
625
|
+
所有字段小写,用 `|` 分隔。
|
|
626
|
+
|
|
627
|
+
**响应**:
|
|
628
|
+
|
|
629
|
+
```json
|
|
630
|
+
{
|
|
631
|
+
"group": {
|
|
632
|
+
"group_id": "my-team",
|
|
633
|
+
"group_aid": "my-team.agentid.pub",
|
|
634
|
+
...
|
|
635
|
+
},
|
|
636
|
+
"aid_cert": {
|
|
637
|
+
"cert": "-----BEGIN CERTIFICATE-----...",
|
|
638
|
+
"agentid": "my-team.agentid.pub"
|
|
639
|
+
},
|
|
640
|
+
"old_cert_revoked": true
|
|
641
|
+
}
|
|
642
|
+
```
|
|
643
|
+
|
|
644
|
+
**SDK 封装**:
|
|
645
|
+
|
|
646
|
+
各语言 SDK 的 `renewGroupAid` 方法自动处理:
|
|
647
|
+
1. 加载旧 group_aid 私钥
|
|
648
|
+
2. 生成新密钥对
|
|
649
|
+
3. 用旧私钥签名 canonical payload
|
|
650
|
+
4. 调用 RPC 并用新密钥覆盖本地 group_aid 身份
|
|
651
|
+
|
|
582
652
|
### group.ban
|
|
583
653
|
|
|
584
654
|
封禁成员。被封禁者禁止发消息但保留成员身份,且不能重新加入(如先被移除再封禁)。需要 **admin 及以上**权限。
|
|
@@ -947,32 +1017,6 @@ await client.call("group.set_settings", {
|
|
|
947
1017
|
}
|
|
948
1018
|
```
|
|
949
1019
|
|
|
950
|
-
### group.get_dispatch_log
|
|
951
|
-
|
|
952
|
-
读取值班分发日志。成员可读,主要用于诊断 `dispatch.mode=duty`、超时回退、批量分发等运行时行为。
|
|
953
|
-
|
|
954
|
-
**参数**:
|
|
955
|
-
|
|
956
|
-
| 参数 | 类型 | 必填 | 默认值 | 说明 |
|
|
957
|
-
|------|------|------|--------|------|
|
|
958
|
-
| `group_id` | string | 是 | — | 群组 ID |
|
|
959
|
-
| `date` | string | 否 | 当天 | 日志日期,格式由服务端日志文件名解析 |
|
|
960
|
-
| `size` / `limit` | integer | 否 | 100 | 返回最后 N 条,最大 500 |
|
|
961
|
-
|
|
962
|
-
**响应**:
|
|
963
|
-
|
|
964
|
-
```json
|
|
965
|
-
{
|
|
966
|
-
"group_id": "g-abc123.agentid.pub",
|
|
967
|
-
"items": [],
|
|
968
|
-
"total": 0,
|
|
969
|
-
"page": 1,
|
|
970
|
-
"size": 100
|
|
971
|
-
}
|
|
972
|
-
```
|
|
973
|
-
|
|
974
|
-
---
|
|
975
|
-
|
|
976
1020
|
## 消息
|
|
977
1021
|
|
|
978
1022
|
### group.send
|
|
@@ -989,7 +1033,7 @@ await client.call("group.set_settings", {
|
|
|
989
1033
|
| `payload` | object | 否 | 消息内容 |
|
|
990
1034
|
| `type` | string | 否 | 信封/封装类型,普通业务消息无需填写;SDK 加密群消息时自动使用 `e2ee.group_encrypted` |
|
|
991
1035
|
| `attachments` | array | 否 | 兼容旧接口的顶层附件元数据;推荐把业务附件放入 `payload.attachments` |
|
|
992
|
-
| `protected_headers` / `headers` | object | 否 | SDK 加密前读取的 E2EE 信封元数据,类似 HTTP headers;推荐使用 `protected_headers`,`headers` 仅作为兼容别名;服务端不解释,接收端验 `_auth` 后在 `e2ee.protected_headers` 暴露 |
|
|
1036
|
+
| `protected_headers` / `headers` | object | 否 | SDK 加密前读取的 E2EE 信封元数据,类似 HTTP headers;推荐使用 `protected_headers`,`headers` 仅作为兼容别名;服务端不解释,接收端验 `_auth` 后在 `e2ee.protected_headers` 暴露 |
|
|
993
1037
|
|
|
994
1038
|
### Payload 参考约定
|
|
995
1039
|
|
|
@@ -1049,7 +1093,7 @@ SDK 调用时必须走群组 E2EE。应用层传入明文 `payload`,SDK 会加
|
|
|
1049
1093
|
| `encrypt` | boolean | 否 | SDK 侧固定按 `true` 处理;`false` 会被拒绝 |
|
|
1050
1094
|
| `thought_id` | string | 否 | thought item ID;不传时 SDK 生成 `gt-*` |
|
|
1051
1095
|
| `timestamp` | integer | 否 | 客户端时间戳;不传时 SDK 生成 |
|
|
1052
|
-
| `protected_headers` / `headers` | object | 否 | SDK 加密前读取的 E2EE 信封元数据;推荐使用 `protected_headers`,`headers` 仅作为兼容别名;`context` 会被 SDK 复制进信封并单独验 `_auth` |
|
|
1096
|
+
| `protected_headers` / `headers` | object | 否 | SDK 加密前读取的 E2EE 信封元数据;推荐使用 `protected_headers`,`headers` 仅作为兼容别名;`context` 会被 SDK 复制进信封并单独验 `_auth` |
|
|
1053
1097
|
|
|
1054
1098
|
**SDK 调用示例**:
|
|
1055
1099
|
|
|
@@ -1239,422 +1283,108 @@ result = await client.call("group.thought.get", {
|
|
|
1239
1283
|
|
|
1240
1284
|
---
|
|
1241
1285
|
|
|
1242
|
-
##
|
|
1243
|
-
|
|
1244
|
-
### group.get_announcement
|
|
1245
|
-
|
|
1246
|
-
获取群公告。
|
|
1247
|
-
|
|
1248
|
-
**参数**:`group_id` (string, 必填)
|
|
1249
|
-
|
|
1250
|
-
**响应**:
|
|
1251
|
-
|
|
1252
|
-
```json
|
|
1253
|
-
{
|
|
1254
|
-
"group_id": "g-abc123.agentid.pub",
|
|
1255
|
-
"announcement": { ... }
|
|
1256
|
-
}
|
|
1257
|
-
```
|
|
1258
|
-
|
|
1259
|
-
### group.update_announcement
|
|
1260
|
-
|
|
1261
|
-
更新群公告。需要 **admin 及以上**权限。
|
|
1262
|
-
|
|
1263
|
-
**参数**:
|
|
1264
|
-
|
|
1265
|
-
| 参数 | 类型 | 必填 | 说明 |
|
|
1266
|
-
|------|------|------|------|
|
|
1267
|
-
| `group_id` | string | 是 | 群组 ID |
|
|
1268
|
-
| `content` | string | 是 | 公告内容(上限由 announcement_max_length 配置,默认 4000) |
|
|
1269
|
-
| `attachments` | array | 否 | 存储引用数组 |
|
|
1270
|
-
|
|
1271
|
-
**响应**:
|
|
1272
|
-
|
|
1273
|
-
```json
|
|
1274
|
-
{
|
|
1275
|
-
"group_id": "g-abc123.agentid.pub",
|
|
1276
|
-
"announcement": { ... }
|
|
1277
|
-
}
|
|
1278
|
-
```
|
|
1279
|
-
|
|
1280
|
-
### group.get_rules
|
|
1281
|
-
|
|
1282
|
-
获取群规则。
|
|
1283
|
-
|
|
1284
|
-
**参数**:`group_id` (string, 必填)
|
|
1285
|
-
|
|
1286
|
-
**响应**:
|
|
1287
|
-
|
|
1288
|
-
```json
|
|
1289
|
-
{
|
|
1290
|
-
"group_id": "g-abc123.agentid.pub",
|
|
1291
|
-
"rules": { ... }
|
|
1292
|
-
}
|
|
1293
|
-
```
|
|
1294
|
-
|
|
1295
|
-
### group.update_rules
|
|
1296
|
-
|
|
1297
|
-
更新群规则。需要 **admin 及以上**权限。
|
|
1298
|
-
|
|
1299
|
-
**参数**:`group_id` (string) + 规则字段(max_members, allow_member_invite 等,均可选)
|
|
1300
|
-
|
|
1301
|
-
### group.get_join_requirements
|
|
1302
|
-
|
|
1303
|
-
获取入群要求。
|
|
1304
|
-
|
|
1305
|
-
**参数**:`group_id` (string, 必填)
|
|
1306
|
-
|
|
1307
|
-
**响应**:
|
|
1308
|
-
|
|
1309
|
-
```json
|
|
1310
|
-
{
|
|
1311
|
-
"group_id": "g-abc123.agentid.pub",
|
|
1312
|
-
"join_requirements": {
|
|
1313
|
-
"group_id": "g-abc123.agentid.pub",
|
|
1314
|
-
"mode": "approval",
|
|
1315
|
-
"question": "请描述你的用途",
|
|
1316
|
-
"auto_approve_patterns": [],
|
|
1317
|
-
"max_pending": 100,
|
|
1318
|
-
"updated_by": "alice.agentid.pub",
|
|
1319
|
-
"updated_at": 1234567890
|
|
1320
|
-
}
|
|
1321
|
-
}
|
|
1322
|
-
```
|
|
1323
|
-
|
|
1324
|
-
### group.update_join_requirements
|
|
1325
|
-
|
|
1326
|
-
更新入群要求。需要 **admin 及以上**权限。
|
|
1327
|
-
|
|
1328
|
-
**参数**:
|
|
1329
|
-
|
|
1330
|
-
| 参数 | 类型 | 必填 | 说明 |
|
|
1331
|
-
|------|------|------|------|
|
|
1332
|
-
| `group_id` | string | 是 | 群组 ID |
|
|
1333
|
-
| `mode` | string | 否 | `"open"` / `"approval"` / `"invite_only"` / `"closed"` |
|
|
1334
|
-
| `question` | string | 否 | 入群问题 |
|
|
1335
|
-
| `auto_approve_patterns` | array | 否 | 自动批准正则列表 |
|
|
1336
|
-
| `max_pending` | integer | 否 | 最大待审批数 |
|
|
1337
|
-
|
|
1338
|
-
---
|
|
1339
|
-
|
|
1340
|
-
## 资源管理
|
|
1341
|
-
|
|
1342
|
-
### group.resources.put
|
|
1343
|
-
|
|
1344
|
-
分享资源链接到群组。需要 **member 及以上**权限。
|
|
1286
|
+
## 群文件系统
|
|
1345
1287
|
|
|
1346
|
-
|
|
1347
|
-
|
|
1348
|
-
| 参数 | 类型 | 必填 | 说明 |
|
|
1349
|
-
|------|------|------|------|
|
|
1350
|
-
| `group_id` | string | 是 | 群组 ID |
|
|
1351
|
-
| `resource_path` | string | 是 | 资源路径 |
|
|
1352
|
-
| `resource_type` | string | 否 | `"file"` / `"folder"` / `"link"`,默认 `"file"` |
|
|
1353
|
-
| `title` | string | 是 | 资源标题 |
|
|
1354
|
-
| `storage_ref` | object | 否 | 存储引用对象 |
|
|
1355
|
-
| `metadata` | object | 否 | 自定义元数据 |
|
|
1356
|
-
| `visibility` | string | 否 | `"members_only"` / `"public"`,默认 `"members_only"` |
|
|
1357
|
-
| `tags` | array | 否 | 标签数组 |
|
|
1288
|
+
新代码统一使用 `group.fs.*`。路径为 POSIX 风格 group path:`group_aid:/docs/a.md`、`https://{group_aid}/docs/a.md` 或带 `group_id` 参数的裸路径。`group_aid:/memberdata/{member_ref}/...` 只由服务端映射到真实成员 storage,SDK 不拼接 `group_data/{group_aid}`。
|
|
1358
1289
|
|
|
1359
|
-
|
|
1290
|
+
推荐通过 SDK/CLI 使用:
|
|
1360
1291
|
|
|
1361
|
-
|
|
1362
|
-
|
|
1363
|
-
|
|
1364
|
-
|
|
1365
|
-
|
|
1366
|
-
|
|
1367
|
-
```
|
|
1368
|
-
|
|
1369
|
-
> `created` 为 `true` 表示新建,`false` 表示更新已有资源。
|
|
1370
|
-
|
|
1371
|
-
### group.resources.create_folder
|
|
1372
|
-
|
|
1373
|
-
创建群资源目录。需要 **member 及以上**权限。
|
|
1374
|
-
|
|
1375
|
-
**参数**:
|
|
1376
|
-
|
|
1377
|
-
| 参数 | 类型 | 必填 | 说明 |
|
|
1378
|
-
|------|------|------|------|
|
|
1379
|
-
| `group_id` | string | 是 | 群组 ID |
|
|
1380
|
-
| `path` / `resource_path` | string | 否 | 完整目录路径 |
|
|
1381
|
-
| `name` | string | 否 | 目录名;未提供完整路径时使用 |
|
|
1382
|
-
| `parent_resource_id` / `parent_path` | string | 否 | 父目录 |
|
|
1383
|
-
| `title` | string | 否 | 显示标题,默认目录名 |
|
|
1384
|
-
| `metadata` | object | 否 | 自定义元数据 |
|
|
1385
|
-
| `visibility` | string | 否 | `"members_only"` / `"public"` |
|
|
1386
|
-
| `tags` | array | 否 | 标签 |
|
|
1387
|
-
| `mkdirs` | boolean | 否 | 是否递归创建父目录 |
|
|
1388
|
-
| `sort_order` | integer | 否 | 排序值 |
|
|
1389
|
-
|
|
1390
|
-
**响应**:`{ "group_id": "...", "resource": { ... }, "created": true }`。
|
|
1391
|
-
|
|
1392
|
-
### group.resources.list_children
|
|
1393
|
-
|
|
1394
|
-
列出某个资源目录下的直接子节点。
|
|
1395
|
-
|
|
1396
|
-
**参数**:
|
|
1397
|
-
|
|
1398
|
-
| 参数 | 类型 | 必填 | 说明 |
|
|
1399
|
-
|------|------|------|------|
|
|
1400
|
-
| `group_id` | string | 是 | 群组 ID |
|
|
1401
|
-
| `resource_id` / `path` / `resource_path` | string | 否 | 父目录;不传表示根目录 |
|
|
1402
|
-
| `type` / `resource_type` | string | 否 | `"folder"` / `"file"` / `"link"` |
|
|
1403
|
-
| `include_status` | boolean | 否 | 是否附带 storage 状态 |
|
|
1404
|
-
| `page` / `offset` | integer | 否 | 分页位置 |
|
|
1405
|
-
| `size` / `limit` | integer | 否 | 每页数量 |
|
|
1406
|
-
| `sort_by` | string | 否 | 排序字段,默认 `sort_order` |
|
|
1407
|
-
| `order` | string | 否 | `"asc"` / `"desc"` |
|
|
1408
|
-
|
|
1409
|
-
**响应**:`group_id`、`resource_id`、`path`、`items`、`total`、`count`、`page`、`size`、`offset`。
|
|
1410
|
-
|
|
1411
|
-
### group.resources.rename
|
|
1412
|
-
|
|
1413
|
-
重命名资源节点。需要资源创建者、storage owner、owner 或 admin 权限。
|
|
1414
|
-
|
|
1415
|
-
**参数**:`group_id`,资源选择器(`resource_id` / `resource_path` / `path`),`new_name`;可选 `title`、`expected_version`。
|
|
1416
|
-
|
|
1417
|
-
**响应**:更新后的 `resource`。
|
|
1418
|
-
|
|
1419
|
-
### group.resources.move
|
|
1420
|
-
|
|
1421
|
-
移动资源节点。目录不能移动到自身或自身子目录。
|
|
1422
|
-
|
|
1423
|
-
**参数**:`group_id`,资源选择器,目标父目录(`dst_parent_resource_id` / `dst_parent_path`),可选 `new_name` / `dst_name`、`expected_version`。
|
|
1424
|
-
|
|
1425
|
-
**响应**:更新后的 `resource`。
|
|
1426
|
-
|
|
1427
|
-
### group.resources.mount_object
|
|
1428
|
-
|
|
1429
|
-
将 `storage.*` 对象挂载为群资源。需要 **owner/admin** 权限。
|
|
1430
|
-
|
|
1431
|
-
**参数**:
|
|
1432
|
-
|
|
1433
|
-
| 参数 | 类型 | 必填 | 说明 |
|
|
1434
|
-
|------|------|------|------|
|
|
1435
|
-
| `group_id` | string | 是 | 群组 ID |
|
|
1436
|
-
| `storage_ref` | object | 是 | storage 引用,通常包含 `owner_aid`、`bucket`、`object_id` 或 `object_key` |
|
|
1437
|
-
| `path` / `resource_path` | string | 否 | 资源路径;不传时用 storage 文件名 |
|
|
1438
|
-
| `title` | string | 否 | 显示标题 |
|
|
1439
|
-
| `metadata` | object | 否 | 自定义元数据 |
|
|
1440
|
-
| `visibility` | string | 否 | `"members_only"` / `"public"` |
|
|
1441
|
-
| `tags` | array | 否 | 标签 |
|
|
1442
|
-
| `mkdirs` | boolean | 否 | 是否递归创建父目录,默认 `true` |
|
|
1443
|
-
| `conflict_policy` | string | 否 | `"reject"` / `"replace"` / `"keep_both"` |
|
|
1444
|
-
|
|
1445
|
-
**响应**:`{ "group_id": "...", "resource": { ... }, "created": true }`。
|
|
1446
|
-
|
|
1447
|
-
### group.resources.request_mount_object
|
|
1448
|
-
|
|
1449
|
-
成员申请挂载自己的 storage 对象,进入待审批队列。语义等同 `group.resources.request_add`,但输入按挂载对象组织。
|
|
1450
|
-
|
|
1451
|
-
**参数**:同 `group.resources.mount_object`,但不需要 owner/admin 权限。
|
|
1452
|
-
|
|
1453
|
-
**响应**:`{ "group_id": "...", "request": { ... } }`。
|
|
1454
|
-
|
|
1455
|
-
### group.resources.unmount
|
|
1456
|
-
|
|
1457
|
-
取消挂载资源,等价于非递归 `group.resources.delete`。
|
|
1458
|
-
|
|
1459
|
-
**参数**:`group_id`,资源选择器(`resource_id` / `resource_path` / `path`)。
|
|
1460
|
-
|
|
1461
|
-
**响应**:删除结果。
|
|
1462
|
-
|
|
1463
|
-
### group.resources.resolve_path
|
|
1464
|
-
|
|
1465
|
-
按路径解析资源节点。
|
|
1466
|
-
|
|
1467
|
-
**参数**:`group_id`、`path` / `resource_path`;可选 `expected_type`。
|
|
1468
|
-
|
|
1469
|
-
**响应**:`resource_id`、`resource_type`、`resource_path`、`path`、`status`、`resource`。
|
|
1470
|
-
|
|
1471
|
-
### group.resources.list_refs_by_storage
|
|
1472
|
-
|
|
1473
|
-
按 storage 引用反查群资源。传 `group_id` 时要求调用者是该群成员;不传 `group_id` 时要求调用者是 `owner_aid`。
|
|
1474
|
-
|
|
1475
|
-
**参数**:`owner_aid` 必填,`object_id` 或 `object_key` 至少一个;可选 `bucket`、`group_id`、`include_missing`、`offset`、`limit` / `size`。
|
|
1476
|
-
|
|
1477
|
-
**响应**:`items`、`total`、`count`、`limit`、`offset`,并回显 storage 选择器字段。
|
|
1478
|
-
|
|
1479
|
-
### group.resources.cleanup_by_storage_ref
|
|
1480
|
-
|
|
1481
|
-
清理指向已删除或失效 storage 对象的资源引用。传 `group_id` 时要求 owner/admin 或 storage owner;不传 `group_id` 时要求 storage owner。
|
|
1482
|
-
|
|
1483
|
-
**参数**:`owner_aid` 必填,`object_id` 或 `object_key` 至少一个;可选 `bucket`、`group_id`、`mode`。
|
|
1484
|
-
|
|
1485
|
-
**响应**:`affected_count` 和被影响的资源 `items`。
|
|
1486
|
-
|
|
1487
|
-
### group.resources.get
|
|
1488
|
-
|
|
1489
|
-
查看资源详情。
|
|
1490
|
-
|
|
1491
|
-
**参数**:`group_id` (string), `resource_path` (string)
|
|
1492
|
-
|
|
1493
|
-
### group.resources.list
|
|
1494
|
-
|
|
1495
|
-
列出群资源。
|
|
1496
|
-
|
|
1497
|
-
**参数**:
|
|
1292
|
+
| 语言 | 入口 |
|
|
1293
|
+
|------|------|
|
|
1294
|
+
| Python | `client.group.fs` |
|
|
1295
|
+
| TypeScript / JavaScript | `client.group.fs` |
|
|
1296
|
+
| Go | `client.Group().FS()` |
|
|
1297
|
+
| CLI | `aun group fs ...` |
|
|
1498
1298
|
|
|
1499
|
-
|
|
1500
|
-
|------|------|------|--------|------|
|
|
1501
|
-
| `group_id` | string | 是 | — | 群组 ID |
|
|
1502
|
-
| `prefix` | string | 否 | — | 资源路径前缀 |
|
|
1503
|
-
| `owner_aid` | string | 否 | — | 筛选创建者 |
|
|
1504
|
-
| `visibility` | string | 否 | — | 筛选可见性 |
|
|
1505
|
-
| `tags` | array | 否 | — | 筛选标签 |
|
|
1506
|
-
| `sort_by` | string | 否 | `"resource_path"` | 排序字段 |
|
|
1507
|
-
| `order` | string | 否 | `"asc"` | `"asc"` / `"desc"` |
|
|
1508
|
-
| `size` | integer | 否 | 50 | 每页数量(也接受 `limit`) |
|
|
1509
|
-
| `page` | integer | 否 | 1 | 页码(也接受 `offset`) |
|
|
1299
|
+
权限与签名约束:
|
|
1510
1300
|
|
|
1511
|
-
|
|
1301
|
+
- 群自有区是除 `memberdata` 等系统保留路径外的整个 `group_aid` namespace。`group_aid` 当前证书签名可写;`role:owner` 默认可写;`role:admin` 需要 owner 通过 `group.fs.set_acl` 显式授权后才可写。
|
|
1302
|
+
- `group.fs.set_acl` / `group.fs.remove_acl` / `group.fs.get_acl` / `group.fs.list_acl` 只能由当前 group owner 调用,且当前只允许管理或查询 `grantee_aid="role:admin"` 的群自有区角色 ACL;成员升降级、退群、踢出不会联动授权或撤销。
|
|
1303
|
+
- `memberdata/{member_ref}` 写入默认只允许该成员本人;SDK 只传 group path,不拼接真实 storage 路径。
|
|
1304
|
+
- 上传控制面会透传 `parents` 到 storage:默认 `parents=true` 时可递归创建父目录,显式 `parents=false` 时父目录必须已存在。
|
|
1305
|
+
- JavaScript 浏览器版 `cp(string, group)` 默认把 string 当文本内容上传;Node 本地路径需显式传 `sourceType: "path"`、`localPath: true` 或使用 `local:` 前缀。Python、TypeScript 和 Go 默认把 string 当本地路径。
|
|
1512
1306
|
|
|
1513
|
-
|
|
1514
|
-
{
|
|
1515
|
-
"group_id": "g-abc123.agentid.pub",
|
|
1516
|
-
"prefix": "",
|
|
1517
|
-
"owner_aid": null,
|
|
1518
|
-
"visibility": null,
|
|
1519
|
-
"tags": [],
|
|
1520
|
-
"limit": 50,
|
|
1521
|
-
"size": 50,
|
|
1522
|
-
"offset": 0,
|
|
1523
|
-
"page": 1,
|
|
1524
|
-
"items": [ ... ],
|
|
1525
|
-
"count": 3,
|
|
1526
|
-
"total": 3
|
|
1527
|
-
}
|
|
1528
|
-
```
|
|
1307
|
+
### group.fs.ls
|
|
1529
1308
|
|
|
1530
|
-
|
|
1309
|
+
列出目录。参数:`path` 必填;可选 `page`、`size`、`marker`、`long`、`recursive`。响应返回 group view `items`,节点 `path` 仍为 group path。
|
|
1531
1310
|
|
|
1532
|
-
|
|
1311
|
+
### group.fs.find
|
|
1533
1312
|
|
|
1534
|
-
|
|
1313
|
+
查找节点。参数:`path` 必填;可选 `pattern`、`name`、`type`、`size`、`mtime`、`page`、`page_size`。
|
|
1535
1314
|
|
|
1536
|
-
|
|
1315
|
+
### group.fs.stat
|
|
1537
1316
|
|
|
1538
|
-
|
|
1539
|
-
{
|
|
1540
|
-
"group_id": "g-abc123.agentid.pub",
|
|
1541
|
-
"resource_path": "/docs/guide.pdf",
|
|
1542
|
-
"resource_link": "storage://...",
|
|
1543
|
-
"resource": { ... },
|
|
1544
|
-
"access_ticket": {
|
|
1545
|
-
"ticket": "tk_...",
|
|
1546
|
-
"ticket_type": "group-resource-access",
|
|
1547
|
-
"issued_to": "alice.agentid.pub",
|
|
1548
|
-
"resource_link": "storage://...",
|
|
1549
|
-
"issued_at": 1234567890,
|
|
1550
|
-
"expire_at": 1234571490
|
|
1551
|
-
},
|
|
1552
|
-
"access_token": "tk_...",
|
|
1553
|
-
"token_type": "Bearer",
|
|
1554
|
-
"download": { ... }
|
|
1555
|
-
}
|
|
1556
|
-
```
|
|
1317
|
+
查看节点。参数:`path` 必填。响应为 NodeView。
|
|
1557
1318
|
|
|
1558
|
-
### group.
|
|
1319
|
+
### group.fs.lstat
|
|
1559
1320
|
|
|
1560
|
-
|
|
1321
|
+
查看链接节点本身。参数同 `group.fs.stat`。
|
|
1561
1322
|
|
|
1562
|
-
|
|
1323
|
+
### group.fs.df
|
|
1563
1324
|
|
|
1564
|
-
|
|
1325
|
+
查看群文件系统用量。参数可传 `path` 或 `group_id`。
|
|
1565
1326
|
|
|
1566
|
-
### group.
|
|
1327
|
+
### group.fs.create_download_ticket
|
|
1567
1328
|
|
|
1568
|
-
|
|
1329
|
+
创建下载票据。参数:`path` 必填。响应包含 `download_url`、可选 `sha256`、`content_type`、`file_name`。SDK 下载数据面使用该票据执行 HTTP GET 并校验 sha256。
|
|
1569
1330
|
|
|
1570
|
-
|
|
1331
|
+
### group.fs.set_acl
|
|
1571
1332
|
|
|
1572
|
-
|
|
1333
|
+
授予群自有区角色 ACL。需要当前 group owner 身份签名调用;底层由 group 服务以内部门面写入 `storage.set_acl`。
|
|
1573
1334
|
|
|
1574
|
-
|
|
1335
|
+
参数:`path` 必填,指向群自有区路径;`grantee_aid` 只能为 `role:admin`;`perms` 默认 `rwx`,必须包含写权限。`path` 可传 `group_aid:/archive` 等 group path。服务端写入 storage 内部权限位时会把 POSIX 删除位 `x` 映射为内部 `d`,对外响应仍显示 `rwx`。
|
|
1575
1336
|
|
|
1576
|
-
|
|
1337
|
+
### group.fs.remove_acl
|
|
1577
1338
|
|
|
1578
|
-
|
|
1339
|
+
撤销群自有区角色 ACL。需要当前 group owner 身份签名调用;底层由 group 服务以内部门面写入 `storage.remove_acl`。
|
|
1579
1340
|
|
|
1580
|
-
|
|
1341
|
+
参数:`path` 必填,指向群自有区路径;`grantee_aid` 只能为 `role:admin`。撤销后,当前 admin 角色成员不再因该路径的 `role:admin` ACL 获得写权限。
|
|
1581
1342
|
|
|
1582
|
-
### group.
|
|
1343
|
+
### group.fs.get_acl
|
|
1583
1344
|
|
|
1584
|
-
|
|
1345
|
+
查询群自有区角色 ACL。需要当前 group owner 身份签名调用;普通 admin/member 不能查询。参数:`path` 必填,指向群自有区路径;可传裸路径 + `group_id`,也可传完整 `group_aid:/...`。
|
|
1585
1346
|
|
|
1586
|
-
|
|
1347
|
+
响应包含 `group_id`、`group_aid`、`path`、`area`、`storage` 和 `acls`。`acls[].perms` 使用 POSIX 视图,删除权限显示为 `x`,因此 owner 授权 `role:admin:rwx` 后查询也返回 `rwx`。
|
|
1587
1348
|
|
|
1588
|
-
|
|
1349
|
+
### group.fs.list_acl
|
|
1589
1350
|
|
|
1590
|
-
|
|
1591
|
-
{
|
|
1592
|
-
"group_id": "g-abc123.agentid.pub",
|
|
1593
|
-
"request": {
|
|
1594
|
-
"request_id": "req_...",
|
|
1595
|
-
"group_id": "g-abc123.agentid.pub",
|
|
1596
|
-
"requester_aid": "bob.agentid.pub",
|
|
1597
|
-
"resource_path": "/docs/my-file.pdf",
|
|
1598
|
-
"resource_type": "file",
|
|
1599
|
-
"title": "我的文件",
|
|
1600
|
-
"status": "pending",
|
|
1601
|
-
"created_at": 1234567890,
|
|
1602
|
-
"updated_at": 1234567890,
|
|
1603
|
-
"visibility": "members_only",
|
|
1604
|
-
"tags": [],
|
|
1605
|
-
"reviewed_by": null,
|
|
1606
|
-
"review_note": null,
|
|
1607
|
-
"resource_created": false
|
|
1608
|
-
}
|
|
1609
|
-
}
|
|
1610
|
-
```
|
|
1351
|
+
`group.fs.get_acl` 的别名,参数、权限和返回结构完全相同。
|
|
1611
1352
|
|
|
1612
|
-
### group.
|
|
1353
|
+
### group.fs.mkdir
|
|
1613
1354
|
|
|
1614
|
-
|
|
1355
|
+
创建目录。参数:`path` 必填;`parents` 可选,默认 `false`。
|
|
1615
1356
|
|
|
1616
|
-
|
|
1357
|
+
### group.fs.rm
|
|
1617
1358
|
|
|
1618
|
-
|
|
1359
|
+
删除节点。参数:`path` 必填;`recursive`、`force` 可选。
|
|
1619
1360
|
|
|
1620
|
-
### group.
|
|
1361
|
+
### group.fs.cp
|
|
1621
1362
|
|
|
1622
|
-
|
|
1363
|
+
只处理 group→group 远程复制。参数:`src`、`dst` 必填;`force`、`recursive`、`follow_symlinks` 可选。本地上传和下载由 SDK 的 `cp` 编排数据面,不直接调用此 RPC。
|
|
1623
1364
|
|
|
1624
|
-
|
|
1365
|
+
### group.fs.mv
|
|
1625
1366
|
|
|
1626
|
-
|
|
1367
|
+
只处理 group→group 远程移动。参数:`src`、`dst` 必填;`force` 可选。本地路径参与时 SDK/CLI 应拒绝。
|
|
1627
1368
|
|
|
1628
|
-
|
|
1369
|
+
### group.fs.check_upload
|
|
1629
1370
|
|
|
1630
|
-
|
|
1371
|
+
上传前检查。参数:`path`、`size_bytes`、`sha256`、`content_type`;可选 `force`、`parents`、`expected_version`、`metadata`。响应可包含 `target_exists`、`within_limit`、`instant`、`dedup_hit` 或 `skip_upload`。
|
|
1631
1372
|
|
|
1632
|
-
|
|
1373
|
+
### group.fs.create_upload_session
|
|
1633
1374
|
|
|
1634
|
-
|
|
1635
|
-
{
|
|
1636
|
-
"group_id": "g-abc123.agentid.pub",
|
|
1637
|
-
"request": { ... },
|
|
1638
|
-
"resource": { ... }
|
|
1639
|
-
}
|
|
1640
|
-
```
|
|
1375
|
+
创建上传会话。参数同 `check_upload`。响应包含 `upload_url`、`session_id`、可选 `headers`。SDK 使用该 URL 执行 HTTP PUT。
|
|
1641
1376
|
|
|
1642
|
-
### group.
|
|
1377
|
+
### group.fs.complete_upload
|
|
1643
1378
|
|
|
1644
|
-
|
|
1379
|
+
完成上传。参数包含 `path`、`sha256`、`size_bytes`、可选 `session_id`、`skip_blob`、`metadata`、`expected_version`。响应为 group view NodeView。
|
|
1645
1380
|
|
|
1646
|
-
|
|
1381
|
+
### group.fs.mount
|
|
1647
1382
|
|
|
1648
|
-
|
|
1383
|
+
挂载成员数据区。参数:`path` 必填;可选 `readonly`、`require_approval`、`source_bucket`、`expires_at`、`volume_id`。
|
|
1649
1384
|
|
|
1650
|
-
|
|
1651
|
-
{
|
|
1652
|
-
"group_id": "g-abc123.agentid.pub",
|
|
1653
|
-
"request": { ... }
|
|
1654
|
-
}
|
|
1655
|
-
```
|
|
1385
|
+
### group.fs.umount
|
|
1656
1386
|
|
|
1657
|
-
|
|
1387
|
+
卸载成员数据区。参数:`path` 必填。对成员数据区卸载不删除成员源数据。
|
|
1658
1388
|
|
|
1659
1389
|
## 在线状态
|
|
1660
1390
|
|
|
@@ -1850,36 +1580,6 @@ Owner/Admin 直接添加资源(无需审批)。需要 **owner/admin** 权限
|
|
|
1850
1580
|
}
|
|
1851
1581
|
```
|
|
1852
1582
|
|
|
1853
|
-
### group.get_metrics
|
|
1854
|
-
|
|
1855
|
-
获取群组性能指标,包含 E2EE epoch 范围记录。需要 **admin 及以上**权限。
|
|
1856
|
-
|
|
1857
|
-
**参数**:`group_id` (必填)
|
|
1858
|
-
|
|
1859
|
-
**响应**:
|
|
1860
|
-
|
|
1861
|
-
```json
|
|
1862
|
-
{
|
|
1863
|
-
"group_id": "g-abc123.agentid.pub",
|
|
1864
|
-
"message_seq": 1000,
|
|
1865
|
-
"event_seq": 2000,
|
|
1866
|
-
"member_count": 10,
|
|
1867
|
-
"online_count": 5,
|
|
1868
|
-
"e2ee_epoch": 3,
|
|
1869
|
-
"epoch_count": 4,
|
|
1870
|
-
"epoch_ranges": [
|
|
1871
|
-
{
|
|
1872
|
-
"epoch": 0,
|
|
1873
|
-
"start_msg_seq": 0,
|
|
1874
|
-
"start_event_seq": 0,
|
|
1875
|
-
"end_msg_seq": 100,
|
|
1876
|
-
"end_event_seq": 200,
|
|
1877
|
-
"rotated_by": "alice.agentid.pub",
|
|
1878
|
-
"rotated_at": 1234567890
|
|
1879
|
-
}
|
|
1880
|
-
]
|
|
1881
|
-
}
|
|
1882
|
-
```
|
|
1883
1583
|
|
|
1884
1584
|
### group.refresh_member_types
|
|
1885
1585
|
|
|
@@ -1903,37 +1603,6 @@ Owner/Admin 直接添加资源(无需审批)。需要 **owner/admin** 权限
|
|
|
1903
1603
|
|
|
1904
1604
|
---
|
|
1905
1605
|
|
|
1906
|
-
## E2EE
|
|
1907
|
-
|
|
1908
|
-
### group.e2ee.rotate_epoch
|
|
1909
|
-
|
|
1910
|
-
CAS 轮换群组 E2EE Epoch。需要 **admin 及以上**权限。
|
|
1911
|
-
|
|
1912
|
-
**参数**:
|
|
1913
|
-
|
|
1914
|
-
| 参数 | 类型 | 必填 | 说明 |
|
|
1915
|
-
|------|------|------|------|
|
|
1916
|
-
| `group_id` | string | 是 | 群组 ID |
|
|
1917
|
-
| `current_epoch` | integer | 是 | 当前 epoch 值(CAS 校验) |
|
|
1918
|
-
| `rotation_signature` | string | 是 | 轮换签名(Base64,ECDSA SHA-256) |
|
|
1919
|
-
| `rotation_timestamp` | string | 是 | 轮换时间戳(秒) |
|
|
1920
|
-
|
|
1921
|
-
**响应**:`{ "group_id": "g-abc123.agentid.pub", "success": true, "epoch": 4 }`
|
|
1922
|
-
|
|
1923
|
-
> 签名格式:`{group_id}|{current_epoch}|{new_epoch}|{aid}|{rotation_timestamp}`。时间戳必须在 5 分钟窗口内。签名去重防止重放攻击(10 分钟窗口)。
|
|
1924
|
-
|
|
1925
|
-
### group.e2ee.get_epoch
|
|
1926
|
-
|
|
1927
|
-
获取当前 E2EE Epoch 值。
|
|
1928
|
-
|
|
1929
|
-
**参数**:`group_id` (必填)
|
|
1930
|
-
|
|
1931
|
-
**响应**:`{ "group_id": "g-abc123.agentid.pub", "epoch": 3 }`
|
|
1932
|
-
|
|
1933
|
-
---
|
|
1934
|
-
|
|
1935
|
-
---
|
|
1936
|
-
|
|
1937
1606
|
## 事件
|
|
1938
1607
|
|
|
1939
1608
|
### event/group.created
|
|
@@ -1957,32 +1626,31 @@ CAS 轮换群组 E2EE Epoch。需要 **admin 及以上**权限。
|
|
|
1957
1626
|
|
|
1958
1627
|
**Payload**:
|
|
1959
1628
|
|
|
1960
|
-
```json
|
|
1961
|
-
{
|
|
1962
|
-
"envelope": {
|
|
1963
|
-
"module_id": "group",
|
|
1964
|
-
"action": "member_added",
|
|
1965
|
-
"group_id": "g-abc123.agentid.pub",
|
|
1966
|
-
"event_seq": 42
|
|
1967
|
-
},
|
|
1968
|
-
"module_id": "group",
|
|
1969
|
-
"action": "member_added",
|
|
1970
|
-
"group_id": "g-abc123.agentid.pub",
|
|
1629
|
+
```json
|
|
1630
|
+
{
|
|
1631
|
+
"envelope": {
|
|
1632
|
+
"module_id": "group",
|
|
1633
|
+
"action": "member_added",
|
|
1634
|
+
"group_id": "g-abc123.agentid.pub",
|
|
1635
|
+
"event_seq": 42
|
|
1636
|
+
},
|
|
1637
|
+
"module_id": "group",
|
|
1638
|
+
"action": "member_added",
|
|
1639
|
+
"group_id": "g-abc123.agentid.pub",
|
|
1971
1640
|
"event_seq": 42
|
|
1972
|
-
}
|
|
1973
|
-
```
|
|
1974
|
-
|
|
1975
|
-
SDK 交付给应用层的群事件信封字段统一放在 `envelope`。0.4.x 兼容期仍保留顶层 `module_id` / `action` / `group_id` / `event_seq` 等别名,下一个大版本 0.5.* 将移除这些顶层别名,请通过 `ev["envelope"]["action"]` 等路径访问。
|
|
1976
|
-
|
|
1977
|
-
| 字段 | 类型 | 说明 |
|
|
1978
|
-
|------|------|------|
|
|
1979
|
-
| `envelope` | object | 群事件信封,包含 `module_id`、`action`、`group_id`、`event_seq`、`event_type`、`actor_aid`、`created_at`、`device_id`、`slot_id` 等存在的字段 |
|
|
1980
|
-
| `module_id` | string | 固定 `"group"` |
|
|
1981
|
-
| `action` | string | 变更类型(见下表) |
|
|
1982
|
-
| `group_id` | string | 群组 ID |
|
|
1641
|
+
}
|
|
1642
|
+
```
|
|
1643
|
+
|
|
1644
|
+
SDK 交付给应用层的群事件信封字段统一放在 `envelope`。0.4.x 兼容期仍保留顶层 `module_id` / `action` / `group_id` / `event_seq` 等别名,下一个大版本 0.5.* 将移除这些顶层别名,请通过 `ev["envelope"]["action"]` 等路径访问。
|
|
1645
|
+
|
|
1646
|
+
| 字段 | 类型 | 说明 |
|
|
1647
|
+
|------|------|------|
|
|
1648
|
+
| `envelope` | object | 群事件信封,包含 `module_id`、`action`、`group_id`、`event_seq`、`event_type`、`actor_aid`、`created_at`、`device_id`、`slot_id` 等存在的字段 |
|
|
1649
|
+
| `module_id` | string | 固定 `"group"` |
|
|
1650
|
+
| `action` | string | 变更类型(见下表) |
|
|
1651
|
+
| `group_id` | string | 群组 ID |
|
|
1983
1652
|
| `event_seq` | integer | 可选,服务端分配的单调递增序号,用于 SDK 内部保序去重 |
|
|
1984
|
-
| `
|
|
1985
|
-
| `resource_path` | string | 可选,仅资源相关 action |
|
|
1653
|
+
| `path` | string | 可选,Group FS 相关 action 的节点路径 |
|
|
1986
1654
|
|
|
1987
1655
|
**保序去重(SDK 内部行为)**:
|
|
1988
1656
|
|
|
@@ -2021,10 +1689,6 @@ SDK 交付给应用层的群事件信封字段统一放在 `envelope`。0.4.x
|
|
|
2021
1689
|
| `resource_put` | 资源上传 |
|
|
2022
1690
|
| `resource_updated` | 资源更新 |
|
|
2023
1691
|
| `resource_deleted` | 资源删除 |
|
|
2024
|
-
| `resource_request_created` | 资源申请创建 |
|
|
2025
|
-
| `resource_direct_added` | 资源直接添加 |
|
|
2026
|
-
| `resource_request_approved` | 资源申请批准 |
|
|
2027
|
-
| `resource_request_rejected` | 资源申请拒绝 |
|
|
2028
1692
|
| `suspended` | 群组暂停 |
|
|
2029
1693
|
| `resumed` | 群组恢复 |
|
|
2030
1694
|
| `dissolved` | 群组解散 |
|
|
@@ -2074,71 +1738,71 @@ SDK 收到后自动解密 `payload`,解密后的明文消息直接交付用户
|
|
|
2074
1738
|
}
|
|
2075
1739
|
```
|
|
2076
1740
|
|
|
2077
|
-
SDK 收到后自动调用 `group.pull` 拉取最新消息并逐条解密后交付用户回调。
|
|
2078
|
-
|
|
2079
|
-
**SDK 应用层回调形态**:
|
|
2080
|
-
|
|
2081
|
-
```json
|
|
2082
|
-
{
|
|
2083
|
-
"envelope": {
|
|
2084
|
-
"group_id": "g-abc123.agentid.pub",
|
|
2085
|
-
"from": "alice.agentid.pub",
|
|
2086
|
-
"type": "text",
|
|
2087
|
-
"timestamp": 1234567890000
|
|
2088
|
-
},
|
|
2089
|
-
"group_id": "g-abc123.agentid.pub",
|
|
2090
|
-
"seq": 42,
|
|
2091
|
-
"message_id": "uuid",
|
|
2092
|
-
"sender_aid": "alice.agentid.pub",
|
|
2093
|
-
"message_type": "group.message",
|
|
2094
|
-
"dispatch_mode": "broadcast",
|
|
2095
|
-
"payload": {"type": "text", "text": "Hello"}
|
|
2096
|
-
}
|
|
2097
|
-
```
|
|
2098
|
-
|
|
2099
|
-
SDK 交付给应用层的 `payload` 是明文业务 JSON 对象;群消息信封字段统一放在 `envelope`。`envelope` 只保留可转发的归一化元数据,`from` 由 `sender_aid` 归一化而来,`timestamp` 由 `created_at` / `t_server` 归一化而来。0.4.x 兼容期仍保留顶层 `group_id` / `seq` / `message_id` / `sender_aid` / `dispatch_mode` 等别名,下一个大版本 0.5.* 将移除这些顶层别名;请通过 `msg["envelope"]["from"]`、`msg["envelope"]["timestamp"]` 等路径访问。
|
|
2100
|
-
|
|
2101
|
-
### event/group.message_recalled
|
|
1741
|
+
SDK 收到后自动调用 `group.pull` 拉取最新消息并逐条解密后交付用户回调。
|
|
1742
|
+
|
|
1743
|
+
**SDK 应用层回调形态**:
|
|
1744
|
+
|
|
1745
|
+
```json
|
|
1746
|
+
{
|
|
1747
|
+
"envelope": {
|
|
1748
|
+
"group_id": "g-abc123.agentid.pub",
|
|
1749
|
+
"from": "alice.agentid.pub",
|
|
1750
|
+
"type": "text",
|
|
1751
|
+
"timestamp": 1234567890000
|
|
1752
|
+
},
|
|
1753
|
+
"group_id": "g-abc123.agentid.pub",
|
|
1754
|
+
"seq": 42,
|
|
1755
|
+
"message_id": "uuid",
|
|
1756
|
+
"sender_aid": "alice.agentid.pub",
|
|
1757
|
+
"message_type": "group.message",
|
|
1758
|
+
"dispatch_mode": "broadcast",
|
|
1759
|
+
"payload": {"type": "text", "text": "Hello"}
|
|
1760
|
+
}
|
|
1761
|
+
```
|
|
1762
|
+
|
|
1763
|
+
SDK 交付给应用层的 `payload` 是明文业务 JSON 对象;群消息信封字段统一放在 `envelope`。`envelope` 只保留可转发的归一化元数据,`from` 由 `sender_aid` 归一化而来,`timestamp` 由 `created_at` / `t_server` 归一化而来。0.4.x 兼容期仍保留顶层 `group_id` / `seq` / `message_id` / `sender_aid` / `dispatch_mode` 等别名,下一个大版本 0.5.* 将移除这些顶层别名;请通过 `msg["envelope"]["from"]`、`msg["envelope"]["timestamp"]` 等路径访问。
|
|
1764
|
+
|
|
1765
|
+
### event/group.message_recalled
|
|
2102
1766
|
|
|
2103
1767
|
群消息撤回后推送给所有在线成员(与 pull 双 tombstone 兜底互补)。在线 push 是实时通道,双 tombstone 是离线 / 未读 / push 丢失时的可靠性兜底;两者最终一致,SDK 去重保证应用层只感知一次。
|
|
2104
1768
|
|
|
2105
1769
|
**Payload**:
|
|
2106
1770
|
|
|
2107
|
-
```json
|
|
2108
|
-
{
|
|
2109
|
-
"envelope": {
|
|
2110
|
-
"group_id": "g-abc123.agentid.pub",
|
|
2111
|
-
"from": "alice.agentid.pub",
|
|
2112
|
-
"type": "group.message_recalled",
|
|
2113
|
-
"kind": "group.message_recalled",
|
|
2114
|
-
"timestamp": 1234567890000
|
|
2115
|
-
},
|
|
2116
|
-
"module_id": "group",
|
|
2117
|
-
"group_id": "g-abc123.agentid.pub",
|
|
2118
|
-
"seq": 43,
|
|
2119
|
-
"message_id": "grm-uuid",
|
|
2120
|
-
"tombstone_message_id": "grm-uuid",
|
|
2121
|
-
"message_ids": ["gm-aaa"],
|
|
2122
|
-
"target_message_seqs": [42],
|
|
2123
|
-
"sender_aid": "alice.agentid.pub",
|
|
1771
|
+
```json
|
|
1772
|
+
{
|
|
1773
|
+
"envelope": {
|
|
1774
|
+
"group_id": "g-abc123.agentid.pub",
|
|
1775
|
+
"from": "alice.agentid.pub",
|
|
1776
|
+
"type": "group.message_recalled",
|
|
1777
|
+
"kind": "group.message_recalled",
|
|
1778
|
+
"timestamp": 1234567890000
|
|
1779
|
+
},
|
|
1780
|
+
"module_id": "group",
|
|
1781
|
+
"group_id": "g-abc123.agentid.pub",
|
|
1782
|
+
"seq": 43,
|
|
1783
|
+
"message_id": "grm-uuid",
|
|
1784
|
+
"tombstone_message_id": "grm-uuid",
|
|
1785
|
+
"message_ids": ["gm-aaa"],
|
|
1786
|
+
"target_message_seqs": [42],
|
|
1787
|
+
"sender_aid": "alice.agentid.pub",
|
|
2124
1788
|
"recalled_by": "alice.agentid.pub",
|
|
2125
1789
|
"recalled_at": 1234567890000,
|
|
2126
1790
|
"reason": "",
|
|
2127
1791
|
"member_aids": ["bob.agentid.pub"]
|
|
2128
|
-
}
|
|
2129
|
-
```
|
|
2130
|
-
|
|
2131
|
-
SDK 交付给应用层的撤回事件同样带 `envelope`。`envelope` 表示当前交付的撤回 tombstone / 通知自身信封,不是被撤回原消息的信封;业务侧被撤回的原消息列表继续使用 `message_ids` / `target_message_seqs`。`message_id` / `seq` 继续只保留在顶层兼容字段中,不进入 `envelope`。0.4.x 兼容期仍保留顶层 `group_id` / `seq` / `message_id` / `sender_aid` 等别名,下一个大版本 0.5.* 将移除这些顶层别名。
|
|
2132
|
-
|
|
2133
|
-
| 字段 | 类型 | 说明 |
|
|
2134
|
-
|------|------|------|
|
|
2135
|
-
| `envelope` | object | 撤回 tombstone / 通知自身信封,包含 `group_id`、`from`、`type`、`kind`、`timestamp`、`encrypted`、`context`、`protected_headers` 等存在的字段 |
|
|
2136
|
-
| `module_id` | string | 固定 `"group"` |
|
|
2137
|
-
| `group_id` | string | 群组 ID |
|
|
2138
|
-
| `seq` | integer | 当前交付的撤回 tombstone / 通知 seq;在线 push 为 notice_seq,原 seq 占位 tombstone 为原消息 seq |
|
|
2139
|
-
| `message_id` | string | 当前交付的撤回 tombstone / 通知自己的 message_id |
|
|
2140
|
-
| `tombstone_message_id` | string | 兼容别名,等同于撤回 tombstone / 通知自身的 `message_id` |
|
|
2141
|
-
| `message_ids` | string[] | 被撤回的**原消息 ID 列表** |
|
|
1792
|
+
}
|
|
1793
|
+
```
|
|
1794
|
+
|
|
1795
|
+
SDK 交付给应用层的撤回事件同样带 `envelope`。`envelope` 表示当前交付的撤回 tombstone / 通知自身信封,不是被撤回原消息的信封;业务侧被撤回的原消息列表继续使用 `message_ids` / `target_message_seqs`。`message_id` / `seq` 继续只保留在顶层兼容字段中,不进入 `envelope`。0.4.x 兼容期仍保留顶层 `group_id` / `seq` / `message_id` / `sender_aid` 等别名,下一个大版本 0.5.* 将移除这些顶层别名。
|
|
1796
|
+
|
|
1797
|
+
| 字段 | 类型 | 说明 |
|
|
1798
|
+
|------|------|------|
|
|
1799
|
+
| `envelope` | object | 撤回 tombstone / 通知自身信封,包含 `group_id`、`from`、`type`、`kind`、`timestamp`、`encrypted`、`context`、`protected_headers` 等存在的字段 |
|
|
1800
|
+
| `module_id` | string | 固定 `"group"` |
|
|
1801
|
+
| `group_id` | string | 群组 ID |
|
|
1802
|
+
| `seq` | integer | 当前交付的撤回 tombstone / 通知 seq;在线 push 为 notice_seq,原 seq 占位 tombstone 为原消息 seq |
|
|
1803
|
+
| `message_id` | string | 当前交付的撤回 tombstone / 通知自己的 message_id |
|
|
1804
|
+
| `tombstone_message_id` | string | 兼容别名,等同于撤回 tombstone / 通知自身的 `message_id` |
|
|
1805
|
+
| `message_ids` | string[] | 被撤回的**原消息 ID 列表** |
|
|
2142
1806
|
| `target_message_seqs` | integer[] | 被撤回的原消息 seq 列表 |
|
|
2143
1807
|
| `sender_aid` | string | 原消息发送方 |
|
|
2144
1808
|
| `recalled_by` | string | 撤回操作者 |
|
|
@@ -2168,7 +1832,10 @@ Group 服务定义了以下专用错误码(-33xxx 段):
|
|
|
2168
1832
|
| -33005 | Not a member | 需先加入群组 |
|
|
2169
1833
|
| -33006 | Invite code invalid or expired | 获取新邀请码 |
|
|
2170
1834
|
| -33007 | Join request pending | 等待审批,勿重复提交 |
|
|
2171
|
-
| -33008 |
|
|
1835
|
+
| -33008 | Group FS path not found | 检查 path |
|
|
2172
1836
|
| -33009 | Resource request not found | 检查 request_id |
|
|
2173
1837
|
|
|
2174
1838
|
> SDK 客户端将 -33001 映射为 `GroupNotFoundError`,-33002~-33003 映射为 `GroupStateError`,其余映射为 `GroupError`。未识别的错误码 fallback 到 `AUNError`。
|
|
1839
|
+
|
|
1840
|
+
|
|
1841
|
+
|