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 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;
@@ -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;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,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"}
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,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAoB1D,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"}
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: string;
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
  */
@@ -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;QAClB,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,CAAA;SAAE,CAAC,CAAA;KAAE,CAAC;IAI5J;;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,UAAU,CACd,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;CAO7B"}
1
+ {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/api.ts"],"names":[],"mappings":"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"}
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
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/api.ts"],"names":[],"mappings":"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"}
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;AAoFH,eAAO,MAAM,YAAY,EAAE,GA6qB1B,CAAC"}
1
+ {"version":3,"file":"channel.d.ts","sourceRoot":"","sources":["../../src/channel.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAsGH,eAAO,MAAM,YAAY,EAAE,GA+tB1B,CAAC"}
@@ -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: false } });
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
- plaintext: payload.text || '',
949
+ ...(ciphertextOut
950
+ ? { ciphertext: ciphertextOut }
951
+ : { plaintext: payload.text || '' }),
873
952
  metadata: { format: 'markdown' },
874
953
  ...(mdAttachments.length > 0 ? { attachments: mdAttachments } : {}),
875
954
  });
@@ -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":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AAChC,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAC3C,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,aAAa,EAAE,QAAQ,EAAE,mBAAmB,EAAqB,MAAM,aAAa,CAAC;AAC3I,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAGhD;;;GAGG;AACH,SAAS,kBAAkB,CAAC,GAAwB;IAClD,IAAI,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC;QACnB,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC;QAClE,OAAO,qBAAqB,CAAC,IAAI,CAAC,CAAC;IACrC,CAAC;IACD,MAAM,IAAI,GAAG,oBAAoB,EAAE,CAAC;IACpC,+CAA+C;IAC/C,8DAA8D;IAC7D,GAAW,CAAC,IAAI,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;IACxE,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;GAGG;AACH,KAAK,UAAU,iBAAiB,CAC9B,SAAmB,EACnB,MAA4B,EAC5B,GAA4E,EAC5E,SAAkB;IAOlB,MAAM,WAAW,GAKZ,EAAE,CAAC;IAER,mEAAmE;IACnE,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,KAAK,MAAM,GAAG,IAAI,SAAS,EAAE,CAAC;QAC5B,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,SAAS;QAC5B,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACd,MAAM,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;QAC/B,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC;YAAE,SAAS;QACxC,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;YAC7C,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,GAAG,IAAI,EAAE,CAAC;gBACjC,GAAG,EAAE,IAAI,EAAE,CAAC,IAAI,SAAS,sBAAsB,QAAQ,gBAAgB,CAAC,CAAC;gBACzE,SAAS;YACX,CAAC;YACD,WAAW,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;QAC7E,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,GAAG,EAAE,IAAI,EAAE,CAAC,IAAI,SAAS,4BAA4B,GAAG,KAAK,GAAG,EAAE,CAAC,CAAC;QACtE,CAAC;IACH,CAAC;IACD,OAAO,WAAW,CAAC;AACrB,CAAC;AAED,wDAAwD;AACxD,MAAM,QAAQ,GAAG,IAAI,GAAG,EAA2B,CAAC;AAEpD,kDAAkD;AAClD,MAAM,OAAO,GAAG,IAAI,GAAG,EAA2B,CAAC;AAEnD,8CAA8C;AAC9C,MAAM,QAAQ,GAAG,IAAI,GAAG,EAA+B,CAAC;AAExD,MAAM,UAAU,GAAG,QAAQ,CAAC;AAC5B,MAAM,eAAe,GAAG,uBAAuB,CAAC;AAChD,MAAM,kBAAkB,GAAG,SAAS,CAAC;AAErC,yEAAyE;AAEzE,8DAA8D;AAC9D,SAAS,gBAAgB,CAAC,GAAQ;IAChC,OAAO,GAAG,CAAC,QAAQ,EAAE,CAAC,UAAU,CAAC,CAAC;AACpC,CAAC;AAED,8DAA8D;AAC9D,SAAS,gBAAgB,CAAC,GAAQ,EAAE,UAAe;IACjD,OAAO;QACL,GAAG,GAAG;QACN,QAAQ,EAAE;YACR,GAAG,GAAG,CAAC,QAAQ;YACf,CAAC,UAAU,CAAC,EAAE,UAAU;SACzB;KACF,CAAC;AACJ,CAAC;AAED,8DAA8D;AAC9D,MAAM,CAAC,MAAM,YAAY,GAAQ;IAC/B,EAAE,EAAE,UAAU;IAEd,IAAI,EAAE;QACJ,EAAE,EAAE,UAAU;QACd,KAAK,EAAE,QAAQ;QACf,cAAc,EAAE,cAAc;QAC9B,KAAK,EAAE,2CAA2C;QAClD,QAAQ,EAAE,kBAAkB;QAC5B,OAAO,EAAE,CAAC,IAAI,CAAC;KAChB;IAED,YAAY,EAAE;QACZ,SAAS,EAAE,CAAC,OAAO,CAAU;QAC7B,aAAa,EAAE,KAAK;QACpB,iBAAiB,EAAE,KAAK;QACxB,eAAe,EAAE,KAAK;KACvB;IAED,mEAAmE;IACnE,SAAS,EAAE;QACT,eAAe,CAAC,GAAuB;YACrC,IAAI,CAAC,GAAG;gBAAE,OAAO,SAAS,CAAC;YAC3B,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;YACpD,MAAM,WAAW,GAAG,iEAAiE,CAAC;YACtF,OAAO,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;QACzD,CAAC;QACD,cAAc,EAAE;YACd,WAAW,EAAE,CAAC,GAAuB,EAAW,EAAE;gBAChD,IAAI,CAAC,GAAG;oBAAE,OAAO,KAAK,CAAC;gBACvB,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;gBACpD,MAAM,WAAW,GAAG,iEAAiE,CAAC;gBACtF,OAAO,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACnC,CAAC;YACD,IAAI,EAAE,gBAAgB;SACvB;KACF;IAED,mEAAmE;IACnE,MAAM,EAAE;QACN,8DAA8D;QAC9D,cAAc,CAAC,GAAQ;YACrB,MAAM,OAAO,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC;YACtC,IAAI,CAAC,OAAO,EAAE,QAAQ;gBAAE,OAAO,EAAE,CAAC;YAClC,OAAO,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QACvC,CAAC;QAED,8DAA8D;QAC9D,cAAc,CAAC,GAAQ,EAAE,SAAkB;YACzC,MAAM,EAAE,GAAG,SAAS,IAAI,kBAAkB,CAAC;YAC3C,MAAM,OAAO,GAAG,gBAAgB,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAoC,CAAC;YAEzF,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,OAAO,EAAE,SAAS,EAAE,EAAE,EAAyB,CAAC;YAClD,CAAC;YAED,MAAM,QAAQ,GAAG,EAAE,GAAG,OAAO,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC;YAE/C,yCAAyC;YACzC,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,eAAe,CAAC;YACjD,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,eAAe,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;YAC7D,QAAQ,CAAC,GAAG,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;YAE3B,OAAO,QAAQ,CAAC;QAClB,CAAC;QAED,8DAA8D;QAC9D,SAAS,EAAE,CAAC,OAAY,EAAE,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,KAAK,IAAI,OAAO,CAAC,OAAO,EAAE,MAAM,CAAC;QACnF,8DAA8D;QAC9D,YAAY,EAAE,CAAC,OAAY,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,IAAI,OAAO,EAAE,aAAa,CAAC;QAElF,8DAA8D;QAC9D,iBAAiB,CAAC,EAAE,GAAG,EAAE,SAAS,EAAE,OAAO,EAAsD;YAC/F,MAAM,EAAE,GAAG,SAAS,IAAI,kBAAkB,CAAC;YAC3C,MAAM,OAAO,GAAG,gBAAgB,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;YAC5C,OAAO,gBAAgB,CAAC,GAAG,EAAE;gBAC3B,GAAG,OAAO;gBACV,QAAQ,EAAE;oBACR,GAAG,OAAO,CAAC,QAAQ;oBACnB,CAAC,EAAE,CAAC,EAAE;wBACJ,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAC;wBACzB,OAAO;qBACR;iBACF;aACF,CAAC,CAAC;QACL,CAAC;QAED,8DAA8D;QAC9D,aAAa,CAAC,EAAE,GAAG,EAAE,SAAS,EAAoC;YAChE,MAAM,EAAE,GAAG,SAAS,IAAI,kBAAkB,CAAC;YAC3C,MAAM,OAAO,GAAG,gBAAgB,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;YAC5C,MAAM,KAAK,GAAG,EAAE,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;YACtC,OAAO,KAAK,CAAC,EAAE,CAAC,CAAC;YACjB,OAAO,gBAAgB,CAAC,GAAG,EAAE,EAAE,GAAG,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;QAChE,CAAC;KACF;IAED,mEAAmE;IACnE,KAAK,EAAE;QACL,8DAA8D;QAC9D,kBAAkB,CAAC,EAAE,GAAG,EAAE,SAAS,EAAE,KAAK,EAAgD;YACxF,MAAM,EAAE,GAAG,SAAS,IAAI,kBAAkB,CAAC;YAC3C,MAAM,OAAO,GAAG,gBAAgB,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;YAC5C,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC;YAE9C,oCAAoC;YACpC,8DAA8D;YAC9D,MAAM,OAAO,GAAQ,EAAE,CAAC;YACxB,IAAI,KAAK,CAAC,KAAK;gBAAE,OAAO,CAAC,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC;YAC9C,IAAI,KAAK,CAAC,GAAG;gBAAE,OAAO,CAAC,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC;YAE1C,OAAO,gBAAgB,CAAC,GAAG,EAAE;gBAC3B,GAAG,OAAO;gBACV,QAAQ,EAAE;oBACR,GAAG,OAAO,CAAC,QAAQ;oBACnB,CAAC,EAAE,CAAC,EAAE;wBACJ,GAAG,QAAQ;wBACX,GAAG,OAAO;wBACV,OAAO,EAAE,IAAI;qBACd;iBACF;aACF,CAAC,CAAC;QACL,CAAC;QAED,8DAA8D;QAC9D,gBAAgB,CAAC,EAAE,GAAG,EAAE,SAAS,EAAE,IAAI,EAAkD;YACvF,MAAM,EAAE,GAAG,SAAS,IAAI,kBAAkB,CAAC;YAC3C,MAAM,OAAO,GAAG,gBAAgB,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;YAC5C,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC;YAE9C,OAAO,gBAAgB,CAAC,GAAG,EAAE;gBAC3B,GAAG,OAAO;gBACV,QAAQ,EAAE;oBACR,GAAG,OAAO,CAAC,QAAQ;oBACnB,CAAC,EAAE,CAAC,EAAE;wBACJ,GAAG,QAAQ;wBACX,IAAI;qBACL;iBACF;aACF,CAAC,CAAC;QACL,CAAC;KACF;IAED,mEAAmE;IACnE,UAAU,EAAE;QACV,8DAA8D;QAC9D,KAAK,CAAC,SAAS,CAAC,EAAE,GAAG,EAAgB;YACnC,MAAM,UAAU,GAAG,YAAY,CAAC,MAAM,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;YAC3D,MAAM,UAAU,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,EAAU,EAAE,EAAE;gBACzE,MAAM,OAAO,GAAG,gBAAgB,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC;gBACtD,OAAO,OAAO,EAAE,MAAM,IAAI,OAAO,EAAE,aAAa,CAAC;YACnD,CAAC,CAAC,CAAC;YACH,MAAM,eAAe,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,EAAU,EAAE,EAAE;gBACvD,MAAM,OAAO,GAAG,gBAAgB,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC;gBACtD,OAAO,OAAO,EAAE,OAAO,KAAK,KAAK,IAAI,OAAO,EAAE,MAAM,CAAC;YACvD,CAAC,CAAC,CAAC;YAEH,IAAI,WAAW,GAAG,gBAAgB,CAAC;YACnC,IAAI,UAAU,EAAE,CAAC;gBACf,WAAW,GAAG,eAAe,CAAC,MAAM,GAAG,CAAC;oBACtC,CAAC,CAAC,GAAG,eAAe,CAAC,MAAM,oBAAoB;oBAC/C,CAAC,CAAC,uBAAuB,CAAC;YAC9B,CAAC;YAED,OAAO;gBACL,OAAO,EAAE,UAAU;gBACnB,UAAU;gBACV,WAAW,EAAE,CAAC,WAAW,WAAW,EAAE,CAAC;gBACvC,aAAa,EAAE,WAAW;gBAC1B,eAAe,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;aACpC,CAAC;QACJ,CAAC;QAED,8DAA8D;QAC9D,KAAK,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,sBAAsB,EAAiE;YACtH,IAAI,SAAS,GAAG,kBAAkB,CAAC;YAEnC,IAAI,sBAAsB,EAAE,CAAC;gBAC3B,MAAM,WAAW,GAAG,YAAY,CAAC,MAAM,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;gBAC5D,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC;oBAClC,OAAO,EAAE,YAAY;oBACrB,YAAY,EAAE,WAAW,CAAC,CAAC,CAAC,IAAI,kBAAkB;oBAClD,WAAW,EAAE,SAAS;iBACvB,CAAC,CAAC;gBACH,SAAS,GAAG,OAAO,EAAE,IAAI,EAAE,IAAI,kBAAkB,CAAC;YACpD,CAAC;YAED,MAAM,eAAe,GAAG,gBAAgB,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAE,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;YAE3E,MAAM,QAAQ,CAAC,IAAI,CAAC;gBAClB,2BAA2B;gBAC3B,EAAE;gBACF,eAAe;gBACf,0CAA0C;gBAC1C,wBAAwB;aACzB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,cAAc,CAAC,CAAC;YAE9B,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC;gBACjC,OAAO,EAAE,SAAS;gBAClB,YAAY,EAAE,eAAe,CAAC,MAAM,IAAI,eAAe;gBACvD,WAAW,EAAE,eAAe;aAC7B,CAAC,CAAC;YAEH,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC;gBACjC,OAAO,EAAE,aAAa;gBACtB,YAAY,EAAE,eAAe,CAAC,MAAM,IAAI,EAAE;gBAC1C,WAAW,EAAE,SAAS;gBACtB,QAAQ,EAAE,CAAC,KAAa,EAAE,EAAE;oBAC1B,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE;wBAAE,OAAO,qBAAqB,CAAC;oBACjD,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC;wBAAE,OAAO,gCAAgC,CAAC;oBACvE,OAAO,SAAS,CAAC;gBACnB,CAAC;aACF,CAAC,CAAC;YAEH,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC;gBACpB,MAAM,QAAQ,CAAC,IAAI,CAAC,kBAAkB,EAAE,QAAQ,CAAC,CAAC;gBAClD,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,CAAC;YAC5B,CAAC;YAED,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC,MAAM,IAAI,eAAe,EAAE,MAAM,CAAC,CAAC;YAEtE,IAAI,OAAO,CAAC;YACZ,IAAI,CAAC;gBACH,OAAO,GAAG,MAAM,MAAM,CAAC,YAAY,EAAE,CAAC;gBACtC,MAAM,QAAQ,CAAC,IAAI,CAAC,iBAAiB,OAAO,CAAC,OAAO,EAAE,EAAE,SAAS,CAAC,CAAC;YACrE,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,GAAG,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBACnE,MAAM,QAAQ,CAAC,IAAI,CAAC,gBAAgB,GAAG,EAAE,EAAE,OAAO,CAAC,CAAC;gBACpD,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,CAAC;YAC5B,CAAC;YAED,IAAI,aAAa,GAA8B,eAAe,CAAC,aAAa,CAAC;YAC7E,8DAA8D;YAC9D,IAAI,UAAU,GAAkE,EAAE,CAAC;YAEnF,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,cAAc,EAAE,CAAC;gBAC7C,8DAA8D;gBAC9D,MAAM,GAAG,GAAU,MAAM,CAAC,UAAU,IAAI,MAAM,IAAI,EAAE,CAAC;gBACrD,UAAU,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;oBAC3B,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,UAAU;oBACxB,QAAQ,EAAE,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,UAAU;oBACtD,WAAW,EAAE,CAAC,CAAC,WAAW,IAAI,CAAC,CAAC,YAAY;iBAC7C,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YAC1B,CAAC;YAAC,MAAM,CAAC;gBACP,kDAAkD;YACpD,CAAC;YAED,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,IAAI,aAAa,EAAE,CAAC;gBAC3C,MAAM,OAAO,GAAG;oBACd,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;wBACzB,KAAK,EAAE,EAAE,CAAC,EAAE;wBACZ,KAAK,EAAE,GAAG,EAAE,CAAC,QAAQ,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,KAAK,aAAa,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,EAAE;wBAC9E,IAAI,EAAE,EAAE,CAAC,WAAW,IAAI,SAAS;qBAClC,CAAC,CAAC;oBACH,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,yBAAyB,EAAE;iBAC1D,CAAC;gBAEF,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC;oBACnC,OAAO,EAAE,qBAAqB;oBAC9B,OAAO;oBACP,YAAY,EAAE,aAAa,IAAI,UAAU,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,YAAY;iBACjE,CAAC,CAAC;gBAEH,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;oBAC1C,MAAM,QAAQ,CAAC,IAAI,CAAC,sBAAsB,EAAE,QAAQ,CAAC,CAAC;oBACtD,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,CAAC;gBAC5B,CAAC;gBAED,IAAI,MAAM,KAAK,YAAY,EAAE,CAAC;oBAC5B,aAAa,GAAG,MAAM,iBAAiB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;gBAC5D,CAAC;qBAAM,CAAC;oBACN,aAAa,GAAG,MAAM,CAAC;oBACvB,MAAM,QAAQ,CAAC,IAAI,CAAC,sBAAsB,aAAa,EAAE,EAAE,cAAc,CAAC,CAAC;gBAC7E,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,MAAM,QAAQ,CAAC,IAAI,CAAC,0CAA0C,EAAE,cAAc,CAAC,CAAC;gBAChF,aAAa,GAAG,MAAM,iBAAiB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;YAC5D,CAAC;YAED,IAAI,CAAC,aAAa,EAAE,CAAC;gBACnB,MAAM,QAAQ,CAAC,IAAI,CAAC,kBAAkB,EAAE,QAAQ,CAAC,CAAC;gBAClD,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,CAAC;YAC5B,CAAC;YAED,MAAM,OAAO,GAAG,gBAAgB,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;YAC5C,MAAM,UAAU,GAAG,gBAAgB,CAAC,GAAG,EAAE;gBACvC,GAAG,OAAO;gBACV,QAAQ,EAAE;oBACR,GAAG,OAAO,CAAC,QAAQ;oBACnB,CAAC,SAAS,CAAC,EAAE;wBACX,GAAG,eAAe;wBAClB,OAAO,EAAE,IAAI;wBACb,MAAM,EAAE,MAAM,IAAI,eAAe;wBACjC,MAAM;wBACN,aAAa;qBACd;iBACF;aACF,CAAC,CAAC;YAEH,MAAM,QAAQ,CAAC,IAAI,CAAC;gBAClB,oBAAoB;gBACpB,EAAE;gBACF,YAAY,SAAS,EAAE;gBACvB,QAAQ,aAAa,EAAE;gBACvB,EAAE;gBACF,6BAA6B;aAC9B,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,gBAAgB,CAAC,CAAC;YAEhC,OAAO,EAAE,GAAG,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC;QACxC,CAAC;QAED,8DAA8D;QAC9D,OAAO,CAAC,GAAQ;YACd,MAAM,UAAU,GAAG,YAAY,CAAC,MAAM,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;YAC3D,IAAI,IAAI,GAAG,GAAG,CAAC;YACf,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;gBACnC,IAAI,GAAG,YAAY,CAAC,MAAM,CAAC,iBAAiB,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;YACzF,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;KACF;IAED,mEAAmE;IACnE,QAAQ,EAAE;QACR,YAAY,EAAE,QAAiB;QAE/B,8DAA8D;QAC9D,KAAK,CAAC,QAAQ,CAAC,GAAQ;YACrB,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,GAAG,CAAC;YAE1B,2BAA2B;YAC3B,MAAM,SAAS,GAAG,GAAG,CAAC,SAAS,IAAI,kBAAkB,CAAC;YACtD,IAAI,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YACpC,IAAI,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YAEtC,IAAI,CAAC,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;gBACxB,MAAM,IAAI,GAAG,gBAAgB,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAE,CAAC,SAAS,CAAoC,CAAC;gBAC7F,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC;oBAClB,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,yBAAyB,EAAE,CAAC;gBACzD,CAAC;gBACD,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,eAAe,CAAC;gBAC9C,MAAM,GAAG,IAAI,eAAe,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;gBAClD,OAAO,GAAG,EAAE,GAAG,IAAI,EAAE,SAAS,EAAE,CAAC;gBACjC,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;gBAC/B,QAAQ,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;YACnC,CAAC;YAED,qEAAqE;YACrE,MAAM,OAAO,GAAG,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,MAAM,EAAE,OAAO,IAAI,GAAG,CAAC,MAAM,EAAE,GAAG,EAAE,OAAO,CAAC;YAC1E,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,gCAAgC,EAAE,CAAC;YAChE,CAAC;YAED,MAAM,QAAQ,GAAG,OAAO,CAAC,aAAa,CAAC;YACvC,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,6BAA6B,EAAE,CAAC;YAC7D,CAAC;YAED,IAAI,CAAC;gBACH,MAAM,MAAM,CAAC,WAAW,CAAC,OAAO,EAAE;oBAChC,gBAAgB,EAAE,QAAQ;oBAC1B,SAAS,EAAE,IAAI;oBACf,QAAQ,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE;iBACjC,CAAC,CAAC;gBACH,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;YACtB,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,GAAG,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBACnE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC;YACnC,CAAC;QACH,CAAC;QAED,8DAA8D;QAC9D,KAAK,CAAC,SAAS,CAAC,GAAQ;YACtB,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC;YAE3C,mDAAmD;YACnD,MAAM,IAAI,GAAa,EAAE,CAAC;YAC1B,IAAI,GAAG,CAAC,QAAQ;gBAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAC1C,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC;gBAAE,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC;YAE9D,2BAA2B;YAC3B,MAAM,aAAa,GAAG,MAAM,iBAAiB,CAAC,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;YAErF,OAAO,CAAC,GAAG,CAAC,2BAA2B,IAAI,CAAC,MAAM,mBAAmB,aAAa,CAAC,MAAM,KAAK,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;YAE7M,0DAA0D;YAC1D,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YAEnF,oDAAoD;YACpD,MAAM,SAAS,GAAG,GAAG,CAAC,SAAS,IAAI,kBAAkB,CAAC;YACtD,IAAI,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YACpC,IAAI,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YAEtC,IAAI,CAAC,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;gBACxB,MAAM,IAAI,GAAG,gBAAgB,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAE,CAAC,SAAS,CAAoC,CAAC;gBACjG,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC;oBAClB,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,yBAAyB,EAAE,CAAC;gBACzD,CAAC;gBACD,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,eAAe,CAAC;gBAC9C,MAAM,GAAG,IAAI,eAAe,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;gBAClD,OAAO,GAAG,EAAE,GAAG,IAAI,EAAE,SAAS,EAAE,CAAC;gBACjC,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;gBAC/B,QAAQ,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;YACnC,CAAC;YAED,MAAM,OAAO,GAAG,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,MAAM,EAAE,OAAO,IAAI,GAAG,CAAC,MAAM,EAAE,GAAG,EAAE,OAAO,CAAC;YAC1E,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,gCAAgC,EAAE,CAAC;YAChE,CAAC;YAED,MAAM,QAAQ,GAAG,OAAO,CAAC,aAAa,CAAC;YACvC,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,6BAA6B,EAAE,CAAC;YAC7D,CAAC;YAED,IAAI,CAAC;gBACH,MAAM,MAAM,CAAC,WAAW,CAAC,OAAO,EAAE;oBAChC,gBAAgB,EAAE,QAAQ;oBAC1B,SAAS;oBACT,QAAQ,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE;oBAChC,GAAG,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBACpE,CAAC,CAAC;gBACH,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;YACtB,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,GAAG,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBACnE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC;YACnC,CAAC;QACH,CAAC;KACF;IAED,mEAAmE;IACnE,OAAO,EAAE;QACP;;;;WAIG;QACH,8DAA8D;QAC9D,YAAY,EAAE,KAAK,EAAE,GAAQ,EAAiB,EAAE;YAC9C,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,WAAW,EAAE,GAAG,EAAE,GAAG,GAAG,CAAC;YAEjD,MAAM,YAAY,GAAG,gBAAgB,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAE,CAAC,SAAS,CAAoC,CAAC;YACrG,IAAI,CAAC,YAAY,EAAE,MAAM,IAAI,CAAC,YAAY,EAAE,aAAa,EAAE,CAAC;gBAC1D,GAAG,EAAE,IAAI,EAAE,CAAC,IAAI,SAAS,qDAAqD,CAAC,CAAC;gBAChF,OAAO;YACT,CAAC;YAED,IAAI,YAAY,CAAC,OAAO,KAAK,KAAK,EAAE,CAAC;gBACnC,GAAG,EAAE,IAAI,EAAE,CAAC,IAAI,SAAS,8BAA8B,CAAC,CAAC;gBACzD,OAAO;YACT,CAAC;YAED,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,IAAI,eAAe,CAAC;YACtD,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,cAAc,EAAE,GAAG,YAAY,CAAC;YAE/D,MAAM,OAAO,GAAG,gBAAgB,EAAE,CAAC;YAEnC,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YAEnD,qBAAqB;YACrB,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;YAC/B,QAAQ,CAAC,GAAG,CAAC,SAAS,EAAE,EAAE,GAAG,YAAY,EAAE,SAAS,EAAE,CAAC,CAAC;YAExD,qCAAqC;YACrC,IAAI,YAA0D,CAAC;YAC/D,8DAA8D;YAC9D,IAAI,IAAS,CAAC;YACd,IAAI,CAAC;gBACH,IAAI,GAAG,MAAM,MAAM,CAAC,YAAY,EAAE,CAAC;gBACnC,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC;gBAC3B,GAAG,EAAE,IAAI,EAAE,CAAC,IAAI,SAAS,8BAA8B,IAAI,CAAC,OAAO,KAAK,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;gBACvF,IAAI,YAAY,EAAE,CAAC;oBACjB,GAAG,EAAE,IAAI,EAAE,CAAC,IAAI,SAAS,wCAAwC,YAAY,CAAC,OAAO,GAAG,CAAC,CAAC;gBAC5F,CAAC;qBAAM,CAAC;oBACN,GAAG,EAAE,IAAI,EAAE,CAAC,IAAI,SAAS,iDAAiD,CAAC,CAAC;gBAC9E,CAAC;YACH,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,GAAG,EAAE,KAAK,EAAE,CAAC,IAAI,SAAS,oCAAoC,KAAK,EAAE,CAAC,CAAC;gBACvE,OAAO;YACT,CAAC;YAED,oDAAoD;YACpD,IAAI,CAAC;gBACH,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;gBAC1E,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBAChC,GAAG,EAAE,IAAI,EAAE,CAAC,IAAI,SAAS,oDAAoD,CAAC,CAAC;oBAE/E,gCAAgC;oBAChC,IAAI,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;oBAC3B,IAAI,CAAC;wBACH,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,MAAM,CAAC,cAAc,EAAE,CAAC;wBACrD,MAAM,WAAW,GAAG,UAAU,EAAE,IAAI,CAAC,CAAC,CAAyB,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,KAAK,aAAa,CAAC,CAAC;wBACpG,IAAI,WAAW,EAAE,WAAW,EAAE,CAAC;4BAC7B,OAAO,GAAG,WAAW,CAAC,WAAW,CAAC;wBACpC,CAAC;oBACH,CAAC;oBAAC,MAAM,CAAC;wBACP,GAAG,EAAE,IAAI,EAAE,CAAC,IAAI,SAAS,wDAAwD,CAAC,CAAC;oBACrF,CAAC;oBAED,IAAI,CAAC;wBACH,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC;4BACxC,eAAe,EAAE,QAAQ,SAAS,EAAE;4BACpC,IAAI,EAAE,GAAG,OAAO,UAAU;4BAC1B,WAAW,EAAE,aAAa,OAAO,EAAE;4BACnC,SAAS,EAAE,eAAe;yBAC3B,CAAC,CAAC;wBACH,MAAM,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC;wBACtD,GAAG,EAAE,IAAI,EAAE,CAAC,IAAI,SAAS,mCAAmC,QAAQ,CAAC,EAAE,0BAA0B,CAAC,CAAC;wBAEnG,uBAAuB;wBACvB,IAAI,CAAC;4BACH,MAAM,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,EAAE;gCACpC,gBAAgB,EAAE,aAAa;gCAC/B,SAAS,EAAE,qBAAqB,OAAO,4EAA4E;6BACpH,CAAC,CAAC;4BACH,GAAG,EAAE,IAAI,EAAE,CAAC,IAAI,SAAS,qCAAqC,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC;wBAC/E,CAAC;wBAAC,OAAO,MAAM,EAAE,CAAC;4BAChB,GAAG,EAAE,IAAI,EAAE,CAAC,IAAI,SAAS,4CAA4C,MAAM,EAAE,CAAC,CAAC;wBACjF,CAAC;oBACH,CAAC;oBAAC,OAAO,WAAW,EAAE,CAAC;wBACrB,IAAI,MAAM,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;4BACxC,GAAG,EAAE,IAAI,EAAE,CAAC,IAAI,SAAS,wCAAwC,CAAC,CAAC;wBACrE,CAAC;6BAAM,CAAC;4BACN,MAAM,WAAW,CAAC;wBACpB,CAAC;oBACH,CAAC;gBACH,CAAC;qBAAM,CAAC;oBACN,GAAG,EAAE,IAAI,EAAE,CAAC,IAAI,SAAS,mBAAmB,cAAc,CAAC,MAAM,oBAAoB,CAAC,CAAC;gBACzF,CAAC;YACH,CAAC;YAAC,OAAO,cAAc,EAAE,CAAC;gBACxB,GAAG,EAAE,IAAI,EAAE,CAAC,IAAI,SAAS,gDAAgD,cAAc,EAAE,CAAC,CAAC;YAC7F,CAAC;YAED,kEAAkE;YAClE,MAAM,UAAU,GAAG,GAAG,CAAC,CAAC,CAAC;gBACvB,KAAK,EAAE,CAAC,GAAG,IAAe,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,IAAI,SAAS,WAAW,EAAE,GAAG,IAAI,CAAC;gBAC7E,IAAI,EAAE,CAAC,GAAG,IAAe,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,IAAI,SAAS,WAAW,EAAE,GAAG,IAAI,CAAC;gBAC3E,IAAI,EAAE,CAAC,GAAG,IAAe,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,IAAI,SAAS,WAAW,EAAE,GAAG,IAAI,CAAC;gBAC3E,KAAK,EAAE,CAAC,GAAG,IAAe,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,IAAI,SAAS,WAAW,EAAE,GAAG,IAAI,CAAC;aAC9E,CAAC,CAAC,CAAC,SAAS,CAAC;YAEd,mFAAmF;YACnF,IAAI,eAAmC,CAAC;YACxC,IAAI,SAAmC,CAAC;YACxC,IAAI,CAAC;gBACH,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,UAAU,EAAE,CAAC;gBAC7C,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,KAAK,aAAa,IAAI,CAAC,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC;gBAC1F,IAAI,KAAK,EAAE,CAAC;oBACV,eAAe,GAAG,KAAK,CAAC,EAAE,CAAC;oBAC3B,GAAG,EAAE,IAAI,EAAE,CAAC,IAAI,SAAS,4BAA4B,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,EAAE,iBAAiB,CAAC,CAAC;oBAE/F,sBAAsB;oBACtB,IAAI,CAAC;wBACH,MAAM,IAAI,GAAG,kBAAkB,CAAC,YAAY,CAAC,CAAC;wBAC9C,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE,CAAC;4BAC1B,GAAG,EAAE,IAAI,EAAE,CAAC,IAAI,SAAS,2CAA2C,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;4BAChF,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,GAAG,MAAM,MAAM,CAAC,mBAAmB,CAAC,KAAK,CAAC,EAAE,EAAE;gCAC5E,gBAAgB,EAAE,QAAQ,CAAC,IAAI,CAAC,gBAAgB,CAAC;gCACjD,mBAAmB,EAAE,QAAQ,CAAC,IAAI,CAAC,mBAAmB,CAAC;gCACvD,gBAAgB,EAAE,CAAC;6BACpB,CAAC,CAAC;4BACH,MAAM,SAAS,GAAG,aAAa,CAAC,SAAS,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;4BACnE,MAAM,MAAM,CAAC,kBAAkB,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,WAAW,EAAE,SAAS,EAAE,CAAC,CAAC;4BACtE,GAAG,EAAE,IAAI,EAAE,CAAC,IAAI,SAAS,0CAA0C,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;wBACjF,CAAC;wBACD,2BAA2B;wBAC3B,SAAS,GAAG,IAAI,CAAC;oBACnB,CAAC;oBAAC,OAAO,MAAM,EAAE,CAAC;wBAChB,GAAG,EAAE,IAAI,EAAE,CAAC,IAAI,SAAS,iDAAiD,MAAM,EAAE,CAAC,CAAC;oBACtF,CAAC;oBAED,gCAAgC;oBAChC,IAAI,CAAC;wBACH,MAAM,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,YAAY,EAAE,EAAE,aAAa,EAAE,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;wBACrF,GAAG,EAAE,IAAI,EAAE,CAAC,IAAI,SAAS,6CAA6C,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;oBACpF,CAAC;oBAAC,OAAO,MAAM,EAAE,CAAC;wBAChB,GAAG,EAAE,IAAI,EAAE,CAAC,IAAI,SAAS,mDAAmD,MAAM,EAAE,CAAC,CAAC;oBACxF,CAAC;gBACH,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,GAAG,EAAE,IAAI,EAAE,CAAC,IAAI,SAAS,oDAAoD,CAAC,CAAC;YACjF,CAAC;YAED,8CAA8C;YAC9C,MAAM,iBAAiB,GAAG,IAAI,GAAG,EAAU,CAAC;YAC5C,IAAI,UAAuC,CAAC;YAC5C,IAAI,SAAS,IAAI,eAAe,EAAE,CAAC;gBACjC,UAAU,GAAG,IAAI,eAAe,CAAC,MAAM,EAAE,SAAS,CAAC,oBAAoB,EAAE,eAAe,CAAC,CAAC;gBAC1F,GAAG,EAAE,IAAI,EAAE,CAAC,IAAI,SAAS,wCAAwC,CAAC,CAAC;YACrE,CAAC;YAED,MAAM,OAAO,GAAG,IAAI,eAAe,CAAC;gBAClC,MAAM;gBACN,aAAa;gBACb,MAAM,EAAE,YAAY;gBACpB,cAAc,EAAE,cAAc,IAAI,IAAI;gBACtC,GAAG,EAAE,UAAU;gBACf,OAAO,EAAE,eAAe;gBACxB,UAAU;gBACV,iBAAiB;gBACjB,WAAW,EAAE,KAAK,EAAE,OAAe,EAAE,EAAE;oBACrC,IAAI,CAAC;wBACH,MAAM,CAAC,KAAK,EAAE,EAAE,OAAO,EAAE,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;4BAC7C,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC;4BACxB,MAAM,CAAC,gBAAgB,CAAC,OAAO,CAAC;yBACjC,CAAC,CAAC;wBACH,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC;wBACtD,MAAM,WAAW,GAAI,KAAK,CAAC,QAAQ,EAAE,GAA+B,IAAI,EAAE,CAAC;wBAC3E,OAAO;4BACL,OAAO,EAAG,WAAW,CAAC,OAAmB,IAAI,KAAK;4BAClD,kBAAkB,EAAG,WAAW,CAAC,kBAA6B,IAAI,EAAE;4BACpE,eAAe,EAAE,KAAK,EAAE,UAAU,IAAI,EAAE;4BACxC,SAAS,EAAE,KAAK,CAAC,SAAS,IAAI,UAAU;yBACzC,CAAC;oBACJ,CAAC;oBAAC,OAAO,GAAG,EAAE,CAAC;wBACb,GAAG,EAAE,IAAI,EAAE,CAAC,IAAI,SAAS,+CAA+C,OAAO,KAAK,GAAG,EAAE,CAAC,CAAC;wBAC3F,OAAO,IAAI,CAAC;oBACd,CAAC;gBACH,CAAC;gBACD,SAAS,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;oBACvB,IAAI,CAAC;wBACH,MAAM,mBAAmB,CAAC;4BACxB,OAAO;4BACP,GAAG;4BACH,SAAS;4BACT,aAAa;4BACb,MAAM;4BACN,GAAG;4BACH,GAAG;4BACH,UAAU;4BACV,iBAAiB;yBAClB,CAAC,CAAC;oBACL,CAAC;oBAAC,OAAO,KAAK,EAAE,CAAC;wBACf,GAAG,EAAE,KAAK,EAAE,CAAC,IAAI,SAAS,qCAAqC,KAAK,EAAE,CAAC,CAAC;oBAC1E,CAAC;gBACH,CAAC;gBACD,SAAS,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;oBACvB,GAAG,EAAE,IAAI,EAAE,CAAC,IAAI,SAAS,mCAAmC,GAAG,CAAC,IAAI,cAAc,GAAG,CAAC,SAAS,UAAU,GAAG,CAAC,OAAO,SAAS,GAAG,CAAC,oBAAoB,EAAE,CAAC,CAAC;oBAEzJ,IAAI,CAAC;wBACH,uCAAuC;wBACvC,8DAA8D;wBAC9D,MAAM,QAAQ,GAAU,GAAG,EAAE,QAAQ,IAAI,EAAE,CAAC;wBAC5C,8DAA8D;wBAC9D,MAAM,cAAc,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAM,EAAE,EAAE,CAC9C,CAAC,EAAE,KAAK,EAAE,OAAO,KAAK,QAAQ,IAAI,CAAC,EAAE,KAAK,EAAE,SAAS,KAAK,SAAS,CACpE,CAAC;wBACF,MAAM,OAAO,GAAG,cAAc,EAAE,OAAO,IAAI,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,MAAM,CAAC;wBAEhF,IAAI,IAAI,CAAC;wBACT,IAAI,GAAG,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;4BAC5B,IAAI,GAAG,MAAM,eAAe,CAAC,OAAO,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;wBACtD,CAAC;6BAAM,CAAC;4BACN,IAAI,GAAG,EAAE,OAAO,EAAE,kBAAkB,EAAE,CAAC;wBACzC,CAAC;wBAED,MAAM,MAAM,CAAC,oBAAoB,CAAC,GAAG,CAAC,OAAO,EAAE;4BAC7C,SAAS,EAAE,GAAG,CAAC,SAAS;4BACxB,oBAAoB,EAAE,GAAG,CAAC,oBAAoB;4BAC9C,MAAM,EAAE,IAAI;4BACZ,IAAI;yBACL,CAAC,CAAC;wBACH,GAAG,EAAE,IAAI,EAAE,CAAC,IAAI,SAAS,kDAAkD,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC;oBAC9F,CAAC;oBAAC,OAAO,GAAG,EAAE,CAAC;wBACb,GAAG,EAAE,KAAK,EAAE,CAAC,IAAI,SAAS,4DAA4D,GAAG,CAAC,SAAS,KAAK,GAAG,EAAE,CAAC,CAAC;oBACjH,CAAC;gBACH,CAAC;aACF,CAAC,CAAC;YAEH,QAAQ,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;YACjC,MAAM,OAAO,CAAC,KAAK,EAAE,CAAC;YAEtB,gDAAgD;YAChD,IAAI,CAAC;gBACH,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;gBACrE,KAAK,MAAM,KAAK,IAAI,SAAS,EAAE,CAAC;oBAC9B,MAAM,WAAW,GAAI,KAAK,CAAC,QAAQ,EAAE,GAA+B,IAAI,EAAE,CAAC;oBAC3E,kDAAkD;oBAClD,IAAI,eAAe,GAAG,EAAE,CAAC;oBACzB,IAAI,CAAC;wBACH,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,MAAM,CAAC,gBAAgB,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;wBAC5D,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC;wBACtD,eAAe,GAAG,KAAK,EAAE,UAAU,IAAI,EAAE,CAAC;oBAC5C,CAAC;oBAAC,MAAM,CAAC;wBACP,2DAA2D;oBAC7D,CAAC;oBACD,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,EAAE;wBAC7B,OAAO,EAAG,WAAW,CAAC,OAAmB,IAAI,KAAK;wBAClD,kBAAkB,EAAG,WAAW,CAAC,kBAA6B,IAAI,EAAE;wBACpE,eAAe;wBACf,SAAS,EAAE,KAAK,CAAC,SAAS,IAAI,UAAU;qBACzC,CAAC,CAAC;gBACL,CAAC;gBACD,GAAG,EAAE,IAAI,EAAE,CAAC,IAAI,SAAS,qCAAqC,SAAS,CAAC,MAAM,WAAW,CAAC,CAAC;gBAE3F,iEAAiE;gBACjE,IAAI,UAAU,IAAI,eAAe,EAAE,CAAC;oBAClC,KAAK,MAAM,KAAK,IAAI,SAAS,EAAE,CAAC;wBAC9B,IAAI,CAAC;4BACH,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,iBAAiB,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;4BAC5D,IAAI,MAAM,EAAE,CAAC;gCACX,iBAAiB,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;4BAClC,CAAC;wBACH,CAAC;wBAAC,MAAM,CAAC;4BACP,qDAAqD;wBACvD,CAAC;oBACH,CAAC;oBACD,IAAI,iBAAiB,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;wBAC/B,GAAG,EAAE,IAAI,EAAE,CAAC,IAAI,SAAS,sCAAsC,iBAAiB,CAAC,IAAI,WAAW,CAAC,CAAC;oBACpG,CAAC;gBACH,CAAC;YACH,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,GAAG,EAAE,IAAI,EAAE,CAAC,IAAI,SAAS,uDAAuD,GAAG,EAAE,CAAC,CAAC;YACzF,CAAC;YAED,GAAG,EAAE,IAAI,EAAE,CAAC,IAAI,SAAS,2BAA2B,CAAC,CAAC;YAEtD,wEAAwE;YACxE,OAAO,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;gBACnC,MAAM,OAAO,GAAG,GAAG,EAAE;oBACnB,GAAG,EAAE,IAAI,EAAE,CAAC,IAAI,SAAS,4BAA4B,CAAC,CAAC;oBACvD,OAAO,CAAC,IAAI,EAAE,CAAC;oBACf,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;oBAC3B,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;oBAC1B,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;oBAC3B,OAAO,EAAE,CAAC;gBACZ,CAAC,CAAC;gBAEF,IAAI,WAAW,EAAE,CAAC;oBAChB,WAAW,CAAC,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;gBACjE,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC;KACF;CACF,CAAC;AAEF,wEAAwE;AAExE;;GAEG;AACH,8DAA8D;AAC9D,KAAK,UAAU,eAAe,CAAC,OAAY,EAAE,GAAQ,EAAE,OAAgB;IACrE,IAAI,CAAC;QACH,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,MAAM,CAAC,kBAAkB,CAAC,CAAC;QACtD,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,CAAC;QAC3C,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,EAAE,CAAC;QAClE,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;QACjE,GAAG,EAAE,IAAI,EAAE,CAAC,4BAA4B,QAAQ,aAAa,OAAO,GAAG,CAAC,CAAC;QACzE,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAC9C,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC/B,8DAA8D;QAC9D,MAAM,IAAI,GAAU,MAAM,EAAE,IAAI,IAAI,EAAE,CAAC;QACvC,8DAA8D;QAC9D,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,KAAK,IAAI,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAQ,EAAE,EAAE,CAAC,CAAC;YACnH,EAAE,EAAE,GAAG,CAAC,EAAE;YACV,IAAI,EAAE,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,EAAE;YACxB,QAAQ,EAAE,GAAG,CAAC,QAAQ;YACtB,OAAO,EAAE,GAAG,CAAC,OAAO,KAAK,KAAK;YAC9B,SAAS,EAAE,GAAG,CAAC,SAAS,IAAI,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACpD,OAAO,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,OAAO,EAAE,IAAI,IAAI,GAAG,CAAC,OAAO,EAAE,OAAO,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC,EAAE;SAClG,CAAC,CAAC,CAAC;QACJ,OAAO,EAAE,KAAK,EAAE,CAAC;IACnB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,GAAG,EAAE,IAAI,EAAE,CAAC,8CAA8C,GAAG,EAAE,CAAC,CAAC;QACjE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;IACvB,CAAC;AACH,CAAC;AAED;;GAEG;AACH,8DAA8D;AAC9D,KAAK,UAAU,iBAAiB,CAAC,MAAuB,EAAE,QAAa;IACrE,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC;QACnC,OAAO,EAAE,cAAc;QACvB,WAAW,EAAE,WAAW;QACxB,QAAQ,EAAE,CAAC,CAAS,EAAE,EAAE;YACtB,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE;gBAAE,OAAO,UAAU,CAAC;YAClC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC;gBAAE,OAAO,gCAAgC,CAAC;YACvE,OAAO,SAAS,CAAC;QACnB,CAAC;KACF,CAAC,CAAC;IACH,IAAI,CAAC,QAAQ,EAAE,IAAI,EAAE;QAAE,OAAO,IAAI,CAAC;IAEnC,MAAM,WAAW,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC;QACtC,OAAO,EAAE,yBAAyB;QAClC,WAAW,EAAE,iBAAiB;KAC/B,CAAC,CAAC;IAEH,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,cAAc,CAAC;YAC3C,QAAQ,EAAE,QAAQ,CAAC,IAAI,EAAE;YACzB,WAAW,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,QAAQ,CAAC,IAAI,EAAE;SACpD,CAAC,CAAC;QACH,oEAAoE;QACpE,8DAA8D;QAC9D,MAAM,QAAQ,GAAI,QAAgB,CAAC,QAAQ,IAAI,QAAQ,CAAC;QACxD,MAAM,QAAQ,CAAC,IAAI,CAAC,YAAY,QAAQ,CAAC,QAAQ,KAAK,QAAQ,CAAC,EAAE,IAAI,QAAQ,CAAC,UAAU,GAAG,EAAE,kBAAkB,CAAC,CAAC;QACjH,OAAO,QAAQ,CAAC,EAAE,IAAI,QAAQ,CAAC,UAAU,CAAC;IAC5C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,QAAQ,CAAC,IAAI,CAAC,WAAW,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE,OAAO,CAAC,CAAC;QAC1F,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACH,KAAK,UAAU,mBAAmB,CAAC,IAclC;IACC,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,UAAU,EAAE,iBAAiB,EAAE,GAAG,IAAI,CAAC;IAEzG,MAAM,QAAQ,GAAG,GAAG,CAAC,gBAAgB,CAAC;IACtC,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC;IAC5B,IAAI,IAAI,GAAG,GAAG,CAAC,SAAS,IAAI,EAAE,CAAC;IAE/B,uFAAuF;IACvF,IAAI,GAAG,CAAC,WAAW,EAAE,MAAM,EAAE,CAAC;QAC5B,KAAK,MAAM,GAAG,IAAI,GAAG,CAAC,WAAW,EAAE,CAAC;YAClC,MAAM,MAAM,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;YAC9E,IAAI,IAAI,kBAAkB,GAAG,CAAC,QAAQ,GAAG,MAAM,CAAC,CAAC,CAAC,KAAK,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC;QAC1E,CAAC;IACH,CAAC;IAED,GAAG,EAAE,IAAI,EAAE,CAAC,IAAI,SAAS,0BAA0B,QAAQ,aAAa,OAAO,KAAK,IAAI,EAAE,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;IAE3G,gEAAgE;IAChE,MAAM,UAAU,GAAG,KAAK,IAAI,EAAE;QAC5B,IAAI,CAAC;YACH,MAAM,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;YACzD,GAAG,EAAE,IAAI,EAAE,CAAC,IAAI,SAAS,6CAA6C,OAAO,EAAE,CAAC,CAAC;QACnF,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,GAAG,EAAE,IAAI,EAAE,CAAC,IAAI,SAAS,kDAAkD,GAAG,EAAE,CAAC,CAAC;QACpF,CAAC;IACH,CAAC,CAAC;IACF,MAAM,UAAU,EAAE,CAAC;IACnB,MAAM,cAAc,GAAG,WAAW,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;IAErD,6CAA6C;IAC7C,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,sBAAsB,CAAC;QAC9D,IAAI,EAAE,IAAI;QACV,OAAO,EAAE,IAAI;QACb,WAAW,EAAE,IAAI;QACjB,iBAAiB,EAAE,IAAI;QACvB,IAAI,EAAE,UAAU,QAAQ,EAAE;QAC1B,EAAE,EAAE,UAAU,aAAa,EAAE;QAC7B,UAAU,EAAE,UAAU,OAAO,EAAE;QAC/B,SAAS,EAAE,SAAS;QACpB,QAAQ,EAAE,OAAO;QACjB,iBAAiB,EAAE,UAAU,OAAO,EAAE;QACtC,UAAU,EAAE,GAAG,CAAC,cAAc,IAAI,QAAQ;QAC1C,QAAQ,EAAE,QAAQ;QAClB,QAAQ,EAAE,UAAU;QACpB,OAAO,EAAE,UAAU;QACnB,UAAU,EAAE,UAAU,GAAG,CAAC,SAAS,EAAE;QACrC,SAAS,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE;KAC1E,CAAC,CAAC;IAEH,mDAAmD;IACnD,IAAI,CAAC;QACH,MAAM,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,wCAAwC,CAAC;YACnE,GAAG,EAAE,UAAU;YACf,GAAG;YACH,iBAAiB,EAAE;gBACjB,8DAA8D;gBAC9D,OAAO,EAAE,KAAK,EAAE,OAAgF,EAAE,IAAsB,EAAE,EAAE;oBAC1H,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,UAAmB,CAAC,CAAC,CAAC,OAAgB,CAAC;oBAEtF,GAAG,EAAE,IAAI,EAAE,CAAC,IAAI,SAAS,kCAAkC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,cAAc,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,eAAe,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,WAAW,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,UAAU,OAAO,CAAC,IAAI,EAAE,MAAM,IAAI,CAAC,QAAQ,CAAC,CAAC;oBACzU,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;wBACjC,KAAK,MAAM,CAAC,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;4BAC9B,GAAG,EAAE,IAAI,EAAE,CAAC,IAAI,SAAS,kCAAkC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,IAAI,IAAI,GAAG,gBAAgB,OAAO,CAAC,CAAC,OAAO,KAAK,QAAQ,SAAS,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,QAAQ,IAAI,GAAG,EAAE,CAAC,CAAC;wBAC5K,CAAC;oBACH,CAAC;oBAED,8DAA8D;oBAC9D,MAAM,QAAQ,GAAa,EAAE,CAAC;oBAC9B,IAAI,OAAO,CAAC,QAAQ;wBAAE,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;oBACtD,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC;wBAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;oBAC1E,MAAM,aAAa,GAAG,MAAM,iBAAiB,CAAC,QAAQ,EAAE,WAAW,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;oBAErF,6EAA6E;oBAC7E,0EAA0E;oBAC1E,IAAI,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC;wBAC1B,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;wBACxE,KAAK,MAAM,CAAC,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;4BAC9B,MAAM,QAAQ,GAAG,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC;4BAC5C,IAAI,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,OAAO,CAAC,CAAC,OAAO,KAAK,QAAQ,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;gCAClG,aAAa,CAAC,IAAI,CAAC;oCACjB,QAAQ;oCACR,QAAQ,EAAE,eAAe;oCACzB,OAAO,EAAE,CAAC,CAAC,OAAO;oCAClB,MAAM,EAAE,WAAW;iCACpB,CAAC,CAAC;4BACL,CAAC;wBACH,CAAC;oBACH,CAAC;oBAED,GAAG,EAAE,IAAI,EAAE,CAAC,IAAI,SAAS,0BAA0B,aAAa,CAAC,MAAM,iBAAiB,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;oBAE1I,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;wBAChD,GAAG,EAAE,KAAK,EAAE,CAAC,IAAI,SAAS,4BAA4B,IAAI,CAAC,IAAI,QAAQ,CAAC,CAAC;wBACzE,OAAO;oBACT,CAAC;oBAED,GAAG,EAAE,IAAI,EAAE,CAAC,IAAI,SAAS,wBAAwB,IAAI,CAAC,IAAI,WAAW,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,IAAI,CAAC,CAAC,WAAW,aAAa,CAAC,MAAM,eAAe,CAAC,CAAC;oBAEhJ,IAAI,CAAC;wBACH,qDAAqD;wBACrD,IAAI,aAAiC,CAAC;wBACtC,IAAI,iBAAiB,EAAE,GAAG,CAAC,OAAO,CAAC,IAAI,UAAU,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;4BAClE,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;4BAC3D,IAAI,MAAM,EAAE,CAAC;gCACX,aAAa,GAAG,mBAAmB,CACjC,OAAO,CAAC,IAAI,EACZ,MAAM,CAAC,GAAG,EACV,OAAO,EACP,MAAM,CAAC,KAAK,EACZ,aAAa,CACd,CAAC;4BACJ,CAAC;iCAAM,CAAC;gCACN,GAAG,EAAE,IAAI,EAAE,CAAC,IAAI,SAAS,yCAAyC,OAAO,qBAAqB,CAAC,CAAC;4BAClG,CAAC;wBACH,CAAC;wBACD,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,OAAO,EAAE;4BAChD,gBAAgB,EAAE,aAAa;4BAC/B,GAAG,CAAC,aAAa;gCACf,CAAC,CAAC,EAAE,UAAU,EAAE,aAAa,EAAE;gCAC/B,CAAC,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,IAAI,IAAI,EAAE,EAAE,CAAC;4BACtC,QAAQ,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE;4BAChC,GAAG,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;yBACpE,CAAC,CAAC;wBACH,IAAI,OAAO,EAAE,iBAAiB,KAAK,KAAK,EAAE,CAAC;4BACzC,GAAG,EAAE,IAAI,EAAE,CAAC,IAAI,SAAS,kEAAkE,OAAO,kCAAkC,CAAC,CAAC;wBACxI,CAAC;6BAAM,CAAC;4BACN,GAAG,EAAE,IAAI,EAAE,CAAC,IAAI,SAAS,iCAAiC,OAAO,cAAc,OAAO,EAAE,iBAAiB,GAAG,CAAC,CAAC;wBAChH,CAAC;oBACH,CAAC;oBAAC,OAAO,KAAK,EAAE,CAAC;wBACf,GAAG,EAAE,KAAK,EAAE,CAAC,IAAI,SAAS,mCAAmC,KAAK,EAAE,CAAC,CAAC;oBACxE,CAAC;gBACH,CAAC;gBACD,8DAA8D;gBAC9D,MAAM,EAAE,CAAC,QAAa,EAAE,IAAwB,EAAE,EAAE;oBAClD,GAAG,EAAE,KAAK,EAAE,CAAC,IAAI,SAAS,4BAA4B,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;gBACxE,CAAC;gBACD,OAAO,EAAE,CAAC,GAAU,EAAE,IAAsB,EAAE,EAAE;oBAC9C,GAAG,EAAE,KAAK,EAAE,CAAC,IAAI,SAAS,aAAa,IAAI,CAAC,IAAI,iBAAiB,GAAG,EAAE,CAAC,CAAC;gBAC1E,CAAC;aACF;YACD,YAAY,EAAE;gBACZ,qBAAqB,EAAE,KAAK;aAC7B;SACF,CAAC,CAAC;IACL,CAAC;YAAS,CAAC;QACT,aAAa,CAAC,cAAc,CAAC,CAAC;IAChC,CAAC;IAED,GAAG,EAAE,IAAI,EAAE,CAAC,IAAI,SAAS,oCAAoC,QAAQ,EAAE,CAAC,CAAC;AAC3E,CAAC"}
@@ -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":"AAAA;;;;;;;;GAQG;AAGH,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAEhD,MAAM,MAAM,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,aAAa;AAC5C,MAAM,oBAAoB,GAAG,GAAG,CAAC;AASjC,MAAM,OAAO,eAAe;IAKhB;IACA;IACA;IANF,cAAc,GAAG,IAAI,GAAG,EAA0B,CAAC;IACnD,aAAa,GAAG,IAAI,GAAG,EAA0B,CAAC;IAE1D,YACU,MAAuB,EACvB,oBAAgC,EAChC,OAAe;QAFf,WAAM,GAAN,MAAM,CAAiB;QACvB,yBAAoB,GAApB,oBAAoB,CAAY;QAChC,YAAO,GAAP,OAAO,CAAQ;IACtB,CAAC;IAEJ;;OAEG;IACH,KAAK,CAAC,iBAAiB,CAAC,OAAe;QACrC,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAChD,IAAI,MAAM,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,SAAS,GAAG,MAAM,EAAE,CAAC;YACrD,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YAClE,IAAI,CAAC,IAAI;gBAAE,OAAO,IAAI,CAAC;YAEvB,MAAM,MAAM,GAAG,iBAAiB,CAAC,IAAI,CAAC,iBAAiB,EAAE,IAAI,CAAC,oBAAoB,CAAC,CAAC;YACpF,MAAM,KAAK,GAAmB;gBAC5B,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,GAAG,EAAE,MAAM;gBACX,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;aACtB,CAAC;YAEF,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;YACxC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,OAAO,IAAI,IAAI,CAAC,KAAK,EAAE,EAAE,KAAK,CAAC,CAAC;YAC1D,OAAO,KAAK,CAAC;QACf,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,WAAW,CAAC,OAAe,EAAE,KAAa;QAC9C,gCAAgC;QAChC,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAChD,IAAI,MAAM,IAAI,MAAM,CAAC,KAAK,KAAK,KAAK,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,SAAS,GAAG,MAAM,EAAE,CAAC;YAC/E,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,oBAAoB;QACpB,MAAM,QAAQ,GAAG,GAAG,OAAO,IAAI,KAAK,EAAE,CAAC;QACvC,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAChD,IAAI,MAAM,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,SAAS,GAAG,MAAM,EAAE,CAAC;YACrD,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,iBAAiB;QACjB,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;YAC5E,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM;gBAAE,OAAO,IAAI,CAAC;YAErC,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAE,CAAC;YAChC,MAAM,MAAM,GAAG,iBAAiB,CAAC,SAAS,CAAC,iBAAiB,EAAE,IAAI,CAAC,oBAAoB,CAAC,CAAC;YACzF,MAAM,KAAK,GAAmB;gBAC5B,OAAO,EAAE,SAAS,CAAC,OAAO;gBAC1B,KAAK,EAAE,SAAS,CAAC,KAAK;gBACtB,GAAG,EAAE,MAAM;gBACX,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;aACtB,CAAC;YAEF,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;YACxC,IAAI,CAAC,aAAa,EAAE,CAAC;YACrB,OAAO,KAAK,CAAC;QACf,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED;;OAEG;IACK,aAAa;QACnB,IAAI,IAAI,CAAC,aAAa,CAAC,IAAI,IAAI,oBAAoB;YAAE,OAAO;QAC5D,0DAA0D;QAC1D,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,GAAG,oBAAoB,CAAC;QAC9D,IAAI,CAAC,GAAG,CAAC,CAAC;QACV,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,EAAE,CAAC;YAC5C,IAAI,CAAC,IAAI,MAAM;gBAAE,MAAM;YACvB,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAC/B,CAAC,EAAE,CAAC;QACN,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,UAAU,CAAC,OAAe;QACxB,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACtC,CAAC;IAED;;OAEG;IACH,KAAK;QACH,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC;QAC5B,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;IAC7B,CAAC;CACF"}
@@ -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":"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"}
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 — only respond in PLAINTEXT_SDK groups
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
- if (!msg.plaintext)
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: msg.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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"}
@@ -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;
@@ -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": "1.5.0",
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
  }