agent-nuvira 3.3.3 → 3.3.5

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 (366) hide show
  1. package/README.md +13 -5
  2. package/dist/agent-sdk/src/agent.d.ts +2 -0
  3. package/dist/agent-sdk/src/agent.d.ts.map +1 -1
  4. package/dist/agent-sdk/src/define.d.ts +64 -0
  5. package/dist/agent-sdk/src/define.d.ts.map +1 -0
  6. package/dist/agent-sdk/src/define.js +76 -0
  7. package/dist/agent-sdk/src/define.js.map +1 -0
  8. package/dist/agent-sdk/src/index.d.ts +9 -0
  9. package/dist/agent-sdk/src/index.d.ts.map +1 -1
  10. package/dist/agent-sdk/src/index.js +9 -0
  11. package/dist/agent-sdk/src/index.js.map +1 -1
  12. package/dist/agent-sdk/src/scaffold.d.ts +11 -0
  13. package/dist/agent-sdk/src/scaffold.d.ts.map +1 -1
  14. package/dist/agent-sdk/src/scaffold.js +16 -6
  15. package/dist/agent-sdk/src/scaffold.js.map +1 -1
  16. package/dist/agents/long-form-plan.d.ts.map +1 -1
  17. package/dist/agents/long-form-plan.js +2 -1
  18. package/dist/agents/long-form-plan.js.map +1 -1
  19. package/dist/agents/orchestrator.d.ts.map +1 -1
  20. package/dist/agents/orchestrator.js +5 -4
  21. package/dist/agents/orchestrator.js.map +1 -1
  22. package/dist/cli/agent.d.ts +2 -2
  23. package/dist/cli/agent.js +10 -10
  24. package/dist/cli/chat.d.ts +94 -0
  25. package/dist/cli/chat.d.ts.map +1 -1
  26. package/dist/cli/chat.js +354 -20
  27. package/dist/cli/chat.js.map +1 -1
  28. package/dist/cli/cli-program.d.ts.map +1 -1
  29. package/dist/cli/cli-program.js +5 -0
  30. package/dist/cli/cli-program.js.map +1 -1
  31. package/dist/cli/config.d.ts.map +1 -1
  32. package/dist/cli/config.js +9 -1
  33. package/dist/cli/config.js.map +1 -1
  34. package/dist/cli/doctor.d.ts.map +1 -1
  35. package/dist/cli/doctor.js +3 -2
  36. package/dist/cli/doctor.js.map +1 -1
  37. package/dist/cli/edit.js +2 -2
  38. package/dist/cli/eval.d.ts +17 -0
  39. package/dist/cli/eval.d.ts.map +1 -1
  40. package/dist/cli/eval.js +105 -2
  41. package/dist/cli/eval.js.map +1 -1
  42. package/dist/cli/execute.d.ts +16 -1
  43. package/dist/cli/execute.d.ts.map +1 -1
  44. package/dist/cli/execute.js +192 -22
  45. package/dist/cli/execute.js.map +1 -1
  46. package/dist/cli/loop-executor.d.ts +55 -0
  47. package/dist/cli/loop-executor.d.ts.map +1 -1
  48. package/dist/cli/loop-executor.js +212 -13
  49. package/dist/cli/loop-executor.js.map +1 -1
  50. package/dist/cli/model.d.ts.map +1 -1
  51. package/dist/cli/model.js +9 -8
  52. package/dist/cli/model.js.map +1 -1
  53. package/dist/cli/models.d.ts +1 -1
  54. package/dist/cli/models.js +4 -4
  55. package/dist/cli/parity.d.ts +85 -0
  56. package/dist/cli/parity.d.ts.map +1 -0
  57. package/dist/cli/parity.js +506 -0
  58. package/dist/cli/parity.js.map +1 -0
  59. package/dist/cli/plan.d.ts.map +1 -1
  60. package/dist/cli/plan.js +2 -1
  61. package/dist/cli/plan.js.map +1 -1
  62. package/dist/cli/retrieval.d.ts.map +1 -1
  63. package/dist/cli/retrieval.js +5 -4
  64. package/dist/cli/retrieval.js.map +1 -1
  65. package/dist/cli/sdk.js +4 -4
  66. package/dist/cli/sdk.js.map +1 -1
  67. package/dist/cli/trace.d.ts.map +1 -1
  68. package/dist/cli/trace.js +2 -1
  69. package/dist/cli/trace.js.map +1 -1
  70. package/dist/cli/workflow.js +2 -2
  71. package/dist/cli/workflow.js.map +1 -1
  72. package/dist/config/process-env.d.ts +136 -0
  73. package/dist/config/process-env.d.ts.map +1 -0
  74. package/dist/config/process-env.js +217 -0
  75. package/dist/config/process-env.js.map +1 -0
  76. package/dist/config/types.d.ts +44 -0
  77. package/dist/config/types.d.ts.map +1 -1
  78. package/dist/findings/verdicts.d.ts +241 -0
  79. package/dist/findings/verdicts.d.ts.map +1 -0
  80. package/dist/findings/verdicts.js +284 -0
  81. package/dist/findings/verdicts.js.map +1 -0
  82. package/dist/gateway/adapters.d.ts +65 -0
  83. package/dist/gateway/adapters.d.ts.map +1 -1
  84. package/dist/gateway/adapters.js +216 -10
  85. package/dist/gateway/adapters.js.map +1 -1
  86. package/dist/gateway/channel-directory.d.ts +31 -0
  87. package/dist/gateway/channel-directory.d.ts.map +1 -1
  88. package/dist/gateway/channel-directory.js +40 -0
  89. package/dist/gateway/channel-directory.js.map +1 -1
  90. package/dist/gateway/gateway-log.d.ts +1 -1
  91. package/dist/gateway/gateway-log.d.ts.map +1 -1
  92. package/dist/gateway/gateway-log.js.map +1 -1
  93. package/dist/gateway/hooks.d.ts +87 -19
  94. package/dist/gateway/hooks.d.ts.map +1 -1
  95. package/dist/gateway/hooks.js +62 -23
  96. package/dist/gateway/hooks.js.map +1 -1
  97. package/dist/gateway/inbound-media.d.ts +147 -0
  98. package/dist/gateway/inbound-media.d.ts.map +1 -0
  99. package/dist/gateway/inbound-media.js +317 -0
  100. package/dist/gateway/inbound-media.js.map +1 -0
  101. package/dist/gateway/inbox.d.ts +8 -1
  102. package/dist/gateway/inbox.d.ts.map +1 -1
  103. package/dist/gateway/inbox.js.map +1 -1
  104. package/dist/gateway/platform-config.d.ts +14 -0
  105. package/dist/gateway/platform-config.d.ts.map +1 -1
  106. package/dist/gateway/platform-config.js +26 -8
  107. package/dist/gateway/platform-config.js.map +1 -1
  108. package/dist/gateway/realtime.d.ts +114 -0
  109. package/dist/gateway/realtime.d.ts.map +1 -0
  110. package/dist/gateway/realtime.js +402 -0
  111. package/dist/gateway/realtime.js.map +1 -0
  112. package/dist/gateway/registry.d.ts +31 -0
  113. package/dist/gateway/registry.d.ts.map +1 -1
  114. package/dist/gateway/registry.js +224 -4
  115. package/dist/gateway/registry.js.map +1 -1
  116. package/dist/gateway/whatsapp/baileys-bridge.d.ts +11 -1
  117. package/dist/gateway/whatsapp/baileys-bridge.d.ts.map +1 -1
  118. package/dist/gateway/whatsapp/baileys-bridge.js +123 -4
  119. package/dist/gateway/whatsapp/baileys-bridge.js.map +1 -1
  120. package/dist/gateway/whatsapp/bridge.d.ts +6 -2
  121. package/dist/gateway/whatsapp/bridge.d.ts.map +1 -1
  122. package/dist/gateway/whatsapp/bridge.js.map +1 -1
  123. package/dist/index.js +8 -0
  124. package/dist/index.js.map +1 -1
  125. package/dist/inference/factory.d.ts +14 -0
  126. package/dist/inference/factory.d.ts.map +1 -1
  127. package/dist/inference/factory.js +17 -0
  128. package/dist/inference/factory.js.map +1 -1
  129. package/dist/inference/groq-adapter.d.ts +2 -0
  130. package/dist/inference/groq-adapter.d.ts.map +1 -1
  131. package/dist/inference/groq-adapter.js +16 -6
  132. package/dist/inference/groq-adapter.js.map +1 -1
  133. package/dist/inference/tools.d.ts.map +1 -1
  134. package/dist/inference/tools.js +29 -0
  135. package/dist/inference/tools.js.map +1 -1
  136. package/dist/learning/benchmark.d.ts.map +1 -1
  137. package/dist/learning/benchmark.js +3 -2
  138. package/dist/learning/benchmark.js.map +1 -1
  139. package/dist/learning/continuation.d.ts.map +1 -1
  140. package/dist/learning/continuation.js +2 -1
  141. package/dist/learning/continuation.js.map +1 -1
  142. package/dist/learning/cost-tracker.d.ts.map +1 -1
  143. package/dist/learning/cost-tracker.js +2 -1
  144. package/dist/learning/cost-tracker.js.map +1 -1
  145. package/dist/learning/deferred-task.d.ts.map +1 -1
  146. package/dist/learning/deferred-task.js +13 -4
  147. package/dist/learning/deferred-task.js.map +1 -1
  148. package/dist/learning/eval-framework.d.ts.map +1 -1
  149. package/dist/learning/eval-framework.js +2 -1
  150. package/dist/learning/eval-framework.js.map +1 -1
  151. package/dist/learning/long-form.d.ts.map +1 -1
  152. package/dist/learning/long-form.js +2 -1
  153. package/dist/learning/long-form.js.map +1 -1
  154. package/dist/learning/model-reachability.d.ts +95 -0
  155. package/dist/learning/model-reachability.d.ts.map +1 -0
  156. package/dist/learning/model-reachability.js +111 -0
  157. package/dist/learning/model-reachability.js.map +1 -0
  158. package/dist/learning/model-registry.d.ts +22 -0
  159. package/dist/learning/model-registry.d.ts.map +1 -1
  160. package/dist/learning/model-registry.js +26 -1
  161. package/dist/learning/model-registry.js.map +1 -1
  162. package/dist/learning/model-verify-job.d.ts +131 -0
  163. package/dist/learning/model-verify-job.d.ts.map +1 -0
  164. package/dist/learning/model-verify-job.js +221 -0
  165. package/dist/learning/model-verify-job.js.map +1 -0
  166. package/dist/learning/reasoning-cache.d.ts.map +1 -1
  167. package/dist/learning/reasoning-cache.js +2 -1
  168. package/dist/learning/reasoning-cache.js.map +1 -1
  169. package/dist/learning/reasoning-trace.d.ts +37 -1
  170. package/dist/learning/reasoning-trace.d.ts.map +1 -1
  171. package/dist/learning/reasoning-trace.js +66 -0
  172. package/dist/learning/reasoning-trace.js.map +1 -1
  173. package/dist/learning/resilient-call.d.ts.map +1 -1
  174. package/dist/learning/resilient-call.js +2 -1
  175. package/dist/learning/resilient-call.js.map +1 -1
  176. package/dist/learning/retrieval.d.ts.map +1 -1
  177. package/dist/learning/retrieval.js +2 -1
  178. package/dist/learning/retrieval.js.map +1 -1
  179. package/dist/learning/seeded-benchmark.d.ts +160 -0
  180. package/dist/learning/seeded-benchmark.d.ts.map +1 -0
  181. package/dist/learning/seeded-benchmark.js +321 -0
  182. package/dist/learning/seeded-benchmark.js.map +1 -0
  183. package/dist/learning/seeded-bugs.d.ts +142 -0
  184. package/dist/learning/seeded-bugs.d.ts.map +1 -0
  185. package/dist/learning/seeded-bugs.js +535 -0
  186. package/dist/learning/seeded-bugs.js.map +1 -0
  187. package/dist/learning/step-checkpoint.d.ts +127 -0
  188. package/dist/learning/step-checkpoint.d.ts.map +1 -0
  189. package/dist/learning/step-checkpoint.js +244 -0
  190. package/dist/learning/step-checkpoint.js.map +1 -0
  191. package/dist/nlu/intent-confirm.d.ts +23 -1
  192. package/dist/nlu/intent-confirm.d.ts.map +1 -1
  193. package/dist/nlu/intent-confirm.js +85 -2
  194. package/dist/nlu/intent-confirm.js.map +1 -1
  195. package/dist/nlu/learnings.d.ts +7 -0
  196. package/dist/nlu/learnings.d.ts.map +1 -1
  197. package/dist/nlu/learnings.js +7 -0
  198. package/dist/nlu/learnings.js.map +1 -1
  199. package/dist/observability/debug-log.d.ts +250 -0
  200. package/dist/observability/debug-log.d.ts.map +1 -0
  201. package/dist/observability/debug-log.js +500 -0
  202. package/dist/observability/debug-log.js.map +1 -0
  203. package/dist/observability/event-bus.d.ts.map +1 -1
  204. package/dist/observability/event-bus.js +4 -1
  205. package/dist/observability/event-bus.js.map +1 -1
  206. package/dist/observability/otel.d.ts +278 -0
  207. package/dist/observability/otel.d.ts.map +1 -0
  208. package/dist/observability/otel.js +590 -0
  209. package/dist/observability/otel.js.map +1 -0
  210. package/dist/parity/drivers.d.ts +99 -0
  211. package/dist/parity/drivers.d.ts.map +1 -0
  212. package/dist/parity/drivers.js +1362 -0
  213. package/dist/parity/drivers.js.map +1 -0
  214. package/dist/parity/graph.d.ts +73 -0
  215. package/dist/parity/graph.d.ts.map +1 -0
  216. package/dist/parity/graph.js +162 -0
  217. package/dist/parity/graph.js.map +1 -0
  218. package/dist/parity/matrix.d.ts +105 -0
  219. package/dist/parity/matrix.d.ts.map +1 -0
  220. package/dist/parity/matrix.js +352 -0
  221. package/dist/parity/matrix.js.map +1 -0
  222. package/dist/parity/observation.d.ts +444 -0
  223. package/dist/parity/observation.d.ts.map +1 -0
  224. package/dist/parity/observation.js +333 -0
  225. package/dist/parity/observation.js.map +1 -0
  226. package/dist/parity/scenarios.d.ts +229 -0
  227. package/dist/parity/scenarios.d.ts.map +1 -0
  228. package/dist/parity/scenarios.js +175 -0
  229. package/dist/parity/scenarios.js.map +1 -0
  230. package/dist/parity/surfaces.d.ts +122 -0
  231. package/dist/parity/surfaces.d.ts.map +1 -0
  232. package/dist/parity/surfaces.js +190 -0
  233. package/dist/parity/surfaces.js.map +1 -0
  234. package/dist/runtime/fault-injection.d.ts +173 -0
  235. package/dist/runtime/fault-injection.d.ts.map +1 -0
  236. package/dist/runtime/fault-injection.js +281 -0
  237. package/dist/runtime/fault-injection.js.map +1 -0
  238. package/dist/tools/child-agent-entry.d.ts +23 -0
  239. package/dist/tools/child-agent-entry.d.ts.map +1 -0
  240. package/dist/tools/child-agent-entry.js +129 -0
  241. package/dist/tools/child-agent-entry.js.map +1 -0
  242. package/dist/tools/child-agent-runtime.d.ts +124 -0
  243. package/dist/tools/child-agent-runtime.d.ts.map +1 -0
  244. package/dist/tools/child-agent-runtime.js +704 -0
  245. package/dist/tools/child-agent-runtime.js.map +1 -0
  246. package/dist/tools/coding-tools.d.ts.map +1 -1
  247. package/dist/tools/coding-tools.js +82 -10
  248. package/dist/tools/coding-tools.js.map +1 -1
  249. package/dist/tools/delegation-system.d.ts +31 -0
  250. package/dist/tools/delegation-system.d.ts.map +1 -1
  251. package/dist/tools/delegation-system.js +70 -9
  252. package/dist/tools/delegation-system.js.map +1 -1
  253. package/dist/tools/extract/docx.d.ts +27 -0
  254. package/dist/tools/extract/docx.d.ts.map +1 -0
  255. package/dist/tools/extract/docx.js +48 -0
  256. package/dist/tools/extract/docx.js.map +1 -0
  257. package/dist/tools/extract/html-text.d.ts +27 -0
  258. package/dist/tools/extract/html-text.d.ts.map +1 -0
  259. package/dist/tools/extract/html-text.js +86 -0
  260. package/dist/tools/extract/html-text.js.map +1 -0
  261. package/dist/tools/extract/pdf-ocr.d.ts +58 -0
  262. package/dist/tools/extract/pdf-ocr.d.ts.map +1 -0
  263. package/dist/tools/extract/pdf-ocr.js +116 -0
  264. package/dist/tools/extract/pdf-ocr.js.map +1 -0
  265. package/dist/tools/extract/pdf.d.ts +65 -0
  266. package/dist/tools/extract/pdf.d.ts.map +1 -0
  267. package/dist/tools/extract/pdf.js +197 -0
  268. package/dist/tools/extract/pdf.js.map +1 -0
  269. package/dist/tools/extract/pptx.d.ts +32 -0
  270. package/dist/tools/extract/pptx.d.ts.map +1 -0
  271. package/dist/tools/extract/pptx.js +77 -0
  272. package/dist/tools/extract/pptx.js.map +1 -0
  273. package/dist/tools/extract/xlsx.d.ts +47 -0
  274. package/dist/tools/extract/xlsx.d.ts.map +1 -0
  275. package/dist/tools/extract/xlsx.js +111 -0
  276. package/dist/tools/extract/xlsx.js.map +1 -0
  277. package/dist/tools/finding-tool.d.ts +76 -0
  278. package/dist/tools/finding-tool.d.ts.map +1 -0
  279. package/dist/tools/finding-tool.js +125 -0
  280. package/dist/tools/finding-tool.js.map +1 -0
  281. package/dist/tools/messaging-tools.d.ts +41 -11
  282. package/dist/tools/messaging-tools.d.ts.map +1 -1
  283. package/dist/tools/messaging-tools.js +104 -55
  284. package/dist/tools/messaging-tools.js.map +1 -1
  285. package/dist/tools/neutts-synth.d.ts +27 -3
  286. package/dist/tools/neutts-synth.d.ts.map +1 -1
  287. package/dist/tools/neutts-synth.js +57 -13
  288. package/dist/tools/neutts-synth.js.map +1 -1
  289. package/dist/tools/pipeline-tool.d.ts +43 -1
  290. package/dist/tools/pipeline-tool.d.ts.map +1 -1
  291. package/dist/tools/pipeline-tool.js +13 -2
  292. package/dist/tools/pipeline-tool.js.map +1 -1
  293. package/dist/tools/read-extract.d.ts +116 -45
  294. package/dist/tools/read-extract.d.ts.map +1 -1
  295. package/dist/tools/read-extract.js +494 -158
  296. package/dist/tools/read-extract.js.map +1 -1
  297. package/dist/tools/registry.d.ts +2 -2
  298. package/dist/tools/registry.d.ts.map +1 -1
  299. package/dist/tools/registry.js +152 -23
  300. package/dist/tools/registry.js.map +1 -1
  301. package/dist/tools/subagent-refusal.d.ts +15 -0
  302. package/dist/tools/subagent-refusal.d.ts.map +1 -0
  303. package/dist/tools/subagent-refusal.js +18 -0
  304. package/dist/tools/subagent-refusal.js.map +1 -0
  305. package/dist/tools/subagent-spawner.d.ts +122 -0
  306. package/dist/tools/subagent-spawner.d.ts.map +1 -1
  307. package/dist/tools/subagent-spawner.js +249 -28
  308. package/dist/tools/subagent-spawner.js.map +1 -1
  309. package/dist/tools/tool-hooks.d.ts +177 -0
  310. package/dist/tools/tool-hooks.d.ts.map +1 -0
  311. package/dist/tools/tool-hooks.js +427 -0
  312. package/dist/tools/tool-hooks.js.map +1 -0
  313. package/dist/tools/tool-loop.d.ts +82 -0
  314. package/dist/tools/tool-loop.d.ts.map +1 -1
  315. package/dist/tools/tool-loop.js +167 -9
  316. package/dist/tools/tool-loop.js.map +1 -1
  317. package/dist/tools/tool-refusal.d.ts +68 -0
  318. package/dist/tools/tool-refusal.d.ts.map +1 -0
  319. package/dist/tools/tool-refusal.js +78 -0
  320. package/dist/tools/tool-refusal.js.map +1 -0
  321. package/dist/tools/toolsets.d.ts +8 -0
  322. package/dist/tools/toolsets.d.ts.map +1 -1
  323. package/dist/tools/toolsets.js +12 -2
  324. package/dist/tools/toolsets.js.map +1 -1
  325. package/dist/tools/vision-tools.d.ts +88 -83
  326. package/dist/tools/vision-tools.d.ts.map +1 -1
  327. package/dist/tools/vision-tools.js +134 -103
  328. package/dist/tools/vision-tools.js.map +1 -1
  329. package/dist/tools/worktree.d.ts +210 -0
  330. package/dist/tools/worktree.d.ts.map +1 -0
  331. package/dist/tools/worktree.js +374 -0
  332. package/dist/tools/worktree.js.map +1 -0
  333. package/dist/utils/format.d.ts +3 -0
  334. package/dist/utils/format.d.ts.map +1 -0
  335. package/dist/utils/format.js +32 -0
  336. package/dist/utils/format.js.map +1 -0
  337. package/dist/web-dashboard/attachment-extract.d.ts +64 -0
  338. package/dist/web-dashboard/attachment-extract.d.ts.map +1 -0
  339. package/dist/web-dashboard/attachment-extract.js +154 -0
  340. package/dist/web-dashboard/attachment-extract.js.map +1 -0
  341. package/dist/web-dashboard/chat-console.d.ts +108 -1
  342. package/dist/web-dashboard/chat-console.d.ts.map +1 -1
  343. package/dist/web-dashboard/chat-console.js +36 -0
  344. package/dist/web-dashboard/chat-console.js.map +1 -1
  345. package/dist/web-dashboard/hub-data.d.ts +37 -0
  346. package/dist/web-dashboard/hub-data.d.ts.map +1 -1
  347. package/dist/web-dashboard/hub-data.js +61 -1
  348. package/dist/web-dashboard/hub-data.js.map +1 -1
  349. package/dist/web-dashboard/process-env-inventory.d.ts +57 -0
  350. package/dist/web-dashboard/process-env-inventory.d.ts.map +1 -0
  351. package/dist/web-dashboard/process-env-inventory.js +96 -0
  352. package/dist/web-dashboard/process-env-inventory.js.map +1 -0
  353. package/dist/web-dashboard/server.d.ts +14 -0
  354. package/dist/web-dashboard/server.d.ts.map +1 -1
  355. package/dist/web-dashboard/server.js +493 -30
  356. package/dist/web-dashboard/server.js.map +1 -1
  357. package/dist/web-dashboard/src/types.d.ts +261 -48
  358. package/dist/web-dashboard/src/types.d.ts.map +1 -1
  359. package/package.json +18 -3
  360. package/src/web-dashboard/public/assets/{index-Cyd6tIew.css → index-CIJ6FHHZ.css} +1 -1
  361. package/src/web-dashboard/public/assets/index-CsySzR41.js +207 -0
  362. package/src/web-dashboard/public/assets/index-CsySzR41.js.map +1 -0
  363. package/src/web-dashboard/public/index.html +2 -2
  364. package/dist/tools/child-agent-worker.js +0 -212
  365. package/src/web-dashboard/public/assets/index-CxDj7p6i.js +0 -207
  366. package/src/web-dashboard/public/assets/index-CxDj7p6i.js.map +0 -1
@@ -14,6 +14,7 @@
14
14
  */
15
15
  import type { Platform } from './channel-directory.js';
16
16
  import type { WhatsAppBridge } from './whatsapp/bridge.js';
17
+ import { type InboundMedia } from './inbound-media.js';
17
18
  export interface InboundMessage {
18
19
  platform: Platform;
19
20
  /** Channel id (chat id / webhook channel id) to REPLY to. */
@@ -38,6 +39,13 @@ export interface InboundMessage {
38
39
  * every delivery is treated as new (content dedup is opt-in — see dedup.ts).
39
40
  */
40
41
  messageId?: string;
42
+ /**
43
+ * A document/image attachment that rode in on this message, already
44
+ * downloaded by the transport. `handleInbound` hydrates it through the same
45
+ * `read_extract` the agent uses, so a document is TEXT by the time routing
46
+ * happens instead of a message with empty text that gets dropped.
47
+ */
48
+ media?: InboundMedia;
41
49
  }
42
50
  /** The handler an adapter calls for every inbound message. */
43
51
  export type MessageHandler = (msg: InboundMessage) => void | Promise<void>;
@@ -100,6 +108,17 @@ export declare class TelegramAdapter implements ChannelAdapter {
100
108
  describe(): string;
101
109
  private api;
102
110
  start(onMessage: MessageHandler): Promise<void>;
111
+ /**
112
+ * Download an inbound attachment's bytes via `getFile` + the file endpoint.
113
+ * Never throws — returns null on any failure (or when the file is larger than
114
+ * the extraction cap), so the turn still runs with its caption text.
115
+ */
116
+ private downloadFile;
117
+ /**
118
+ * Build the inbound media payload from a Telegram message, or null when it
119
+ * carries none. Photos arrive as several sizes — the largest is used.
120
+ */
121
+ private inboundMedia;
103
122
  stop(): Promise<void>;
104
123
  send(channelId: string, text: string): Promise<boolean>;
105
124
  /**
@@ -138,7 +157,16 @@ export declare class DiscordAdapter extends WebhookChannelAdapter {
138
157
  readonly tokenEnvVar = "BUFF_DISCORD_BOT_TOKEN";
139
158
  readonly configured: boolean;
140
159
  constructor();
160
+ /** The real-time Gateway connection, when a bot token is configured. */
161
+ private gateway;
141
162
  describe(): string;
163
+ /**
164
+ * Inbound Discord messages arrive over the Gateway WebSocket (a bot cannot
165
+ * own the Discord webhook), so a bot token starts the real-time source. The
166
+ * shared webhook receiver still serves outbound-only webhook setups.
167
+ */
168
+ start(onMessage: MessageHandler): Promise<void>;
169
+ stop(): Promise<void>;
142
170
  protected sendUrl(channelId: string): string;
143
171
  protected payloadFor(_channelId: string, text: string): unknown;
144
172
  /**
@@ -156,7 +184,16 @@ export declare class SlackAdapter extends WebhookChannelAdapter {
156
184
  readonly tokenEnvVar = "BUFF_SLACK_BOT_TOKEN";
157
185
  readonly configured: boolean;
158
186
  constructor();
187
+ /** The Socket Mode connection, when an app-level token is configured. */
188
+ private socketMode;
159
189
  describe(): string;
190
+ /**
191
+ * Slack Events API inbound needs a public HTTPS endpoint; apps that cannot
192
+ * expose one use Socket Mode, which carries the same `event_callback`
193
+ * envelopes. Enabled by an app-level token (`SLACK_APP_TOKEN`, `xapp-…`).
194
+ */
195
+ start(onMessage: MessageHandler): Promise<void>;
196
+ stop(): Promise<void>;
160
197
  protected sendUrl(channelId: string): string;
161
198
  protected payloadFor(channelId: string, text: string): unknown;
162
199
  }
@@ -636,6 +673,15 @@ export declare class HomeAssistantAdapter implements ChannelAdapter {
636
673
  stop(): Promise<void>;
637
674
  send(channelId: string, text: string): Promise<boolean>;
638
675
  }
676
+ /** An inbound webhook attachment that must be downloaded before extraction. */
677
+ export interface WebhookAttachment {
678
+ url: string;
679
+ filename?: string;
680
+ mimetype?: string;
681
+ size?: number;
682
+ /** True when fetching the URL needs the platform bot token (Slack files). */
683
+ authenticated?: boolean;
684
+ }
639
685
  /** Payload parsers: extract {channelId, text, from} from each platform's webhook body. */
640
686
  export interface WebhookPayload {
641
687
  channelId: string;
@@ -647,7 +693,20 @@ export interface WebhookPayload {
647
693
  isGroup?: boolean;
648
694
  /** The platform's message id, when the webhook body carries one (dedup). */
649
695
  messageId?: string;
696
+ /** An attachment that rode in on the message (Discord CDN / Slack file). */
697
+ media?: {
698
+ type: InboundMedia['type'];
699
+ attachment: WebhookAttachment;
700
+ caption?: string;
701
+ };
650
702
  }
703
+ /**
704
+ * Classify an attachment by MIME type, falling back to its filename extension.
705
+ * Exported for the real-time transports (`realtime.ts`), which receive Discord
706
+ * `content_type` / Slack `mimetype` on a live gateway event rather than a
707
+ * webhook body.
708
+ */
709
+ export declare function mediaKindFromMime(mimetype?: string, filename?: string): InboundMedia['type'];
651
710
  /**
652
711
  * Parse platform-specific webhook bodies into a normal InboundMessage.
653
712
  * Returns null when the payload isn't a user message (e.g. Slack challenge).
@@ -665,6 +724,12 @@ export declare class WebhookReceiver {
665
724
  * When the platform secret is set, unsigned POSTs are rejected (401).
666
725
  */
667
726
  start(onMessage: MessageHandler, port?: number, host?: string): Promise<void>;
727
+ /**
728
+ * Download a webhook attachment's bytes. Never throws — returns null on any
729
+ * failure, so the text turn still runs. Slack's `url_private*` endpoints need
730
+ * the bot token; Discord's CDN URL is public.
731
+ */
732
+ private downloadWebhookMedia;
668
733
  /**
669
734
  * Verify a webhook POST's platform signature. Returns true when the
670
735
  * platform has NO secret configured (local/trusted setup) or the signature
@@ -1 +1 @@
1
- {"version":3,"file":"adapters.d.ts","sourceRoot":"","sources":["../../src/gateway/adapters.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAOH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAEvD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAM3D,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,QAAQ,CAAC;IACnB,6DAA6D;IAC7D,SAAS,EAAE,MAAM,CAAC;IAClB,oBAAoB;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,+CAA+C;IAC/C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,sEAAsE;IACtE,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;;;;OAMG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,8DAA8D;AAC9D,MAAM,MAAM,cAAc,GAAG,CAAC,GAAG,EAAE,cAAc,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAI3E,8EAA8E;AAC9E,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,UAAU,CAAC;IAC/C,IAAI,EAAE,UAAU,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC5B,6DAA6D;IAC7D,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAC7B,qDAAqD;IACrD,QAAQ,IAAI,MAAM,CAAC;IACnB,sEAAsE;IACtE,KAAK,CAAC,SAAS,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAChD,mCAAmC;IACnC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACtB,wEAAwE;IACxE,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACxD;;;;;;OAMG;IACH,YAAY,CAAC,CACX,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,GACX,OAAO,CAAC;QAAE,EAAE,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACnE;;;;OAIG;IACH,SAAS,CAAC,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CACtE;AAsBD,qEAAqE;AACrE,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,SAAO,GAAG,MAAM,CAGjE;AAED,0EAA0E;AAC1E,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,YAAY,CAAC,MAAM,CAAC,GAAG,MAAM,CAOvE;AAcD;;;GAGG;AACH,qBAAa,eAAgB,YAAW,cAAc;IACpD,QAAQ,CAAC,QAAQ,EAAG,UAAU,CAAU;IACxC,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAC7B,OAAO,CAAC,KAAK,CAAM;IACnB,OAAO,CAAC,MAAM,CAAK;IACnB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,KAAK,CAA+B;IAC5C,OAAO,CAAC,OAAO,CAA+B;IAC9C,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAS;gBAE5B,KAAK,CAAC,EAAE,MAAM,EAAE,cAAc,SAAO;IAMjD,QAAQ,IAAI,MAAM;IAIlB,OAAO,CAAC,GAAG;IAQL,KAAK,CAAC,SAAS,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IA6C/C,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAMrB,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAgB7D;;;;OAIG;IACG,SAAS,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC;CAe1E;AAID;;;GAGG;AACH,8BAAsB,qBAAsB,YAAW,cAAc;IACnE,QAAQ,CAAC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IACrC,QAAQ,CAAC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IACxC,QAAQ,CAAC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IACtC,QAAQ,CAAC,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAEtC,SAAS,CAAC,UAAU,SAAM;IAC1B,SAAS,CAAC,KAAK,SAAM;IAErB,QAAQ,CAAC,QAAQ,IAAI,MAAM;IAE3B,+CAA+C;IAC/C,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM;IAErD,wDAAwD;IACxD,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO;IAEvE,0EAA0E;IAC1E,SAAS,CAAC,YAAY,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAI1C,KAAK,CAAC,UAAU,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAIhD,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAIrB,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;CAI9D;AAED,0EAA0E;AAC1E,qBAAa,cAAe,SAAQ,qBAAqB;IACvD,QAAQ,CAAC,QAAQ,EAAG,SAAS,CAAU;IACvC,QAAQ,CAAC,aAAa,8BAA8B;IACpD,QAAQ,CAAC,WAAW,4BAA4B;IAChD,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;;IAS7B,QAAQ,IAAI,MAAM;IAIlB,SAAS,CAAC,OAAO,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM;IAQ5C,SAAS,CAAC,UAAU,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO;IAI/D;;;;;OAKG;IACG,SAAS,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC;CAiB1E;AAED,sEAAsE;AACtE,qBAAa,YAAa,SAAQ,qBAAqB;IACrD,QAAQ,CAAC,QAAQ,EAAG,OAAO,CAAU;IACrC,QAAQ,CAAC,aAAa,4BAA4B;IAClD,QAAQ,CAAC,WAAW,0BAA0B;IAC9C,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;;IAS7B,QAAQ,IAAI,MAAM;IAIlB,SAAS,CAAC,OAAO,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM;IAK5C,SAAS,CAAC,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO;CAG/D;AAED,gFAAgF;AAChF,qBAAa,oBAAqB,SAAQ,qBAAqB;IAI7D,QAAQ,CAAC,QAAQ,EAAG,gBAAgB,CAAU;IAC9C,QAAQ,CAAC,aAAa,4BAA4B;IAClD,QAAQ,CAAC,WAAW,yBAAyB;IAC7C,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAC7B,OAAO,CAAC,OAAO,CAAM;;IASrB,QAAQ,IAAI,MAAM;IAIlB,SAAS,CAAC,OAAO,IAAI,MAAM;IAI3B,SAAS,CAAC,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO;CAQ/D;AAID;;;;;GAKG;AACH,qBAAa,qBAAsB,YAAW,cAAc;IAKxD,OAAO,CAAC,QAAQ,CAAC,MAAM;IAJzB,QAAQ,CAAC,QAAQ,EAAG,UAAU,CAAU;IACxC,OAAO,CAAC,OAAO,CAA+B;gBAG3B,MAAM,GAAE,cAEvB;IAGJ,yEAAyE;IACzE,IAAI,UAAU,IAAI,OAAO,CAExB;IAED,QAAQ,IAAI,MAAM;IAIZ,KAAK,CAAC,SAAS,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAsB/C,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAK3B,4EAA4E;IACtE,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAK7D;;;;;;OAMG;IACG,YAAY,CAChB,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,GACX,OAAO,CAAC;QAAE,EAAE,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAYlE,2EAA2E;IACrE,SAAS,CAAC,CACd,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE;QAAE,IAAI,EAAE,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,UAAU,CAAC;QAAC,IAAI,EAAE,UAAU,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,GAC/G,OAAO,CAAC,OAAO,CAAC;CAIpB;AAiBD,mFAAmF;AACnF,qBAAa,eAAgB,SAAQ,qBAAqB;IACxD,QAAQ,CAAC,QAAQ,EAAG,UAAU,CAAU;IACxC,QAAQ,CAAC,aAAa,+BAA+B;IACrD,QAAQ,CAAC,WAAW,+BAA+B;IACnD,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;;IAQ7B,QAAQ,IAAI,MAAM;IAIlB,SAAS,CAAC,OAAO,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM;IAI7C,SAAS,CAAC,UAAU,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO;CAGhE;AAED,iFAAiF;AACjF,qBAAa,aAAc,SAAQ,qBAAqB;IACtD,QAAQ,CAAC,QAAQ,EAAG,QAAQ,CAAU;IACtC,QAAQ,CAAC,aAAa,6BAA6B;IACnD,QAAQ,CAAC,WAAW,6BAA6B;IACjD,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;;IAQ7B,QAAQ,IAAI,MAAM;IAIlB,SAAS,CAAC,OAAO,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM;IAI7C,SAAS,CAAC,UAAU,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO;CAGhE;AAED,mFAAmF;AACnF,qBAAa,YAAa,SAAQ,qBAAqB;IACrD,QAAQ,CAAC,QAAQ,EAAG,OAAO,CAAU;IACrC,QAAQ,CAAC,aAAa,4BAA4B;IAClD,QAAQ,CAAC,WAAW,4BAA4B;IAChD,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;;IAQ7B,QAAQ,IAAI,MAAM;IAIlB,SAAS,CAAC,OAAO,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM;IAI7C,SAAS,CAAC,UAAU,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO;CAGhE;AAED,6EAA6E;AAC7E,qBAAa,iBAAkB,SAAQ,qBAAqB;IAC1D,QAAQ,CAAC,QAAQ,EAAG,YAAY,CAAU;IAC1C,QAAQ,CAAC,aAAa,iCAAiC;IACvD,QAAQ,CAAC,WAAW,iCAAiC;IACrD,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;;IAQ7B,QAAQ,IAAI,MAAM;IAIlB,SAAS,CAAC,OAAO,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM;IAI7C,SAAS,CAAC,UAAU,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO;CAGhE;AAED,0EAA0E;AAC1E,qBAAa,aAAc,SAAQ,qBAAqB;IACtD,QAAQ,CAAC,QAAQ,EAAG,QAAQ,CAAU;IACtC,QAAQ,CAAC,aAAa,4BAA4B;IAClD,QAAQ,CAAC,WAAW,8BAA8B;IAClD,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAC7B,OAAO,CAAC,UAAU,CAAM;IACxB,OAAO,CAAC,OAAO,CAA+B;IAC9C,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,KAAK,CAA+B;IAC5C,OAAO,CAAC,KAAK,CAAuB;IACpC,OAAO,CAAC,SAAS,CAAM;;IASvB,QAAQ,IAAI,MAAM;IAIlB,SAAS,CAAC,OAAO,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM;IAI5C,SAAS,CAAC,UAAU,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO;IAI/D;;;;OAIG;IACG,KAAK,CAAC,SAAS,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAiB/C,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;YAOb,IAAI;CAkCnB;AAED,yEAAyE;AACzE,qBAAa,qBAAsB,SAAQ,qBAAqB;IAC9D,QAAQ,CAAC,QAAQ,EAAG,SAAS,CAAU;IACvC,QAAQ,CAAC,aAAa,sBAAsB;IAC5C,QAAQ,CAAC,WAAW,sBAAsB;IAC1C,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;;IAQ7B,QAAQ,IAAI,MAAM;IAIlB,SAAS,CAAC,OAAO,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM;IAI7C,SAAS,CAAC,UAAU,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO;CAGhE;AAED,+EAA+E;AAC/E,qBAAa,kBAAmB,SAAQ,qBAAqB;IAC3D,QAAQ,CAAC,QAAQ,EAAG,aAAa,CAAU;IAC3C,QAAQ,CAAC,aAAa,0BAA0B;IAChD,QAAQ,CAAC,WAAW,+BAA+B;IACnD,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAC7B,OAAO,CAAC,SAAS,CAAM;;IASvB,QAAQ,IAAI,MAAM;IAIlB,SAAS,CAAC,OAAO,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM;IAI7C,SAAS,CAAC,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO;CAG/D;AAID,mFAAmF;AACnF,qBAAa,WAAY,SAAQ,qBAAqB;IACpD,QAAQ,CAAC,QAAQ,EAAG,MAAM,CAAU;IACpC,QAAQ,CAAC,aAAa,mBAAmB;IACzC,QAAQ,CAAC,WAAW,qBAAqB;IACzC,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAC7B,OAAO,CAAC,OAAO,CAAM;IACrB,OAAO,CAAC,KAAK,CAAM;;IAUnB,QAAQ,IAAI,MAAM;IAIlB,SAAS,CAAC,OAAO,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM;IAI7C,SAAS,CAAC,UAAU,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO;CAKhE;AAED,6EAA6E;AAC7E,qBAAa,YAAa,SAAQ,qBAAqB;IACrD,QAAQ,CAAC,QAAQ,EAAG,OAAO,CAAU;IACrC,QAAQ,CAAC,aAAa,4BAA4B;IAClD,QAAQ,CAAC,WAAW,4BAA4B;IAChD,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;;IAQ7B,QAAQ,IAAI,MAAM;IAIlB,SAAS,CAAC,OAAO,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM;IAI7C,SAAS,CAAC,UAAU,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO;CAGhE;AAED,4EAA4E;AAC5E,qBAAa,iBAAkB,SAAQ,qBAAqB;IAC1D,QAAQ,CAAC,QAAQ,EAAG,aAAa,CAAU;IAC3C,QAAQ,CAAC,aAAa,kCAAkC;IACxD,QAAQ,CAAC,WAAW,kCAAkC;IACtD,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;;IAQ7B,QAAQ,IAAI,MAAM;IAIlB,SAAS,CAAC,OAAO,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM;IAI7C,SAAS,CAAC,UAAU,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO;CAGhE;AAED;;;;GAIG;AACH,qBAAa,aAAc,SAAQ,qBAAqB;IACtD,QAAQ,CAAC,QAAQ,EAAG,QAAQ,CAAU;IACtC,QAAQ,CAAC,aAAa,0BAA0B;IAChD,QAAQ,CAAC,WAAW,uBAAuB;IAC3C,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAC7B,OAAO,CAAC,OAAO,CAAM;;IASrB,QAAQ,IAAI,MAAM;IAIlB,SAAS,CAAC,OAAO,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM;IAI7C,SAAS,CAAC,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO;IAa9D,SAAS,CAAC,YAAY,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;CAKjD;AAID,uDAAuD;AACvD,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,yFAAyF;IACzF,MAAM,EAAE,OAAO,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;CACd;AAED,iEAAiE;AACjE,wBAAgB,kBAAkB,IAAI,WAAW,CAYhD;AAED;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,WAAW,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,SAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,CAkIzG;AAED,gFAAgF;AAChF,qBAAa,YAAa,YAAW,cAAc;IACjD,QAAQ,CAAC,QAAQ,EAAG,OAAO,CAAU;IACrC,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAC7B,OAAO,CAAC,IAAI,CAAc;gBAEd,IAAI,CAAC,EAAE,WAAW;IAK9B,QAAQ,IAAI,MAAM;IAMZ,KAAK,CAAC,UAAU,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAIhD,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAIrB,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;CAI9D;AAID;;;;;;GAMG;AACH,qBAAa,aAAc,YAAW,cAAc;IAClD,QAAQ,CAAC,QAAQ,EAAG,QAAQ,CAAU;IACtC,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAC7B,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,OAAO,CAAS;gBAEZ,OAAO,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM;IAM9C,QAAQ,IAAI,MAAM;IAMZ,KAAK,CAAC,UAAU,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAIhD,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAIrB,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;CAQ9D;AAID;;;;;;GAMG;AACH,qBAAa,UAAW,YAAW,cAAc;IAC/C,QAAQ,CAAC,QAAQ,EAAG,KAAK,CAAU;IACnC,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAC7B,OAAO,CAAC,UAAU,CAAM;IACxB,OAAO,CAAC,SAAS,CAAM;IACvB,OAAO,CAAC,UAAU,CAAM;gBAEZ,UAAU,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM;IAOxE,QAAQ,IAAI,MAAM;IAMZ,KAAK,CAAC,UAAU,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAIhD,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAIrB,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;CAwB9D;AAID,qDAAqD;AACrD,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,OAAO,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,2EAA2E;IAC3E,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,+DAA+D;IAC/D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,8EAA8E;IAC9E,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;CACzB;AAED,mEAAmE;AACnE,wBAAgB,iBAAiB,IAAI,UAAU,CAwB9C;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAiBrD;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,SAAM,GAAG,MAAM,EAAE,CAiC1F;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,EAAE,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAuBjH;AAED,2EAA2E;AAC3E,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAGrD;AAaD,wBAAgB,OAAO,CAAC,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,SAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,CAqI3G;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,qBAAa,UAAW,YAAW,cAAc;IAC/C,QAAQ,CAAC,QAAQ,EAAG,KAAK,CAAU;IACnC,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAC7B,OAAO,CAAC,IAAI,CAAa;IACzB,OAAO,CAAC,OAAO,CAA+B;IAC9C,OAAO,CAAC,IAAI,CAAmC;IAC/C,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,cAAc,CAA+B;IACrD,OAAO,CAAC,WAAW,CAAM;IACzB,OAAO,CAAC,MAAM,CAAM;gBAER,IAAI,CAAC,EAAE,UAAU;IAM7B,QAAQ,IAAI,MAAM;IAMlB;;;;OAIG;IACG,KAAK,CAAC,SAAS,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAU/C,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAmB3B,OAAO,CAAC,OAAO;IAuBf,OAAO,CAAC,QAAQ;IAMhB,OAAO,CAAC,iBAAiB;IAQzB,OAAO,CAAC,MAAM;IAcd,OAAO,CAAC,UAAU;IAyClB,OAAO,CAAC,aAAa;IAiCf,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;CAsB9D;AAID;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,sEAAsE;IACtE,KAAK,EAAE,MAAM,CAAC;IACd,+DAA+D;IAC/D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,kFAAkF;IAClF,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,wEAAwE;IACxE,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,8DAA8D;AAC9D,wBAAgB,qBAAqB,IAAI,cAAc,CAatD;AAED;;;;;;;;;GASG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,SAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,CA2EtH;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,qBAAa,cAAe,YAAW,cAAc;IACnD,QAAQ,CAAC,QAAQ,EAAG,SAAS,CAAU;IACvC,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAC7B,OAAO,CAAC,IAAI,CAAiB;IAC7B,OAAO,CAAC,OAAO,CAA+B;IAC9C,OAAO,CAAC,EAAE,CAA0B;IACpC,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,cAAc,CAA+B;gBAEzC,IAAI,CAAC,EAAE,cAAc;IAKjC,QAAQ,IAAI,MAAM;IAMlB;;;;OAIG;IACG,KAAK,CAAC,SAAS,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAS/C,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAQ3B,OAAO,CAAC,OAAO;IAgBf,OAAO,CAAC,iBAAiB;IAQzB,OAAO,CAAC,WAAW;IAyBnB,OAAO,CAAC,cAAc;IA0CtB,OAAO,CAAC,cAAc;IAKtB,OAAO,CAAC,YAAY;IAKpB,OAAO,CAAC,aAAa;IAMf,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;CAK9D;AAID;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,yFAAyF;IACzF,GAAG,EAAE,MAAM,CAAC;IACZ,+BAA+B;IAC/B,KAAK,EAAE,MAAM,CAAC;CACf;AAED,+EAA+E;AAC/E,wBAAgB,kBAAkB,IAAI,WAAW,CAKhD;AAED;;;;;;;;GAQG;AACH,qBAAa,oBAAqB,YAAW,cAAc;IACzD,QAAQ,CAAC,QAAQ,EAAG,eAAe,CAAU;IAC7C,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAC7B,OAAO,CAAC,IAAI,CAAc;gBAEd,IAAI,CAAC,EAAE,WAAW;IAK9B,QAAQ,IAAI,MAAM;IAMZ,KAAK,CAAC,UAAU,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAIhD,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAIrB,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;CAc9D;AAID,0FAA0F;AAC1F,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,kEAAkE;IAClE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,sEAAsE;IACtE,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,4EAA4E;IAC5E,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,GAAG,cAAc,GAAG,IAAI,CAsDxF;AAED,iFAAiF;AACjF,qBAAa,eAAe;IAC1B,OAAO,CAAC,MAAM,CAAuB;IACrC,OAAO,CAAC,OAAO,CAA+B;IAE9C;;;;;;OAMG;IACG,KAAK,CAAC,SAAS,EAAE,cAAc,EAAE,IAAI,SAAO,EAAE,IAAI,SAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAsDtF;;;;;;OAMG;IACH,OAAO,CAAC,eAAe;IAqBvB,OAAO,CAAC,gBAAgB;IAOlB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;CAM5B;AAYD,uDAAuD;AACvD,wBAAgB,wBAAwB,IAAI,cAAc,EAAE,CAgC3D"}
1
+ {"version":3,"file":"adapters.d.ts","sourceRoot":"","sources":["../../src/gateway/adapters.ts"],"names":[],"mappings":"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"}
@@ -14,12 +14,14 @@
14
14
  */
15
15
  import { createServer } from 'node:http';
16
16
  import { envBuff } from '../config/paths.js';
17
+ import { logger } from '../utils/logger.js';
17
18
  import { createHmac, randomUUID, timingSafeEqual } from 'node:crypto';
18
19
  import { connect as netConnect } from 'node:net';
19
20
  import { connect as tlsConnect } from 'node:tls';
20
21
  import { isPlatformConfigured } from './channel-directory.js';
21
22
  import { BaileysBridge, isSelfChatEnabled } from './whatsapp/baileys-bridge.js';
22
23
  import { hasWhatsAppSession } from './whatsapp/session.js';
24
+ import { downloadInboundAttachment, MAX_INBOUND_MEDIA_BYTES, } from './inbound-media.js';
23
25
  // ─── Helpers ────────────────────────────────────────────────────────────────
24
26
  /** POST JSON to an endpoint and treat 2xx as success. */
25
27
  async function postJson(url, body, token, extraHeaders) {
@@ -109,18 +111,27 @@ export class TelegramAdapter {
109
111
  const data = (await res.json());
110
112
  for (const u of data.result ?? []) {
111
113
  this.offset = u.update_id + 1;
112
- const text = u.message?.text;
113
- if (!text || !u.message?.chat)
114
+ const m = u.message;
115
+ if (!m?.chat)
114
116
  continue;
115
- const chat = u.message.chat;
117
+ // A document/photo carries its instruction in the CAPTION; reading
118
+ // only `text` made those messages look empty and they were dropped.
119
+ const text = m.text ?? m.caption ?? '';
120
+ const media = await this.inboundMedia(m);
121
+ if (!text && !media)
122
+ continue;
123
+ const chat = m.chat;
116
124
  await this.handler?.({
117
125
  platform: 'telegram',
118
126
  channelId: String(chat.id),
119
127
  text,
120
- from: u.message.from?.first_name ?? 'telegram-user',
128
+ from: m.from?.first_name ?? 'telegram-user',
121
129
  // P1: real sender id + group detection (chat.type).
122
- senderId: u.message.from?.id !== undefined ? String(u.message.from.id) : undefined,
130
+ senderId: m.from?.id !== undefined ? String(m.from.id) : undefined,
123
131
  isGroup: chat.type !== undefined && chat.type !== 'private',
132
+ // The downloaded attachment rides through the SAME hydration path
133
+ // the WhatsApp bridge uses (registry → read_extract).
134
+ ...(media ? { media } : {}),
124
135
  });
125
136
  }
126
137
  }
@@ -130,6 +141,72 @@ export class TelegramAdapter {
130
141
  };
131
142
  void loop();
132
143
  }
144
+ /**
145
+ * Download an inbound attachment's bytes via `getFile` + the file endpoint.
146
+ * Never throws — returns null on any failure (or when the file is larger than
147
+ * the extraction cap), so the turn still runs with its caption text.
148
+ */
149
+ async downloadFile(fileId, declaredSize) {
150
+ if (declaredSize !== undefined && declaredSize > MAX_INBOUND_MEDIA_BYTES)
151
+ return null;
152
+ try {
153
+ const res = await this.api('getFile', { file_id: fileId });
154
+ if (!res.ok)
155
+ return null;
156
+ const data = (await res.json());
157
+ const filePath = data.result?.file_path;
158
+ if (!filePath)
159
+ return null;
160
+ // Telegram caps bot downloads at 20 MB; the declared size is checked
161
+ // BEFORE the body is fetched where it is known.
162
+ const size = data.result?.file_size;
163
+ if (size !== undefined && size > MAX_INBOUND_MEDIA_BYTES)
164
+ return null;
165
+ const fileRes = await fetch(`https://api.telegram.org/file/bot${this.token}/${filePath}`);
166
+ if (!fileRes.ok)
167
+ return null;
168
+ const buf = new Uint8Array(await fileRes.arrayBuffer());
169
+ if (buf.byteLength === 0 || buf.byteLength > MAX_INBOUND_MEDIA_BYTES)
170
+ return null;
171
+ return buf;
172
+ }
173
+ catch {
174
+ return null;
175
+ }
176
+ }
177
+ /**
178
+ * Build the inbound media payload from a Telegram message, or null when it
179
+ * carries none. Photos arrive as several sizes — the largest is used.
180
+ */
181
+ async inboundMedia(m) {
182
+ if (m.document) {
183
+ const data = await this.downloadFile(m.document.file_id, m.document.file_size);
184
+ return data
185
+ ? { type: 'document', data, filename: m.document.file_name, mimetype: m.document.mime_type, caption: m.caption }
186
+ : null;
187
+ }
188
+ if (m.video) {
189
+ const data = await this.downloadFile(m.video.file_id, m.video.file_size);
190
+ return data
191
+ ? { type: 'video', data, filename: m.video.file_name, mimetype: m.video.mime_type, caption: m.caption }
192
+ : null;
193
+ }
194
+ if (m.audio) {
195
+ const data = await this.downloadFile(m.audio.file_id, m.audio.file_size);
196
+ return data
197
+ ? { type: 'audio', data, filename: m.audio.file_name, mimetype: m.audio.mime_type, caption: m.caption }
198
+ : null;
199
+ }
200
+ const photo = Array.isArray(m.photo) && m.photo.length > 0 ? m.photo[m.photo.length - 1] : undefined;
201
+ if (photo) {
202
+ const data = await this.downloadFile(photo.file_id, photo.file_size);
203
+ // Telegram photos carry no filename; supply the MIME type so the sandbox
204
+ // name keeps an image extension (which routes to the describe_image hint
205
+ // rather than an extractor refusal).
206
+ return data ? { type: 'image', data, filename: 'photo.jpg', mimetype: 'image/jpeg', caption: m.caption } : null;
207
+ }
208
+ return null;
209
+ }
133
210
  async stop() {
134
211
  this.running = false;
135
212
  if (this.timer)
@@ -213,9 +290,36 @@ export class DiscordAdapter extends WebhookChannelAdapter {
213
290
  this.token = envBuff('DISCORD_BOT_TOKEN') ?? '';
214
291
  this.configured = Boolean(this.webhookUrl || this.token);
215
292
  }
293
+ /** The real-time Gateway connection, when a bot token is configured. */
294
+ gateway = null;
216
295
  describe() {
217
296
  return this.configured ? 'Discord (webhook)' : 'Discord (not configured)';
218
297
  }
298
+ /**
299
+ * Inbound Discord messages arrive over the Gateway WebSocket (a bot cannot
300
+ * own the Discord webhook), so a bot token starts the real-time source. The
301
+ * shared webhook receiver still serves outbound-only webhook setups.
302
+ */
303
+ async start(onMessage) {
304
+ if (!this.token) {
305
+ // Said out loud: without a bot token there is no socket, and a gateway that
306
+ // answers outbound but never receives is otherwise indistinguishable from
307
+ // one whose inbound is broken. Names the key and what still works.
308
+ logger.info('Discord: real-time Gateway inbound skipped — no bot token (BUFF_DISCORD_BOT_TOKEN). ' +
309
+ 'Webhook inbound (public URL required) and outbound both still work.');
310
+ return;
311
+ }
312
+ const { DiscordGatewaySource } = await import('./realtime.js');
313
+ const source = new DiscordGatewaySource({ token: this.token });
314
+ this.gateway = source;
315
+ void source.start(onMessage).catch(() => {
316
+ // start() only rejects on a programming error; handshakes retry internally.
317
+ });
318
+ }
319
+ async stop() {
320
+ await this.gateway?.stop();
321
+ this.gateway = null;
322
+ }
219
323
  sendUrl(channelId) {
220
324
  // A webhook URL may embed its own channel; an explicit channelId with a
221
325
  // bot token uses the REST API. When only the webhook URL exists, send there.
@@ -266,9 +370,37 @@ export class SlackAdapter extends WebhookChannelAdapter {
266
370
  this.token = envBuff('SLACK_BOT_TOKEN') ?? '';
267
371
  this.configured = Boolean(this.webhookUrl || this.token);
268
372
  }
373
+ /** The Socket Mode connection, when an app-level token is configured. */
374
+ socketMode = null;
269
375
  describe() {
270
376
  return this.configured ? 'Slack (webhook)' : 'Slack (not configured)';
271
377
  }
378
+ /**
379
+ * Slack Events API inbound needs a public HTTPS endpoint; apps that cannot
380
+ * expose one use Socket Mode, which carries the same `event_callback`
381
+ * envelopes. Enabled by an app-level token (`SLACK_APP_TOKEN`, `xapp-…`).
382
+ */
383
+ async start(onMessage) {
384
+ const appToken = envBuff('SLACK_APP_TOKEN') ?? '';
385
+ if (!appToken) {
386
+ logger.info('Slack: real-time Socket Mode inbound skipped — no app-level token (BUFF_SLACK_APP_TOKEN). ' +
387
+ 'The Events API path (public Request URL) and outbound both still work.');
388
+ return;
389
+ }
390
+ const { SlackSocketModeSource } = await import('./realtime.js');
391
+ const source = new SlackSocketModeSource({
392
+ appToken,
393
+ botToken: this.token || undefined,
394
+ });
395
+ this.socketMode = source;
396
+ void source.start(onMessage).catch(() => {
397
+ // Handshake failures retry with backoff inside the source.
398
+ });
399
+ }
400
+ async stop() {
401
+ await this.socketMode?.stop();
402
+ this.socketMode = null;
403
+ }
272
404
  sendUrl(channelId) {
273
405
  if (this.webhookUrl)
274
406
  return this.webhookUrl;
@@ -334,7 +466,7 @@ export class WhatsAppBridgeAdapter {
334
466
  }
335
467
  async start(onMessage) {
336
468
  this.handler = onMessage;
337
- await this.bridge.connect((fromJid, text, participant, messageId) => {
469
+ await this.bridge.connect((fromJid, text, participant, messageId, media) => {
338
470
  // `||` (not `??`): Baileys 7 can deliver participant as an EMPTY string
339
471
  // for DMs — an empty string is not nullish, so `??` would blank the
340
472
  // sender id and the policy gate would refuse every sender.
@@ -350,6 +482,8 @@ export class WhatsAppBridgeAdapter {
350
482
  // Idempotency: WhatsApp's `key.id` is stable across re-deliveries, so
351
483
  // the gateway collapses the bridge's offline backfill into one turn.
352
484
  messageId,
485
+ // A downloaded document/image (the caption already folded into `text`).
486
+ ...(media ? { media } : {}),
353
487
  });
354
488
  });
355
489
  }
@@ -1954,6 +2088,29 @@ export class HomeAssistantAdapter {
1954
2088
  return postJson(`${this.opts.url}/api/services/persistent_notification/create`, { title: 'Agent-Nuvira', message }, this.opts.token);
1955
2089
  }
1956
2090
  }
2091
+ /**
2092
+ * Classify an attachment by MIME type, falling back to its filename extension.
2093
+ * Exported for the real-time transports (`realtime.ts`), which receive Discord
2094
+ * `content_type` / Slack `mimetype` on a live gateway event rather than a
2095
+ * webhook body.
2096
+ */
2097
+ export function mediaKindFromMime(mimetype, filename) {
2098
+ const mt = (mimetype ?? '').toLowerCase();
2099
+ if (mt.startsWith('image/'))
2100
+ return 'image';
2101
+ if (mt.startsWith('audio/'))
2102
+ return 'audio';
2103
+ if (mt.startsWith('video/'))
2104
+ return 'video';
2105
+ const ext = (filename ?? '').toLowerCase().split('.').pop() ?? '';
2106
+ if (['png', 'jpg', 'jpeg', 'gif', 'webp', 'bmp', 'tiff'].includes(ext))
2107
+ return 'image';
2108
+ if (['mp3', 'm4a', 'ogg', 'oga', 'opus', 'wav', 'flac'].includes(ext))
2109
+ return 'audio';
2110
+ if (['mp4', 'mov', 'mkv', 'webm'].includes(ext))
2111
+ return 'video';
2112
+ return 'document';
2113
+ }
1957
2114
  /**
1958
2115
  * Parse platform-specific webhook bodies into a normal InboundMessage.
1959
2116
  * Returns null when the payload isn't a user message (e.g. Slack challenge).
@@ -1963,13 +2120,26 @@ export function parseWebhookPayload(platform, body) {
1963
2120
  if (platform === 'discord') {
1964
2121
  const content = body?.content;
1965
2122
  const channelId = body?.channel_id;
1966
- if (typeof content === 'string' && channelId) {
2123
+ const first = (Array.isArray(body?.attachments) ? body.attachments[0] : undefined);
2124
+ const hasMedia = Boolean(first?.url);
2125
+ // A media-only message has an EMPTY `content` — it must still dispatch so
2126
+ // the attachment is downloaded and extracted, not dropped for lacking text.
2127
+ if ((typeof content === 'string' || hasMedia) && channelId) {
1967
2128
  return {
1968
2129
  channelId,
1969
- text: content,
2130
+ text: typeof content === 'string' ? content : '',
1970
2131
  from: body?.author?.username ?? 'discord-user',
1971
2132
  // P1: author id (webhooks can't tell DM vs guild channel).
1972
2133
  senderId: body?.author?.id !== undefined ? String(body.author.id) : undefined,
2134
+ ...(hasMedia && first?.url
2135
+ ? {
2136
+ media: {
2137
+ type: mediaKindFromMime(first.content_type, first.filename),
2138
+ attachment: { url: first.url, filename: first.filename, mimetype: first.content_type, size: first.size },
2139
+ caption: typeof content === 'string' ? content : undefined,
2140
+ },
2141
+ }
2142
+ : {}),
1973
2143
  };
1974
2144
  }
1975
2145
  return null;
@@ -1980,14 +2150,27 @@ export function parseWebhookPayload(platform, body) {
1980
2150
  if (body?.challenge)
1981
2151
  return null;
1982
2152
  const event = body?.event;
1983
- if (event?.type === 'message' && typeof event.text === 'string' && event.channel) {
2153
+ const file = (Array.isArray(event?.files) ? event.files[0] : undefined);
2154
+ const fileUrl = file?.url_private_download ?? file?.url_private;
2155
+ const hasMedia = Boolean(fileUrl);
2156
+ if (event?.type === 'message' && event.channel && (typeof event.text === 'string' || hasMedia)) {
1984
2157
  return {
1985
2158
  channelId: event.channel,
1986
- text: event.text,
2159
+ text: typeof event.text === 'string' ? event.text : '',
1987
2160
  from: event.user ?? 'slack-user',
1988
2161
  // P1: event.user IS the Slack user id; D-channels are DMs.
1989
2162
  senderId: event.user ?? undefined,
1990
2163
  isGroup: typeof event.channel === 'string' && !event.channel.startsWith('D'),
2164
+ ...(hasMedia && fileUrl
2165
+ ? {
2166
+ media: {
2167
+ type: mediaKindFromMime(file.mimetype, file.name),
2168
+ // Slack files require the bot token on the download URL.
2169
+ attachment: { url: fileUrl, filename: file.name, mimetype: file.mimetype, size: file.size, authenticated: true },
2170
+ caption: typeof event.text === 'string' ? event.text : undefined,
2171
+ },
2172
+ }
2173
+ : {}),
1991
2174
  };
1992
2175
  }
1993
2176
  return null;
@@ -2075,6 +2258,9 @@ export class WebhookReceiver {
2075
2258
  res.writeHead(200);
2076
2259
  res.end('ok');
2077
2260
  if (parsed) {
2261
+ // Download the attachment BEFORE dispatch, so the turn always sees a
2262
+ // fully-hydrated document (the registry extracts it like any other).
2263
+ const media = parsed.media ? await this.downloadWebhookMedia(parsed.media) : null;
2078
2264
  await this.handler?.({
2079
2265
  platform,
2080
2266
  channelId: parsed.channelId,
@@ -2083,11 +2269,31 @@ export class WebhookReceiver {
2083
2269
  // P1: real sender id + DM/group detection ride through the payload.
2084
2270
  senderId: parsed.senderId,
2085
2271
  isGroup: parsed.isGroup,
2272
+ ...(media ? { media } : {}),
2086
2273
  });
2087
2274
  }
2088
2275
  });
2089
2276
  await new Promise((resolve) => this.server.listen(port, host, resolve));
2090
2277
  }
2278
+ /**
2279
+ * Download a webhook attachment's bytes. Never throws — returns null on any
2280
+ * failure, so the text turn still runs. Slack's `url_private*` endpoints need
2281
+ * the bot token; Discord's CDN URL is public.
2282
+ */
2283
+ async downloadWebhookMedia(media) {
2284
+ const att = media.attachment;
2285
+ const downloaded = await downloadInboundAttachment({
2286
+ type: media.type,
2287
+ url: att.url,
2288
+ filename: att.filename,
2289
+ mimetype: att.mimetype,
2290
+ size: att.size,
2291
+ authenticated: att.authenticated,
2292
+ // Slack's url_private* endpoints need the bot token.
2293
+ token: att.authenticated ? (envBuff('SLACK_BOT_TOKEN') ?? '') : undefined,
2294
+ });
2295
+ return downloaded ? { ...downloaded, caption: media.caption } : null;
2296
+ }
2091
2297
  /**
2092
2298
  * Verify a webhook POST's platform signature. Returns true when the
2093
2299
  * platform has NO secret configured (local/trusted setup) or the signature