@openclaw/slack 2026.9.6 → 2026.9.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (291) hide show
  1. package/assets/icon.png +0 -0
  2. package/dist/.setup/{account-inspect-DP1Bcwj4.mjs → account-inspect-DWBXpER6.mjs} +1 -1
  3. package/dist/.setup/{accounts-BBHvg0pY.mjs → accounts-D_N9IqNA.mjs} +23 -1
  4. package/dist/.setup/{action-runtime-B01d85zt.mjs → action-runtime-DfWvuiZd.mjs} +26 -41
  5. package/dist/.setup/action-runtime.runtime-Ck4bAWOX.mjs +2 -0
  6. package/dist/.setup/{actions-DKCtBgCI.mjs → actions-Df0CzcDl.mjs} +88 -175
  7. package/dist/.setup/{approval-handler.runtime-DMszKn_7.mjs → approval-handler.runtime-Ed6Sw5VK.mjs} +37 -47
  8. package/dist/.setup/{approval-message-updates-Tb_qRokK.mjs → approval-message-updates-BadvtA7R.mjs} +1 -2
  9. package/dist/.setup/{channel-CErYZ5zw.mjs → channel-C7bgPSTE.mjs} +181 -273
  10. package/dist/.setup/channel-meta-C443t-lI.mjs +27 -0
  11. package/dist/.setup/{channel-type-Dxk8VJUb.mjs → channel-type-ClOttrZ5.mjs} +13 -21
  12. package/dist/.setup/{channel.setup-BVoUtdPn.mjs → channel.setup-Dh2jzAjN.mjs} +35 -42
  13. package/dist/.setup/{config-schema-CyL279e7.mjs → config-schema-BZCxmHKG.mjs} +24 -21
  14. package/dist/.setup/{directory-config-CQTSH45W.mjs → directory-config-BOUWH3hR.mjs} +7 -10
  15. package/dist/.setup/{directory-live-BCcj89QV.mjs → directory-live-B2O4B_Ho.mjs} +9 -21
  16. package/dist/.setup/doctor-contract-CRN1Z_c7.mjs +342 -0
  17. package/dist/.setup/{message-tool-api-C0PTFaNV.mjs → message-tool-api-Cu4lwlGy.mjs} +34 -48
  18. package/dist/.setup/{provider-C-jPaGt2.mjs → monitor-BPVfkumU.mjs} +2181 -2693
  19. package/dist/.setup/{outbound-adapter-A7Wdn8ZT.mjs → outbound-adapter-Bv48XUjq.mjs} +10 -21
  20. package/dist/.setup/{pipeline.runtime-BlPOexmJ.mjs → pipeline.runtime-B1H63Frf.mjs} +311 -457
  21. package/dist/.setup/{plugin-routes-C3X0eVaK.mjs → plugin-routes-B8tooDLj.mjs} +1 -1
  22. package/dist/.setup/{policy-BApW53pI.mjs → policy-D-jfM174.mjs} +5 -5
  23. package/dist/.setup/{probe-DiYIMPJo.mjs → probe-B2Y9qc_z.mjs} +101 -39
  24. package/dist/.setup/{registry-bbjH7IHX.mjs → registry-CIbMfuf8.mjs} +6 -2
  25. package/dist/.setup/{relay-source-DfOnjJTE.mjs → relay-source-BpKdjsll.mjs} +10 -12
  26. package/dist/.setup/{replies-BBAJxUOQ.mjs → replies-BAnUtr2f.mjs} +16 -76
  27. package/dist/.setup/{reply-blocks-Bm8kf6mK.mjs → reply-blocks-SE1kTE3I.mjs} +27 -154
  28. package/dist/.setup/{resolve-channels-BXbMBbJD.mjs → resolve-channels-XXBn8UU_.mjs} +4 -5
  29. package/dist/.setup/{resolve-users-65WqvIqD.mjs → resolve-users-DW0ngD03.mjs} +20 -22
  30. package/dist/.setup/{scopes-h3YB-mMs.mjs → scopes-CasuDvaa.mjs} +6 -17
  31. package/dist/.setup/{secret-contract-DxmvbxBF.mjs → secret-contract-BaZcu6P_.mjs} +15 -20
  32. package/dist/.setup/{secret-contract-api-D9UfYujm.mjs → secret-contract-api-Dp6290Vg.mjs} +1 -1
  33. package/dist/.setup/{security-audit-BypHqcq5.mjs → security-audit-BqDc-6VL.mjs} +1 -1
  34. package/dist/.setup/{send-Cp6omkOg.mjs → send-BOVLQi3n.mjs} +84 -171
  35. package/dist/.setup/{session-status-Cf7AvWOt.mjs → session-status-DscajIsd.mjs} +315 -238
  36. package/dist/.setup/{setup-plugin-api-dLPkL06L.mjs → setup-plugin-api-DTtbTKNk.mjs} +1 -1
  37. package/dist/.setup/{setup-surface-D3DLcCxu.mjs → setup-surface-Dn7QgWRE.mjs} +24 -56
  38. package/dist/.setup/{shared-CJ3arAFL.mjs → shared-qau-uDGl.mjs} +30 -56
  39. package/dist/.setup/{slash-dispatch.runtime-HFy_XvyO.mjs → slash-dispatch.runtime--AEzLVBF.mjs} +1 -1
  40. package/dist/.setup/{streaming-compat-B-e0mqM0.mjs → streaming-compat-C5Wut626.mjs} +31 -8
  41. package/dist/.setup/{target-parsing-DEsPjngB.mjs → target-parsing-FFE26kOV.mjs} +1 -7
  42. package/dist/.setup/{targets-Cku2KCvg.mjs → targets-C6LZQL1Q.mjs} +1 -1
  43. package/dist/.setup/{thread-ts-CukseRVL.mjs → thread-ts-Cvt7WD6B.mjs} +0 -1
  44. package/dist/account-inspect-api.js +1 -1
  45. package/dist/api.js +18 -17
  46. package/dist/channel-config-api.js +1 -1
  47. package/dist/channel-plugin-api.js +1 -1
  48. package/dist/directory-contract-api.js +1 -1
  49. package/dist/doctor-contract-api.js +1 -1
  50. package/dist/http-routes-api.js +1 -1
  51. package/dist/index.js +1 -1
  52. package/dist/message-tool-api.js +1 -1
  53. package/dist/runtime-api.js +11 -12
  54. package/dist/secret-contract-api.js +1 -1
  55. package/dist/security-contract-api.js +1 -1
  56. package/dist/setup-entry.js +2 -2
  57. package/dist/setup-plugin-api.js +1 -1
  58. package/node_modules/@slack/bolt/node_modules/@types/node/README.md +1 -1
  59. package/node_modules/@slack/bolt/node_modules/@types/node/child_process.d.ts +1 -1
  60. package/node_modules/@slack/bolt/node_modules/@types/node/crypto.d.ts +20 -8
  61. package/node_modules/@slack/bolt/node_modules/@types/node/ffi.d.ts +14 -0
  62. package/node_modules/@slack/bolt/node_modules/@types/node/http2.d.ts +3 -2
  63. package/node_modules/@slack/bolt/node_modules/@types/node/net.d.ts +16 -4
  64. package/node_modules/@slack/bolt/node_modules/@types/node/package.json +2 -2
  65. package/node_modules/@slack/bolt/node_modules/@types/node/process.d.ts +1 -0
  66. package/node_modules/@slack/bolt/node_modules/@types/node/quic.d.ts +39 -1
  67. package/node_modules/@slack/bolt/node_modules/@types/node/stream/iter.d.ts +9 -12
  68. package/node_modules/@slack/bolt/node_modules/@types/node/test/reporters.d.ts +1 -0
  69. package/node_modules/@slack/bolt/node_modules/@types/node/test.d.ts +72 -0
  70. package/node_modules/@slack/bolt/node_modules/@types/node/tls.d.ts +14 -10
  71. package/node_modules/@slack/bolt/node_modules/@types/node/vm.d.ts +2 -1
  72. package/node_modules/@slack/bolt/node_modules/@types/node/worker_threads.d.ts +4 -1
  73. package/node_modules/@slack/web-api/node_modules/@types/node/README.md +1 -1
  74. package/node_modules/@slack/web-api/node_modules/@types/node/child_process.d.ts +1 -1
  75. package/node_modules/@slack/web-api/node_modules/@types/node/crypto.d.ts +20 -8
  76. package/node_modules/@slack/web-api/node_modules/@types/node/ffi.d.ts +14 -0
  77. package/node_modules/@slack/web-api/node_modules/@types/node/http2.d.ts +3 -2
  78. package/node_modules/@slack/web-api/node_modules/@types/node/net.d.ts +16 -4
  79. package/node_modules/@slack/web-api/node_modules/@types/node/package.json +2 -2
  80. package/node_modules/@slack/web-api/node_modules/@types/node/process.d.ts +1 -0
  81. package/node_modules/@slack/web-api/node_modules/@types/node/quic.d.ts +39 -1
  82. package/node_modules/@slack/web-api/node_modules/@types/node/stream/iter.d.ts +9 -12
  83. package/node_modules/@slack/web-api/node_modules/@types/node/test/reporters.d.ts +1 -0
  84. package/node_modules/@slack/web-api/node_modules/@types/node/test.d.ts +72 -0
  85. package/node_modules/@slack/web-api/node_modules/@types/node/tls.d.ts +14 -10
  86. package/node_modules/@slack/web-api/node_modules/@types/node/vm.d.ts +2 -1
  87. package/node_modules/@slack/web-api/node_modules/@types/node/worker_threads.d.ts +4 -1
  88. package/node_modules/get-east-asian-width/index.js +8 -3
  89. package/node_modules/get-east-asian-width/lookup-data.js +1 -1
  90. package/node_modules/get-east-asian-width/lookup.js +4 -4
  91. package/node_modules/get-east-asian-width/package.json +1 -1
  92. package/node_modules/typebox/build/compile/code.mjs +1 -2
  93. package/node_modules/typebox/build/compile/validator.mjs +5 -1
  94. package/node_modules/typebox/build/format/iri.mjs +16 -9
  95. package/node_modules/typebox/build/guard/emit.mjs +2 -2
  96. package/node_modules/typebox/build/guard/guard.d.mts +7 -5
  97. package/node_modules/typebox/build/guard/guard.mjs +14 -9
  98. package/node_modules/typebox/build/guard/index.mjs +6 -0
  99. package/node_modules/typebox/build/guard/unicode/unicode.d.mts +6 -0
  100. package/node_modules/typebox/build/guard/unicode/unicode.mjs +35 -0
  101. package/node_modules/typebox/build/guard/{string.mjs → unicode/unicode_segment.mjs} +16 -19
  102. package/node_modules/typebox/build/schema/build.mjs +2 -3
  103. package/node_modules/typebox/build/schema/engine/_pathing.d.mts +1 -0
  104. package/node_modules/typebox/build/schema/engine/_pathing.mjs +11 -0
  105. package/node_modules/typebox/build/schema/engine/_refine.mjs +13 -5
  106. package/node_modules/typebox/build/schema/engine/additionalProperties.mjs +2 -1
  107. package/node_modules/typebox/build/schema/engine/dependencies.mjs +2 -1
  108. package/node_modules/typebox/build/schema/engine/dependentSchemas.mjs +2 -1
  109. package/node_modules/typebox/build/schema/engine/dynamicRef.d.mts +1 -1
  110. package/node_modules/typebox/build/schema/engine/dynamicRef.mjs +2 -2
  111. package/node_modules/typebox/build/schema/engine/format.mjs +9 -2
  112. package/node_modules/typebox/build/schema/engine/patternProperties.mjs +3 -2
  113. package/node_modules/typebox/build/schema/engine/properties.mjs +3 -2
  114. package/node_modules/typebox/build/schema/engine/propertyNames.mjs +2 -1
  115. package/node_modules/typebox/build/schema/engine/recursiveRef.d.mts +1 -1
  116. package/node_modules/typebox/build/schema/engine/recursiveRef.mjs +2 -2
  117. package/node_modules/typebox/build/schema/engine/ref.d.mts +1 -1
  118. package/node_modules/typebox/build/schema/engine/ref.mjs +2 -2
  119. package/node_modules/typebox/build/schema/engine/schema.mjs +24 -24
  120. package/node_modules/typebox/build/schema/parse.mjs +3 -0
  121. package/node_modules/typebox/build/schema/pointer/pointer.d.mts +1 -6
  122. package/node_modules/typebox/build/schema/pointer/pointer.mjs +47 -64
  123. package/node_modules/typebox/build/system/settings/internal.d.mts +2 -0
  124. package/node_modules/typebox/build/system/settings/internal.mjs +20 -0
  125. package/node_modules/typebox/build/system/settings/settings.d.mts +11 -0
  126. package/node_modules/typebox/build/system/settings/settings.mjs +14 -0
  127. package/node_modules/typebox/build/type/extends/inference.d.mts +1 -1
  128. package/node_modules/typebox/build/type/extends/inference.mjs +15 -2
  129. package/node_modules/typebox/build/type/extends/tuple.d.mts +2 -1
  130. package/node_modules/typebox/build/type/extends/tuple.mjs +21 -1
  131. package/node_modules/typebox/build/value/parse/parse.mjs +10 -4
  132. package/node_modules/typebox/package.json +1 -1
  133. package/node_modules/typebox/readme.md +3 -1
  134. package/node_modules/undici/README.md +81 -25
  135. package/node_modules/undici/docs/docs/api/Agent.md +249 -42
  136. package/node_modules/undici/docs/docs/api/BalancedPool.md +246 -48
  137. package/node_modules/undici/docs/docs/api/CacheStorage.md +171 -13
  138. package/node_modules/undici/docs/docs/api/CacheStore.md +294 -98
  139. package/node_modules/undici/docs/docs/api/Client.md +407 -162
  140. package/node_modules/undici/docs/docs/api/ClientStats.md +80 -14
  141. package/node_modules/undici/docs/docs/api/Connector.md +118 -35
  142. package/node_modules/undici/docs/docs/api/ContentType.md +65 -25
  143. package/node_modules/undici/docs/docs/api/Cookies.md +122 -71
  144. package/node_modules/undici/docs/docs/api/Debug.md +34 -18
  145. package/node_modules/undici/docs/docs/api/DiagnosticsChannel.md +364 -164
  146. package/node_modules/undici/docs/docs/api/Dispatcher.md +490 -1055
  147. package/node_modules/undici/docs/docs/api/EnvHttpProxyAgent.md +105 -93
  148. package/node_modules/undici/docs/docs/api/Errors.md +503 -28
  149. package/node_modules/undici/docs/docs/api/EventSource.md +326 -13
  150. package/node_modules/undici/docs/docs/api/Fetch.md +681 -30
  151. package/node_modules/undici/docs/docs/api/GlobalInstallation.md +78 -96
  152. package/node_modules/undici/docs/docs/api/H2CClient.md +298 -176
  153. package/node_modules/undici/docs/docs/api/Interceptors.md +418 -0
  154. package/node_modules/undici/docs/docs/api/MockAgent.md +333 -314
  155. package/node_modules/undici/docs/docs/api/MockCallHistory.md +272 -98
  156. package/node_modules/undici/docs/docs/api/MockCallHistoryLog.md +189 -26
  157. package/node_modules/undici/docs/docs/api/MockClient.md +151 -33
  158. package/node_modules/undici/docs/docs/api/MockErrors.md +56 -5
  159. package/node_modules/undici/docs/docs/api/MockPool.md +321 -258
  160. package/node_modules/undici/docs/docs/api/Pool.md +236 -41
  161. package/node_modules/undici/docs/docs/api/PoolStats.md +119 -13
  162. package/node_modules/undici/docs/docs/api/ProxyAgent.md +179 -160
  163. package/node_modules/undici/docs/docs/api/RedirectHandler.md +238 -55
  164. package/node_modules/undici/docs/docs/api/RetryAgent.md +113 -27
  165. package/node_modules/undici/docs/docs/api/RetryHandler.md +161 -79
  166. package/node_modules/undici/docs/docs/api/RoundRobinPool.md +166 -72
  167. package/node_modules/undici/docs/docs/api/SnapshotAgent.md +262 -517
  168. package/node_modules/undici/docs/docs/api/Socks5ProxyAgent.md +177 -196
  169. package/node_modules/undici/docs/docs/api/Util.md +68 -11
  170. package/node_modules/undici/docs/docs/api/WebSocket.md +475 -80
  171. package/node_modules/undici/docs/docs/api/api-lifecycle.md +100 -32
  172. package/node_modules/undici/docs/docs/best-practices/client-certificate.md +2 -0
  173. package/node_modules/undici/docs/docs/best-practices/crawling.md +3 -1
  174. package/node_modules/undici/docs/docs/best-practices/migrating-from-v7-to-v8.md +233 -0
  175. package/node_modules/undici/docs/docs/best-practices/mocking-request.md +9 -7
  176. package/node_modules/undici/docs/docs/best-practices/proxy.md +3 -1
  177. package/node_modules/undici/docs/docs/best-practices/undici-vs-builtin-fetch.md +10 -8
  178. package/node_modules/undici/docs/docs/best-practices/writing-tests.md +2 -0
  179. package/node_modules/undici/docs/docs/getting-started.md +281 -0
  180. package/node_modules/undici/docs/docs/index.md +784 -0
  181. package/node_modules/undici/docs/docs/site.json +125 -0
  182. package/node_modules/undici/docs/docs/type-map.json +79 -0
  183. package/node_modules/undici/index.js +4 -2
  184. package/node_modules/undici/lib/api/api-connect.js +13 -11
  185. package/node_modules/undici/lib/api/api-pipeline.js +26 -13
  186. package/node_modules/undici/lib/api/api-request.js +51 -21
  187. package/node_modules/undici/lib/api/api-stream.js +81 -20
  188. package/node_modules/undici/lib/api/api-upgrade.js +21 -11
  189. package/node_modules/undici/lib/api/readable.js +45 -9
  190. package/node_modules/undici/lib/cache/memory-cache-store.js +3 -3
  191. package/node_modules/undici/lib/cache/sqlite-cache-store.js +3 -1
  192. package/node_modules/undici/lib/core/connect.js +46 -7
  193. package/node_modules/undici/lib/core/constants.js +1 -24
  194. package/node_modules/undici/lib/core/errors.js +22 -2
  195. package/node_modules/undici/lib/core/request.js +100 -18
  196. package/node_modules/undici/lib/core/symbols.js +4 -0
  197. package/node_modules/undici/lib/core/util.js +105 -48
  198. package/node_modules/undici/lib/dispatcher/agent.js +51 -32
  199. package/node_modules/undici/lib/dispatcher/balanced-pool.js +23 -27
  200. package/node_modules/undici/lib/dispatcher/client-h1.js +86 -24
  201. package/node_modules/undici/lib/dispatcher/client-h2.js +1091 -361
  202. package/node_modules/undici/lib/dispatcher/client.js +109 -36
  203. package/node_modules/undici/lib/dispatcher/dispatcher-base.js +19 -6
  204. package/node_modules/undici/lib/dispatcher/dispatcher.js +15 -5
  205. package/node_modules/undici/lib/dispatcher/dispatcher1-wrapper.js +110 -0
  206. package/node_modules/undici/lib/dispatcher/env-http-proxy-agent.js +37 -8
  207. package/node_modules/undici/lib/dispatcher/h2c-client.js +4 -4
  208. package/node_modules/undici/lib/dispatcher/pool-base.js +28 -10
  209. package/node_modules/undici/lib/dispatcher/pool.js +30 -5
  210. package/node_modules/undici/lib/dispatcher/proxy-agent.js +95 -19
  211. package/node_modules/undici/lib/dispatcher/retry-agent.js +3 -0
  212. package/node_modules/undici/lib/dispatcher/round-robin-pool.js +32 -10
  213. package/node_modules/undici/lib/dispatcher/socks5-proxy-agent.js +153 -63
  214. package/node_modules/undici/lib/global.js +37 -14
  215. package/node_modules/undici/lib/handler/cache-handler.js +49 -7
  216. package/node_modules/undici/lib/handler/cache-revalidation-handler.js +10 -0
  217. package/node_modules/undici/lib/handler/decorator-handler.js +8 -3
  218. package/node_modules/undici/lib/handler/deduplication-handler.js +12 -6
  219. package/node_modules/undici/lib/handler/redirect-handler.js +66 -66
  220. package/node_modules/undici/lib/handler/retry-handler.js +191 -50
  221. package/node_modules/undici/lib/interceptor/cache.js +75 -25
  222. package/node_modules/undici/lib/interceptor/decompress.js +5 -2
  223. package/node_modules/undici/lib/interceptor/deduplicate.js +5 -4
  224. package/node_modules/undici/lib/interceptor/dns.js +12 -1
  225. package/node_modules/undici/lib/interceptor/redirect.js +3 -3
  226. package/node_modules/undici/lib/llhttp/llhttp-wasm.js +1 -1
  227. package/node_modules/undici/lib/llhttp/llhttp_simd-wasm.js +1 -1
  228. package/node_modules/undici/lib/mock/mock-agent.js +21 -9
  229. package/node_modules/undici/lib/mock/mock-call-history.js +1 -1
  230. package/node_modules/undici/lib/mock/mock-interceptor.js +25 -7
  231. package/node_modules/undici/lib/mock/mock-utils.js +281 -47
  232. package/node_modules/undici/lib/mock/snapshot-agent.js +25 -7
  233. package/node_modules/undici/lib/mock/snapshot-recorder.js +38 -3
  234. package/node_modules/undici/lib/util/cache.js +92 -10
  235. package/node_modules/undici/lib/util/runtime-features.js +3 -34
  236. package/node_modules/undici/lib/web/cache/cache.js +6 -8
  237. package/node_modules/undici/lib/web/cookies/parse.js +150 -146
  238. package/node_modules/undici/lib/web/cookies/util.js +1 -1
  239. package/node_modules/undici/lib/web/eventsource/eventsource-stream.js +28 -1
  240. package/node_modules/undici/lib/web/eventsource/eventsource.js +20 -21
  241. package/node_modules/undici/lib/web/eventsource/util.js +32 -1
  242. package/node_modules/undici/lib/web/fetch/body.js +48 -10
  243. package/node_modules/undici/lib/web/fetch/constants.js +1 -1
  244. package/node_modules/undici/lib/web/fetch/formdata.js +21 -2
  245. package/node_modules/undici/lib/web/fetch/index.js +242 -223
  246. package/node_modules/undici/lib/web/fetch/request.js +35 -6
  247. package/node_modules/undici/lib/web/fetch/response.js +1 -3
  248. package/node_modules/undici/lib/web/fetch/util.js +10 -2
  249. package/node_modules/undici/lib/web/webidl/index.js +5 -7
  250. package/node_modules/undici/lib/web/websocket/frame.js +1 -7
  251. package/node_modules/undici/lib/web/websocket/receiver.js +1 -1
  252. package/node_modules/undici/lib/web/websocket/stream/websocketstream.js +10 -10
  253. package/node_modules/undici/lib/web/websocket/websocket.js +25 -3
  254. package/node_modules/undici/package.json +10 -10
  255. package/node_modules/undici/types/agent.d.ts +0 -2
  256. package/node_modules/undici/types/client.d.ts +69 -24
  257. package/node_modules/undici/types/connector.d.ts +1 -0
  258. package/node_modules/undici/types/cookies.d.ts +1 -1
  259. package/node_modules/undici/types/dispatcher.d.ts +8 -30
  260. package/node_modules/undici/types/dispatcher1-wrapper.d.ts +7 -0
  261. package/node_modules/undici/types/errors.d.ts +10 -0
  262. package/node_modules/undici/types/fetch.d.ts +5 -1
  263. package/node_modules/undici/types/formdata.d.ts +0 -6
  264. package/node_modules/undici/types/h2c-client.d.ts +6 -6
  265. package/node_modules/undici/types/handlers.d.ts +2 -0
  266. package/node_modules/undici/types/header.d.ts +5 -0
  267. package/node_modules/undici/types/index.d.ts +3 -1
  268. package/node_modules/undici/types/interceptors.d.ts +1 -1
  269. package/node_modules/undici/types/mock-agent.d.ts +11 -10
  270. package/node_modules/undici/types/mock-interceptor.d.ts +5 -1
  271. package/node_modules/undici/types/pool.d.ts +0 -2
  272. package/node_modules/undici/types/proxy-agent.d.ts +9 -2
  273. package/node_modules/undici/types/round-robin-pool.d.ts +0 -2
  274. package/node_modules/undici/types/snapshot-agent.d.ts +4 -0
  275. package/node_modules/undici/types/socks5-proxy-agent.d.ts +4 -2
  276. package/node_modules/undici/types/webidl.d.ts +0 -1
  277. package/openclaw.plugin.json +31 -3
  278. package/package.json +7 -7
  279. package/dist/.setup/accounts.runtime-DN-PPocC.mjs +0 -2
  280. package/dist/.setup/action-runtime.runtime-C8R8CUan.mjs +0 -2
  281. package/dist/.setup/doctor-contract-CtMUqjvk.mjs +0 -186
  282. package/dist/.setup/monitor-_Sht7Dqy.mjs +0 -13
  283. package/dist/.setup/rolldown-runtime-D7D4PA-g.mjs +0 -13
  284. package/dist/.setup/send.runtime-B4caZU6T.mjs +0 -2
  285. package/dist/.setup/slash-commands.runtime-BpSH0b3q.mjs +0 -2
  286. package/dist/.setup/slash-skill-commands.runtime-Bi1JWZHY.mjs +0 -2
  287. package/node_modules/undici/lib/handler/unwrap-handler.js +0 -106
  288. package/node_modules/undici/lib/handler/wrap-handler.js +0 -105
  289. package/node_modules/undici/lib/llhttp/.gitkeep +0 -0
  290. package/node_modules/undici/lib/util/promise.js +0 -28
  291. /package/node_modules/typebox/build/guard/{string.d.mts → unicode/unicode_segment.d.mts} +0 -0
@@ -0,0 +1,342 @@
1
+ import { i as __reExport, n as resolveSlackStreamingMode, r as __exportAll, t as resolveSlackNativeStreaming } from "./streaming-compat-C5Wut626.mjs";
2
+ //#region packages/normalization-core/src/record-coerce.ts
3
+ /** Type guard for non-array object records at browser-safe boundaries. */
4
+ function isRecord(value) {
5
+ return value !== null && typeof value === "object" && !Array.isArray(value);
6
+ }
7
+ /** Returns a non-array record or null. */
8
+ function asNullableRecord(value) {
9
+ return isRecord(value) ? value : null;
10
+ }
11
+ //#endregion
12
+ //#region src/config/channel-config-normalization.ts
13
+ /** Applies one channel-specific doctor migration to every object-shaped account. */
14
+ function normalizeChannelAccounts(params) {
15
+ const rawAccounts = asNullableRecord(params.entry.accounts);
16
+ if (!rawAccounts) return {
17
+ entry: params.entry,
18
+ changed: false
19
+ };
20
+ let changed = false;
21
+ const accounts = { ...rawAccounts };
22
+ for (const [accountId, value] of Object.entries(rawAccounts)) {
23
+ const account = asNullableRecord(value);
24
+ if (!account) continue;
25
+ const normalized = params.normalizeAccount({
26
+ account,
27
+ accountId,
28
+ pathPrefix: `${params.pathPrefix}.accounts.${accountId}`,
29
+ changes: params.changes
30
+ });
31
+ if (normalized.changed) {
32
+ accounts[accountId] = normalized.entry;
33
+ changed = true;
34
+ }
35
+ }
36
+ return changed ? {
37
+ entry: {
38
+ ...params.entry,
39
+ accounts
40
+ },
41
+ changed: true
42
+ } : {
43
+ entry: params.entry,
44
+ changed: false
45
+ };
46
+ }
47
+ /** Applies the same channel-specific doctor migration at root and account scope. */
48
+ function normalizeChannelConfigEntries$1(params) {
49
+ const changes = params.changes ?? [];
50
+ const channels = params.cfg.channels;
51
+ const entry = asNullableRecord(channels?.[params.channelId]);
52
+ if (!entry) return {
53
+ config: params.cfg,
54
+ changes
55
+ };
56
+ const channelPath = `channels.${params.channelId}`;
57
+ const root = params.normalizeEntry({
58
+ entry,
59
+ pathPrefix: channelPath,
60
+ changes
61
+ });
62
+ const accounts = normalizeChannelAccounts({
63
+ entry: root.entry,
64
+ pathPrefix: channelPath,
65
+ changes,
66
+ normalizeAccount: (accountParams) => params.normalizeEntry({
67
+ entry: accountParams.account,
68
+ accountId: accountParams.accountId,
69
+ pathPrefix: accountParams.pathPrefix,
70
+ changes: accountParams.changes
71
+ })
72
+ });
73
+ if (!root.changed && !accounts.changed) return {
74
+ config: params.cfg,
75
+ changes
76
+ };
77
+ return {
78
+ config: {
79
+ ...params.cfg,
80
+ channels: {
81
+ ...channels,
82
+ [params.channelId]: accounts.entry
83
+ }
84
+ },
85
+ changes
86
+ };
87
+ }
88
+ //#endregion
89
+ //#region src/plugin-sdk/legacy-webhook-listener-migration.ts
90
+ /** Preserve explicitly configured webhook listeners while moving ingress onto Gateway routes. */
91
+ function createLegacyWebhookListenerDoctorContract(params) {
92
+ const portKey = params.portKey ?? "webhookPort";
93
+ const hostKey = params.hostKey === void 0 ? "webhookHost" : params.hostKey;
94
+ const source = (entry) => params.webhookKey ? asNullableRecord(entry[params.webhookKey]) : entry;
95
+ const hasLegacy = (value) => {
96
+ const entry = asNullableRecord(value);
97
+ const listener = entry && source(entry);
98
+ return Boolean(listener && (Object.hasOwn(listener, portKey) || hostKey && Object.hasOwn(listener, hostKey)));
99
+ };
100
+ const prefix = `channels.${params.channelKey}`;
101
+ return {
102
+ legacyConfigRules: [{
103
+ path: ["channels", params.channelKey],
104
+ message: `${prefix} webhook listeners moved to Gateway routes. Run "openclaw doctor --fix" to preserve explicitly configured listener settings as legacyWebhook.`,
105
+ match: (value) => {
106
+ const accounts = asNullableRecord(asNullableRecord(value)?.accounts);
107
+ return hasLegacy(value) || Object.values(accounts ?? {}).some(hasLegacy);
108
+ }
109
+ }],
110
+ normalizeCompatibilityConfig: ({ cfg }) => {
111
+ const root = asNullableRecord(asNullableRecord(cfg.channels)?.[params.channelKey]);
112
+ const inherited = root && source(root);
113
+ const canonicalRoot = asNullableRecord(root?.legacyWebhook);
114
+ return normalizeChannelConfigEntries$1({
115
+ cfg,
116
+ channelId: params.channelKey,
117
+ normalizeEntry: ({ entry, accountId, pathPrefix, changes }) => {
118
+ const listener = source(entry);
119
+ if (!listener || !hasLegacy(entry)) return {
120
+ entry,
121
+ changed: false
122
+ };
123
+ const next = { ...entry };
124
+ const port = Object.hasOwn(listener, portKey) ? listener[portKey] : (accountId ? canonicalRoot?.port ?? inherited?.[portKey] : void 0) ?? params.defaultPort;
125
+ const inheritedHost = accountId ? canonicalRoot ? canonicalRoot.host : (hostKey ? inherited?.[hostKey] : void 0) ?? params.defaultHost : params.defaultHost;
126
+ const host = hostKey ? listener[hostKey] ?? inheritedHost : inheritedHost;
127
+ const legacyPath = [pathPrefix, params.webhookKey].filter(Boolean).join(".");
128
+ if (Object.hasOwn(entry, "legacyWebhook")) changes.push(`Removed ${legacyPath} legacy listener keys; ${pathPrefix}.legacyWebhook is already configured.`);
129
+ else if (accountId && root?.legacyWebhook === false) changes.push(`Removed ${legacyPath} legacy listener keys; ${prefix}.legacyWebhook: false keeps this account's inherited listener disabled.`);
130
+ else {
131
+ next.legacyWebhook = {
132
+ port,
133
+ ...host !== void 0 ? { host } : {}
134
+ };
135
+ changes.push(`Moved ${legacyPath} listener settings to ${pathPrefix}.legacyWebhook. Point the external callback or reverse proxy at the Gateway port and webhook path, verify delivery, then set legacyWebhook: false to disable legacy forwarding.`);
136
+ }
137
+ const updated = params.webhookKey ? { ...listener } : next;
138
+ delete updated[portKey];
139
+ if (hostKey) delete updated[hostKey];
140
+ if (params.webhookKey) {
141
+ if (Object.keys(updated).length) next[params.webhookKey] = updated;
142
+ else delete next[params.webhookKey];
143
+ }
144
+ return {
145
+ entry: next,
146
+ changed: true
147
+ };
148
+ }
149
+ });
150
+ }
151
+ };
152
+ }
153
+ //#endregion
154
+ //#region \0openclaw:bundled-sdk:openclaw/plugin-sdk/runtime-doctor-migrations
155
+ var runtime_doctor_migrations_exports = /* @__PURE__ */ __exportAll({ createLegacyWebhookListenerDoctorContract: () => createLegacyWebhookListenerDoctorContract });
156
+ import * as import_openclaw_plugin_sdk_runtime_doctor_migrations from "openclaw/plugin-sdk/runtime-doctor-migrations";
157
+ __reExport(runtime_doctor_migrations_exports, import_openclaw_plugin_sdk_runtime_doctor_migrations);
158
+ //#endregion
159
+ //#region extensions/slack/src/doctor-contract.ts
160
+ const streamingAliasMigration = (0, runtime_doctor_migrations_exports.defineChannelAliasMigration)({
161
+ channelId: "slack",
162
+ streaming: {
163
+ defaultMode: "partial",
164
+ resolveMode: resolveSlackStreamingMode,
165
+ resolveNativeTransport: resolveSlackNativeStreaming
166
+ },
167
+ dm: {
168
+ root: true,
169
+ accounts: true
170
+ }
171
+ });
172
+ const dmReplyModeMigration = (0, runtime_doctor_migrations_exports.defineKeyMoveMigration)({
173
+ from: ["dm", "replyToMode"],
174
+ to: ["replyToModeByChatType", "direct"]
175
+ });
176
+ const threadMentionPolicyMigration = (0, runtime_doctor_migrations_exports.defineKeyMoveMigration)({
177
+ from: ["thread", "requireExplicitMention"],
178
+ to: ["implicitMentions", "threadParticipation"],
179
+ map: (value) => typeof value === "boolean" ? { value: !value } : null,
180
+ pruneEmptySource: true,
181
+ movedMessage: ({ sourcePath, targetPath, mappedValue }) => `Moved ${sourcePath} → ${targetPath} (${String(mappedValue)}).`
182
+ });
183
+ const channelAllowMigration = (0, runtime_doctor_migrations_exports.defineKeyMoveMigration)({
184
+ scope: ["channels", "*"],
185
+ from: ["allow"],
186
+ to: ["enabled"]
187
+ });
188
+ function hasInteractiveRepliesCapability(value) {
189
+ const capabilities = (0, runtime_doctor_migrations_exports.asObjectRecord)(value)?.capabilities;
190
+ if (Array.isArray(capabilities)) return capabilities.some((entry) => typeof entry === "string" && entry.trim().toLowerCase() === "interactivereplies");
191
+ const capabilitiesRecord = (0, runtime_doctor_migrations_exports.asObjectRecord)(capabilities);
192
+ return Boolean(capabilitiesRecord && (Object.keys(capabilitiesRecord).length === 0 || Object.hasOwn(capabilitiesRecord, "interactiveReplies")));
193
+ }
194
+ function hasEnterpriseOrgInstall(value) {
195
+ return Object.hasOwn((0, runtime_doctor_migrations_exports.asObjectRecord)(value) ?? {}, "enterpriseOrgInstall");
196
+ }
197
+ function removeInteractiveRepliesCapability(params) {
198
+ const capabilities = params.entry.capabilities;
199
+ let nextCapabilities;
200
+ let removedEmptyObject = false;
201
+ if (Array.isArray(capabilities)) {
202
+ nextCapabilities = capabilities.filter((entry) => !(typeof entry === "string" && entry.trim().toLowerCase() === "interactivereplies"));
203
+ if (nextCapabilities.length === capabilities.length) return {
204
+ entry: params.entry,
205
+ changed: false
206
+ };
207
+ } else {
208
+ const capabilitiesRecord = (0, runtime_doctor_migrations_exports.asObjectRecord)(capabilities);
209
+ if (!capabilitiesRecord || Object.keys(capabilitiesRecord).length > 0 && !Object.hasOwn(capabilitiesRecord, "interactiveReplies")) return {
210
+ entry: params.entry,
211
+ changed: false
212
+ };
213
+ removedEmptyObject = Object.keys(capabilitiesRecord).length === 0;
214
+ const { interactiveReplies: _retired, ...rest } = capabilitiesRecord;
215
+ nextCapabilities = rest;
216
+ }
217
+ const entry = { ...params.entry };
218
+ if (Array.isArray(nextCapabilities) ? nextCapabilities.length === 0 : Object.keys(nextCapabilities).length === 0) delete entry.capabilities;
219
+ else entry.capabilities = nextCapabilities;
220
+ params.changes.push(removedEmptyObject ? `Removed retired empty ${params.pathPrefix}.capabilities object; use typed presentation actions instead.` : `Removed retired ${params.pathPrefix}.capabilities.interactiveReplies; use typed presentation actions instead.`);
221
+ return {
222
+ entry,
223
+ changed: true
224
+ };
225
+ }
226
+ const legacyConfigRules = [
227
+ ...streamingAliasMigration.legacyConfigRules,
228
+ {
229
+ path: [
230
+ "channels",
231
+ "slack",
232
+ "enterpriseOrgInstall"
233
+ ],
234
+ message: "channels.slack.enterpriseOrgInstall is retired; Slack now detects org-wide installations automatically. Run \"openclaw doctor --fix\"."
235
+ },
236
+ {
237
+ path: [
238
+ "channels",
239
+ "slack",
240
+ "accounts"
241
+ ],
242
+ message: "channels.slack.accounts.<id>.enterpriseOrgInstall is retired; Slack now detects org-wide installations automatically. Run \"openclaw doctor --fix\".",
243
+ match: (value) => (0, runtime_doctor_migrations_exports.hasLegacyAccountStreamingAliases)(value, hasEnterpriseOrgInstall)
244
+ },
245
+ {
246
+ path: ["channels", "slack"],
247
+ message: "channels.slack.capabilities.interactiveReplies is retired; use typed presentation actions instead. Run \"openclaw doctor --fix\".",
248
+ match: hasInteractiveRepliesCapability
249
+ },
250
+ {
251
+ path: [
252
+ "channels",
253
+ "slack",
254
+ "accounts"
255
+ ],
256
+ message: "channels.slack.accounts.<id>.capabilities.interactiveReplies is retired; use typed presentation actions instead. Run \"openclaw doctor --fix\".",
257
+ match: (value) => (0, runtime_doctor_migrations_exports.hasLegacyAccountStreamingAliases)(value, hasInteractiveRepliesCapability)
258
+ },
259
+ {
260
+ path: ["channels", "slack"],
261
+ message: "channels.slack.dm.replyToMode moved to replyToModeByChatType.direct. Run \"openclaw doctor --fix\".",
262
+ match: dmReplyModeMigration.hasLegacy
263
+ },
264
+ {
265
+ path: [
266
+ "channels",
267
+ "slack",
268
+ "accounts"
269
+ ],
270
+ message: "channels.slack.accounts.<id>.dm.replyToMode moved to replyToModeByChatType.direct. Run \"openclaw doctor --fix\".",
271
+ match: (value) => (0, runtime_doctor_migrations_exports.hasLegacyAccountStreamingAliases)(value, dmReplyModeMigration.hasLegacy)
272
+ },
273
+ {
274
+ path: ["channels", "slack"],
275
+ message: "channels.slack.thread.requireExplicitMention is legacy; use channels.slack.implicitMentions.threadParticipation instead. Run \"openclaw doctor --fix\".",
276
+ match: threadMentionPolicyMigration.hasLegacy
277
+ },
278
+ {
279
+ path: [
280
+ "channels",
281
+ "slack",
282
+ "accounts"
283
+ ],
284
+ message: "channels.slack.accounts.<id>.thread.requireExplicitMention is legacy; use channels.slack.accounts.<id>.implicitMentions.threadParticipation instead. Run \"openclaw doctor --fix\".",
285
+ match: (value) => (0, runtime_doctor_migrations_exports.hasLegacyAccountStreamingAliases)(value, threadMentionPolicyMigration.hasLegacy)
286
+ },
287
+ {
288
+ path: ["channels", "slack"],
289
+ message: "channels.slack.channels.<id>.allow is legacy; use channels.slack.channels.<id>.enabled instead. Run \"openclaw doctor --fix\".",
290
+ match: channelAllowMigration.hasLegacy
291
+ },
292
+ {
293
+ path: [
294
+ "channels",
295
+ "slack",
296
+ "accounts"
297
+ ],
298
+ message: "channels.slack.accounts.<id>.channels.<id>.allow is legacy; use channels.slack.accounts.<id>.channels.<id>.enabled instead. Run \"openclaw doctor --fix\".",
299
+ match: (value) => (0, runtime_doctor_migrations_exports.hasLegacyAccountStreamingAliases)(value, channelAllowMigration.hasLegacy)
300
+ }
301
+ ];
302
+ function normalizeSlackEntry(params) {
303
+ const retiredInteractiveReplies = removeInteractiveRepliesCapability(params);
304
+ const dm = dmReplyModeMigration.normalize({
305
+ ...params,
306
+ entry: retiredInteractiveReplies.entry
307
+ });
308
+ const thread = threadMentionPolicyMigration.normalize({
309
+ ...params,
310
+ entry: dm.entry
311
+ });
312
+ const channels = channelAllowMigration.normalize({
313
+ ...params,
314
+ entry: thread.entry
315
+ });
316
+ return {
317
+ entry: channels.entry,
318
+ changed: retiredInteractiveReplies.changed || dm.changed || thread.changed || channels.changed
319
+ };
320
+ }
321
+ function normalizeCompatibilityConfig({ cfg }) {
322
+ const changes = [];
323
+ const retired = (0, runtime_doctor_migrations_exports.stripRetiredChannelKeys)({
324
+ cfg,
325
+ channelId: "slack",
326
+ keys: /* @__PURE__ */ new Set(["enterpriseOrgInstall"]),
327
+ scope: "root-and-accounts",
328
+ onRemove: ({ key, pathPrefix }) => changes.push(`Removed retired ${pathPrefix}.${key}; Slack detects org-wide installations automatically.`)
329
+ });
330
+ const aliases = streamingAliasMigration.normalizeChannelConfig({
331
+ cfg: retired.config,
332
+ changes
333
+ });
334
+ return (0, runtime_doctor_migrations_exports.normalizeChannelConfigEntries)({
335
+ cfg: aliases.config,
336
+ channelId: "slack",
337
+ changes,
338
+ normalizeEntry: normalizeSlackEntry
339
+ });
340
+ }
341
+ //#endregion
342
+ export { normalizeCompatibilityConfig as n, runtime_doctor_migrations_exports as r, legacyConfigRules as t };
@@ -1,6 +1,6 @@
1
- import { r as listSlackAccountIds } from "./accounts-BBHvg0pY.mjs";
2
- import { t as inspectSlackAccount } from "./account-inspect-DP1Bcwj4.mjs";
3
- import { r as resolveSlackThreadTsValue, t as normalizeSlackThreadTsCandidate } from "./thread-ts-CukseRVL.mjs";
1
+ import { i as listSlackAccountIds } from "./accounts-D_N9IqNA.mjs";
2
+ import { t as inspectSlackAccount } from "./account-inspect-DWBXpER6.mjs";
3
+ import { r as resolveSlackThreadTsValue, t as normalizeSlackThreadTsCandidate } from "./thread-ts-Cvt7WD6B.mjs";
4
4
  import { createActionGate } from "openclaw/plugin-sdk/channel-actions";
5
5
  import { extractToolSend } from "openclaw/plugin-sdk/tool-send";
6
6
  import { Type } from "typebox";
@@ -14,31 +14,27 @@ function listSlackMessageActions(cfg, accountId) {
14
14
  accountId: listedAccountId
15
15
  }))).filter((account) => account.enabled && (account.identity === "user" ? account.userTokenStatus === "available" : account.botTokenStatus === "available"));
16
16
  if (accounts.length === 0) return [];
17
- const isActionEnabled = (key, defaultValue = true) => {
18
- for (const account of accounts) if (createActionGate(account.actions ?? cfg.channels?.slack?.actions)(key, defaultValue)) return true;
19
- return false;
20
- };
21
- const actions = /* @__PURE__ */ new Set(["send"]);
22
- if (isActionEnabled("reactions")) {
23
- actions.add("react");
24
- actions.add("reactions");
25
- }
26
- if (isActionEnabled("messages")) {
27
- actions.add("conversation-open");
28
- actions.add("read");
29
- actions.add("edit");
30
- actions.add("delete");
31
- actions.add("download-file");
32
- actions.add("upload-file");
33
- }
34
- if (isActionEnabled("pins")) {
35
- actions.add("pin");
36
- actions.add("unpin");
37
- actions.add("list-pins");
38
- }
39
- if (isActionEnabled("memberInfo")) actions.add("member-info");
40
- if (isActionEnabled("emojiList")) actions.add("emoji-list");
41
- return Array.from(actions);
17
+ const gates = accounts.map((account) => createActionGate(account.actions ?? cfg.channels?.slack?.actions));
18
+ const actions = ["send"];
19
+ for (const [gate, enabledActions] of [
20
+ ["reactions", ["react", "reactions"]],
21
+ ["messages", [
22
+ "conversation-open",
23
+ "read",
24
+ "edit",
25
+ "delete",
26
+ "download-file",
27
+ "upload-file"
28
+ ]],
29
+ ["pins", [
30
+ "pin",
31
+ "unpin",
32
+ "list-pins"
33
+ ]],
34
+ ["memberInfo", ["member-info"]],
35
+ ["emojiList", ["emoji-list"]]
36
+ ]) if (gates.some((isEnabled) => isEnabled(gate))) actions.push(...enabledActions);
37
+ return actions;
42
38
  }
43
39
  function extractSlackToolSend(args) {
44
40
  const action = args.action;
@@ -105,7 +101,6 @@ function createSlackTopLevelActionSchema() {
105
101
  }
106
102
  function describeSlackMessageTool({ cfg, accountId }) {
107
103
  const actions = listSlackMessageActions(cfg, accountId);
108
- const capabilities = /* @__PURE__ */ new Set();
109
104
  const schema = [];
110
105
  if (actions.includes("conversation-open")) schema.push({
111
106
  actions: ["conversation-open"],
@@ -117,32 +112,23 @@ function describeSlackMessageTool({ cfg, accountId }) {
117
112
  description: "Slack conversation-open: 1-8 other member IDs. One opens a DM; multiple open or reuse a group DM. Exclude the calling account. Use the returned target with action=\"send\". teamId defaults to the trusted current workspace for the selected account; detached Enterprise operations require it."
118
113
  })) }
119
114
  });
120
- if (actions.includes("send")) capabilities.add("presentation");
121
- if (actions.includes("download-file")) schema.push({
122
- properties: createSlackFileActionSchema(),
123
- actions: ["download-file"]
124
- });
125
- if (actions.includes("send")) schema.push({
126
- properties: createSlackSendActionSchema(),
127
- actions: ["send"]
128
- });
129
- if (actions.includes("upload-file")) schema.push({
130
- properties: createSlackTopLevelActionSchema(),
131
- actions: ["upload-file"]
132
- });
133
- if (actions.includes("react")) schema.push({
134
- properties: createSlackReactionEmojiSchema(actions.includes("emoji-list")),
135
- actions: ["react", "reactions"]
115
+ for (const [action, createProperties] of [
116
+ ["download-file", createSlackFileActionSchema],
117
+ ["send", createSlackSendActionSchema],
118
+ ["upload-file", createSlackTopLevelActionSchema],
119
+ ["react", () => createSlackReactionEmojiSchema(actions.includes("emoji-list"))]
120
+ ]) if (actions.includes(action)) schema.push({
121
+ properties: createProperties(),
122
+ actions: action === "react" ? ["react", "reactions"] : [action]
136
123
  });
137
- const messageIdActions = [];
138
- for (const action of SLACK_MESSAGE_ID_ACTIONS) if (actions.includes(action)) messageIdActions.push(action);
124
+ const messageIdActions = SLACK_MESSAGE_ID_ACTIONS.filter((action) => actions.includes(action));
139
125
  if (messageIdActions.length > 0) schema.push({
140
126
  properties: createSlackMessageIdActionSchema(),
141
127
  actions: messageIdActions
142
128
  });
143
129
  return {
144
130
  actions,
145
- capabilities: Array.from(capabilities),
131
+ capabilities: actions.includes("send") ? ["presentation"] : [],
146
132
  schema: schema.length > 0 ? schema : null
147
133
  };
148
134
  }