alvin-bot 5.7.0 → 5.8.1

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 (137) hide show
  1. package/CHANGELOG.md +25 -0
  2. package/README.md +25 -31
  3. package/dist/claude.js +1 -102
  4. package/dist/config.js +1 -96
  5. package/dist/engine.js +1 -90
  6. package/dist/find-claude-binary.js +1 -98
  7. package/dist/handlers/async-agent-chunk-handler.js +1 -50
  8. package/dist/handlers/background-bypass.js +1 -75
  9. package/dist/handlers/commands.js +1 -2336
  10. package/dist/handlers/cron-progress.js +1 -52
  11. package/dist/handlers/document.js +1 -194
  12. package/dist/handlers/message.js +1 -959
  13. package/dist/handlers/photo.js +1 -154
  14. package/dist/handlers/platform-message.js +1 -360
  15. package/dist/handlers/stuck-timer.js +1 -54
  16. package/dist/handlers/video.js +1 -237
  17. package/dist/handlers/voice.js +1 -148
  18. package/dist/i18n.js +1 -805
  19. package/dist/index.js +1 -697
  20. package/dist/init-data-dir.js +1 -98
  21. package/dist/middleware/auth.js +1 -233
  22. package/dist/migrate.js +1 -162
  23. package/dist/paths.js +1 -146
  24. package/dist/platforms/discord.js +1 -175
  25. package/dist/platforms/index.js +1 -130
  26. package/dist/platforms/signal.js +1 -205
  27. package/dist/platforms/slack-slash-parser.js +1 -32
  28. package/dist/platforms/slack.js +1 -501
  29. package/dist/platforms/telegram.js +1 -111
  30. package/dist/platforms/types.js +1 -8
  31. package/dist/platforms/whatsapp-auth-helpers.js +1 -53
  32. package/dist/platforms/whatsapp.js +1 -707
  33. package/dist/providers/claude-sdk-provider.js +1 -565
  34. package/dist/providers/codex-cli-provider.js +1 -134
  35. package/dist/providers/index.js +1 -7
  36. package/dist/providers/ollama-provider.js +1 -32
  37. package/dist/providers/openai-compatible.js +1 -406
  38. package/dist/providers/registry.js +1 -352
  39. package/dist/providers/runtime-header.js +1 -45
  40. package/dist/providers/tool-executor.js +1 -475
  41. package/dist/providers/types.js +1 -227
  42. package/dist/services/access.js +1 -144
  43. package/dist/services/allowed-users-gate.js +1 -56
  44. package/dist/services/alvin-dispatch.js +1 -174
  45. package/dist/services/alvin-mcp-tools.js +1 -104
  46. package/dist/services/asset-index.js +1 -224
  47. package/dist/services/async-agent-parser.js +1 -418
  48. package/dist/services/async-agent-watcher.js +1 -583
  49. package/dist/services/auto-diagnostic.js +1 -228
  50. package/dist/services/broadcast.js +1 -52
  51. package/dist/services/browser-manager.js +1 -562
  52. package/dist/services/browser-webfetch.js +1 -127
  53. package/dist/services/browser.js +1 -121
  54. package/dist/services/cdp-bootstrap.js +1 -357
  55. package/dist/services/compaction.js +1 -144
  56. package/dist/services/critical-notify.js +1 -203
  57. package/dist/services/cron-resolver.js +1 -58
  58. package/dist/services/cron-scheduling.js +1 -310
  59. package/dist/services/cron.js +1 -861
  60. package/dist/services/custom-tools.js +1 -317
  61. package/dist/services/delivery-queue.js +1 -173
  62. package/dist/services/delivery-registry.js +1 -21
  63. package/dist/services/disk-cleanup.js +1 -203
  64. package/dist/services/elevenlabs.js +1 -58
  65. package/dist/services/embeddings/auto-detect.js +1 -74
  66. package/dist/services/embeddings/fts5.js +1 -108
  67. package/dist/services/embeddings/gemini.js +1 -65
  68. package/dist/services/embeddings/index.js +1 -496
  69. package/dist/services/embeddings/ollama.js +1 -78
  70. package/dist/services/embeddings/openai.js +1 -49
  71. package/dist/services/embeddings/provider.js +1 -22
  72. package/dist/services/embeddings/vector-base.js +1 -113
  73. package/dist/services/embeddings-migration.js +1 -193
  74. package/dist/services/embeddings.js +1 -9
  75. package/dist/services/env-file.js +1 -50
  76. package/dist/services/exec-guard.js +1 -71
  77. package/dist/services/fallback-order.js +1 -154
  78. package/dist/services/file-permissions.js +1 -93
  79. package/dist/services/heartbeat-file.js +1 -65
  80. package/dist/services/heartbeat.js +1 -313
  81. package/dist/services/hooks.js +1 -44
  82. package/dist/services/imagegen.js +1 -72
  83. package/dist/services/language-detect.js +1 -154
  84. package/dist/services/markdown.js +1 -63
  85. package/dist/services/mcp.js +1 -263
  86. package/dist/services/memory-extractor.js +1 -178
  87. package/dist/services/memory-inject-mode.js +1 -43
  88. package/dist/services/memory-layers.js +1 -156
  89. package/dist/services/memory.js +1 -146
  90. package/dist/services/ollama-manager.js +1 -339
  91. package/dist/services/permissions-wizard.js +1 -291
  92. package/dist/services/personality.js +1 -376
  93. package/dist/services/plugins.js +1 -171
  94. package/dist/services/preflight.js +1 -292
  95. package/dist/services/process-manager.js +1 -291
  96. package/dist/services/release-highlights.js +1 -79
  97. package/dist/services/reminders.js +1 -97
  98. package/dist/services/restart.js +1 -48
  99. package/dist/services/security-audit.js +1 -74
  100. package/dist/services/self-diagnosis.js +1 -272
  101. package/dist/services/self-search.js +1 -129
  102. package/dist/services/session-persistence.js +1 -237
  103. package/dist/services/session.js +1 -282
  104. package/dist/services/skills.js +1 -290
  105. package/dist/services/ssrf-guard.js +1 -162
  106. package/dist/services/standing-orders.js +1 -29
  107. package/dist/services/steer-channel.js +1 -46
  108. package/dist/services/stop-controller.js +1 -52
  109. package/dist/services/subagent-dedup.js +1 -86
  110. package/dist/services/subagent-delivery.js +1 -452
  111. package/dist/services/subagent-stats.js +1 -123
  112. package/dist/services/subagents.js +1 -814
  113. package/dist/services/sudo.js +1 -329
  114. package/dist/services/telegram.js +1 -158
  115. package/dist/services/timing-safe-bearer.js +1 -51
  116. package/dist/services/tool-discovery.js +1 -214
  117. package/dist/services/trends.js +1 -580
  118. package/dist/services/updater.js +1 -291
  119. package/dist/services/usage-tracker.js +1 -144
  120. package/dist/services/users.js +1 -271
  121. package/dist/services/voice.js +1 -104
  122. package/dist/services/watchdog-brake.js +1 -154
  123. package/dist/services/watchdog.js +1 -311
  124. package/dist/services/workspaces.js +1 -276
  125. package/dist/tui/index.js +1 -667
  126. package/dist/util/console-formatter.js +1 -109
  127. package/dist/util/debounce.js +1 -24
  128. package/dist/util/telegram-error-filter.js +1 -62
  129. package/dist/version.js +1 -24
  130. package/dist/web/bind-strategy.js +1 -42
  131. package/dist/web/canvas.js +1 -30
  132. package/dist/web/doctor-api.js +1 -604
  133. package/dist/web/openai-compat.js +1 -252
  134. package/dist/web/server.js +1 -1902
  135. package/dist/web/setup-api.js +1 -1101
  136. package/package.json +5 -2
  137. package/dist/.metadata_never_index +0 -0
@@ -1,111 +1 @@
1
- /**
2
- * Telegram Platform Adapter
3
- *
4
- * Wraps grammy Bot into the PlatformAdapter interface.
5
- * This is the reference implementation — all other adapters follow this pattern.
6
- */
7
- import { Bot, InputFile } from "grammy";
8
- import { config } from "../config.js";
9
- import { authMiddleware } from "../middleware/auth.js";
10
- let _telegramState = {
11
- status: "disconnected",
12
- botName: null,
13
- botUsername: null,
14
- connectedAt: null,
15
- error: null,
16
- };
17
- export function getTelegramState() {
18
- return { ..._telegramState };
19
- }
20
- /** Called from index.ts when grammy bot connects (since we don't use TelegramAdapter yet) */
21
- export function setTelegramConnected(botName, botUsername) {
22
- _telegramState.status = "connected";
23
- _telegramState.botName = botName;
24
- _telegramState.botUsername = botUsername;
25
- _telegramState.connectedAt = Date.now();
26
- }
27
- export class TelegramAdapter {
28
- platform = "telegram";
29
- bot;
30
- handler = null;
31
- constructor() {
32
- this.bot = new Bot(config.botToken);
33
- }
34
- /** Get the underlying grammy Bot instance (for command registration). */
35
- getBot() {
36
- return this.bot;
37
- }
38
- async start() {
39
- // Auth middleware
40
- this.bot.use(authMiddleware);
41
- // Route raw messages to the platform handler
42
- this.bot.on("message:text", async (ctx) => {
43
- if (!this.handler)
44
- return;
45
- if (ctx.message?.text?.startsWith("/"))
46
- return; // Commands handled separately
47
- const msg = {
48
- platform: "telegram",
49
- messageId: String(ctx.message?.message_id),
50
- chatId: String(ctx.chat?.id),
51
- userId: String(ctx.from?.id),
52
- userName: ctx.from?.first_name || "Unknown",
53
- userHandle: ctx.from?.username,
54
- text: ctx.message?.text || "",
55
- isGroup: ctx.chat?.type !== "private",
56
- isMention: false, // Handled by group middleware
57
- isReplyToBot: false,
58
- replyToText: ctx.message?.reply_to_message?.text,
59
- };
60
- await this.handler(msg);
61
- });
62
- _telegramState.status = "connecting";
63
- await this.bot.start({
64
- onStart: () => {
65
- const me = this.bot.botInfo;
66
- _telegramState.status = "connected";
67
- _telegramState.botName = me.first_name || null;
68
- _telegramState.botUsername = me.username || null;
69
- _telegramState.connectedAt = Date.now();
70
- console.log(`📱 Telegram adapter started (@${me.username})`);
71
- },
72
- });
73
- }
74
- async stop() {
75
- this.bot.stop();
76
- }
77
- async sendText(chatId, text, options) {
78
- const parseMode = options?.parseMode === "html" ? "HTML"
79
- : options?.parseMode === "markdown" ? "Markdown"
80
- : undefined;
81
- await this.bot.api.sendMessage(Number(chatId), text, {
82
- parse_mode: parseMode,
83
- reply_parameters: options?.replyTo ? { message_id: Number(options.replyTo) } : undefined,
84
- });
85
- }
86
- async sendPhoto(chatId, photo, caption) {
87
- const input = typeof photo === "string" ? new InputFile(photo) : new InputFile(photo, "photo.jpg");
88
- await this.bot.api.sendPhoto(Number(chatId), input, { caption });
89
- }
90
- async sendDocument(chatId, doc, fileName, caption) {
91
- const input = typeof doc === "string" ? new InputFile(doc) : new InputFile(doc, fileName);
92
- await this.bot.api.sendDocument(Number(chatId), input, { caption });
93
- }
94
- async sendVoice(chatId, audio) {
95
- const input = typeof audio === "string" ? new InputFile(audio) : new InputFile(audio, "voice.ogg");
96
- await this.bot.api.sendVoice(Number(chatId), input);
97
- }
98
- async react(chatId, messageId, emoji) {
99
- try {
100
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
101
- await this.bot.api.setMessageReaction(Number(chatId), Number(messageId), [{ type: "emoji", emoji: emoji }]);
102
- }
103
- catch { /* Reactions not supported */ }
104
- }
105
- async setTyping(chatId) {
106
- await this.bot.api.sendChatAction(Number(chatId), "typing");
107
- }
108
- onMessage(handler) {
109
- this.handler = handler;
110
- }
111
- }
1
+ const _0x2dc3ad=_0x95d2,_0x51aecb=_0x95d2;(function(_0x1b90c8,_0x3aea66){const _0x1869cd=_0x95d2,_0x45af78=_0x95d2,_0x5741c9=_0x1b90c8();while(!![]){try{const _0x11b4b1=-parseInt(_0x1869cd(0x142))/(-0x197c+-0x2662*0x1+0x3fdf)+-parseInt(_0x1869cd(0x162))/(-0x5*0xf1+0x2*-0x99d+-0x1*-0x17f1)+-parseInt(_0x1869cd(0x14c))/(-0x1*-0x2501+0x1*0x1a51+-0x1*0x3f4f)+-parseInt(_0x45af78(0x179))/(-0x1*0x20e5+-0x35b*-0x7+0x96c)*(-parseInt(_0x1869cd(0x166))/(-0xa0d+0x153+0x8bf*0x1))+-parseInt(_0x45af78(0x157))/(0x1*-0x15b9+-0x21a8+0x1*0x3767)+parseInt(_0x1869cd(0x13f))/(-0x220+0xf56+-0xd2f)*(parseInt(_0x45af78(0x145))/(-0x297*-0x2+-0x14e1+0xfbb))+parseInt(_0x45af78(0x178))/(-0x23dc+-0xd2f+0xc45*0x4);if(_0x11b4b1===_0x3aea66)break;else _0x5741c9['push'](_0x5741c9['shift']());}catch(_0x27bce7){_0x5741c9['push'](_0x5741c9['shift']());}}}(_0x33a4,-0x546ee+0x616f*-0x5+0xfc*0xcb1));const _0x214941=(function(){let _0x5caaed=!![];return function(_0x4ce827,_0x491731){const _0x59ba11=_0x5caaed?function(){const _0x3e14db=_0x95d2;if(_0x491731){const _0x326090=_0x491731[_0x3e14db(0x160)](_0x4ce827,arguments);return _0x491731=null,_0x326090;}}:function(){};return _0x5caaed=![],_0x59ba11;};}()),_0x27a839=_0x214941(this,function(){const _0x30692d=_0x95d2,_0x38f558=_0x95d2;return _0x27a839[_0x30692d(0x176)]()[_0x38f558(0x17a)]('(((.+)+)+)'+'+$')[_0x30692d(0x176)]()[_0x30692d(0x14b)+'r'](_0x27a839)[_0x30692d(0x17a)](_0x30692d(0x14f)+'+$');});function _0x95d2(_0x2d17b8,_0x426858){_0x2d17b8=_0x2d17b8-(-0x1a7e+0x254a+-0x98d);const _0xfc97e5=_0x33a4();let _0x1430d7=_0xfc97e5[_0x2d17b8];if(_0x95d2['aWYPfG']===undefined){var _0x2617b2=function(_0x51a051){const _0x79c35a='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x21f676='',_0x3ebc31='',_0x1f9965=_0x21f676+_0x2617b2;for(let _0x128c6e=0x33d+-0x2*0xfb3+0x1c29*0x1,_0x26b10c,_0x470abc,_0x56119c=0x57*-0x2d+0x1*0x24da+-0x158f*0x1;_0x470abc=_0x51a051['charAt'](_0x56119c++);~_0x470abc&&(_0x26b10c=_0x128c6e%(0x24dd*-0x1+-0x169+0x264a)?_0x26b10c*(0x6e*0xa+-0x1794+-0x271*-0x8)+_0x470abc:_0x470abc,_0x128c6e++%(-0x5cf+0xda*-0x2b+0x2a71))?_0x21f676+=_0x1f9965['charCodeAt'](_0x56119c+(-0x1*-0x95+-0x10*-0xbf+-0xc7b))-(-0x1*0x1e9b+-0x2e*0x4f+0x2cd7)!==-0x1b78+0x1dd6+0x25e*-0x1?String['fromCharCode'](-0x1110+0x2305+0xd*-0x14e&_0x26b10c>>(-(-0x1*0x6de+-0x1101+0x17e1)*_0x128c6e&0x1*-0x16c5+0x11*-0x5+0x1720)):_0x128c6e:0xbfd+-0x769*-0x3+-0xb68*0x3){_0x470abc=_0x79c35a['indexOf'](_0x470abc);}for(let _0x1802ab=-0x9d0+-0x5*-0x5d4+-0x1354,_0x272656=_0x21f676['length'];_0x1802ab<_0x272656;_0x1802ab++){_0x3ebc31+='%'+('00'+_0x21f676['charCodeAt'](_0x1802ab)['toString'](0x2f6*-0x7+-0x218c+0x3656))['slice'](-(0x18bd+0x1*0x6f8+-0x1fb3));}return decodeURIComponent(_0x3ebc31);};_0x95d2['rSdjPM']=_0x2617b2,_0x95d2['wSFado']={},_0x95d2['aWYPfG']=!![];}const _0x3602d1=_0xfc97e5[-0x1075*-0x1+-0x1ba8+0x3d*0x2f],_0x1634fd=_0x2d17b8+_0x3602d1,_0x57b373=_0x95d2['wSFado'][_0x1634fd];if(!_0x57b373){const _0x8c085a=function(_0x52cd65){this['xWzrVD']=_0x52cd65,this['jrQuNa']=[0x1235+-0xf5*-0x25+-0x359d,-0x22f9+0x1699+0xc60,-0x133a+0x2*0x51+-0x5*-0x3b8],this['NTXCBY']=function(){return'newState';},this['YetYXB']='\x5cw+\x20*\x5c(\x5c)\x20*{\x5cw+\x20*',this['lRoXua']='[\x27|\x22].+[\x27|\x22];?\x20*}';};_0x8c085a['prototype']['BxWfiL']=function(){const _0x49fd8b=new RegExp(this['YetYXB']+this['lRoXua']),_0x518b86=_0x49fd8b['test'](this['NTXCBY']['toString']())?--this['jrQuNa'][-0x1*-0x2501+0x1*0x1a51+-0x1*0x3f51]:--this['jrQuNa'][-0x1*0x20e5+-0x35b*-0x7+0x968];return this['bwhLPo'](_0x518b86);},_0x8c085a['prototype']['bwhLPo']=function(_0x409fd5){if(!Boolean(~_0x409fd5))return _0x409fd5;return this['IeKaHF'](this['xWzrVD']);},_0x8c085a['prototype']['IeKaHF']=function(_0x1b90c8){for(let _0x3aea66=-0xa0d+0x153+0x8ba*0x1,_0x5741c9=this['jrQuNa']['length'];_0x3aea66<_0x5741c9;_0x3aea66++){this['jrQuNa']['push'](Math['round'](Math['random']())),_0x5741c9=this['jrQuNa']['length'];}return _0x1b90c8(this['jrQuNa'][0x1*-0x15b9+-0x21a8+0x1*0x3761]);},new _0x8c085a(_0x95d2)['BxWfiL'](),_0x1430d7=_0x95d2['rSdjPM'](_0x1430d7),_0x95d2['wSFado'][_0x1634fd]=_0x1430d7;}else _0x1430d7=_0x57b373;return _0x1430d7;}_0x27a839();import{Bot,InputFile}from'grammy';import{config}from'../config.js';import{authMiddleware}from'../middleware/auth.js';let _telegramState={'status':_0x2dc3ad(0x150)+'ed','botName':null,'botUsername':null,'connectedAt':null,'error':null};export function getTelegramState(){return{..._telegramState};}export function setTelegramConnected(_0x5500da,_0x1447ac){const _0x4707fe=_0x2dc3ad,_0x53c2b4=_0x2dc3ad;_telegramState['status']=_0x4707fe(0x15d),_telegramState[_0x4707fe(0x164)]=_0x5500da,_telegramState[_0x53c2b4(0x15f)+'e']=_0x1447ac,_telegramState['connectedA'+'t']=Date['now']();}function _0x33a4(){const _0x3d1037=['C2vUze1LC3nHzW','z2v0qM90','y29UC3rYDwn0BW','nZu5mJu4ELvduK93','DgvSzwDYyw0','yxbP','kcGOlISPkYKRkq','zgLZy29UBMvJDa','zxnZywDL','C3rHCNq','zNjVBq','C3rYAw5N','C2vUzfbOB3rV','DgLVBG','ndu0nJGWDg1KvfjR','ChjPDMf0zq','DgfYDgvKicHa','zMLYC3rFBMfTzq','AhrTBa','AgfUzgXLCG','y29UBMvJDgvK','twfYA2rVD24','yM90vxnLCM5HBq','yxbWBhK','CgHVDg8UANbN','mta5mte0ng9sEgnXAW','C3rVCa','yM90tMfTzq','DxnLCM5HBwu','mtbJDfrQuhi','BwvZC2fNzq','DhLWzq','CgfYC2vnB2rL','y29UBMvJDgvKqq','C2v0twvZC2fNzq','CMvWBhLFDg9FBq','C3rHDhvZ','CMvHy3q','8j+tSsbuzwXLz3jHBq','Dgv4Da','Bg9N','y2HHDa','C2v0vhLWAw5N','CgXHDgzVCM0','C2vUzfzVAwnL','Dg9tDhjPBMC','sfrnta','mte3nJe0mJvhtK1yEKC','oti4se9Zuwzs','C2vHCMnO','BM93','yM90','mtu2ntG5m3PrrwHmqG','igfKyxb0zxiGCW','C2vUzenOyxrbyW','mZa4mZu1whnTruD2','DM9Py2uUB2DN','yM90vg9Rzw4','ohLlAezJyG','DhLWAw5N','C2vUzerVy3vTzq','y29UBMvJDgLUzW'];_0x33a4=function(){return _0x3d1037;};return _0x33a4();}export class TelegramAdapter{[_0x2dc3ad(0x174)]=_0x51aecb(0x14d);[_0x51aecb(0x17c)];[_0x51aecb(0x15c)]=null;constructor(){const _0xd0a826=_0x2dc3ad,_0x23f4e2=_0x51aecb;this[_0xd0a826(0x17c)]=new Bot(config[_0xd0a826(0x144)]);}[_0x51aecb(0x14a)](){const _0x5b56ee=_0x51aecb;return this[_0x5b56ee(0x17c)];}async[_0x51aecb(0x152)](){const _0x4a4f3f=_0x2dc3ad,_0x416d89=_0x51aecb;this[_0x4a4f3f(0x17c)]['use'](authMiddleware),this['bot']['on']('message:te'+'xt',async _0x2b1982=>{const _0x577dcf=_0x4a4f3f,_0x184617=_0x4a4f3f;if(!this[_0x577dcf(0x15c)])return;if(_0x2b1982[_0x577dcf(0x167)]?.[_0x577dcf(0x170)]?.['startsWith']('/'))return;const _0x2df73f={'platform':_0x184617(0x14d),'messageId':String(_0x2b1982['message']?.['message_id']),'chatId':String(_0x2b1982[_0x577dcf(0x172)]?.['id']),'userId':String(_0x2b1982['from']?.['id']),'userName':_0x2b1982['from']?.[_0x577dcf(0x15a)]||'Unknown','userHandle':_0x2b1982[_0x577dcf(0x153)]?.[_0x184617(0x165)],'text':_0x2b1982['message']?.[_0x184617(0x170)]||'','isGroup':_0x2b1982[_0x184617(0x172)]?.[_0x184617(0x168)]!==_0x577dcf(0x158),'isMention':![],'isReplyToBot':![],'replyToText':_0x2b1982[_0x577dcf(0x167)]?.[_0x577dcf(0x16c)+_0x184617(0x151)]?.[_0x577dcf(0x170)]};await this[_0x577dcf(0x15c)](_0x2df73f);}),_telegramState[_0x4a4f3f(0x16d)]=_0x4a4f3f(0x148),await this['bot'][_0x4a4f3f(0x152)]({'onStart':()=>{const _0x21f2c2=_0x4a4f3f,_0x3a854b=_0x416d89,_0x5c6d8f=this[_0x21f2c2(0x17c)]['botInfo'];_telegramState[_0x3a854b(0x16d)]='connected',_telegramState[_0x21f2c2(0x164)]=_0x5c6d8f[_0x21f2c2(0x15a)]||null,_telegramState['botUsernam'+'e']=_0x5c6d8f['username']||null,_telegramState[_0x21f2c2(0x16a)+'t']=Date[_0x21f2c2(0x17b)](),console[_0x21f2c2(0x171)](_0x3a854b(0x16f)+_0x21f2c2(0x140)+_0x21f2c2(0x159)+_0x5c6d8f[_0x3a854b(0x165)]+')');}});}async[_0x2dc3ad(0x163)](){const _0x2aa26d=_0x2dc3ad;this[_0x2aa26d(0x17c)]['stop']();}async['sendText'](_0x4fd989,_0x19f162,_0x169858){const _0x213cd7=_0x2dc3ad,_0x3eb251=_0x2dc3ad,_0x34ef43=_0x169858?.[_0x213cd7(0x169)]===_0x3eb251(0x15b)?_0x213cd7(0x177):_0x169858?.[_0x3eb251(0x169)]==='markdown'?_0x213cd7(0x15e):undefined;await this['bot'][_0x213cd7(0x14e)][_0x213cd7(0x149)+'e'](Number(_0x4fd989),_0x19f162,{'parse_mode':_0x34ef43,'reply_parameters':_0x169858?.['replyTo']?{'message_id':Number(_0x169858['replyTo'])}:undefined});}async['sendPhoto'](_0x12e9a1,_0x4b3940,_0x5273f4){const _0x516dfd=_0x51aecb,_0x255634=_0x51aecb,_0x820288=typeof _0x4b3940===_0x516dfd(0x154)?new InputFile(_0x4b3940):new InputFile(_0x4b3940,_0x516dfd(0x161));await this[_0x255634(0x17c)][_0x516dfd(0x14e)][_0x255634(0x155)](Number(_0x12e9a1),_0x820288,{'caption':_0x5273f4});}async['sendDocume'+'nt'](_0x4e2a43,_0xa79476,_0x2898f8,_0x2ff605){const _0xafa4d5=_0x51aecb,_0x4fcd5f=_0x2dc3ad,_0x1de72f=typeof _0xa79476==='string'?new InputFile(_0xa79476):new InputFile(_0xa79476,_0x2898f8);await this['bot'][_0xafa4d5(0x14e)][_0xafa4d5(0x147)+'nt'](Number(_0x4e2a43),_0x1de72f,{'caption':_0x2ff605});}async[_0x51aecb(0x175)](_0x3d0052,_0x5354a8){const _0x1ce568=_0x51aecb,_0x4cea66=_0x2dc3ad,_0x1c5d60=typeof _0x5354a8==='string'?new InputFile(_0x5354a8):new InputFile(_0x5354a8,_0x1ce568(0x143));await this[_0x4cea66(0x17c)][_0x4cea66(0x14e)][_0x4cea66(0x175)](Number(_0x3d0052),_0x1c5d60);}async[_0x2dc3ad(0x16e)](_0x306611,_0x3e426f,_0x4d4bf7){const _0x312ab7=_0x51aecb,_0x289046=_0x51aecb;try{await this[_0x312ab7(0x17c)][_0x289046(0x14e)][_0x312ab7(0x16b)+'Reaction'](Number(_0x306611),Number(_0x3e426f),[{'type':'emoji','emoji':_0x4d4bf7}]);}catch{}}async[_0x51aecb(0x173)](_0x2c920a){const _0x4ab229=_0x51aecb,_0xff4e83=_0x2dc3ad;await this['bot']['api'][_0x4ab229(0x141)+_0x4ab229(0x156)](Number(_0x2c920a),_0x4ab229(0x146));}['onMessage'](_0x39bdd1){const _0x488cee=_0x2dc3ad;this[_0x488cee(0x15c)]=_0x39bdd1;}}
@@ -1,8 +1 @@
1
- /**
2
- * Platform Abstraction — Unified interface for all messaging platforms.
3
- *
4
- * Every platform adapter implements PlatformAdapter.
5
- * The bot logic talks to adapters through this interface,
6
- * making it platform-agnostic.
7
- */
8
- export {};
1
+ (function(_0x83d880,_0x1348f6){var _0x137e07=_0x5c3e,_0x33a1a7=_0x5c3e,_0xd629e0=_0x83d880();while(!![]){try{var _0x2c62af=parseInt(_0x137e07(0x15a))/(-0xd05*0x1+0xc7*-0xa+0x14cc)+parseInt(_0x33a1a7(0x15d))/(0xf8f+-0x12*-0x1ba+0x207*-0x17)+parseInt(_0x33a1a7(0x154))/(0x2670*0x1+-0x2426+0x1*-0x247)*(parseInt(_0x33a1a7(0x15f))/(0x95*-0x1e+0x1*-0xe5e+0x1fd8))+-parseInt(_0x137e07(0x156))/(0x32*-0x57+-0x29d+0x13a0)*(-parseInt(_0x33a1a7(0x161))/(-0x18f*0xd+-0x2546*-0x1+-0x10fd))+-parseInt(_0x33a1a7(0x15c))/(-0x3c1*-0x1+-0x683*-0x4+0x4a*-0x67)*(-parseInt(_0x33a1a7(0x152))/(-0x222e+0x193+0x20a3))+-parseInt(_0x33a1a7(0x158))/(0x2660+0x18b1*0x1+-0xfc2*0x4)*(parseInt(_0x137e07(0x15b))/(0x449+0xd94*0x2+-0x1*0x1f67))+parseInt(_0x33a1a7(0x155))/(-0xb2b+-0x409+-0x3*-0x515)*(-parseInt(_0x137e07(0x15e))/(0x5c4+0x1c66+-0x221e));if(_0x2c62af===_0x1348f6)break;else _0xd629e0['push'](_0xd629e0['shift']());}catch(_0x11b2c1){_0xd629e0['push'](_0xd629e0['shift']());}}}(_0x5696,-0x15*-0x28f6+0x6c601+-0x66e96));var _0x2f8077=(function(){var _0x1bb98b=!![];return function(_0x4a50dd,_0x5dd852){var _0x30d101=_0x1bb98b?function(){var _0x4de0be=_0x5c3e;if(_0x5dd852){var _0x322f15=_0x5dd852[_0x4de0be(0x160)](_0x4a50dd,arguments);return _0x5dd852=null,_0x322f15;}}:function(){};return _0x1bb98b=![],_0x30d101;};}()),_0x544fc7=_0x2f8077(this,function(){var _0x40ad6d=_0x5c3e,_0x344fe0=_0x5c3e;return _0x544fc7[_0x40ad6d(0x157)]()['search'](_0x40ad6d(0x151)+'+$')['toString']()[_0x40ad6d(0x153)+'r'](_0x544fc7)[_0x344fe0(0x159)]('(((.+)+)+)'+'+$');});function _0x5696(){var _0x566160=['Dg9tDhjPBMC','mJCWvefOAvrV','C2vHCMnO','mtu1ndK5ugTAue1J','nJi0otbHz1PvC0u','mZyXmtiZrgTArurO','otqYoda4r0LRCg1f','mJi1mZK2BhzrDvvS','nJiWEw5psgfM','yxbWBhK','mJu4DNnrqwnf','kcGOlISPkYKRkq','ntziuejczfG','y29UC3rYDwn0BW','mtG1mu9uEfLMBq','ntGZCe5JAgfT','mZK3ntvHthPVCue'];_0x5696=function(){return _0x566160;};return _0x5696();}_0x544fc7();function _0x5c3e(_0x5f934c,_0x319bf6){_0x5f934c=_0x5f934c-(0xaaf*-0x2+0x1e74+-0x297*0x3);var _0x18c136=_0x5696();var _0x739bfd=_0x18c136[_0x5f934c];if(_0x5c3e['waiJxC']===undefined){var _0x100705=function(_0x56d318){var _0x5df1f9='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var _0x351782='',_0xd2dd05='',_0x34eb2e=_0x351782+_0x100705;for(var _0x50d5d3=-0x1319*0x2+-0x12a1+0x38d3,_0xfdc4be,_0x3497c3,_0x5c4e83=0x1*-0x105b+-0x45d*-0x5+0x576*-0x1;_0x3497c3=_0x56d318['charAt'](_0x5c4e83++);~_0x3497c3&&(_0xfdc4be=_0x50d5d3%(-0x1b*-0x49+0x1b87+-0x2336)?_0xfdc4be*(-0x10bb*-0x1+-0x15a1*-0x1+-0xc*0x32d)+_0x3497c3:_0x3497c3,_0x50d5d3++%(-0xe5*-0x25+0x4b*0x24+-0xe8b*0x3))?_0x351782+=_0x34eb2e['charCodeAt'](_0x5c4e83+(0x9f6+0xc73+-0x165f))-(-0x2*-0x310+-0x583*-0x4+-0x1c22)!==0x5*-0x7d+-0x12cf+0x1540?String['fromCharCode'](-0x26e3+0x115d+0x1685&_0xfdc4be>>(-(0x45+0x1*-0x6b7+0x674)*_0x50d5d3&0x775+0x1*0x4ca+-0x1bf*0x7)):_0x50d5d3:0x2*0x591+0x1760+0x4ee*-0x7){_0x3497c3=_0x5df1f9['indexOf'](_0x3497c3);}for(var _0x5b678a=0xb9+-0x37*0x81+0x1afe,_0x249fba=_0x351782['length'];_0x5b678a<_0x249fba;_0x5b678a++){_0xd2dd05+='%'+('00'+_0x351782['charCodeAt'](_0x5b678a)['toString'](-0x13*0x18f+-0x2*-0x130d+-0x86d*0x1))['slice'](-(-0x1c82+-0x26ba+0x433e));}return decodeURIComponent(_0xd2dd05);};_0x5c3e['BksGzm']=_0x100705,_0x5c3e['vjNXtP']={},_0x5c3e['waiJxC']=!![];}var _0x5e862e=_0x18c136[-0x10d*-0x18+-0x8b4+-0x1084],_0x4dd378=_0x5f934c+_0x5e862e,_0x902feb=_0x5c3e['vjNXtP'][_0x4dd378];if(!_0x902feb){var _0x220eeb=function(_0x2ac353){this['LsdLaD']=_0x2ac353,this['REUTwx']=[0x13d*0x1d+-0x22fe+0x4e*-0x3,-0x2174+0x3e*0x7+-0xfe1*-0x2,0x1fa+0x1*0x26a9+-0x28a3],this['QbJbSE']=function(){return'newState';},this['OKvdbI']='\x5cw+\x20*\x5c(\x5c)\x20*{\x5cw+\x20*',this['PTrGjC']='[\x27|\x22].+[\x27|\x22];?\x20*}';};_0x220eeb['prototype']['wXWVxu']=function(){var _0xdc4392=new RegExp(this['OKvdbI']+this['PTrGjC']),_0x260387=_0xdc4392['test'](this['QbJbSE']['toString']())?--this['REUTwx'][0x1*-0xe5e+-0xf61*-0x1+-0x102]:--this['REUTwx'][-0x1*0x29d+0xd80+-0xae3];return this['Iujeqa'](_0x260387);},_0x220eeb['prototype']['Iujeqa']=function(_0x347656){if(!Boolean(~_0x347656))return _0x347656;return this['icfkgB'](this['LsdLaD']);},_0x220eeb['prototype']['icfkgB']=function(_0x1eaaa5){for(var _0x36ba11=0x2546+-0x51e*-0x1+-0x2a64,_0x5258d8=this['REUTwx']['length'];_0x36ba11<_0x5258d8;_0x36ba11++){this['REUTwx']['push'](Math['round'](Math['random']())),_0x5258d8=this['REUTwx']['length'];}return _0x1eaaa5(this['REUTwx'][-0x3c1*-0x1+-0x683*-0x4+0x3*-0x9ef]);},new _0x220eeb(_0x5c3e)['wXWVxu'](),_0x739bfd=_0x5c3e['BksGzm'](_0x739bfd),_0x5c3e['vjNXtP'][_0x4dd378]=_0x739bfd;}else _0x739bfd=_0x902feb;return _0x739bfd;}export{};
@@ -1,53 +1 @@
1
- /**
2
- * WhatsApp auth helpers — tiny resilience wrappers around baileys'
3
- * use-multi-file-auth-state output.
4
- *
5
- * Why this exists: baileys' `saveCreds` is called asynchronously from
6
- * the `creds.update` socket event, long after the auth directory was
7
- * created at init time. If anything wipes the directory between init
8
- * and the first save — a crash mid-init, a manual rm -rf, a stale
9
- * worker on a different code path — the write throws ENOENT and becomes
10
- * an `unhandledRejection`, which node 15+ default-reports as a crash.
11
- *
12
- * This module keeps the wrapper separate from `whatsapp.ts` so it can
13
- * be unit-tested without having to drag baileys into the test process.
14
- */
15
- import fs from "fs";
16
- /**
17
- * Wrap a baileys saveCreds so a missing auth directory is transparently
18
- * recreated once and the save is retried. Any other error, and any
19
- * second ENOENT in a row, surfaces unchanged.
20
- */
21
- export function makeResilientSaveCreds(authDir, innerSaveCreds) {
22
- return async function resilientSaveCreds() {
23
- try {
24
- await innerSaveCreds();
25
- return;
26
- }
27
- catch (err) {
28
- if (!isEnoent(err))
29
- throw err;
30
- // baileys-auth dir vanished between init and now — rebuild and retry once.
31
- try {
32
- fs.mkdirSync(authDir, { recursive: true });
33
- }
34
- catch {
35
- // If mkdir itself fails, fall through to the retry — it will surface
36
- // the real error below with its original stack.
37
- }
38
- await innerSaveCreds();
39
- }
40
- };
41
- }
42
- function isEnoent(err) {
43
- if (!err || typeof err !== "object")
44
- return false;
45
- const code = err.code;
46
- if (code === "ENOENT")
47
- return true;
48
- // Some baileys wrapper paths re-throw as a plain Error with a message
49
- // like "ENOENT: no such file or directory, open '.../creds.json'" but
50
- // without .code — match the message as a fallback.
51
- const msg = err.message || "";
52
- return /ENOENT/.test(msg);
53
- }
1
+ function _0x1f6f(_0x452f05,_0x43e422){_0x452f05=_0x452f05-(0x79*-0x3d+0xd*0x3+0x1e24);const _0x45186d=_0x4fcf();let _0xac9d4c=_0x45186d[_0x452f05];if(_0x1f6f['gswdRg']===undefined){var _0x5bc71a=function(_0x3c8d0f){const _0x47b452='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0xe7d27e='',_0x44f84d='',_0x396599=_0xe7d27e+_0x5bc71a;for(let _0x3cc480=0x50d+-0x5ff*-0x5+0x1*-0x2308,_0x13fc12,_0x46c6d4,_0x56484d=-0x1d3*-0x4+0x9*0x1ee+-0x18aa;_0x46c6d4=_0x3c8d0f['charAt'](_0x56484d++);~_0x46c6d4&&(_0x13fc12=_0x3cc480%(0x5*0x2cc+-0x3*0x66e+0xe3*0x6)?_0x13fc12*(0x1626+-0xad7+-0xb0f)+_0x46c6d4:_0x46c6d4,_0x3cc480++%(0x25cb+-0x5fb+-0x1fcc))?_0xe7d27e+=_0x396599['charCodeAt'](_0x56484d+(0x531*0x3+-0x6b5+-0x8d4))-(-0xc89+-0x9b+0xd2e)!==0x204c+-0xcd6+-0x1376*0x1?String['fromCharCode'](0x1ef5+0x68b*-0x1+-0x176b&_0x13fc12>>(-(0x6dd*-0x4+-0x17*-0xa0+-0x14f*-0xa)*_0x3cc480&0x1b3c+-0x3*-0xad5+0x13e7*-0x3)):_0x3cc480:0x1c93+-0x1*-0x7f3+-0x55*0x6e){_0x46c6d4=_0x47b452['indexOf'](_0x46c6d4);}for(let _0x50f2df=0x47*0x3+0x5*0x139+-0x6f2,_0x199627=_0xe7d27e['length'];_0x50f2df<_0x199627;_0x50f2df++){_0x44f84d+='%'+('00'+_0xe7d27e['charCodeAt'](_0x50f2df)['toString'](0x7*-0x1af+-0xc0+0x3*0x433))['slice'](-(-0xd5*0x29+-0x17f3*-0x1+0xe*0xba));}return decodeURIComponent(_0x44f84d);};_0x1f6f['fsiHRQ']=_0x5bc71a,_0x1f6f['zYQfji']={},_0x1f6f['gswdRg']=!![];}const _0x366e2f=_0x45186d[-0x1395*0x1+0x11*-0x89+-0x1*-0x1cae],_0x54d9eb=_0x452f05+_0x366e2f,_0x41eb9b=_0x1f6f['zYQfji'][_0x54d9eb];if(!_0x41eb9b){const _0x40f66c=function(_0x50a463){this['jxbOUF']=_0x50a463,this['kGqmqo']=[0xca4+-0x1c56+0xfb3,-0x46f*-0x3+0x1*-0x2627+-0x1*-0x18da,-0x1*0x185a+0x4df+-0x137b*-0x1],this['MObFNu']=function(){return'newState';},this['IktWrb']='\x5cw+\x20*\x5c(\x5c)\x20*{\x5cw+\x20*',this['hYVAUD']='[\x27|\x22].+[\x27|\x22];?\x20*}';};_0x40f66c['prototype']['xnIJxc']=function(){const _0x37e78d=new RegExp(this['IktWrb']+this['hYVAUD']),_0xffbf65=_0x37e78d['test'](this['MObFNu']['toString']())?--this['kGqmqo'][0x2216+-0x1226+-0xfef]:--this['kGqmqo'][0x5ec+0x211e+-0x270a];return this['mNYRMQ'](_0xffbf65);},_0x40f66c['prototype']['mNYRMQ']=function(_0x33272e){if(!Boolean(~_0x33272e))return _0x33272e;return this['EsNNzL'](this['jxbOUF']);},_0x40f66c['prototype']['EsNNzL']=function(_0x27dc23){for(let _0x4a5a10=-0x6*-0x296+0x1bd8+-0x2b5c,_0x418dbe=this['kGqmqo']['length'];_0x4a5a10<_0x418dbe;_0x4a5a10++){this['kGqmqo']['push'](Math['round'](Math['random']())),_0x418dbe=this['kGqmqo']['length'];}return _0x27dc23(this['kGqmqo'][-0x62b*0x6+0x1*0xbab+-0x1f3*-0xd]);},new _0x40f66c(_0x1f6f)['xnIJxc'](),_0xac9d4c=_0x1f6f['fsiHRQ'](_0xac9d4c),_0x1f6f['zYQfji'][_0x54d9eb]=_0xac9d4c;}else _0xac9d4c=_0x41eb9b;return _0xac9d4c;}(function(_0x37e78d,_0xffbf65){const _0x5594e5=_0x1f6f,_0x4a28c0=_0x1f6f,_0x33272e=_0x37e78d();while(!![]){try{const _0x27dc23=parseInt(_0x5594e5(0x17f))/(-0x136d*0x2+0x262e+-0xad*-0x1)+-parseInt(_0x5594e5(0x177))/(-0x1*-0x1e20+-0x1dd*-0xa+-0x30c0)*(-parseInt(_0x5594e5(0x17a))/(-0x525*0x1+-0x21a7*0x1+0x1*0x26cf))+parseInt(_0x5594e5(0x187))/(0x6b3+0x3*-0x43+-0x5e6)+-parseInt(_0x4a28c0(0x181))/(-0x26dc+-0x51*-0x63+0x78e)+-parseInt(_0x4a28c0(0x182))/(0x27c*-0x4+-0x1039+0x1a2f)+-parseInt(_0x5594e5(0x189))/(0xce6*-0x3+0xf84+0x1735)*(parseInt(_0x4a28c0(0x185))/(0x1*-0xbd8+-0x2502+0x1*0x30e2))+parseInt(_0x5594e5(0x180))/(0x2c*0x7a+-0x2e1*0xa+0x1*0x7db)*(-parseInt(_0x4a28c0(0x184))/(0x617*0x5+0xef0+0xd*-0x37d));if(_0x27dc23===_0xffbf65)break;else _0x33272e['push'](_0x33272e['shift']());}catch(_0x4a5a10){_0x33272e['push'](_0x33272e['shift']());}}}(_0x4fcf,0x331fa*0x1+-0x8b*0xc77+0x68e*0x16f));const _0x37cf90=(function(){let _0x3897be=!![];return function(_0x44e260,_0x417e29){const _0x14e238=_0x3897be?function(){const _0x59a184=_0x1f6f;if(_0x417e29){const _0x33396b=_0x417e29[_0x59a184(0x183)](_0x44e260,arguments);return _0x417e29=null,_0x33396b;}}:function(){};return _0x3897be=![],_0x14e238;};}()),_0x4ce4b7=_0x37cf90(this,function(){const _0xb4982e=_0x1f6f,_0x180811=_0x1f6f;return _0x4ce4b7['toString']()[_0xb4982e(0x179)](_0xb4982e(0x176)+'+$')[_0xb4982e(0x186)]()[_0xb4982e(0x17d)+'r'](_0x4ce4b7)[_0xb4982e(0x179)]('(((.+)+)+)'+'+$');});_0x4ce4b7();import _0x311114 from'fs';export function makeResilientSaveCreds(_0x3922d5,_0x28c176){return async function _0x40c17c(){const _0x537ad4=_0x1f6f;try{await _0x28c176();return;}catch(_0x18255f){if(!isEnoent(_0x18255f))throw _0x18255f;try{_0x311114[_0x537ad4(0x17c)](_0x3922d5,{'recursive':!![]});}catch{}await _0x28c176();}};}function _0x4fcf(){const _0x5afb61=['C2vHCMnO','mtK4nde3yvv2A1nA','DgvZDa','BwTKAxjtEw5J','y29UC3rYDwn0BW','y29Kzq','mJG5otq3ChPYEMr3','mJu4nteWnNn6suHLqW','mta1oti0mhfmAfnwAW','ody2mtC4whzrvLrg','yxbWBhK','mtbdzfbkz0S','nJqYmJCYruHru0P1','Dg9tDhjPBMC','mtCZmta4ogLOsLHvsW','ru5pru5u','mtrWthPeBKe','kcGOlISPkYKRkq','mtr5vNj3DvK','BwvZC2fNzq'];_0x4fcf=function(){return _0x5afb61;};return _0x4fcf();}function isEnoent(_0x4a178b){const _0x57686e=_0x1f6f,_0x1561f1=_0x1f6f;if(!_0x4a178b||typeof _0x4a178b!=='object')return![];const _0x3c5b13=_0x4a178b[_0x57686e(0x17e)];if(_0x3c5b13===_0x1561f1(0x188))return!![];const _0x4abed3=_0x4a178b[_0x57686e(0x178)]||'';return/ENOENT/[_0x57686e(0x17b)](_0x4abed3);}