@jungjaehoon/mama-os 0.26.0 → 0.27.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/agent/agent-loop.d.ts.map +1 -1
- package/dist/agent/agent-loop.js +6 -0
- package/dist/agent/agent-loop.js.map +1 -1
- package/dist/agent/attachment-text-extractor.d.ts +2 -0
- package/dist/agent/attachment-text-extractor.d.ts.map +1 -0
- package/dist/agent/attachment-text-extractor.js +128 -0
- package/dist/agent/attachment-text-extractor.js.map +1 -0
- package/dist/agent/code-act/constants.d.ts.map +1 -1
- package/dist/agent/code-act/constants.js +17 -2
- package/dist/agent/code-act/constants.js.map +1 -1
- package/dist/agent/code-act/host-bridge.d.ts.map +1 -1
- package/dist/agent/code-act/host-bridge.js +55 -2
- package/dist/agent/code-act/host-bridge.js.map +1 -1
- package/dist/agent/code-act/tool-policy.d.ts +7 -1
- package/dist/agent/code-act/tool-policy.d.ts.map +1 -1
- package/dist/agent/code-act/tool-policy.js +28 -1
- package/dist/agent/code-act/tool-policy.js.map +1 -1
- package/dist/agent/codex-app-server-process.d.ts +1 -0
- package/dist/agent/codex-app-server-process.d.ts.map +1 -1
- package/dist/agent/codex-app-server-process.js +16 -0
- package/dist/agent/codex-app-server-process.js.map +1 -1
- package/dist/agent/drive-tools.d.ts +2 -0
- package/dist/agent/drive-tools.d.ts.map +1 -1
- package/dist/agent/drive-tools.js +3 -1
- package/dist/agent/drive-tools.js.map +1 -1
- package/dist/agent/gateway-tool-executor.d.ts +10 -3
- package/dist/agent/gateway-tool-executor.d.ts.map +1 -1
- package/dist/agent/gateway-tool-executor.js +207 -26
- package/dist/agent/gateway-tool-executor.js.map +1 -1
- package/dist/agent/gateway-tools.md +5 -1
- package/dist/agent/image-translation-tools.d.ts +48 -0
- package/dist/agent/image-translation-tools.d.ts.map +1 -0
- package/dist/agent/image-translation-tools.js +274 -0
- package/dist/agent/image-translation-tools.js.map +1 -0
- package/dist/agent/role-manager.d.ts.map +1 -1
- package/dist/agent/role-manager.js +9 -1
- package/dist/agent/role-manager.js.map +1 -1
- package/dist/agent/tool-registry.d.ts.map +1 -1
- package/dist/agent/tool-registry.js +25 -1
- package/dist/agent/tool-registry.js.map +1 -1
- package/dist/agent/types.d.ts +4 -33
- package/dist/agent/types.d.ts.map +1 -1
- package/dist/agent/types.js.map +1 -1
- package/dist/cli/commands/start.d.ts.map +1 -1
- package/dist/cli/commands/start.js +18 -8
- package/dist/cli/commands/start.js.map +1 -1
- package/dist/cli/config/types.d.ts.map +1 -1
- package/dist/cli/config/types.js +5 -1
- package/dist/cli/config/types.js.map +1 -1
- package/dist/cli/runtime/envelope-bootstrap.js +2 -2
- package/dist/cli/runtime/envelope-bootstrap.js.map +1 -1
- package/dist/gateways/message-router.d.ts +3 -0
- package/dist/gateways/message-router.d.ts.map +1 -1
- package/dist/gateways/message-router.js +428 -336
- package/dist/gateways/message-router.js.map +1 -1
- package/dist/gateways/session-store.d.ts +2 -0
- package/dist/gateways/session-store.d.ts.map +1 -1
- package/dist/gateways/session-store.js +41 -1
- package/dist/gateways/session-store.js.map +1 -1
- package/dist/gateways/telegram-media.d.ts +13 -0
- package/dist/gateways/telegram-media.d.ts.map +1 -1
- package/dist/gateways/telegram-media.js +77 -0
- package/dist/gateways/telegram-media.js.map +1 -1
- package/dist/gateways/telegram-message-ledger.d.ts +49 -0
- package/dist/gateways/telegram-message-ledger.d.ts.map +1 -0
- package/dist/gateways/telegram-message-ledger.js +266 -0
- package/dist/gateways/telegram-message-ledger.js.map +1 -0
- package/dist/gateways/telegram-response-presenter.d.ts +10 -0
- package/dist/gateways/telegram-response-presenter.d.ts.map +1 -1
- package/dist/gateways/telegram-response-presenter.js +129 -32
- package/dist/gateways/telegram-response-presenter.js.map +1 -1
- package/dist/gateways/telegram.d.ts +20 -4
- package/dist/gateways/telegram.d.ts.map +1 -1
- package/dist/gateways/telegram.js +300 -64
- package/dist/gateways/telegram.js.map +1 -1
- package/dist/operator/operator-interfaces.d.ts +1 -1
- package/dist/operator/operator-interfaces.d.ts.map +1 -1
- package/dist/operator/operator-trigger-loop.d.ts +12 -0
- package/dist/operator/operator-trigger-loop.d.ts.map +1 -1
- package/dist/operator/operator-trigger-loop.js +184 -38
- package/dist/operator/operator-trigger-loop.js.map +1 -1
- package/dist/operator/pending-report-store.d.ts +35 -0
- package/dist/operator/pending-report-store.d.ts.map +1 -0
- package/dist/operator/pending-report-store.js +155 -0
- package/dist/operator/pending-report-store.js.map +1 -0
- package/dist/operator/runtime-config.d.ts +10 -0
- package/dist/operator/runtime-config.d.ts.map +1 -0
- package/dist/operator/runtime-config.js +21 -0
- package/dist/operator/runtime-config.js.map +1 -0
- package/dist/operator/situation-report.d.ts +37 -0
- package/dist/operator/situation-report.d.ts.map +1 -1
- package/dist/operator/situation-report.js +122 -9
- package/dist/operator/situation-report.js.map +1 -1
- package/package.json +3 -1
- package/scripts/attachment/extract-office-text.js +179 -0
- package/scripts/attachment/extract-pdf-text.swift +36 -0
- package/scripts/image/fb-overlay.py +128 -0
- package/scripts/image/ocr-image.py +38 -0
- package/scripts/setup-ocr.js +120 -0
- package/templates/skills/image-translate.md +17 -22
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"telegram.d.ts","sourceRoot":"","sources":["../../src/gateways/telegram.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;
|
|
1
|
+
{"version":3,"file":"telegram.d.ts","sourceRoot":"","sources":["../../src/gateways/telegram.ts"],"names":[],"mappings":"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"}
|
|
@@ -13,8 +13,10 @@
|
|
|
13
13
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
14
14
|
exports.TelegramGateway = void 0;
|
|
15
15
|
const promises_1 = require("node:fs/promises");
|
|
16
|
+
const node_crypto_1 = require("node:crypto");
|
|
16
17
|
const node_os_1 = require("node:os");
|
|
17
18
|
const node_path_1 = require("node:path");
|
|
19
|
+
const node_async_hooks_1 = require("node:async_hooks");
|
|
18
20
|
const grammy_1 = require("grammy");
|
|
19
21
|
const base_gateway_js_1 = require("./base-gateway.js");
|
|
20
22
|
const memory_logger_js_1 = require("../memory/memory-logger.js");
|
|
@@ -22,10 +24,35 @@ const untrusted_content_js_1 = require("../utils/untrusted-content.js");
|
|
|
22
24
|
const attachment_utils_js_1 = require("./attachment-utils.js");
|
|
23
25
|
const telegram_media_js_1 = require("./telegram-media.js");
|
|
24
26
|
const telegram_response_presenter_js_1 = require("./telegram-response-presenter.js");
|
|
27
|
+
const telegram_message_ledger_js_1 = require("./telegram-message-ledger.js");
|
|
25
28
|
const TELEGRAM_MAX_LENGTH = 4096;
|
|
26
29
|
const MESSAGE_DEDUP_TTL_MS = 60_000;
|
|
27
30
|
const REJECTED_CHAT_WARN_INTERVAL_MS = 60_000;
|
|
28
31
|
const TYPING_INTERVAL_MS = 4_000;
|
|
32
|
+
function parseOutboundChunkProgress(value) {
|
|
33
|
+
const parsed = JSON.parse(value);
|
|
34
|
+
if (!parsed || typeof parsed !== 'object')
|
|
35
|
+
throw new Error('Invalid Telegram outbound progress');
|
|
36
|
+
const record = parsed;
|
|
37
|
+
if (record.version !== 1 ||
|
|
38
|
+
!Number.isSafeInteger(record.nextIndex) ||
|
|
39
|
+
record.nextIndex < 0 ||
|
|
40
|
+
typeof record.uncertain !== 'boolean') {
|
|
41
|
+
throw new Error('Invalid Telegram outbound progress');
|
|
42
|
+
}
|
|
43
|
+
return { nextIndex: record.nextIndex, uncertain: record.uncertain };
|
|
44
|
+
}
|
|
45
|
+
function isDefiniteTelegramApiRejection(error) {
|
|
46
|
+
if (!error || typeof error !== 'object')
|
|
47
|
+
return false;
|
|
48
|
+
const record = error;
|
|
49
|
+
if (Number.isSafeInteger(record.error_code))
|
|
50
|
+
return true;
|
|
51
|
+
const response = record.response;
|
|
52
|
+
return (Boolean(response) &&
|
|
53
|
+
typeof response === 'object' &&
|
|
54
|
+
Number.isSafeInteger(response.error_code));
|
|
55
|
+
}
|
|
29
56
|
const EMOTION_EMOJI = {
|
|
30
57
|
happy: ['😊', '😀', '😄', '🙂'],
|
|
31
58
|
laugh: ['😂', '🤣', '😆'],
|
|
@@ -58,6 +85,9 @@ class TelegramGateway extends base_gateway_js_1.BaseGateway {
|
|
|
58
85
|
lastMessageAt;
|
|
59
86
|
mediaRoot;
|
|
60
87
|
fetchImpl;
|
|
88
|
+
messageLedger;
|
|
89
|
+
chatTails = new Map();
|
|
90
|
+
activeChat = new node_async_hooks_1.AsyncLocalStorage();
|
|
61
91
|
// Telegram update dedup
|
|
62
92
|
recentMessageIds = new Map();
|
|
63
93
|
rejectedChatWarnAt = new Map();
|
|
@@ -78,8 +108,12 @@ class TelegramGateway extends base_gateway_js_1.BaseGateway {
|
|
|
78
108
|
allowedChats: options.config?.allowedChats || [],
|
|
79
109
|
};
|
|
80
110
|
this.mediaRoot =
|
|
81
|
-
options.mediaRoot ??
|
|
111
|
+
options.mediaRoot ??
|
|
112
|
+
(0, node_path_1.join)(process.env.MAMA_WORKSPACE || (0, node_path_1.join)((0, node_os_1.homedir)(), '.mama', 'workspace'), 'media', 'inbound', 'telegram');
|
|
82
113
|
this.fetchImpl = options.fetchImpl;
|
|
114
|
+
this.messageLedger = new telegram_message_ledger_js_1.TelegramMessageLedger(options.messageLedgerPath ??
|
|
115
|
+
process.env.MAMA_TELEGRAM_MESSAGE_LEDGER_PATH ??
|
|
116
|
+
`${this.mediaRoot}.processed-message-ids.json`, { log: (line) => console.error(line) });
|
|
83
117
|
}
|
|
84
118
|
async start() {
|
|
85
119
|
if (this.connected) {
|
|
@@ -102,6 +136,9 @@ class TelegramGateway extends base_gateway_js_1.BaseGateway {
|
|
|
102
136
|
timestamp: new Date(),
|
|
103
137
|
data: { error: error instanceof Error ? error.message : String(error) },
|
|
104
138
|
});
|
|
139
|
+
// Let grammY treat the update as failed. The durable message ledger
|
|
140
|
+
// prevents unsafe turn re-execution and replays a ready outbox response.
|
|
141
|
+
throw error;
|
|
105
142
|
}
|
|
106
143
|
});
|
|
107
144
|
this.bot.catch((err) => {
|
|
@@ -112,6 +149,7 @@ class TelegramGateway extends base_gateway_js_1.BaseGateway {
|
|
|
112
149
|
this.botId = this.bot.botInfo.id;
|
|
113
150
|
this.botUsername = this.bot.botInfo.username || '';
|
|
114
151
|
console.log(`Telegram bot logged in as @${this.botUsername}`);
|
|
152
|
+
await this.recoverPendingInboundDeliveries();
|
|
115
153
|
if (this.config.allowedChats && this.config.allowedChats.length > 0) {
|
|
116
154
|
console.log(`[Telegram] Inbound allowlist active: ${this.config.allowedChats.length} chat(s)`);
|
|
117
155
|
}
|
|
@@ -122,6 +160,7 @@ class TelegramGateway extends base_gateway_js_1.BaseGateway {
|
|
|
122
160
|
}
|
|
123
161
|
this.connected = true;
|
|
124
162
|
this.lastError = null;
|
|
163
|
+
await (0, telegram_media_js_1.pruneTelegramMediaRoot)(this.mediaRoot);
|
|
125
164
|
// Periodic dedup cleanup
|
|
126
165
|
this.dedupCleanupTimer = setInterval(() => {
|
|
127
166
|
const now = Date.now();
|
|
@@ -134,6 +173,12 @@ class TelegramGateway extends base_gateway_js_1.BaseGateway {
|
|
|
134
173
|
this.rejectedChatWarnAt.delete(key);
|
|
135
174
|
}
|
|
136
175
|
}
|
|
176
|
+
void (0, telegram_media_js_1.pruneTelegramMediaRoot)(this.mediaRoot).catch((error) => {
|
|
177
|
+
console.error(`[Telegram] media retention cleanup failed: ${error instanceof Error ? error.message : String(error)}`);
|
|
178
|
+
});
|
|
179
|
+
void this.recoverPendingInboundDeliveries().catch((error) => {
|
|
180
|
+
console.error(`[Telegram] pending response recovery failed: ${error instanceof Error ? error.message : String(error)}`);
|
|
181
|
+
});
|
|
137
182
|
}, 60_000);
|
|
138
183
|
this.emitEvent({
|
|
139
184
|
type: 'connected',
|
|
@@ -184,12 +229,39 @@ class TelegramGateway extends base_gateway_js_1.BaseGateway {
|
|
|
184
229
|
});
|
|
185
230
|
}
|
|
186
231
|
async handleMessage(msg) {
|
|
232
|
+
const chatKey = String(msg.chat?.id ?? 'unknown');
|
|
233
|
+
await this.runInChatQueue(chatKey, () => this.processMessage(msg));
|
|
234
|
+
}
|
|
235
|
+
async runInChatQueue(chatKey, work, allowReentrant = false) {
|
|
236
|
+
if (allowReentrant && this.activeChat.getStore() === chatKey)
|
|
237
|
+
return work();
|
|
238
|
+
const previous = this.chatTails.get(chatKey);
|
|
239
|
+
let release;
|
|
240
|
+
const gate = new Promise((resolve) => {
|
|
241
|
+
release = resolve;
|
|
242
|
+
});
|
|
243
|
+
const currentTail = (previous ?? Promise.resolve()).catch(() => { }).then(() => gate);
|
|
244
|
+
this.chatTails.set(chatKey, currentTail);
|
|
245
|
+
try {
|
|
246
|
+
if (previous)
|
|
247
|
+
await previous.catch(() => { });
|
|
248
|
+
return await this.activeChat.run(chatKey, work);
|
|
249
|
+
}
|
|
250
|
+
finally {
|
|
251
|
+
release();
|
|
252
|
+
if (this.chatTails.get(chatKey) === currentTail)
|
|
253
|
+
this.chatTails.delete(chatKey);
|
|
254
|
+
}
|
|
255
|
+
}
|
|
256
|
+
async processMessage(msg) {
|
|
187
257
|
if (!msg.from || !msg.chat)
|
|
188
258
|
return;
|
|
189
259
|
const now = Date.now();
|
|
190
260
|
// Telegram update dedup (60s TTL). Do not deduplicate by text content:
|
|
191
261
|
// repeated short replies and emoji are distinct conversation turns.
|
|
192
262
|
const messageKey = `${msg.chat.id}:${msg.message_id}`;
|
|
263
|
+
if (this.messageLedger.get(messageKey)?.state === 'delivered')
|
|
264
|
+
return;
|
|
193
265
|
if (this.recentMessageIds.has(messageKey))
|
|
194
266
|
return;
|
|
195
267
|
this.recentMessageIds.set(messageKey, now);
|
|
@@ -246,21 +318,38 @@ class TelegramGateway extends base_gateway_js_1.BaseGateway {
|
|
|
246
318
|
// owner relayed, not the owner speaking. Selection and mention removal
|
|
247
319
|
// happen first so caption provenance follows the same trust boundary.
|
|
248
320
|
const isForwarded = Boolean(msg.forward_origin);
|
|
321
|
+
const durableEntry = this.messageLedger.get(messageKey);
|
|
249
322
|
const numChatId = msg.chat.id;
|
|
250
323
|
const api = this.bot.api;
|
|
251
|
-
const presenter =
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
}
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
324
|
+
const presenter = this.createResponsePresenter(numChatId, messageKey, durableEntry?.nextChunkIndex ?? 0);
|
|
325
|
+
if (durableEntry?.state !== 'ready')
|
|
326
|
+
await presenter.start();
|
|
327
|
+
if (durableEntry?.state === 'ready' && durableEntry.response !== undefined) {
|
|
328
|
+
try {
|
|
329
|
+
await presenter.finalize(durableEntry.response);
|
|
330
|
+
this.messageLedger.markDelivered(messageKey);
|
|
331
|
+
}
|
|
332
|
+
catch (error) {
|
|
333
|
+
this.recentMessageIds.delete(messageKey);
|
|
334
|
+
throw error;
|
|
335
|
+
}
|
|
336
|
+
return;
|
|
337
|
+
}
|
|
338
|
+
if (durableEntry?.state === 'processing') {
|
|
339
|
+
const interruptedNotice = 'The previous processing attempt was interrupted. It was not rerun because its external ' +
|
|
340
|
+
'side effects could not be proven safe to repeat. Please send a new message if you want ' +
|
|
341
|
+
'to retry it.';
|
|
342
|
+
this.messageLedger.markReady(messageKey, interruptedNotice);
|
|
343
|
+
try {
|
|
344
|
+
await presenter.finalize(interruptedNotice);
|
|
345
|
+
this.messageLedger.markDelivered(messageKey);
|
|
346
|
+
}
|
|
347
|
+
catch (error) {
|
|
348
|
+
this.recentMessageIds.delete(messageKey);
|
|
349
|
+
throw error;
|
|
350
|
+
}
|
|
351
|
+
return;
|
|
352
|
+
}
|
|
264
353
|
const attachments = [];
|
|
265
354
|
const contentBlocks = [];
|
|
266
355
|
let transientMediaPath;
|
|
@@ -301,7 +390,9 @@ class TelegramGateway extends base_gateway_js_1.BaseGateway {
|
|
|
301
390
|
for (const block of imageBlocks) {
|
|
302
391
|
contentBlocks.push({ type: 'image', source: block.source });
|
|
303
392
|
}
|
|
304
|
-
|
|
393
|
+
// Keep the private local path for bounded OCR/overlay follow-ups. The
|
|
394
|
+
// media retention sweeper removes it after the configured TTL/quota.
|
|
395
|
+
transientMediaPath = undefined;
|
|
305
396
|
if (!text.trim()) {
|
|
306
397
|
text = '[Image]';
|
|
307
398
|
}
|
|
@@ -347,6 +438,7 @@ class TelegramGateway extends base_gateway_js_1.BaseGateway {
|
|
|
347
438
|
if (!text.trim()) {
|
|
348
439
|
text = `[Image: ${downloaded.filename}]`;
|
|
349
440
|
}
|
|
441
|
+
transientMediaPath = undefined;
|
|
350
442
|
}
|
|
351
443
|
else {
|
|
352
444
|
contentBlocks.push({
|
|
@@ -356,8 +448,10 @@ class TelegramGateway extends base_gateway_js_1.BaseGateway {
|
|
|
356
448
|
if (!text.trim()) {
|
|
357
449
|
text = `[File: ${downloaded.filename}]`;
|
|
358
450
|
}
|
|
451
|
+
// Documents remain in the private inbound workspace so the routed
|
|
452
|
+
// turn and a bounded follow-up can read the actual attachment.
|
|
453
|
+
transientMediaPath = undefined;
|
|
359
454
|
}
|
|
360
|
-
delete attachment.localPath;
|
|
361
455
|
}
|
|
362
456
|
}
|
|
363
457
|
catch {
|
|
@@ -408,71 +502,230 @@ class TelegramGateway extends base_gateway_js_1.BaseGateway {
|
|
|
408
502
|
const sendTyping = () => this.bot?.api.sendChatAction(numChatId, 'typing').catch(() => { });
|
|
409
503
|
sendTyping();
|
|
410
504
|
const typingInterval = setInterval(sendTyping, TYPING_INTERVAL_MS);
|
|
411
|
-
// Process through message router
|
|
412
|
-
let result;
|
|
413
505
|
try {
|
|
414
|
-
|
|
415
|
-
|
|
506
|
+
// Process through message router
|
|
507
|
+
let result;
|
|
508
|
+
this.messageLedger.claim(messageKey);
|
|
509
|
+
try {
|
|
510
|
+
result = await this.messageRouter.process(normalizedMessage, {
|
|
511
|
+
onStream: presenter.callbacks(),
|
|
512
|
+
onQueued: () => presenter.markQueued(),
|
|
513
|
+
});
|
|
514
|
+
}
|
|
515
|
+
catch (error) {
|
|
516
|
+
const failureNotice = 'An error occurred while processing the message.';
|
|
517
|
+
this.messageLedger.markReady(messageKey, failureNotice);
|
|
518
|
+
try {
|
|
519
|
+
await presenter.fail(failureNotice);
|
|
520
|
+
this.messageLedger.markDelivered(messageKey);
|
|
521
|
+
}
|
|
522
|
+
catch {
|
|
523
|
+
this.recentMessageIds.delete(messageKey);
|
|
524
|
+
}
|
|
525
|
+
throw error;
|
|
526
|
+
}
|
|
527
|
+
this.messageLedger.markReady(messageKey, result.response);
|
|
528
|
+
try {
|
|
529
|
+
await presenter.finalize(result.response);
|
|
530
|
+
this.messageLedger.markDelivered(messageKey);
|
|
531
|
+
}
|
|
532
|
+
catch (error) {
|
|
533
|
+
this.recentMessageIds.delete(messageKey);
|
|
534
|
+
throw error;
|
|
535
|
+
}
|
|
536
|
+
this.lastMessageAt = Date.now();
|
|
537
|
+
memoryLogger.logMessage('Telegram', 'MAMA', result.response, true);
|
|
538
|
+
this.emitEvent({
|
|
539
|
+
type: 'message_sent',
|
|
540
|
+
source: 'telegram',
|
|
541
|
+
timestamp: new Date(),
|
|
542
|
+
data: {
|
|
543
|
+
chatId,
|
|
544
|
+
responseLength: result.response.length,
|
|
545
|
+
duration: result.duration,
|
|
546
|
+
},
|
|
416
547
|
});
|
|
417
|
-
await presenter.finalize(result.response);
|
|
418
|
-
}
|
|
419
|
-
catch (error) {
|
|
420
|
-
await presenter.fail('An error occurred while processing the message.');
|
|
421
|
-
throw error;
|
|
422
548
|
}
|
|
423
549
|
finally {
|
|
424
550
|
clearInterval(typingInterval);
|
|
425
551
|
}
|
|
426
|
-
this.lastMessageAt = Date.now();
|
|
427
|
-
memoryLogger.logMessage('Telegram', 'MAMA', result.response, true);
|
|
428
|
-
this.emitEvent({
|
|
429
|
-
type: 'message_sent',
|
|
430
|
-
source: 'telegram',
|
|
431
|
-
timestamp: new Date(),
|
|
432
|
-
data: {
|
|
433
|
-
chatId,
|
|
434
|
-
responseLength: result.response.length,
|
|
435
|
-
duration: result.duration,
|
|
436
|
-
},
|
|
437
|
-
});
|
|
438
552
|
}
|
|
439
|
-
async sendMessage(chatId, text) {
|
|
553
|
+
async sendMessage(chatId, text, idempotencyKey) {
|
|
554
|
+
if (!this.bot)
|
|
555
|
+
throw new Error('Telegram gateway not connected');
|
|
556
|
+
if (!text.trim())
|
|
557
|
+
return;
|
|
558
|
+
await this.runInChatQueue(chatId, () => this.sendMessageNow(chatId, text, idempotencyKey));
|
|
559
|
+
}
|
|
560
|
+
async sendMessageFromActiveTurn(chatId, text, idempotencyKey) {
|
|
440
561
|
if (!this.bot)
|
|
441
562
|
throw new Error('Telegram gateway not connected');
|
|
442
563
|
if (!text.trim())
|
|
443
564
|
return;
|
|
444
|
-
|
|
565
|
+
await this.runInChatQueue(chatId, () => this.sendMessageNow(chatId, text, idempotencyKey), true);
|
|
566
|
+
}
|
|
567
|
+
async sendMessageNow(chatId, text, idempotencyKey) {
|
|
568
|
+
const bot = this.bot;
|
|
569
|
+
if (!bot)
|
|
570
|
+
throw new Error('Telegram gateway not connected');
|
|
571
|
+
const chunks = (0, telegram_response_presenter_js_1.splitTelegramMessage)(text, TELEGRAM_MAX_LENGTH);
|
|
445
572
|
const numChatId = Number(chatId);
|
|
446
|
-
|
|
447
|
-
|
|
573
|
+
if (!idempotencyKey) {
|
|
574
|
+
for (const chunk of chunks)
|
|
575
|
+
await bot.api.sendMessage(numChatId, chunk);
|
|
576
|
+
return;
|
|
577
|
+
}
|
|
578
|
+
const ledgerKey = this.outboundLedgerKey(idempotencyKey, 'text');
|
|
579
|
+
const existing = this.messageLedger.get(ledgerKey);
|
|
580
|
+
if (existing?.state === 'delivered')
|
|
581
|
+
return;
|
|
582
|
+
if (!existing)
|
|
583
|
+
this.messageLedger.claim(ledgerKey);
|
|
584
|
+
let nextIndex = 0;
|
|
585
|
+
if (existing?.state === 'ready' && existing.response) {
|
|
586
|
+
const progress = parseOutboundChunkProgress(existing.response);
|
|
587
|
+
nextIndex = progress.nextIndex;
|
|
588
|
+
if (progress.uncertain) {
|
|
589
|
+
console.warn(`[Telegram] Retrying delivery ${ledgerKey} from chunk ${nextIndex} after an ` +
|
|
590
|
+
'ambiguous prior acceptance; at-least-once delivery may duplicate that chunk');
|
|
591
|
+
}
|
|
592
|
+
}
|
|
593
|
+
for (let index = nextIndex; index < chunks.length; index += 1) {
|
|
594
|
+
this.messageLedger.markReady(ledgerKey, JSON.stringify({ version: 1, nextIndex: index, uncertain: true }));
|
|
595
|
+
try {
|
|
596
|
+
await bot.api.sendMessage(numChatId, chunks[index]);
|
|
597
|
+
}
|
|
598
|
+
catch (error) {
|
|
599
|
+
if (isDefiniteTelegramApiRejection(error)) {
|
|
600
|
+
this.messageLedger.markReady(ledgerKey, JSON.stringify({ version: 1, nextIndex: index, uncertain: false }));
|
|
601
|
+
}
|
|
602
|
+
throw error;
|
|
603
|
+
}
|
|
604
|
+
this.messageLedger.markReady(ledgerKey, JSON.stringify({ version: 1, nextIndex: index + 1, uncertain: false }));
|
|
448
605
|
}
|
|
606
|
+
this.messageLedger.markDelivered(ledgerKey);
|
|
607
|
+
}
|
|
608
|
+
async sendFile(chatId, filePath, caption, idempotencyKey) {
|
|
609
|
+
if (!this.bot)
|
|
610
|
+
throw new Error('Telegram gateway not connected');
|
|
611
|
+
const { InputFile } = await import('grammy');
|
|
612
|
+
await this.runInChatQueue(chatId, () => this.sendOutboundOnce(idempotencyKey, 'file', () => this.bot.api.sendDocument(Number(chatId), new InputFile(filePath), { caption }).then(() => { })));
|
|
613
|
+
}
|
|
614
|
+
async sendFileFromActiveTurn(chatId, filePath, caption, idempotencyKey) {
|
|
615
|
+
if (!this.bot)
|
|
616
|
+
throw new Error('Telegram gateway not connected');
|
|
617
|
+
const { InputFile } = await import('grammy');
|
|
618
|
+
await this.runInChatQueue(chatId, () => this.sendOutboundOnce(idempotencyKey, 'file', () => this.bot.api.sendDocument(Number(chatId), new InputFile(filePath), { caption }).then(() => { })), true);
|
|
449
619
|
}
|
|
450
|
-
async
|
|
620
|
+
async sendImage(chatId, imagePath, caption, idempotencyKey) {
|
|
451
621
|
if (!this.bot)
|
|
452
622
|
throw new Error('Telegram gateway not connected');
|
|
453
623
|
const { InputFile } = await import('grammy');
|
|
454
|
-
await this.bot.api.
|
|
624
|
+
await this.runInChatQueue(chatId, () => this.sendOutboundOnce(idempotencyKey, 'image', () => this.bot.api.sendPhoto(Number(chatId), new InputFile(imagePath), { caption }).then(() => { })));
|
|
455
625
|
}
|
|
456
|
-
async
|
|
626
|
+
async sendImageFromActiveTurn(chatId, imagePath, caption, idempotencyKey) {
|
|
457
627
|
if (!this.bot)
|
|
458
628
|
throw new Error('Telegram gateway not connected');
|
|
459
629
|
const { InputFile } = await import('grammy');
|
|
460
|
-
await this.bot.api.sendPhoto(Number(chatId), new InputFile(imagePath), { caption });
|
|
630
|
+
await this.runInChatQueue(chatId, () => this.sendOutboundOnce(idempotencyKey, 'image', () => this.bot.api.sendPhoto(Number(chatId), new InputFile(imagePath), { caption }).then(() => { })), true);
|
|
631
|
+
}
|
|
632
|
+
async sendOutboundOnce(idempotencyKey, kind, send) {
|
|
633
|
+
if (!idempotencyKey) {
|
|
634
|
+
await send();
|
|
635
|
+
return;
|
|
636
|
+
}
|
|
637
|
+
const ledgerKey = this.outboundLedgerKey(idempotencyKey, kind);
|
|
638
|
+
const existing = this.messageLedger.get(ledgerKey);
|
|
639
|
+
if (existing?.state === 'delivered')
|
|
640
|
+
return;
|
|
641
|
+
if (!existing)
|
|
642
|
+
this.messageLedger.claim(ledgerKey);
|
|
643
|
+
await send();
|
|
644
|
+
this.messageLedger.markDelivered(ledgerKey);
|
|
645
|
+
}
|
|
646
|
+
async recoverPendingInboundDeliveries() {
|
|
647
|
+
for (const snapshot of this.messageLedger.listUndelivered()) {
|
|
648
|
+
if (snapshot.key.startsWith('outbound:'))
|
|
649
|
+
continue;
|
|
650
|
+
const separator = snapshot.key.lastIndexOf(':');
|
|
651
|
+
if (separator <= 0)
|
|
652
|
+
continue;
|
|
653
|
+
const chatId = snapshot.key.slice(0, separator);
|
|
654
|
+
await this.runInChatQueue(chatId, async () => {
|
|
655
|
+
const entry = this.messageLedger.get(snapshot.key);
|
|
656
|
+
if (!entry || entry.state === 'delivered')
|
|
657
|
+
return;
|
|
658
|
+
if (entry.state === 'processing' && this.messageLedger.isOwnedByCurrentProcess(entry)) {
|
|
659
|
+
return;
|
|
660
|
+
}
|
|
661
|
+
const response = entry.state === 'ready' && entry.response !== undefined
|
|
662
|
+
? entry.response
|
|
663
|
+
: 'The previous processing attempt was interrupted. It was not rerun because its ' +
|
|
664
|
+
'external side effects could not be proven safe to repeat. Please send a new message ' +
|
|
665
|
+
'if you want to retry it.';
|
|
666
|
+
if (entry.state !== 'ready')
|
|
667
|
+
this.messageLedger.markReady(entry.key, response);
|
|
668
|
+
if (entry.deliveryUncertain) {
|
|
669
|
+
console.warn(`[Telegram] Resuming inbound delivery ${entry.key} from uncertain chunk ` +
|
|
670
|
+
`${entry.nextChunkIndex ?? 0}; that chunk may appear twice`);
|
|
671
|
+
}
|
|
672
|
+
const presenter = this.createResponsePresenter(Number(chatId), entry.key, entry.nextChunkIndex ?? 0);
|
|
673
|
+
await presenter.finalize(response);
|
|
674
|
+
this.messageLedger.markDelivered(entry.key);
|
|
675
|
+
});
|
|
676
|
+
}
|
|
677
|
+
}
|
|
678
|
+
createResponsePresenter(chatId, messageKey, resumeFromChunk = 0) {
|
|
679
|
+
const api = this.bot.api;
|
|
680
|
+
return new telegram_response_presenter_js_1.TelegramResponsePresenter({
|
|
681
|
+
send: async (content) => {
|
|
682
|
+
const sent = await api.sendMessage(chatId, content);
|
|
683
|
+
return String(sent.message_id);
|
|
684
|
+
},
|
|
685
|
+
edit: async (handle, content) => {
|
|
686
|
+
await api.editMessageText(chatId, Number(handle), content);
|
|
687
|
+
},
|
|
688
|
+
delete: async (handle) => {
|
|
689
|
+
await api.deleteMessage(chatId, Number(handle));
|
|
690
|
+
},
|
|
691
|
+
}, {
|
|
692
|
+
resumeFromChunk,
|
|
693
|
+
onChunkProgress: (nextIndex, uncertain) => {
|
|
694
|
+
if (this.messageLedger.get(messageKey)?.state === 'ready') {
|
|
695
|
+
this.messageLedger.markDeliveryProgress(messageKey, nextIndex, uncertain);
|
|
696
|
+
}
|
|
697
|
+
},
|
|
698
|
+
});
|
|
699
|
+
}
|
|
700
|
+
outboundLedgerKey(idempotencyKey, kind) {
|
|
701
|
+
const digest = (0, node_crypto_1.createHash)('sha256').update(`${kind}\0${idempotencyKey}`).digest('hex');
|
|
702
|
+
return `outbound:${digest}`;
|
|
461
703
|
}
|
|
462
704
|
async sendSticker(chatId, emotion) {
|
|
463
705
|
if (!this.bot)
|
|
464
706
|
throw new Error('Telegram gateway not connected');
|
|
707
|
+
return this.runInChatQueue(String(chatId), () => this.sendStickerNow(chatId, emotion));
|
|
708
|
+
}
|
|
709
|
+
async sendStickerFromActiveTurn(chatId, emotion) {
|
|
710
|
+
if (!this.bot)
|
|
711
|
+
throw new Error('Telegram gateway not connected');
|
|
712
|
+
return this.runInChatQueue(String(chatId), () => this.sendStickerNow(chatId, emotion), true);
|
|
713
|
+
}
|
|
714
|
+
async sendStickerNow(chatId, emotion) {
|
|
715
|
+
const bot = this.bot;
|
|
716
|
+
if (!bot)
|
|
717
|
+
throw new Error('Telegram gateway not connected');
|
|
465
718
|
await this.loadStickerSet();
|
|
466
719
|
const candidates = EMOTION_EMOJI[emotion] ?? EMOTION_EMOJI.happy;
|
|
467
720
|
const numChatId = typeof chatId === 'string' ? Number(chatId) : chatId;
|
|
468
721
|
for (const emoji of candidates) {
|
|
469
722
|
const fileId = this.stickerCache.get(emoji);
|
|
470
723
|
if (fileId) {
|
|
471
|
-
await
|
|
724
|
+
await bot.api.sendSticker(numChatId, fileId);
|
|
472
725
|
return true;
|
|
473
726
|
}
|
|
474
727
|
}
|
|
475
|
-
await
|
|
728
|
+
await bot.api.sendMessage(numChatId, candidates[0]);
|
|
476
729
|
return false;
|
|
477
730
|
}
|
|
478
731
|
getLastError() {
|
|
@@ -481,23 +734,6 @@ class TelegramGateway extends base_gateway_js_1.BaseGateway {
|
|
|
481
734
|
getLastMessageAt() {
|
|
482
735
|
return this.lastMessageAt;
|
|
483
736
|
}
|
|
484
|
-
splitMessage(text, maxLength) {
|
|
485
|
-
if (text.length <= maxLength)
|
|
486
|
-
return [text];
|
|
487
|
-
const chunks = [];
|
|
488
|
-
let remaining = text;
|
|
489
|
-
while (remaining.length > 0) {
|
|
490
|
-
if (remaining.length <= maxLength) {
|
|
491
|
-
chunks.push(remaining);
|
|
492
|
-
break;
|
|
493
|
-
}
|
|
494
|
-
const newline = remaining.lastIndexOf('\n', maxLength);
|
|
495
|
-
const splitAt = newline > maxLength * 0.3 ? newline + 1 : maxLength;
|
|
496
|
-
chunks.push(remaining.slice(0, splitAt));
|
|
497
|
-
remaining = remaining.slice(splitAt);
|
|
498
|
-
}
|
|
499
|
-
return chunks;
|
|
500
|
-
}
|
|
501
737
|
async loadStickerSet() {
|
|
502
738
|
if (this.stickerSetLoaded || !this.bot)
|
|
503
739
|
return;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"telegram.js","sourceRoot":"","sources":["../../src/gateways/telegram.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"telegram.js","sourceRoot":"","sources":["../../src/gateways/telegram.ts"],"names":[],"mappings":"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"}
|
|
@@ -102,7 +102,7 @@ export interface ReportSink {
|
|
|
102
102
|
* bound inside the implementation, never here. Ports Kagemusha `sendTelegram`.
|
|
103
103
|
*/
|
|
104
104
|
export interface OutputSink {
|
|
105
|
-
send(text: string): Promise<void>;
|
|
105
|
+
send(text: string, deliveryId?: string): Promise<void>;
|
|
106
106
|
}
|
|
107
107
|
/**
|
|
108
108
|
* Operator schedule/timing config. Values are loaded from `~/.mama/operator/*.json`, NOT
|