@openclaw/discord 2026.9.3 → 2026.9.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (765) hide show
  1. package/assets/activity.svg +40 -0
  2. package/assets/icon.png +0 -0
  3. package/dist/{account-inspect-BY-ve3yH.js → .setup/account-inspect-BwQj24ht.mjs} +1 -1
  4. package/dist/{activities-api-D--xtQQu.js → .setup/activities-api-DBwRt5ES.mjs} +93 -31
  5. package/dist/{api-LIV--eMq.js → .setup/api-CBK9zcq5.mjs} +7 -4
  6. package/dist/{approval-handler.runtime-CUNkTLDO.js → .setup/approval-handler.runtime-Du3n5ypX.mjs} +8 -7
  7. package/dist/.setup/approval-message-updates-BN7JtScm.mjs +17 -0
  8. package/dist/{audit-DzHj2Z4w.js → .setup/audit-C8uaKoa9.mjs} +5 -5
  9. package/dist/{channel-aAywxCij.js → .setup/channel-ChKdlBgH.mjs} +28 -25
  10. package/dist/{channel-actions.runtime-rmse1yrM.js → .setup/channel-actions.runtime-CJmiFfps.mjs} +18 -11
  11. package/dist/{allow-list-DWEio925.js → .setup/channel-type-DKnjV1XW.mjs} +161 -1
  12. package/dist/{channel.setup-CpAwAiS0.js → .setup/channel.setup-BlC3-Kzz.mjs} +4 -4
  13. package/dist/{components-kvIwhN7i.js → .setup/components-MqMWUWnE.mjs} +4 -3
  14. package/dist/{config-schema-r38UkM_J.js → .setup/config-schema-CiZz-mtA.mjs} +1 -1
  15. package/dist/{conversation-binding-route-qfe7oPy5.js → .setup/conversation-binding-route-_rz33QHO.mjs} +1 -1
  16. package/dist/{directory-config-D1uDGbWh.js → .setup/directory-config-BytTftz-.mjs} +2 -2
  17. package/dist/{directory-live-C5o1uKlw.js → .setup/directory-live--EGTH0DC.mjs} +4 -4
  18. package/dist/{discord-CmL3ati-.js → .setup/discord-BXpHW-cu.mjs} +89 -39
  19. package/dist/{doctor-DgKMH6N7.js → .setup/doctor-DxcdkXzz.mjs} +6 -6
  20. package/dist/{handle-action.guild-admin-D4XdoA8-.js → .setup/handle-action.guild-admin-DAFyh_yV.mjs} +9 -4
  21. package/dist/{live-policy-config-BblutQAq.js → .setup/live-policy-config-eKQ-PLdy.mjs} +1 -1
  22. package/dist/{message-handler-B0DbuhWz.js → .setup/message-handler-DnUrDpaU.mjs} +25 -14
  23. package/dist/{message-handler.preflight-BkHVlYis.js → .setup/message-handler.preflight-CtqaF_fb.mjs} +34 -20
  24. package/dist/{message-handler.process-CWh432Ak.js → .setup/message-handler.process-Dz1xvuQU.mjs} +72 -82
  25. package/dist/{outbound-adapter-CO2BRlRl.js → .setup/outbound-adapter-C8v79z9Z.mjs} +13 -9
  26. package/dist/{outbound-session-route-DZBYPGTR.js → .setup/outbound-session-route-CqWbuMOm.mjs} +137 -11
  27. package/dist/{pluralkit-BiUW53Yn.js → .setup/pluralkit-CdAt1G0P.mjs} +2 -2
  28. package/dist/{presence-cache-z1N8MbJ3.js → .setup/presence-cache-dYSHPWMx.mjs} +1 -1
  29. package/dist/{probe-BcoN44eK.js → .setup/probe-CupW4we4.mjs} +14 -10
  30. package/dist/{probe.runtime-BnuED0fI.js → .setup/probe.runtime-DBQ_AGPe.mjs} +1 -1
  31. package/dist/{provider-PI8UiejY.js → .setup/provider-72zIvN-i.mjs} +484 -288
  32. package/dist/{provider-session.runtime-BejUb3gm.js → .setup/provider-session.runtime-BW7QrF5C.mjs} +4 -4
  33. package/dist/.setup/provider.runtime-DuhmKdDU.mjs +2 -0
  34. package/dist/{realtime-session.runtime-MqPrvmQ1.js → .setup/realtime-session.runtime-DTccTgTM.mjs} +758 -336
  35. package/dist/{resolve-allowlist-common-ChPf0Qy7.js → .setup/resolve-allowlist-common-CwMBzbx9.mjs} +3 -3
  36. package/dist/{resolve-channels-VbpLmUS8.js → .setup/resolve-channels-BbvsLQOZ.mjs} +4 -5
  37. package/dist/{resolve-users-D-wRFsd5.js → .setup/resolve-users-ByFlR7LQ.mjs} +3 -3
  38. package/dist/{retry-B0lQ1Ado.js → .setup/retry-DBfcEgmO.mjs} +37 -10
  39. package/dist/{runtime-D-ZFlMQ2.js → .setup/runtime-BVoa7hhx.mjs} +2 -2
  40. package/dist/{runtime-Cv8GdXSO.js → .setup/runtime-SchNfUsQ.mjs} +92 -139
  41. package/dist/{security-audit-DKfK-iPY.js → .setup/security-audit-s5w50-Ly.mjs} +1 -1
  42. package/dist/{security-audit.runtime-sKZyKgpx.js → .setup/security-audit.runtime-DHtYenx9.mjs} +1 -1
  43. package/dist/{send-Bdp3zZH5.js → .setup/send-CKDczUNL.mjs} +60 -31
  44. package/dist/{send.components-Bj22B3_O.js → .setup/send.components-DWQjXhPV.mjs} +103 -106
  45. package/dist/{send.outbound-DF0P3C9J.js → .setup/send.outbound-D0hQ7s50.mjs} +17 -7
  46. package/dist/{send.shared-D4BAjlRo.js → .setup/send.shared-Zwx6BxQ5.mjs} +15 -12
  47. package/dist/{sender-identity-f3l5OYgV.js → .setup/sender-identity-0Ymgvmaj.mjs} +1 -1
  48. package/dist/.setup/setup-plugin-api-CINIEBLa.mjs +3 -0
  49. package/dist/{shared-CPPR0Xo4.js → .setup/shared-CaA3Vv4n.mjs} +11 -11
  50. package/dist/{subagent-hooks-BAwybBDC.js → .setup/subagent-hooks-Bired9q6.mjs} +16 -4
  51. package/dist/{system-events-B6HkUhF_.js → .setup/system-events-B2YEEMbS.mjs} +2 -2
  52. package/dist/{target-resolver-BgKUUwLy.js → .setup/target-resolver-B6MrxbYv.mjs} +4 -4
  53. package/dist/.setup/targets-D1mAB5yO.mjs +3 -0
  54. package/dist/{thread-bindings-B0wnEg_y.js → .setup/thread-bindings-CK5272V3.mjs} +6 -6
  55. package/dist/{thread-bindings.manager-DM7M3vzn.js → .setup/thread-bindings.manager-eexkKyrG.mjs} +14 -9
  56. package/dist/{thread-bindings.session-updates-CSBmgCcx.js → .setup/thread-bindings.session-updates-DCQq1WZ5.mjs} +1 -1
  57. package/dist/{thread-bindings.state-jNRrsgzV.js → .setup/thread-bindings.state-BThFQEga.mjs} +48 -30
  58. package/dist/{transcripts-source-VkgenQv-.js → .setup/transcripts-source-CuWYgayu.mjs} +62 -25
  59. package/dist/{typing-DuBg1U8Q.js → .setup/typing-BKZL5fGj.mjs} +2 -2
  60. package/dist/{voice-runtime-BhRqlbEt.js → .setup/voice-runtime-DHVQ2mFz.mjs} +529 -181
  61. package/dist/account-inspect-api.js +1 -1
  62. package/dist/action-runtime-api.js +1 -1
  63. package/dist/activities-api.js +1 -1
  64. package/dist/api.js +19 -19
  65. package/dist/channel-config-api.js +1 -1
  66. package/dist/channel-plugin-api.js +1 -1
  67. package/dist/contract-api.js +1 -1
  68. package/dist/directory-contract-api.js +1 -1
  69. package/dist/doctor-contract-api.js +5 -4
  70. package/dist/index.js +1 -1
  71. package/dist/runtime-api.js +22 -22
  72. package/dist/runtime-setter-api.js +1 -1
  73. package/dist/secret-contract-api.js +1 -1
  74. package/dist/security-audit-contract-api.js +1 -1
  75. package/dist/security-contract-api.js +1 -1
  76. package/dist/session-key-api.js +1 -1
  77. package/dist/setup-entry.js +2 -1
  78. package/dist/setup-plugin-api.js +1 -1
  79. package/dist/subagent-hooks-api.js +5 -4
  80. package/dist/thread-binding-api.js +1 -1
  81. package/dist/transcripts-source-api.js +1 -1
  82. package/node_modules/@types/node/README.md +1 -1
  83. package/node_modules/@types/node/buffer.d.ts +1 -0
  84. package/node_modules/@types/node/diagnostics_channel.d.ts +4 -4
  85. package/node_modules/@types/node/ffi.d.ts +1 -1
  86. package/node_modules/@types/node/http.d.ts +1 -1
  87. package/node_modules/@types/node/package.json +3 -3
  88. package/node_modules/@types/node/perf_hooks.d.ts +31 -19
  89. package/node_modules/@types/node/quic.d.ts +6 -4
  90. package/node_modules/@types/node/stream/web.d.ts +20 -0
  91. package/node_modules/@types/node/tls.d.ts +26 -15
  92. package/node_modules/@types/node/vfs.d.ts +7 -6
  93. package/node_modules/@types/node/zlib.d.ts +17 -0
  94. package/node_modules/discord-api-types/README.md +3 -2
  95. package/node_modules/discord-api-types/package.json +46 -46
  96. package/node_modules/discord-api-types/rest/v10/interactions.d.ts +1 -0
  97. package/node_modules/discord-api-types/rest/v10/interactions.d.ts.map +1 -1
  98. package/node_modules/discord-api-types/rest/v9/interactions.d.ts +1 -0
  99. package/node_modules/discord-api-types/rest/v9/interactions.d.ts.map +1 -1
  100. package/node_modules/libopus-wasm/CHANGELOG.md +15 -0
  101. package/node_modules/libopus-wasm/README.md +1 -1
  102. package/node_modules/libopus-wasm/dist/discordjs.d.ts.map +1 -1
  103. package/node_modules/libopus-wasm/dist/generated/libopus.generated.mjs +0 -0
  104. package/node_modules/libopus-wasm/dist/index.d.ts.map +1 -1
  105. package/node_modules/libopus-wasm/dist/index.js +37 -18
  106. package/node_modules/libopus-wasm/package.json +13 -13
  107. package/node_modules/typebox/build/compile/validator.d.mts +1 -1
  108. package/node_modules/typebox/build/compile/validator.mjs +1 -1
  109. package/node_modules/typebox/build/format/idna/idn-hostname.mjs +7 -5
  110. package/node_modules/typebox/build/format/iri.mjs +5 -1
  111. package/node_modules/typebox/build/guard/emit.mjs +2 -4
  112. package/node_modules/typebox/build/guard/guard.mjs +6 -18
  113. package/node_modules/typebox/build/guard/string.mjs +16 -24
  114. package/node_modules/typebox/build/schema/build.mjs +2 -2
  115. package/node_modules/typebox/build/schema/check.mjs +1 -1
  116. package/node_modules/typebox/build/schema/compile.d.mts +3 -2
  117. package/node_modules/typebox/build/schema/compile.mjs +8 -8
  118. package/node_modules/typebox/build/schema/engine/_context.d.mts +6 -7
  119. package/node_modules/typebox/build/schema/engine/_context.mjs +23 -15
  120. package/node_modules/typebox/build/schema/engine/_functions.d.mts +2 -2
  121. package/node_modules/typebox/build/schema/engine/_functions.mjs +1 -1
  122. package/node_modules/typebox/build/schema/engine/_reducer.d.mts +3 -3
  123. package/node_modules/typebox/build/schema/engine/_refine.d.mts +5 -5
  124. package/node_modules/typebox/build/schema/engine/_refine.mjs +4 -7
  125. package/node_modules/typebox/build/schema/engine/_stack.d.mts +34 -16
  126. package/node_modules/typebox/build/schema/engine/_stack.mjs +148 -104
  127. package/node_modules/typebox/build/schema/engine/additionalItems.d.mts +4 -4
  128. package/node_modules/typebox/build/schema/engine/additionalProperties.d.mts +8 -8
  129. package/node_modules/typebox/build/schema/engine/additionalProperties.mjs +26 -18
  130. package/node_modules/typebox/build/schema/engine/allOf.d.mts +4 -4
  131. package/node_modules/typebox/build/schema/engine/allOf.mjs +3 -3
  132. package/node_modules/typebox/build/schema/engine/anyOf.d.mts +4 -4
  133. package/node_modules/typebox/build/schema/engine/anyOf.mjs +5 -10
  134. package/node_modules/typebox/build/schema/engine/boolean.d.mts +4 -4
  135. package/node_modules/typebox/build/schema/engine/boolean.mjs +2 -6
  136. package/node_modules/typebox/build/schema/engine/const.d.mts +4 -4
  137. package/node_modules/typebox/build/schema/engine/const.mjs +2 -6
  138. package/node_modules/typebox/build/schema/engine/contains.d.mts +4 -4
  139. package/node_modules/typebox/build/schema/engine/contains.mjs +2 -6
  140. package/node_modules/typebox/build/schema/engine/dependencies.d.mts +4 -4
  141. package/node_modules/typebox/build/schema/engine/dependencies.mjs +3 -6
  142. package/node_modules/typebox/build/schema/engine/dependentRequired.d.mts +4 -4
  143. package/node_modules/typebox/build/schema/engine/dependentRequired.mjs +2 -6
  144. package/node_modules/typebox/build/schema/engine/dependentSchemas.d.mts +4 -4
  145. package/node_modules/typebox/build/schema/engine/dynamicRef.d.mts +4 -4
  146. package/node_modules/typebox/build/schema/engine/dynamicRef.mjs +11 -7
  147. package/node_modules/typebox/build/schema/engine/enum.d.mts +4 -4
  148. package/node_modules/typebox/build/schema/engine/enum.mjs +2 -6
  149. package/node_modules/typebox/build/schema/engine/exclusiveMaximum.d.mts +4 -4
  150. package/node_modules/typebox/build/schema/engine/exclusiveMaximum.mjs +2 -6
  151. package/node_modules/typebox/build/schema/engine/exclusiveMinimum.d.mts +4 -4
  152. package/node_modules/typebox/build/schema/engine/exclusiveMinimum.mjs +2 -6
  153. package/node_modules/typebox/build/schema/engine/format.d.mts +4 -4
  154. package/node_modules/typebox/build/schema/engine/format.mjs +2 -6
  155. package/node_modules/typebox/build/schema/engine/if.d.mts +4 -4
  156. package/node_modules/typebox/build/schema/engine/if.mjs +7 -15
  157. package/node_modules/typebox/build/schema/engine/items.d.mts +4 -4
  158. package/node_modules/typebox/build/schema/engine/items.mjs +1 -1
  159. package/node_modules/typebox/build/schema/engine/maxContains.d.mts +4 -4
  160. package/node_modules/typebox/build/schema/engine/maxContains.mjs +2 -6
  161. package/node_modules/typebox/build/schema/engine/maxItems.d.mts +4 -4
  162. package/node_modules/typebox/build/schema/engine/maxItems.mjs +2 -6
  163. package/node_modules/typebox/build/schema/engine/maxLength.d.mts +4 -4
  164. package/node_modules/typebox/build/schema/engine/maxLength.mjs +2 -6
  165. package/node_modules/typebox/build/schema/engine/maxProperties.d.mts +4 -4
  166. package/node_modules/typebox/build/schema/engine/maxProperties.mjs +2 -6
  167. package/node_modules/typebox/build/schema/engine/maximum.d.mts +4 -4
  168. package/node_modules/typebox/build/schema/engine/maximum.mjs +2 -6
  169. package/node_modules/typebox/build/schema/engine/minContains.d.mts +4 -4
  170. package/node_modules/typebox/build/schema/engine/minContains.mjs +2 -6
  171. package/node_modules/typebox/build/schema/engine/minItems.d.mts +5 -5
  172. package/node_modules/typebox/build/schema/engine/minItems.mjs +2 -6
  173. package/node_modules/typebox/build/schema/engine/minLength.d.mts +4 -4
  174. package/node_modules/typebox/build/schema/engine/minLength.mjs +2 -6
  175. package/node_modules/typebox/build/schema/engine/minProperties.d.mts +4 -4
  176. package/node_modules/typebox/build/schema/engine/minProperties.mjs +2 -6
  177. package/node_modules/typebox/build/schema/engine/minimum.d.mts +4 -4
  178. package/node_modules/typebox/build/schema/engine/minimum.mjs +2 -6
  179. package/node_modules/typebox/build/schema/engine/multipleOf.d.mts +4 -4
  180. package/node_modules/typebox/build/schema/engine/multipleOf.mjs +2 -6
  181. package/node_modules/typebox/build/schema/engine/not.d.mts +4 -4
  182. package/node_modules/typebox/build/schema/engine/not.mjs +4 -8
  183. package/node_modules/typebox/build/schema/engine/oneOf.d.mts +4 -4
  184. package/node_modules/typebox/build/schema/engine/oneOf.mjs +6 -11
  185. package/node_modules/typebox/build/schema/engine/pattern.d.mts +4 -4
  186. package/node_modules/typebox/build/schema/engine/pattern.mjs +3 -7
  187. package/node_modules/typebox/build/schema/engine/patternProperties.d.mts +4 -4
  188. package/node_modules/typebox/build/schema/engine/patternProperties.mjs +1 -1
  189. package/node_modules/typebox/build/schema/engine/prefixItems.d.mts +4 -4
  190. package/node_modules/typebox/build/schema/engine/prefixItems.mjs +1 -1
  191. package/node_modules/typebox/build/schema/engine/properties.d.mts +4 -4
  192. package/node_modules/typebox/build/schema/engine/properties.mjs +1 -1
  193. package/node_modules/typebox/build/schema/engine/propertyNames.d.mts +4 -4
  194. package/node_modules/typebox/build/schema/engine/propertyNames.mjs +4 -10
  195. package/node_modules/typebox/build/schema/engine/recursiveRef.d.mts +4 -4
  196. package/node_modules/typebox/build/schema/engine/recursiveRef.mjs +11 -7
  197. package/node_modules/typebox/build/schema/engine/ref.d.mts +4 -4
  198. package/node_modules/typebox/build/schema/engine/ref.mjs +19 -15
  199. package/node_modules/typebox/build/schema/engine/required.d.mts +4 -4
  200. package/node_modules/typebox/build/schema/engine/required.mjs +2 -6
  201. package/node_modules/typebox/build/schema/engine/schema.d.mts +7 -7
  202. package/node_modules/typebox/build/schema/engine/schema.mjs +137 -133
  203. package/node_modules/typebox/build/schema/engine/type.d.mts +4 -4
  204. package/node_modules/typebox/build/schema/engine/type.mjs +2 -6
  205. package/node_modules/typebox/build/schema/engine/unevaluatedItems.d.mts +4 -4
  206. package/node_modules/typebox/build/schema/engine/unevaluatedItems.mjs +5 -9
  207. package/node_modules/typebox/build/schema/engine/unevaluatedProperties.d.mts +4 -4
  208. package/node_modules/typebox/build/schema/engine/unevaluatedProperties.mjs +5 -9
  209. package/node_modules/typebox/build/schema/engine/uniqueItems.d.mts +4 -4
  210. package/node_modules/typebox/build/schema/engine/uniqueItems.mjs +2 -6
  211. package/node_modules/typebox/build/schema/errors.d.mts +2 -2
  212. package/node_modules/typebox/build/schema/errors.mjs +8 -14
  213. package/node_modules/typebox/build/schema/intern/index.d.mts +1 -0
  214. package/node_modules/typebox/build/schema/intern/index.mjs +1 -0
  215. package/node_modules/typebox/build/schema/intern/intern.d.mts +11 -0
  216. package/node_modules/typebox/build/schema/intern/intern.mjs +293 -0
  217. package/node_modules/typebox/build/schema/meta/draft_2019_09.d.mts +2 -0
  218. package/node_modules/typebox/build/schema/meta/draft_2019_09.mjs +288 -0
  219. package/node_modules/typebox/build/schema/meta/draft_2020_12.d.mts +2 -0
  220. package/node_modules/typebox/build/schema/meta/draft_2020_12.mjs +300 -0
  221. package/node_modules/typebox/build/schema/meta/draft_3.d.mts +2 -0
  222. package/node_modules/typebox/build/schema/meta/draft_3.mjs +143 -0
  223. package/node_modules/typebox/build/schema/meta/draft_4.d.mts +2 -0
  224. package/node_modules/typebox/build/schema/meta/draft_4.mjs +149 -0
  225. package/node_modules/typebox/build/schema/meta/draft_6.d.mts +2 -0
  226. package/node_modules/typebox/build/schema/meta/draft_6.mjs +155 -0
  227. package/node_modules/typebox/build/schema/meta/draft_7.d.mts +2 -0
  228. package/node_modules/typebox/build/schema/meta/draft_7.mjs +172 -0
  229. package/node_modules/typebox/build/schema/meta/index.d.mts +2 -0
  230. package/node_modules/typebox/build/schema/meta/index.mjs +2 -0
  231. package/node_modules/typebox/build/schema/meta/meta.d.mts +9 -0
  232. package/node_modules/typebox/build/schema/meta/meta.mjs +15 -0
  233. package/node_modules/typebox/build/schema/meta/schema.d.mts +6 -0
  234. package/node_modules/typebox/build/schema/meta/schema.mjs +1 -0
  235. package/node_modules/typebox/build/schema/parse.d.mts +1 -0
  236. package/node_modules/typebox/build/schema/parse.mjs +10 -5
  237. package/node_modules/typebox/build/schema/resolve/resolve.d.mts +8 -3
  238. package/node_modules/typebox/build/schema/resolve/resolve.mjs +268 -139
  239. package/node_modules/typebox/build/schema/schema.d.mts +2 -0
  240. package/node_modules/typebox/build/schema/schema.mjs +2 -0
  241. package/node_modules/typebox/build/value/errors/errors.d.mts +2 -12
  242. package/node_modules/typebox/build/value/errors/errors.mjs +2 -7
  243. package/node_modules/typebox/package.json +1 -1
  244. package/node_modules/typebox/readme.md +59 -89
  245. package/node_modules/undici-types/client.d.ts +8 -3
  246. package/node_modules/undici-types/connector.d.ts +1 -0
  247. package/node_modules/undici-types/cookies.d.ts +1 -1
  248. package/node_modules/undici-types/dispatcher.d.ts +3 -3
  249. package/node_modules/undici-types/errors.d.ts +10 -0
  250. package/node_modules/undici-types/fetch.d.ts +5 -1
  251. package/node_modules/undici-types/handlers.d.ts +2 -0
  252. package/node_modules/undici-types/interceptors.d.ts +1 -1
  253. package/node_modules/undici-types/mock-interceptor.d.ts +5 -1
  254. package/node_modules/undici-types/package.json +1 -1
  255. package/node_modules/undici-types/proxy-agent.d.ts +7 -0
  256. package/node_modules/zod/README.md +27 -0
  257. package/node_modules/zod/compile.cjs +77 -0
  258. package/node_modules/zod/compile.d.cts +1 -0
  259. package/node_modules/zod/compile.d.ts +1 -0
  260. package/node_modules/zod/compile.js +52 -0
  261. package/node_modules/zod/index.cjs +2 -2
  262. package/node_modules/zod/index.d.cts +1 -2
  263. package/node_modules/zod/index.d.ts +1 -2
  264. package/node_modules/zod/index.js +5 -2
  265. package/node_modules/zod/package.json +13 -2
  266. package/node_modules/zod/src/compile.ts +56 -0
  267. package/node_modules/zod/src/index.ts +5 -2
  268. package/node_modules/zod/src/v3/ZodError.ts +22 -12
  269. package/node_modules/zod/src/v3/tests/error.test.ts +35 -0
  270. package/node_modules/zod/src/v3/tests/intersection.test.ts +18 -0
  271. package/node_modules/zod/src/v3/tests/language-server.test.ts +1 -2
  272. package/node_modules/zod/src/v3/tests/object.test.ts +3 -6
  273. package/node_modules/zod/src/v3/tests/readonly.test.ts +0 -80
  274. package/node_modules/zod/src/v3/tests/string.test.ts +6 -0
  275. package/node_modules/zod/src/v3/types.ts +5 -5
  276. package/node_modules/zod/src/v4/classic/checks.ts +1 -0
  277. package/node_modules/zod/src/v4/classic/compat.ts +26 -18
  278. package/node_modules/zod/src/v4/classic/deep-partial.ts +76 -0
  279. package/node_modules/zod/src/v4/classic/errors.ts +59 -44
  280. package/node_modules/zod/src/v4/classic/external.ts +12 -9
  281. package/node_modules/zod/src/v4/classic/from-json-schema.ts +140 -78
  282. package/node_modules/zod/src/v4/classic/in-out.ts +45 -0
  283. package/node_modules/zod/src/v4/classic/index.ts +2 -2
  284. package/node_modules/zod/src/v4/classic/iso.ts +2 -72
  285. package/node_modules/zod/src/v4/classic/parse.ts +10 -4
  286. package/node_modules/zod/src/v4/classic/schemas.ts +452 -262
  287. package/node_modules/zod/src/v4/classic/tests/apply.test.ts +27 -0
  288. package/node_modules/zod/src/v4/classic/tests/array.test.ts +2 -2
  289. package/node_modules/zod/src/v4/classic/tests/assignability.test.ts +135 -0
  290. package/node_modules/zod/src/v4/classic/tests/bigint.test.ts +30 -1
  291. package/node_modules/zod/src/v4/classic/tests/catch.test.ts +278 -0
  292. package/node_modules/zod/src/v4/classic/tests/codec-examples.test.ts +1 -2
  293. package/node_modules/zod/src/v4/classic/tests/codec.test.ts +2 -1
  294. package/node_modules/zod/src/v4/classic/tests/continuability.test.ts +2 -2
  295. package/node_modules/zod/src/v4/classic/tests/credit-card.test.ts +76 -0
  296. package/node_modules/zod/src/v4/classic/tests/cyclic-data.test.ts +720 -0
  297. package/node_modules/zod/src/v4/classic/tests/date.test.ts +30 -0
  298. package/node_modules/zod/src/v4/classic/tests/datetime.test.ts +32 -18
  299. package/node_modules/zod/src/v4/classic/tests/deep-partial.test.ts +380 -0
  300. package/node_modules/zod/src/v4/classic/tests/default-locale.test.ts +32 -0
  301. package/node_modules/zod/src/v4/classic/tests/default.test.ts +46 -0
  302. package/node_modules/zod/src/v4/classic/tests/detached-methods.test.ts +31 -7
  303. package/node_modules/zod/src/v4/classic/tests/discriminated-unions.test.ts +155 -13
  304. package/node_modules/zod/src/v4/classic/tests/enum.test.ts +11 -0
  305. package/node_modules/zod/src/v4/classic/tests/error-utils.test.ts +112 -2
  306. package/node_modules/zod/src/v4/classic/tests/error.test.ts +274 -6
  307. package/node_modules/zod/src/v4/classic/tests/from-json-schema.test.ts +425 -10
  308. package/node_modules/zod/src/v4/classic/tests/function.test.ts +31 -0
  309. package/node_modules/zod/src/v4/classic/tests/global-config.test.ts +2 -9
  310. package/node_modules/zod/src/v4/classic/tests/hash.test.ts +1 -2
  311. package/node_modules/zod/src/v4/classic/tests/in-out.test.ts +159 -0
  312. package/node_modules/zod/src/v4/classic/tests/index.test.ts +21 -2
  313. package/node_modules/zod/src/v4/classic/tests/instance-footprint.test.ts +281 -0
  314. package/node_modules/zod/src/v4/classic/tests/instanceof.test.ts +47 -0
  315. package/node_modules/zod/src/v4/classic/tests/intersection.test.ts +136 -0
  316. package/node_modules/zod/src/v4/classic/tests/issue-schema.test.ts +183 -0
  317. package/node_modules/zod/src/v4/classic/tests/jitless-allows-eval.test.ts +3 -10
  318. package/node_modules/zod/src/v4/classic/tests/lazy.test.ts +36 -1
  319. package/node_modules/zod/src/v4/classic/tests/literal.test.ts +12 -1
  320. package/node_modules/zod/src/v4/classic/tests/map.test.ts +12 -0
  321. package/node_modules/zod/src/v4/classic/tests/number.test.ts +46 -9
  322. package/node_modules/zod/src/v4/classic/tests/object.test.ts +245 -12
  323. package/node_modules/zod/src/v4/classic/tests/optin-ladder.test.ts +234 -0
  324. package/node_modules/zod/src/v4/classic/tests/optional.test.ts +49 -16
  325. package/node_modules/zod/src/v4/classic/tests/partial.test.ts +51 -4
  326. package/node_modules/zod/src/v4/classic/tests/preprocess-types.test.ts +20 -2
  327. package/node_modules/zod/src/v4/classic/tests/readonly.test.ts +0 -68
  328. package/node_modules/zod/src/v4/classic/tests/record.test.ts +186 -18
  329. package/node_modules/zod/src/v4/classic/tests/recursive-types.test.ts +33 -2
  330. package/node_modules/zod/src/v4/classic/tests/redos.test.ts +68 -0
  331. package/node_modules/zod/src/v4/classic/tests/refine.test.ts +60 -0
  332. package/node_modules/zod/src/v4/classic/tests/set.test.ts +9 -0
  333. package/node_modules/zod/src/v4/classic/tests/string.test.ts +127 -5
  334. package/node_modules/zod/src/v4/classic/tests/stringbool.test.ts +18 -0
  335. package/node_modules/zod/src/v4/classic/tests/template-literal.test.ts +11 -2
  336. package/node_modules/zod/src/v4/classic/tests/to-json-schema.test.ts +1585 -173
  337. package/node_modules/zod/src/v4/classic/tests/tuple.test.ts +45 -30
  338. package/node_modules/zod/src/v4/classic/tests/union.test.ts +39 -2
  339. package/node_modules/zod/src/v4/classic/tests/validate.test.ts +76 -0
  340. package/node_modules/zod/src/v4/classic/tests/validations.test.ts +2 -2
  341. package/node_modules/zod/src/v4/core/api.ts +48 -12
  342. package/node_modules/zod/src/v4/core/checks.ts +57 -44
  343. package/node_modules/zod/src/v4/core/compile.ts +2188 -0
  344. package/node_modules/zod/src/v4/core/core.ts +98 -19
  345. package/node_modules/zod/src/v4/core/doc.ts +11 -7
  346. package/node_modules/zod/src/v4/core/errors.ts +115 -24
  347. package/node_modules/zod/src/v4/core/index.ts +3 -0
  348. package/node_modules/zod/src/v4/core/json-schema-generator.ts +6 -1
  349. package/node_modules/zod/src/v4/core/json-schema-processors.ts +257 -93
  350. package/node_modules/zod/src/v4/core/json-schema.ts +2 -1
  351. package/node_modules/zod/src/v4/core/memoizer.ts +284 -0
  352. package/node_modules/zod/src/v4/core/parse.ts +131 -38
  353. package/node_modules/zod/src/v4/core/regexes.ts +30 -13
  354. package/node_modules/zod/src/v4/core/registries.ts +2 -2
  355. package/node_modules/zod/src/v4/core/schemas.ts +759 -461
  356. package/node_modules/zod/src/v4/core/tests/compile-differential.test.ts +969 -0
  357. package/node_modules/zod/src/v4/core/tests/compile-global.test.ts +89 -0
  358. package/node_modules/zod/src/v4/core/tests/compile-off-by-default.test.ts +26 -0
  359. package/node_modules/zod/src/v4/core/tests/compile-stats.test.ts +34 -0
  360. package/node_modules/zod/src/v4/core/tests/compile.test.ts +1639 -0
  361. package/node_modules/zod/src/v4/core/tests/locales/el.test.ts +1 -2
  362. package/node_modules/zod/src/v4/core/tests/locales/es.test.ts +1 -2
  363. package/node_modules/zod/src/v4/core/tests/locales/fr.test.ts +3 -3
  364. package/node_modules/zod/src/v4/core/tests/locales/parity.test.ts +42 -0
  365. package/node_modules/zod/src/v4/core/tests/locales/tk.test.ts +69 -0
  366. package/node_modules/zod/src/v4/core/tests/treeshake.test.ts +51 -0
  367. package/node_modules/zod/src/v4/core/tests/url-no-canparse.test.ts +31 -0
  368. package/node_modules/zod/src/v4/core/to-json-schema.ts +275 -42
  369. package/node_modules/zod/src/v4/core/util.ts +268 -42
  370. package/node_modules/zod/src/v4/core/versions.ts +2 -2
  371. package/node_modules/zod/src/v4/core/visit.ts +193 -0
  372. package/node_modules/zod/src/v4/index.ts +3 -3
  373. package/node_modules/zod/src/v4/locales/ar.ts +3 -0
  374. package/node_modules/zod/src/v4/locales/az.ts +3 -0
  375. package/node_modules/zod/src/v4/locales/be.ts +10 -0
  376. package/node_modules/zod/src/v4/locales/bg.ts +3 -0
  377. package/node_modules/zod/src/v4/locales/bn.ts +121 -0
  378. package/node_modules/zod/src/v4/locales/ca.ts +3 -0
  379. package/node_modules/zod/src/v4/locales/ckb.ts +138 -0
  380. package/node_modules/zod/src/v4/locales/cs.ts +3 -0
  381. package/node_modules/zod/src/v4/locales/da.ts +5 -2
  382. package/node_modules/zod/src/v4/locales/de.ts +3 -0
  383. package/node_modules/zod/src/v4/locales/el.ts +1 -0
  384. package/node_modules/zod/src/v4/locales/en.ts +15 -4
  385. package/node_modules/zod/src/v4/locales/eo.ts +3 -0
  386. package/node_modules/zod/src/v4/locales/es.ts +2 -0
  387. package/node_modules/zod/src/v4/locales/fa.ts +3 -0
  388. package/node_modules/zod/src/v4/locales/fi.ts +3 -0
  389. package/node_modules/zod/src/v4/locales/fr-CA.ts +3 -0
  390. package/node_modules/zod/src/v4/locales/fr.ts +19 -14
  391. package/node_modules/zod/src/v4/locales/gu.ts +121 -0
  392. package/node_modules/zod/src/v4/locales/he.ts +6 -1
  393. package/node_modules/zod/src/v4/locales/hi.ts +124 -0
  394. package/node_modules/zod/src/v4/locales/hr.ts +2 -0
  395. package/node_modules/zod/src/v4/locales/hu.ts +3 -0
  396. package/node_modules/zod/src/v4/locales/hy.ts +9 -0
  397. package/node_modules/zod/src/v4/locales/id.ts +3 -0
  398. package/node_modules/zod/src/v4/locales/index.ts +10 -0
  399. package/node_modules/zod/src/v4/locales/is.ts +3 -0
  400. package/node_modules/zod/src/v4/locales/it.ts +3 -0
  401. package/node_modules/zod/src/v4/locales/ja.ts +3 -0
  402. package/node_modules/zod/src/v4/locales/ka.ts +3 -0
  403. package/node_modules/zod/src/v4/locales/km.ts +3 -0
  404. package/node_modules/zod/src/v4/locales/kn.ts +124 -0
  405. package/node_modules/zod/src/v4/locales/ko.ts +3 -0
  406. package/node_modules/zod/src/v4/locales/lt.ts +2 -0
  407. package/node_modules/zod/src/v4/locales/mk.ts +3 -0
  408. package/node_modules/zod/src/v4/locales/ms.ts +3 -0
  409. package/node_modules/zod/src/v4/locales/ne.ts +126 -0
  410. package/node_modules/zod/src/v4/locales/nl.ts +3 -0
  411. package/node_modules/zod/src/v4/locales/nn.ts +119 -0
  412. package/node_modules/zod/src/v4/locales/no.ts +5 -2
  413. package/node_modules/zod/src/v4/locales/ota.ts +3 -0
  414. package/node_modules/zod/src/v4/locales/pl.ts +3 -0
  415. package/node_modules/zod/src/v4/locales/ps.ts +3 -0
  416. package/node_modules/zod/src/v4/locales/pt-BR.ts +159 -0
  417. package/node_modules/zod/src/v4/locales/pt.ts +99 -58
  418. package/node_modules/zod/src/v4/locales/ro.ts +1 -0
  419. package/node_modules/zod/src/v4/locales/ru.ts +10 -0
  420. package/node_modules/zod/src/v4/locales/sk.ts +121 -0
  421. package/node_modules/zod/src/v4/locales/sl.ts +3 -0
  422. package/node_modules/zod/src/v4/locales/sv.ts +5 -2
  423. package/node_modules/zod/src/v4/locales/ta.ts +3 -0
  424. package/node_modules/zod/src/v4/locales/th.ts +3 -0
  425. package/node_modules/zod/src/v4/locales/tk.ts +111 -0
  426. package/node_modules/zod/src/v4/locales/tr.ts +3 -0
  427. package/node_modules/zod/src/v4/locales/uk.ts +3 -0
  428. package/node_modules/zod/src/v4/locales/ur.ts +3 -0
  429. package/node_modules/zod/src/v4/locales/uz.ts +1 -0
  430. package/node_modules/zod/src/v4/locales/vi.ts +3 -0
  431. package/node_modules/zod/src/v4/locales/yo.ts +3 -0
  432. package/node_modules/zod/src/v4/locales/zh-CN.ts +3 -0
  433. package/node_modules/zod/src/v4/locales/zh-TW.ts +3 -0
  434. package/node_modules/zod/src/v4/mini/checks.ts +1 -0
  435. package/node_modules/zod/src/v4/mini/deep-partial.ts +73 -0
  436. package/node_modules/zod/src/v4/mini/external.ts +10 -1
  437. package/node_modules/zod/src/v4/mini/in-out.ts +45 -0
  438. package/node_modules/zod/src/v4/mini/parse.ts +2 -0
  439. package/node_modules/zod/src/v4/mini/schemas.ts +135 -56
  440. package/node_modules/zod/src/v4/mini/tests/apply.test.ts +33 -0
  441. package/node_modules/zod/src/v4/mini/tests/assignability.test.ts +62 -1
  442. package/node_modules/zod/src/v4/mini/tests/checks.test.ts +14 -0
  443. package/node_modules/zod/src/v4/mini/tests/codec.test.ts +35 -1
  444. package/node_modules/zod/src/v4/mini/tests/cyclic-data.test.ts +84 -0
  445. package/node_modules/zod/src/v4/mini/tests/deep-partial.test.ts +54 -0
  446. package/node_modules/zod/src/v4/mini/tests/error.test.ts +23 -4
  447. package/node_modules/zod/src/v4/mini/tests/functions.test.ts +9 -0
  448. package/node_modules/zod/src/v4/mini/tests/index.test.ts +72 -5
  449. package/node_modules/zod/src/v4/mini/tests/number.test.ts +14 -0
  450. package/node_modules/zod/src/v4/mini/tests/object.test.ts +65 -0
  451. package/node_modules/zod/src/v4/mini/tests/string.test.ts +21 -0
  452. package/node_modules/zod/v3/ZodError.cjs +22 -12
  453. package/node_modules/zod/v3/ZodError.d.cts +1 -1
  454. package/node_modules/zod/v3/ZodError.d.ts +1 -1
  455. package/node_modules/zod/v3/ZodError.js +22 -12
  456. package/node_modules/zod/v3/types.cjs +7 -5
  457. package/node_modules/zod/v3/types.js +7 -5
  458. package/node_modules/zod/v4/classic/checks.cjs +2 -1
  459. package/node_modules/zod/v4/classic/checks.d.cts +1 -1
  460. package/node_modules/zod/v4/classic/checks.d.ts +1 -1
  461. package/node_modules/zod/v4/classic/checks.js +1 -1
  462. package/node_modules/zod/v4/classic/compat.d.cts +9 -11
  463. package/node_modules/zod/v4/classic/compat.d.ts +9 -11
  464. package/node_modules/zod/v4/classic/deep-partial.cjs +39 -0
  465. package/node_modules/zod/v4/classic/deep-partial.d.cts +14 -0
  466. package/node_modules/zod/v4/classic/deep-partial.d.ts +14 -0
  467. package/node_modules/zod/v4/classic/deep-partial.js +13 -0
  468. package/node_modules/zod/v4/classic/errors.cjs +43 -34
  469. package/node_modules/zod/v4/classic/errors.d.cts +3 -4
  470. package/node_modules/zod/v4/classic/errors.d.ts +3 -4
  471. package/node_modules/zod/v4/classic/errors.js +43 -34
  472. package/node_modules/zod/v4/classic/external.cjs +30 -27
  473. package/node_modules/zod/v4/classic/external.d.cts +5 -2
  474. package/node_modules/zod/v4/classic/external.d.ts +5 -2
  475. package/node_modules/zod/v4/classic/external.js +5 -8
  476. package/node_modules/zod/v4/classic/from-json-schema.cjs +136 -75
  477. package/node_modules/zod/v4/classic/from-json-schema.js +136 -75
  478. package/node_modules/zod/v4/classic/in-out.cjs +63 -0
  479. package/node_modules/zod/v4/classic/in-out.d.cts +8 -0
  480. package/node_modules/zod/v4/classic/in-out.d.ts +8 -0
  481. package/node_modules/zod/v4/classic/in-out.js +36 -0
  482. package/node_modules/zod/v4/classic/index.cjs +2 -2
  483. package/node_modules/zod/v4/classic/index.d.cts +1 -2
  484. package/node_modules/zod/v4/classic/index.d.ts +1 -2
  485. package/node_modules/zod/v4/classic/index.js +2 -2
  486. package/node_modules/zod/v4/classic/iso.cjs +11 -22
  487. package/node_modules/zod/v4/classic/iso.d.cts +2 -17
  488. package/node_modules/zod/v4/classic/iso.d.ts +2 -17
  489. package/node_modules/zod/v4/classic/iso.js +2 -17
  490. package/node_modules/zod/v4/classic/parse.cjs +4 -1
  491. package/node_modules/zod/v4/classic/parse.d.cts +17 -4
  492. package/node_modules/zod/v4/classic/parse.d.ts +17 -4
  493. package/node_modules/zod/v4/classic/parse.js +1 -0
  494. package/node_modules/zod/v4/classic/schemas.cjs +498 -398
  495. package/node_modules/zod/v4/classic/schemas.d.cts +53 -18
  496. package/node_modules/zod/v4/classic/schemas.d.ts +53 -18
  497. package/node_modules/zod/v4/classic/schemas.js +492 -396
  498. package/node_modules/zod/v4/core/api.cjs +23 -4
  499. package/node_modules/zod/v4/core/api.d.cts +13 -9
  500. package/node_modules/zod/v4/core/api.d.ts +13 -9
  501. package/node_modules/zod/v4/core/api.js +21 -4
  502. package/node_modules/zod/v4/core/checks.cjs +37 -31
  503. package/node_modules/zod/v4/core/checks.d.cts +13 -13
  504. package/node_modules/zod/v4/core/checks.d.ts +13 -13
  505. package/node_modules/zod/v4/core/checks.js +37 -31
  506. package/node_modules/zod/v4/core/compile.cjs +1813 -0
  507. package/node_modules/zod/v4/core/compile.d.cts +51 -0
  508. package/node_modules/zod/v4/core/compile.d.ts +51 -0
  509. package/node_modules/zod/v4/core/compile.js +1783 -0
  510. package/node_modules/zod/v4/core/core.cjs +81 -18
  511. package/node_modules/zod/v4/core/core.d.cts +16 -4
  512. package/node_modules/zod/v4/core/core.d.ts +16 -4
  513. package/node_modules/zod/v4/core/core.js +82 -19
  514. package/node_modules/zod/v4/core/doc.cjs +5 -7
  515. package/node_modules/zod/v4/core/doc.d.cts +3 -1
  516. package/node_modules/zod/v4/core/doc.d.ts +3 -1
  517. package/node_modules/zod/v4/core/doc.js +5 -7
  518. package/node_modules/zod/v4/core/errors.cjs +110 -25
  519. package/node_modules/zod/v4/core/errors.d.cts +4 -0
  520. package/node_modules/zod/v4/core/errors.d.ts +4 -0
  521. package/node_modules/zod/v4/core/errors.js +110 -25
  522. package/node_modules/zod/v4/core/index.cjs +5 -1
  523. package/node_modules/zod/v4/core/index.d.cts +3 -0
  524. package/node_modules/zod/v4/core/index.d.ts +3 -0
  525. package/node_modules/zod/v4/core/index.js +3 -0
  526. package/node_modules/zod/v4/core/json-schema-generator.cjs +4 -0
  527. package/node_modules/zod/v4/core/json-schema-generator.d.cts +2 -2
  528. package/node_modules/zod/v4/core/json-schema-generator.d.ts +2 -2
  529. package/node_modules/zod/v4/core/json-schema-generator.js +4 -0
  530. package/node_modules/zod/v4/core/json-schema-processors.cjs +264 -95
  531. package/node_modules/zod/v4/core/json-schema-processors.js +243 -97
  532. package/node_modules/zod/v4/core/json-schema.d.cts +2 -1
  533. package/node_modules/zod/v4/core/json-schema.d.ts +2 -1
  534. package/node_modules/zod/v4/core/memoizer.cjs +272 -0
  535. package/node_modules/zod/v4/core/memoizer.d.cts +15 -0
  536. package/node_modules/zod/v4/core/memoizer.d.ts +15 -0
  537. package/node_modules/zod/v4/core/memoizer.js +265 -0
  538. package/node_modules/zod/v4/core/parse.cjs +96 -34
  539. package/node_modules/zod/v4/core/parse.d.cts +14 -11
  540. package/node_modules/zod/v4/core/parse.d.ts +14 -11
  541. package/node_modules/zod/v4/core/parse.js +94 -33
  542. package/node_modules/zod/v4/core/regexes.cjs +27 -15
  543. package/node_modules/zod/v4/core/regexes.d.cts +2 -0
  544. package/node_modules/zod/v4/core/regexes.d.ts +2 -0
  545. package/node_modules/zod/v4/core/regexes.js +24 -13
  546. package/node_modules/zod/v4/core/registries.js +2 -2
  547. package/node_modules/zod/v4/core/schemas.cjs +537 -326
  548. package/node_modules/zod/v4/core/schemas.d.cts +100 -31
  549. package/node_modules/zod/v4/core/schemas.d.ts +100 -31
  550. package/node_modules/zod/v4/core/schemas.js +526 -325
  551. package/node_modules/zod/v4/core/to-json-schema.cjs +242 -39
  552. package/node_modules/zod/v4/core/to-json-schema.d.cts +42 -3
  553. package/node_modules/zod/v4/core/to-json-schema.d.ts +42 -3
  554. package/node_modules/zod/v4/core/to-json-schema.js +241 -39
  555. package/node_modules/zod/v4/core/util.cjs +212 -31
  556. package/node_modules/zod/v4/core/util.d.cts +58 -1
  557. package/node_modules/zod/v4/core/util.d.ts +58 -1
  558. package/node_modules/zod/v4/core/util.js +202 -30
  559. package/node_modules/zod/v4/core/versions.cjs +2 -2
  560. package/node_modules/zod/v4/core/versions.d.cts +1 -1
  561. package/node_modules/zod/v4/core/versions.d.ts +1 -1
  562. package/node_modules/zod/v4/core/versions.js +2 -2
  563. package/node_modules/zod/v4/core/visit.cjs +195 -0
  564. package/node_modules/zod/v4/core/visit.d.cts +30 -0
  565. package/node_modules/zod/v4/core/visit.d.ts +30 -0
  566. package/node_modules/zod/v4/core/visit.js +169 -0
  567. package/node_modules/zod/v4/index.cjs +15 -5
  568. package/node_modules/zod/v4/index.d.cts +2 -2
  569. package/node_modules/zod/v4/index.d.ts +2 -2
  570. package/node_modules/zod/v4/index.js +3 -2
  571. package/node_modules/zod/v4/locales/ar.cjs +3 -0
  572. package/node_modules/zod/v4/locales/ar.js +3 -0
  573. package/node_modules/zod/v4/locales/az.cjs +3 -0
  574. package/node_modules/zod/v4/locales/az.js +3 -0
  575. package/node_modules/zod/v4/locales/be.cjs +10 -0
  576. package/node_modules/zod/v4/locales/be.js +10 -0
  577. package/node_modules/zod/v4/locales/bg.cjs +3 -0
  578. package/node_modules/zod/v4/locales/bg.js +3 -0
  579. package/node_modules/zod/v4/locales/bn.cjs +138 -0
  580. package/node_modules/zod/v4/locales/bn.d.cts +5 -0
  581. package/node_modules/zod/v4/locales/bn.d.ts +4 -0
  582. package/node_modules/zod/v4/locales/bn.js +111 -0
  583. package/node_modules/zod/v4/locales/ca.cjs +3 -0
  584. package/node_modules/zod/v4/locales/ca.js +3 -0
  585. package/node_modules/zod/v4/locales/ckb.cjs +158 -0
  586. package/node_modules/zod/v4/locales/ckb.d.cts +5 -0
  587. package/node_modules/zod/v4/locales/ckb.d.ts +4 -0
  588. package/node_modules/zod/v4/locales/ckb.js +131 -0
  589. package/node_modules/zod/v4/locales/cs.cjs +3 -0
  590. package/node_modules/zod/v4/locales/cs.js +3 -0
  591. package/node_modules/zod/v4/locales/da.cjs +5 -2
  592. package/node_modules/zod/v4/locales/da.js +5 -2
  593. package/node_modules/zod/v4/locales/de.cjs +3 -0
  594. package/node_modules/zod/v4/locales/de.js +3 -0
  595. package/node_modules/zod/v4/locales/el.cjs +1 -0
  596. package/node_modules/zod/v4/locales/el.js +1 -0
  597. package/node_modules/zod/v4/locales/en.cjs +14 -4
  598. package/node_modules/zod/v4/locales/en.js +14 -4
  599. package/node_modules/zod/v4/locales/eo.cjs +3 -0
  600. package/node_modules/zod/v4/locales/eo.js +3 -0
  601. package/node_modules/zod/v4/locales/es.cjs +2 -0
  602. package/node_modules/zod/v4/locales/es.js +2 -0
  603. package/node_modules/zod/v4/locales/fa.cjs +3 -0
  604. package/node_modules/zod/v4/locales/fa.js +3 -0
  605. package/node_modules/zod/v4/locales/fi.cjs +3 -0
  606. package/node_modules/zod/v4/locales/fi.js +3 -0
  607. package/node_modules/zod/v4/locales/fr-CA.cjs +3 -0
  608. package/node_modules/zod/v4/locales/fr-CA.js +3 -0
  609. package/node_modules/zod/v4/locales/fr.cjs +16 -14
  610. package/node_modules/zod/v4/locales/fr.js +16 -14
  611. package/node_modules/zod/v4/locales/gu.cjs +138 -0
  612. package/node_modules/zod/v4/locales/gu.d.cts +5 -0
  613. package/node_modules/zod/v4/locales/gu.d.ts +4 -0
  614. package/node_modules/zod/v4/locales/gu.js +111 -0
  615. package/node_modules/zod/v4/locales/he.cjs +5 -0
  616. package/node_modules/zod/v4/locales/he.js +5 -0
  617. package/node_modules/zod/v4/locales/hi.cjs +136 -0
  618. package/node_modules/zod/v4/locales/hi.d.cts +5 -0
  619. package/node_modules/zod/v4/locales/hi.d.ts +4 -0
  620. package/node_modules/zod/v4/locales/hi.js +109 -0
  621. package/node_modules/zod/v4/locales/hr.cjs +2 -0
  622. package/node_modules/zod/v4/locales/hr.js +2 -0
  623. package/node_modules/zod/v4/locales/hu.cjs +3 -0
  624. package/node_modules/zod/v4/locales/hu.js +3 -0
  625. package/node_modules/zod/v4/locales/hy.cjs +9 -0
  626. package/node_modules/zod/v4/locales/hy.js +9 -0
  627. package/node_modules/zod/v4/locales/id.cjs +3 -0
  628. package/node_modules/zod/v4/locales/id.js +3 -0
  629. package/node_modules/zod/v4/locales/index.cjs +22 -2
  630. package/node_modules/zod/v4/locales/index.d.cts +10 -0
  631. package/node_modules/zod/v4/locales/index.d.ts +10 -0
  632. package/node_modules/zod/v4/locales/index.js +10 -0
  633. package/node_modules/zod/v4/locales/is.cjs +3 -0
  634. package/node_modules/zod/v4/locales/is.js +3 -0
  635. package/node_modules/zod/v4/locales/it.cjs +3 -0
  636. package/node_modules/zod/v4/locales/it.js +3 -0
  637. package/node_modules/zod/v4/locales/ja.cjs +3 -0
  638. package/node_modules/zod/v4/locales/ja.js +3 -0
  639. package/node_modules/zod/v4/locales/ka.cjs +3 -0
  640. package/node_modules/zod/v4/locales/ka.js +3 -0
  641. package/node_modules/zod/v4/locales/km.cjs +3 -0
  642. package/node_modules/zod/v4/locales/km.js +3 -0
  643. package/node_modules/zod/v4/locales/kn.cjs +141 -0
  644. package/node_modules/zod/v4/locales/kn.d.cts +5 -0
  645. package/node_modules/zod/v4/locales/kn.d.ts +4 -0
  646. package/node_modules/zod/v4/locales/kn.js +114 -0
  647. package/node_modules/zod/v4/locales/ko.cjs +3 -0
  648. package/node_modules/zod/v4/locales/ko.js +3 -0
  649. package/node_modules/zod/v4/locales/lt.cjs +2 -0
  650. package/node_modules/zod/v4/locales/lt.js +2 -0
  651. package/node_modules/zod/v4/locales/mk.cjs +3 -0
  652. package/node_modules/zod/v4/locales/mk.js +3 -0
  653. package/node_modules/zod/v4/locales/ms.cjs +3 -0
  654. package/node_modules/zod/v4/locales/ms.js +3 -0
  655. package/node_modules/zod/v4/locales/ne.cjs +136 -0
  656. package/node_modules/zod/v4/locales/ne.d.cts +5 -0
  657. package/node_modules/zod/v4/locales/ne.d.ts +4 -0
  658. package/node_modules/zod/v4/locales/ne.js +109 -0
  659. package/node_modules/zod/v4/locales/nl.cjs +3 -0
  660. package/node_modules/zod/v4/locales/nl.js +3 -0
  661. package/node_modules/zod/v4/locales/nn.cjs +138 -0
  662. package/node_modules/zod/v4/locales/nn.d.cts +5 -0
  663. package/node_modules/zod/v4/locales/nn.d.ts +4 -0
  664. package/node_modules/zod/v4/locales/nn.js +111 -0
  665. package/node_modules/zod/v4/locales/no.cjs +5 -2
  666. package/node_modules/zod/v4/locales/no.js +5 -2
  667. package/node_modules/zod/v4/locales/ota.cjs +3 -0
  668. package/node_modules/zod/v4/locales/ota.js +3 -0
  669. package/node_modules/zod/v4/locales/pl.cjs +3 -0
  670. package/node_modules/zod/v4/locales/pl.js +3 -0
  671. package/node_modules/zod/v4/locales/ps.cjs +3 -0
  672. package/node_modules/zod/v4/locales/ps.js +3 -0
  673. package/node_modules/zod/v4/locales/pt-BR.cjs +168 -0
  674. package/node_modules/zod/v4/locales/pt-BR.d.cts +5 -0
  675. package/node_modules/zod/v4/locales/pt-BR.d.ts +4 -0
  676. package/node_modules/zod/v4/locales/pt-BR.js +141 -0
  677. package/node_modules/zod/v4/locales/pt.cjs +87 -55
  678. package/node_modules/zod/v4/locales/pt.js +87 -55
  679. package/node_modules/zod/v4/locales/ro.cjs +1 -0
  680. package/node_modules/zod/v4/locales/ro.js +1 -0
  681. package/node_modules/zod/v4/locales/ru.cjs +10 -0
  682. package/node_modules/zod/v4/locales/ru.js +10 -0
  683. package/node_modules/zod/v4/locales/sk.cjs +141 -0
  684. package/node_modules/zod/v4/locales/sk.d.cts +5 -0
  685. package/node_modules/zod/v4/locales/sk.d.ts +4 -0
  686. package/node_modules/zod/v4/locales/sk.js +114 -0
  687. package/node_modules/zod/v4/locales/sl.cjs +3 -0
  688. package/node_modules/zod/v4/locales/sl.js +3 -0
  689. package/node_modules/zod/v4/locales/sv.cjs +5 -2
  690. package/node_modules/zod/v4/locales/sv.js +5 -2
  691. package/node_modules/zod/v4/locales/ta.cjs +3 -0
  692. package/node_modules/zod/v4/locales/ta.js +3 -0
  693. package/node_modules/zod/v4/locales/th.cjs +3 -0
  694. package/node_modules/zod/v4/locales/th.js +3 -0
  695. package/node_modules/zod/v4/locales/tk.cjs +132 -0
  696. package/node_modules/zod/v4/locales/tk.d.cts +5 -0
  697. package/node_modules/zod/v4/locales/tk.d.ts +4 -0
  698. package/node_modules/zod/v4/locales/tk.js +105 -0
  699. package/node_modules/zod/v4/locales/tr.cjs +3 -0
  700. package/node_modules/zod/v4/locales/tr.js +3 -0
  701. package/node_modules/zod/v4/locales/uk.cjs +3 -0
  702. package/node_modules/zod/v4/locales/uk.js +3 -0
  703. package/node_modules/zod/v4/locales/ur.cjs +3 -0
  704. package/node_modules/zod/v4/locales/ur.js +3 -0
  705. package/node_modules/zod/v4/locales/uz.cjs +1 -0
  706. package/node_modules/zod/v4/locales/uz.js +1 -0
  707. package/node_modules/zod/v4/locales/vi.cjs +3 -0
  708. package/node_modules/zod/v4/locales/vi.js +3 -0
  709. package/node_modules/zod/v4/locales/yo.cjs +3 -0
  710. package/node_modules/zod/v4/locales/yo.js +3 -0
  711. package/node_modules/zod/v4/locales/zh-CN.cjs +3 -0
  712. package/node_modules/zod/v4/locales/zh-CN.js +3 -0
  713. package/node_modules/zod/v4/locales/zh-TW.cjs +3 -0
  714. package/node_modules/zod/v4/locales/zh-TW.js +3 -0
  715. package/node_modules/zod/v4/mini/checks.cjs +2 -1
  716. package/node_modules/zod/v4/mini/checks.d.cts +1 -1
  717. package/node_modules/zod/v4/mini/checks.d.ts +1 -1
  718. package/node_modules/zod/v4/mini/checks.js +1 -1
  719. package/node_modules/zod/v4/mini/deep-partial.cjs +39 -0
  720. package/node_modules/zod/v4/mini/deep-partial.d.cts +14 -0
  721. package/node_modules/zod/v4/mini/deep-partial.d.ts +14 -0
  722. package/node_modules/zod/v4/mini/deep-partial.js +13 -0
  723. package/node_modules/zod/v4/mini/external.cjs +12 -1
  724. package/node_modules/zod/v4/mini/external.d.cts +5 -2
  725. package/node_modules/zod/v4/mini/external.d.ts +5 -2
  726. package/node_modules/zod/v4/mini/external.js +3 -1
  727. package/node_modules/zod/v4/mini/in-out.cjs +63 -0
  728. package/node_modules/zod/v4/mini/in-out.d.cts +8 -0
  729. package/node_modules/zod/v4/mini/in-out.d.ts +8 -0
  730. package/node_modules/zod/v4/mini/in-out.js +36 -0
  731. package/node_modules/zod/v4/mini/parse.cjs +3 -1
  732. package/node_modules/zod/v4/mini/parse.d.cts +1 -1
  733. package/node_modules/zod/v4/mini/parse.d.ts +1 -1
  734. package/node_modules/zod/v4/mini/parse.js +1 -1
  735. package/node_modules/zod/v4/mini/schemas.cjs +75 -47
  736. package/node_modules/zod/v4/mini/schemas.d.cts +43 -13
  737. package/node_modules/zod/v4/mini/schemas.d.ts +43 -13
  738. package/node_modules/zod/v4/mini/schemas.js +71 -45
  739. package/openclaw.plugin.json +5 -2
  740. package/package.json +11 -8
  741. package/dist/channel-type-CVLZyGYS.js +0 -7
  742. package/dist/outbound-components-BvskBqEN.js +0 -100
  743. package/dist/provider.runtime-C-Oh3OHA.js +0 -2
  744. package/dist/targets-fCxslBZ3.js +0 -3
  745. package/node_modules/discord-api-types/CHANGELOG.md +0 -2514
  746. package/node_modules/discord-api-types/scripts/versions.mjs +0 -46
  747. package/node_modules/zod/src/v4/core/config.ts +0 -15
  748. /package/dist/{accounts-CwJQoLjM.js → .setup/accounts-CwJQoLjM.mjs} +0 -0
  749. /package/dist/{active-turn-thread-route-fmHl1HNd.js → .setup/active-turn-thread-route-fmHl1HNd.mjs} +0 -0
  750. /package/dist/{agent-components.runtime-CEPrf2SY.js → .setup/agent-components.runtime-CEPrf2SY.mjs} +0 -0
  751. /package/dist/{channel-access-C12aDZ0p.js → .setup/channel-access-C12aDZ0p.mjs} +0 -0
  752. /package/dist/{command-deploy-store-DFkBTViB.js → .setup/command-deploy-store-DFkBTViB.mjs} +0 -0
  753. /package/dist/{command-owners-D78sAoOz.js → .setup/command-owners-D78sAoOz.mjs} +0 -0
  754. /package/dist/{doctor-contract-Co5vRCZ6.js → .setup/doctor-contract-Co5vRCZ6.mjs} +0 -0
  755. /package/dist/{message-handler.history-CJOsN9w5.js → .setup/message-handler.history-CJOsN9w5.mjs} +0 -0
  756. /package/dist/{model-picker-preference-primitives-BHT1LkR_.js → .setup/model-picker-preference-primitives-BHT1LkR_.mjs} +0 -0
  757. /package/dist/{preflight-audio-DrnqFA8U.js → .setup/preflight-audio-DrnqFA8U.mjs} +0 -0
  758. /package/dist/{runtime-DgnVQ7zW.js → .setup/runtime-DgnVQ7zW.mjs} +0 -0
  759. /package/dist/{secret-config-contract-DFu9hfU8.js → .setup/secret-config-contract-DFu9hfU8.mjs} +0 -0
  760. /package/dist/{security-contract-DSHk7I2w.js → .setup/security-contract-DSHk7I2w.mjs} +0 -0
  761. /package/dist/{security-doctor-nGgPm65L.js → .setup/security-doctor-nGgPm65L.mjs} +0 -0
  762. /package/dist/{session-contract-BO5tlIdl.js → .setup/session-contract-BO5tlIdl.mjs} +0 -0
  763. /package/dist/{session-key-normalization-wJgsKPNF.js → .setup/session-key-normalization-wJgsKPNF.mjs} +0 -0
  764. /package/dist/{thread-binding-api-BDZJD4na.js → .setup/thread-binding-api-BDZJD4na.mjs} +0 -0
  765. /package/dist/{timeouts-D86uWLt_.js → .setup/timeouts-D86uWLt_.mjs} +0 -0
@@ -1,7 +1,162 @@
1
+ import { ChannelType } from "discord-api-types/v10";
1
2
  import { asFiniteNumberInRange, parseDateStringTimestampMs, parseStrictFiniteNumber } from "openclaw/plugin-sdk/number-runtime";
3
+ import { readResponseWithLimit } from "openclaw/plugin-sdk/response-limit-runtime";
4
+ import { fetchWithSsrFGuard, isBlockedHostnameOrIp, isLoopbackHost } from "openclaw/plugin-sdk/ssrf-runtime";
2
5
  import { normalizeLowercaseStringOrEmpty, normalizeOptionalString } from "openclaw/plugin-sdk/string-coerce-runtime";
3
6
  import { buildChannelKeyCandidates, resolveChannelEntryMatchWithFallback, resolveChannelMatchConfig } from "openclaw/plugin-sdk/channel-targets";
4
7
  import { resolveAllowlistMatchByCandidates } from "openclaw/plugin-sdk/allow-from";
8
+ //#region extensions/discord/src/endpoint-runtime.ts
9
+ const DISCORD_ENDPOINT_RESPONSE_MAX_BYTES = 8388608;
10
+ const DISCORD_API_URL_ENV = "DISCORD_API_URL";
11
+ function parseHttpAnchor(value, label) {
12
+ let url;
13
+ try {
14
+ url = new URL(value);
15
+ } catch {
16
+ throw new Error(`${label} must be a valid URL`);
17
+ }
18
+ if (url.protocol !== "https:" && !(url.protocol === "http:" && isLoopbackHost(url.hostname))) throw new Error(`${label} must use HTTPS or loopback HTTP`);
19
+ if (url.username || url.password || url.hash) throw new Error(`${label} must not contain credentials or a fragment`);
20
+ return url;
21
+ }
22
+ function normalizeRestApiBaseUrl(value) {
23
+ const url = parseHttpAnchor(value, "Discord endpoint REST API base URL");
24
+ if (url.search) throw new Error("Discord endpoint REST API base URL must not contain a query");
25
+ url.pathname = url.pathname.replace(/\/+$/u, "") || "/";
26
+ return url;
27
+ }
28
+ function normalizeGatewayOrigin(value) {
29
+ let url;
30
+ try {
31
+ url = new URL(value);
32
+ } catch {
33
+ throw new Error("Discord endpoint Gateway origin must be a valid URL");
34
+ }
35
+ if (url.protocol !== "wss:" && !(url.protocol === "ws:" && isLoopbackHost(url.hostname))) throw new Error("Discord endpoint Gateway origin must use WSS or loopback WS");
36
+ if (url.protocol === "wss:" && isBlockedHostnameOrIp(url.hostname)) throw new Error("Discord endpoint Gateway origin must not target a private/internal/special-use hostname or IP address");
37
+ if (url.username || url.password || url.hash || url.pathname !== "/" || url.search) throw new Error("Discord endpoint Gateway origin must be an origin without credentials, path, query, or fragment");
38
+ return url.origin;
39
+ }
40
+ function resolveDescriptor(apiUrl) {
41
+ const restApiBaseUrl = normalizeRestApiBaseUrl(apiUrl);
42
+ const gatewayBotUrl = new URL(`${restApiBaseUrl.pathname.replace(/\/+$/u, "")}/gateway/bot`, restApiBaseUrl.origin);
43
+ const gatewayOriginUrl = new URL(restApiBaseUrl.origin);
44
+ gatewayOriginUrl.protocol = gatewayOriginUrl.protocol === "https:" ? "wss:" : "ws:";
45
+ return Object.freeze({
46
+ restApiBaseUrl: restApiBaseUrl.toString().replace(/\/$/u, ""),
47
+ gatewayBotUrl: gatewayBotUrl.toString(),
48
+ gatewayOrigin: normalizeGatewayOrigin(gatewayOriginUrl.origin)
49
+ });
50
+ }
51
+ function isWithinRestApiBase(target, restApiBaseUrl) {
52
+ if (target.origin !== restApiBaseUrl.origin) return false;
53
+ const basePath = restApiBaseUrl.pathname.replace(/\/+$/u, "");
54
+ return basePath === "" || target.pathname === basePath || target.pathname.startsWith(`${basePath}/`);
55
+ }
56
+ function assertEndpointHttpTarget(target, descriptor) {
57
+ const restApiBaseUrl = new URL(descriptor.restApiBaseUrl);
58
+ const gatewayBotUrl = new URL(descriptor.gatewayBotUrl);
59
+ if (!isWithinRestApiBase(target, restApiBaseUrl) && target.toString() !== gatewayBotUrl.toString()) throw new Error("Discord endpoint request is outside the configured boundaries");
60
+ }
61
+ function requestInitFromRequest(request, signal) {
62
+ return {
63
+ method: request.method,
64
+ headers: request.headers,
65
+ ...request.body ? {
66
+ body: request.body,
67
+ duplex: "half"
68
+ } : {},
69
+ signal,
70
+ cache: request.cache,
71
+ credentials: request.credentials,
72
+ integrity: request.integrity,
73
+ keepalive: request.keepalive,
74
+ mode: request.mode,
75
+ referrer: request.referrer,
76
+ referrerPolicy: request.referrerPolicy
77
+ };
78
+ }
79
+ function createEndpointFetch(descriptor) {
80
+ const allowedOrigins = Array.from(/* @__PURE__ */ new Set([new URL(descriptor.restApiBaseUrl).origin, new URL(descriptor.gatewayBotUrl).origin]));
81
+ return async (input, init, beforeRequest) => {
82
+ const request = new Request(input, init);
83
+ const target = new URL(request.url);
84
+ assertEndpointHttpTarget(target, descriptor);
85
+ const guarded = await fetchWithSsrFGuard({
86
+ url: target.toString(),
87
+ init: requestInitFromRequest(request, request.signal),
88
+ signal: request.signal,
89
+ requireHttps: target.protocol === "https:",
90
+ policy: { allowedOrigins },
91
+ maxRedirects: 0,
92
+ capture: false,
93
+ auditContext: "discord.endpoint-runtime",
94
+ beforeRequest
95
+ });
96
+ try {
97
+ const body = await readResponseWithLimit(guarded.response, DISCORD_ENDPOINT_RESPONSE_MAX_BYTES, { onOverflow: ({ size, maxBytes }) => /* @__PURE__ */ new Error(`Discord endpoint response too large: ${size} bytes (limit: ${maxBytes} bytes)`) });
98
+ return new Response(body.byteLength > 0 ? new Uint8Array(body) : null, {
99
+ status: guarded.response.status,
100
+ statusText: guarded.response.statusText,
101
+ headers: guarded.response.headers
102
+ });
103
+ } finally {
104
+ await guarded.release();
105
+ }
106
+ };
107
+ }
108
+ /** Resolve the process-wide Discord API override using the same env convention as sibling channels. */
109
+ function getDiscordEndpointRuntime(env = process.env) {
110
+ const apiUrl = env[DISCORD_API_URL_ENV]?.trim();
111
+ if (!apiUrl) return;
112
+ const descriptor = resolveDescriptor(apiUrl);
113
+ return Object.freeze({
114
+ descriptor,
115
+ fetch: createEndpointFetch(descriptor)
116
+ });
117
+ }
118
+ function resolveDiscordEndpointMediaGuard(url, retainedRuntime) {
119
+ if (retainedRuntime === null) return;
120
+ const runtime = retainedRuntime ?? getDiscordEndpointRuntime();
121
+ if (!runtime) return;
122
+ const target = parseHttpAnchor(url, "Discord endpoint media URL");
123
+ const restOrigin = new URL(runtime.descriptor.restApiBaseUrl).origin;
124
+ if (target.origin !== restOrigin) throw new Error("Discord endpoint media URL is outside the configured REST origin");
125
+ return {
126
+ maxRedirects: 0,
127
+ ssrfPolicy: {
128
+ allowedOrigins: [restOrigin],
129
+ hostnameAllowlist: [target.hostname]
130
+ }
131
+ };
132
+ }
133
+ function resolveDiscordEndpointAttachmentGuard(url, retainedRuntime) {
134
+ if (retainedRuntime === null) return;
135
+ const runtime = retainedRuntime ?? getDiscordEndpointRuntime();
136
+ if (!runtime) return;
137
+ const target = parseHttpAnchor(url, "Discord endpoint attachment upload URL");
138
+ const restOrigin = new URL(runtime.descriptor.restApiBaseUrl).origin;
139
+ if (target.origin !== restOrigin) throw new Error("Discord endpoint attachment upload URL is outside the configured REST origin");
140
+ return {
141
+ maxRedirects: 0,
142
+ policy: {
143
+ allowedOrigins: [restOrigin],
144
+ hostnameAllowlist: [target.hostname]
145
+ },
146
+ requireHttps: target.protocol === "https:"
147
+ };
148
+ }
149
+ function assertDiscordEndpointGatewayUrl(url, gatewayOrigin) {
150
+ if (!gatewayOrigin) return;
151
+ let parsed;
152
+ try {
153
+ parsed = new URL(url);
154
+ } catch {
155
+ throw new Error("Discord endpoint returned an invalid Gateway WebSocket URL");
156
+ }
157
+ if (parsed.origin !== gatewayOrigin || parsed.username || parsed.password || parsed.hash) throw new Error("Discord endpoint Gateway URL is outside the configured WebSocket origin");
158
+ }
159
+ //#endregion
5
160
  //#region extensions/discord/src/retry-after.ts
6
161
  const RETRY_AFTER_BODY_SECONDS_RE = /^(?:\d+\.?\d*|\.\d+)$/;
7
162
  const MAX_SAFE_RETRY_AFTER_SECONDS = Number.MAX_SAFE_INTEGER / 1e3;
@@ -371,4 +526,9 @@ function shouldEmitDiscordReactionNotification(params) {
371
526
  return false;
372
527
  }
373
528
  //#endregion
374
- export { parseDiscordRetryAfterBodySeconds as C, resolveTimestampMs as S, resolveGroupDmAllow as _, normalizeDiscordSlug as a, formatDiscordUserTag as b, resolveDiscordChannelConfigWithFallback as c, resolveDiscordGuildEntry as d, resolveDiscordMemberAccessState as f, resolveDiscordShouldRequireMention as g, resolveDiscordOwnerAllowFrom as h, normalizeDiscordDisplaySlug as i, resolveDiscordChannelPolicyCommandAuthorizer as l, resolveDiscordOwnerAccess as m, isDiscordGroupAllowedByPolicy as n, resolveDiscordAllowListMatch as o, resolveDiscordMemberAllowed as p, normalizeDiscordAllowList as r, resolveDiscordChannelConfig as s, allowListMatches as t, resolveDiscordCommandAuthorized as u, shouldEmitDiscordReactionNotification as v, resolveDiscordSystemLocation as x, formatDiscordReactionEmoji as y };
529
+ //#region extensions/discord/src/channel-type.ts
530
+ function isDiscordThreadChannelType(channelType) {
531
+ return channelType === ChannelType.AnnouncementThread || channelType === ChannelType.PublicThread || channelType === ChannelType.PrivateThread;
532
+ }
533
+ //#endregion
534
+ export { resolveTimestampMs as C, resolveDiscordEndpointAttachmentGuard as D, getDiscordEndpointRuntime as E, resolveDiscordEndpointMediaGuard as O, resolveDiscordSystemLocation as S, assertDiscordEndpointGatewayUrl as T, resolveDiscordShouldRequireMention as _, normalizeDiscordDisplaySlug as a, formatDiscordReactionEmoji as b, resolveDiscordChannelConfig as c, resolveDiscordCommandAuthorized as d, resolveDiscordGuildEntry as f, resolveDiscordOwnerAllowFrom as g, resolveDiscordOwnerAccess as h, normalizeDiscordAllowList as i, resolveDiscordChannelConfigWithFallback as l, resolveDiscordMemberAllowed as m, allowListMatches as n, normalizeDiscordSlug as o, resolveDiscordMemberAccessState as p, isDiscordGroupAllowedByPolicy as r, resolveDiscordAllowListMatch as s, isDiscordThreadChannelType as t, resolveDiscordChannelPolicyCommandAuthorizer as u, resolveGroupDmAllow as v, parseDiscordRetryAfterBodySeconds as w, formatDiscordUserTag as x, shouldEmitDiscordReactionNotification as y };
@@ -1,7 +1,7 @@
1
- import { _ as inspectDiscordAccountTokenState, h as resolveDiscordToken, l as resolveDiscordAccountAllowFrom, o as mergeDiscordAccountConfig, s as resolveDefaultDiscordAccountId, u as resolveDiscordAccountConfig } from "./accounts-CwJQoLjM.js";
2
- import { i as discordSetupContract, t as createDiscordPluginBase } from "./shared-CPPR0Xo4.js";
3
- import { t as resolveDiscordChannelAllowlist } from "./resolve-channels-VbpLmUS8.js";
4
- import { t as resolveDiscordUserAllowlist } from "./resolve-users-D-wRFsd5.js";
1
+ import { _ as inspectDiscordAccountTokenState, h as resolveDiscordToken, l as resolveDiscordAccountAllowFrom, o as mergeDiscordAccountConfig, s as resolveDefaultDiscordAccountId, u as resolveDiscordAccountConfig } from "./accounts-CwJQoLjM.mjs";
2
+ import { i as discordSetupContract, t as createDiscordPluginBase } from "./shared-CaA3Vv4n.mjs";
3
+ import { t as resolveDiscordChannelAllowlist } from "./resolve-channels-BbvsLQOZ.mjs";
4
+ import { t as resolveDiscordUserAllowlist } from "./resolve-users-ByFlR7LQ.mjs";
5
5
  import { DEFAULT_ACCOUNT_ID, normalizeAccountId } from "openclaw/plugin-sdk/account-id";
6
6
  import { normalizeOptionalString } from "openclaw/plugin-sdk/string-coerce-runtime";
7
7
  import { resolveBasicAllowFromEntries } from "openclaw/plugin-sdk/allow-from";
@@ -1,4 +1,4 @@
1
- import { B as LinkButton, F as TextInput, G as Section, H as MentionableSelectMenu, Ht as __exportAll, I as Button, J as TextDisplay, K as Separator, L as ChannelSelectMenu, M as Label, N as Modal, P as RadioGroup, Q as parseCustomId, R as Container, U as RoleSelectMenu, V as MediaGallery, W as Row, X as UserSelectMenu, Y as Thumbnail, j as CheckboxGroup, q as StringSelectMenu, z as File } from "./discord-CmL3ati-.js";
1
+ import { $ as parseCustomId, B as File, F as RadioGroup, G as Row, H as MediaGallery, I as TextInput, J as StringSelectMenu, K as Section, L as Button, M as CheckboxGroup, N as Label, P as Modal, R as ChannelSelectMenu, U as MentionableSelectMenu, Ut as __exportAll, V as LinkButton, W as RoleSelectMenu, X as Thumbnail, Y as TextDisplay, Z as UserSelectMenu, q as Separator, z as Container } from "./discord-BXpHW-cu.mjs";
2
2
  import { ButtonStyle, MessageFlags, TextInputStyle } from "discord-api-types/v10";
3
3
  import crypto from "node:crypto";
4
4
  import { normalizeLowercaseStringOrEmpty, normalizeOptionalString, readNonBlankString } from "openclaw/plugin-sdk/string-coerce-runtime";
@@ -493,6 +493,7 @@ function createButtonComponent(params) {
493
493
  super(..._args6);
494
494
  this.label = params.spec.label;
495
495
  this.url = linkUrl;
496
+ this.emoji = params.spec.emoji;
496
497
  this.disabled = params.spec.disabled ?? false;
497
498
  }
498
499
  }
@@ -798,7 +799,7 @@ function encodeBoundedDiscordApprovalCustomId(action) {
798
799
  });
799
800
  }
800
801
  function buildDiscordApprovalCustomId(action) {
801
- if (!action.approvalId || action.approvalKind !== "exec" && action.approvalKind !== "plugin" || action.decision !== "allow-once" && action.decision !== "allow-always" && action.decision !== "deny") return;
802
+ if (!action.approvalId || action.approvalKind !== "exec" && action.approvalKind !== "plugin" && action.approvalKind !== "system-agent" || action.decision !== "allow-once" && action.decision !== "allow-always" && action.decision !== "deny") return;
802
803
  return encodeBoundedDiscordApprovalCustomId(action);
803
804
  }
804
805
  function buildExecApprovalCustomId(approvalId, approvalKind, decision) {
@@ -822,7 +823,7 @@ function parseExecApprovalData(data) {
822
823
  const rawId = coerce(data.id);
823
824
  const rawKind = coerce(data.kind);
824
825
  const rawAction = coerce(data.action);
825
- if (!rawId || rawKind !== "exec" && rawKind !== "plugin" || !rawAction) return null;
826
+ if (!rawId || rawKind !== "exec" && rawKind !== "plugin" && rawKind !== "system-agent" || !rawAction) return null;
826
827
  if (rawAction !== "allow-once" && rawAction !== "allow-always" && rawAction !== "deny") return null;
827
828
  const approvalId = decodeCustomIdValue(rawId);
828
829
  if (!approvalId) return null;
@@ -102,7 +102,7 @@ const discordChannelConfigUiHints = {
102
102
  },
103
103
  "voice.model": {
104
104
  label: "Discord Voice Model",
105
- help: "Optional LLM model override for Discord voice channel responses and realtime agent consults (for example openai/gpt-5.6-sol). Leave unset to inherit the routed agent model."
105
+ help: "Optional LLM model override for Discord voice channel responses and realtime agent consults (for example openai/gpt-6-astra). Leave unset to inherit the routed agent model."
106
106
  },
107
107
  "voice.mode": {
108
108
  label: "Discord Voice Mode",
@@ -1,4 +1,4 @@
1
- import { l as shouldIgnoreStaleDiscordRouteBinding } from "./outbound-session-route-DZBYPGTR.js";
1
+ import { m as shouldIgnoreStaleDiscordRouteBinding } from "./outbound-session-route-CqWbuMOm.mjs";
2
2
  import { logVerbose } from "openclaw/plugin-sdk/runtime-env";
3
3
  import { resolveConfiguredBindingRoute, resolveRuntimeConversationBindingRoute } from "openclaw/plugin-sdk/conversation-binding-runtime";
4
4
  //#region extensions/discord/src/monitor/conversation-binding-route.ts
@@ -1,5 +1,5 @@
1
- import { Ht as __exportAll } from "./discord-CmL3ati-.js";
2
- import { l as resolveDiscordAccountAllowFrom, o as mergeDiscordAccountConfig, s as resolveDefaultDiscordAccountId } from "./accounts-CwJQoLjM.js";
1
+ import { Ut as __exportAll } from "./discord-BXpHW-cu.mjs";
2
+ import { l as resolveDiscordAccountAllowFrom, o as mergeDiscordAccountConfig, s as resolveDefaultDiscordAccountId } from "./accounts-CwJQoLjM.mjs";
3
3
  import { normalizeAccountId } from "openclaw/plugin-sdk/account-id";
4
4
  import { createResolvedDirectoryEntriesLister } from "openclaw/plugin-sdk/directory-config-runtime";
5
5
  //#region extensions/discord/src/directory-config.ts
@@ -1,7 +1,7 @@
1
- import { Ht as __exportAll } from "./discord-CmL3ati-.js";
2
- import { a as normalizeDiscordSlug } from "./allow-list-DWEio925.js";
3
- import { c as resolveDiscordAccount, m as normalizeDiscordToken } from "./accounts-CwJQoLjM.js";
4
- import { r as fetchDiscord, t as DISCORD_DIRECTORY_LOOKUP_TIMEOUT_MS } from "./api-LIV--eMq.js";
1
+ import { Ut as __exportAll } from "./discord-BXpHW-cu.mjs";
2
+ import { o as normalizeDiscordSlug } from "./channel-type-DKnjV1XW.mjs";
3
+ import { c as resolveDiscordAccount, m as normalizeDiscordToken } from "./accounts-CwJQoLjM.mjs";
4
+ import { r as fetchDiscord, t as DISCORD_DIRECTORY_LOOKUP_TIMEOUT_MS } from "./api-CBK9zcq5.mjs";
5
5
  import { DEFAULT_ACCOUNT_ID, normalizeAccountId } from "openclaw/plugin-sdk/routing";
6
6
  import { normalizeLowercaseStringOrEmpty, normalizeOptionalLowercaseString, normalizeOptionalString, normalizeOptionalStringifiedId } from "openclaw/plugin-sdk/string-coerce-runtime";
7
7
  //#region extensions/discord/src/directory-cache-state.ts
@@ -1,4 +1,4 @@
1
- import { C as parseDiscordRetryAfterBodySeconds } from "./allow-list-DWEio925.js";
1
+ import { E as getDiscordEndpointRuntime, w as parseDiscordRetryAfterBodySeconds } from "./channel-type-DKnjV1XW.mjs";
2
2
  import "node:module";
3
3
  import { redactIdentifier, redactSensitiveFieldValue } from "openclaw/plugin-sdk/logging-core";
4
4
  import { ApplicationCommandOptionType, ApplicationCommandType, ButtonStyle, ComponentType, GatewayDispatchEvents, InteractionContextType, InteractionResponseType, InteractionType, MessageFlags, Routes, TextInputStyle } from "discord-api-types/v10";
@@ -9,7 +9,10 @@ import { asDateTimestampMs, clampTimerTimeoutMs, parseStrictNonNegativeInteger,
9
9
  import { expectDefined } from "openclaw/plugin-sdk/expect-runtime";
10
10
  import { inspect } from "node:util";
11
11
  import { gunzipSync } from "node:zlib";
12
+ import { captureChannelReadAuthority } from "openclaw/plugin-sdk/fetch-runtime";
12
13
  import { readResponseWithLimit } from "openclaw/plugin-sdk/response-limit-runtime";
14
+ import { AsyncLocalStorage } from "node:async_hooks";
15
+ import { resolveGlobalSingleton } from "openclaw/plugin-sdk/global-singleton";
13
16
  import { formatErrorMessage } from "openclaw/plugin-sdk/error-runtime";
14
17
  import { parseRetryAfterHeaderSeconds } from "openclaw/plugin-sdk/retry-runtime";
15
18
  //#region \0rolldown/runtime.js
@@ -127,24 +130,12 @@ async function createGuildSticker(rest, guildId, data) {
127
130
  return await rest.post(Routes.guildStickers(guildId), data);
128
131
  }
129
132
  //#endregion
130
- //#region extensions/discord/src/internal/api.interactions.ts
131
- async function createInteractionCallback(rest, interactionId, token, body) {
132
- return await rest.post(Routes.interactionCallback(interactionId, token), { body });
133
- }
134
- async function editWebhookMessage(rest, applicationId, token, messageId, data, query) {
135
- return query ? await rest.patch(Routes.webhookMessage(applicationId, token, messageId), data, query) : await rest.patch(Routes.webhookMessage(applicationId, token, messageId), data);
136
- }
137
- async function deleteWebhookMessage(rest, applicationId, token, messageId) {
138
- return await rest.delete(Routes.webhookMessage(applicationId, token, messageId));
139
- }
140
- async function getWebhookMessage(rest, applicationId, token, messageId) {
141
- return await rest.get(Routes.webhookMessage(applicationId, token, messageId));
142
- }
143
- async function createWebhookMessage(rest, applicationId, token, data, query) {
144
- return await rest.post(Routes.webhook(applicationId, token), data, query);
145
- }
146
- //#endregion
147
133
  //#region extensions/discord/src/internal/api.messages.ts
134
+ function normalizeDiscordMessageId(messageId) {
135
+ const normalized = messageId.trim();
136
+ if (!/^[0-9]+$/u.test(normalized)) throw new Error("Invalid Discord message ID. Expected decimal digits.");
137
+ return normalized;
138
+ }
148
139
  async function getChannel(rest, channelId) {
149
140
  return await rest.get(Routes.channel(channelId));
150
141
  }
@@ -161,22 +152,22 @@ async function listChannelMessages(rest, channelId, query) {
161
152
  return await rest.get(Routes.channelMessages(channelId), query);
162
153
  }
163
154
  async function getChannelMessage(rest, channelId, messageId) {
164
- return await rest.get(Routes.channelMessage(channelId, messageId));
155
+ return await rest.get(Routes.channelMessage(channelId, normalizeDiscordMessageId(messageId)));
165
156
  }
166
157
  async function createChannelMessage(rest, channelId, data) {
167
158
  return await rest.post(Routes.channelMessages(channelId), data);
168
159
  }
169
160
  async function editChannelMessage(rest, channelId, messageId, data) {
170
- return await rest.patch(Routes.channelMessage(channelId, messageId), data);
161
+ return await rest.patch(Routes.channelMessage(channelId, normalizeDiscordMessageId(messageId)), data);
171
162
  }
172
163
  async function deleteChannelMessage(rest, channelId, messageId) {
173
- await rest.delete(Routes.channelMessage(channelId, messageId));
164
+ await rest.delete(Routes.channelMessage(channelId, normalizeDiscordMessageId(messageId)));
174
165
  }
175
166
  async function pinChannelMessage(rest, channelId, messageId) {
176
- await rest.put(Routes.channelPin(channelId, messageId));
167
+ await rest.put(Routes.channelPin(channelId, normalizeDiscordMessageId(messageId)));
177
168
  }
178
169
  async function unpinChannelMessage(rest, channelId, messageId) {
179
- await rest.delete(Routes.channelPin(channelId, messageId));
170
+ await rest.delete(Routes.channelPin(channelId, normalizeDiscordMessageId(messageId)));
180
171
  }
181
172
  async function listChannelPins(rest, channelId) {
182
173
  return await rest.get(Routes.channelPins(channelId));
@@ -185,7 +176,7 @@ async function sendChannelTyping(rest, channelId) {
185
176
  await rest.post(Routes.channelTyping(channelId));
186
177
  }
187
178
  async function createThread(rest, channelId, data, messageId) {
188
- const route = messageId ? Routes.threads(channelId, messageId) : Routes.threads(channelId);
179
+ const route = messageId === void 0 ? Routes.threads(channelId) : Routes.threads(channelId, normalizeDiscordMessageId(messageId));
189
180
  return await rest.post(route, data);
190
181
  }
191
182
  async function listChannelArchivedThreads(rest, channelId, query) {
@@ -195,15 +186,37 @@ async function searchGuildMessages(rest, guildId, params) {
195
186
  return await rest.get(`/guilds/${guildId}/messages/search?${params.toString()}`);
196
187
  }
197
188
  //#endregion
189
+ //#region extensions/discord/src/internal/api.interactions.ts
190
+ function normalizeDiscordWebhookMessageId(messageId) {
191
+ const normalized = messageId.trim();
192
+ return normalized === "@original" ? normalized : normalizeDiscordMessageId(normalized);
193
+ }
194
+ async function createInteractionCallback(rest, interactionId, token, body) {
195
+ return await rest.post(Routes.interactionCallback(interactionId, token), { body });
196
+ }
197
+ async function editWebhookMessage(rest, applicationId, token, messageId, data, query) {
198
+ const route = Routes.webhookMessage(applicationId, token, normalizeDiscordWebhookMessageId(messageId));
199
+ return query ? await rest.patch(route, data, query) : await rest.patch(route, data);
200
+ }
201
+ async function deleteWebhookMessage(rest, applicationId, token, messageId) {
202
+ return await rest.delete(Routes.webhookMessage(applicationId, token, normalizeDiscordWebhookMessageId(messageId)));
203
+ }
204
+ async function getWebhookMessage(rest, applicationId, token, messageId) {
205
+ return await rest.get(Routes.webhookMessage(applicationId, token, normalizeDiscordWebhookMessageId(messageId)));
206
+ }
207
+ async function createWebhookMessage(rest, applicationId, token, data, query) {
208
+ return await rest.post(Routes.webhook(applicationId, token), data, query);
209
+ }
210
+ //#endregion
198
211
  //#region extensions/discord/src/internal/api.reactions.ts
199
212
  async function createOwnMessageReaction(rest, channelId, messageId, encodedEmoji) {
200
- await rest.put(Routes.channelMessageOwnReaction(channelId, messageId, encodedEmoji));
213
+ await rest.put(Routes.channelMessageOwnReaction(channelId, normalizeDiscordMessageId(messageId), encodedEmoji));
201
214
  }
202
215
  async function deleteOwnMessageReaction(rest, channelId, messageId, encodedEmoji) {
203
- await rest.delete(Routes.channelMessageOwnReaction(channelId, messageId, encodedEmoji));
216
+ await rest.delete(Routes.channelMessageOwnReaction(channelId, normalizeDiscordMessageId(messageId), encodedEmoji));
204
217
  }
205
218
  async function listMessageReactionUsers(rest, channelId, messageId, encodedEmoji, query) {
206
- return await rest.get(Routes.channelMessageReaction(channelId, messageId, encodedEmoji), query);
219
+ return await rest.get(Routes.channelMessageReaction(channelId, normalizeDiscordMessageId(messageId), encodedEmoji), query);
207
220
  }
208
221
  //#endregion
209
222
  //#region extensions/discord/src/internal/api.users.ts
@@ -1976,6 +1989,21 @@ function readMessageChannelId(rawData) {
1976
1989
  return typeof channelId === "string" ? channelId : void 0;
1977
1990
  }
1978
1991
  //#endregion
1992
+ //#region extensions/discord/src/internal/request-authority.ts
1993
+ const requestAuthority = resolveGlobalSingleton(Symbol.for("openclaw.discord.requestAuthority"), () => new AsyncLocalStorage());
1994
+ /** Carry the host's existing assertion without changing its lifetime or ownership. */
1995
+ function withDiscordRequestAuthority(assertCurrent, run) {
1996
+ if (!assertCurrent) return run();
1997
+ const inherited = requestAuthority.getStore();
1998
+ return requestAuthority.run(inherited && inherited !== assertCurrent ? () => {
1999
+ inherited();
2000
+ assertCurrent();
2001
+ } : assertCurrent, run);
2002
+ }
2003
+ function captureDiscordRequestAuthority() {
2004
+ return requestAuthority.getStore();
2005
+ }
2006
+ //#endregion
1979
2007
  //#region extensions/discord/src/internal/rest-body.ts
1980
2008
  function serializeRequestBody(data, headers) {
1981
2009
  if (data?.headers) for (const [key, value] of Object.entries(data.headers)) headers.set(key, value);
@@ -2644,18 +2672,24 @@ function isZlibMaxOutputLengthError(err) {
2644
2672
  var RequestClient = class {
2645
2673
  constructor(token, options) {
2646
2674
  this.requestControllers = /* @__PURE__ */ new Set();
2675
+ const endpoint = getDiscordEndpointRuntime();
2676
+ const resolvedOptions = endpoint ? {
2677
+ ...options,
2678
+ apiBaseUrl: endpoint.descriptor.restApiBaseUrl,
2679
+ fetch: endpoint.fetch
2680
+ } : options;
2647
2681
  this.token = token.replace(/^Bot\s+/i, "");
2648
- this.customFetch = options?.fetch;
2649
- this.options = normalizeRequestClientOptions(options);
2682
+ this.customFetch = resolvedOptions?.fetch;
2683
+ this.options = normalizeRequestClientOptions(resolvedOptions);
2650
2684
  this.scheduler = new RestScheduler({
2651
2685
  lanes: normalizeSchedulerLanes(this.options.maxQueueSize, this.options.scheduler?.lanes),
2652
2686
  maxConcurrency: resolveIntegerOption(this.options.scheduler?.maxConcurrency, DEFAULT_MAX_CONCURRENT_WORKERS, { min: 1 }),
2653
2687
  maxQueueSize: this.options.maxQueueSize,
2654
2688
  maxRateLimitRetries: resolveIntegerOption(this.options.scheduler?.maxRateLimitRetries, 3, { min: 0 })
2655
2689
  }, async (request) => await this.executeRequest(request.method, request.path, {
2656
- data: request.data,
2690
+ data: request.data?.data,
2657
2691
  query: request.query
2658
- }, request.routeKey));
2692
+ }, request.routeKey, request.data?.assertCurrent));
2659
2693
  }
2660
2694
  async get(path, query) {
2661
2695
  return await this.request("GET", path, { query });
@@ -2686,16 +2720,27 @@ var RequestClient = class {
2686
2720
  }
2687
2721
  async request(method, path, params) {
2688
2722
  const routeKey = createRouteKey(method, path);
2689
- if (!this.options.queueRequests) return await this.executeRequest(method, path, params, routeKey);
2723
+ const assertActionAuthority = captureDiscordRequestAuthority();
2724
+ const assertReadAuthority = captureChannelReadAuthority();
2725
+ const assertCurrent = assertActionAuthority ? () => {
2726
+ assertActionAuthority();
2727
+ assertReadAuthority?.();
2728
+ } : assertReadAuthority;
2729
+ assertCurrent?.();
2730
+ if (!this.options.queueRequests) return await this.executeRequest(method, path, params, routeKey, assertCurrent);
2690
2731
  return await this.scheduler.enqueue({
2691
2732
  method,
2692
2733
  path,
2693
2734
  priority: getRequestPriority(method, path),
2694
- ...params
2735
+ query: params.query,
2736
+ data: {
2737
+ data: params.data,
2738
+ assertCurrent
2739
+ }
2695
2740
  });
2696
2741
  }
2697
- async executeRequest(method, path, params, routeKey = createRouteKey(method, path)) {
2698
- const url = `${this.options.baseUrl}/v${this.options.apiVersion}${appendQuery(path, params.query)}`;
2742
+ async executeRequest(method, path, params, routeKey = createRouteKey(method, path), assertCurrent) {
2743
+ const url = `${this.options.apiBaseUrl}${appendQuery(path, params.query)}`;
2699
2744
  const headers = new Headers({ "User-Agent": this.options.userAgent ?? defaultOptions.userAgent });
2700
2745
  if (this.token !== "webhook") headers.set("Authorization", `${this.options.tokenHeader ?? "Bot"} ${this.token}`);
2701
2746
  const body = serializeRequestBody(params.data, headers);
@@ -2705,12 +2750,14 @@ var RequestClient = class {
2705
2750
  const signal = this.options.signal ? AbortSignal.any([this.options.signal, controller.signal]) : controller.signal;
2706
2751
  this.requestControllers.add(controller);
2707
2752
  try {
2708
- const response = await (this.customFetch ?? fetch)(url, {
2753
+ assertCurrent?.();
2754
+ const init = {
2709
2755
  method,
2710
2756
  headers,
2711
2757
  body,
2712
2758
  signal
2713
- });
2759
+ };
2760
+ const response = this.customFetch && assertCurrent ? await this.customFetch(url, init, assertCurrent) : await (this.customFetch ?? fetch)(url, init);
2714
2761
  const parsed = coerceResponseBody(await readResponseBodyText(response, this.options.timeout ?? 15e3));
2715
2762
  this.scheduler.recordResponse(routeKey, path, response, parsed);
2716
2763
  if (response.status === 204) return;
@@ -2754,9 +2801,11 @@ function normalizeRequestClientOptions(options) {
2754
2801
  ...defaultOptions,
2755
2802
  ...options
2756
2803
  };
2804
+ const apiVersion = resolveIntegerOption(merged.apiVersion, defaultOptions.apiVersion, { min: 1 });
2757
2805
  return {
2758
2806
  ...merged,
2759
- apiVersion: resolveIntegerOption(merged.apiVersion, defaultOptions.apiVersion, { min: 1 }),
2807
+ apiBaseUrl: options?.apiBaseUrl ?? `${options?.baseUrl ?? defaultOptions.baseUrl}/v${apiVersion}`,
2808
+ apiVersion,
2760
2809
  timeout: clampTimerTimeoutMs(merged.timeout, 1) ?? resolveTimerTimeoutMs(defaultOptions.timeout, 1),
2761
2810
  maxQueueSize: resolveIntegerOption(merged.maxQueueSize, defaultOptions.maxQueueSize, { min: 1 })
2762
2811
  };
@@ -3067,6 +3116,7 @@ var discord_exports = /* @__PURE__ */ __exportAll({
3067
3116
  listGuildScheduledEvents: () => listGuildScheduledEvents,
3068
3117
  listMessageReactionUsers: () => listMessageReactionUsers,
3069
3118
  moveGuildChannels: () => moveGuildChannels,
3119
+ normalizeDiscordMessageId: () => normalizeDiscordMessageId,
3070
3120
  overwriteApplicationCommands: () => overwriteApplicationCommands,
3071
3121
  overwriteGuildApplicationCommands: () => overwriteGuildApplicationCommands,
3072
3122
  parseComponentInteractionData: () => parseComponentInteractionData,
@@ -3085,4 +3135,4 @@ var discord_exports = /* @__PURE__ */ __exportAll({
3085
3135
  import * as import_discord_api_types_v10 from "discord-api-types/v10";
3086
3136
  __reExport(discord_exports, import_discord_api_types_v10);
3087
3137
  //#endregion
3088
- export { stripUndefinedFields as $, Embed as A, getGuildMember as At, LinkButton as B, removeGuildMemberRole as Bt, Command as C, createGuildBan as Ct, User as D, createGuildSticker as Dt, Message as E, createGuildScheduledEvent as Et, TextInput as F, listGuildRoles as Ft, Section as G, MentionableSelectMenu as H, __exportAll as Ht, Button as I, listGuildScheduledEvents as It, TextDisplay as J, Separator as K, ChannelSelectMenu as L, moveGuildChannels as Lt, Label as M, listGuildActiveThreads as Mt, Modal as N, listGuildChannels as Nt, hasDiscordV2Components as O, deleteChannelPermission as Ot, RadioGroup as P, listGuildEmojis as Pt, parseCustomId as Q, Container as R, putChannelPermission as Rt, readRetryAfter as S, addGuildMemberRole as St, Guild as T, createGuildEmoji as Tt, RoleSelectMenu as U, MediaGallery as V, timeoutGuildMember as Vt, Row as W, UserSelectMenu as X, Thumbnail as Y, BaseMessageInteractiveComponent as Z, DiscordError as _, listChannelPins as _t, MessageCreateListener as a, listMessageReactionUsers as at, readDiscordCode as b, sendChannelTyping as bt, PresenceUpdateListener as c, deleteChannel as ct, ThreadDeleteListener as d, editChannelMessage as dt, createChannelWebhook as et, ThreadUpdateListener as f, getChannel as ft, RequestClient as g, listChannelMessages as gt, Plugin as h, listChannelArchivedThreads as ht, InteractionCreateListener as i, deleteOwnMessageReaction as it, CheckboxGroup as j, getGuildVoiceState as jt, serializePayload as k, getGuild as kt, ReadyListener as l, deleteChannelMessage as lt, Client as m, getThreadMember as mt, GuildCreateListener as n, getCurrentUser as nt, MessageReactionAddListener as o, createChannelMessage as ot, VoiceStateUpdateListener as p, getChannelMessage as pt, StringSelectMenu as q, GuildDeleteListener as r, createOwnMessageReaction as rt, MessageReactionRemoveListener as s, createThread as st, discord_exports as t, createUserDmChannel as tt, ResumedListener as u, editChannel as ut, RateLimitError as v, pinChannelMessage as vt, CommandWithSubcommands as w, createGuildChannel as wt, readDiscordMessage as x, unpinChannelMessage as xt, isUnknownDiscordVoiceStateError as y, searchGuildMessages as yt, File as z, removeGuildMember as zt };
3138
+ export { parseCustomId as $, serializePayload as A, getGuild as At, File as B, removeGuildMember as Bt, withDiscordRequestAuthority as C, addGuildMemberRole as Ct, Message as D, createGuildScheduledEvent as Dt, Guild as E, createGuildEmoji as Et, RadioGroup as F, listGuildEmojis as Ft, Row as G, MediaGallery as H, timeoutGuildMember as Ht, TextInput as I, listGuildRoles as It, StringSelectMenu as J, Section as K, Button as L, listGuildScheduledEvents as Lt, CheckboxGroup as M, getGuildVoiceState as Mt, Label as N, listGuildActiveThreads as Nt, User as O, createGuildSticker as Ot, Modal as P, listGuildChannels as Pt, BaseMessageInteractiveComponent as Q, ChannelSelectMenu as R, moveGuildChannels as Rt, readRetryAfter as S, unpinChannelMessage as St, CommandWithSubcommands as T, createGuildChannel as Tt, MentionableSelectMenu as U, __exportAll as Ut, LinkButton as V, removeGuildMemberRole as Vt, RoleSelectMenu as W, Thumbnail as X, TextDisplay as Y, UserSelectMenu as Z, DiscordError as _, listChannelMessages as _t, MessageCreateListener as a, deleteOwnMessageReaction as at, readDiscordCode as b, searchGuildMessages as bt, PresenceUpdateListener as c, createThread as ct, ThreadDeleteListener as d, editChannel as dt, stripUndefinedFields as et, ThreadUpdateListener as f, editChannelMessage as ft, RequestClient as g, listChannelArchivedThreads as gt, Plugin as h, getThreadMember as ht, InteractionCreateListener as i, createOwnMessageReaction as it, Embed as j, getGuildMember as jt, hasDiscordV2Components as k, deleteChannelPermission as kt, ReadyListener as l, deleteChannel as lt, Client as m, getChannelMessage as mt, GuildCreateListener as n, createUserDmChannel as nt, MessageReactionAddListener as o, listMessageReactionUsers as ot, VoiceStateUpdateListener as p, getChannel as pt, Separator as q, GuildDeleteListener as r, getCurrentUser as rt, MessageReactionRemoveListener as s, createChannelMessage as st, discord_exports as t, createChannelWebhook as tt, ResumedListener as u, deleteChannelMessage as ut, RateLimitError as v, listChannelPins as vt, Command as w, createGuildBan as wt, readDiscordMessage as x, sendChannelTyping as xt, isUnknownDiscordVoiceStateError as y, pinChannelMessage as yt, Container as z, putChannelPermission as zt };
@@ -1,9 +1,9 @@
1
- import { s as resolveDefaultDiscordAccountId } from "./accounts-CwJQoLjM.js";
2
- import { t as discordVoiceTranscriptsSourceProvider } from "./transcripts-source-VkgenQv-.js";
3
- import { t as inspectDiscordAccount } from "./account-inspect-BY-ve3yH.js";
4
- import { r as DISCORD_LEGACY_CONFIG_RULES } from "./shared-CPPR0Xo4.js";
5
- import { n as normalizeCompatibilityConfig } from "./doctor-contract-Co5vRCZ6.js";
6
- import { t as isDiscordMutableAllowEntry } from "./security-doctor-nGgPm65L.js";
1
+ import { s as resolveDefaultDiscordAccountId } from "./accounts-CwJQoLjM.mjs";
2
+ import { t as discordVoiceTranscriptsSourceProvider } from "./transcripts-source-CuWYgayu.mjs";
3
+ import { t as inspectDiscordAccount } from "./account-inspect-BwQj24ht.mjs";
4
+ import { r as DISCORD_LEGACY_CONFIG_RULES } from "./shared-CaA3Vv4n.mjs";
5
+ import { n as normalizeCompatibilityConfig } from "./doctor-contract-Co5vRCZ6.mjs";
6
+ import { t as isDiscordMutableAllowEntry } from "./security-doctor-nGgPm65L.mjs";
7
7
  import { expectDefined } from "openclaw/plugin-sdk/expect-runtime";
8
8
  import { normalizeOptionalString } from "openclaw/plugin-sdk/string-coerce-runtime";
9
9
  import { asObjectRecord, collectChannelAccountScopes, collectProviderDangerousNameMatchingScopes } from "openclaw/plugin-sdk/runtime-doctor-migrations";
@@ -1,6 +1,6 @@
1
- import { c as readDiscordChannelMoveParams, n as isDiscordModerationAction, o as readDiscordChannelCreateParams, r as readDiscordModerationCommand, s as readDiscordChannelEditParams, t as handleDiscordAction } from "./runtime-Cv8GdXSO.js";
2
- import "./action-runtime-api.js";
3
- import { m as isTrustedRequesterGuildAdminAction } from "./outbound-session-route-DZBYPGTR.js";
1
+ import { c as readDiscordChannelMoveParams, n as isDiscordModerationAction, o as readDiscordChannelCreateParams, r as readDiscordModerationCommand, s as readDiscordChannelEditParams, t as handleDiscordAction } from "./runtime-SchNfUsQ.mjs";
2
+ import "../action-runtime-api.js";
3
+ import { y as isTrustedRequesterGuildAdminAction } from "./outbound-session-route-CqWbuMOm.mjs";
4
4
  import { normalizeOptionalString } from "openclaw/plugin-sdk/string-coerce-runtime";
5
5
  import { readBooleanParam } from "openclaw/plugin-sdk/boolean-param";
6
6
  import { readNonNegativeIntegerParam, readPositiveIntegerParam, readStringArrayParam, readStringParam } from "openclaw/plugin-sdk/agent-runtime";
@@ -8,7 +8,12 @@ import { readNonNegativeIntegerParam, readPositiveIntegerParam, readStringArrayP
8
8
  function readDiscordRequesterSenderId(ctx) {
9
9
  const currentProvider = normalizeOptionalString(ctx.toolContext?.currentChannelProvider);
10
10
  if (currentProvider?.toLowerCase() === "discord") return normalizeOptionalString(ctx.requesterSenderId);
11
- if (isTrustedRequesterGuildAdminAction(ctx.action) && (currentProvider || ctx.senderIsOwner !== true)) throw new Error("Discord guild admin actions require a trusted Discord sender identity.");
11
+ if (ctx.action === "channel-edit" && !currentProvider && ctx.senderIsOwner === false && ctx.assertDirectAdapterHandoff && ctx.accountId && ctx.requesterAccountId === ctx.accountId) {
12
+ ctx.assertDirectAdapterHandoff();
13
+ const requester = normalizeOptionalString(ctx.requesterSenderId);
14
+ if (requester) return requester;
15
+ }
16
+ if (isTrustedRequesterGuildAdminAction(ctx.action) && (currentProvider || ctx.senderIsOwner !== true)) throw new Error("Discord guild admin actions require a trusted Discord sender identity." + (ctx.action === "channel-edit" && !currentProvider ? " Recreate an automation without recorded execution authorization from a fresh authenticated Discord turn that can manage automations." : ""));
12
17
  }
13
18
  function senderParam(senderUserId) {
14
19
  return senderUserId ? { senderUserId } : {};
@@ -1,4 +1,4 @@
1
- import { r as normalizeDiscordAllowList } from "./allow-list-DWEio925.js";
1
+ import { i as normalizeDiscordAllowList } from "./channel-type-DKnjV1XW.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 = [