@openclaw/discord 2026.9.5 → 2026.9.7

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 (517) hide show
  1. package/assets/icon.png +0 -0
  2. package/dist/.setup/{account-inspect-BwQj24ht.mjs → account-inspect-De8hOUxG.mjs} +1 -1
  3. package/dist/.setup/{accounts-CwJQoLjM.mjs → accounts-ChaMcixG.mjs} +1 -4
  4. package/dist/.setup/{activities-api-DBwRt5ES.mjs → activities-api-tvbsU2e3.mjs} +38 -66
  5. package/dist/.setup/{api-CBK9zcq5.mjs → api-DVbJwZVt.mjs} +10 -2
  6. package/dist/.setup/{approval-handler.runtime-Du3n5ypX.mjs → approval-handler.runtime-DxCK2Rux.mjs} +49 -125
  7. package/dist/.setup/{approval-message-updates-BN7JtScm.mjs → approval-message-updates-BKFqavHZ.mjs} +2 -2
  8. package/dist/.setup/{audit-C8uaKoa9.mjs → audit-CLg9I71N.mjs} +5 -5
  9. package/dist/.setup/{channel-ChKdlBgH.mjs → channel-DxlUVU9t.mjs} +125 -228
  10. package/dist/.setup/{channel-type-DKnjV1XW.mjs → channel-type-DRCrEMss.mjs} +22 -22
  11. package/dist/.setup/{channel.setup-BlC3-Kzz.mjs → channel.setup-CRo1GjV7.mjs} +6 -9
  12. package/dist/.setup/{components-MqMWUWnE.mjs → components-Cq1PvIpN.mjs} +42 -71
  13. package/dist/.setup/{config-schema-CiZz-mtA.mjs → config-schema-oxELUSDx.mjs} +19 -44
  14. package/dist/.setup/{conversation-binding-route-_rz33QHO.mjs → conversation-binding-route-Caz_XuFH.mjs} +14 -6
  15. package/dist/.setup/{directory-config-BytTftz-.mjs → directory-config-esqNn0Eo.mjs} +6 -9
  16. package/dist/.setup/{directory-live--EGTH0DC.mjs → directory-live-DtKRHuGV.mjs} +6 -12
  17. package/dist/.setup/{discord-BXpHW-cu.mjs → discord-0xJYfdDD.mjs} +82 -386
  18. package/dist/.setup/{doctor-DxcdkXzz.mjs → doctor-BCl1H5tl.mjs} +21 -36
  19. package/dist/.setup/{doctor-contract-Co5vRCZ6.mjs → doctor-contract-CvvgwrrG.mjs} +41 -50
  20. package/dist/.setup/{channel-actions.runtime-CJmiFfps.mjs → handle-action-CUvQWnE7.mjs} +74 -105
  21. package/dist/.setup/{handle-action.guild-admin-DAFyh_yV.mjs → handle-action.guild-admin-Df-8gVle.mjs} +63 -121
  22. package/dist/.setup/{live-policy-config-eKQ-PLdy.mjs → live-policy-config-8Pv20CHc.mjs} +2 -3
  23. package/dist/.setup/{message-handler-DnUrDpaU.mjs → message-handler-B-Jk4oDk.mjs} +18 -93
  24. package/dist/.setup/message-handler.preflight-pluralkit-CWLUBVcx.mjs +141 -0
  25. package/dist/.setup/{message-handler.preflight-CtqaF_fb.mjs → message-handler.preflight-v-__NSDq.mjs} +73 -287
  26. package/dist/.setup/{message-handler.process-Dz1xvuQU.mjs → message-handler.process-BNFFuChn.mjs} +423 -374
  27. package/dist/.setup/{outbound-adapter-C8v79z9Z.mjs → outbound-adapter-BobT-kse.mjs} +105 -19
  28. package/dist/.setup/{outbound-session-route-CqWbuMOm.mjs → outbound-session-route-zVGxxceg.mjs} +142 -109
  29. package/dist/.setup/{pluralkit-CdAt1G0P.mjs → pluralkit-a6_NLfH9.mjs} +1 -1
  30. package/dist/.setup/{preflight-audio-DrnqFA8U.mjs → preflight-audio-DHGIHEpv.mjs} +2 -1
  31. package/dist/.setup/{presence-cache-dYSHPWMx.mjs → presence-cache-Di3H3DIU.mjs} +0 -4
  32. package/dist/.setup/{probe-CupW4we4.mjs → probe-LYrIHlBF.mjs} +13 -4
  33. package/dist/.setup/{provider-72zIvN-i.mjs → provider-B_G5hASF.mjs} +1112 -1668
  34. package/dist/.setup/provider-session.runtime-BYlTBFD2.mjs +6 -0
  35. package/dist/.setup/provider.runtime-CUE3UxER.mjs +2 -0
  36. package/dist/.setup/{realtime-session.runtime-DTccTgTM.mjs → realtime-session.runtime-oUd9DOcz.mjs} +372 -345
  37. package/dist/.setup/receive-recovery-CHPOsnLc.mjs +514 -0
  38. package/dist/.setup/{resolve-allowlist-common-CwMBzbx9.mjs → resolve-allowlist-common-DPdRggu5.mjs} +4 -7
  39. package/dist/.setup/{resolve-channels-BbvsLQOZ.mjs → resolve-channels-BFPNRmVv.mjs} +21 -40
  40. package/dist/.setup/{resolve-users-ByFlR7LQ.mjs → resolve-users-0-aBuCy3.mjs} +4 -4
  41. package/dist/.setup/{retry-DBfcEgmO.mjs → retry-pz_cSha2.mjs} +81 -16
  42. package/dist/.setup/rolldown-runtime-B4FMCO8f.mjs +28 -0
  43. package/dist/.setup/{runtime-SchNfUsQ.mjs → runtime-FN000lxA.mjs} +83 -166
  44. package/dist/.setup/runtime-doctor-migrations-CshUGl36.mjs +159 -0
  45. package/dist/.setup/{runtime-BVoa7hhx.mjs → runtime-sUksZ--Q.mjs} +2 -5
  46. package/dist/.setup/{secret-config-contract-DFu9hfU8.mjs → secret-config-contract-uOE2J7yM.mjs} +15 -85
  47. package/dist/.setup/{security-audit-s5w50-Ly.mjs → security-audit-Cdaegq7C.mjs} +3 -1
  48. package/dist/.setup/{send-CKDczUNL.mjs → send-CrfEI6Bs.mjs} +73 -114
  49. package/dist/.setup/{send.components-DWQjXhPV.mjs → send.components-DxQAMfES.mjs} +62 -107
  50. package/dist/.setup/{send.outbound-D0hQ7s50.mjs → send.outbound-BISKnb-a.mjs} +79 -154
  51. package/dist/.setup/{send.shared-Zwx6BxQ5.mjs → send.shared-DGFkbkQR.mjs} +10 -25
  52. package/dist/.setup/{sender-identity-0Ymgvmaj.mjs → sender-identity-B9X5Vb9R.mjs} +2 -3
  53. package/dist/.setup/setup-plugin-api-BQUBxbhe.mjs +3 -0
  54. package/dist/.setup/{shared-CaA3Vv4n.mjs → shared-B3wZ4hN-.mjs} +25 -32
  55. package/dist/.setup/{subagent-hooks-Bired9q6.mjs → subagent-hooks-nlUE9ow7.mjs} +5 -6
  56. package/dist/.setup/system-events-CdeZnvPV.mjs +33 -0
  57. package/dist/.setup/{target-resolver-B6MrxbYv.mjs → target-resolver-BuLapkhy.mjs} +9 -12
  58. package/dist/.setup/targets-0KUcEIYx.mjs +3 -0
  59. package/dist/.setup/{thread-bindings-CK5272V3.mjs → thread-bindings-D7TfgjR_.mjs} +33 -35
  60. package/dist/.setup/thread-bindings.manager-DN-NissX.mjs +819 -0
  61. package/dist/.setup/thread-bindings.session-updates-CshfKghV.mjs +359 -0
  62. package/dist/.setup/{thread-bindings.state-BThFQEga.mjs → thread-bindings.state-g6v9zAym.mjs} +21 -62
  63. package/dist/.setup/{transcripts-source-CuWYgayu.mjs → transcripts-source-p8EV179h.mjs} +133 -238
  64. package/dist/.setup/{typing-BKZL5fGj.mjs → typing-BiHCzBRu.mjs} +2 -1
  65. package/dist/.setup/{voice-runtime-DHVQ2mFz.mjs → voice-runtime-B46rcwrG.mjs} +633 -1085
  66. package/dist/account-inspect-api.js +1 -1
  67. package/dist/action-runtime-api.js +1 -1
  68. package/dist/activities-api.js +1 -1
  69. package/dist/api.js +18 -18
  70. package/dist/channel-config-api.js +1 -1
  71. package/dist/channel-plugin-api.js +1 -1
  72. package/dist/directory-contract-api.js +1 -1
  73. package/dist/doctor-contract-api.js +4 -4
  74. package/dist/index.js +1 -1
  75. package/dist/runtime-api.js +20 -20
  76. package/dist/secret-contract-api.js +1 -1
  77. package/dist/security-audit-contract-api.js +1 -1
  78. package/dist/setup-entry.js +1 -1
  79. package/dist/setup-plugin-api.js +1 -1
  80. package/dist/src/voice/audio-worker.runtime.js +1056 -0
  81. package/dist/subagent-hooks-api.js +3 -4
  82. package/dist/transcripts-source-api.js +1 -1
  83. package/node_modules/@napi-rs/wasm-runtime/dist/emnapi-plugins.cjs +8 -4
  84. package/node_modules/@napi-rs/wasm-runtime/dist/emnapi-plugins.js +8 -4
  85. package/node_modules/@napi-rs/wasm-runtime/dist/fs-proxy.cjs +1 -1
  86. package/node_modules/@napi-rs/wasm-runtime/dist/fs.js +770 -695
  87. package/node_modules/@napi-rs/wasm-runtime/fs-proxy.js +3 -2
  88. package/node_modules/@napi-rs/wasm-runtime/package.json +1 -1
  89. package/node_modules/@tybys/wasm-util/LICENSE +21 -0
  90. package/node_modules/@tybys/wasm-util/package.json +1 -1
  91. package/node_modules/@types/node/README.md +2 -2
  92. package/node_modules/@types/node/child_process.d.ts +1 -1
  93. package/node_modules/@types/node/crypto.d.ts +20 -8
  94. package/node_modules/@types/node/ffi.d.ts +14 -0
  95. package/node_modules/@types/node/http2.d.ts +3 -2
  96. package/node_modules/@types/node/net.d.ts +16 -4
  97. package/node_modules/@types/node/package.json +2 -17
  98. package/node_modules/@types/node/process.d.ts +1 -0
  99. package/node_modules/@types/node/quic.d.ts +39 -1
  100. package/node_modules/@types/node/stream/iter.d.ts +9 -12
  101. package/node_modules/@types/node/test/reporters.d.ts +1 -0
  102. package/node_modules/@types/node/test.d.ts +72 -0
  103. package/node_modules/@types/node/tls.d.ts +14 -10
  104. package/node_modules/@types/node/vm.d.ts +2 -1
  105. package/node_modules/@types/node/web-globals/streams.d.ts +4 -0
  106. package/node_modules/@types/node/worker_threads.d.ts +4 -1
  107. package/node_modules/typebox/build/compile/code.mjs +1 -2
  108. package/node_modules/typebox/build/compile/validator.mjs +5 -1
  109. package/node_modules/typebox/build/format/iri.mjs +16 -9
  110. package/node_modules/typebox/build/guard/emit.mjs +2 -2
  111. package/node_modules/typebox/build/guard/guard.d.mts +7 -5
  112. package/node_modules/typebox/build/guard/guard.mjs +14 -9
  113. package/node_modules/typebox/build/guard/index.mjs +6 -0
  114. package/node_modules/typebox/build/guard/unicode/unicode.d.mts +6 -0
  115. package/node_modules/typebox/build/guard/unicode/unicode.mjs +35 -0
  116. package/node_modules/typebox/build/guard/{string.mjs → unicode/unicode_segment.mjs} +16 -19
  117. package/node_modules/typebox/build/schema/build.mjs +2 -3
  118. package/node_modules/typebox/build/schema/engine/_pathing.d.mts +1 -0
  119. package/node_modules/typebox/build/schema/engine/_pathing.mjs +11 -0
  120. package/node_modules/typebox/build/schema/engine/_refine.mjs +13 -5
  121. package/node_modules/typebox/build/schema/engine/additionalProperties.mjs +2 -1
  122. package/node_modules/typebox/build/schema/engine/dependencies.mjs +2 -1
  123. package/node_modules/typebox/build/schema/engine/dependentSchemas.mjs +2 -1
  124. package/node_modules/typebox/build/schema/engine/dynamicRef.d.mts +1 -1
  125. package/node_modules/typebox/build/schema/engine/dynamicRef.mjs +2 -2
  126. package/node_modules/typebox/build/schema/engine/format.mjs +9 -2
  127. package/node_modules/typebox/build/schema/engine/patternProperties.mjs +3 -2
  128. package/node_modules/typebox/build/schema/engine/properties.mjs +3 -2
  129. package/node_modules/typebox/build/schema/engine/propertyNames.mjs +2 -1
  130. package/node_modules/typebox/build/schema/engine/recursiveRef.d.mts +1 -1
  131. package/node_modules/typebox/build/schema/engine/recursiveRef.mjs +2 -2
  132. package/node_modules/typebox/build/schema/engine/ref.d.mts +1 -1
  133. package/node_modules/typebox/build/schema/engine/ref.mjs +2 -2
  134. package/node_modules/typebox/build/schema/engine/schema.mjs +24 -24
  135. package/node_modules/typebox/build/schema/parse.mjs +3 -0
  136. package/node_modules/typebox/build/schema/pointer/pointer.d.mts +1 -6
  137. package/node_modules/typebox/build/schema/pointer/pointer.mjs +47 -64
  138. package/node_modules/typebox/build/system/settings/internal.d.mts +2 -0
  139. package/node_modules/typebox/build/system/settings/internal.mjs +20 -0
  140. package/node_modules/typebox/build/system/settings/settings.d.mts +11 -0
  141. package/node_modules/typebox/build/system/settings/settings.mjs +14 -0
  142. package/node_modules/typebox/build/type/extends/inference.d.mts +1 -1
  143. package/node_modules/typebox/build/type/extends/inference.mjs +15 -2
  144. package/node_modules/typebox/build/type/extends/tuple.d.mts +2 -1
  145. package/node_modules/typebox/build/type/extends/tuple.mjs +21 -1
  146. package/node_modules/typebox/build/value/parse/parse.mjs +10 -4
  147. package/node_modules/typebox/package.json +1 -1
  148. package/node_modules/typebox/readme.md +3 -1
  149. package/node_modules/zod/README.md +2 -2
  150. package/node_modules/zod/compile.cjs +19 -0
  151. package/node_modules/zod/index.cjs +19 -0
  152. package/node_modules/zod/locales/index.cjs +19 -0
  153. package/node_modules/zod/mini/index.cjs +19 -0
  154. package/node_modules/zod/package.json +8 -7
  155. package/node_modules/zod/src/v3/helpers/errorUtil.ts +1 -1
  156. package/node_modules/zod/src/v4/classic/external.ts +2 -0
  157. package/node_modules/zod/src/v4/classic/from-json-schema.ts +248 -25
  158. package/node_modules/zod/src/v4/classic/schemas.ts +243 -168
  159. package/node_modules/zod/src/v4/classic/tests/assignability.test.ts +60 -9
  160. package/node_modules/zod/src/v4/classic/tests/bigint.test.ts +6 -0
  161. package/node_modules/zod/src/v4/classic/tests/continuability.test.ts +2 -2
  162. package/node_modules/zod/src/v4/classic/tests/cyclic-data.test.ts +265 -0
  163. package/node_modules/zod/src/v4/classic/tests/discriminated-unions.test.ts +112 -6
  164. package/node_modules/zod/src/v4/classic/tests/enum.test.ts +9 -0
  165. package/node_modules/zod/src/v4/classic/tests/error.test.ts +130 -1
  166. package/node_modules/zod/src/v4/classic/tests/from-json-schema.test.ts +157 -0
  167. package/node_modules/zod/src/v4/classic/tests/iban.test.ts +81 -0
  168. package/node_modules/zod/src/v4/classic/tests/instance-footprint.test.ts +40 -2
  169. package/node_modules/zod/src/v4/classic/tests/instanceof.test.ts +27 -7
  170. package/node_modules/zod/src/v4/classic/tests/issue-schema.test.ts +88 -56
  171. package/node_modules/zod/src/v4/classic/tests/number.test.ts +39 -0
  172. package/node_modules/zod/src/v4/classic/tests/object.test.ts +56 -0
  173. package/node_modules/zod/src/v4/classic/tests/optin-ladder.test.ts +3 -2
  174. package/node_modules/zod/src/v4/classic/tests/prefault.test.ts +70 -0
  175. package/node_modules/zod/src/v4/classic/tests/properties.test.ts +141 -0
  176. package/node_modules/zod/src/v4/classic/tests/recursive-types.test.ts +46 -1
  177. package/node_modules/zod/src/v4/classic/tests/standard-schema.test.ts +19 -0
  178. package/node_modules/zod/src/v4/classic/tests/string.test.ts +95 -1
  179. package/node_modules/zod/src/v4/classic/tests/template-literal.test.ts +33 -1
  180. package/node_modules/zod/src/v4/classic/tests/to-json-schema.test.ts +234 -38
  181. package/node_modules/zod/src/v4/classic/tests/validate.test.ts +569 -0
  182. package/node_modules/zod/src/v4/core/api.ts +44 -28
  183. package/node_modules/zod/src/v4/core/checks.ts +62 -102
  184. package/node_modules/zod/src/v4/core/compile.ts +218 -93
  185. package/node_modules/zod/src/v4/core/core.ts +1 -3
  186. package/node_modules/zod/src/v4/core/doc.ts +6 -2
  187. package/node_modules/zod/src/v4/core/errors.ts +3 -6
  188. package/node_modules/zod/src/v4/core/json-schema-generator.ts +2 -2
  189. package/node_modules/zod/src/v4/core/json-schema-processors.ts +185 -81
  190. package/node_modules/zod/src/v4/core/memoizer.ts +75 -28
  191. package/node_modules/zod/src/v4/core/parse.ts +37 -16
  192. package/node_modules/zod/src/v4/core/regexes.ts +14 -4
  193. package/node_modules/zod/src/v4/core/schemas.ts +296 -132
  194. package/node_modules/zod/src/v4/core/tests/cached.test.ts +54 -0
  195. package/node_modules/zod/src/v4/core/tests/compile-differential.test.ts +35 -0
  196. package/node_modules/zod/src/v4/core/tests/compile-generative.test.ts +445 -0
  197. package/node_modules/zod/src/v4/core/tests/compile.test.ts +399 -2
  198. package/node_modules/zod/src/v4/core/tests/email-regex.test.ts +140 -0
  199. package/node_modules/zod/src/v4/core/tests/locales/tg.test.ts +85 -0
  200. package/node_modules/zod/src/v4/core/tests/polyfill-collision.test.ts +46 -0
  201. package/node_modules/zod/src/v4/core/tests/url-no-canparse.test.ts +118 -16
  202. package/node_modules/zod/src/v4/core/to-json-schema.ts +9 -7
  203. package/node_modules/zod/src/v4/core/util.ts +218 -147
  204. package/node_modules/zod/src/v4/core/versions.ts +2 -2
  205. package/node_modules/zod/src/v4/locales/ar.ts +2 -0
  206. package/node_modules/zod/src/v4/locales/az.ts +2 -0
  207. package/node_modules/zod/src/v4/locales/be.ts +2 -0
  208. package/node_modules/zod/src/v4/locales/bg.ts +2 -0
  209. package/node_modules/zod/src/v4/locales/bn.ts +2 -0
  210. package/node_modules/zod/src/v4/locales/ca.ts +2 -0
  211. package/node_modules/zod/src/v4/locales/ckb.ts +2 -0
  212. package/node_modules/zod/src/v4/locales/cs.ts +2 -0
  213. package/node_modules/zod/src/v4/locales/da.ts +2 -0
  214. package/node_modules/zod/src/v4/locales/de.ts +2 -0
  215. package/node_modules/zod/src/v4/locales/el.ts +2 -0
  216. package/node_modules/zod/src/v4/locales/en.ts +2 -0
  217. package/node_modules/zod/src/v4/locales/eo.ts +2 -0
  218. package/node_modules/zod/src/v4/locales/es.ts +2 -0
  219. package/node_modules/zod/src/v4/locales/fa.ts +2 -0
  220. package/node_modules/zod/src/v4/locales/fi.ts +2 -0
  221. package/node_modules/zod/src/v4/locales/fr-CA.ts +2 -0
  222. package/node_modules/zod/src/v4/locales/fr.ts +2 -0
  223. package/node_modules/zod/src/v4/locales/gu.ts +2 -0
  224. package/node_modules/zod/src/v4/locales/he.ts +2 -0
  225. package/node_modules/zod/src/v4/locales/hi.ts +2 -0
  226. package/node_modules/zod/src/v4/locales/hr.ts +2 -0
  227. package/node_modules/zod/src/v4/locales/hu.ts +2 -0
  228. package/node_modules/zod/src/v4/locales/hy.ts +2 -0
  229. package/node_modules/zod/src/v4/locales/id.ts +2 -0
  230. package/node_modules/zod/src/v4/locales/index.ts +1 -0
  231. package/node_modules/zod/src/v4/locales/is.ts +2 -0
  232. package/node_modules/zod/src/v4/locales/it.ts +2 -0
  233. package/node_modules/zod/src/v4/locales/ja.ts +2 -0
  234. package/node_modules/zod/src/v4/locales/ka.ts +2 -0
  235. package/node_modules/zod/src/v4/locales/km.ts +2 -0
  236. package/node_modules/zod/src/v4/locales/kn.ts +2 -0
  237. package/node_modules/zod/src/v4/locales/ko.ts +2 -0
  238. package/node_modules/zod/src/v4/locales/lt.ts +2 -0
  239. package/node_modules/zod/src/v4/locales/mk.ts +2 -0
  240. package/node_modules/zod/src/v4/locales/ms.ts +2 -0
  241. package/node_modules/zod/src/v4/locales/ne.ts +2 -0
  242. package/node_modules/zod/src/v4/locales/nl.ts +2 -0
  243. package/node_modules/zod/src/v4/locales/nn.ts +2 -0
  244. package/node_modules/zod/src/v4/locales/no.ts +2 -0
  245. package/node_modules/zod/src/v4/locales/ota.ts +2 -0
  246. package/node_modules/zod/src/v4/locales/pl.ts +2 -0
  247. package/node_modules/zod/src/v4/locales/ps.ts +2 -0
  248. package/node_modules/zod/src/v4/locales/pt-BR.ts +2 -0
  249. package/node_modules/zod/src/v4/locales/pt.ts +2 -0
  250. package/node_modules/zod/src/v4/locales/ro.ts +2 -0
  251. package/node_modules/zod/src/v4/locales/ru.ts +2 -0
  252. package/node_modules/zod/src/v4/locales/sk.ts +2 -0
  253. package/node_modules/zod/src/v4/locales/sl.ts +2 -0
  254. package/node_modules/zod/src/v4/locales/sv.ts +2 -0
  255. package/node_modules/zod/src/v4/locales/ta.ts +2 -0
  256. package/node_modules/zod/src/v4/locales/tg.ts +135 -0
  257. package/node_modules/zod/src/v4/locales/th.ts +2 -0
  258. package/node_modules/zod/src/v4/locales/tk.ts +2 -0
  259. package/node_modules/zod/src/v4/locales/tr.ts +2 -0
  260. package/node_modules/zod/src/v4/locales/uk.ts +2 -0
  261. package/node_modules/zod/src/v4/locales/ur.ts +2 -0
  262. package/node_modules/zod/src/v4/locales/uz.ts +2 -0
  263. package/node_modules/zod/src/v4/locales/vi.ts +2 -0
  264. package/node_modules/zod/src/v4/locales/yo.ts +2 -0
  265. package/node_modules/zod/src/v4/locales/zh-CN.ts +2 -0
  266. package/node_modules/zod/src/v4/locales/zh-TW.ts +2 -0
  267. package/node_modules/zod/src/v4/mini/external.ts +2 -0
  268. package/node_modules/zod/src/v4/mini/schemas.ts +32 -7
  269. package/node_modules/zod/src/v4/mini/tests/checks.test.ts +1 -1
  270. package/node_modules/zod/src/v4/mini/tests/computed.test.ts +11 -17
  271. package/node_modules/zod/src/v4/mini/tests/index.test.ts +86 -0
  272. package/node_modules/zod/src/v4/mini/tests/recursive-types.test.ts +16 -0
  273. package/node_modules/zod/src/v4/mini/tests/string.test.ts +23 -0
  274. package/node_modules/zod/v3/ZodError.cjs +19 -0
  275. package/node_modules/zod/v3/errors.cjs +19 -0
  276. package/node_modules/zod/v3/external.cjs +19 -0
  277. package/node_modules/zod/v3/helpers/enumUtil.cjs +19 -0
  278. package/node_modules/zod/v3/helpers/errorUtil.cjs +20 -1
  279. package/node_modules/zod/v3/helpers/errorUtil.js +1 -1
  280. package/node_modules/zod/v3/helpers/parseUtil.cjs +19 -0
  281. package/node_modules/zod/v3/helpers/partialUtil.cjs +19 -0
  282. package/node_modules/zod/v3/helpers/typeAliases.cjs +19 -0
  283. package/node_modules/zod/v3/helpers/util.cjs +19 -0
  284. package/node_modules/zod/v3/index.cjs +19 -0
  285. package/node_modules/zod/v3/standard-schema.cjs +19 -0
  286. package/node_modules/zod/v3/types.cjs +19 -0
  287. package/node_modules/zod/v4/classic/checks.cjs +19 -0
  288. package/node_modules/zod/v4/classic/coerce.cjs +19 -0
  289. package/node_modules/zod/v4/classic/compat.cjs +19 -0
  290. package/node_modules/zod/v4/classic/deep-partial.cjs +19 -0
  291. package/node_modules/zod/v4/classic/errors.cjs +19 -0
  292. package/node_modules/zod/v4/classic/external.cjs +22 -1
  293. package/node_modules/zod/v4/classic/external.d.cts +1 -1
  294. package/node_modules/zod/v4/classic/external.d.ts +1 -1
  295. package/node_modules/zod/v4/classic/external.js +1 -1
  296. package/node_modules/zod/v4/classic/from-json-schema.cjs +264 -24
  297. package/node_modules/zod/v4/classic/from-json-schema.js +245 -24
  298. package/node_modules/zod/v4/classic/in-out.cjs +19 -0
  299. package/node_modules/zod/v4/classic/index.cjs +19 -0
  300. package/node_modules/zod/v4/classic/iso.cjs +19 -0
  301. package/node_modules/zod/v4/classic/parse.cjs +19 -0
  302. package/node_modules/zod/v4/classic/schemas.cjs +100 -35
  303. package/node_modules/zod/v4/classic/schemas.d.cts +15 -1
  304. package/node_modules/zod/v4/classic/schemas.d.ts +15 -1
  305. package/node_modules/zod/v4/classic/schemas.js +77 -33
  306. package/node_modules/zod/v4/core/api.cjs +45 -22
  307. package/node_modules/zod/v4/core/api.d.cts +12 -6
  308. package/node_modules/zod/v4/core/api.d.ts +12 -6
  309. package/node_modules/zod/v4/core/api.js +25 -22
  310. package/node_modules/zod/v4/core/checks.cjs +51 -97
  311. package/node_modules/zod/v4/core/checks.d.cts +17 -1
  312. package/node_modules/zod/v4/core/checks.d.ts +17 -1
  313. package/node_modules/zod/v4/core/checks.js +31 -96
  314. package/node_modules/zod/v4/core/compile.cjs +173 -78
  315. package/node_modules/zod/v4/core/compile.d.cts +18 -4
  316. package/node_modules/zod/v4/core/compile.d.ts +18 -4
  317. package/node_modules/zod/v4/core/compile.js +154 -79
  318. package/node_modules/zod/v4/core/core.cjs +20 -1
  319. package/node_modules/zod/v4/core/core.js +1 -1
  320. package/node_modules/zod/v4/core/doc.cjs +26 -2
  321. package/node_modules/zod/v4/core/doc.js +7 -2
  322. package/node_modules/zod/v4/core/errors.cjs +21 -5
  323. package/node_modules/zod/v4/core/errors.js +2 -5
  324. package/node_modules/zod/v4/core/index.cjs +19 -0
  325. package/node_modules/zod/v4/core/json-schema-generator.cjs +20 -1
  326. package/node_modules/zod/v4/core/json-schema-generator.js +2 -2
  327. package/node_modules/zod/v4/core/json-schema-processors.cjs +188 -72
  328. package/node_modules/zod/v4/core/json-schema-processors.d.cts +16 -0
  329. package/node_modules/zod/v4/core/json-schema-processors.d.ts +16 -0
  330. package/node_modules/zod/v4/core/json-schema-processors.js +170 -74
  331. package/node_modules/zod/v4/core/json-schema.cjs +19 -0
  332. package/node_modules/zod/v4/core/memoizer.cjs +111 -23
  333. package/node_modules/zod/v4/core/memoizer.js +69 -23
  334. package/node_modules/zod/v4/core/parse.cjs +56 -16
  335. package/node_modules/zod/v4/core/parse.js +37 -16
  336. package/node_modules/zod/v4/core/regexes.cjs +31 -6
  337. package/node_modules/zod/v4/core/regexes.d.cts +3 -0
  338. package/node_modules/zod/v4/core/regexes.d.ts +3 -0
  339. package/node_modules/zod/v4/core/regexes.js +10 -4
  340. package/node_modules/zod/v4/core/registries.cjs +19 -0
  341. package/node_modules/zod/v4/core/schemas.cjs +302 -114
  342. package/node_modules/zod/v4/core/schemas.d.cts +28 -8
  343. package/node_modules/zod/v4/core/schemas.d.ts +28 -8
  344. package/node_modules/zod/v4/core/schemas.js +279 -113
  345. package/node_modules/zod/v4/core/standard-schema.cjs +19 -0
  346. package/node_modules/zod/v4/core/to-json-schema.cjs +28 -7
  347. package/node_modules/zod/v4/core/to-json-schema.d.cts +4 -3
  348. package/node_modules/zod/v4/core/to-json-schema.d.ts +4 -3
  349. package/node_modules/zod/v4/core/to-json-schema.js +7 -6
  350. package/node_modules/zod/v4/core/util.cjs +177 -143
  351. package/node_modules/zod/v4/core/util.d.cts +25 -4
  352. package/node_modules/zod/v4/core/util.d.ts +25 -4
  353. package/node_modules/zod/v4/core/util.js +156 -143
  354. package/node_modules/zod/v4/core/versions.cjs +21 -2
  355. package/node_modules/zod/v4/core/versions.d.cts +1 -1
  356. package/node_modules/zod/v4/core/versions.d.ts +1 -1
  357. package/node_modules/zod/v4/core/versions.js +2 -2
  358. package/node_modules/zod/v4/core/visit.cjs +19 -0
  359. package/node_modules/zod/v4/index.cjs +19 -0
  360. package/node_modules/zod/v4/locales/ar.cjs +2 -0
  361. package/node_modules/zod/v4/locales/ar.js +2 -0
  362. package/node_modules/zod/v4/locales/az.cjs +2 -0
  363. package/node_modules/zod/v4/locales/az.js +2 -0
  364. package/node_modules/zod/v4/locales/be.cjs +2 -0
  365. package/node_modules/zod/v4/locales/be.js +2 -0
  366. package/node_modules/zod/v4/locales/bg.cjs +2 -0
  367. package/node_modules/zod/v4/locales/bg.js +2 -0
  368. package/node_modules/zod/v4/locales/bn.cjs +2 -0
  369. package/node_modules/zod/v4/locales/bn.js +2 -0
  370. package/node_modules/zod/v4/locales/ca.cjs +2 -0
  371. package/node_modules/zod/v4/locales/ca.js +2 -0
  372. package/node_modules/zod/v4/locales/ckb.cjs +2 -0
  373. package/node_modules/zod/v4/locales/ckb.js +2 -0
  374. package/node_modules/zod/v4/locales/cs.cjs +2 -0
  375. package/node_modules/zod/v4/locales/cs.js +2 -0
  376. package/node_modules/zod/v4/locales/da.cjs +2 -0
  377. package/node_modules/zod/v4/locales/da.js +2 -0
  378. package/node_modules/zod/v4/locales/de.cjs +2 -0
  379. package/node_modules/zod/v4/locales/de.js +2 -0
  380. package/node_modules/zod/v4/locales/el.cjs +2 -0
  381. package/node_modules/zod/v4/locales/el.js +2 -0
  382. package/node_modules/zod/v4/locales/en.cjs +2 -0
  383. package/node_modules/zod/v4/locales/en.js +2 -0
  384. package/node_modules/zod/v4/locales/eo.cjs +2 -0
  385. package/node_modules/zod/v4/locales/eo.js +2 -0
  386. package/node_modules/zod/v4/locales/es.cjs +2 -0
  387. package/node_modules/zod/v4/locales/es.js +2 -0
  388. package/node_modules/zod/v4/locales/fa.cjs +2 -0
  389. package/node_modules/zod/v4/locales/fa.js +2 -0
  390. package/node_modules/zod/v4/locales/fi.cjs +2 -0
  391. package/node_modules/zod/v4/locales/fi.js +2 -0
  392. package/node_modules/zod/v4/locales/fr-CA.cjs +2 -0
  393. package/node_modules/zod/v4/locales/fr-CA.js +2 -0
  394. package/node_modules/zod/v4/locales/fr.cjs +2 -0
  395. package/node_modules/zod/v4/locales/fr.js +2 -0
  396. package/node_modules/zod/v4/locales/gu.cjs +2 -0
  397. package/node_modules/zod/v4/locales/gu.js +2 -0
  398. package/node_modules/zod/v4/locales/he.cjs +2 -0
  399. package/node_modules/zod/v4/locales/he.js +2 -0
  400. package/node_modules/zod/v4/locales/hi.cjs +2 -0
  401. package/node_modules/zod/v4/locales/hi.js +2 -0
  402. package/node_modules/zod/v4/locales/hr.cjs +2 -0
  403. package/node_modules/zod/v4/locales/hr.js +2 -0
  404. package/node_modules/zod/v4/locales/hu.cjs +2 -0
  405. package/node_modules/zod/v4/locales/hu.js +2 -0
  406. package/node_modules/zod/v4/locales/hy.cjs +2 -0
  407. package/node_modules/zod/v4/locales/hy.js +2 -0
  408. package/node_modules/zod/v4/locales/id.cjs +2 -0
  409. package/node_modules/zod/v4/locales/id.js +2 -0
  410. package/node_modules/zod/v4/locales/index.cjs +22 -1
  411. package/node_modules/zod/v4/locales/index.d.cts +1 -0
  412. package/node_modules/zod/v4/locales/index.d.ts +1 -0
  413. package/node_modules/zod/v4/locales/index.js +1 -0
  414. package/node_modules/zod/v4/locales/is.cjs +2 -0
  415. package/node_modules/zod/v4/locales/is.js +2 -0
  416. package/node_modules/zod/v4/locales/it.cjs +2 -0
  417. package/node_modules/zod/v4/locales/it.js +2 -0
  418. package/node_modules/zod/v4/locales/ja.cjs +2 -0
  419. package/node_modules/zod/v4/locales/ja.js +2 -0
  420. package/node_modules/zod/v4/locales/ka.cjs +2 -0
  421. package/node_modules/zod/v4/locales/ka.js +2 -0
  422. package/node_modules/zod/v4/locales/km.cjs +2 -0
  423. package/node_modules/zod/v4/locales/km.js +2 -0
  424. package/node_modules/zod/v4/locales/kn.cjs +2 -0
  425. package/node_modules/zod/v4/locales/kn.js +2 -0
  426. package/node_modules/zod/v4/locales/ko.cjs +2 -0
  427. package/node_modules/zod/v4/locales/ko.js +2 -0
  428. package/node_modules/zod/v4/locales/lt.cjs +2 -0
  429. package/node_modules/zod/v4/locales/lt.js +2 -0
  430. package/node_modules/zod/v4/locales/mk.cjs +2 -0
  431. package/node_modules/zod/v4/locales/mk.js +2 -0
  432. package/node_modules/zod/v4/locales/ms.cjs +2 -0
  433. package/node_modules/zod/v4/locales/ms.js +2 -0
  434. package/node_modules/zod/v4/locales/ne.cjs +2 -0
  435. package/node_modules/zod/v4/locales/ne.js +2 -0
  436. package/node_modules/zod/v4/locales/nl.cjs +2 -0
  437. package/node_modules/zod/v4/locales/nl.js +2 -0
  438. package/node_modules/zod/v4/locales/nn.cjs +2 -0
  439. package/node_modules/zod/v4/locales/nn.js +2 -0
  440. package/node_modules/zod/v4/locales/no.cjs +2 -0
  441. package/node_modules/zod/v4/locales/no.js +2 -0
  442. package/node_modules/zod/v4/locales/ota.cjs +2 -0
  443. package/node_modules/zod/v4/locales/ota.js +2 -0
  444. package/node_modules/zod/v4/locales/pl.cjs +2 -0
  445. package/node_modules/zod/v4/locales/pl.js +2 -0
  446. package/node_modules/zod/v4/locales/ps.cjs +2 -0
  447. package/node_modules/zod/v4/locales/ps.js +2 -0
  448. package/node_modules/zod/v4/locales/pt-BR.cjs +2 -0
  449. package/node_modules/zod/v4/locales/pt-BR.js +2 -0
  450. package/node_modules/zod/v4/locales/pt.cjs +2 -0
  451. package/node_modules/zod/v4/locales/pt.js +2 -0
  452. package/node_modules/zod/v4/locales/ro.cjs +2 -0
  453. package/node_modules/zod/v4/locales/ro.js +2 -0
  454. package/node_modules/zod/v4/locales/ru.cjs +2 -0
  455. package/node_modules/zod/v4/locales/ru.js +2 -0
  456. package/node_modules/zod/v4/locales/sk.cjs +2 -0
  457. package/node_modules/zod/v4/locales/sk.js +2 -0
  458. package/node_modules/zod/v4/locales/sl.cjs +2 -0
  459. package/node_modules/zod/v4/locales/sl.js +2 -0
  460. package/node_modules/zod/v4/locales/sv.cjs +2 -0
  461. package/node_modules/zod/v4/locales/sv.js +2 -0
  462. package/node_modules/zod/v4/locales/ta.cjs +2 -0
  463. package/node_modules/zod/v4/locales/ta.js +2 -0
  464. package/node_modules/zod/v4/locales/tg.cjs +144 -0
  465. package/node_modules/zod/v4/locales/tg.d.cts +5 -0
  466. package/node_modules/zod/v4/locales/tg.d.ts +4 -0
  467. package/node_modules/zod/v4/locales/tg.js +117 -0
  468. package/node_modules/zod/v4/locales/th.cjs +2 -0
  469. package/node_modules/zod/v4/locales/th.js +2 -0
  470. package/node_modules/zod/v4/locales/tk.cjs +2 -0
  471. package/node_modules/zod/v4/locales/tk.js +2 -0
  472. package/node_modules/zod/v4/locales/tr.cjs +2 -0
  473. package/node_modules/zod/v4/locales/tr.js +2 -0
  474. package/node_modules/zod/v4/locales/uk.cjs +2 -0
  475. package/node_modules/zod/v4/locales/uk.js +2 -0
  476. package/node_modules/zod/v4/locales/ur.cjs +2 -0
  477. package/node_modules/zod/v4/locales/ur.js +2 -0
  478. package/node_modules/zod/v4/locales/uz.cjs +2 -0
  479. package/node_modules/zod/v4/locales/uz.js +2 -0
  480. package/node_modules/zod/v4/locales/vi.cjs +2 -0
  481. package/node_modules/zod/v4/locales/vi.js +2 -0
  482. package/node_modules/zod/v4/locales/yo.cjs +2 -0
  483. package/node_modules/zod/v4/locales/yo.js +2 -0
  484. package/node_modules/zod/v4/locales/zh-CN.cjs +2 -0
  485. package/node_modules/zod/v4/locales/zh-CN.js +2 -0
  486. package/node_modules/zod/v4/locales/zh-TW.cjs +2 -0
  487. package/node_modules/zod/v4/locales/zh-TW.js +2 -0
  488. package/node_modules/zod/v4/mini/checks.cjs +19 -0
  489. package/node_modules/zod/v4/mini/coerce.cjs +19 -0
  490. package/node_modules/zod/v4/mini/deep-partial.cjs +19 -0
  491. package/node_modules/zod/v4/mini/external.cjs +22 -1
  492. package/node_modules/zod/v4/mini/external.d.cts +1 -1
  493. package/node_modules/zod/v4/mini/external.d.ts +1 -1
  494. package/node_modules/zod/v4/mini/external.js +1 -1
  495. package/node_modules/zod/v4/mini/in-out.cjs +19 -0
  496. package/node_modules/zod/v4/mini/index.cjs +19 -0
  497. package/node_modules/zod/v4/mini/iso.cjs +19 -0
  498. package/node_modules/zod/v4/mini/parse.cjs +19 -0
  499. package/node_modules/zod/v4/mini/schemas.cjs +44 -8
  500. package/node_modules/zod/v4/mini/schemas.d.cts +6 -1
  501. package/node_modules/zod/v4/mini/schemas.d.ts +6 -1
  502. package/node_modules/zod/v4/mini/schemas.js +21 -6
  503. package/node_modules/zod/v4-mini/index.cjs +19 -0
  504. package/openclaw.plugin.json +21 -1
  505. package/package.json +9 -6
  506. package/dist/.setup/agent-components.runtime-CEPrf2SY.mjs +0 -4
  507. package/dist/.setup/message-handler.history-CJOsN9w5.mjs +0 -28
  508. package/dist/.setup/probe.runtime-DBQ_AGPe.mjs +0 -2
  509. package/dist/.setup/provider-session.runtime-BW7QrF5C.mjs +0 -6
  510. package/dist/.setup/provider.runtime-DuhmKdDU.mjs +0 -2
  511. package/dist/.setup/security-audit.runtime-DHtYenx9.mjs +0 -2
  512. package/dist/.setup/setup-plugin-api-CINIEBLa.mjs +0 -3
  513. package/dist/.setup/system-events-B2YEEMbS.mjs +0 -34
  514. package/dist/.setup/targets-D1mAB5yO.mjs +0 -3
  515. package/dist/.setup/thread-bindings.manager-eexkKyrG.mjs +0 -678
  516. package/dist/.setup/thread-bindings.session-updates-DCQq1WZ5.mjs +0 -55
  517. /package/node_modules/typebox/build/guard/{string.d.mts → unicode/unicode_segment.d.mts} +0 -0
@@ -1,9 +1,10 @@
1
- import { A as serializePayload, C as withDiscordRequestAuthority, Ut as __exportAll, ft as editChannelMessage, st as createChannelMessage } from "./discord-BXpHW-cu.mjs";
2
- import { d as buildDiscordComponentMessage, f as buildDiscordComponentMessageFlags, g as resolveDiscordComponentAttachmentName } from "./components-MqMWUWnE.mjs";
1
+ import { t as __exportAll } from "./rolldown-runtime-B4FMCO8f.mjs";
2
+ import { d as buildDiscordComponentMessage, f as buildDiscordComponentMessageFlags, g as resolveDiscordComponentAttachmentName } from "./components-Cq1PvIpN.mjs";
3
+ import { A as serializePayload, C as withDiscordRequestAuthority, ct as createChannelMessage, pt as editChannelMessage } from "./discord-0xJYfdDD.mjs";
3
4
  import { n as getOptionalDiscordRuntime } from "./runtime-DgnVQ7zW.mjs";
4
- import { l as createDiscordSendResult } from "./retry-DBfcEgmO.mjs";
5
- import { E as SUPPRESS_NOTIFICATIONS_FLAG, K as parseAndResolveChannelRecipient, N as createDiscordClient, O as createDiscordMessageNonce, l as resolveChannelId, t as buildDiscordSendError, u as resolveDiscordChannel } from "./send.shared-Zwx6BxQ5.mjs";
6
- import { t as sendMessageDiscord } from "./send.outbound-D0hQ7s50.mjs";
5
+ import { u as createDiscordSendResult } from "./retry-pz_cSha2.mjs";
6
+ import { D as createDiscordMessageNonce, G as parseAndResolveChannelRecipient, M as createDiscordClient, T as SUPPRESS_NOTIFICATIONS_FLAG, c as resolveChannelId, l as resolveDiscordChannel, t as buildDiscordSendError } from "./send.shared-DGFkbkQR.mjs";
7
+ import { t as sendMessageDiscord } from "./send.outbound-BISKnb-a.mjs";
7
8
  import { ChannelType } from "discord-api-types/v10";
8
9
  import { asDateTimestampMs, isFutureDateTimestampMs, resolveDateTimestampMs, resolveExpiresAtMsFromDurationMs } from "openclaw/plugin-sdk/number-runtime";
9
10
  import { resolveGlobalSingleton } from "openclaw/plugin-sdk/global-singleton";
@@ -36,12 +37,6 @@ const PERSISTENT_COMPONENT_NAMESPACE = "discord.components";
36
37
  const PERSISTENT_MODAL_NAMESPACE = "discord.modals";
37
38
  const PERSISTENT_COMPONENT_MAX_ENTRIES = 500;
38
39
  const PERSISTENT_MODAL_MAX_ENTRIES = 500;
39
- function getComponentEntries() {
40
- return discordComponentRegistryState.componentEntries;
41
- }
42
- function getModalEntries() {
43
- return discordComponentRegistryState.modalEntries;
44
- }
45
40
  function formatRegistryError(error) {
46
41
  if (!(error instanceof Error)) return { error: formatRegistryErrorValue(error) };
47
42
  const details = {
@@ -133,15 +128,10 @@ function pruneUndefinedRegistryValues(value) {
133
128
  return result;
134
129
  }
135
130
  function normalizeRegistryEntries(entries, params) {
136
- const normalizedEntries = [];
137
- for (const entry of entries) {
138
- const normalized = normalizeEntryTimestamps({
139
- ...entry,
140
- messageId: params.messageId ?? entry.messageId
141
- }, params.now, params.ttlMs);
142
- normalizedEntries.push(normalized);
143
- }
144
- return normalizedEntries;
131
+ return entries.map((entry) => normalizeEntryTimestamps({
132
+ ...entry,
133
+ messageId: params.messageId ?? entry.messageId
134
+ }, params.now, params.ttlMs));
145
135
  }
146
136
  function resolveEntry(store, params) {
147
137
  const entry = store.get(params.id);
@@ -199,7 +189,7 @@ function resolveComponentConsumptionIds(entry) {
199
189
  return ids.length > 0 ? uniqueStrings(ids) : [entry.id];
200
190
  }
201
191
  function deleteComponentConsumptionGroup(entry) {
202
- const store = getComponentEntries();
192
+ const store = discordComponentRegistryState.componentEntries;
203
193
  for (const id of resolveComponentConsumptionIds(entry)) store.delete(id);
204
194
  }
205
195
  async function deletePersistentComponentConsumptionGroup(entry) {
@@ -232,8 +222,8 @@ function registerDiscordComponentEntries(params) {
232
222
  messageId: params.messageId
233
223
  });
234
224
  return discordComponentRegistryState.withRegistryLock(async () => {
235
- for (const entry of normalizedEntries) getComponentEntries().set(entry.id, entry);
236
- for (const entry of normalizedModals) getModalEntries().set(entry.id, entry);
225
+ for (const entry of normalizedEntries) discordComponentRegistryState.componentEntries.set(entry.id, entry);
226
+ for (const entry of normalizedModals) discordComponentRegistryState.modalEntries.set(entry.id, entry);
237
227
  await registerPersistentEntries({
238
228
  entries: normalizedEntries,
239
229
  modals: normalizedModals,
@@ -242,7 +232,7 @@ function registerDiscordComponentEntries(params) {
242
232
  });
243
233
  }
244
234
  function resolveDiscordComponentEntry(params) {
245
- const entry = resolveEntry(getComponentEntries(), params);
235
+ const entry = resolveEntry(discordComponentRegistryState.componentEntries, params);
246
236
  if (entry && params.consume !== false) deleteComponentConsumptionGroup(entry);
247
237
  return entry;
248
238
  }
@@ -261,12 +251,9 @@ async function resolveDiscordComponentEntryWithPersistence(params) {
261
251
  return persisted;
262
252
  });
263
253
  }
264
- function resolveDiscordModalEntry(params) {
265
- return resolveEntry(getModalEntries(), params);
266
- }
267
254
  async function resolveDiscordModalEntryWithPersistence(params) {
268
255
  return discordComponentRegistryState.withRegistryLock(async () => {
269
- const inMemory = resolveDiscordModalEntry(params);
256
+ const inMemory = resolveEntry(discordComponentRegistryState.modalEntries, params);
270
257
  if (inMemory) {
271
258
  if (params.consume !== false) await deletePersistentEntry({
272
259
  ...params,
@@ -387,57 +374,66 @@ async function buildDiscordComponentPayload(params) {
387
374
  };
388
375
  }
389
376
  async function sendDiscordComponentMessage(to, spec, opts) {
390
- return await withDiscordRequestAuthority(opts.assertPlatformSendAuthorized, () => sendDiscordComponentMessageInternal(to, spec, opts));
391
- }
392
- async function sendDiscordComponentMessageInternal(to, spec, opts) {
393
- const classicMessage = opts.mediaUrl ? resolveClassicDiscordMessage(spec) : void 0;
394
- if (classicMessage) return await sendMessageDiscord(to, classicMessage.text, {
395
- cfg: opts.cfg,
396
- accountId: opts.accountId,
397
- token: opts.token,
398
- rest: opts.rest,
399
- mediaUrl: opts.mediaUrl,
400
- filename: opts.filename?.trim() || classicMessage.filename,
401
- mediaLocalRoots: opts.mediaLocalRoots,
402
- mediaReadFile: opts.mediaReadFile,
403
- mediaAccess: opts.mediaAccess,
404
- reply: opts.reply,
405
- silent: opts.silent,
406
- textLimit: opts.textLimit,
407
- maxLinesPerMessage: opts.maxLinesPerMessage,
408
- tableMode: opts.tableMode,
409
- chunkMode: opts.chunkMode,
410
- onDeliveryResult: opts.onDeliveryResult,
411
- onPlatformSendDispatch: opts.onPlatformSendDispatch,
412
- assertPlatformSendAuthorized: opts.assertPlatformSendAuthorized,
413
- ...opts.suppressEmbeds === void 0 ? {} : { suppressEmbeds: opts.suppressEmbeds }
377
+ return await withDiscordRequestAuthority(opts.assertPlatformSendAuthorized, async () => {
378
+ const classicMessage = opts.mediaUrl ? resolveClassicDiscordMessage(spec) : void 0;
379
+ if (classicMessage) return await sendMessageDiscord(to, classicMessage.text, {
380
+ cfg: opts.cfg,
381
+ accountId: opts.accountId,
382
+ token: opts.token,
383
+ rest: opts.rest,
384
+ mediaUrl: opts.mediaUrl,
385
+ filename: opts.filename?.trim() || classicMessage.filename,
386
+ mediaLocalRoots: opts.mediaLocalRoots,
387
+ mediaReadFile: opts.mediaReadFile,
388
+ mediaAccess: opts.mediaAccess,
389
+ reply: opts.reply,
390
+ silent: opts.silent,
391
+ textLimit: opts.textLimit,
392
+ maxLinesPerMessage: opts.maxLinesPerMessage,
393
+ tableMode: opts.tableMode,
394
+ chunkMode: opts.chunkMode,
395
+ onDeliveryResult: opts.onDeliveryResult,
396
+ onPlatformSendDispatch: opts.onPlatformSendDispatch,
397
+ assertPlatformSendAuthorized: opts.assertPlatformSendAuthorized,
398
+ ...opts.suppressEmbeds === void 0 ? {} : { suppressEmbeds: opts.suppressEmbeds }
399
+ });
400
+ return await writeDiscordComponentMessage(to, spec, opts);
414
401
  });
415
- const cfg = requireRuntimeConfig(opts.cfg, "Discord component send");
402
+ }
403
+ async function editDiscordComponentMessage(to, messageId, spec, opts) {
404
+ return await writeDiscordComponentMessage(to, spec, opts, messageId);
405
+ }
406
+ async function writeDiscordComponentMessage(to, spec, opts, messageId) {
407
+ const creating = messageId === void 0;
408
+ const cfg = requireRuntimeConfig(opts.cfg, creating ? "Discord component send" : "Discord component edit");
416
409
  const { token, rest, request, account: accountInfo } = createDiscordClient({
417
410
  ...opts,
418
411
  cfg
419
412
  });
420
413
  const recipient = await parseAndResolveChannelRecipient(to, cfg, accountInfo.accountId);
421
414
  const { channelId } = await resolveChannelId(rest, recipient, request);
422
- const channel = await resolveDiscordChannel(rest, channelId);
423
- if (channel && DISCORD_FORUM_LIKE_TYPES.has(channel.type)) throw new Error("Discord components are not supported in forum-style channels");
415
+ if (creating) {
416
+ const channel = await resolveDiscordChannel(rest, channelId);
417
+ if (channel && DISCORD_FORUM_LIKE_TYPES.has(channel.type)) throw new Error("Discord components are not supported in forum-style channels");
418
+ }
424
419
  const { body: componentBody, buildResult } = await buildDiscordComponentPayload({
425
420
  spec,
426
421
  opts,
427
422
  accountId: accountInfo.accountId
428
423
  });
429
- const body = {
424
+ const body = creating ? {
430
425
  ...componentBody,
431
426
  nonce: createDiscordMessageNonce(),
432
427
  enforce_nonce: true
433
- };
428
+ } : componentBody;
434
429
  let result;
435
430
  try {
436
431
  result = await request(async () => {
432
+ if (messageId !== void 0) return editChannelMessage(rest, channelId, messageId, { body });
437
433
  await opts.onPlatformSendDispatch?.();
438
434
  opts.assertPlatformSendAuthorized?.();
439
435
  return createChannelMessage(rest, channelId, { body });
440
- }, "components", { safety: "nonce-protected-create" });
436
+ }, "components", creating ? { safety: "nonce-protected-create" } : void 0);
441
437
  } catch (err) {
442
438
  throw await buildDiscordSendError(err, {
443
439
  channelId,
@@ -447,50 +443,17 @@ async function sendDiscordComponentMessageInternal(to, spec, opts) {
447
443
  hasMedia: Boolean(opts.mediaUrl)
448
444
  });
449
445
  }
450
- const deliveryResult = createDiscordSendResult({
451
- result,
446
+ const toDeliveryResult = () => createDiscordSendResult({
447
+ result: creating ? result : {
448
+ id: result.id ?? messageId,
449
+ channel_id: result.channel_id
450
+ },
452
451
  fallbackChannelId: channelId,
453
452
  kind: "card",
454
453
  ...opts.reply ? { reply: opts.reply } : {}
455
454
  });
456
- await opts.onDeliveryResult?.(deliveryResult);
457
- await registerBuiltDiscordComponentMessage({
458
- buildResult,
459
- messageId: result.id,
460
- ttlMs: resolveDiscordComponentRegistryTtlMs(accountInfo.config)
461
- });
462
- recordChannelActivity({
463
- channel: "discord",
464
- accountId: accountInfo.accountId,
465
- direction: "outbound"
466
- });
467
- return deliveryResult;
468
- }
469
- async function editDiscordComponentMessage(to, messageId, spec, opts) {
470
- const cfg = requireRuntimeConfig(opts.cfg, "Discord component edit");
471
- const { token, rest, request, account: accountInfo } = createDiscordClient({
472
- ...opts,
473
- cfg
474
- });
475
- const recipient = await parseAndResolveChannelRecipient(to, cfg, accountInfo.accountId);
476
- const { channelId } = await resolveChannelId(rest, recipient, request);
477
- const { body, buildResult } = await buildDiscordComponentPayload({
478
- spec,
479
- opts,
480
- accountId: accountInfo.accountId
481
- });
482
- let result;
483
- try {
484
- result = await request(() => editChannelMessage(rest, channelId, messageId, { body }), "components");
485
- } catch (err) {
486
- throw await buildDiscordSendError(err, {
487
- channelId,
488
- cfg,
489
- rest,
490
- token,
491
- hasMedia: Boolean(opts.mediaUrl)
492
- });
493
- }
455
+ const deliveryResult = creating ? toDeliveryResult() : void 0;
456
+ if (deliveryResult) await opts.onDeliveryResult?.(deliveryResult);
494
457
  await registerBuiltDiscordComponentMessage({
495
458
  buildResult,
496
459
  messageId: result.id ?? messageId,
@@ -501,15 +464,7 @@ async function editDiscordComponentMessage(to, messageId, spec, opts) {
501
464
  accountId: accountInfo.accountId,
502
465
  direction: "outbound"
503
466
  });
504
- return createDiscordSendResult({
505
- result: {
506
- id: result.id ?? messageId,
507
- channel_id: result.channel_id
508
- },
509
- fallbackChannelId: channelId,
510
- kind: "card",
511
- ...opts.reply ? { reply: opts.reply } : {}
512
- });
467
+ return deliveryResult ?? toDeliveryResult();
513
468
  }
514
469
  //#endregion
515
470
  export { registerDiscordComponentEntries as a, send_components_exports as i, registerBuiltDiscordComponentMessage as n, resolveDiscordComponentEntryWithPersistence as o, sendDiscordComponentMessage as r, resolveDiscordModalEntryWithPersistence as s, editDiscordComponentMessage as t };
@@ -1,7 +1,7 @@
1
- import { C as withDiscordRequestAuthority, ct as createThread, st as createChannelMessage } from "./discord-BXpHW-cu.mjs";
2
- import { i as normalizeDiscordHandleKey, o as resolveDiscordDirectoryUserId } from "./directory-live--EGTH0DC.mjs";
3
- import { c as createDiscordSendReceiptFromResults, d as createReusableDiscordReplyReference, l as createDiscordSendResult } from "./retry-DBfcEgmO.mjs";
4
- import { A as resolveDiscordSendComponents, D as buildDiscordMessageRequest, K as parseAndResolveChannelRecipient, M as resolveDiscordSuppressEmbeds, N as createDiscordClient, O as createDiscordMessageNonce, a as normalizeDiscordPollInput, c as normalizeStickerIds, f as sendDiscordMedia, j as resolveDiscordSendEmbeds, k as resolveDiscordMessageFlags, l as resolveChannelId, n as buildDiscordTextChunks, p as sendDiscordText, t as buildDiscordSendError, u as resolveDiscordChannel } from "./send.shared-Zwx6BxQ5.mjs";
1
+ import { C as withDiscordRequestAuthority, ct as createChannelMessage, lt as createThread } from "./discord-0xJYfdDD.mjs";
2
+ import { i as normalizeDiscordHandleKey, o as resolveDiscordDirectoryUserId } from "./directory-live-DtKRHuGV.mjs";
3
+ import { f as createReusableDiscordReplyReference, l as createDiscordSendReceiptFromResults, u as createDiscordSendResult } from "./retry-pz_cSha2.mjs";
4
+ import { A as resolveDiscordSendEmbeds, D as createDiscordMessageNonce, E as buildDiscordMessageRequest, G as parseAndResolveChannelRecipient, M as createDiscordClient, O as resolveDiscordMessageFlags, c as resolveChannelId, d as sendDiscordMedia, f as sendDiscordText, i as normalizeDiscordPollInput, j as resolveDiscordSuppressEmbeds, k as resolveDiscordSendComponents, l as resolveDiscordChannel, n as buildDiscordTextChunks, s as normalizeStickerIds, t as buildDiscordSendError } from "./send.shared-DGFkbkQR.mjs";
5
5
  import { ChannelType } from "discord-api-types/v10";
6
6
  import { expectDefined } from "openclaw/plugin-sdk/expect-runtime";
7
7
  import { normalizeLowercaseStringOrEmpty, normalizeOptionalString, normalizeOptionalStringifiedId } from "openclaw/plugin-sdk/string-coerce-runtime";
@@ -26,25 +26,13 @@ function formatMention(params) {
26
26
  const userId = params.userId == null ? null : normalizeSnowflake(params.userId);
27
27
  const roleId = params.roleId == null ? null : normalizeSnowflake(params.roleId);
28
28
  const channelId = params.channelId == null ? null : normalizeSnowflake(params.channelId);
29
- const values = [
30
- userId ? {
31
- kind: "user",
32
- id: userId
33
- } : null,
34
- roleId ? {
35
- kind: "role",
36
- id: roleId
37
- } : null,
38
- channelId ? {
39
- kind: "channel",
40
- id: channelId
41
- } : null
29
+ const mentions = [
30
+ userId ? `<@${userId}>` : null,
31
+ roleId ? `<@&${roleId}>` : null,
32
+ channelId ? `<#${channelId}>` : null
42
33
  ].filter((entry) => Boolean(entry));
43
- if (values.length !== 1) throw new Error("formatMention requires exactly one of userId, roleId, or channelId");
44
- const target = expectDefined(values.at(0), "single Discord mention target");
45
- if (target.kind === "user") return `<@${target.id}>`;
46
- if (target.kind === "role") return `<@&${target.id}>`;
47
- return `<#${target.id}>`;
34
+ if (mentions.length !== 1) throw new Error("formatMention requires exactly one of userId, roleId, or channelId");
35
+ return expectDefined(mentions.at(0), "single Discord mention target");
48
36
  }
49
37
  function resolveConfiguredMentionAlias(handle, mentionAliases) {
50
38
  const key = normalizeDiscordHandleKey(handle);
@@ -324,6 +312,15 @@ function normalizeDiscordBold(markdown) {
324
312
  if (spanEdits) spanEdits.push(edit);
325
313
  else editsBySpan.set(edit.spanId, [edit]);
326
314
  }
315
+ const renderEdits = (selectedEdits, start = 0, end = markdown.length) => {
316
+ let cursor = start;
317
+ let rendered = "";
318
+ for (const edit of selectedEdits) {
319
+ rendered += `${markdown.slice(cursor, edit.start)}${edit.marker}`;
320
+ cursor = edit.start + edit.consume;
321
+ }
322
+ return rendered + markdown.slice(cursor, end);
323
+ };
327
324
  const protectedSpanIds = /* @__PURE__ */ new Set();
328
325
  const protectedEditKeys = /* @__PURE__ */ new Set();
329
326
  const spansWithProtectedContent = /* @__PURE__ */ new Set();
@@ -342,30 +339,20 @@ function normalizeDiscordBold(markdown) {
342
339
  for (const spanId of spansWithProtectedContent) {
343
340
  const span = spans[spanId];
344
341
  if (!span) continue;
345
- let localCursor = span.start;
346
- const localRendered = (editsBySpan.get(spanId) ?? []).filter((edit) => {
342
+ const localRendered = renderEdits((editsBySpan.get(spanId) ?? []).filter((edit) => {
347
343
  const key = `${edit.start}:${edit.consume}:${edit.marker}`;
348
344
  return !protectedEditKeys.has(key);
349
- }).map((edit) => {
350
- const chunk = `${markdown.slice(localCursor, edit.start)}${edit.marker}`;
351
- localCursor = edit.start + edit.consume;
352
- return chunk;
353
- }).join("") + markdown.slice(localCursor, span.end);
345
+ }), span.start, span.end);
354
346
  const localSource = markdown.slice(span.start, span.end);
355
347
  if (markdownSemanticSignature(fromMarkdown(localRendered)) !== markdownSemanticSignature(fromMarkdown(localSource))) protectedSpanIds.add(spanId);
356
348
  }
357
- let cursor = 0;
358
349
  const seenEdits = /* @__PURE__ */ new Set();
359
- const rendered = edits.filter((edit) => {
350
+ const rendered = renderEdits(edits.filter((edit) => {
360
351
  const key = `${edit.start}:${edit.consume}:${edit.marker}`;
361
352
  if (protectedSpanIds.has(edit.spanId) || protectedEditKeys.has(key) || seenEdits.has(key)) return false;
362
353
  seenEdits.add(key);
363
354
  return true;
364
- }).map((edit) => {
365
- const chunk = `${markdown.slice(cursor, edit.start)}${edit.marker}`;
366
- cursor = edit.start + edit.consume;
367
- return chunk;
368
- }).join("") + markdown.slice(cursor);
355
+ }));
369
356
  return markdownSemanticSignature(fromMarkdown(rendered)) === markdownSemanticSignature(sourceTree) ? rendered : markdown;
370
357
  }
371
358
  function renderDiscordMarkdown(markdown, tableMode) {
@@ -394,23 +381,6 @@ function prepareDiscordOutboundText(text, params) {
394
381
  const DEFAULT_DISCORD_MEDIA_MAX_MB = 100;
395
382
  /** Discord's ChannelFlags.RequireTag is bit 4 on forum/media parent channels. */
396
383
  const DISCORD_FORUM_REQUIRE_TAG_FLAG = 16;
397
- async function sendDiscordThreadTextChunks(params) {
398
- for (const chunk of params.chunks) await sendDiscordText({
399
- rest: params.rest,
400
- channelId: params.threadId,
401
- text: chunk,
402
- request: params.request,
403
- maxLinesPerMessage: params.maxLinesPerMessage,
404
- chunkMode: params.chunkMode,
405
- silent: params.silent,
406
- suppressEmbeds: params.suppressEmbeds,
407
- allowedMentions: params.allowedMentions,
408
- maxChars: params.maxChars,
409
- onResult: params.onResult,
410
- onPlatformSendDispatch: params.onPlatformSendDispatch,
411
- assertPlatformSendAuthorized: params.assertPlatformSendAuthorized
412
- });
413
- }
414
384
  /** Discord thread names are capped at 100 characters. */
415
385
  const DISCORD_THREAD_NAME_LIMIT = 100;
416
386
  /** Derive a thread title from the first non-empty line of the message text. */
@@ -422,16 +392,6 @@ function deriveForumThreadName(text) {
422
392
  function isForumLikeChannel(channel) {
423
393
  return channel?.type === ChannelType.GuildForum || channel?.type === ChannelType.GuildMedia;
424
394
  }
425
- function toDiscordSendResult(result, fallbackChannelId, params = {}) {
426
- const resultParams = {
427
- result,
428
- fallbackChannelId,
429
- kind: params.kind ?? "text"
430
- };
431
- if (params.threadId != null) resultParams.threadId = params.threadId;
432
- if (params.reply) resultParams.reply = params.reply;
433
- return createDiscordSendResult(resultParams);
434
- }
435
395
  async function resolveDiscordSendTarget(to, opts) {
436
396
  const cfg = requireRuntimeConfig(opts.cfg, "Discord send target resolution");
437
397
  const { rest, request, account } = createDiscordClient({
@@ -475,7 +435,9 @@ async function sendMessageDiscordInternal(to, text, opts) {
475
435
  const deliveredResults = [];
476
436
  let deliveryThreadId;
477
437
  const reportResult = async (progressResult, kind, replyToId) => {
478
- const deliveredResult = toDiscordSendResult(progressResult, deliveryThreadId ?? channelId, {
438
+ const deliveredResult = createDiscordSendResult({
439
+ result: progressResult,
440
+ fallbackChannelId: deliveryThreadId ?? channelId,
479
441
  kind,
480
442
  threadId: deliveryThreadId,
481
443
  reply: createReusableDiscordReplyReference(replyToId)
@@ -483,6 +445,26 @@ async function sendMessageDiscordInternal(to, text, opts) {
483
445
  deliveredResults.push(deliveredResult);
484
446
  await opts.onDeliveryResult?.(deliveredResult);
485
447
  };
448
+ const textSendOptions = {
449
+ rest,
450
+ request,
451
+ maxLinesPerMessage,
452
+ chunkMode,
453
+ silent: opts.silent,
454
+ suppressEmbeds,
455
+ allowedMentions: opts.allowedMentions,
456
+ maxChars: textLimit,
457
+ onResult: reportResult,
458
+ onPlatformSendDispatch: opts.onPlatformSendDispatch,
459
+ assertPlatformSendAuthorized: opts.assertPlatformSendAuthorized
460
+ };
461
+ const mediaSendOptions = {
462
+ filename: opts.filename,
463
+ mediaAccess: opts.mediaAccess,
464
+ mediaLocalRoots: opts.mediaLocalRoots,
465
+ mediaReadFile: opts.mediaReadFile,
466
+ maxBytes: mediaMaxBytes
467
+ };
486
468
  if (isForumLikeChannel(channel)) {
487
469
  if (((channel.flags ?? 0) & DISCORD_FORUM_REQUIRE_TAG_FLAG) !== 0) throw new Error(`Discord forum channel ${channelId} requires an applied tag; use thread-create with appliedTags, then send to the created thread.`);
488
470
  const threadName = deriveForumThreadName(renderedText);
@@ -538,68 +520,34 @@ async function sendMessageDiscordInternal(to, text, opts) {
538
520
  const messageId = threadRes.message?.id ?? threadId;
539
521
  const resultChannelId = threadRes.message?.channel_id ?? threadId;
540
522
  const remainingChunks = chunks.slice(1);
541
- const starterResult = toDiscordSendResult({
542
- id: messageId,
543
- channel_id: resultChannelId
544
- }, channelId, {
523
+ const starterResult = createDiscordSendResult({
524
+ result: {
525
+ id: messageId,
526
+ channel_id: resultChannelId
527
+ },
528
+ fallbackChannelId: channelId,
545
529
  kind: "text",
546
530
  threadId
547
531
  });
548
532
  deliveredResults.push(starterResult);
549
533
  await opts.onDeliveryResult?.(starterResult);
550
534
  try {
535
+ let textChunks = remainingChunks;
551
536
  if (opts.mediaUrl) {
552
537
  const [mediaCaption, ...afterMediaChunks] = remainingChunks;
553
538
  await sendDiscordMedia({
554
- rest,
539
+ ...textSendOptions,
540
+ ...mediaSendOptions,
555
541
  channelId: threadId,
556
542
  text: mediaCaption ?? "",
557
- mediaUrl: opts.mediaUrl,
558
- filename: opts.filename,
559
- mediaAccess: opts.mediaAccess,
560
- mediaLocalRoots: opts.mediaLocalRoots,
561
- mediaReadFile: opts.mediaReadFile,
562
- maxBytes: mediaMaxBytes,
563
- request,
564
- maxLinesPerMessage,
565
- chunkMode,
566
- silent: opts.silent,
567
- suppressEmbeds,
568
- allowedMentions: opts.allowedMentions,
569
- maxChars: textLimit,
570
- onResult: reportResult,
571
- onPlatformSendDispatch: opts.onPlatformSendDispatch,
572
- assertPlatformSendAuthorized: opts.assertPlatformSendAuthorized
573
- });
574
- await sendDiscordThreadTextChunks({
575
- rest,
576
- threadId,
577
- chunks: afterMediaChunks,
578
- request,
579
- maxLinesPerMessage,
580
- chunkMode,
581
- maxChars: textLimit,
582
- silent: opts.silent,
583
- suppressEmbeds,
584
- allowedMentions: opts.allowedMentions,
585
- onResult: reportResult,
586
- onPlatformSendDispatch: opts.onPlatformSendDispatch,
587
- assertPlatformSendAuthorized: opts.assertPlatformSendAuthorized
543
+ mediaUrl: opts.mediaUrl
588
544
  });
589
- } else await sendDiscordThreadTextChunks({
590
- rest,
591
- threadId,
592
- chunks: remainingChunks,
593
- request,
594
- maxLinesPerMessage,
595
- chunkMode,
596
- maxChars: textLimit,
597
- silent: opts.silent,
598
- suppressEmbeds,
599
- allowedMentions: opts.allowedMentions,
600
- onResult: reportResult,
601
- onPlatformSendDispatch: opts.onPlatformSendDispatch,
602
- assertPlatformSendAuthorized: opts.assertPlatformSendAuthorized
545
+ textChunks = afterMediaChunks;
546
+ }
547
+ for (const chunk of textChunks) await sendDiscordText({
548
+ ...textSendOptions,
549
+ channelId: threadId,
550
+ text: chunk
603
551
  });
604
552
  } catch (err) {
605
553
  throw await buildDiscordSendError(err, {
@@ -625,48 +573,19 @@ async function sendMessageDiscordInternal(to, text, opts) {
625
573
  }
626
574
  let result;
627
575
  try {
628
- if (opts.mediaUrl) result = await sendDiscordMedia({
629
- rest,
576
+ const message = {
577
+ ...textSendOptions,
630
578
  channelId,
631
579
  text: textWithMentions,
632
- mediaUrl: opts.mediaUrl,
633
- filename: opts.filename,
634
- mediaAccess: opts.mediaAccess,
635
- mediaLocalRoots: opts.mediaLocalRoots,
636
- mediaReadFile: opts.mediaReadFile,
637
- maxBytes: mediaMaxBytes,
638
580
  reply: opts.reply,
639
- request,
640
- maxLinesPerMessage,
641
- components: opts.components,
642
- embeds: opts.embeds,
643
- chunkMode,
644
- silent: opts.silent,
645
- suppressEmbeds,
646
- allowedMentions: opts.allowedMentions,
647
- maxChars: textLimit,
648
- onResult: reportResult,
649
- onPlatformSendDispatch: opts.onPlatformSendDispatch,
650
- assertPlatformSendAuthorized: opts.assertPlatformSendAuthorized
651
- });
652
- else result = await sendDiscordText({
653
- rest,
654
- channelId,
655
- text: textWithMentions,
656
- reply: opts.reply,
657
- request,
658
- maxLinesPerMessage,
659
581
  components: opts.components,
660
- embeds: opts.embeds,
661
- chunkMode,
662
- silent: opts.silent,
663
- suppressEmbeds,
664
- allowedMentions: opts.allowedMentions,
665
- maxChars: textLimit,
666
- onResult: reportResult,
667
- onPlatformSendDispatch: opts.onPlatformSendDispatch,
668
- assertPlatformSendAuthorized: opts.assertPlatformSendAuthorized
669
- });
582
+ embeds: opts.embeds
583
+ };
584
+ result = opts.mediaUrl ? await sendDiscordMedia({
585
+ ...message,
586
+ ...mediaSendOptions,
587
+ mediaUrl: opts.mediaUrl
588
+ }) : await sendDiscordText(message);
670
589
  } catch (err) {
671
590
  throw await buildDiscordSendError(err, {
672
591
  channelId,
@@ -682,7 +601,11 @@ async function sendMessageDiscordInternal(to, text, opts) {
682
601
  direction: "outbound"
683
602
  });
684
603
  return {
685
- ...toDiscordSendResult(result, channelId),
604
+ ...createDiscordSendResult({
605
+ result,
606
+ fallbackChannelId: channelId,
607
+ kind: "text"
608
+ }),
686
609
  receipt: createDiscordSendReceiptFromResults({ results: deliveredResults })
687
610
  };
688
611
  }
@@ -743,7 +666,9 @@ async function resolveDiscordStructuredSendContext(to, opts) {
743
666
  accountId: accountInfo.accountId,
744
667
  direction: "outbound"
745
668
  });
746
- return toDiscordSendResult(result, channelId, {
669
+ return createDiscordSendResult({
670
+ result,
671
+ fallbackChannelId: channelId,
747
672
  kind: kind === "poll" ? "poll" : "card",
748
673
  threadId: kind === "poll" ? opts.threadId : void 0
749
674
  });