@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.
Files changed (101) hide show
  1. package/README.md +1 -1
  2. package/dist/agent/agent-loop.d.ts.map +1 -1
  3. package/dist/agent/agent-loop.js +6 -0
  4. package/dist/agent/agent-loop.js.map +1 -1
  5. package/dist/agent/attachment-text-extractor.d.ts +2 -0
  6. package/dist/agent/attachment-text-extractor.d.ts.map +1 -0
  7. package/dist/agent/attachment-text-extractor.js +128 -0
  8. package/dist/agent/attachment-text-extractor.js.map +1 -0
  9. package/dist/agent/code-act/constants.d.ts.map +1 -1
  10. package/dist/agent/code-act/constants.js +17 -2
  11. package/dist/agent/code-act/constants.js.map +1 -1
  12. package/dist/agent/code-act/host-bridge.d.ts.map +1 -1
  13. package/dist/agent/code-act/host-bridge.js +55 -2
  14. package/dist/agent/code-act/host-bridge.js.map +1 -1
  15. package/dist/agent/code-act/tool-policy.d.ts +7 -1
  16. package/dist/agent/code-act/tool-policy.d.ts.map +1 -1
  17. package/dist/agent/code-act/tool-policy.js +28 -1
  18. package/dist/agent/code-act/tool-policy.js.map +1 -1
  19. package/dist/agent/codex-app-server-process.d.ts +1 -0
  20. package/dist/agent/codex-app-server-process.d.ts.map +1 -1
  21. package/dist/agent/codex-app-server-process.js +16 -0
  22. package/dist/agent/codex-app-server-process.js.map +1 -1
  23. package/dist/agent/drive-tools.d.ts +2 -0
  24. package/dist/agent/drive-tools.d.ts.map +1 -1
  25. package/dist/agent/drive-tools.js +3 -1
  26. package/dist/agent/drive-tools.js.map +1 -1
  27. package/dist/agent/gateway-tool-executor.d.ts +10 -3
  28. package/dist/agent/gateway-tool-executor.d.ts.map +1 -1
  29. package/dist/agent/gateway-tool-executor.js +207 -26
  30. package/dist/agent/gateway-tool-executor.js.map +1 -1
  31. package/dist/agent/gateway-tools.md +5 -1
  32. package/dist/agent/image-translation-tools.d.ts +48 -0
  33. package/dist/agent/image-translation-tools.d.ts.map +1 -0
  34. package/dist/agent/image-translation-tools.js +274 -0
  35. package/dist/agent/image-translation-tools.js.map +1 -0
  36. package/dist/agent/role-manager.d.ts.map +1 -1
  37. package/dist/agent/role-manager.js +9 -1
  38. package/dist/agent/role-manager.js.map +1 -1
  39. package/dist/agent/tool-registry.d.ts.map +1 -1
  40. package/dist/agent/tool-registry.js +25 -1
  41. package/dist/agent/tool-registry.js.map +1 -1
  42. package/dist/agent/types.d.ts +4 -33
  43. package/dist/agent/types.d.ts.map +1 -1
  44. package/dist/agent/types.js.map +1 -1
  45. package/dist/cli/commands/start.d.ts.map +1 -1
  46. package/dist/cli/commands/start.js +18 -8
  47. package/dist/cli/commands/start.js.map +1 -1
  48. package/dist/cli/config/types.d.ts.map +1 -1
  49. package/dist/cli/config/types.js +5 -1
  50. package/dist/cli/config/types.js.map +1 -1
  51. package/dist/cli/runtime/envelope-bootstrap.js +2 -2
  52. package/dist/cli/runtime/envelope-bootstrap.js.map +1 -1
  53. package/dist/gateways/message-router.d.ts +3 -0
  54. package/dist/gateways/message-router.d.ts.map +1 -1
  55. package/dist/gateways/message-router.js +428 -336
  56. package/dist/gateways/message-router.js.map +1 -1
  57. package/dist/gateways/session-store.d.ts +2 -0
  58. package/dist/gateways/session-store.d.ts.map +1 -1
  59. package/dist/gateways/session-store.js +41 -1
  60. package/dist/gateways/session-store.js.map +1 -1
  61. package/dist/gateways/telegram-media.d.ts +13 -0
  62. package/dist/gateways/telegram-media.d.ts.map +1 -1
  63. package/dist/gateways/telegram-media.js +77 -0
  64. package/dist/gateways/telegram-media.js.map +1 -1
  65. package/dist/gateways/telegram-message-ledger.d.ts +49 -0
  66. package/dist/gateways/telegram-message-ledger.d.ts.map +1 -0
  67. package/dist/gateways/telegram-message-ledger.js +266 -0
  68. package/dist/gateways/telegram-message-ledger.js.map +1 -0
  69. package/dist/gateways/telegram-response-presenter.d.ts +10 -0
  70. package/dist/gateways/telegram-response-presenter.d.ts.map +1 -1
  71. package/dist/gateways/telegram-response-presenter.js +129 -32
  72. package/dist/gateways/telegram-response-presenter.js.map +1 -1
  73. package/dist/gateways/telegram.d.ts +20 -4
  74. package/dist/gateways/telegram.d.ts.map +1 -1
  75. package/dist/gateways/telegram.js +300 -64
  76. package/dist/gateways/telegram.js.map +1 -1
  77. package/dist/operator/operator-interfaces.d.ts +1 -1
  78. package/dist/operator/operator-interfaces.d.ts.map +1 -1
  79. package/dist/operator/operator-trigger-loop.d.ts +12 -0
  80. package/dist/operator/operator-trigger-loop.d.ts.map +1 -1
  81. package/dist/operator/operator-trigger-loop.js +184 -38
  82. package/dist/operator/operator-trigger-loop.js.map +1 -1
  83. package/dist/operator/pending-report-store.d.ts +35 -0
  84. package/dist/operator/pending-report-store.d.ts.map +1 -0
  85. package/dist/operator/pending-report-store.js +155 -0
  86. package/dist/operator/pending-report-store.js.map +1 -0
  87. package/dist/operator/runtime-config.d.ts +10 -0
  88. package/dist/operator/runtime-config.d.ts.map +1 -0
  89. package/dist/operator/runtime-config.js +21 -0
  90. package/dist/operator/runtime-config.js.map +1 -0
  91. package/dist/operator/situation-report.d.ts +37 -0
  92. package/dist/operator/situation-report.d.ts.map +1 -1
  93. package/dist/operator/situation-report.js +122 -9
  94. package/dist/operator/situation-report.js.map +1 -1
  95. package/package.json +3 -1
  96. package/scripts/attachment/extract-office-text.js +179 -0
  97. package/scripts/attachment/extract-pdf-text.swift +36 -0
  98. package/scripts/image/fb-overlay.py +128 -0
  99. package/scripts/image/ocr-image.py +38 -0
  100. package/scripts/setup-ocr.js +120 -0
  101. 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;AASH,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,KAAK,EAAE,aAAa,EAAoB,MAAM,qBAAqB,CAAC;AAI3E,OAAO,EAAyB,KAAK,4BAA4B,EAAE,MAAM,qBAAqB,CAAC;AA4B/F;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,8BAA8B;IAC9B,OAAO,EAAE,OAAO,CAAC;IACjB,yCAAyC;IACzC,KAAK,EAAE,MAAM,CAAC;IACd,2CAA2C;IAC3C,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,yBAAyB;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,6CAA6C;IAC7C,aAAa,EAAE,aAAa,CAAC;IAC7B,4BAA4B;IAC5B,MAAM,CAAC,EAAE,OAAO,CAAC,qBAAqB,CAAC,CAAC;IACxC,6EAA6E;IAC7E,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,0FAA0F;IAC1F,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iEAAiE;IACjE,SAAS,CAAC,EAAE,4BAA4B,CAAC,WAAW,CAAC,CAAC;CACvD;AAED;;GAEG;AACH,qBAAa,eAAgB,SAAQ,WAAW;IAC9C,QAAQ,CAAC,MAAM,EAAG,UAAU,CAAU;IAEtC,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,MAAM,CAAwB;IACtC,OAAO,CAAC,GAAG,CAAoB;IAC/B,OAAO,CAAC,KAAK,CAAK;IAClB,OAAO,CAAC,WAAW,CAAM;IACzB,OAAO,CAAC,SAAS,CAAuB;IACxC,OAAO,CAAC,aAAa,CAAqB;IAC1C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,CAA4C;IAGvE,OAAO,CAAC,gBAAgB,CAA6B;IACrD,OAAO,CAAC,kBAAkB,CAA6B;IAGvD,OAAO,CAAC,iBAAiB,CAA+C;IAGxE,OAAO,CAAC,YAAY,CAA6B;IACjD,OAAO,CAAC,gBAAgB,CAAS;IAEjC,SAAS,KAAK,cAAc,IAAI,MAAM,GAAG,IAAI,CAE5C;gBAEW,OAAO,EAAE,sBAAsB;IAarC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAuFtB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;YAwBb,aAAa;IAmRrB,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAUxD,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAM3E,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAM7E,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAiB7E,YAAY,IAAI,MAAM,GAAG,IAAI;IAI7B,gBAAgB,IAAI,MAAM,GAAG,SAAS;IAItC,OAAO,CAAC,YAAY;YAiBN,cAAc;CAc7B"}
1
+ {"version":3,"file":"telegram.d.ts","sourceRoot":"","sources":["../../src/gateways/telegram.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAWH,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,KAAK,EAAE,aAAa,EAAoB,MAAM,qBAAqB,CAAC;AAI3E,OAAO,EAGL,KAAK,4BAA4B,EAClC,MAAM,qBAAqB,CAAC;AAwD7B;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,8BAA8B;IAC9B,OAAO,EAAE,OAAO,CAAC;IACjB,yCAAyC;IACzC,KAAK,EAAE,MAAM,CAAC;IACd,2CAA2C;IAC3C,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,yBAAyB;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,6CAA6C;IAC7C,aAAa,EAAE,aAAa,CAAC;IAC7B,4BAA4B;IAC5B,MAAM,CAAC,EAAE,OAAO,CAAC,qBAAqB,CAAC,CAAC;IACxC,6EAA6E;IAC7E,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,0FAA0F;IAC1F,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iEAAiE;IACjE,SAAS,CAAC,EAAE,4BAA4B,CAAC,WAAW,CAAC,CAAC;IACtD,sFAAsF;IACtF,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED;;GAEG;AACH,qBAAa,eAAgB,SAAQ,WAAW;IAC9C,QAAQ,CAAC,MAAM,EAAG,UAAU,CAAU;IAEtC,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,MAAM,CAAwB;IACtC,OAAO,CAAC,GAAG,CAAoB;IAC/B,OAAO,CAAC,KAAK,CAAK;IAClB,OAAO,CAAC,WAAW,CAAM;IACzB,OAAO,CAAC,SAAS,CAAuB;IACxC,OAAO,CAAC,aAAa,CAAqB;IAC1C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,CAA4C;IACvE,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAwB;IACtD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAoC;IAC9D,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAmC;IAG9D,OAAO,CAAC,gBAAgB,CAA6B;IACrD,OAAO,CAAC,kBAAkB,CAA6B;IAGvD,OAAO,CAAC,iBAAiB,CAA+C;IAGxE,OAAO,CAAC,YAAY,CAA6B;IACjD,OAAO,CAAC,gBAAgB,CAAS;IAEjC,SAAS,KAAK,cAAc,IAAI,MAAM,GAAG,IAAI,CAE5C;gBAEW,OAAO,EAAE,sBAAsB;IAyBrC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IA4GtB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;YAwBb,aAAa;YAKb,cAAc;YAuBd,cAAc;IA+TtB,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAMjF,yBAAyB,CAC7B,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EACZ,cAAc,CAAC,EAAE,MAAM,GACtB,OAAO,CAAC,IAAI,CAAC;YAUF,cAAc;IAsDtB,QAAQ,CACZ,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE,MAAM,EAChB,cAAc,CAAC,EAAE,MAAM,GACtB,OAAO,CAAC,IAAI,CAAC;IAYV,sBAAsB,CAC1B,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE,MAAM,EAChB,cAAc,CAAC,EAAE,MAAM,GACtB,OAAO,CAAC,IAAI,CAAC;IAeV,SAAS,CACb,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,EACjB,OAAO,CAAC,EAAE,MAAM,EAChB,cAAc,CAAC,EAAE,MAAM,GACtB,OAAO,CAAC,IAAI,CAAC;IAYV,uBAAuB,CAC3B,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,EACjB,OAAO,CAAC,EAAE,MAAM,EAChB,cAAc,CAAC,EAAE,MAAM,GACtB,OAAO,CAAC,IAAI,CAAC;YAeF,gBAAgB;YAiBhB,+BAA+B;IAoC7C,OAAO,CAAC,uBAAuB;IA8B/B,OAAO,CAAC,iBAAiB;IAKnB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAKvE,yBAAyB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;YAK7E,cAAc;IAkB5B,YAAY,IAAI,MAAM,GAAG,IAAI;IAI7B,gBAAgB,IAAI,MAAM,GAAG,SAAS;YAIxB,cAAc;CAc7B"}
@@ -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 ?? (0, node_path_1.join)((0, node_os_1.homedir)(), '.mama', 'workspace', 'media', 'inbound', 'telegram');
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 = new telegram_response_presenter_js_1.TelegramResponsePresenter({
252
- send: async (content) => {
253
- const sent = await api.sendMessage(numChatId, content);
254
- return String(sent.message_id);
255
- },
256
- edit: async (handle, content) => {
257
- await api.editMessageText(numChatId, Number(handle), content);
258
- },
259
- delete: async (handle) => {
260
- await api.deleteMessage(numChatId, Number(handle));
261
- },
262
- });
263
- await presenter.start();
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
- delete attachment.localPath;
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
- result = await this.messageRouter.process(normalizedMessage, {
415
- onStream: presenter.callbacks(),
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
- const chunks = this.splitMessage(text, TELEGRAM_MAX_LENGTH);
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
- for (const chunk of chunks) {
447
- await this.bot.api.sendMessage(numChatId, chunk);
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 sendFile(chatId, filePath, caption) {
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.sendDocument(Number(chatId), new InputFile(filePath), { caption });
624
+ await this.runInChatQueue(chatId, () => this.sendOutboundOnce(idempotencyKey, 'image', () => this.bot.api.sendPhoto(Number(chatId), new InputFile(imagePath), { caption }).then(() => { })));
455
625
  }
456
- async sendImage(chatId, imagePath, caption) {
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 this.bot.api.sendSticker(numChatId, fileId);
724
+ await bot.api.sendSticker(numChatId, fileId);
472
725
  return true;
473
726
  }
474
727
  }
475
- await this.bot.api.sendMessage(numChatId, candidates[0]);
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