@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,13 +1,13 @@
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";
1
+ import { i as buildDiscordPresentationComponents, m as coerceDiscordComponentParam, r as buildDiscordInteractiveComponents } from "./components-Cq1PvIpN.mjs";
2
+ import { C as withDiscordRequestAuthority } from "./discord-0xJYfdDD.mjs";
3
+ import { _ as matchesDiscordToolContextTarget, b as parseDiscordTarget, x as resolveDiscordChannelId } from "./retry-pz_cSha2.mjs";
4
+ import "./targets-0KUcEIYx.mjs";
5
+ import { a as readDiscordAutoArchiveDurationParam, t as handleDiscordAction } from "./runtime-FN000lxA.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-zVGxxceg.mjs";
8
+ import { t as tryHandleDiscordMessageActionGuildAdmin } from "./handle-action.guild-admin-Df-8gVle.mjs";
9
9
  import { n as notifyDiscordActiveTurnThreadCreated, r as notifyDiscordActiveTurnThreadReplyDelivered } from "./active-turn-thread-route-fmHl1HNd.mjs";
10
- import { normalizeOptionalStringifiedId } from "openclaw/plugin-sdk/string-coerce-runtime";
10
+ import { asOptionalRecord, normalizeOptionalStringifiedId } from "openclaw/plugin-sdk/string-coerce-runtime";
11
11
  import { adaptMessagePresentationForChannel, normalizeLegacyInteractiveReply, normalizeMessagePresentation, renderMessagePresentationFallbackText } from "openclaw/plugin-sdk/interactive-runtime";
12
12
  import { resolveReactionMessageId } from "openclaw/plugin-sdk/channel-actions";
13
13
  import { readBooleanParam } from "openclaw/plugin-sdk/boolean-param";
@@ -15,7 +15,7 @@ import { readPositiveIntegerParam as readPositiveIntegerParam$1, readStringArray
15
15
  //#region extensions/discord/src/actions/handle-action.ts
16
16
  const providerId = "discord";
17
17
  function withCurrentSourceReplyRoute(result) {
18
- const details = result.details && typeof result.details === "object" && !Array.isArray(result.details) ? result.details : {};
18
+ const details = asOptionalRecord(result.details) ?? {};
19
19
  return {
20
20
  ...result,
21
21
  details: {
@@ -52,10 +52,16 @@ 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
  };
58
+ const runAction = ({ action: runtimeAction, ...payload }) => handleDiscordAction({
59
+ action: runtimeAction,
60
+ accountId: accountId ?? void 0,
61
+ ...payload
62
+ }, cfg, actionOptions);
57
63
  const notifyVisibleOutbound = (result, to, fallbackSessionKey) => {
58
- if ((result.details && typeof result.details === "object" && !Array.isArray(result.details) ? result.details : void 0)?.ok !== true) return;
64
+ if (asOptionalRecord(result.details)?.ok !== true) return;
59
65
  discordInboundEventDelivery.notify({
60
66
  sessionKey: ctx.sessionKey ?? fallbackSessionKey ?? void 0,
61
67
  to,
@@ -64,7 +70,7 @@ async function dispatchDiscordMessageAction(ctx) {
64
70
  });
65
71
  };
66
72
  const withAdoptedThreadReplyRoute = (result, to, fallbackSessionKey) => {
67
- if ((result.details && typeof result.details === "object" && !Array.isArray(result.details) ? result.details : void 0)?.ok !== true) return result;
73
+ if (asOptionalRecord(result.details)?.ok !== true) return result;
68
74
  let target;
69
75
  try {
70
76
  target = parseDiscordTarget(to, { defaultKind: "channel" });
@@ -78,27 +84,33 @@ async function dispatchDiscordMessageAction(ctx) {
78
84
  })) return withCurrentSourceReplyRoute(result);
79
85
  return result;
80
86
  };
81
- const readTarget = () => {
82
- const target = readStringParam$1(params, "channelId") ?? readStringParam$1(params, "to") ?? readCurrentDiscordTarget(ctx.toolContext);
87
+ const readTarget = ([firstKey, secondKey] = ["channelId", "to"]) => {
88
+ const target = readStringParam$1(params, firstKey) ?? readStringParam$1(params, secondKey) ?? readCurrentDiscordTarget(ctx.toolContext);
83
89
  if (!target) throw new Error("Discord channel target is required (use channel:<id>).");
84
90
  return target;
85
91
  };
86
92
  const resolveChannelId = () => resolveDiscordChannelId(readTarget());
87
- const readSendTarget = () => {
88
- const target = readStringParam$1(params, "to") ?? readStringParam$1(params, "target") ?? readCurrentDiscordTarget(ctx.toolContext);
89
- if (!target) throw new Error("Discord channel target is required (use channel:<id>).");
90
- return target;
91
- };
92
- if (action === "send") {
93
- const to = readSendTarget();
94
- const asVoice = readBooleanParam(params, "asVoice") === true;
95
- const mediaUrl = readStringParam$1(params, "media", { trim: false }) ?? readStringParam$1(params, "path", { trim: false }) ?? readStringParam$1(params, "filePath", { trim: false });
93
+ if (action === "send" || action === "upload-file") {
94
+ const to = readTarget(["to", "target"]);
95
+ const asVoice = action === "send" ? readBooleanParam(params, "asVoice") === true : void 0;
96
+ const [firstMediaKey, lastMediaKey] = action === "send" ? ["media", "filePath"] : ["filePath", "media"];
97
+ const mediaUrl = readStringParam$1(params, firstMediaKey, { trim: false }) ?? readStringParam$1(params, "path", { trim: false }) ?? readStringParam$1(params, lastMediaKey, { trim: false });
98
+ if (action === "upload-file" && !mediaUrl) {
99
+ if (readStringParam$1(params, "buffer", { trim: false })) throw new Error("Use action: \"send\" for base64 buffer attachments; upload-file requires filePath, path, or media.");
100
+ throw new Error("upload-file requires filePath, path, or media.");
101
+ }
96
102
  const content = readStringParam$1(params, "message", {
97
103
  allowEmpty: true,
98
104
  trim: false
99
- });
100
- const explicitComponents = coerceDiscordComponentParam(params.components);
101
- const presentation = explicitComponents == null ? normalizeMessagePresentation(params.presentation) : void 0;
105
+ }) ?? (action === "upload-file" ? readStringParam$1(params, "content", {
106
+ allowEmpty: true,
107
+ trim: false
108
+ }) ?? readStringParam$1(params, "caption", {
109
+ allowEmpty: true,
110
+ trim: false
111
+ }) ?? "" : void 0);
112
+ const explicitComponents = action === "send" ? coerceDiscordComponentParam(params.components) : void 0;
113
+ const presentation = action === "send" && explicitComponents == null ? normalizeMessagePresentation(params.presentation) : void 0;
102
114
  const adaptedPresentation = presentation ? adaptMessagePresentationForChannel({
103
115
  presentation,
104
116
  capabilities: DISCORD_PRESENTATION_CAPABILITIES
@@ -110,9 +122,9 @@ async function dispatchDiscordMessageAction(ctx) {
110
122
  includesMedia: Boolean(mediaUrl)
111
123
  }) ? generatedPresentationComponents : void 0;
112
124
  const presentationFellBack = Boolean(generatedPresentationComponents && !presentationComponents);
113
- const rawComponents = presentationFellBack ? void 0 : explicitComponents ?? presentationComponents ?? buildDiscordInteractiveComponents(normalizeLegacyInteractiveReply(params.interactive));
125
+ const rawComponents = action !== "send" || presentationFellBack ? void 0 : explicitComponents ?? presentationComponents ?? buildDiscordInteractiveComponents(normalizeLegacyInteractiveReply(params.interactive));
114
126
  const components = Boolean(rawComponents) && (typeof rawComponents === "function" || typeof rawComponents === "object") ? rawComponents : void 0;
115
- const rawEmbeds = params.embeds;
127
+ const rawEmbeds = action === "send" ? params.embeds : void 0;
116
128
  const embeds = Array.isArray(rawEmbeds) ? rawEmbeds : void 0;
117
129
  const deliveryContent = presentationFellBack && presentation ? renderMessagePresentationFallbackText({
118
130
  text: content,
@@ -124,63 +136,25 @@ async function dispatchDiscordMessageAction(ctx) {
124
136
  const suppressEmbeds = readBooleanParam(params, "suppressEmbeds");
125
137
  const sessionKey = readStringParam$1(params, "__sessionKey");
126
138
  const agentId = readStringParam$1(params, "__agentId");
127
- const threadName = readStringParam$1(params, "threadName");
128
- const result = await handleDiscordAction({
139
+ const threadName = action === "send" ? readStringParam$1(params, "threadName") : void 0;
140
+ const result = await runAction({
129
141
  action: "sendMessage",
130
- accountId: accountId ?? void 0,
131
142
  to,
132
143
  content: deliveryContent,
133
144
  ...threadName ? { threadName } : {},
134
145
  mediaUrl: mediaUrl ?? void 0,
135
146
  filename: filename ?? void 0,
136
147
  replyTo: replyTo ?? void 0,
137
- components,
138
- embeds,
139
- asVoice,
148
+ ...action === "send" ? {
149
+ components,
150
+ embeds,
151
+ asVoice
152
+ } : {},
140
153
  silent,
141
154
  ...suppressEmbeds === void 0 ? {} : { suppressEmbeds },
142
155
  __sessionKey: sessionKey ?? void 0,
143
156
  __agentId: agentId ?? void 0
144
- }, cfg, actionOptions);
145
- notifyVisibleOutbound(result, to, sessionKey);
146
- return withAdoptedThreadReplyRoute(result, to, sessionKey);
147
- }
148
- if (action === "upload-file") {
149
- const to = readSendTarget();
150
- const mediaUrl = readStringParam$1(params, "filePath", { trim: false }) ?? readStringParam$1(params, "path", { trim: false }) ?? readStringParam$1(params, "media", { trim: false });
151
- if (!mediaUrl) {
152
- if (readStringParam$1(params, "buffer", { trim: false })) throw new Error("Use action: \"send\" for base64 buffer attachments; upload-file requires filePath, path, or media.");
153
- throw new Error("upload-file requires filePath, path, or media.");
154
- }
155
- const content = readStringParam$1(params, "message", {
156
- allowEmpty: true,
157
- trim: false
158
- }) ?? readStringParam$1(params, "content", {
159
- allowEmpty: true,
160
- trim: false
161
- }) ?? readStringParam$1(params, "caption", {
162
- allowEmpty: true,
163
- trim: false
164
157
  });
165
- const filename = readStringParam$1(params, "filename");
166
- const replyTo = readStringParam$1(params, "replyTo");
167
- const silent = readBooleanParam(params, "silent") === true;
168
- const suppressEmbeds = readBooleanParam(params, "suppressEmbeds");
169
- const sessionKey = readStringParam$1(params, "__sessionKey");
170
- const agentId = readStringParam$1(params, "__agentId");
171
- const result = await handleDiscordAction({
172
- action: "sendMessage",
173
- accountId: accountId ?? void 0,
174
- to,
175
- content: content ?? "",
176
- mediaUrl,
177
- filename: filename ?? void 0,
178
- replyTo: replyTo ?? void 0,
179
- silent,
180
- ...suppressEmbeds === void 0 ? {} : { suppressEmbeds },
181
- __sessionKey: sessionKey ?? void 0,
182
- __agentId: agentId ?? void 0
183
- }, cfg, actionOptions);
184
158
  notifyVisibleOutbound(result, to, sessionKey);
185
159
  return withAdoptedThreadReplyRoute(result, to, sessionKey);
186
160
  }
@@ -193,79 +167,77 @@ async function dispatchDiscordMessageAction(ctx) {
193
167
  if (!messageId) throw new Error("messageId required. Provide messageId explicitly or react to the current inbound message.");
194
168
  const emoji = readStringParam$1(params, "emoji", { allowEmpty: true });
195
169
  const remove = readBooleanParam(params, "remove");
196
- return await handleDiscordAction({
170
+ return await runAction({
197
171
  action: "react",
198
- accountId: accountId ?? void 0,
199
172
  channelId: readTarget(),
200
173
  messageId,
201
174
  emoji,
202
175
  remove
203
- }, cfg, actionOptions);
176
+ });
204
177
  }
205
178
  if (action === "reactions") {
206
179
  const messageId = readStringParam$1(params, "messageId", { required: true });
207
180
  const limit = readPositiveIntegerParam$1(params, "limit");
208
- return await handleDiscordAction({
181
+ return await runAction({
209
182
  action: "reactions",
210
- accountId: accountId ?? void 0,
211
183
  channelId: readTarget(),
212
184
  messageId,
213
185
  limit
214
- }, cfg, actionOptions);
186
+ });
215
187
  }
216
188
  if (action === "read") {
217
189
  const limit = readPositiveIntegerParam$1(params, "limit");
218
- return await handleDiscordAction({
190
+ return await runAction({
219
191
  action: "readMessages",
220
- accountId: accountId ?? void 0,
221
192
  channelId: resolveChannelId(),
222
193
  limit,
223
194
  before: readStringParam$1(params, "before"),
224
195
  after: readStringParam$1(params, "after"),
225
196
  around: readStringParam$1(params, "around"),
226
197
  messageId: readStringParam$1(params, "messageId")
227
- }, cfg, actionOptions);
198
+ });
228
199
  }
229
200
  if (action === "edit" || action === "delete") {
230
201
  const messageId = readStringParam$1(params, "messageId", { required: true });
231
- return await handleDiscordAction({
202
+ const target = readTarget();
203
+ const currentDmChannel = action === "edit" && ctx.progressSnapshot && ctx.toolContext?.currentChatType === "direct" && parseDiscordTarget(target, { defaultKind: "channel" })?.kind === "user" && matchesDiscordToolContextTarget({
204
+ target,
205
+ toolContext: ctx.toolContext
206
+ }) ? readCurrentDiscordTarget(ctx.toolContext) : void 0;
207
+ return await runAction({
232
208
  action: action === "edit" ? "editMessage" : "deleteMessage",
233
- accountId: accountId ?? void 0,
234
- channelId: resolveChannelId(),
209
+ channelId: resolveDiscordChannelId(currentDmChannel ?? target),
235
210
  messageId,
236
211
  ...action === "edit" ? { content: params.message } : {}
237
- }, cfg, actionOptions);
212
+ });
238
213
  }
239
214
  if (action === "pin" || action === "unpin" || action === "list-pins") {
240
215
  const messageId = action === "list-pins" ? void 0 : readStringParam$1(params, "messageId", { required: true });
241
- return await handleDiscordAction({
216
+ return await runAction({
242
217
  action: action === "pin" ? "pinMessage" : action === "unpin" ? "unpinMessage" : "listPins",
243
- accountId: accountId ?? void 0,
244
218
  channelId: resolveChannelId(),
245
219
  messageId
246
- }, cfg, actionOptions);
220
+ });
247
221
  }
248
- if (action === "permissions") return await handleDiscordAction({
222
+ if (action === "permissions") return await runAction({
249
223
  action: "permissions",
250
- accountId: accountId ?? void 0,
251
224
  channelId: resolveChannelId()
252
- }, cfg, actionOptions);
225
+ });
253
226
  if (action === "thread-create") {
254
227
  const name = readStringParam$1(params, "threadName", { required: true });
255
228
  const messageId = readStringParam$1(params, "messageId");
256
229
  const content = readStringParam$1(params, "message", { trim: false });
257
230
  const autoArchiveMinutes = readDiscordAutoArchiveDurationParam(params, "autoArchiveMin");
258
231
  const appliedTags = readStringArrayParam$1(params, "appliedTags");
259
- const result = await handleDiscordAction({
232
+ const result = await runAction({
260
233
  action: "threadCreate",
261
- accountId: accountId ?? void 0,
262
234
  channelId: resolveChannelId(),
263
235
  name,
264
236
  messageId,
265
237
  content,
266
238
  autoArchiveMinutes,
267
239
  appliedTags: appliedTags ?? void 0
268
- }, cfg, actionOptions);
240
+ });
269
241
  const details = result.details && typeof result.details === "object" && !Array.isArray(result.details) ? result.details : void 0;
270
242
  if (details?.ok === true) {
271
243
  const threadId = typeof details.thread?.id === "string" ? details.thread.id : void 0;
@@ -282,30 +254,27 @@ async function dispatchDiscordMessageAction(ctx) {
282
254
  }
283
255
  if (action === "sticker") {
284
256
  const to = readStringParam$1(params, "to", { required: true });
285
- const stickerIds = readStringArrayParam$1(params, "stickerId", {
286
- required: true,
287
- label: "sticker-id"
288
- }) ?? [];
289
- const result = await handleDiscordAction({
257
+ const result = await runAction({
290
258
  action: "sticker",
291
- accountId: accountId ?? void 0,
292
259
  to,
293
- stickerIds,
260
+ stickerIds: readStringArrayParam$1(params, "stickerId", {
261
+ required: true,
262
+ label: "sticker-id"
263
+ }) ?? [],
294
264
  content: readStringParam$1(params, "message", { trim: false }),
295
265
  ...readBooleanParam(params, "silent") === true ? { silent: true } : {}
296
- }, cfg, actionOptions);
266
+ });
297
267
  notifyVisibleOutbound(result, to);
298
268
  return result;
299
269
  }
300
- if (action === "set-presence") return await handleDiscordAction({
270
+ if (action === "set-presence") return await runAction({
301
271
  action: "setPresence",
302
- accountId: accountId ?? void 0,
303
272
  status: readStringParam$1(params, "status"),
304
273
  activityType: readStringParam$1(params, "activityType"),
305
274
  activityName: readStringParam$1(params, "activityName"),
306
275
  activityUrl: readStringParam$1(params, "activityUrl"),
307
276
  activityState: readStringParam$1(params, "activityState")
308
- }, cfg, actionOptions);
277
+ });
309
278
  const adminResult = await tryHandleDiscordMessageActionGuildAdmin({
310
279
  ctx,
311
280
  resolveChannelId,
@@ -1,10 +1,50 @@
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-FN000lxA.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-zVGxxceg.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
+ const guildMetadataReads = {
9
+ "member-info": {
10
+ action: "memberInfo",
11
+ requiredParams: ["userId", "guildId"]
12
+ },
13
+ "role-info": {
14
+ action: "roleInfo",
15
+ requiredParams: ["guildId"]
16
+ },
17
+ "channel-info": {
18
+ action: "channelInfo",
19
+ requiredParams: ["channelId"]
20
+ },
21
+ "channel-list": {
22
+ action: "channelList",
23
+ requiredParams: ["guildId"]
24
+ },
25
+ "voice-status": {
26
+ action: "voiceStatus",
27
+ requiredParams: ["guildId", "userId"]
28
+ },
29
+ "event-list": {
30
+ action: "eventList",
31
+ requiredParams: ["guildId"]
32
+ }
33
+ };
34
+ const channelMutation = {
35
+ "channel-create": {
36
+ action: "channelCreate",
37
+ read: readDiscordChannelCreateParams
38
+ },
39
+ "channel-edit": {
40
+ action: "channelEdit",
41
+ read: readDiscordChannelEditParams
42
+ },
43
+ "channel-move": {
44
+ action: "channelMove",
45
+ read: readDiscordChannelMoveParams
46
+ }
47
+ };
8
48
  function readDiscordRequesterSenderId(ctx) {
9
49
  const currentProvider = normalizeOptionalString(ctx.toolContext?.currentChannelProvider);
10
50
  if (currentProvider?.toLowerCase() === "discord") return normalizeOptionalString(ctx.requesterSenderId);
@@ -23,22 +63,13 @@ async function tryHandleDiscordMessageActionGuildAdmin(params) {
23
63
  const { action, params: actionParams, cfg } = ctx;
24
64
  const accountId = ctx.accountId ?? readStringParam(actionParams, "accountId");
25
65
  const senderUserId = readDiscordRequesterSenderId(ctx);
26
- if (action === "member-info") {
27
- const userId = readStringParam(actionParams, "userId", { required: true });
28
- const guildId = readStringParam(actionParams, "guildId", { required: true });
66
+ const metadataRead = guildMetadataReads[action];
67
+ if (metadataRead) {
68
+ const values = Object.fromEntries(metadataRead.requiredParams.map((key) => [key, readStringParam(actionParams, key, { required: true })]));
29
69
  return await handleDiscordAction({
30
- action: "memberInfo",
70
+ action: metadataRead.action,
31
71
  accountId: accountId ?? void 0,
32
- guildId,
33
- userId
34
- }, cfg, readPolicyOptions);
35
- }
36
- if (action === "role-info") {
37
- const guildId = readStringParam(actionParams, "guildId", { required: true });
38
- return await handleDiscordAction({
39
- action: "roleInfo",
40
- accountId: accountId ?? void 0,
41
- guildId
72
+ ...values
42
73
  }, cfg, readPolicyOptions);
43
74
  }
44
75
  if (action === "emoji-list") {
@@ -102,43 +133,12 @@ async function tryHandleDiscordMessageActionGuildAdmin(params) {
102
133
  ...senderParam(senderUserId)
103
134
  }, cfg);
104
135
  }
105
- if (action === "channel-info") {
106
- const channelId = readStringParam(actionParams, "channelId", { required: true });
107
- return await handleDiscordAction({
108
- action: "channelInfo",
109
- accountId: accountId ?? void 0,
110
- channelId
111
- }, cfg, readPolicyOptions);
112
- }
113
- if (action === "channel-list") {
114
- const guildId = readStringParam(actionParams, "guildId", { required: true });
115
- return await handleDiscordAction({
116
- action: "channelList",
117
- accountId: accountId ?? void 0,
118
- guildId
119
- }, cfg, readPolicyOptions);
120
- }
121
- if (action === "channel-create") {
122
- const guildId = readStringParam(actionParams, "guildId", { required: true });
123
- return await handleDiscordAction({
124
- action: "channelCreate",
125
- accountId: accountId ?? void 0,
126
- ...readDiscordChannelCreateParams({
127
- ...actionParams,
128
- guildId
129
- }),
130
- ...senderParam(senderUserId)
131
- }, cfg);
132
- }
133
- if (action === "channel-edit") {
134
- const channelId = readStringParam(actionParams, "channelId", { required: true });
136
+ if (action === "channel-create" || action === "channel-edit" || action === "channel-move") {
137
+ const mutation = channelMutation[action];
135
138
  return await handleDiscordAction({
136
- action: "channelEdit",
139
+ action: mutation.action,
137
140
  accountId: accountId ?? void 0,
138
- ...readDiscordChannelEditParams({
139
- ...actionParams,
140
- channelId
141
- }),
141
+ ...mutation.read(actionParams),
142
142
  ...senderParam(senderUserId)
143
143
  }, cfg);
144
144
  }
@@ -151,73 +151,21 @@ async function tryHandleDiscordMessageActionGuildAdmin(params) {
151
151
  ...senderParam(senderUserId)
152
152
  }, cfg);
153
153
  }
154
- if (action === "channel-move") {
155
- const guildId = readStringParam(actionParams, "guildId", { required: true });
156
- const channelId = readStringParam(actionParams, "channelId", { required: true });
154
+ if (action === "category-create" || action === "category-edit" || action === "category-delete") {
155
+ const creating = action === "category-create";
156
+ const categoryId = readStringParam(actionParams, creating ? "guildId" : "categoryId", { required: true });
157
+ const fields = action === "category-delete" ? {} : {
158
+ name: readStringParam(actionParams, "name", { required: creating }),
159
+ position: readNonNegativeIntegerParam(actionParams, "position")
160
+ };
157
161
  return await handleDiscordAction({
158
- action: "channelMove",
162
+ action: creating ? "categoryCreate" : action === "category-edit" ? "categoryEdit" : "categoryDelete",
159
163
  accountId: accountId ?? void 0,
160
- ...readDiscordChannelMoveParams({
161
- ...actionParams,
162
- guildId,
163
- channelId
164
- }),
164
+ ...creating ? { guildId: categoryId } : { categoryId },
165
+ ...fields,
165
166
  ...senderParam(senderUserId)
166
167
  }, cfg);
167
168
  }
168
- if (action === "category-create") {
169
- const guildId = readStringParam(actionParams, "guildId", { required: true });
170
- const name = readStringParam(actionParams, "name", { required: true });
171
- const position = readNonNegativeIntegerParam(actionParams, "position");
172
- return await handleDiscordAction({
173
- action: "categoryCreate",
174
- accountId: accountId ?? void 0,
175
- guildId,
176
- name,
177
- position: position ?? void 0,
178
- ...senderParam(senderUserId)
179
- }, cfg);
180
- }
181
- if (action === "category-edit") {
182
- const categoryId = readStringParam(actionParams, "categoryId", { required: true });
183
- const name = readStringParam(actionParams, "name");
184
- const position = readNonNegativeIntegerParam(actionParams, "position");
185
- return await handleDiscordAction({
186
- action: "categoryEdit",
187
- accountId: accountId ?? void 0,
188
- categoryId,
189
- name: name ?? void 0,
190
- position: position ?? void 0,
191
- ...senderParam(senderUserId)
192
- }, cfg);
193
- }
194
- if (action === "category-delete") {
195
- const categoryId = readStringParam(actionParams, "categoryId", { required: true });
196
- return await handleDiscordAction({
197
- action: "categoryDelete",
198
- accountId: accountId ?? void 0,
199
- categoryId,
200
- ...senderParam(senderUserId)
201
- }, cfg);
202
- }
203
- if (action === "voice-status") {
204
- const guildId = readStringParam(actionParams, "guildId", { required: true });
205
- const userId = readStringParam(actionParams, "userId", { required: true });
206
- return await handleDiscordAction({
207
- action: "voiceStatus",
208
- accountId: accountId ?? void 0,
209
- guildId,
210
- userId
211
- }, cfg, readPolicyOptions);
212
- }
213
- if (action === "event-list") {
214
- const guildId = readStringParam(actionParams, "guildId", { required: true });
215
- return await handleDiscordAction({
216
- action: "eventList",
217
- accountId: accountId ?? void 0,
218
- guildId
219
- }, cfg, readPolicyOptions);
220
- }
221
169
  if (action === "event-create") {
222
170
  const guildId = readStringParam(actionParams, "guildId", { required: true });
223
171
  const name = readStringParam(actionParams, "eventName", { required: true });
@@ -253,14 +201,8 @@ async function tryHandleDiscordMessageActionGuildAdmin(params) {
253
201
  })
254
202
  });
255
203
  return await handleDiscordAction({
256
- action: moderation.action,
204
+ ...moderation,
257
205
  accountId: accountId ?? void 0,
258
- guildId: moderation.guildId,
259
- userId: moderation.userId,
260
- durationMinutes: moderation.durationMinutes,
261
- until: moderation.until,
262
- reason: moderation.reason,
263
- deleteMessageDays: moderation.deleteMessageDays,
264
206
  senderUserId
265
207
  }, cfg);
266
208
  }
@@ -1,4 +1,4 @@
1
- import { i as normalizeDiscordAllowList } from "./channel-type-DKnjV1XW.mjs";
1
+ import { i as normalizeDiscordAllowList } from "./channel-type-DRCrEMss.mjs";
2
2
  import { defineStableChannelIngressIdentity } from "openclaw/plugin-sdk/channel-ingress-runtime";
3
3
  //#region extensions/discord/src/monitor/ingress-identity.ts
4
4
  const DISCORD_ALLOW_LIST_PREFIXES = [
@@ -20,8 +20,7 @@ function normalizeDiscordIdEntry(entry) {
20
20
  function normalizeDiscordNameEntry(entry) {
21
21
  const text = entry.trim();
22
22
  if (!text || text === "*" || normalizeDiscordIdEntry(text) || /#\d{4}$/.test(text)) return null;
23
- const nameSlug = normalizeDiscordAllowList([text], DISCORD_ALLOW_LIST_PREFIXES)?.names.values().next().value;
24
- return typeof nameSlug === "string" && nameSlug ? nameSlug : null;
23
+ return normalizeDiscordNameSubject(text);
25
24
  }
26
25
  function normalizeDiscordTagEntry(entry) {
27
26
  const text = entry.trim();