@awiki/im-core-node 0.1.2 → 0.1.4
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 +22 -0
- package/README.md +57 -14
- package/SOURCE.md +2 -2
- package/checksums.json +18 -14
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +48 -0
- package/dist/index.js.map +1 -1
- package/dist/loader.js +1 -1
- package/dist/native.d.ts +16 -1
- package/dist/native.d.ts.map +1 -1
- package/dist/types.d.ts +74 -4
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/package.json +7 -6
- package/provenance.json +5 -5
- package/sbom.cdx.json +12 -12
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
## 0.1.4
|
|
4
|
+
|
|
5
|
+
- Add the local conversation timeline read for local-first Host UI.
|
|
6
|
+
- Add `createGroup` for private, open-join, transport-protected groups and return
|
|
7
|
+
the Core-derived canonical conversation ID.
|
|
8
|
+
- Add `addGroupMember` with Core-owned Handle/DID resolution.
|
|
9
|
+
- Add local-only `hydrateDisplayProfiles` batch lookup for cached sender Handle
|
|
10
|
+
and display-name projection without a Directory network request.
|
|
11
|
+
- Raise the native addon contract to v4 so wrappers reject binaries that do not
|
|
12
|
+
contain the group-management and display-profile hydration methods.
|
|
13
|
+
|
|
14
|
+
## 0.1.3
|
|
15
|
+
|
|
16
|
+
- Add the native API v2 external HTTP ANP authentication facade.
|
|
17
|
+
- Add opaque single-use request attempts, origin-scoped in-memory Bearer reuse,
|
|
18
|
+
response token capture, and one bounded `401` signature retry.
|
|
19
|
+
- Add an explicit test-only literal-loopback HTTP option; production targets
|
|
20
|
+
remain HTTPS-only.
|
|
21
|
+
- Preserve the published 0.1.2 open contract: the Node facade owns its private
|
|
22
|
+
state-root Vault key and does not require host key material.
|
package/README.md
CHANGED
|
@@ -17,6 +17,17 @@ const client = await openImCoreNodeClient({
|
|
|
17
17
|
try {
|
|
18
18
|
const identity = await client.getDefaultIdentity()
|
|
19
19
|
const conversations = identity ? await client.listConversations() : undefined
|
|
20
|
+
const localTimeline = conversations?.items[0]
|
|
21
|
+
? await client.getLocalConversationTimeline({
|
|
22
|
+
conversationId: conversations.items[0].id,
|
|
23
|
+
limit: 50,
|
|
24
|
+
})
|
|
25
|
+
: undefined
|
|
26
|
+
const group = identity ? await client.createGroup({ name: 'Release Crew' }) : undefined
|
|
27
|
+
if (group) await client.addGroupMember({ groupDid: group.did, member: 'alice.awiki.info' })
|
|
28
|
+
const profiles = identity
|
|
29
|
+
? await client.hydrateDisplayProfiles({ peers: ['alice.awiki.info'] })
|
|
30
|
+
: []
|
|
20
31
|
// 经产品层显式二次确认后,可调用 await client.clearLocalData()
|
|
21
32
|
}
|
|
22
33
|
finally {
|
|
@@ -24,28 +35,61 @@ finally {
|
|
|
24
35
|
}
|
|
25
36
|
```
|
|
26
37
|
|
|
38
|
+
`getLocalConversationTimeline` 只读取 Core 已提交的本地 conversation projection,不发起
|
|
39
|
+
同步、远端 history 或 Directory RPC。它适合首屏显示;远端刷新应在后台进行,并在 Core
|
|
40
|
+
提交后重新读取该 local timeline。它返回的 local cursor 不得传给 `getHistory`。
|
|
41
|
+
|
|
42
|
+
## 外部 HTTP ANP 认证
|
|
43
|
+
|
|
44
|
+
可信 Node Host 可以让 Rust 为外部 transport 的请求准备 ANP 认证头。SDK 不发送请求:
|
|
45
|
+
|
|
46
|
+
```ts
|
|
47
|
+
const attempt = await client.prepareExternalHttpRequest({
|
|
48
|
+
url: 'https://api.example.com/orders',
|
|
49
|
+
method: 'POST',
|
|
50
|
+
headers: [{ name: 'content-type', value: 'application/json' }],
|
|
51
|
+
body: new TextEncoder().encode('{"productId":"123"}'),
|
|
52
|
+
})
|
|
53
|
+
|
|
54
|
+
// Apply attempt.headerPatch and send attempt.targetUrl/method with the exact body.
|
|
55
|
+
const retry = await attempt.handleResponse({
|
|
56
|
+
statusCode: response.status,
|
|
57
|
+
headers: [...response.headers].map(([name, value]) => ({ name, value })),
|
|
58
|
+
})
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
attempt 是 single-use opaque 对象。Rust 自动在 origin-scoped 进程内 Bearer cache 和当前设备
|
|
62
|
+
HTTP Message Signature 之间选择;成功响应只从 `Authentication-Info` 接受 Token。一次
|
|
63
|
+
`401` 最多产生一个 retry attempt。正文最大 4 MiB;`undefined` 表示无正文,空
|
|
64
|
+
`Uint8Array` 表示需要摘要绑定的显式空正文。
|
|
65
|
+
|
|
66
|
+
固定 verifier challenge 即使对无正文请求仍列出 `content-digest`,也不会阻止 GET/HEAD
|
|
67
|
+
重签;实际无正文签名仍省略 `Content-Digest`。多个合并的 `WWW-Authenticate` scheme 中,
|
|
68
|
+
Rust 只选择唯一、合法的 DID-WBA challenge。
|
|
69
|
+
|
|
70
|
+
`headerPatch` 含敏感凭证,禁止日志记录或序列化。生产只允许 HTTPS;可选
|
|
71
|
+
`externalHttpAllowInsecureLoopbackForTesting` 仅为 literal loopback 测试。该 API 不能暴露给
|
|
72
|
+
浏览器、模型工具或远程调用者。DSH 插件应使用其 Host-only `externalHttpAuth.dispatch`,而
|
|
73
|
+
不是直接让第三方编排 attempt。
|
|
74
|
+
|
|
27
75
|
## 生命周期与线程
|
|
28
76
|
|
|
29
77
|
- 一个 client 对应一个环境级 `ImCore` 和一个 default identity-bound `ImClient`,不会为
|
|
30
78
|
每次请求重开 SQLite 或身份目录。
|
|
31
79
|
- 所有 I/O 都是 Promise;Rust async 任务不会阻塞 Node event loop。
|
|
32
|
-
- addon 使用专用 Tokio runtime,async worker 具有 16 MiB 栈,保证 Debug/Release 消息发送 future
|
|
33
|
-
不会因 NAPI 默认 worker 栈不足而终止 Node Host。
|
|
34
|
-
- `listConversations()` 的读取前同步与未指定 reason 的 `syncNow()` 均使用 Core 支持的
|
|
35
|
-
`manual_refresh`;`SyncReason` 类型只允许 Core 协议枚举值。
|
|
36
80
|
- `close()` 开始后拒绝新任务,取消可安全取消的任务,等待已接受任务释放状态,再释放
|
|
37
81
|
state-root 文件锁;重复调用是幂等的。
|
|
38
|
-
- `clearLocalData()` 在持有 state-root 锁时删除 SDK-owned
|
|
39
|
-
|
|
40
|
-
远端账号或 Handle。
|
|
82
|
+
- `clearLocalData()` 在持有 state-root 锁时删除 SDK-owned 身份、本地数据库、缓存、临时文件和
|
|
83
|
+
兼容元数据,再重新初始化空 Core;client 保持可用。它不删除远端账号或 Handle。
|
|
41
84
|
- JS GC 只作为异常退出兜底,Host teardown 必须显式等待 `close()`。
|
|
42
85
|
|
|
43
86
|
## state root
|
|
44
87
|
|
|
45
88
|
`stateRoot` 必须是绝对路径。同一路径在同一时间只能由一个实例/进程打开。Unix 上目录收紧为
|
|
46
|
-
`0700`、文件收紧为 `0600
|
|
47
|
-
|
|
48
|
-
`
|
|
89
|
+
`0700`、文件收紧为 `0600`。包不读取旧 TypeScript SDK 的 `identity.json`,也不提供 legacy
|
|
90
|
+
import。Node facade 在 process-exclusive `stateRoot/vault` 内部生成并私有保存稳定 root key,
|
|
91
|
+
以固定 context 打开 `VaultRequired` Core;Host 不接触或传入 root key。普通重启复用该 key,
|
|
92
|
+
`clearLocalData()` 删除 Vault 并在重新初始化时生成新 key。
|
|
49
93
|
|
|
50
94
|
## DTO 与错误
|
|
51
95
|
|
|
@@ -54,13 +98,12 @@ finally {
|
|
|
54
98
|
JSON 或 base64。
|
|
55
99
|
- 抛出的 `ImCoreNodeError` 只包含 `{ code, safeMessage, retryable }`。底层服务正文、token、
|
|
56
100
|
OTP、路径、私钥和附件内容不会进入 JS 错误。
|
|
57
|
-
-
|
|
58
|
-
|
|
101
|
+
- `createGroup` 固定创建 private、open-join、transport-protected 群,返回的
|
|
102
|
+
`conversationId` 由 Core canonical identity 生成;`addGroupMember` 接受 Handle 或 DID。
|
|
103
|
+
- Native contract version 固定为 `4`;wrapper 拒绝缺少群管理、本地时间线或展示资料接口的旧 addon。
|
|
59
104
|
|
|
60
105
|
平台包、provenance 与许可证发行链由原生制品 workflow 维护。第一版已批准按
|
|
61
106
|
AGPL-3.0-only 分发,对应源码、SBOM、checksum 与构建来源随每个包提供。
|
|
62
|
-
本地 macOS 源码构建会在复制 Mach-O addon 后执行 ad-hoc 重签,避免复制后的代码页被 dyld
|
|
63
|
-
判定为签名无效;正式平台制品仍由 release workflow 维护其签名与 provenance。
|
|
64
107
|
|
|
65
108
|
## 原生制品
|
|
66
109
|
|
package/SOURCE.md
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
# Corresponding Source
|
|
2
2
|
|
|
3
|
-
Package: @awiki/im-core-node@0.1.
|
|
3
|
+
Package: @awiki/im-core-node@0.1.4
|
|
4
4
|
Target: platform-independent-wrapper
|
|
5
5
|
Repository: https://github.com/AgentConnect/awiki-cli-rs2
|
|
6
|
-
Commit:
|
|
6
|
+
Commit: ab4c2706fb508fabbebb3722d872cef778a9b9e8
|
|
7
7
|
ANP commit: d3cc6a9571cec9b7d53dfbc5ef5612e56d1d5ea9
|
|
8
8
|
|
|
9
9
|
Build instructions: docs/node-sdk/awiki-im-core-node-artifacts.md
|
package/checksums.json
CHANGED
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schemaVersion": 1,
|
|
3
3
|
"files": [
|
|
4
|
+
{
|
|
5
|
+
"path": "CHANGELOG.md",
|
|
6
|
+
"sha256": "2c99ae3a2b16bc1c5e4d206a5e99a64784516f83267eb69fe51a7592603502ea"
|
|
7
|
+
},
|
|
4
8
|
{
|
|
5
9
|
"path": "COMMERCIAL-LICENSING.md",
|
|
6
10
|
"sha256": "c52c6b16a68e3801154a5b628ec594bd521e0559f60acda7f187952fea87a30d"
|
|
@@ -11,15 +15,15 @@
|
|
|
11
15
|
},
|
|
12
16
|
{
|
|
13
17
|
"path": "dist/index.d.ts.map",
|
|
14
|
-
"sha256": "
|
|
18
|
+
"sha256": "fd3ca7a658635ab9c999b8aefcd241bb32f493143301c5adcea9af27791f2ae8"
|
|
15
19
|
},
|
|
16
20
|
{
|
|
17
21
|
"path": "dist/index.js",
|
|
18
|
-
"sha256": "
|
|
22
|
+
"sha256": "6125a3587dff8c27107a28c1785603c45be06ee2b1a18bd194d1a64037498cc2"
|
|
19
23
|
},
|
|
20
24
|
{
|
|
21
25
|
"path": "dist/index.js.map",
|
|
22
|
-
"sha256": "
|
|
26
|
+
"sha256": "fe878e9bca1862d163493d523ea71aa1380eb5355c3973297efc59e3a5470ad0"
|
|
23
27
|
},
|
|
24
28
|
{
|
|
25
29
|
"path": "dist/loader.d.ts",
|
|
@@ -31,7 +35,7 @@
|
|
|
31
35
|
},
|
|
32
36
|
{
|
|
33
37
|
"path": "dist/loader.js",
|
|
34
|
-
"sha256": "
|
|
38
|
+
"sha256": "f35d59231f58cf83d031ad929c492f866642ddd880182a2fbf0a45d8f65598c4"
|
|
35
39
|
},
|
|
36
40
|
{
|
|
37
41
|
"path": "dist/loader.js.map",
|
|
@@ -39,11 +43,11 @@
|
|
|
39
43
|
},
|
|
40
44
|
{
|
|
41
45
|
"path": "dist/native.d.ts",
|
|
42
|
-
"sha256": "
|
|
46
|
+
"sha256": "03c89e13538ed50cdf056e07ff231cfc5605fafc38254a45ba9d264101ed3e8a"
|
|
43
47
|
},
|
|
44
48
|
{
|
|
45
49
|
"path": "dist/native.d.ts.map",
|
|
46
|
-
"sha256": "
|
|
50
|
+
"sha256": "742849d9ae8dfe8a6e889a675877e47435d2c5f0f9f3a226f6388258cefeb0be"
|
|
47
51
|
},
|
|
48
52
|
{
|
|
49
53
|
"path": "dist/native.js",
|
|
@@ -71,11 +75,11 @@
|
|
|
71
75
|
},
|
|
72
76
|
{
|
|
73
77
|
"path": "dist/types.d.ts",
|
|
74
|
-
"sha256": "
|
|
78
|
+
"sha256": "fa9fcb6e9b692266657b121aef208225777c94cd669b4123b803ccd0d7ea2b3b"
|
|
75
79
|
},
|
|
76
80
|
{
|
|
77
81
|
"path": "dist/types.d.ts.map",
|
|
78
|
-
"sha256": "
|
|
82
|
+
"sha256": "face41bbc01fb880c1962fe2a87ae4dab446b9ef081c06274f9a63438f2b2b4a"
|
|
79
83
|
},
|
|
80
84
|
{
|
|
81
85
|
"path": "dist/types.js",
|
|
@@ -83,7 +87,7 @@
|
|
|
83
87
|
},
|
|
84
88
|
{
|
|
85
89
|
"path": "dist/types.js.map",
|
|
86
|
-
"sha256": "
|
|
90
|
+
"sha256": "4d4a43ff08b763ae4f6d5a25375f286e9e44f73c4249196baac6ac021a8b3486"
|
|
87
91
|
},
|
|
88
92
|
{
|
|
89
93
|
"path": "LICENSE",
|
|
@@ -95,23 +99,23 @@
|
|
|
95
99
|
},
|
|
96
100
|
{
|
|
97
101
|
"path": "package.json",
|
|
98
|
-
"sha256": "
|
|
102
|
+
"sha256": "1c1a31703e1756ef997aa7e7cf3f6cf2d7d960b60cf1684aa909dffc52707010"
|
|
99
103
|
},
|
|
100
104
|
{
|
|
101
105
|
"path": "provenance.json",
|
|
102
|
-
"sha256": "
|
|
106
|
+
"sha256": "a1c89ed70d62a7a6f8daee6cb339283b7e0a5b5f502e2a744e1d8f766685ac93"
|
|
103
107
|
},
|
|
104
108
|
{
|
|
105
109
|
"path": "README.md",
|
|
106
|
-
"sha256": "
|
|
110
|
+
"sha256": "8194577245ce950e6f510903a8c4b5d28865fc0010ec5341d4704079a9283302"
|
|
107
111
|
},
|
|
108
112
|
{
|
|
109
113
|
"path": "sbom.cdx.json",
|
|
110
|
-
"sha256": "
|
|
114
|
+
"sha256": "de97428f2bdeeca4773a359dc3aa0ec2df556a200a0076a9d6708fab3f2da1a7"
|
|
111
115
|
},
|
|
112
116
|
{
|
|
113
117
|
"path": "SOURCE.md",
|
|
114
|
-
"sha256": "
|
|
118
|
+
"sha256": "e1ed794987c4d377f368ac482797fb6d8359d9a26995e727d43ec9f84aacc03f"
|
|
115
119
|
}
|
|
116
120
|
]
|
|
117
121
|
}
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAWL,KAAK,gBAAgB,EACrB,KAAK,qBAAqB,EAmB3B,MAAM,YAAY,CAAA;AAEnB,cAAc,YAAY,CAAA;AAwJ1B;;;;;;GAMG;AACH,wBAAsB,oBAAoB,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAIpG"}
|
package/dist/index.js
CHANGED
|
@@ -33,6 +33,18 @@ class RustImCoreNodeClient {
|
|
|
33
33
|
constructor(native) {
|
|
34
34
|
this.native = native;
|
|
35
35
|
}
|
|
36
|
+
async prepareExternalHttpRequest(input) {
|
|
37
|
+
const body = input.body === undefined
|
|
38
|
+
? undefined
|
|
39
|
+
: Buffer.from(input.body.buffer, input.body.byteOffset, input.body.byteLength);
|
|
40
|
+
const native = await call(() => this.native.prepareExternalHttpRequest({
|
|
41
|
+
url: input.url,
|
|
42
|
+
method: input.method,
|
|
43
|
+
headers: copyHeaders(input.headers),
|
|
44
|
+
...(body === undefined ? {} : { body }),
|
|
45
|
+
}));
|
|
46
|
+
return new RustExternalHttpAuthAttempt(native);
|
|
47
|
+
}
|
|
36
48
|
getDefaultIdentity() {
|
|
37
49
|
return call(() => this.native.getDefaultIdentity());
|
|
38
50
|
}
|
|
@@ -48,6 +60,15 @@ class RustImCoreNodeClient {
|
|
|
48
60
|
resolvePeer(peer) {
|
|
49
61
|
return call(() => this.native.resolvePeer(peer));
|
|
50
62
|
}
|
|
63
|
+
hydrateDisplayProfiles(input) {
|
|
64
|
+
return call(() => this.native.hydrateDisplayProfiles({ peers: [...input.peers] }));
|
|
65
|
+
}
|
|
66
|
+
createGroup(input) {
|
|
67
|
+
return call(() => this.native.createGroup(input));
|
|
68
|
+
}
|
|
69
|
+
addGroupMember(input) {
|
|
70
|
+
return call(() => this.native.addGroupMember(input));
|
|
71
|
+
}
|
|
51
72
|
syncNow(input) {
|
|
52
73
|
return call(() => this.native.syncNow(input));
|
|
53
74
|
}
|
|
@@ -57,6 +78,9 @@ class RustImCoreNodeClient {
|
|
|
57
78
|
getHistory(input) {
|
|
58
79
|
return call(() => this.native.getHistory(input));
|
|
59
80
|
}
|
|
81
|
+
getLocalConversationTimeline(input) {
|
|
82
|
+
return call(() => this.native.getLocalConversationTimeline(input));
|
|
83
|
+
}
|
|
60
84
|
markConversationRead(conversationId) {
|
|
61
85
|
return call(() => this.native.markConversationRead(conversationId));
|
|
62
86
|
}
|
|
@@ -78,6 +102,30 @@ class RustImCoreNodeClient {
|
|
|
78
102
|
return call(() => this.native.close());
|
|
79
103
|
}
|
|
80
104
|
}
|
|
105
|
+
class RustExternalHttpAuthAttempt {
|
|
106
|
+
native;
|
|
107
|
+
targetUrl;
|
|
108
|
+
method;
|
|
109
|
+
headerPatch;
|
|
110
|
+
retryCount;
|
|
111
|
+
constructor(native) {
|
|
112
|
+
this.native = native;
|
|
113
|
+
this.targetUrl = native.getTargetUrl();
|
|
114
|
+
this.method = native.getMethod();
|
|
115
|
+
this.headerPatch = copyHeaders(native.getHeaderPatch());
|
|
116
|
+
this.retryCount = native.getRetryCount();
|
|
117
|
+
}
|
|
118
|
+
async handleResponse(response) {
|
|
119
|
+
const retry = await call(() => this.native.handleResponse({
|
|
120
|
+
statusCode: response.statusCode,
|
|
121
|
+
headers: copyHeaders(response.headers),
|
|
122
|
+
}));
|
|
123
|
+
return retry === null ? null : new RustExternalHttpAuthAttempt(retry);
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
function copyHeaders(headers) {
|
|
127
|
+
return headers.map(header => ({ name: header.name, value: header.value }));
|
|
128
|
+
}
|
|
81
129
|
/**
|
|
82
130
|
* Open one Rust IM Core for the supplied absolute state root.
|
|
83
131
|
*
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAA;AAE/C,OAAO,EACL,eAAe,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/loader.js
CHANGED
|
@@ -38,7 +38,7 @@ export function loadNativeBinding() {
|
|
|
38
38
|
if (!binding) {
|
|
39
39
|
throw new ImCoreNodeError('native_addon_missing', `The native addon for ${key} is not installed.`, false);
|
|
40
40
|
}
|
|
41
|
-
if (binding.nativeApiVersion() !==
|
|
41
|
+
if (binding.nativeApiVersion() !== 4) {
|
|
42
42
|
throw new ImCoreNodeError('native_api_mismatch', 'The native addon API version is incompatible.', false);
|
|
43
43
|
}
|
|
44
44
|
return binding;
|
package/dist/native.d.ts
CHANGED
|
@@ -1,13 +1,28 @@
|
|
|
1
|
-
import type { DownloadAttachmentInput, HistoryInput, ImCoreNodeOpenOptions, MarkReadResult, NodeConversation, NodeDownload, NodeIdentity, NodeMessage, NodePeer, OtpChallenge, Page, PageInput, RegistrationInput, RegistrationWithOtp, SendAttachmentInput, SendTextInput, SyncOptions, SyncResult } from './types.js';
|
|
1
|
+
import type { AddGroupMemberInput, CreateGroupInput, DisplayProfileBatchInput, DownloadAttachmentInput, ExternalHttpHeader, ExternalHttpRequest, ExternalHttpResponse, HistoryInput, ImCoreNodeOpenOptions, MarkReadResult, NodeConversation, NodeDownload, NodeDisplayProfile, NodeGroup, NodeGroupMember, NodeIdentity, NodeMessage, NodePeer, OtpChallenge, Page, PageInput, RegistrationInput, RegistrationWithOtp, SendAttachmentInput, SendTextInput, SyncOptions, SyncResult } from './types.js';
|
|
2
|
+
export interface NativeExternalHttpAuthAttempt {
|
|
3
|
+
getTargetUrl(): string;
|
|
4
|
+
getMethod(): string;
|
|
5
|
+
getHeaderPatch(): ExternalHttpHeader[];
|
|
6
|
+
getRetryCount(): number;
|
|
7
|
+
handleResponse(response: ExternalHttpResponse): Promise<NativeExternalHttpAuthAttempt | null>;
|
|
8
|
+
}
|
|
2
9
|
export interface NativeImCoreNodeClient {
|
|
10
|
+
prepareExternalHttpRequest(input: Omit<ExternalHttpRequest, 'headers' | 'body'> & {
|
|
11
|
+
readonly headers: ExternalHttpHeader[];
|
|
12
|
+
readonly body?: Buffer;
|
|
13
|
+
}): Promise<NativeExternalHttpAuthAttempt>;
|
|
3
14
|
getDefaultIdentity(): Promise<NodeIdentity | null>;
|
|
4
15
|
requestRegistrationOtp(input: RegistrationInput): Promise<OtpChallenge>;
|
|
5
16
|
completeRegistration(input: RegistrationWithOtp): Promise<NodeIdentity>;
|
|
6
17
|
updateDisplayName(displayName: string): Promise<NodeIdentity>;
|
|
7
18
|
resolvePeer(peer: string): Promise<NodePeer>;
|
|
19
|
+
hydrateDisplayProfiles(input: DisplayProfileBatchInput): Promise<NodeDisplayProfile[]>;
|
|
20
|
+
createGroup(input: CreateGroupInput): Promise<NodeGroup>;
|
|
21
|
+
addGroupMember(input: AddGroupMemberInput): Promise<NodeGroupMember>;
|
|
8
22
|
syncNow(input?: SyncOptions): Promise<SyncResult>;
|
|
9
23
|
listConversations(input?: PageInput): Promise<Page<NodeConversation>>;
|
|
10
24
|
getHistory(input: HistoryInput): Promise<Page<NodeMessage>>;
|
|
25
|
+
getLocalConversationTimeline(input: HistoryInput): Promise<Page<NodeMessage>>;
|
|
11
26
|
markConversationRead(conversationId: string): Promise<MarkReadResult>;
|
|
12
27
|
sendText(input: SendTextInput): Promise<NodeMessage>;
|
|
13
28
|
sendAttachment(input: Omit<SendAttachmentInput, 'bytes'> & {
|
package/dist/native.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"native.d.ts","sourceRoot":"","sources":["../src/native.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,uBAAuB,EACvB,YAAY,EACZ,qBAAqB,EACrB,cAAc,EACd,gBAAgB,EAChB,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,QAAQ,EACR,YAAY,EACZ,IAAI,EACJ,SAAS,EACT,iBAAiB,EACjB,mBAAmB,EACnB,mBAAmB,EACnB,aAAa,EACb,WAAW,EACX,UAAU,EACX,MAAM,YAAY,CAAA;AAEnB,MAAM,WAAW,sBAAsB;IACrC,kBAAkB,IAAI,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CAAA;IAClD,sBAAsB,CAAC,KAAK,EAAE,iBAAiB,GAAG,OAAO,CAAC,YAAY,CAAC,CAAA;IACvE,oBAAoB,CAAC,KAAK,EAAE,mBAAmB,GAAG,OAAO,CAAC,YAAY,CAAC,CAAA;IACvE,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAAA;IAC7D,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAA;IAC5C,OAAO,CAAC,KAAK,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC,CAAA;IACjD,iBAAiB,CAAC,KAAK,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAA;IACrE,UAAU,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAA;IAC3D,oBAAoB,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CAAA;IACrE,QAAQ,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,WAAW,CAAC,CAAA;IACpD,cAAc,CAAC,KAAK,EAAE,IAAI,CAAC,mBAAmB,EAAE,OAAO,CAAC,GAAG;QAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,WAAW,CAAC,CAAA;IAC5G,kBAAkB,CAAC,KAAK,EAAE,uBAAuB,GAAG,OAAO,CAAC,IAAI,CAAC,YAAY,EAAE,OAAO,CAAC,GAAG;QAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IACrH,cAAc,IAAI,OAAO,CAAC;QAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC,CAAA;IACxD,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;CACvB;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,gBAAgB,EAAE,MAAM,MAAM,CAAA;IACvC,QAAQ,CAAC,gBAAgB,EAAE,CAAC,OAAO,EAAE,qBAAqB,KAAK,OAAO,CAAC,sBAAsB,CAAC,CAAA;CAC/F"}
|
|
1
|
+
{"version":3,"file":"native.d.ts","sourceRoot":"","sources":["../src/native.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -12,6 +12,37 @@ export interface ImCoreNodeOpenOptions {
|
|
|
12
12
|
readonly operationTimeoutMs?: number;
|
|
13
13
|
/** Timeout for bounded synchronization before list reads. */
|
|
14
14
|
readonly syncTimeoutMs?: number;
|
|
15
|
+
/** Test-only exception for literal loopback HTTP external-auth targets. */
|
|
16
|
+
readonly externalHttpAllowInsecureLoopbackForTesting?: boolean;
|
|
17
|
+
}
|
|
18
|
+
/** One exact HTTP field. Authentication field values are sensitive. */
|
|
19
|
+
export interface ExternalHttpHeader {
|
|
20
|
+
readonly name: string;
|
|
21
|
+
readonly value: string;
|
|
22
|
+
}
|
|
23
|
+
/** Exact request bytes authenticated by Rust and sent by a trusted host. */
|
|
24
|
+
export interface ExternalHttpRequest {
|
|
25
|
+
readonly url: string;
|
|
26
|
+
readonly method: string;
|
|
27
|
+
readonly headers: readonly ExternalHttpHeader[];
|
|
28
|
+
/** `undefined` means no body; an empty Uint8Array is an explicit empty body. */
|
|
29
|
+
readonly body?: Uint8Array;
|
|
30
|
+
}
|
|
31
|
+
/** Response metadata observed without transferring or consuming its body. */
|
|
32
|
+
export interface ExternalHttpResponse {
|
|
33
|
+
readonly statusCode: number;
|
|
34
|
+
readonly headers: readonly ExternalHttpHeader[];
|
|
35
|
+
}
|
|
36
|
+
/** Opaque, single-use external HTTP authentication attempt. */
|
|
37
|
+
export interface ExternalHttpAuthAttempt {
|
|
38
|
+
/** Canonical target URI covered by the signature. */
|
|
39
|
+
readonly targetUrl: string;
|
|
40
|
+
readonly method: string;
|
|
41
|
+
/** Apply this patch only to the exact request represented by this attempt. */
|
|
42
|
+
readonly headerPatch: readonly ExternalHttpHeader[];
|
|
43
|
+
readonly retryCount: number;
|
|
44
|
+
/** Returns the only allowed retry, or `null` when authentication is complete. */
|
|
45
|
+
handleResponse(response: ExternalHttpResponse): Promise<ExternalHttpAuthAttempt | null>;
|
|
15
46
|
}
|
|
16
47
|
/** Public identity projection. No token, private key, or local path is exposed. */
|
|
17
48
|
export interface NodeIdentity {
|
|
@@ -44,6 +75,41 @@ export interface NodePeer {
|
|
|
44
75
|
readonly displayName?: string;
|
|
45
76
|
readonly conversationId: string;
|
|
46
77
|
}
|
|
78
|
+
/** Minimal private transport-protected group creation input. */
|
|
79
|
+
export interface CreateGroupInput {
|
|
80
|
+
readonly name: string;
|
|
81
|
+
readonly description?: string;
|
|
82
|
+
}
|
|
83
|
+
/** Created group with its canonical conversation route. */
|
|
84
|
+
export interface NodeGroup {
|
|
85
|
+
readonly did: string;
|
|
86
|
+
readonly conversationId: string;
|
|
87
|
+
readonly title: string;
|
|
88
|
+
readonly description?: string;
|
|
89
|
+
readonly memberCount?: number;
|
|
90
|
+
}
|
|
91
|
+
/** One member reference accepted as a DID, full Handle, or local Handle name. */
|
|
92
|
+
export interface AddGroupMemberInput {
|
|
93
|
+
readonly groupDid: string;
|
|
94
|
+
readonly member: string;
|
|
95
|
+
}
|
|
96
|
+
/** Authoritative member identity returned after group membership mutation. */
|
|
97
|
+
export interface NodeGroupMember {
|
|
98
|
+
readonly did: string;
|
|
99
|
+
readonly handle?: string;
|
|
100
|
+
}
|
|
101
|
+
/** Local-only batch lookup used to hydrate message sender labels without network I/O. */
|
|
102
|
+
export interface DisplayProfileBatchInput {
|
|
103
|
+
readonly peers: readonly string[];
|
|
104
|
+
}
|
|
105
|
+
/** One locally cached display profile. */
|
|
106
|
+
export interface NodeDisplayProfile {
|
|
107
|
+
readonly did?: string;
|
|
108
|
+
readonly handle?: string;
|
|
109
|
+
readonly displayName?: string;
|
|
110
|
+
readonly cacheHit: boolean;
|
|
111
|
+
readonly isStale: boolean;
|
|
112
|
+
}
|
|
47
113
|
/** Opaque cursor page input. */
|
|
48
114
|
export interface PageInput {
|
|
49
115
|
readonly cursor?: string;
|
|
@@ -55,11 +121,9 @@ export interface Page<T> {
|
|
|
55
121
|
readonly nextCursor?: string;
|
|
56
122
|
readonly hasMore: boolean;
|
|
57
123
|
}
|
|
58
|
-
/**
|
|
59
|
-
export type SyncReason = 'session_start' | 'app_resume' | 'websocket_hint' | 'websocket_reconnect' | 'foreground_reconcile' | 'manual_refresh' | 'after_mutation';
|
|
60
|
-
/** Explicit reliable-sync input. Omitted `reason` defaults to `manual_refresh`. */
|
|
124
|
+
/** Explicit reliable-sync input. */
|
|
61
125
|
export interface SyncOptions {
|
|
62
|
-
readonly reason?:
|
|
126
|
+
readonly reason?: string;
|
|
63
127
|
readonly limit?: number;
|
|
64
128
|
readonly timeoutMs?: number;
|
|
65
129
|
}
|
|
@@ -168,14 +232,20 @@ export declare class ImCoreNodeError extends Error {
|
|
|
168
232
|
}
|
|
169
233
|
/** Environment-scoped Promise API backed by one Rust ImCore/ImClient pair. */
|
|
170
234
|
export interface ImCoreNodeClient {
|
|
235
|
+
prepareExternalHttpRequest(input: ExternalHttpRequest): Promise<ExternalHttpAuthAttempt>;
|
|
171
236
|
getDefaultIdentity(): Promise<NodeIdentity | null>;
|
|
172
237
|
requestRegistrationOtp(input: RegistrationInput): Promise<OtpChallenge>;
|
|
173
238
|
completeRegistration(input: RegistrationWithOtp): Promise<NodeIdentity>;
|
|
174
239
|
updateDisplayName(displayName: string): Promise<NodeIdentity>;
|
|
175
240
|
resolvePeer(peer: string): Promise<NodePeer>;
|
|
241
|
+
hydrateDisplayProfiles(input: DisplayProfileBatchInput): Promise<readonly NodeDisplayProfile[]>;
|
|
242
|
+
createGroup(input: CreateGroupInput): Promise<NodeGroup>;
|
|
243
|
+
addGroupMember(input: AddGroupMemberInput): Promise<NodeGroupMember>;
|
|
176
244
|
syncNow(input?: SyncOptions): Promise<SyncResult>;
|
|
177
245
|
listConversations(input?: PageInput): Promise<Page<NodeConversation>>;
|
|
178
246
|
getHistory(input: HistoryInput): Promise<Page<NodeMessage>>;
|
|
247
|
+
/** Read only the committed local timeline; never starts sync, history, or Directory RPC. */
|
|
248
|
+
getLocalConversationTimeline(input: HistoryInput): Promise<Page<NodeMessage>>;
|
|
179
249
|
markConversationRead(conversationId: string): Promise<MarkReadResult>;
|
|
180
250
|
sendText(input: SendTextInput): Promise<NodeMessage>;
|
|
181
251
|
sendAttachment(input: SendAttachmentInput): Promise<NodeMessage>;
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,8DAA8D;AAC9D,MAAM,WAAW,qBAAqB;IACpC,oFAAoF;IACpF,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAA;IAC/B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,mBAAmB,CAAC,EAAE,MAAM,CAAA;IACrC,QAAQ,CAAC,sBAAsB,CAAC,EAAE,MAAM,CAAA;IACxC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,MAAM,CAAA;IACpC,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAA;IAC/B,wEAAwE;IACxE,QAAQ,CAAC,kBAAkB,CAAC,EAAE,MAAM,CAAA;IACpC,6DAA6D;IAC7D,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAA;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/dist/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AA+PA,4DAA4D;AAC5D,MAAM,OAAO,eAAgB,SAAQ,KAAK;IAItB;IACA;IACA;IALF,IAAI,GAAG,iBAAiB,CAAA;IAExC,YACkB,IAAY,EACZ,WAAmB,EACnB,SAAkB;QAElC,KAAK,CAAC,WAAW,CAAC,CAAA;QAJF,SAAI,GAAJ,IAAI,CAAQ;QACZ,gBAAW,GAAX,WAAW,CAAQ;QACnB,cAAS,GAAT,SAAS,CAAS;IAGpC,CAAC;CACF"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@awiki/im-core-node",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.4",
|
|
4
4
|
"description": "Promise-based Node.js facade for the Awiki Rust IM SDK",
|
|
5
5
|
"license": "AGPL-3.0-only",
|
|
6
6
|
"type": "module",
|
|
@@ -17,6 +17,7 @@
|
|
|
17
17
|
},
|
|
18
18
|
"files": [
|
|
19
19
|
"dist",
|
|
20
|
+
"CHANGELOG.md",
|
|
20
21
|
"README.md",
|
|
21
22
|
"LICENSE",
|
|
22
23
|
"COMMERCIAL-LICENSING.md",
|
|
@@ -33,11 +34,11 @@
|
|
|
33
34
|
"test": "node --test test/*.test.mjs"
|
|
34
35
|
},
|
|
35
36
|
"optionalDependencies": {
|
|
36
|
-
"@awiki/im-core-node-darwin-arm64": "0.1.
|
|
37
|
-
"@awiki/im-core-node-darwin-x64": "0.1.
|
|
38
|
-
"@awiki/im-core-node-linux-arm64-gnu": "0.1.
|
|
39
|
-
"@awiki/im-core-node-linux-x64-gnu": "0.1.
|
|
40
|
-
"@awiki/im-core-node-win32-x64-msvc": "0.1.
|
|
37
|
+
"@awiki/im-core-node-darwin-arm64": "0.1.4",
|
|
38
|
+
"@awiki/im-core-node-darwin-x64": "0.1.4",
|
|
39
|
+
"@awiki/im-core-node-linux-arm64-gnu": "0.1.4",
|
|
40
|
+
"@awiki/im-core-node-linux-x64-gnu": "0.1.4",
|
|
41
|
+
"@awiki/im-core-node-win32-x64-msvc": "0.1.4"
|
|
41
42
|
},
|
|
42
43
|
"devDependencies": {
|
|
43
44
|
"@types/node": "^22.18.0",
|
package/provenance.json
CHANGED
|
@@ -2,19 +2,19 @@
|
|
|
2
2
|
"schemaVersion": 1,
|
|
3
3
|
"package": {
|
|
4
4
|
"name": "@awiki/im-core-node",
|
|
5
|
-
"version": "0.1.
|
|
5
|
+
"version": "0.1.4"
|
|
6
6
|
},
|
|
7
7
|
"target": "platform-independent-wrapper",
|
|
8
|
-
"nativeApiVersion":
|
|
8
|
+
"nativeApiVersion": 4,
|
|
9
9
|
"source": {
|
|
10
10
|
"repository": "https://github.com/AgentConnect/awiki-cli-rs2",
|
|
11
|
-
"commit": "
|
|
12
|
-
"committedAt": "2026-08-
|
|
11
|
+
"commit": "ab4c2706fb508fabbebb3722d872cef778a9b9e8",
|
|
12
|
+
"committedAt": "2026-08-18T21:59:17+08:00",
|
|
13
13
|
"dirty": false
|
|
14
14
|
},
|
|
15
15
|
"sdk": {
|
|
16
16
|
"imCoreVersion": "0.1.0",
|
|
17
|
-
"nativeBridgeVersion": "0.1.
|
|
17
|
+
"nativeBridgeVersion": "0.1.4",
|
|
18
18
|
"anpRustVersion": "0.9.3",
|
|
19
19
|
"anpCommit": "d3cc6a9571cec9b7d53dfbc5ef5612e56d1d5ea9"
|
|
20
20
|
},
|
package/sbom.cdx.json
CHANGED
|
@@ -6,43 +6,43 @@
|
|
|
6
6
|
"component": {
|
|
7
7
|
"type": "library",
|
|
8
8
|
"name": "@awiki/im-core-node",
|
|
9
|
-
"version": "0.1.
|
|
9
|
+
"version": "0.1.4"
|
|
10
10
|
}
|
|
11
11
|
},
|
|
12
12
|
"components": [
|
|
13
13
|
{
|
|
14
14
|
"type": "library",
|
|
15
15
|
"name": "@awiki/im-core-node-darwin-arm64",
|
|
16
|
-
"version": "0.1.
|
|
17
|
-
"purl": "pkg:npm/%40awiki%2Fim-core-node-darwin-arm64@0.1.
|
|
16
|
+
"version": "0.1.4",
|
|
17
|
+
"purl": "pkg:npm/%40awiki%2Fim-core-node-darwin-arm64@0.1.4",
|
|
18
18
|
"scope": "optional"
|
|
19
19
|
},
|
|
20
20
|
{
|
|
21
21
|
"type": "library",
|
|
22
22
|
"name": "@awiki/im-core-node-darwin-x64",
|
|
23
|
-
"version": "0.1.
|
|
24
|
-
"purl": "pkg:npm/%40awiki%2Fim-core-node-darwin-x64@0.1.
|
|
23
|
+
"version": "0.1.4",
|
|
24
|
+
"purl": "pkg:npm/%40awiki%2Fim-core-node-darwin-x64@0.1.4",
|
|
25
25
|
"scope": "optional"
|
|
26
26
|
},
|
|
27
27
|
{
|
|
28
28
|
"type": "library",
|
|
29
29
|
"name": "@awiki/im-core-node-linux-arm64-gnu",
|
|
30
|
-
"version": "0.1.
|
|
31
|
-
"purl": "pkg:npm/%40awiki%2Fim-core-node-linux-arm64-gnu@0.1.
|
|
30
|
+
"version": "0.1.4",
|
|
31
|
+
"purl": "pkg:npm/%40awiki%2Fim-core-node-linux-arm64-gnu@0.1.4",
|
|
32
32
|
"scope": "optional"
|
|
33
33
|
},
|
|
34
34
|
{
|
|
35
35
|
"type": "library",
|
|
36
36
|
"name": "@awiki/im-core-node-linux-x64-gnu",
|
|
37
|
-
"version": "0.1.
|
|
38
|
-
"purl": "pkg:npm/%40awiki%2Fim-core-node-linux-x64-gnu@0.1.
|
|
37
|
+
"version": "0.1.4",
|
|
38
|
+
"purl": "pkg:npm/%40awiki%2Fim-core-node-linux-x64-gnu@0.1.4",
|
|
39
39
|
"scope": "optional"
|
|
40
40
|
},
|
|
41
41
|
{
|
|
42
42
|
"type": "library",
|
|
43
43
|
"name": "@awiki/im-core-node-win32-x64-msvc",
|
|
44
|
-
"version": "0.1.
|
|
45
|
-
"purl": "pkg:npm/%40awiki%2Fim-core-node-win32-x64-msvc@0.1.
|
|
44
|
+
"version": "0.1.4",
|
|
45
|
+
"purl": "pkg:npm/%40awiki%2Fim-core-node-win32-x64-msvc@0.1.4",
|
|
46
46
|
"scope": "optional"
|
|
47
47
|
},
|
|
48
48
|
{
|
|
@@ -260,7 +260,7 @@
|
|
|
260
260
|
{
|
|
261
261
|
"type": "library",
|
|
262
262
|
"name": "awiki-im-core-node",
|
|
263
|
-
"version": "0.1.
|
|
263
|
+
"version": "0.1.4",
|
|
264
264
|
"licenses": [
|
|
265
265
|
{
|
|
266
266
|
"expression": "AGPL-3.0-only"
|