@spinabot/brigade 1.3.2 → 1.4.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 (225) hide show
  1. package/README.md +54 -10
  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 +178 -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 +108 -1
  74. package/dist/agents/channels/telegram/connection.d.ts.map +1 -1
  75. package/dist/agents/channels/telegram/connection.js +219 -3
  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/inbound-extras.d.ts +10 -1
  82. package/dist/agents/channels/telegram/inbound-extras.d.ts.map +1 -1
  83. package/dist/agents/channels/telegram/inbound-extras.js +66 -0
  84. package/dist/agents/channels/telegram/inbound-extras.js.map +1 -1
  85. package/dist/agents/channels/telegram/inline-keyboard.d.ts +36 -0
  86. package/dist/agents/channels/telegram/inline-keyboard.d.ts.map +1 -0
  87. package/dist/agents/channels/telegram/inline-keyboard.js +62 -0
  88. package/dist/agents/channels/telegram/inline-keyboard.js.map +1 -0
  89. package/dist/agents/channels/telegram/plugin.d.ts.map +1 -1
  90. package/dist/agents/channels/telegram/plugin.js +7 -11
  91. package/dist/agents/channels/telegram/plugin.js.map +1 -1
  92. package/dist/agents/channels/telegram/reasoning-lane.d.ts +41 -0
  93. package/dist/agents/channels/telegram/reasoning-lane.d.ts.map +1 -0
  94. package/dist/agents/channels/telegram/reasoning-lane.js +67 -0
  95. package/dist/agents/channels/telegram/reasoning-lane.js.map +1 -0
  96. package/dist/agents/channels/telegram/socks-dispatcher.d.ts +32 -0
  97. package/dist/agents/channels/telegram/socks-dispatcher.d.ts.map +1 -0
  98. package/dist/agents/channels/telegram/socks-dispatcher.js +97 -0
  99. package/dist/agents/channels/telegram/socks-dispatcher.js.map +1 -0
  100. package/dist/agents/channels/types.adapters.d.ts +137 -4
  101. package/dist/agents/channels/types.adapters.d.ts.map +1 -1
  102. package/dist/agents/channels/types.adapters.js +2 -2
  103. package/dist/agents/channels/types.core.d.ts +26 -2
  104. package/dist/agents/channels/types.core.d.ts.map +1 -1
  105. package/dist/agents/channels/types.plugin.d.ts +25 -7
  106. package/dist/agents/channels/types.plugin.d.ts.map +1 -1
  107. package/dist/agents/channels/types.plugin.js +6 -5
  108. package/dist/agents/channels/types.plugin.js.map +1 -1
  109. package/dist/agents/channels/whatsapp/adapter.d.ts +8 -0
  110. package/dist/agents/channels/whatsapp/adapter.d.ts.map +1 -1
  111. package/dist/agents/channels/whatsapp/adapter.js +7 -4
  112. package/dist/agents/channels/whatsapp/adapter.js.map +1 -1
  113. package/dist/agents/channels/whatsapp/connection.d.ts +24 -2
  114. package/dist/agents/channels/whatsapp/connection.d.ts.map +1 -1
  115. package/dist/agents/channels/whatsapp/connection.js +26 -5
  116. package/dist/agents/channels/whatsapp/connection.js.map +1 -1
  117. package/dist/agents/channels/whatsapp/plugin.d.ts.map +1 -1
  118. package/dist/agents/channels/whatsapp/plugin.js +6 -10
  119. package/dist/agents/channels/whatsapp/plugin.js.map +1 -1
  120. package/dist/agents/extensions/activation-planner.d.ts +125 -0
  121. package/dist/agents/extensions/activation-planner.d.ts.map +1 -0
  122. package/dist/agents/extensions/activation-planner.js +221 -0
  123. package/dist/agents/extensions/activation-planner.js.map +1 -0
  124. package/dist/agents/extensions/diagnose.d.ts +84 -0
  125. package/dist/agents/extensions/diagnose.d.ts.map +1 -0
  126. package/dist/agents/extensions/diagnose.js +123 -0
  127. package/dist/agents/extensions/diagnose.js.map +1 -0
  128. package/dist/agents/extensions/discovery.d.ts +85 -7
  129. package/dist/agents/extensions/discovery.d.ts.map +1 -1
  130. package/dist/agents/extensions/discovery.js +200 -15
  131. package/dist/agents/extensions/discovery.js.map +1 -1
  132. package/dist/agents/extensions/index.d.ts +3 -2
  133. package/dist/agents/extensions/index.d.ts.map +1 -1
  134. package/dist/agents/extensions/index.js +3 -2
  135. package/dist/agents/extensions/index.js.map +1 -1
  136. package/dist/agents/extensions/install-scan.d.ts +63 -0
  137. package/dist/agents/extensions/install-scan.d.ts.map +1 -0
  138. package/dist/agents/extensions/install-scan.js +201 -0
  139. package/dist/agents/extensions/install-scan.js.map +1 -0
  140. package/dist/agents/extensions/install.d.ts +135 -0
  141. package/dist/agents/extensions/install.d.ts.map +1 -0
  142. package/dist/agents/extensions/install.js +414 -0
  143. package/dist/agents/extensions/install.js.map +1 -0
  144. package/dist/agents/extensions/loader.d.ts +13 -2
  145. package/dist/agents/extensions/loader.d.ts.map +1 -1
  146. package/dist/agents/extensions/loader.js +126 -13
  147. package/dist/agents/extensions/loader.js.map +1 -1
  148. package/dist/agents/extensions/registry.d.ts +109 -0
  149. package/dist/agents/extensions/registry.d.ts.map +1 -1
  150. package/dist/agents/extensions/registry.js +172 -0
  151. package/dist/agents/extensions/registry.js.map +1 -1
  152. package/dist/agents/extensions/sdk-alias.d.ts +45 -0
  153. package/dist/agents/extensions/sdk-alias.d.ts.map +1 -0
  154. package/dist/agents/extensions/sdk-alias.js +94 -0
  155. package/dist/agents/extensions/sdk-alias.js.map +1 -0
  156. package/dist/agents/extensions/types.d.ts +155 -1
  157. package/dist/agents/extensions/types.d.ts.map +1 -1
  158. package/dist/agents/extensions/types.js.map +1 -1
  159. package/dist/agents/tools/composio-tool.d.ts +9 -1
  160. package/dist/agents/tools/composio-tool.d.ts.map +1 -1
  161. package/dist/agents/tools/composio-tool.js +68 -4
  162. package/dist/agents/tools/composio-tool.js.map +1 -1
  163. package/dist/agents/tools/message-action-tool.d.ts +6 -1
  164. package/dist/agents/tools/message-action-tool.d.ts.map +1 -1
  165. package/dist/agents/tools/message-action-tool.js +52 -2
  166. package/dist/agents/tools/message-action-tool.js.map +1 -1
  167. package/dist/agents/tools/send-message-tool.d.ts +1 -0
  168. package/dist/agents/tools/send-message-tool.d.ts.map +1 -1
  169. package/dist/agents/tools/send-message-tool.js +56 -1
  170. package/dist/agents/tools/send-message-tool.js.map +1 -1
  171. package/dist/buildstamp.json +1 -1
  172. package/dist/channel-sdk.d.ts +28 -0
  173. package/dist/channel-sdk.d.ts.map +1 -0
  174. package/dist/channel-sdk.js +28 -0
  175. package/dist/channel-sdk.js.map +1 -0
  176. package/dist/cli/commands/channels.d.ts.map +1 -1
  177. package/dist/cli/commands/channels.js +8 -8
  178. package/dist/cli/commands/channels.js.map +1 -1
  179. package/dist/cli/commands/connect.d.ts +8 -11
  180. package/dist/cli/commands/connect.d.ts.map +1 -1
  181. package/dist/cli/commands/connect.js +157 -17
  182. package/dist/cli/commands/connect.js.map +1 -1
  183. package/dist/cli/commands/doctor.d.ts.map +1 -1
  184. package/dist/cli/commands/doctor.js +64 -0
  185. package/dist/cli/commands/doctor.js.map +1 -1
  186. package/dist/cli/commands/extensions.d.ts +46 -0
  187. package/dist/cli/commands/extensions.d.ts.map +1 -0
  188. package/dist/cli/commands/extensions.js +578 -0
  189. package/dist/cli/commands/extensions.js.map +1 -0
  190. package/dist/cli/commands/pairing.d.ts.map +1 -1
  191. package/dist/cli/commands/pairing.js +16 -2
  192. package/dist/cli/commands/pairing.js.map +1 -1
  193. package/dist/cli/commands/update.d.ts +17 -0
  194. package/dist/cli/commands/update.d.ts.map +1 -0
  195. package/dist/cli/commands/update.js +104 -0
  196. package/dist/cli/commands/update.js.map +1 -0
  197. package/dist/cli/program/build-program.d.ts.map +1 -1
  198. package/dist/cli/program/build-program.js +113 -0
  199. package/dist/cli/program/build-program.js.map +1 -1
  200. package/dist/config/paths.d.ts +1 -0
  201. package/dist/config/paths.d.ts.map +1 -1
  202. package/dist/config/paths.js +9 -0
  203. package/dist/config/paths.js.map +1 -1
  204. package/dist/core/server.d.ts.map +1 -1
  205. package/dist/core/server.js +134 -2
  206. package/dist/core/server.js.map +1 -1
  207. package/dist/protocol.d.ts +25 -0
  208. package/dist/protocol.d.ts.map +1 -1
  209. package/dist/protocol.js.map +1 -1
  210. package/dist/system-prompt/assembler.d.ts.map +1 -1
  211. package/dist/system-prompt/assembler.js +17 -0
  212. package/dist/system-prompt/assembler.js.map +1 -1
  213. package/dist/system-prompt/identity-defaults.d.ts +28 -0
  214. package/dist/system-prompt/identity-defaults.d.ts.map +1 -1
  215. package/dist/system-prompt/identity-defaults.js +47 -0
  216. package/dist/system-prompt/identity-defaults.js.map +1 -1
  217. package/dist/ui/editor.d.ts.map +1 -1
  218. package/dist/ui/editor.js +1 -0
  219. package/dist/ui/editor.js.map +1 -1
  220. package/dist/version.d.ts +4 -3
  221. package/dist/version.d.ts.map +1 -1
  222. package/dist/version.js +27 -5
  223. package/dist/version.js.map +1 -1
  224. package/package.json +21 -4
  225. package/scripts/build-done.mjs +11 -2
@@ -0,0 +1,222 @@
1
+ /**
2
+ * Telegram live-streaming draft message.
3
+ *
4
+ * Brigade agents normally deliver one FINAL chunked reply (see
5
+ * `inbound-pipeline.dispatchTurn` → `adapter.sendText`). This module adds the
6
+ * OPTIONAL progressive-edit behavior: post a placeholder message on the first
7
+ * content, then `editMessageText` it with the accumulating answer as tokens
8
+ * arrive — THROTTLED to roughly one edit per second so a long reply doesn't
9
+ * hammer the Bot API. When the running text outgrows Telegram's 4096-char
10
+ * limit the stream FINALIZES the current message at its last safe chunk
11
+ * boundary and ROLLS to a fresh message for the overflow, so a multi-message
12
+ * reply streams naturally.
13
+ *
14
+ * Design notes (vs the simpler one-shot send):
15
+ * - Transport-agnostic + pure-ish: the three Telegram calls (`sendMessage`,
16
+ * `editMessageText`, `deleteMessage`) are INJECTED, so the throttle / roll /
17
+ * finalize state machine is unit-tested with fakes and never imports grammY.
18
+ * - Throttle window: edits coalesce — `update(text)` only records the latest
19
+ * text; the loop flushes at most once per `throttleMs`. `flush()` forces an
20
+ * immediate delivery (used between throttle ticks and on finalize).
21
+ * - 4096 boundary roll: when an edit would exceed the limit, the current
22
+ * message is finalized to the largest chunk that fits (split on a paragraph
23
+ * / newline / space boundary) and the remainder starts a NEW message.
24
+ * - Render hook: `renderText` converts a markdown chunk to Telegram HTML
25
+ * (same `markdownToTelegramHtml` the final path uses). A render that throws
26
+ * or yields empty HTML falls back to plain text so a half-streamed code
27
+ * fence never wedges the stream.
28
+ * - Idempotent finalize: `finalize(text)` is safe to call once at turn end —
29
+ * it flushes the final text and stops the loop. After finalize the stream
30
+ * is inert.
31
+ *
32
+ * This is the streaming analogue of the reference draft-stream, brand-scrubbed
33
+ * and reduced to the `sendMessage`/`editMessageText` transport (Brigade does
34
+ * not use the experimental `sendMessageDraft` Bot API method).
35
+ */
36
+ /** Telegram's per-message / per-edit text limit. */
37
+ export const TELEGRAM_STREAM_MAX_CHARS = 4096;
38
+ /** Default minimum gap between edits (≈ 1 edit/sec, Bot API friendly). */
39
+ export const DEFAULT_THROTTLE_MS = 1000;
40
+ /** Floor on the throttle so a misconfig can't spam the API. */
41
+ const MIN_THROTTLE_MS = 250;
42
+ /**
43
+ * Split `text` so the head fits within `limit` chars, preferring (in order) a
44
+ * paragraph break, a newline, then a space, falling back to a hard cut. Returns
45
+ * `[head, rest]`; `rest` is "" when the whole text fits.
46
+ */
47
+ export function splitAtBoundary(text, limit) {
48
+ if (text.length <= limit)
49
+ return [text, ""];
50
+ const window = text.slice(0, limit);
51
+ const candidates = [window.lastIndexOf("\n\n"), window.lastIndexOf("\n"), window.lastIndexOf(" ")];
52
+ for (const idx of candidates) {
53
+ // Require the boundary to land past the half-way mark so we don't emit a
54
+ // tiny head and shove almost everything into the overflow message.
55
+ if (idx > limit * 0.5) {
56
+ return [text.slice(0, idx).trimEnd(), text.slice(idx).trimStart()];
57
+ }
58
+ }
59
+ return [text.slice(0, limit), text.slice(limit)];
60
+ }
61
+ export function createDraftStream(params) {
62
+ const throttleMs = Math.max(MIN_THROTTLE_MS, params.throttleMs ?? DEFAULT_THROTTLE_MS);
63
+ const maxChars = Math.min(TELEGRAM_STREAM_MAX_CHARS, Math.max(1, params.maxChars ?? TELEGRAM_STREAM_MAX_CHARS));
64
+ const render = params.renderText ?? ((t) => ({ text: t }));
65
+ const warn = params.warn ?? (() => { });
66
+ // Full accumulated answer text the agent has produced so far.
67
+ let pending = "";
68
+ // Text of the CURRENT (live) message that's already been delivered — used to
69
+ // skip no-op edits and to know how much of `pending` belongs to this message.
70
+ let liveDelivered = "";
71
+ // Char offset into `pending` where the current live message STARTS. Each roll
72
+ // advances this past the finalized head.
73
+ let baseOffset = 0;
74
+ const sentIds = [];
75
+ let liveId;
76
+ let done = false;
77
+ let inFlight = false;
78
+ let lastSentAt = 0;
79
+ let timer;
80
+ const clearTimer = () => {
81
+ if (timer) {
82
+ clearTimeout(timer);
83
+ timer = undefined;
84
+ }
85
+ };
86
+ /** The slice of `pending` that belongs to the current live message. */
87
+ const liveSlice = () => pending.slice(baseOffset);
88
+ /**
89
+ * Deliver the current live slice: send a placeholder on first content, edit
90
+ * thereafter, and roll to a new message when the slice exceeds `maxChars`.
91
+ * Re-entrancy guarded by `inFlight` so overlapping flushes serialize.
92
+ */
93
+ const deliver = async (isFinal) => {
94
+ if (done && !isFinal)
95
+ return;
96
+ if (inFlight)
97
+ return;
98
+ if (!liveSlice().trim())
99
+ return;
100
+ inFlight = true;
101
+ try {
102
+ // Roll: finalize the current message at a boundary, start a new one for
103
+ // the overflow. Loop because a very long burst can overflow twice.
104
+ // We work against the UNTRIMMED live slice so `baseOffset` advances by
105
+ // the exact number of `pending` chars consumed (including the boundary
106
+ // whitespace `splitAtBoundary` drops), keeping the next message aligned.
107
+ let rawSlice = liveSlice();
108
+ while (rawSlice.trimEnd().length > maxChars) {
109
+ const [head] = splitAtBoundary(rawSlice.trimEnd(), maxChars);
110
+ await deliverOne(head);
111
+ // Advance past everything up to and including the boundary: find where
112
+ // the trimmed head ends in the raw slice, then skip following
113
+ // whitespace so the next message starts on real content.
114
+ const headEnd = rawSlice.indexOf(head) + head.length;
115
+ let advance = headEnd;
116
+ while (advance < rawSlice.length && /\s/.test(rawSlice[advance] ?? ""))
117
+ advance++;
118
+ baseOffset += advance;
119
+ liveDelivered = "";
120
+ liveId = undefined;
121
+ rawSlice = liveSlice();
122
+ }
123
+ const slice = rawSlice.trimEnd();
124
+ if (slice && (slice !== liveDelivered || isFinal)) {
125
+ await deliverOne(slice);
126
+ }
127
+ lastSentAt = Date.now();
128
+ }
129
+ finally {
130
+ inFlight = false;
131
+ }
132
+ };
133
+ /** Send-or-edit a single message body (≤ maxChars). */
134
+ const deliverOne = async (body) => {
135
+ let rendered;
136
+ try {
137
+ rendered = render(body);
138
+ if (!rendered.text.trim())
139
+ rendered = { text: body };
140
+ }
141
+ catch {
142
+ rendered = { text: body };
143
+ }
144
+ // A render can inflate length (HTML entities/tags); guard the hard cap.
145
+ if (rendered.text.length > TELEGRAM_STREAM_MAX_CHARS) {
146
+ rendered = { text: body.slice(0, maxChars) };
147
+ }
148
+ try {
149
+ if (typeof liveId === "number") {
150
+ if (rendered.text === liveDelivered)
151
+ return;
152
+ await params.transport.editMessageText(liveId, rendered.text, {
153
+ ...(rendered.parseMode ? { parseMode: rendered.parseMode } : {}),
154
+ });
155
+ }
156
+ else {
157
+ const sent = await params.transport.sendMessage(rendered.text, {
158
+ ...(rendered.parseMode ? { parseMode: rendered.parseMode } : {}),
159
+ ...(params.threadId !== undefined ? { threadId: params.threadId } : {}),
160
+ });
161
+ liveId = sent.messageId;
162
+ sentIds.push(sent.messageId);
163
+ }
164
+ liveDelivered = rendered.text;
165
+ }
166
+ catch (err) {
167
+ // A parse / edit failure must never wedge the turn — the final-only
168
+ // fallback in the pipeline still delivers the complete reply.
169
+ warn(`telegram stream deliver failed: ${err instanceof Error ? err.message : String(err)}`);
170
+ }
171
+ };
172
+ /** Schedule a throttled flush if one isn't already pending. */
173
+ const scheduleFlush = () => {
174
+ if (done || timer || inFlight)
175
+ return;
176
+ const elapsed = Date.now() - lastSentAt;
177
+ const wait = elapsed >= throttleMs ? 0 : throttleMs - elapsed;
178
+ timer = setTimeout(() => {
179
+ timer = undefined;
180
+ void deliver(false);
181
+ }, wait);
182
+ };
183
+ return {
184
+ update(fullText) {
185
+ if (done)
186
+ return;
187
+ if (typeof fullText !== "string")
188
+ return;
189
+ pending = fullText;
190
+ scheduleFlush();
191
+ },
192
+ async flush() {
193
+ if (done)
194
+ return;
195
+ clearTimer();
196
+ await deliver(false);
197
+ },
198
+ async finalize(fullText) {
199
+ if (done) {
200
+ return;
201
+ }
202
+ clearTimer();
203
+ if (typeof fullText === "string")
204
+ pending = fullText;
205
+ // Drain: deliver until the live slice is fully sent (handles a final
206
+ // burst that rolls into one or more new messages).
207
+ await deliver(true);
208
+ done = true;
209
+ },
210
+ stop() {
211
+ clearTimer();
212
+ done = true;
213
+ },
214
+ messageIds() {
215
+ return [...sentIds];
216
+ },
217
+ isDone() {
218
+ return done;
219
+ },
220
+ };
221
+ }
222
+ //# sourceMappingURL=draft-stream.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"draft-stream.js","sourceRoot":"","sources":["../../../../src/agents/channels/telegram/draft-stream.ts"],"names":[],"mappings":"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"}
@@ -12,7 +12,7 @@
12
12
  * (`mentions`, `threadId`, `replyTo`, chat type).
13
13
  */
14
14
  import type { Message } from "@grammyjs/types";
15
- import type { InboundReplyContext } from "../sdk.js";
15
+ import type { InboundForwardContext, InboundReplyContext } from "../sdk.js";
16
16
  /** Telegram message entity (mention / link / etc.). */
17
17
  type TelegramTextEntity = NonNullable<Message["entities"]>[number];
18
18
  /**
@@ -51,6 +51,15 @@ export declare function telegramThreadId(msg: Message): string | undefined;
51
51
  export declare function extractTelegramMentions(msg: Message, botUsername?: string, botUserId?: string): string[];
52
52
  /** Reply-context (what message this inbound quotes), when it's a reply. */
53
53
  export declare function extractTelegramReplyContext(msg: Message): InboundReplyContext | undefined;
54
+ /**
55
+ * Forward provenance, when this message was forwarded from elsewhere. Reads the
56
+ * modern `forward_origin` envelope (Bot API 7.0+, a `MessageOrigin` union) and
57
+ * falls back to the legacy `forward_from` / `forward_from_chat` / `forward_date`
58
+ * fields so older payloads still surface a sender. Returns `undefined` for an
59
+ * original (non-forwarded) message. Ported from the reference
60
+ * `bot-handlers.runtime.ts` forward handling.
61
+ */
62
+ export declare function extractTelegramForwardContext(msg: Message): InboundForwardContext | undefined;
54
63
  /**
55
64
  * Cheap presence probe — does this message carry a downloadable media envelope?
56
65
  * Walks the same fields as the downloader but never touches the network, so the
@@ -1 +1 @@
1
- {"version":3,"file":"inbound-extras.d.ts","sourceRoot":"","sources":["../../../../src/agents/channels/telegram/inbound-extras.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAE/C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAErD,uDAAuD;AACvD,KAAK,kBAAkB,GAAG,WAAW,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;AAwBnE;;;GAGG;AACH,wBAAgB,oBAAoB,CACnC,GAAG,EAAE,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,UAAU,GAAG,kBAAkB,CAAC,GACtE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,kBAAkB,EAAE,CAAA;CAAE,CAIlD;AAwBD,gFAAgF;AAChF,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CAGxD;AAED,0FAA0F;AAC1F,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,OAAO,GAAG,QAAQ,GAAG,OAAO,CAGjE;AAED,4EAA4E;AAC5E,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAGjE;AA0BD;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,uBAAuB,CACtC,GAAG,EAAE,OAAO,EACZ,WAAW,CAAC,EAAE,MAAM,EACpB,SAAS,CAAC,EAAE,MAAM,GAChB,MAAM,EAAE,CAwCV;AAED,2EAA2E;AAC3E,wBAAgB,2BAA2B,CAAC,GAAG,EAAE,OAAO,GAAG,mBAAmB,GAAG,SAAS,CASzF;AAID;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAMrD;AAED;;;;GAIG;AACH,wBAAgB,yBAAyB,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAU1E;AAED,+FAA+F;AAC/F,wBAAgB,uBAAuB,CACtC,GAAG,EAAE,OAAO,GACV,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,UAAU,GAAG,SAAS,GAAG,SAAS,CAQ5E;AAED,yEAAyE;AACzE,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAMxE"}
1
+ {"version":3,"file":"inbound-extras.d.ts","sourceRoot":"","sources":["../../../../src/agents/channels/telegram/inbound-extras.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAE/C,OAAO,KAAK,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAE5E,uDAAuD;AACvD,KAAK,kBAAkB,GAAG,WAAW,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;AAwBnE;;;GAGG;AACH,wBAAgB,oBAAoB,CACnC,GAAG,EAAE,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,UAAU,GAAG,kBAAkB,CAAC,GACtE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,kBAAkB,EAAE,CAAA;CAAE,CAIlD;AAwBD,gFAAgF;AAChF,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CAGxD;AAED,0FAA0F;AAC1F,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,OAAO,GAAG,QAAQ,GAAG,OAAO,CAGjE;AAED,4EAA4E;AAC5E,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAGjE;AA0BD;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,uBAAuB,CACtC,GAAG,EAAE,OAAO,EACZ,WAAW,CAAC,EAAE,MAAM,EACpB,SAAS,CAAC,EAAE,MAAM,GAChB,MAAM,EAAE,CAwCV;AAED,2EAA2E;AAC3E,wBAAgB,2BAA2B,CAAC,GAAG,EAAE,OAAO,GAAG,mBAAmB,GAAG,SAAS,CASzF;AAID;;;;;;;GAOG;AACH,wBAAgB,6BAA6B,CAAC,GAAG,EAAE,OAAO,GAAG,qBAAqB,GAAG,SAAS,CA6D7F;AAID;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAMrD;AAED;;;;GAIG;AACH,wBAAgB,yBAAyB,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAU1E;AAED,+FAA+F;AAC/F,wBAAgB,uBAAuB,CACtC,GAAG,EAAE,OAAO,GACV,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,UAAU,GAAG,SAAS,GAAG,SAAS,CAQ5E;AAED,yEAAyE;AACzE,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAMxE"}
@@ -175,6 +175,72 @@ export function extractTelegramReplyContext(msg) {
175
175
  return undefined;
176
176
  return { messageId, from, body };
177
177
  }
178
+ /* ───────────────────────── forwarded-message context ───────────────────────── */
179
+ /**
180
+ * Forward provenance, when this message was forwarded from elsewhere. Reads the
181
+ * modern `forward_origin` envelope (Bot API 7.0+, a `MessageOrigin` union) and
182
+ * falls back to the legacy `forward_from` / `forward_from_chat` / `forward_date`
183
+ * fields so older payloads still surface a sender. Returns `undefined` for an
184
+ * original (non-forwarded) message. Ported from the reference
185
+ * `bot-handlers.runtime.ts` forward handling.
186
+ */
187
+ export function extractTelegramForwardContext(msg) {
188
+ const m = msg;
189
+ const ctx = {};
190
+ const origin = m.forward_origin;
191
+ if (origin) {
192
+ if (typeof origin.date === "number")
193
+ ctx.date = origin.date * 1000;
194
+ // `user` origin → a concrete forwarding user.
195
+ const u = origin.sender_user;
196
+ if (u) {
197
+ const name = [u.first_name, u.last_name].filter(Boolean).join(" ").trim() || (u.username ? `@${u.username}` : "");
198
+ if (name)
199
+ ctx.senderName = name;
200
+ if (typeof u.id === "number")
201
+ ctx.from = String(u.id);
202
+ }
203
+ // `hidden_user` origin → only a display name (privacy-restricted forward).
204
+ if (!ctx.senderName && typeof origin.sender_user_name === "string" && origin.sender_user_name.trim()) {
205
+ ctx.senderName = origin.sender_user_name.trim();
206
+ }
207
+ // `chat` / `channel` origin → the originating chat/channel.
208
+ const originChat = origin.sender_chat ?? origin.chat;
209
+ if (originChat) {
210
+ if (typeof originChat.id === "number")
211
+ ctx.chatId = String(originChat.id);
212
+ if (typeof originChat.title === "string" && originChat.title.trim())
213
+ ctx.chatTitle = originChat.title.trim();
214
+ if (!ctx.senderName && origin.author_signature)
215
+ ctx.senderName = origin.author_signature;
216
+ }
217
+ }
218
+ else {
219
+ // Legacy forward fields (pre-Bot-API-7.0).
220
+ if (typeof m.forward_date === "number")
221
+ ctx.date = m.forward_date * 1000;
222
+ const u = m.forward_from;
223
+ if (u) {
224
+ const name = [u.first_name, u.last_name].filter(Boolean).join(" ").trim() || (u.username ? `@${u.username}` : "");
225
+ if (name)
226
+ ctx.senderName = name;
227
+ if (typeof u.id === "number")
228
+ ctx.from = String(u.id);
229
+ }
230
+ const chat = m.forward_from_chat;
231
+ if (chat) {
232
+ if (typeof chat.id === "number")
233
+ ctx.chatId = String(chat.id);
234
+ if (typeof chat.title === "string" && chat.title.trim())
235
+ ctx.chatTitle = chat.title.trim();
236
+ }
237
+ if (!ctx.senderName && typeof m.forward_sender_name === "string" && m.forward_sender_name.trim()) {
238
+ ctx.senderName = m.forward_sender_name.trim();
239
+ }
240
+ }
241
+ // Nothing usable → not a forward (or an unrecognised origin shape).
242
+ return ctx.senderName || ctx.from || ctx.chatId || ctx.chatTitle || ctx.date ? ctx : undefined;
243
+ }
178
244
  /* ───────────────────────── media detection (ported) ───────────────────────── */
179
245
  /**
180
246
  * Cheap presence probe — does this message carry a downloadable media envelope?
@@ -1 +1 @@
1
- {"version":3,"file":"inbound-extras.js","sourceRoot":"","sources":["../../../../src/agents/channels/telegram/inbound-extras.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"inbound-extras.js","sourceRoot":"","sources":["../../../../src/agents/channels/telegram/inbound-extras.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,36 @@
1
+ /**
2
+ * General Telegram inline-keyboard rendering (NON-approval).
3
+ *
4
+ * Brigade's first inline-button use was approvals only (`approval-native.ts`,
5
+ * whose payloads come from the central approval codec). This module adds the
6
+ * GENERAL case: an agent attaches arbitrary buttons to an outbound message (via
7
+ * the `message_action` `buttons` kind), and the press routes back through the
8
+ * inbound pipeline as a normal turn so the agent can react.
9
+ *
10
+ * A general button's `callback_data` is NOT an approval codec payload — it's a
11
+ * short app-defined token. To keep general presses cleanly separable from
12
+ * approval presses (which the pipeline consumes FIRST), every general payload is
13
+ * namespaced with the {@link GENERAL_CALLBACK_PREFIX}. The pipeline strips the
14
+ * prefix and feeds the remaining token to the agent as a synthetic inbound.
15
+ *
16
+ * SAFETY: Telegram caps `callback_data` at 64 UTF-8 bytes and forbids control
17
+ * bytes; we reuse `sanitizeTelegramCallbackData` and DROP any button whose data
18
+ * doesn't fit the budget after prefixing (rather than ship a truncated token
19
+ * that decodes to the wrong action).
20
+ */
21
+ import { type TelegramInlineKeyboardMarkup } from "./approval-native.js";
22
+ /** A general button as the agent specifies it (before prefixing/sanitizing). */
23
+ export interface GeneralInlineButtonSpec {
24
+ /** Button label shown to the user. */
25
+ text: string;
26
+ /** App-defined token delivered to the agent on press (≤ ~60 bytes after prefix). */
27
+ data: string;
28
+ }
29
+ /**
30
+ * Build a general inline keyboard from a grid of button specs. Each button's
31
+ * `data` is prefixed + sanitized; a button whose prefixed data exceeds the
32
+ * 64-byte budget OR whose label is empty is DROPPED. Returns `null` when no
33
+ * usable button remains (the caller then sends a plain message instead).
34
+ */
35
+ export declare function buildTelegramInlineKeyboard(grid: GeneralInlineButtonSpec[][]): TelegramInlineKeyboardMarkup | null;
36
+ //# sourceMappingURL=inline-keyboard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inline-keyboard.d.ts","sourceRoot":"","sources":["../../../../src/agents/channels/telegram/inline-keyboard.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAGH,OAAO,EAKN,KAAK,4BAA4B,EACjC,MAAM,sBAAsB,CAAC;AAE9B,gFAAgF;AAChF,MAAM,WAAW,uBAAuB;IACvC,sCAAsC;IACtC,IAAI,EAAE,MAAM,CAAC;IACb,oFAAoF;IACpF,IAAI,EAAE,MAAM,CAAC;CACb;AAED;;;;;GAKG;AACH,wBAAgB,2BAA2B,CAC1C,IAAI,EAAE,uBAAuB,EAAE,EAAE,GAC/B,4BAA4B,GAAG,IAAI,CA4BrC"}
@@ -0,0 +1,62 @@
1
+ /**
2
+ * General Telegram inline-keyboard rendering (NON-approval).
3
+ *
4
+ * Brigade's first inline-button use was approvals only (`approval-native.ts`,
5
+ * whose payloads come from the central approval codec). This module adds the
6
+ * GENERAL case: an agent attaches arbitrary buttons to an outbound message (via
7
+ * the `message_action` `buttons` kind), and the press routes back through the
8
+ * inbound pipeline as a normal turn so the agent can react.
9
+ *
10
+ * A general button's `callback_data` is NOT an approval codec payload — it's a
11
+ * short app-defined token. To keep general presses cleanly separable from
12
+ * approval presses (which the pipeline consumes FIRST), every general payload is
13
+ * namespaced with the {@link GENERAL_CALLBACK_PREFIX}. The pipeline strips the
14
+ * prefix and feeds the remaining token to the agent as a synthetic inbound.
15
+ *
16
+ * SAFETY: Telegram caps `callback_data` at 64 UTF-8 bytes and forbids control
17
+ * bytes; we reuse `sanitizeTelegramCallbackData` and DROP any button whose data
18
+ * doesn't fit the budget after prefixing (rather than ship a truncated token
19
+ * that decodes to the wrong action).
20
+ */
21
+ import { GENERAL_CALLBACK_PREFIX } from "../general-callback.js";
22
+ import { sanitizeTelegramCallbackData, TELEGRAM_CALLBACK_DATA_MAX_BYTES, TELEGRAM_INTERACTIVE_ROW_SIZE, } from "./approval-native.js";
23
+ /**
24
+ * Build a general inline keyboard from a grid of button specs. Each button's
25
+ * `data` is prefixed + sanitized; a button whose prefixed data exceeds the
26
+ * 64-byte budget OR whose label is empty is DROPPED. Returns `null` when no
27
+ * usable button remains (the caller then sends a plain message instead).
28
+ */
29
+ export function buildTelegramInlineKeyboard(grid) {
30
+ const rows = [];
31
+ for (const specRow of grid) {
32
+ const row = [];
33
+ for (const spec of specRow) {
34
+ const label = (spec?.text ?? "").trim();
35
+ const token = spec?.data ?? "";
36
+ if (!label || !token)
37
+ continue;
38
+ const prefixed = `${GENERAL_CALLBACK_PREFIX}${token}`;
39
+ // Reject (don't truncate) a token that won't fit — a truncated token
40
+ // would decode to the wrong action on press.
41
+ if (Buffer.byteLength(prefixed, "utf8") > TELEGRAM_CALLBACK_DATA_MAX_BYTES)
42
+ continue;
43
+ row.push({ text: label, callback_data: sanitizeTelegramCallbackData(prefixed) });
44
+ }
45
+ if (row.length > 0)
46
+ rows.push(row);
47
+ }
48
+ if (rows.length === 0)
49
+ return null;
50
+ // Re-flow into capped rows in case the agent supplied one long row.
51
+ const flat = rows.flat();
52
+ const reflowed = [];
53
+ const allSingleRows = rows.every((r) => r.length === 1);
54
+ if (allSingleRows && flat.length > TELEGRAM_INTERACTIVE_ROW_SIZE) {
55
+ for (let i = 0; i < flat.length; i += TELEGRAM_INTERACTIVE_ROW_SIZE) {
56
+ reflowed.push(flat.slice(i, i + TELEGRAM_INTERACTIVE_ROW_SIZE));
57
+ }
58
+ return { inline_keyboard: reflowed };
59
+ }
60
+ return { inline_keyboard: rows };
61
+ }
62
+ //# sourceMappingURL=inline-keyboard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inline-keyboard.js","sourceRoot":"","sources":["../../../../src/agents/channels/telegram/inline-keyboard.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,EACN,4BAA4B,EAC5B,gCAAgC,EAChC,6BAA6B,GAG7B,MAAM,sBAAsB,CAAC;AAU9B;;;;;GAKG;AACH,MAAM,UAAU,2BAA2B,CAC1C,IAAiC;IAEjC,MAAM,IAAI,GAA6B,EAAE,CAAC;IAC1C,KAAK,MAAM,OAAO,IAAI,IAAI,EAAE,CAAC;QAC5B,MAAM,GAAG,GAA2B,EAAE,CAAC;QACvC,KAAK,MAAM,IAAI,IAAI,OAAO,EAAE,CAAC;YAC5B,MAAM,KAAK,GAAG,CAAC,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;YACxC,MAAM,KAAK,GAAG,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC;YAC/B,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK;gBAAE,SAAS;YAC/B,MAAM,QAAQ,GAAG,GAAG,uBAAuB,GAAG,KAAK,EAAE,CAAC;YACtD,qEAAqE;YACrE,6CAA6C;YAC7C,IAAI,MAAM,CAAC,UAAU,CAAC,QAAQ,EAAE,MAAM,CAAC,GAAG,gCAAgC;gBAAE,SAAS;YACrF,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,aAAa,EAAE,4BAA4B,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QAClF,CAAC;QACD,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC;YAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACpC,CAAC;IACD,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACnC,oEAAoE;IACpE,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;IACzB,MAAM,QAAQ,GAA6B,EAAE,CAAC;IAC9C,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC;IACxD,IAAI,aAAa,IAAI,IAAI,CAAC,MAAM,GAAG,6BAA6B,EAAE,CAAC;QAClE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,6BAA6B,EAAE,CAAC;YACrE,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,6BAA6B,CAAC,CAAC,CAAC;QACjE,CAAC;QACD,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,CAAC;IACtC,CAAC;IACD,OAAO,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC;AAClC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../../../src/agents/channels/telegram/plugin.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAO9D,OAAO,EAON,KAAK,cAAc,EAQnB,KAAK,qBAAqB,EAC1B,KAAK,aAAa,EAKlB,KAAK,iBAAiB,EACtB,MAAM,WAAW,CAAC;AACnB,OAAO,EAON,KAAK,uBAAuB,EAC5B,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EAAiB,KAAK,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAsBrE,0EAA0E;AAC1E,MAAM,WAAW,kBAAkB;IAClC,qDAAqD;IACrD,cAAc,EAAE,MAAM,CAAC;IACvB,yEAAyE;IACzE,UAAU,EAAE,MAAM,aAAa,CAAC;IAChC,mEAAmE;IACnE,OAAO,EAAE,iBAAiB,CAAC,SAAS,CAAC,CAAC;IACtC;;;;OAIG;IACH,cAAc,CAAC,EAAE,CAAC,IAAI,EAAE;QACvB,SAAS,EAAE,MAAM,CAAC;QAClB,WAAW,EAAE,KAAK,CAAC;YAAE,OAAO,EAAE,MAAM,CAAC;YAAC,WAAW,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;QAC7D,eAAe,EAAE,OAAO,CAAC;KACzB,KAAK,cAAc,CAAC;CACrB;AAED,+EAA+E;AAC/E,MAAM,WAAW,yBAAyB;IACzC,qCAAqC;IACrC,iBAAiB,IAAI,MAAM,EAAE,CAAC;IAC9B,qFAAqF;IACrF,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS,CAAC;IAC1D,gEAAgE;IAChE,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,aAAa,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;CAClF;AAED,+EAA+E;AAC/E,MAAM,MAAM,oBAAoB,GAAG,aAAa,CAAC,uBAAuB,CAAC,GAAG,yBAAyB,CAAC;AAqBtG,qFAAqF;AACrF,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,kBAAkB,GAAG,oBAAoB,CAmOnF;AAeD,yEAAyE;AACzE,MAAM,MAAM,sBAAsB,GAAG,qBAAqB,CAAC"}
1
+ {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../../../src/agents/channels/telegram/plugin.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAO9D,OAAO,EAON,KAAK,cAAc,EAOnB,KAAK,qBAAqB,EAC1B,KAAK,aAAa,EAKlB,KAAK,iBAAiB,EAEtB,MAAM,WAAW,CAAC;AACnB,OAAO,EAON,KAAK,uBAAuB,EAC5B,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EAAiB,KAAK,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAkBrE,0EAA0E;AAC1E,MAAM,WAAW,kBAAkB;IAClC,qDAAqD;IACrD,cAAc,EAAE,MAAM,CAAC;IACvB,yEAAyE;IACzE,UAAU,EAAE,MAAM,aAAa,CAAC;IAChC,mEAAmE;IACnE,OAAO,EAAE,iBAAiB,CAAC,SAAS,CAAC,CAAC;IACtC;;;;OAIG;IACH,cAAc,CAAC,EAAE,CAAC,IAAI,EAAE;QACvB,SAAS,EAAE,MAAM,CAAC;QAClB,WAAW,EAAE,KAAK,CAAC;YAAE,OAAO,EAAE,MAAM,CAAC;YAAC,WAAW,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;QAC7D,eAAe,EAAE,OAAO,CAAC;KACzB,KAAK,cAAc,CAAC;CACrB;AAED,+EAA+E;AAC/E,MAAM,WAAW,yBAAyB;IACzC,qCAAqC;IACrC,iBAAiB,IAAI,MAAM,EAAE,CAAC;IAC9B,qFAAqF;IACrF,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS,CAAC;IAC1D,gEAAgE;IAChE,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,aAAa,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;CAClF;AAED,+EAA+E;AAC/E,MAAM,MAAM,oBAAoB,GAAG,aAAa,CAAC,uBAAuB,CAAC,GAAG,yBAAyB,CAAC;AAqBtG,qFAAqF;AACrF,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,kBAAkB,GAAG,oBAAoB,CAmOnF;AAeD,yEAAyE;AACzE,MAAM,MAAM,sBAAsB,GAAG,qBAAqB,CAAC"}
@@ -38,22 +38,18 @@
38
38
  // channel authors entirely from here; nothing reaches past `../sdk.js` into
39
39
  // `../types.*`, `../inbound-pipeline`, `../approval-router`, `../manager`, or
40
40
  // `../../extensions/`.
41
- import { buildBundledCommands, createInboundPipelineContext, createSubsystemLogger, registerChannelApprovalDispatcher, removeChannelApprovalDispatcher, runChannelInboundPipeline, } from "../sdk.js";
41
+ import { buildBundledCommands, createInboundPipelineContext, createSubsystemLogger, registerChannelApprovalDispatcher, removeChannelApprovalDispatcher, runChannelInboundPipeline, TELEGRAM_CHANNEL_META, } from "../sdk.js";
42
42
  import { listTelegramAccountIds, resolveTelegramAccount, resolveTelegramBotToken, telegramAutoLabelTopics, TELEGRAM_CHANNEL_ID, TELEGRAM_DEFAULT_ACCOUNT_ID, } from "./account-config.js";
43
43
  import { createTelegramAdapter, TELEGRAM_CAPABILITIES } from "./adapter.js";
44
44
  import { buildTelegramCommandMenu } from "./command-menu.js";
45
45
  import { probeTelegram } from "./probe.js";
46
46
  const log = createSubsystemLogger("channels/telegram/plugin");
47
- const TELEGRAM_META = {
48
- id: TELEGRAM_CHANNEL_ID,
49
- label: "Telegram",
50
- selectionLabel: "Telegram",
51
- docsPath: "channels/telegram",
52
- blurb: "Paste a @BotFather token, DM/group chat over a Telegram bot.",
53
- order: 20,
54
- exposure: "public",
55
- markdownCapable: true,
56
- };
47
+ // Single source of truth for the channel's user-facing metadata lives in the
48
+ // import-light `bundled-channel-metas` module (re-exported via the SDK barrel),
49
+ // so the registry / markdown gate can read it without loading this adapter.
50
+ // `TELEGRAM_CHANNEL_META.id` is the same canonical `"telegram"` string as
51
+ // `TELEGRAM_CHANNEL_ID`.
52
+ const TELEGRAM_META = TELEGRAM_CHANNEL_META;
57
53
  /** Build the per-account approval capability — the native button prompt + approver gate. */
58
54
  function buildApprovalCapability(adapter, accountId) {
59
55
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"plugin.js","sourceRoot":"","sources":["../../../../src/agents/channels/telegram/plugin.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"plugin.js","sourceRoot":"","sources":["../../../../src/agents/channels/telegram/plugin.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,41 @@
1
+ /**
2
+ * Telegram reasoning-lane split (OPTIONAL, default OFF).
3
+ *
4
+ * Brigade strips `<think>…</think>` reasoning from every channel reply via the
5
+ * shared `sanitizeReplyForChannel` — recipients see only the final answer. For
6
+ * Telegram an operator can OPT IN (config `channels.telegram.surfaceReasoning:
7
+ * true`) to ALSO receive the reasoning trace as a separate, prefixed message.
8
+ *
9
+ * This module is the pure splitter: given the raw agent reply, it returns
10
+ * `{ reasoningText?, answerText }`. When surfacing is OFF the pipeline never
11
+ * calls this and behavior is byte-identical to today (strip + send answer).
12
+ * When ON, the pipeline sends `reasoningText` first (a `🧠 Reasoning:` block)
13
+ * then the normal sanitized answer.
14
+ *
15
+ * The answer half is computed with the SAME sanitizer the default path uses, so
16
+ * enabling reasoning never changes what the answer message contains — it only
17
+ * ADDS the reasoning message in front.
18
+ *
19
+ * Pure / deterministic / dependency-light (re-uses `sanitizeReplyForChannel`).
20
+ */
21
+ /** Prefix on the reasoning message so the recipient knows it's the trace. */
22
+ export declare const REASONING_PREFIX = "\uD83E\uDDE0 Reasoning:\n";
23
+ export interface TelegramReasoningSplit {
24
+ /** The extracted reasoning trace (already prefixed), or undefined when none. */
25
+ reasoningText?: string;
26
+ /** The user-facing answer (sanitized exactly as the default path produces). */
27
+ answerText: string;
28
+ }
29
+ /**
30
+ * Extract the concatenated text INSIDE `<think>…</think>` blocks. Handles
31
+ * multiple blocks and an unclosed trailing block (model truncated mid-thought).
32
+ * Returns "" when there's no reasoning content.
33
+ */
34
+ export declare function extractReasoning(text: string): string;
35
+ /**
36
+ * Split a raw agent reply into an optional reasoning message + the sanitized
37
+ * answer. The answer is identical to `sanitizeReplyForChannel(raw)`; the
38
+ * reasoning is only populated when a `<think>` block carried content.
39
+ */
40
+ export declare function splitTelegramReasoning(raw: string): TelegramReasoningSplit;
41
+ //# sourceMappingURL=reasoning-lane.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reasoning-lane.d.ts","sourceRoot":"","sources":["../../../../src/agents/channels/telegram/reasoning-lane.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAIH,6EAA6E;AAC7E,eAAO,MAAM,gBAAgB,8BAAoB,CAAC;AAKlD,MAAM,WAAW,sBAAsB;IACtC,gFAAgF;IAChF,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,+EAA+E;IAC/E,UAAU,EAAE,MAAM,CAAC;CACnB;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAoBrD;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,MAAM,GAAG,sBAAsB,CAK1E"}