@spinabot/brigade 1.3.2 → 1.5.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 (238) hide show
  1. package/README.md +74 -11
  2. package/convex/config.d.ts +2 -2
  3. package/convex/extensions.d.ts +2 -2
  4. package/convex/logs.d.ts +2 -2
  5. package/convex/memory.d.ts +7 -7
  6. package/convex/messages.d.ts +4 -4
  7. package/convex/schema.d.ts +17 -17
  8. package/convex/subagents.d.ts +12 -12
  9. package/dist/agents/agent-loop.d.ts +1 -0
  10. package/dist/agents/agent-loop.d.ts.map +1 -1
  11. package/dist/agents/agent-loop.js +1 -1
  12. package/dist/agents/agent-loop.js.map +1 -1
  13. package/dist/agents/channels/access-control/format-allow-from.d.ts +50 -0
  14. package/dist/agents/channels/access-control/format-allow-from.d.ts.map +1 -0
  15. package/dist/agents/channels/access-control/format-allow-from.js +64 -0
  16. package/dist/agents/channels/access-control/format-allow-from.js.map +1 -0
  17. package/dist/agents/channels/access-control/index.d.ts +2 -1
  18. package/dist/agents/channels/access-control/index.d.ts.map +1 -1
  19. package/dist/agents/channels/access-control/index.js +2 -1
  20. package/dist/agents/channels/access-control/index.js.map +1 -1
  21. package/dist/agents/channels/access-control/store.d.ts +15 -0
  22. package/dist/agents/channels/access-control/store.d.ts.map +1 -1
  23. package/dist/agents/channels/access-control/store.js +44 -1
  24. package/dist/agents/channels/access-control/store.js.map +1 -1
  25. package/dist/agents/channels/bundled-channel-metas.d.ts +26 -0
  26. package/dist/agents/channels/bundled-channel-metas.d.ts.map +1 -0
  27. package/dist/agents/channels/bundled-channel-metas.js +44 -0
  28. package/dist/agents/channels/bundled-channel-metas.js.map +1 -0
  29. package/dist/agents/channels/channel-messaging-registry.d.ts +130 -0
  30. package/dist/agents/channels/channel-messaging-registry.d.ts.map +1 -0
  31. package/dist/agents/channels/channel-messaging-registry.js +211 -0
  32. package/dist/agents/channels/channel-messaging-registry.js.map +1 -0
  33. package/dist/agents/channels/channel-meta-registry.d.ts +60 -0
  34. package/dist/agents/channels/channel-meta-registry.d.ts.map +1 -0
  35. package/dist/agents/channels/channel-meta-registry.js +128 -0
  36. package/dist/agents/channels/channel-meta-registry.js.map +1 -0
  37. package/dist/agents/channels/channel-security-registry.d.ts +138 -0
  38. package/dist/agents/channels/channel-security-registry.d.ts.map +1 -0
  39. package/dist/agents/channels/channel-security-registry.js +265 -0
  40. package/dist/agents/channels/channel-security-registry.js.map +1 -0
  41. package/dist/agents/channels/exposure.d.ts +44 -0
  42. package/dist/agents/channels/exposure.d.ts.map +1 -0
  43. package/dist/agents/channels/exposure.js +48 -0
  44. package/dist/agents/channels/exposure.js.map +1 -0
  45. package/dist/agents/channels/general-callback.d.ts +25 -0
  46. package/dist/agents/channels/general-callback.d.ts.map +1 -0
  47. package/dist/agents/channels/general-callback.js +31 -0
  48. package/dist/agents/channels/general-callback.js.map +1 -0
  49. package/dist/agents/channels/inbound-pipeline.d.ts +9 -0
  50. package/dist/agents/channels/inbound-pipeline.d.ts.map +1 -1
  51. package/dist/agents/channels/inbound-pipeline.js +429 -39
  52. package/dist/agents/channels/inbound-pipeline.js.map +1 -1
  53. package/dist/agents/channels/markdown-capability.d.ts +44 -0
  54. package/dist/agents/channels/markdown-capability.d.ts.map +1 -0
  55. package/dist/agents/channels/markdown-capability.js +66 -0
  56. package/dist/agents/channels/markdown-capability.js.map +1 -0
  57. package/dist/agents/channels/sdk.d.ts +170 -10
  58. package/dist/agents/channels/sdk.d.ts.map +1 -1
  59. package/dist/agents/channels/sdk.js +138 -6
  60. package/dist/agents/channels/sdk.js.map +1 -1
  61. package/dist/agents/channels/telegram/account-config.d.ts +41 -0
  62. package/dist/agents/channels/telegram/account-config.d.ts.map +1 -1
  63. package/dist/agents/channels/telegram/account-config.js +79 -0
  64. package/dist/agents/channels/telegram/account-config.js.map +1 -1
  65. package/dist/agents/channels/telegram/adapter.d.ts +6 -0
  66. package/dist/agents/channels/telegram/adapter.d.ts.map +1 -1
  67. package/dist/agents/channels/telegram/adapter.js +185 -6
  68. package/dist/agents/channels/telegram/adapter.js.map +1 -1
  69. package/dist/agents/channels/telegram/allowed-updates.d.ts +14 -5
  70. package/dist/agents/channels/telegram/allowed-updates.d.ts.map +1 -1
  71. package/dist/agents/channels/telegram/allowed-updates.js +8 -4
  72. package/dist/agents/channels/telegram/allowed-updates.js.map +1 -1
  73. package/dist/agents/channels/telegram/connection.d.ts +118 -1
  74. package/dist/agents/channels/telegram/connection.d.ts.map +1 -1
  75. package/dist/agents/channels/telegram/connection.js +380 -8
  76. package/dist/agents/channels/telegram/connection.js.map +1 -1
  77. package/dist/agents/channels/telegram/draft-stream.d.ts +98 -0
  78. package/dist/agents/channels/telegram/draft-stream.d.ts.map +1 -0
  79. package/dist/agents/channels/telegram/draft-stream.js +222 -0
  80. package/dist/agents/channels/telegram/draft-stream.js.map +1 -0
  81. package/dist/agents/channels/telegram/format.d.ts +17 -0
  82. package/dist/agents/channels/telegram/format.d.ts.map +1 -1
  83. package/dist/agents/channels/telegram/format.js +36 -0
  84. package/dist/agents/channels/telegram/format.js.map +1 -1
  85. package/dist/agents/channels/telegram/inbound-extras.d.ts +27 -2
  86. package/dist/agents/channels/telegram/inbound-extras.d.ts.map +1 -1
  87. package/dist/agents/channels/telegram/inbound-extras.js +134 -7
  88. package/dist/agents/channels/telegram/inbound-extras.js.map +1 -1
  89. package/dist/agents/channels/telegram/inline-keyboard.d.ts +36 -0
  90. package/dist/agents/channels/telegram/inline-keyboard.d.ts.map +1 -0
  91. package/dist/agents/channels/telegram/inline-keyboard.js +62 -0
  92. package/dist/agents/channels/telegram/inline-keyboard.js.map +1 -0
  93. package/dist/agents/channels/telegram/media.d.ts +8 -0
  94. package/dist/agents/channels/telegram/media.d.ts.map +1 -1
  95. package/dist/agents/channels/telegram/media.js +30 -2
  96. package/dist/agents/channels/telegram/media.js.map +1 -1
  97. package/dist/agents/channels/telegram/plugin.d.ts.map +1 -1
  98. package/dist/agents/channels/telegram/plugin.js +7 -11
  99. package/dist/agents/channels/telegram/plugin.js.map +1 -1
  100. package/dist/agents/channels/telegram/reasoning-lane.d.ts +41 -0
  101. package/dist/agents/channels/telegram/reasoning-lane.d.ts.map +1 -0
  102. package/dist/agents/channels/telegram/reasoning-lane.js +67 -0
  103. package/dist/agents/channels/telegram/reasoning-lane.js.map +1 -0
  104. package/dist/agents/channels/telegram/socks-dispatcher.d.ts +32 -0
  105. package/dist/agents/channels/telegram/socks-dispatcher.d.ts.map +1 -0
  106. package/dist/agents/channels/telegram/socks-dispatcher.js +97 -0
  107. package/dist/agents/channels/telegram/socks-dispatcher.js.map +1 -0
  108. package/dist/agents/channels/types.adapters.d.ts +137 -4
  109. package/dist/agents/channels/types.adapters.d.ts.map +1 -1
  110. package/dist/agents/channels/types.adapters.js +2 -2
  111. package/dist/agents/channels/types.core.d.ts +26 -2
  112. package/dist/agents/channels/types.core.d.ts.map +1 -1
  113. package/dist/agents/channels/types.plugin.d.ts +25 -7
  114. package/dist/agents/channels/types.plugin.d.ts.map +1 -1
  115. package/dist/agents/channels/types.plugin.js +6 -5
  116. package/dist/agents/channels/types.plugin.js.map +1 -1
  117. package/dist/agents/channels/whatsapp/adapter.d.ts +8 -0
  118. package/dist/agents/channels/whatsapp/adapter.d.ts.map +1 -1
  119. package/dist/agents/channels/whatsapp/adapter.js +7 -4
  120. package/dist/agents/channels/whatsapp/adapter.js.map +1 -1
  121. package/dist/agents/channels/whatsapp/connection.d.ts +24 -2
  122. package/dist/agents/channels/whatsapp/connection.d.ts.map +1 -1
  123. package/dist/agents/channels/whatsapp/connection.js +26 -5
  124. package/dist/agents/channels/whatsapp/connection.js.map +1 -1
  125. package/dist/agents/channels/whatsapp/plugin.d.ts.map +1 -1
  126. package/dist/agents/channels/whatsapp/plugin.js +6 -10
  127. package/dist/agents/channels/whatsapp/plugin.js.map +1 -1
  128. package/dist/agents/extensions/activation-planner.d.ts +125 -0
  129. package/dist/agents/extensions/activation-planner.d.ts.map +1 -0
  130. package/dist/agents/extensions/activation-planner.js +221 -0
  131. package/dist/agents/extensions/activation-planner.js.map +1 -0
  132. package/dist/agents/extensions/diagnose.d.ts +84 -0
  133. package/dist/agents/extensions/diagnose.d.ts.map +1 -0
  134. package/dist/agents/extensions/diagnose.js +123 -0
  135. package/dist/agents/extensions/diagnose.js.map +1 -0
  136. package/dist/agents/extensions/discovery.d.ts +85 -7
  137. package/dist/agents/extensions/discovery.d.ts.map +1 -1
  138. package/dist/agents/extensions/discovery.js +200 -15
  139. package/dist/agents/extensions/discovery.js.map +1 -1
  140. package/dist/agents/extensions/index.d.ts +3 -2
  141. package/dist/agents/extensions/index.d.ts.map +1 -1
  142. package/dist/agents/extensions/index.js +3 -2
  143. package/dist/agents/extensions/index.js.map +1 -1
  144. package/dist/agents/extensions/install-scan.d.ts +63 -0
  145. package/dist/agents/extensions/install-scan.d.ts.map +1 -0
  146. package/dist/agents/extensions/install-scan.js +201 -0
  147. package/dist/agents/extensions/install-scan.js.map +1 -0
  148. package/dist/agents/extensions/install.d.ts +135 -0
  149. package/dist/agents/extensions/install.d.ts.map +1 -0
  150. package/dist/agents/extensions/install.js +414 -0
  151. package/dist/agents/extensions/install.js.map +1 -0
  152. package/dist/agents/extensions/loader.d.ts +13 -2
  153. package/dist/agents/extensions/loader.d.ts.map +1 -1
  154. package/dist/agents/extensions/loader.js +126 -13
  155. package/dist/agents/extensions/loader.js.map +1 -1
  156. package/dist/agents/extensions/registry.d.ts +109 -0
  157. package/dist/agents/extensions/registry.d.ts.map +1 -1
  158. package/dist/agents/extensions/registry.js +172 -0
  159. package/dist/agents/extensions/registry.js.map +1 -1
  160. package/dist/agents/extensions/sdk-alias.d.ts +45 -0
  161. package/dist/agents/extensions/sdk-alias.d.ts.map +1 -0
  162. package/dist/agents/extensions/sdk-alias.js +94 -0
  163. package/dist/agents/extensions/sdk-alias.js.map +1 -0
  164. package/dist/agents/extensions/types.d.ts +166 -1
  165. package/dist/agents/extensions/types.d.ts.map +1 -1
  166. package/dist/agents/extensions/types.js.map +1 -1
  167. package/dist/agents/tools/composio-tool.d.ts +9 -1
  168. package/dist/agents/tools/composio-tool.d.ts.map +1 -1
  169. package/dist/agents/tools/composio-tool.js +68 -4
  170. package/dist/agents/tools/composio-tool.js.map +1 -1
  171. package/dist/agents/tools/message-action-tool.d.ts +6 -1
  172. package/dist/agents/tools/message-action-tool.d.ts.map +1 -1
  173. package/dist/agents/tools/message-action-tool.js +52 -2
  174. package/dist/agents/tools/message-action-tool.js.map +1 -1
  175. package/dist/agents/tools/send-message-tool.d.ts +1 -0
  176. package/dist/agents/tools/send-message-tool.d.ts.map +1 -1
  177. package/dist/agents/tools/send-message-tool.js +56 -1
  178. package/dist/agents/tools/send-message-tool.js.map +1 -1
  179. package/dist/buildstamp.json +1 -1
  180. package/dist/channel-sdk.d.ts +28 -0
  181. package/dist/channel-sdk.d.ts.map +1 -0
  182. package/dist/channel-sdk.js +28 -0
  183. package/dist/channel-sdk.js.map +1 -0
  184. package/dist/cli/commands/channels.d.ts.map +1 -1
  185. package/dist/cli/commands/channels.js +8 -8
  186. package/dist/cli/commands/channels.js.map +1 -1
  187. package/dist/cli/commands/connect.d.ts +8 -11
  188. package/dist/cli/commands/connect.d.ts.map +1 -1
  189. package/dist/cli/commands/connect.js +157 -17
  190. package/dist/cli/commands/connect.js.map +1 -1
  191. package/dist/cli/commands/convex-cmd.d.ts +2 -1
  192. package/dist/cli/commands/convex-cmd.d.ts.map +1 -1
  193. package/dist/cli/commands/convex-cmd.js +79 -6
  194. package/dist/cli/commands/convex-cmd.js.map +1 -1
  195. package/dist/cli/commands/doctor.d.ts.map +1 -1
  196. package/dist/cli/commands/doctor.js +64 -0
  197. package/dist/cli/commands/doctor.js.map +1 -1
  198. package/dist/cli/commands/extensions.d.ts +46 -0
  199. package/dist/cli/commands/extensions.d.ts.map +1 -0
  200. package/dist/cli/commands/extensions.js +578 -0
  201. package/dist/cli/commands/extensions.js.map +1 -0
  202. package/dist/cli/commands/pairing.d.ts.map +1 -1
  203. package/dist/cli/commands/pairing.js +16 -2
  204. package/dist/cli/commands/pairing.js.map +1 -1
  205. package/dist/cli/commands/update.d.ts +17 -0
  206. package/dist/cli/commands/update.d.ts.map +1 -0
  207. package/dist/cli/commands/update.js +104 -0
  208. package/dist/cli/commands/update.js.map +1 -0
  209. package/dist/cli/program/build-program.d.ts.map +1 -1
  210. package/dist/cli/program/build-program.js +114 -1
  211. package/dist/cli/program/build-program.js.map +1 -1
  212. package/dist/config/paths.d.ts +1 -0
  213. package/dist/config/paths.d.ts.map +1 -1
  214. package/dist/config/paths.js +9 -0
  215. package/dist/config/paths.js.map +1 -1
  216. package/dist/core/server.d.ts.map +1 -1
  217. package/dist/core/server.js +134 -2
  218. package/dist/core/server.js.map +1 -1
  219. package/dist/protocol.d.ts +25 -0
  220. package/dist/protocol.d.ts.map +1 -1
  221. package/dist/protocol.js.map +1 -1
  222. package/dist/system-prompt/assembler.d.ts.map +1 -1
  223. package/dist/system-prompt/assembler.js +17 -0
  224. package/dist/system-prompt/assembler.js.map +1 -1
  225. package/dist/system-prompt/identity-defaults.d.ts +28 -0
  226. package/dist/system-prompt/identity-defaults.d.ts.map +1 -1
  227. package/dist/system-prompt/identity-defaults.js +47 -0
  228. package/dist/system-prompt/identity-defaults.js.map +1 -1
  229. package/dist/ui/editor.d.ts.map +1 -1
  230. package/dist/ui/editor.js +1 -0
  231. package/dist/ui/editor.js.map +1 -1
  232. package/dist/version.d.ts +4 -3
  233. package/dist/version.d.ts.map +1 -1
  234. package/dist/version.js +27 -5
  235. package/dist/version.js.map +1 -1
  236. package/package.json +21 -4
  237. package/scripts/build-done.mjs +11 -2
  238. package/scripts/convex-dev.mjs +28 -2
@@ -23,7 +23,10 @@ import { loadConfig } from "../../../core/config.js";
23
23
  // OutboundSendOptions) and `chunkText` now come from one place instead of
24
24
  // scattered `../../extensions/types.js` + `../whatsapp/chunk.js` paths.
25
25
  import { chunkText, } from "../sdk.js";
26
- import { listTelegramAccountIds, resolveTelegramBotToken, telegramChannelEnabled, telegramWebhookConfig, TELEGRAM_CHANNEL_ID, TELEGRAM_DEFAULT_ACCOUNT_ID, } from "./account-config.js";
26
+ import { listTelegramAccountIds, resolveTelegramBotToken, resolveTelegramProxyUrl, telegramChannelEnabled, telegramLiveStreamEnabled, telegramStreamThrottleMs, telegramSurfaceReasoning, telegramWebhookConfig, TELEGRAM_CHANNEL_ID, TELEGRAM_DEFAULT_ACCOUNT_ID, } from "./account-config.js";
27
+ import { createDraftStream } from "./draft-stream.js";
28
+ import { buildTelegramInlineKeyboard } from "./inline-keyboard.js";
29
+ import { splitTelegramReasoning } from "./reasoning-lane.js";
27
30
  import { buildTelegramApprovalKeyboard, buildTelegramApprovalText } from "./approval-native.js";
28
31
  import { connectTelegram } from "./connection.js";
29
32
  import { markdownToTelegramHtml, telegramHtmlIsEmpty } from "./format.js";
@@ -88,9 +91,15 @@ export function createTelegramAdapter(opts = {}) {
88
91
  // registers the webhook on connect; the gateway HTTP route feeds updates
89
92
  // via `feedWebhookUpdate` (wired by the module when webhook is active).
90
93
  const transport = telegramWebhookConfig(cfg, lastEnv);
94
+ // Optional proxy: per-account → top-level `channels.telegram.proxy` →
95
+ // `HTTPS_PROXY`/`ALL_PROXY` env. Empty → direct connection (the default).
96
+ // On a network where `api.telegram.org` is blocked, this routes every
97
+ // Telegram API call through a reachable http(s) proxy.
98
+ const proxyUrl = resolveTelegramProxyUrl(cfg, accountId, lastEnv);
91
99
  connection = await connectImpl({
92
100
  token,
93
101
  accountId,
102
+ ...(proxyUrl ? { proxyUrl } : {}),
94
103
  ...(opts.commandMenu && opts.commandMenu.length > 0 ? { commandMenu: opts.commandMenu } : {}),
95
104
  ...(opts.allowedUpdates && opts.allowedUpdates.length > 0 ? { allowedUpdates: opts.allowedUpdates } : {}),
96
105
  ...(transport.mode === "webhook"
@@ -135,12 +144,38 @@ export function createTelegramAdapter(opts = {}) {
135
144
  threadId: msg.threadId,
136
145
  mentions: msg.mentions,
137
146
  replyTo: msg.replyTo,
147
+ // Edit + forward provenance ride through so the central pipeline /
148
+ // agent see "this was an edit" / "this was forwarded from X".
149
+ ...(msg.edited ? { edited: true } : {}),
150
+ ...(msg.forwarded ? { forwarded: msg.forwarded } : {}),
138
151
  // Deferred media thunk rides through untouched — the pipeline
139
152
  // resolves it only after the access gate admits the sender.
140
153
  resolveMedia: msg.resolveMedia,
141
154
  raw: msg.raw,
142
155
  });
143
156
  },
157
+ // Inbound reaction (`message_reaction`) → synthesise a short note and
158
+ // route it through the SAME inbound pipeline as a normal message so
159
+ // the access gate + routing apply uniformly. The note carries the
160
+ // added emoji(s) + the target message id so the agent has context.
161
+ onReaction: (msg) => {
162
+ if (!msg.reaction)
163
+ return;
164
+ const note = buildReactionNote(msg.reaction.emojis, msg.reaction.targetMessageId, msg.fromName);
165
+ void ctx.onInbound({
166
+ channel: TELEGRAM_CHANNEL_ID,
167
+ accountId,
168
+ conversationId: msg.conversationId,
169
+ from: msg.from,
170
+ ...(msg.fromName !== undefined ? { fromName: msg.fromName } : {}),
171
+ text: note,
172
+ chatType: msg.chatType,
173
+ isGroup: msg.chatType === "group",
174
+ ...(msg.threadId !== undefined ? { threadId: msg.threadId } : {}),
175
+ reaction: msg.reaction,
176
+ raw: msg.raw,
177
+ });
178
+ },
144
179
  // Inline-button press → emit an InboundMessage carrying `callbackQuery`
145
180
  // so the central pipeline's approval-callback path resolves it. The
146
181
  // connection has already acked the press via `answerCallbackQuery`.
@@ -203,40 +238,146 @@ export function createTelegramAdapter(opts = {}) {
203
238
  throw new Error("Telegram token is invalid — run `brigade channels add --channel telegram` with a new token, then retry.");
204
239
  }
205
240
  const threadId = opts?.threadId;
241
+ // Native reply target (Telegram `reply_parameters.message_id`). Applied
242
+ // to the FIRST chunk only — quoting every chunk of a long reply would
243
+ // render a chain of quoted messages. Omitted → unquoted send (unchanged).
244
+ const replyToMessageId = opts?.replyToId;
245
+ // Send options honored on every chunk: silent notification + link-preview
246
+ // toggle. Purely additive — undefined keeps the prior behavior byte-for-byte.
247
+ const sendExtras = { threadId };
248
+ if (opts?.silent)
249
+ sendExtras.silent = true;
250
+ if (opts?.linkPreview !== undefined)
251
+ sendExtras.linkPreview = opts.linkPreview;
206
252
  // Chunk on the RAW markdown so fences/paragraphs aren't shredded, then
207
253
  // convert each chunk to Telegram HTML and send. A chunk whose HTML is
208
254
  // empty (syntax-only) or that Telegram rejects with a parse error is
209
255
  // re-sent as plain text.
210
256
  const chunks = chunkText(text, { limit: TELEGRAM_TEXT_LIMIT });
257
+ let first = true;
211
258
  for (const chunk of chunks) {
259
+ // Only the first chunk carries the reply quote.
260
+ const replyOpt = first && replyToMessageId ? { replyToMessageId } : {};
212
261
  const html = markdownToTelegramHtml(chunk);
213
262
  if (telegramHtmlIsEmpty(html)) {
214
263
  // Nothing renderable — send the raw chunk as plain text (if it has any).
215
264
  if (chunk.trim().length > 0) {
216
- await connection.sendText(conversationId, chunk, { threadId });
265
+ await connection.sendText(conversationId, chunk, { ...sendExtras, ...replyOpt });
266
+ first = false;
217
267
  }
218
268
  continue;
219
269
  }
220
270
  try {
221
- await connection.sendText(conversationId, html, { html: true, threadId });
271
+ await connection.sendText(conversationId, html, { ...sendExtras, html: true, ...replyOpt });
222
272
  }
223
273
  catch (err) {
224
274
  const msg = err instanceof Error ? err.message : String(err);
225
275
  if (PARSE_ERROR_RE.test(msg) && chunk.trim().length > 0) {
226
276
  // HTML failed to parse — fall back to the plain chunk.
227
- await connection.sendText(conversationId, chunk, { threadId });
277
+ await connection.sendText(conversationId, chunk, { ...sendExtras, ...replyOpt });
228
278
  }
229
279
  else {
230
280
  throw err;
231
281
  }
232
282
  }
283
+ first = false;
233
284
  }
234
285
  },
286
+ /**
287
+ * Open a LIVE reply stream — the gateway feeds the accumulating answer text
288
+ * via `update()`, this edits one Telegram message in place (throttled
289
+ * ~1×/sec), and `finalize()` settles it on turn end. Returns `null` when
290
+ * streaming is disabled in config (`channels.telegram.liveStream` is not
291
+ * true) OR the connection isn't live, so the pipeline falls back to the
292
+ * single final `sendText` — byte-unchanged from before streaming existed.
293
+ *
294
+ * Each draft chunk is rendered through the SAME markdown→HTML converter the
295
+ * final path uses; a chunk whose HTML is empty/unparseable streams as plain
296
+ * text. When the running answer exceeds 4096 chars the stream finalizes the
297
+ * current message at a boundary and rolls overflow into a new message.
298
+ */
299
+ beginReplyStream(conversationId, sendOpts) {
300
+ if (!connection)
301
+ return null;
302
+ if (tokenInvalid || connection.isTokenInvalid())
303
+ return null;
304
+ const cfg = lastConfig;
305
+ if (!cfg || !telegramLiveStreamEnabled(cfg))
306
+ return null;
307
+ const conn = connection;
308
+ const threadId = sendOpts?.threadId;
309
+ const stream = createDraftStream({
310
+ transport: {
311
+ async sendMessage(text, o) {
312
+ const sent = await conn.sendText(conversationId, text, {
313
+ ...(o.parseMode === "HTML" ? { html: true } : {}),
314
+ ...(o.threadId !== undefined ? { threadId: o.threadId } : {}),
315
+ });
316
+ return { messageId: sent.messageId };
317
+ },
318
+ async editMessageText(messageId, text, o) {
319
+ await conn.editMessageText(conversationId, String(messageId), text, {
320
+ ...(o.parseMode === "HTML" ? { html: true } : {}),
321
+ });
322
+ },
323
+ },
324
+ throttleMs: telegramStreamThrottleMs(cfg),
325
+ maxChars: TELEGRAM_TEXT_LIMIT,
326
+ // Render each draft chunk to Telegram HTML; fall back to plain text
327
+ // when the HTML is empty (syntax-only) so a half-streamed fence
328
+ // never wedges the edit.
329
+ renderText: (chunk) => {
330
+ const html = markdownToTelegramHtml(chunk);
331
+ if (telegramHtmlIsEmpty(html))
332
+ return { text: chunk };
333
+ return { text: html, parseMode: "HTML" };
334
+ },
335
+ });
336
+ return {
337
+ update: (text) => stream.update(text),
338
+ async finalize(finalText) {
339
+ await stream.finalize(finalText);
340
+ const ids = stream.messageIds();
341
+ const last = ids[ids.length - 1];
342
+ return last !== undefined ? { messageId: String(last) } : undefined;
343
+ },
344
+ stop: () => stream.stop(),
345
+ };
346
+ },
347
+ /**
348
+ * OPTIONAL reasoning lane (default OFF). When `channels.telegram.
349
+ * surfaceReasoning` is true, split the raw reply's `<think>` trace out and
350
+ * send it as a separate `🧠 Reasoning:` message BEFORE the answer. When the
351
+ * config gate is off (the default) OR the reply carried no reasoning, this
352
+ * sends NOTHING — the answer message the pipeline sends afterward is
353
+ * byte-identical either way.
354
+ */
355
+ async deliverReasoning(conversationId, rawReply, sendOpts) {
356
+ if (!connection)
357
+ return;
358
+ if (tokenInvalid || connection.isTokenInvalid())
359
+ return;
360
+ const cfg = lastConfig;
361
+ if (!cfg || !telegramSurfaceReasoning(cfg))
362
+ return;
363
+ const { reasoningText } = splitTelegramReasoning(rawReply ?? "");
364
+ if (!reasoningText)
365
+ return;
366
+ // Reuse the adapter's own chunk+HTML send path so a long reasoning trace
367
+ // is chunked at 4096 and formatted consistently with replies.
368
+ await adapter.sendText(conversationId, reasoningText, sendOpts);
369
+ },
235
370
  // Telegram ids are numeric user/chat ids and @usernames, so the pairing
236
- // challenge card uses the "Your username" line.
237
- pairing: { idLabel: "username" },
371
+ // challenge card uses the "Your username" line. The bot is a SEPARATE
372
+ // account from the operator (unlike WhatsApp), so ownership is bootstrapped
373
+ // from the first CLI `pairing approve` — see `botIsSeparateFromOperator`.
374
+ pairing: { idLabel: "username", botIsSeparateFromOperator: true },
238
375
  // Token-based setup wizard — `brigade channels add --channel telegram`
239
376
  // prompts for the bot token and writes `channels.telegram.botToken`.
377
+ // Proxy is intentionally NOT a wizard prompt (it's a rare, optional knob,
378
+ // and the wizard treats every credential as required): set it directly as
379
+ // `channels.telegram.proxy: "http://host:port"` (or `"${TG_PROXY}"`) or via
380
+ // the `HTTPS_PROXY` / `ALL_PROXY` env var when api.telegram.org is blocked.
240
381
  setup: {
241
382
  credentialKeys: [
242
383
  {
@@ -385,6 +526,34 @@ export function createTelegramAdapter(opts = {}) {
385
526
  });
386
527
  return { ok: true, messageId: String(sent.messageId) };
387
528
  }
529
+ case "topic-create": {
530
+ // Create a forum topic in this supergroup; return the new thread
531
+ // id as messageId so the agent can immediately send into it.
532
+ const created = await connection.createForumTopic(p.conversationId, a.name, {
533
+ ...(a.iconColor !== undefined ? { iconColor: a.iconColor } : {}),
534
+ ...(a.iconCustomEmojiId !== undefined ? { iconCustomEmojiId: a.iconCustomEmojiId } : {}),
535
+ });
536
+ return { ok: true, messageId: created.threadId };
537
+ }
538
+ case "buttons": {
539
+ // Send a NEW message with a general inline keyboard. The button
540
+ // data is prefixed/sanitized by the keyboard builder; a press
541
+ // arrives as `callbackQuery` and routes through the pipeline as a
542
+ // turn (the central approval path declines a general payload).
543
+ const keyboard = buildTelegramInlineKeyboard(a.buttons.map((row) => row.map((b) => ({ text: b.text, data: b.data }))));
544
+ if (!keyboard) {
545
+ return { ok: false, error: "no usable buttons (each needs a label + a data token ≤ ~60 bytes)" };
546
+ }
547
+ // Render the body to Telegram HTML like the reply path; the
548
+ // interactive send is verbatim, so format here then mark html.
549
+ const html = markdownToTelegramHtml(a.text);
550
+ const useHtml = !telegramHtmlIsEmpty(html);
551
+ const sent = await connection.sendInteractive(p.conversationId, useHtml ? html : a.text, keyboard, {
552
+ ...(useHtml ? { html: true } : {}),
553
+ ...(a.threadId !== undefined ? { threadId: a.threadId } : {}),
554
+ });
555
+ return { ok: true, messageId: String(sent.messageId) };
556
+ }
388
557
  default:
389
558
  return { ok: false, error: `unsupported action kind` };
390
559
  }
@@ -426,6 +595,16 @@ export function createTelegramAdapter(opts = {}) {
426
595
  }
427
596
  return adapter;
428
597
  }
598
+ /**
599
+ * Synthesise the agent-facing note for an inbound reaction. The reaction itself
600
+ * carries no text, so the note ("<who> reacted <emoji> to message <id>") is what
601
+ * the central pipeline routes through dispatchTurn so the agent has context.
602
+ */
603
+ export function buildReactionNote(emojis, targetMessageId, fromName) {
604
+ const who = fromName?.trim() || "Someone";
605
+ const emoji = emojis.join(" ");
606
+ return `${who} reacted ${emoji} to message ${targetMessageId}.`;
607
+ }
429
608
  /** Static Telegram capability flags (shared by the legacy adapter + plugin meta). */
430
609
  export const TELEGRAM_CAPABILITIES = {
431
610
  chatTypes: ["direct", "group", "thread"],
@@ -1 +1 @@
1
- {"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../../../src/agents/channels/telegram/adapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAGH,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,2EAA2E;AAC3E,4EAA4E;AAC5E,0EAA0E;AAC1E,0EAA0E;AAC1E,wEAAwE;AACxE,OAAO,EAUN,SAAS,GACT,MAAM,WAAW,CAAC;AACnB,OAAO,EACN,sBAAsB,EACtB,uBAAuB,EACvB,sBAAsB,EACtB,qBAAqB,EACrB,mBAAmB,EACnB,2BAA2B,GAC3B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,6BAA6B,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AAChG,OAAO,EAAE,eAAe,EAAsG,MAAM,iBAAiB,CAAC;AACtJ,OAAO,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAC1E,OAAO,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAElE,yCAAyC;AACzC,MAAM,mBAAmB,GAAG,IAAI,CAAC;AAEjC,kFAAkF;AAClF,MAAM,cAAc,GAAG,mFAAmF,CAAC;AA+B3G,MAAM,UAAU,qBAAqB,CAAC,OAAqC,EAAE;IAC5E,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,2BAA2B,CAAC;IACxE,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,IAAI,eAAe,CAAC;IACxD,IAAI,UAAU,GAA8B,IAAI,CAAC;IACjD,6EAA6E;IAC7E,wEAAwE;IACxE,MAAM,kBAAkB,GAAG,IAAI,GAAG,EAAU,CAAC;IAC7C,2EAA2E;IAC3E,yEAAyE;IACzE,2EAA2E;IAC3E,wEAAwE;IACxE,IAAI,UAAU,GAAyB,IAAI,CAAC;IAC5C,IAAI,OAAO,GAAsB,OAAO,CAAC,GAAG,CAAC;IAC7C,4EAA4E;IAC5E,yEAAyE;IACzE,iEAAiE;IACjE,2EAA2E;IAC3E,8EAA8E;IAC9E,IAAI,SAAS,GAAG,KAAK,CAAC;IACtB,IAAI,YAAY,GAAG,KAAK,CAAC;IAEzB,MAAM,OAAO,GAAoB;QAChC,EAAE,EAAE,mBAAmB;QACvB,KAAK,EAAE,UAAU;QAEjB,YAAY,CAAC,GAAkB,EAAE,GAAuB;YACvD,wEAAwE;YACxE,UAAU,GAAG,GAAG,CAAC;YACjB,OAAO,GAAG,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC;YAC7B,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC;gBAAE,OAAO,KAAK,CAAC;YAC/C,+EAA+E;YAC/E,IAAI,CAAC,uBAAuB,CAAC,GAAG,EAAE,SAAS,EAAE,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC;gBAAE,OAAO,KAAK,CAAC;YAC/E,sEAAsE;YACtE,oEAAoE;YACpE,sDAAsD;YACtD,MAAM,eAAe,GAAG,SAAS,KAAK,2BAA2B,CAAC;YAClE,IAAI,eAAe,IAAI,sBAAsB,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC;gBAAE,OAAO,KAAK,CAAC;YAC5E,OAAO,IAAI,CAAC;QACb,CAAC;QAED,KAAK,CAAC,KAAK,CAAC,GAAwB;YACnC,uEAAuE;YACvE,yEAAyE;YACzE,8BAA8B;YAC9B,MAAM,GAAG,GAAG,UAAU,IAAI,CAAC,MAAM,eAAe,EAAE,CAAC,CAAC;YACpD,MAAM,KAAK,GAAG,uBAAuB,CAAC,GAAG,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;YAC/D,IAAI,CAAC,KAAK,EAAE,CAAC;gBACZ,qEAAqE;gBACrE,4DAA4D;gBAC5D,GAAG,CAAC,GAAG,CAAC,sGAAsG,CAAC,CAAC;gBAChH,OAAO;YACR,CAAC;YACD,yEAAyE;YACzE,yEAAyE;YACzE,wEAAwE;YACxE,MAAM,SAAS,GAAG,qBAAqB,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;YACtD,UAAU,GAAG,MAAM,WAAW,CAAC;gBAC9B,KAAK;gBACL,SAAS;gBACT,GAAG,CAAC,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC7F,GAAG,CAAC,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACzG,GAAG,CAAC,SAAS,CAAC,IAAI,KAAK,SAAS;oBAC/B,CAAC,CAAC;wBACA,IAAI,EAAE,SAAkB;wBACxB,OAAO,EAAE;4BACR,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;4BAChD,GAAG,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,SAAS,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;yBACxE;qBACD;oBACF,CAAC,CAAC,EAAE,CAAC;gBACN,GAAG,EAAE,GAAG,CAAC,GAAG;gBACZ,WAAW,EAAE,GAAG,EAAE;oBACjB,SAAS,GAAG,IAAI,CAAC;oBACjB,YAAY,GAAG,KAAK,CAAC;oBACrB,GAAG,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;oBAC1B,GAAG,CAAC,WAAW,EAAE,EAAE,CAAC;gBACrB,CAAC;gBACD,cAAc,EAAE,GAAG,EAAE;oBACpB,SAAS,GAAG,KAAK,CAAC;oBAClB,YAAY,GAAG,IAAI,CAAC;oBACpB,GAAG,CAAC,GAAG,CACN,+GAA+G,CAC/G,CAAC;oBACF,GAAG,CAAC,WAAW,EAAE,EAAE,CAAC;gBACrB,CAAC;gBACD,SAAS,EAAE,CAAC,GAAG,EAAE,EAAE;oBAClB,oEAAoE;oBACpE,iEAAiE;oBACjE,IAAI,IAAI,CAAC,eAAe,IAAI,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,QAAQ,KAAK,OAAO,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;wBACzF,oBAAoB,CAAC,GAAG,CAAC,cAAc,EAAE,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;oBAClE,CAAC;oBACD,KAAK,GAAG,CAAC,SAAS,CAAC;wBAClB,OAAO,EAAE,mBAAmB;wBAC5B,SAAS;wBACT,cAAc,EAAE,GAAG,CAAC,cAAc;wBAClC,SAAS,EAAE,GAAG,CAAC,SAAS;wBACxB,kBAAkB,EAAE,GAAG,CAAC,kBAAkB;wBAC1C,IAAI,EAAE,GAAG,CAAC,IAAI;wBACd,QAAQ,EAAE,GAAG,CAAC,QAAQ;wBACtB,IAAI,EAAE,GAAG,CAAC,IAAI;wBACd,QAAQ,EAAE,GAAG,CAAC,QAAQ;wBACtB,OAAO,EAAE,GAAG,CAAC,QAAQ,KAAK,OAAO;wBACjC,QAAQ,EAAE,GAAG,CAAC,QAAQ;wBACtB,QAAQ,EAAE,GAAG,CAAC,QAAQ;wBACtB,OAAO,EAAE,GAAG,CAAC,OAAO;wBACpB,8DAA8D;wBAC9D,4DAA4D;wBAC5D,YAAY,EAAE,GAAG,CAAC,YAAY;wBAC9B,GAAG,EAAE,GAAG,CAAC,GAAG;qBACZ,CAAC,CAAC;gBACJ,CAAC;gBACD,wEAAwE;gBACxE,oEAAoE;gBACpE,oEAAoE;gBACpE,eAAe,EAAE,CAAC,GAAG,EAAE,EAAE;oBACxB,IAAI,CAAC,GAAG,CAAC,aAAa;wBAAE,OAAO;oBAC/B,KAAK,GAAG,CAAC,SAAS,CAAC;wBAClB,OAAO,EAAE,mBAAmB;wBAC5B,SAAS;wBACT,cAAc,EAAE,GAAG,CAAC,cAAc;wBAClC,IAAI,EAAE,GAAG,CAAC,IAAI;wBACd,GAAG,CAAC,GAAG,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;wBACjE,IAAI,EAAE,EAAE;wBACR,QAAQ,EAAE,GAAG,CAAC,QAAQ;wBACtB,OAAO,EAAE,GAAG,CAAC,QAAQ,KAAK,OAAO;wBACjC,GAAG,CAAC,GAAG,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;wBACjE,aAAa,EAAE,GAAG,CAAC,aAAa;wBAChC,GAAG,EAAE,GAAG,CAAC,GAAG;qBACZ,CAAC,CAAC;gBACJ,CAAC;aACD,CAAC,CAAC;QACJ,CAAC;QAED,KAAK,CAAC,IAAI;YACT,MAAM,UAAU,EAAE,KAAK,EAAE,CAAC;YAC1B,UAAU,GAAG,IAAI,CAAC;YAClB,SAAS,GAAG,KAAK,CAAC;QACnB,CAAC;QAED;;;;;;WAMG;QACH,MAAM;YACL,IAAI,YAAY,IAAI,UAAU,EAAE,cAAc,EAAE,EAAE,CAAC;gBAClD,OAAO;oBACN,EAAE,EAAE,KAAK;oBACT,IAAI,EAAE,YAAY;oBAClB,MAAM,EAAE,gFAAgF;oBACxF,WAAW,EAAE,mFAAmF;iBAChG,CAAC;YACH,CAAC;YACD,IAAI,CAAC,UAAU,EAAE,CAAC;gBACjB,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,sCAAsC,EAAE,CAAC;YACxF,CAAC;YACD,IAAI,CAAC,SAAS,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,EAAE,CAAC;gBAC7C,OAAO;oBACN,EAAE,EAAE,KAAK;oBACT,IAAI,EAAE,cAAc;oBACpB,MAAM,EAAE,mEAAmE;iBAC3E,CAAC;YACH,CAAC;YACD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;QACrB,CAAC;QAED,KAAK,CAAC,QAAQ,CAAC,cAAsB,EAAE,IAAY,EAAE,IAA0B;YAC9E,IAAI,CAAC,UAAU;gBAAE,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;YACpE,IAAI,YAAY,IAAI,UAAU,CAAC,cAAc,EAAE,EAAE,CAAC;gBACjD,MAAM,IAAI,KAAK,CAAC,yGAAyG,CAAC,CAAC;YAC5H,CAAC;YACD,MAAM,QAAQ,GAAG,IAAI,EAAE,QAAQ,CAAC;YAChC,uEAAuE;YACvE,sEAAsE;YACtE,qEAAqE;YACrE,yBAAyB;YACzB,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,mBAAmB,EAAE,CAAC,CAAC;YAC/D,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;gBAC5B,MAAM,IAAI,GAAG,sBAAsB,CAAC,KAAK,CAAC,CAAC;gBAC3C,IAAI,mBAAmB,CAAC,IAAI,CAAC,EAAE,CAAC;oBAC/B,yEAAyE;oBACzE,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBAC7B,MAAM,UAAU,CAAC,QAAQ,CAAC,cAAc,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;oBAChE,CAAC;oBACD,SAAS;gBACV,CAAC;gBACD,IAAI,CAAC;oBACJ,MAAM,UAAU,CAAC,QAAQ,CAAC,cAAc,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;gBAC3E,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACd,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;oBAC7D,IAAI,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBACzD,uDAAuD;wBACvD,MAAM,UAAU,CAAC,QAAQ,CAAC,cAAc,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;oBAChE,CAAC;yBAAM,CAAC;wBACP,MAAM,GAAG,CAAC;oBACX,CAAC;gBACF,CAAC;YACF,CAAC;QACF,CAAC;QAED,wEAAwE;QACxE,gDAAgD;QAChD,OAAO,EAAE,EAAE,OAAO,EAAE,UAAmB,EAAE;QAEzC,uEAAuE;QACvE,qEAAqE;QACrE,KAAK,EAAE;YACN,cAAc,EAAE;gBACf;oBACC,GAAG,EAAE,UAAU;oBACf,MAAM,EAAE,sCAAsC;oBAC9C,MAAM,EAAE,IAAI;oBACZ,MAAM,EAAE,oBAAoB;oBAC5B,OAAO,EAAE,0CAA0C;iBACnD;aACD;YACD,aAAa,CAAC,GAAW,EAAE,KAAa;gBACvC,IAAI,GAAG,KAAK,UAAU;oBAAE,OAAO,IAAI,CAAC;gBACpC,MAAM,CAAC,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;gBACvB,mEAAmE;gBACnE,IAAI,6BAA6B,CAAC,IAAI,CAAC,CAAC,CAAC;oBAAE,OAAO,IAAI,CAAC;gBACvD,sDAAsD;gBACtD,IAAI,0BAA0B,CAAC,IAAI,CAAC,CAAC,CAAC;oBAAE,OAAO,IAAI,CAAC;gBACpD,OAAO,kFAAkF,CAAC;YAC3F,CAAC;SACD;QAED,KAAK,CAAC,SAAS,CAAC,cAAsB,EAAE,KAAoB;YAC3D,IAAI,CAAC,UAAU;gBAAE,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;YACpE,MAAM,UAAU,CAAC,SAAS,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;QACnD,CAAC;QAED,6EAA6E;QAC7E,4EAA4E;QAC5E,+DAA+D;QAC/D,KAAK,CAAC,QAAQ,CACb,cAAsB,EACtB,IAAsB,EACtB,IAA0B;YAE1B,IAAI,CAAC,UAAU;gBAAE,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;YACpE,MAAM,UAAU,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;YAC3C,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC,QAAQ,CAAC,cAAc,EAAE,UAAU,EAAE;gBAClE,GAAG,CAAC,IAAI,EAAE,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACpE,CAAC,CAAC;YACH,OAAO,EAAE,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;QAC9C,CAAC;QAED,KAAK,CAAC,KAAK,CAAC,cAAsB,EAAE,SAAiB,EAAE,KAAa;YACnE,IAAI,CAAC,UAAU;gBAAE,OAAO,CAAC,8CAA8C;YACvE,MAAM,UAAU,CAAC,KAAK,CAAC,cAAc,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;QAC1D,CAAC;QAED,KAAK,CAAC,YAAY,CAAC,cAAsB,EAAE,KAA6B;YACvE,IAAI,CAAC,UAAU;gBAAE,OAAO;YACxB,MAAM,UAAU,CAAC,YAAY,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;QACtD,CAAC;QAED,4EAA4E;QAC5E,6EAA6E;QAC7E,qEAAqE;QACrE,6EAA6E;QAC7E,4EAA4E;QAC5E,2BAA2B;QAC3B,YAAY,EAAE,qBAAqB;QAEnC,uEAAuE;QACvE,wEAAwE;QACxE,yEAAyE;QACzE,sEAAsE;QACtE,0EAA0E;QAC1E,0EAA0E;QAC1E,uEAAuE;QACvE,kBAAkB,EAAE;YACnB,KAAK,CAAC,kBAAkB,CAAC,MAAmC;gBAC3D,IAAI,CAAC,UAAU;oBAAE,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;gBACpE,MAAM,QAAQ,GAAG,6BAA6B,CAAC,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC;gBAClF,IAAI,CAAC,QAAQ,EAAE,CAAC;oBACf,gEAAgE;oBAChE,MAAM,IAAI,KAAK,CAAC,mEAAmE,CAAC,CAAC;gBACtF,CAAC;gBACD,MAAM,IAAI,GAAG,yBAAyB,CAAC;oBACtC,OAAO,EAAE,MAAM,CAAC,OAAO;oBACvB,YAAY,EAAE,MAAM,CAAC,YAAY;oBACjC,GAAG,CAAC,MAAM,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBACvE,CAAC,CAAC;gBACH,oEAAoE;gBACpE,MAAM,UAAU,CAAC,eAAe,CAAC,MAAM,CAAC,cAAc,EAAE,IAAI,EAAE,QAAQ,EAAE;oBACvE,GAAG,CAAC,MAAM,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBACvE,CAAC,CAAC;YACJ,CAAC;YACD,iBAAiB,CAAC,CAAC;gBAClB,OAAO,uBAAuB,CAAC;oBAC9B,GAAG,EAAE,CAAC,CAAC,GAAG;oBACV,GAAG,CAAC,CAAC,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC7D,GAAG,CAAC,CAAC,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBAChE,CAAC,CAAC;YACJ,CAAC;SACD;QAED,4EAA4E;QAC5E,yEAAyE;QACzE,4EAA4E;QAC5E,0EAA0E;QAC1E,uEAAuE;QACvE,+CAA+C;QAC/C,KAAK,CAAC,YAAY,CAAC,CAKlB;YACA,IAAI,CAAC,UAAU;gBAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,iCAAiC,EAAE,CAAC;YAChF,IAAI,YAAY,IAAI,UAAU,CAAC,cAAc,EAAE,EAAE,CAAC;gBACjD,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,iEAAiE,EAAE,CAAC;YAChG,CAAC;YACD,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC;YACnB,IAAI,CAAC;gBACJ,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC;oBAChB,KAAK,MAAM,CAAC,CAAC,CAAC;wBACb,gEAAgE;wBAChE,6DAA6D;wBAC7D,MAAM,IAAI,GAAG,sBAAsB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;wBAC5C,IAAI,mBAAmB,CAAC,IAAI,CAAC,EAAE,CAAC;4BAC/B,MAAM,UAAU,CAAC,eAAe,CAAC,CAAC,CAAC,cAAc,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;wBACzE,CAAC;6BAAM,CAAC;4BACP,IAAI,CAAC;gCACJ,MAAM,UAAU,CAAC,eAAe,CAAC,CAAC,CAAC,cAAc,EAAE,CAAC,CAAC,SAAS,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;4BACvF,CAAC;4BAAC,OAAO,GAAG,EAAE,CAAC;gCACd,MAAM,CAAC,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gCAC3D,IAAI,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;oCAC5B,MAAM,UAAU,CAAC,eAAe,CAAC,CAAC,CAAC,cAAc,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;gCACzE,CAAC;qCAAM,CAAC;oCACP,MAAM,GAAG,CAAC;gCACX,CAAC;4BACF,CAAC;wBACF,CAAC;wBACD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC;oBAC7C,CAAC;oBACD,KAAK,QAAQ;wBACZ,MAAM,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC,cAAc,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC;wBAC9D,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC;oBAC7C,KAAK,OAAO;wBACX,MAAM,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,cAAc,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;wBAC/D,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC;oBAC7C,KAAK,KAAK;wBACT,MAAM,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,cAAc,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC;wBAC3D,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC;oBAC7C,KAAK,OAAO;wBACX,MAAM,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC,cAAc,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC;wBAC7D,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC;oBAC7C,KAAK,OAAO,CAAC,CAAC,CAAC;wBACd,uDAAuD;wBACvD,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,cAAc,EAAE,CAAC,CAAC,IAAI,EAAE;4BAChE,GAAG,CAAC,CAAC,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;yBAC7D,CAAC,CAAC;wBACH,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;oBACxD,CAAC;oBACD;wBACC,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,yBAAyB,EAAE,CAAC;gBACzD,CAAC;YACF,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACd,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;YAC/E,CAAC;QACF,CAAC;QAED,MAAM;YACL,OAAO,UAAU,EAAE,MAAM,EAAE,IAAI,SAAS,CAAC;QAC1C,CAAC;QAED,WAAW;YACV,OAAO,UAAU,EAAE,WAAW,EAAE,IAAI,IAAI,CAAC;QAC1C,CAAC;QAED,iBAAiB,CAAC,MAAe;YAChC,6DAA6D;YAC7D,IAAI,CAAC,UAAU,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ;gBAAE,OAAO;YACjE,UAAU,CAAC,UAAU,CAAC,MAAe,CAAC,CAAC;QACxC,CAAC;QAED,aAAa;YACZ,OAAO,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC;QACrD,CAAC;KACD,CAAC;IAEF;;;;OAIG;IACH,SAAS,oBAAoB,CAAC,cAAsB,EAAE,QAAgB,EAAE,IAAY;QACnF,MAAM,GAAG,GAAG,GAAG,cAAc,IAAI,QAAQ,EAAE,CAAC;QAC5C,IAAI,kBAAkB,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,OAAO;QACxC,kBAAkB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC5B,MAAM,IAAI,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;QACnC,IAAI,CAAC,IAAI;YAAE,OAAO;QAClB,KAAK,UAAU,EAAE,cAAc,CAAC,cAAc,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;IACjE,CAAC;IAED,OAAO,OAAO,CAAC;AAChB,CAAC;AAED,qFAAqF;AACrF,MAAM,CAAC,MAAM,qBAAqB,GAAwB;IACzD,SAAS,EAAE,CAAC,QAAQ,EAAE,OAAO,EAAE,QAAQ,CAAC;IACxC,SAAS,EAAE,IAAI;IACf,IAAI,EAAE,IAAI;IACV,MAAM,EAAE,IAAI;IACZ,KAAK,EAAE,IAAI;IACX,OAAO,EAAE,IAAI;IACb,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,IAAI;IACX,cAAc,EAAE,IAAI;CACpB,CAAC;AAmBF,+EAA+E;AAC/E,SAAS,iBAAiB,CAAC,IAAsB;IAChD,MAAM,QAAQ,GAAG,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAC9C,IAAI,CAAC,QAAQ;QAAE,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;IACnF,MAAM,OAAO,GAAG,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAC/F,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;IAC3F,OAAO;QACN,QAAQ,EAAE,QAAQ,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ;QACnE,OAAO;QACP,GAAG,CAAC,IAAI,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC5E,GAAG,CAAC,IAAI,CAAC,qBAAqB,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,qBAAqB,EAAE,IAAI,CAAC,qBAAqB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC1G,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,eAAe,CAAC,IAAY;IAC3C,MAAM,SAAS,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;IAChF,IAAI,CAAC,SAAS;QAAE,OAAO,EAAE,CAAC;IAC1B,OAAO,SAAS,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC;AACzE,CAAC;AAED;;;;GAIG;AACH,KAAK,UAAU,eAAe;IAC7B,OAAO,UAAU,EAAE,CAAC;AACrB,CAAC"}
1
+ {"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../../../src/agents/channels/telegram/adapter.ts"],"names":[],"mappings":"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"}
@@ -27,18 +27,27 @@
27
27
  * names (no NUL / control bytes — these are fixed string literals).
28
28
  */
29
29
  /** One Telegram update kind Brigade may subscribe. */
30
- export type TelegramAllowedUpdate = "message" | "callback_query" | "message_reaction" | "edited_message";
30
+ export type TelegramAllowedUpdate = "message" | "callback_query" | "message_reaction" | "edited_message" | "channel_post";
31
31
  /** Options gating the conditional update kinds. */
32
32
  export interface ResolveTelegramAllowedUpdatesOptions {
33
- /** Subscribe `message_reaction` (inbound reaction events). Default false. */
33
+ /**
34
+ * Subscribe `message_reaction` (inbound reaction events). Default TRUE — the
35
+ * connection now routes reactions through the pipeline. Pass `false` to opt
36
+ * out (`message_reaction` is the one kind Telegram does NOT deliver under a
37
+ * default/empty `allowed_updates`, so it must be requested explicitly).
38
+ */
34
39
  reactions?: boolean;
35
- /** Subscribe `edited_message` (inbound message edits). Default false. */
40
+ /** Subscribe `edited_message` (inbound message edits). Default TRUE. */
36
41
  editedMessages?: boolean;
42
+ /** Subscribe `channel_post` (posts in channels the bot administers). Default TRUE. */
43
+ channelPosts?: boolean;
37
44
  }
38
45
  /**
39
46
  * Resolve the `allowed_updates` list Brigade's Telegram poller/webhook should
40
- * request. `message` + `callback_query` are always present; reactions / edited
41
- * messages are added only when explicitly enabled. Deduped + stable order.
47
+ * request. `message` + `callback_query` are always present; `message_reaction`,
48
+ * `edited_message`, and `channel_post` are now requested by DEFAULT (the
49
+ * connection routes all three) and can be opted out individually. Deduped +
50
+ * stable order.
42
51
  */
43
52
  export declare function resolveTelegramAllowedUpdates(opts?: ResolveTelegramAllowedUpdatesOptions): TelegramAllowedUpdate[];
44
53
  //# sourceMappingURL=allowed-updates.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"allowed-updates.d.ts","sourceRoot":"","sources":["../../../../src/agents/channels/telegram/allowed-updates.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH,sDAAsD;AACtD,MAAM,MAAM,qBAAqB,GAC9B,SAAS,GACT,gBAAgB,GAChB,kBAAkB,GAClB,gBAAgB,CAAC;AAEpB,mDAAmD;AACnD,MAAM,WAAW,oCAAoC;IACpD,6EAA6E;IAC7E,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,yEAAyE;IACzE,cAAc,CAAC,EAAE,OAAO,CAAC;CACzB;AAED;;;;GAIG;AACH,wBAAgB,6BAA6B,CAC5C,IAAI,GAAE,oCAAyC,GAC7C,qBAAqB,EAAE,CAczB"}
1
+ {"version":3,"file":"allowed-updates.d.ts","sourceRoot":"","sources":["../../../../src/agents/channels/telegram/allowed-updates.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH,sDAAsD;AACtD,MAAM,MAAM,qBAAqB,GAC9B,SAAS,GACT,gBAAgB,GAChB,kBAAkB,GAClB,gBAAgB,GAChB,cAAc,CAAC;AAElB,mDAAmD;AACnD,MAAM,WAAW,oCAAoC;IACpD;;;;;OAKG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,wEAAwE;IACxE,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,sFAAsF;IACtF,YAAY,CAAC,EAAE,OAAO,CAAC;CACvB;AAED;;;;;;GAMG;AACH,wBAAgB,6BAA6B,CAC5C,IAAI,GAAE,oCAAyC,GAC7C,qBAAqB,EAAE,CAezB"}
@@ -28,15 +28,19 @@
28
28
  */
29
29
  /**
30
30
  * Resolve the `allowed_updates` list Brigade's Telegram poller/webhook should
31
- * request. `message` + `callback_query` are always present; reactions / edited
32
- * messages are added only when explicitly enabled. Deduped + stable order.
31
+ * request. `message` + `callback_query` are always present; `message_reaction`,
32
+ * `edited_message`, and `channel_post` are now requested by DEFAULT (the
33
+ * connection routes all three) and can be opted out individually. Deduped +
34
+ * stable order.
33
35
  */
34
36
  export function resolveTelegramAllowedUpdates(opts = {}) {
35
37
  const out = ["message", "callback_query"];
36
- if (opts.reactions)
38
+ if (opts.reactions !== false)
37
39
  out.push("message_reaction");
38
- if (opts.editedMessages)
40
+ if (opts.editedMessages !== false)
39
41
  out.push("edited_message");
42
+ if (opts.channelPosts !== false)
43
+ out.push("channel_post");
40
44
  // De-dupe defensively (the base list is already unique, but a future caller
41
45
  // could pass overlapping flags) while preserving first-seen order.
42
46
  const seen = new Set();
@@ -1 +1 @@
1
- {"version":3,"file":"allowed-updates.js","sourceRoot":"","sources":["../../../../src/agents/channels/telegram/allowed-updates.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAiBH;;;;GAIG;AACH,MAAM,UAAU,6BAA6B,CAC5C,OAA6C,EAAE;IAE/C,MAAM,GAAG,GAA4B,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC;IACnE,IAAI,IAAI,CAAC,SAAS;QAAE,GAAG,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;IACjD,IAAI,IAAI,CAAC,cAAc;QAAE,GAAG,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IACpD,4EAA4E;IAC5E,mEAAmE;IACnE,MAAM,IAAI,GAAG,IAAI,GAAG,EAAyB,CAAC;IAC9C,MAAM,OAAO,GAA4B,EAAE,CAAC;IAC5C,KAAK,MAAM,CAAC,IAAI,GAAG,EAAE,CAAC;QACrB,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;YAAE,SAAS;QAC1B,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACZ,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACjB,CAAC;IACD,OAAO,OAAO,CAAC;AAChB,CAAC"}
1
+ {"version":3,"file":"allowed-updates.js","sourceRoot":"","sources":["../../../../src/agents/channels/telegram/allowed-updates.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAyBH;;;;;;GAMG;AACH,MAAM,UAAU,6BAA6B,CAC5C,OAA6C,EAAE;IAE/C,MAAM,GAAG,GAA4B,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC;IACnE,IAAI,IAAI,CAAC,SAAS,KAAK,KAAK;QAAE,GAAG,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;IAC3D,IAAI,IAAI,CAAC,cAAc,KAAK,KAAK;QAAE,GAAG,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IAC9D,IAAI,IAAI,CAAC,YAAY,KAAK,KAAK;QAAE,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IAC1D,4EAA4E;IAC5E,mEAAmE;IACnE,MAAM,IAAI,GAAG,IAAI,GAAG,EAAyB,CAAC;IAC9C,MAAM,OAAO,GAA4B,EAAE,CAAC;IAC5C,KAAK,MAAM,CAAC,IAAI,GAAG,EAAE,CAAC;QACrB,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;YAAE,SAAS;QAC1B,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACZ,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACjB,CAAC;IACD,OAAO,OAAO,CAAC;AAChB,CAAC"}
@@ -33,7 +33,7 @@
33
33
  * subscribed — Brigade's approvals are central TEXT replies handled in
34
34
  * `inbound-pipeline.ts`, so `allowed_updates` only needs message updates.
35
35
  */
36
- import { type InboundMediaAttachment, type InboundReplyContext, type OutboundMedia } from "../sdk.js";
36
+ import { type InboundForwardContext, type InboundMediaAttachment, type InboundReplyContext, type OutboundMedia } from "../sdk.js";
37
37
  import type { Message, Update } from "@grammyjs/types";
38
38
  /**
39
39
  * Jittered exponential backoff for reconnect attempt `attempt` (0-based).
@@ -83,6 +83,19 @@ export interface TgInboundMessage {
83
83
  data: string;
84
84
  callbackId: string;
85
85
  };
86
+ /** True when this inbound is an `edited_message` (text carries the NEW text). */
87
+ edited?: boolean;
88
+ /** Forwarded-message provenance, when this message was forwarded from elsewhere. */
89
+ forwarded?: InboundForwardContext;
90
+ /**
91
+ * Inbound reaction context — present ONLY when this inbound is a
92
+ * `message_reaction` update (not a typed message). `emojis` are the newly-
93
+ * ADDED reaction emoji(s); `targetMessageId` is the message they landed on.
94
+ */
95
+ reaction?: {
96
+ emojis: string[];
97
+ targetMessageId: string;
98
+ };
86
99
  /** Raw grammY message (for adapters that need more). */
87
100
  raw: Message;
88
101
  }
@@ -128,6 +141,10 @@ export interface TelegramBotLike {
128
141
  sendSticker?(chatId: string | number, sticker: unknown, opts?: Record<string, unknown>): Promise<{
129
142
  message_id: number;
130
143
  }>;
144
+ /** Send a GIF / short looping animation inline (vs a static photo). */
145
+ sendAnimation?(chatId: string | number, animation: unknown, opts?: Record<string, unknown>): Promise<{
146
+ message_id: number;
147
+ }>;
131
148
  /** Send a native poll (outbound poll support). */
132
149
  sendPoll?(chatId: string | number, question: string, options: string[], opts?: Record<string, unknown>): Promise<{
133
150
  message_id: number;
@@ -144,6 +161,11 @@ export interface TelegramBotLike {
144
161
  unpinChatMessage?(chatId: string | number, opts?: Record<string, unknown>): Promise<boolean>;
145
162
  /** Rename a forum topic (thread auto-labeling). */
146
163
  editForumTopic?(chatId: string | number, messageThreadId: number, opts?: Record<string, unknown>): Promise<boolean>;
164
+ /** Create a forum topic; returns the new topic's `message_thread_id`. */
165
+ createForumTopic?(chatId: string | number, name: string, opts?: Record<string, unknown>): Promise<{
166
+ message_thread_id: number;
167
+ name?: string;
168
+ }>;
147
169
  /** Register the bot's `/` command menu (native command surface). */
148
170
  setMyCommands?(commands: Array<{
149
171
  command: string;
@@ -168,6 +190,21 @@ export interface TelegramBotLike {
168
190
  callbackQuery?: TelegramCallbackQuery;
169
191
  answerCallbackQuery: (opts?: Record<string, unknown>) => Promise<unknown>;
170
192
  }) => unknown): void;
193
+ /** An `edited_message` update (the edit carries the new text). */
194
+ on(filter: "edited_message", handler: (ctx: {
195
+ update: Update;
196
+ editedMessage?: Message;
197
+ }) => unknown): void;
198
+ /** A `channel_post` update (a post in a channel the bot is admin of). */
199
+ on(filter: "channel_post", handler: (ctx: {
200
+ update: Update;
201
+ channelPost?: Message;
202
+ }) => unknown): void;
203
+ /** A `message_reaction` update (someone added/removed an emoji reaction). */
204
+ on(filter: "message_reaction", handler: (ctx: {
205
+ update: Update;
206
+ messageReaction?: TelegramMessageReaction;
207
+ }) => unknown): void;
171
208
  /** Stop the bot (grammY). */
172
209
  stop(): Promise<void> | void;
173
210
  }
@@ -192,6 +229,39 @@ export interface TelegramCallbackQuery {
192
229
  };
193
230
  message?: Message;
194
231
  }
232
+ /** A Telegram `message_reaction` update payload (the subset Brigade reads). */
233
+ export interface TelegramMessageReaction {
234
+ chat: {
235
+ id: number | string;
236
+ type?: string;
237
+ title?: string;
238
+ is_forum?: boolean;
239
+ };
240
+ message_id: number;
241
+ user?: {
242
+ id?: number;
243
+ is_bot?: boolean;
244
+ username?: string;
245
+ first_name?: string;
246
+ last_name?: string;
247
+ };
248
+ actor_chat?: {
249
+ id?: number;
250
+ title?: string;
251
+ username?: string;
252
+ };
253
+ date?: number;
254
+ /** Reactions present BEFORE this update — used to diff the newly-added ones. */
255
+ old_reaction: Array<{
256
+ type: string;
257
+ emoji?: string;
258
+ }>;
259
+ /** Reactions present AFTER this update. */
260
+ new_reaction: Array<{
261
+ type: string;
262
+ emoji?: string;
263
+ }>;
264
+ }
195
265
  /** A grammY-runner-like handle (what `run(bot)` returns). */
196
266
  interface RunnerLike {
197
267
  isRunning(): boolean;
@@ -203,6 +273,16 @@ export interface ConnectTelegramArgs {
203
273
  token: string;
204
274
  /** Account namespace stamped on inbounds (single-account v1 → "default"). */
205
275
  accountId?: string;
276
+ /**
277
+ * Optional proxy URL all Telegram API calls (incl. `getMe` + `getUpdates`)
278
+ * route through. Use it on networks where `api.telegram.org` is blocked.
279
+ * Form: `http(s)://[user:pass@]host:port` for an HTTP CONNECT proxy, or
280
+ * `socks5://[user:pass@]host:port` (also `socks://` / `socks4://` /
281
+ * `socks5h://`) for a SOCKS proxy. When omitted/empty the connection is DIRECT
282
+ * (unchanged default). HTTP(S) proxies use an `undici` ProxyAgent; SOCKS
283
+ * proxies use a SOCKS-aware `undici` Agent (see `socks-dispatcher.ts`).
284
+ */
285
+ proxyUrl?: string;
206
286
  /** Called once `getMe` succeeds and polling starts. */
207
287
  onConnected?: () => void;
208
288
  /** Called when the token is rejected (401) — terminal, re-token required. */
@@ -217,6 +297,13 @@ export interface ConnectTelegramArgs {
217
297
  * omitted, callback updates are still acked + de-duplicated but not routed.
218
298
  */
219
299
  onCallbackQuery?: (msg: TgInboundMessage) => void;
300
+ /**
301
+ * Called for every inbound `message_reaction` (someone added an emoji
302
+ * reaction). The normalized inbound carries `reaction: { emojis,
303
+ * targetMessageId }` and no text. Optional — when omitted, reaction updates
304
+ * are de-duplicated but not routed.
305
+ */
306
+ onReaction?: (msg: TgInboundMessage) => void;
220
307
  /**
221
308
  * The `allowed_updates` list to request from `getUpdates`. Defaults to the
222
309
  * minimal `["message", "callback_query"]` set (see `allowed-updates.ts`).
@@ -302,6 +389,15 @@ export interface TelegramConnection {
302
389
  unpinMessage(chatId: string, messageId?: string): Promise<void>;
303
390
  /** Rename a forum topic (thread auto-labeling). Best-effort. */
304
391
  editForumTopic(chatId: string, threadId: string, name: string): Promise<void>;
392
+ /**
393
+ * Create a forum topic in a supergroup. Returns the new topic's thread id (as
394
+ * a string) so the caller can immediately send into it. Throws when the bot
395
+ * build / chat doesn't support forum topics or the name is invalid.
396
+ */
397
+ createForumTopic(chatId: string, name: string, opts?: TelegramCreateForumTopicOpts): Promise<{
398
+ threadId: string;
399
+ name: string;
400
+ }>;
305
401
  /** Ack an inline-button press (`answerCallbackQuery`). Best-effort. */
306
402
  answerCallback(callbackId: string, text?: string): Promise<void>;
307
403
  /**
@@ -341,12 +437,33 @@ export interface TelegramPollSpec {
341
437
  export interface TelegramSendTextOpts {
342
438
  /** When true the text is already Telegram HTML and sent with `parse_mode: HTML`. */
343
439
  html?: boolean;
440
+ /** Suppress the recipient notification for this send (`disable_notification`). */
441
+ silent?: boolean;
442
+ /** Set false to disable link preview/unfurling (`link_preview_options.is_disabled`). */
443
+ linkPreview?: boolean;
344
444
  /** Forum-topic thread id. */
345
445
  threadId?: string;
446
+ /**
447
+ * Native reply target — the Telegram `message_id` this send should quote.
448
+ * Mapped to `reply_parameters: { message_id, allow_sending_without_reply }`
449
+ * so the message renders as a native reply. Best-effort: a vanished target
450
+ * still delivers (Telegram drops the quote rather than erroring) because
451
+ * `allow_sending_without_reply` is set. Omitted → an ordinary, unquoted send.
452
+ */
453
+ replyToMessageId?: string;
346
454
  }
347
455
  export interface TelegramSendMediaOpts {
348
456
  /** Forum-topic thread id. */
349
457
  threadId?: string;
458
+ /** Suppress the recipient notification for this send (`disable_notification`). */
459
+ silent?: boolean;
460
+ }
461
+ /** Optional `createForumTopic` knobs (icon color / custom emoji). */
462
+ export interface TelegramCreateForumTopicOpts {
463
+ /** RGB color of the topic icon (one of Telegram's allowed palette ints). */
464
+ iconColor?: number;
465
+ /** Custom-emoji id for the topic icon. */
466
+ iconCustomEmojiId?: string;
350
467
  }
351
468
  /** 401 Unauthorized → the bot token is wrong / revoked (terminal). */
352
469
  export declare function isTelegramUnauthorized(err: unknown): boolean;