@openclaw/discord 2026.8.1-beta.3 → 2026.8.2

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 (290) hide show
  1. package/dist/account-inspect-BY-ve3yH.js +45 -0
  2. package/dist/account-inspect-api.js +1 -1
  3. package/dist/{accounts-DNl-oCEw.js → accounts-CwJQoLjM.js} +87 -162
  4. package/dist/action-runtime-api.js +1 -1
  5. package/dist/{activities-api-KCBAmWxD.js → activities-api-CkKcHUB6.js} +14 -12
  6. package/dist/activities-api.js +1 -1
  7. package/dist/{allow-list-BDMimASD.js → allow-list-C2JuH-R0.js} +10 -6
  8. package/dist/{api-DNVbJyEy.js → api-BfmEP6wp.js} +6 -5
  9. package/dist/api.js +18 -18
  10. package/dist/{approval-handler.runtime-B12RCYr8.js → approval-handler.runtime-DZM6Kt1Z.js} +30 -106
  11. package/dist/{audit-Yc7eZDd6.js → audit-DIbQA4VT.js} +8 -7
  12. package/dist/{channel-cXYzGc4L.js → channel-CarzU3bg.js} +25 -25
  13. package/dist/{channel-actions.runtime-CODTvo7c.js → channel-actions.runtime-B2wMqeVK.js} +60 -57
  14. package/dist/channel-config-api.js +1 -1
  15. package/dist/channel-plugin-api.js +1 -1
  16. package/dist/channel-type-CVLZyGYS.js +7 -0
  17. package/dist/{channel.setup-CSiwnMgs.js → channel.setup-z_ewMVa9.js} +18 -18
  18. package/dist/{components-ezGKo_Yh.js → components-gvRA0oaI.js} +33 -29
  19. package/dist/{config-schema-DC5kDtQ5.js → config-schema-B797-Spt.js} +21 -14
  20. package/dist/{conversation-binding-route-D6rCQ5S0.js → conversation-binding-route-DPpBRpYI.js} +1 -1
  21. package/dist/{directory-config-XyCfoqLg.js → directory-config-AA8wQx0D.js} +2 -2
  22. package/dist/directory-contract-api.js +1 -1
  23. package/dist/{directory-live-Df0NbFJB.js → directory-live-D_kFz_Fj.js} +4 -4
  24. package/dist/{doctor-DYY31GrO.js → doctor-QQTOkBfW.js} +5 -5
  25. package/dist/{doctor-contract-DsWvKIXF.js → doctor-contract-Co5vRCZ6.js} +9 -6
  26. package/dist/doctor-contract-api.js +4 -3
  27. package/dist/{handle-action.guild-admin-6Tvvinsa.js → handle-action.guild-admin-Cc88ZGon.js} +9 -5
  28. package/dist/index.js +1 -1
  29. package/dist/ingress-identity-BCzfPPYM.js +60 -0
  30. package/dist/{message-handler-B61q5MOF.js → message-handler-CAeEpqWo.js} +14 -10
  31. package/dist/{message-handler.preflight-Bzg_Hawz.js → message-handler.preflight-CoKoE3dY.js} +32 -91
  32. package/dist/{message-handler.process--4_712Ec.js → message-handler.process-cdIJ_fDT.js} +99 -123
  33. package/dist/{message-utils-BXLLnFl6.js → message-text-C0K4-fkg.js} +41 -34
  34. package/dist/{outbound-adapter-DxHTOqiN.js → outbound-adapter-Ch0At5Ra.js} +85 -78
  35. package/dist/{outbound-components-B2PL0ooH.js → outbound-components-Bnt_7x7r.js} +5 -4
  36. package/dist/outbound-session-route-CzzerX2K.js +668 -0
  37. package/dist/{owner-access-Bg41VzAf.js → owner-access-yc1sX7Gx.js} +7 -6
  38. package/dist/{pluralkit-dUl4v1X3.js → pluralkit-B3cUVI7i.js} +2 -2
  39. package/dist/{probe-BTdtVRwU.js → probe-3ovFAp3b.js} +3 -3
  40. package/dist/{probe.runtime-Dq5-PRKT.js → probe.runtime-BckHn3cJ.js} +1 -1
  41. package/dist/{provider-DlK_ynqt.js → provider-CjI8BSzS.js} +511 -342
  42. package/dist/{provider-session.runtime-CvvphHvs.js → provider-session.runtime-DdKRMcE9.js} +3 -3
  43. package/dist/provider.runtime-Bo1WbLLr.js +2 -0
  44. package/dist/{realtime-session.runtime-ysbMG8v7.js → realtime-session.runtime-37IC-p5K.js} +110 -126
  45. package/dist/{resolve-allowlist-common-DIVXbD1P.js → resolve-allowlist-common-BJ5UZNNT.js} +3 -3
  46. package/dist/{resolve-channels-CGeUoIqb.js → resolve-channels-BexR2eUn.js} +6 -5
  47. package/dist/{resolve-users-BtKxLUZv.js → resolve-users-BtXBCH5W.js} +5 -4
  48. package/dist/{retry-after-DdLPmPoa.js → retry-after-BrLjLUJi.js} +2 -1
  49. package/dist/{retry-DNsVTeTo.js → retry-t5RcEsPk.js} +237 -15
  50. package/dist/{runtime-CQovMsH3.js → runtime-BNlDfLwS.js} +2 -2
  51. package/dist/{runtime-D71_VFLr.js → runtime-DydyfxST.js} +182 -131
  52. package/dist/runtime-api.js +19 -26
  53. package/dist/{secret-config-contract-B3i6WxV5.js → secret-config-contract-DFu9hfU8.js} +14 -6
  54. package/dist/secret-contract-api.js +1 -1
  55. package/dist/{security-audit-BfJhAXZp.js → security-audit-DKfK-iPY.js} +10 -11
  56. package/dist/security-audit-contract-api.js +1 -1
  57. package/dist/{security-audit.runtime-BVKF9VtY.js → security-audit.runtime-sKZyKgpx.js} +1 -1
  58. package/dist/{send-rQIffSYu.js → send-mTKSBdmZ.js} +149 -58
  59. package/dist/{send.components-ChK1wS7w.js → send.components-nsPnc7kK.js} +29 -30
  60. package/dist/{send.outbound-HIkgji_7.js → send.outbound-CaOs9Zy1.js} +87 -84
  61. package/dist/{send.shared-B3fpaLWJ.js → send.shared-BJHt0Vyf.js} +55 -33
  62. package/dist/{sender-identity-BJtfyise.js → sender-identity-Dt0imZyY.js} +1 -1
  63. package/dist/setup-plugin-api.js +1 -1
  64. package/dist/{shared-CaAaoksy.js → shared-BNesVA4P.js} +43 -18
  65. package/dist/{subagent-hooks-CNT2ZJTJ.js → subagent-hooks-IeZVPLGj.js} +2 -2
  66. package/dist/subagent-hooks-api.js +1 -6
  67. package/dist/{system-events-Nuwoq_au.js → system-events-Be5EJI3b.js} +2 -2
  68. package/dist/{target-resolver-DIXShHaZ.js → target-resolver-C0MnwEki.js} +6 -5
  69. package/dist/targets-DQSye1Rv.js +3 -0
  70. package/dist/{thread-bindings-VlymUnbz.js → thread-bindings-wECUSIIG.js} +6 -6
  71. package/dist/{thread-bindings.manager-CngsgErq.js → thread-bindings.manager-B-3UHCc1.js} +31 -32
  72. package/dist/{thread-bindings.session-updates-CJb-BpPL.js → thread-bindings.session-updates-CC7HoQvt.js} +2 -1
  73. package/dist/{threading-DU6pgeGm.js → threading-te5ADPQI.js} +51 -27
  74. package/dist/{timeouts-B9cy6RvQ.js → timeouts-D86uWLt_.js} +1 -1
  75. package/dist/{transcripts-source-DeIMNbRh.js → transcripts-source-DkUhR7YK.js} +9 -4
  76. package/dist/transcripts-source-api.js +1 -1
  77. package/dist/{typing-oLiS5Z13.js → typing-DAwJF5VT.js} +2 -2
  78. package/dist/{voice-runtime-CjNFaynA.js → voice-runtime-COyYYTDD.js} +418 -74
  79. package/node_modules/@discord/embedded-app-sdk/node_modules/@types/lodash/README.md +1 -1
  80. package/node_modules/@discord/embedded-app-sdk/node_modules/@types/lodash/conforms.d.ts +2 -0
  81. package/node_modules/@discord/embedded-app-sdk/node_modules/@types/lodash/package.json +3 -3
  82. package/node_modules/@discord/embedded-app-sdk/node_modules/@types/lodash/stubArray.d.ts +2 -0
  83. package/node_modules/@discord/embedded-app-sdk/node_modules/@types/lodash/stubObject.d.ts +2 -0
  84. package/node_modules/@discord/embedded-app-sdk/node_modules/@types/lodash/stubString.d.ts +2 -0
  85. package/node_modules/@discord/embedded-app-sdk/node_modules/uuid/README.md +19 -19
  86. package/node_modules/@discord/embedded-app-sdk/node_modules/uuid/dist/v1.js +7 -3
  87. package/node_modules/@discord/embedded-app-sdk/node_modules/uuid/dist/v7.js +5 -2
  88. package/node_modules/@discord/embedded-app-sdk/node_modules/uuid/dist-node/v1.js +7 -3
  89. package/node_modules/@discord/embedded-app-sdk/node_modules/uuid/dist-node/v7.js +5 -2
  90. package/node_modules/@discord/embedded-app-sdk/node_modules/uuid/package.json +4 -3
  91. package/node_modules/@discordjs/voice/node_modules/@types/node/README.md +1 -1
  92. package/node_modules/@discordjs/voice/node_modules/@types/node/child_process.d.ts +0 -1
  93. package/node_modules/@discordjs/voice/node_modules/@types/node/crypto.d.ts +6 -6
  94. package/node_modules/@discordjs/voice/node_modules/@types/node/dns/promises.d.ts +5 -5
  95. package/node_modules/@discordjs/voice/node_modules/@types/node/dns.d.ts +5 -5
  96. package/node_modules/@discordjs/voice/node_modules/@types/node/fs.d.ts +7 -0
  97. package/node_modules/@discordjs/voice/node_modules/@types/node/http.d.ts +30 -0
  98. package/node_modules/@discordjs/voice/node_modules/@types/node/http2.d.ts +4 -4
  99. package/node_modules/@discordjs/voice/node_modules/@types/node/os.d.ts +30 -30
  100. package/node_modules/@discordjs/voice/node_modules/@types/node/package.json +2 -2
  101. package/node_modules/@discordjs/voice/node_modules/@types/node/perf_hooks.d.ts +2 -1
  102. package/node_modules/@discordjs/voice/node_modules/@types/node/process.d.ts +42 -43
  103. package/node_modules/@discordjs/voice/node_modules/@types/node/quic.d.ts +1049 -84
  104. package/node_modules/@discordjs/voice/node_modules/@types/node/sqlite.d.ts +14 -1
  105. package/node_modules/@discordjs/voice/node_modules/@types/node/stream/iter.d.ts +3 -2
  106. package/node_modules/@discordjs/voice/node_modules/@types/node/test.d.ts +61 -0
  107. package/node_modules/@discordjs/voice/node_modules/@types/node/v8.d.ts +20 -23
  108. package/node_modules/discord-api-types/CHANGELOG.md +8 -0
  109. package/node_modules/discord-api-types/package.json +4 -4
  110. package/node_modules/discord-api-types/payloads/v10/channel.d.ts +2 -2
  111. package/node_modules/discord-api-types/payloads/v10/channel.d.ts.map +1 -1
  112. package/node_modules/discord-api-types/payloads/v10/gateway.d.ts +4 -0
  113. package/node_modules/discord-api-types/payloads/v10/gateway.d.ts.map +1 -1
  114. package/node_modules/discord-api-types/payloads/v10/gateway.js.map +1 -1
  115. package/node_modules/discord-api-types/payloads/v10/message.d.ts +4 -1
  116. package/node_modules/discord-api-types/payloads/v10/message.d.ts.map +1 -1
  117. package/node_modules/discord-api-types/payloads/v10/message.js +1 -0
  118. package/node_modules/discord-api-types/payloads/v10/message.js.map +1 -1
  119. package/node_modules/discord-api-types/payloads/v9/channel.d.ts +2 -2
  120. package/node_modules/discord-api-types/payloads/v9/channel.d.ts.map +1 -1
  121. package/node_modules/discord-api-types/payloads/v9/gateway.d.ts +4 -0
  122. package/node_modules/discord-api-types/payloads/v9/gateway.d.ts.map +1 -1
  123. package/node_modules/discord-api-types/payloads/v9/gateway.js.map +1 -1
  124. package/node_modules/discord-api-types/payloads/v9/message.d.ts +4 -1
  125. package/node_modules/discord-api-types/payloads/v9/message.d.ts.map +1 -1
  126. package/node_modules/discord-api-types/payloads/v9/message.js +1 -0
  127. package/node_modules/discord-api-types/payloads/v9/message.js.map +1 -1
  128. package/node_modules/typebox/build/format/date.d.mts +1 -1
  129. package/node_modules/typebox/build/format/date.mjs +1 -1
  130. package/node_modules/typebox/build/format/date_time.d.mts +2 -2
  131. package/node_modules/typebox/build/format/date_time.mjs +3 -3
  132. package/node_modules/typebox/build/format/email.d.mts +1 -1
  133. package/node_modules/typebox/build/format/email.mjs +2 -2
  134. package/node_modules/typebox/build/format/hostname.mjs +2 -10
  135. package/node_modules/typebox/build/format/idn_email.d.mts +1 -1
  136. package/node_modules/typebox/build/format/idn_email.mjs +3 -3
  137. package/node_modules/typebox/build/format/idn_hostname.d.mts +1 -0
  138. package/node_modules/typebox/build/format/idn_hostname.mjs +3 -11
  139. package/node_modules/typebox/build/format/idna/format/bidi.d.mts +3 -0
  140. package/node_modules/typebox/build/format/idna/format/bidi.mjs +98 -0
  141. package/node_modules/typebox/build/format/idna/format/puny.d.mts +3 -0
  142. package/node_modules/typebox/build/format/idna/format/puny.mjs +144 -0
  143. package/node_modules/typebox/build/format/idna/hostname.d.mts +1 -0
  144. package/node_modules/typebox/build/format/idna/hostname.mjs +16 -0
  145. package/node_modules/typebox/build/format/idna/idn-hostname.d.mts +1 -0
  146. package/node_modules/typebox/build/format/idna/idn-hostname.mjs +41 -0
  147. package/node_modules/typebox/build/format/idna/index.d.mts +2 -0
  148. package/node_modules/typebox/build/format/idna/index.mjs +2 -0
  149. package/node_modules/typebox/build/format/idna/label/ascii.d.mts +1 -0
  150. package/node_modules/typebox/build/format/idna/label/ascii.mjs +9 -0
  151. package/node_modules/typebox/build/format/idna/label/puny.d.mts +1 -0
  152. package/node_modules/typebox/build/format/idna/label/puny.mjs +28 -0
  153. package/node_modules/typebox/build/format/idna/label/unicode.d.mts +1 -0
  154. package/node_modules/typebox/build/format/idna/label/unicode.mjs +106 -0
  155. package/node_modules/typebox/build/format/idna/pattern/pattern.d.mts +30 -0
  156. package/node_modules/typebox/build/format/idna/pattern/pattern.mjs +70 -0
  157. package/node_modules/typebox/build/format/ipv4.d.mts +0 -1
  158. package/node_modules/typebox/build/format/ipv4.mjs +2 -32
  159. package/node_modules/typebox/build/format/ipv6.mjs +2 -61
  160. package/node_modules/typebox/build/format/iri.d.mts +2 -2
  161. package/node_modules/typebox/build/format/iri.mjs +26 -8
  162. package/node_modules/typebox/build/format/iri_reference.d.mts +2 -2
  163. package/node_modules/typebox/build/format/iri_reference.mjs +9 -55
  164. package/node_modules/typebox/build/format/regex.d.mts +1 -2
  165. package/node_modules/typebox/build/format/regex.mjs +2 -6
  166. package/node_modules/typebox/build/format/time.d.mts +2 -2
  167. package/node_modules/typebox/build/format/time.mjs +19 -14
  168. package/node_modules/typebox/build/format/uri.d.mts +1 -1
  169. package/node_modules/typebox/build/format/uri.mjs +3 -130
  170. package/node_modules/typebox/build/format/uri_reference.d.mts +1 -1
  171. package/node_modules/typebox/build/format/uri_reference.mjs +2 -3
  172. package/node_modules/typebox/build/format/uri_template.d.mts +2 -3
  173. package/node_modules/typebox/build/format/uri_template.mjs +4 -5
  174. package/node_modules/typebox/build/format/url.d.mts +3 -3
  175. package/node_modules/typebox/build/format/url.mjs +4 -5
  176. package/node_modules/typebox/build/guard/emit.d.mts +3 -1
  177. package/node_modules/typebox/build/guard/emit.mjs +12 -5
  178. package/node_modules/typebox/build/guard/guard.d.mts +8 -2
  179. package/node_modules/typebox/build/guard/guard.mjs +25 -4
  180. package/node_modules/typebox/build/guard/string.d.mts +2 -2
  181. package/node_modules/typebox/build/guard/string.mjs +7 -7
  182. package/node_modules/typebox/build/schema/engine/_context.mjs +3 -3
  183. package/node_modules/typebox/build/schema/engine/_functions.mjs +1 -2
  184. package/node_modules/typebox/build/schema/engine/_regexp.d.mts +2 -0
  185. package/node_modules/typebox/build/schema/engine/_regexp.mjs +4 -0
  186. package/node_modules/typebox/build/schema/engine/_stack.mjs +12 -13
  187. package/node_modules/typebox/build/schema/engine/additionalItems.mjs +17 -7
  188. package/node_modules/typebox/build/schema/engine/additionalProperties.mjs +4 -3
  189. package/node_modules/typebox/build/schema/engine/contains.mjs +18 -6
  190. package/node_modules/typebox/build/schema/engine/enum.mjs +1 -1
  191. package/node_modules/typebox/build/schema/engine/items.mjs +26 -6
  192. package/node_modules/typebox/build/schema/engine/maxContains.mjs +3 -3
  193. package/node_modules/typebox/build/schema/engine/minContains.mjs +14 -4
  194. package/node_modules/typebox/build/schema/engine/not.mjs +4 -2
  195. package/node_modules/typebox/build/schema/engine/oneOf.mjs +7 -6
  196. package/node_modules/typebox/build/schema/engine/pattern.mjs +3 -2
  197. package/node_modules/typebox/build/schema/engine/patternProperties.mjs +4 -3
  198. package/node_modules/typebox/build/schema/engine/ref.mjs +1 -7
  199. package/node_modules/typebox/build/schema/engine/schema.mjs +13 -4
  200. package/node_modules/typebox/build/schema/engine/type.mjs +1 -1
  201. package/node_modules/typebox/build/schema/resolve/resolve.d.mts +4 -1
  202. package/node_modules/typebox/build/schema/resolve/resolve.mjs +202 -1
  203. package/node_modules/typebox/build/schema/static/propertyNames.d.mts +5 -0
  204. package/node_modules/typebox/build/schema/static/propertyNames.mjs +3 -0
  205. package/node_modules/typebox/build/schema/static/schema.d.mts +3 -0
  206. package/node_modules/typebox/build/schema/types/index.d.mts +0 -2
  207. package/node_modules/typebox/build/schema/types/index.mjs +0 -2
  208. package/node_modules/typebox/build/system/memory/clone.mjs +14 -11
  209. package/node_modules/typebox/build/system/memory/discard.mjs +6 -5
  210. package/node_modules/typebox/build/system/settings/settings.d.mts +9 -0
  211. package/node_modules/typebox/build/system/settings/settings.mjs +2 -0
  212. package/node_modules/typebox/build/type/engine/call/distribute_arguments.d.mts +6 -1
  213. package/node_modules/typebox/build/type/engine/call/distribute_arguments.mjs +16 -3
  214. package/node_modules/typebox/build/type/engine/call/instantiate.mjs +34 -4
  215. package/node_modules/typebox/build/type/engine/evaluate/broaden.d.mts +5 -5
  216. package/node_modules/typebox/build/type/engine/evaluate/broaden.mjs +20 -26
  217. package/node_modules/typebox/build/type/engine/evaluate/compare.d.mts +6 -10
  218. package/node_modules/typebox/build/type/engine/evaluate/compare.mjs +9 -13
  219. package/node_modules/typebox/build/type/engine/evaluate/composite.d.mts +7 -4
  220. package/node_modules/typebox/build/type/engine/evaluate/composite.mjs +12 -19
  221. package/node_modules/typebox/build/type/engine/evaluate/distribute.d.mts +4 -20
  222. package/node_modules/typebox/build/type/engine/evaluate/distribute.mjs +8 -20
  223. package/node_modules/typebox/build/type/engine/evaluate/evaluate.d.mts +4 -4
  224. package/node_modules/typebox/build/type/engine/evaluate/evaluate.mjs +11 -8
  225. package/node_modules/typebox/build/type/engine/evaluate/flatten.d.mts +1 -1
  226. package/node_modules/typebox/build/type/engine/evaluate/flatten.mjs +3 -4
  227. package/node_modules/typebox/build/type/engine/evaluate/narrow.d.mts +17 -2
  228. package/node_modules/typebox/build/type/engine/evaluate/narrow.mjs +26 -6
  229. package/node_modules/typebox/build/type/engine/exclude/operation.mjs +3 -4
  230. package/node_modules/typebox/build/type/engine/extract/operation.d.mts +1 -1
  231. package/node_modules/typebox/build/type/engine/extract/operation.mjs +3 -4
  232. package/node_modules/typebox/build/type/engine/priority/priority.d.mts +2 -2
  233. package/node_modules/typebox/build/type/engine/priority/priority.mjs +3 -4
  234. package/node_modules/typebox/build/type/script/mapping.d.mts +32 -29
  235. package/node_modules/typebox/build/type/script/mapping.mjs +18 -25
  236. package/node_modules/typebox/build/type/script/parser.d.mts +19 -25
  237. package/node_modules/typebox/build/type/script/parser.mjs +27 -23
  238. package/node_modules/typebox/build/value/errors/errors.d.mts +2 -2
  239. package/node_modules/typebox/build/value/errors/errors.mjs +1 -1
  240. package/node_modules/typebox/package.json +27 -27
  241. package/node_modules/typebox/readme.md +79 -82
  242. package/node_modules/undici/docs/docs/api/Client.md +21 -8
  243. package/node_modules/undici/lib/api/readable.js +33 -43
  244. package/node_modules/undici/lib/core/connect.js +16 -2
  245. package/node_modules/undici/lib/core/symbols.js +1 -0
  246. package/node_modules/undici/lib/dispatcher/client-h1.js +3 -3
  247. package/node_modules/undici/lib/dispatcher/client-h2.js +179 -10
  248. package/node_modules/undici/lib/dispatcher/client.js +74 -29
  249. package/node_modules/undici/lib/dispatcher/env-http-proxy-agent.js +28 -6
  250. package/node_modules/undici/lib/dispatcher/socks5-proxy-agent.js +15 -1
  251. package/node_modules/undici/lib/handler/retry-handler.js +7 -2
  252. package/node_modules/undici/lib/interceptor/cache.js +5 -2
  253. package/node_modules/undici/lib/interceptor/deduplicate.js +1 -1
  254. package/node_modules/undici/lib/mock/mock-utils.js +213 -24
  255. package/node_modules/undici/lib/util/cache.js +2 -4
  256. package/node_modules/undici/lib/web/websocket/websocket.js +22 -0
  257. package/node_modules/undici/package.json +1 -1
  258. package/node_modules/undici/types/client.d.ts +40 -0
  259. package/node_modules/ws/lib/permessage-deflate.js +3 -1
  260. package/node_modules/ws/package.json +1 -1
  261. package/openclaw.plugin.json +14 -6
  262. package/package.json +8 -8
  263. package/skills/discord/SKILL.md +1 -1
  264. package/dist/account-inspect-D5xmUpnj.js +0 -89
  265. package/dist/approval-message-safety-XGFPbDoI.js +0 -226
  266. package/dist/audit-core-BCX8UeFH.js +0 -105
  267. package/dist/channel-actions-Dr2QI8Bf.js +0 -212
  268. package/dist/inbound-event-delivery-De2qxTrP.js +0 -39
  269. package/dist/provider.runtime-CzKGRiAF.js +0 -2
  270. package/dist/runtime-api.actions.js +0 -3
  271. package/dist/runtime-api.lookup.js +0 -7
  272. package/dist/runtime-api.monitor-CzeTYF32.js +0 -6
  273. package/dist/runtime-api.monitor.js +0 -9
  274. package/dist/runtime-api.send.js +0 -7
  275. package/dist/runtime-api.threads.js +0 -5
  276. package/dist/sdk-runtime-37OU6_Yh.js +0 -369
  277. package/dist/send.reactions-gmJ6yFPo.js +0 -78
  278. package/dist/send.receipt-Cnhoautb.js +0 -76
  279. package/dist/subagent-progress-FPLqBY1s.js +0 -110
  280. package/dist/targets-B2pf49zc.js +0 -3
  281. package/node_modules/typebox/build/format/_idna.d.mts +0 -2
  282. package/node_modules/typebox/build/format/_idna.mjs +0 -246
  283. package/node_modules/typebox/build/format/_puny.d.mts +0 -1
  284. package/node_modules/typebox/build/format/_puny.mjs +0 -77
  285. package/node_modules/typebox/build/schema/resolve/ref.d.mts +0 -3
  286. package/node_modules/typebox/build/schema/resolve/ref.mjs +0 -146
  287. package/node_modules/typebox/build/schema/types/contentEncoding.d.mts +0 -9
  288. package/node_modules/typebox/build/schema/types/contentEncoding.mjs +0 -13
  289. package/node_modules/typebox/build/schema/types/contentMediaType.d.mts +0 -9
  290. package/node_modules/typebox/build/schema/types/contentMediaType.mjs +0 -13
@@ -17,6 +17,7 @@ const {
17
17
  }
18
18
  } = require('node:util')
19
19
  const { InvalidArgumentError } = require('../core/errors')
20
+ const requestAborted = Symbol('request aborted')
20
21
 
21
22
  function matchValue (match, value) {
22
23
  if (typeof match === 'string') {
@@ -153,6 +154,11 @@ function getResponseData (data) {
153
154
  return data
154
155
  } else if (data instanceof ArrayBuffer) {
155
156
  return data
157
+ } else if (ArrayBuffer.isView(data)) {
158
+ // A DataView, or any non-Uint8Array typed array, is a byte container
159
+ // rather than a plain object. Buffer.from() cannot read one directly, so
160
+ // expose the bytes it covers instead of letting it reach JSON.stringify.
161
+ return new Uint8Array(data.buffer, data.byteOffset, data.byteLength)
156
162
  } else if (typeof data === 'object') {
157
163
  return JSON.stringify(data)
158
164
  } else if (data) {
@@ -225,9 +231,15 @@ function deleteMockDispatch (mockDispatches, key) {
225
231
  }
226
232
 
227
233
  /**
228
- * @param {string} path Path to remove trailing slash from
234
+ * @param {string|RegExp|Function} path Path, or path matcher, to remove trailing slash from
229
235
  */
230
236
  function removeTrailingSlash (path) {
237
+ // Registered path matchers may be a RegExp or a function, which have no
238
+ // trailing slash to strip; hand those back for matchValue to apply.
239
+ if (typeof path !== 'string') {
240
+ return path
241
+ }
242
+
231
243
  while (path.endsWith('/')) {
232
244
  path = path.slice(0, -1)
233
245
  }
@@ -302,9 +314,13 @@ function mockDispatch (opts, handler) {
302
314
  mockDispatch.consumed = !mockDispatch.persist && timesInvoked >= times
303
315
  mockDispatch.pending = timesInvoked < times
304
316
 
317
+ const hasBodyHooks = typeof handler.onBodySent === 'function' ||
318
+ typeof handler.onRequestSent === 'function'
319
+
305
320
  // Here's where we resolve a callback if a callback is present for the dispatch data.
306
- if (mockDispatch.data.callback) {
307
- const callbackResult = mockDispatch.data.callback(opts)
321
+ if (mockDispatch.data.callback && (!hasBodyHooks || opts.body == null)) {
322
+ const { callback, ...responseDefaults } = mockDispatch.data
323
+ const callbackResult = callback(opts)
308
324
 
309
325
  // An asynchronous reply options callback resolves to the reply data, so
310
326
  // the dispatch can only continue once the returned promise settles.
@@ -313,18 +329,25 @@ function mockDispatch (opts, handler) {
313
329
  if (isPromise(callbackResult)) {
314
330
  callbackResult.then(
315
331
  (resolvedData) => {
316
- mockDispatch.data = { ...mockDispatch.data, ...resolvedData }
332
+ if (resolvedData == null || typeof resolvedData !== 'object') {
333
+ handler.onResponseError(null, new InvalidArgumentError('reply options callback must return an object'))
334
+ return
335
+ }
336
+ mockDispatch.data = { ...responseDefaults, ...resolvedData }
317
337
  dispatchMockReply(mockDispatches, mockDispatch, key, opts, handler)
318
338
  },
319
339
  (error) => {
320
- deleteMockDispatch(mockDispatches, key)
321
340
  handler.onResponseError(null, error)
322
341
  }
323
342
  )
324
343
  return true
325
344
  }
326
345
 
327
- mockDispatch.data = { ...mockDispatch.data, ...callbackResult }
346
+ if (callbackResult == null || typeof callbackResult !== 'object') {
347
+ throw new InvalidArgumentError('reply options callback must return an object')
348
+ }
349
+
350
+ mockDispatch.data = { ...responseDefaults, ...callbackResult }
328
351
  }
329
352
 
330
353
  return dispatchMockReply(mockDispatches, mockDispatch, key, opts, handler)
@@ -335,12 +358,12 @@ function mockDispatch (opts, handler) {
335
358
  */
336
359
  function dispatchMockReply (mockDispatches, mockDispatch, key, opts, handler) {
337
360
  // Parse mockDispatch data
338
- const { data: { statusCode, data, headers, trailers, error }, delay } = mockDispatch
361
+ const { data: response, delay } = mockDispatch
339
362
 
340
363
  // If specified, trigger dispatch error
341
- if (error !== null) {
364
+ if (response.error !== null) {
342
365
  deleteMockDispatch(mockDispatches, key)
343
- handler.onResponseError(null, error)
366
+ handler.onResponseError(null, response.error)
344
367
  return true
345
368
  }
346
369
 
@@ -375,32 +398,107 @@ function dispatchMockReply (mockDispatches, mockDispatch, key, opts, handler) {
375
398
  }
376
399
  }
377
400
 
401
+ let replyOpts = opts
402
+ const dispatches = mockDispatches
403
+
378
404
  // Call onRequestStart to allow the handler to receive the controller
379
405
  handler.onRequestStart?.(controller, null)
380
406
 
381
- // Handle the request with a delay if necessary
382
- if (typeof delay === 'number' && delay > 0) {
383
- timer = setTimeout(() => {
384
- timer = null
385
- handleReply(mockDispatches)
386
- }, delay)
387
- } else {
388
- handleReply(mockDispatches)
407
+ if (aborted) {
408
+ return true
409
+ }
410
+
411
+ const requestBody = dispatchRequestBody(opts.body, handler, controller, () => aborted)
412
+
413
+ if (isPromise(requestBody)) {
414
+ requestBody.then((body) => {
415
+ if (body === requestAborted) {
416
+ return
417
+ }
418
+
419
+ if (body !== opts.body) {
420
+ replyOpts = { ...opts, body }
421
+ }
422
+
423
+ sendReply()
424
+ }, (error) => controller.abort(error))
425
+ return true
426
+ }
427
+
428
+ if (requestBody === requestAborted) {
429
+ return true
430
+ }
431
+
432
+ if (requestBody !== opts.body) {
433
+ replyOpts = { ...opts, body: requestBody }
434
+ }
435
+
436
+ sendReply()
437
+
438
+ function sendReply () {
439
+ if (response.callback) {
440
+ const { callback, ...responseDefaults } = response
441
+ let callbackResult
442
+ try {
443
+ callbackResult = callback(replyOpts)
444
+ } catch (err) {
445
+ deleteMockDispatch(mockDispatches, key)
446
+ handler.onResponseError(null, err)
447
+ return
448
+ }
449
+
450
+ if (isPromise(callbackResult)) {
451
+ callbackResult.then(
452
+ (resolvedData) => {
453
+ if (resolvedData == null || typeof resolvedData !== 'object') {
454
+ handler.onResponseError(null, new InvalidArgumentError('reply options callback must return an object'))
455
+ return
456
+ }
457
+ mockDispatch.data = { ...responseDefaults, ...resolvedData }
458
+ handleReply(dispatches, mockDispatch.data)
459
+ },
460
+ (err) => {
461
+ handler.onResponseError(null, err)
462
+ }
463
+ )
464
+ return
465
+ }
466
+
467
+ if (callbackResult == null || typeof callbackResult !== 'object') {
468
+ throw new InvalidArgumentError('reply options callback must return an object')
469
+ }
470
+
471
+ mockDispatch.data = { ...responseDefaults, ...callbackResult }
472
+ handleReply(dispatches, mockDispatch.data)
473
+ return
474
+ }
475
+
476
+ // Handle the request with a delay if necessary
477
+ if (typeof delay === 'number' && delay > 0) {
478
+ timer = setTimeout(() => {
479
+ timer = null
480
+ handleReply(dispatches)
481
+ }, delay)
482
+ } else {
483
+ handleReply(dispatches)
484
+ }
389
485
  }
390
486
 
391
- function handleReply (mockDispatches, _data = data) {
487
+ function handleReply (mockDispatches, _response = response) {
392
488
  // Don't send response if the request was aborted
393
489
  if (aborted) {
394
490
  return
395
491
  }
396
492
 
493
+ const { statusCode, data, headers, trailers } = _response
494
+
397
495
  // fetch's HeadersList is a 1D string array
398
496
  const optsHeaders = Array.isArray(opts.headers)
399
497
  ? buildHeadersFromArray(opts.headers)
400
498
  : opts.headers
401
- const body = typeof _data === 'function'
402
- ? _data({ ...opts, headers: optsHeaders })
403
- : _data
499
+ const body = typeof data === 'function'
500
+ ? data({ ...replyOpts, headers: optsHeaders })
501
+ : data
404
502
 
405
503
  // util.types.isPromise is likely needed for jest.
406
504
  if (isPromise(body)) {
@@ -409,7 +507,7 @@ function dispatchMockReply (mockDispatches, mockDispatch, key, opts, handler) {
409
507
  // synchronously throw the error, which breaks some tests.
410
508
  // Rather, we wait for the callback to resolve if it is a
411
509
  // promise, and then re-run handleReply with the new body.
412
- return body.then((newData) => handleReply(mockDispatches, newData))
510
+ return body.then((newData) => handleReply(mockDispatches, { ..._response, data: newData }))
413
511
  }
414
512
 
415
513
  // Check again if aborted after async body resolution
@@ -418,8 +516,8 @@ function dispatchMockReply (mockDispatches, mockDispatch, key, opts, handler) {
418
516
  }
419
517
 
420
518
  const responseData = getResponseData(body)
421
- const responseHeaders = generateKeyValues(headers)
422
- const responseTrailers = generateKeyValues(trailers)
519
+ const responseHeaders = generateKeyValues(headers ?? {})
520
+ const responseTrailers = generateKeyValues(trailers ?? {})
423
521
 
424
522
  // Update the controller with response data
425
523
  controller.rawHeaders = responseHeaders
@@ -434,6 +532,97 @@ function dispatchMockReply (mockDispatches, mockDispatch, key, opts, handler) {
434
532
  return true
435
533
  }
436
534
 
535
+ function dispatchRequestBody (body, handler, controller, isAborted) {
536
+ if (typeof handler.onBodySent !== 'function' && typeof handler.onRequestSent !== 'function') {
537
+ return body
538
+ }
539
+
540
+ if (body == null) {
541
+ return callOnRequestSent(handler, controller, isAborted) ? body : requestAborted
542
+ }
543
+
544
+ if (body && typeof body[Symbol.asyncIterator] === 'function') {
545
+ return dispatchAsyncIterableBody(body, handler, controller, isAborted)
546
+ }
547
+
548
+ if (isIterableBody(body)) {
549
+ const chunks = []
550
+
551
+ for (const chunk of body) {
552
+ if (isAborted()) {
553
+ return requestAborted
554
+ }
555
+ chunks.push(chunk)
556
+ if (!callOnBodySent(handler, controller, chunk) || isAborted()) {
557
+ return requestAborted
558
+ }
559
+ }
560
+
561
+ return callOnRequestSent(handler, controller, isAborted) ? chunks : requestAborted
562
+ }
563
+
564
+ if (isAborted()) {
565
+ return requestAborted
566
+ }
567
+
568
+ if (!callOnBodySent(handler, controller, body)) {
569
+ return requestAborted
570
+ }
571
+
572
+ return callOnRequestSent(handler, controller, isAborted) ? body : requestAborted
573
+ }
574
+
575
+ async function dispatchAsyncIterableBody (body, handler, controller, isAborted) {
576
+ const chunks = []
577
+
578
+ for await (const chunk of body) {
579
+ if (isAborted()) {
580
+ return requestAborted
581
+ }
582
+ chunks.push(chunk)
583
+ if (!callOnBodySent(handler, controller, chunk) || isAborted()) {
584
+ return requestAborted
585
+ }
586
+ }
587
+
588
+ if (!callOnRequestSent(handler, controller, isAborted)) {
589
+ return requestAborted
590
+ }
591
+
592
+ return {
593
+ async * [Symbol.asyncIterator] () {
594
+ yield * chunks
595
+ }
596
+ }
597
+ }
598
+
599
+ function callOnBodySent (handler, controller, chunk) {
600
+ try {
601
+ handler.onBodySent?.(chunk)
602
+ return true
603
+ } catch (error) {
604
+ controller.abort(error)
605
+ return false
606
+ }
607
+ }
608
+
609
+ function callOnRequestSent (handler, controller, isAborted) {
610
+ try {
611
+ handler.onRequestSent?.()
612
+ return !isAborted()
613
+ } catch (error) {
614
+ controller.abort(error)
615
+ return false
616
+ }
617
+ }
618
+
619
+ function isIterableBody (body) {
620
+ return typeof body !== 'string' &&
621
+ !Buffer.isBuffer(body) &&
622
+ !ArrayBuffer.isView(body) &&
623
+ typeof body[Symbol.iterator] === 'function'
624
+ }
625
+
437
626
  function buildMockDispatch () {
438
627
  const agent = this[kMockAgent]
439
628
  const origin = this[kOrigin]
@@ -148,9 +148,7 @@ function getMalformedRestrictiveDirectiveName (key) {
148
148
  * @param {import('../../types/dispatcher.d.ts').default.DispatchOptions} opts
149
149
  */
150
150
  function makeCacheKey (opts) {
151
- if (!opts.origin) {
152
- throw new Error('opts.origin is undefined')
153
- }
151
+ const origin = opts.origin ? opts.origin.toString() : ''
154
152
 
155
153
  let fullPath = opts.path || '/'
156
154
 
@@ -159,7 +157,7 @@ function makeCacheKey (opts) {
159
157
  }
160
158
 
161
159
  return {
162
- origin: opts.origin.toString(),
160
+ origin,
163
161
  method: opts.method,
164
162
  path: fullPath,
165
163
  headers: opts.headers
@@ -25,6 +25,9 @@ const { SendQueue } = require('./sender')
25
25
  const { WebsocketFrameSend } = require('./frame')
26
26
  const { channels } = require('../../core/diagnostics')
27
27
 
28
+ const kRef = Symbol.for('nodejs.ref')
29
+ const kUnref = Symbol.for('nodejs.unref')
30
+
28
31
  function getSocketAddress (socket) {
29
32
  if (typeof socket?.address === 'function') {
30
33
  return socket.address()
@@ -68,6 +71,7 @@ class WebSocket extends EventTarget {
68
71
  #bufferedAmount = 0
69
72
  #protocol = ''
70
73
  #extensions = ''
74
+ #refed = true
71
75
 
72
76
  /** @type {SendQueue} */
73
77
  #sendQueue
@@ -194,6 +198,20 @@ class WebSocket extends EventTarget {
194
198
  this.#binaryType = 'blob'
195
199
  }
196
200
 
201
+ [kRef] () {
202
+ webidl.brandCheck(this, WebSocket)
203
+
204
+ this.#refed = true
205
+ this.#handler.socket?.ref?.()
206
+ }
207
+
208
+ [kUnref] () {
209
+ webidl.brandCheck(this, WebSocket)
210
+
211
+ this.#refed = false
212
+ this.#handler.socket?.unref?.()
213
+ }
214
+
197
215
  /**
198
216
  * @see https://websockets.spec.whatwg.org/#dom-websocket-close
199
217
  * @param {number|undefined} code
@@ -468,6 +486,10 @@ class WebSocket extends EventTarget {
468
486
  // once this happens, the connection is open
469
487
  this.#handler.socket = response.socket
470
488
 
489
+ if (!this.#refed) {
490
+ this.#handler.socket.unref?.()
491
+ }
492
+
471
493
  // Get options from dispatcher options
472
494
  const maxFragments = this.#handler.controller.dispatcher?.webSocketOptions?.maxFragments
473
495
  const maxPayloadSize = this.#handler.controller.dispatcher?.webSocketOptions?.maxPayloadSize
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "undici",
3
- "version": "8.9.0",
3
+ "version": "8.10.0",
4
4
  "description": "An HTTP/1.1 client, written from scratch for Node.js",
5
5
  "homepage": "https://undici.nodejs.org",
6
6
  "bugs": {
@@ -1,10 +1,15 @@
1
1
  import { URL } from 'node:url'
2
+ import { SessionOptions } from 'node:http2'
2
3
  import Dispatcher from './dispatcher'
3
4
  import buildConnector from './connector'
4
5
  import TClientStats from './client-stats'
5
6
 
6
7
  type ClientConnectOptions<TOpaque = null> = Omit<Dispatcher.ConnectOptions<TOpaque>, 'origin'>
7
8
 
9
+ // TODO: Pendings
10
+ // 1. Reflect this on Client instantiation
11
+ // 2. Client H2 should use this namespaced options instead.
12
+
8
13
  /**
9
14
  * A basic HTTP/1.1 client, mapped on top a single TCP/TLS connection. Pipelining is disabled by default.
10
15
  */
@@ -87,23 +92,31 @@ export declare namespace Client {
87
92
  /**
88
93
  * @description Dictates the maximum number of concurrent streams for a single H2 session. It can be overridden by a SETTINGS remote frame.
89
94
  * @default 100
95
+ * @deprecated Use h2Options.maxConcurrentStreams instead
90
96
  */
91
97
  maxConcurrentStreams?: number;
92
98
  /**
93
99
  * @description Sets the HTTP/2 stream-level flow-control window size (SETTINGS_INITIAL_WINDOW_SIZE).
94
100
  * @default 262144
101
+ * @deprecated Use h2Options.settings.initialWindowSize instead
95
102
  */
96
103
  initialWindowSize?: number;
97
104
  /**
98
105
  * @description Sets the HTTP/2 connection-level flow-control window size (ClientHttp2Session.setLocalWindowSize).
99
106
  * @default 524288
107
+ * @deprecated Use h2Options.connectionWindowSize instead
100
108
  */
101
109
  connectionWindowSize?: number;
102
110
  /**
103
111
  * @description Time interval between PING frames dispatch
104
112
  * @default 60000
113
+ * @deprecated Use h2Options.connectionWindowSize instead
105
114
  */
106
115
  pingInterval?: number;
116
+ /**
117
+ * @description HTTP/2 configuration options
118
+ */
119
+ h2Options?: Client.H2Options;
107
120
  }
108
121
  export interface SocketInfo {
109
122
  localAddress?: string
@@ -129,6 +142,33 @@ export declare namespace Client {
129
142
  */
130
143
  maxPayloadSize?: number;
131
144
  }
145
+
146
+ export interface H2Options extends Omit<SessionOptions, keyof buildConnector.BuildOptions> {
147
+ /**
148
+ * @description Sets the HTTP/2 connection-level flow-control window size (ClientHttp2Session.setLocalWindowSize).
149
+ * @default 524288
150
+ */
151
+ connectionWindowSize?: number;
152
+ /**
153
+ * @description Time interval between PING frames dispatch
154
+ * @default 60000
155
+ */
156
+ pingInterval?: number;
157
+ /**
158
+ * @description Dictates the maximum number of concurrent streams for a single H2 session. It can be overridden by a SETTINGS remote frame.
159
+ * @default 100
160
+ */
161
+ maxConcurrentStreams?: number;
162
+ /**
163
+ * @description Enable support for H2C (plain text)
164
+ * @default false
165
+ */
166
+ useH2c?: boolean;
167
+ /**
168
+ * @description SETTINGS frame object. Default to 'node:http2' defaults
169
+ */
170
+ settings?: Omit<SessionOptions['settings'], 'enablePush' | 'maxConcurrentStreams' | 'enableConnectProtocol'>
171
+ }
132
172
  }
133
173
 
134
174
  export default Client
@@ -167,7 +167,9 @@ class PerMessageDeflate {
167
167
  (typeof opts.serverMaxWindowBits === 'number' &&
168
168
  opts.serverMaxWindowBits > params.server_max_window_bits))) ||
169
169
  (typeof opts.clientMaxWindowBits === 'number' &&
170
- !params.client_max_window_bits)
170
+ (typeof params.client_max_window_bits === 'number'
171
+ ? opts.clientMaxWindowBits > params.client_max_window_bits
172
+ : !params.client_max_window_bits))
171
173
  ) {
172
174
  return false;
173
175
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ws",
3
- "version": "8.21.1",
3
+ "version": "8.21.3",
4
4
  "description": "Simple to use, blazing fast and thoroughly tested websocket client and server for Node.js",
5
5
  "keywords": [
6
6
  "HyBi",
@@ -63,6 +63,7 @@
63
63
  "type": "boolean"
64
64
  },
65
65
  "dmPolicy": {
66
+ "default": "pairing",
66
67
  "type": "string",
67
68
  "enum": [
68
69
  "pairing",
@@ -359,6 +360,9 @@
359
360
  }
360
361
  ]
361
362
  },
363
+ "joinIntro": {
364
+ "type": "boolean"
365
+ },
362
366
  "commands": {
363
367
  "type": "object",
364
368
  "properties": {
@@ -1892,7 +1896,6 @@
1892
1896
  "type": "string"
1893
1897
  },
1894
1898
  "groupPolicy": {
1895
- "default": "allowlist",
1896
1899
  "type": "string",
1897
1900
  "enum": [
1898
1901
  "open",
@@ -2170,6 +2173,9 @@
2170
2173
  }
2171
2174
  ]
2172
2175
  },
2176
+ "joinIntro": {
2177
+ "type": "boolean"
2178
+ },
2173
2179
  "commands": {
2174
2180
  "type": "object",
2175
2181
  "properties": {
@@ -3647,9 +3653,6 @@
3647
3653
  "additionalProperties": false
3648
3654
  }
3649
3655
  },
3650
- "required": [
3651
- "groupPolicy"
3652
- ],
3653
3656
  "additionalProperties": false
3654
3657
  }
3655
3658
  },
@@ -3658,6 +3661,7 @@
3658
3661
  }
3659
3662
  },
3660
3663
  "required": [
3664
+ "dmPolicy",
3661
3665
  "groupPolicy"
3662
3666
  ],
3663
3667
  "additionalProperties": false
@@ -3769,6 +3773,10 @@
3769
3773
  "label": "Discord Progress Command Text",
3770
3774
  "help": "Command/exec detail in progress draft lines: \"status\" is the safe default; \"raw\" opts into command text."
3771
3775
  },
3776
+ "joinIntro": {
3777
+ "label": "Discord Guild Join Introduction",
3778
+ "help": "Post one brief, room-specific introduction when the bot joins an allowed Discord guild (default: true). Account settings override the channel-wide setting."
3779
+ },
3772
3780
  "proxy": {
3773
3781
  "label": "Discord Proxy URL",
3774
3782
  "help": "Proxy URL for Discord gateway + API requests (app-id lookup and allowlist resolution). Set per account via channels.discord.accounts.<id>.proxy."
@@ -3787,11 +3795,11 @@
3787
3795
  },
3788
3796
  "threadBindings.enabled": {
3789
3797
  "label": "Discord Thread Binding Enabled",
3790
- "help": "Enable Discord thread binding features (/focus, bound-thread routing/delivery, and thread-bound subagent sessions). Overrides session.threadBindings.enabled when set."
3798
+ "help": "Enable Discord thread-bound session spawning, routing, and delivery. Overrides session.threadBindings.enabled when set."
3791
3799
  },
3792
3800
  "threadBindings.idleHours": {
3793
3801
  "label": "Discord Thread Binding Idle Timeout (hours)",
3794
- "help": "Inactivity window in hours for Discord thread-bound sessions (/focus and spawned thread sessions). Set 0 to disable idle auto-unfocus (default: 24). Overrides session.threadBindings.idleHours when set."
3802
+ "help": "Inactivity window in hours for Discord thread-bound sessions. Set 0 to disable idle expiry (default: 24). Overrides session.threadBindings.idleHours when set."
3795
3803
  },
3796
3804
  "threadBindings.maxAgeHours": {
3797
3805
  "label": "Discord Thread Binding Max Age (hours)",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@openclaw/discord",
3
- "version": "2026.8.1-beta.3",
3
+ "version": "2026.8.2",
4
4
  "description": "OpenClaw Discord channel plugin for channels, DMs, commands, and app events.",
5
5
  "repository": {
6
6
  "type": "git",
@@ -10,16 +10,16 @@
10
10
  "dependencies": {
11
11
  "@discord/embedded-app-sdk": "2.5.0",
12
12
  "@discordjs/voice": "0.19.2",
13
- "discord-api-types": "0.38.52",
13
+ "discord-api-types": "0.38.53",
14
14
  "libopus-wasm": "0.2.0",
15
15
  "mdast-util-from-markdown": "2.0.3",
16
- "typebox": "1.3.6",
17
- "undici": "8.9.0",
18
- "ws": "8.21.1",
16
+ "typebox": "1.3.17",
17
+ "undici": "8.10.0",
18
+ "ws": "8.21.3",
19
19
  "zod": "4.4.3"
20
20
  },
21
21
  "peerDependencies": {
22
- "openclaw": ">=2026.8.1-beta.3"
22
+ "openclaw": ">=2026.8.2"
23
23
  },
24
24
  "peerDependenciesMeta": {
25
25
  "openclaw": {
@@ -94,10 +94,10 @@
94
94
  "allowInvalidConfigRecovery": true
95
95
  },
96
96
  "compat": {
97
- "pluginApi": ">=2026.8.1-beta.3"
97
+ "pluginApi": ">=2026.8.2"
98
98
  },
99
99
  "build": {
100
- "openclawVersion": "2026.8.1-beta.3",
100
+ "openclawVersion": "2026.8.2",
101
101
  "staticAssets": [
102
102
  {
103
103
  "source": "./assets/embedded-app-sdk.mjs",
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: discord
3
3
  description: "Discord messaging workflows through OpenClaw's message tool."
4
- metadata: { "openclaw": { "emoji": "🎮", "requires": { "config": ["channels.discord.token"] } } }
4
+ metadata: { "openclaw": { "emoji": "🎮", "requires": { "config": ["channels.discord"] } } }
5
5
  allowed-tools: ["message"]
6
6
  ---
7
7