@openclaw/slack 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 (255) hide show
  1. package/dist/account-configured-sUohAxZr.js +33 -0
  2. package/dist/account-inspect-C3sePHWa.js +87 -0
  3. package/dist/account-inspect-api.js +1 -1
  4. package/dist/{accounts-BlzxuYle.js → accounts-Dm_H77gH.js} +7 -10
  5. package/dist/{accounts.runtime-CbabBL8x.js → accounts.runtime-DRuEK6mL.js} +1 -1
  6. package/dist/{action-runtime-D6jg2CQd.js → action-runtime-B0kRJ69h.js} +90 -75
  7. package/dist/action-runtime.runtime-IuA14rev.js +2 -0
  8. package/dist/{actions-DFk0ANVB.js → actions-BOxiu2Vy.js} +278 -102
  9. package/dist/api.js +15 -15
  10. package/dist/{approval-handler.runtime-BNvAoKdK.js → approval-handler.runtime-l5_2JLqi.js} +58 -180
  11. package/dist/{channel-CA5w7qDF.js → channel-BguxhhNG.js} +97 -154
  12. package/dist/channel-config-api.js +1 -1
  13. package/dist/channel-plugin-api.js +1 -1
  14. package/dist/{channel-type-CZWv55Wu.js → channel-type-ChkODKBW.js} +3 -3
  15. package/dist/{channel.setup-CpyYsEXH.js → channel.setup-BJohRJha.js} +54 -68
  16. package/dist/{config-schema-CN3XZRX5.js → config-schema-B9GwoRlE.js} +24 -15
  17. package/dist/configured-state.js +34 -0
  18. package/dist/{conversation-binding-route-DFVLUdYF.js → conversation-binding-route-Vee8Dgbf.js} +2 -2
  19. package/dist/{directory-config-BGYyuzWh.js → directory-config-Bmw4ykSy.js} +5 -4
  20. package/dist/directory-contract-api.js +1 -1
  21. package/dist/{directory-live-DjUJQLbq.js → directory-live-BOILcXPo.js} +2 -2
  22. package/dist/{doctor-contract-BAy7-EUQ.js → doctor-contract-BNjw9bxb.js} +5 -4
  23. package/dist/doctor-contract-api.js +1 -1
  24. package/dist/{group-policy-DyfB_ZIE.js → group-policy-BYH74y50.js} +643 -774
  25. package/dist/{message-tool-api-CqMr5Rmc.js → message-tool-api-BsZbsulu.js} +23 -5
  26. package/dist/message-tool-api.js +1 -1
  27. package/dist/{monitor-Chrecrb9.js → monitor-B72wWXWg.js} +3 -3
  28. package/dist/{outbound-adapter-DuRqAQXK.js → outbound-adapter-CPgYQ-BM.js} +94 -69
  29. package/dist/{pipeline.runtime-Bbfd5VFW.js → pipeline.runtime-CcdujV99.js} +357 -544
  30. package/dist/{policy-BKXSxrIS.js → policy-CUpBeOt9.js} +7 -4
  31. package/dist/{probe-BVA65leh.js → probe-gj5yQgN2.js} +209 -21
  32. package/dist/{provider-CUUiwsg2.js → provider-DW9YC_no.js} +301 -179
  33. package/dist/{relay-source-mhpMMRG-.js → relay-source-BLMdBrAw.js} +6 -4
  34. package/dist/{replies-SnWyXcsL.js → replies-DLjQ8RYU.js} +25 -10
  35. package/dist/{resolve-channels-BSpqC8jU.js → resolve-channels-Bv6IiGZ4.js} +4 -3
  36. package/dist/{resolve-users-Dvz9pDe0.js → resolve-users-BXw2pA7y.js} +4 -3
  37. package/dist/runtime-api.js +11 -11
  38. package/dist/{scopes-BSk4GZvZ.js → scopes-B9HRguDe.js} +1 -1
  39. package/dist/{send-CtnOxKCc.js → send-GUz4_v2E.js} +58 -42
  40. package/dist/send-results-eeOu_HYm.js +23 -0
  41. package/dist/{send.runtime-kYctMHSd.js → send.runtime-rScD-UJi.js} +1 -1
  42. package/dist/setup-plugin-api.js +1 -1
  43. package/dist/{setup-surface-BPFfp6So.js → setup-surface-Cc3P-z35.js} +6 -6
  44. package/dist/{shared-DJBaslN7.js → shared-CQGVZ_8a.js} +28 -8
  45. package/dist/{slash-dispatch.runtime-Cf2FTrnf.js → slash-dispatch.runtime-C2015r6s.js} +3 -3
  46. package/dist/{target-parsing-BnMD2ZqZ.js → target-parsing-PbxGDbr9.js} +11 -6
  47. package/dist/{targets-Cx5W_n3W.js → targets-7FexXJ62.js} +1 -1
  48. package/node_modules/@slack/bolt/node_modules/@types/node/README.md +1 -1
  49. package/node_modules/@slack/bolt/node_modules/@types/node/child_process.d.ts +0 -1
  50. package/node_modules/@slack/bolt/node_modules/@types/node/crypto.d.ts +6 -6
  51. package/node_modules/@slack/bolt/node_modules/@types/node/dns/promises.d.ts +5 -5
  52. package/node_modules/@slack/bolt/node_modules/@types/node/dns.d.ts +5 -5
  53. package/node_modules/@slack/bolt/node_modules/@types/node/fs.d.ts +7 -0
  54. package/node_modules/@slack/bolt/node_modules/@types/node/http.d.ts +30 -0
  55. package/node_modules/@slack/bolt/node_modules/@types/node/http2.d.ts +4 -4
  56. package/node_modules/@slack/bolt/node_modules/@types/node/os.d.ts +30 -30
  57. package/node_modules/@slack/bolt/node_modules/@types/node/package.json +2 -2
  58. package/node_modules/@slack/bolt/node_modules/@types/node/perf_hooks.d.ts +2 -1
  59. package/node_modules/@slack/bolt/node_modules/@types/node/process.d.ts +42 -43
  60. package/node_modules/@slack/bolt/node_modules/@types/node/quic.d.ts +1049 -84
  61. package/node_modules/@slack/bolt/node_modules/@types/node/sqlite.d.ts +14 -1
  62. package/node_modules/@slack/bolt/node_modules/@types/node/stream/iter.d.ts +3 -2
  63. package/node_modules/@slack/bolt/node_modules/@types/node/test.d.ts +61 -0
  64. package/node_modules/@slack/bolt/node_modules/@types/node/v8.d.ts +20 -23
  65. package/node_modules/@slack/bolt/node_modules/body-parser/node_modules/content-type/README.md +2 -0
  66. package/node_modules/@slack/bolt/node_modules/body-parser/node_modules/content-type/dist/index.d.ts +20 -0
  67. package/node_modules/@slack/bolt/node_modules/body-parser/node_modules/content-type/dist/index.js +20 -14
  68. package/node_modules/@slack/bolt/node_modules/body-parser/node_modules/content-type/dist/index.js.map +1 -1
  69. package/node_modules/@slack/bolt/node_modules/body-parser/node_modules/content-type/package.json +1 -1
  70. package/node_modules/@slack/bolt/node_modules/negotiator/lib/accept.js +54 -0
  71. package/node_modules/@slack/bolt/node_modules/negotiator/lib/charset.js +10 -34
  72. package/node_modules/@slack/bolt/node_modules/negotiator/lib/encoding.js +9 -30
  73. package/node_modules/@slack/bolt/node_modules/negotiator/lib/language.js +15 -36
  74. package/node_modules/@slack/bolt/node_modules/negotiator/lib/mediaType.js +16 -134
  75. package/node_modules/@slack/bolt/node_modules/negotiator/node_modules/content-type/LICENSE +22 -0
  76. package/node_modules/@slack/bolt/node_modules/negotiator/node_modules/content-type/README.md +71 -0
  77. package/node_modules/@slack/bolt/node_modules/negotiator/node_modules/content-type/dist/index.d.ts +46 -0
  78. package/node_modules/@slack/bolt/node_modules/negotiator/node_modules/content-type/dist/index.js +176 -0
  79. package/node_modules/@slack/bolt/node_modules/negotiator/node_modules/content-type/dist/index.js.map +1 -0
  80. package/node_modules/@slack/bolt/node_modules/negotiator/node_modules/content-type/package.json +52 -0
  81. package/node_modules/@slack/bolt/node_modules/negotiator/package.json +16 -10
  82. package/node_modules/@slack/bolt/node_modules/type-is/node_modules/content-type/README.md +2 -0
  83. package/node_modules/@slack/bolt/node_modules/type-is/node_modules/content-type/dist/index.d.ts +20 -0
  84. package/node_modules/@slack/bolt/node_modules/type-is/node_modules/content-type/dist/index.js +20 -14
  85. package/node_modules/@slack/bolt/node_modules/type-is/node_modules/content-type/dist/index.js.map +1 -1
  86. package/node_modules/@slack/bolt/node_modules/type-is/node_modules/content-type/package.json +1 -1
  87. package/node_modules/@slack/socket-mode/node_modules/@types/node/README.md +1 -1
  88. package/node_modules/@slack/socket-mode/node_modules/@types/node/child_process.d.ts +0 -1
  89. package/node_modules/@slack/socket-mode/node_modules/@types/node/crypto.d.ts +6 -6
  90. package/node_modules/@slack/socket-mode/node_modules/@types/node/dns/promises.d.ts +5 -5
  91. package/node_modules/@slack/socket-mode/node_modules/@types/node/dns.d.ts +5 -5
  92. package/node_modules/@slack/socket-mode/node_modules/@types/node/fs.d.ts +7 -0
  93. package/node_modules/@slack/socket-mode/node_modules/@types/node/http.d.ts +30 -0
  94. package/node_modules/@slack/socket-mode/node_modules/@types/node/http2.d.ts +4 -4
  95. package/node_modules/@slack/socket-mode/node_modules/@types/node/os.d.ts +30 -30
  96. package/node_modules/@slack/socket-mode/node_modules/@types/node/package.json +2 -2
  97. package/node_modules/@slack/socket-mode/node_modules/@types/node/perf_hooks.d.ts +2 -1
  98. package/node_modules/@slack/socket-mode/node_modules/@types/node/process.d.ts +42 -43
  99. package/node_modules/@slack/socket-mode/node_modules/@types/node/quic.d.ts +1049 -84
  100. package/node_modules/@slack/socket-mode/node_modules/@types/node/sqlite.d.ts +14 -1
  101. package/node_modules/@slack/socket-mode/node_modules/@types/node/stream/iter.d.ts +3 -2
  102. package/node_modules/@slack/socket-mode/node_modules/@types/node/test.d.ts +61 -0
  103. package/node_modules/@slack/socket-mode/node_modules/@types/node/v8.d.ts +20 -23
  104. package/node_modules/@slack/web-api/node_modules/@types/node/README.md +1 -1
  105. package/node_modules/@slack/web-api/node_modules/@types/node/child_process.d.ts +0 -1
  106. package/node_modules/@slack/web-api/node_modules/@types/node/crypto.d.ts +6 -6
  107. package/node_modules/@slack/web-api/node_modules/@types/node/dns/promises.d.ts +5 -5
  108. package/node_modules/@slack/web-api/node_modules/@types/node/dns.d.ts +5 -5
  109. package/node_modules/@slack/web-api/node_modules/@types/node/fs.d.ts +7 -0
  110. package/node_modules/@slack/web-api/node_modules/@types/node/http.d.ts +30 -0
  111. package/node_modules/@slack/web-api/node_modules/@types/node/http2.d.ts +4 -4
  112. package/node_modules/@slack/web-api/node_modules/@types/node/os.d.ts +30 -30
  113. package/node_modules/@slack/web-api/node_modules/@types/node/package.json +2 -2
  114. package/node_modules/@slack/web-api/node_modules/@types/node/perf_hooks.d.ts +2 -1
  115. package/node_modules/@slack/web-api/node_modules/@types/node/process.d.ts +42 -43
  116. package/node_modules/@slack/web-api/node_modules/@types/node/quic.d.ts +1049 -84
  117. package/node_modules/@slack/web-api/node_modules/@types/node/sqlite.d.ts +14 -1
  118. package/node_modules/@slack/web-api/node_modules/@types/node/stream/iter.d.ts +3 -2
  119. package/node_modules/@slack/web-api/node_modules/@types/node/test.d.ts +61 -0
  120. package/node_modules/@slack/web-api/node_modules/@types/node/v8.d.ts +20 -23
  121. package/node_modules/typebox/build/format/date.d.mts +1 -1
  122. package/node_modules/typebox/build/format/date.mjs +1 -1
  123. package/node_modules/typebox/build/format/date_time.d.mts +2 -2
  124. package/node_modules/typebox/build/format/date_time.mjs +3 -3
  125. package/node_modules/typebox/build/format/email.d.mts +1 -1
  126. package/node_modules/typebox/build/format/email.mjs +2 -2
  127. package/node_modules/typebox/build/format/hostname.mjs +2 -10
  128. package/node_modules/typebox/build/format/idn_email.d.mts +1 -1
  129. package/node_modules/typebox/build/format/idn_email.mjs +3 -3
  130. package/node_modules/typebox/build/format/idn_hostname.d.mts +1 -0
  131. package/node_modules/typebox/build/format/idn_hostname.mjs +3 -11
  132. package/node_modules/typebox/build/format/idna/format/bidi.d.mts +3 -0
  133. package/node_modules/typebox/build/format/idna/format/bidi.mjs +98 -0
  134. package/node_modules/typebox/build/format/idna/format/puny.d.mts +3 -0
  135. package/node_modules/typebox/build/format/idna/format/puny.mjs +144 -0
  136. package/node_modules/typebox/build/format/idna/hostname.d.mts +1 -0
  137. package/node_modules/typebox/build/format/idna/hostname.mjs +16 -0
  138. package/node_modules/typebox/build/format/idna/idn-hostname.d.mts +1 -0
  139. package/node_modules/typebox/build/format/idna/idn-hostname.mjs +41 -0
  140. package/node_modules/typebox/build/format/idna/index.d.mts +2 -0
  141. package/node_modules/typebox/build/format/idna/index.mjs +2 -0
  142. package/node_modules/typebox/build/format/idna/label/ascii.d.mts +1 -0
  143. package/node_modules/typebox/build/format/idna/label/ascii.mjs +9 -0
  144. package/node_modules/typebox/build/format/idna/label/puny.d.mts +1 -0
  145. package/node_modules/typebox/build/format/idna/label/puny.mjs +28 -0
  146. package/node_modules/typebox/build/format/idna/label/unicode.d.mts +1 -0
  147. package/node_modules/typebox/build/format/idna/label/unicode.mjs +106 -0
  148. package/node_modules/typebox/build/format/idna/pattern/pattern.d.mts +30 -0
  149. package/node_modules/typebox/build/format/idna/pattern/pattern.mjs +70 -0
  150. package/node_modules/typebox/build/format/ipv4.d.mts +0 -1
  151. package/node_modules/typebox/build/format/ipv4.mjs +2 -32
  152. package/node_modules/typebox/build/format/ipv6.mjs +2 -61
  153. package/node_modules/typebox/build/format/iri.d.mts +2 -2
  154. package/node_modules/typebox/build/format/iri.mjs +26 -8
  155. package/node_modules/typebox/build/format/iri_reference.d.mts +2 -2
  156. package/node_modules/typebox/build/format/iri_reference.mjs +9 -55
  157. package/node_modules/typebox/build/format/regex.d.mts +1 -2
  158. package/node_modules/typebox/build/format/regex.mjs +2 -6
  159. package/node_modules/typebox/build/format/time.d.mts +2 -2
  160. package/node_modules/typebox/build/format/time.mjs +19 -14
  161. package/node_modules/typebox/build/format/uri.d.mts +1 -1
  162. package/node_modules/typebox/build/format/uri.mjs +3 -130
  163. package/node_modules/typebox/build/format/uri_reference.d.mts +1 -1
  164. package/node_modules/typebox/build/format/uri_reference.mjs +2 -3
  165. package/node_modules/typebox/build/format/uri_template.d.mts +2 -3
  166. package/node_modules/typebox/build/format/uri_template.mjs +4 -5
  167. package/node_modules/typebox/build/format/url.d.mts +3 -3
  168. package/node_modules/typebox/build/format/url.mjs +4 -5
  169. package/node_modules/typebox/build/guard/emit.d.mts +3 -1
  170. package/node_modules/typebox/build/guard/emit.mjs +12 -5
  171. package/node_modules/typebox/build/guard/guard.d.mts +8 -2
  172. package/node_modules/typebox/build/guard/guard.mjs +25 -4
  173. package/node_modules/typebox/build/guard/string.d.mts +2 -2
  174. package/node_modules/typebox/build/guard/string.mjs +7 -7
  175. package/node_modules/typebox/build/schema/engine/_context.mjs +3 -3
  176. package/node_modules/typebox/build/schema/engine/_functions.mjs +1 -2
  177. package/node_modules/typebox/build/schema/engine/_regexp.d.mts +2 -0
  178. package/node_modules/typebox/build/schema/engine/_regexp.mjs +4 -0
  179. package/node_modules/typebox/build/schema/engine/_stack.mjs +12 -13
  180. package/node_modules/typebox/build/schema/engine/additionalItems.mjs +17 -7
  181. package/node_modules/typebox/build/schema/engine/additionalProperties.mjs +4 -3
  182. package/node_modules/typebox/build/schema/engine/contains.mjs +18 -6
  183. package/node_modules/typebox/build/schema/engine/enum.mjs +1 -1
  184. package/node_modules/typebox/build/schema/engine/items.mjs +26 -6
  185. package/node_modules/typebox/build/schema/engine/maxContains.mjs +3 -3
  186. package/node_modules/typebox/build/schema/engine/minContains.mjs +14 -4
  187. package/node_modules/typebox/build/schema/engine/not.mjs +4 -2
  188. package/node_modules/typebox/build/schema/engine/oneOf.mjs +7 -6
  189. package/node_modules/typebox/build/schema/engine/pattern.mjs +3 -2
  190. package/node_modules/typebox/build/schema/engine/patternProperties.mjs +4 -3
  191. package/node_modules/typebox/build/schema/engine/ref.mjs +1 -7
  192. package/node_modules/typebox/build/schema/engine/schema.mjs +13 -4
  193. package/node_modules/typebox/build/schema/engine/type.mjs +1 -1
  194. package/node_modules/typebox/build/schema/resolve/resolve.d.mts +4 -1
  195. package/node_modules/typebox/build/schema/resolve/resolve.mjs +202 -1
  196. package/node_modules/typebox/build/schema/static/propertyNames.d.mts +5 -0
  197. package/node_modules/typebox/build/schema/static/propertyNames.mjs +3 -0
  198. package/node_modules/typebox/build/schema/static/schema.d.mts +3 -0
  199. package/node_modules/typebox/build/schema/types/index.d.mts +0 -2
  200. package/node_modules/typebox/build/schema/types/index.mjs +0 -2
  201. package/node_modules/typebox/build/system/memory/clone.mjs +14 -11
  202. package/node_modules/typebox/build/system/memory/discard.mjs +6 -5
  203. package/node_modules/typebox/build/system/settings/settings.d.mts +9 -0
  204. package/node_modules/typebox/build/system/settings/settings.mjs +2 -0
  205. package/node_modules/typebox/build/type/engine/call/distribute_arguments.d.mts +6 -1
  206. package/node_modules/typebox/build/type/engine/call/distribute_arguments.mjs +16 -3
  207. package/node_modules/typebox/build/type/engine/call/instantiate.mjs +34 -4
  208. package/node_modules/typebox/build/type/engine/evaluate/broaden.d.mts +5 -5
  209. package/node_modules/typebox/build/type/engine/evaluate/broaden.mjs +20 -26
  210. package/node_modules/typebox/build/type/engine/evaluate/compare.d.mts +6 -10
  211. package/node_modules/typebox/build/type/engine/evaluate/compare.mjs +9 -13
  212. package/node_modules/typebox/build/type/engine/evaluate/composite.d.mts +7 -4
  213. package/node_modules/typebox/build/type/engine/evaluate/composite.mjs +12 -19
  214. package/node_modules/typebox/build/type/engine/evaluate/distribute.d.mts +4 -20
  215. package/node_modules/typebox/build/type/engine/evaluate/distribute.mjs +8 -20
  216. package/node_modules/typebox/build/type/engine/evaluate/evaluate.d.mts +4 -4
  217. package/node_modules/typebox/build/type/engine/evaluate/evaluate.mjs +11 -8
  218. package/node_modules/typebox/build/type/engine/evaluate/flatten.d.mts +1 -1
  219. package/node_modules/typebox/build/type/engine/evaluate/flatten.mjs +3 -4
  220. package/node_modules/typebox/build/type/engine/evaluate/narrow.d.mts +17 -2
  221. package/node_modules/typebox/build/type/engine/evaluate/narrow.mjs +26 -6
  222. package/node_modules/typebox/build/type/engine/exclude/operation.mjs +3 -4
  223. package/node_modules/typebox/build/type/engine/extract/operation.d.mts +1 -1
  224. package/node_modules/typebox/build/type/engine/extract/operation.mjs +3 -4
  225. package/node_modules/typebox/build/type/engine/priority/priority.d.mts +2 -2
  226. package/node_modules/typebox/build/type/engine/priority/priority.mjs +3 -4
  227. package/node_modules/typebox/build/type/script/mapping.d.mts +32 -29
  228. package/node_modules/typebox/build/type/script/mapping.mjs +18 -25
  229. package/node_modules/typebox/build/type/script/parser.d.mts +19 -25
  230. package/node_modules/typebox/build/type/script/parser.mjs +27 -23
  231. package/node_modules/typebox/build/value/errors/errors.d.mts +2 -2
  232. package/node_modules/typebox/build/value/errors/errors.mjs +1 -1
  233. package/node_modules/typebox/package.json +27 -27
  234. package/node_modules/typebox/readme.md +79 -82
  235. package/node_modules/ws/lib/permessage-deflate.js +3 -1
  236. package/node_modules/ws/package.json +1 -1
  237. package/openclaw.plugin.json +14 -6
  238. package/package.json +9 -7
  239. package/dist/account-configured-BwfXBo_F.js +0 -14
  240. package/dist/account-inspect-YJvFBbCR.js +0 -89
  241. package/dist/action-runtime.runtime-JtoOK9l5.js +0 -2
  242. package/dist/actions.runtime-CYLsYRai.js +0 -2
  243. package/dist/runtime-api-DBi7xc_g.js +0 -10
  244. package/dist/slack-client-kind-BXyOOICI.js +0 -94
  245. package/node_modules/@slack/bolt/node_modules/negotiator/HISTORY.md +0 -114
  246. package/node_modules/typebox/build/format/_idna.d.mts +0 -2
  247. package/node_modules/typebox/build/format/_idna.mjs +0 -246
  248. package/node_modules/typebox/build/format/_puny.d.mts +0 -1
  249. package/node_modules/typebox/build/format/_puny.mjs +0 -77
  250. package/node_modules/typebox/build/schema/resolve/ref.d.mts +0 -3
  251. package/node_modules/typebox/build/schema/resolve/ref.mjs +0 -146
  252. package/node_modules/typebox/build/schema/types/contentEncoding.d.mts +0 -9
  253. package/node_modules/typebox/build/schema/types/contentEncoding.mjs +0 -13
  254. package/node_modules/typebox/build/schema/types/contentMediaType.d.mts +0 -9
  255. package/node_modules/typebox/build/schema/types/contentMediaType.mjs +0 -13
@@ -1,8 +1,8 @@
1
- import { a as resolveSlackAccount, c as resolveSlackConfigAccessorAccount, i as resolveDefaultSlackAccountId, n as listSlackAccountIds } from "./accounts-BlzxuYle.js";
2
- import { t as inspectSlackAccount } from "./account-inspect-YJvFBbCR.js";
3
- import { t as isSlackPluginAccountConfigured } from "./account-configured-BwfXBo_F.js";
4
- import { t as SlackChannelConfigSchema } from "./config-schema-CN3XZRX5.js";
5
- import { hasConfiguredSecretInput, normalizeSecretInputString } from "openclaw/plugin-sdk/secret-input";
1
+ import { r as isSlackSetupAccountConfigured } from "./account-configured-sUohAxZr.js";
2
+ import { a as resolveSlackAccount, c as resolveSlackConfigAccessorAccount, i as resolveDefaultSlackAccountId, n as listSlackAccountIds } from "./accounts-Dm_H77gH.js";
3
+ import { t as inspectSlackAccount } from "./account-inspect-C3sePHWa.js";
4
+ import { t as SlackChannelConfigSchema } from "./config-schema-B9GwoRlE.js";
5
+ import { normalizeSecretInputString } from "openclaw/plugin-sdk/secret-input";
6
6
  import { normalizeOptionalString } from "openclaw/plugin-sdk/string-coerce-runtime";
7
7
  import { adaptScopedAccountAccessor, createScopedChannelConfigAdapter } from "openclaw/plugin-sdk/channel-config-helpers";
8
8
  import { formatAllowFromLowercase } from "openclaw/plugin-sdk/allow-from";
@@ -102,13 +102,13 @@ function buildSlackManifest(botName = "OpenClaw") {
102
102
  }
103
103
  function buildSlackSetupLines() {
104
104
  return [
105
- "1) Slack API -> Create App -> From scratch or From manifest (with the JSON below)",
106
- "2) Add Socket Mode + enable it to get the app-level token (xapp-...)",
107
- "3) Install App to workspace to get the xoxb- bot token",
108
- "4) Enable Event Subscriptions (socket) for message, App Home, and Agent View events",
109
- "5) App Home -> enable the Home tab, Messages tab for DMs, and Agent View",
110
- "Manifest JSON follows as plain text for copy/paste.",
111
- "Tip: set SLACK_BOT_TOKEN + SLACK_APP_TOKEN in your env.",
105
+ "1) Slack API -> Create App -> From scratch or a transport-specific manifest",
106
+ "2) Install App to workspace to get the xoxb- bot token",
107
+ "3) Socket Mode: enable it and create an app-level token (xapp-...)",
108
+ "4) HTTP: configure a public HTTPS Request URL and copy the app Signing Secret",
109
+ "5) Enable Event Subscriptions for message, App Home, and Agent View events",
110
+ "6) App Home -> enable the Home tab, Messages tab for DMs, and Agent View",
111
+ "Tip: Socket Mode can use SLACK_BOT_TOKEN + SLACK_APP_TOKEN in your env.",
112
112
  `Docs: ${formatDocsLink("/slack", "slack")}`
113
113
  ];
114
114
  }
@@ -121,17 +121,6 @@ function setSlackChannelAllowlist(cfg, accountId, channelKeys) {
121
121
  patch: { channels }
122
122
  });
123
123
  }
124
- function isSlackSetupAccountConfigured(account) {
125
- if (account.config.mode === "relay") return isSlackPluginAccountConfigured(account);
126
- const hasConfiguredUserToken = Boolean(account.userToken?.trim()) || hasConfiguredSecretInput(account.config.userToken);
127
- const hasConfiguredBotToken = Boolean(account.botToken?.trim()) || hasConfiguredSecretInput(account.config.botToken);
128
- const hasConfiguredAppToken = Boolean(account.appToken?.trim()) || hasConfiguredSecretInput(account.config.appToken);
129
- if (account.identity === "user") {
130
- const hasTransportCredential = account.config.mode === "http" ? hasConfiguredSecretInput(account.config.signingSecret) : hasConfiguredAppToken;
131
- return hasConfiguredUserToken && hasTransportCredential;
132
- }
133
- return hasConfiguredBotToken && hasConfiguredAppToken;
134
- }
135
124
  function describeSlackSetupAccount(account) {
136
125
  return describeAccountSnapshot({
137
126
  account,
@@ -229,12 +218,9 @@ function createSlackTokenCredential(params) {
229
218
  });
230
219
  }
231
220
  function hasSlackSetupCredentials(params) {
232
- if (params.identity !== "user") {
233
- const { input } = params;
234
- return Boolean(input.botToken && input.appToken);
235
- }
236
- if (params.mode === "http") return Boolean(params.input.userToken && params.input.signingSecret);
237
- return params.mode === "socket" && Boolean(params.input.userToken && params.input.appToken);
221
+ const identityToken = params.identity === "user" ? params.input.userToken : params.input.botToken;
222
+ const transportCredential = params.mode === "http" ? params.input.signingSecret : params.input.appToken;
223
+ return Boolean(identityToken && transportCredential);
238
224
  }
239
225
  const slackSetupAdapterBase = createPatchedAccountSetupAdapter({
240
226
  channelKey: SLACK_CHANNEL,
@@ -260,13 +246,13 @@ const slackSetupAdapterBase = createPatchedAccountSetupAdapter({
260
246
  mode
261
247
  })) return null;
262
248
  if (identity === "user") return mode === "http" ? "Slack user identity requires --user-token and --signing-secret." : "Slack user identity requires --user-token and --app-token.";
263
- return "Slack requires --bot-token and --app-token (or --use-env).";
249
+ return mode === "http" ? "Slack HTTP mode requires --bot-token and --signing-secret (or --use-env)." : "Slack requires --bot-token and --app-token (or --use-env).";
264
250
  },
265
251
  buildPatch: (input) => {
266
252
  const setupInput = input;
267
253
  return {
268
254
  ...setupInput.identity ? { postAs: setupInput.identity } : {},
269
- ...setupInput.identity === "user" && setupInput.mode ? { mode: setupInput.mode } : {},
255
+ ...setupInput.mode ? { mode: setupInput.mode } : {},
270
256
  ...setupInput.botToken ? { botToken: setupInput.botToken } : {},
271
257
  ...setupInput.appToken ? { appToken: setupInput.appToken } : {},
272
258
  ...setupInput.userToken ? { userToken: setupInput.userToken } : {},
@@ -274,6 +260,25 @@ const slackSetupAdapterBase = createPatchedAccountSetupAdapter({
274
260
  };
275
261
  }
276
262
  });
263
+ const slackSetupAdapter = {
264
+ ...slackSetupAdapterBase,
265
+ singleAccountKeysToMove: ["appToken"],
266
+ applyAccountConfig: ({ cfg, accountId, input }) => {
267
+ const setupInput = input;
268
+ const identity = setupInput.identity ?? inspectSlackAccount({
269
+ cfg,
270
+ accountId
271
+ }).config.postAs;
272
+ return slackSetupAdapterBase.applyAccountConfig({
273
+ cfg,
274
+ accountId,
275
+ input: identity === "user" ? {
276
+ ...setupInput,
277
+ identity
278
+ } : setupInput
279
+ });
280
+ }
281
+ };
277
282
  const slackSetupContract = defineChannelSetupContract({
278
283
  fields: {
279
284
  botToken: {
@@ -333,25 +338,7 @@ const slackSetupContract = defineChannelSetupContract({
333
338
  envVars: ["SLACK_BOT_TOKEN"]
334
339
  }
335
340
  },
336
- legacyAdapter: {
337
- ...slackSetupAdapterBase,
338
- singleAccountKeysToMove: ["appToken"],
339
- applyAccountConfig: ({ cfg, accountId, input }) => {
340
- const setupInput = input;
341
- const identity = setupInput.identity ?? inspectSlackAccount({
342
- cfg,
343
- accountId
344
- }).config.postAs;
345
- return slackSetupAdapterBase.applyAccountConfig({
346
- cfg,
347
- accountId,
348
- input: identity === "user" ? {
349
- ...setupInput,
350
- identity
351
- } : setupInput
352
- });
353
- }
354
- }
341
+ legacyAdapter: slackSetupAdapter
355
342
  });
356
343
  function createSlackSetupWizardBase(handlers) {
357
344
  const slackDmPolicy = createChannelDmPolicy({
@@ -421,23 +408,24 @@ function createSlackSetupWizardBase(handlers) {
421
408
  `Docs: ${formatDocsLink("/channels/slack#user-identity-post-as-a-real-person", "channels/slack")}`
422
409
  ].join("\n"), "Slack user identity");
423
410
  } else {
424
- await prompter.note(buildSlackSetupLines().join("\n"), t("wizard.slack.socketModeTokensTitle"));
425
- const manifest = buildSlackManifest();
426
- if (prompter.plain) await prompter.plain(manifest);
427
- else await prompter.note(manifest, "Slack manifest JSON");
411
+ await prompter.note(buildSlackSetupLines().join("\n"), t("wizard.channels.setupTitle"));
412
+ if (currentAccount.config.mode !== "http") {
413
+ const manifest = buildSlackManifest();
414
+ await (prompter.plain ? prompter.plain(manifest) : prompter.note(manifest, "Slack manifest JSON"));
415
+ }
428
416
  }
429
417
  return { cfg: next };
430
418
  },
431
419
  envShortcut: {
432
420
  prompt: t("wizard.slack.envPrompt"),
433
421
  preferredEnvVar: "SLACK_BOT_TOKEN",
434
- isAvailable: ({ cfg, accountId }) => accountId === DEFAULT_ACCOUNT_ID && (inspectSlackAccount({
435
- cfg,
436
- accountId
437
- }).config.postAs ?? "bot") === "bot" && Boolean(process.env.SLACK_BOT_TOKEN?.trim()) && Boolean(process.env.SLACK_APP_TOKEN?.trim()) && !inspectSlackAccount({
438
- cfg,
439
- accountId
440
- }).configured,
422
+ isAvailable: ({ cfg, accountId }) => {
423
+ const account = inspectSlackAccount({
424
+ cfg,
425
+ accountId
426
+ });
427
+ return accountId === DEFAULT_ACCOUNT_ID && (account.config.postAs ?? "bot") === "bot" && (account.config.mode ?? "socket") === "socket" && Boolean(process.env.SLACK_BOT_TOKEN?.trim()) && Boolean(process.env.SLACK_APP_TOKEN?.trim()) && !account.configured;
428
+ },
441
429
  apply: ({ cfg, accountId }) => enableSlackAccount(cfg, accountId)
442
430
  },
443
431
  credentials: [
@@ -473,11 +461,10 @@ function createSlackSetupWizardBase(handlers) {
473
461
  keepPrompt: t("wizard.slack.appTokenKeep"),
474
462
  inputPrompt: t("wizard.slack.appTokenInput"),
475
463
  shouldPrompt: ({ cfg, accountId }) => {
476
- const account = inspectSlackAccount({
464
+ return (inspectSlackAccount({
477
465
  cfg,
478
466
  accountId
479
- });
480
- return (account.config.postAs ?? "bot") === "bot" || (account.config.mode ?? "socket") === "socket";
467
+ }).config.mode ?? "socket") === "socket";
481
468
  }
482
469
  }),
483
470
  createSlackTokenCredential({
@@ -487,11 +474,10 @@ function createSlackSetupWizardBase(handlers) {
487
474
  keepPrompt: "Slack signing secret already configured. Keep it?",
488
475
  inputPrompt: "Enter Slack signing secret",
489
476
  shouldPrompt: ({ cfg, accountId }) => {
490
- const account = inspectSlackAccount({
477
+ return inspectSlackAccount({
491
478
  cfg,
492
479
  accountId
493
- });
494
- return account.config.postAs === "user" && account.config.mode === "http";
480
+ }).config.mode === "http";
495
481
  }
496
482
  })
497
483
  ],
@@ -570,7 +556,7 @@ const slackBaseConfigAdapter = createScopedChannelConfigAdapter({
570
556
  });
571
557
  //#endregion
572
558
  //#region extensions/slack/src/channel.setup.ts
573
- const slackSetupWizard = createSlackSetupWizardProxy(async () => ({ slackSetupWizard: (await import("./setup-surface-BPFfp6So.js")).slackSetupWizard }));
559
+ const slackSetupWizard = createSlackSetupWizardProxy(async () => ({ slackSetupWizard: (await import("./setup-surface-Cc3P-z35.js")).slackSetupWizard }));
574
560
  const slackSetupPlugin = {
575
561
  id: SLACK_CHANNEL,
576
562
  meta: {
@@ -1,6 +1,6 @@
1
1
  import { buildSecretInputSchema, hasConfiguredSecretInput } from "openclaw/plugin-sdk/secret-input";
2
2
  import { createChannelConfigUiHints } from "openclaw/plugin-sdk/channel-core";
3
- import { ChannelBotLoopProtectionSchema, ChannelDangerouslyAllowNameMatchingSchema, ChannelImplicitMentionsSchema, ChannelPreviewStreamingConfigSchema, ChannelStreamingProgressSchema, GroupPolicySchema, ProviderCommandsSchema, ReplyToModeSchema, buildChannelAllowBotsSchema, buildChannelConfigSchema, buildChannelExecApprovalsSchema, buildChannelReactionShape, buildCommonChannelAccountShape, buildGroupEntrySchema, requireAllowlistAllowFrom, requireOpenAllowFrom } from "openclaw/plugin-sdk/channel-config-schema";
3
+ import { ChannelBotLoopProtectionSchema, ChannelDangerouslyAllowNameMatchingSchema, ChannelImplicitMentionsSchema, ChannelPreviewStreamingConfigSchema, ChannelStreamingProgressSchema, ProviderCommandsSchema, ReplyToModeSchema, buildChannelAccountSchemaParts, buildChannelAllowBotsSchema, buildChannelConfigSchema, buildChannelExecApprovalsSchema, buildChannelReactionShape, buildGroupEntrySchema, requireAllowlistAllowFrom, requireOpenAllowFrom } from "openclaw/plugin-sdk/channel-config-schema";
4
4
  import { z } from "zod";
5
5
  //#region extensions/slack/src/config-ui-hints.ts
6
6
  const slackChannelConfigUiHints = {
@@ -37,6 +37,10 @@ const slackChannelConfigUiHints = {
37
37
  },
38
38
  progress: { labels: "openclaw" }
39
39
  }),
40
+ joinIntro: {
41
+ label: "Slack Channel Join Introduction",
42
+ help: "Post one brief, room-specific introduction when the bot joins an allowed Slack channel (default: true). Account settings override the channel-wide setting."
43
+ },
40
44
  allowBots: {
41
45
  label: "Slack Allow Bot Messages",
42
46
  help: "Allow bot-authored messages to trigger Slack replies (default: false)."
@@ -95,7 +99,7 @@ const slackChannelConfigUiHints = {
95
99
  },
96
100
  execApprovals: {
97
101
  label: "Slack Exec Approvals",
98
- help: "Slack-native exec approval routing and approver authorization. When unset, OpenClaw auto-enables DM-first native approvals if approvers can be resolved for this Slack account."
102
+ help: "Slack-native exec approval routing and approver authorization. Set enabled to \"auto\" or true to enable DM-first native approvals when approvers can be resolved for this Slack account; unset or false disables them."
99
103
  },
100
104
  presenceEvents: {
101
105
  label: "Slack Presence Events",
@@ -119,7 +123,7 @@ const slackChannelConfigUiHints = {
119
123
  },
120
124
  "execApprovals.enabled": {
121
125
  label: "Slack Exec Approvals Enabled",
122
- help: "Controls Slack native exec approvals for this account: unset or \"auto\" enables DM-first native approvals when approvers can be resolved, true forces native approvals on, and false disables them."
126
+ help: "Controls Slack native exec approvals for this account: \"auto\" or true enables DM-first native approvals when approvers can be resolved; unset or false disables them."
123
127
  },
124
128
  "execApprovals.approvers": {
125
129
  label: "Slack Exec Approval Approvers",
@@ -199,12 +203,14 @@ const SlackRelaySchema = z.object({
199
203
  gatewayId: z.string().optional()
200
204
  }).strict();
201
205
  const SlackIdentitySchema = z.enum(["bot", "user"]);
206
+ const { accountShape, rootPolicyShape } = buildChannelAccountSchemaParts({
207
+ omit: ["groupAllowFrom"],
208
+ streaming: SlackStreamingConfigSchema.optional()
209
+ });
202
210
  const SlackAccountSchema = z.object({
203
- ...buildCommonChannelAccountShape({
204
- omit: ["groupAllowFrom"],
205
- streaming: SlackStreamingConfigSchema.optional()
206
- }),
207
- postAs: SlackIdentitySchema.default("bot"),
211
+ ...accountShape,
212
+ joinIntro: z.boolean().optional(),
213
+ postAs: SlackIdentitySchema.optional(),
208
214
  mode: z.enum([
209
215
  "socket",
210
216
  "http",
@@ -218,7 +224,7 @@ const SlackAccountSchema = z.object({
218
224
  botToken: SecretInputSchema.optional(),
219
225
  appToken: SecretInputSchema.optional(),
220
226
  userToken: SecretInputSchema.optional(),
221
- userTokenReadOnly: z.boolean().optional().default(true),
227
+ userTokenReadOnly: z.boolean().optional(),
222
228
  allowBots: buildChannelAllowBotsSchema({ allowMentions: true }),
223
229
  botLoopProtection: ChannelBotLoopProtectionSchema.optional(),
224
230
  dangerouslyAllowNameMatching: ChannelDangerouslyAllowNameMatchingSchema,
@@ -259,7 +265,6 @@ const SlackAccountSchema = z.object({
259
265
  channels: z.record(z.string(), SlackChannelSchema.optional()).optional(),
260
266
  typingReaction: z.string().optional()
261
267
  }).strict();
262
- const SlackAccountEntrySchema = SlackAccountSchema.extend({ postAs: SlackIdentitySchema.optional() });
263
268
  function validateSlackSigningSecretRequirements(value, ctx) {
264
269
  const resolveMode = (mode) => mode === "http" || mode === "socket" || mode === "relay" ? mode : void 0;
265
270
  const baseMode = resolveMode(value.mode) ?? "socket";
@@ -272,7 +277,8 @@ function validateSlackSigningSecretRequirements(value, ctx) {
272
277
  for (const [accountId, account] of Object.entries(value.accounts ?? {})) {
273
278
  if (!account || account.enabled === false) continue;
274
279
  if ((resolveMode(account.mode) ?? baseMode) !== "http") continue;
275
- if (!hasConfiguredSecretInput(account.signingSecret ?? value.signingSecret)) ctx.addIssue({
280
+ const accountSecret = account.signingSecret ?? value.signingSecret;
281
+ if (!hasConfiguredSecretInput(accountSecret)) ctx.addIssue({
276
282
  code: z.ZodIssueCode.custom,
277
283
  message: "channels.slack.accounts.*.mode=\"http\" requires channels.slack.signingSecret or channels.slack.accounts.*.signingSecret",
278
284
  path: [
@@ -283,7 +289,10 @@ function validateSlackSigningSecretRequirements(value, ctx) {
283
289
  });
284
290
  }
285
291
  }
286
- const SlackChannelConfigSchema = buildChannelConfigSchema(SlackAccountSchema.safeExtend({
292
+ const SlackConfigSchema = SlackAccountSchema.safeExtend({
293
+ ...rootPolicyShape,
294
+ postAs: SlackIdentitySchema.default("bot"),
295
+ userTokenReadOnly: z.boolean().optional().default(true),
287
296
  mode: z.enum([
288
297
  "socket",
289
298
  "http",
@@ -291,8 +300,7 @@ const SlackChannelConfigSchema = buildChannelConfigSchema(SlackAccountSchema.saf
291
300
  ]).optional().default("socket"),
292
301
  signingSecret: SecretInputSchema.optional(),
293
302
  webhookPath: z.string().optional().default("/slack/events"),
294
- groupPolicy: GroupPolicySchema.optional().default("allowlist"),
295
- accounts: z.record(z.string(), SlackAccountEntrySchema.optional()).optional(),
303
+ accounts: z.record(z.string(), SlackAccountSchema.optional()).optional(),
296
304
  defaultAccount: z.string().optional()
297
305
  }).superRefine((value, ctx) => {
298
306
  if (value.enabled === false) return;
@@ -378,6 +386,7 @@ const SlackChannelConfigSchema = buildChannelConfigSchema(SlackAccountSchema.saf
378
386
  }
379
387
  }
380
388
  validateSlackSigningSecretRequirements(value, ctx);
381
- }), { uiHints: slackChannelConfigUiHints });
389
+ });
390
+ const SlackChannelConfigSchema = buildChannelConfigSchema(SlackConfigSchema, { uiHints: slackChannelConfigUiHints });
382
391
  //#endregion
383
392
  export { SlackChannelConfigSchema as t };
@@ -0,0 +1,34 @@
1
+ import { t as hasSlackAccountCredentials } from "./account-configured-sUohAxZr.js";
2
+ import { DEFAULT_ACCOUNT_ID, hasConfiguredAccountValue, mergeAccountConfig } from "openclaw/plugin-sdk/account-core";
3
+ //#region extensions/slack/configured-state.ts
4
+ function hasConfiguredSlackAccount(account, env) {
5
+ const userIdentity = account?.postAs === "user";
6
+ return hasSlackAccountCredentials({
7
+ config: account ?? {},
8
+ identityTokenConfigured: hasConfiguredAccountValue(userIdentity ? account?.userToken : account?.botToken) || hasConfiguredAccountValue(userIdentity ? env.SLACK_USER_TOKEN : env.SLACK_BOT_TOKEN),
9
+ appTokenConfigured: hasConfiguredAccountValue(account?.appToken) || hasConfiguredAccountValue(env.SLACK_APP_TOKEN)
10
+ });
11
+ }
12
+ /** Resolve Slack activation through its account owner's real transport credential contract. */
13
+ function hasConfiguredSlackChannelState(params) {
14
+ const channel = params.cfg.channels?.slack;
15
+ if (channel?.enabled === false) return false;
16
+ const defaultAccount = channel?.accounts?.[DEFAULT_ACCOUNT_ID];
17
+ if (defaultAccount?.enabled !== false) {
18
+ if (hasConfiguredSlackAccount(defaultAccount ? mergeAccountConfig({
19
+ channelConfig: channel,
20
+ accountConfig: defaultAccount,
21
+ nestedObjectKeys: ["relay"]
22
+ }) : channel, params.env ?? process.env)) return true;
23
+ }
24
+ return Object.entries(channel?.accounts ?? {}).some(([accountId, account]) => {
25
+ if (accountId === DEFAULT_ACCOUNT_ID || account.enabled === false) return false;
26
+ return hasConfiguredSlackAccount(mergeAccountConfig({
27
+ channelConfig: channel,
28
+ accountConfig: account,
29
+ nestedObjectKeys: ["relay"]
30
+ }), {});
31
+ });
32
+ }
33
+ //#endregion
34
+ export { hasConfiguredSlackChannelState };
@@ -1,5 +1,5 @@
1
- import { a as parseSlackTarget } from "./target-parsing-BnMD2ZqZ.js";
2
- import "./targets-Cx5W_n3W.js";
1
+ import { a as parseSlackTarget } from "./target-parsing-PbxGDbr9.js";
2
+ import "./targets-7FexXJ62.js";
3
3
  import { resolveConfiguredBindingRoute, resolveRuntimeConversationBindingRoute } from "openclaw/plugin-sdk/conversation-runtime";
4
4
  //#region extensions/slack/src/account-reply-mode.ts
5
5
  function normalizeSlackChatType(raw) {
@@ -1,7 +1,7 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-8H4AJuhK.js";
2
- import { i as resolveDefaultSlackAccountId, o as resolveSlackAccountAllowFrom, r as mergeSlackAccountConfig } from "./accounts-BlzxuYle.js";
3
- import { a as parseSlackTarget } from "./target-parsing-BnMD2ZqZ.js";
4
- import "./targets-Cx5W_n3W.js";
2
+ import { i as resolveDefaultSlackAccountId, o as resolveSlackAccountAllowFrom, r as mergeSlackAccountConfig } from "./accounts-Dm_H77gH.js";
3
+ import { a as parseSlackTarget } from "./target-parsing-PbxGDbr9.js";
4
+ import "./targets-7FexXJ62.js";
5
5
  import { normalizeAccountId } from "openclaw/plugin-sdk/account-resolution";
6
6
  import { normalizeLowercaseStringOrEmpty } from "openclaw/plugin-sdk/string-coerce-runtime";
7
7
  import { createResolvedDirectoryEntriesLister } from "openclaw/plugin-sdk/directory-config-runtime";
@@ -37,7 +37,8 @@ const listSlackDirectoryPeersFromConfig = createResolvedDirectoryEntriesLister({
37
37
  normalizeId: (raw) => {
38
38
  const normalizedUserId = (raw.match(/^<@([A-Z0-9]+)>$/i)?.[1] ?? raw).replace(/^(slack|user):/i, "").trim();
39
39
  if (!normalizedUserId) return null;
40
- const normalized = parseSlackTarget(`user:${normalizedUserId}`, { defaultKind: "user" });
40
+ const target = `user:${normalizedUserId}`;
41
+ const normalized = parseSlackTarget(target, { defaultKind: "user" });
41
42
  return normalized?.kind === "user" ? `user:${normalizeLowercaseStringOrEmpty(normalized.id)}` : null;
42
43
  }
43
44
  });
@@ -1,2 +1,2 @@
1
- import { n as listSlackDirectoryGroupsFromConfig, r as listSlackDirectoryPeersFromConfig } from "./directory-config-BGYyuzWh.js";
1
+ import { n as listSlackDirectoryGroupsFromConfig, r as listSlackDirectoryPeersFromConfig } from "./directory-config-Bmw4ykSy.js";
2
2
  export { listSlackDirectoryGroupsFromConfig, listSlackDirectoryPeersFromConfig };
@@ -1,6 +1,6 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-8H4AJuhK.js";
2
- import { a as resolveSlackAccount } from "./accounts-BlzxuYle.js";
3
- import { i as createSlackLookupClient } from "./probe-BVA65leh.js";
2
+ import { a as resolveSlackAccount } from "./accounts-Dm_H77gH.js";
3
+ import { s as createSlackLookupClient } from "./probe-gj5yQgN2.js";
4
4
  import { t as collectSlackCursorPages } from "./cursor-pages-eX7p8Wwt.js";
5
5
  import { normalizeLowercaseStringOrEmpty, normalizeOptionalLowercaseString, normalizeOptionalString } from "openclaw/plugin-sdk/string-coerce-runtime";
6
6
  //#region extensions/slack/src/directory-live.ts
@@ -171,11 +171,12 @@ function normalizeCompatibilityConfig({ cfg }) {
171
171
  scope: "root-and-accounts",
172
172
  onRemove: ({ key, pathPrefix }) => changes.push(`Removed retired ${pathPrefix}.${key}; Slack detects org-wide installations automatically.`)
173
173
  });
174
+ const aliases = streamingAliasMigration.normalizeChannelConfig({
175
+ cfg: retired.config,
176
+ changes
177
+ });
174
178
  return normalizeChannelConfigEntries({
175
- cfg: streamingAliasMigration.normalizeChannelConfig({
176
- cfg: retired.config,
177
- changes
178
- }).config,
179
+ cfg: aliases.config,
179
180
  channelId: "slack",
180
181
  changes,
181
182
  normalizeEntry: normalizeSlackEntry
@@ -1,2 +1,2 @@
1
- import { n as normalizeCompatibilityConfig, t as legacyConfigRules } from "./doctor-contract-BAy7-EUQ.js";
1
+ import { n as normalizeCompatibilityConfig, t as legacyConfigRules } from "./doctor-contract-BNjw9bxb.js";
2
2
  export { legacyConfigRules, normalizeCompatibilityConfig };