@spinabot/brigade 1.6.1 → 1.8.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 (339) hide show
  1. package/dist/agents/agent-loop.d.ts +13 -0
  2. package/dist/agents/agent-loop.d.ts.map +1 -1
  3. package/dist/agents/agent-loop.js +5 -0
  4. package/dist/agents/agent-loop.js.map +1 -1
  5. package/dist/agents/channels/access-control/group-tool-policy.d.ts +73 -0
  6. package/dist/agents/channels/access-control/group-tool-policy.d.ts.map +1 -0
  7. package/dist/agents/channels/access-control/group-tool-policy.js +193 -0
  8. package/dist/agents/channels/access-control/group-tool-policy.js.map +1 -0
  9. package/dist/agents/channels/access-control/index.d.ts +1 -0
  10. package/dist/agents/channels/access-control/index.d.ts.map +1 -1
  11. package/dist/agents/channels/access-control/index.js +1 -0
  12. package/dist/agents/channels/access-control/index.js.map +1 -1
  13. package/dist/agents/channels/bluebubbles/account-config.d.ts +253 -0
  14. package/dist/agents/channels/bluebubbles/account-config.d.ts.map +1 -0
  15. package/dist/agents/channels/bluebubbles/account-config.js +486 -0
  16. package/dist/agents/channels/bluebubbles/account-config.js.map +1 -0
  17. package/dist/agents/channels/bluebubbles/account-registry.d.ts +33 -0
  18. package/dist/agents/channels/bluebubbles/account-registry.d.ts.map +1 -0
  19. package/dist/agents/channels/bluebubbles/account-registry.js +46 -0
  20. package/dist/agents/channels/bluebubbles/account-registry.js.map +1 -0
  21. package/dist/agents/channels/bluebubbles/adapter.d.ts +45 -0
  22. package/dist/agents/channels/bluebubbles/adapter.d.ts.map +1 -0
  23. package/dist/agents/channels/bluebubbles/adapter.js +366 -0
  24. package/dist/agents/channels/bluebubbles/adapter.js.map +1 -0
  25. package/dist/agents/channels/bluebubbles/catchup-cursor.d.ts +52 -0
  26. package/dist/agents/channels/bluebubbles/catchup-cursor.d.ts.map +1 -0
  27. package/dist/agents/channels/bluebubbles/catchup-cursor.js +118 -0
  28. package/dist/agents/channels/bluebubbles/catchup-cursor.js.map +1 -0
  29. package/dist/agents/channels/bluebubbles/catchup.d.ts +114 -0
  30. package/dist/agents/channels/bluebubbles/catchup.d.ts.map +1 -0
  31. package/dist/agents/channels/bluebubbles/catchup.js +220 -0
  32. package/dist/agents/channels/bluebubbles/catchup.js.map +1 -0
  33. package/dist/agents/channels/bluebubbles/chat.d.ts +75 -0
  34. package/dist/agents/channels/bluebubbles/chat.d.ts.map +1 -0
  35. package/dist/agents/channels/bluebubbles/chat.js +182 -0
  36. package/dist/agents/channels/bluebubbles/chat.js.map +1 -0
  37. package/dist/agents/channels/bluebubbles/connection.d.ts +95 -0
  38. package/dist/agents/channels/bluebubbles/connection.d.ts.map +1 -0
  39. package/dist/agents/channels/bluebubbles/connection.js +413 -0
  40. package/dist/agents/channels/bluebubbles/connection.js.map +1 -0
  41. package/dist/agents/channels/bluebubbles/contact-names.d.ts +79 -0
  42. package/dist/agents/channels/bluebubbles/contact-names.d.ts.map +1 -0
  43. package/dist/agents/channels/bluebubbles/contact-names.js +188 -0
  44. package/dist/agents/channels/bluebubbles/contact-names.js.map +1 -0
  45. package/dist/agents/channels/bluebubbles/debounce.d.ts +78 -0
  46. package/dist/agents/channels/bluebubbles/debounce.d.ts.map +1 -0
  47. package/dist/agents/channels/bluebubbles/debounce.js +173 -0
  48. package/dist/agents/channels/bluebubbles/debounce.js.map +1 -0
  49. package/dist/agents/channels/bluebubbles/dedupe.d.ts +25 -0
  50. package/dist/agents/channels/bluebubbles/dedupe.d.ts.map +1 -0
  51. package/dist/agents/channels/bluebubbles/dedupe.js +35 -0
  52. package/dist/agents/channels/bluebubbles/dedupe.js.map +1 -0
  53. package/dist/agents/channels/bluebubbles/effects.d.ts +17 -0
  54. package/dist/agents/channels/bluebubbles/effects.d.ts.map +1 -0
  55. package/dist/agents/channels/bluebubbles/effects.js +57 -0
  56. package/dist/agents/channels/bluebubbles/effects.js.map +1 -0
  57. package/dist/agents/channels/bluebubbles/history.d.ts +56 -0
  58. package/dist/agents/channels/bluebubbles/history.d.ts.map +1 -0
  59. package/dist/agents/channels/bluebubbles/history.js +140 -0
  60. package/dist/agents/channels/bluebubbles/history.js.map +1 -0
  61. package/dist/agents/channels/bluebubbles/index.d.ts +18 -0
  62. package/dist/agents/channels/bluebubbles/index.d.ts.map +1 -0
  63. package/dist/agents/channels/bluebubbles/index.js +18 -0
  64. package/dist/agents/channels/bluebubbles/index.js.map +1 -0
  65. package/dist/agents/channels/bluebubbles/media.d.ts +104 -0
  66. package/dist/agents/channels/bluebubbles/media.d.ts.map +1 -0
  67. package/dist/agents/channels/bluebubbles/media.js +222 -0
  68. package/dist/agents/channels/bluebubbles/media.js.map +1 -0
  69. package/dist/agents/channels/bluebubbles/messaging.d.ts +13 -0
  70. package/dist/agents/channels/bluebubbles/messaging.d.ts.map +1 -0
  71. package/dist/agents/channels/bluebubbles/messaging.js +36 -0
  72. package/dist/agents/channels/bluebubbles/messaging.js.map +1 -0
  73. package/dist/agents/channels/bluebubbles/module.d.ts +24 -0
  74. package/dist/agents/channels/bluebubbles/module.d.ts.map +1 -0
  75. package/dist/agents/channels/bluebubbles/module.js +52 -0
  76. package/dist/agents/channels/bluebubbles/module.js.map +1 -0
  77. package/dist/agents/channels/bluebubbles/normalize.d.ts +111 -0
  78. package/dist/agents/channels/bluebubbles/normalize.d.ts.map +1 -0
  79. package/dist/agents/channels/bluebubbles/normalize.js +239 -0
  80. package/dist/agents/channels/bluebubbles/normalize.js.map +1 -0
  81. package/dist/agents/channels/bluebubbles/plugin.d.ts +46 -0
  82. package/dist/agents/channels/bluebubbles/plugin.d.ts.map +1 -0
  83. package/dist/agents/channels/bluebubbles/plugin.js +242 -0
  84. package/dist/agents/channels/bluebubbles/plugin.js.map +1 -0
  85. package/dist/agents/channels/bluebubbles/probe.d.ts +79 -0
  86. package/dist/agents/channels/bluebubbles/probe.d.ts.map +1 -0
  87. package/dist/agents/channels/bluebubbles/probe.js +138 -0
  88. package/dist/agents/channels/bluebubbles/probe.js.map +1 -0
  89. package/dist/agents/channels/bluebubbles/reactions.d.ts +46 -0
  90. package/dist/agents/channels/bluebubbles/reactions.d.ts.map +1 -0
  91. package/dist/agents/channels/bluebubbles/reactions.js +207 -0
  92. package/dist/agents/channels/bluebubbles/reactions.js.map +1 -0
  93. package/dist/agents/channels/bluebubbles/send.d.ts +132 -0
  94. package/dist/agents/channels/bluebubbles/send.d.ts.map +1 -0
  95. package/dist/agents/channels/bluebubbles/send.js +327 -0
  96. package/dist/agents/channels/bluebubbles/send.js.map +1 -0
  97. package/dist/agents/channels/bluebubbles/status-issues.d.ts +57 -0
  98. package/dist/agents/channels/bluebubbles/status-issues.d.ts.map +1 -0
  99. package/dist/agents/channels/bluebubbles/status-issues.js +93 -0
  100. package/dist/agents/channels/bluebubbles/status-issues.js.map +1 -0
  101. package/dist/agents/channels/bluebubbles/types.d.ts +69 -0
  102. package/dist/agents/channels/bluebubbles/types.d.ts.map +1 -0
  103. package/dist/agents/channels/bluebubbles/types.js +118 -0
  104. package/dist/agents/channels/bluebubbles/types.js.map +1 -0
  105. package/dist/agents/channels/bluebubbles/webhook.d.ts +97 -0
  106. package/dist/agents/channels/bluebubbles/webhook.d.ts.map +1 -0
  107. package/dist/agents/channels/bluebubbles/webhook.js +249 -0
  108. package/dist/agents/channels/bluebubbles/webhook.js.map +1 -0
  109. package/dist/agents/channels/bundled-channel-metas.d.ts +13 -0
  110. package/dist/agents/channels/bundled-channel-metas.d.ts.map +1 -1
  111. package/dist/agents/channels/bundled-channel-metas.js +33 -0
  112. package/dist/agents/channels/bundled-channel-metas.js.map +1 -1
  113. package/dist/agents/channels/discord/account-config.d.ts +60 -0
  114. package/dist/agents/channels/discord/account-config.d.ts.map +1 -1
  115. package/dist/agents/channels/discord/account-config.js +89 -0
  116. package/dist/agents/channels/discord/account-config.js.map +1 -1
  117. package/dist/agents/channels/discord/adapter.d.ts +24 -1
  118. package/dist/agents/channels/discord/adapter.d.ts.map +1 -1
  119. package/dist/agents/channels/discord/adapter.js +208 -41
  120. package/dist/agents/channels/discord/adapter.js.map +1 -1
  121. package/dist/agents/channels/discord/component-blocks.d.ts +108 -0
  122. package/dist/agents/channels/discord/component-blocks.d.ts.map +1 -0
  123. package/dist/agents/channels/discord/component-blocks.js +113 -0
  124. package/dist/agents/channels/discord/component-blocks.js.map +1 -0
  125. package/dist/agents/channels/discord/components.d.ts +78 -0
  126. package/dist/agents/channels/discord/components.d.ts.map +1 -1
  127. package/dist/agents/channels/discord/components.js +89 -0
  128. package/dist/agents/channels/discord/components.js.map +1 -1
  129. package/dist/agents/channels/discord/connection.d.ts +195 -12
  130. package/dist/agents/channels/discord/connection.d.ts.map +1 -1
  131. package/dist/agents/channels/discord/connection.js +852 -38
  132. package/dist/agents/channels/discord/connection.js.map +1 -1
  133. package/dist/agents/channels/discord/directory-cache.d.ts +47 -0
  134. package/dist/agents/channels/discord/directory-cache.d.ts.map +1 -0
  135. package/dist/agents/channels/discord/directory-cache.js +131 -0
  136. package/dist/agents/channels/discord/directory-cache.js.map +1 -0
  137. package/dist/agents/channels/discord/directory-live.d.ts +61 -0
  138. package/dist/agents/channels/discord/directory-live.d.ts.map +1 -0
  139. package/dist/agents/channels/discord/directory-live.js +140 -0
  140. package/dist/agents/channels/discord/directory-live.js.map +1 -0
  141. package/dist/agents/channels/discord/format.d.ts +15 -0
  142. package/dist/agents/channels/discord/format.d.ts.map +1 -1
  143. package/dist/agents/channels/discord/format.js +56 -0
  144. package/dist/agents/channels/discord/format.js.map +1 -1
  145. package/dist/agents/channels/discord/guilds.d.ts +25 -0
  146. package/dist/agents/channels/discord/guilds.d.ts.map +1 -0
  147. package/dist/agents/channels/discord/guilds.js +46 -0
  148. package/dist/agents/channels/discord/guilds.js.map +1 -0
  149. package/dist/agents/channels/discord/inbound-extras.d.ts +166 -9
  150. package/dist/agents/channels/discord/inbound-extras.d.ts.map +1 -1
  151. package/dist/agents/channels/discord/inbound-extras.js +246 -8
  152. package/dist/agents/channels/discord/inbound-extras.js.map +1 -1
  153. package/dist/agents/channels/discord/index.d.ts +10 -3
  154. package/dist/agents/channels/discord/index.d.ts.map +1 -1
  155. package/dist/agents/channels/discord/index.js +10 -3
  156. package/dist/agents/channels/discord/index.js.map +1 -1
  157. package/dist/agents/channels/discord/modal-registry.d.ts +89 -0
  158. package/dist/agents/channels/discord/modal-registry.d.ts.map +1 -0
  159. package/dist/agents/channels/discord/modal-registry.js +104 -0
  160. package/dist/agents/channels/discord/modal-registry.js.map +1 -0
  161. package/dist/agents/channels/discord/modals.d.ts +100 -0
  162. package/dist/agents/channels/discord/modals.d.ts.map +1 -0
  163. package/dist/agents/channels/discord/modals.js +124 -0
  164. package/dist/agents/channels/discord/modals.js.map +1 -0
  165. package/dist/agents/channels/discord/permission-audit.d.ts +43 -0
  166. package/dist/agents/channels/discord/permission-audit.d.ts.map +1 -0
  167. package/dist/agents/channels/discord/permission-audit.js +192 -0
  168. package/dist/agents/channels/discord/permission-audit.js.map +1 -0
  169. package/dist/agents/channels/discord/plugin.d.ts +18 -2
  170. package/dist/agents/channels/discord/plugin.d.ts.map +1 -1
  171. package/dist/agents/channels/discord/plugin.js +73 -4
  172. package/dist/agents/channels/discord/plugin.js.map +1 -1
  173. package/dist/agents/channels/discord/probe.d.ts +23 -1
  174. package/dist/agents/channels/discord/probe.d.ts.map +1 -1
  175. package/dist/agents/channels/discord/probe.js +40 -5
  176. package/dist/agents/channels/discord/probe.js.map +1 -1
  177. package/dist/agents/channels/discord/rest-actions.d.ts +346 -0
  178. package/dist/agents/channels/discord/rest-actions.d.ts.map +1 -0
  179. package/dist/agents/channels/discord/rest-actions.js +559 -0
  180. package/dist/agents/channels/discord/rest-actions.js.map +1 -0
  181. package/dist/agents/channels/discord/rest-components.d.ts +122 -0
  182. package/dist/agents/channels/discord/rest-components.d.ts.map +1 -0
  183. package/dist/agents/channels/discord/rest-components.js +243 -0
  184. package/dist/agents/channels/discord/rest-components.js.map +1 -0
  185. package/dist/agents/channels/discord/security-audit.d.ts +29 -0
  186. package/dist/agents/channels/discord/security-audit.d.ts.map +1 -0
  187. package/dist/agents/channels/discord/security-audit.js +94 -0
  188. package/dist/agents/channels/discord/security-audit.js.map +1 -0
  189. package/dist/agents/channels/discord/security-doctor.d.ts +43 -0
  190. package/dist/agents/channels/discord/security-doctor.d.ts.map +1 -0
  191. package/dist/agents/channels/discord/security-doctor.js +83 -0
  192. package/dist/agents/channels/discord/security-doctor.js.map +1 -0
  193. package/dist/agents/channels/discord/status-issues.d.ts +37 -0
  194. package/dist/agents/channels/discord/status-issues.d.ts.map +1 -0
  195. package/dist/agents/channels/discord/status-issues.js +66 -0
  196. package/dist/agents/channels/discord/status-issues.js.map +1 -0
  197. package/dist/agents/channels/discord/subagent-thread-binding-store.d.ts +57 -0
  198. package/dist/agents/channels/discord/subagent-thread-binding-store.d.ts.map +1 -0
  199. package/dist/agents/channels/discord/subagent-thread-binding-store.js +98 -0
  200. package/dist/agents/channels/discord/subagent-thread-binding-store.js.map +1 -0
  201. package/dist/agents/channels/discord/subagent-thread-binding.d.ts +95 -0
  202. package/dist/agents/channels/discord/subagent-thread-binding.d.ts.map +1 -0
  203. package/dist/agents/channels/discord/subagent-thread-binding.js +208 -0
  204. package/dist/agents/channels/discord/subagent-thread-binding.js.map +1 -0
  205. package/dist/agents/channels/discord/system-events.d.ts +31 -0
  206. package/dist/agents/channels/discord/system-events.d.ts.map +1 -0
  207. package/dist/agents/channels/discord/system-events.js +74 -0
  208. package/dist/agents/channels/discord/system-events.js.map +1 -0
  209. package/dist/agents/channels/general-callback.d.ts +12 -0
  210. package/dist/agents/channels/general-callback.d.ts.map +1 -1
  211. package/dist/agents/channels/general-callback.js +18 -0
  212. package/dist/agents/channels/general-callback.js.map +1 -1
  213. package/dist/agents/channels/imessage/account-config.d.ts +178 -0
  214. package/dist/agents/channels/imessage/account-config.d.ts.map +1 -0
  215. package/dist/agents/channels/imessage/account-config.js +371 -0
  216. package/dist/agents/channels/imessage/account-config.js.map +1 -0
  217. package/dist/agents/channels/imessage/adapter.d.ts +36 -0
  218. package/dist/agents/channels/imessage/adapter.d.ts.map +1 -0
  219. package/dist/agents/channels/imessage/adapter.js +286 -0
  220. package/dist/agents/channels/imessage/adapter.js.map +1 -0
  221. package/dist/agents/channels/imessage/client.d.ts +99 -0
  222. package/dist/agents/channels/imessage/client.d.ts.map +1 -0
  223. package/dist/agents/channels/imessage/client.js +231 -0
  224. package/dist/agents/channels/imessage/client.js.map +1 -0
  225. package/dist/agents/channels/imessage/connection.d.ts +101 -0
  226. package/dist/agents/channels/imessage/connection.d.ts.map +1 -0
  227. package/dist/agents/channels/imessage/connection.js +367 -0
  228. package/dist/agents/channels/imessage/connection.js.map +1 -0
  229. package/dist/agents/channels/imessage/format.d.ts +45 -0
  230. package/dist/agents/channels/imessage/format.d.ts.map +1 -0
  231. package/dist/agents/channels/imessage/format.js +170 -0
  232. package/dist/agents/channels/imessage/format.js.map +1 -0
  233. package/dist/agents/channels/imessage/history.d.ts +49 -0
  234. package/dist/agents/channels/imessage/history.d.ts.map +1 -0
  235. package/dist/agents/channels/imessage/history.js +74 -0
  236. package/dist/agents/channels/imessage/history.js.map +1 -0
  237. package/dist/agents/channels/imessage/index.d.ts +25 -0
  238. package/dist/agents/channels/imessage/index.d.ts.map +1 -0
  239. package/dist/agents/channels/imessage/index.js +25 -0
  240. package/dist/agents/channels/imessage/index.js.map +1 -0
  241. package/dist/agents/channels/imessage/media.d.ts +92 -0
  242. package/dist/agents/channels/imessage/media.d.ts.map +1 -0
  243. package/dist/agents/channels/imessage/media.js +196 -0
  244. package/dist/agents/channels/imessage/media.js.map +1 -0
  245. package/dist/agents/channels/imessage/messaging.d.ts +14 -0
  246. package/dist/agents/channels/imessage/messaging.d.ts.map +1 -0
  247. package/dist/agents/channels/imessage/messaging.js +37 -0
  248. package/dist/agents/channels/imessage/messaging.js.map +1 -0
  249. package/dist/agents/channels/imessage/module.d.ts +16 -0
  250. package/dist/agents/channels/imessage/module.d.ts.map +1 -0
  251. package/dist/agents/channels/imessage/module.js +23 -0
  252. package/dist/agents/channels/imessage/module.js.map +1 -0
  253. package/dist/agents/channels/imessage/monitor.d.ts +207 -0
  254. package/dist/agents/channels/imessage/monitor.d.ts.map +1 -0
  255. package/dist/agents/channels/imessage/monitor.js +504 -0
  256. package/dist/agents/channels/imessage/monitor.js.map +1 -0
  257. package/dist/agents/channels/imessage/plugin.d.ts +53 -0
  258. package/dist/agents/channels/imessage/plugin.d.ts.map +1 -0
  259. package/dist/agents/channels/imessage/plugin.js +215 -0
  260. package/dist/agents/channels/imessage/plugin.js.map +1 -0
  261. package/dist/agents/channels/imessage/probe.d.ts +68 -0
  262. package/dist/agents/channels/imessage/probe.d.ts.map +1 -0
  263. package/dist/agents/channels/imessage/probe.js +134 -0
  264. package/dist/agents/channels/imessage/probe.js.map +1 -0
  265. package/dist/agents/channels/imessage/remote-attachments.d.ts +61 -0
  266. package/dist/agents/channels/imessage/remote-attachments.d.ts.map +1 -0
  267. package/dist/agents/channels/imessage/remote-attachments.js +131 -0
  268. package/dist/agents/channels/imessage/remote-attachments.js.map +1 -0
  269. package/dist/agents/channels/imessage/send.d.ts +61 -0
  270. package/dist/agents/channels/imessage/send.d.ts.map +1 -0
  271. package/dist/agents/channels/imessage/send.js +108 -0
  272. package/dist/agents/channels/imessage/send.js.map +1 -0
  273. package/dist/agents/channels/imessage/targets.d.ts +91 -0
  274. package/dist/agents/channels/imessage/targets.d.ts.map +1 -0
  275. package/dist/agents/channels/imessage/targets.js +245 -0
  276. package/dist/agents/channels/imessage/targets.js.map +1 -0
  277. package/dist/agents/channels/imessage/watch-error.d.ts +23 -0
  278. package/dist/agents/channels/imessage/watch-error.d.ts.map +1 -0
  279. package/dist/agents/channels/imessage/watch-error.js +69 -0
  280. package/dist/agents/channels/imessage/watch-error.js.map +1 -0
  281. package/dist/agents/channels/inbound-pipeline.d.ts +11 -0
  282. package/dist/agents/channels/inbound-pipeline.d.ts.map +1 -1
  283. package/dist/agents/channels/inbound-pipeline.js +25 -4
  284. package/dist/agents/channels/inbound-pipeline.js.map +1 -1
  285. package/dist/agents/channels/manager.d.ts +9 -0
  286. package/dist/agents/channels/manager.d.ts.map +1 -1
  287. package/dist/agents/channels/manager.js.map +1 -1
  288. package/dist/agents/channels/sdk.d.ts +4 -0
  289. package/dist/agents/channels/sdk.d.ts.map +1 -1
  290. package/dist/agents/channels/sdk.js +4 -0
  291. package/dist/agents/channels/sdk.js.map +1 -1
  292. package/dist/agents/extensions/modules/index.d.ts.map +1 -1
  293. package/dist/agents/extensions/modules/index.js +12 -0
  294. package/dist/agents/extensions/modules/index.js.map +1 -1
  295. package/dist/agents/extensions/types.d.ts +7 -0
  296. package/dist/agents/extensions/types.d.ts.map +1 -1
  297. package/dist/agents/extensions/types.js.map +1 -1
  298. package/dist/agents/session-wiring.d.ts +31 -0
  299. package/dist/agents/session-wiring.d.ts.map +1 -1
  300. package/dist/agents/session-wiring.js +45 -2
  301. package/dist/agents/session-wiring.js.map +1 -1
  302. package/dist/agents/subagent-announce-delivery.d.ts +10 -0
  303. package/dist/agents/subagent-announce-delivery.d.ts.map +1 -1
  304. package/dist/agents/subagent-announce-delivery.js +1 -0
  305. package/dist/agents/subagent-announce-delivery.js.map +1 -1
  306. package/dist/agents/subagent-completion-bridge.d.ts.map +1 -1
  307. package/dist/agents/subagent-completion-bridge.js +81 -0
  308. package/dist/agents/subagent-completion-bridge.js.map +1 -1
  309. package/dist/agents/subagent-spawn.d.ts.map +1 -1
  310. package/dist/agents/subagent-spawn.js +57 -4
  311. package/dist/agents/subagent-spawn.js.map +1 -1
  312. package/dist/agents/tools/bluebubbles-action-tool.d.ts +66 -0
  313. package/dist/agents/tools/bluebubbles-action-tool.d.ts.map +1 -0
  314. package/dist/agents/tools/bluebubbles-action-tool.js +234 -0
  315. package/dist/agents/tools/bluebubbles-action-tool.js.map +1 -0
  316. package/dist/agents/tools/discord-action-tool.d.ts +224 -0
  317. package/dist/agents/tools/discord-action-tool.d.ts.map +1 -0
  318. package/dist/agents/tools/discord-action-tool.js +848 -0
  319. package/dist/agents/tools/discord-action-tool.js.map +1 -0
  320. package/dist/agents/tools/registry.d.ts.map +1 -1
  321. package/dist/agents/tools/registry.js +39 -0
  322. package/dist/agents/tools/registry.js.map +1 -1
  323. package/dist/agents/tools/sessions/index.d.ts +8 -0
  324. package/dist/agents/tools/sessions/index.d.ts.map +1 -1
  325. package/dist/agents/tools/sessions/index.js +15 -3
  326. package/dist/agents/tools/sessions/index.js.map +1 -1
  327. package/dist/buildstamp.json +1 -1
  328. package/dist/cli/commands/channels.d.ts +2 -0
  329. package/dist/cli/commands/channels.d.ts.map +1 -1
  330. package/dist/cli/commands/channels.js +58 -1
  331. package/dist/cli/commands/channels.js.map +1 -1
  332. package/dist/core/server.d.ts.map +1 -1
  333. package/dist/core/server.js +48 -2
  334. package/dist/core/server.js.map +1 -1
  335. package/dist/infra/net/fetch-guard.d.ts +24 -2
  336. package/dist/infra/net/fetch-guard.d.ts.map +1 -1
  337. package/dist/infra/net/fetch-guard.js +78 -31
  338. package/dist/infra/net/fetch-guard.js.map +1 -1
  339. package/package.json +1 -1
@@ -0,0 +1,74 @@
1
+ /**
2
+ * Discord SYSTEM-event notes.
3
+ *
4
+ * A Discord message whose `type` is not Default (0) or Reply (19) is a SYSTEM
5
+ * event — a member join, a pin, a server boost, a thread-created marker, an
6
+ * invite reminder, and so on. These carry no user `content`, so without special
7
+ * handling they normalize to empty text and the inbound pipeline drops them —
8
+ * the agent never learns the event happened.
9
+ *
10
+ * This module maps the recognized discord.js `MessageType` enum values to a
11
+ * concise `Discord system: <note>` string the connection synthesizes as the
12
+ * inbound `text` so the event routes through the SAME pipeline as a normal
13
+ * message (no debounce). An UNMAPPED system type returns null → still dropped
14
+ * (we don't flood the agent with every obscure marker).
15
+ *
16
+ * The enum values are inlined (not imported from discord.js) so this module
17
+ * stays dependency-light + unit-testable without a live gateway — the runtime
18
+ * message carries the same numeric `type`.
19
+ */
20
+ import { buildDiscordSenderName } from "./inbound-extras.js";
21
+ /**
22
+ * discord.js `MessageType` enum values that are SYSTEM events Brigade surfaces.
23
+ * Default (0) + Reply (19) are NOT here — they carry real user content and route
24
+ * through the normal text path. Values mirror discord.js's `MessageType`.
25
+ */
26
+ const DISCORD_SYSTEM_EVENT_NOTES = {
27
+ 1: "added a recipient",
28
+ 2: "removed a recipient",
29
+ 4: "changed the channel name",
30
+ 5: "changed the channel icon",
31
+ 6: "pinned a message",
32
+ 7: "joined the server",
33
+ 8: "boosted the server",
34
+ 9: "boosted the server (Tier 1 reached)",
35
+ 10: "boosted the server (Tier 2 reached)",
36
+ 11: "boosted the server (Tier 3 reached)",
37
+ 12: "followed a channel",
38
+ 14: "server removed from Discovery",
39
+ 15: "server requalified for Discovery",
40
+ 18: "created a thread",
41
+ 22: "invite reminder",
42
+ 24: "auto-moderation action",
43
+ 36: "raid protection enabled",
44
+ 37: "raid protection disabled",
45
+ };
46
+ /** The Default + Reply message types — real user content, never a system note. */
47
+ const MESSAGE_TYPE_DEFAULT = 0;
48
+ const MESSAGE_TYPE_REPLY = 19;
49
+ /** True when the message type is one Brigade treats as plain user content (Default or Reply). */
50
+ export function isDiscordUserMessageType(type) {
51
+ if (typeof type !== "number")
52
+ return true; // a fake / absent type → treat as user content
53
+ return type === MESSAGE_TYPE_DEFAULT || type === MESSAGE_TYPE_REPLY;
54
+ }
55
+ /**
56
+ * A concise `Discord system: <actor> <action> in <location>` note for a
57
+ * recognized system message, or null when the type is Default / Reply / an
58
+ * unmapped system type (so the caller drops it). `location` is a short channel
59
+ * descriptor the caller supplies (e.g. the conversation id) so the agent knows
60
+ * where the event happened.
61
+ */
62
+ export function resolveDiscordSystemEvent(message, location) {
63
+ const type = message.type;
64
+ if (typeof type !== "number" || isDiscordUserMessageType(type))
65
+ return null;
66
+ const action = DISCORD_SYSTEM_EVENT_NOTES[type];
67
+ if (!action)
68
+ return null;
69
+ const actor = buildDiscordSenderName(message);
70
+ const who = actor ? `${actor} ` : "";
71
+ const where = location.trim() ? ` in ${location.trim()}` : "";
72
+ return `Discord system: ${who}${action}${where}`;
73
+ }
74
+ //# sourceMappingURL=system-events.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"system-events.js","sourceRoot":"","sources":["../../../../src/agents/channels/discord/system-events.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,EAAE,sBAAsB,EAA2B,MAAM,qBAAqB,CAAC;AAEtF;;;;GAIG;AACH,MAAM,0BAA0B,GAA2B;IAC1D,CAAC,EAAE,mBAAmB;IACtB,CAAC,EAAE,qBAAqB;IACxB,CAAC,EAAE,0BAA0B;IAC7B,CAAC,EAAE,0BAA0B;IAC7B,CAAC,EAAE,kBAAkB;IACrB,CAAC,EAAE,mBAAmB;IACtB,CAAC,EAAE,oBAAoB;IACvB,CAAC,EAAE,qCAAqC;IACxC,EAAE,EAAE,qCAAqC;IACzC,EAAE,EAAE,qCAAqC;IACzC,EAAE,EAAE,oBAAoB;IACxB,EAAE,EAAE,+BAA+B;IACnC,EAAE,EAAE,kCAAkC;IACtC,EAAE,EAAE,kBAAkB;IACtB,EAAE,EAAE,iBAAiB;IACrB,EAAE,EAAE,wBAAwB;IAC5B,EAAE,EAAE,yBAAyB;IAC7B,EAAE,EAAE,0BAA0B;CAC9B,CAAC;AAEF,kFAAkF;AAClF,MAAM,oBAAoB,GAAG,CAAC,CAAC;AAC/B,MAAM,kBAAkB,GAAG,EAAE,CAAC;AAE9B,iGAAiG;AACjG,MAAM,UAAU,wBAAwB,CAAC,IAAwB;IAChE,IAAI,OAAO,IAAI,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC,CAAC,+CAA+C;IAC1F,OAAO,IAAI,KAAK,oBAAoB,IAAI,IAAI,KAAK,kBAAkB,CAAC;AACrE,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,yBAAyB,CAAC,OAA+D,EAAE,QAAgB;IAC1H,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAC1B,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,wBAAwB,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IAC5E,MAAM,MAAM,GAAG,0BAA0B,CAAC,IAAI,CAAC,CAAC;IAChD,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IACzB,MAAM,KAAK,GAAG,sBAAsB,CAAC,OAA6B,CAAC,CAAC;IACpE,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;IACrC,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,OAAO,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAC9D,OAAO,mBAAmB,GAAG,GAAG,MAAM,GAAG,KAAK,EAAE,CAAC;AAClD,CAAC"}
@@ -22,4 +22,16 @@ export declare function isGeneralCallbackData(data: string | undefined): boolean
22
22
  * Returns "" when the input is not a general callback.
23
23
  */
24
24
  export declare function decodeGeneralCallbackData(data: string | undefined): string;
25
+ /**
26
+ * Build the synthesized turn text the agent sees when a GENERAL (agent-attached)
27
+ * component is interacted with. A plain button yields `[button] <token>` exactly
28
+ * as before (byte-identical), so existing button flows are unchanged. When the
29
+ * press came from a SELECT menu the chosen value(s) are appended as
30
+ * `Selected: <values>` so the agent can branch on the choice it offered.
31
+ *
32
+ * `values` are surfaced verbatim — the channel layer is responsible for any id
33
+ * prefixing (e.g. Discord entity selects prefix `user:` / `role:` / `channel:` /
34
+ * `mentionable:`), so the agent sees the same shape it would on the wire.
35
+ */
36
+ export declare function buildGeneralCallbackTurnText(token: string, values?: ReadonlyArray<string>): string;
25
37
  //# sourceMappingURL=general-callback.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"general-callback.d.ts","sourceRoot":"","sources":["../../../src/agents/channels/general-callback.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,gFAAgF;AAChF,eAAO,MAAM,uBAAuB,OAAO,CAAC;AAE5C,kFAAkF;AAClF,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAEvE;AAED;;;GAGG;AACH,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAG1E"}
1
+ {"version":3,"file":"general-callback.d.ts","sourceRoot":"","sources":["../../../src/agents/channels/general-callback.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,gFAAgF;AAChF,eAAO,MAAM,uBAAuB,OAAO,CAAC;AAE5C,kFAAkF;AAClF,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAEvE;AAED;;;GAGG;AACH,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAG1E;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,GAAG,MAAM,CAKlG"}
@@ -28,4 +28,22 @@ export function decodeGeneralCallbackData(data) {
28
28
  return "";
29
29
  return data.slice(GENERAL_CALLBACK_PREFIX.length);
30
30
  }
31
+ /**
32
+ * Build the synthesized turn text the agent sees when a GENERAL (agent-attached)
33
+ * component is interacted with. A plain button yields `[button] <token>` exactly
34
+ * as before (byte-identical), so existing button flows are unchanged. When the
35
+ * press came from a SELECT menu the chosen value(s) are appended as
36
+ * `Selected: <values>` so the agent can branch on the choice it offered.
37
+ *
38
+ * `values` are surfaced verbatim — the channel layer is responsible for any id
39
+ * prefixing (e.g. Discord entity selects prefix `user:` / `role:` / `channel:` /
40
+ * `mentionable:`), so the agent sees the same shape it would on the wire.
41
+ */
42
+ export function buildGeneralCallbackTurnText(token, values) {
43
+ const base = `[button] ${token}`;
44
+ const chosen = (values ?? []).filter((v) => typeof v === "string" && v.length > 0);
45
+ if (chosen.length === 0)
46
+ return base;
47
+ return `${base}\nSelected: ${chosen.join(", ")}`;
48
+ }
31
49
  //# sourceMappingURL=general-callback.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"general-callback.js","sourceRoot":"","sources":["../../../src/agents/channels/general-callback.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,gFAAgF;AAChF,MAAM,CAAC,MAAM,uBAAuB,GAAG,IAAI,CAAC;AAE5C,kFAAkF;AAClF,MAAM,UAAU,qBAAqB,CAAC,IAAwB;IAC7D,OAAO,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,UAAU,CAAC,uBAAuB,CAAC,CAAC;AAC7E,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,yBAAyB,CAAC,IAAwB;IACjE,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC;QAAE,OAAO,EAAE,CAAC;IAC5C,OAAQ,IAAe,CAAC,KAAK,CAAC,uBAAuB,CAAC,MAAM,CAAC,CAAC;AAC/D,CAAC"}
1
+ {"version":3,"file":"general-callback.js","sourceRoot":"","sources":["../../../src/agents/channels/general-callback.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,gFAAgF;AAChF,MAAM,CAAC,MAAM,uBAAuB,GAAG,IAAI,CAAC;AAE5C,kFAAkF;AAClF,MAAM,UAAU,qBAAqB,CAAC,IAAwB;IAC7D,OAAO,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,UAAU,CAAC,uBAAuB,CAAC,CAAC;AAC7E,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,yBAAyB,CAAC,IAAwB;IACjE,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC;QAAE,OAAO,EAAE,CAAC;IAC5C,OAAQ,IAAe,CAAC,KAAK,CAAC,uBAAuB,CAAC,MAAM,CAAC,CAAC;AAC/D,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,4BAA4B,CAAC,KAAa,EAAE,MAA8B;IACzF,MAAM,IAAI,GAAG,YAAY,KAAK,EAAE,CAAC;IACjC,MAAM,MAAM,GAAG,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACnF,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACrC,OAAO,GAAG,IAAI,eAAe,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;AAClD,CAAC"}
@@ -0,0 +1,178 @@
1
+ /**
2
+ * iMessage config-shape helpers (multi-ACCOUNT aware; mirrors Discord's
3
+ * `account-config.ts`).
4
+ *
5
+ * iMessage is driven through the third-party `imsg` CLI run as a long-lived
6
+ * JSON-RPC subprocess (`imsg rpc`). Unlike a token-based channel there is NO
7
+ * secret to seal — the auth surface is "the machine running the gateway is
8
+ * already signed into Messages.app". So instead of a bot token this module
9
+ * resolves the local-runtime knobs the transport needs:
10
+ *
11
+ * - `cliPath` path to the `imsg` binary (default `"imsg"`, found on PATH).
12
+ * - `dbPath` optional override for the chat.db the binary reads.
13
+ * - `service` default send service: `"imessage"` | `"sms"` | `"auto"`.
14
+ * - `region` default phone-number region for E.164 normalisation (US).
15
+ * - `mediaMaxMb` cap on an outbound attachment's size (MB).
16
+ * - `probeTimeoutMs` RPC round-trip timeout for the doctor/probe call.
17
+ * - `attachmentRoots` allow-list of dirs inbound media may be read from.
18
+ *
19
+ * Two config shapes are recognised so the surface lines up with the other
20
+ * channels:
21
+ *
22
+ * Legacy (single-account):
23
+ * channels.imessage = { enabled: true, cliPath: "imsg", service: "auto" }
24
+ *
25
+ * Multi-account:
26
+ * channels.imessage = {
27
+ * enabled: true,
28
+ * accounts: [
29
+ * { id: "personal", dbPath: "~/Library/Messages/chat.db" },
30
+ * { id: "work", cliPath: "/opt/imsg/bin/imsg" },
31
+ * ],
32
+ * }
33
+ *
34
+ * A legacy config with no `accounts[]` reads as `[{ id: "default" }]`.
35
+ */
36
+ import type { BrigadeConfig } from "../../../config/io.js";
37
+ /** Canonical channel id + default account id. */
38
+ declare const CHANNEL_ID = "imessage";
39
+ declare const DEFAULT_ACCOUNT_ID = "default";
40
+ /** Default `imsg` binary name — resolved on PATH when no explicit path is set. */
41
+ declare const DEFAULT_CLI_PATH = "imsg";
42
+ /** Default RPC probe / request timeout (ms). */
43
+ export declare const DEFAULT_IMESSAGE_PROBE_TIMEOUT_MS = 10000;
44
+ /** Default per-message outbound text chunk size (chars). iMessage's practical limit. */
45
+ export declare const DEFAULT_IMESSAGE_TEXT_CHUNK_LIMIT = 4000;
46
+ /**
47
+ * Default rolling-history depth for an untagged GROUP message (0 = off). iMessage
48
+ * delivers one notification per message with no thread context, so the monitor
49
+ * keeps the last N seen group messages and prepends them as context.
50
+ */
51
+ export declare const DEFAULT_IMESSAGE_HISTORY_LIMIT = 0;
52
+ /** Default macOS Messages attachment root inbound media may be read from. */
53
+ export declare const DEFAULT_IMESSAGE_ATTACHMENT_ROOTS: readonly string[];
54
+ /** Per-knob env var consulted as a last-resort fallback for the binary path. */
55
+ declare const CLI_PATH_ENV_VAR = "IMSG_CLI_PATH";
56
+ /** Outbound send service. `auto` lets the bridge pick iMessage vs SMS. */
57
+ export type IMessageService = "imessage" | "sms" | "auto";
58
+ /** Outbound chunk strategy. `length` = pack to the char limit (default); `newline` = prefer line breaks. */
59
+ export type IMessageChunkMode = "length" | "newline";
60
+ /** Resolved per-account info — what the adapter runtime reads. */
61
+ export interface ResolvedIMessageAccount {
62
+ accountId: string;
63
+ enabled: boolean;
64
+ /** `imsg` binary path (default `"imsg"`). */
65
+ cliPath: string;
66
+ /** Optional chat.db override (`~`-expansion done by the client). */
67
+ dbPath: string;
68
+ /** Default send service for this account. */
69
+ service: IMessageService;
70
+ /** Default phone-number region (E.164 normalisation). */
71
+ region: string;
72
+ /** Outbound media size cap (bytes). */
73
+ mediaMaxBytes: number;
74
+ /** RPC probe / request timeout (ms). */
75
+ probeTimeoutMs: number;
76
+ /**
77
+ * The bot's OWN iMessage handle (normalised — digits for a phone, lower-case
78
+ * for an email). When set, a group message whose text names this handle gets a
79
+ * populated `mentions[]` so the central pipeline's group requireMention gate
80
+ * can fire. Empty when unset (group mention-gating then can't match the bot).
81
+ */
82
+ selfHandle: string;
83
+ /**
84
+ * Remote host (`user@host` / `host`) when the `imsg` bridge runs on a DIFFERENT
85
+ * machine than the gateway. When set, inbound attachments are SCP-copied from
86
+ * the remote root to a local temp before resolution. Empty for a same-host setup.
87
+ */
88
+ remoteHost: string;
89
+ /** When false, skip inbound media resolution entirely (text-only ingest). Default true. */
90
+ includeAttachments: boolean;
91
+ /** Default outbound recipient when a send omits an explicit target. Empty when unset. */
92
+ defaultTo: string;
93
+ /** Rolling-history depth for an untagged GROUP message (0 = off). */
94
+ historyLimit: number;
95
+ /** Rolling-history depth for an untagged DM (0 = off). */
96
+ dmHistoryLimit: number;
97
+ /** Per-message outbound text chunk size (chars). */
98
+ textChunkLimit: number;
99
+ /** Outbound chunk strategy. */
100
+ chunkMode: IMessageChunkMode;
101
+ verbose: boolean;
102
+ }
103
+ /** Coerce a loose `service` string to the typed union (defaults to `auto`). */
104
+ export declare function coerceIMessageService(raw: unknown, fallback?: IMessageService): IMessageService;
105
+ /** Is the iMessage channel switched on at all (any shape)? */
106
+ export declare function imessageChannelEnabled(cfg: BrigadeConfig): boolean;
107
+ /** List configured account ids. Legacy single-account configs surface `["default"]`. */
108
+ export declare function listIMessageAccountIds(cfg: BrigadeConfig): string[];
109
+ /**
110
+ * Resolve the `imsg` binary path for an account. Precedence: per-account config
111
+ * `${VAR}`/literal → top-level config → `IMSG_CLI_PATH` env → the default
112
+ * `"imsg"` (found on PATH).
113
+ */
114
+ export declare function resolveIMessageCliPath(cfg: BrigadeConfig, accountId?: string | null, env?: NodeJS.ProcessEnv): string;
115
+ /**
116
+ * Resolve the optional chat.db override for an account. Per-account → top-level
117
+ * → "" (the binary uses its own default location). `~`-expansion is the client's
118
+ * job — this returns the raw path.
119
+ */
120
+ export declare function resolveIMessageDbPath(cfg: BrigadeConfig, accountId?: string | null, env?: NodeJS.ProcessEnv): string;
121
+ /**
122
+ * Resolve the inbound attachment roots iMessage media may be read from
123
+ * (account-specific → channel-global → the macOS Messages Attachments floor).
124
+ */
125
+ export declare function resolveIMessageAttachmentRoots(cfg: BrigadeConfig, accountId?: string | null): string[];
126
+ /**
127
+ * Resolve the REMOTE inbound attachment roots (when the `imsg` bridge runs on a
128
+ * different host than the gateway). Falls back through the local roots so a
129
+ * same-host setup is unchanged.
130
+ */
131
+ export declare function resolveIMessageRemoteAttachmentRoots(cfg: BrigadeConfig, accountId?: string | null): string[];
132
+ /** Resolve the RPC probe / request timeout (ms) for an account. */
133
+ export declare function resolveIMessageProbeTimeoutMs(cfg: BrigadeConfig, accountId?: string | null): number;
134
+ /**
135
+ * Normalise a handle for self/mention matching: an email lower-cases; a phone
136
+ * keeps only its digits (so `+1 (555) 123-4567` and `15551234567` compare equal).
137
+ * Returns "" for an empty input. Mirrors BlueBubbles' `normalizeBlueBubblesSelfHandle`.
138
+ */
139
+ export declare function normalizeIMessageSelfHandle(raw: string | undefined): string;
140
+ /**
141
+ * Resolve the bot's own handle for an account (per-account `selfHandle` wins over
142
+ * the top-level slot), normalised. Empty when unset.
143
+ */
144
+ export declare function resolveIMessageSelfHandle(cfg: BrigadeConfig, accountId?: string | null, env?: NodeJS.ProcessEnv): string;
145
+ /**
146
+ * Resolve the REMOTE host (`user@host` / `host`) for an account when the `imsg`
147
+ * bridge runs on a different machine. Per-account → top-level → "". Returns the
148
+ * raw configured value; the SCP layer safety-validates it.
149
+ */
150
+ export declare function resolveIMessageRemoteHost(cfg: BrigadeConfig, accountId?: string | null, env?: NodeJS.ProcessEnv): string;
151
+ /**
152
+ * Resolve whether inbound media should be resolved at all. Per-account →
153
+ * top-level → DEFAULT TRUE (resolve media). Setting `includeAttachments:false`
154
+ * opts a noisy / privacy-sensitive account out of inbound media resolution.
155
+ */
156
+ export declare function resolveIMessageIncludeAttachments(cfg: BrigadeConfig, accountId?: string | null): boolean;
157
+ /** Resolve the default outbound recipient (per-account → top-level → ""). */
158
+ export declare function resolveIMessageDefaultTo(cfg: BrigadeConfig, accountId?: string | null, env?: NodeJS.ProcessEnv): string;
159
+ /** Resolve the rolling-history depth for an untagged GROUP message (0 = off). */
160
+ export declare function resolveIMessageHistoryLimit(cfg: BrigadeConfig, accountId?: string | null): number;
161
+ /** Resolve the rolling-history depth for an untagged DM (0 = off). */
162
+ export declare function resolveIMessageDmHistoryLimit(cfg: BrigadeConfig, accountId?: string | null): number;
163
+ /** Resolve the per-message outbound text chunk size (chars). */
164
+ export declare function resolveIMessageTextChunkLimit(cfg: BrigadeConfig, accountId?: string | null): number;
165
+ /** Coerce a loose `chunkMode` string to the typed union (defaults to `length`). */
166
+ export declare function coerceIMessageChunkMode(raw: unknown): IMessageChunkMode;
167
+ /** Resolve the outbound chunk strategy (per-account → top-level → `length`). */
168
+ export declare function resolveIMessageChunkMode(cfg: BrigadeConfig, accountId?: string | null): IMessageChunkMode;
169
+ /** Resolve a per-account view of the config (defaults filled in). */
170
+ export declare function resolveIMessageAccount(cfg: BrigadeConfig, accountId?: string | null, env?: NodeJS.ProcessEnv): ResolvedIMessageAccount;
171
+ /**
172
+ * Resolve the idle-thread-session TTL in ms, or `null` when unset / disabled.
173
+ * Accepts a number (ms) or a duration string (`"6h"`, `"30m"`, …). The cron
174
+ * session-reaper uses this to age out idle iMessage group sessions.
175
+ */
176
+ export declare function imessageThreadIdleTtlMs(cfg: BrigadeConfig): number | null;
177
+ export { CHANNEL_ID as IMESSAGE_CHANNEL_ID, DEFAULT_ACCOUNT_ID as IMESSAGE_DEFAULT_ACCOUNT_ID, CLI_PATH_ENV_VAR as IMESSAGE_CLI_PATH_ENV_VAR, DEFAULT_CLI_PATH as IMESSAGE_DEFAULT_CLI_PATH, };
178
+ //# sourceMappingURL=account-config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"account-config.d.ts","sourceRoot":"","sources":["../../../../src/agents/channels/imessage/account-config.ts"],"names":[],"mappings":"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"}