@openclaw/discord 2026.9.5 → 2026.9.6

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 (421) hide show
  1. package/dist/.setup/{activities-api-DBwRt5ES.mjs → activities-api-COU4-0nR.mjs} +4 -4
  2. package/dist/.setup/{approval-handler.runtime-Du3n5ypX.mjs → approval-handler.runtime-CbBktBb4.mjs} +5 -5
  3. package/dist/.setup/{approval-message-updates-BN7JtScm.mjs → approval-message-updates-jf9zMaIC.mjs} +1 -1
  4. package/dist/.setup/{audit-C8uaKoa9.mjs → audit-vKbh-LFR.mjs} +3 -3
  5. package/dist/.setup/{channel-ChKdlBgH.mjs → channel-Dv4e3Jpc.mjs} +19 -16
  6. package/dist/.setup/{channel-actions.runtime-CJmiFfps.mjs → channel-actions.runtime-leZuw01r.mjs} +13 -7
  7. package/dist/.setup/{channel.setup-BlC3-Kzz.mjs → channel.setup-0NX6FFwi.mjs} +1 -1
  8. package/dist/.setup/{components-MqMWUWnE.mjs → components-yBEb75bB.mjs} +1 -2
  9. package/dist/.setup/{conversation-binding-route-_rz33QHO.mjs → conversation-binding-route-B7qImK_b.mjs} +6 -3
  10. package/dist/.setup/{doctor-DxcdkXzz.mjs → doctor-D1R-uFIu.mjs} +2 -2
  11. package/dist/.setup/{handle-action.guild-admin-DAFyh_yV.mjs → handle-action.guild-admin-DcFa8NwA.mjs} +3 -3
  12. package/dist/.setup/{message-handler-DnUrDpaU.mjs → message-handler-X6ejmbtY.mjs} +6 -5
  13. package/dist/.setup/{message-handler.preflight-CtqaF_fb.mjs → message-handler.preflight-DE_POxFc.mjs} +14 -117
  14. package/dist/.setup/message-handler.preflight-pluralkit-8Xji34AF.mjs +143 -0
  15. package/dist/.setup/{message-handler.process-Dz1xvuQU.mjs → message-handler.process-CCmIVnxy.mjs} +387 -317
  16. package/dist/.setup/{outbound-adapter-C8v79z9Z.mjs → outbound-adapter-ClIgmu4F.mjs} +5 -5
  17. package/dist/.setup/{outbound-session-route-CqWbuMOm.mjs → outbound-session-route-VulUE0yV.mjs} +7 -6
  18. package/dist/.setup/{preflight-audio-DrnqFA8U.mjs → preflight-audio-DHGIHEpv.mjs} +2 -1
  19. package/dist/.setup/{provider-72zIvN-i.mjs → provider-iOf73HW-.mjs} +425 -286
  20. package/dist/.setup/{provider-session.runtime-BW7QrF5C.mjs → provider-session.runtime-DrGAYnZv.mjs} +3 -3
  21. package/dist/.setup/provider.runtime-BmjW_pIw.mjs +2 -0
  22. package/dist/.setup/{realtime-session.runtime-DTccTgTM.mjs → realtime-session.runtime-Dz8uVutq.mjs} +338 -297
  23. package/dist/.setup/receive-recovery-DHst8WRx.mjs +517 -0
  24. package/dist/.setup/{retry-DBfcEgmO.mjs → retry-BEYkDy0P.mjs} +78 -13
  25. package/dist/.setup/{runtime-SchNfUsQ.mjs → runtime-B8lJfyrA.mjs} +30 -11
  26. package/dist/.setup/{runtime-BVoa7hhx.mjs → runtime-DisDbixd.mjs} +1 -1
  27. package/dist/.setup/{send-CKDczUNL.mjs → send-CIBzvXjS.mjs} +23 -9
  28. package/dist/.setup/{send.components-DWQjXhPV.mjs → send.components-ChY21qr-.mjs} +4 -4
  29. package/dist/.setup/{send.outbound-D0hQ7s50.mjs → send.outbound-QTyuFupn.mjs} +15 -16
  30. package/dist/.setup/{send.shared-Zwx6BxQ5.mjs → send.shared-VNvWfX2T.mjs} +2 -2
  31. package/dist/.setup/setup-plugin-api-Dvr41dyx.mjs +3 -0
  32. package/dist/.setup/{shared-CaA3Vv4n.mjs → shared-DHPDaMSx.mjs} +1 -1
  33. package/dist/.setup/{subagent-hooks-Bired9q6.mjs → subagent-hooks-CjW7r8Pe.mjs} +1 -1
  34. package/dist/.setup/{target-resolver-B6MrxbYv.mjs → target-resolver-BXpy6VT8.mjs} +1 -1
  35. package/dist/.setup/targets-CvemhN3i.mjs +3 -0
  36. package/dist/.setup/{thread-bindings-CK5272V3.mjs → thread-bindings-CEh2dhqP.mjs} +3 -3
  37. package/dist/.setup/{thread-bindings.manager-eexkKyrG.mjs → thread-bindings.manager-ve-i6oqt.mjs} +94 -45
  38. package/dist/.setup/{transcripts-source-CuWYgayu.mjs → transcripts-source-DVegW0WI.mjs} +61 -7
  39. package/dist/.setup/{voice-runtime-DHVQ2mFz.mjs → voice-runtime-elTtjEIG.mjs} +553 -901
  40. package/dist/action-runtime-api.js +1 -1
  41. package/dist/activities-api.js +1 -1
  42. package/dist/api.js +10 -10
  43. package/dist/channel-plugin-api.js +1 -1
  44. package/dist/index.js +1 -1
  45. package/dist/runtime-api.js +12 -12
  46. package/dist/setup-entry.js +1 -1
  47. package/dist/setup-plugin-api.js +1 -1
  48. package/dist/src/voice/audio-worker.runtime.js +1065 -0
  49. package/dist/subagent-hooks-api.js +1 -1
  50. package/dist/transcripts-source-api.js +1 -1
  51. package/node_modules/@napi-rs/wasm-runtime/dist/emnapi-plugins.cjs +8 -4
  52. package/node_modules/@napi-rs/wasm-runtime/dist/emnapi-plugins.js +8 -4
  53. package/node_modules/@napi-rs/wasm-runtime/dist/fs-proxy.cjs +1 -1
  54. package/node_modules/@napi-rs/wasm-runtime/dist/fs.js +770 -695
  55. package/node_modules/@napi-rs/wasm-runtime/fs-proxy.js +3 -2
  56. package/node_modules/@napi-rs/wasm-runtime/package.json +1 -1
  57. package/node_modules/@tybys/wasm-util/LICENSE +21 -0
  58. package/node_modules/@tybys/wasm-util/package.json +1 -1
  59. package/node_modules/@types/node/README.md +1 -1
  60. package/node_modules/@types/node/package.json +2 -2
  61. package/node_modules/@types/node/web-globals/streams.d.ts +4 -0
  62. package/node_modules/zod/README.md +2 -2
  63. package/node_modules/zod/compile.cjs +19 -0
  64. package/node_modules/zod/index.cjs +19 -0
  65. package/node_modules/zod/locales/index.cjs +19 -0
  66. package/node_modules/zod/mini/index.cjs +19 -0
  67. package/node_modules/zod/package.json +8 -7
  68. package/node_modules/zod/src/v3/helpers/errorUtil.ts +1 -1
  69. package/node_modules/zod/src/v4/classic/external.ts +2 -0
  70. package/node_modules/zod/src/v4/classic/from-json-schema.ts +248 -25
  71. package/node_modules/zod/src/v4/classic/schemas.ts +243 -168
  72. package/node_modules/zod/src/v4/classic/tests/assignability.test.ts +60 -9
  73. package/node_modules/zod/src/v4/classic/tests/bigint.test.ts +6 -0
  74. package/node_modules/zod/src/v4/classic/tests/continuability.test.ts +2 -2
  75. package/node_modules/zod/src/v4/classic/tests/cyclic-data.test.ts +265 -0
  76. package/node_modules/zod/src/v4/classic/tests/discriminated-unions.test.ts +112 -6
  77. package/node_modules/zod/src/v4/classic/tests/enum.test.ts +9 -0
  78. package/node_modules/zod/src/v4/classic/tests/error.test.ts +130 -1
  79. package/node_modules/zod/src/v4/classic/tests/from-json-schema.test.ts +157 -0
  80. package/node_modules/zod/src/v4/classic/tests/iban.test.ts +81 -0
  81. package/node_modules/zod/src/v4/classic/tests/instance-footprint.test.ts +40 -2
  82. package/node_modules/zod/src/v4/classic/tests/instanceof.test.ts +27 -7
  83. package/node_modules/zod/src/v4/classic/tests/issue-schema.test.ts +88 -56
  84. package/node_modules/zod/src/v4/classic/tests/number.test.ts +39 -0
  85. package/node_modules/zod/src/v4/classic/tests/object.test.ts +56 -0
  86. package/node_modules/zod/src/v4/classic/tests/optin-ladder.test.ts +3 -2
  87. package/node_modules/zod/src/v4/classic/tests/prefault.test.ts +70 -0
  88. package/node_modules/zod/src/v4/classic/tests/properties.test.ts +141 -0
  89. package/node_modules/zod/src/v4/classic/tests/recursive-types.test.ts +46 -1
  90. package/node_modules/zod/src/v4/classic/tests/standard-schema.test.ts +19 -0
  91. package/node_modules/zod/src/v4/classic/tests/string.test.ts +95 -1
  92. package/node_modules/zod/src/v4/classic/tests/template-literal.test.ts +33 -1
  93. package/node_modules/zod/src/v4/classic/tests/to-json-schema.test.ts +234 -38
  94. package/node_modules/zod/src/v4/classic/tests/validate.test.ts +569 -0
  95. package/node_modules/zod/src/v4/core/api.ts +44 -28
  96. package/node_modules/zod/src/v4/core/checks.ts +62 -102
  97. package/node_modules/zod/src/v4/core/compile.ts +218 -93
  98. package/node_modules/zod/src/v4/core/core.ts +1 -3
  99. package/node_modules/zod/src/v4/core/doc.ts +6 -2
  100. package/node_modules/zod/src/v4/core/errors.ts +3 -6
  101. package/node_modules/zod/src/v4/core/json-schema-generator.ts +2 -2
  102. package/node_modules/zod/src/v4/core/json-schema-processors.ts +185 -81
  103. package/node_modules/zod/src/v4/core/memoizer.ts +75 -28
  104. package/node_modules/zod/src/v4/core/parse.ts +37 -16
  105. package/node_modules/zod/src/v4/core/regexes.ts +14 -4
  106. package/node_modules/zod/src/v4/core/schemas.ts +296 -132
  107. package/node_modules/zod/src/v4/core/tests/cached.test.ts +54 -0
  108. package/node_modules/zod/src/v4/core/tests/compile-differential.test.ts +35 -0
  109. package/node_modules/zod/src/v4/core/tests/compile-generative.test.ts +445 -0
  110. package/node_modules/zod/src/v4/core/tests/compile.test.ts +399 -2
  111. package/node_modules/zod/src/v4/core/tests/email-regex.test.ts +140 -0
  112. package/node_modules/zod/src/v4/core/tests/locales/tg.test.ts +85 -0
  113. package/node_modules/zod/src/v4/core/tests/polyfill-collision.test.ts +46 -0
  114. package/node_modules/zod/src/v4/core/tests/url-no-canparse.test.ts +118 -16
  115. package/node_modules/zod/src/v4/core/to-json-schema.ts +9 -7
  116. package/node_modules/zod/src/v4/core/util.ts +218 -147
  117. package/node_modules/zod/src/v4/core/versions.ts +2 -2
  118. package/node_modules/zod/src/v4/locales/ar.ts +2 -0
  119. package/node_modules/zod/src/v4/locales/az.ts +2 -0
  120. package/node_modules/zod/src/v4/locales/be.ts +2 -0
  121. package/node_modules/zod/src/v4/locales/bg.ts +2 -0
  122. package/node_modules/zod/src/v4/locales/bn.ts +2 -0
  123. package/node_modules/zod/src/v4/locales/ca.ts +2 -0
  124. package/node_modules/zod/src/v4/locales/ckb.ts +2 -0
  125. package/node_modules/zod/src/v4/locales/cs.ts +2 -0
  126. package/node_modules/zod/src/v4/locales/da.ts +2 -0
  127. package/node_modules/zod/src/v4/locales/de.ts +2 -0
  128. package/node_modules/zod/src/v4/locales/el.ts +2 -0
  129. package/node_modules/zod/src/v4/locales/en.ts +2 -0
  130. package/node_modules/zod/src/v4/locales/eo.ts +2 -0
  131. package/node_modules/zod/src/v4/locales/es.ts +2 -0
  132. package/node_modules/zod/src/v4/locales/fa.ts +2 -0
  133. package/node_modules/zod/src/v4/locales/fi.ts +2 -0
  134. package/node_modules/zod/src/v4/locales/fr-CA.ts +2 -0
  135. package/node_modules/zod/src/v4/locales/fr.ts +2 -0
  136. package/node_modules/zod/src/v4/locales/gu.ts +2 -0
  137. package/node_modules/zod/src/v4/locales/he.ts +2 -0
  138. package/node_modules/zod/src/v4/locales/hi.ts +2 -0
  139. package/node_modules/zod/src/v4/locales/hr.ts +2 -0
  140. package/node_modules/zod/src/v4/locales/hu.ts +2 -0
  141. package/node_modules/zod/src/v4/locales/hy.ts +2 -0
  142. package/node_modules/zod/src/v4/locales/id.ts +2 -0
  143. package/node_modules/zod/src/v4/locales/index.ts +1 -0
  144. package/node_modules/zod/src/v4/locales/is.ts +2 -0
  145. package/node_modules/zod/src/v4/locales/it.ts +2 -0
  146. package/node_modules/zod/src/v4/locales/ja.ts +2 -0
  147. package/node_modules/zod/src/v4/locales/ka.ts +2 -0
  148. package/node_modules/zod/src/v4/locales/km.ts +2 -0
  149. package/node_modules/zod/src/v4/locales/kn.ts +2 -0
  150. package/node_modules/zod/src/v4/locales/ko.ts +2 -0
  151. package/node_modules/zod/src/v4/locales/lt.ts +2 -0
  152. package/node_modules/zod/src/v4/locales/mk.ts +2 -0
  153. package/node_modules/zod/src/v4/locales/ms.ts +2 -0
  154. package/node_modules/zod/src/v4/locales/ne.ts +2 -0
  155. package/node_modules/zod/src/v4/locales/nl.ts +2 -0
  156. package/node_modules/zod/src/v4/locales/nn.ts +2 -0
  157. package/node_modules/zod/src/v4/locales/no.ts +2 -0
  158. package/node_modules/zod/src/v4/locales/ota.ts +2 -0
  159. package/node_modules/zod/src/v4/locales/pl.ts +2 -0
  160. package/node_modules/zod/src/v4/locales/ps.ts +2 -0
  161. package/node_modules/zod/src/v4/locales/pt-BR.ts +2 -0
  162. package/node_modules/zod/src/v4/locales/pt.ts +2 -0
  163. package/node_modules/zod/src/v4/locales/ro.ts +2 -0
  164. package/node_modules/zod/src/v4/locales/ru.ts +2 -0
  165. package/node_modules/zod/src/v4/locales/sk.ts +2 -0
  166. package/node_modules/zod/src/v4/locales/sl.ts +2 -0
  167. package/node_modules/zod/src/v4/locales/sv.ts +2 -0
  168. package/node_modules/zod/src/v4/locales/ta.ts +2 -0
  169. package/node_modules/zod/src/v4/locales/tg.ts +135 -0
  170. package/node_modules/zod/src/v4/locales/th.ts +2 -0
  171. package/node_modules/zod/src/v4/locales/tk.ts +2 -0
  172. package/node_modules/zod/src/v4/locales/tr.ts +2 -0
  173. package/node_modules/zod/src/v4/locales/uk.ts +2 -0
  174. package/node_modules/zod/src/v4/locales/ur.ts +2 -0
  175. package/node_modules/zod/src/v4/locales/uz.ts +2 -0
  176. package/node_modules/zod/src/v4/locales/vi.ts +2 -0
  177. package/node_modules/zod/src/v4/locales/yo.ts +2 -0
  178. package/node_modules/zod/src/v4/locales/zh-CN.ts +2 -0
  179. package/node_modules/zod/src/v4/locales/zh-TW.ts +2 -0
  180. package/node_modules/zod/src/v4/mini/external.ts +2 -0
  181. package/node_modules/zod/src/v4/mini/schemas.ts +32 -7
  182. package/node_modules/zod/src/v4/mini/tests/checks.test.ts +1 -1
  183. package/node_modules/zod/src/v4/mini/tests/computed.test.ts +11 -17
  184. package/node_modules/zod/src/v4/mini/tests/index.test.ts +86 -0
  185. package/node_modules/zod/src/v4/mini/tests/recursive-types.test.ts +16 -0
  186. package/node_modules/zod/src/v4/mini/tests/string.test.ts +23 -0
  187. package/node_modules/zod/v3/ZodError.cjs +19 -0
  188. package/node_modules/zod/v3/errors.cjs +19 -0
  189. package/node_modules/zod/v3/external.cjs +19 -0
  190. package/node_modules/zod/v3/helpers/enumUtil.cjs +19 -0
  191. package/node_modules/zod/v3/helpers/errorUtil.cjs +20 -1
  192. package/node_modules/zod/v3/helpers/errorUtil.js +1 -1
  193. package/node_modules/zod/v3/helpers/parseUtil.cjs +19 -0
  194. package/node_modules/zod/v3/helpers/partialUtil.cjs +19 -0
  195. package/node_modules/zod/v3/helpers/typeAliases.cjs +19 -0
  196. package/node_modules/zod/v3/helpers/util.cjs +19 -0
  197. package/node_modules/zod/v3/index.cjs +19 -0
  198. package/node_modules/zod/v3/standard-schema.cjs +19 -0
  199. package/node_modules/zod/v3/types.cjs +19 -0
  200. package/node_modules/zod/v4/classic/checks.cjs +19 -0
  201. package/node_modules/zod/v4/classic/coerce.cjs +19 -0
  202. package/node_modules/zod/v4/classic/compat.cjs +19 -0
  203. package/node_modules/zod/v4/classic/deep-partial.cjs +19 -0
  204. package/node_modules/zod/v4/classic/errors.cjs +19 -0
  205. package/node_modules/zod/v4/classic/external.cjs +22 -1
  206. package/node_modules/zod/v4/classic/external.d.cts +1 -1
  207. package/node_modules/zod/v4/classic/external.d.ts +1 -1
  208. package/node_modules/zod/v4/classic/external.js +1 -1
  209. package/node_modules/zod/v4/classic/from-json-schema.cjs +264 -24
  210. package/node_modules/zod/v4/classic/from-json-schema.js +245 -24
  211. package/node_modules/zod/v4/classic/in-out.cjs +19 -0
  212. package/node_modules/zod/v4/classic/index.cjs +19 -0
  213. package/node_modules/zod/v4/classic/iso.cjs +19 -0
  214. package/node_modules/zod/v4/classic/parse.cjs +19 -0
  215. package/node_modules/zod/v4/classic/schemas.cjs +100 -35
  216. package/node_modules/zod/v4/classic/schemas.d.cts +15 -1
  217. package/node_modules/zod/v4/classic/schemas.d.ts +15 -1
  218. package/node_modules/zod/v4/classic/schemas.js +77 -33
  219. package/node_modules/zod/v4/core/api.cjs +45 -22
  220. package/node_modules/zod/v4/core/api.d.cts +12 -6
  221. package/node_modules/zod/v4/core/api.d.ts +12 -6
  222. package/node_modules/zod/v4/core/api.js +25 -22
  223. package/node_modules/zod/v4/core/checks.cjs +51 -97
  224. package/node_modules/zod/v4/core/checks.d.cts +17 -1
  225. package/node_modules/zod/v4/core/checks.d.ts +17 -1
  226. package/node_modules/zod/v4/core/checks.js +31 -96
  227. package/node_modules/zod/v4/core/compile.cjs +173 -78
  228. package/node_modules/zod/v4/core/compile.d.cts +18 -4
  229. package/node_modules/zod/v4/core/compile.d.ts +18 -4
  230. package/node_modules/zod/v4/core/compile.js +154 -79
  231. package/node_modules/zod/v4/core/core.cjs +20 -1
  232. package/node_modules/zod/v4/core/core.js +1 -1
  233. package/node_modules/zod/v4/core/doc.cjs +26 -2
  234. package/node_modules/zod/v4/core/doc.js +7 -2
  235. package/node_modules/zod/v4/core/errors.cjs +21 -5
  236. package/node_modules/zod/v4/core/errors.js +2 -5
  237. package/node_modules/zod/v4/core/index.cjs +19 -0
  238. package/node_modules/zod/v4/core/json-schema-generator.cjs +20 -1
  239. package/node_modules/zod/v4/core/json-schema-generator.js +2 -2
  240. package/node_modules/zod/v4/core/json-schema-processors.cjs +188 -72
  241. package/node_modules/zod/v4/core/json-schema-processors.d.cts +16 -0
  242. package/node_modules/zod/v4/core/json-schema-processors.d.ts +16 -0
  243. package/node_modules/zod/v4/core/json-schema-processors.js +170 -74
  244. package/node_modules/zod/v4/core/json-schema.cjs +19 -0
  245. package/node_modules/zod/v4/core/memoizer.cjs +111 -23
  246. package/node_modules/zod/v4/core/memoizer.js +69 -23
  247. package/node_modules/zod/v4/core/parse.cjs +56 -16
  248. package/node_modules/zod/v4/core/parse.js +37 -16
  249. package/node_modules/zod/v4/core/regexes.cjs +31 -6
  250. package/node_modules/zod/v4/core/regexes.d.cts +3 -0
  251. package/node_modules/zod/v4/core/regexes.d.ts +3 -0
  252. package/node_modules/zod/v4/core/regexes.js +10 -4
  253. package/node_modules/zod/v4/core/registries.cjs +19 -0
  254. package/node_modules/zod/v4/core/schemas.cjs +302 -114
  255. package/node_modules/zod/v4/core/schemas.d.cts +28 -8
  256. package/node_modules/zod/v4/core/schemas.d.ts +28 -8
  257. package/node_modules/zod/v4/core/schemas.js +279 -113
  258. package/node_modules/zod/v4/core/standard-schema.cjs +19 -0
  259. package/node_modules/zod/v4/core/to-json-schema.cjs +28 -7
  260. package/node_modules/zod/v4/core/to-json-schema.d.cts +4 -3
  261. package/node_modules/zod/v4/core/to-json-schema.d.ts +4 -3
  262. package/node_modules/zod/v4/core/to-json-schema.js +7 -6
  263. package/node_modules/zod/v4/core/util.cjs +177 -143
  264. package/node_modules/zod/v4/core/util.d.cts +25 -4
  265. package/node_modules/zod/v4/core/util.d.ts +25 -4
  266. package/node_modules/zod/v4/core/util.js +156 -143
  267. package/node_modules/zod/v4/core/versions.cjs +21 -2
  268. package/node_modules/zod/v4/core/versions.d.cts +1 -1
  269. package/node_modules/zod/v4/core/versions.d.ts +1 -1
  270. package/node_modules/zod/v4/core/versions.js +2 -2
  271. package/node_modules/zod/v4/core/visit.cjs +19 -0
  272. package/node_modules/zod/v4/index.cjs +19 -0
  273. package/node_modules/zod/v4/locales/ar.cjs +2 -0
  274. package/node_modules/zod/v4/locales/ar.js +2 -0
  275. package/node_modules/zod/v4/locales/az.cjs +2 -0
  276. package/node_modules/zod/v4/locales/az.js +2 -0
  277. package/node_modules/zod/v4/locales/be.cjs +2 -0
  278. package/node_modules/zod/v4/locales/be.js +2 -0
  279. package/node_modules/zod/v4/locales/bg.cjs +2 -0
  280. package/node_modules/zod/v4/locales/bg.js +2 -0
  281. package/node_modules/zod/v4/locales/bn.cjs +2 -0
  282. package/node_modules/zod/v4/locales/bn.js +2 -0
  283. package/node_modules/zod/v4/locales/ca.cjs +2 -0
  284. package/node_modules/zod/v4/locales/ca.js +2 -0
  285. package/node_modules/zod/v4/locales/ckb.cjs +2 -0
  286. package/node_modules/zod/v4/locales/ckb.js +2 -0
  287. package/node_modules/zod/v4/locales/cs.cjs +2 -0
  288. package/node_modules/zod/v4/locales/cs.js +2 -0
  289. package/node_modules/zod/v4/locales/da.cjs +2 -0
  290. package/node_modules/zod/v4/locales/da.js +2 -0
  291. package/node_modules/zod/v4/locales/de.cjs +2 -0
  292. package/node_modules/zod/v4/locales/de.js +2 -0
  293. package/node_modules/zod/v4/locales/el.cjs +2 -0
  294. package/node_modules/zod/v4/locales/el.js +2 -0
  295. package/node_modules/zod/v4/locales/en.cjs +2 -0
  296. package/node_modules/zod/v4/locales/en.js +2 -0
  297. package/node_modules/zod/v4/locales/eo.cjs +2 -0
  298. package/node_modules/zod/v4/locales/eo.js +2 -0
  299. package/node_modules/zod/v4/locales/es.cjs +2 -0
  300. package/node_modules/zod/v4/locales/es.js +2 -0
  301. package/node_modules/zod/v4/locales/fa.cjs +2 -0
  302. package/node_modules/zod/v4/locales/fa.js +2 -0
  303. package/node_modules/zod/v4/locales/fi.cjs +2 -0
  304. package/node_modules/zod/v4/locales/fi.js +2 -0
  305. package/node_modules/zod/v4/locales/fr-CA.cjs +2 -0
  306. package/node_modules/zod/v4/locales/fr-CA.js +2 -0
  307. package/node_modules/zod/v4/locales/fr.cjs +2 -0
  308. package/node_modules/zod/v4/locales/fr.js +2 -0
  309. package/node_modules/zod/v4/locales/gu.cjs +2 -0
  310. package/node_modules/zod/v4/locales/gu.js +2 -0
  311. package/node_modules/zod/v4/locales/he.cjs +2 -0
  312. package/node_modules/zod/v4/locales/he.js +2 -0
  313. package/node_modules/zod/v4/locales/hi.cjs +2 -0
  314. package/node_modules/zod/v4/locales/hi.js +2 -0
  315. package/node_modules/zod/v4/locales/hr.cjs +2 -0
  316. package/node_modules/zod/v4/locales/hr.js +2 -0
  317. package/node_modules/zod/v4/locales/hu.cjs +2 -0
  318. package/node_modules/zod/v4/locales/hu.js +2 -0
  319. package/node_modules/zod/v4/locales/hy.cjs +2 -0
  320. package/node_modules/zod/v4/locales/hy.js +2 -0
  321. package/node_modules/zod/v4/locales/id.cjs +2 -0
  322. package/node_modules/zod/v4/locales/id.js +2 -0
  323. package/node_modules/zod/v4/locales/index.cjs +22 -1
  324. package/node_modules/zod/v4/locales/index.d.cts +1 -0
  325. package/node_modules/zod/v4/locales/index.d.ts +1 -0
  326. package/node_modules/zod/v4/locales/index.js +1 -0
  327. package/node_modules/zod/v4/locales/is.cjs +2 -0
  328. package/node_modules/zod/v4/locales/is.js +2 -0
  329. package/node_modules/zod/v4/locales/it.cjs +2 -0
  330. package/node_modules/zod/v4/locales/it.js +2 -0
  331. package/node_modules/zod/v4/locales/ja.cjs +2 -0
  332. package/node_modules/zod/v4/locales/ja.js +2 -0
  333. package/node_modules/zod/v4/locales/ka.cjs +2 -0
  334. package/node_modules/zod/v4/locales/ka.js +2 -0
  335. package/node_modules/zod/v4/locales/km.cjs +2 -0
  336. package/node_modules/zod/v4/locales/km.js +2 -0
  337. package/node_modules/zod/v4/locales/kn.cjs +2 -0
  338. package/node_modules/zod/v4/locales/kn.js +2 -0
  339. package/node_modules/zod/v4/locales/ko.cjs +2 -0
  340. package/node_modules/zod/v4/locales/ko.js +2 -0
  341. package/node_modules/zod/v4/locales/lt.cjs +2 -0
  342. package/node_modules/zod/v4/locales/lt.js +2 -0
  343. package/node_modules/zod/v4/locales/mk.cjs +2 -0
  344. package/node_modules/zod/v4/locales/mk.js +2 -0
  345. package/node_modules/zod/v4/locales/ms.cjs +2 -0
  346. package/node_modules/zod/v4/locales/ms.js +2 -0
  347. package/node_modules/zod/v4/locales/ne.cjs +2 -0
  348. package/node_modules/zod/v4/locales/ne.js +2 -0
  349. package/node_modules/zod/v4/locales/nl.cjs +2 -0
  350. package/node_modules/zod/v4/locales/nl.js +2 -0
  351. package/node_modules/zod/v4/locales/nn.cjs +2 -0
  352. package/node_modules/zod/v4/locales/nn.js +2 -0
  353. package/node_modules/zod/v4/locales/no.cjs +2 -0
  354. package/node_modules/zod/v4/locales/no.js +2 -0
  355. package/node_modules/zod/v4/locales/ota.cjs +2 -0
  356. package/node_modules/zod/v4/locales/ota.js +2 -0
  357. package/node_modules/zod/v4/locales/pl.cjs +2 -0
  358. package/node_modules/zod/v4/locales/pl.js +2 -0
  359. package/node_modules/zod/v4/locales/ps.cjs +2 -0
  360. package/node_modules/zod/v4/locales/ps.js +2 -0
  361. package/node_modules/zod/v4/locales/pt-BR.cjs +2 -0
  362. package/node_modules/zod/v4/locales/pt-BR.js +2 -0
  363. package/node_modules/zod/v4/locales/pt.cjs +2 -0
  364. package/node_modules/zod/v4/locales/pt.js +2 -0
  365. package/node_modules/zod/v4/locales/ro.cjs +2 -0
  366. package/node_modules/zod/v4/locales/ro.js +2 -0
  367. package/node_modules/zod/v4/locales/ru.cjs +2 -0
  368. package/node_modules/zod/v4/locales/ru.js +2 -0
  369. package/node_modules/zod/v4/locales/sk.cjs +2 -0
  370. package/node_modules/zod/v4/locales/sk.js +2 -0
  371. package/node_modules/zod/v4/locales/sl.cjs +2 -0
  372. package/node_modules/zod/v4/locales/sl.js +2 -0
  373. package/node_modules/zod/v4/locales/sv.cjs +2 -0
  374. package/node_modules/zod/v4/locales/sv.js +2 -0
  375. package/node_modules/zod/v4/locales/ta.cjs +2 -0
  376. package/node_modules/zod/v4/locales/ta.js +2 -0
  377. package/node_modules/zod/v4/locales/tg.cjs +144 -0
  378. package/node_modules/zod/v4/locales/tg.d.cts +5 -0
  379. package/node_modules/zod/v4/locales/tg.d.ts +4 -0
  380. package/node_modules/zod/v4/locales/tg.js +117 -0
  381. package/node_modules/zod/v4/locales/th.cjs +2 -0
  382. package/node_modules/zod/v4/locales/th.js +2 -0
  383. package/node_modules/zod/v4/locales/tk.cjs +2 -0
  384. package/node_modules/zod/v4/locales/tk.js +2 -0
  385. package/node_modules/zod/v4/locales/tr.cjs +2 -0
  386. package/node_modules/zod/v4/locales/tr.js +2 -0
  387. package/node_modules/zod/v4/locales/uk.cjs +2 -0
  388. package/node_modules/zod/v4/locales/uk.js +2 -0
  389. package/node_modules/zod/v4/locales/ur.cjs +2 -0
  390. package/node_modules/zod/v4/locales/ur.js +2 -0
  391. package/node_modules/zod/v4/locales/uz.cjs +2 -0
  392. package/node_modules/zod/v4/locales/uz.js +2 -0
  393. package/node_modules/zod/v4/locales/vi.cjs +2 -0
  394. package/node_modules/zod/v4/locales/vi.js +2 -0
  395. package/node_modules/zod/v4/locales/yo.cjs +2 -0
  396. package/node_modules/zod/v4/locales/yo.js +2 -0
  397. package/node_modules/zod/v4/locales/zh-CN.cjs +2 -0
  398. package/node_modules/zod/v4/locales/zh-CN.js +2 -0
  399. package/node_modules/zod/v4/locales/zh-TW.cjs +2 -0
  400. package/node_modules/zod/v4/locales/zh-TW.js +2 -0
  401. package/node_modules/zod/v4/mini/checks.cjs +19 -0
  402. package/node_modules/zod/v4/mini/coerce.cjs +19 -0
  403. package/node_modules/zod/v4/mini/deep-partial.cjs +19 -0
  404. package/node_modules/zod/v4/mini/external.cjs +22 -1
  405. package/node_modules/zod/v4/mini/external.d.cts +1 -1
  406. package/node_modules/zod/v4/mini/external.d.ts +1 -1
  407. package/node_modules/zod/v4/mini/external.js +1 -1
  408. package/node_modules/zod/v4/mini/in-out.cjs +19 -0
  409. package/node_modules/zod/v4/mini/index.cjs +19 -0
  410. package/node_modules/zod/v4/mini/iso.cjs +19 -0
  411. package/node_modules/zod/v4/mini/parse.cjs +19 -0
  412. package/node_modules/zod/v4/mini/schemas.cjs +44 -8
  413. package/node_modules/zod/v4/mini/schemas.d.cts +6 -1
  414. package/node_modules/zod/v4/mini/schemas.d.ts +6 -1
  415. package/node_modules/zod/v4/mini/schemas.js +21 -6
  416. package/node_modules/zod/v4-mini/index.cjs +19 -0
  417. package/package.json +8 -5
  418. package/dist/.setup/message-handler.history-CJOsN9w5.mjs +0 -28
  419. package/dist/.setup/provider.runtime-DuhmKdDU.mjs +0 -2
  420. package/dist/.setup/setup-plugin-api-CINIEBLa.mjs +0 -3
  421. package/dist/.setup/targets-D1mAB5yO.mjs +0 -3
@@ -1,9 +1,9 @@
1
- import { S as parseDiscordActivityCustomId, i as buildDiscordPresentationComponents } from "./components-MqMWUWnE.mjs";
1
+ import { S as parseDiscordActivityCustomId, i as buildDiscordPresentationComponents } from "./components-yBEb75bB.mjs";
2
2
  import { E as getDiscordEndpointRuntime } from "./channel-type-DKnjV1XW.mjs";
3
3
  import { c as resolveDiscordAccount } from "./accounts-CwJQoLjM.mjs";
4
- import { r as sendDiscordComponentMessage } from "./send.components-DWQjXhPV.mjs";
5
- import { b as resolveDiscordChannelId$1 } from "./retry-DBfcEgmO.mjs";
6
- import { r as setDiscordActivitiesRuntime, t as DiscordActivitiesRuntime } from "./runtime-BVoa7hhx.mjs";
4
+ import { r as sendDiscordComponentMessage } from "./send.components-ChY21qr-.mjs";
5
+ import { b as resolveDiscordChannelId$1 } from "./retry-BEYkDy0P.mjs";
6
+ import { r as setDiscordActivitiesRuntime, t as DiscordActivitiesRuntime } from "./runtime-DisDbixd.mjs";
7
7
  import fs from "node:fs/promises";
8
8
  import { logError } from "openclaw/plugin-sdk/logging-core";
9
9
  import { resolveRequestClientIp } from "openclaw/plugin-sdk/webhook-ingress";
@@ -1,9 +1,9 @@
1
1
  import { A as serializePayload, G as Row, L as Button, Y as TextDisplay, et as stripUndefinedFields, ft as editChannelMessage, nt as createUserDmChannel, q as Separator, st as createChannelMessage, ut as deleteChannelMessage, z as Container } from "./discord-BXpHW-cu.mjs";
2
- import { s as buildExecApprovalCustomId } from "./components-MqMWUWnE.mjs";
3
- import { N as createDiscordClient, O as createDiscordMessageNonce } from "./send.shared-Zwx6BxQ5.mjs";
4
- import { D as isDiscordExecApprovalClientEnabled, c as formatDiscordApprovalDisplayValue, s as DISCORD_APPROVAL_ALLOWED_MENTIONS } from "./outbound-session-route-CqWbuMOm.mjs";
5
- import { a as shouldHandleDiscordApprovalRequest } from "./channel-ChKdlBgH.mjs";
6
- import { t as discordApprovalMessageUpdates } from "./approval-message-updates-BN7JtScm.mjs";
2
+ import { s as buildExecApprovalCustomId } from "./components-yBEb75bB.mjs";
3
+ import { N as createDiscordClient, O as createDiscordMessageNonce } from "./send.shared-VNvWfX2T.mjs";
4
+ import { D as isDiscordExecApprovalClientEnabled, c as formatDiscordApprovalDisplayValue, s as DISCORD_APPROVAL_ALLOWED_MENTIONS } from "./outbound-session-route-VulUE0yV.mjs";
5
+ import { a as shouldHandleDiscordApprovalRequest } from "./channel-Dv4e3Jpc.mjs";
6
+ import { t as discordApprovalMessageUpdates } from "./approval-message-updates-jf9zMaIC.mjs";
7
7
  import { logDebug, logError } from "openclaw/plugin-sdk/logging-core";
8
8
  import { ButtonStyle } from "discord-api-types/v10";
9
9
  import { normalizeOptionalString } from "openclaw/plugin-sdk/string-coerce-runtime";
@@ -1,5 +1,5 @@
1
1
  import { $ as parseCustomId } from "./discord-BXpHW-cu.mjs";
2
- import { c as parseExecApprovalData } from "./components-MqMWUWnE.mjs";
2
+ import { c as parseExecApprovalData } from "./components-yBEb75bB.mjs";
3
3
  import { KeyedAsyncQueue } from "openclaw/plugin-sdk/keyed-async-queue";
4
4
  //#region extensions/discord/src/approval-message-updates.ts
5
5
  const discordApprovalMessageUpdates = new KeyedAsyncQueue();
@@ -1,8 +1,8 @@
1
1
  import { Ut as __exportAll } from "./discord-BXpHW-cu.mjs";
2
- import { x as fetchChannelPermissionsDiscord } from "./send.shared-Zwx6BxQ5.mjs";
2
+ import { x as fetchChannelPermissionsDiscord } from "./send.shared-VNvWfX2T.mjs";
3
3
  import { t as inspectDiscordAccount } from "./account-inspect-BwQj24ht.mjs";
4
- import "./send-CKDczUNL.mjs";
5
- import { C as collectDiscordAuditChannelIdsForAccount, S as auditDiscordChannelPermissionsWithFetcher } from "./outbound-session-route-CqWbuMOm.mjs";
4
+ import "./send-CIBzvXjS.mjs";
5
+ import { C as collectDiscordAuditChannelIdsForAccount, S as auditDiscordChannelPermissionsWithFetcher } from "./outbound-session-route-VulUE0yV.mjs";
6
6
  //#region extensions/discord/src/audit.ts
7
7
  var audit_exports = /* @__PURE__ */ __exportAll({
8
8
  auditDiscordChannelPermissions: () => auditDiscordChannelPermissions,
@@ -1,16 +1,17 @@
1
- import { c as resolveDiscordAccount, i as listDiscordStartupAccountIds, l as resolveDiscordAccountAllowFrom, r as listDiscordAccountIds, s as resolveDefaultDiscordAccountId } from "./accounts-CwJQoLjM.mjs";
1
+ import { c as resolveDiscordAccount, i as listDiscordStartupAccountIds, l as resolveDiscordAccountAllowFrom, r as listDiscordAccountIds, s as resolveDefaultDiscordAccountId, u as resolveDiscordAccountConfig } from "./accounts-CwJQoLjM.mjs";
2
2
  import { t as getDiscordRuntime } from "./runtime-DgnVQ7zW.mjs";
3
- import { _ as normalizeDiscordMessagingTarget, g as matchesDiscordToolContextTarget, h as looksLikeDiscordTargetId, y as parseDiscordTarget } from "./retry-DBfcEgmO.mjs";
3
+ import { _ as normalizeDiscordMessagingTarget, g as matchesDiscordToolContextTarget, h as looksLikeDiscordTargetId, y as parseDiscordTarget } from "./retry-BEYkDy0P.mjs";
4
4
  import { u as withAbortTimeout } from "./timeouts-D86uWLt_.mjs";
5
- import { A as createChannelApproverDmTargetResolver, D as isDiscordExecApprovalClientEnabled, E as isDiscordExecApprovalApprover, M as isChannelExecApprovalClientEnabledFromConfig, N as matchesApprovalRequestFilters, O as shouldSuppressLocalDiscordExecApprovalPrompt, T as getDiscordExecApprovalApprovers, _ as resolveDiscordRuntimeBindingConversationId, f as resolveDiscordConversationRoute, g as resolveDiscordCurrentConversationIdentity, j as createChannelNativeOriginTargetResolver, k as createApproverRestrictedNativeApprovalCapability, t as resolveDiscordOutboundSessionRoute, v as discordMessageActions, w as resolveRequiredDiscordChannelPermissions } from "./outbound-session-route-CqWbuMOm.mjs";
6
- import { a as discordSecurityAdapter, c as buildTokenChannelStatusSummary, i as discordSetupContract, l as projectCredentialSnapshotFields, n as discordConfigAdapter, o as DEFAULT_ACCOUNT_ID, s as PAIRING_APPROVED_MESSAGE, t as createDiscordPluginBase, u as resolveConfiguredFromCredentialStatuses } from "./shared-CaA3Vv4n.mjs";
5
+ import { A as createChannelApproverDmTargetResolver, D as isDiscordExecApprovalClientEnabled, E as isDiscordExecApprovalApprover, M as isChannelExecApprovalClientEnabledFromConfig, N as matchesApprovalRequestFilters, O as shouldSuppressLocalDiscordExecApprovalPrompt, T as getDiscordExecApprovalApprovers, _ as resolveDiscordRuntimeBindingConversationId, f as resolveDiscordConversationRoute, g as resolveDiscordCurrentConversationIdentity, j as createChannelNativeOriginTargetResolver, k as createApproverRestrictedNativeApprovalCapability, t as resolveDiscordOutboundSessionRoute, v as discordMessageActions, w as resolveRequiredDiscordChannelPermissions } from "./outbound-session-route-VulUE0yV.mjs";
6
+ import { a as discordSecurityAdapter, c as buildTokenChannelStatusSummary, i as discordSetupContract, l as projectCredentialSnapshotFields, n as discordConfigAdapter, o as DEFAULT_ACCOUNT_ID$1, s as PAIRING_APPROVED_MESSAGE, t as createDiscordPluginBase, u as resolveConfiguredFromCredentialStatuses } from "./shared-DHPDaMSx.mjs";
7
7
  import { r as openDiscordCommandDeployHashStore } from "./command-deploy-store-DFkBTViB.mjs";
8
- import { t as resolveDiscordConversationBindingRoute } from "./conversation-binding-route-_rz33QHO.mjs";
8
+ import { t as resolveDiscordConversationBindingRoute } from "./conversation-binding-route-B7qImK_b.mjs";
9
9
  import { n as setThreadBindingMaxAgeBySessionKey, t as setThreadBindingIdleTimeoutBySessionKey } from "./thread-bindings.session-updates-DCQq1WZ5.mjs";
10
- import { n as discordOutbound } from "./outbound-adapter-C8v79z9Z.mjs";
10
+ import { n as discordOutbound } from "./outbound-adapter-ClIgmu4F.mjs";
11
11
  import { t as normalizeExplicitDiscordSessionKey } from "./session-key-normalization-wJgsKPNF.mjs";
12
12
  import { t as defaultTopLevelPlacement } from "./thread-binding-api-BDZJD4na.mjs";
13
13
  import { formatErrorMessage } from "openclaw/plugin-sdk/error-runtime";
14
+ import { normalizeAccountId } from "openclaw/plugin-sdk/account-id";
14
15
  import { normalizeLowercaseStringOrEmpty, normalizeOptionalString, normalizeOptionalStringifiedId } from "openclaw/plugin-sdk/string-coerce-runtime";
15
16
  import { createRuntimeConfigReader } from "openclaw/plugin-sdk/runtime-config-snapshot";
16
17
  import { sleepWithAbort } from "openclaw/plugin-sdk/runtime-env";
@@ -199,7 +200,7 @@ function createDiscordApprovalCapability(configOverride) {
199
200
  request,
200
201
  configOverride
201
202
  }),
202
- load: async () => (await import("./approval-handler.runtime-Du3n5ypX.mjs")).discordApprovalNativeRuntime
203
+ load: async () => (await import("./approval-handler.runtime-CbBktBb4.mjs")).discordApprovalNativeRuntime
203
204
  })
204
205
  });
205
206
  }
@@ -309,9 +310,9 @@ function resolveDiscordInboundConversation(params) {
309
310
  const loadDiscordDirectoryConfigModule = createLazyRuntimeModule(() => import("./directory-config-BytTftz-.mjs").then((n) => n.t));
310
311
  const loadDiscordResolveChannelsModule = createLazyRuntimeModule(() => import("./resolve-channels-BbvsLQOZ.mjs").then((n) => n.n));
311
312
  const loadDiscordResolveUsersModule = createLazyRuntimeModule(() => import("./resolve-users-ByFlR7LQ.mjs").then((n) => n.n));
312
- const loadDiscordThreadBindingsManagerModule = createLazyRuntimeModule(() => import("./thread-bindings.manager-eexkKyrG.mjs").then((n) => n.a));
313
- const loadDiscordTargetResolverModule = createLazyRuntimeModule(() => import("./target-resolver-B6MrxbYv.mjs").then((n) => n.r));
314
- const loadDiscordProviderRuntime = createLazyRuntimeModule(() => import("./provider.runtime-DuhmKdDU.mjs"));
313
+ const loadDiscordThreadBindingsManagerModule = createLazyRuntimeModule(() => import("./thread-bindings.manager-ve-i6oqt.mjs").then((n) => n.i));
314
+ const loadDiscordTargetResolverModule = createLazyRuntimeModule(() => import("./target-resolver-BXpy6VT8.mjs").then((n) => n.r));
315
+ const loadDiscordProviderRuntime = createLazyRuntimeModule(() => import("./provider.runtime-BmjW_pIw.mjs"));
315
316
  const loadDiscordProbeRuntime = createLazyRuntimeModule(() => import("./probe.runtime-DBQ_AGPe.mjs"));
316
317
  async function probeDiscordStatusAccount(params) {
317
318
  const startedAtMs = Date.now();
@@ -319,12 +320,14 @@ async function probeDiscordStatusAccount(params) {
319
320
  const remainingMs = Math.max(1, params.timeoutMs - Math.max(0, Date.now() - startedAtMs));
320
321
  return await runtime.probeDiscord(params.token, remainingMs, { includeApplication: true });
321
322
  }
322
- const loadDiscordAuditModule = createLazyRuntimeModule(() => import("./audit-C8uaKoa9.mjs").then((n) => n.n));
323
- const loadDiscordSendModule = createLazyRuntimeModule(() => import("./send-CKDczUNL.mjs").then((n) => n.t));
323
+ const loadDiscordAuditModule = createLazyRuntimeModule(() => import("./audit-vKbh-LFR.mjs").then((n) => n.n));
324
+ const loadDiscordSendModule = createLazyRuntimeModule(() => import("./send-CIBzvXjS.mjs").then((n) => n.t));
324
325
  const loadDiscordDirectoryLiveModule = createLazyRuntimeModule(() => import("./directory-live--EGTH0DC.mjs").then((n) => n.t));
325
326
  //#endregion
326
327
  //#region extensions/discord/src/conversation-route-owner.ts
327
328
  function inspectDiscordConversationRouteOwner(params) {
329
+ const accountId = normalizeAccountId(params.accountId);
330
+ if (params.cfg.channels?.discord?.enabled === false || !listDiscordAccountIds(params.cfg).some((id) => normalizeAccountId(id) === accountId) || resolveDiscordAccountConfig(params.cfg, accountId)?.enabled === false) return null;
328
331
  const direct = params.conversation.kind === "direct";
329
332
  const nativeConversationId = params.conversation.nativeChannelId ?? params.conversation.peerId;
330
333
  const threadConversationId = direct ? void 0 : params.conversation.threadId;
@@ -336,7 +339,7 @@ function inspectDiscordConversationRouteOwner(params) {
336
339
  });
337
340
  const route = resolveDiscordConversationRoute({
338
341
  cfg: params.cfg,
339
- accountId: params.accountId,
342
+ accountId,
340
343
  guildId: params.conversation.context?.guildId,
341
344
  memberRoleIds: params.conversation.context?.memberRoleIds,
342
345
  peer: {
@@ -348,7 +351,7 @@ function inspectDiscordConversationRouteOwner(params) {
348
351
  const { runtimeRoute, configuredRoute } = resolveDiscordConversationBindingRoute({
349
352
  cfg: params.cfg,
350
353
  route,
351
- accountId: params.accountId,
354
+ accountId,
352
355
  runtimeConversationId,
353
356
  configuredConversationId: threadConversationId ?? nativeConversationId,
354
357
  parentConversationId: params.conversation.context?.parentPeerId,
@@ -357,7 +360,7 @@ function inspectDiscordConversationRouteOwner(params) {
357
360
  if (!runtimeRoute.bindingOwnerAvailable && resolveThreadBindingSpawnPolicy({
358
361
  cfg: params.cfg,
359
362
  channel: "discord",
360
- accountId: params.accountId,
363
+ accountId,
361
364
  kind: "subagent"
362
365
  }).enabled) return { kind: "unavailable" };
363
366
  if (runtimeRoute.pluginId) return {
@@ -800,7 +803,7 @@ const discordPlugin = createChatChannelPlugin({
800
803
  });
801
804
  } },
802
805
  status: createComputedAccountStatusAdapter({
803
- defaultRuntime: createDefaultChannelRuntimeState(DEFAULT_ACCOUNT_ID, {
806
+ defaultRuntime: createDefaultChannelRuntimeState(DEFAULT_ACCOUNT_ID$1, {
804
807
  connected: false,
805
808
  reconnectAttempts: 0,
806
809
  lastConnectedAt: null,
@@ -1,11 +1,11 @@
1
1
  import { C as withDiscordRequestAuthority } from "./discord-BXpHW-cu.mjs";
2
- import { i as buildDiscordPresentationComponents, m as coerceDiscordComponentParam, r as buildDiscordInteractiveComponents } from "./components-MqMWUWnE.mjs";
3
- import { b as resolveDiscordChannelId, y as parseDiscordTarget } from "./retry-DBfcEgmO.mjs";
4
- import "./targets-D1mAB5yO.mjs";
5
- import { a as readDiscordAutoArchiveDurationParam, t as handleDiscordAction } from "./runtime-SchNfUsQ.mjs";
2
+ import { i as buildDiscordPresentationComponents, m as coerceDiscordComponentParam, r as buildDiscordInteractiveComponents } from "./components-yBEb75bB.mjs";
3
+ import { b as resolveDiscordChannelId, g as matchesDiscordToolContextTarget, y as parseDiscordTarget } from "./retry-BEYkDy0P.mjs";
4
+ import "./targets-CvemhN3i.mjs";
5
+ import { a as readDiscordAutoArchiveDurationParam, t as handleDiscordAction } from "./runtime-B8lJfyrA.mjs";
6
6
  import "../action-runtime-api.js";
7
- import { b as discordInboundEventDelivery, i as isDiscordComponentSpecWithinMessageLimit, n as DISCORD_PRESENTATION_CAPABILITIES } from "./outbound-session-route-CqWbuMOm.mjs";
8
- import { t as tryHandleDiscordMessageActionGuildAdmin } from "./handle-action.guild-admin-DAFyh_yV.mjs";
7
+ import { b as discordInboundEventDelivery, i as isDiscordComponentSpecWithinMessageLimit, n as DISCORD_PRESENTATION_CAPABILITIES } from "./outbound-session-route-VulUE0yV.mjs";
8
+ import { t as tryHandleDiscordMessageActionGuildAdmin } from "./handle-action.guild-admin-DcFa8NwA.mjs";
9
9
  import { n as notifyDiscordActiveTurnThreadCreated, r as notifyDiscordActiveTurnThreadReplyDelivered } from "./active-turn-thread-route-fmHl1HNd.mjs";
10
10
  import { normalizeOptionalStringifiedId } from "openclaw/plugin-sdk/string-coerce-runtime";
11
11
  import { adaptMessagePresentationForChannel, normalizeLegacyInteractiveReply, normalizeMessagePresentation, renderMessagePresentationFallbackText } from "openclaw/plugin-sdk/interactive-runtime";
@@ -52,6 +52,7 @@ async function dispatchDiscordMessageAction(ctx) {
52
52
  mediaLocalRoots: ctx.mediaLocalRoots,
53
53
  mediaReadFile: ctx.mediaReadFile,
54
54
  ...ctx.reply ? { reply: ctx.reply } : {},
55
+ ...ctx.progressSnapshot ? { progressSnapshot: ctx.progressSnapshot } : {},
55
56
  ...readPolicyOptions
56
57
  };
57
58
  const notifyVisibleOutbound = (result, to, fallbackSessionKey) => {
@@ -228,10 +229,15 @@ async function dispatchDiscordMessageAction(ctx) {
228
229
  }
229
230
  if (action === "edit" || action === "delete") {
230
231
  const messageId = readStringParam$1(params, "messageId", { required: true });
232
+ const target = readTarget();
233
+ const currentDmChannel = action === "edit" && ctx.progressSnapshot && ctx.toolContext?.currentChatType === "direct" && parseDiscordTarget(target, { defaultKind: "channel" })?.kind === "user" && matchesDiscordToolContextTarget({
234
+ target,
235
+ toolContext: ctx.toolContext
236
+ }) ? readCurrentDiscordTarget(ctx.toolContext) : void 0;
231
237
  return await handleDiscordAction({
232
238
  action: action === "edit" ? "editMessage" : "deleteMessage",
233
239
  accountId: accountId ?? void 0,
234
- channelId: resolveChannelId(),
240
+ channelId: resolveDiscordChannelId(currentDmChannel ?? target),
235
241
  messageId,
236
242
  ...action === "edit" ? { content: params.message } : {}
237
243
  }, cfg, actionOptions);
@@ -1,5 +1,5 @@
1
1
  import { _ as inspectDiscordAccountTokenState, h as resolveDiscordToken, l as resolveDiscordAccountAllowFrom, o as mergeDiscordAccountConfig, s as resolveDefaultDiscordAccountId, u as resolveDiscordAccountConfig } from "./accounts-CwJQoLjM.mjs";
2
- import { i as discordSetupContract, t as createDiscordPluginBase } from "./shared-CaA3Vv4n.mjs";
2
+ import { i as discordSetupContract, t as createDiscordPluginBase } from "./shared-DHPDaMSx.mjs";
3
3
  import { t as resolveDiscordChannelAllowlist } from "./resolve-channels-BbvsLQOZ.mjs";
4
4
  import { t as resolveDiscordUserAllowlist } from "./resolve-users-ByFlR7LQ.mjs";
5
5
  import { DEFAULT_ACCOUNT_ID, normalizeAccountId } from "openclaw/plugin-sdk/account-id";
@@ -697,7 +697,6 @@ function buildDiscordComponentMessageFlags(components) {
697
697
  }
698
698
  //#endregion
699
699
  //#region extensions/discord/src/components.modal.ts
700
- const ModalBase = Modal ?? function ModalFallback() {};
701
700
  function createModalFieldComponent(field) {
702
701
  if (field.type === "text") {
703
702
  class DynamicTextInput extends TextInput {
@@ -746,7 +745,7 @@ function createModalFieldComponent(field) {
746
745
  }
747
746
  return new DynamicRadioGroup();
748
747
  }
749
- var DiscordFormModal = class extends ModalBase {
748
+ var DiscordFormModal = class extends Modal {
750
749
  constructor(params) {
751
750
  super();
752
751
  this.customIdParser = parseDiscordModalCustomIdForInteraction;
@@ -1,4 +1,4 @@
1
- import { m as shouldIgnoreStaleDiscordRouteBinding } from "./outbound-session-route-CqWbuMOm.mjs";
1
+ import { m as shouldIgnoreStaleDiscordRouteBinding } from "./outbound-session-route-VulUE0yV.mjs";
2
2
  import { logVerbose } from "openclaw/plugin-sdk/runtime-env";
3
3
  import { resolveConfiguredBindingRoute, resolveRuntimeConversationBindingRoute } from "openclaw/plugin-sdk/conversation-binding-runtime";
4
4
  //#region extensions/discord/src/monitor/conversation-binding-route.ts
@@ -21,12 +21,15 @@ function resolveDiscordConversationBindingRoute(params) {
21
21
  runtimeRoute = {
22
22
  bindingOwnerAvailable: true,
23
23
  bindingRecord: null,
24
- route: params.route
24
+ route: {
25
+ ...runtimeRoute.route,
26
+ ...params.route
27
+ }
25
28
  };
26
29
  }
27
30
  const configuredRoute = runtimeRoute.bindingRecord ? null : resolveConfiguredBindingRoute({
28
31
  cfg: params.cfg,
29
- route: params.route,
32
+ route: runtimeRoute.route,
30
33
  conversation: {
31
34
  channel: "discord",
32
35
  accountId: params.accountId,
@@ -1,7 +1,7 @@
1
1
  import { s as resolveDefaultDiscordAccountId } from "./accounts-CwJQoLjM.mjs";
2
- import { t as discordVoiceTranscriptsSourceProvider } from "./transcripts-source-CuWYgayu.mjs";
2
+ import { n as discordVoiceTranscriptsSourceProvider } from "./transcripts-source-DVegW0WI.mjs";
3
3
  import { t as inspectDiscordAccount } from "./account-inspect-BwQj24ht.mjs";
4
- import { r as DISCORD_LEGACY_CONFIG_RULES } from "./shared-CaA3Vv4n.mjs";
4
+ import { r as DISCORD_LEGACY_CONFIG_RULES } from "./shared-DHPDaMSx.mjs";
5
5
  import { n as normalizeCompatibilityConfig } from "./doctor-contract-Co5vRCZ6.mjs";
6
6
  import { t as isDiscordMutableAllowEntry } from "./security-doctor-nGgPm65L.mjs";
7
7
  import { expectDefined } from "openclaw/plugin-sdk/expect-runtime";
@@ -1,9 +1,9 @@
1
- import { c as readDiscordChannelMoveParams, n as isDiscordModerationAction, o as readDiscordChannelCreateParams, r as readDiscordModerationCommand, s as readDiscordChannelEditParams, t as handleDiscordAction } from "./runtime-SchNfUsQ.mjs";
1
+ import { c as readDiscordChannelMoveParams, n as isDiscordModerationAction, o as readDiscordChannelCreateParams, r as readDiscordModerationCommand, s as readDiscordChannelEditParams, t as handleDiscordAction } from "./runtime-B8lJfyrA.mjs";
2
2
  import "../action-runtime-api.js";
3
- import { y as isTrustedRequesterGuildAdminAction } from "./outbound-session-route-CqWbuMOm.mjs";
3
+ import { y as isTrustedRequesterGuildAdminAction } from "./outbound-session-route-VulUE0yV.mjs";
4
4
  import { normalizeOptionalString } from "openclaw/plugin-sdk/string-coerce-runtime";
5
5
  import { readBooleanParam } from "openclaw/plugin-sdk/boolean-param";
6
- import { readNonNegativeIntegerParam, readPositiveIntegerParam, readStringArrayParam, readStringParam } from "openclaw/plugin-sdk/agent-runtime";
6
+ import { readNonNegativeIntegerParam, readPositiveIntegerParam, readStringArrayParam, readStringParam } from "openclaw/plugin-sdk/param-readers";
7
7
  //#region extensions/discord/src/actions/handle-action.guild-admin.ts
8
8
  function readDiscordRequesterSenderId(ctx) {
9
9
  const currentProvider = normalizeOptionalString(ctx.toolContext?.currentChannelProvider);
@@ -1,8 +1,8 @@
1
1
  import { E as getDiscordEndpointRuntime, O as resolveDiscordEndpointMediaGuard } from "./channel-type-DKnjV1XW.mjs";
2
2
  import { t as getDiscordRuntime } from "./runtime-DgnVQ7zW.mjs";
3
3
  import { a as resolveDiscordChannelParentSafe, n as resolveDiscordChannelInfoSafe, r as resolveDiscordChannelNameSafe, t as resolveDiscordChannelIdSafe } from "./channel-access-C12aDZ0p.mjs";
4
- import { E as hasDiscordMessageStickers, T as resolveDiscordCdnPolicy, b as resolveDiscordMessageText, j as resolveDiscordMessageChannelId, k as resolveDiscordReferencedReplyMessageId } from "./transcripts-source-CuWYgayu.mjs";
5
- import { v as createDiscordLivePolicyReader, y as mapGatewayDispatchData } from "./provider-72zIvN-i.mjs";
4
+ import { A as resolveDiscordReferencedReplyMessageId, D as hasDiscordMessageStickers, E as resolveDiscordCdnPolicy, M as resolveDiscordMessageChannelId, x as resolveDiscordMessageText } from "./transcripts-source-DVegW0WI.mjs";
5
+ import { v as createDiscordLivePolicyReader, y as mapGatewayDispatchData } from "./provider-iOf73HW-.mjs";
6
6
  import { logDebug } from "openclaw/plugin-sdk/logging-core";
7
7
  import { GatewayDispatchEvents } from "discord-api-types/v10";
8
8
  import { formatErrorMessage } from "openclaw/plugin-sdk/error-runtime";
@@ -119,7 +119,7 @@ function createDiscordIngressMonitor(params) {
119
119
  //#endregion
120
120
  //#region extensions/discord/src/monitor/inbound-job.ts
121
121
  function buildDiscordInboundJob(ctx, options) {
122
- const { runtime, buildContext, abortSignal, guildHistories, client, turnAdoptionLifecycle, threadBindings, discordRestFetch, message, data, threadChannel, ...payload } = ctx;
122
+ const { runtime, buildContext, abortSignal, isPolicyCurrent, guildHistories, client, turnAdoptionLifecycle, threadBindings, discordRestFetch, message, data, threadChannel, ...payload } = ctx;
123
123
  const sanitizedMessage = sanitizeDiscordInboundMessage(message);
124
124
  return {
125
125
  payload: {
@@ -135,6 +135,7 @@ function buildDiscordInboundJob(ctx, options) {
135
135
  runtime,
136
136
  buildContext,
137
137
  abortSignal,
138
+ isPolicyCurrent,
138
139
  guildHistories,
139
140
  client,
140
141
  turnAdoptionLifecycle,
@@ -260,7 +261,7 @@ function applyImplicitReplyBatchGate(ctx, replyToMode, isBatched) {
260
261
  }
261
262
  //#endregion
262
263
  //#region extensions/discord/src/monitor/message-run-queue.ts
263
- const loadMessageProcessRuntime = createLazyRuntimeModule(() => import("./message-handler.process-Dz1xvuQU.mjs"));
264
+ const loadMessageProcessRuntime = createLazyRuntimeModule(() => import("./message-handler.process-CCmIVnxy.mjs"));
264
265
  async function processDiscordQueuedMessage(params) {
265
266
  const abortSignal = params.job.runtime.abortSignal && params.lifecycleSignal ? AbortSignal.any([params.job.runtime.abortSignal, params.lifecycleSignal]) : params.job.runtime.abortSignal ?? params.lifecycleSignal;
266
267
  try {
@@ -347,7 +348,7 @@ function createDiscordMessageRunQueue(params) {
347
348
  }
348
349
  //#endregion
349
350
  //#region extensions/discord/src/monitor/message-dispatcher.ts
350
- const loadMessagePreflightRuntime = createLazyRuntimeModule(() => import("./message-handler.preflight-CtqaF_fb.mjs"));
351
+ const loadMessagePreflightRuntime = createLazyRuntimeModule(() => import("./message-handler.preflight-DE_POxFc.mjs"));
351
352
  function isNonEmptyString(value) {
352
353
  return typeof value === "string" && value.length > 0;
353
354
  }
@@ -1,25 +1,24 @@
1
1
  import { D as Message, mt as getChannelMessage, t as discord_exports } from "./discord-BXpHW-cu.mjs";
2
- import { C as resolveTimestampMs, S as resolveDiscordSystemLocation, _ as resolveDiscordShouldRequireMention, a as normalizeDiscordDisplaySlug, f as resolveDiscordGuildEntry, l as resolveDiscordChannelConfigWithFallback, o as normalizeDiscordSlug, p as resolveDiscordMemberAccessState, t as isDiscordThreadChannelType, x as formatDiscordUserTag } from "./channel-type-DKnjV1XW.mjs";
2
+ import { C as resolveTimestampMs, S as resolveDiscordSystemLocation, _ as resolveDiscordShouldRequireMention, a as normalizeDiscordDisplaySlug, f as resolveDiscordGuildEntry, l as resolveDiscordChannelConfigWithFallback, o as normalizeDiscordSlug, p as resolveDiscordMemberAccessState, x as formatDiscordUserTag } from "./channel-type-DKnjV1XW.mjs";
3
3
  import { s as resolveDefaultDiscordAccountId } from "./accounts-CwJQoLjM.mjs";
4
4
  import { n as resolveDiscordChannelInfoSafe, r as resolveDiscordChannelNameSafe } from "./channel-access-C12aDZ0p.mjs";
5
- import { A as resolveDiscordChannelInfo, C as resolveMediaList, D as resolveDiscordMessageStickers, O as resolveDiscordReferencedReplyMessage, S as resolveForwardedMediaList, _ as resolveDiscordMessageBatch, b as resolveDiscordMessageText, j as resolveDiscordMessageChannelId, v as resolveDiscordMessageHistoryText, y as resolveDiscordMessageMentionDocuments } from "./transcripts-source-CuWYgayu.mjs";
5
+ import { C as resolveForwardedMediaList, M as resolveDiscordMessageChannelId, O as resolveDiscordMessageStickers, b as resolveDiscordMessageMentionDocuments, j as resolveDiscordChannelInfo, k as resolveDiscordReferencedReplyMessage, v as resolveDiscordMessageBatch, w as resolveMediaList, x as resolveDiscordMessageText, y as resolveDiscordMessageHistoryText } from "./transcripts-source-DVegW0WI.mjs";
6
6
  import { n as DISCORD_ATTACHMENT_TOTAL_TIMEOUT_MS, t as DISCORD_ATTACHMENT_IDLE_TIMEOUT_MS } from "./timeouts-D86uWLt_.mjs";
7
- import { _ as resolveDiscordRuntimeBindingConversationId, f as resolveDiscordConversationRoute, h as resolveDiscordConversationIdentity, p as resolveDiscordEffectiveRoute, u as buildDiscordRoutePeer } from "./outbound-session-route-CqWbuMOm.mjs";
8
- import { t as resolveDiscordConversationBindingRoute } from "./conversation-binding-route-_rz33QHO.mjs";
9
- import { S as resolveDiscordTextCommandAccess, _ as handleDiscordDmCommandDecision, n as resolveDiscordPreflightChannelAccess, x as resolveDiscordDmCommandAccess } from "./provider-72zIvN-i.mjs";
7
+ import { _ as resolveDiscordRuntimeBindingConversationId, f as resolveDiscordConversationRoute, h as resolveDiscordConversationIdentity, p as resolveDiscordEffectiveRoute, u as buildDiscordRoutePeer } from "./outbound-session-route-VulUE0yV.mjs";
8
+ import { t as resolveDiscordConversationBindingRoute } from "./conversation-binding-route-B7qImK_b.mjs";
9
+ import { S as resolveDiscordTextCommandAccess, _ as handleDiscordDmCommandDecision, n as resolveDiscordPreflightChannelAccess, x as resolveDiscordDmCommandAccess } from "./provider-iOf73HW-.mjs";
10
10
  import { n as resolveDiscordWebhookId, t as resolveDiscordSenderIdentity } from "./sender-identity-0Ymgvmaj.mjs";
11
- import { t as createDiscordHistorySenderProvenance } from "./message-handler.history-CJOsN9w5.mjs";
11
+ import { a as createDiscordHistorySenderProvenance, c as hasRawDiscordUserMention, d as matchesActiveDiscordMentionPatterns, f as resolveDiscordMentionState, h as shouldIgnoreBoundThreadWebhookMessage, i as loadSystemEventsRuntime, l as isBoundThreadBotSystemMessage, m as resolvePreflightMentionRequirement, n as loadDiscordThreadingRuntime, p as resolveInjectedBoundThreadLookupRecord, r as loadPreflightAudioRuntime, s as resolveDiscordHistoryMediaIds, t as resolveDiscordPreflightPluralKitInfo, u as isDiscordThreadChannelMessage } from "./message-handler.preflight-pluralkit-8Xji34AF.mjs";
12
12
  import { logDebug } from "openclaw/plugin-sdk/logging-core";
13
13
  import { MessageReferenceType, MessageType } from "discord-api-types/v10";
14
- import { normalizeOptionalString, readStringValue } from "openclaw/plugin-sdk/string-coerce-runtime";
14
+ import { readStringValue } from "openclaw/plugin-sdk/string-coerce-runtime";
15
15
  import { recordChannelActivity } from "openclaw/plugin-sdk/channel-activity-runtime";
16
16
  import { mimeTypeFromFilePath } from "openclaw/plugin-sdk/media-mime";
17
17
  import { getChildLogger, logVerbose, shouldLogVerbose } from "openclaw/plugin-sdk/runtime-env";
18
18
  import { formatAllowlistMatchMeta } from "openclaw/plugin-sdk/allow-from";
19
- import { findCodeRegions, isInsideCode } from "openclaw/plugin-sdk/text-chunking";
20
19
  import { isRecentOutboundMessageIdentity } from "openclaw/plugin-sdk/channel-outbound";
21
20
  import { createLazyRuntimeModule } from "openclaw/plugin-sdk/lazy-runtime";
22
- import { buildMentionRegexes, classifyChannelInboundEvent, implicitMentionKindWhen, logInboundDrop, matchesMentionWithExplicit, normalizeMentionText, recordChannelBotPairLoopAndCheckSuppression, resolveGroupThreadMentionFacts, resolveInboundMentionDecision, resolveUnmentionedGroupInboundPolicy, toHistoryMediaEntries, toInboundMediaFactsWithMetadata } from "openclaw/plugin-sdk/channel-inbound";
21
+ import { buildMentionRegexes, classifyChannelInboundEvent, logInboundDrop, recordChannelBotPairLoopAndCheckSuppression, resolveGroupThreadMentionFacts, resolveInboundMentionDecision, resolveUnmentionedGroupInboundPolicy, toHistoryMediaEntries, toInboundMediaFactsWithMetadata } from "openclaw/plugin-sdk/channel-inbound";
23
22
  import { isDangerousNameMatchingEnabled } from "openclaw/plugin-sdk/dangerous-name-runtime";
24
23
  import { enqueueRoutedSystemEvent } from "openclaw/plugin-sdk/system-event-runtime";
25
24
  import { hasControlCommand } from "openclaw/plugin-sdk/command-detection";
@@ -28,7 +27,7 @@ import { shouldHandleTextCommands } from "openclaw/plugin-sdk/command-surface";
28
27
  import { createChannelHistoryWindow } from "openclaw/plugin-sdk/reply-history";
29
28
  //#region extensions/discord/src/monitor/message-handler.dm-preflight.ts
30
29
  const loadConversationRuntime$1 = createLazyRuntimeModule(() => import("openclaw/plugin-sdk/conversation-binding-runtime"));
31
- const loadDiscordSendRuntime = createLazyRuntimeModule(() => import("./send-CKDczUNL.mjs").then((n) => n.t));
30
+ const loadDiscordSendRuntime = createLazyRuntimeModule(() => import("./send-CIBzvXjS.mjs").then((n) => n.t));
32
31
  function resolveDiscordDmPairingSenderId(sender) {
33
32
  return sender.isPluralKit ? `pk:${sender.id}` : sender.id;
34
33
  }
@@ -306,6 +305,7 @@ function resolveDiscordPreflightChannelContext(params) {
306
305
  function buildDiscordMessagePreflightContext({ preflightParams, ...fields }) {
307
306
  return {
308
307
  cfg: preflightParams.cfg,
308
+ client: preflightParams.client,
309
309
  discordConfig: preflightParams.discordConfig,
310
310
  accountId: preflightParams.accountId,
311
311
  token: preflightParams.token,
@@ -313,6 +313,7 @@ function buildDiscordMessagePreflightContext({ preflightParams, ...fields }) {
313
313
  buildContext: preflightParams.buildContext,
314
314
  botUserId: preflightParams.botUserId,
315
315
  abortSignal: preflightParams.abortSignal,
316
+ isPolicyCurrent: preflightParams.isPolicyCurrent,
316
317
  guildHistories: preflightParams.guildHistories,
317
318
  historyLimit: preflightParams.historyLimit,
318
319
  mediaMaxBytes: preflightParams.mediaMaxBytes,
@@ -327,88 +328,6 @@ function buildDiscordMessagePreflightContext({ preflightParams, ...fields }) {
327
328
  };
328
329
  }
329
330
  //#endregion
330
- //#region extensions/discord/src/monitor/message-handler.preflight-helpers.ts
331
- const DISCORD_BOUND_THREAD_SYSTEM_PREFIXES = [
332
- "⚙️",
333
- "🤖",
334
- "🧰"
335
- ];
336
- function isBoundThreadBotSystemMessage(params) {
337
- if (!params.isBoundThreadSession || !params.isBotAuthor) return false;
338
- const text = params.text?.trim();
339
- if (!text) return false;
340
- return DISCORD_BOUND_THREAD_SYSTEM_PREFIXES.some((prefix) => text.startsWith(prefix));
341
- }
342
- function isDiscordThreadChannelMessage(params) {
343
- if (!params.isGuildMessage) return false;
344
- const channel = "channel" in params.message ? params.message.channel : void 0;
345
- return Boolean(channel && typeof channel === "object" && "isThread" in channel && typeof channel.isThread === "function" && channel.isThread() || isDiscordThreadChannelType(params.channelInfo?.type));
346
- }
347
- function resolveInjectedBoundThreadLookupRecord(params) {
348
- const getByThreadId = params.threadBindings.getByThreadId;
349
- if (typeof getByThreadId !== "function") return;
350
- const binding = getByThreadId(params.threadId);
351
- return binding && typeof binding === "object" ? binding : void 0;
352
- }
353
- function resolveDiscordMentionState(params) {
354
- if (params.isDirectMessage) return {
355
- implicitMentionKinds: [],
356
- wasMentioned: false
357
- };
358
- const wasMentioned = params.mentionedEveryone && (!params.authorIsBot || params.senderIsPluralKit) || matchesMentionWithExplicit({
359
- text: params.mentionText,
360
- mentionRegexes: params.mentionRegexes,
361
- explicit: {
362
- hasAnyMention: params.hasAnyMention,
363
- isExplicitlyMentioned: params.isExplicitlyMentioned,
364
- canResolveExplicit: Boolean(params.botId)
365
- },
366
- transcript: params.transcript
367
- });
368
- return {
369
- implicitMentionKinds: implicitMentionKindWhen("reply_to_bot", Boolean(params.botId) && Boolean(params.referencedAuthorId) && params.referencedAuthorId === params.botId),
370
- wasMentioned
371
- };
372
- }
373
- function hasRawDiscordUserMention(text, userId) {
374
- if (!userId) return false;
375
- const codeRegions = findCodeRegions(text);
376
- for (const mention of [`<@${userId}>`, `<@!${userId}>`]) {
377
- let index = text.indexOf(mention);
378
- while (index >= 0) {
379
- let precedingBackslashes = 0;
380
- for (let offset = index - 1; offset >= 0 && text[offset] === "\\"; offset -= 1) precedingBackslashes += 1;
381
- if (precedingBackslashes % 2 === 0 && !isInsideCode(index, codeRegions)) return true;
382
- index = text.indexOf(mention, index + mention.length);
383
- }
384
- }
385
- return false;
386
- }
387
- function matchesActiveDiscordMentionPatterns(text, mentionRegexes) {
388
- if (mentionRegexes.length === 0) return false;
389
- const cleaned = normalizeMentionText(text);
390
- const normalizedOffset = (offset) => Math.min(cleaned.length, normalizeMentionText(`${text.slice(0, offset)}\0`).length - 1);
391
- const codeRegions = findCodeRegions(text).map(({ start, end }) => ({
392
- start: normalizedOffset(start),
393
- end: normalizedOffset(end)
394
- }));
395
- for (const regex of mentionRegexes) for (const match of cleaned.matchAll(new RegExp(regex.source, `${regex.flags}g`))) if (!codeRegions.some(({ start, end }) => match.index < end && (match.index >= start || match.index + match[0].length > start))) return true;
396
- return false;
397
- }
398
- function resolvePreflightMentionRequirement(params) {
399
- if (!params.shouldRequireMention) return false;
400
- return !params.bypassMentionRequirement;
401
- }
402
- function shouldIgnoreBoundThreadWebhookMessage(params) {
403
- const webhookId = normalizeOptionalString(params.webhookId) ?? "";
404
- if (!webhookId) return false;
405
- const boundWebhookId = normalizeOptionalString(params.threadBinding?.webhookId) ?? normalizeOptionalString(params.threadBinding?.metadata?.webhookId) ?? "";
406
- if (boundWebhookId && webhookId === boundWebhookId) return true;
407
- if (!(normalizeOptionalString(params.threadId) ?? "")) return false;
408
- if (params.threadBinding) return true;
409
- return false;
410
- }
411
- //#endregion
412
331
  //#region extensions/discord/src/monitor/message-handler.preflight-history.ts
413
332
  function buildDiscordPreflightHistoryEntry(params) {
414
333
  const textForHistory = resolveDiscordMessageHistoryText(params.message, { includeForwarded: true });
@@ -417,6 +336,7 @@ function buildDiscordPreflightHistoryEntry(params) {
417
336
  body: textForHistory,
418
337
  timestamp: resolveTimestampMs(params.message.timestamp),
419
338
  messageId: params.message.id,
339
+ mediaIds: resolveDiscordHistoryMediaIds(params.message),
420
340
  senderProvenance: createDiscordHistorySenderProvenance({
421
341
  sender: params.sender,
422
342
  memberRoleIds: params.memberRoleIds
@@ -435,29 +355,6 @@ function logDiscordPreflightInboundSummary(params) {
435
355
  logVerbose(`discord: inbound id=${params.messageId} guild=${params.guildId ?? "dm"} channel=${params.channelId} mention=${params.wasMentioned ? "yes" : "no"} type=${params.isDirectMessage ? "dm" : params.isGroupDm ? "group-dm" : "guild"} content=${params.hasContent ? "yes" : "no"}`);
436
356
  }
437
357
  //#endregion
438
- //#region extensions/discord/src/monitor/message-handler.preflight-runtime.ts
439
- const loadPluralKitRuntime = createLazyRuntimeModule(() => import("./pluralkit-CdAt1G0P.mjs").then((n) => n.n));
440
- const loadPreflightAudioRuntime = createLazyRuntimeModule(() => import("./preflight-audio-DrnqFA8U.mjs"));
441
- const loadSystemEventsRuntime = createLazyRuntimeModule(() => import("./system-events-B2YEEMbS.mjs"));
442
- const loadDiscordThreadingRuntime = createLazyRuntimeModule(() => import("./transcripts-source-CuWYgayu.mjs").then((n) => n.f));
443
- //#endregion
444
- //#region extensions/discord/src/monitor/message-handler.preflight-pluralkit.ts
445
- async function resolveDiscordPreflightPluralKitInfo(params) {
446
- if (!params.config?.enabled || !params.webhookId) return null;
447
- try {
448
- const { fetchPluralKitMessageInfo } = await loadPluralKitRuntime();
449
- const info = await fetchPluralKitMessageInfo({
450
- messageId: params.message.id,
451
- config: params.config,
452
- signal: params.abortSignal
453
- });
454
- return params.abortSignal?.aborted ? null : info;
455
- } catch (err) {
456
- logVerbose(`discord: pluralkit lookup failed for ${params.message.id}: ${String(err)}`);
457
- return null;
458
- }
459
- }
460
- //#endregion
461
358
  //#region extensions/discord/src/monitor/message-handler.preflight-thread.ts
462
359
  async function resolveDiscordPreflightThreadContext(params) {
463
360
  const { resolveDiscordThreadChannel, resolveDiscordThreadParentInfo } = await loadDiscordThreadingRuntime();
@@ -518,7 +415,7 @@ async function resolveDiscordPreflightRoute(params) {
518
415
  if (!threadBinding && configuredBinding) threadBinding = configuredBinding.record;
519
416
  const boundSessionKey = conversationRuntime.isPluginOwnedSessionBindingRecord(threadBinding) ? "" : runtimeRoute.boundSessionKey ?? threadBinding?.targetSessionKey?.trim();
520
417
  const effectiveRoute = runtimeRoute.boundSessionKey ? runtimeRoute.route : resolveDiscordEffectiveRoute({
521
- route,
418
+ route: configuredRoute?.route ?? runtimeRoute.route,
522
419
  boundSessionKey,
523
420
  configuredRoute,
524
421
  matchedBy: "binding.channel"
@@ -1112,8 +1009,8 @@ async function preflightDiscordMessage(params) {
1112
1009
  preflightParams: params,
1113
1010
  groupThread,
1114
1011
  data,
1115
- client: params.client,
1116
1012
  message,
1013
+ sourceMessageIds: hydratedSources.map((source) => source.message.id),
1117
1014
  messageChannelId,
1118
1015
  author,
1119
1016
  sender,