@yungho/noclaw-channel 0.1.9 → 0.4.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.
Files changed (43) hide show
  1. package/dist/channels/TelegramChannel.d.ts +1 -7
  2. package/dist/channels/TelegramChannel.d.ts.map +1 -1
  3. package/dist/channels/TelegramChannel.js +5 -16
  4. package/dist/channels/TelegramChannel.js.map +1 -1
  5. package/dist/channels/WechatChannel.d.ts +1 -2
  6. package/dist/channels/WechatChannel.d.ts.map +1 -1
  7. package/dist/channels/WechatChannel.js +18 -9
  8. package/dist/channels/WechatChannel.js.map +1 -1
  9. package/dist/channels/__tests__/registry.test.d.ts +2 -0
  10. package/dist/channels/__tests__/registry.test.d.ts.map +1 -0
  11. package/dist/channels/__tests__/registry.test.js +104 -0
  12. package/dist/channels/__tests__/registry.test.js.map +1 -0
  13. package/dist/channels/builtin-register.d.ts +13 -0
  14. package/dist/channels/builtin-register.d.ts.map +1 -0
  15. package/dist/channels/builtin-register.js +44 -0
  16. package/dist/channels/builtin-register.js.map +1 -0
  17. package/dist/channels/registry.d.ts +55 -0
  18. package/dist/channels/registry.d.ts.map +1 -0
  19. package/dist/channels/registry.js +65 -0
  20. package/dist/channels/registry.js.map +1 -0
  21. package/dist/config/ConfigManager.d.ts +8 -2
  22. package/dist/config/ConfigManager.d.ts.map +1 -1
  23. package/dist/config/ConfigManager.js +45 -30
  24. package/dist/config/ConfigManager.js.map +1 -1
  25. package/dist/config/TenantConfigManager.d.ts +53 -0
  26. package/dist/config/TenantConfigManager.d.ts.map +1 -0
  27. package/dist/config/TenantConfigManager.js +108 -0
  28. package/dist/config/TenantConfigManager.js.map +1 -0
  29. package/dist/index.d.ts +2 -0
  30. package/dist/index.d.ts.map +1 -1
  31. package/dist/index.js +1 -0
  32. package/dist/index.js.map +1 -1
  33. package/dist/server/ChannelServer.d.ts +7 -16
  34. package/dist/server/ChannelServer.d.ts.map +1 -1
  35. package/dist/server/ChannelServer.js +10 -86
  36. package/dist/server/ChannelServer.js.map +1 -1
  37. package/dist/server/WebSocketServer.d.ts +22 -13
  38. package/dist/server/WebSocketServer.d.ts.map +1 -1
  39. package/dist/server/WebSocketServer.js +149 -109
  40. package/dist/server/WebSocketServer.js.map +1 -1
  41. package/dist/types.d.ts +29 -17
  42. package/dist/types.d.ts.map +1 -1
  43. package/package.json +3 -2
@@ -14,7 +14,6 @@ export declare class TelegramChannel implements IChannel {
14
14
  private pollingInterval?;
15
15
  private messageCallback?;
16
16
  private statusCallbacks;
17
- private qrCodeCallbacks;
18
17
  private lastUpdateId;
19
18
  private readonly POLLING_INTERVAL;
20
19
  constructor(config: TelegramConfig, logger: pino.Logger);
@@ -24,9 +23,8 @@ export declare class TelegramChannel implements IChannel {
24
23
  onMessage(callback: (msg: IpcMessage) => void): void;
25
24
  getStatus(): ChannelStatus;
26
25
  getCapabilities(): ChannelCapabilities;
26
+ getPlatformId(): string;
27
27
  onStatusChange(callback: (status: ChannelStatus) => void): void;
28
- requestQrCode(): void;
29
- onQrCode(callback: (qrCodeUrl: string) => void): void;
30
28
  /**
31
29
  * Start polling for incoming messages
32
30
  */
@@ -51,9 +49,5 @@ export declare class TelegramChannel implements IChannel {
51
49
  * Update connection status
52
50
  */
53
51
  private setStatus;
54
- /**
55
- * Notify listeners about QR code
56
- */
57
- private notifyQrCode;
58
52
  }
59
53
  //# sourceMappingURL=TelegramChannel.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"TelegramChannel.d.ts","sourceRoot":"","sources":["../../src/channels/TelegramChannel.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,cAAc,EAAE,aAAa,EAAE,mBAAmB,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AACpH,OAAO,IAAI,MAAM,MAAM,CAAC;AAqCxB,qBAAa,eAAgB,YAAW,QAAQ;IAC9C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,MAAM,CAAiB;IAC/B,OAAO,CAAC,MAAM,CAAc;IAC5B,OAAO,CAAC,MAAM,CAAiC;IAC/C,OAAO,CAAC,eAAe,CAAC,CAAiB;IACzC,OAAO,CAAC,eAAe,CAAC,CAA4B;IACpD,OAAO,CAAC,eAAe,CAAmD;IAC1E,OAAO,CAAC,eAAe,CAA+C;IACtE,OAAO,CAAC,YAAY,CAAK;IACzB,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAQ;gBAE7B,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM;IAMjD,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IA4BxB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAM3B,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAwBpF,SAAS,CAAC,QAAQ,EAAE,CAAC,GAAG,EAAE,UAAU,KAAK,IAAI,GAAG,IAAI;IAIpD,SAAS,IAAI,aAAa;IAI1B,eAAe,IAAI,mBAAmB;IAUtC,cAAc,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,aAAa,KAAK,IAAI,GAAG,IAAI;IAI/D,aAAa,IAAI,IAAI;IAKrB,QAAQ,CAAC,QAAQ,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI;IAIrD;;OAEG;IACH,OAAO,CAAC,mBAAmB;IA+C3B;;OAEG;IACH,OAAO,CAAC,WAAW;IAOnB;;OAEG;YACW,WAAW;IAyBzB;;OAEG;YACW,SAAS;IA2BvB;;OAEG;YACW,WAAW;IAYzB;;OAEG;IACH,OAAO,CAAC,SAAS;IAKjB;;OAEG;IACH,OAAO,CAAC,YAAY;CAGrB"}
1
+ {"version":3,"file":"TelegramChannel.d.ts","sourceRoot":"","sources":["../../src/channels/TelegramChannel.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,cAAc,EAAE,aAAa,EAAE,mBAAmB,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AACpH,OAAO,IAAI,MAAM,MAAM,CAAC;AAqCxB,qBAAa,eAAgB,YAAW,QAAQ;IAC9C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,MAAM,CAAiB;IAC/B,OAAO,CAAC,MAAM,CAAc;IAC5B,OAAO,CAAC,MAAM,CAAiC;IAC/C,OAAO,CAAC,eAAe,CAAC,CAAiB;IACzC,OAAO,CAAC,eAAe,CAAC,CAA4B;IACpD,OAAO,CAAC,eAAe,CAAmD;IAC1E,OAAO,CAAC,YAAY,CAAK;IACzB,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAQ;gBAE7B,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM;IAMjD,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IA4BxB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAM3B,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAwBpF,SAAS,CAAC,QAAQ,EAAE,CAAC,GAAG,EAAE,UAAU,KAAK,IAAI,GAAG,IAAI;IAIpD,SAAS,IAAI,aAAa;IAI1B,eAAe,IAAI,mBAAmB;IAUtC,aAAa,IAAI,MAAM;IAIvB,cAAc,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,aAAa,KAAK,IAAI,GAAG,IAAI;IAI/D;;OAEG;IACH,OAAO,CAAC,mBAAmB;IA+C3B;;OAEG;IACH,OAAO,CAAC,WAAW;IAOnB;;OAEG;YACW,WAAW;IAyBzB;;OAEG;YACW,SAAS;IA2BvB;;OAEG;YACW,WAAW;IAYzB;;OAEG;IACH,OAAO,CAAC,SAAS;CAIlB"}
@@ -12,7 +12,6 @@ export class TelegramChannel {
12
12
  pollingInterval;
13
13
  messageCallback;
14
14
  statusCallbacks = new Set();
15
- qrCodeCallbacks = new Set();
16
15
  lastUpdateId = 0;
17
16
  POLLING_INTERVAL = 2000; // 2 seconds
18
17
  constructor(config, logger) {
@@ -87,16 +86,12 @@ export class TelegramChannel {
87
86
  webhooks: false,
88
87
  };
89
88
  }
89
+ getPlatformId() {
90
+ return 'telegram';
91
+ }
90
92
  onStatusChange(callback) {
91
93
  this.statusCallbacks.add(callback);
92
94
  }
93
- requestQrCode() {
94
- // Telegram uses bot token, not QR code
95
- this.logger.info('Telegram uses bot token authentication, no QR code');
96
- }
97
- onQrCode(callback) {
98
- this.qrCodeCallbacks.add(callback);
99
- }
100
95
  /**
101
96
  * Start polling for incoming messages
102
97
  */
@@ -110,8 +105,8 @@ export class TelegramChannel {
110
105
  if (response.result && response.result.length > 0) {
111
106
  this.logger.debug({ messageCount: response.result.length }, 'Received messages from Telegram');
112
107
  for (const update of response.result) {
113
- // Update last update ID
114
- this.lastUpdateId = update.update_id;
108
+ // Update last update ID (+1 to ACK this update)
109
+ this.lastUpdateId = update.update_id + 1;
115
110
  // Emit message to callback
116
111
  if (update.message?.text) {
117
112
  this.messageCallback?.({
@@ -213,11 +208,5 @@ export class TelegramChannel {
213
208
  this.status = status;
214
209
  this.statusCallbacks.forEach((callback) => callback(status));
215
210
  }
216
- /**
217
- * Notify listeners about QR code
218
- */
219
- notifyQrCode(qrCodeUrl) {
220
- this.qrCodeCallbacks.forEach((callback) => callback(qrCodeUrl));
221
- }
222
211
  }
223
212
  //# sourceMappingURL=TelegramChannel.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"TelegramChannel.js","sourceRoot":"","sources":["../../src/channels/TelegramChannel.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TelegramChannel.js","sourceRoot":"","sources":["../../src/channels/TelegramChannel.ts"],"names":[],"mappings":"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"}
@@ -17,8 +17,6 @@ export declare class WechatChannel implements IChannel {
17
17
  private qrCodeCallbacks;
18
18
  private lastQrCodeUrl?;
19
19
  private getUpdatesBuf;
20
- /** Map contextToken → from_user_id for reply routing */
21
- private contextToUserMap;
22
20
  /** Callback to persist botToken to disk when it changes */
23
21
  private onBotTokenChange?;
24
22
  constructor(config: WechatConfig, logger: pino.Logger, onBotTokenChange?: (token: string) => void);
@@ -27,6 +25,7 @@ export declare class WechatChannel implements IChannel {
27
25
  send(text: string, contextToken: string, _media?: MediaObject[]): Promise<void>;
28
26
  onMessage(callback: (msg: IpcMessage) => void): void;
29
27
  getStatus(): ChannelStatus;
28
+ getPlatformId(): string;
30
29
  getCapabilities(): ChannelCapabilities;
31
30
  onStatusChange(callback: (status: ChannelStatus) => void): void;
32
31
  requestQrCode(): void;
@@ -1 +1 @@
1
- {"version":3,"file":"WechatChannel.d.ts","sourceRoot":"","sources":["../../src/channels/WechatChannel.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,YAAY,EAAE,aAAa,EAAE,mBAAmB,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAClH,OAAO,IAAI,MAAM,MAAM,CAAC;AA8FxB,qBAAa,aAAc,YAAW,QAAQ;IAC5C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,CAAS;IAC1B,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,MAAM,CAAc;IAC5B,OAAO,CAAC,MAAM,CAAiC;IAC/C,OAAO,CAAC,eAAe,CAAC,CAA4B;IACpD,OAAO,CAAC,eAAe,CAAmD;IAC1E,OAAO,CAAC,eAAe,CAA+C;IACtE,OAAO,CAAC,aAAa,CAAC,CAAS;IAC/B,OAAO,CAAC,aAAa,CAAM;IAC3B,wDAAwD;IACxD,OAAO,CAAC,gBAAgB,CAA6B;IACrD,2DAA2D;IAC3D,OAAO,CAAC,gBAAgB,CAAC,CAA0B;gBAEvC,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,gBAAgB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI;IAQ3F,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAwBxB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAM3B,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IA6BrF,SAAS,CAAC,QAAQ,EAAE,CAAC,GAAG,EAAE,UAAU,KAAK,IAAI,GAAG,IAAI;IAIpD,SAAS,IAAI,aAAa;IAI1B,eAAe,IAAI,mBAAmB;IAUtC,cAAc,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,aAAa,KAAK,IAAI,GAAG,IAAI;IAI/D,aAAa,IAAI,IAAI;IAUrB,QAAQ,CAAC,QAAQ,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI;YAMvC,sBAAsB;YAqBtB,gBAAgB;IA2E9B,OAAO,CAAC,cAAc,CAAS;IAE/B,OAAO,CAAC,mBAAmB;YAOb,QAAQ;YAMR,QAAQ;IA8EtB,OAAO,CAAC,WAAW;YAML,QAAQ;IA+BtB,OAAO,CAAC,SAAS;IAKjB,OAAO,CAAC,YAAY;CAGrB"}
1
+ {"version":3,"file":"WechatChannel.d.ts","sourceRoot":"","sources":["../../src/channels/WechatChannel.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,YAAY,EAAE,aAAa,EAAE,mBAAmB,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAClH,OAAO,IAAI,MAAM,MAAM,CAAC;AA8FxB,qBAAa,aAAc,YAAW,QAAQ;IAC5C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,CAAS;IAC1B,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,MAAM,CAAc;IAC5B,OAAO,CAAC,MAAM,CAAiC;IAC/C,OAAO,CAAC,eAAe,CAAC,CAA4B;IACpD,OAAO,CAAC,eAAe,CAAmD;IAC1E,OAAO,CAAC,eAAe,CAA+C;IACtE,OAAO,CAAC,aAAa,CAAC,CAAS;IAC/B,OAAO,CAAC,aAAa,CAAM;IAC3B,2DAA2D;IAC3D,OAAO,CAAC,gBAAgB,CAAC,CAA0B;gBAEvC,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,gBAAgB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI;IAQ3F,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAwBxB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAM3B,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IA4BrF,SAAS,CAAC,QAAQ,EAAE,CAAC,GAAG,EAAE,UAAU,KAAK,IAAI,GAAG,IAAI;IAIpD,SAAS,IAAI,aAAa;IAI1B,aAAa,IAAI,MAAM;IAIvB,eAAe,IAAI,mBAAmB;IAUtC,cAAc,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,aAAa,KAAK,IAAI,GAAG,IAAI;IAI/D,aAAa,IAAI,IAAI;IAUrB,QAAQ,CAAC,QAAQ,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI;YAMvC,sBAAsB;YAsBtB,gBAAgB;IA2E9B,OAAO,CAAC,cAAc,CAAS;IAE/B,OAAO,CAAC,mBAAmB;YAOb,QAAQ;YAMR,QAAQ;IAwFtB,OAAO,CAAC,WAAW;YAML,QAAQ;IA+BtB,OAAO,CAAC,SAAS;IAKjB,OAAO,CAAC,YAAY;CAGrB"}
@@ -58,8 +58,6 @@ export class WechatChannel {
58
58
  qrCodeCallbacks = new Set();
59
59
  lastQrCodeUrl;
60
60
  getUpdatesBuf = '';
61
- /** Map contextToken → from_user_id for reply routing */
62
- contextToUserMap = new Map();
63
61
  /** Callback to persist botToken to disk when it changes */
64
62
  onBotTokenChange;
65
63
  constructor(config, logger, onBotTokenChange) {
@@ -99,11 +97,11 @@ export class WechatChannel {
99
97
  if (!this.botToken) {
100
98
  throw new Error('Not authenticated. Please connect first.');
101
99
  }
102
- const toUserId = this.contextToUserMap.get(contextToken) || '';
100
+ // context_token is the routing key itself, no need to track userId
103
101
  const body = JSON.stringify({
104
102
  msg: {
105
103
  from_user_id: '',
106
- to_user_id: toUserId,
104
+ to_user_id: '', // Not needed, context_token handles routing
107
105
  client_id: generateClientId(),
108
106
  message_type: 2, // MSG_TYPE_BOT
109
107
  message_state: 2, // MSG_STATE_FINISH
@@ -127,6 +125,9 @@ export class WechatChannel {
127
125
  getStatus() {
128
126
  return this.status;
129
127
  }
128
+ getPlatformId() {
129
+ return 'wechat';
130
+ }
130
131
  getCapabilities() {
131
132
  return {
132
133
  textMessaging: true,
@@ -160,11 +161,12 @@ export class WechatChannel {
160
161
  throw new Error(`QR fetch failed: ${qrRes.status}`);
161
162
  const qrResp = (await qrRes.json());
162
163
  this.logger.info({ qrCodeId: qrResp.qrcode }, 'QR code obtained');
163
- // Step 2: Display in terminal
164
+ // Step 2: Display in terminal and notify WebSocket clients
164
165
  this.lastQrCodeUrl = qrResp.qrcode_img_content;
165
166
  console.log('\n📱 Please scan QR code below to login:\n');
166
167
  QRCode.generate(qrResp.qrcode_img_content, { small: true });
167
168
  console.log(`\nOr copy this link: ${qrResp.qrcode_img_content}\n`);
169
+ this.notifyQrCode(qrResp.qrcode_img_content);
168
170
  // Step 3: Poll for scan status
169
171
  await this.pollQrCodeStatus(qrResp.qrcode);
170
172
  }
@@ -259,7 +261,18 @@ export class WechatChannel {
259
261
  const isError = (resp.ret !== undefined && resp.ret !== 0) ||
260
262
  (resp.errcode !== undefined && resp.errcode !== 0);
261
263
  if (isError) {
264
+ const errcode = resp.errcode ?? resp.ret ?? 0;
262
265
  this.logger.error({ ret: resp.ret, errcode: resp.errcode, errmsg: resp.errmsg }, 'getUpdates returned error');
266
+ // Token expired or invalid — clear it and fall back to QR auth
267
+ if (errcode === 40001 || errcode === 40003 || errcode === 42001 || errcode === 44001) {
268
+ this.logger.warn('WeChat bot token appears invalid/expired, clearing and restarting QR auth');
269
+ this.botToken = undefined;
270
+ this.config.botToken = undefined;
271
+ this.onBotTokenChange?.('');
272
+ this.setStatus('disconnected');
273
+ void this.authenticateWithQrCode().catch(e => this.logger.error({ error: String(e) }, 'Failed to restart QR auth after token error'));
274
+ return; // exit poll loop — QR auth will restart polling on success
275
+ }
263
276
  await new Promise(r => setTimeout(r, 2000));
264
277
  return;
265
278
  }
@@ -277,10 +290,6 @@ export class WechatChannel {
277
290
  if (!text)
278
291
  continue;
279
292
  const senderId = msg.from_user_id || 'unknown';
280
- // Save contextToken → senderId mapping for reply routing
281
- if (msg.context_token) {
282
- this.contextToUserMap.set(msg.context_token, senderId);
283
- }
284
293
  this.logger.info({ from: senderId, textPreview: text.slice(0, 60) }, 'Received WeChat message');
285
294
  this.messageCallback?.({
286
295
  type: 'MSG_IN',
@@ -1 +1 @@
1
- {"version":3,"file":"WechatChannel.js","sourceRoot":"","sources":["../../src/channels/WechatChannel.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"WechatChannel.js","sourceRoot":"","sources":["../../src/channels/WechatChannel.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=registry.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.test.d.ts","sourceRoot":"","sources":["../../../src/channels/__tests__/registry.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,104 @@
1
+ /**
2
+ * Unit tests for ChannelRegistry.
3
+ */
4
+ import { describe, it, expect, beforeEach } from "vitest";
5
+ import { ChannelRegistry } from "../registry.js";
6
+ // ============================================================================
7
+ // Minimal mock channel implementation
8
+ // ============================================================================
9
+ function createMockChannel(platformId) {
10
+ let status = "disconnected";
11
+ const messageCbs = [];
12
+ const statusCbs = [];
13
+ return {
14
+ getPlatformId: () => platformId,
15
+ connect: async () => { status = "connected"; },
16
+ disconnect: async () => { status = "disconnected"; },
17
+ send: async (_text, _contextToken, _media) => { },
18
+ onMessage: (cb) => { messageCbs.push(cb); },
19
+ getStatus: () => status,
20
+ getCapabilities: () => ({
21
+ textMessaging: true,
22
+ mediaSharing: false,
23
+ permissionRelay: true,
24
+ richFormatting: false,
25
+ webhooks: false,
26
+ }),
27
+ onStatusChange: (cb) => { statusCbs.push(cb); },
28
+ };
29
+ }
30
+ // ============================================================================
31
+ // Tests
32
+ // ============================================================================
33
+ describe("ChannelRegistry", () => {
34
+ let registry;
35
+ const mockLogger = { info: () => { }, warn: () => { }, error: () => { }, debug: () => { }, child: () => mockLogger };
36
+ beforeEach(() => {
37
+ registry = new ChannelRegistry();
38
+ });
39
+ describe("register()", () => {
40
+ it("should register a platform factory", () => {
41
+ registry.register("test-platform", (cfg, log) => createMockChannel("test-platform"));
42
+ expect(registry.getRegisteredPlatforms()).toContain("test-platform");
43
+ });
44
+ it("should throw on duplicate registration", () => {
45
+ registry.register("test-platform", () => createMockChannel("test-platform"));
46
+ expect(() => {
47
+ registry.register("test-platform", () => createMockChannel("test-platform"));
48
+ }).toThrow("already registered");
49
+ });
50
+ it("should store platform defaults", () => {
51
+ registry.register("test-platform", () => createMockChannel("test-platform"), {
52
+ enabled: true,
53
+ apiKey: "default-key",
54
+ });
55
+ const defaults = registry.getPlatformDefaults();
56
+ expect(defaults["test-platform"]).toEqual({ enabled: true, apiKey: "default-key" });
57
+ });
58
+ });
59
+ describe("create()", () => {
60
+ it("should return an IChannel instance", () => {
61
+ registry.register("test-platform", (cfg, log) => createMockChannel("test-platform"));
62
+ const channel = registry.create("test-platform", { enabled: true }, mockLogger);
63
+ expect(channel.getPlatformId()).toBe("test-platform");
64
+ expect(channel.getStatus()).toBe("disconnected");
65
+ });
66
+ it("should throw for unregistered platform", () => {
67
+ expect(() => {
68
+ registry.create("nonexistent", {}, mockLogger);
69
+ }).toThrow("unknown platform");
70
+ });
71
+ it("should merge tenant config over defaults", () => {
72
+ registry.register("test-platform", (cfg, log) => {
73
+ expect(cfg.apiKey).toBe("tenant-override-key");
74
+ return createMockChannel("test-platform");
75
+ }, { enabled: false, apiKey: "default-key" });
76
+ registry.create("test-platform", { enabled: true, apiKey: "tenant-override-key" }, mockLogger);
77
+ // expect assertion in factory — if it passes, merge worked
78
+ });
79
+ });
80
+ describe("getRegisteredPlatforms()", () => {
81
+ it("should return empty array when nothing registered", () => {
82
+ expect(registry.getRegisteredPlatforms()).toEqual([]);
83
+ });
84
+ it("should return all registered platform names", () => {
85
+ registry.register("wechat", () => createMockChannel("wechat"));
86
+ registry.register("telegram", () => createMockChannel("telegram"));
87
+ registry.register("discord", () => createMockChannel("discord"));
88
+ expect(registry.getRegisteredPlatforms()).toEqual(["wechat", "telegram", "discord"]);
89
+ });
90
+ });
91
+ describe("getPlatformDefaults()", () => {
92
+ it("should return empty object when nothing registered", () => {
93
+ expect(registry.getPlatformDefaults()).toEqual({});
94
+ });
95
+ it("should return a copy, not reference", () => {
96
+ registry.register("test", () => createMockChannel("test"), { enabled: false });
97
+ const d1 = registry.getPlatformDefaults();
98
+ d1.test.enabled = true;
99
+ const d2 = registry.getPlatformDefaults();
100
+ expect(d2.test.enabled).toBe(false); // unchanged
101
+ });
102
+ });
103
+ });
104
+ //# sourceMappingURL=registry.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.test.js","sourceRoot":"","sources":["../../../src/channels/__tests__/registry.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Built-in platform registration.
3
+ *
4
+ * This file is the ONLY place in the server where platform-specific imports
5
+ * need to exist. Third-party platforms follow the same pattern:
6
+ *
7
+ * import { registry } from '@yungho/noclaw-channel';
8
+ * registry.register('discord', (cfg, log, ctx) => new DiscordChannel(cfg, log, ctx), {
9
+ * enabled: false, botToken: '', ...
10
+ * });
11
+ */
12
+ export {};
13
+ //# sourceMappingURL=builtin-register.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"builtin-register.d.ts","sourceRoot":"","sources":["../../src/channels/builtin-register.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG"}
@@ -0,0 +1,44 @@
1
+ /**
2
+ * Built-in platform registration.
3
+ *
4
+ * This file is the ONLY place in the server where platform-specific imports
5
+ * need to exist. Third-party platforms follow the same pattern:
6
+ *
7
+ * import { registry } from '@yungho/noclaw-channel';
8
+ * registry.register('discord', (cfg, log, ctx) => new DiscordChannel(cfg, log, ctx), {
9
+ * enabled: false, botToken: '', ...
10
+ * });
11
+ */
12
+ import { registry } from './registry.js';
13
+ import { WechatChannel } from './WechatChannel.js';
14
+ import { TelegramChannel } from './TelegramChannel.js';
15
+ registry.register('wechat', (config, logger, context) => {
16
+ const wechatConfig = config;
17
+ return new WechatChannel(wechatConfig, logger, context.persistConfig
18
+ ? async (newToken) => {
19
+ await context.persistConfig({ botToken: newToken });
20
+ }
21
+ : undefined);
22
+ }, {
23
+ enabled: false,
24
+ botToken: '',
25
+ baseUrl: 'https://ilinkai.weixin.qq.com',
26
+ permissions: {
27
+ chat: 'all',
28
+ executeTools: true,
29
+ permissionRelay: true,
30
+ adminUsers: [],
31
+ },
32
+ });
33
+ registry.register('telegram', (config, logger) => new TelegramChannel(config, logger), {
34
+ enabled: false,
35
+ botToken: '',
36
+ allowedUsers: [],
37
+ permissions: {
38
+ chat: 'all',
39
+ executeTools: true,
40
+ permissionRelay: true,
41
+ adminUsers: [],
42
+ },
43
+ });
44
+ //# sourceMappingURL=builtin-register.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"builtin-register.js","sourceRoot":"","sources":["../../src/channels/builtin-register.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEvD,QAAQ,CAAC,QAAQ,CACf,QAAQ,EACR,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE;IAC1B,MAAM,YAAY,GAAG,MAAa,CAAC;IACnC,OAAO,IAAI,aAAa,CACtB,YAAY,EACZ,MAAM,EACN,OAAO,CAAC,aAAa;QACnB,CAAC,CAAC,KAAK,EAAE,QAAgB,EAAE,EAAE;YACzB,MAAM,OAAO,CAAC,aAAc,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC;QACvD,CAAC;QACH,CAAC,CAAC,SAAS,CACd,CAAC;AACJ,CAAC,EACD;IACE,OAAO,EAAE,KAAK;IACd,QAAQ,EAAE,EAAE;IACZ,OAAO,EAAE,+BAA+B;IACxC,WAAW,EAAE;QACX,IAAI,EAAE,KAAK;QACX,YAAY,EAAE,IAAI;QAClB,eAAe,EAAE,IAAI;QACrB,UAAU,EAAE,EAAE;KACf;CACF,CACF,CAAC;AAEF,QAAQ,CAAC,QAAQ,CACf,UAAU,EACV,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,CAAC,IAAI,eAAe,CAAC,MAAa,EAAE,MAAM,CAAC,EAC9D;IACE,OAAO,EAAE,KAAK;IACd,QAAQ,EAAE,EAAE;IACZ,YAAY,EAAE,EAAE;IAChB,WAAW,EAAE;QACX,IAAI,EAAE,KAAK;QACX,YAAY,EAAE,IAAI;QAClB,eAAe,EAAE,IAAI;QACrB,UAAU,EAAE,EAAE;KACf;CACF,CACF,CAAC"}
@@ -0,0 +1,55 @@
1
+ /**
2
+ * Channel Registry
3
+ *
4
+ * Allows chat platform implementations (WeChat, Telegram, Discord, etc.)
5
+ * to register themselves without modifying core server code.
6
+ *
7
+ * Third-party developers: implement IChannel, then call
8
+ * registry.register('your-platform', (config, logger) => new YourChannel(config, logger));
9
+ */
10
+ import type { IChannel } from '../types.js';
11
+ import type { Logger } from 'pino';
12
+ export type PlatformConfig = Record<string, unknown>;
13
+ export interface ChannelContext {
14
+ /**
15
+ * Persist updated platform config (e.g., a botToken acquired during QR auth).
16
+ * Called by channel implementations when they need to save runtime-generated secrets.
17
+ */
18
+ persistConfig?: (updated: PlatformConfig) => Promise<void>;
19
+ }
20
+ export type ChannelFactory = (config: PlatformConfig, logger: Logger, context: ChannelContext) => IChannel;
21
+ export declare class ChannelRegistry {
22
+ private entries;
23
+ /**
24
+ * Register a platform channel implementation.
25
+ *
26
+ * @param name - Platform identifier (e.g. "wechat", "discord"). Must be unique.
27
+ * @param factory - Factory function that creates an IChannel instance from config.
28
+ * @param defaults- Default configuration values for this platform (applied when a tenant
29
+ * has not provided explicit overrides).
30
+ * @throws If a platform with the same name is already registered.
31
+ */
32
+ register(name: string, factory: ChannelFactory, defaults?: PlatformConfig): void;
33
+ /**
34
+ * Create a channel instance for the given platform.
35
+ *
36
+ * @param name - Platform identifier (must have been registered via register()).
37
+ * @param config - Tenant-provided platform configuration (merged over defaults).
38
+ * @param logger - Pino logger instance.
39
+ * @returns An IChannel instance ready to be connected.
40
+ * @throws If the platform is not registered.
41
+ */
42
+ create(name: string, config: PlatformConfig, logger: Logger, context?: ChannelContext): IChannel;
43
+ /**
44
+ * Get the list of all registered platform names.
45
+ */
46
+ getRegisteredPlatforms(): string[];
47
+ /**
48
+ * Get default configuration for all registered platforms.
49
+ * Used by ConfigManager when initializing server-wide settings.
50
+ */
51
+ getPlatformDefaults(): Record<string, PlatformConfig>;
52
+ }
53
+ /** Singleton registry instance used across the server. */
54
+ export declare const registry: ChannelRegistry;
55
+ //# sourceMappingURL=registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/channels/registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAEnC,MAAM,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAErD,MAAM,WAAW,cAAc;IAC7B;;;OAGG;IACH,aAAa,CAAC,EAAE,CAAC,OAAO,EAAE,cAAc,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAC5D;AAED,MAAM,MAAM,cAAc,GAAG,CAC3B,MAAM,EAAE,cAAc,EACtB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,cAAc,KACpB,QAAQ,CAAC;AAOd,qBAAa,eAAe;IAC1B,OAAO,CAAC,OAAO,CAAoC;IAEnD;;;;;;;;OAQG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,EAAE,QAAQ,GAAE,cAAmB,GAAG,IAAI;IAOpF;;;;;;;;OAQG;IACH,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAE,cAAmB,GAAG,QAAQ;IAYpG;;OAEG;IACH,sBAAsB,IAAI,MAAM,EAAE;IAIlC;;;OAGG;IACH,mBAAmB,IAAI,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC;CAOtD;AAED,0DAA0D;AAC1D,eAAO,MAAM,QAAQ,iBAAwB,CAAC"}
@@ -0,0 +1,65 @@
1
+ /**
2
+ * Channel Registry
3
+ *
4
+ * Allows chat platform implementations (WeChat, Telegram, Discord, etc.)
5
+ * to register themselves without modifying core server code.
6
+ *
7
+ * Third-party developers: implement IChannel, then call
8
+ * registry.register('your-platform', (config, logger) => new YourChannel(config, logger));
9
+ */
10
+ export class ChannelRegistry {
11
+ entries = new Map();
12
+ /**
13
+ * Register a platform channel implementation.
14
+ *
15
+ * @param name - Platform identifier (e.g. "wechat", "discord"). Must be unique.
16
+ * @param factory - Factory function that creates an IChannel instance from config.
17
+ * @param defaults- Default configuration values for this platform (applied when a tenant
18
+ * has not provided explicit overrides).
19
+ * @throws If a platform with the same name is already registered.
20
+ */
21
+ register(name, factory, defaults = {}) {
22
+ if (this.entries.has(name)) {
23
+ throw new Error(`ChannelRegistry: platform "${name}" is already registered`);
24
+ }
25
+ this.entries.set(name, { factory, defaults });
26
+ }
27
+ /**
28
+ * Create a channel instance for the given platform.
29
+ *
30
+ * @param name - Platform identifier (must have been registered via register()).
31
+ * @param config - Tenant-provided platform configuration (merged over defaults).
32
+ * @param logger - Pino logger instance.
33
+ * @returns An IChannel instance ready to be connected.
34
+ * @throws If the platform is not registered.
35
+ */
36
+ create(name, config, logger, context = {}) {
37
+ const entry = this.entries.get(name);
38
+ if (!entry) {
39
+ throw new Error(`ChannelRegistry: unknown platform "${name}". ` +
40
+ `Registered platforms: ${[...this.entries.keys()].join(', ') || '(none)'}`);
41
+ }
42
+ const mergedConfig = { ...entry.defaults, ...config };
43
+ return entry.factory(mergedConfig, logger, context);
44
+ }
45
+ /**
46
+ * Get the list of all registered platform names.
47
+ */
48
+ getRegisteredPlatforms() {
49
+ return [...this.entries.keys()];
50
+ }
51
+ /**
52
+ * Get default configuration for all registered platforms.
53
+ * Used by ConfigManager when initializing server-wide settings.
54
+ */
55
+ getPlatformDefaults() {
56
+ const defaults = {};
57
+ for (const [name, entry] of this.entries) {
58
+ defaults[name] = { ...entry.defaults };
59
+ }
60
+ return defaults;
61
+ }
62
+ }
63
+ /** Singleton registry instance used across the server. */
64
+ export const registry = new ChannelRegistry();
65
+ //# sourceMappingURL=registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/channels/registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AA0BH,MAAM,OAAO,eAAe;IAClB,OAAO,GAAG,IAAI,GAAG,EAAyB,CAAC;IAEnD;;;;;;;;OAQG;IACH,QAAQ,CAAC,IAAY,EAAE,OAAuB,EAAE,WAA2B,EAAE;QAC3E,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YAC3B,MAAM,IAAI,KAAK,CAAC,8BAA8B,IAAI,yBAAyB,CAAC,CAAC;QAC/E,CAAC;QACD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC;IAChD,CAAC;IAED;;;;;;;;OAQG;IACH,MAAM,CAAC,IAAY,EAAE,MAAsB,EAAE,MAAc,EAAE,UAA0B,EAAE;QACvF,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACrC,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,IAAI,KAAK,CACb,sCAAsC,IAAI,KAAK;gBAC/C,yBAAyB,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,QAAQ,EAAE,CAC3E,CAAC;QACJ,CAAC;QACD,MAAM,YAAY,GAAG,EAAE,GAAG,KAAK,CAAC,QAAQ,EAAE,GAAG,MAAM,EAAE,CAAC;QACtD,OAAO,KAAK,CAAC,OAAO,CAAC,YAAY,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IACtD,CAAC;IAED;;OAEG;IACH,sBAAsB;QACpB,OAAO,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;IAClC,CAAC;IAED;;;OAGG;IACH,mBAAmB;QACjB,MAAM,QAAQ,GAAmC,EAAE,CAAC;QACpD,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACzC,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC;QACzC,CAAC;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC;CACF;AAED,0DAA0D;AAC1D,MAAM,CAAC,MAAM,QAAQ,GAAG,IAAI,eAAe,EAAE,CAAC"}
@@ -7,11 +7,17 @@ export declare class ConfigManager {
7
7
  private configPath;
8
8
  constructor(configPath?: string);
9
9
  /**
10
- * Load configuration from file
10
+ * Load configuration from file, migrating old format if necessary.
11
11
  */
12
12
  private loadConfig;
13
13
  /**
14
- * Get default configuration
14
+ * Migrate config from v0.3.x format (top-level wechat/telegram) to
15
+ * v0.4.x format (platforms map). Idempotent — if already migrated, no-op.
16
+ */
17
+ private migrateConfig;
18
+ /**
19
+ * Get default configuration — platform defaults come from the registry,
20
+ * so a newly registered platform automatically appears in server defaults.
15
21
  */
16
22
  private getDefaultConfig;
17
23
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"ConfigManager.d.ts","sourceRoot":"","sources":["../../src/config/ConfigManager.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAQ5C,qBAAa,aAAa;IACxB,OAAO,CAAC,MAAM,CAAgB;IAC9B,OAAO,CAAC,UAAU,CAAS;gBAEf,UAAU,CAAC,EAAE,MAAM;IAK/B;;OAEG;IACH,OAAO,CAAC,UAAU;IAiBlB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IA4BxB;;OAEG;IACH,UAAU,CAAC,MAAM,EAAE,aAAa,GAAG,IAAI;IAevC;;OAEG;IACH,SAAS,IAAI,aAAa;IAI1B;;OAEG;IACH,aAAa,IAAI,MAAM;IAIvB;;OAEG;IACH,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,aAAa,CAAC,GAAG,IAAI;IAKnD;;OAEG;IACG,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC;IAwCvC;;OAEG;IACG,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;IAmBlC;;OAEG;IACG,SAAS,IAAI,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,aAAa,CAAA;KAAE,CAAC;CAkBtF"}
1
+ {"version":3,"file":"ConfigManager.d.ts","sourceRoot":"","sources":["../../src/config/ConfigManager.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAS5C,qBAAa,aAAa;IACxB,OAAO,CAAC,MAAM,CAAgB;IAC9B,OAAO,CAAC,UAAU,CAAS;gBAEf,UAAU,CAAC,EAAE,MAAM;IAK/B;;OAEG;IACH,OAAO,CAAC,UAAU;IAkBlB;;;OAGG;IACH,OAAO,CAAC,aAAa;IA2BrB;;;OAGG;IACH,OAAO,CAAC,gBAAgB;IASxB;;OAEG;IACH,UAAU,CAAC,MAAM,EAAE,aAAa,GAAG,IAAI;IAevC;;OAEG;IACH,SAAS,IAAI,aAAa;IAI1B;;OAEG;IACH,aAAa,IAAI,MAAM;IAIvB;;OAEG;IACH,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,aAAa,CAAC,GAAG,IAAI;IAKnD;;OAEG;IACG,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC;IA4CvC;;OAEG;IACG,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;IAmBlC;;OAEG;IACG,SAAS,IAAI,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,aAAa,CAAA;KAAE,CAAC;CAkBtF"}