@ebowwa/channel-telegram 1.13.0 → 1.13.2

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.
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,WAAW,MAAM,uBAAuB,CAAC;AAEhD,OAAO,EACL,KAAK,SAAS,EAEd,KAAK,eAAe,EACpB,KAAK,mBAAmB,EAGxB,KAAK,cAAc,EAEpB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAE9D,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAGvC,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,mBAAmB,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AACnE,YAAY,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAMvC,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,iEAAiE;IACjE,KAAK,CAAC,EAAE,IAAI,EAAE,CAAC;IACf,uCAAuC;IACvC,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,wBAAgB,2BAA2B,IAAI,cAAc,CAkB5D;AAMD,qBAAa,eAAe;IAC1B,QAAQ,CAAC,EAAE,EAAE,SAAS,CAAC;IACvB,QAAQ,CAAC,KAAK,cAAc;IAC5B,QAAQ,CAAC,YAAY,EAAE,mBAAmB,CAkBxC;IAEF,OAAO,CAAC,GAAG,CAAc;IACzB,OAAO,CAAC,MAAM,CAAiB;IAC/B,OAAO,CAAC,MAAM,CAAqB;IACnC,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,cAAc,CAAC,CAAiB;IACxC,OAAO,CAAC,eAAe,CAA0C;IACjE,OAAO,CAAC,SAAS,CAAS;gBAEd,MAAM,EAAE,cAAc;IAY5B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAgCtB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAM3B;;OAEG;IACH,SAAS,CAAC,OAAO,EAAE,cAAc,GAAG,IAAI;IAIxC;;OAEG;IACG,IAAI,CAAC,QAAQ,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IAkBpD,WAAW,IAAI,OAAO;IAQtB;;OAEG;IACH,MAAM,IAAI,WAAW;IAIrB;;OAEG;IACH,SAAS,IAAI,kBAAkB;IAI/B;;OAEG;IACG,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,WAAW,CAAC,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC;IAIxG;;OAEG;IACG,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI/C;;OAEG;IACH,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAS1C;;OAEG;IACH,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAQzC;;OAEG;IACH,SAAS,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO;IAoBpD,OAAO,CAAC,oBAAoB;IAyG5B;;OAEG;YACW,gBAAgB;IAiB9B;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAoC5B,OAAO,CAAC,aAAa;IAOrB;;OAEG;YACW,eAAe;CAkC9B;AAMD,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,cAAc,GAAG,eAAe,CAE7E"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,WAAW,MAAM,uBAAuB,CAAC;AAEhD,OAAO,EACL,KAAK,SAAS,EAEd,KAAK,eAAe,EACpB,KAAK,mBAAmB,EAGxB,KAAK,cAAc,EAEpB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAE9D,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAGvC,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,mBAAmB,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AACnE,YAAY,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAMvC,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,iEAAiE;IACjE,KAAK,CAAC,EAAE,IAAI,EAAE,CAAC;IACf,uCAAuC;IACvC,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,wBAAgB,2BAA2B,IAAI,cAAc,CAkB5D;AAMD,qBAAa,eAAe;IAC1B,QAAQ,CAAC,EAAE,EAAE,SAAS,CAAC;IACvB,QAAQ,CAAC,KAAK,cAAc;IAC5B,QAAQ,CAAC,YAAY,EAAE,mBAAmB,CAkBxC;IAEF,OAAO,CAAC,GAAG,CAAc;IACzB,OAAO,CAAC,MAAM,CAAiB;IAC/B,OAAO,CAAC,MAAM,CAAqB;IACnC,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,cAAc,CAAC,CAAiB;IACxC,OAAO,CAAC,eAAe,CAA0C;IACjE,OAAO,CAAC,SAAS,CAAS;gBAEd,MAAM,EAAE,cAAc;IAY5B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAgCtB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAM3B;;OAEG;IACH,SAAS,CAAC,OAAO,EAAE,cAAc,GAAG,IAAI;IAIxC;;OAEG;IACG,IAAI,CAAC,QAAQ,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IAkBpD,WAAW,IAAI,OAAO;IAQtB;;OAEG;IACH,MAAM,IAAI,WAAW;IAIrB;;OAEG;IACH,SAAS,IAAI,kBAAkB;IAI/B;;OAEG;IACG,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,WAAW,CAAC,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC;IAIxG;;OAEG;IACG,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI/C;;OAEG;IACH,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAS1C;;OAEG;IACH,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAQzC;;OAEG;IACH,SAAS,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO;IAoBpD,OAAO,CAAC,oBAAoB;IAyG5B;;OAEG;YACW,gBAAgB;IAiB9B;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAuC5B,OAAO,CAAC,aAAa;IAOrB;;OAEG;YACW,eAAe;CAkC9B;AAMD,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,cAAc,GAAG,eAAe,CAE7E"}
package/dist/index.js CHANGED
@@ -336,6 +336,8 @@ export class TelegramChannel {
336
336
  isDM: msg.chat.type === "private",
337
337
  groupName: msg.chat.type !== "private" ? msg.chat.title : undefined,
338
338
  };
339
+ // Use chat ID as accountId for reply routing
340
+ const chatChannelId = createChannelId("telegram", msg.chat.id.toString());
339
341
  // Build reply context
340
342
  let replyText;
341
343
  if (msg.reply_to_message?.text) {
@@ -344,7 +346,7 @@ export class TelegramChannel {
344
346
  }
345
347
  return {
346
348
  messageId: msg.message_id.toString(),
347
- channelId: this.id,
349
+ channelId: chatChannelId,
348
350
  timestamp: new Date(msg.date * 1000),
349
351
  sender,
350
352
  text: replyText ? `${replyText}\n\n${msg.text || ""}` : (msg.text || ""),
@@ -352,7 +354,7 @@ export class TelegramChannel {
352
354
  replyTo: msg.reply_to_message
353
355
  ? {
354
356
  messageId: msg.reply_to_message.message_id.toString(),
355
- channelId: this.id,
357
+ channelId: chatChannelId,
356
358
  }
357
359
  : undefined,
358
360
  };
@@ -428,5 +430,8 @@ async function main() {
428
430
  });
429
431
  await channel.start();
430
432
  }
431
- main().catch(console.error);
433
+ // Only run main when executed directly (not when imported)
434
+ if (import.meta.main) {
435
+ main().catch(console.error);
436
+ }
432
437
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,WAAW,MAAM,uBAAuB,CAAC;AAEhD,OAAO,EAQL,eAAe,GAChB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,mBAAmB,EAAW,MAAM,qBAAqB,CAAC;AAGnE,6BAA6B;AAC7B,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,mBAAmB,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAkBnE,MAAM,UAAU,2BAA2B;IACzC,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,sBAAsB;QACrD,EAAE,KAAK,CAAC,GAAG,CAAC;SACX,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;SAClC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAE5B,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,sBAAsB;QACrD,EAAE,KAAK,CAAC,GAAG,CAAC;SACX,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;SAClC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAE5B,OAAO;QACL,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,EAAE;QAC9C,UAAU,EAAE,OAAO,CAAC,GAAG,CAAC,qBAAqB;QAC7C,YAAY;QACZ,YAAY;QACZ,iBAAiB,EAAE,OAAO,CAAC,GAAG,CAAC,kBAAkB;KAClD,CAAC;AACJ,CAAC;AAED,+DAA+D;AAC/D,mBAAmB;AACnB,+DAA+D;AAE/D,MAAM,OAAO,eAAe;IACjB,EAAE,CAAY;IACd,KAAK,GAAG,UAAU,CAAC;IACnB,YAAY,GAAwB;QAC3C,QAAQ,EAAE;YACR,IAAI,EAAE,IAAI;YACV,KAAK,EAAE,IAAI;YACX,OAAO,EAAE,IAAI;YACb,OAAO,EAAE,KAAK;YACd,SAAS,EAAE,IAAI;YACf,OAAO,EAAE,IAAI;YACb,SAAS,EAAE,KAAK;SACjB;QACD,KAAK,EAAE;YACL,WAAW,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI,EAAE,OAAO;YACtC,kBAAkB,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,iBAAiB,CAAC;SACzE;QACD,UAAU,EAAE;YACV,iBAAiB,EAAE,EAAE;YACrB,oBAAoB,EAAE,IAAI;SAC3B;KACF,CAAC;IAEM,GAAG,CAAc;IACjB,MAAM,CAAiB;IACvB,MAAM,CAAqB;IAC3B,KAAK,CAAS;IACd,cAAc,CAAkB;IAChC,eAAe,GAAgC,IAAI,GAAG,EAAE,CAAC;IACzD,SAAS,GAAG,KAAK,CAAC;IAE1B,YAAY,MAAsB;QAChC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,EAAE,GAAG,eAAe,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;QACjD,IAAI,CAAC,GAAG,GAAG,IAAI,WAAW,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;QAChE,IAAI,CAAC,MAAM,GAAG,IAAI,kBAAkB,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;QAC/D,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC;IAClC,CAAC;IAED,+DAA+D;IAC/D,kCAAkC;IAClC,+DAA+D;IAE/D,KAAK,CAAC,KAAK;QACT,OAAO,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAC;QAE7C,gBAAgB;QAChB,IAAI,CAAC,GAAG,GAAG,IAAI,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE;YAC/C,OAAO,EAAE;gBACP,QAAQ,EAAE,GAAG;gBACb,SAAS,EAAE,IAAI;gBACf,MAAM,EAAE;oBACN,eAAe,EAAE,CAAC,SAAS,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,gBAAgB,CAAC;iBACrF;aACF;SACF,CAAC,CAAC;QAEH,6BAA6B;QAC7B,mBAAmB,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QAEvD,wBAAwB;QACxB,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAE5B,kCAAkC;QAClC,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAE9B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,OAAO,CAAC,GAAG,CAAC,yCAAyC,CAAC,CAAC;QAEvD,0CAA0C;QAC1C,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;YAC3B,MAAM,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,iCAAiC,CAAC,CAAC;QAC5F,CAAC;IACH,CAAC;IAED,KAAK,CAAC,IAAI;QACR,OAAO,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAC;QAC7C,MAAM,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;QAC7B,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;IACzB,CAAC;IAED;;OAEG;IACH,SAAS,CAAC,OAAuB;QAC/B,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC;IAChC,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,IAAI,CAAC,QAAyB;QAClC,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QACpD,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO,CAAC,KAAK,CAAC,2CAA2C,CAAC,CAAC;YAC3D,OAAO;QACT,CAAC;QAED,MAAM,OAAO,GAAmC,EAAE,CAAC;QACnD,IAAI,QAAQ,CAAC,OAAO,CAAC,eAAe,EAAE,CAAC;YACrC,OAAO,CAAC,mBAAmB,GAAG,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;QACzE,CAAC;QACD,IAAI,QAAQ,CAAC,OAAO,CAAC,OAAO,EAAE,SAAS,EAAE,CAAC;YACxC,OAAO,CAAC,UAAU,GAAG,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,SAAgC,CAAC;QACjF,CAAC;QAED,MAAM,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACrE,CAAC;IAED,WAAW;QACT,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED,+DAA+D;IAC/D,iBAAiB;IACjB,+DAA+D;IAE/D;;OAEG;IACH,MAAM;QACJ,OAAO,IAAI,CAAC,GAAG,CAAC;IAClB,CAAC;IAED;;OAEG;IACH,SAAS;QACP,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,WAAW,CAAC,MAAc,EAAE,IAAY,EAAE,OAAwC;QACtF,MAAM,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IACpD,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,UAAU,CAAC,MAAc;QAC7B,MAAM,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAClD,CAAC;IAED;;OAEG;IACH,oBAAoB,CAAC,MAAc;QACjC,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC;QACjC,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QAC1D,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,EAAE;YAChC,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QAC5D,CAAC,EAAE,IAAI,CAAC,CAAC;QACT,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC7C,CAAC;IAED;;OAEG;IACH,mBAAmB,CAAC,MAAc;QAChC,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAClD,IAAI,QAAQ,EAAE,CAAC;YACb,aAAa,CAAC,QAAQ,CAAC,CAAC;YACxB,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACtC,CAAC;IACH,CAAC;IAED;;OAEG;IACH,SAAS,CAAC,MAAe,EAAE,MAAe;QACxC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,MAAM,EAAE,CAAC;YAC3E,OAAO,IAAI,CAAC;QACd,CAAC;QAED,IAAI,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,MAAM,IAAI,MAAM,EAAE,CAAC;YAC/C,IAAI,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC;gBAAE,OAAO,IAAI,CAAC;QAC7D,CAAC;QAED,IAAI,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,MAAM,IAAI,MAAM,EAAE,CAAC;YAC/C,IAAI,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC;gBAAE,OAAO,IAAI,CAAC;QAC7D,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAED,+DAA+D;IAC/D,6BAA6B;IAC7B,+DAA+D;IAEvD,oBAAoB;QAC1B,6DAA6D;QAC7D,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,SAAS,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;YACnC,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;gBAAE,OAAO;YAClD,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,EAAE,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;gBAAE,OAAO;YAEvD,MAAM,OAAO,GAAG,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAC;YAC/C,OAAO,CAAC,GAAG,CAAC,kCAAkC,OAAO,CAAC,MAAM,CAAC,WAAW,KAAK,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC;YAE7G,0BAA0B;YAC1B,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;gBACxB,IAAI,CAAC;oBACH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;oBACpD,IAAI,QAAQ,EAAE,CAAC;wBACb,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;oBAC5B,CAAC;gBACH,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,OAAO,CAAC,KAAK,CAAC,kCAAkC,EAAE,KAAK,CAAC,CAAC;oBACzD,MAAM,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,UAAW,KAAe,CAAC,OAAO,EAAE,CAAC,CAAC;gBAC5E,CAAC;YACH,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,kBAAkB;QAClB,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,gBAAgB,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;YAC1C,IAAI,CAAC,GAAG,CAAC,IAAI;gBAAE,OAAO;YACtB,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,EAAE,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;gBAAE,OAAO;YAEvD,MAAM,OAAO,GAAG,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAC;YAC/C,yBAAyB;YACxB,OAAe,CAAC,IAAI,GAAG,YAAY,GAAG,CAAC,IAAI,EAAE,CAAC;YAE/C,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;gBACxB,IAAI,CAAC;oBACH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;oBACpD,IAAI,QAAQ,EAAE,CAAC;wBACb,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;oBAC5B,CAAC;gBACH,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,OAAO,CAAC,KAAK,CAAC,kCAAkC,EAAE,KAAK,CAAC,CAAC;gBAC3D,CAAC;YACH,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,YAAY;QACX,IAAI,CAAC,GAAW,CAAC,EAAE,CAAC,kBAAkB,EAAE,KAAK,EAAE,QAAa,EAAE,EAAE;YAC/D,MAAM,OAAO,GAAG;gBACd,SAAS,EAAE,QAAQ,CAAC,UAAU,EAAE,QAAQ,EAAE;gBAC1C,SAAS,EAAE,IAAI,CAAC,EAAE;gBAClB,SAAS,EAAE,IAAI,IAAI,EAAE;gBACrB,MAAM,EAAE;oBACN,EAAE,EAAE,QAAQ,CAAC,IAAI,EAAE,EAAE,EAAE,QAAQ,EAAE;oBACjC,WAAW,EAAE,QAAQ,CAAC,IAAI,EAAE,UAAU,IAAI,MAAM;iBACjD;gBACD,IAAI,EAAE,EAAE;gBACR,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,IAAI,KAAK,SAAS,EAAE;gBACpD,QAAQ,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,CAAC,YAAY,EAAE;aAChE,CAAC;YAEF,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;gBACxB,MAAM,IAAI,CAAC,cAAc,CAAC,OAAc,CAAC,CAAC;YAC5C,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,mCAAmC;QACnC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,gBAAgB,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;YAC5C,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,CAAC;YACtC,IAAI,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;gBAC3B,MAAM,IAAI,CAAC,GAAG,CAAC,mBAAmB,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;gBAC7C,OAAO;YACT,CAAC;YAED,MAAM,OAAO,GAAG;gBACd,SAAS,EAAE,KAAK,CAAC,EAAE;gBACnB,SAAS,EAAE,IAAI,CAAC,EAAE;gBAClB,SAAS,EAAE,IAAI,IAAI,EAAE;gBACrB,MAAM,EAAE;oBACN,EAAE,EAAE,KAAK,CAAC,IAAI,EAAE,EAAE,EAAE,QAAQ,EAAE;oBAC9B,WAAW,EAAE,KAAK,CAAC,IAAI,EAAE,UAAU,IAAI,MAAM;iBAC9C;gBACD,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,OAAO,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;gBACzD,QAAQ,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE;aAC/B,CAAC;YAEF,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;gBACxB,IAAI,CAAC;oBACH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,OAAc,CAAC,CAAC;oBAC3D,IAAI,QAAQ,EAAE,CAAC;wBACb,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;oBAC5B,CAAC;gBACH,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,OAAO,CAAC,KAAK,CAAC,2CAA2C,EAAE,KAAK,CAAC,CAAC;gBACpE,CAAC;YACH,CAAC;YAED,MAAM,IAAI,CAAC,GAAG,CAAC,mBAAmB,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAC/C,CAAC,CAAC,CAAC;QAEH,iBAAiB;QACjB,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,eAAe,EAAE,CAAC,KAAK,EAAE,EAAE;YACrC,OAAO,CAAC,KAAK,CAAC,kCAAkC,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;QACnE,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,gBAAgB;QAC5B,MAAM,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC;YAC3B,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE;YAClD,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,yBAAyB,EAAE;YAC3D,EAAE,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,kBAAkB,EAAE;YACtD,EAAE,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,kBAAkB,EAAE;YACnD,EAAE,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,uBAAuB,EAAE;YAC5D,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,kBAAkB,EAAE;YACpD,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,4BAA4B,EAAE;YAC/D,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,sBAAsB,EAAE;YACzD,EAAE,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,yBAAyB,EAAE;YAC9D,EAAE,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,mBAAmB,EAAE;YACvD,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE;YACtD,EAAE,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,mBAAmB,EAAE;SACzD,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACK,oBAAoB,CAAC,GAAwB;QACnD,MAAM,MAAM,GAAkB;YAC5B,EAAE,EAAE,GAAG,CAAC,IAAI,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,EAAE;YACtD,QAAQ,EAAE,GAAG,CAAC,IAAI,EAAE,QAAQ;YAC5B,WAAW,EAAE,GAAG,CAAC,IAAI,EAAE,UAAU,IAAI,GAAG,CAAC,IAAI,EAAE,QAAQ,IAAI,MAAM;YACjE,KAAK,EAAE,GAAG,CAAC,IAAI,EAAE,MAAM,IAAI,KAAK;SACjC,CAAC;QAEF,MAAM,OAAO,GAAmB;YAC9B,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,IAAI,KAAK,SAAS;YACjC,SAAS,EAAE,GAAG,CAAC,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS;SACpE,CAAC;QAEF,6CAA6C;QAC7C,MAAM,aAAa,GAAG,eAAe,CAAC,UAAU,EAAE,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC;QAE1E,sBAAsB;QACtB,IAAI,SAA6B,CAAC;QAClC,IAAI,GAAG,CAAC,gBAAgB,EAAE,IAAI,EAAE,CAAC;YAC/B,MAAM,SAAS,GAAG,GAAG,CAAC,gBAAgB,CAAC,IAAI,EAAE,UAAU,IAAI,MAAM,CAAC;YAClE,SAAS,GAAG,gBAAgB,SAAS,MAAM,GAAG,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC;QACzF,CAAC;QAED,OAAO;YACL,SAAS,EAAE,GAAG,CAAC,UAAU,CAAC,QAAQ,EAAE;YACpC,SAAS,EAAE,aAAa;YACxB,SAAS,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC;YACpC,MAAM;YACN,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,GAAG,SAAS,OAAO,GAAG,CAAC,IAAI,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC;YACxE,OAAO;YACP,OAAO,EAAE,GAAG,CAAC,gBAAgB;gBAC3B,CAAC,CAAC;oBACE,SAAS,EAAE,GAAG,CAAC,gBAAgB,CAAC,UAAU,CAAC,QAAQ,EAAE;oBACrD,SAAS,EAAE,aAAa;iBACzB;gBACH,CAAC,CAAC,SAAS;SACd,CAAC;IACJ,CAAC;IAEO,aAAa,CAAC,OAAoD;QACxE,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC,SAAS,CAAC;QAC9C,MAAM,MAAM,GAAG,QAAQ,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;QACvC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;YAAE,OAAO,MAAM,CAAC;QAClC,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,eAAe,CAC3B,MAAc,EACd,IAAY,EACZ,OAAwC;QAExC,MAAM,UAAU,GAAG,IAAI,CAAC;QAExB,IAAI,IAAI,CAAC,MAAM,IAAI,UAAU,EAAE,CAAC;YAC9B,MAAM,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;YAClD,OAAO;QACT,CAAC;QAED,MAAM,MAAM,GAAa,EAAE,CAAC;QAC5B,IAAI,SAAS,GAAG,IAAI,CAAC;QAErB,OAAO,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC5B,IAAI,SAAS,CAAC,MAAM,IAAI,UAAU,EAAE,CAAC;gBACnC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBACvB,MAAM;YACR,CAAC;YAED,IAAI,UAAU,GAAG,SAAS,CAAC,WAAW,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;YACzD,IAAI,UAAU,GAAG,IAAI;gBAAE,UAAU,GAAG,SAAS,CAAC,WAAW,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;YAC3E,IAAI,UAAU,GAAG,IAAI;gBAAE,UAAU,GAAG,UAAU,CAAC;YAE/C,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC;YAC5C,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,IAAI,EAAE,CAAC;QACjD,CAAC;QAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACvC,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;YACvE,MAAM,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;QAClE,CAAC;IACH,CAAC;CACF;AAED,+DAA+D;AAC/D,UAAU;AACV,+DAA+D;AAE/D,MAAM,UAAU,qBAAqB,CAAC,MAAsB;IAC1D,OAAO,IAAI,eAAe,CAAC,MAAM,CAAC,CAAC;AACrC,CAAC;AAED,+DAA+D;AAC/D,4CAA4C;AAC5C,+DAA+D;AAE/D,KAAK,UAAU,IAAI;IACjB,MAAM,MAAM,GAAG,2BAA2B,EAAE,CAAC;IAE7C,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;QACrB,OAAO,CAAC,KAAK,CAAC,6CAA6C,CAAC,CAAC;QAC7D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,OAAO,GAAG,qBAAqB,CAAC,MAAM,CAAC,CAAC;IAE9C,oCAAoC;IACpC,OAAO,CAAC,SAAS,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;QAC9B,OAAO,CAAC,GAAG,CAAC,aAAa,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;QACrC,OAAO;YACL,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,GAAG,CAAC,IAAI,EAAE,EAAE;YACtC,OAAO,EAAE,EAAE,SAAS,EAAE,GAAG,CAAC,SAAS,EAAE,SAAS,EAAE,GAAG,CAAC,SAAS,EAAE;SAChE,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,KAAK,IAAI,EAAE;QAC9B,MAAM,OAAO,CAAC,IAAI,EAAE,CAAC;QACrB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;IAEH,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,KAAK,IAAI,EAAE;QAC/B,MAAM,OAAO,CAAC,IAAI,EAAE,CAAC;QACrB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;IAEH,MAAM,OAAO,CAAC,KAAK,EAAE,CAAC;AACxB,CAAC;AAED,2DAA2D;AAC3D,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;IACrB,IAAI,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC9B,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ebowwa/channel-telegram",
3
- "version": "1.13.0",
3
+ "version": "1.13.2",
4
4
  "description": "Pure Telegram protocol adapter implementing ChannelConnector",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
package/src/index.ts CHANGED
@@ -407,6 +407,9 @@ export class TelegramChannel {
407
407
  groupName: msg.chat.type !== "private" ? msg.chat.title : undefined,
408
408
  };
409
409
 
410
+ // Use chat ID as accountId for reply routing
411
+ const chatChannelId = createChannelId("telegram", msg.chat.id.toString());
412
+
410
413
  // Build reply context
411
414
  let replyText: string | undefined;
412
415
  if (msg.reply_to_message?.text) {
@@ -416,7 +419,7 @@ export class TelegramChannel {
416
419
 
417
420
  return {
418
421
  messageId: msg.message_id.toString(),
419
- channelId: this.id,
422
+ channelId: chatChannelId,
420
423
  timestamp: new Date(msg.date * 1000),
421
424
  sender,
422
425
  text: replyText ? `${replyText}\n\n${msg.text || ""}` : (msg.text || ""),
@@ -424,7 +427,7 @@ export class TelegramChannel {
424
427
  replyTo: msg.reply_to_message
425
428
  ? {
426
429
  messageId: msg.reply_to_message.message_id.toString(),
427
- channelId: this.id,
430
+ channelId: chatChannelId,
428
431
  }
429
432
  : undefined,
430
433
  };
@@ -520,4 +523,7 @@ async function main() {
520
523
  await channel.start();
521
524
  }
522
525
 
523
- main().catch(console.error);
526
+ // Only run main when executed directly (not when imported)
527
+ if (import.meta.main) {
528
+ main().catch(console.error);
529
+ }
@@ -1,216 +0,0 @@
1
- "use strict";
2
- /**
3
- * Conversation Memory - tracks chat history per user
4
- * Uses JSONL format for efficient append operations
5
- */
6
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
7
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
8
- return new (P || (P = Promise))(function (resolve, reject) {
9
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
10
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
11
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
12
- step((generator = generator.apply(thisArg, _arguments || [])).next());
13
- });
14
- };
15
- var __generator = (this && this.__generator) || function (thisArg, body) {
16
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
17
- return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
18
- function verb(n) { return function (v) { return step([n, v]); }; }
19
- function step(op) {
20
- if (f) throw new TypeError("Generator is already executing.");
21
- while (g && (g = 0, op[0] && (_ = 0)), _) try {
22
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
23
- if (y = 0, t) op = [op[0] & 2, t.value];
24
- switch (op[0]) {
25
- case 0: case 1: t = op; break;
26
- case 4: _.label++; return { value: op[1], done: false };
27
- case 5: _.label++; y = op[1]; op = [0]; continue;
28
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
29
- default:
30
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
31
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
32
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
33
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
34
- if (t[2]) _.ops.pop();
35
- _.trys.pop(); continue;
36
- }
37
- op = body.call(thisArg, _);
38
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
39
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
40
- }
41
- };
42
- var __asyncValues = (this && this.__asyncValues) || function (o) {
43
- if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
44
- var m = o[Symbol.asyncIterator], i;
45
- return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i);
46
- function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }
47
- function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }
48
- };
49
- Object.defineProperty(exports, "__esModule", { value: true });
50
- exports.ConversationMemory = void 0;
51
- var fs_1 = require("fs");
52
- var readline = require("readline");
53
- var ConversationMemory = /** @class */ (function () {
54
- function ConversationMemory(file) {
55
- this.conversations = new Map();
56
- this.maxMessages = 10; // Keep last N messages
57
- // Default to .jsonl extension
58
- this.file = file || '/root/conversations.jsonl';
59
- // Handle migration from old .json format
60
- this.migrateFromJson();
61
- this.load();
62
- }
63
- /**
64
- * Migrate from old JSON format to JSONL if .json file exists
65
- */
66
- ConversationMemory.prototype.migrateFromJson = function () {
67
- var jsonFile = this.file.replace(/\.jsonl$/, '.json');
68
- if (this.file.endsWith('.jsonl') && (0, fs_1.existsSync)(jsonFile) && !(0, fs_1.existsSync)(this.file)) {
69
- try {
70
- var data = JSON.parse((0, fs_1.readFileSync)(jsonFile, 'utf-8'));
71
- // Write as JSONL
72
- var lines = [];
73
- for (var _i = 0, _a = Object.entries(data); _i < _a.length; _i++) {
74
- var _b = _a[_i], chatId = _b[0], messages = _b[1];
75
- var entry = {
76
- chatId: Number(chatId),
77
- messages: messages
78
- };
79
- lines.push(JSON.stringify(entry));
80
- }
81
- (0, fs_1.writeFileSync)(this.file, lines.join('\n') + '\n');
82
- // Remove old JSON file after successful migration
83
- (0, fs_1.unlinkSync)(jsonFile);
84
- }
85
- catch (_c) {
86
- // If migration fails, continue with empty memory
87
- }
88
- }
89
- };
90
- /**
91
- * Load conversations from JSONL file using readline for streaming
92
- */
93
- ConversationMemory.prototype.load = function () {
94
- return __awaiter(this, void 0, void 0, function () {
95
- var fileStream, rl, _a, rl_1, rl_1_1, line, entry, e_1_1, _b;
96
- var _c, e_1, _d, _e;
97
- return __generator(this, function (_f) {
98
- switch (_f.label) {
99
- case 0:
100
- if (!(0, fs_1.existsSync)(this.file))
101
- return [2 /*return*/];
102
- _f.label = 1;
103
- case 1:
104
- _f.trys.push([1, 14, , 15]);
105
- fileStream = (0, fs_1.createReadStream)(this.file, 'utf-8');
106
- rl = readline.createInterface({
107
- input: fileStream,
108
- crlfDelay: Infinity
109
- });
110
- _f.label = 2;
111
- case 2:
112
- _f.trys.push([2, 7, 8, 13]);
113
- _a = true, rl_1 = __asyncValues(rl);
114
- _f.label = 3;
115
- case 3: return [4 /*yield*/, rl_1.next()];
116
- case 4:
117
- if (!(rl_1_1 = _f.sent(), _c = rl_1_1.done, !_c)) return [3 /*break*/, 6];
118
- _e = rl_1_1.value;
119
- _a = false;
120
- line = _e;
121
- if (!line.trim())
122
- return [3 /*break*/, 5]; // Skip empty lines
123
- try {
124
- entry = JSON.parse(line);
125
- this.conversations.set(entry.chatId, entry.messages);
126
- }
127
- catch (_g) {
128
- // Skip malformed lines
129
- }
130
- _f.label = 5;
131
- case 5:
132
- _a = true;
133
- return [3 /*break*/, 3];
134
- case 6: return [3 /*break*/, 13];
135
- case 7:
136
- e_1_1 = _f.sent();
137
- e_1 = { error: e_1_1 };
138
- return [3 /*break*/, 13];
139
- case 8:
140
- _f.trys.push([8, , 11, 12]);
141
- if (!(!_a && !_c && (_d = rl_1.return))) return [3 /*break*/, 10];
142
- return [4 /*yield*/, _d.call(rl_1)];
143
- case 9:
144
- _f.sent();
145
- _f.label = 10;
146
- case 10: return [3 /*break*/, 12];
147
- case 11:
148
- if (e_1) throw e_1.error;
149
- return [7 /*endfinally*/];
150
- case 12: return [7 /*endfinally*/];
151
- case 13:
152
- rl.close();
153
- fileStream.destroy();
154
- return [3 /*break*/, 15];
155
- case 14:
156
- _b = _f.sent();
157
- return [3 /*break*/, 15];
158
- case 15: return [2 /*return*/];
159
- }
160
- });
161
- });
162
- };
163
- /**
164
- * Save all conversations as JSONL (full rewrite)
165
- */
166
- ConversationMemory.prototype.save = function () {
167
- var lines = [];
168
- for (var _i = 0, _a = this.conversations; _i < _a.length; _i++) {
169
- var _b = _a[_i], chatId = _b[0], messages = _b[1];
170
- var entry = { chatId: chatId, messages: messages };
171
- lines.push(JSON.stringify(entry));
172
- }
173
- (0, fs_1.writeFileSync)(this.file, lines.join('\n') + (lines.length > 0 ? '\n' : ''));
174
- };
175
- /**
176
- * Append a single conversation entry (efficient for new chats)
177
- */
178
- ConversationMemory.prototype.append = function (chatId) {
179
- var entry = {
180
- chatId: chatId,
181
- messages: this.conversations.get(chatId) || []
182
- };
183
- (0, fs_1.appendFileSync)(this.file, JSON.stringify(entry) + '\n');
184
- };
185
- ConversationMemory.prototype.add = function (chatId, role, content, name) {
186
- var isNewChat = !this.conversations.has(chatId);
187
- if (isNewChat) {
188
- this.conversations.set(chatId, []);
189
- }
190
- var history = this.conversations.get(chatId);
191
- var msg = { role: role, content: content };
192
- if (name)
193
- msg.name = name;
194
- history.push(msg);
195
- // Keep only last N messages
196
- if (history.length > this.maxMessages) {
197
- history.splice(0, history.length - this.maxMessages);
198
- }
199
- // Use append for new chats (efficient), full save for existing (handles truncation)
200
- if (isNewChat) {
201
- this.append(chatId);
202
- }
203
- else {
204
- this.save();
205
- }
206
- };
207
- ConversationMemory.prototype.get = function (chatId) {
208
- return this.conversations.get(chatId) || [];
209
- };
210
- ConversationMemory.prototype.clear = function (chatId) {
211
- this.conversations.delete(chatId);
212
- this.save();
213
- };
214
- return ConversationMemory;
215
- }());
216
- exports.ConversationMemory = ConversationMemory;
package/src/index.js DELETED
@@ -1,736 +0,0 @@
1
- "use strict";
2
- /**
3
- * GLM Daemon Telegram Bot
4
- *
5
- * Full-featured Telegram bot with GLM-4.7 AI, git status, Doppler integration
6
- *
7
- * Features:
8
- * - GLM-4.7 AI responses via Z.AI API
9
- * - 429 rate limit handling with exponential backoff
10
- * - /git command for git status + GitHub auth
11
- * - /doppler command for Doppler secrets status
12
- * - Rolling API key support
13
- */
14
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
15
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
16
- return new (P || (P = Promise))(function (resolve, reject) {
17
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
18
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
19
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
20
- step((generator = generator.apply(thisArg, _arguments || [])).next());
21
- });
22
- };
23
- var __generator = (this && this.__generator) || function (thisArg, body) {
24
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
25
- return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
26
- function verb(n) { return function (v) { return step([n, v]); }; }
27
- function step(op) {
28
- if (f) throw new TypeError("Generator is already executing.");
29
- while (g && (g = 0, op[0] && (_ = 0)), _) try {
30
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
31
- if (y = 0, t) op = [op[0] & 2, t.value];
32
- switch (op[0]) {
33
- case 0: case 1: t = op; break;
34
- case 4: _.label++; return { value: op[1], done: false };
35
- case 5: _.label++; y = op[1]; op = [0]; continue;
36
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
37
- default:
38
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
39
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
40
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
41
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
42
- if (t[2]) _.ops.pop();
43
- _.trys.pop(); continue;
44
- }
45
- op = body.call(thisArg, _);
46
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
47
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
48
- }
49
- };
50
- var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
51
- if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
52
- if (ar || !(i in from)) {
53
- if (!ar) ar = Array.prototype.slice.call(from, 0, i);
54
- ar[i] = from[i];
55
- }
56
- }
57
- return to.concat(ar || Array.prototype.slice.call(from));
58
- };
59
- Object.defineProperty(exports, "__esModule", { value: true });
60
- exports.TelegramGLMBot = void 0;
61
- var node_telegram_bot_api_1 = require("node-telegram-bot-api");
62
- var child_process_1 = require("child_process");
63
- var structured_prompts_1 = require("@ebowwa/structured-prompts");
64
- var fs_1 = require("fs");
65
- var conversation_memory_1 = require("./conversation-memory");
66
- var keys_1 = require("./api/keys");
67
- var fetch_retry_1 = require("./api/fetch-retry");
68
- var commands_1 = require("./commands");
69
- var TELEGRAM_BOT_TOKEN = process.env.TELEGRAM_BOT_TOKEN || '';
70
- var TELEGRAM_TEST_CHAT_ID = process.env.TELEGRAM_TEST_CHAT_ID || '';
71
- var TOOLS = [
72
- {
73
- name: 'read_file',
74
- description: 'Read a file from the filesystem. Use for checking configs, logs, code.',
75
- parameters: {
76
- type: 'object',
77
- properties: {
78
- path: { type: 'string', description: 'Absolute file path to read' }
79
- },
80
- required: ['path']
81
- },
82
- handler: function (args) { return __awaiter(void 0, void 0, void 0, function () {
83
- var path, content;
84
- return __generator(this, function (_a) {
85
- path = args.path;
86
- try {
87
- if (!(0, fs_1.existsSync)(path))
88
- return [2 /*return*/, "File not found: ".concat(path)];
89
- content = (0, fs_1.readFileSync)(path, 'utf-8');
90
- return [2 /*return*/, content.length > 4000 ? content.slice(0, 4000) + '\n...[truncated]' : content];
91
- }
92
- catch (e) {
93
- return [2 /*return*/, "Error reading file: ".concat(e.message)];
94
- }
95
- return [2 /*return*/];
96
- });
97
- }); }
98
- },
99
- {
100
- name: 'write_file',
101
- description: 'Write content to a file. Creates the file if it does not exist, overwrites if it does.',
102
- parameters: {
103
- type: 'object',
104
- properties: {
105
- path: { type: 'string', description: 'Absolute file path to write' },
106
- content: { type: 'string', description: 'Content to write to the file' }
107
- },
108
- required: ['path', 'content']
109
- },
110
- handler: function (args) { return __awaiter(void 0, void 0, void 0, function () {
111
- var path, content;
112
- return __generator(this, function (_a) {
113
- path = args.path;
114
- content = args.content;
115
- try {
116
- (0, fs_1.writeFileSync)(path, content, 'utf-8');
117
- return [2 /*return*/, "Successfully wrote ".concat(content.length, " bytes to ").concat(path)];
118
- }
119
- catch (e) {
120
- return [2 /*return*/, "Error writing file: ".concat(e.message)];
121
- }
122
- return [2 /*return*/];
123
- });
124
- }); }
125
- },
126
- {
127
- name: 'edit_file',
128
- description: 'Edit a file by replacing a specific string with new content.',
129
- parameters: {
130
- type: 'object',
131
- properties: {
132
- path: { type: 'string', description: 'Absolute file path to edit' },
133
- old_string: { type: 'string', description: 'The exact text to find and replace' },
134
- new_string: { type: 'string', description: 'The text to replace it with' }
135
- },
136
- required: ['path', 'old_string', 'new_string']
137
- },
138
- handler: function (args) { return __awaiter(void 0, void 0, void 0, function () {
139
- var path, oldStr, newStr, content, newContent;
140
- return __generator(this, function (_a) {
141
- path = args.path;
142
- oldStr = args.old_string;
143
- newStr = args.new_string;
144
- try {
145
- if (!(0, fs_1.existsSync)(path))
146
- return [2 /*return*/, "File not found: ".concat(path)];
147
- content = (0, fs_1.readFileSync)(path, 'utf-8');
148
- if (!content.includes(oldStr)) {
149
- return [2 /*return*/, "String not found in file. First 500 chars:\n".concat(content.slice(0, 500))];
150
- }
151
- newContent = content.replace(oldStr, newStr);
152
- (0, fs_1.writeFileSync)(path, newContent, 'utf-8');
153
- return [2 /*return*/, "Successfully edited ".concat(path)];
154
- }
155
- catch (e) {
156
- return [2 /*return*/, "Error editing file: ".concat(e.message)];
157
- }
158
- return [2 /*return*/];
159
- });
160
- }); }
161
- },
162
- {
163
- name: 'append_file',
164
- description: 'Append content to the end of a file. Creates the file if it does not exist.',
165
- parameters: {
166
- type: 'object',
167
- properties: {
168
- path: { type: 'string', description: 'Absolute file path to append to' },
169
- content: { type: 'string', description: 'Content to append to the file' }
170
- },
171
- required: ['path', 'content']
172
- },
173
- handler: function (args) { return __awaiter(void 0, void 0, void 0, function () {
174
- var path, content;
175
- return __generator(this, function (_a) {
176
- path = args.path;
177
- content = args.content;
178
- try {
179
- (0, fs_1.appendFileSync)(path, content, 'utf-8');
180
- return [2 /*return*/, "Successfully appended ".concat(content.length, " bytes to ").concat(path)];
181
- }
182
- catch (e) {
183
- return [2 /*return*/, "Error appending to file: ".concat(e.message)];
184
- }
185
- return [2 /*return*/];
186
- });
187
- }); }
188
- },
189
- {
190
- name: 'list_dir',
191
- description: 'List contents of a directory. Shows files and subdirectories.',
192
- parameters: {
193
- type: 'object',
194
- properties: {
195
- path: { type: 'string', description: 'Directory path to list (default: current working directory)' }
196
- }
197
- },
198
- handler: function (args) { return __awaiter(void 0, void 0, void 0, function () {
199
- var path, items;
200
- return __generator(this, function (_a) {
201
- path = args.path || process.cwd();
202
- try {
203
- items = (0, child_process_1.execSync)("ls -la \"".concat(path, "\" 2>&1")).toString();
204
- return [2 /*return*/, items];
205
- }
206
- catch (e) {
207
- return [2 /*return*/, "Error listing directory: ".concat(e.message)];
208
- }
209
- return [2 /*return*/];
210
- });
211
- }); }
212
- },
213
- {
214
- name: 'run_command',
215
- description: 'Execute a shell command. Use for git, system info, etc. BE CAREFUL with destructive commands.',
216
- parameters: {
217
- type: 'object',
218
- properties: {
219
- command: { type: 'string', description: 'Shell command to execute' },
220
- cwd: { type: 'string', description: 'Working directory (optional)' }
221
- },
222
- required: ['command']
223
- },
224
- handler: function (args) { return __awaiter(void 0, void 0, void 0, function () {
225
- var cmd, cwd, blocked, result;
226
- var _a;
227
- return __generator(this, function (_b) {
228
- cmd = args.command;
229
- cwd = args.cwd || process.cwd();
230
- blocked = ['rm -rf', 'mkfs', 'dd if=', '> /dev/', 'chmod 777'];
231
- if (blocked.some(function (b) { return cmd.includes(b); })) {
232
- return [2 /*return*/, "Blocked: command contains dangerous pattern"];
233
- }
234
- try {
235
- result = (0, child_process_1.execSync)(cmd, { timeout: 10000, cwd: cwd }).toString();
236
- return [2 /*return*/, result || '(no output)'];
237
- }
238
- catch (e) {
239
- return [2 /*return*/, ((_a = e.stdout) === null || _a === void 0 ? void 0 : _a.toString()) || e.message];
240
- }
241
- return [2 /*return*/];
242
- });
243
- }); }
244
- },
245
- {
246
- name: 'git_status',
247
- description: 'Check git repository status',
248
- parameters: {
249
- type: 'object',
250
- properties: {
251
- cwd: { type: 'string', description: 'Repository path (optional)' }
252
- }
253
- },
254
- handler: function (args) { return __awaiter(void 0, void 0, void 0, function () {
255
- var cwd, status_1, branch;
256
- return __generator(this, function (_a) {
257
- cwd = args.cwd || process.cwd();
258
- try {
259
- status_1 = (0, child_process_1.execSync)('git status 2>&1', { cwd: cwd }).toString();
260
- branch = (0, child_process_1.execSync)('git branch --show-current 2>&1', { cwd: cwd }).toString();
261
- return [2 /*return*/, "Branch: ".concat(branch, "\n\n").concat(status_1)];
262
- }
263
- catch (e) {
264
- return [2 /*return*/, "Error: ".concat(e.message)];
265
- }
266
- return [2 /*return*/];
267
- });
268
- }); }
269
- },
270
- {
271
- name: 'get_prompt',
272
- description: 'Get a prompt template from the prompt store',
273
- parameters: {
274
- type: 'object',
275
- properties: {
276
- id: { type: 'string', description: 'Prompt ID to retrieve' }
277
- },
278
- required: ['id']
279
- },
280
- handler: function (args) { return __awaiter(void 0, void 0, void 0, function () {
281
- var store, prompt;
282
- return __generator(this, function (_a) {
283
- store = (0, structured_prompts_1.getStore)(process.env.PROMPTS_FILE);
284
- prompt = store.get(args.id);
285
- return [2 /*return*/, prompt ? JSON.stringify(prompt, null, 2) : "Prompt not found: ".concat(args.id)];
286
- });
287
- }); }
288
- },
289
- {
290
- name: 'list_prompts',
291
- description: 'List all available prompt templates',
292
- parameters: { type: 'object', properties: {} },
293
- handler: function () { return __awaiter(void 0, void 0, void 0, function () {
294
- var store, prompts;
295
- return __generator(this, function (_a) {
296
- store = (0, structured_prompts_1.getStore)(process.env.PROMPTS_FILE);
297
- prompts = store.list();
298
- return [2 /*return*/, prompts.map(function (p) { return "- ".concat(p.id, ": ").concat(p.name); }).join('\n') || 'No prompts found'];
299
- });
300
- }); }
301
- },
302
- {
303
- name: 'system_info',
304
- description: 'Get system resource info (CPU, memory, disk, uptime)',
305
- parameters: { type: 'object', properties: {} },
306
- handler: function () { return __awaiter(void 0, void 0, void 0, function () {
307
- var cpu, mem, disk, uptime;
308
- return __generator(this, function (_a) {
309
- try {
310
- cpu = (0, child_process_1.execSync)('nproc 2>/dev/null || echo "unknown"').toString().trim();
311
- mem = (0, child_process_1.execSync)('free -h 2>/dev/null | grep Mem || echo "unknown"').toString().trim();
312
- disk = (0, child_process_1.execSync)('df -h / 2>/dev/null | tail -1 || echo "unknown"').toString().trim();
313
- uptime = (0, child_process_1.execSync)('uptime -p 2>/dev/null || uptime 2>/dev/null || echo "unknown"').toString().trim();
314
- return [2 /*return*/, "CPU cores: ".concat(cpu, "\nMemory: ").concat(mem, "\nDisk: ").concat(disk, "\nUptime: ").concat(uptime)];
315
- }
316
- catch (e) {
317
- return [2 /*return*/, "Error: ".concat(e.message)];
318
- }
319
- return [2 /*return*/];
320
- });
321
- }); }
322
- }
323
- ];
324
- // Convert tools to GLM API format
325
- var GLM_TOOLS = TOOLS.map(function (t) { return ({
326
- type: 'function',
327
- function: {
328
- name: t.name,
329
- description: t.description,
330
- parameters: t.parameters
331
- }
332
- }); });
333
- // Execute a tool by name
334
- function executeTool(name, args) {
335
- return __awaiter(this, void 0, void 0, function () {
336
- var tool;
337
- return __generator(this, function (_a) {
338
- tool = TOOLS.find(function (t) { return t.name === name; });
339
- if (!tool)
340
- return [2 /*return*/, "Unknown tool: ".concat(name)];
341
- return [2 /*return*/, tool.handler(args)];
342
- });
343
- });
344
- }
345
- var ZAI_API_ENDPOINT = 'https://api.z.ai/api/coding/paas/v4/chat/completions';
346
- var TelegramGLMBot = /** @class */ (function () {
347
- function TelegramGLMBot(token) {
348
- this.bot = new node_telegram_bot_api_1.default(token, { polling: true });
349
- this.memory = new conversation_memory_1.ConversationMemory(process.env.CONVERSATIONS_FILE);
350
- }
351
- /**
352
- * Send message, splitting if too long for Telegram (4096 char limit)
353
- */
354
- TelegramGLMBot.prototype.sendLongMessage = function (chatId, text) {
355
- return __awaiter(this, void 0, void 0, function () {
356
- var MAX_LENGTH, chunks, remaining, breakPoint, i, prefix;
357
- return __generator(this, function (_a) {
358
- switch (_a.label) {
359
- case 0:
360
- MAX_LENGTH = 4000;
361
- if (!(text.length <= MAX_LENGTH)) return [3 /*break*/, 2];
362
- return [4 /*yield*/, this.bot.sendMessage(chatId, text)];
363
- case 1:
364
- _a.sent();
365
- return [2 /*return*/];
366
- case 2:
367
- chunks = [];
368
- remaining = text;
369
- while (remaining.length > 0) {
370
- if (remaining.length <= MAX_LENGTH) {
371
- chunks.push(remaining);
372
- break;
373
- }
374
- breakPoint = remaining.lastIndexOf('\n', MAX_LENGTH);
375
- if (breakPoint < 1000) {
376
- breakPoint = remaining.lastIndexOf(' ', MAX_LENGTH);
377
- }
378
- if (breakPoint < 1000) {
379
- breakPoint = MAX_LENGTH;
380
- }
381
- chunks.push(remaining.slice(0, breakPoint));
382
- remaining = remaining.slice(breakPoint).trim();
383
- }
384
- i = 0;
385
- _a.label = 3;
386
- case 3:
387
- if (!(i < chunks.length)) return [3 /*break*/, 6];
388
- prefix = chunks.length > 1 ? "[".concat(i + 1, "/").concat(chunks.length, "] ") : '';
389
- return [4 /*yield*/, this.bot.sendMessage(chatId, prefix + chunks[i])];
390
- case 4:
391
- _a.sent();
392
- _a.label = 5;
393
- case 5:
394
- i++;
395
- return [3 /*break*/, 3];
396
- case 6: return [2 /*return*/];
397
- }
398
- });
399
- });
400
- };
401
- TelegramGLMBot.prototype.start = function () {
402
- return __awaiter(this, void 0, void 0, function () {
403
- var _this = this;
404
- return __generator(this, function (_a) {
405
- switch (_a.label) {
406
- case 0:
407
- console.log('🤖 GLM Daemon Telegram Bot starting with GLM-4.7...');
408
- // Register all commands from commands/ directory
409
- (0, commands_1.registerAllCommands)(this.bot, this.memory, TOOLS);
410
- // Handle all text messages with GLM-4.7
411
- this.bot.on('message', function (msg) { return __awaiter(_this, void 0, void 0, function () {
412
- var chatId, userName, response;
413
- var _a, _b;
414
- return __generator(this, function (_c) {
415
- switch (_c.label) {
416
- case 0:
417
- if (!msg.text)
418
- return [2 /*return*/];
419
- if (msg.text.startsWith('/'))
420
- return [2 /*return*/];
421
- chatId = msg.chat.id;
422
- userName = ((_a = msg.from) === null || _a === void 0 ? void 0 : _a.first_name) || ((_b = msg.from) === null || _b === void 0 ? void 0 : _b.username) || 'User';
423
- console.log("[Telegram] ".concat(userName, ": ").concat(msg.text));
424
- return [4 /*yield*/, this.bot.sendChatAction(chatId, 'typing')];
425
- case 1:
426
- _c.sent();
427
- return [4 /*yield*/, this.getGLMResponse(chatId, msg.text, userName)];
428
- case 2:
429
- response = _c.sent();
430
- // Save to memory
431
- this.memory.add(chatId, 'user', msg.text);
432
- this.memory.add(chatId, 'assistant', response);
433
- return [4 /*yield*/, this.sendLongMessage(chatId, response)];
434
- case 3:
435
- _c.sent();
436
- return [2 /*return*/];
437
- }
438
- });
439
- }); });
440
- // Polling errors
441
- this.bot.on('polling_error', function (error) {
442
- console.error('[Telegram] Polling error:', error.message);
443
- });
444
- console.log('✅ Telegram bot is running with GLM-4.7!');
445
- if (!TELEGRAM_TEST_CHAT_ID) return [3 /*break*/, 3];
446
- return [4 /*yield*/, this.sendTestMessage(Number(TELEGRAM_TEST_CHAT_ID))];
447
- case 1:
448
- _a.sent();
449
- // Check for crash and report
450
- return [4 /*yield*/, this.checkCrashAndReport(Number(TELEGRAM_TEST_CHAT_ID))];
451
- case 2:
452
- // Check for crash and report
453
- _a.sent();
454
- return [3 /*break*/, 4];
455
- case 3:
456
- console.log('\n💡 Tip: Get your chat ID from @userinfobot and set TELEGRAM_TEST_CHAT_ID');
457
- _a.label = 4;
458
- case 4: return [2 /*return*/];
459
- }
460
- });
461
- });
462
- };
463
- TelegramGLMBot.prototype.getGLMResponse = function (chatId, userMessage, userName) {
464
- return __awaiter(this, void 0, void 0, function () {
465
- var apiKey, store, systemPrompt, systemContent, temperature, maxTokens, history, messages, iterations, maxIterations, response, data, message, _i, _a, toolCall, toolName, args, sanitizeForTelegram, argsPreview, result, sanitizedResult, resultPreview, error_1;
466
- var _b, _c, _d, _e, _f, _g, _h;
467
- return __generator(this, function (_j) {
468
- switch (_j.label) {
469
- case 0:
470
- apiKey = (0, keys_1.getZAIKey)();
471
- if (!apiKey) {
472
- return [2 /*return*/, '⚠️ Z_AI_API_KEY not configured in Doppler secrets.\n\nPlease set Z_AI_API_KEY to use GLM-4.7.'];
473
- }
474
- store = (0, structured_prompts_1.getStore)(process.env.PROMPTS_FILE);
475
- systemPrompt = store.get('glm-daemon-system');
476
- systemContent = (_b = systemPrompt === null || systemPrompt === void 0 ? void 0 : systemPrompt.template) !== null && _b !== void 0 ? _b : 'You are GLM Daemon, a helpful AI assistant.';
477
- temperature = (_d = (_c = systemPrompt === null || systemPrompt === void 0 ? void 0 : systemPrompt.metadata) === null || _c === void 0 ? void 0 : _c.temperature) !== null && _d !== void 0 ? _d : 0.7;
478
- maxTokens = (_f = (_e = systemPrompt === null || systemPrompt === void 0 ? void 0 : systemPrompt.metadata) === null || _e === void 0 ? void 0 : _e.maxTokens) !== null && _f !== void 0 ? _f : 2048;
479
- history = this.memory.get(chatId);
480
- messages = __spreadArray(__spreadArray([
481
- { role: 'system', content: systemContent }
482
- ], history, true), [
483
- { role: 'user', content: userMessage }
484
- ], false);
485
- _j.label = 1;
486
- case 1:
487
- _j.trys.push([1, 13, , 14]);
488
- console.log("\uD83D\uDD04 Calling GLM-4.7 API for: ".concat(userMessage, " (").concat(history.length, " history)"));
489
- iterations = 0;
490
- maxIterations = 50;
491
- _j.label = 2;
492
- case 2:
493
- if (!(iterations < maxIterations)) return [3 /*break*/, 12];
494
- iterations++;
495
- return [4 /*yield*/, (0, fetch_retry_1.fetchWithRetry)(ZAI_API_ENDPOINT, {
496
- method: 'POST',
497
- headers: {
498
- 'Content-Type': 'application/json',
499
- 'Authorization': "Bearer ".concat(apiKey)
500
- },
501
- body: JSON.stringify({
502
- model: 'glm-4.7',
503
- messages: messages,
504
- tools: GLM_TOOLS,
505
- temperature: temperature,
506
- max_tokens: maxTokens
507
- })
508
- }, 3, 1000)];
509
- case 3:
510
- response = _j.sent();
511
- return [4 /*yield*/, response.json()];
512
- case 4:
513
- data = _j.sent();
514
- message = (_h = (_g = data.choices) === null || _g === void 0 ? void 0 : _g[0]) === null || _h === void 0 ? void 0 : _h.message;
515
- if (!message) {
516
- console.error('❌ Unexpected API response format:', data);
517
- return [2 /*return*/, '❌ Unexpected response from AI API.'];
518
- }
519
- if (!(message.tool_calls && message.tool_calls.length > 0)) return [3 /*break*/, 11];
520
- console.log("\uD83D\uDD27 LLM calling ".concat(message.tool_calls.length, " tool(s)"));
521
- // Add assistant message with tool calls to history
522
- messages.push({
523
- role: 'assistant',
524
- tool_calls: message.tool_calls
525
- });
526
- _i = 0, _a = message.tool_calls;
527
- _j.label = 5;
528
- case 5:
529
- if (!(_i < _a.length)) return [3 /*break*/, 10];
530
- toolCall = _a[_i];
531
- toolName = toolCall.function.name;
532
- args = JSON.parse(toolCall.function.arguments);
533
- console.log(" \u2192 ".concat(toolName, "(").concat(JSON.stringify(args), ")"));
534
- sanitizeForTelegram = function (str) {
535
- return str
536
- .replace(/[_*[\]()~`>#+=|{}.!-]/g, '') // Remove Markdown special chars
537
- .replace(/\\/g, '') // Remove backslashes
538
- .slice(0, 100); // Truncate to prevent long messages
539
- };
540
- argsPreview = Object.keys(args).length > 0
541
- ? sanitizeForTelegram(JSON.stringify(args))
542
- : '';
543
- return [4 /*yield*/, this.bot.sendMessage(chatId, "\uD83D\uDD27 ".concat(toolName).concat(argsPreview ? ' ' + argsPreview : ''))];
544
- case 6:
545
- _j.sent();
546
- return [4 /*yield*/, executeTool(toolName, args)];
547
- case 7:
548
- result = _j.sent();
549
- console.log(" \u2190 ".concat(result.slice(0, 100), "..."));
550
- sanitizedResult = result
551
- .replace(/[_*[\]()~`>#+=|{}.!-]/g, '')
552
- .replace(/\\/g, '');
553
- resultPreview = sanitizedResult.length > 500 ? sanitizedResult.slice(0, 500) + ' [truncated]' : sanitizedResult;
554
- return [4 /*yield*/, this.bot.sendMessage(chatId, "\uD83D\uDCE5 ".concat(resultPreview))];
555
- case 8:
556
- _j.sent();
557
- // Add tool result to messages
558
- messages.push({
559
- role: 'tool',
560
- name: toolName,
561
- content: result
562
- });
563
- _j.label = 9;
564
- case 9:
565
- _i++;
566
- return [3 /*break*/, 5];
567
- case 10:
568
- // Continue loop to get final response
569
- return [3 /*break*/, 2];
570
- case 11:
571
- // No tool calls - we have the final response
572
- if (message.content) {
573
- console.log("\u2705 GLM-4.7 response: ".concat(message.content.slice(0, 100), "..."));
574
- return [2 /*return*/, message.content];
575
- }
576
- // No content and no tool calls - something weird
577
- return [2 /*return*/, '❌ Empty response from AI.'];
578
- case 12: return [2 /*return*/, '⚠️ Reached tool limit (50). The AI was being very thorough! Try a more specific request.'];
579
- case 13:
580
- error_1 = _j.sent();
581
- console.error('❌ Error calling GLM-4.7:', error_1.message);
582
- if (error_1.message.includes('429')) {
583
- return [2 /*return*/, '⚠️ Rate limited by API. Please try again in a moment.'];
584
- }
585
- return [2 /*return*/, "\u274C Error: ".concat(error_1.message)];
586
- case 14: return [2 /*return*/];
587
- }
588
- });
589
- });
590
- };
591
- TelegramGLMBot.prototype.sendTestMessage = function (chatId) {
592
- return __awaiter(this, void 0, void 0, function () {
593
- var apiKey;
594
- return __generator(this, function (_a) {
595
- switch (_a.label) {
596
- case 0:
597
- apiKey = (0, keys_1.getZAIKey)();
598
- return [4 /*yield*/, this.bot.sendMessage(chatId, '✅ GLM Daemon Telegram Bot is NOW ONLINE!\n\n' +
599
- '🎉 Connected from seed-node-prod!\n\n' +
600
- "\uD83E\uDDE0 AI: ".concat(apiKey ? 'GLM-4.7 via Z.AI' : 'Not configured', "\n\n") +
601
- 'Commands:\n' +
602
- '/start - Show welcome message\n' +
603
- '/status - Check API status\n' +
604
- '/git - Git & GitHub status\n' +
605
- '/doppler - Doppler config\n' +
606
- '/help - Show all commands\n' +
607
- 'Any message - Chat with GLM-4.7 AI')];
608
- case 1:
609
- _a.sent();
610
- console.log("\u2705 Test message sent to chat ".concat(chatId));
611
- return [2 /*return*/];
612
- }
613
- });
614
- });
615
- };
616
- TelegramGLMBot.prototype.stop = function () {
617
- return __awaiter(this, void 0, void 0, function () {
618
- return __generator(this, function (_a) {
619
- console.log('🛑 Stopping Telegram bot...');
620
- this.bot.stopPolling();
621
- return [2 /*return*/];
622
- });
623
- });
624
- };
625
- /**
626
- * Check for crash recovery - analyze previous session and report
627
- * Always sends a startup message (crash or normal)
628
- */
629
- TelegramGLMBot.prototype.checkCrashAndReport = function (chatId) {
630
- return __awaiter(this, void 0, void 0, function () {
631
- var crashLog_1, crashIndicators_1, hasCrash, errorLines, diagnosis, e_1;
632
- return __generator(this, function (_a) {
633
- switch (_a.label) {
634
- case 0:
635
- _a.trys.push([0, 8, , 10]);
636
- crashLog_1 = (0, child_process_1.execSync)('journalctl -u telegram-bot -b -1 -n 50 --no-pager 2>/dev/null || journalctl -u telegram-bot --since "5 minutes ago" -n 50 --no-pager 2>/dev/null', { encoding: 'utf-8', timeout: 5000 }).trim();
637
- crashIndicators_1 = ['Error:', 'error', 'crashed', 'killed', 'ETELEGRAM', '400 Bad Request', 'exception'];
638
- hasCrash = crashLog_1 && crashIndicators_1.some(function (ind) { return crashLog_1.toLowerCase().includes(ind.toLowerCase()); });
639
- if (!hasCrash) return [3 /*break*/, 5];
640
- // Crash detected - analyze and report
641
- console.log('🔍 Crash detected, analyzing...');
642
- return [4 /*yield*/, this.bot.sendMessage(chatId, '🔄 I detected a crash in my previous session. Analyzing...')];
643
- case 1:
644
- _a.sent();
645
- errorLines = crashLog_1.split('\n')
646
- .filter(function (line) { return crashIndicators_1.some(function (ind) { return line.toLowerCase().includes(ind.toLowerCase()); }); })
647
- .slice(-10)
648
- .join('\n');
649
- if (!errorLines) return [3 /*break*/, 4];
650
- return [4 /*yield*/, this.getGLMResponse(chatId, "Analyze this crash log and tell me what went wrong in one short paragraph, then suggest a fix:\n\n```\n".concat(errorLines.slice(0, 1000), "\n```\n\nFormat: \"Issue: [what happened]. Fix: [how to fix it]\""), 'CrashAnalyzer')];
651
- case 2:
652
- diagnosis = _a.sent();
653
- return [4 /*yield*/, this.sendLongMessage(chatId, "\uD83C\uDFE5 Crash Diagnosis:\n\n".concat(diagnosis))];
654
- case 3:
655
- _a.sent();
656
- _a.label = 4;
657
- case 4: return [3 /*break*/, 7];
658
- case 5:
659
- // Normal start - no crash detected
660
- return [4 /*yield*/, this.bot.sendMessage(chatId, '✅ Bot started normally.\n\n' +
661
- 'Previous session ended cleanly. Ready to assist!')];
662
- case 6:
663
- // Normal start - no crash detected
664
- _a.sent();
665
- _a.label = 7;
666
- case 7: return [3 /*break*/, 10];
667
- case 8:
668
- e_1 = _a.sent();
669
- // If we can't check logs, still notify of normal start
670
- console.log('Crash check skipped:', e_1.message);
671
- return [4 /*yield*/, this.bot.sendMessage(chatId, '✅ Bot started fresh.\n\n' +
672
- 'No previous session data available. Ready to assist!')];
673
- case 9:
674
- _a.sent();
675
- return [3 /*break*/, 10];
676
- case 10: return [2 /*return*/];
677
- }
678
- });
679
- });
680
- };
681
- return TelegramGLMBot;
682
- }());
683
- exports.TelegramGLMBot = TelegramGLMBot;
684
- // Main entry point
685
- function main() {
686
- return __awaiter(this, void 0, void 0, function () {
687
- var promptsFile, store, bot;
688
- var _this = this;
689
- return __generator(this, function (_a) {
690
- switch (_a.label) {
691
- case 0:
692
- if (!TELEGRAM_BOT_TOKEN) {
693
- console.error('❌ TELEGRAM_BOT_TOKEN not found in Doppler secrets');
694
- console.error('Make sure to set in your seed/prd Doppler project');
695
- process.exit(1);
696
- }
697
- promptsFile = process.env.PROMPTS_FILE;
698
- store = (0, structured_prompts_1.getStore)(promptsFile);
699
- if (!store.get('glm-daemon-system')) {
700
- console.log('📝 Seeding prompts...');
701
- (0, structured_prompts_1.seedPrompts)(promptsFile);
702
- }
703
- console.log("\uD83D\uDCF1 Bot token loaded: ".concat(TELEGRAM_BOT_TOKEN.substring(0, 10), "..."));
704
- console.log("\uD83E\uDD16 Bot name: @SimulationapiBot");
705
- bot = new TelegramGLMBot(TELEGRAM_BOT_TOKEN);
706
- return [4 /*yield*/, bot.start()];
707
- case 1:
708
- _a.sent();
709
- process.on('SIGINT', function () { return __awaiter(_this, void 0, void 0, function () {
710
- return __generator(this, function (_a) {
711
- switch (_a.label) {
712
- case 0: return [4 /*yield*/, bot.stop()];
713
- case 1:
714
- _a.sent();
715
- process.exit(0);
716
- return [2 /*return*/];
717
- }
718
- });
719
- }); });
720
- process.on('SIGTERM', function () { return __awaiter(_this, void 0, void 0, function () {
721
- return __generator(this, function (_a) {
722
- switch (_a.label) {
723
- case 0: return [4 /*yield*/, bot.stop()];
724
- case 1:
725
- _a.sent();
726
- process.exit(0);
727
- return [2 /*return*/];
728
- }
729
- });
730
- }); });
731
- return [2 /*return*/];
732
- }
733
- });
734
- });
735
- }
736
- main().catch(console.error);
package/src/types.js DELETED
@@ -1,5 +0,0 @@
1
- "use strict";
2
- /**
3
- * Shared types for GLM Daemon Telegram Bot
4
- */
5
- Object.defineProperty(exports, "__esModule", { value: true });