@agentunion/fastaun-browser 0.2.20 → 0.3.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 +66 -26
- package/README.md +0 -1
- package/_packed_docs/CHANGELOG.md +66 -26
- package/_packed_docs/design/2026-05-22-aun-rpc-trace-enhancement.md +542 -0
- package/_packed_docs/protocol/06-/346/234/215/345/212/241/345/215/217/350/256/256.md +1 -24
- 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 +419 -0
- package/_packed_docs/protocol/index.md +13 -3
- package/_packed_docs/python-sdk-v2-only-changelog.md +189 -0
- package/_packed_docs/sdk/04-/350/277/236/346/216/245/344/270/216/350/256/244/350/257/201.md +39 -16
- package/_packed_docs/sdk/06-API/346/211/213/345/206/214.md +131 -39
- package/_packed_docs/sdk/09-message-rpc-manual.md +30 -67
- package/dist/auth.d.ts.map +1 -1
- package/dist/auth.js +25 -5
- package/dist/auth.js.map +1 -1
- package/dist/bundle.js +15042 -0
- package/dist/client.d.ts +179 -187
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +3148 -3993
- package/dist/client.js.map +1 -1
- package/dist/config.d.ts +0 -4
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +0 -4
- package/dist/config.js.map +1 -1
- package/dist/crypto.d.ts +8 -1
- package/dist/crypto.d.ts.map +1 -1
- package/dist/crypto.js +114 -1
- package/dist/crypto.js.map +1 -1
- package/dist/e2ee.d.ts +5 -210
- package/dist/e2ee.d.ts.map +1 -1
- package/dist/e2ee.js +4 -1379
- package/dist/e2ee.js.map +1 -1
- package/dist/index.d.ts +7 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -4
- package/dist/index.js.map +1 -1
- package/dist/namespaces/auth.d.ts +9 -0
- package/dist/namespaces/auth.d.ts.map +1 -1
- package/dist/namespaces/auth.js +248 -4
- package/dist/namespaces/auth.js.map +1 -1
- package/dist/protected-headers.d.ts +14 -0
- package/dist/protected-headers.d.ts.map +1 -0
- package/dist/protected-headers.js +47 -0
- package/dist/protected-headers.js.map +1 -0
- package/dist/seq-tracker.d.ts +7 -2
- package/dist/seq-tracker.d.ts.map +1 -1
- package/dist/seq-tracker.js +33 -13
- package/dist/seq-tracker.js.map +1 -1
- package/dist/transport.d.ts +9 -1
- package/dist/transport.d.ts.map +1 -1
- package/dist/transport.js +262 -10
- package/dist/transport.js.map +1 -1
- package/dist/v2/crypto/aead.d.ts +26 -0
- package/dist/v2/crypto/aead.d.ts.map +1 -0
- package/dist/v2/crypto/aead.js +63 -0
- package/dist/v2/crypto/aead.js.map +1 -0
- package/dist/v2/crypto/canonical.d.ts +21 -0
- package/dist/v2/crypto/canonical.d.ts.map +1 -0
- package/dist/v2/crypto/canonical.js +111 -0
- package/dist/v2/crypto/canonical.js.map +1 -0
- package/dist/v2/crypto/dh-path.d.ts +21 -0
- package/dist/v2/crypto/dh-path.d.ts.map +1 -0
- package/dist/v2/crypto/dh-path.js +50 -0
- package/dist/v2/crypto/dh-path.js.map +1 -0
- package/dist/v2/crypto/ecdh.d.ts +19 -0
- package/dist/v2/crypto/ecdh.d.ts.map +1 -0
- package/dist/v2/crypto/ecdh.js +101 -0
- package/dist/v2/crypto/ecdh.js.map +1 -0
- package/dist/v2/crypto/ecdsa.d.ts +16 -0
- package/dist/v2/crypto/ecdsa.d.ts.map +1 -0
- package/dist/v2/crypto/ecdsa.js +52 -0
- package/dist/v2/crypto/ecdsa.js.map +1 -0
- package/dist/v2/crypto/hkdf.d.ts +21 -0
- package/dist/v2/crypto/hkdf.d.ts.map +1 -0
- package/dist/v2/crypto/hkdf.js +32 -0
- package/dist/v2/crypto/hkdf.js.map +1 -0
- package/dist/v2/crypto/index.d.ts +9 -0
- package/dist/v2/crypto/index.d.ts.map +1 -0
- package/dist/v2/crypto/index.js +8 -0
- package/dist/v2/crypto/index.js.map +1 -0
- package/dist/v2/crypto/recipients.d.ts +43 -0
- package/dist/v2/crypto/recipients.d.ts.map +1 -0
- package/dist/v2/crypto/recipients.js +188 -0
- package/dist/v2/crypto/recipients.js.map +1 -0
- package/dist/v2/e2ee/decrypt.d.ts +13 -0
- package/dist/v2/e2ee/decrypt.d.ts.map +1 -0
- package/dist/v2/e2ee/decrypt.js +176 -0
- package/dist/v2/e2ee/decrypt.js.map +1 -0
- package/dist/v2/e2ee/encrypt-group.d.ts +14 -0
- package/dist/v2/e2ee/encrypt-group.d.ts.map +1 -0
- package/dist/v2/e2ee/encrypt-group.js +196 -0
- package/dist/v2/e2ee/encrypt-group.js.map +1 -0
- package/dist/v2/e2ee/encrypt-p2p.d.ts +15 -0
- package/dist/v2/e2ee/encrypt-p2p.d.ts.map +1 -0
- package/dist/v2/e2ee/encrypt-p2p.js +240 -0
- package/dist/v2/e2ee/encrypt-p2p.js.map +1 -0
- package/dist/v2/e2ee/index.d.ts +9 -0
- package/dist/v2/e2ee/index.d.ts.map +1 -0
- package/dist/v2/e2ee/index.js +9 -0
- package/dist/v2/e2ee/index.js.map +1 -0
- package/dist/v2/e2ee/metadata-auth.d.ts +9 -0
- package/dist/v2/e2ee/metadata-auth.d.ts.map +1 -0
- package/dist/v2/e2ee/metadata-auth.js +60 -0
- package/dist/v2/e2ee/metadata-auth.js.map +1 -0
- package/dist/v2/e2ee/types.d.ts +57 -0
- package/dist/v2/e2ee/types.d.ts.map +1 -0
- package/dist/v2/e2ee/types.js +7 -0
- package/dist/v2/e2ee/types.js.map +1 -0
- package/dist/v2/session/index.d.ts +4 -0
- package/dist/v2/session/index.d.ts.map +1 -0
- package/dist/v2/session/index.js +3 -0
- package/dist/v2/session/index.js.map +1 -0
- package/dist/v2/session/keystore.d.ts +57 -0
- package/dist/v2/session/keystore.d.ts.map +1 -0
- package/dist/v2/session/keystore.js +244 -0
- package/dist/v2/session/keystore.js.map +1 -0
- package/dist/v2/session/session.d.ts +121 -0
- package/dist/v2/session/session.d.ts.map +1 -0
- package/dist/v2/session/session.js +344 -0
- package/dist/v2/session/session.js.map +1 -0
- package/dist/v2/state/commitment.d.ts +10 -0
- package/dist/v2/state/commitment.d.ts.map +1 -0
- package/dist/v2/state/commitment.js +86 -0
- package/dist/v2/state/commitment.js.map +1 -0
- package/dist/v2/state/index.d.ts +2 -0
- package/dist/v2/state/index.d.ts.map +1 -0
- package/dist/v2/state/index.js +2 -0
- package/dist/v2/state/index.js.map +1 -0
- package/package.json +8 -5
package/CHANGELOG.md
CHANGED
|
@@ -1,26 +1,66 @@
|
|
|
1
|
-
# Changelog
|
|
2
|
-
|
|
3
|
-
本文件记录 `@agentunion/fastaun-browser` SDK 的版本变更。最新版本在最前面。
|
|
4
|
-
|
|
5
|
-
格式参考 [Keep a Changelog](https://keepachangelog.com/zh-CN/1.1.0/);版本号遵循 [SemVer](https://semver.org/lang/zh-CN/)。
|
|
6
|
-
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
## 0.
|
|
10
|
-
|
|
11
|
-
### Added
|
|
12
|
-
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
本文件记录 `@agentunion/fastaun-browser` SDK 的版本变更。最新版本在最前面。
|
|
4
|
+
|
|
5
|
+
格式参考 [Keep a Changelog](https://keepachangelog.com/zh-CN/1.1.0/);版本号遵循 [SemVer](https://semver.org/lang/zh-CN/)。
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## 0.3.1 — 2026-05-22
|
|
10
|
+
|
|
11
|
+
### Added
|
|
12
|
+
- **`auth.checkAid` handler**:本地证书自检 + 远端注册状态查询(与 Node 版对齐)
|
|
13
|
+
- **RPC trace 增强(浏览器版本)**:`RPCTransport` 增加 `setTraceMode()` / `setTraceObserver()`;`sortTraceSpansForDisplay` / `formatTraceTree` / `traceDisplay` 树状展示
|
|
14
|
+
- **V2 群组 SPK 生命周期**:`V2KeyStore.saveGroupSPK` / `loadGroupSPK` / `loadCurrentGroupSPK` 基于 IndexedDB 持久化;`V2Session.ensureGroupSPK` / `ensureGroupRegistered` / `rotateGroupSPK` / `getGroupDecryptKeys`;`DESTROY_DELAY_MS = 7d`
|
|
15
|
+
- **V2 P2P push 解密**:`AUNClient` 增加 push payload 就地解密路径,失败回退到 pull
|
|
16
|
+
|
|
17
|
+
### Changed
|
|
18
|
+
- **`SeqTracker.forceContiguousSeq`**:原 `contiguousSeq = minSeq` 跳过空洞(会丢消息),改为 `contiguousSeq = minSeq - 1` 由连续前缀自然推进
|
|
19
|
+
|
|
20
|
+
### Fixed
|
|
21
|
+
- short RPC 请求增加 `debug` 完整报文日志,便于跨语言诊断
|
|
22
|
+
|
|
23
|
+
---
|
|
24
|
+
|
|
25
|
+
## 0.3.0 — 2026-05-21 ⚠️ BREAKING CHANGE
|
|
26
|
+
|
|
27
|
+
> **V2-only 版本**:移除全部 V1 E2EE(含群组加密),新增 V2 加密原语,API 不向后兼容。
|
|
28
|
+
|
|
29
|
+
### BREAKING
|
|
30
|
+
- **移除 V1 E2EE 全部实现**:`e2ee-group.ts`、V1 epoch key 逻辑全部删除
|
|
31
|
+
- **移除 V1 群组加密测试**:`e2ee.spec.ts`、`epoch-key-server.spec.ts`、`group-e2ee.spec.ts`、`group-join-key-recovery.spec.ts` 等
|
|
32
|
+
- **E2EE 接口简化**:`e2ee.ts` 仅保留 V2 路径,V1 加解密方法不再可用
|
|
33
|
+
- **配置变更**:`config.ts` 移除 V1 相关配置项
|
|
34
|
+
|
|
35
|
+
### Added
|
|
36
|
+
- **agent.md 主 API(浏览器版本)**:`AUNClient.publishAgentMd(content)` / `AUNClient.fetchAgentMd(aid?)`
|
|
37
|
+
- **V2 加密原语**(跨语言 golden vector 一致性):ECDH P-256、HKDF-SHA256、AES-256-GCM、ECDSA-SHA256 RAW、1DH/3DH wrap_key、Recipients Sort + Merkle Digest、State Commitment
|
|
38
|
+
- **V2 Session**:SPK 生命周期 + 对端 IK 缓存 + PFS 三重销毁
|
|
39
|
+
- **V2 KeyStore**:IndexedDB 持久化 SPK/IK 异步实现
|
|
40
|
+
|
|
41
|
+
### Removed
|
|
42
|
+
- `AUNClient.setLocalAgentMdContent()` / `getLocalAgentMdEtag()` / `getRemoteAgentMdEtag()` — 由主 API 自动维护
|
|
43
|
+
|
|
44
|
+
### Deprecated
|
|
45
|
+
- `client.auth.signAgentMd` / `verifyAgentMd` / `uploadAgentMd` / `downloadAgentMd` — 建议迁移到 `client.publishAgentMd` / `client.fetchAgentMd`
|
|
46
|
+
|
|
47
|
+
---
|
|
48
|
+
|
|
49
|
+
## 0.2.20 — 2026-05-18
|
|
50
|
+
|
|
51
|
+
### Added
|
|
52
|
+
- **agent.md 版本一致性 API(浏览器版本)**:
|
|
53
|
+
- `AUNClient.setLocalAgentMdContent(content: string): Promise<string>`:浏览器无法读本地文件,改为接收 markdown 文本字符串,用 `crypto.subtle.digest('SHA-256', ...)` 计算 etag。业务侧可用 `<input type=file>` 读出文本传入。
|
|
54
|
+
- `AUNClient.getLocalAgentMdEtag(): string` / `getRemoteAgentMdEtag(): string`。
|
|
55
|
+
- SDK 自动从 RPC envelope `_meta.agent_md_etag` 提取服务端 etag,应用层订阅 `message.received` / `group.message_created` 等事件时 payload 多 `_agent_md.{local_etag, remote_etag}` 字段供版本比对。
|
|
56
|
+
- **`downloadAgentMd` 条件请求缓存**:内部维护 ETag/Last-Modified,未变化时返回上次缓存内容;外部 API 形态不变。
|
|
57
|
+
- **transport meta observer**:`RPCTransport.setMetaObserver(fn)` 透传 envelope `_meta`,observer 抛错被吞,不影响 RPC result。
|
|
58
|
+
|
|
59
|
+
### Changed
|
|
60
|
+
- **RPC call 默认超时 10s → 35s**:与服务端 30s handler timeout 对齐,留 5s buffer。
|
|
61
|
+
- **multi-device 架构**:对端无 prekey 时 `_sendEncrypted` 直接抛错(`no registered device prekeys for ...`),不再降级到 `long_term_key`。
|
|
62
|
+
|
|
63
|
+
### Docs
|
|
64
|
+
- 仓库根 `docs/`(agent.md 规范、protocol、SDK 手册)随 npm tarball 打包到 `_packed_docs/`,安装后可读。`.gitignore` 排除项(如内部测试指南)不进包。
|
|
65
|
+
|
|
66
|
+
---
|
package/README.md
CHANGED
|
@@ -511,7 +511,6 @@ SDK 内部已自动处理以下群组 E2EE 场景:
|
|
|
511
511
|
| `message.received` | P2P 消息,SDK 已优先自动解密 |
|
|
512
512
|
| `message.undecryptable` | 无法解密的 P2P 消息 |
|
|
513
513
|
| `message.recalled` | 撤回事件 |
|
|
514
|
-
| `message.ack` | ack 事件 |
|
|
515
514
|
| `group.message_created` | 群消息,SDK 已优先自动解密 |
|
|
516
515
|
| `group.message_undecryptable` | 无法解密的群消息 |
|
|
517
516
|
| `group.changed` | 群组事件 |
|
|
@@ -1,26 +1,66 @@
|
|
|
1
|
-
# Changelog
|
|
2
|
-
|
|
3
|
-
本文件记录 `@agentunion/fastaun-browser` SDK 的版本变更。最新版本在最前面。
|
|
4
|
-
|
|
5
|
-
格式参考 [Keep a Changelog](https://keepachangelog.com/zh-CN/1.1.0/);版本号遵循 [SemVer](https://semver.org/lang/zh-CN/)。
|
|
6
|
-
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
## 0.
|
|
10
|
-
|
|
11
|
-
### Added
|
|
12
|
-
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
本文件记录 `@agentunion/fastaun-browser` SDK 的版本变更。最新版本在最前面。
|
|
4
|
+
|
|
5
|
+
格式参考 [Keep a Changelog](https://keepachangelog.com/zh-CN/1.1.0/);版本号遵循 [SemVer](https://semver.org/lang/zh-CN/)。
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## 0.3.1 — 2026-05-22
|
|
10
|
+
|
|
11
|
+
### Added
|
|
12
|
+
- **`auth.checkAid` handler**:本地证书自检 + 远端注册状态查询(与 Node 版对齐)
|
|
13
|
+
- **RPC trace 增强(浏览器版本)**:`RPCTransport` 增加 `setTraceMode()` / `setTraceObserver()`;`sortTraceSpansForDisplay` / `formatTraceTree` / `traceDisplay` 树状展示
|
|
14
|
+
- **V2 群组 SPK 生命周期**:`V2KeyStore.saveGroupSPK` / `loadGroupSPK` / `loadCurrentGroupSPK` 基于 IndexedDB 持久化;`V2Session.ensureGroupSPK` / `ensureGroupRegistered` / `rotateGroupSPK` / `getGroupDecryptKeys`;`DESTROY_DELAY_MS = 7d`
|
|
15
|
+
- **V2 P2P push 解密**:`AUNClient` 增加 push payload 就地解密路径,失败回退到 pull
|
|
16
|
+
|
|
17
|
+
### Changed
|
|
18
|
+
- **`SeqTracker.forceContiguousSeq`**:原 `contiguousSeq = minSeq` 跳过空洞(会丢消息),改为 `contiguousSeq = minSeq - 1` 由连续前缀自然推进
|
|
19
|
+
|
|
20
|
+
### Fixed
|
|
21
|
+
- short RPC 请求增加 `debug` 完整报文日志,便于跨语言诊断
|
|
22
|
+
|
|
23
|
+
---
|
|
24
|
+
|
|
25
|
+
## 0.3.0 — 2026-05-21 ⚠️ BREAKING CHANGE
|
|
26
|
+
|
|
27
|
+
> **V2-only 版本**:移除全部 V1 E2EE(含群组加密),新增 V2 加密原语,API 不向后兼容。
|
|
28
|
+
|
|
29
|
+
### BREAKING
|
|
30
|
+
- **移除 V1 E2EE 全部实现**:`e2ee-group.ts`、V1 epoch key 逻辑全部删除
|
|
31
|
+
- **移除 V1 群组加密测试**:`e2ee.spec.ts`、`epoch-key-server.spec.ts`、`group-e2ee.spec.ts`、`group-join-key-recovery.spec.ts` 等
|
|
32
|
+
- **E2EE 接口简化**:`e2ee.ts` 仅保留 V2 路径,V1 加解密方法不再可用
|
|
33
|
+
- **配置变更**:`config.ts` 移除 V1 相关配置项
|
|
34
|
+
|
|
35
|
+
### Added
|
|
36
|
+
- **agent.md 主 API(浏览器版本)**:`AUNClient.publishAgentMd(content)` / `AUNClient.fetchAgentMd(aid?)`
|
|
37
|
+
- **V2 加密原语**(跨语言 golden vector 一致性):ECDH P-256、HKDF-SHA256、AES-256-GCM、ECDSA-SHA256 RAW、1DH/3DH wrap_key、Recipients Sort + Merkle Digest、State Commitment
|
|
38
|
+
- **V2 Session**:SPK 生命周期 + 对端 IK 缓存 + PFS 三重销毁
|
|
39
|
+
- **V2 KeyStore**:IndexedDB 持久化 SPK/IK 异步实现
|
|
40
|
+
|
|
41
|
+
### Removed
|
|
42
|
+
- `AUNClient.setLocalAgentMdContent()` / `getLocalAgentMdEtag()` / `getRemoteAgentMdEtag()` — 由主 API 自动维护
|
|
43
|
+
|
|
44
|
+
### Deprecated
|
|
45
|
+
- `client.auth.signAgentMd` / `verifyAgentMd` / `uploadAgentMd` / `downloadAgentMd` — 建议迁移到 `client.publishAgentMd` / `client.fetchAgentMd`
|
|
46
|
+
|
|
47
|
+
---
|
|
48
|
+
|
|
49
|
+
## 0.2.20 — 2026-05-18
|
|
50
|
+
|
|
51
|
+
### Added
|
|
52
|
+
- **agent.md 版本一致性 API(浏览器版本)**:
|
|
53
|
+
- `AUNClient.setLocalAgentMdContent(content: string): Promise<string>`:浏览器无法读本地文件,改为接收 markdown 文本字符串,用 `crypto.subtle.digest('SHA-256', ...)` 计算 etag。业务侧可用 `<input type=file>` 读出文本传入。
|
|
54
|
+
- `AUNClient.getLocalAgentMdEtag(): string` / `getRemoteAgentMdEtag(): string`。
|
|
55
|
+
- SDK 自动从 RPC envelope `_meta.agent_md_etag` 提取服务端 etag,应用层订阅 `message.received` / `group.message_created` 等事件时 payload 多 `_agent_md.{local_etag, remote_etag}` 字段供版本比对。
|
|
56
|
+
- **`downloadAgentMd` 条件请求缓存**:内部维护 ETag/Last-Modified,未变化时返回上次缓存内容;外部 API 形态不变。
|
|
57
|
+
- **transport meta observer**:`RPCTransport.setMetaObserver(fn)` 透传 envelope `_meta`,observer 抛错被吞,不影响 RPC result。
|
|
58
|
+
|
|
59
|
+
### Changed
|
|
60
|
+
- **RPC call 默认超时 10s → 35s**:与服务端 30s handler timeout 对齐,留 5s buffer。
|
|
61
|
+
- **multi-device 架构**:对端无 prekey 时 `_sendEncrypted` 直接抛错(`no registered device prekeys for ...`),不再降级到 `long_term_key`。
|
|
62
|
+
|
|
63
|
+
### Docs
|
|
64
|
+
- 仓库根 `docs/`(agent.md 规范、protocol、SDK 手册)随 npm tarball 打包到 `_packed_docs/`,安装后可读。`.gitignore` 排除项(如内部测试指南)不进包。
|
|
65
|
+
|
|
66
|
+
---
|