openclaw-quiubo 1.5.0 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +3 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/src/api.d.ts +47 -1
- package/dist/src/api.d.ts.map +1 -1
- package/dist/src/api.js +29 -1
- package/dist/src/api.js.map +1 -1
- package/dist/src/channel.d.ts.map +1 -1
- package/dist/src/channel.js +82 -3
- package/dist/src/channel.js.map +1 -1
- package/dist/src/crypto.d.ts +52 -0
- package/dist/src/crypto.d.ts.map +1 -0
- package/dist/src/crypto.js +153 -0
- package/dist/src/crypto.js.map +1 -0
- package/dist/src/key-manager.d.ts +46 -0
- package/dist/src/key-manager.d.ts.map +1 -0
- package/dist/src/key-manager.js +118 -0
- package/dist/src/key-manager.js.map +1 -0
- package/dist/src/realtime-gateway.d.ts +7 -0
- package/dist/src/realtime-gateway.d.ts.map +1 -1
- package/dist/src/realtime-gateway.js +81 -5
- package/dist/src/realtime-gateway.js.map +1 -1
- package/dist/src/types.d.ts +4 -0
- package/dist/src/types.d.ts.map +1 -1
- package/package.json +7 -1
package/dist/index.d.ts
CHANGED
|
@@ -6,8 +6,9 @@
|
|
|
6
6
|
*/
|
|
7
7
|
export { QuiuboApiClient } from './src/api.js';
|
|
8
8
|
export { quiuboPlugin } from './src/channel.js';
|
|
9
|
-
export { RealtimeGateway } from './src/realtime-gateway.js';
|
|
10
|
-
export { PollingGateway } from './src/polling-gateway.js';
|
|
9
|
+
export { RealtimeGateway, type GatewayLogger, type RealtimeGatewayOptions, type InboundMessage, type InboundRequest, type BotConfig } from './src/realtime-gateway.js';
|
|
10
|
+
export { PollingGateway, type PollingGatewayOptions } from './src/polling-gateway.js';
|
|
11
|
+
export { startWebhookServer, type WebhookHandlerOptions } from './src/webhook-handler.js';
|
|
11
12
|
export type { QuiuboAccountConfig, QuiuboGroup, QuiuboMessage, QuiuboIdentity, QuiuboJoinToken, QuiuboAuthResponse, WebhookPayload, WebhookMessageData, WebhookJoinTokenRedeemedData, } from './src/types.js';
|
|
12
13
|
interface OpenClawPluginApi {
|
|
13
14
|
runtime: unknown;
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,KAAK,aAAa,EAAE,KAAK,sBAAsB,EAAE,KAAK,cAAc,EAAE,KAAK,cAAc,EAAE,KAAK,SAAS,EAAE,MAAM,2BAA2B,CAAC;AACvK,OAAO,EAAE,cAAc,EAAE,KAAK,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AACtF,OAAO,EAAE,kBAAkB,EAAE,KAAK,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAC1F,YAAY,EACV,mBAAmB,EACnB,WAAW,EACX,aAAa,EACb,cAAc,EACd,eAAe,EACf,kBAAkB,EAClB,cAAc,EACd,kBAAkB,EAClB,4BAA4B,GAC7B,MAAM,gBAAgB,CAAC;AAGxB,UAAU,iBAAiB;IACzB,OAAO,EAAE,OAAO,CAAC;IAEjB,eAAe,EAAE,CAAC,IAAI,EAAE;QAAE,MAAM,EAAE,GAAG,CAAA;KAAE,KAAK,IAAI,CAAC;CAClD;AAED,QAAA,MAAM,MAAM;;;;kBAII,iBAAiB;CAIhC,CAAC;AAEF,eAAe,MAAM,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -11,6 +11,7 @@ export { QuiuboApiClient } from './src/api.js';
|
|
|
11
11
|
export { quiuboPlugin } from './src/channel.js';
|
|
12
12
|
export { RealtimeGateway } from './src/realtime-gateway.js';
|
|
13
13
|
export { PollingGateway } from './src/polling-gateway.js';
|
|
14
|
+
export { startWebhookServer } from './src/webhook-handler.js';
|
|
14
15
|
const plugin = {
|
|
15
16
|
id: 'openclaw-quiubo',
|
|
16
17
|
name: 'Quiubo',
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAEhD,0BAA0B;AAC1B,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,eAAe,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAEhD,0BAA0B;AAC1B,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,eAAe,EAA6G,MAAM,2BAA2B,CAAC;AACvK,OAAO,EAAE,cAAc,EAA8B,MAAM,0BAA0B,CAAC;AACtF,OAAO,EAAE,kBAAkB,EAA8B,MAAM,0BAA0B,CAAC;AAoB1F,MAAM,MAAM,GAAG;IACb,EAAE,EAAE,iBAAiB;IACrB,IAAI,EAAE,QAAQ;IACd,WAAW,EAAE,wCAAwC;IACrD,QAAQ,CAAC,GAAsB;QAC7B,gBAAgB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAC9B,GAAG,CAAC,eAAe,CAAC,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC;IAChD,CAAC;CACF,CAAC;AAEF,eAAe,MAAM,CAAC"}
|
package/dist/src/api.d.ts
CHANGED
|
@@ -19,7 +19,8 @@ export declare class QuiuboApiClient {
|
|
|
19
19
|
*/
|
|
20
20
|
sendMessage(groupId: string, opts: {
|
|
21
21
|
senderIdentityId: string;
|
|
22
|
-
plaintext
|
|
22
|
+
plaintext?: string;
|
|
23
|
+
ciphertext?: string;
|
|
23
24
|
clientMessageId?: string;
|
|
24
25
|
metadata?: Record<string, unknown>;
|
|
25
26
|
attachments?: Array<{
|
|
@@ -173,6 +174,7 @@ export declare class QuiuboApiClient {
|
|
|
173
174
|
status: string;
|
|
174
175
|
connectionStatus: string;
|
|
175
176
|
scopes: string[];
|
|
177
|
+
e2eeConfigured?: boolean;
|
|
176
178
|
}>;
|
|
177
179
|
}>;
|
|
178
180
|
/**
|
|
@@ -187,6 +189,50 @@ export declare class QuiuboApiClient {
|
|
|
187
189
|
* Send a heartbeat for an agent (updates connection_status to 'online')
|
|
188
190
|
*/
|
|
189
191
|
sendHeartbeat(agentId: string): Promise<void>;
|
|
192
|
+
/**
|
|
193
|
+
* Request a key enrollment challenge for an agent
|
|
194
|
+
*/
|
|
195
|
+
requestKeyChallenge(agentId: string, body: {
|
|
196
|
+
signingPublicKey: string;
|
|
197
|
+
encryptionPublicKey: string;
|
|
198
|
+
keyBundleVersion: number;
|
|
199
|
+
}): Promise<{
|
|
200
|
+
challengeId: string;
|
|
201
|
+
challenge: string;
|
|
202
|
+
expiresAt: string;
|
|
203
|
+
}>;
|
|
204
|
+
/**
|
|
205
|
+
* Verify key enrollment signature
|
|
206
|
+
*/
|
|
207
|
+
verifyKeyChallenge(agentId: string, body: {
|
|
208
|
+
challengeId: string;
|
|
209
|
+
signature: string;
|
|
210
|
+
}): Promise<{
|
|
211
|
+
enrolled: boolean;
|
|
212
|
+
keyFingerprint: string;
|
|
213
|
+
keyBundleVersion: number;
|
|
214
|
+
}>;
|
|
215
|
+
/**
|
|
216
|
+
* Get active epoch key for an agent (SDK auth)
|
|
217
|
+
*/
|
|
218
|
+
getEpochKey(agentId: string, groupId: string): Promise<{
|
|
219
|
+
epochId: string;
|
|
220
|
+
epoch: number;
|
|
221
|
+
encryptedEpochKey: string;
|
|
222
|
+
keyVersion: number;
|
|
223
|
+
}>;
|
|
224
|
+
/**
|
|
225
|
+
* Get epoch keys for message history (SDK auth)
|
|
226
|
+
*/
|
|
227
|
+
getEpochKeys(agentId: string, groupId: string, epochs?: number[]): Promise<{
|
|
228
|
+
keys: Array<{
|
|
229
|
+
epochId: string;
|
|
230
|
+
epoch: number;
|
|
231
|
+
encryptedEpochKey: string;
|
|
232
|
+
keyVersion: number;
|
|
233
|
+
status: string;
|
|
234
|
+
}>;
|
|
235
|
+
}>;
|
|
190
236
|
/**
|
|
191
237
|
* Authenticate a Pusher channel subscription for an SDK-owned identity.
|
|
192
238
|
*/
|
package/dist/src/api.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/api.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EACV,WAAW,EAAE,aAAa,EAAE,kBAAkB,EAC9C,cAAc,EAAE,eAAe,EAChC,MAAM,YAAY,CAAC;AAEpB,qBAAa,eAAe;IAC1B,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,MAAM,CAAS;gBAEX,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;YAM7B,OAAO;IA6BrB;;OAEG;IACG,YAAY,IAAI,OAAO,CAAC,kBAAkB,CAAC;IAIjD;;OAEG;IACG,WAAW,CACf,OAAO,EAAE,MAAM,EACf,IAAI,EAAE;QACJ,gBAAgB,EAAE,MAAM,CAAC;QACzB,SAAS,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/api.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EACV,WAAW,EAAE,aAAa,EAAE,kBAAkB,EAC9C,cAAc,EAAE,eAAe,EAChC,MAAM,YAAY,CAAC;AAEpB,qBAAa,eAAe;IAC1B,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,MAAM,CAAS;gBAEX,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;YAM7B,OAAO;IA6BrB;;OAEG;IACG,YAAY,IAAI,OAAO,CAAC,kBAAkB,CAAC;IAIjD;;OAEG;IACG,WAAW,CACf,OAAO,EAAE,MAAM,EACf,IAAI,EAAE;QACJ,gBAAgB,EAAE,MAAM,CAAC;QACzB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACnC,WAAW,CAAC,EAAE,KAAK,CAAC;YAClB,QAAQ,EAAE,MAAM,CAAC;YACjB,QAAQ,EAAE,eAAe,CAAC;YAC1B,OAAO,EAAE,MAAM,CAAC;YAChB,KAAK,CAAC,EAAE,MAAM,CAAC;YACf,MAAM,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,UAAU,CAAC;YACvC,QAAQ,CAAC,EAAE,MAAM,CAAC;SACnB,CAAC,CAAC;KACJ,GACA,OAAO,CAAC,aAAa,CAAC;IAUzB;;OAEG;IACG,YAAY,CAChB,OAAO,EAAE,MAAM,EACf,cAAc,CAAC,EAAE,MAAM,EACvB,KAAK,SAAK,GACT,OAAO,CAAC;QAAE,QAAQ,EAAE,aAAa,EAAE,CAAC;QAAC,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC;IAQ3D;;OAEG;IACG,WAAW,CAAC,IAAI,EAAE;QACtB,eAAe,EAAE,MAAM,CAAC;QACxB,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,SAAS,CAAC,EAAE,UAAU,GAAG,eAAe,CAAC;KAC1C,GAAG,OAAO,CAAC,WAAW,CAAC;IAIxB;;OAEG;IACG,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAOvE;;OAEG;IACG,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAO1E;;OAEG;IACG,UAAU,CAAC,gBAAgB,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,MAAM,EAAE,WAAW,EAAE,CAAA;KAAE,CAAC;IAQ/E;;OAEG;IACG,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAIrD;;OAEG;IACG,gBAAgB,CAAC,IAAI,EAAE;QAC3B,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,cAAc,CAAC,EAAE,OAAO,CAAC;KAC1B,GAAG,OAAO,CAAC;QACV,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;QAC1B,cAAc,EAAE,OAAO,CAAC;QACxB,SAAS,EAAE,OAAO,CAAC;QACnB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;QAC7B,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;KAClC,CAAC;IAQF;;OAEG;IACG,cAAc,CAAC,IAAI,EAAE;QACzB,QAAQ,EAAE,MAAM,CAAC;QACjB,WAAW,EAAE,MAAM,CAAC;QACpB,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,GAAG,OAAO,CAAC,cAAc,CAAC;IAI3B;;OAEG;IACG,cAAc,IAAI,OAAO,CAAC;QAAE,UAAU,EAAE,cAAc,EAAE,CAAA;KAAE,CAAC;IAIjE;;OAEG;IACG,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC;IAQvE;;OAEG;IACG,eAAe,CAAC,IAAI,EAAE;QAC1B,aAAa,EAAE,MAAM,CAAC;QACtB,SAAS,EAAE,MAAM,CAAC;QAClB,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,mBAAmB,CAAC,EAAE,MAAM,CAAC;QAC7B,UAAU,CAAC,EAAE,OAAO,CAAC;QACrB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KACpC,GAAG,OAAO,CAAC,eAAe,CAAC;IAI5B;;OAEG;IACG,cAAc,IAAI,OAAO,CAAC;QAAE,MAAM,EAAE,eAAe,EAAE,CAAA;KAAE,CAAC;IAI9D;;OAEG;IACG,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC;IAQrE;;OAEG;IACG,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC;QAC/C,OAAO,EAAE,KAAK,CAAC;YACb,UAAU,EAAE,MAAM,CAAC;YACnB,IAAI,EAAE,MAAM,CAAC;YACb,MAAM,EAAE,MAAM,CAAC;YACf,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;YAC3B,QAAQ,EAAE,MAAM,CAAC;SAClB,CAAC,CAAC;KACJ,CAAC;IAQF;;OAEG;IACG,mBAAmB,CACvB,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE;QAAE,GAAG,CAAC,EAAE;YAAE,OAAO,CAAC,EAAE,OAAO,CAAC;YAAC,kBAAkB,CAAC,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE,GACrE,OAAO,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,CAAC;IAQjD;;OAEG;IACG,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQ7E;;OAEG;IACG,oBAAoB,CACxB,OAAO,EAAE,MAAM,EACf,IAAI,EAAE;QACJ,SAAS,EAAE,MAAM,CAAC;QAClB,oBAAoB,EAAE,MAAM,CAAC;QAC7B,MAAM,EAAE,IAAI,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,EAAE,OAAO,CAAC;KAChB,GACA,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC;IAQhC;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC;QAAE,MAAM,EAAE,KAAK,CAAC;YAAE,EAAE,EAAE,MAAM,CAAC;YAAC,UAAU,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,CAAC;YAAC,gBAAgB,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,EAAE,CAAC;YAAC,cAAc,CAAC,EAAE,OAAO,CAAA;SAAE,CAAC,CAAA;KAAE,CAAC;IAItL;;OAEG;IACG,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE;QACvC,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KACxC,GAAG,OAAO,CAAC,IAAI,CAAC;IAIjB;;OAEG;IACG,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQnD;;OAEG;IACG,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE;QAC/C,gBAAgB,EAAE,MAAM,CAAC;QACzB,mBAAmB,EAAE,MAAM,CAAC;QAC5B,gBAAgB,EAAE,MAAM,CAAC;KAC1B,GAAG,OAAO,CAAC;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;IAI1E;;OAEG;IACG,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE;QAC9C,WAAW,EAAE,MAAM,CAAC;QACpB,SAAS,EAAE,MAAM,CAAC;KACnB,GAAG,OAAO,CAAC;QAAE,QAAQ,EAAE,OAAO,CAAC;QAAC,cAAc,EAAE,MAAM,CAAC;QAAC,gBAAgB,EAAE,MAAM,CAAA;KAAE,CAAC;IAIpF;;OAEG;IACG,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC;QAC3D,OAAO,EAAE,MAAM,CAAC;QAChB,KAAK,EAAE,MAAM,CAAC;QACd,iBAAiB,EAAE,MAAM,CAAC;QAC1B,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC;IAIF;;OAEG;IACG,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;QAC/E,IAAI,EAAE,KAAK,CAAC;YACV,OAAO,EAAE,MAAM,CAAC;YAChB,KAAK,EAAE,MAAM,CAAC;YACd,iBAAiB,EAAE,MAAM,CAAC;YAC1B,UAAU,EAAE,MAAM,CAAC;YACnB,MAAM,EAAE,MAAM,CAAC;SAChB,CAAC,CAAC;KACJ,CAAC;IASF;;OAEG;IACG,UAAU,CACd,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;CAO7B"}
|
package/dist/src/api.js
CHANGED
|
@@ -45,7 +45,7 @@ export class QuiuboApiClient {
|
|
|
45
45
|
async sendMessage(groupId, opts) {
|
|
46
46
|
return this.request('POST', `/groups/${groupId}/messages`, {
|
|
47
47
|
senderIdentityId: opts.senderIdentityId,
|
|
48
|
-
plaintext: opts.plaintext,
|
|
48
|
+
...(opts.ciphertext ? { ciphertext: opts.ciphertext } : { plaintext: opts.plaintext ?? '' }),
|
|
49
49
|
clientMessageId: opts.clientMessageId ?? randomUUID(),
|
|
50
50
|
...(opts.metadata ? { metadata: opts.metadata } : {}),
|
|
51
51
|
...(opts.attachments?.length ? { attachments: opts.attachments } : {}),
|
|
@@ -207,6 +207,34 @@ export class QuiuboApiClient {
|
|
|
207
207
|
await this.request('POST', `/agents/${agentId}/heartbeat`);
|
|
208
208
|
}
|
|
209
209
|
// ========================================================================
|
|
210
|
+
// Agent E2EE Key Enrollment
|
|
211
|
+
// ========================================================================
|
|
212
|
+
/**
|
|
213
|
+
* Request a key enrollment challenge for an agent
|
|
214
|
+
*/
|
|
215
|
+
async requestKeyChallenge(agentId, body) {
|
|
216
|
+
return this.request('POST', `/agents/${agentId}/keys/challenge`, body);
|
|
217
|
+
}
|
|
218
|
+
/**
|
|
219
|
+
* Verify key enrollment signature
|
|
220
|
+
*/
|
|
221
|
+
async verifyKeyChallenge(agentId, body) {
|
|
222
|
+
return this.request('POST', `/agents/${agentId}/keys/verify`, body);
|
|
223
|
+
}
|
|
224
|
+
/**
|
|
225
|
+
* Get active epoch key for an agent (SDK auth)
|
|
226
|
+
*/
|
|
227
|
+
async getEpochKey(agentId, groupId) {
|
|
228
|
+
return this.request('GET', `/agents/${agentId}/groups/${groupId}/encryption/key`);
|
|
229
|
+
}
|
|
230
|
+
/**
|
|
231
|
+
* Get epoch keys for message history (SDK auth)
|
|
232
|
+
*/
|
|
233
|
+
async getEpochKeys(agentId, groupId, epochs) {
|
|
234
|
+
const query = epochs?.length ? `?epochs=${epochs.join(',')}` : '';
|
|
235
|
+
return this.request('GET', `/agents/${agentId}/groups/${groupId}/encryption/epochs${query}`);
|
|
236
|
+
}
|
|
237
|
+
// ========================================================================
|
|
210
238
|
// Pusher Auth
|
|
211
239
|
// ========================================================================
|
|
212
240
|
/**
|
package/dist/src/api.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/api.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAMpC,MAAM,OAAO,eAAe;IAClB,OAAO,CAAS;IAChB,MAAM,CAAS;IAEvB,YAAY,OAAe,EAAE,MAAc;QACzC,wBAAwB;QACxB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QAC1C,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAEO,KAAK,CAAC,OAAO,CACnB,MAAc,EACd,IAAY,EACZ,IAAc;QAEd,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,OAAO,UAAU,IAAI,EAAE,CAAC;QAC5C,MAAM,OAAO,GAA2B;YACtC,eAAe,EAAE,IAAI,CAAC,MAAM;YAC5B,cAAc,EAAE,kBAAkB;SACnC,CAAC;QAEF,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;YAChC,MAAM;YACN,OAAO;YACP,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS;SAC9C,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;YACxC,MAAM,IAAI,KAAK,CAAC,qBAAqB,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,UAAU,MAAM,SAAS,EAAE,CAAC,CAAC;QAChG,CAAC;QAED,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YAC5B,OAAO,SAAc,CAAC;QACxB,CAAC;QAED,OAAO,QAAQ,CAAC,IAAI,EAAgB,CAAC;IACvC,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,YAAY;QAChB,OAAO,IAAI,CAAC,OAAO,CAAqB,MAAM,EAAE,OAAO,CAAC,CAAC;IAC3D,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,WAAW,CACf,OAAe,EACf,
|
|
1
|
+
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/api.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"channel.d.ts","sourceRoot":"","sources":["../../src/channel.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;
|
|
1
|
+
{"version":3,"file":"channel.d.ts","sourceRoot":"","sources":["../../src/channel.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAsGH,eAAO,MAAM,YAAY,EAAE,GA+tB1B,CAAC"}
|
package/dist/src/channel.js
CHANGED
|
@@ -12,7 +12,24 @@ import { readFile } from 'fs/promises';
|
|
|
12
12
|
import { basename } from 'path';
|
|
13
13
|
import { QuiuboApiClient } from './api.js';
|
|
14
14
|
import { RealtimeGateway } from './realtime-gateway.js';
|
|
15
|
+
import { AgentKeyManager } from './key-manager.js';
|
|
16
|
+
import { generateAgentKeypair, deriveKeypairFromSeed, signChallenge, toBase64, encryptGroupMessage } from './crypto.js';
|
|
15
17
|
import { getQuiuboRuntime } from './runtime.js';
|
|
18
|
+
/**
|
|
19
|
+
* Load existing seed from config or generate a new keypair.
|
|
20
|
+
* Only the 32-byte seed is persisted; both keypairs are derived deterministically.
|
|
21
|
+
*/
|
|
22
|
+
function loadOrGenerateKeys(cfg) {
|
|
23
|
+
if (cfg.keys?.seed) {
|
|
24
|
+
const seed = new Uint8Array(Buffer.from(cfg.keys.seed, 'base64'));
|
|
25
|
+
return deriveKeypairFromSeed(seed);
|
|
26
|
+
}
|
|
27
|
+
const keys = generateAgentKeypair();
|
|
28
|
+
// Persist seed back to config for next restart
|
|
29
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
30
|
+
cfg.keys = { seed: Buffer.from(keys.seed).toString('base64') };
|
|
31
|
+
return keys;
|
|
32
|
+
}
|
|
16
33
|
/**
|
|
17
34
|
* Read .md files from mediaUrl/mediaUrls paths and return as attachment objects.
|
|
18
35
|
* Non-.md files and unreadable files are silently skipped.
|
|
@@ -563,15 +580,36 @@ export const quiuboPlugin = {
|
|
|
563
580
|
} : undefined;
|
|
564
581
|
// Resolve agent ID for heartbeat (if a registered agent matches this bot identity)
|
|
565
582
|
let resolvedAgentId;
|
|
583
|
+
let agentKeys;
|
|
566
584
|
try {
|
|
567
585
|
const { agents } = await client.listAgents();
|
|
568
586
|
const match = agents.find((a) => a.identityId === botIdentityId && a.status === 'active');
|
|
569
587
|
if (match) {
|
|
570
588
|
resolvedAgentId = match.id;
|
|
571
589
|
log?.info?.(`[${accountId}] Quiubo: resolved agent ${match.name} (${match.id}) for heartbeat`);
|
|
590
|
+
// E2EE key enrollment
|
|
591
|
+
try {
|
|
592
|
+
const keys = loadOrGenerateKeys(quiuboConfig);
|
|
593
|
+
if (!match.e2eeConfigured) {
|
|
594
|
+
log?.info?.(`[${accountId}] Quiubo: enrolling E2EE keys for agent ${match.id}`);
|
|
595
|
+
const { challengeId, challenge } = await client.requestKeyChallenge(match.id, {
|
|
596
|
+
signingPublicKey: toBase64(keys.signingPublicKey),
|
|
597
|
+
encryptionPublicKey: toBase64(keys.encryptionPublicKey),
|
|
598
|
+
keyBundleVersion: 1,
|
|
599
|
+
});
|
|
600
|
+
const signature = signChallenge(challenge, keys.signingPrivateKey);
|
|
601
|
+
await client.verifyKeyChallenge(match.id, { challengeId, signature });
|
|
602
|
+
log?.info?.(`[${accountId}] Quiubo: E2EE keys enrolled for agent ${match.id}`);
|
|
603
|
+
}
|
|
604
|
+
// Store keys for later use
|
|
605
|
+
agentKeys = keys;
|
|
606
|
+
}
|
|
607
|
+
catch (keyErr) {
|
|
608
|
+
log?.warn?.(`[${accountId}] Quiubo: E2EE enrollment failed (non-fatal): ${keyErr}`);
|
|
609
|
+
}
|
|
572
610
|
// Report capabilities telemetry
|
|
573
611
|
try {
|
|
574
|
-
await client.updateAgent(match.id, { capabilities: { e2eeSupported:
|
|
612
|
+
await client.updateAgent(match.id, { capabilities: { e2eeSupported: !!agentKeys } });
|
|
575
613
|
log?.info?.(`[${accountId}] Quiubo: reported capabilities for agent ${match.id}`);
|
|
576
614
|
}
|
|
577
615
|
catch (capErr) {
|
|
@@ -582,6 +620,13 @@ export const quiuboPlugin = {
|
|
|
582
620
|
catch {
|
|
583
621
|
log?.warn?.(`[${accountId}] Quiubo: agent lookup failed (heartbeat disabled)`);
|
|
584
622
|
}
|
|
623
|
+
// Initialize E2EE if agent keys are available
|
|
624
|
+
const e2eeGrantedGroups = new Set();
|
|
625
|
+
let keyManager;
|
|
626
|
+
if (agentKeys && resolvedAgentId) {
|
|
627
|
+
keyManager = new AgentKeyManager(client, agentKeys.encryptionPrivateKey, resolvedAgentId);
|
|
628
|
+
log?.info?.(`[${accountId}] Quiubo: E2EE key manager initialized`);
|
|
629
|
+
}
|
|
585
630
|
const gateway = new RealtimeGateway({
|
|
586
631
|
client,
|
|
587
632
|
botIdentityId,
|
|
@@ -589,6 +634,8 @@ export const quiuboPlugin = {
|
|
|
589
634
|
pollIntervalMs: pollIntervalMs ?? 5000,
|
|
590
635
|
log: gatewayLog,
|
|
591
636
|
agentId: resolvedAgentId,
|
|
637
|
+
keyManager,
|
|
638
|
+
e2eeGrantedGroups,
|
|
592
639
|
onCacheMiss: async (groupId) => {
|
|
593
640
|
try {
|
|
594
641
|
const [group, { members }] = await Promise.all([
|
|
@@ -619,6 +666,8 @@ export const quiuboPlugin = {
|
|
|
619
666
|
client,
|
|
620
667
|
msg,
|
|
621
668
|
log,
|
|
669
|
+
keyManager,
|
|
670
|
+
e2eeGrantedGroups,
|
|
622
671
|
});
|
|
623
672
|
}
|
|
624
673
|
catch (error) {
|
|
@@ -679,6 +728,23 @@ export const quiuboPlugin = {
|
|
|
679
728
|
});
|
|
680
729
|
}
|
|
681
730
|
log?.info?.(`[${accountId}] Quiubo: hydrated bot config for ${allGroups.length} group(s)`);
|
|
731
|
+
// Hydrate E2EE grants by probing epoch key access for each group
|
|
732
|
+
if (keyManager && resolvedAgentId) {
|
|
733
|
+
for (const group of allGroups) {
|
|
734
|
+
try {
|
|
735
|
+
const cached = await keyManager.getActiveEpochKey(group.id);
|
|
736
|
+
if (cached) {
|
|
737
|
+
e2eeGrantedGroups.add(group.id);
|
|
738
|
+
}
|
|
739
|
+
}
|
|
740
|
+
catch {
|
|
741
|
+
// No grant for this group — expected for most groups
|
|
742
|
+
}
|
|
743
|
+
}
|
|
744
|
+
if (e2eeGrantedGroups.size > 0) {
|
|
745
|
+
log?.info?.(`[${accountId}] Quiubo: E2EE grants hydrated for ${e2eeGrantedGroups.size} group(s)`);
|
|
746
|
+
}
|
|
747
|
+
}
|
|
682
748
|
}
|
|
683
749
|
catch (err) {
|
|
684
750
|
log?.warn?.(`[${accountId}] Quiubo: failed to hydrate bot config (non-fatal): ${err}`);
|
|
@@ -779,7 +845,7 @@ async function createBotIdentity(client, prompter) {
|
|
|
779
845
|
* — same pattern as openclaw-mqtt.
|
|
780
846
|
*/
|
|
781
847
|
async function routeInboundMessage(opts) {
|
|
782
|
-
const { runtime, cfg, accountId, botIdentityId, client, msg, log } = opts;
|
|
848
|
+
const { runtime, cfg, accountId, botIdentityId, client, msg, log, keyManager, e2eeGrantedGroups } = opts;
|
|
783
849
|
const senderId = msg.senderIdentityId;
|
|
784
850
|
const groupId = msg.groupId;
|
|
785
851
|
let text = msg.plaintext ?? '';
|
|
@@ -867,9 +933,22 @@ async function routeInboundMessage(opts) {
|
|
|
867
933
|
}
|
|
868
934
|
log?.info?.(`[${accountId}] Quiubo: delivering ${info.kind} reply [${(payload.text?.length ?? 0)} chars, ${mdAttachments.length} attachments]`);
|
|
869
935
|
try {
|
|
936
|
+
// Encrypt outbound if E2EE is granted for this group
|
|
937
|
+
let ciphertextOut;
|
|
938
|
+
if (e2eeGrantedGroups?.has(groupId) && keyManager && payload.text) {
|
|
939
|
+
const cached = await keyManager.getActiveEpochKey(groupId);
|
|
940
|
+
if (cached) {
|
|
941
|
+
ciphertextOut = encryptGroupMessage(payload.text, cached.key, groupId, cached.epoch, botIdentityId);
|
|
942
|
+
}
|
|
943
|
+
else {
|
|
944
|
+
log?.warn?.(`[${accountId}] Quiubo: no epoch key for E2EE group ${groupId}, sending plaintext`);
|
|
945
|
+
}
|
|
946
|
+
}
|
|
870
947
|
const apiResp = await client.sendMessage(groupId, {
|
|
871
948
|
senderIdentityId: botIdentityId,
|
|
872
|
-
|
|
949
|
+
...(ciphertextOut
|
|
950
|
+
? { ciphertext: ciphertextOut }
|
|
951
|
+
: { plaintext: payload.text || '' }),
|
|
873
952
|
metadata: { format: 'markdown' },
|
|
874
953
|
...(mdAttachments.length > 0 ? { attachments: mdAttachments } : {}),
|
|
875
954
|
});
|
package/dist/src/channel.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"channel.js","sourceRoot":"","sources":["../../src/channel.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"channel.js","sourceRoot":"","sources":["../../src/channel.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Agent E2EE Crypto Module
|
|
3
|
+
*
|
|
4
|
+
* Provides key generation, envelope decryption/encryption, and Ed25519 signing
|
|
5
|
+
* for agent E2EE participation. Uses @noble/curves, @noble/ciphers, @noble/hashes.
|
|
6
|
+
*
|
|
7
|
+
* Key derivation from a 32-byte seed:
|
|
8
|
+
* - Ed25519: seed used directly as Ed25519 seed
|
|
9
|
+
* - X25519: SHA-256(seed) used as X25519 private key
|
|
10
|
+
*/
|
|
11
|
+
export interface AgentKeypair {
|
|
12
|
+
seed: Uint8Array;
|
|
13
|
+
signingPrivateKey: Uint8Array;
|
|
14
|
+
signingPublicKey: Uint8Array;
|
|
15
|
+
encryptionPrivateKey: Uint8Array;
|
|
16
|
+
encryptionPublicKey: Uint8Array;
|
|
17
|
+
fingerprint: string;
|
|
18
|
+
}
|
|
19
|
+
declare function toBase64(bytes: Uint8Array): string;
|
|
20
|
+
declare function fromBase64(b64: string): Uint8Array;
|
|
21
|
+
/**
|
|
22
|
+
* Generate a fresh agent keypair from a random 32-byte seed.
|
|
23
|
+
*/
|
|
24
|
+
export declare function generateAgentKeypair(): AgentKeypair;
|
|
25
|
+
/**
|
|
26
|
+
* Derive both Ed25519 and X25519 keypairs from a 32-byte seed.
|
|
27
|
+
*/
|
|
28
|
+
export declare function deriveKeypairFromSeed(seed: Uint8Array): AgentKeypair;
|
|
29
|
+
/**
|
|
30
|
+
* Decrypt an EnvelopeV1 (used for epoch key distribution).
|
|
31
|
+
* Returns the raw decrypted bytes (32-byte epoch key).
|
|
32
|
+
*/
|
|
33
|
+
export declare function decryptEnvelopeV1(envelopeJson: string, ourX25519Private: Uint8Array): Uint8Array;
|
|
34
|
+
/**
|
|
35
|
+
* Parse a group envelope to extract the epoch number (without decrypting).
|
|
36
|
+
*/
|
|
37
|
+
export declare function parseGroupEnvelopeEpoch(envelopeJson: string): number | null;
|
|
38
|
+
/**
|
|
39
|
+
* Decrypt a GroupEnvelopeV2 message.
|
|
40
|
+
*/
|
|
41
|
+
export declare function decryptGroupMessage(envelopeJson: string, epochKey: Uint8Array): string;
|
|
42
|
+
/**
|
|
43
|
+
* Encrypt a plaintext message into GroupEnvelopeV2 format.
|
|
44
|
+
*/
|
|
45
|
+
export declare function encryptGroupMessage(plaintext: string, epochKey: Uint8Array, groupId: string, epoch: number, senderId: string): string;
|
|
46
|
+
/**
|
|
47
|
+
* Sign a base64-encoded challenge with the Ed25519 private key.
|
|
48
|
+
* Returns the signature as base64.
|
|
49
|
+
*/
|
|
50
|
+
export declare function signChallenge(challengeBase64: string, signingPrivateKey: Uint8Array): string;
|
|
51
|
+
export { toBase64, fromBase64 };
|
|
52
|
+
//# sourceMappingURL=crypto.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"crypto.d.ts","sourceRoot":"","sources":["../../src/crypto.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AASH,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,UAAU,CAAC;IACjB,iBAAiB,EAAE,UAAU,CAAC;IAC9B,gBAAgB,EAAE,UAAU,CAAC;IAC7B,oBAAoB,EAAE,UAAU,CAAC;IACjC,mBAAmB,EAAE,UAAU,CAAC;IAChC,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,iBAAS,QAAQ,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,CAE3C;AAED,iBAAS,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,CAE3C;AAMD;;GAEG;AACH,wBAAgB,oBAAoB,IAAI,YAAY,CAGnD;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,UAAU,GAAG,YAAY,CAsBpE;AAkBD;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,YAAY,EAAE,MAAM,EAAE,gBAAgB,EAAE,UAAU,GAAG,UAAU,CAkBhG;AAoBD;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAQ3E;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,GAAG,MAAM,CAetF;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,UAAU,EACpB,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,GACf,MAAM,CAqBR;AAID;;;GAGG;AACH,wBAAgB,aAAa,CAAC,eAAe,EAAE,MAAM,EAAE,iBAAiB,EAAE,UAAU,GAAG,MAAM,CAI5F;AAGD,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC"}
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Agent E2EE Crypto Module
|
|
3
|
+
*
|
|
4
|
+
* Provides key generation, envelope decryption/encryption, and Ed25519 signing
|
|
5
|
+
* for agent E2EE participation. Uses @noble/curves, @noble/ciphers, @noble/hashes.
|
|
6
|
+
*
|
|
7
|
+
* Key derivation from a 32-byte seed:
|
|
8
|
+
* - Ed25519: seed used directly as Ed25519 seed
|
|
9
|
+
* - X25519: SHA-256(seed) used as X25519 private key
|
|
10
|
+
*/
|
|
11
|
+
import { ed25519, x25519 } from '@noble/curves/ed25519';
|
|
12
|
+
import { xchacha20poly1305 } from '@noble/ciphers/chacha';
|
|
13
|
+
import { randomBytes } from 'node:crypto';
|
|
14
|
+
import { sha256 } from '@noble/hashes/sha256';
|
|
15
|
+
import { hkdf } from '@noble/hashes/hkdf';
|
|
16
|
+
import { sha256 as sha256Hash } from '@noble/hashes/sha2';
|
|
17
|
+
function toBase64(bytes) {
|
|
18
|
+
return Buffer.from(bytes).toString('base64');
|
|
19
|
+
}
|
|
20
|
+
function fromBase64(b64) {
|
|
21
|
+
return new Uint8Array(Buffer.from(b64, 'base64'));
|
|
22
|
+
}
|
|
23
|
+
function toHex(bytes) {
|
|
24
|
+
return Buffer.from(bytes).toString('hex');
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Generate a fresh agent keypair from a random 32-byte seed.
|
|
28
|
+
*/
|
|
29
|
+
export function generateAgentKeypair() {
|
|
30
|
+
const seed = randomBytes(32);
|
|
31
|
+
return deriveKeypairFromSeed(seed);
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Derive both Ed25519 and X25519 keypairs from a 32-byte seed.
|
|
35
|
+
*/
|
|
36
|
+
export function deriveKeypairFromSeed(seed) {
|
|
37
|
+
// Ed25519: seed used directly
|
|
38
|
+
const signingPublicKey = ed25519.getPublicKey(seed);
|
|
39
|
+
// X25519: SHA-256(seed) as private key
|
|
40
|
+
const encryptionPrivateKey = sha256(seed);
|
|
41
|
+
const encryptionPublicKey = x25519.getPublicKey(encryptionPrivateKey);
|
|
42
|
+
// Fingerprint: hex(SHA-256(signingPub || encryptionPub))
|
|
43
|
+
const concat = new Uint8Array(signingPublicKey.length + encryptionPublicKey.length);
|
|
44
|
+
concat.set(signingPublicKey, 0);
|
|
45
|
+
concat.set(encryptionPublicKey, signingPublicKey.length);
|
|
46
|
+
const fingerprint = toHex(sha256(concat));
|
|
47
|
+
return {
|
|
48
|
+
seed,
|
|
49
|
+
signingPrivateKey: seed,
|
|
50
|
+
signingPublicKey,
|
|
51
|
+
encryptionPrivateKey,
|
|
52
|
+
encryptionPublicKey,
|
|
53
|
+
fingerprint,
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
function isEnvelopeV1(obj) {
|
|
57
|
+
if (typeof obj !== 'object' || obj === null)
|
|
58
|
+
return false;
|
|
59
|
+
const e = obj;
|
|
60
|
+
return e.v === 1 && e.alg === 'x25519-xchacha20poly1305';
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Decrypt an EnvelopeV1 (used for epoch key distribution).
|
|
64
|
+
* Returns the raw decrypted bytes (32-byte epoch key).
|
|
65
|
+
*/
|
|
66
|
+
export function decryptEnvelopeV1(envelopeJson, ourX25519Private) {
|
|
67
|
+
const envelope = JSON.parse(envelopeJson);
|
|
68
|
+
if (!isEnvelopeV1(envelope)) {
|
|
69
|
+
throw new Error('Invalid EnvelopeV1 format');
|
|
70
|
+
}
|
|
71
|
+
const ephemeralPublic = fromBase64(envelope.eph);
|
|
72
|
+
const nonce = fromBase64(envelope.nonce);
|
|
73
|
+
const ciphertext = fromBase64(envelope.ct);
|
|
74
|
+
// X25519 ECDH + HKDF
|
|
75
|
+
const sharedSecret = x25519.getSharedSecret(ourX25519Private, ephemeralPublic);
|
|
76
|
+
const context = new TextEncoder().encode('quiubo-e2ee-v1');
|
|
77
|
+
const sharedKey = hkdf(sha256Hash, sharedSecret, undefined, context, 32);
|
|
78
|
+
// Decrypt with XChaCha20-Poly1305
|
|
79
|
+
const cipher = xchacha20poly1305(sharedKey, nonce);
|
|
80
|
+
return cipher.decrypt(ciphertext);
|
|
81
|
+
}
|
|
82
|
+
function isGroupEnvelopeV2(obj) {
|
|
83
|
+
if (typeof obj !== 'object' || obj === null)
|
|
84
|
+
return false;
|
|
85
|
+
const e = obj;
|
|
86
|
+
return e.v === 2 && e.alg === 'xchacha20poly1305-epoch';
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Parse a group envelope to extract the epoch number (without decrypting).
|
|
90
|
+
*/
|
|
91
|
+
export function parseGroupEnvelopeEpoch(envelopeJson) {
|
|
92
|
+
try {
|
|
93
|
+
const obj = JSON.parse(envelopeJson);
|
|
94
|
+
if (isGroupEnvelopeV2(obj))
|
|
95
|
+
return obj.epoch;
|
|
96
|
+
return null;
|
|
97
|
+
}
|
|
98
|
+
catch {
|
|
99
|
+
return null;
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Decrypt a GroupEnvelopeV2 message.
|
|
104
|
+
*/
|
|
105
|
+
export function decryptGroupMessage(envelopeJson, epochKey) {
|
|
106
|
+
if (epochKey.length !== 32) {
|
|
107
|
+
throw new Error('Epoch key must be 32 bytes');
|
|
108
|
+
}
|
|
109
|
+
const envelope = JSON.parse(envelopeJson);
|
|
110
|
+
if (!isGroupEnvelopeV2(envelope)) {
|
|
111
|
+
throw new Error('Invalid GroupEnvelopeV2 format');
|
|
112
|
+
}
|
|
113
|
+
const nonce = fromBase64(envelope.nonce);
|
|
114
|
+
const ciphertext = fromBase64(envelope.ct);
|
|
115
|
+
const cipher = xchacha20poly1305(epochKey, nonce);
|
|
116
|
+
const plaintext = cipher.decrypt(ciphertext);
|
|
117
|
+
return new TextDecoder().decode(plaintext);
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* Encrypt a plaintext message into GroupEnvelopeV2 format.
|
|
121
|
+
*/
|
|
122
|
+
export function encryptGroupMessage(plaintext, epochKey, groupId, epoch, senderId) {
|
|
123
|
+
if (epochKey.length !== 32) {
|
|
124
|
+
throw new Error('Epoch key must be 32 bytes');
|
|
125
|
+
}
|
|
126
|
+
const nonce = randomBytes(24);
|
|
127
|
+
const plaintextBytes = new TextEncoder().encode(plaintext);
|
|
128
|
+
const cipher = xchacha20poly1305(epochKey, nonce);
|
|
129
|
+
const ciphertext = cipher.encrypt(plaintextBytes);
|
|
130
|
+
const envelope = {
|
|
131
|
+
v: 2,
|
|
132
|
+
alg: 'xchacha20poly1305-epoch',
|
|
133
|
+
groupId,
|
|
134
|
+
epoch,
|
|
135
|
+
nonce: toBase64(nonce),
|
|
136
|
+
ct: toBase64(ciphertext),
|
|
137
|
+
senderId,
|
|
138
|
+
};
|
|
139
|
+
return JSON.stringify(envelope);
|
|
140
|
+
}
|
|
141
|
+
// ==================== Ed25519 Signing ====================
|
|
142
|
+
/**
|
|
143
|
+
* Sign a base64-encoded challenge with the Ed25519 private key.
|
|
144
|
+
* Returns the signature as base64.
|
|
145
|
+
*/
|
|
146
|
+
export function signChallenge(challengeBase64, signingPrivateKey) {
|
|
147
|
+
const challengeBytes = fromBase64(challengeBase64);
|
|
148
|
+
const signature = ed25519.sign(challengeBytes, signingPrivateKey);
|
|
149
|
+
return toBase64(signature);
|
|
150
|
+
}
|
|
151
|
+
// Re-export helpers
|
|
152
|
+
export { toBase64, fromBase64 };
|
|
153
|
+
//# sourceMappingURL=crypto.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"crypto.js","sourceRoot":"","sources":["../../src/crypto.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Agent Key Manager
|
|
3
|
+
*
|
|
4
|
+
* Dual-layer cache for epoch key management:
|
|
5
|
+
* - activeKeyCache: groupId → active epoch key (30-min TTL)
|
|
6
|
+
* - epochKeyCache: "groupId:epoch" → historical key (30-min TTL)
|
|
7
|
+
*
|
|
8
|
+
* Fetches keys from SDK encryption endpoints and decrypts EnvelopeV1.
|
|
9
|
+
*/
|
|
10
|
+
import { QuiuboApiClient } from './api.js';
|
|
11
|
+
export interface CachedEpochKey {
|
|
12
|
+
epochId: string;
|
|
13
|
+
epoch: number;
|
|
14
|
+
key: Uint8Array;
|
|
15
|
+
fetchedAt: number;
|
|
16
|
+
}
|
|
17
|
+
export declare class AgentKeyManager {
|
|
18
|
+
private client;
|
|
19
|
+
private encryptionPrivateKey;
|
|
20
|
+
private agentId;
|
|
21
|
+
private activeKeyCache;
|
|
22
|
+
private epochKeyCache;
|
|
23
|
+
constructor(client: QuiuboApiClient, encryptionPrivateKey: Uint8Array, agentId: string);
|
|
24
|
+
/**
|
|
25
|
+
* Get the active epoch key for outbound encryption.
|
|
26
|
+
*/
|
|
27
|
+
getActiveEpochKey(groupId: string): Promise<CachedEpochKey | null>;
|
|
28
|
+
/**
|
|
29
|
+
* Get a specific epoch key for inbound decryption (handles epoch mismatch).
|
|
30
|
+
*/
|
|
31
|
+
getEpochKey(groupId: string, epoch: number): Promise<CachedEpochKey | null>;
|
|
32
|
+
/**
|
|
33
|
+
* Evict oldest entries from epochKeyCache if it exceeds the size limit.
|
|
34
|
+
*/
|
|
35
|
+
private evictIfNeeded;
|
|
36
|
+
/**
|
|
37
|
+
* Invalidate active key cache for a group (called on epoch-rotated event).
|
|
38
|
+
* Does NOT clear epochKeyCache (old keys still valid for old messages).
|
|
39
|
+
*/
|
|
40
|
+
invalidate(groupId: string): void;
|
|
41
|
+
/**
|
|
42
|
+
* Full cache clear (called on shutdown).
|
|
43
|
+
*/
|
|
44
|
+
clear(): void;
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=key-manager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"key-manager.d.ts","sourceRoot":"","sources":["../../src/key-manager.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAM3C,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,UAAU,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,qBAAa,eAAe;IAKxB,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,oBAAoB;IAC5B,OAAO,CAAC,OAAO;IANjB,OAAO,CAAC,cAAc,CAAqC;IAC3D,OAAO,CAAC,aAAa,CAAqC;gBAGhD,MAAM,EAAE,eAAe,EACvB,oBAAoB,EAAE,UAAU,EAChC,OAAO,EAAE,MAAM;IAGzB;;OAEG;IACG,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC;IA0BxE;;OAEG;IACG,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC;IAoCjF;;OAEG;IACH,OAAO,CAAC,aAAa;IAYrB;;;OAGG;IACH,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAIjC;;OAEG;IACH,KAAK,IAAI,IAAI;CAId"}
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Agent Key Manager
|
|
3
|
+
*
|
|
4
|
+
* Dual-layer cache for epoch key management:
|
|
5
|
+
* - activeKeyCache: groupId → active epoch key (30-min TTL)
|
|
6
|
+
* - epochKeyCache: "groupId:epoch" → historical key (30-min TTL)
|
|
7
|
+
*
|
|
8
|
+
* Fetches keys from SDK encryption endpoints and decrypts EnvelopeV1.
|
|
9
|
+
*/
|
|
10
|
+
import { decryptEnvelopeV1 } from './crypto.js';
|
|
11
|
+
const TTL_MS = 30 * 60 * 1000; // 30 minutes
|
|
12
|
+
const MAX_EPOCH_CACHE_SIZE = 500;
|
|
13
|
+
export class AgentKeyManager {
|
|
14
|
+
client;
|
|
15
|
+
encryptionPrivateKey;
|
|
16
|
+
agentId;
|
|
17
|
+
activeKeyCache = new Map();
|
|
18
|
+
epochKeyCache = new Map();
|
|
19
|
+
constructor(client, encryptionPrivateKey, agentId) {
|
|
20
|
+
this.client = client;
|
|
21
|
+
this.encryptionPrivateKey = encryptionPrivateKey;
|
|
22
|
+
this.agentId = agentId;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Get the active epoch key for outbound encryption.
|
|
26
|
+
*/
|
|
27
|
+
async getActiveEpochKey(groupId) {
|
|
28
|
+
const cached = this.activeKeyCache.get(groupId);
|
|
29
|
+
if (cached && Date.now() - cached.fetchedAt < TTL_MS) {
|
|
30
|
+
return cached;
|
|
31
|
+
}
|
|
32
|
+
try {
|
|
33
|
+
const resp = await this.client.getEpochKey(this.agentId, groupId);
|
|
34
|
+
if (!resp)
|
|
35
|
+
return null;
|
|
36
|
+
const rawKey = decryptEnvelopeV1(resp.encryptedEpochKey, this.encryptionPrivateKey);
|
|
37
|
+
const entry = {
|
|
38
|
+
epochId: resp.epochId,
|
|
39
|
+
epoch: resp.epoch,
|
|
40
|
+
key: rawKey,
|
|
41
|
+
fetchedAt: Date.now(),
|
|
42
|
+
};
|
|
43
|
+
this.activeKeyCache.set(groupId, entry);
|
|
44
|
+
this.epochKeyCache.set(`${groupId}:${resp.epoch}`, entry);
|
|
45
|
+
return entry;
|
|
46
|
+
}
|
|
47
|
+
catch {
|
|
48
|
+
return null;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Get a specific epoch key for inbound decryption (handles epoch mismatch).
|
|
53
|
+
*/
|
|
54
|
+
async getEpochKey(groupId, epoch) {
|
|
55
|
+
// Fast path: active key matches
|
|
56
|
+
const active = this.activeKeyCache.get(groupId);
|
|
57
|
+
if (active && active.epoch === epoch && Date.now() - active.fetchedAt < TTL_MS) {
|
|
58
|
+
return active;
|
|
59
|
+
}
|
|
60
|
+
// Check epoch cache
|
|
61
|
+
const cacheKey = `${groupId}:${epoch}`;
|
|
62
|
+
const cached = this.epochKeyCache.get(cacheKey);
|
|
63
|
+
if (cached && Date.now() - cached.fetchedAt < TTL_MS) {
|
|
64
|
+
return cached;
|
|
65
|
+
}
|
|
66
|
+
// Fetch from API
|
|
67
|
+
try {
|
|
68
|
+
const resp = await this.client.getEpochKeys(this.agentId, groupId, [epoch]);
|
|
69
|
+
if (!resp?.keys?.length)
|
|
70
|
+
return null;
|
|
71
|
+
const epochData = resp.keys[0];
|
|
72
|
+
const rawKey = decryptEnvelopeV1(epochData.encryptedEpochKey, this.encryptionPrivateKey);
|
|
73
|
+
const entry = {
|
|
74
|
+
epochId: epochData.epochId,
|
|
75
|
+
epoch: epochData.epoch,
|
|
76
|
+
key: rawKey,
|
|
77
|
+
fetchedAt: Date.now(),
|
|
78
|
+
};
|
|
79
|
+
this.epochKeyCache.set(cacheKey, entry);
|
|
80
|
+
this.evictIfNeeded();
|
|
81
|
+
return entry;
|
|
82
|
+
}
|
|
83
|
+
catch {
|
|
84
|
+
return null;
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Evict oldest entries from epochKeyCache if it exceeds the size limit.
|
|
89
|
+
*/
|
|
90
|
+
evictIfNeeded() {
|
|
91
|
+
if (this.epochKeyCache.size <= MAX_EPOCH_CACHE_SIZE)
|
|
92
|
+
return;
|
|
93
|
+
// Map iteration is insertion-order; delete oldest entries
|
|
94
|
+
const excess = this.epochKeyCache.size - MAX_EPOCH_CACHE_SIZE;
|
|
95
|
+
let i = 0;
|
|
96
|
+
for (const key of this.epochKeyCache.keys()) {
|
|
97
|
+
if (i >= excess)
|
|
98
|
+
break;
|
|
99
|
+
this.epochKeyCache.delete(key);
|
|
100
|
+
i++;
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Invalidate active key cache for a group (called on epoch-rotated event).
|
|
105
|
+
* Does NOT clear epochKeyCache (old keys still valid for old messages).
|
|
106
|
+
*/
|
|
107
|
+
invalidate(groupId) {
|
|
108
|
+
this.activeKeyCache.delete(groupId);
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* Full cache clear (called on shutdown).
|
|
112
|
+
*/
|
|
113
|
+
clear() {
|
|
114
|
+
this.activeKeyCache.clear();
|
|
115
|
+
this.epochKeyCache.clear();
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
//# sourceMappingURL=key-manager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"key-manager.js","sourceRoot":"","sources":["../../src/key-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,6 +12,7 @@
|
|
|
12
12
|
* `private-user-{botIdentityId}` to receive `new-group-message` events.
|
|
13
13
|
*/
|
|
14
14
|
import { QuiuboApiClient } from './api.js';
|
|
15
|
+
import type { AgentKeyManager } from './key-manager.js';
|
|
15
16
|
/** Structured logger matching OpenClaw's log parameter */
|
|
16
17
|
export interface GatewayLogger {
|
|
17
18
|
debug?: (...args: unknown[]) => void;
|
|
@@ -46,6 +47,10 @@ export interface RealtimeGatewayOptions {
|
|
|
46
47
|
log?: GatewayLogger;
|
|
47
48
|
/** Agent ID for heartbeat reporting (optional — if set, sends periodic heartbeats) */
|
|
48
49
|
agentId?: string;
|
|
50
|
+
/** Key manager for E2EE decryption (optional — if set, enables ciphertext decryption) */
|
|
51
|
+
keyManager?: AgentKeyManager;
|
|
52
|
+
/** Set of group IDs where E2EE is granted (managed by Pusher events) */
|
|
53
|
+
e2eeGrantedGroups?: Set<string>;
|
|
49
54
|
}
|
|
50
55
|
export interface InboundMessage {
|
|
51
56
|
messageId: string;
|
|
@@ -79,6 +84,8 @@ export declare class RealtimeGateway {
|
|
|
79
84
|
private suppressionMap;
|
|
80
85
|
private agentId;
|
|
81
86
|
private heartbeatTimer;
|
|
87
|
+
private keyManager;
|
|
88
|
+
private e2eeGrantedGroups;
|
|
82
89
|
private stopped;
|
|
83
90
|
constructor(opts: RealtimeGatewayOptions);
|
|
84
91
|
/** Set bot config for a group */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"realtime-gateway.d.ts","sourceRoot":"","sources":["../../src/realtime-gateway.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAGH,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"realtime-gateway.d.ts","sourceRoot":"","sources":["../../src/realtime-gateway.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,6 +12,7 @@
|
|
|
12
12
|
* `private-user-{botIdentityId}` to receive `new-group-message` events.
|
|
13
13
|
*/
|
|
14
14
|
import Pusher from 'pusher-js';
|
|
15
|
+
import { parseGroupEnvelopeEpoch, decryptGroupMessage } from './crypto.js';
|
|
15
16
|
/** Default logger that delegates to console */
|
|
16
17
|
const consoleLogger = {
|
|
17
18
|
debug: (...args) => console.debug('[Quiubo]', ...args),
|
|
@@ -42,6 +43,9 @@ export class RealtimeGateway {
|
|
|
42
43
|
// Heartbeat state
|
|
43
44
|
agentId;
|
|
44
45
|
heartbeatTimer = null;
|
|
46
|
+
// E2EE state
|
|
47
|
+
keyManager;
|
|
48
|
+
e2eeGrantedGroups;
|
|
45
49
|
stopped = false;
|
|
46
50
|
constructor(opts) {
|
|
47
51
|
this.client = opts.client;
|
|
@@ -53,6 +57,8 @@ export class RealtimeGateway {
|
|
|
53
57
|
this.onCacheMiss = opts.onCacheMiss;
|
|
54
58
|
this.log = opts.log ?? consoleLogger;
|
|
55
59
|
this.agentId = opts.agentId ?? null;
|
|
60
|
+
this.keyManager = opts.keyManager ?? null;
|
|
61
|
+
this.e2eeGrantedGroups = opts.e2eeGrantedGroups ?? new Set();
|
|
56
62
|
}
|
|
57
63
|
/** Set bot config for a group */
|
|
58
64
|
setBotConfig(groupId, config) {
|
|
@@ -85,10 +91,10 @@ export class RealtimeGateway {
|
|
|
85
91
|
// agent_channel always processes (1:1 bot channels)
|
|
86
92
|
if (groupType === 'agent_channel')
|
|
87
93
|
return true;
|
|
88
|
-
// Security mode check —
|
|
94
|
+
// Security mode check — respond in PLAINTEXT_SDK groups or E2EE-granted groups
|
|
89
95
|
const securityMode = eventData?.groupSecurityMode ?? 'PLAINTEXT_SDK';
|
|
90
|
-
if (securityMode !== 'PLAINTEXT_SDK') {
|
|
91
|
-
this.log.debug?.(`Skipping message in ${groupId}: security mode ${securityMode}`);
|
|
96
|
+
if (securityMode !== 'PLAINTEXT_SDK' && !this.e2eeGrantedGroups.has(groupId)) {
|
|
97
|
+
this.log.debug?.(`Skipping message in ${groupId}: security mode ${securityMode} and no E2EE grant`);
|
|
92
98
|
return false;
|
|
93
99
|
}
|
|
94
100
|
// Fetch config on cache miss (5s timeout, fail-closed)
|
|
@@ -260,6 +266,30 @@ export class RealtimeGateway {
|
|
|
260
266
|
log.debug?.(`No onRequest handler registered, ignoring requestId=${requestId}`);
|
|
261
267
|
}
|
|
262
268
|
});
|
|
269
|
+
// Handle E2EE grant/revoke/rotation events
|
|
270
|
+
channel.bind('e2ee-granted', (data) => {
|
|
271
|
+
log.info?.(`e2ee-granted for group ${data.groupId} epoch=${data.epoch}`);
|
|
272
|
+
this.e2eeGrantedGroups.add(data.groupId);
|
|
273
|
+
// Prefetch the epoch key
|
|
274
|
+
if (this.keyManager) {
|
|
275
|
+
this.keyManager.getActiveEpochKey(data.groupId).catch((err) => {
|
|
276
|
+
log.warn?.(`Prefetch key failed for group ${data.groupId}: ${err}`);
|
|
277
|
+
});
|
|
278
|
+
}
|
|
279
|
+
});
|
|
280
|
+
channel.bind('e2ee-revoked', (data) => {
|
|
281
|
+
log.info?.(`e2ee-revoked for group ${data.groupId}`);
|
|
282
|
+
this.e2eeGrantedGroups.delete(data.groupId);
|
|
283
|
+
if (this.keyManager) {
|
|
284
|
+
this.keyManager.invalidate(data.groupId);
|
|
285
|
+
}
|
|
286
|
+
});
|
|
287
|
+
channel.bind('epoch-rotated', (data) => {
|
|
288
|
+
log.info?.(`epoch-rotated for group ${data.groupId} newEpoch=${data.newEpoch} reason=${data.reason}`);
|
|
289
|
+
if (this.keyManager) {
|
|
290
|
+
this.keyManager.invalidate(data.groupId);
|
|
291
|
+
}
|
|
292
|
+
});
|
|
263
293
|
// Handle incoming group messages
|
|
264
294
|
channel.bind('new-group-message', (data) => {
|
|
265
295
|
log.info?.(`Pusher event: messageId=${data.messageId} groupId=${data.groupId} sender=${data.senderUsername} plaintext=${!!data.plaintext}`);
|
|
@@ -290,6 +320,36 @@ export class RealtimeGateway {
|
|
|
290
320
|
});
|
|
291
321
|
return;
|
|
292
322
|
}
|
|
323
|
+
// Decrypt ciphertext if key manager is available
|
|
324
|
+
if (data.ciphertext && this.keyManager) {
|
|
325
|
+
const epoch = parseGroupEnvelopeEpoch(data.ciphertext);
|
|
326
|
+
if (epoch !== null) {
|
|
327
|
+
this.keyManager.getEpochKey(data.groupId, epoch).then((cached) => {
|
|
328
|
+
if (!cached) {
|
|
329
|
+
log.warn?.(`No epoch key for group=${data.groupId} epoch=${epoch}, skipping`);
|
|
330
|
+
return;
|
|
331
|
+
}
|
|
332
|
+
try {
|
|
333
|
+
const plaintext = decryptGroupMessage(data.ciphertext, cached.key);
|
|
334
|
+
this.cursors.set(data.groupId, data.messageId);
|
|
335
|
+
return Promise.resolve(this.onMessage({
|
|
336
|
+
messageId: data.messageId,
|
|
337
|
+
groupId: data.groupId,
|
|
338
|
+
senderIdentityId: data.senderId,
|
|
339
|
+
senderUsername: data.senderUsername,
|
|
340
|
+
plaintext,
|
|
341
|
+
createdAt: data.createdAt,
|
|
342
|
+
}));
|
|
343
|
+
}
|
|
344
|
+
catch (decErr) {
|
|
345
|
+
log.error?.(`Decryption failed for message ${data.messageId}: ${decErr}`);
|
|
346
|
+
}
|
|
347
|
+
}).catch((err) => {
|
|
348
|
+
log.error?.(`Key fetch failed for message ${data.messageId}: ${err}`);
|
|
349
|
+
});
|
|
350
|
+
return;
|
|
351
|
+
}
|
|
352
|
+
}
|
|
293
353
|
// Fallback: fetch from API if no plaintext in event
|
|
294
354
|
this.fetchAndRouteMessage(data.groupId, data.messageId);
|
|
295
355
|
}).catch((err) => {
|
|
@@ -400,7 +460,23 @@ export class RealtimeGateway {
|
|
|
400
460
|
for (const msg of messages) {
|
|
401
461
|
if (msg.senderIdentityId === this.botIdentityId)
|
|
402
462
|
continue;
|
|
403
|
-
|
|
463
|
+
let plaintext = msg.plaintext;
|
|
464
|
+
// Try decrypting ciphertext if no plaintext and key manager is available
|
|
465
|
+
if (!plaintext && msg.ciphertext && this.keyManager) {
|
|
466
|
+
const epoch = parseGroupEnvelopeEpoch(msg.ciphertext);
|
|
467
|
+
if (epoch !== null) {
|
|
468
|
+
try {
|
|
469
|
+
const cached = await this.keyManager.getEpochKey(groupId, epoch);
|
|
470
|
+
if (cached) {
|
|
471
|
+
plaintext = decryptGroupMessage(msg.ciphertext, cached.key);
|
|
472
|
+
}
|
|
473
|
+
}
|
|
474
|
+
catch (decErr) {
|
|
475
|
+
this.log.error?.(`Poll decrypt failed for ${msg.id}: ${decErr}`);
|
|
476
|
+
}
|
|
477
|
+
}
|
|
478
|
+
}
|
|
479
|
+
if (!plaintext)
|
|
404
480
|
continue;
|
|
405
481
|
// Gate through bot-enabled filtering (no Pusher event data in poll path)
|
|
406
482
|
const shouldProcess = await this.shouldProcessMessage(groupId, msg.senderIdentityId);
|
|
@@ -411,7 +487,7 @@ export class RealtimeGateway {
|
|
|
411
487
|
messageId: msg.id,
|
|
412
488
|
groupId,
|
|
413
489
|
senderIdentityId: msg.senderIdentityId,
|
|
414
|
-
plaintext
|
|
490
|
+
plaintext,
|
|
415
491
|
createdAt: msg.createdAt,
|
|
416
492
|
});
|
|
417
493
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"realtime-gateway.js","sourceRoot":"","sources":["../../src/realtime-gateway.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"realtime-gateway.js","sourceRoot":"","sources":["../../src/realtime-gateway.ts"],"names":[],"mappings":"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"}
|
package/dist/src/types.d.ts
CHANGED
|
@@ -14,6 +14,10 @@ export interface QuiuboAccountConfig {
|
|
|
14
14
|
enabled?: boolean;
|
|
15
15
|
/** Polling interval in ms (default: 5000) */
|
|
16
16
|
pollIntervalMs?: number;
|
|
17
|
+
/** Persisted E2EE key material (seed only) */
|
|
18
|
+
keys?: {
|
|
19
|
+
seed: string;
|
|
20
|
+
};
|
|
17
21
|
}
|
|
18
22
|
export interface QuiuboGroup {
|
|
19
23
|
id: string;
|
package/dist/src/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "openclaw-quiubo",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "2.0.0",
|
|
4
4
|
"description": "OpenClaw Quiubo channel plugin — chat with AI assistants through Quiubo",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -49,7 +49,13 @@
|
|
|
49
49
|
"defaultChoice": "npm"
|
|
50
50
|
}
|
|
51
51
|
},
|
|
52
|
+
"knip": {
|
|
53
|
+
"entry": ["index.ts", "scripts/*.ts"]
|
|
54
|
+
},
|
|
52
55
|
"dependencies": {
|
|
56
|
+
"@noble/ciphers": "^1.2.1",
|
|
57
|
+
"@noble/curves": "^1.8.2",
|
|
58
|
+
"@noble/hashes": "^1.7.2",
|
|
53
59
|
"pusher-js": "^8.4.0"
|
|
54
60
|
}
|
|
55
61
|
}
|