@openclaw/slack 2026.8.1-beta.2 → 2026.9.1-beta.1

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 (245) hide show
  1. package/dist/account-configured-sUohAxZr.js +33 -0
  2. package/dist/account-inspect-CN2hBsim.js +87 -0
  3. package/dist/account-inspect-api.js +1 -1
  4. package/dist/{accounts-CK4AVI2_.js → accounts-Dm_H77gH.js} +12 -11
  5. package/dist/{accounts.runtime-Cb7QwWBz.js → accounts.runtime-DRuEK6mL.js} +1 -1
  6. package/dist/{action-runtime-BkGe7ny_.js → action-runtime-BoSeX09X.js} +76 -83
  7. package/dist/action-runtime.runtime-Dpa16J87.js +2 -0
  8. package/dist/{actions-BTDXwwE3.js → actions-XdQyjG_p.js} +134 -262
  9. package/dist/api.js +14 -14
  10. package/dist/{approval-handler.runtime-CJaNzAq2.js → approval-handler.runtime-DxXfGX_Z.js} +53 -174
  11. package/dist/{channel-D_tovcUL.js → channel-C_vnTgxo.js} +117 -72
  12. package/dist/channel-config-api.js +1 -1
  13. package/dist/channel-plugin-api.js +1 -1
  14. package/dist/{channel-type-B9MSdoGN.js → channel-type-j-2lalcC.js} +3 -7
  15. package/dist/{channel.setup-Bch9dYmA.js → channel.setup-aal8tokM.js} +34 -49
  16. package/dist/{config-schema-xto5jFIx.js → config-schema-CN3XZRX5.js} +23 -7
  17. package/dist/configured-state.js +34 -0
  18. package/dist/conversation-binding-route-DFVLUdYF.js +115 -0
  19. package/dist/{directory-config-CNBz8lJa.js → directory-config-DqfQ42OV.js} +1 -1
  20. package/dist/directory-contract-api.js +1 -1
  21. package/dist/{directory-live-CFKUtW9E.js → directory-live-lC6X_Ru-.js} +2 -2
  22. package/dist/{group-policy-c4RP9bjc.js → group-policy-CU1tEGpS.js} +583 -642
  23. package/dist/{message-tool-api-BykQB4AU.js → message-tool-api-CWosHSi5.js} +6 -5
  24. package/dist/message-tool-api.js +1 -1
  25. package/dist/{monitor-1nF1NtqT.js → monitor-DrNCGneD.js} +3 -3
  26. package/dist/{outbound-adapter-S81tsswN.js → outbound-adapter-DkT2vUE9.js} +50 -19
  27. package/dist/{pipeline.runtime-BvYsM5JO.js → pipeline.runtime-CRRng_Nw.js} +440 -451
  28. package/dist/{policy-TapwbeaT.js → policy-BoP6t88v.js} +1 -1
  29. package/dist/{probe-HoEg_WxB.js → probe-4_aHtVT3.js} +2 -21
  30. package/dist/{provider-CDNvBXUi.js → provider-D4nDgxCh.js} +240 -95
  31. package/dist/{relay-source-C9leF11u.js → relay-source-CEmze11m.js} +1 -1
  32. package/dist/{replies-CeOfv82I.js → replies-D9XMM_S0.js} +47 -26
  33. package/dist/{resolve-channels-CNPrxaXY.js → resolve-channels-DSamDgVs.js} +1 -1
  34. package/dist/{resolve-users-Dzomuwnr.js → resolve-users-CIzwbaJR.js} +1 -1
  35. package/dist/runtime-api.js +11 -11
  36. package/dist/{scopes-cYXKkrRD.js → scopes-BBrUzpBH.js} +1 -1
  37. package/dist/security-contract-api.js +1 -1
  38. package/dist/{send-Nor0iBwY.js → send-DtjEnlLh.js} +86 -98
  39. package/dist/{send.runtime-BmgNe6S9.js → send.runtime-DQeNKa2J.js} +1 -1
  40. package/dist/setup-plugin-api.js +1 -1
  41. package/dist/{setup-surface-CbX1-Knh.js → setup-surface-CsBCM4rP.js} +6 -6
  42. package/dist/{shared-zdT5AMp-.js → shared-D9GeeR9K.js} +33 -9
  43. package/dist/{block-text-YtiNkqmx.js → slack-client-kind-hSfjXyUM.js} +17 -2
  44. package/dist/{slash-dispatch.runtime-Bnr9GR1S.js → slash-dispatch.runtime-Chr3YHnT.js} +3 -3
  45. package/node_modules/@slack/bolt/node_modules/@types/node/README.md +1 -1
  46. package/node_modules/@slack/bolt/node_modules/@types/node/child_process.d.ts +0 -1
  47. package/node_modules/@slack/bolt/node_modules/@types/node/crypto.d.ts +6 -6
  48. package/node_modules/@slack/bolt/node_modules/@types/node/dns/promises.d.ts +5 -5
  49. package/node_modules/@slack/bolt/node_modules/@types/node/dns.d.ts +5 -5
  50. package/node_modules/@slack/bolt/node_modules/@types/node/fs.d.ts +7 -0
  51. package/node_modules/@slack/bolt/node_modules/@types/node/http.d.ts +30 -0
  52. package/node_modules/@slack/bolt/node_modules/@types/node/http2.d.ts +4 -4
  53. package/node_modules/@slack/bolt/node_modules/@types/node/os.d.ts +30 -30
  54. package/node_modules/@slack/bolt/node_modules/@types/node/package.json +2 -2
  55. package/node_modules/@slack/bolt/node_modules/@types/node/perf_hooks.d.ts +2 -1
  56. package/node_modules/@slack/bolt/node_modules/@types/node/process.d.ts +42 -43
  57. package/node_modules/@slack/bolt/node_modules/@types/node/quic.d.ts +1049 -84
  58. package/node_modules/@slack/bolt/node_modules/@types/node/sqlite.d.ts +14 -1
  59. package/node_modules/@slack/bolt/node_modules/@types/node/stream/iter.d.ts +3 -2
  60. package/node_modules/@slack/bolt/node_modules/@types/node/test.d.ts +61 -0
  61. package/node_modules/@slack/bolt/node_modules/@types/node/v8.d.ts +20 -23
  62. package/node_modules/@slack/bolt/node_modules/body-parser/node_modules/content-type/README.md +2 -0
  63. package/node_modules/@slack/bolt/node_modules/body-parser/node_modules/content-type/dist/index.d.ts +20 -0
  64. package/node_modules/@slack/bolt/node_modules/body-parser/node_modules/content-type/dist/index.js +20 -14
  65. package/node_modules/@slack/bolt/node_modules/body-parser/node_modules/content-type/dist/index.js.map +1 -1
  66. package/node_modules/@slack/bolt/node_modules/body-parser/node_modules/content-type/package.json +1 -1
  67. package/node_modules/@slack/bolt/node_modules/type-is/node_modules/content-type/README.md +2 -0
  68. package/node_modules/@slack/bolt/node_modules/type-is/node_modules/content-type/dist/index.d.ts +20 -0
  69. package/node_modules/@slack/bolt/node_modules/type-is/node_modules/content-type/dist/index.js +20 -14
  70. package/node_modules/@slack/bolt/node_modules/type-is/node_modules/content-type/dist/index.js.map +1 -1
  71. package/node_modules/@slack/bolt/node_modules/type-is/node_modules/content-type/package.json +1 -1
  72. package/node_modules/@slack/socket-mode/node_modules/@types/node/README.md +1 -1
  73. package/node_modules/@slack/socket-mode/node_modules/@types/node/child_process.d.ts +0 -1
  74. package/node_modules/@slack/socket-mode/node_modules/@types/node/crypto.d.ts +6 -6
  75. package/node_modules/@slack/socket-mode/node_modules/@types/node/dns/promises.d.ts +5 -5
  76. package/node_modules/@slack/socket-mode/node_modules/@types/node/dns.d.ts +5 -5
  77. package/node_modules/@slack/socket-mode/node_modules/@types/node/fs.d.ts +7 -0
  78. package/node_modules/@slack/socket-mode/node_modules/@types/node/http.d.ts +30 -0
  79. package/node_modules/@slack/socket-mode/node_modules/@types/node/http2.d.ts +4 -4
  80. package/node_modules/@slack/socket-mode/node_modules/@types/node/os.d.ts +30 -30
  81. package/node_modules/@slack/socket-mode/node_modules/@types/node/package.json +2 -2
  82. package/node_modules/@slack/socket-mode/node_modules/@types/node/perf_hooks.d.ts +2 -1
  83. package/node_modules/@slack/socket-mode/node_modules/@types/node/process.d.ts +42 -43
  84. package/node_modules/@slack/socket-mode/node_modules/@types/node/quic.d.ts +1049 -84
  85. package/node_modules/@slack/socket-mode/node_modules/@types/node/sqlite.d.ts +14 -1
  86. package/node_modules/@slack/socket-mode/node_modules/@types/node/stream/iter.d.ts +3 -2
  87. package/node_modules/@slack/socket-mode/node_modules/@types/node/test.d.ts +61 -0
  88. package/node_modules/@slack/socket-mode/node_modules/@types/node/v8.d.ts +20 -23
  89. package/node_modules/@slack/web-api/node_modules/@types/node/README.md +1 -1
  90. package/node_modules/@slack/web-api/node_modules/@types/node/child_process.d.ts +0 -1
  91. package/node_modules/@slack/web-api/node_modules/@types/node/crypto.d.ts +6 -6
  92. package/node_modules/@slack/web-api/node_modules/@types/node/dns/promises.d.ts +5 -5
  93. package/node_modules/@slack/web-api/node_modules/@types/node/dns.d.ts +5 -5
  94. package/node_modules/@slack/web-api/node_modules/@types/node/fs.d.ts +7 -0
  95. package/node_modules/@slack/web-api/node_modules/@types/node/http.d.ts +30 -0
  96. package/node_modules/@slack/web-api/node_modules/@types/node/http2.d.ts +4 -4
  97. package/node_modules/@slack/web-api/node_modules/@types/node/os.d.ts +30 -30
  98. package/node_modules/@slack/web-api/node_modules/@types/node/package.json +2 -2
  99. package/node_modules/@slack/web-api/node_modules/@types/node/perf_hooks.d.ts +2 -1
  100. package/node_modules/@slack/web-api/node_modules/@types/node/process.d.ts +42 -43
  101. package/node_modules/@slack/web-api/node_modules/@types/node/quic.d.ts +1049 -84
  102. package/node_modules/@slack/web-api/node_modules/@types/node/sqlite.d.ts +14 -1
  103. package/node_modules/@slack/web-api/node_modules/@types/node/stream/iter.d.ts +3 -2
  104. package/node_modules/@slack/web-api/node_modules/@types/node/test.d.ts +61 -0
  105. package/node_modules/@slack/web-api/node_modules/@types/node/v8.d.ts +20 -23
  106. package/node_modules/typebox/build/format/date.d.mts +1 -1
  107. package/node_modules/typebox/build/format/date.mjs +1 -1
  108. package/node_modules/typebox/build/format/date_time.d.mts +2 -2
  109. package/node_modules/typebox/build/format/date_time.mjs +3 -3
  110. package/node_modules/typebox/build/format/email.d.mts +1 -1
  111. package/node_modules/typebox/build/format/email.mjs +2 -2
  112. package/node_modules/typebox/build/format/hostname.mjs +2 -10
  113. package/node_modules/typebox/build/format/idn_email.d.mts +1 -1
  114. package/node_modules/typebox/build/format/idn_email.mjs +3 -3
  115. package/node_modules/typebox/build/format/idn_hostname.d.mts +1 -0
  116. package/node_modules/typebox/build/format/idn_hostname.mjs +3 -11
  117. package/node_modules/typebox/build/format/idna/format/bidi.d.mts +3 -0
  118. package/node_modules/typebox/build/format/idna/format/bidi.mjs +98 -0
  119. package/node_modules/typebox/build/format/idna/format/puny.d.mts +3 -0
  120. package/node_modules/typebox/build/format/idna/format/puny.mjs +144 -0
  121. package/node_modules/typebox/build/format/idna/hostname.d.mts +1 -0
  122. package/node_modules/typebox/build/format/idna/hostname.mjs +16 -0
  123. package/node_modules/typebox/build/format/idna/idn-hostname.d.mts +1 -0
  124. package/node_modules/typebox/build/format/idna/idn-hostname.mjs +23 -0
  125. package/node_modules/typebox/build/format/idna/index.d.mts +2 -0
  126. package/node_modules/typebox/build/format/idna/index.mjs +2 -0
  127. package/node_modules/typebox/build/format/idna/label/ascii.d.mts +1 -0
  128. package/node_modules/typebox/build/format/idna/label/ascii.mjs +9 -0
  129. package/node_modules/typebox/build/format/idna/label/puny.d.mts +1 -0
  130. package/node_modules/typebox/build/format/idna/label/puny.mjs +28 -0
  131. package/node_modules/typebox/build/format/idna/label/unicode.d.mts +1 -0
  132. package/node_modules/typebox/build/format/idna/label/unicode.mjs +106 -0
  133. package/node_modules/typebox/build/format/idna/pattern/pattern.d.mts +30 -0
  134. package/node_modules/typebox/build/format/idna/pattern/pattern.mjs +70 -0
  135. package/node_modules/typebox/build/format/ipv4.d.mts +0 -1
  136. package/node_modules/typebox/build/format/ipv4.mjs +2 -32
  137. package/node_modules/typebox/build/format/ipv6.mjs +2 -61
  138. package/node_modules/typebox/build/format/iri.d.mts +2 -2
  139. package/node_modules/typebox/build/format/iri.mjs +26 -8
  140. package/node_modules/typebox/build/format/iri_reference.d.mts +2 -2
  141. package/node_modules/typebox/build/format/iri_reference.mjs +9 -55
  142. package/node_modules/typebox/build/format/regex.d.mts +1 -2
  143. package/node_modules/typebox/build/format/regex.mjs +2 -6
  144. package/node_modules/typebox/build/format/time.d.mts +2 -2
  145. package/node_modules/typebox/build/format/time.mjs +19 -14
  146. package/node_modules/typebox/build/format/uri.d.mts +1 -1
  147. package/node_modules/typebox/build/format/uri.mjs +3 -130
  148. package/node_modules/typebox/build/format/uri_reference.d.mts +1 -1
  149. package/node_modules/typebox/build/format/uri_reference.mjs +2 -3
  150. package/node_modules/typebox/build/format/uri_template.d.mts +2 -3
  151. package/node_modules/typebox/build/format/uri_template.mjs +4 -5
  152. package/node_modules/typebox/build/format/url.d.mts +3 -3
  153. package/node_modules/typebox/build/format/url.mjs +4 -5
  154. package/node_modules/typebox/build/guard/emit.d.mts +3 -1
  155. package/node_modules/typebox/build/guard/emit.mjs +12 -5
  156. package/node_modules/typebox/build/guard/guard.d.mts +8 -2
  157. package/node_modules/typebox/build/guard/guard.mjs +25 -4
  158. package/node_modules/typebox/build/guard/string.d.mts +2 -2
  159. package/node_modules/typebox/build/guard/string.mjs +7 -7
  160. package/node_modules/typebox/build/schema/engine/_context.mjs +3 -3
  161. package/node_modules/typebox/build/schema/engine/_functions.mjs +1 -2
  162. package/node_modules/typebox/build/schema/engine/_regexp.d.mts +2 -0
  163. package/node_modules/typebox/build/schema/engine/_regexp.mjs +4 -0
  164. package/node_modules/typebox/build/schema/engine/_stack.mjs +12 -13
  165. package/node_modules/typebox/build/schema/engine/additionalItems.mjs +17 -7
  166. package/node_modules/typebox/build/schema/engine/additionalProperties.mjs +4 -3
  167. package/node_modules/typebox/build/schema/engine/contains.mjs +18 -6
  168. package/node_modules/typebox/build/schema/engine/enum.mjs +1 -1
  169. package/node_modules/typebox/build/schema/engine/items.mjs +26 -6
  170. package/node_modules/typebox/build/schema/engine/maxContains.mjs +3 -3
  171. package/node_modules/typebox/build/schema/engine/minContains.mjs +14 -4
  172. package/node_modules/typebox/build/schema/engine/not.mjs +4 -2
  173. package/node_modules/typebox/build/schema/engine/oneOf.mjs +7 -6
  174. package/node_modules/typebox/build/schema/engine/pattern.mjs +3 -2
  175. package/node_modules/typebox/build/schema/engine/patternProperties.mjs +4 -3
  176. package/node_modules/typebox/build/schema/engine/ref.mjs +1 -7
  177. package/node_modules/typebox/build/schema/engine/schema.mjs +13 -4
  178. package/node_modules/typebox/build/schema/engine/type.mjs +1 -1
  179. package/node_modules/typebox/build/schema/resolve/resolve.d.mts +4 -1
  180. package/node_modules/typebox/build/schema/resolve/resolve.mjs +202 -1
  181. package/node_modules/typebox/build/schema/static/propertyNames.d.mts +5 -0
  182. package/node_modules/typebox/build/schema/static/propertyNames.mjs +3 -0
  183. package/node_modules/typebox/build/schema/static/schema.d.mts +3 -0
  184. package/node_modules/typebox/build/schema/types/index.d.mts +0 -2
  185. package/node_modules/typebox/build/schema/types/index.mjs +0 -2
  186. package/node_modules/typebox/build/system/memory/clone.mjs +14 -11
  187. package/node_modules/typebox/build/system/memory/discard.mjs +6 -5
  188. package/node_modules/typebox/build/system/settings/settings.d.mts +9 -0
  189. package/node_modules/typebox/build/system/settings/settings.mjs +2 -0
  190. package/node_modules/typebox/build/type/engine/call/distribute_arguments.d.mts +6 -1
  191. package/node_modules/typebox/build/type/engine/call/distribute_arguments.mjs +16 -3
  192. package/node_modules/typebox/build/type/engine/call/instantiate.mjs +34 -4
  193. package/node_modules/typebox/build/type/engine/evaluate/broaden.d.mts +5 -5
  194. package/node_modules/typebox/build/type/engine/evaluate/broaden.mjs +20 -26
  195. package/node_modules/typebox/build/type/engine/evaluate/compare.d.mts +6 -10
  196. package/node_modules/typebox/build/type/engine/evaluate/compare.mjs +9 -13
  197. package/node_modules/typebox/build/type/engine/evaluate/composite.d.mts +7 -4
  198. package/node_modules/typebox/build/type/engine/evaluate/composite.mjs +12 -19
  199. package/node_modules/typebox/build/type/engine/evaluate/distribute.d.mts +4 -20
  200. package/node_modules/typebox/build/type/engine/evaluate/distribute.mjs +8 -20
  201. package/node_modules/typebox/build/type/engine/evaluate/evaluate.d.mts +4 -4
  202. package/node_modules/typebox/build/type/engine/evaluate/evaluate.mjs +11 -8
  203. package/node_modules/typebox/build/type/engine/evaluate/flatten.d.mts +1 -1
  204. package/node_modules/typebox/build/type/engine/evaluate/flatten.mjs +3 -4
  205. package/node_modules/typebox/build/type/engine/evaluate/narrow.d.mts +17 -2
  206. package/node_modules/typebox/build/type/engine/evaluate/narrow.mjs +26 -6
  207. package/node_modules/typebox/build/type/engine/exclude/operation.mjs +3 -4
  208. package/node_modules/typebox/build/type/engine/extract/operation.d.mts +1 -1
  209. package/node_modules/typebox/build/type/engine/extract/operation.mjs +3 -4
  210. package/node_modules/typebox/build/type/engine/priority/priority.d.mts +2 -2
  211. package/node_modules/typebox/build/type/engine/priority/priority.mjs +3 -4
  212. package/node_modules/typebox/build/type/script/mapping.d.mts +32 -29
  213. package/node_modules/typebox/build/type/script/mapping.mjs +18 -25
  214. package/node_modules/typebox/build/type/script/parser.d.mts +19 -25
  215. package/node_modules/typebox/build/type/script/parser.mjs +27 -23
  216. package/node_modules/typebox/build/value/errors/errors.d.mts +2 -2
  217. package/node_modules/typebox/build/value/errors/errors.mjs +1 -1
  218. package/node_modules/typebox/package.json +27 -27
  219. package/node_modules/typebox/readme.md +79 -82
  220. package/node_modules/ws/lib/permessage-deflate.js +3 -1
  221. package/node_modules/ws/package.json +1 -1
  222. package/openclaw.plugin.json +43 -1
  223. package/package.json +9 -9
  224. package/dist/account-configured-BwfXBo_F.js +0 -14
  225. package/dist/account-inspect-Drw2gAiN.js +0 -89
  226. package/dist/account-reply-mode-DrUXogvO.js +0 -14
  227. package/dist/action-runtime.runtime-D9I6uc0Q.js +0 -2
  228. package/dist/actions.runtime-DLFyUkvg.js +0 -2
  229. package/dist/runtime-api-Cj9nxBNv.js +0 -10
  230. package/node_modules/p-map/index.d.ts +0 -155
  231. package/node_modules/p-map/index.js +0 -285
  232. package/node_modules/p-map/license +0 -9
  233. package/node_modules/p-map/package.json +0 -57
  234. package/node_modules/p-map/readme.md +0 -190
  235. package/node_modules/typebox/build/format/_idna.d.mts +0 -2
  236. package/node_modules/typebox/build/format/_idna.mjs +0 -246
  237. package/node_modules/typebox/build/format/_puny.d.mts +0 -1
  238. package/node_modules/typebox/build/format/_puny.mjs +0 -77
  239. package/node_modules/typebox/build/schema/resolve/ref.d.mts +0 -3
  240. package/node_modules/typebox/build/schema/resolve/ref.mjs +0 -146
  241. package/node_modules/typebox/build/schema/types/contentEncoding.d.mts +0 -9
  242. package/node_modules/typebox/build/schema/types/contentEncoding.mjs +0 -13
  243. package/node_modules/typebox/build/schema/types/contentMediaType.d.mts +0 -9
  244. package/node_modules/typebox/build/schema/types/contentMediaType.mjs +0 -13
  245. package/dist/{security-audit-DR097212.js → security-audit-B_yKr7MW.js} +1 -1
@@ -1,2 +1,2 @@
1
- import { t as SlackChannelConfigSchema } from "./config-schema-xto5jFIx.js";
1
+ import { t as SlackChannelConfigSchema } from "./config-schema-CN3XZRX5.js";
2
2
  export { SlackChannelConfigSchema };
@@ -1,2 +1,2 @@
1
- import { t as slackPlugin } from "./channel-D_tovcUL.js";
1
+ import { t as slackPlugin } from "./channel-C_vnTgxo.js";
2
2
  export { slackPlugin };
@@ -1,13 +1,12 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-8H4AJuhK.js";
2
- import { a as resolveSlackAccount, l as resolveSlackOperationToken } from "./accounts-CK4AVI2_.js";
3
- import { p as assertSlackDetachedTargetAllowed, s as normalizeAllowListLower } from "./group-policy-c4RP9bjc.js";
4
- import { a as createSlackReadClient, c as createSlackWebClient } from "./probe-HoEg_WxB.js";
2
+ import { a as resolveSlackAccount, l as resolveSlackOperationToken } from "./accounts-Dm_H77gH.js";
3
+ import { g as assertSlackDetachedTargetAllowed, u as normalizeAllowListLower } from "./group-policy-CU1tEGpS.js";
4
+ import { a as createSlackReadClient, c as createSlackWebClient } from "./probe-4_aHtVT3.js";
5
5
  import { normalizeLowercaseStringOrEmpty, normalizeOptionalString } from "openclaw/plugin-sdk/string-coerce-runtime";
6
6
  import { createHash } from "node:crypto";
7
7
  import { pruneMapToMaxSize } from "openclaw/plugin-sdk/collection-runtime";
8
8
  //#region extensions/slack/src/channel-type.ts
9
9
  var channel_type_exports = /* @__PURE__ */ __exportAll({
10
- resetSlackChannelTypeCacheForTest: () => resetSlackChannelTypeCacheForTest,
11
10
  resolveSlackChannelType: () => resolveSlackChannelType,
12
11
  resolveSlackConversationInfo: () => resolveSlackConversationInfo
13
12
  });
@@ -102,8 +101,5 @@ async function resolveSlackConversationInfo(params) {
102
101
  async function resolveSlackChannelType(params) {
103
102
  return (await resolveSlackConversationInfo(params)).type;
104
103
  }
105
- function resetSlackChannelTypeCacheForTest() {
106
- SLACK_CONVERSATION_INFO_CACHE.clear();
107
- }
108
104
  //#endregion
109
105
  export { resolveSlackChannelType as n, resolveSlackConversationInfo as r, channel_type_exports as t };
@@ -1,8 +1,8 @@
1
- import { a as resolveSlackAccount, c as resolveSlackConfigAccessorAccount, i as resolveDefaultSlackAccountId, n as listSlackAccountIds } from "./accounts-CK4AVI2_.js";
2
- import { t as inspectSlackAccount } from "./account-inspect-Drw2gAiN.js";
3
- import { t as isSlackPluginAccountConfigured } from "./account-configured-BwfXBo_F.js";
4
- import { t as SlackChannelConfigSchema } from "./config-schema-xto5jFIx.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-CN2hBsim.js";
4
+ import { t as SlackChannelConfigSchema } from "./config-schema-CN3XZRX5.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 } : {},
@@ -421,23 +407,24 @@ function createSlackSetupWizardBase(handlers) {
421
407
  `Docs: ${formatDocsLink("/channels/slack#user-identity-post-as-a-real-person", "channels/slack")}`
422
408
  ].join("\n"), "Slack user identity");
423
409
  } 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");
410
+ await prompter.note(buildSlackSetupLines().join("\n"), t("wizard.channels.setupTitle"));
411
+ if (currentAccount.config.mode !== "http") {
412
+ const manifest = buildSlackManifest();
413
+ await (prompter.plain ? prompter.plain(manifest) : prompter.note(manifest, "Slack manifest JSON"));
414
+ }
428
415
  }
429
416
  return { cfg: next };
430
417
  },
431
418
  envShortcut: {
432
419
  prompt: t("wizard.slack.envPrompt"),
433
420
  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,
421
+ isAvailable: ({ cfg, accountId }) => {
422
+ const account = inspectSlackAccount({
423
+ cfg,
424
+ accountId
425
+ });
426
+ 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;
427
+ },
441
428
  apply: ({ cfg, accountId }) => enableSlackAccount(cfg, accountId)
442
429
  },
443
430
  credentials: [
@@ -473,11 +460,10 @@ function createSlackSetupWizardBase(handlers) {
473
460
  keepPrompt: t("wizard.slack.appTokenKeep"),
474
461
  inputPrompt: t("wizard.slack.appTokenInput"),
475
462
  shouldPrompt: ({ cfg, accountId }) => {
476
- const account = inspectSlackAccount({
463
+ return (inspectSlackAccount({
477
464
  cfg,
478
465
  accountId
479
- });
480
- return (account.config.postAs ?? "bot") === "bot" || (account.config.mode ?? "socket") === "socket";
466
+ }).config.mode ?? "socket") === "socket";
481
467
  }
482
468
  }),
483
469
  createSlackTokenCredential({
@@ -487,11 +473,10 @@ function createSlackSetupWizardBase(handlers) {
487
473
  keepPrompt: "Slack signing secret already configured. Keep it?",
488
474
  inputPrompt: "Enter Slack signing secret",
489
475
  shouldPrompt: ({ cfg, accountId }) => {
490
- const account = inspectSlackAccount({
476
+ return inspectSlackAccount({
491
477
  cfg,
492
478
  accountId
493
- });
494
- return account.config.postAs === "user" && account.config.mode === "http";
479
+ }).config.mode === "http";
495
480
  }
496
481
  })
497
482
  ],
@@ -570,7 +555,7 @@ const slackBaseConfigAdapter = createScopedChannelConfigAdapter({
570
555
  });
571
556
  //#endregion
572
557
  //#region extensions/slack/src/channel.setup.ts
573
- const slackSetupWizard = createSlackSetupWizardProxy(async () => ({ slackSetupWizard: (await import("./setup-surface-CbX1-Knh.js")).slackSetupWizard }));
558
+ const slackSetupWizard = createSlackSetupWizardProxy(async () => ({ slackSetupWizard: (await import("./setup-surface-CsBCM4rP.js")).slackSetupWizard }));
574
559
  const slackSetupPlugin = {
575
560
  id: SLACK_CHANNEL,
576
561
  meta: {
@@ -32,7 +32,8 @@ const slackChannelConfigUiHints = {
32
32
  nativeTransport: "Enable native Slack text streaming (chat.startStream/chat.appendStream/chat.stopStream) when channels.slack.streaming.mode is partial (default: true). Native streaming and Slack assistant thread status require a reply thread target; top-level DMs can still use draft post-and-edit preview streaming.",
33
33
  "preview.toolProgress": "Show tool/progress activity in the live draft preview message (default: true). Set false to hide interim tool updates while the draft preview stays active.",
34
34
  "preview.commandText": "Command/exec detail in preview tool-progress lines: \"status\" is the safe default; \"raw\" opts into command text.",
35
- "progress.nativeTaskCards": "Slack native task-card progress updates when channels.slack.streaming.mode=\"progress\" and streaming.nativeTransport is enabled. Set false to fall back to the Block Kit progress card. Default: true."
35
+ "progress.style": "Slack progress presentation: \"card\" (default) uses structured task/session cards; \"compact\" keeps one editable text draft that the final answer replaces in place when Slack can safely edit it.",
36
+ "progress.nativeTaskCards": "Slack native task-card progress updates when channels.slack.streaming.mode=\"progress\", progress.style=\"card\", and streaming.nativeTransport is enabled. Set false to fall back to the Block Kit progress card. Default: true."
36
37
  },
37
38
  progress: { labels: "openclaw" }
38
39
  }),
@@ -104,10 +105,18 @@ const slackChannelConfigUiHints = {
104
105
  label: "Slack Presence Event Mode",
105
106
  help: "\"off\" disables polling; \"auto\" covers DMs, MPIMs, and recent threads with up to 8 observed people; \"on\" also covers larger threads and top-level channels."
106
107
  },
108
+ "presenceEvents.prompt": {
109
+ label: "Slack Presence Event Prompt",
110
+ help: "Replace the default greeting guidance appended after presence facts. Use an empty string to omit event-specific guidance and let workspace instructions such as AGENTS.md govern behavior. Maximum: 20,000 characters."
111
+ },
107
112
  "channels.*.presenceEvents.mode": {
108
113
  label: "Slack Channel Presence Event Mode",
109
114
  help: "Override presence events for one Slack channel. Use \"on\" to include large threads or top-level channel sessions."
110
115
  },
116
+ "channels.*.presenceEvents.prompt": {
117
+ label: "Slack Channel Presence Event Prompt",
118
+ help: "Override the account-level presence-event prompt for one Slack channel. Maximum: 20,000 characters."
119
+ },
111
120
  "execApprovals.enabled": {
112
121
  label: "Slack Exec Approvals Enabled",
113
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."
@@ -144,7 +153,11 @@ const slackChannelConfigUiHints = {
144
153
  //#endregion
145
154
  //#region extensions/slack/src/config-schema.ts
146
155
  const SecretInputSchema = buildSecretInputSchema();
147
- const SlackStreamingProgressSchema = ChannelStreamingProgressSchema.extend({ nativeTaskCards: z.boolean().optional() }).strict();
156
+ const SLACK_PRESENCE_EVENT_PROMPT_MAX_CHARS = 2e4;
157
+ const SlackStreamingProgressSchema = ChannelStreamingProgressSchema.extend({
158
+ style: z.enum(["card", "compact"]).optional(),
159
+ nativeTaskCards: z.boolean().optional()
160
+ }).strict();
148
161
  const SlackStreamingConfigSchema = ChannelPreviewStreamingConfigSchema.extend({
149
162
  nativeTransport: z.boolean().optional(),
150
163
  progress: SlackStreamingProgressSchema.optional()
@@ -154,11 +167,14 @@ const SlackDmSchema = z.object({
154
167
  groupEnabled: z.boolean().optional(),
155
168
  groupChannels: z.array(z.union([z.string(), z.number()])).optional()
156
169
  }).strict();
157
- const SlackPresenceEventsSchema = z.object({ mode: z.enum([
158
- "off",
159
- "auto",
160
- "on"
161
- ]).optional() }).strict();
170
+ const SlackPresenceEventsSchema = z.object({
171
+ mode: z.enum([
172
+ "off",
173
+ "auto",
174
+ "on"
175
+ ]).optional(),
176
+ prompt: z.string().max(SLACK_PRESENCE_EVENT_PROMPT_MAX_CHARS).optional()
177
+ }).strict();
162
178
  const SlackChannelSchema = buildGroupEntrySchema({
163
179
  ignoreOtherMentions: z.boolean().optional(),
164
180
  replyToMode: ReplyToModeSchema.optional(),
@@ -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 };
@@ -0,0 +1,115 @@
1
+ import { a as parseSlackTarget } from "./target-parsing-BnMD2ZqZ.js";
2
+ import "./targets-Cx5W_n3W.js";
3
+ import { resolveConfiguredBindingRoute, resolveRuntimeConversationBindingRoute } from "openclaw/plugin-sdk/conversation-runtime";
4
+ //#region extensions/slack/src/account-reply-mode.ts
5
+ function normalizeSlackChatType(raw) {
6
+ const value = raw?.trim().toLowerCase();
7
+ if (!value) return;
8
+ if (value === "direct" || value === "dm") return "direct";
9
+ if (value === "group" || value === "channel") return value;
10
+ }
11
+ function resolveSlackReplyToMode(account, chatType) {
12
+ const normalized = normalizeSlackChatType(chatType ?? void 0);
13
+ if (normalized && account.replyToModeByChatType?.[normalized] !== void 0) return account.replyToModeByChatType[normalized] ?? "off";
14
+ return account.replyToMode ?? "off";
15
+ }
16
+ //#endregion
17
+ //#region extensions/slack/src/conversation-binding-route.ts
18
+ const slackRouteBindingConfigCache = /* @__PURE__ */ new WeakMap();
19
+ function slackTargetDefaultKindForPeer(kind) {
20
+ return kind === "direct" ? "user" : "channel";
21
+ }
22
+ function slackTargetKindMatchesPeer(peerKind, targetKind) {
23
+ if (targetKind === "user") return peerKind === "direct";
24
+ return peerKind === "channel" || peerKind === "group";
25
+ }
26
+ function normalizeSlackRouteBindingPeer(peer) {
27
+ const rawId = peer.id.trim();
28
+ if (!rawId || rawId === "*") return peer;
29
+ const target = (() => {
30
+ try {
31
+ return parseSlackTarget(rawId, { defaultKind: slackTargetDefaultKindForPeer(peer.kind) });
32
+ } catch {
33
+ return;
34
+ }
35
+ })();
36
+ if (!target || !slackTargetKindMatchesPeer(peer.kind, target.kind)) return peer;
37
+ const normalizedId = target.teamId ? `team:${target.teamId}:${target.kind}:${target.id}` : target.id;
38
+ return normalizedId === peer.id ? peer : {
39
+ ...peer,
40
+ id: normalizedId
41
+ };
42
+ }
43
+ function normalizeSlackRouteBindingConfig(cfg) {
44
+ const bindings = cfg.bindings;
45
+ const cached = slackRouteBindingConfigCache.get(cfg);
46
+ if (cached && cached.bindingsRef === bindings) return cached.normalizedCfg;
47
+ if (!Array.isArray(bindings)) return cfg;
48
+ let changed = false;
49
+ const normalizedBindings = bindings.map((binding) => {
50
+ if (binding.type === "acp" || binding.match.channel.trim().toLowerCase() !== "slack") return binding;
51
+ const peer = binding.match.peer;
52
+ if (!peer) return binding;
53
+ const normalizedPeer = normalizeSlackRouteBindingPeer(peer);
54
+ if (normalizedPeer === peer) return binding;
55
+ changed = true;
56
+ return {
57
+ ...binding,
58
+ match: {
59
+ ...binding.match,
60
+ peer: normalizedPeer
61
+ }
62
+ };
63
+ });
64
+ const normalizedCfg = changed ? {
65
+ ...cfg,
66
+ bindings: normalizedBindings
67
+ } : cfg;
68
+ slackRouteBindingConfigCache.set(cfg, {
69
+ bindingsRef: bindings,
70
+ normalizedCfg
71
+ });
72
+ return normalizedCfg;
73
+ }
74
+ function resolveSlackConversationBindingRoute(params) {
75
+ const boundThreadRoute = params.bindingsEnabled && params.runtimeBindingThreadId ? resolveRuntimeConversationBindingRoute({
76
+ route: params.route,
77
+ touchBinding: params.touchBinding,
78
+ conversation: {
79
+ channel: "slack",
80
+ accountId: params.accountId,
81
+ conversationId: params.runtimeBindingThreadId,
82
+ parentConversationId: params.baseConversationId
83
+ }
84
+ }) : null;
85
+ const runtimeRoute = !params.bindingsEnabled ? {
86
+ bindingOwnerAvailable: true,
87
+ route: params.route,
88
+ bindingRecord: null,
89
+ boundSessionKey: void 0
90
+ } : boundThreadRoute?.boundSessionKey || boundThreadRoute?.bindingRecord ? boundThreadRoute : resolveRuntimeConversationBindingRoute({
91
+ route: params.route,
92
+ touchBinding: params.touchBinding,
93
+ conversation: {
94
+ channel: "slack",
95
+ accountId: params.accountId,
96
+ conversationId: params.baseConversationId
97
+ }
98
+ });
99
+ const configuredRoute = params.bindingsEnabled && !runtimeRoute.boundSessionKey && !runtimeRoute.bindingRecord ? resolveConfiguredBindingRoute({
100
+ cfg: params.cfg,
101
+ route: params.route,
102
+ conversation: {
103
+ channel: "slack",
104
+ accountId: params.accountId,
105
+ conversationId: params.baseConversationId
106
+ }
107
+ }) : null;
108
+ return {
109
+ runtimeRoute,
110
+ configuredRoute,
111
+ route: runtimeRoute.boundSessionKey ? runtimeRoute.route : configuredRoute?.route ?? params.route
112
+ };
113
+ }
114
+ //#endregion
115
+ export { resolveSlackConversationBindingRoute as n, resolveSlackReplyToMode as r, normalizeSlackRouteBindingConfig as t };
@@ -1,5 +1,5 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-8H4AJuhK.js";
2
- import { i as resolveDefaultSlackAccountId, o as resolveSlackAccountAllowFrom, r as mergeSlackAccountConfig } from "./accounts-CK4AVI2_.js";
2
+ import { i as resolveDefaultSlackAccountId, o as resolveSlackAccountAllowFrom, r as mergeSlackAccountConfig } from "./accounts-Dm_H77gH.js";
3
3
  import { a as parseSlackTarget } from "./target-parsing-BnMD2ZqZ.js";
4
4
  import "./targets-Cx5W_n3W.js";
5
5
  import { normalizeAccountId } from "openclaw/plugin-sdk/account-resolution";
@@ -1,2 +1,2 @@
1
- import { n as listSlackDirectoryGroupsFromConfig, r as listSlackDirectoryPeersFromConfig } from "./directory-config-CNBz8lJa.js";
1
+ import { n as listSlackDirectoryGroupsFromConfig, r as listSlackDirectoryPeersFromConfig } from "./directory-config-DqfQ42OV.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-CK4AVI2_.js";
3
- import { i as createSlackLookupClient } from "./probe-HoEg_WxB.js";
2
+ import { a as resolveSlackAccount } from "./accounts-Dm_H77gH.js";
3
+ import { i as createSlackLookupClient } from "./probe-4_aHtVT3.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