@spinabot/brigade 1.6.1 → 1.7.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 (133) hide show
  1. package/dist/agents/channels/discord/account-config.d.ts +60 -0
  2. package/dist/agents/channels/discord/account-config.d.ts.map +1 -1
  3. package/dist/agents/channels/discord/account-config.js +89 -0
  4. package/dist/agents/channels/discord/account-config.js.map +1 -1
  5. package/dist/agents/channels/discord/adapter.d.ts +24 -1
  6. package/dist/agents/channels/discord/adapter.d.ts.map +1 -1
  7. package/dist/agents/channels/discord/adapter.js +208 -41
  8. package/dist/agents/channels/discord/adapter.js.map +1 -1
  9. package/dist/agents/channels/discord/component-blocks.d.ts +108 -0
  10. package/dist/agents/channels/discord/component-blocks.d.ts.map +1 -0
  11. package/dist/agents/channels/discord/component-blocks.js +113 -0
  12. package/dist/agents/channels/discord/component-blocks.js.map +1 -0
  13. package/dist/agents/channels/discord/components.d.ts +78 -0
  14. package/dist/agents/channels/discord/components.d.ts.map +1 -1
  15. package/dist/agents/channels/discord/components.js +89 -0
  16. package/dist/agents/channels/discord/components.js.map +1 -1
  17. package/dist/agents/channels/discord/connection.d.ts +195 -12
  18. package/dist/agents/channels/discord/connection.d.ts.map +1 -1
  19. package/dist/agents/channels/discord/connection.js +852 -38
  20. package/dist/agents/channels/discord/connection.js.map +1 -1
  21. package/dist/agents/channels/discord/directory-cache.d.ts +47 -0
  22. package/dist/agents/channels/discord/directory-cache.d.ts.map +1 -0
  23. package/dist/agents/channels/discord/directory-cache.js +131 -0
  24. package/dist/agents/channels/discord/directory-cache.js.map +1 -0
  25. package/dist/agents/channels/discord/directory-live.d.ts +61 -0
  26. package/dist/agents/channels/discord/directory-live.d.ts.map +1 -0
  27. package/dist/agents/channels/discord/directory-live.js +140 -0
  28. package/dist/agents/channels/discord/directory-live.js.map +1 -0
  29. package/dist/agents/channels/discord/format.d.ts +15 -0
  30. package/dist/agents/channels/discord/format.d.ts.map +1 -1
  31. package/dist/agents/channels/discord/format.js +56 -0
  32. package/dist/agents/channels/discord/format.js.map +1 -1
  33. package/dist/agents/channels/discord/guilds.d.ts +25 -0
  34. package/dist/agents/channels/discord/guilds.d.ts.map +1 -0
  35. package/dist/agents/channels/discord/guilds.js +46 -0
  36. package/dist/agents/channels/discord/guilds.js.map +1 -0
  37. package/dist/agents/channels/discord/inbound-extras.d.ts +166 -9
  38. package/dist/agents/channels/discord/inbound-extras.d.ts.map +1 -1
  39. package/dist/agents/channels/discord/inbound-extras.js +246 -8
  40. package/dist/agents/channels/discord/inbound-extras.js.map +1 -1
  41. package/dist/agents/channels/discord/index.d.ts +10 -3
  42. package/dist/agents/channels/discord/index.d.ts.map +1 -1
  43. package/dist/agents/channels/discord/index.js +10 -3
  44. package/dist/agents/channels/discord/index.js.map +1 -1
  45. package/dist/agents/channels/discord/modal-registry.d.ts +89 -0
  46. package/dist/agents/channels/discord/modal-registry.d.ts.map +1 -0
  47. package/dist/agents/channels/discord/modal-registry.js +104 -0
  48. package/dist/agents/channels/discord/modal-registry.js.map +1 -0
  49. package/dist/agents/channels/discord/modals.d.ts +100 -0
  50. package/dist/agents/channels/discord/modals.d.ts.map +1 -0
  51. package/dist/agents/channels/discord/modals.js +124 -0
  52. package/dist/agents/channels/discord/modals.js.map +1 -0
  53. package/dist/agents/channels/discord/permission-audit.d.ts +43 -0
  54. package/dist/agents/channels/discord/permission-audit.d.ts.map +1 -0
  55. package/dist/agents/channels/discord/permission-audit.js +192 -0
  56. package/dist/agents/channels/discord/permission-audit.js.map +1 -0
  57. package/dist/agents/channels/discord/plugin.d.ts +18 -2
  58. package/dist/agents/channels/discord/plugin.d.ts.map +1 -1
  59. package/dist/agents/channels/discord/plugin.js +73 -4
  60. package/dist/agents/channels/discord/plugin.js.map +1 -1
  61. package/dist/agents/channels/discord/probe.d.ts +23 -1
  62. package/dist/agents/channels/discord/probe.d.ts.map +1 -1
  63. package/dist/agents/channels/discord/probe.js +40 -5
  64. package/dist/agents/channels/discord/probe.js.map +1 -1
  65. package/dist/agents/channels/discord/rest-actions.d.ts +346 -0
  66. package/dist/agents/channels/discord/rest-actions.d.ts.map +1 -0
  67. package/dist/agents/channels/discord/rest-actions.js +559 -0
  68. package/dist/agents/channels/discord/rest-actions.js.map +1 -0
  69. package/dist/agents/channels/discord/rest-components.d.ts +122 -0
  70. package/dist/agents/channels/discord/rest-components.d.ts.map +1 -0
  71. package/dist/agents/channels/discord/rest-components.js +243 -0
  72. package/dist/agents/channels/discord/rest-components.js.map +1 -0
  73. package/dist/agents/channels/discord/security-audit.d.ts +29 -0
  74. package/dist/agents/channels/discord/security-audit.d.ts.map +1 -0
  75. package/dist/agents/channels/discord/security-audit.js +94 -0
  76. package/dist/agents/channels/discord/security-audit.js.map +1 -0
  77. package/dist/agents/channels/discord/security-doctor.d.ts +43 -0
  78. package/dist/agents/channels/discord/security-doctor.d.ts.map +1 -0
  79. package/dist/agents/channels/discord/security-doctor.js +83 -0
  80. package/dist/agents/channels/discord/security-doctor.js.map +1 -0
  81. package/dist/agents/channels/discord/status-issues.d.ts +37 -0
  82. package/dist/agents/channels/discord/status-issues.d.ts.map +1 -0
  83. package/dist/agents/channels/discord/status-issues.js +66 -0
  84. package/dist/agents/channels/discord/status-issues.js.map +1 -0
  85. package/dist/agents/channels/discord/subagent-thread-binding-store.d.ts +57 -0
  86. package/dist/agents/channels/discord/subagent-thread-binding-store.d.ts.map +1 -0
  87. package/dist/agents/channels/discord/subagent-thread-binding-store.js +98 -0
  88. package/dist/agents/channels/discord/subagent-thread-binding-store.js.map +1 -0
  89. package/dist/agents/channels/discord/subagent-thread-binding.d.ts +95 -0
  90. package/dist/agents/channels/discord/subagent-thread-binding.d.ts.map +1 -0
  91. package/dist/agents/channels/discord/subagent-thread-binding.js +208 -0
  92. package/dist/agents/channels/discord/subagent-thread-binding.js.map +1 -0
  93. package/dist/agents/channels/discord/system-events.d.ts +31 -0
  94. package/dist/agents/channels/discord/system-events.d.ts.map +1 -0
  95. package/dist/agents/channels/discord/system-events.js +74 -0
  96. package/dist/agents/channels/discord/system-events.js.map +1 -0
  97. package/dist/agents/channels/general-callback.d.ts +12 -0
  98. package/dist/agents/channels/general-callback.d.ts.map +1 -1
  99. package/dist/agents/channels/general-callback.js +18 -0
  100. package/dist/agents/channels/general-callback.js.map +1 -1
  101. package/dist/agents/channels/inbound-pipeline.d.ts.map +1 -1
  102. package/dist/agents/channels/inbound-pipeline.js +5 -3
  103. package/dist/agents/channels/inbound-pipeline.js.map +1 -1
  104. package/dist/agents/extensions/types.d.ts +7 -0
  105. package/dist/agents/extensions/types.d.ts.map +1 -1
  106. package/dist/agents/extensions/types.js.map +1 -1
  107. package/dist/agents/subagent-announce-delivery.d.ts +10 -0
  108. package/dist/agents/subagent-announce-delivery.d.ts.map +1 -1
  109. package/dist/agents/subagent-announce-delivery.js +1 -0
  110. package/dist/agents/subagent-announce-delivery.js.map +1 -1
  111. package/dist/agents/subagent-completion-bridge.d.ts.map +1 -1
  112. package/dist/agents/subagent-completion-bridge.js +81 -0
  113. package/dist/agents/subagent-completion-bridge.js.map +1 -1
  114. package/dist/agents/subagent-spawn.d.ts.map +1 -1
  115. package/dist/agents/subagent-spawn.js +57 -4
  116. package/dist/agents/subagent-spawn.js.map +1 -1
  117. package/dist/agents/tools/discord-action-tool.d.ts +224 -0
  118. package/dist/agents/tools/discord-action-tool.d.ts.map +1 -0
  119. package/dist/agents/tools/discord-action-tool.js +848 -0
  120. package/dist/agents/tools/discord-action-tool.js.map +1 -0
  121. package/dist/agents/tools/registry.d.ts.map +1 -1
  122. package/dist/agents/tools/registry.js +21 -0
  123. package/dist/agents/tools/registry.js.map +1 -1
  124. package/dist/agents/tools/sessions/index.d.ts +8 -0
  125. package/dist/agents/tools/sessions/index.d.ts.map +1 -1
  126. package/dist/agents/tools/sessions/index.js +15 -3
  127. package/dist/agents/tools/sessions/index.js.map +1 -1
  128. package/dist/buildstamp.json +1 -1
  129. package/dist/cli/commands/channels.d.ts +2 -0
  130. package/dist/cli/commands/channels.d.ts.map +1 -1
  131. package/dist/cli/commands/channels.js +58 -1
  132. package/dist/cli/commands/channels.js.map +1 -1
  133. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"format.d.ts","sourceRoot":"","sources":["../../../../src/agents/channels/discord/format.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AAEH,gFAAgF;AAChF,eAAO,MAAM,qBAAqB,OAAO,CAAC;AAmI1C;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CA4C1D;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAWxD"}
1
+ {"version":3,"file":"format.d.ts","sourceRoot":"","sources":["../../../../src/agents/channels/discord/format.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AAEH,gFAAgF;AAChF,eAAO,MAAM,qBAAqB,OAAO,CAAC;AAmI1C;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CA4C1D;AAqBD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,GAAG,MAAM,CAuB1G;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAWxD"}
@@ -225,6 +225,62 @@ export function markdownToDiscord(markdown) {
225
225
  }
226
226
  return out.join("\n");
227
227
  }
228
+ /**
229
+ * Code-span matcher: a fenced ```…``` block OR an inline `…` span. Used by
230
+ * {@link rewriteKnownMentions} to SKIP rewriting handles that live inside code
231
+ * (where an `@alex` is verbatim text, not a mention the author wants pinged).
232
+ */
233
+ const CODE_SEGMENT_PATTERN = /```[\s\S]*?```|`[^`\n]*`/g;
234
+ /**
235
+ * A plain `@handle` candidate OUTSIDE a code span. Group 1 is the preceding
236
+ * boundary char (start-of-string or a separator) so we never match an `@` glued
237
+ * to a word (an email's `@`, or a `<@id>` token's `@`); group 2 is the handle
238
+ * body (Discord usernames: letters/digits/underscore/dot/hyphen, 2–32 chars,
239
+ * with an optional legacy `#1234` discriminator).
240
+ */
241
+ const MENTION_CANDIDATE_PATTERN = /(^|[\s([{"'.,;:!?])@([a-z0-9_.-]{2,32}(?:#[0-9]{4})?)/gi;
242
+ /** Discord resolves these itself — never rewrite them to a user token. */
243
+ const RESERVED_MENTIONS = new Set(["everyone", "here"]);
244
+ /**
245
+ * Rewrite a plain `@handle` to its `<@id>` mention token — but ONLY when
246
+ * `resolve(handle)` returns a known user id. An unknown handle stays literal
247
+ * (we never invent a ping). Skips:
248
+ * - code spans / fenced blocks (an `@alex` there is verbatim, not a mention);
249
+ * - `@everyone` / `@here` (Discord-reserved, and `<@…>`-safe-mentions never
250
+ * parse "everyone" anyway);
251
+ * - a handle already sitting inside a `<@…>` token (the boundary group means
252
+ * the `@` after `<` is never a candidate start).
253
+ *
254
+ * Called by the adapter BEFORE `markdownToDiscord` so a freshly-minted `<@id>`
255
+ * passes through the converter as a verbatim mention token. Pure over its
256
+ * `resolve` argument — the resolver carries the account-scoped directory cache.
257
+ */
258
+ export function rewriteKnownMentions(text, resolve) {
259
+ if (!text || !text.includes("@"))
260
+ return text;
261
+ const rewriteOutsideCode = (segment) => segment.replace(MENTION_CANDIDATE_PATTERN, (match, boundary, handle) => {
262
+ const lookup = handle.toLowerCase();
263
+ if (RESERVED_MENTIONS.has(lookup.replace(/#[0-9]{4}$/, "")))
264
+ return match;
265
+ const id = resolve(handle);
266
+ if (!id || !/^\d+$/.test(id))
267
+ return match;
268
+ return `${boundary}<@${id}>`;
269
+ });
270
+ // Walk the string, leaving every code segment untouched and rewriting the
271
+ // gaps between them.
272
+ let out = "";
273
+ let offset = 0;
274
+ CODE_SEGMENT_PATTERN.lastIndex = 0;
275
+ for (const m of text.matchAll(CODE_SEGMENT_PATTERN)) {
276
+ const idx = m.index ?? 0;
277
+ out += rewriteOutsideCode(text.slice(offset, idx));
278
+ out += m[0];
279
+ offset = idx + m[0].length;
280
+ }
281
+ out += rewriteOutsideCode(text.slice(offset));
282
+ return out;
283
+ }
228
284
  /**
229
285
  * True when the rendered Discord text carries no visible content — only
230
286
  * whitespace and/or markdown markers. Discord rejects an empty message body, so
@@ -1 +1 @@
1
- {"version":3,"file":"format.js","sourceRoot":"","sources":["../../../../src/agents/channels/discord/format.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AAEH,gFAAgF;AAChF,MAAM,CAAC,MAAM,qBAAqB,GAAG,IAAI,CAAC;AAE1C;;;;;;;;;GASG;AACH,SAAS,iBAAiB,CAAC,IAAY,EAAE,KAAa;IACrD,qCAAqC;IACrC,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;IAC3C,IAAI,KAAK,KAAK,CAAC,CAAC;QAAE,OAAO,CAAC,CAAC;IAC3B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC;IAC3C,6DAA6D;IAC7D,IAAI,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,GAAG,KAAK,GAAG,CAAC,CAAC;IACrD,IAAI,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,GAAG,KAAK,GAAG,CAAC,CAAC;IACpD,IAAI,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,GAAG,KAAK,GAAG,CAAC,CAAC;IACnD,mDAAmD;IACnD,IAAI,6BAA6B,CAAC,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,GAAG,KAAK,GAAG,CAAC,CAAC;IACxE,8BAA8B;IAC9B,IAAI,wBAAwB,CAAC,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,GAAG,KAAK,GAAG,CAAC,CAAC;IACnE,OAAO,CAAC,CAAC;AACV,CAAC;AAED,wEAAwE;AACxE,SAAS,iBAAiB,CAAC,IAAY,EAAE,KAAa;IACrD,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;IAC9C,IAAI,QAAQ,KAAK,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IACjC,IAAI,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,KAAK,GAAG;QAAE,OAAO,IAAI,CAAC;IAC5C,2EAA2E;IAC3E,4EAA4E;IAC5E,2EAA2E;IAC3E,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,IAAI,MAAM,GAAG,CAAC,CAAC,CAAC;IAChB,KAAK,IAAI,CAAC,GAAG,QAAQ,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACjD,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,IAAI,CAAC,KAAK,GAAG;YAAE,KAAK,IAAI,CAAC,CAAC;aACrB,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;YACpB,KAAK,IAAI,CAAC,CAAC;YACX,IAAI,KAAK,KAAK,CAAC,EAAE,CAAC;gBACjB,MAAM,GAAG,CAAC,CAAC;gBACX,MAAM;YACP,CAAC;QACF,CAAC;IACF,CAAC;IACD,IAAI,MAAM,KAAK,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IAC/B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,EAAE,QAAQ,CAAC,CAAC;IAC9C,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;IACpD,8EAA8E;IAC9E,0DAA0D;IAC1D,IAAI,CAAC,8BAA8B,CAAC,IAAI,CAAC,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IAC3D,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IACxB,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,GAAG,CAAC,EAAE,CAAC;AACxC,CAAC;AAED;;;;;;GAMG;AACH,SAAS,iBAAiB,CAAC,IAAY;IACtC,MAAM,GAAG,GAAa,EAAE,CAAC;IACzB,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;IAEtB,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QACd,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACnB,yEAAyE;QACzE,IAAI,EAAE,KAAK,GAAG,EAAE,CAAC;YAChB,sEAAsE;YACtE,yEAAyE;YACzE,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YAC7C,MAAM,KAAK,GAAG,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;YAC/C,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC;YACpD,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC;gBAClB,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;gBAC9C,CAAC,GAAG,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC;gBACzB,SAAS;YACV,CAAC;QACF,CAAC;QACD,4EAA4E;QAC5E,4DAA4D;QAC5D,IAAI,EAAE,KAAK,GAAG,EAAE,CAAC;YAChB,MAAM,GAAG,GAAG,iBAAiB,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;YACvC,IAAI,GAAG,GAAG,CAAC,EAAE,CAAC;gBACb,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;gBACjC,CAAC,IAAI,GAAG,CAAC;gBACT,SAAS;YACV,CAAC;QACF,CAAC;QACD,uEAAuE;QACvE,6EAA6E;QAC7E,IAAI,EAAE,KAAK,GAAG,EAAE,CAAC;YAChB,MAAM,IAAI,GAAG,iBAAiB,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;YACxC,IAAI,IAAI,EAAE,CAAC;gBACV,gEAAgE;gBAChE,0DAA0D;gBAC1D,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC;gBAC7E,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC;gBACb,SAAS;YACV,CAAC;QACF,CAAC;QACD,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;QACnB,CAAC,IAAI,CAAC,CAAC;IACR,CAAC;IACD,OAAO,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACrB,CAAC;AAED,sEAAsE;AACtE,SAAS,gBAAgB,CAAC,KAAe;IACxC,MAAM,IAAI,GAAa,EAAE,CAAC;IAC1B,KAAK,MAAM,GAAG,IAAI,KAAK,EAAE,CAAC;QACzB,6CAA6C;QAC7C,IAAI,wBAAwB,CAAC,IAAI,CAAC,GAAG,CAAC;YAAE,SAAS;QACjD,MAAM,KAAK,GAAG,GAAG;aACf,IAAI,EAAE;aACN,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC;aACvB,KAAK,CAAC,GAAG,CAAC;aACV,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;aACpB,MAAM,CAAC,OAAO,CAAC,CAAC;QAClB,IAAI,KAAK,CAAC,MAAM;YAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IACjF,CAAC;IACD,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACxB,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,iBAAiB,CAAC,QAAgB;IACjD,IAAI,CAAC,QAAQ;QAAE,OAAO,EAAE,CAAC;IACzB,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACnC,MAAM,GAAG,GAAa,EAAE,CAAC;IACzB,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,MAAM,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC;IAEvB,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QACd,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAE5B,8EAA8E;QAC9E,uEAAuE;QACvE,MAAM,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACvC,IAAI,SAAS,EAAE,CAAC;YACf,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACf,CAAC,IAAI,CAAC,CAAC;YACP,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;gBACd,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;gBAC7B,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBAChB,CAAC,IAAI,CAAC,CAAC;gBACP,IAAI,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC;oBAAE,MAAM;YACtC,CAAC;YACD,SAAS;QACV,CAAC;QAED,6EAA6E;QAC7E,2EAA2E;QAC3E,IAAI,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YACjC,MAAM,KAAK,GAAG,CAAC,CAAC;YAChB,OAAO,CAAC,GAAG,CAAC,IAAI,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;gBAAE,CAAC,IAAI,CAAC,CAAC;YAC9D,IAAI,CAAC,GAAG,KAAK,IAAI,CAAC,EAAE,CAAC;gBACpB,GAAG,CAAC,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;gBAClD,SAAS;YACV,CAAC;YACD,CAAC,GAAG,KAAK,CAAC;QACX,CAAC;QAED,yEAAyE;QACzE,yEAAyE;QACzE,GAAG,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC;QAClC,CAAC,IAAI,CAAC,CAAC;IACR,CAAC;IAED,OAAO,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACvB,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,kBAAkB,CAAC,IAAY;IAC9C,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC;IACvB,MAAM,QAAQ,GAAG,IAAI;QACpB,mDAAmD;SAClD,OAAO,CAAC,yBAAyB,EAAE,GAAG,CAAC;SACvC,OAAO,CAAC,cAAc,EAAE,GAAG,CAAC;SAC5B,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC;SACvB,OAAO,CAAC,yBAAyB,EAAE,GAAG,CAAC;SACvC,OAAO,CAAC,iBAAiB,EAAE,EAAE,CAAC;SAC9B,IAAI,EAAE,CAAC;IACT,OAAO,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC;AAC9B,CAAC"}
1
+ {"version":3,"file":"format.js","sourceRoot":"","sources":["../../../../src/agents/channels/discord/format.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ /**
2
+ * Discord guild listing — the cheap `GET /users/@me/guilds` call the directory
3
+ * + diagnostics build on.
4
+ *
5
+ * Like `probe.ts` this is a SELF-CONTAINED REST call (no `discord.js`, no
6
+ * Gateway socket): a single authenticated GET that returns the bot's joined
7
+ * guilds. The directory walks these to enumerate members + channels; the
8
+ * permission audit doesn't need them but other diagnostics might. Injectable
9
+ * fetch (tests stub it); never throws — a failed call returns `[]`.
10
+ */
11
+ /** One guild the bot belongs to (the subset callers read). */
12
+ export interface DiscordGuildSummary {
13
+ /** Guild (server) id (snowflake). */
14
+ id: string;
15
+ /** Guild name. */
16
+ name: string;
17
+ }
18
+ /**
19
+ * List the guilds the bot is a member of via `GET /users/@me/guilds`. Returns
20
+ * `{ id, name }` rows, skipping malformed entries. Best-effort: a network error
21
+ * / non-ok / unparseable body returns `[]` (the caller degrades gracefully).
22
+ * The token rides in the `Authorization: Bot <token>` header; never logged.
23
+ */
24
+ export declare function listDiscordGuilds(token: string, fetchImpl?: typeof fetch): Promise<DiscordGuildSummary[]>;
25
+ //# sourceMappingURL=guilds.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"guilds.d.ts","sourceRoot":"","sources":["../../../../src/agents/channels/discord/guilds.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAIH,8DAA8D;AAC9D,MAAM,WAAW,mBAAmB;IACnC,qCAAqC;IACrC,EAAE,EAAE,MAAM,CAAC;IACX,kBAAkB;IAClB,IAAI,EAAE,MAAM,CAAC;CACb;AAED;;;;;GAKG;AACH,wBAAsB,iBAAiB,CACtC,KAAK,EAAE,MAAM,EACb,SAAS,GAAE,OAAO,KAAa,GAC7B,OAAO,CAAC,mBAAmB,EAAE,CAAC,CAsBhC"}
@@ -0,0 +1,46 @@
1
+ /**
2
+ * Discord guild listing — the cheap `GET /users/@me/guilds` call the directory
3
+ * + diagnostics build on.
4
+ *
5
+ * Like `probe.ts` this is a SELF-CONTAINED REST call (no `discord.js`, no
6
+ * Gateway socket): a single authenticated GET that returns the bot's joined
7
+ * guilds. The directory walks these to enumerate members + channels; the
8
+ * permission audit doesn't need them but other diagnostics might. Injectable
9
+ * fetch (tests stub it); never throws — a failed call returns `[]`.
10
+ */
11
+ const DISCORD_API_BASE = "https://discord.com/api/v10";
12
+ /**
13
+ * List the guilds the bot is a member of via `GET /users/@me/guilds`. Returns
14
+ * `{ id, name }` rows, skipping malformed entries. Best-effort: a network error
15
+ * / non-ok / unparseable body returns `[]` (the caller degrades gracefully).
16
+ * The token rides in the `Authorization: Bot <token>` header; never logged.
17
+ */
18
+ export async function listDiscordGuilds(token, fetchImpl = fetch) {
19
+ const clean = (token ?? "").trim();
20
+ if (!clean)
21
+ return [];
22
+ try {
23
+ const res = await fetchImpl(`${DISCORD_API_BASE}/users/@me/guilds`, {
24
+ method: "GET",
25
+ headers: { Authorization: `Bot ${clean}`, "content-type": "application/json" },
26
+ });
27
+ if (!res.ok)
28
+ return [];
29
+ const body = (await res.json());
30
+ if (!Array.isArray(body))
31
+ return [];
32
+ const out = [];
33
+ for (const g of body) {
34
+ const id = typeof g?.id === "string" ? g.id.trim() : "";
35
+ const name = typeof g?.name === "string" ? g.name.trim() : "";
36
+ if (!id || !name)
37
+ continue;
38
+ out.push({ id, name });
39
+ }
40
+ return out;
41
+ }
42
+ catch {
43
+ return [];
44
+ }
45
+ }
46
+ //# sourceMappingURL=guilds.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"guilds.js","sourceRoot":"","sources":["../../../../src/agents/channels/discord/guilds.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,MAAM,gBAAgB,GAAG,6BAA6B,CAAC;AAUvD;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACtC,KAAa,EACb,YAA0B,KAAK;IAE/B,MAAM,KAAK,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IACnC,IAAI,CAAC,KAAK;QAAE,OAAO,EAAE,CAAC;IACtB,IAAI,CAAC;QACJ,MAAM,GAAG,GAAG,MAAM,SAAS,CAAC,GAAG,gBAAgB,mBAAmB,EAAE;YACnE,MAAM,EAAE,KAAK;YACb,OAAO,EAAE,EAAE,aAAa,EAAE,OAAO,KAAK,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;SAC9E,CAAC,CAAC;QACH,IAAI,CAAC,GAAG,CAAC,EAAE;YAAE,OAAO,EAAE,CAAC;QACvB,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAA4C,CAAC;QAC3E,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;YAAE,OAAO,EAAE,CAAC;QACpC,MAAM,GAAG,GAA0B,EAAE,CAAC;QACtC,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;YACtB,MAAM,EAAE,GAAG,OAAO,CAAC,EAAE,EAAE,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACxD,MAAM,IAAI,GAAG,OAAO,CAAC,EAAE,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC9D,IAAI,CAAC,EAAE,IAAI,CAAC,IAAI;gBAAE,SAAS;YAC3B,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;QACxB,CAAC;QACD,OAAO,GAAG,CAAC;IACZ,CAAC;IAAC,MAAM,CAAC;QACR,OAAO,EAAE,CAAC;IACX,CAAC;AACF,CAAC"}
@@ -48,6 +48,51 @@ export interface DiscordAttachmentLike {
48
48
  } | number;
49
49
  [key: string]: unknown;
50
50
  }
51
+ /**
52
+ * One sticker item on a message (`message.stickers` collection, or raw
53
+ * `sticker_items`). Discord stickers carry an `id`, a `name`, and a
54
+ * `format` / `format_type` enum (1=PNG, 2=APNG, 3=Lottie, 4=GIF) that selects
55
+ * the CDN extension. We download them from `media.discordapp.net/stickers/<id>`.
56
+ */
57
+ export interface DiscordStickerLike {
58
+ id?: string;
59
+ name?: string | null;
60
+ /** discord.js exposes the enum as `format`; the raw gateway payload as `format_type`. */
61
+ format?: number;
62
+ format_type?: number;
63
+ [key: string]: unknown;
64
+ }
65
+ /** One embed on a message (the subset Brigade folds into the assembled text). */
66
+ export interface DiscordEmbedLike {
67
+ title?: string | null;
68
+ description?: string | null;
69
+ url?: string | null;
70
+ [key: string]: unknown;
71
+ }
72
+ /**
73
+ * A forwarded-message snapshot. Discord delivers a forward as a
74
+ * `message_snapshots` array (raw) / `messageSnapshots` (discord.js Collection),
75
+ * each wrapping a frozen copy of the original under `.message`. The snapshot
76
+ * carries the original's content, embeds, attachments, stickers, and author.
77
+ */
78
+ export interface DiscordSnapshotMessageLike {
79
+ content?: string | null;
80
+ embeds?: DiscordEmbedLike[] | null;
81
+ attachments?: Iterable<DiscordAttachmentLike> | Map<string, DiscordAttachmentLike> | DiscordAttachmentLike[] | null;
82
+ stickers?: Iterable<DiscordStickerLike> | Map<string, DiscordStickerLike> | DiscordStickerLike[] | null;
83
+ sticker_items?: DiscordStickerLike[] | null;
84
+ author?: {
85
+ id?: string | null;
86
+ username?: string | null;
87
+ globalName?: string | null;
88
+ global_name?: string | null;
89
+ } | null;
90
+ [key: string]: unknown;
91
+ }
92
+ export interface DiscordSnapshotLike {
93
+ message?: DiscordSnapshotMessageLike | null;
94
+ [key: string]: unknown;
95
+ }
51
96
  /** A discord.js channel (the subset Brigade reads). `isThread()`/`isDMBased()` may be absent on a fake. */
52
97
  export interface DiscordChannelLike {
53
98
  id?: string;
@@ -57,6 +102,10 @@ export interface DiscordChannelLike {
57
102
  isDMBased?: () => boolean;
58
103
  /** Parent text-channel id when this channel is a thread. */
59
104
  parentId?: string | null;
105
+ /** Fetch a message in this channel by id (reply-parent fallback when `fetchReference` is absent). */
106
+ messages?: {
107
+ fetch?: (id: string) => Promise<DiscordMessageLike | null>;
108
+ };
60
109
  [key: string]: unknown;
61
110
  }
62
111
  /** A discord.js guild (the subset Brigade reads). */
@@ -111,17 +160,55 @@ export interface DiscordMessageLike {
111
160
  createdTimestamp?: number;
112
161
  /** Set when the message was edited (epoch ms), else null. */
113
162
  editedTimestamp?: number | null;
114
- /** Reply pointer — `messageId` is the message being replied to. */
163
+ /**
164
+ * Reply / forward pointer. `messageId` is the referenced message; `type` is the
165
+ * reference KIND — `0` (default / absent) is a reply, `1` is a forward. discord.js
166
+ * also exposes the raw shape as `messageReference` with `type`.
167
+ */
115
168
  reference?: {
116
169
  messageId?: string | null;
117
170
  channelId?: string | null;
118
171
  guildId?: string | null;
172
+ type?: number | null;
173
+ } | null;
174
+ messageReference?: {
175
+ messageId?: string | null;
176
+ type?: number | null;
119
177
  } | null;
178
+ /**
179
+ * The resolved reply-parent message, when discord.js already cached it (it sends
180
+ * the referenced message inline with a Gateway MESSAGE_CREATE for a reply). Lets
181
+ * the reply-context resolve the parent's author SYNCHRONOUSLY — so a guild
182
+ * reply-to-bot is admitted even if the async body-backfill fetch later fails.
183
+ */
184
+ referencedMessage?: DiscordMessageLike | null;
185
+ /** First embed's title/description fold into the assembled text when content is empty. */
186
+ embeds?: DiscordEmbedLike[] | null;
187
+ /** Stickers on the message — a `<sticker: name>` placeholder + a downloaded asset. */
188
+ stickers?: Iterable<DiscordStickerLike> | Map<string, DiscordStickerLike> | DiscordStickerLike[] | null;
189
+ /** Raw gateway shape of the sticker list (fallback when `.stickers` is absent). */
190
+ sticker_items?: DiscordStickerLike[] | null;
191
+ /** Forwarded-message snapshots (discord.js Collection / raw array). */
192
+ messageSnapshots?: Iterable<DiscordSnapshotLike> | Map<string, DiscordSnapshotLike> | DiscordSnapshotLike[] | null;
193
+ message_snapshots?: DiscordSnapshotLike[] | null;
120
194
  attachments?: Iterable<DiscordAttachmentLike> | Map<string, DiscordAttachmentLike> | DiscordAttachmentLike[];
195
+ /**
196
+ * discord.js `MessageType` enum value. `0` = Default, `19` = Reply; anything
197
+ * else is a SYSTEM message (a join / pin / boost / thread-created / …). Absent
198
+ * on a fake → treated as Default.
199
+ */
200
+ type?: number;
121
201
  /** A resolved Collection of mentioned users, or a plain array on a fake. */
122
202
  mentions?: {
123
203
  users?: Iterable<DiscordUserLike> | Map<string, DiscordUserLike> | DiscordUserLike[];
124
204
  };
205
+ /**
206
+ * Re-pull this message from the REST API (used to hydrate a late / proxied
207
+ * empty-content payload). discord.js returns the refreshed Message.
208
+ */
209
+ fetch?: () => Promise<DiscordMessageLike>;
210
+ /** Resolve the message this one replies to (discord.js `Message#fetchReference`). */
211
+ fetchReference?: () => Promise<DiscordMessageLike | null>;
125
212
  [key: string]: unknown;
126
213
  }
127
214
  /**
@@ -145,6 +232,44 @@ export declare function expandDiscordTokens(text: string, resolve?: {
145
232
  * channels / roles / emoji → readable text). Binary blobs are dropped to "".
146
233
  */
147
234
  export declare function extractDiscordText(message: Pick<DiscordMessageLike, "content">, resolve?: Parameters<typeof expandDiscordTokens>[1]): string;
235
+ /**
236
+ * True when the message is a FORWARD (reference kind `1`) rather than a reply
237
+ * (kind `0` / absent). discord.js exposes the kind on `reference.type`; the raw
238
+ * gateway shape carries it on `messageReference.type`. Used so a forward isn't
239
+ * mistaken for a reply by the reply-context resolver.
240
+ */
241
+ export declare function isDiscordForward(message: Pick<DiscordMessageLike, "reference" | "messageReference">): boolean;
242
+ /**
243
+ * The first embed's text folded into a readable run: `title` + `description` +
244
+ * (a bare `url` when neither carries it). Returns "" when the message has no
245
+ * embed text. Pure + deterministic.
246
+ */
247
+ export declare function extractDiscordEmbedText(message: Pick<DiscordMessageLike, "embeds">): string;
248
+ /** The sticker items on a message (the `.stickers` collection, then raw `sticker_items`). */
249
+ export declare function resolveInboundStickers(message: Pick<DiscordMessageLike, "stickers" | "sticker_items">): DiscordStickerLike[];
250
+ /** A `<sticker: name>` placeholder line per sticker, joined by newlines. Returns "" when none. */
251
+ export declare function extractDiscordStickerText(message: Pick<DiscordMessageLike, "stickers" | "sticker_items">): string;
252
+ /** The forwarded-message snapshots on a message (discord.js Collection or raw array). */
253
+ export declare function resolveDiscordSnapshots(message: Pick<DiscordMessageLike, "messageSnapshots" | "message_snapshots">): DiscordSnapshotLike[];
254
+ /**
255
+ * The `[Forwarded from <author>]` block(s) for any forwarded snapshots on the
256
+ * message. Each snapshot becomes a heading + its inner text. A forward whose
257
+ * snapshot has no text still surfaces the heading so the agent learns a forward
258
+ * happened. Returns "" when the message carries no forward snapshots.
259
+ */
260
+ export declare function extractDiscordForwardedText(message: Pick<DiscordMessageLike, "messageSnapshots" | "message_snapshots">, resolve?: Parameters<typeof expandDiscordTokens>[1]): string;
261
+ /**
262
+ * The full agent-facing text Brigade routes for a Discord message. The message
263
+ * `content` leads (token-expanded); when content is empty we FALL BACK to the
264
+ * first embed's title/description so an embed-only message isn't dropped. A
265
+ * `<sticker: name>` placeholder is APPENDED for any stickers, and a
266
+ * `[Forwarded from …]` block is APPENDED for any forwarded snapshots — so a
267
+ * sticker-only or forward-only message carries real text instead of "".
268
+ *
269
+ * Pure + deterministic; the connection passes a `resolve` lookup so mention
270
+ * tokens expand to readable names.
271
+ */
272
+ export declare function assembleDiscordText(message: Pick<DiscordMessageLike, "content" | "embeds" | "stickers" | "sticker_items" | "messageSnapshots" | "message_snapshots">, resolve?: Parameters<typeof expandDiscordTokens>[1]): string;
148
273
  /** True when a discord.js channel is a thread (uses `isThread()` when present, else the type enum). */
149
274
  export declare function isThreadChannel(channel: DiscordChannelLike | undefined | null): boolean;
150
275
  /** True when a discord.js channel is a DM (uses `isDMBased()` when present, else the type enum). */
@@ -166,8 +291,16 @@ export declare function discordThreadId(message: Pick<DiscordMessageLike, "chann
166
291
  * inline that message's text — so the context surfaces the parent message id and
167
292
  * leaves `body` undefined (the connection can fetch the parent if it needs the
168
293
  * excerpt). Returns undefined for a non-reply.
294
+ *
295
+ * When discord.js already resolved the reply parent (`message.referencedMessage`,
296
+ * which rides inline on a Gateway reply MESSAGE_CREATE), the parent's author id is
297
+ * captured SYNCHRONOUSLY into `from`. This matters because the central pipeline's
298
+ * group-addressing `isReplyToBot` depends on `replyTo.from === selfId` — if `from`
299
+ * were populated ONLY by the async body-backfill (connection.ts), a guild
300
+ * reply-to-bot whose backfill fetch failed would lose its implicit-mention
301
+ * admission and be dropped. The async backfill still fills `body` (the excerpt).
169
302
  */
170
- export declare function extractDiscordReplyContext(message: Pick<DiscordMessageLike, "reference">): InboundReplyContext | undefined;
303
+ export declare function extractDiscordReplyContext(message: Pick<DiscordMessageLike, "reference" | "messageReference" | "referencedMessage">): InboundReplyContext | undefined;
171
304
  /**
172
305
  * Channel-native ids of users addressed in this message. Brigade's central group
173
306
  * ACL treats a group message as "addressed to the bot" when the bot's own id
@@ -207,14 +340,38 @@ export declare function extractDiscordMemberRoleIds(message: Pick<DiscordMessage
207
340
  */
208
341
  export declare function buildDiscordSenderName(message: DiscordMessageLike): string | undefined;
209
342
  /**
210
- * Cheap presence probe does this message carry a downloadable attachment?
211
- * Walks `message.attachments` but never touches the network, so the connection
212
- * layer can DEFER the actual download until AFTER the central access gate admits
213
- * the sender (mirrors Slack/Telegram). Mirrors `hasInboundMedia`.
343
+ * The downloadable CDN URL + content-type for ONE sticker, derived from its
344
+ * `format` enum. PNG/APNG `.png`, GIF `.gif`, Lottie (vector) → `.json`
345
+ * (the raw Lottie animation; we don't rasterize). The host is `media.discordapp.net`,
346
+ * already covered by the inbound SSRF allowlist. Returns null when the sticker
347
+ * has no id.
348
+ */
349
+ export declare function stickerToAttachment(sticker: DiscordStickerLike): DiscordAttachmentLike | null;
350
+ /** Sticker assets on a message, mapped to downloadable attachment descriptors. */
351
+ export declare function resolveInboundStickerAttachments(message: Pick<DiscordMessageLike, "stickers" | "sticker_items">): DiscordAttachmentLike[];
352
+ /**
353
+ * Downloadable attachments carried INSIDE forwarded snapshots (attachments +
354
+ * stickers of each forwarded message). A forward arrives as a frozen snapshot,
355
+ * so its media never appears on `message.attachments` — it has to be pulled out
356
+ * of the snapshot.
357
+ */
358
+ export declare function resolveForwardedAttachments(message: Pick<DiscordMessageLike, "messageSnapshots" | "message_snapshots">): DiscordAttachmentLike[];
359
+ /** The fields {@link hasInboundMedia} / {@link resolveInboundAttachments} read across the full media surface. */
360
+ type DiscordMediaSurface = Pick<DiscordMessageLike, "attachments" | "stickers" | "sticker_items" | "messageSnapshots" | "message_snapshots">;
361
+ /**
362
+ * Cheap presence probe — does this message carry ANY downloadable media? Walks
363
+ * direct attachments, stickers, AND forwarded-snapshot media but never touches
364
+ * the network, so the connection layer can DEFER the actual download until AFTER
365
+ * the central access gate admits the sender (mirrors Slack/Telegram).
366
+ */
367
+ export declare function hasInboundMedia(message: DiscordMediaSurface): boolean;
368
+ /**
369
+ * The full list of downloadable attachments to fetch for a message: direct
370
+ * attachments, sticker assets (downloaded from the Discord sticker CDN), and any
371
+ * media carried inside forwarded snapshots.
214
372
  */
215
- export declare function hasInboundMedia(message: Pick<DiscordMessageLike, "attachments">): boolean;
216
- /** The list of downloadable attachments on a message. */
217
- export declare function resolveInboundAttachments(message: Pick<DiscordMessageLike, "attachments">): DiscordAttachmentLike[];
373
+ export declare function resolveInboundAttachments(message: DiscordMediaSurface): DiscordAttachmentLike[];
218
374
  /** The Brigade media-kind of a Discord attachment, from its contentType / filename / voice flag. */
219
375
  export declare function resolveDiscordAttachmentKind(a: DiscordAttachmentLike): "image" | "video" | "audio" | "voice" | "document";
376
+ export {};
220
377
  //# sourceMappingURL=inbound-extras.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"inbound-extras.d.ts","sourceRoot":"","sources":["../../../../src/agents/channels/discord/inbound-extras.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"inbound-extras.d.ts","sourceRoot":"","sources":["../../../../src/agents/channels/discord/inbound-extras.ts"],"names":[],"mappings":"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"}