@openclaw/slack 2026.7.2-beta.5 → 2026.8.1-beta.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 (1454) hide show
  1. package/dist/account-inspect-Drw2gAiN.js +89 -0
  2. package/dist/account-inspect-api.js +1 -1
  3. package/dist/accounts-CK4AVI2_.js +186 -0
  4. package/dist/accounts.runtime-Cb7QwWBz.js +2 -0
  5. package/dist/action-runtime-BkGe7ny_.js +633 -0
  6. package/dist/action-runtime.runtime-D9I6uc0Q.js +2 -0
  7. package/dist/actions-BTDXwwE3.js +917 -0
  8. package/dist/actions.runtime-DLFyUkvg.js +2 -0
  9. package/dist/api.js +15 -15
  10. package/dist/approval-handler.runtime-CJaNzAq2.js +404 -0
  11. package/dist/block-text-YtiNkqmx.js +79 -0
  12. package/dist/channel-D_tovcUL.js +1178 -0
  13. package/dist/channel-config-api.js +1 -1
  14. package/dist/channel-plugin-api.js +1 -1
  15. package/dist/channel-type-B9MSdoGN.js +109 -0
  16. package/dist/channel.setup-Bch9dYmA.js +624 -0
  17. package/dist/config-schema-xto5jFIx.js +367 -0
  18. package/dist/cursor-pages-eX7p8Wwt.js +19 -0
  19. package/dist/directory-config-CNBz8lJa.js +54 -0
  20. package/dist/directory-contract-api.js +1 -1
  21. package/dist/directory-live-CFKUtW9E.js +122 -0
  22. package/dist/doctor-contract-BAy7-EUQ.js +185 -0
  23. package/dist/doctor-contract-api.js +1 -1
  24. package/dist/group-policy-c4RP9bjc.js +2527 -0
  25. package/dist/index.js +4 -1
  26. package/dist/message-tool-api-BykQB4AU.js +138 -0
  27. package/dist/message-tool-api.js +1 -1
  28. package/dist/monitor-1nF1NtqT.js +13 -0
  29. package/dist/outbound-adapter-S81tsswN.js +238 -0
  30. package/dist/pipeline.runtime-BvYsM5JO.js +4765 -0
  31. package/dist/policy-TapwbeaT.js +69 -0
  32. package/dist/probe-HoEg_WxB.js +365 -0
  33. package/dist/provider-CDNvBXUi.js +6732 -0
  34. package/dist/relay-source-C9leF11u.js +262 -0
  35. package/dist/replies-CeOfv82I.js +503 -0
  36. package/dist/resolve-channels-CNPrxaXY.js +119 -0
  37. package/dist/resolve-users-Dzomuwnr.js +141 -0
  38. package/dist/runtime-api-Cj9nxBNv.js +10 -0
  39. package/dist/runtime-api.js +11 -11
  40. package/dist/scopes-cYXKkrRD.js +73 -0
  41. package/dist/send-Nor0iBwY.js +1375 -0
  42. package/dist/send.runtime-BmgNe6S9.js +2 -0
  43. package/dist/setup-entry.js +1 -4
  44. package/dist/setup-plugin-api.js +1 -1
  45. package/dist/setup-surface-CbX1-Knh.js +148 -0
  46. package/dist/shared-zdT5AMp-.js +262 -0
  47. package/dist/slash-dispatch.runtime-Bnr9GR1S.js +33 -0
  48. package/dist/streaming-compat-B-e0mqM0.js +39 -0
  49. package/dist/target-parsing-BnMD2ZqZ.js +111 -0
  50. package/dist/targets-Cx5W_n3W.js +13 -0
  51. package/node_modules/@slack/bolt/node_modules/@types/node/README.md +15 -0
  52. package/node_modules/@slack/bolt/node_modules/@types/node/crypto.d.ts +3954 -0
  53. package/node_modules/@slack/bolt/node_modules/@types/node/package.json +155 -0
  54. package/node_modules/@slack/bolt/node_modules/media-typer/README.md +94 -0
  55. package/node_modules/@slack/bolt/node_modules/media-typer/index.js +135 -0
  56. package/node_modules/@slack/bolt/node_modules/media-typer/package.json +37 -0
  57. package/node_modules/@slack/socket-mode/node_modules/@slack/logger/LICENSE +23 -0
  58. package/node_modules/@slack/socket-mode/node_modules/@slack/logger/README.md +66 -0
  59. package/node_modules/@slack/socket-mode/node_modules/@slack/logger/dist/index.d.ts +94 -0
  60. package/node_modules/@slack/socket-mode/node_modules/@slack/logger/dist/index.d.ts.map +1 -0
  61. package/node_modules/@slack/socket-mode/node_modules/@slack/logger/dist/index.js +98 -0
  62. package/node_modules/@slack/socket-mode/node_modules/@slack/logger/dist/index.js.map +1 -0
  63. package/node_modules/@slack/socket-mode/node_modules/@slack/logger/package.json +42 -0
  64. package/node_modules/@slack/socket-mode/node_modules/@types/node/LICENSE +21 -0
  65. package/node_modules/@slack/socket-mode/node_modules/@types/node/README.md +15 -0
  66. package/node_modules/@slack/socket-mode/node_modules/@types/node/assert/strict.d.ts +68 -0
  67. package/node_modules/@slack/socket-mode/node_modules/@types/node/assert.d.ts +1077 -0
  68. package/node_modules/@slack/socket-mode/node_modules/@types/node/async_hooks.d.ts +711 -0
  69. package/node_modules/@slack/socket-mode/node_modules/@types/node/buffer.buffer.d.ts +466 -0
  70. package/node_modules/@slack/socket-mode/node_modules/@types/node/buffer.d.ts +1799 -0
  71. package/node_modules/@slack/socket-mode/node_modules/@types/node/child_process.d.ts +1362 -0
  72. package/node_modules/@slack/socket-mode/node_modules/@types/node/cluster.d.ts +432 -0
  73. package/node_modules/@slack/socket-mode/node_modules/@types/node/console.d.ts +93 -0
  74. package/node_modules/@slack/socket-mode/node_modules/@types/node/constants.d.ts +14 -0
  75. package/node_modules/@slack/socket-mode/node_modules/@types/node/crypto.d.ts +3954 -0
  76. package/node_modules/@slack/socket-mode/node_modules/@types/node/dgram.d.ts +537 -0
  77. package/node_modules/@slack/socket-mode/node_modules/@types/node/diagnostics_channel.d.ts +794 -0
  78. package/node_modules/@slack/socket-mode/node_modules/@types/node/dns/promises.d.ts +497 -0
  79. package/node_modules/@slack/socket-mode/node_modules/@types/node/dns.d.ts +876 -0
  80. package/node_modules/@slack/socket-mode/node_modules/@types/node/domain.d.ts +150 -0
  81. package/node_modules/@slack/socket-mode/node_modules/@types/node/events.d.ts +1008 -0
  82. package/node_modules/@slack/socket-mode/node_modules/@types/node/ffi.d.ts +486 -0
  83. package/node_modules/@slack/socket-mode/node_modules/@types/node/fs/promises.d.ts +1481 -0
  84. package/node_modules/@slack/socket-mode/node_modules/@types/node/fs.d.ts +4786 -0
  85. package/node_modules/@slack/socket-mode/node_modules/@types/node/globals.d.ts +150 -0
  86. package/node_modules/@slack/socket-mode/node_modules/@types/node/globals.typedarray.d.ts +101 -0
  87. package/node_modules/@slack/socket-mode/node_modules/@types/node/http.d.ts +2172 -0
  88. package/node_modules/@slack/socket-mode/node_modules/@types/node/http2.d.ts +2489 -0
  89. package/node_modules/@slack/socket-mode/node_modules/@types/node/https.d.ts +400 -0
  90. package/node_modules/@slack/socket-mode/node_modules/@types/node/index.d.ts +115 -0
  91. package/node_modules/@slack/socket-mode/node_modules/@types/node/inspector/promises.d.ts +35 -0
  92. package/node_modules/@slack/socket-mode/node_modules/@types/node/inspector.d.ts +264 -0
  93. package/node_modules/@slack/socket-mode/node_modules/@types/node/inspector.generated.d.ts +4406 -0
  94. package/node_modules/@slack/socket-mode/node_modules/@types/node/module.d.ts +726 -0
  95. package/node_modules/@slack/socket-mode/node_modules/@types/node/net.d.ts +970 -0
  96. package/node_modules/@slack/socket-mode/node_modules/@types/node/os.d.ts +498 -0
  97. package/node_modules/@slack/socket-mode/node_modules/@types/node/package.json +155 -0
  98. package/node_modules/@slack/socket-mode/node_modules/@types/node/path/posix.d.ts +8 -0
  99. package/node_modules/@slack/socket-mode/node_modules/@types/node/path/win32.d.ts +8 -0
  100. package/node_modules/@slack/socket-mode/node_modules/@types/node/path.d.ts +178 -0
  101. package/node_modules/@slack/socket-mode/node_modules/@types/node/perf_hooks.d.ts +604 -0
  102. package/node_modules/@slack/socket-mode/node_modules/@types/node/process.d.ts +2217 -0
  103. package/node_modules/@slack/socket-mode/node_modules/@types/node/punycode.d.ts +89 -0
  104. package/node_modules/@slack/socket-mode/node_modules/@types/node/querystring.d.ts +139 -0
  105. package/node_modules/@slack/socket-mode/node_modules/@types/node/quic.d.ts +978 -0
  106. package/node_modules/@slack/socket-mode/node_modules/@types/node/readline/promises.d.ts +158 -0
  107. package/node_modules/@slack/socket-mode/node_modules/@types/node/readline.d.ts +508 -0
  108. package/node_modules/@slack/socket-mode/node_modules/@types/node/repl.d.ts +420 -0
  109. package/node_modules/@slack/socket-mode/node_modules/@types/node/sea.d.ts +47 -0
  110. package/node_modules/@slack/socket-mode/node_modules/@types/node/sqlite.d.ts +1123 -0
  111. package/node_modules/@slack/socket-mode/node_modules/@types/node/stream/consumers.d.ts +114 -0
  112. package/node_modules/@slack/socket-mode/node_modules/@types/node/stream/iter.d.ts +451 -0
  113. package/node_modules/@slack/socket-mode/node_modules/@types/node/stream/promises.d.ts +211 -0
  114. package/node_modules/@slack/socket-mode/node_modules/@types/node/stream/web.d.ts +300 -0
  115. package/node_modules/@slack/socket-mode/node_modules/@types/node/stream.d.ts +1806 -0
  116. package/node_modules/@slack/socket-mode/node_modules/@types/node/string_decoder.d.ts +27 -0
  117. package/node_modules/@slack/socket-mode/node_modules/@types/node/test/reporters.d.ts +59 -0
  118. package/node_modules/@slack/socket-mode/node_modules/@types/node/test.d.ts +2389 -0
  119. package/node_modules/@slack/socket-mode/node_modules/@types/node/timers/promises.d.ts +93 -0
  120. package/node_modules/@slack/socket-mode/node_modules/@types/node/timers.d.ts +149 -0
  121. package/node_modules/@slack/socket-mode/node_modules/@types/node/tls.d.ts +1193 -0
  122. package/node_modules/@slack/socket-mode/node_modules/@types/node/trace_events.d.ts +103 -0
  123. package/node_modules/@slack/socket-mode/node_modules/@types/node/ts5.6/buffer.buffer.d.ts +462 -0
  124. package/node_modules/@slack/socket-mode/node_modules/@types/node/ts5.6/compatibility/float16array.d.ts +71 -0
  125. package/node_modules/@slack/socket-mode/node_modules/@types/node/ts5.6/globals.typedarray.d.ts +36 -0
  126. package/node_modules/@slack/socket-mode/node_modules/@types/node/ts5.6/index.d.ts +117 -0
  127. package/node_modules/@slack/socket-mode/node_modules/@types/node/ts5.7/compatibility/float16array.d.ts +72 -0
  128. package/node_modules/@slack/socket-mode/node_modules/@types/node/ts5.7/index.d.ts +117 -0
  129. package/node_modules/@slack/socket-mode/node_modules/@types/node/tty.d.ts +225 -0
  130. package/node_modules/@slack/socket-mode/node_modules/@types/node/url.d.ts +556 -0
  131. package/node_modules/@slack/socket-mode/node_modules/@types/node/util/types.d.ts +558 -0
  132. package/node_modules/@slack/socket-mode/node_modules/@types/node/util.d.ts +1677 -0
  133. package/node_modules/@slack/socket-mode/node_modules/@types/node/v8.d.ts +1062 -0
  134. package/node_modules/@slack/socket-mode/node_modules/@types/node/vm.d.ts +1136 -0
  135. package/node_modules/@slack/socket-mode/node_modules/@types/node/wasi.d.ts +131 -0
  136. package/node_modules/@slack/socket-mode/node_modules/@types/node/web-globals/abortcontroller.d.ts +59 -0
  137. package/node_modules/@slack/socket-mode/node_modules/@types/node/web-globals/blob.d.ts +23 -0
  138. package/node_modules/@slack/socket-mode/node_modules/@types/node/web-globals/console.d.ts +9 -0
  139. package/node_modules/@slack/socket-mode/node_modules/@types/node/web-globals/crypto.d.ts +39 -0
  140. package/node_modules/@slack/socket-mode/node_modules/@types/node/web-globals/domexception.d.ts +83 -0
  141. package/node_modules/@slack/socket-mode/node_modules/@types/node/web-globals/encoding.d.ts +11 -0
  142. package/node_modules/@slack/socket-mode/node_modules/@types/node/web-globals/events.d.ts +106 -0
  143. package/node_modules/@slack/socket-mode/node_modules/@types/node/web-globals/fetch.d.ts +69 -0
  144. package/node_modules/@slack/socket-mode/node_modules/@types/node/web-globals/importmeta.d.ts +13 -0
  145. package/node_modules/@slack/socket-mode/node_modules/@types/node/web-globals/messaging.d.ts +23 -0
  146. package/node_modules/@slack/socket-mode/node_modules/@types/node/web-globals/navigator.d.ts +25 -0
  147. package/node_modules/@slack/socket-mode/node_modules/@types/node/web-globals/performance.d.ts +45 -0
  148. package/node_modules/@slack/socket-mode/node_modules/@types/node/web-globals/storage.d.ts +24 -0
  149. package/node_modules/@slack/socket-mode/node_modules/@types/node/web-globals/streams.d.ts +115 -0
  150. package/node_modules/@slack/socket-mode/node_modules/@types/node/web-globals/timers.d.ts +44 -0
  151. package/node_modules/@slack/socket-mode/node_modules/@types/node/web-globals/url.d.ts +24 -0
  152. package/node_modules/@slack/socket-mode/node_modules/@types/node/worker_threads.d.ts +669 -0
  153. package/node_modules/@slack/socket-mode/node_modules/@types/node/zlib/iter.d.ts +131 -0
  154. package/node_modules/@slack/socket-mode/node_modules/@types/node/zlib.d.ts +589 -0
  155. package/node_modules/@slack/socket-mode/node_modules/undici-types/LICENSE +21 -0
  156. package/node_modules/@slack/socket-mode/node_modules/undici-types/README.md +6 -0
  157. package/node_modules/@slack/socket-mode/node_modules/undici-types/agent.d.ts +30 -0
  158. package/node_modules/@slack/socket-mode/node_modules/undici-types/api.d.ts +43 -0
  159. package/node_modules/@slack/socket-mode/node_modules/undici-types/balanced-pool.d.ts +30 -0
  160. package/node_modules/@slack/socket-mode/node_modules/undici-types/cache-interceptor.d.ts +179 -0
  161. package/node_modules/@slack/socket-mode/node_modules/undici-types/cache.d.ts +36 -0
  162. package/node_modules/@slack/socket-mode/node_modules/undici-types/client-stats.d.ts +15 -0
  163. package/node_modules/@slack/socket-mode/node_modules/undici-types/client.d.ts +129 -0
  164. package/node_modules/@slack/socket-mode/node_modules/undici-types/connector.d.ts +36 -0
  165. package/node_modules/@slack/socket-mode/node_modules/undici-types/content-type.d.ts +21 -0
  166. package/node_modules/@slack/socket-mode/node_modules/undici-types/cookies.d.ts +30 -0
  167. package/node_modules/@slack/socket-mode/node_modules/undici-types/diagnostics-channel.d.ts +74 -0
  168. package/node_modules/@slack/socket-mode/node_modules/undici-types/dispatcher.d.ts +253 -0
  169. package/node_modules/@slack/socket-mode/node_modules/undici-types/dispatcher1-wrapper.d.ts +7 -0
  170. package/node_modules/@slack/socket-mode/node_modules/undici-types/env-http-proxy-agent.d.ts +22 -0
  171. package/node_modules/@slack/socket-mode/node_modules/undici-types/errors.d.ts +177 -0
  172. package/node_modules/@slack/socket-mode/node_modules/undici-types/eventsource.d.ts +66 -0
  173. package/node_modules/@slack/socket-mode/node_modules/undici-types/fetch.d.ts +231 -0
  174. package/node_modules/@slack/socket-mode/node_modules/undici-types/formdata.d.ts +108 -0
  175. package/node_modules/@slack/socket-mode/node_modules/undici-types/global-dispatcher.d.ts +9 -0
  176. package/node_modules/@slack/socket-mode/node_modules/undici-types/global-origin.d.ts +7 -0
  177. package/node_modules/@slack/socket-mode/node_modules/undici-types/h2c-client.d.ts +73 -0
  178. package/node_modules/@slack/socket-mode/node_modules/undici-types/handlers.d.ts +14 -0
  179. package/node_modules/@slack/socket-mode/node_modules/undici-types/header.d.ts +165 -0
  180. package/node_modules/@slack/socket-mode/node_modules/undici-types/index.d.ts +93 -0
  181. package/node_modules/@slack/socket-mode/node_modules/undici-types/interceptors.d.ts +80 -0
  182. package/node_modules/@slack/socket-mode/node_modules/undici-types/mock-agent.d.ts +68 -0
  183. package/node_modules/@slack/socket-mode/node_modules/undici-types/mock-call-history.d.ts +111 -0
  184. package/node_modules/@slack/socket-mode/node_modules/undici-types/mock-client.d.ts +27 -0
  185. package/node_modules/@slack/socket-mode/node_modules/undici-types/mock-errors.d.ts +12 -0
  186. package/node_modules/@slack/socket-mode/node_modules/undici-types/mock-interceptor.d.ts +94 -0
  187. package/node_modules/@slack/socket-mode/node_modules/undici-types/mock-pool.d.ts +27 -0
  188. package/node_modules/@slack/socket-mode/node_modules/undici-types/package.json +55 -0
  189. package/node_modules/@slack/socket-mode/node_modules/undici-types/patch.d.ts +29 -0
  190. package/node_modules/@slack/socket-mode/node_modules/undici-types/pool-stats.d.ts +19 -0
  191. package/node_modules/@slack/socket-mode/node_modules/undici-types/pool.d.ts +39 -0
  192. package/node_modules/@slack/socket-mode/node_modules/undici-types/proxy-agent.d.ts +29 -0
  193. package/node_modules/@slack/socket-mode/node_modules/undici-types/readable.d.ts +68 -0
  194. package/node_modules/@slack/socket-mode/node_modules/undici-types/retry-agent.d.ts +8 -0
  195. package/node_modules/@slack/socket-mode/node_modules/undici-types/retry-handler.d.ts +125 -0
  196. package/node_modules/@slack/socket-mode/node_modules/undici-types/round-robin-pool.d.ts +39 -0
  197. package/node_modules/@slack/socket-mode/node_modules/undici-types/snapshot-agent.d.ts +113 -0
  198. package/node_modules/@slack/socket-mode/node_modules/undici-types/socks5-proxy-agent.d.ts +25 -0
  199. package/node_modules/@slack/socket-mode/node_modules/undici-types/util.d.ts +18 -0
  200. package/node_modules/@slack/socket-mode/node_modules/undici-types/utility.d.ts +7 -0
  201. package/node_modules/@slack/socket-mode/node_modules/undici-types/webidl.d.ts +346 -0
  202. package/node_modules/@slack/socket-mode/node_modules/undici-types/websocket.d.ts +188 -0
  203. package/node_modules/@slack/web-api/node_modules/@slack/logger/LICENSE +23 -0
  204. package/node_modules/@slack/web-api/node_modules/@slack/logger/README.md +66 -0
  205. package/node_modules/@slack/web-api/node_modules/@slack/logger/dist/index.d.ts +94 -0
  206. package/node_modules/@slack/web-api/node_modules/@slack/logger/dist/index.d.ts.map +1 -0
  207. package/node_modules/@slack/web-api/node_modules/@slack/logger/dist/index.js +98 -0
  208. package/node_modules/@slack/web-api/node_modules/@slack/logger/dist/index.js.map +1 -0
  209. package/node_modules/@slack/web-api/node_modules/@slack/logger/package.json +42 -0
  210. package/node_modules/@slack/web-api/node_modules/@types/node/LICENSE +21 -0
  211. package/node_modules/@slack/web-api/node_modules/@types/node/README.md +15 -0
  212. package/node_modules/@slack/web-api/node_modules/@types/node/assert/strict.d.ts +68 -0
  213. package/node_modules/@slack/web-api/node_modules/@types/node/assert.d.ts +1077 -0
  214. package/node_modules/@slack/web-api/node_modules/@types/node/async_hooks.d.ts +711 -0
  215. package/node_modules/@slack/web-api/node_modules/@types/node/buffer.buffer.d.ts +466 -0
  216. package/node_modules/@slack/web-api/node_modules/@types/node/buffer.d.ts +1799 -0
  217. package/node_modules/@slack/web-api/node_modules/@types/node/child_process.d.ts +1362 -0
  218. package/node_modules/@slack/web-api/node_modules/@types/node/cluster.d.ts +432 -0
  219. package/node_modules/@slack/web-api/node_modules/@types/node/console.d.ts +93 -0
  220. package/node_modules/@slack/web-api/node_modules/@types/node/constants.d.ts +14 -0
  221. package/node_modules/@slack/web-api/node_modules/@types/node/crypto.d.ts +3954 -0
  222. package/node_modules/@slack/web-api/node_modules/@types/node/dgram.d.ts +537 -0
  223. package/node_modules/@slack/web-api/node_modules/@types/node/diagnostics_channel.d.ts +794 -0
  224. package/node_modules/@slack/web-api/node_modules/@types/node/dns/promises.d.ts +497 -0
  225. package/node_modules/@slack/web-api/node_modules/@types/node/dns.d.ts +876 -0
  226. package/node_modules/@slack/web-api/node_modules/@types/node/domain.d.ts +150 -0
  227. package/node_modules/@slack/web-api/node_modules/@types/node/events.d.ts +1008 -0
  228. package/node_modules/@slack/web-api/node_modules/@types/node/ffi.d.ts +486 -0
  229. package/node_modules/@slack/web-api/node_modules/@types/node/fs/promises.d.ts +1481 -0
  230. package/node_modules/@slack/web-api/node_modules/@types/node/fs.d.ts +4786 -0
  231. package/node_modules/@slack/web-api/node_modules/@types/node/globals.d.ts +150 -0
  232. package/node_modules/@slack/web-api/node_modules/@types/node/globals.typedarray.d.ts +101 -0
  233. package/node_modules/@slack/web-api/node_modules/@types/node/http.d.ts +2172 -0
  234. package/node_modules/@slack/web-api/node_modules/@types/node/http2.d.ts +2489 -0
  235. package/node_modules/@slack/web-api/node_modules/@types/node/https.d.ts +400 -0
  236. package/node_modules/@slack/web-api/node_modules/@types/node/index.d.ts +115 -0
  237. package/node_modules/@slack/web-api/node_modules/@types/node/inspector/promises.d.ts +35 -0
  238. package/node_modules/@slack/web-api/node_modules/@types/node/inspector.d.ts +264 -0
  239. package/node_modules/@slack/web-api/node_modules/@types/node/inspector.generated.d.ts +4406 -0
  240. package/node_modules/@slack/web-api/node_modules/@types/node/module.d.ts +726 -0
  241. package/node_modules/@slack/web-api/node_modules/@types/node/net.d.ts +970 -0
  242. package/node_modules/@slack/web-api/node_modules/@types/node/os.d.ts +498 -0
  243. package/node_modules/@slack/web-api/node_modules/@types/node/package.json +155 -0
  244. package/node_modules/@slack/web-api/node_modules/@types/node/path/posix.d.ts +8 -0
  245. package/node_modules/@slack/web-api/node_modules/@types/node/path/win32.d.ts +8 -0
  246. package/node_modules/@slack/web-api/node_modules/@types/node/path.d.ts +178 -0
  247. package/node_modules/@slack/web-api/node_modules/@types/node/perf_hooks.d.ts +604 -0
  248. package/node_modules/@slack/web-api/node_modules/@types/node/process.d.ts +2217 -0
  249. package/node_modules/@slack/web-api/node_modules/@types/node/punycode.d.ts +89 -0
  250. package/node_modules/@slack/web-api/node_modules/@types/node/querystring.d.ts +139 -0
  251. package/node_modules/@slack/web-api/node_modules/@types/node/quic.d.ts +978 -0
  252. package/node_modules/@slack/web-api/node_modules/@types/node/readline/promises.d.ts +158 -0
  253. package/node_modules/@slack/web-api/node_modules/@types/node/readline.d.ts +508 -0
  254. package/node_modules/@slack/web-api/node_modules/@types/node/repl.d.ts +420 -0
  255. package/node_modules/@slack/web-api/node_modules/@types/node/sea.d.ts +47 -0
  256. package/node_modules/@slack/web-api/node_modules/@types/node/sqlite.d.ts +1123 -0
  257. package/node_modules/@slack/web-api/node_modules/@types/node/stream/consumers.d.ts +114 -0
  258. package/node_modules/@slack/web-api/node_modules/@types/node/stream/iter.d.ts +451 -0
  259. package/node_modules/@slack/web-api/node_modules/@types/node/stream/promises.d.ts +211 -0
  260. package/node_modules/@slack/web-api/node_modules/@types/node/stream/web.d.ts +300 -0
  261. package/node_modules/@slack/web-api/node_modules/@types/node/stream.d.ts +1806 -0
  262. package/node_modules/@slack/web-api/node_modules/@types/node/string_decoder.d.ts +27 -0
  263. package/node_modules/@slack/web-api/node_modules/@types/node/test/reporters.d.ts +59 -0
  264. package/node_modules/@slack/web-api/node_modules/@types/node/test.d.ts +2389 -0
  265. package/node_modules/@slack/web-api/node_modules/@types/node/timers/promises.d.ts +93 -0
  266. package/node_modules/@slack/web-api/node_modules/@types/node/timers.d.ts +149 -0
  267. package/node_modules/@slack/web-api/node_modules/@types/node/tls.d.ts +1193 -0
  268. package/node_modules/@slack/web-api/node_modules/@types/node/trace_events.d.ts +103 -0
  269. package/node_modules/@slack/web-api/node_modules/@types/node/ts5.6/buffer.buffer.d.ts +462 -0
  270. package/node_modules/@slack/web-api/node_modules/@types/node/ts5.6/compatibility/float16array.d.ts +71 -0
  271. package/node_modules/@slack/web-api/node_modules/@types/node/ts5.6/globals.typedarray.d.ts +36 -0
  272. package/node_modules/@slack/web-api/node_modules/@types/node/ts5.6/index.d.ts +117 -0
  273. package/node_modules/@slack/web-api/node_modules/@types/node/ts5.7/compatibility/float16array.d.ts +72 -0
  274. package/node_modules/@slack/web-api/node_modules/@types/node/ts5.7/index.d.ts +117 -0
  275. package/node_modules/@slack/web-api/node_modules/@types/node/tty.d.ts +225 -0
  276. package/node_modules/@slack/web-api/node_modules/@types/node/url.d.ts +556 -0
  277. package/node_modules/@slack/web-api/node_modules/@types/node/util/types.d.ts +558 -0
  278. package/node_modules/@slack/web-api/node_modules/@types/node/util.d.ts +1677 -0
  279. package/node_modules/@slack/web-api/node_modules/@types/node/v8.d.ts +1062 -0
  280. package/node_modules/@slack/web-api/node_modules/@types/node/vm.d.ts +1136 -0
  281. package/node_modules/@slack/web-api/node_modules/@types/node/wasi.d.ts +131 -0
  282. package/node_modules/@slack/web-api/node_modules/@types/node/web-globals/abortcontroller.d.ts +59 -0
  283. package/node_modules/@slack/web-api/node_modules/@types/node/web-globals/blob.d.ts +23 -0
  284. package/node_modules/@slack/web-api/node_modules/@types/node/web-globals/console.d.ts +9 -0
  285. package/node_modules/@slack/web-api/node_modules/@types/node/web-globals/crypto.d.ts +39 -0
  286. package/node_modules/@slack/web-api/node_modules/@types/node/web-globals/domexception.d.ts +83 -0
  287. package/node_modules/@slack/web-api/node_modules/@types/node/web-globals/encoding.d.ts +11 -0
  288. package/node_modules/@slack/web-api/node_modules/@types/node/web-globals/events.d.ts +106 -0
  289. package/node_modules/@slack/web-api/node_modules/@types/node/web-globals/fetch.d.ts +69 -0
  290. package/node_modules/@slack/web-api/node_modules/@types/node/web-globals/importmeta.d.ts +13 -0
  291. package/node_modules/@slack/web-api/node_modules/@types/node/web-globals/messaging.d.ts +23 -0
  292. package/node_modules/@slack/web-api/node_modules/@types/node/web-globals/navigator.d.ts +25 -0
  293. package/node_modules/@slack/web-api/node_modules/@types/node/web-globals/performance.d.ts +45 -0
  294. package/node_modules/@slack/web-api/node_modules/@types/node/web-globals/storage.d.ts +24 -0
  295. package/node_modules/@slack/web-api/node_modules/@types/node/web-globals/streams.d.ts +115 -0
  296. package/node_modules/@slack/web-api/node_modules/@types/node/web-globals/timers.d.ts +44 -0
  297. package/node_modules/@slack/web-api/node_modules/@types/node/web-globals/url.d.ts +24 -0
  298. package/node_modules/@slack/web-api/node_modules/@types/node/worker_threads.d.ts +669 -0
  299. package/node_modules/@slack/web-api/node_modules/@types/node/zlib/iter.d.ts +131 -0
  300. package/node_modules/@slack/web-api/node_modules/@types/node/zlib.d.ts +589 -0
  301. package/node_modules/@slack/web-api/node_modules/eventemitter3/README.md +85 -0
  302. package/node_modules/@slack/web-api/node_modules/eventemitter3/dist/eventemitter3.esm.js +355 -0
  303. package/node_modules/@slack/web-api/node_modules/eventemitter3/dist/eventemitter3.esm.min.js +1 -0
  304. package/node_modules/@slack/web-api/node_modules/eventemitter3/dist/eventemitter3.esm.min.js.map +1 -0
  305. package/node_modules/@slack/web-api/node_modules/eventemitter3/dist/eventemitter3.umd.js +363 -0
  306. package/node_modules/@slack/web-api/node_modules/eventemitter3/dist/eventemitter3.umd.min.js +1 -0
  307. package/node_modules/@slack/web-api/node_modules/eventemitter3/dist/eventemitter3.umd.min.js.map +1 -0
  308. package/node_modules/@slack/web-api/node_modules/eventemitter3/index.d.ts +135 -0
  309. package/node_modules/@slack/web-api/node_modules/eventemitter3/index.mjs +4 -0
  310. package/node_modules/@slack/web-api/node_modules/eventemitter3/package.json +62 -0
  311. package/node_modules/@slack/web-api/node_modules/p-queue/node_modules/eventemitter3/LICENSE +21 -0
  312. package/node_modules/@slack/web-api/node_modules/p-queue/node_modules/eventemitter3/index.js +336 -0
  313. package/node_modules/@slack/web-api/node_modules/undici-types/LICENSE +21 -0
  314. package/node_modules/@slack/web-api/node_modules/undici-types/README.md +6 -0
  315. package/node_modules/@slack/web-api/node_modules/undici-types/agent.d.ts +30 -0
  316. package/node_modules/@slack/web-api/node_modules/undici-types/api.d.ts +43 -0
  317. package/node_modules/@slack/web-api/node_modules/undici-types/balanced-pool.d.ts +30 -0
  318. package/node_modules/@slack/web-api/node_modules/undici-types/cache-interceptor.d.ts +179 -0
  319. package/node_modules/@slack/web-api/node_modules/undici-types/cache.d.ts +36 -0
  320. package/node_modules/@slack/web-api/node_modules/undici-types/client-stats.d.ts +15 -0
  321. package/node_modules/@slack/web-api/node_modules/undici-types/client.d.ts +129 -0
  322. package/node_modules/@slack/web-api/node_modules/undici-types/connector.d.ts +36 -0
  323. package/node_modules/@slack/web-api/node_modules/undici-types/content-type.d.ts +21 -0
  324. package/node_modules/@slack/web-api/node_modules/undici-types/cookies.d.ts +30 -0
  325. package/node_modules/@slack/web-api/node_modules/undici-types/diagnostics-channel.d.ts +74 -0
  326. package/node_modules/@slack/web-api/node_modules/undici-types/dispatcher.d.ts +253 -0
  327. package/node_modules/@slack/web-api/node_modules/undici-types/dispatcher1-wrapper.d.ts +7 -0
  328. package/node_modules/@slack/web-api/node_modules/undici-types/env-http-proxy-agent.d.ts +22 -0
  329. package/node_modules/@slack/web-api/node_modules/undici-types/errors.d.ts +177 -0
  330. package/node_modules/@slack/web-api/node_modules/undici-types/eventsource.d.ts +66 -0
  331. package/node_modules/@slack/web-api/node_modules/undici-types/fetch.d.ts +231 -0
  332. package/node_modules/@slack/web-api/node_modules/undici-types/formdata.d.ts +108 -0
  333. package/node_modules/@slack/web-api/node_modules/undici-types/global-dispatcher.d.ts +9 -0
  334. package/node_modules/@slack/web-api/node_modules/undici-types/global-origin.d.ts +7 -0
  335. package/node_modules/@slack/web-api/node_modules/undici-types/h2c-client.d.ts +73 -0
  336. package/node_modules/@slack/web-api/node_modules/undici-types/handlers.d.ts +14 -0
  337. package/node_modules/@slack/web-api/node_modules/undici-types/header.d.ts +165 -0
  338. package/node_modules/@slack/web-api/node_modules/undici-types/index.d.ts +93 -0
  339. package/node_modules/@slack/web-api/node_modules/undici-types/interceptors.d.ts +80 -0
  340. package/node_modules/@slack/web-api/node_modules/undici-types/mock-agent.d.ts +68 -0
  341. package/node_modules/@slack/web-api/node_modules/undici-types/mock-call-history.d.ts +111 -0
  342. package/node_modules/@slack/web-api/node_modules/undici-types/mock-client.d.ts +27 -0
  343. package/node_modules/@slack/web-api/node_modules/undici-types/mock-errors.d.ts +12 -0
  344. package/node_modules/@slack/web-api/node_modules/undici-types/mock-interceptor.d.ts +94 -0
  345. package/node_modules/@slack/web-api/node_modules/undici-types/mock-pool.d.ts +27 -0
  346. package/node_modules/@slack/web-api/node_modules/undici-types/package.json +55 -0
  347. package/node_modules/@slack/web-api/node_modules/undici-types/patch.d.ts +29 -0
  348. package/node_modules/@slack/web-api/node_modules/undici-types/pool-stats.d.ts +19 -0
  349. package/node_modules/@slack/web-api/node_modules/undici-types/pool.d.ts +39 -0
  350. package/node_modules/@slack/web-api/node_modules/undici-types/proxy-agent.d.ts +29 -0
  351. package/node_modules/@slack/web-api/node_modules/undici-types/readable.d.ts +68 -0
  352. package/node_modules/@slack/web-api/node_modules/undici-types/retry-agent.d.ts +8 -0
  353. package/node_modules/@slack/web-api/node_modules/undici-types/retry-handler.d.ts +125 -0
  354. package/node_modules/@slack/web-api/node_modules/undici-types/round-robin-pool.d.ts +39 -0
  355. package/node_modules/@slack/web-api/node_modules/undici-types/snapshot-agent.d.ts +113 -0
  356. package/node_modules/@slack/web-api/node_modules/undici-types/socks5-proxy-agent.d.ts +25 -0
  357. package/node_modules/@slack/web-api/node_modules/undici-types/util.d.ts +18 -0
  358. package/node_modules/@slack/web-api/node_modules/undici-types/utility.d.ts +7 -0
  359. package/node_modules/@slack/web-api/node_modules/undici-types/webidl.d.ts +346 -0
  360. package/node_modules/@slack/web-api/node_modules/undici-types/websocket.d.ts +188 -0
  361. package/node_modules/get-east-asian-width/index.d.ts +60 -0
  362. package/node_modules/get-east-asian-width/index.js +30 -0
  363. package/node_modules/get-east-asian-width/license +9 -0
  364. package/node_modules/get-east-asian-width/lookup-data.js +21 -0
  365. package/node_modules/get-east-asian-width/lookup.js +138 -0
  366. package/node_modules/get-east-asian-width/package.json +71 -0
  367. package/node_modules/get-east-asian-width/readme.md +65 -0
  368. package/node_modules/get-east-asian-width/utilities.js +24 -0
  369. package/node_modules/p-map/index.js +1 -0
  370. package/node_modules/p-map/package.json +1 -1
  371. package/node_modules/undici/lib/cache/memory-cache-store.js +54 -9
  372. package/node_modules/undici/lib/cache/sqlite-cache-store.js +7 -1
  373. package/node_modules/undici/lib/core/request.js +12 -1
  374. package/node_modules/undici/lib/dispatcher/client-h1.js +11 -2
  375. package/node_modules/undici/lib/handler/cache-handler.js +246 -64
  376. package/node_modules/undici/lib/handler/cache-revalidation-handler.js +3 -3
  377. package/node_modules/undici/lib/handler/retry-handler.js +24 -0
  378. package/node_modules/undici/lib/interceptor/cache.js +159 -52
  379. package/node_modules/undici/lib/util/cache.js +324 -62
  380. package/node_modules/undici/lib/util/date.js +23 -6
  381. package/node_modules/undici/lib/web/cookies/util.js +79 -9
  382. package/node_modules/undici/package.json +1 -1
  383. package/openclaw.plugin.json +294 -89
  384. package/package.json +18 -10
  385. package/skills/slack/SKILL.md +10 -68
  386. package/dist/account-inspect-jn1xLaVi.js +0 -86
  387. package/dist/accounts-BSr252c_.js +0 -188
  388. package/dist/accounts.runtime-CjULMLTa.js +0 -2
  389. package/dist/action-runtime-BO3HK_50.js +0 -561
  390. package/dist/action-runtime.runtime-DbEcqEXC.js +0 -2
  391. package/dist/actions-BkOaiDSX.js +0 -900
  392. package/dist/actions.runtime-Do-iOL51.js +0 -2
  393. package/dist/approval-handler.runtime-BAnGN7w0.js +0 -368
  394. package/dist/channel-Cnrlie9S.js +0 -1118
  395. package/dist/channel-type-CPDX8EV-.js +0 -109
  396. package/dist/channel.setup-DyZdLwUB.js +0 -56
  397. package/dist/config-adapter-Bb8hn2tM.js +0 -571
  398. package/dist/config-schema-BajbuJGL.js +0 -422
  399. package/dist/cursor-pages-DSmTg0su.js +0 -13
  400. package/dist/directory-config-CeixfVuC.js +0 -54
  401. package/dist/directory-live-CUwGPX2d.js +0 -131
  402. package/dist/doctor-contract-CsGH1Dfc.js +0 -158
  403. package/dist/group-policy-CthIXE2T.js +0 -2332
  404. package/dist/message-tool-api-CvKoWYYQ.js +0 -123
  405. package/dist/monitor-Cb5ZsOTY.js +0 -13
  406. package/dist/outbound-adapter-sGrozuRg.js +0 -215
  407. package/dist/pipeline.runtime-mFCCSllA.js +0 -4360
  408. package/dist/policy-DVg6FyMP.js +0 -65
  409. package/dist/preflight-audio.runtime-D5Bgags0.js +0 -3
  410. package/dist/probe-BhQTDVBQ.js +0 -333
  411. package/dist/provider-PSppCU_K.js +0 -5875
  412. package/dist/relay-source-D0mb_JBk.js +0 -272
  413. package/dist/replies-BkPPM2Ri.js +0 -457
  414. package/dist/resolve-channels-B3RlJKyV.js +0 -92
  415. package/dist/resolve-users-DTm7PEMa.js +0 -118
  416. package/dist/runtime-api-jpn3vQ7e.js +0 -10
  417. package/dist/scopes-B2SqZ--4.js +0 -73
  418. package/dist/send-2IoDXPeB.js +0 -1269
  419. package/dist/send.runtime-BKd_PAEw.js +0 -2
  420. package/dist/setup-surface-Dyam58nO.js +0 -148
  421. package/dist/shared-g55DV75U.js +0 -273
  422. package/dist/slash-dispatch.runtime-BRQbvn2e.js +0 -33
  423. package/dist/slash-plugin-commands.runtime-Dosfcx3X.js +0 -2
  424. package/dist/streaming-compat-3_X-21wW.js +0 -44
  425. package/dist/target-parsing-N6lHogYZ.js +0 -73
  426. package/dist/targets-KmjP2E8s.js +0 -13
  427. package/node_modules/@types/node/README.md +0 -15
  428. package/node_modules/@types/node/crypto.d.ts +0 -3954
  429. package/node_modules/@types/node/package.json +0 -155
  430. package/node_modules/media-typer/README.md +0 -93
  431. package/node_modules/media-typer/index.js +0 -143
  432. package/node_modules/media-typer/package.json +0 -33
  433. /package/node_modules/@slack/{logger → bolt/node_modules/@slack/logger}/LICENSE +0 -0
  434. /package/node_modules/@slack/{logger → bolt/node_modules/@slack/logger}/README.md +0 -0
  435. /package/node_modules/@slack/{logger → bolt/node_modules/@slack/logger}/dist/index.d.ts +0 -0
  436. /package/node_modules/@slack/{logger → bolt/node_modules/@slack/logger}/dist/index.d.ts.map +0 -0
  437. /package/node_modules/@slack/{logger → bolt/node_modules/@slack/logger}/dist/index.js +0 -0
  438. /package/node_modules/@slack/{logger → bolt/node_modules/@slack/logger}/dist/index.js.map +0 -0
  439. /package/node_modules/@slack/{logger → bolt/node_modules/@slack/logger}/package.json +0 -0
  440. /package/node_modules/@slack/{oauth → bolt/node_modules/@slack/oauth}/LICENSE +0 -0
  441. /package/node_modules/@slack/{oauth → bolt/node_modules/@slack/oauth}/README.md +0 -0
  442. /package/node_modules/@slack/{oauth → bolt/node_modules/@slack/oauth}/dist/authorize-result.d.ts +0 -0
  443. /package/node_modules/@slack/{oauth → bolt/node_modules/@slack/oauth}/dist/authorize-result.d.ts.map +0 -0
  444. /package/node_modules/@slack/{oauth → bolt/node_modules/@slack/oauth}/dist/authorize-result.js +0 -0
  445. /package/node_modules/@slack/{oauth → bolt/node_modules/@slack/oauth}/dist/authorize-result.js.map +0 -0
  446. /package/node_modules/@slack/{oauth → bolt/node_modules/@slack/oauth}/dist/callback-options.d.ts +0 -0
  447. /package/node_modules/@slack/{oauth → bolt/node_modules/@slack/oauth}/dist/callback-options.d.ts.map +0 -0
  448. /package/node_modules/@slack/{oauth → bolt/node_modules/@slack/oauth}/dist/callback-options.js +0 -0
  449. /package/node_modules/@slack/{oauth → bolt/node_modules/@slack/oauth}/dist/callback-options.js.map +0 -0
  450. /package/node_modules/@slack/{oauth → bolt/node_modules/@slack/oauth}/dist/default-render-html-for-install-path.d.ts +0 -0
  451. /package/node_modules/@slack/{oauth → bolt/node_modules/@slack/oauth}/dist/default-render-html-for-install-path.d.ts.map +0 -0
  452. /package/node_modules/@slack/{oauth → bolt/node_modules/@slack/oauth}/dist/default-render-html-for-install-path.js +0 -0
  453. /package/node_modules/@slack/{oauth → bolt/node_modules/@slack/oauth}/dist/default-render-html-for-install-path.js.map +0 -0
  454. /package/node_modules/@slack/{oauth → bolt/node_modules/@slack/oauth}/dist/errors.d.ts +0 -0
  455. /package/node_modules/@slack/{oauth → bolt/node_modules/@slack/oauth}/dist/errors.d.ts.map +0 -0
  456. /package/node_modules/@slack/{oauth → bolt/node_modules/@slack/oauth}/dist/errors.js +0 -0
  457. /package/node_modules/@slack/{oauth → bolt/node_modules/@slack/oauth}/dist/errors.js.map +0 -0
  458. /package/node_modules/@slack/{oauth → bolt/node_modules/@slack/oauth}/dist/index.d.ts +0 -0
  459. /package/node_modules/@slack/{oauth → bolt/node_modules/@slack/oauth}/dist/index.d.ts.map +0 -0
  460. /package/node_modules/@slack/{oauth → bolt/node_modules/@slack/oauth}/dist/index.js +0 -0
  461. /package/node_modules/@slack/{oauth → bolt/node_modules/@slack/oauth}/dist/index.js.map +0 -0
  462. /package/node_modules/@slack/{oauth → bolt/node_modules/@slack/oauth}/dist/install-path-options.d.ts +0 -0
  463. /package/node_modules/@slack/{oauth → bolt/node_modules/@slack/oauth}/dist/install-path-options.d.ts.map +0 -0
  464. /package/node_modules/@slack/{oauth → bolt/node_modules/@slack/oauth}/dist/install-path-options.js +0 -0
  465. /package/node_modules/@slack/{oauth → bolt/node_modules/@slack/oauth}/dist/install-path-options.js.map +0 -0
  466. /package/node_modules/@slack/{oauth → bolt/node_modules/@slack/oauth}/dist/install-provider-options.d.ts +0 -0
  467. /package/node_modules/@slack/{oauth → bolt/node_modules/@slack/oauth}/dist/install-provider-options.d.ts.map +0 -0
  468. /package/node_modules/@slack/{oauth → bolt/node_modules/@slack/oauth}/dist/install-provider-options.js +0 -0
  469. /package/node_modules/@slack/{oauth → bolt/node_modules/@slack/oauth}/dist/install-provider-options.js.map +0 -0
  470. /package/node_modules/@slack/{oauth → bolt/node_modules/@slack/oauth}/dist/install-provider.d.ts +0 -0
  471. /package/node_modules/@slack/{oauth → bolt/node_modules/@slack/oauth}/dist/install-provider.d.ts.map +0 -0
  472. /package/node_modules/@slack/{oauth → bolt/node_modules/@slack/oauth}/dist/install-provider.js +0 -0
  473. /package/node_modules/@slack/{oauth → bolt/node_modules/@slack/oauth}/dist/install-provider.js.map +0 -0
  474. /package/node_modules/@slack/{oauth → bolt/node_modules/@slack/oauth}/dist/install-url-options.d.ts +0 -0
  475. /package/node_modules/@slack/{oauth → bolt/node_modules/@slack/oauth}/dist/install-url-options.d.ts.map +0 -0
  476. /package/node_modules/@slack/{oauth → bolt/node_modules/@slack/oauth}/dist/install-url-options.js +0 -0
  477. /package/node_modules/@slack/{oauth → bolt/node_modules/@slack/oauth}/dist/install-url-options.js.map +0 -0
  478. /package/node_modules/@slack/{oauth → bolt/node_modules/@slack/oauth}/dist/installation-query.d.ts +0 -0
  479. /package/node_modules/@slack/{oauth → bolt/node_modules/@slack/oauth}/dist/installation-query.d.ts.map +0 -0
  480. /package/node_modules/@slack/{oauth → bolt/node_modules/@slack/oauth}/dist/installation-query.js +0 -0
  481. /package/node_modules/@slack/{oauth → bolt/node_modules/@slack/oauth}/dist/installation-query.js.map +0 -0
  482. /package/node_modules/@slack/{oauth → bolt/node_modules/@slack/oauth}/dist/installation-stores/file-store.d.ts +0 -0
  483. /package/node_modules/@slack/{oauth → bolt/node_modules/@slack/oauth}/dist/installation-stores/file-store.d.ts.map +0 -0
  484. /package/node_modules/@slack/{oauth → bolt/node_modules/@slack/oauth}/dist/installation-stores/file-store.js +0 -0
  485. /package/node_modules/@slack/{oauth → bolt/node_modules/@slack/oauth}/dist/installation-stores/file-store.js.map +0 -0
  486. /package/node_modules/@slack/{oauth → bolt/node_modules/@slack/oauth}/dist/installation-stores/index.d.ts +0 -0
  487. /package/node_modules/@slack/{oauth → bolt/node_modules/@slack/oauth}/dist/installation-stores/index.d.ts.map +0 -0
  488. /package/node_modules/@slack/{oauth → bolt/node_modules/@slack/oauth}/dist/installation-stores/index.js +0 -0
  489. /package/node_modules/@slack/{oauth → bolt/node_modules/@slack/oauth}/dist/installation-stores/index.js.map +0 -0
  490. /package/node_modules/@slack/{oauth → bolt/node_modules/@slack/oauth}/dist/installation-stores/interface.d.ts +0 -0
  491. /package/node_modules/@slack/{oauth → bolt/node_modules/@slack/oauth}/dist/installation-stores/interface.d.ts.map +0 -0
  492. /package/node_modules/@slack/{oauth → bolt/node_modules/@slack/oauth}/dist/installation-stores/interface.js +0 -0
  493. /package/node_modules/@slack/{oauth → bolt/node_modules/@slack/oauth}/dist/installation-stores/interface.js.map +0 -0
  494. /package/node_modules/@slack/{oauth → bolt/node_modules/@slack/oauth}/dist/installation-stores/memory-store.d.ts +0 -0
  495. /package/node_modules/@slack/{oauth → bolt/node_modules/@slack/oauth}/dist/installation-stores/memory-store.d.ts.map +0 -0
  496. /package/node_modules/@slack/{oauth → bolt/node_modules/@slack/oauth}/dist/installation-stores/memory-store.js +0 -0
  497. /package/node_modules/@slack/{oauth → bolt/node_modules/@slack/oauth}/dist/installation-stores/memory-store.js.map +0 -0
  498. /package/node_modules/@slack/{oauth → bolt/node_modules/@slack/oauth}/dist/installation.d.ts +0 -0
  499. /package/node_modules/@slack/{oauth → bolt/node_modules/@slack/oauth}/dist/installation.d.ts.map +0 -0
  500. /package/node_modules/@slack/{oauth → bolt/node_modules/@slack/oauth}/dist/installation.js +0 -0
  501. /package/node_modules/@slack/{oauth → bolt/node_modules/@slack/oauth}/dist/installation.js.map +0 -0
  502. /package/node_modules/@slack/{oauth → bolt/node_modules/@slack/oauth}/dist/logger.d.ts +0 -0
  503. /package/node_modules/@slack/{oauth → bolt/node_modules/@slack/oauth}/dist/logger.d.ts.map +0 -0
  504. /package/node_modules/@slack/{oauth → bolt/node_modules/@slack/oauth}/dist/logger.js +0 -0
  505. /package/node_modules/@slack/{oauth → bolt/node_modules/@slack/oauth}/dist/logger.js.map +0 -0
  506. /package/node_modules/@slack/{oauth → bolt/node_modules/@slack/oauth}/dist/state-stores/clear-state-store.d.ts +0 -0
  507. /package/node_modules/@slack/{oauth → bolt/node_modules/@slack/oauth}/dist/state-stores/clear-state-store.d.ts.map +0 -0
  508. /package/node_modules/@slack/{oauth → bolt/node_modules/@slack/oauth}/dist/state-stores/clear-state-store.js +0 -0
  509. /package/node_modules/@slack/{oauth → bolt/node_modules/@slack/oauth}/dist/state-stores/clear-state-store.js.map +0 -0
  510. /package/node_modules/@slack/{oauth → bolt/node_modules/@slack/oauth}/dist/state-stores/file-state-store.d.ts +0 -0
  511. /package/node_modules/@slack/{oauth → bolt/node_modules/@slack/oauth}/dist/state-stores/file-state-store.d.ts.map +0 -0
  512. /package/node_modules/@slack/{oauth → bolt/node_modules/@slack/oauth}/dist/state-stores/file-state-store.js +0 -0
  513. /package/node_modules/@slack/{oauth → bolt/node_modules/@slack/oauth}/dist/state-stores/file-state-store.js.map +0 -0
  514. /package/node_modules/@slack/{oauth → bolt/node_modules/@slack/oauth}/dist/state-stores/index.d.ts +0 -0
  515. /package/node_modules/@slack/{oauth → bolt/node_modules/@slack/oauth}/dist/state-stores/index.d.ts.map +0 -0
  516. /package/node_modules/@slack/{oauth → bolt/node_modules/@slack/oauth}/dist/state-stores/index.js +0 -0
  517. /package/node_modules/@slack/{oauth → bolt/node_modules/@slack/oauth}/dist/state-stores/index.js.map +0 -0
  518. /package/node_modules/@slack/{oauth → bolt/node_modules/@slack/oauth}/dist/state-stores/interface.d.ts +0 -0
  519. /package/node_modules/@slack/{oauth → bolt/node_modules/@slack/oauth}/dist/state-stores/interface.d.ts.map +0 -0
  520. /package/node_modules/@slack/{oauth → bolt/node_modules/@slack/oauth}/dist/state-stores/interface.js +0 -0
  521. /package/node_modules/@slack/{oauth → bolt/node_modules/@slack/oauth}/dist/state-stores/interface.js.map +0 -0
  522. /package/node_modules/@slack/{oauth → bolt/node_modules/@slack/oauth}/package.json +0 -0
  523. /package/node_modules/{@types → @slack/bolt/node_modules/@types}/jsonwebtoken/LICENSE +0 -0
  524. /package/node_modules/{@types → @slack/bolt/node_modules/@types}/jsonwebtoken/README.md +0 -0
  525. /package/node_modules/{@types → @slack/bolt/node_modules/@types}/jsonwebtoken/index.d.ts +0 -0
  526. /package/node_modules/{@types → @slack/bolt/node_modules/@types}/jsonwebtoken/package.json +0 -0
  527. /package/node_modules/{@types → @slack/bolt/node_modules/@types}/ms/LICENSE +0 -0
  528. /package/node_modules/{@types → @slack/bolt/node_modules/@types}/ms/README.md +0 -0
  529. /package/node_modules/{@types → @slack/bolt/node_modules/@types}/ms/index.d.ts +0 -0
  530. /package/node_modules/{@types → @slack/bolt/node_modules/@types}/ms/package.json +0 -0
  531. /package/node_modules/{@types → @slack/bolt/node_modules/@types}/node/LICENSE +0 -0
  532. /package/node_modules/{@types → @slack/bolt/node_modules/@types}/node/assert/strict.d.ts +0 -0
  533. /package/node_modules/{@types → @slack/bolt/node_modules/@types}/node/assert.d.ts +0 -0
  534. /package/node_modules/{@types → @slack/bolt/node_modules/@types}/node/async_hooks.d.ts +0 -0
  535. /package/node_modules/{@types → @slack/bolt/node_modules/@types}/node/buffer.buffer.d.ts +0 -0
  536. /package/node_modules/{@types → @slack/bolt/node_modules/@types}/node/buffer.d.ts +0 -0
  537. /package/node_modules/{@types → @slack/bolt/node_modules/@types}/node/child_process.d.ts +0 -0
  538. /package/node_modules/{@types → @slack/bolt/node_modules/@types}/node/cluster.d.ts +0 -0
  539. /package/node_modules/{@types → @slack/bolt/node_modules/@types}/node/console.d.ts +0 -0
  540. /package/node_modules/{@types → @slack/bolt/node_modules/@types}/node/constants.d.ts +0 -0
  541. /package/node_modules/{@types → @slack/bolt/node_modules/@types}/node/dgram.d.ts +0 -0
  542. /package/node_modules/{@types → @slack/bolt/node_modules/@types}/node/diagnostics_channel.d.ts +0 -0
  543. /package/node_modules/{@types → @slack/bolt/node_modules/@types}/node/dns/promises.d.ts +0 -0
  544. /package/node_modules/{@types → @slack/bolt/node_modules/@types}/node/dns.d.ts +0 -0
  545. /package/node_modules/{@types → @slack/bolt/node_modules/@types}/node/domain.d.ts +0 -0
  546. /package/node_modules/{@types → @slack/bolt/node_modules/@types}/node/events.d.ts +0 -0
  547. /package/node_modules/{@types → @slack/bolt/node_modules/@types}/node/ffi.d.ts +0 -0
  548. /package/node_modules/{@types → @slack/bolt/node_modules/@types}/node/fs/promises.d.ts +0 -0
  549. /package/node_modules/{@types → @slack/bolt/node_modules/@types}/node/fs.d.ts +0 -0
  550. /package/node_modules/{@types → @slack/bolt/node_modules/@types}/node/globals.d.ts +0 -0
  551. /package/node_modules/{@types → @slack/bolt/node_modules/@types}/node/globals.typedarray.d.ts +0 -0
  552. /package/node_modules/{@types → @slack/bolt/node_modules/@types}/node/http.d.ts +0 -0
  553. /package/node_modules/{@types → @slack/bolt/node_modules/@types}/node/http2.d.ts +0 -0
  554. /package/node_modules/{@types → @slack/bolt/node_modules/@types}/node/https.d.ts +0 -0
  555. /package/node_modules/{@types → @slack/bolt/node_modules/@types}/node/index.d.ts +0 -0
  556. /package/node_modules/{@types → @slack/bolt/node_modules/@types}/node/inspector/promises.d.ts +0 -0
  557. /package/node_modules/{@types → @slack/bolt/node_modules/@types}/node/inspector.d.ts +0 -0
  558. /package/node_modules/{@types → @slack/bolt/node_modules/@types}/node/inspector.generated.d.ts +0 -0
  559. /package/node_modules/{@types → @slack/bolt/node_modules/@types}/node/module.d.ts +0 -0
  560. /package/node_modules/{@types → @slack/bolt/node_modules/@types}/node/net.d.ts +0 -0
  561. /package/node_modules/{@types → @slack/bolt/node_modules/@types}/node/os.d.ts +0 -0
  562. /package/node_modules/{@types → @slack/bolt/node_modules/@types}/node/path/posix.d.ts +0 -0
  563. /package/node_modules/{@types → @slack/bolt/node_modules/@types}/node/path/win32.d.ts +0 -0
  564. /package/node_modules/{@types → @slack/bolt/node_modules/@types}/node/path.d.ts +0 -0
  565. /package/node_modules/{@types → @slack/bolt/node_modules/@types}/node/perf_hooks.d.ts +0 -0
  566. /package/node_modules/{@types → @slack/bolt/node_modules/@types}/node/process.d.ts +0 -0
  567. /package/node_modules/{@types → @slack/bolt/node_modules/@types}/node/punycode.d.ts +0 -0
  568. /package/node_modules/{@types → @slack/bolt/node_modules/@types}/node/querystring.d.ts +0 -0
  569. /package/node_modules/{@types → @slack/bolt/node_modules/@types}/node/quic.d.ts +0 -0
  570. /package/node_modules/{@types → @slack/bolt/node_modules/@types}/node/readline/promises.d.ts +0 -0
  571. /package/node_modules/{@types → @slack/bolt/node_modules/@types}/node/readline.d.ts +0 -0
  572. /package/node_modules/{@types → @slack/bolt/node_modules/@types}/node/repl.d.ts +0 -0
  573. /package/node_modules/{@types → @slack/bolt/node_modules/@types}/node/sea.d.ts +0 -0
  574. /package/node_modules/{@types → @slack/bolt/node_modules/@types}/node/sqlite.d.ts +0 -0
  575. /package/node_modules/{@types → @slack/bolt/node_modules/@types}/node/stream/consumers.d.ts +0 -0
  576. /package/node_modules/{@types → @slack/bolt/node_modules/@types}/node/stream/iter.d.ts +0 -0
  577. /package/node_modules/{@types → @slack/bolt/node_modules/@types}/node/stream/promises.d.ts +0 -0
  578. /package/node_modules/{@types → @slack/bolt/node_modules/@types}/node/stream/web.d.ts +0 -0
  579. /package/node_modules/{@types → @slack/bolt/node_modules/@types}/node/stream.d.ts +0 -0
  580. /package/node_modules/{@types → @slack/bolt/node_modules/@types}/node/string_decoder.d.ts +0 -0
  581. /package/node_modules/{@types → @slack/bolt/node_modules/@types}/node/test/reporters.d.ts +0 -0
  582. /package/node_modules/{@types → @slack/bolt/node_modules/@types}/node/test.d.ts +0 -0
  583. /package/node_modules/{@types → @slack/bolt/node_modules/@types}/node/timers/promises.d.ts +0 -0
  584. /package/node_modules/{@types → @slack/bolt/node_modules/@types}/node/timers.d.ts +0 -0
  585. /package/node_modules/{@types → @slack/bolt/node_modules/@types}/node/tls.d.ts +0 -0
  586. /package/node_modules/{@types → @slack/bolt/node_modules/@types}/node/trace_events.d.ts +0 -0
  587. /package/node_modules/{@types → @slack/bolt/node_modules/@types}/node/ts5.6/buffer.buffer.d.ts +0 -0
  588. /package/node_modules/{@types → @slack/bolt/node_modules/@types}/node/ts5.6/compatibility/float16array.d.ts +0 -0
  589. /package/node_modules/{@types → @slack/bolt/node_modules/@types}/node/ts5.6/globals.typedarray.d.ts +0 -0
  590. /package/node_modules/{@types → @slack/bolt/node_modules/@types}/node/ts5.6/index.d.ts +0 -0
  591. /package/node_modules/{@types → @slack/bolt/node_modules/@types}/node/ts5.7/compatibility/float16array.d.ts +0 -0
  592. /package/node_modules/{@types → @slack/bolt/node_modules/@types}/node/ts5.7/index.d.ts +0 -0
  593. /package/node_modules/{@types → @slack/bolt/node_modules/@types}/node/tty.d.ts +0 -0
  594. /package/node_modules/{@types → @slack/bolt/node_modules/@types}/node/url.d.ts +0 -0
  595. /package/node_modules/{@types → @slack/bolt/node_modules/@types}/node/util/types.d.ts +0 -0
  596. /package/node_modules/{@types → @slack/bolt/node_modules/@types}/node/util.d.ts +0 -0
  597. /package/node_modules/{@types → @slack/bolt/node_modules/@types}/node/v8.d.ts +0 -0
  598. /package/node_modules/{@types → @slack/bolt/node_modules/@types}/node/vm.d.ts +0 -0
  599. /package/node_modules/{@types → @slack/bolt/node_modules/@types}/node/wasi.d.ts +0 -0
  600. /package/node_modules/{@types → @slack/bolt/node_modules/@types}/node/web-globals/abortcontroller.d.ts +0 -0
  601. /package/node_modules/{@types → @slack/bolt/node_modules/@types}/node/web-globals/blob.d.ts +0 -0
  602. /package/node_modules/{@types → @slack/bolt/node_modules/@types}/node/web-globals/console.d.ts +0 -0
  603. /package/node_modules/{@types → @slack/bolt/node_modules/@types}/node/web-globals/crypto.d.ts +0 -0
  604. /package/node_modules/{@types → @slack/bolt/node_modules/@types}/node/web-globals/domexception.d.ts +0 -0
  605. /package/node_modules/{@types → @slack/bolt/node_modules/@types}/node/web-globals/encoding.d.ts +0 -0
  606. /package/node_modules/{@types → @slack/bolt/node_modules/@types}/node/web-globals/events.d.ts +0 -0
  607. /package/node_modules/{@types → @slack/bolt/node_modules/@types}/node/web-globals/fetch.d.ts +0 -0
  608. /package/node_modules/{@types → @slack/bolt/node_modules/@types}/node/web-globals/importmeta.d.ts +0 -0
  609. /package/node_modules/{@types → @slack/bolt/node_modules/@types}/node/web-globals/messaging.d.ts +0 -0
  610. /package/node_modules/{@types → @slack/bolt/node_modules/@types}/node/web-globals/navigator.d.ts +0 -0
  611. /package/node_modules/{@types → @slack/bolt/node_modules/@types}/node/web-globals/performance.d.ts +0 -0
  612. /package/node_modules/{@types → @slack/bolt/node_modules/@types}/node/web-globals/storage.d.ts +0 -0
  613. /package/node_modules/{@types → @slack/bolt/node_modules/@types}/node/web-globals/streams.d.ts +0 -0
  614. /package/node_modules/{@types → @slack/bolt/node_modules/@types}/node/web-globals/timers.d.ts +0 -0
  615. /package/node_modules/{@types → @slack/bolt/node_modules/@types}/node/web-globals/url.d.ts +0 -0
  616. /package/node_modules/{@types → @slack/bolt/node_modules/@types}/node/worker_threads.d.ts +0 -0
  617. /package/node_modules/{@types → @slack/bolt/node_modules/@types}/node/zlib/iter.d.ts +0 -0
  618. /package/node_modules/{@types → @slack/bolt/node_modules/@types}/node/zlib.d.ts +0 -0
  619. /package/node_modules/{accepts → @slack/bolt/node_modules/accepts}/HISTORY.md +0 -0
  620. /package/node_modules/{accepts → @slack/bolt/node_modules/accepts}/LICENSE +0 -0
  621. /package/node_modules/{accepts → @slack/bolt/node_modules/accepts}/README.md +0 -0
  622. /package/node_modules/{accepts → @slack/bolt/node_modules/accepts}/index.js +0 -0
  623. /package/node_modules/{accepts → @slack/bolt/node_modules/accepts}/package.json +0 -0
  624. /package/node_modules/{body-parser → @slack/bolt/node_modules/body-parser}/LICENSE +0 -0
  625. /package/node_modules/{body-parser → @slack/bolt/node_modules/body-parser}/README.md +0 -0
  626. /package/node_modules/{body-parser → @slack/bolt/node_modules/body-parser}/index.js +0 -0
  627. /package/node_modules/{body-parser → @slack/bolt/node_modules/body-parser}/lib/read.js +0 -0
  628. /package/node_modules/{body-parser → @slack/bolt/node_modules/body-parser}/lib/types/json.js +0 -0
  629. /package/node_modules/{body-parser → @slack/bolt/node_modules/body-parser}/lib/types/raw.js +0 -0
  630. /package/node_modules/{body-parser → @slack/bolt/node_modules/body-parser}/lib/types/text.js +0 -0
  631. /package/node_modules/{body-parser → @slack/bolt/node_modules/body-parser}/lib/types/urlencoded.js +0 -0
  632. /package/node_modules/{body-parser → @slack/bolt/node_modules/body-parser}/lib/utils.js +0 -0
  633. /package/node_modules/{body-parser → @slack/bolt/node_modules/body-parser}/node_modules/content-type/LICENSE +0 -0
  634. /package/node_modules/{body-parser → @slack/bolt/node_modules/body-parser}/node_modules/content-type/README.md +0 -0
  635. /package/node_modules/{body-parser → @slack/bolt/node_modules/body-parser}/node_modules/content-type/dist/index.d.ts +0 -0
  636. /package/node_modules/{body-parser → @slack/bolt/node_modules/body-parser}/node_modules/content-type/dist/index.js +0 -0
  637. /package/node_modules/{body-parser → @slack/bolt/node_modules/body-parser}/node_modules/content-type/dist/index.js.map +0 -0
  638. /package/node_modules/{body-parser → @slack/bolt/node_modules/body-parser}/node_modules/content-type/package.json +0 -0
  639. /package/node_modules/{body-parser → @slack/bolt/node_modules/body-parser}/package.json +0 -0
  640. /package/node_modules/{buffer-equal-constant-time → @slack/bolt/node_modules/buffer-equal-constant-time}/.npmignore +0 -0
  641. /package/node_modules/{buffer-equal-constant-time → @slack/bolt/node_modules/buffer-equal-constant-time}/.travis.yml +0 -0
  642. /package/node_modules/{buffer-equal-constant-time → @slack/bolt/node_modules/buffer-equal-constant-time}/LICENSE.txt +0 -0
  643. /package/node_modules/{buffer-equal-constant-time → @slack/bolt/node_modules/buffer-equal-constant-time}/README.md +0 -0
  644. /package/node_modules/{buffer-equal-constant-time → @slack/bolt/node_modules/buffer-equal-constant-time}/index.js +0 -0
  645. /package/node_modules/{buffer-equal-constant-time → @slack/bolt/node_modules/buffer-equal-constant-time}/package.json +0 -0
  646. /package/node_modules/{buffer-equal-constant-time → @slack/bolt/node_modules/buffer-equal-constant-time}/test.js +0 -0
  647. /package/node_modules/{bytes → @slack/bolt/node_modules/bytes}/History.md +0 -0
  648. /package/node_modules/{bytes → @slack/bolt/node_modules/bytes}/LICENSE +0 -0
  649. /package/node_modules/{bytes → @slack/bolt/node_modules/bytes}/Readme.md +0 -0
  650. /package/node_modules/{bytes → @slack/bolt/node_modules/bytes}/index.js +0 -0
  651. /package/node_modules/{bytes → @slack/bolt/node_modules/bytes}/package.json +0 -0
  652. /package/node_modules/{call-bind-apply-helpers → @slack/bolt/node_modules/call-bind-apply-helpers}/.eslintrc +0 -0
  653. /package/node_modules/{call-bind-apply-helpers → @slack/bolt/node_modules/call-bind-apply-helpers}/.github/FUNDING.yml +0 -0
  654. /package/node_modules/{call-bind-apply-helpers → @slack/bolt/node_modules/call-bind-apply-helpers}/.nycrc +0 -0
  655. /package/node_modules/{call-bind-apply-helpers → @slack/bolt/node_modules/call-bind-apply-helpers}/CHANGELOG.md +0 -0
  656. /package/node_modules/{call-bind-apply-helpers → @slack/bolt/node_modules/call-bind-apply-helpers}/LICENSE +0 -0
  657. /package/node_modules/{call-bind-apply-helpers → @slack/bolt/node_modules/call-bind-apply-helpers}/README.md +0 -0
  658. /package/node_modules/{call-bind-apply-helpers → @slack/bolt/node_modules/call-bind-apply-helpers}/actualApply.d.ts +0 -0
  659. /package/node_modules/{call-bind-apply-helpers → @slack/bolt/node_modules/call-bind-apply-helpers}/actualApply.js +0 -0
  660. /package/node_modules/{call-bind-apply-helpers → @slack/bolt/node_modules/call-bind-apply-helpers}/applyBind.d.ts +0 -0
  661. /package/node_modules/{call-bind-apply-helpers → @slack/bolt/node_modules/call-bind-apply-helpers}/applyBind.js +0 -0
  662. /package/node_modules/{call-bind-apply-helpers → @slack/bolt/node_modules/call-bind-apply-helpers}/functionApply.d.ts +0 -0
  663. /package/node_modules/{call-bind-apply-helpers → @slack/bolt/node_modules/call-bind-apply-helpers}/functionApply.js +0 -0
  664. /package/node_modules/{call-bind-apply-helpers → @slack/bolt/node_modules/call-bind-apply-helpers}/functionCall.d.ts +0 -0
  665. /package/node_modules/{call-bind-apply-helpers → @slack/bolt/node_modules/call-bind-apply-helpers}/functionCall.js +0 -0
  666. /package/node_modules/{call-bind-apply-helpers → @slack/bolt/node_modules/call-bind-apply-helpers}/index.d.ts +0 -0
  667. /package/node_modules/{call-bind-apply-helpers → @slack/bolt/node_modules/call-bind-apply-helpers}/index.js +0 -0
  668. /package/node_modules/{call-bind-apply-helpers → @slack/bolt/node_modules/call-bind-apply-helpers}/package.json +0 -0
  669. /package/node_modules/{call-bind-apply-helpers → @slack/bolt/node_modules/call-bind-apply-helpers}/reflectApply.d.ts +0 -0
  670. /package/node_modules/{call-bind-apply-helpers → @slack/bolt/node_modules/call-bind-apply-helpers}/reflectApply.js +0 -0
  671. /package/node_modules/{call-bind-apply-helpers → @slack/bolt/node_modules/call-bind-apply-helpers}/test/index.js +0 -0
  672. /package/node_modules/{call-bind-apply-helpers → @slack/bolt/node_modules/call-bind-apply-helpers}/tsconfig.json +0 -0
  673. /package/node_modules/{call-bound → @slack/bolt/node_modules/call-bound}/.eslintrc +0 -0
  674. /package/node_modules/{call-bound → @slack/bolt/node_modules/call-bound}/.github/FUNDING.yml +0 -0
  675. /package/node_modules/{call-bound → @slack/bolt/node_modules/call-bound}/.nycrc +0 -0
  676. /package/node_modules/{call-bound → @slack/bolt/node_modules/call-bound}/CHANGELOG.md +0 -0
  677. /package/node_modules/{call-bound → @slack/bolt/node_modules/call-bound}/LICENSE +0 -0
  678. /package/node_modules/{call-bound → @slack/bolt/node_modules/call-bound}/README.md +0 -0
  679. /package/node_modules/{call-bound → @slack/bolt/node_modules/call-bound}/index.d.ts +0 -0
  680. /package/node_modules/{call-bound → @slack/bolt/node_modules/call-bound}/index.js +0 -0
  681. /package/node_modules/{call-bound → @slack/bolt/node_modules/call-bound}/package.json +0 -0
  682. /package/node_modules/{call-bound → @slack/bolt/node_modules/call-bound}/test/index.js +0 -0
  683. /package/node_modules/{call-bound → @slack/bolt/node_modules/call-bound}/tsconfig.json +0 -0
  684. /package/node_modules/{content-disposition → @slack/bolt/node_modules/content-disposition}/LICENSE +0 -0
  685. /package/node_modules/{content-disposition → @slack/bolt/node_modules/content-disposition}/README.md +0 -0
  686. /package/node_modules/{content-disposition → @slack/bolt/node_modules/content-disposition}/index.js +0 -0
  687. /package/node_modules/{content-disposition → @slack/bolt/node_modules/content-disposition}/package.json +0 -0
  688. /package/node_modules/{content-type → @slack/bolt/node_modules/content-type}/HISTORY.md +0 -0
  689. /package/node_modules/{content-type → @slack/bolt/node_modules/content-type}/LICENSE +0 -0
  690. /package/node_modules/{content-type → @slack/bolt/node_modules/content-type}/README.md +0 -0
  691. /package/node_modules/{content-type → @slack/bolt/node_modules/content-type}/index.js +0 -0
  692. /package/node_modules/{content-type → @slack/bolt/node_modules/content-type}/package.json +0 -0
  693. /package/node_modules/{cookie → @slack/bolt/node_modules/cookie}/LICENSE +0 -0
  694. /package/node_modules/{cookie → @slack/bolt/node_modules/cookie}/README.md +0 -0
  695. /package/node_modules/{cookie → @slack/bolt/node_modules/cookie}/SECURITY.md +0 -0
  696. /package/node_modules/{cookie → @slack/bolt/node_modules/cookie}/index.js +0 -0
  697. /package/node_modules/{cookie → @slack/bolt/node_modules/cookie}/package.json +0 -0
  698. /package/node_modules/{cookie-signature → @slack/bolt/node_modules/cookie-signature}/History.md +0 -0
  699. /package/node_modules/{cookie-signature → @slack/bolt/node_modules/cookie-signature}/LICENSE +0 -0
  700. /package/node_modules/{cookie-signature → @slack/bolt/node_modules/cookie-signature}/Readme.md +0 -0
  701. /package/node_modules/{cookie-signature → @slack/bolt/node_modules/cookie-signature}/index.js +0 -0
  702. /package/node_modules/{cookie-signature → @slack/bolt/node_modules/cookie-signature}/package.json +0 -0
  703. /package/node_modules/{debug → @slack/bolt/node_modules/debug}/LICENSE +0 -0
  704. /package/node_modules/{debug → @slack/bolt/node_modules/debug}/README.md +0 -0
  705. /package/node_modules/{debug → @slack/bolt/node_modules/debug}/package.json +0 -0
  706. /package/node_modules/{debug → @slack/bolt/node_modules/debug}/src/browser.js +0 -0
  707. /package/node_modules/{debug → @slack/bolt/node_modules/debug}/src/common.js +0 -0
  708. /package/node_modules/{debug → @slack/bolt/node_modules/debug}/src/index.js +0 -0
  709. /package/node_modules/{debug → @slack/bolt/node_modules/debug}/src/node.js +0 -0
  710. /package/node_modules/{depd → @slack/bolt/node_modules/depd}/History.md +0 -0
  711. /package/node_modules/{depd → @slack/bolt/node_modules/depd}/LICENSE +0 -0
  712. /package/node_modules/{depd → @slack/bolt/node_modules/depd}/Readme.md +0 -0
  713. /package/node_modules/{depd → @slack/bolt/node_modules/depd}/index.js +0 -0
  714. /package/node_modules/{depd → @slack/bolt/node_modules/depd}/lib/browser/index.js +0 -0
  715. /package/node_modules/{depd → @slack/bolt/node_modules/depd}/package.json +0 -0
  716. /package/node_modules/{dunder-proto → @slack/bolt/node_modules/dunder-proto}/.eslintrc +0 -0
  717. /package/node_modules/{dunder-proto → @slack/bolt/node_modules/dunder-proto}/.github/FUNDING.yml +0 -0
  718. /package/node_modules/{dunder-proto → @slack/bolt/node_modules/dunder-proto}/.nycrc +0 -0
  719. /package/node_modules/{dunder-proto → @slack/bolt/node_modules/dunder-proto}/CHANGELOG.md +0 -0
  720. /package/node_modules/{dunder-proto → @slack/bolt/node_modules/dunder-proto}/LICENSE +0 -0
  721. /package/node_modules/{dunder-proto → @slack/bolt/node_modules/dunder-proto}/README.md +0 -0
  722. /package/node_modules/{dunder-proto → @slack/bolt/node_modules/dunder-proto}/get.d.ts +0 -0
  723. /package/node_modules/{dunder-proto → @slack/bolt/node_modules/dunder-proto}/get.js +0 -0
  724. /package/node_modules/{dunder-proto → @slack/bolt/node_modules/dunder-proto}/package.json +0 -0
  725. /package/node_modules/{dunder-proto → @slack/bolt/node_modules/dunder-proto}/set.d.ts +0 -0
  726. /package/node_modules/{dunder-proto → @slack/bolt/node_modules/dunder-proto}/set.js +0 -0
  727. /package/node_modules/{dunder-proto → @slack/bolt/node_modules/dunder-proto}/test/get.js +0 -0
  728. /package/node_modules/{dunder-proto → @slack/bolt/node_modules/dunder-proto}/test/index.js +0 -0
  729. /package/node_modules/{dunder-proto → @slack/bolt/node_modules/dunder-proto}/test/set.js +0 -0
  730. /package/node_modules/{dunder-proto → @slack/bolt/node_modules/dunder-proto}/tsconfig.json +0 -0
  731. /package/node_modules/{ecdsa-sig-formatter → @slack/bolt/node_modules/ecdsa-sig-formatter}/CODEOWNERS +0 -0
  732. /package/node_modules/{ecdsa-sig-formatter → @slack/bolt/node_modules/ecdsa-sig-formatter}/LICENSE +0 -0
  733. /package/node_modules/{ecdsa-sig-formatter → @slack/bolt/node_modules/ecdsa-sig-formatter}/README.md +0 -0
  734. /package/node_modules/{ecdsa-sig-formatter → @slack/bolt/node_modules/ecdsa-sig-formatter}/package.json +0 -0
  735. /package/node_modules/{ecdsa-sig-formatter → @slack/bolt/node_modules/ecdsa-sig-formatter}/src/ecdsa-sig-formatter.d.ts +0 -0
  736. /package/node_modules/{ecdsa-sig-formatter → @slack/bolt/node_modules/ecdsa-sig-formatter}/src/ecdsa-sig-formatter.js +0 -0
  737. /package/node_modules/{ecdsa-sig-formatter → @slack/bolt/node_modules/ecdsa-sig-formatter}/src/param-bytes-for-alg.js +0 -0
  738. /package/node_modules/{ee-first → @slack/bolt/node_modules/ee-first}/LICENSE +0 -0
  739. /package/node_modules/{ee-first → @slack/bolt/node_modules/ee-first}/README.md +0 -0
  740. /package/node_modules/{ee-first → @slack/bolt/node_modules/ee-first}/index.js +0 -0
  741. /package/node_modules/{ee-first → @slack/bolt/node_modules/ee-first}/package.json +0 -0
  742. /package/node_modules/{encodeurl → @slack/bolt/node_modules/encodeurl}/LICENSE +0 -0
  743. /package/node_modules/{encodeurl → @slack/bolt/node_modules/encodeurl}/README.md +0 -0
  744. /package/node_modules/{encodeurl → @slack/bolt/node_modules/encodeurl}/index.js +0 -0
  745. /package/node_modules/{encodeurl → @slack/bolt/node_modules/encodeurl}/package.json +0 -0
  746. /package/node_modules/{es-define-property → @slack/bolt/node_modules/es-define-property}/.eslintrc +0 -0
  747. /package/node_modules/{es-define-property → @slack/bolt/node_modules/es-define-property}/.github/FUNDING.yml +0 -0
  748. /package/node_modules/{es-define-property → @slack/bolt/node_modules/es-define-property}/.nycrc +0 -0
  749. /package/node_modules/{es-define-property → @slack/bolt/node_modules/es-define-property}/CHANGELOG.md +0 -0
  750. /package/node_modules/{es-define-property → @slack/bolt/node_modules/es-define-property}/LICENSE +0 -0
  751. /package/node_modules/{es-define-property → @slack/bolt/node_modules/es-define-property}/README.md +0 -0
  752. /package/node_modules/{es-define-property → @slack/bolt/node_modules/es-define-property}/index.d.ts +0 -0
  753. /package/node_modules/{es-define-property → @slack/bolt/node_modules/es-define-property}/index.js +0 -0
  754. /package/node_modules/{es-define-property → @slack/bolt/node_modules/es-define-property}/package.json +0 -0
  755. /package/node_modules/{es-define-property → @slack/bolt/node_modules/es-define-property}/test/index.js +0 -0
  756. /package/node_modules/{es-define-property → @slack/bolt/node_modules/es-define-property}/tsconfig.json +0 -0
  757. /package/node_modules/{es-errors → @slack/bolt/node_modules/es-errors}/.eslintrc +0 -0
  758. /package/node_modules/{es-errors → @slack/bolt/node_modules/es-errors}/.github/FUNDING.yml +0 -0
  759. /package/node_modules/{es-errors → @slack/bolt/node_modules/es-errors}/CHANGELOG.md +0 -0
  760. /package/node_modules/{es-errors → @slack/bolt/node_modules/es-errors}/LICENSE +0 -0
  761. /package/node_modules/{es-errors → @slack/bolt/node_modules/es-errors}/README.md +0 -0
  762. /package/node_modules/{es-errors → @slack/bolt/node_modules/es-errors}/eval.d.ts +0 -0
  763. /package/node_modules/{es-errors → @slack/bolt/node_modules/es-errors}/eval.js +0 -0
  764. /package/node_modules/{es-errors → @slack/bolt/node_modules/es-errors}/index.d.ts +0 -0
  765. /package/node_modules/{es-errors → @slack/bolt/node_modules/es-errors}/index.js +0 -0
  766. /package/node_modules/{es-errors → @slack/bolt/node_modules/es-errors}/package.json +0 -0
  767. /package/node_modules/{es-errors → @slack/bolt/node_modules/es-errors}/range.d.ts +0 -0
  768. /package/node_modules/{es-errors → @slack/bolt/node_modules/es-errors}/range.js +0 -0
  769. /package/node_modules/{es-errors → @slack/bolt/node_modules/es-errors}/ref.d.ts +0 -0
  770. /package/node_modules/{es-errors → @slack/bolt/node_modules/es-errors}/ref.js +0 -0
  771. /package/node_modules/{es-errors → @slack/bolt/node_modules/es-errors}/syntax.d.ts +0 -0
  772. /package/node_modules/{es-errors → @slack/bolt/node_modules/es-errors}/syntax.js +0 -0
  773. /package/node_modules/{es-errors → @slack/bolt/node_modules/es-errors}/test/index.js +0 -0
  774. /package/node_modules/{es-errors → @slack/bolt/node_modules/es-errors}/tsconfig.json +0 -0
  775. /package/node_modules/{es-errors → @slack/bolt/node_modules/es-errors}/type.d.ts +0 -0
  776. /package/node_modules/{es-errors → @slack/bolt/node_modules/es-errors}/type.js +0 -0
  777. /package/node_modules/{es-errors → @slack/bolt/node_modules/es-errors}/uri.d.ts +0 -0
  778. /package/node_modules/{es-errors → @slack/bolt/node_modules/es-errors}/uri.js +0 -0
  779. /package/node_modules/{es-object-atoms → @slack/bolt/node_modules/es-object-atoms}/.eslintrc +0 -0
  780. /package/node_modules/{es-object-atoms → @slack/bolt/node_modules/es-object-atoms}/.github/FUNDING.yml +0 -0
  781. /package/node_modules/{es-object-atoms → @slack/bolt/node_modules/es-object-atoms}/CHANGELOG.md +0 -0
  782. /package/node_modules/{es-object-atoms → @slack/bolt/node_modules/es-object-atoms}/LICENSE +0 -0
  783. /package/node_modules/{es-object-atoms → @slack/bolt/node_modules/es-object-atoms}/README.md +0 -0
  784. /package/node_modules/{es-object-atoms → @slack/bolt/node_modules/es-object-atoms}/RequireObjectCoercible.d.ts +0 -0
  785. /package/node_modules/{es-object-atoms → @slack/bolt/node_modules/es-object-atoms}/RequireObjectCoercible.js +0 -0
  786. /package/node_modules/{es-object-atoms → @slack/bolt/node_modules/es-object-atoms}/ToObject.d.ts +0 -0
  787. /package/node_modules/{es-object-atoms → @slack/bolt/node_modules/es-object-atoms}/ToObject.js +0 -0
  788. /package/node_modules/{es-object-atoms → @slack/bolt/node_modules/es-object-atoms}/index.d.ts +0 -0
  789. /package/node_modules/{es-object-atoms → @slack/bolt/node_modules/es-object-atoms}/index.js +0 -0
  790. /package/node_modules/{es-object-atoms → @slack/bolt/node_modules/es-object-atoms}/isObject.d.ts +0 -0
  791. /package/node_modules/{es-object-atoms → @slack/bolt/node_modules/es-object-atoms}/isObject.js +0 -0
  792. /package/node_modules/{es-object-atoms → @slack/bolt/node_modules/es-object-atoms}/package.json +0 -0
  793. /package/node_modules/{es-object-atoms → @slack/bolt/node_modules/es-object-atoms}/test/index.js +0 -0
  794. /package/node_modules/{es-object-atoms → @slack/bolt/node_modules/es-object-atoms}/tsconfig.json +0 -0
  795. /package/node_modules/{escape-html → @slack/bolt/node_modules/escape-html}/LICENSE +0 -0
  796. /package/node_modules/{escape-html → @slack/bolt/node_modules/escape-html}/Readme.md +0 -0
  797. /package/node_modules/{escape-html → @slack/bolt/node_modules/escape-html}/index.js +0 -0
  798. /package/node_modules/{escape-html → @slack/bolt/node_modules/escape-html}/package.json +0 -0
  799. /package/node_modules/{etag → @slack/bolt/node_modules/etag}/HISTORY.md +0 -0
  800. /package/node_modules/{etag → @slack/bolt/node_modules/etag}/LICENSE +0 -0
  801. /package/node_modules/{etag → @slack/bolt/node_modules/etag}/README.md +0 -0
  802. /package/node_modules/{etag → @slack/bolt/node_modules/etag}/index.js +0 -0
  803. /package/node_modules/{etag → @slack/bolt/node_modules/etag}/package.json +0 -0
  804. /package/node_modules/{express → @slack/bolt/node_modules/express}/LICENSE +0 -0
  805. /package/node_modules/{express → @slack/bolt/node_modules/express}/Readme.md +0 -0
  806. /package/node_modules/{express → @slack/bolt/node_modules/express}/index.js +0 -0
  807. /package/node_modules/{express → @slack/bolt/node_modules/express}/lib/application.js +0 -0
  808. /package/node_modules/{express → @slack/bolt/node_modules/express}/lib/express.js +0 -0
  809. /package/node_modules/{express → @slack/bolt/node_modules/express}/lib/request.js +0 -0
  810. /package/node_modules/{express → @slack/bolt/node_modules/express}/lib/response.js +0 -0
  811. /package/node_modules/{express → @slack/bolt/node_modules/express}/lib/utils.js +0 -0
  812. /package/node_modules/{express → @slack/bolt/node_modules/express}/lib/view.js +0 -0
  813. /package/node_modules/{express → @slack/bolt/node_modules/express}/package.json +0 -0
  814. /package/node_modules/{finalhandler → @slack/bolt/node_modules/finalhandler}/HISTORY.md +0 -0
  815. /package/node_modules/{finalhandler → @slack/bolt/node_modules/finalhandler}/LICENSE +0 -0
  816. /package/node_modules/{finalhandler → @slack/bolt/node_modules/finalhandler}/README.md +0 -0
  817. /package/node_modules/{finalhandler → @slack/bolt/node_modules/finalhandler}/index.js +0 -0
  818. /package/node_modules/{finalhandler → @slack/bolt/node_modules/finalhandler}/package.json +0 -0
  819. /package/node_modules/{forwarded → @slack/bolt/node_modules/forwarded}/HISTORY.md +0 -0
  820. /package/node_modules/{forwarded → @slack/bolt/node_modules/forwarded}/LICENSE +0 -0
  821. /package/node_modules/{forwarded → @slack/bolt/node_modules/forwarded}/README.md +0 -0
  822. /package/node_modules/{forwarded → @slack/bolt/node_modules/forwarded}/index.js +0 -0
  823. /package/node_modules/{forwarded → @slack/bolt/node_modules/forwarded}/package.json +0 -0
  824. /package/node_modules/{fresh → @slack/bolt/node_modules/fresh}/HISTORY.md +0 -0
  825. /package/node_modules/{fresh → @slack/bolt/node_modules/fresh}/LICENSE +0 -0
  826. /package/node_modules/{fresh → @slack/bolt/node_modules/fresh}/README.md +0 -0
  827. /package/node_modules/{fresh → @slack/bolt/node_modules/fresh}/index.js +0 -0
  828. /package/node_modules/{fresh → @slack/bolt/node_modules/fresh}/package.json +0 -0
  829. /package/node_modules/{function-bind → @slack/bolt/node_modules/function-bind}/.eslintrc +0 -0
  830. /package/node_modules/{function-bind → @slack/bolt/node_modules/function-bind}/.github/FUNDING.yml +0 -0
  831. /package/node_modules/{function-bind → @slack/bolt/node_modules/function-bind}/.github/SECURITY.md +0 -0
  832. /package/node_modules/{function-bind → @slack/bolt/node_modules/function-bind}/.nycrc +0 -0
  833. /package/node_modules/{function-bind → @slack/bolt/node_modules/function-bind}/CHANGELOG.md +0 -0
  834. /package/node_modules/{function-bind → @slack/bolt/node_modules/function-bind}/LICENSE +0 -0
  835. /package/node_modules/{function-bind → @slack/bolt/node_modules/function-bind}/README.md +0 -0
  836. /package/node_modules/{function-bind → @slack/bolt/node_modules/function-bind}/implementation.js +0 -0
  837. /package/node_modules/{function-bind → @slack/bolt/node_modules/function-bind}/index.js +0 -0
  838. /package/node_modules/{function-bind → @slack/bolt/node_modules/function-bind}/package.json +0 -0
  839. /package/node_modules/{function-bind → @slack/bolt/node_modules/function-bind}/test/.eslintrc +0 -0
  840. /package/node_modules/{function-bind → @slack/bolt/node_modules/function-bind}/test/index.js +0 -0
  841. /package/node_modules/{get-intrinsic → @slack/bolt/node_modules/get-intrinsic}/.eslintrc +0 -0
  842. /package/node_modules/{get-intrinsic → @slack/bolt/node_modules/get-intrinsic}/.github/FUNDING.yml +0 -0
  843. /package/node_modules/{get-intrinsic → @slack/bolt/node_modules/get-intrinsic}/.nycrc +0 -0
  844. /package/node_modules/{get-intrinsic → @slack/bolt/node_modules/get-intrinsic}/CHANGELOG.md +0 -0
  845. /package/node_modules/{get-intrinsic → @slack/bolt/node_modules/get-intrinsic}/LICENSE +0 -0
  846. /package/node_modules/{get-intrinsic → @slack/bolt/node_modules/get-intrinsic}/README.md +0 -0
  847. /package/node_modules/{get-intrinsic → @slack/bolt/node_modules/get-intrinsic}/index.js +0 -0
  848. /package/node_modules/{get-intrinsic → @slack/bolt/node_modules/get-intrinsic}/package.json +0 -0
  849. /package/node_modules/{get-intrinsic → @slack/bolt/node_modules/get-intrinsic}/test/GetIntrinsic.js +0 -0
  850. /package/node_modules/{get-proto → @slack/bolt/node_modules/get-proto}/.eslintrc +0 -0
  851. /package/node_modules/{get-proto → @slack/bolt/node_modules/get-proto}/.github/FUNDING.yml +0 -0
  852. /package/node_modules/{get-proto → @slack/bolt/node_modules/get-proto}/.nycrc +0 -0
  853. /package/node_modules/{get-proto → @slack/bolt/node_modules/get-proto}/CHANGELOG.md +0 -0
  854. /package/node_modules/{get-proto → @slack/bolt/node_modules/get-proto}/LICENSE +0 -0
  855. /package/node_modules/{get-proto → @slack/bolt/node_modules/get-proto}/Object.getPrototypeOf.d.ts +0 -0
  856. /package/node_modules/{get-proto → @slack/bolt/node_modules/get-proto}/Object.getPrototypeOf.js +0 -0
  857. /package/node_modules/{get-proto → @slack/bolt/node_modules/get-proto}/README.md +0 -0
  858. /package/node_modules/{get-proto → @slack/bolt/node_modules/get-proto}/Reflect.getPrototypeOf.d.ts +0 -0
  859. /package/node_modules/{get-proto → @slack/bolt/node_modules/get-proto}/Reflect.getPrototypeOf.js +0 -0
  860. /package/node_modules/{get-proto → @slack/bolt/node_modules/get-proto}/index.d.ts +0 -0
  861. /package/node_modules/{get-proto → @slack/bolt/node_modules/get-proto}/index.js +0 -0
  862. /package/node_modules/{get-proto → @slack/bolt/node_modules/get-proto}/package.json +0 -0
  863. /package/node_modules/{get-proto → @slack/bolt/node_modules/get-proto}/test/index.js +0 -0
  864. /package/node_modules/{get-proto → @slack/bolt/node_modules/get-proto}/tsconfig.json +0 -0
  865. /package/node_modules/{gopd → @slack/bolt/node_modules/gopd}/.eslintrc +0 -0
  866. /package/node_modules/{gopd → @slack/bolt/node_modules/gopd}/.github/FUNDING.yml +0 -0
  867. /package/node_modules/{gopd → @slack/bolt/node_modules/gopd}/CHANGELOG.md +0 -0
  868. /package/node_modules/{gopd → @slack/bolt/node_modules/gopd}/LICENSE +0 -0
  869. /package/node_modules/{gopd → @slack/bolt/node_modules/gopd}/README.md +0 -0
  870. /package/node_modules/{gopd → @slack/bolt/node_modules/gopd}/gOPD.d.ts +0 -0
  871. /package/node_modules/{gopd → @slack/bolt/node_modules/gopd}/gOPD.js +0 -0
  872. /package/node_modules/{gopd → @slack/bolt/node_modules/gopd}/index.d.ts +0 -0
  873. /package/node_modules/{gopd → @slack/bolt/node_modules/gopd}/index.js +0 -0
  874. /package/node_modules/{gopd → @slack/bolt/node_modules/gopd}/package.json +0 -0
  875. /package/node_modules/{gopd → @slack/bolt/node_modules/gopd}/test/index.js +0 -0
  876. /package/node_modules/{gopd → @slack/bolt/node_modules/gopd}/tsconfig.json +0 -0
  877. /package/node_modules/{has-symbols → @slack/bolt/node_modules/has-symbols}/.eslintrc +0 -0
  878. /package/node_modules/{has-symbols → @slack/bolt/node_modules/has-symbols}/.github/FUNDING.yml +0 -0
  879. /package/node_modules/{has-symbols → @slack/bolt/node_modules/has-symbols}/.nycrc +0 -0
  880. /package/node_modules/{has-symbols → @slack/bolt/node_modules/has-symbols}/CHANGELOG.md +0 -0
  881. /package/node_modules/{has-symbols → @slack/bolt/node_modules/has-symbols}/LICENSE +0 -0
  882. /package/node_modules/{has-symbols → @slack/bolt/node_modules/has-symbols}/README.md +0 -0
  883. /package/node_modules/{has-symbols → @slack/bolt/node_modules/has-symbols}/index.d.ts +0 -0
  884. /package/node_modules/{has-symbols → @slack/bolt/node_modules/has-symbols}/index.js +0 -0
  885. /package/node_modules/{has-symbols → @slack/bolt/node_modules/has-symbols}/package.json +0 -0
  886. /package/node_modules/{has-symbols → @slack/bolt/node_modules/has-symbols}/shams.d.ts +0 -0
  887. /package/node_modules/{has-symbols → @slack/bolt/node_modules/has-symbols}/shams.js +0 -0
  888. /package/node_modules/{has-symbols → @slack/bolt/node_modules/has-symbols}/test/index.js +0 -0
  889. /package/node_modules/{has-symbols → @slack/bolt/node_modules/has-symbols}/test/shams/core-js.js +0 -0
  890. /package/node_modules/{has-symbols → @slack/bolt/node_modules/has-symbols}/test/shams/get-own-property-symbols.js +0 -0
  891. /package/node_modules/{has-symbols → @slack/bolt/node_modules/has-symbols}/test/tests.js +0 -0
  892. /package/node_modules/{has-symbols → @slack/bolt/node_modules/has-symbols}/tsconfig.json +0 -0
  893. /package/node_modules/{hasown → @slack/bolt/node_modules/hasown}/.github/FUNDING.yml +0 -0
  894. /package/node_modules/{hasown → @slack/bolt/node_modules/hasown}/.nycrc +0 -0
  895. /package/node_modules/{hasown → @slack/bolt/node_modules/hasown}/CHANGELOG.md +0 -0
  896. /package/node_modules/{hasown → @slack/bolt/node_modules/hasown}/LICENSE +0 -0
  897. /package/node_modules/{hasown → @slack/bolt/node_modules/hasown}/README.md +0 -0
  898. /package/node_modules/{hasown → @slack/bolt/node_modules/hasown}/eslint.config.mjs +0 -0
  899. /package/node_modules/{hasown → @slack/bolt/node_modules/hasown}/index.d.ts +0 -0
  900. /package/node_modules/{hasown → @slack/bolt/node_modules/hasown}/index.js +0 -0
  901. /package/node_modules/{hasown → @slack/bolt/node_modules/hasown}/package.json +0 -0
  902. /package/node_modules/{hasown → @slack/bolt/node_modules/hasown}/tsconfig.json +0 -0
  903. /package/node_modules/{http-errors → @slack/bolt/node_modules/http-errors}/HISTORY.md +0 -0
  904. /package/node_modules/{http-errors → @slack/bolt/node_modules/http-errors}/LICENSE +0 -0
  905. /package/node_modules/{http-errors → @slack/bolt/node_modules/http-errors}/README.md +0 -0
  906. /package/node_modules/{http-errors → @slack/bolt/node_modules/http-errors}/index.js +0 -0
  907. /package/node_modules/{http-errors → @slack/bolt/node_modules/http-errors}/package.json +0 -0
  908. /package/node_modules/{iconv-lite → @slack/bolt/node_modules/iconv-lite}/LICENSE +0 -0
  909. /package/node_modules/{iconv-lite → @slack/bolt/node_modules/iconv-lite}/README.md +0 -0
  910. /package/node_modules/{iconv-lite → @slack/bolt/node_modules/iconv-lite}/encodings/dbcs-codec.js +0 -0
  911. /package/node_modules/{iconv-lite → @slack/bolt/node_modules/iconv-lite}/encodings/dbcs-data.js +0 -0
  912. /package/node_modules/{iconv-lite → @slack/bolt/node_modules/iconv-lite}/encodings/index.js +0 -0
  913. /package/node_modules/{iconv-lite → @slack/bolt/node_modules/iconv-lite}/encodings/internal.js +0 -0
  914. /package/node_modules/{iconv-lite → @slack/bolt/node_modules/iconv-lite}/encodings/sbcs-codec.js +0 -0
  915. /package/node_modules/{iconv-lite → @slack/bolt/node_modules/iconv-lite}/encodings/sbcs-data-generated.js +0 -0
  916. /package/node_modules/{iconv-lite → @slack/bolt/node_modules/iconv-lite}/encodings/sbcs-data.js +0 -0
  917. /package/node_modules/{iconv-lite → @slack/bolt/node_modules/iconv-lite}/encodings/tables/big5-added.json +0 -0
  918. /package/node_modules/{iconv-lite → @slack/bolt/node_modules/iconv-lite}/encodings/tables/cp936.json +0 -0
  919. /package/node_modules/{iconv-lite → @slack/bolt/node_modules/iconv-lite}/encodings/tables/cp949.json +0 -0
  920. /package/node_modules/{iconv-lite → @slack/bolt/node_modules/iconv-lite}/encodings/tables/cp950.json +0 -0
  921. /package/node_modules/{iconv-lite → @slack/bolt/node_modules/iconv-lite}/encodings/tables/eucjp.json +0 -0
  922. /package/node_modules/{iconv-lite → @slack/bolt/node_modules/iconv-lite}/encodings/tables/gb18030-ranges.json +0 -0
  923. /package/node_modules/{iconv-lite → @slack/bolt/node_modules/iconv-lite}/encodings/tables/gbk-added.json +0 -0
  924. /package/node_modules/{iconv-lite → @slack/bolt/node_modules/iconv-lite}/encodings/tables/shiftjis.json +0 -0
  925. /package/node_modules/{iconv-lite → @slack/bolt/node_modules/iconv-lite}/encodings/utf16.js +0 -0
  926. /package/node_modules/{iconv-lite → @slack/bolt/node_modules/iconv-lite}/encodings/utf32.js +0 -0
  927. /package/node_modules/{iconv-lite → @slack/bolt/node_modules/iconv-lite}/encodings/utf7.js +0 -0
  928. /package/node_modules/{iconv-lite → @slack/bolt/node_modules/iconv-lite}/lib/bom-handling.js +0 -0
  929. /package/node_modules/{iconv-lite → @slack/bolt/node_modules/iconv-lite}/lib/helpers/merge-exports.js +0 -0
  930. /package/node_modules/{iconv-lite → @slack/bolt/node_modules/iconv-lite}/lib/index.d.ts +0 -0
  931. /package/node_modules/{iconv-lite → @slack/bolt/node_modules/iconv-lite}/lib/index.js +0 -0
  932. /package/node_modules/{iconv-lite → @slack/bolt/node_modules/iconv-lite}/lib/streams.js +0 -0
  933. /package/node_modules/{iconv-lite → @slack/bolt/node_modules/iconv-lite}/package.json +0 -0
  934. /package/node_modules/{iconv-lite → @slack/bolt/node_modules/iconv-lite}/types/encodings.d.ts +0 -0
  935. /package/node_modules/{inherits → @slack/bolt/node_modules/inherits}/LICENSE +0 -0
  936. /package/node_modules/{inherits → @slack/bolt/node_modules/inherits}/README.md +0 -0
  937. /package/node_modules/{inherits → @slack/bolt/node_modules/inherits}/inherits.js +0 -0
  938. /package/node_modules/{inherits → @slack/bolt/node_modules/inherits}/inherits_browser.js +0 -0
  939. /package/node_modules/{inherits → @slack/bolt/node_modules/inherits}/package.json +0 -0
  940. /package/node_modules/{ipaddr.js → @slack/bolt/node_modules/ipaddr.js}/LICENSE +0 -0
  941. /package/node_modules/{ipaddr.js → @slack/bolt/node_modules/ipaddr.js}/README.md +0 -0
  942. /package/node_modules/{ipaddr.js → @slack/bolt/node_modules/ipaddr.js}/ipaddr.min.js +0 -0
  943. /package/node_modules/{ipaddr.js → @slack/bolt/node_modules/ipaddr.js}/lib/ipaddr.js +0 -0
  944. /package/node_modules/{ipaddr.js → @slack/bolt/node_modules/ipaddr.js}/lib/ipaddr.js.d.ts +0 -0
  945. /package/node_modules/{ipaddr.js → @slack/bolt/node_modules/ipaddr.js}/package.json +0 -0
  946. /package/node_modules/{is-promise → @slack/bolt/node_modules/is-promise}/LICENSE +0 -0
  947. /package/node_modules/{is-promise → @slack/bolt/node_modules/is-promise}/index.d.ts +0 -0
  948. /package/node_modules/{is-promise → @slack/bolt/node_modules/is-promise}/index.js +0 -0
  949. /package/node_modules/{is-promise → @slack/bolt/node_modules/is-promise}/index.mjs +0 -0
  950. /package/node_modules/{is-promise → @slack/bolt/node_modules/is-promise}/package.json +0 -0
  951. /package/node_modules/{is-promise → @slack/bolt/node_modules/is-promise}/readme.md +0 -0
  952. /package/node_modules/{jsonwebtoken → @slack/bolt/node_modules/jsonwebtoken}/LICENSE +0 -0
  953. /package/node_modules/{jsonwebtoken → @slack/bolt/node_modules/jsonwebtoken}/README.md +0 -0
  954. /package/node_modules/{jsonwebtoken → @slack/bolt/node_modules/jsonwebtoken}/decode.js +0 -0
  955. /package/node_modules/{jsonwebtoken → @slack/bolt/node_modules/jsonwebtoken}/index.js +0 -0
  956. /package/node_modules/{jsonwebtoken → @slack/bolt/node_modules/jsonwebtoken}/lib/JsonWebTokenError.js +0 -0
  957. /package/node_modules/{jsonwebtoken → @slack/bolt/node_modules/jsonwebtoken}/lib/NotBeforeError.js +0 -0
  958. /package/node_modules/{jsonwebtoken → @slack/bolt/node_modules/jsonwebtoken}/lib/TokenExpiredError.js +0 -0
  959. /package/node_modules/{jsonwebtoken → @slack/bolt/node_modules/jsonwebtoken}/lib/asymmetricKeyDetailsSupported.js +0 -0
  960. /package/node_modules/{jsonwebtoken → @slack/bolt/node_modules/jsonwebtoken}/lib/psSupported.js +0 -0
  961. /package/node_modules/{jsonwebtoken → @slack/bolt/node_modules/jsonwebtoken}/lib/rsaPssKeyDetailsSupported.js +0 -0
  962. /package/node_modules/{jsonwebtoken → @slack/bolt/node_modules/jsonwebtoken}/lib/timespan.js +0 -0
  963. /package/node_modules/{jsonwebtoken → @slack/bolt/node_modules/jsonwebtoken}/lib/validateAsymmetricKey.js +0 -0
  964. /package/node_modules/{jsonwebtoken → @slack/bolt/node_modules/jsonwebtoken}/package.json +0 -0
  965. /package/node_modules/{jsonwebtoken → @slack/bolt/node_modules/jsonwebtoken}/sign.js +0 -0
  966. /package/node_modules/{jsonwebtoken → @slack/bolt/node_modules/jsonwebtoken}/verify.js +0 -0
  967. /package/node_modules/{jwa → @slack/bolt/node_modules/jwa}/LICENSE +0 -0
  968. /package/node_modules/{jwa → @slack/bolt/node_modules/jwa}/README.md +0 -0
  969. /package/node_modules/{jwa → @slack/bolt/node_modules/jwa}/index.js +0 -0
  970. /package/node_modules/{jwa → @slack/bolt/node_modules/jwa}/opslevel.yml +0 -0
  971. /package/node_modules/{jwa → @slack/bolt/node_modules/jwa}/package.json +0 -0
  972. /package/node_modules/{jws → @slack/bolt/node_modules/jws}/CHANGELOG.md +0 -0
  973. /package/node_modules/{jws → @slack/bolt/node_modules/jws}/LICENSE +0 -0
  974. /package/node_modules/{jws → @slack/bolt/node_modules/jws}/index.js +0 -0
  975. /package/node_modules/{jws → @slack/bolt/node_modules/jws}/lib/data-stream.js +0 -0
  976. /package/node_modules/{jws → @slack/bolt/node_modules/jws}/lib/sign-stream.js +0 -0
  977. /package/node_modules/{jws → @slack/bolt/node_modules/jws}/lib/tostring.js +0 -0
  978. /package/node_modules/{jws → @slack/bolt/node_modules/jws}/lib/verify-stream.js +0 -0
  979. /package/node_modules/{jws → @slack/bolt/node_modules/jws}/opslevel.yml +0 -0
  980. /package/node_modules/{jws → @slack/bolt/node_modules/jws}/package.json +0 -0
  981. /package/node_modules/{jws → @slack/bolt/node_modules/jws}/readme.md +0 -0
  982. /package/node_modules/{lodash.includes → @slack/bolt/node_modules/lodash.includes}/LICENSE +0 -0
  983. /package/node_modules/{lodash.includes → @slack/bolt/node_modules/lodash.includes}/README.md +0 -0
  984. /package/node_modules/{lodash.includes → @slack/bolt/node_modules/lodash.includes}/index.js +0 -0
  985. /package/node_modules/{lodash.includes → @slack/bolt/node_modules/lodash.includes}/package.json +0 -0
  986. /package/node_modules/{lodash.isboolean → @slack/bolt/node_modules/lodash.isboolean}/LICENSE +0 -0
  987. /package/node_modules/{lodash.isboolean → @slack/bolt/node_modules/lodash.isboolean}/README.md +0 -0
  988. /package/node_modules/{lodash.isboolean → @slack/bolt/node_modules/lodash.isboolean}/index.js +0 -0
  989. /package/node_modules/{lodash.isboolean → @slack/bolt/node_modules/lodash.isboolean}/package.json +0 -0
  990. /package/node_modules/{lodash.isinteger → @slack/bolt/node_modules/lodash.isinteger}/LICENSE +0 -0
  991. /package/node_modules/{lodash.isinteger → @slack/bolt/node_modules/lodash.isinteger}/README.md +0 -0
  992. /package/node_modules/{lodash.isinteger → @slack/bolt/node_modules/lodash.isinteger}/index.js +0 -0
  993. /package/node_modules/{lodash.isinteger → @slack/bolt/node_modules/lodash.isinteger}/package.json +0 -0
  994. /package/node_modules/{lodash.isnumber → @slack/bolt/node_modules/lodash.isnumber}/LICENSE +0 -0
  995. /package/node_modules/{lodash.isnumber → @slack/bolt/node_modules/lodash.isnumber}/README.md +0 -0
  996. /package/node_modules/{lodash.isnumber → @slack/bolt/node_modules/lodash.isnumber}/index.js +0 -0
  997. /package/node_modules/{lodash.isnumber → @slack/bolt/node_modules/lodash.isnumber}/package.json +0 -0
  998. /package/node_modules/{lodash.isplainobject → @slack/bolt/node_modules/lodash.isplainobject}/LICENSE +0 -0
  999. /package/node_modules/{lodash.isplainobject → @slack/bolt/node_modules/lodash.isplainobject}/README.md +0 -0
  1000. /package/node_modules/{lodash.isplainobject → @slack/bolt/node_modules/lodash.isplainobject}/index.js +0 -0
  1001. /package/node_modules/{lodash.isplainobject → @slack/bolt/node_modules/lodash.isplainobject}/package.json +0 -0
  1002. /package/node_modules/{lodash.isstring → @slack/bolt/node_modules/lodash.isstring}/LICENSE +0 -0
  1003. /package/node_modules/{lodash.isstring → @slack/bolt/node_modules/lodash.isstring}/README.md +0 -0
  1004. /package/node_modules/{lodash.isstring → @slack/bolt/node_modules/lodash.isstring}/index.js +0 -0
  1005. /package/node_modules/{lodash.isstring → @slack/bolt/node_modules/lodash.isstring}/package.json +0 -0
  1006. /package/node_modules/{lodash.once → @slack/bolt/node_modules/lodash.once}/LICENSE +0 -0
  1007. /package/node_modules/{lodash.once → @slack/bolt/node_modules/lodash.once}/README.md +0 -0
  1008. /package/node_modules/{lodash.once → @slack/bolt/node_modules/lodash.once}/index.js +0 -0
  1009. /package/node_modules/{lodash.once → @slack/bolt/node_modules/lodash.once}/package.json +0 -0
  1010. /package/node_modules/{math-intrinsics → @slack/bolt/node_modules/math-intrinsics}/.eslintrc +0 -0
  1011. /package/node_modules/{math-intrinsics → @slack/bolt/node_modules/math-intrinsics}/.github/FUNDING.yml +0 -0
  1012. /package/node_modules/{math-intrinsics → @slack/bolt/node_modules/math-intrinsics}/CHANGELOG.md +0 -0
  1013. /package/node_modules/{math-intrinsics → @slack/bolt/node_modules/math-intrinsics}/LICENSE +0 -0
  1014. /package/node_modules/{math-intrinsics → @slack/bolt/node_modules/math-intrinsics}/README.md +0 -0
  1015. /package/node_modules/{math-intrinsics → @slack/bolt/node_modules/math-intrinsics}/abs.d.ts +0 -0
  1016. /package/node_modules/{math-intrinsics → @slack/bolt/node_modules/math-intrinsics}/abs.js +0 -0
  1017. /package/node_modules/{math-intrinsics → @slack/bolt/node_modules/math-intrinsics}/constants/maxArrayLength.d.ts +0 -0
  1018. /package/node_modules/{math-intrinsics → @slack/bolt/node_modules/math-intrinsics}/constants/maxArrayLength.js +0 -0
  1019. /package/node_modules/{math-intrinsics → @slack/bolt/node_modules/math-intrinsics}/constants/maxSafeInteger.d.ts +0 -0
  1020. /package/node_modules/{math-intrinsics → @slack/bolt/node_modules/math-intrinsics}/constants/maxSafeInteger.js +0 -0
  1021. /package/node_modules/{math-intrinsics → @slack/bolt/node_modules/math-intrinsics}/constants/maxValue.d.ts +0 -0
  1022. /package/node_modules/{math-intrinsics → @slack/bolt/node_modules/math-intrinsics}/constants/maxValue.js +0 -0
  1023. /package/node_modules/{math-intrinsics → @slack/bolt/node_modules/math-intrinsics}/floor.d.ts +0 -0
  1024. /package/node_modules/{math-intrinsics → @slack/bolt/node_modules/math-intrinsics}/floor.js +0 -0
  1025. /package/node_modules/{math-intrinsics → @slack/bolt/node_modules/math-intrinsics}/isFinite.d.ts +0 -0
  1026. /package/node_modules/{math-intrinsics → @slack/bolt/node_modules/math-intrinsics}/isFinite.js +0 -0
  1027. /package/node_modules/{math-intrinsics → @slack/bolt/node_modules/math-intrinsics}/isInteger.d.ts +0 -0
  1028. /package/node_modules/{math-intrinsics → @slack/bolt/node_modules/math-intrinsics}/isInteger.js +0 -0
  1029. /package/node_modules/{math-intrinsics → @slack/bolt/node_modules/math-intrinsics}/isNaN.d.ts +0 -0
  1030. /package/node_modules/{math-intrinsics → @slack/bolt/node_modules/math-intrinsics}/isNaN.js +0 -0
  1031. /package/node_modules/{math-intrinsics → @slack/bolt/node_modules/math-intrinsics}/isNegativeZero.d.ts +0 -0
  1032. /package/node_modules/{math-intrinsics → @slack/bolt/node_modules/math-intrinsics}/isNegativeZero.js +0 -0
  1033. /package/node_modules/{math-intrinsics → @slack/bolt/node_modules/math-intrinsics}/max.d.ts +0 -0
  1034. /package/node_modules/{math-intrinsics → @slack/bolt/node_modules/math-intrinsics}/max.js +0 -0
  1035. /package/node_modules/{math-intrinsics → @slack/bolt/node_modules/math-intrinsics}/min.d.ts +0 -0
  1036. /package/node_modules/{math-intrinsics → @slack/bolt/node_modules/math-intrinsics}/min.js +0 -0
  1037. /package/node_modules/{math-intrinsics → @slack/bolt/node_modules/math-intrinsics}/mod.d.ts +0 -0
  1038. /package/node_modules/{math-intrinsics → @slack/bolt/node_modules/math-intrinsics}/mod.js +0 -0
  1039. /package/node_modules/{math-intrinsics → @slack/bolt/node_modules/math-intrinsics}/package.json +0 -0
  1040. /package/node_modules/{math-intrinsics → @slack/bolt/node_modules/math-intrinsics}/pow.d.ts +0 -0
  1041. /package/node_modules/{math-intrinsics → @slack/bolt/node_modules/math-intrinsics}/pow.js +0 -0
  1042. /package/node_modules/{math-intrinsics → @slack/bolt/node_modules/math-intrinsics}/round.d.ts +0 -0
  1043. /package/node_modules/{math-intrinsics → @slack/bolt/node_modules/math-intrinsics}/round.js +0 -0
  1044. /package/node_modules/{math-intrinsics → @slack/bolt/node_modules/math-intrinsics}/sign.d.ts +0 -0
  1045. /package/node_modules/{math-intrinsics → @slack/bolt/node_modules/math-intrinsics}/sign.js +0 -0
  1046. /package/node_modules/{math-intrinsics → @slack/bolt/node_modules/math-intrinsics}/test/index.js +0 -0
  1047. /package/node_modules/{math-intrinsics → @slack/bolt/node_modules/math-intrinsics}/tsconfig.json +0 -0
  1048. /package/node_modules/{media-typer → @slack/bolt/node_modules/media-typer}/HISTORY.md +0 -0
  1049. /package/node_modules/{media-typer → @slack/bolt/node_modules/media-typer}/LICENSE +0 -0
  1050. /package/node_modules/{merge-descriptors → @slack/bolt/node_modules/merge-descriptors}/index.d.ts +0 -0
  1051. /package/node_modules/{merge-descriptors → @slack/bolt/node_modules/merge-descriptors}/index.js +0 -0
  1052. /package/node_modules/{merge-descriptors → @slack/bolt/node_modules/merge-descriptors}/license +0 -0
  1053. /package/node_modules/{merge-descriptors → @slack/bolt/node_modules/merge-descriptors}/package.json +0 -0
  1054. /package/node_modules/{merge-descriptors → @slack/bolt/node_modules/merge-descriptors}/readme.md +0 -0
  1055. /package/node_modules/{mime-db → @slack/bolt/node_modules/mime-db}/HISTORY.md +0 -0
  1056. /package/node_modules/{mime-db → @slack/bolt/node_modules/mime-db}/LICENSE +0 -0
  1057. /package/node_modules/{mime-db → @slack/bolt/node_modules/mime-db}/README.md +0 -0
  1058. /package/node_modules/{mime-db → @slack/bolt/node_modules/mime-db}/db.json +0 -0
  1059. /package/node_modules/{mime-db → @slack/bolt/node_modules/mime-db}/index.js +0 -0
  1060. /package/node_modules/{mime-db → @slack/bolt/node_modules/mime-db}/package.json +0 -0
  1061. /package/node_modules/{mime-types → @slack/bolt/node_modules/mime-types}/HISTORY.md +0 -0
  1062. /package/node_modules/{mime-types → @slack/bolt/node_modules/mime-types}/LICENSE +0 -0
  1063. /package/node_modules/{mime-types → @slack/bolt/node_modules/mime-types}/README.md +0 -0
  1064. /package/node_modules/{mime-types → @slack/bolt/node_modules/mime-types}/index.js +0 -0
  1065. /package/node_modules/{mime-types → @slack/bolt/node_modules/mime-types}/mimeScore.js +0 -0
  1066. /package/node_modules/{mime-types → @slack/bolt/node_modules/mime-types}/package.json +0 -0
  1067. /package/node_modules/{ms → @slack/bolt/node_modules/ms}/index.js +0 -0
  1068. /package/node_modules/{ms → @slack/bolt/node_modules/ms}/license.md +0 -0
  1069. /package/node_modules/{ms → @slack/bolt/node_modules/ms}/package.json +0 -0
  1070. /package/node_modules/{ms → @slack/bolt/node_modules/ms}/readme.md +0 -0
  1071. /package/node_modules/{negotiator → @slack/bolt/node_modules/negotiator}/HISTORY.md +0 -0
  1072. /package/node_modules/{negotiator → @slack/bolt/node_modules/negotiator}/LICENSE +0 -0
  1073. /package/node_modules/{negotiator → @slack/bolt/node_modules/negotiator}/README.md +0 -0
  1074. /package/node_modules/{negotiator → @slack/bolt/node_modules/negotiator}/index.js +0 -0
  1075. /package/node_modules/{negotiator → @slack/bolt/node_modules/negotiator}/lib/charset.js +0 -0
  1076. /package/node_modules/{negotiator → @slack/bolt/node_modules/negotiator}/lib/encoding.js +0 -0
  1077. /package/node_modules/{negotiator → @slack/bolt/node_modules/negotiator}/lib/language.js +0 -0
  1078. /package/node_modules/{negotiator → @slack/bolt/node_modules/negotiator}/lib/mediaType.js +0 -0
  1079. /package/node_modules/{negotiator → @slack/bolt/node_modules/negotiator}/package.json +0 -0
  1080. /package/node_modules/{object-inspect → @slack/bolt/node_modules/object-inspect}/.eslintrc +0 -0
  1081. /package/node_modules/{object-inspect → @slack/bolt/node_modules/object-inspect}/.github/FUNDING.yml +0 -0
  1082. /package/node_modules/{object-inspect → @slack/bolt/node_modules/object-inspect}/.nycrc +0 -0
  1083. /package/node_modules/{object-inspect → @slack/bolt/node_modules/object-inspect}/CHANGELOG.md +0 -0
  1084. /package/node_modules/{object-inspect → @slack/bolt/node_modules/object-inspect}/LICENSE +0 -0
  1085. /package/node_modules/{object-inspect → @slack/bolt/node_modules/object-inspect}/example/all.js +0 -0
  1086. /package/node_modules/{object-inspect → @slack/bolt/node_modules/object-inspect}/example/circular.js +0 -0
  1087. /package/node_modules/{object-inspect → @slack/bolt/node_modules/object-inspect}/example/fn.js +0 -0
  1088. /package/node_modules/{object-inspect → @slack/bolt/node_modules/object-inspect}/example/inspect.js +0 -0
  1089. /package/node_modules/{object-inspect → @slack/bolt/node_modules/object-inspect}/index.js +0 -0
  1090. /package/node_modules/{object-inspect → @slack/bolt/node_modules/object-inspect}/package-support.json +0 -0
  1091. /package/node_modules/{object-inspect → @slack/bolt/node_modules/object-inspect}/package.json +0 -0
  1092. /package/node_modules/{object-inspect → @slack/bolt/node_modules/object-inspect}/readme.markdown +0 -0
  1093. /package/node_modules/{object-inspect → @slack/bolt/node_modules/object-inspect}/test/bigint.js +0 -0
  1094. /package/node_modules/{object-inspect → @slack/bolt/node_modules/object-inspect}/test/browser/dom.js +0 -0
  1095. /package/node_modules/{object-inspect → @slack/bolt/node_modules/object-inspect}/test/circular.js +0 -0
  1096. /package/node_modules/{object-inspect → @slack/bolt/node_modules/object-inspect}/test/deep.js +0 -0
  1097. /package/node_modules/{object-inspect → @slack/bolt/node_modules/object-inspect}/test/element.js +0 -0
  1098. /package/node_modules/{object-inspect → @slack/bolt/node_modules/object-inspect}/test/err.js +0 -0
  1099. /package/node_modules/{object-inspect → @slack/bolt/node_modules/object-inspect}/test/fakes.js +0 -0
  1100. /package/node_modules/{object-inspect → @slack/bolt/node_modules/object-inspect}/test/fn.js +0 -0
  1101. /package/node_modules/{object-inspect → @slack/bolt/node_modules/object-inspect}/test/global.js +0 -0
  1102. /package/node_modules/{object-inspect → @slack/bolt/node_modules/object-inspect}/test/has.js +0 -0
  1103. /package/node_modules/{object-inspect → @slack/bolt/node_modules/object-inspect}/test/holes.js +0 -0
  1104. /package/node_modules/{object-inspect → @slack/bolt/node_modules/object-inspect}/test/indent-option.js +0 -0
  1105. /package/node_modules/{object-inspect → @slack/bolt/node_modules/object-inspect}/test/inspect.js +0 -0
  1106. /package/node_modules/{object-inspect → @slack/bolt/node_modules/object-inspect}/test/lowbyte.js +0 -0
  1107. /package/node_modules/{object-inspect → @slack/bolt/node_modules/object-inspect}/test/number.js +0 -0
  1108. /package/node_modules/{object-inspect → @slack/bolt/node_modules/object-inspect}/test/quoteStyle.js +0 -0
  1109. /package/node_modules/{object-inspect → @slack/bolt/node_modules/object-inspect}/test/toStringTag.js +0 -0
  1110. /package/node_modules/{object-inspect → @slack/bolt/node_modules/object-inspect}/test/undef.js +0 -0
  1111. /package/node_modules/{object-inspect → @slack/bolt/node_modules/object-inspect}/test/values.js +0 -0
  1112. /package/node_modules/{object-inspect → @slack/bolt/node_modules/object-inspect}/test-core-js.js +0 -0
  1113. /package/node_modules/{object-inspect → @slack/bolt/node_modules/object-inspect}/util.inspect.js +0 -0
  1114. /package/node_modules/{on-finished → @slack/bolt/node_modules/on-finished}/HISTORY.md +0 -0
  1115. /package/node_modules/{on-finished → @slack/bolt/node_modules/on-finished}/LICENSE +0 -0
  1116. /package/node_modules/{on-finished → @slack/bolt/node_modules/on-finished}/README.md +0 -0
  1117. /package/node_modules/{on-finished → @slack/bolt/node_modules/on-finished}/index.js +0 -0
  1118. /package/node_modules/{on-finished → @slack/bolt/node_modules/on-finished}/package.json +0 -0
  1119. /package/node_modules/{once → @slack/bolt/node_modules/once}/LICENSE +0 -0
  1120. /package/node_modules/{once → @slack/bolt/node_modules/once}/README.md +0 -0
  1121. /package/node_modules/{once → @slack/bolt/node_modules/once}/once.js +0 -0
  1122. /package/node_modules/{once → @slack/bolt/node_modules/once}/package.json +0 -0
  1123. /package/node_modules/{parseurl → @slack/bolt/node_modules/parseurl}/HISTORY.md +0 -0
  1124. /package/node_modules/{parseurl → @slack/bolt/node_modules/parseurl}/LICENSE +0 -0
  1125. /package/node_modules/{parseurl → @slack/bolt/node_modules/parseurl}/README.md +0 -0
  1126. /package/node_modules/{parseurl → @slack/bolt/node_modules/parseurl}/index.js +0 -0
  1127. /package/node_modules/{parseurl → @slack/bolt/node_modules/parseurl}/package.json +0 -0
  1128. /package/node_modules/{path-to-regexp → @slack/bolt/node_modules/path-to-regexp}/LICENSE +0 -0
  1129. /package/node_modules/{path-to-regexp → @slack/bolt/node_modules/path-to-regexp}/Readme.md +0 -0
  1130. /package/node_modules/{path-to-regexp → @slack/bolt/node_modules/path-to-regexp}/dist/index.d.ts +0 -0
  1131. /package/node_modules/{path-to-regexp → @slack/bolt/node_modules/path-to-regexp}/dist/index.js +0 -0
  1132. /package/node_modules/{path-to-regexp → @slack/bolt/node_modules/path-to-regexp}/dist/index.js.map +0 -0
  1133. /package/node_modules/{path-to-regexp → @slack/bolt/node_modules/path-to-regexp}/package.json +0 -0
  1134. /package/node_modules/{proxy-addr → @slack/bolt/node_modules/proxy-addr}/HISTORY.md +0 -0
  1135. /package/node_modules/{proxy-addr → @slack/bolt/node_modules/proxy-addr}/LICENSE +0 -0
  1136. /package/node_modules/{proxy-addr → @slack/bolt/node_modules/proxy-addr}/README.md +0 -0
  1137. /package/node_modules/{proxy-addr → @slack/bolt/node_modules/proxy-addr}/index.js +0 -0
  1138. /package/node_modules/{proxy-addr → @slack/bolt/node_modules/proxy-addr}/package.json +0 -0
  1139. /package/node_modules/{qs → @slack/bolt/node_modules/qs}/.editorconfig +0 -0
  1140. /package/node_modules/{qs → @slack/bolt/node_modules/qs}/.github/FUNDING.yml +0 -0
  1141. /package/node_modules/{qs → @slack/bolt/node_modules/qs}/.github/SECURITY.md +0 -0
  1142. /package/node_modules/{qs → @slack/bolt/node_modules/qs}/.github/THREAT_MODEL.md +0 -0
  1143. /package/node_modules/{qs → @slack/bolt/node_modules/qs}/.nycrc +0 -0
  1144. /package/node_modules/{qs → @slack/bolt/node_modules/qs}/CHANGELOG.md +0 -0
  1145. /package/node_modules/{qs → @slack/bolt/node_modules/qs}/LICENSE.md +0 -0
  1146. /package/node_modules/{qs → @slack/bolt/node_modules/qs}/README.md +0 -0
  1147. /package/node_modules/{qs → @slack/bolt/node_modules/qs}/dist/qs.js +0 -0
  1148. /package/node_modules/{qs → @slack/bolt/node_modules/qs}/eslint.config.mjs +0 -0
  1149. /package/node_modules/{qs → @slack/bolt/node_modules/qs}/lib/formats.js +0 -0
  1150. /package/node_modules/{qs → @slack/bolt/node_modules/qs}/lib/index.js +0 -0
  1151. /package/node_modules/{qs → @slack/bolt/node_modules/qs}/lib/parse.js +0 -0
  1152. /package/node_modules/{qs → @slack/bolt/node_modules/qs}/lib/stringify.js +0 -0
  1153. /package/node_modules/{qs → @slack/bolt/node_modules/qs}/lib/utils.js +0 -0
  1154. /package/node_modules/{qs → @slack/bolt/node_modules/qs}/package.json +0 -0
  1155. /package/node_modules/{qs → @slack/bolt/node_modules/qs}/test/empty-keys-cases.js +0 -0
  1156. /package/node_modules/{qs → @slack/bolt/node_modules/qs}/test/parse.js +0 -0
  1157. /package/node_modules/{qs → @slack/bolt/node_modules/qs}/test/stringify.js +0 -0
  1158. /package/node_modules/{qs → @slack/bolt/node_modules/qs}/test/utils.js +0 -0
  1159. /package/node_modules/{range-parser → @slack/bolt/node_modules/range-parser}/HISTORY.md +0 -0
  1160. /package/node_modules/{range-parser → @slack/bolt/node_modules/range-parser}/LICENSE +0 -0
  1161. /package/node_modules/{range-parser → @slack/bolt/node_modules/range-parser}/README.md +0 -0
  1162. /package/node_modules/{range-parser → @slack/bolt/node_modules/range-parser}/index.js +0 -0
  1163. /package/node_modules/{range-parser → @slack/bolt/node_modules/range-parser}/package.json +0 -0
  1164. /package/node_modules/{raw-body → @slack/bolt/node_modules/raw-body}/LICENSE +0 -0
  1165. /package/node_modules/{raw-body → @slack/bolt/node_modules/raw-body}/README.md +0 -0
  1166. /package/node_modules/{raw-body → @slack/bolt/node_modules/raw-body}/index.d.ts +0 -0
  1167. /package/node_modules/{raw-body → @slack/bolt/node_modules/raw-body}/index.js +0 -0
  1168. /package/node_modules/{raw-body → @slack/bolt/node_modules/raw-body}/package.json +0 -0
  1169. /package/node_modules/{router → @slack/bolt/node_modules/router}/HISTORY.md +0 -0
  1170. /package/node_modules/{router → @slack/bolt/node_modules/router}/LICENSE +0 -0
  1171. /package/node_modules/{router → @slack/bolt/node_modules/router}/README.md +0 -0
  1172. /package/node_modules/{router → @slack/bolt/node_modules/router}/index.js +0 -0
  1173. /package/node_modules/{router → @slack/bolt/node_modules/router}/lib/layer.js +0 -0
  1174. /package/node_modules/{router → @slack/bolt/node_modules/router}/lib/route.js +0 -0
  1175. /package/node_modules/{router → @slack/bolt/node_modules/router}/package.json +0 -0
  1176. /package/node_modules/{safe-buffer → @slack/bolt/node_modules/safe-buffer}/LICENSE +0 -0
  1177. /package/node_modules/{safe-buffer → @slack/bolt/node_modules/safe-buffer}/README.md +0 -0
  1178. /package/node_modules/{safe-buffer → @slack/bolt/node_modules/safe-buffer}/index.d.ts +0 -0
  1179. /package/node_modules/{safe-buffer → @slack/bolt/node_modules/safe-buffer}/index.js +0 -0
  1180. /package/node_modules/{safe-buffer → @slack/bolt/node_modules/safe-buffer}/package.json +0 -0
  1181. /package/node_modules/{safer-buffer → @slack/bolt/node_modules/safer-buffer}/LICENSE +0 -0
  1182. /package/node_modules/{safer-buffer → @slack/bolt/node_modules/safer-buffer}/Porting-Buffer.md +0 -0
  1183. /package/node_modules/{safer-buffer → @slack/bolt/node_modules/safer-buffer}/Readme.md +0 -0
  1184. /package/node_modules/{safer-buffer → @slack/bolt/node_modules/safer-buffer}/dangerous.js +0 -0
  1185. /package/node_modules/{safer-buffer → @slack/bolt/node_modules/safer-buffer}/package.json +0 -0
  1186. /package/node_modules/{safer-buffer → @slack/bolt/node_modules/safer-buffer}/safer.js +0 -0
  1187. /package/node_modules/{safer-buffer → @slack/bolt/node_modules/safer-buffer}/tests.js +0 -0
  1188. /package/node_modules/{semver → @slack/bolt/node_modules/semver}/LICENSE +0 -0
  1189. /package/node_modules/{semver → @slack/bolt/node_modules/semver}/README.md +0 -0
  1190. /package/node_modules/{semver → @slack/bolt/node_modules/semver}/bin/semver.js +0 -0
  1191. /package/node_modules/{semver → @slack/bolt/node_modules/semver}/classes/comparator.js +0 -0
  1192. /package/node_modules/{semver → @slack/bolt/node_modules/semver}/classes/index.js +0 -0
  1193. /package/node_modules/{semver → @slack/bolt/node_modules/semver}/classes/range.js +0 -0
  1194. /package/node_modules/{semver → @slack/bolt/node_modules/semver}/classes/semver.js +0 -0
  1195. /package/node_modules/{semver → @slack/bolt/node_modules/semver}/functions/clean.js +0 -0
  1196. /package/node_modules/{semver → @slack/bolt/node_modules/semver}/functions/cmp.js +0 -0
  1197. /package/node_modules/{semver → @slack/bolt/node_modules/semver}/functions/coerce.js +0 -0
  1198. /package/node_modules/{semver → @slack/bolt/node_modules/semver}/functions/compare-build.js +0 -0
  1199. /package/node_modules/{semver → @slack/bolt/node_modules/semver}/functions/compare-loose.js +0 -0
  1200. /package/node_modules/{semver → @slack/bolt/node_modules/semver}/functions/compare.js +0 -0
  1201. /package/node_modules/{semver → @slack/bolt/node_modules/semver}/functions/diff.js +0 -0
  1202. /package/node_modules/{semver → @slack/bolt/node_modules/semver}/functions/eq.js +0 -0
  1203. /package/node_modules/{semver → @slack/bolt/node_modules/semver}/functions/gt.js +0 -0
  1204. /package/node_modules/{semver → @slack/bolt/node_modules/semver}/functions/gte.js +0 -0
  1205. /package/node_modules/{semver → @slack/bolt/node_modules/semver}/functions/inc.js +0 -0
  1206. /package/node_modules/{semver → @slack/bolt/node_modules/semver}/functions/lt.js +0 -0
  1207. /package/node_modules/{semver → @slack/bolt/node_modules/semver}/functions/lte.js +0 -0
  1208. /package/node_modules/{semver → @slack/bolt/node_modules/semver}/functions/major.js +0 -0
  1209. /package/node_modules/{semver → @slack/bolt/node_modules/semver}/functions/minor.js +0 -0
  1210. /package/node_modules/{semver → @slack/bolt/node_modules/semver}/functions/neq.js +0 -0
  1211. /package/node_modules/{semver → @slack/bolt/node_modules/semver}/functions/parse.js +0 -0
  1212. /package/node_modules/{semver → @slack/bolt/node_modules/semver}/functions/patch.js +0 -0
  1213. /package/node_modules/{semver → @slack/bolt/node_modules/semver}/functions/prerelease.js +0 -0
  1214. /package/node_modules/{semver → @slack/bolt/node_modules/semver}/functions/rcompare.js +0 -0
  1215. /package/node_modules/{semver → @slack/bolt/node_modules/semver}/functions/rsort.js +0 -0
  1216. /package/node_modules/{semver → @slack/bolt/node_modules/semver}/functions/satisfies.js +0 -0
  1217. /package/node_modules/{semver → @slack/bolt/node_modules/semver}/functions/sort.js +0 -0
  1218. /package/node_modules/{semver → @slack/bolt/node_modules/semver}/functions/truncate.js +0 -0
  1219. /package/node_modules/{semver → @slack/bolt/node_modules/semver}/functions/valid.js +0 -0
  1220. /package/node_modules/{semver → @slack/bolt/node_modules/semver}/index.js +0 -0
  1221. /package/node_modules/{semver → @slack/bolt/node_modules/semver}/internal/constants.js +0 -0
  1222. /package/node_modules/{semver → @slack/bolt/node_modules/semver}/internal/debug.js +0 -0
  1223. /package/node_modules/{semver → @slack/bolt/node_modules/semver}/internal/identifiers.js +0 -0
  1224. /package/node_modules/{semver → @slack/bolt/node_modules/semver}/internal/lrucache.js +0 -0
  1225. /package/node_modules/{semver → @slack/bolt/node_modules/semver}/internal/parse-options.js +0 -0
  1226. /package/node_modules/{semver → @slack/bolt/node_modules/semver}/internal/re.js +0 -0
  1227. /package/node_modules/{semver → @slack/bolt/node_modules/semver}/package.json +0 -0
  1228. /package/node_modules/{semver → @slack/bolt/node_modules/semver}/preload.js +0 -0
  1229. /package/node_modules/{semver → @slack/bolt/node_modules/semver}/range.bnf +0 -0
  1230. /package/node_modules/{semver → @slack/bolt/node_modules/semver}/ranges/gtr.js +0 -0
  1231. /package/node_modules/{semver → @slack/bolt/node_modules/semver}/ranges/intersects.js +0 -0
  1232. /package/node_modules/{semver → @slack/bolt/node_modules/semver}/ranges/ltr.js +0 -0
  1233. /package/node_modules/{semver → @slack/bolt/node_modules/semver}/ranges/max-satisfying.js +0 -0
  1234. /package/node_modules/{semver → @slack/bolt/node_modules/semver}/ranges/min-satisfying.js +0 -0
  1235. /package/node_modules/{semver → @slack/bolt/node_modules/semver}/ranges/min-version.js +0 -0
  1236. /package/node_modules/{semver → @slack/bolt/node_modules/semver}/ranges/outside.js +0 -0
  1237. /package/node_modules/{semver → @slack/bolt/node_modules/semver}/ranges/simplify.js +0 -0
  1238. /package/node_modules/{semver → @slack/bolt/node_modules/semver}/ranges/subset.js +0 -0
  1239. /package/node_modules/{semver → @slack/bolt/node_modules/semver}/ranges/to-comparators.js +0 -0
  1240. /package/node_modules/{semver → @slack/bolt/node_modules/semver}/ranges/valid.js +0 -0
  1241. /package/node_modules/{send → @slack/bolt/node_modules/send}/LICENSE +0 -0
  1242. /package/node_modules/{send → @slack/bolt/node_modules/send}/README.md +0 -0
  1243. /package/node_modules/{send → @slack/bolt/node_modules/send}/index.js +0 -0
  1244. /package/node_modules/{send → @slack/bolt/node_modules/send}/package.json +0 -0
  1245. /package/node_modules/{serve-static → @slack/bolt/node_modules/serve-static}/LICENSE +0 -0
  1246. /package/node_modules/{serve-static → @slack/bolt/node_modules/serve-static}/README.md +0 -0
  1247. /package/node_modules/{serve-static → @slack/bolt/node_modules/serve-static}/index.js +0 -0
  1248. /package/node_modules/{serve-static → @slack/bolt/node_modules/serve-static}/package.json +0 -0
  1249. /package/node_modules/{setprototypeof → @slack/bolt/node_modules/setprototypeof}/LICENSE +0 -0
  1250. /package/node_modules/{setprototypeof → @slack/bolt/node_modules/setprototypeof}/README.md +0 -0
  1251. /package/node_modules/{setprototypeof → @slack/bolt/node_modules/setprototypeof}/index.d.ts +0 -0
  1252. /package/node_modules/{setprototypeof → @slack/bolt/node_modules/setprototypeof}/index.js +0 -0
  1253. /package/node_modules/{setprototypeof → @slack/bolt/node_modules/setprototypeof}/package.json +0 -0
  1254. /package/node_modules/{setprototypeof → @slack/bolt/node_modules/setprototypeof}/test/index.js +0 -0
  1255. /package/node_modules/{side-channel → @slack/bolt/node_modules/side-channel}/.editorconfig +0 -0
  1256. /package/node_modules/{side-channel → @slack/bolt/node_modules/side-channel}/.eslintrc +0 -0
  1257. /package/node_modules/{side-channel → @slack/bolt/node_modules/side-channel}/.github/FUNDING.yml +0 -0
  1258. /package/node_modules/{side-channel → @slack/bolt/node_modules/side-channel}/.nycrc +0 -0
  1259. /package/node_modules/{side-channel → @slack/bolt/node_modules/side-channel}/CHANGELOG.md +0 -0
  1260. /package/node_modules/{side-channel → @slack/bolt/node_modules/side-channel}/LICENSE +0 -0
  1261. /package/node_modules/{side-channel → @slack/bolt/node_modules/side-channel}/README.md +0 -0
  1262. /package/node_modules/{side-channel → @slack/bolt/node_modules/side-channel}/index.d.ts +0 -0
  1263. /package/node_modules/{side-channel → @slack/bolt/node_modules/side-channel}/index.js +0 -0
  1264. /package/node_modules/{side-channel → @slack/bolt/node_modules/side-channel}/package.json +0 -0
  1265. /package/node_modules/{side-channel → @slack/bolt/node_modules/side-channel}/test/index.js +0 -0
  1266. /package/node_modules/{side-channel → @slack/bolt/node_modules/side-channel}/tsconfig.json +0 -0
  1267. /package/node_modules/{side-channel-list → @slack/bolt/node_modules/side-channel-list}/.editorconfig +0 -0
  1268. /package/node_modules/{side-channel-list → @slack/bolt/node_modules/side-channel-list}/.eslintrc +0 -0
  1269. /package/node_modules/{side-channel-list → @slack/bolt/node_modules/side-channel-list}/.github/FUNDING.yml +0 -0
  1270. /package/node_modules/{side-channel-list → @slack/bolt/node_modules/side-channel-list}/.nycrc +0 -0
  1271. /package/node_modules/{side-channel-list → @slack/bolt/node_modules/side-channel-list}/CHANGELOG.md +0 -0
  1272. /package/node_modules/{side-channel-list → @slack/bolt/node_modules/side-channel-list}/LICENSE +0 -0
  1273. /package/node_modules/{side-channel-list → @slack/bolt/node_modules/side-channel-list}/README.md +0 -0
  1274. /package/node_modules/{side-channel-list → @slack/bolt/node_modules/side-channel-list}/index.d.ts +0 -0
  1275. /package/node_modules/{side-channel-list → @slack/bolt/node_modules/side-channel-list}/index.js +0 -0
  1276. /package/node_modules/{side-channel-list → @slack/bolt/node_modules/side-channel-list}/list.d.ts +0 -0
  1277. /package/node_modules/{side-channel-list → @slack/bolt/node_modules/side-channel-list}/package.json +0 -0
  1278. /package/node_modules/{side-channel-list → @slack/bolt/node_modules/side-channel-list}/test/index.js +0 -0
  1279. /package/node_modules/{side-channel-list → @slack/bolt/node_modules/side-channel-list}/tsconfig.json +0 -0
  1280. /package/node_modules/{side-channel-map → @slack/bolt/node_modules/side-channel-map}/.editorconfig +0 -0
  1281. /package/node_modules/{side-channel-map → @slack/bolt/node_modules/side-channel-map}/.eslintrc +0 -0
  1282. /package/node_modules/{side-channel-map → @slack/bolt/node_modules/side-channel-map}/.github/FUNDING.yml +0 -0
  1283. /package/node_modules/{side-channel-map → @slack/bolt/node_modules/side-channel-map}/.nycrc +0 -0
  1284. /package/node_modules/{side-channel-map → @slack/bolt/node_modules/side-channel-map}/CHANGELOG.md +0 -0
  1285. /package/node_modules/{side-channel-map → @slack/bolt/node_modules/side-channel-map}/LICENSE +0 -0
  1286. /package/node_modules/{side-channel-map → @slack/bolt/node_modules/side-channel-map}/README.md +0 -0
  1287. /package/node_modules/{side-channel-map → @slack/bolt/node_modules/side-channel-map}/index.d.ts +0 -0
  1288. /package/node_modules/{side-channel-map → @slack/bolt/node_modules/side-channel-map}/index.js +0 -0
  1289. /package/node_modules/{side-channel-map → @slack/bolt/node_modules/side-channel-map}/package.json +0 -0
  1290. /package/node_modules/{side-channel-map → @slack/bolt/node_modules/side-channel-map}/test/index.js +0 -0
  1291. /package/node_modules/{side-channel-map → @slack/bolt/node_modules/side-channel-map}/tsconfig.json +0 -0
  1292. /package/node_modules/{side-channel-weakmap → @slack/bolt/node_modules/side-channel-weakmap}/.editorconfig +0 -0
  1293. /package/node_modules/{side-channel-weakmap → @slack/bolt/node_modules/side-channel-weakmap}/.eslintrc +0 -0
  1294. /package/node_modules/{side-channel-weakmap → @slack/bolt/node_modules/side-channel-weakmap}/.github/FUNDING.yml +0 -0
  1295. /package/node_modules/{side-channel-weakmap → @slack/bolt/node_modules/side-channel-weakmap}/.nycrc +0 -0
  1296. /package/node_modules/{side-channel-weakmap → @slack/bolt/node_modules/side-channel-weakmap}/CHANGELOG.md +0 -0
  1297. /package/node_modules/{side-channel-weakmap → @slack/bolt/node_modules/side-channel-weakmap}/LICENSE +0 -0
  1298. /package/node_modules/{side-channel-weakmap → @slack/bolt/node_modules/side-channel-weakmap}/README.md +0 -0
  1299. /package/node_modules/{side-channel-weakmap → @slack/bolt/node_modules/side-channel-weakmap}/index.d.ts +0 -0
  1300. /package/node_modules/{side-channel-weakmap → @slack/bolt/node_modules/side-channel-weakmap}/index.js +0 -0
  1301. /package/node_modules/{side-channel-weakmap → @slack/bolt/node_modules/side-channel-weakmap}/package.json +0 -0
  1302. /package/node_modules/{side-channel-weakmap → @slack/bolt/node_modules/side-channel-weakmap}/test/index.js +0 -0
  1303. /package/node_modules/{side-channel-weakmap → @slack/bolt/node_modules/side-channel-weakmap}/tsconfig.json +0 -0
  1304. /package/node_modules/{statuses → @slack/bolt/node_modules/statuses}/HISTORY.md +0 -0
  1305. /package/node_modules/{statuses → @slack/bolt/node_modules/statuses}/LICENSE +0 -0
  1306. /package/node_modules/{statuses → @slack/bolt/node_modules/statuses}/README.md +0 -0
  1307. /package/node_modules/{statuses → @slack/bolt/node_modules/statuses}/codes.json +0 -0
  1308. /package/node_modules/{statuses → @slack/bolt/node_modules/statuses}/index.js +0 -0
  1309. /package/node_modules/{statuses → @slack/bolt/node_modules/statuses}/package.json +0 -0
  1310. /package/node_modules/{toidentifier → @slack/bolt/node_modules/toidentifier}/HISTORY.md +0 -0
  1311. /package/node_modules/{toidentifier → @slack/bolt/node_modules/toidentifier}/LICENSE +0 -0
  1312. /package/node_modules/{toidentifier → @slack/bolt/node_modules/toidentifier}/README.md +0 -0
  1313. /package/node_modules/{toidentifier → @slack/bolt/node_modules/toidentifier}/index.js +0 -0
  1314. /package/node_modules/{toidentifier → @slack/bolt/node_modules/toidentifier}/package.json +0 -0
  1315. /package/node_modules/{tsscmp → @slack/bolt/node_modules/tsscmp}/.travis.yml +0 -0
  1316. /package/node_modules/{tsscmp → @slack/bolt/node_modules/tsscmp}/LICENSE +0 -0
  1317. /package/node_modules/{tsscmp → @slack/bolt/node_modules/tsscmp}/README.md +0 -0
  1318. /package/node_modules/{tsscmp → @slack/bolt/node_modules/tsscmp}/appveyor.yml +0 -0
  1319. /package/node_modules/{tsscmp → @slack/bolt/node_modules/tsscmp}/lib/index.js +0 -0
  1320. /package/node_modules/{tsscmp → @slack/bolt/node_modules/tsscmp}/package.json +0 -0
  1321. /package/node_modules/{tsscmp → @slack/bolt/node_modules/tsscmp}/test/benchmark/index.js +0 -0
  1322. /package/node_modules/{tsscmp → @slack/bolt/node_modules/tsscmp}/test/unit/index.js +0 -0
  1323. /package/node_modules/{type-is → @slack/bolt/node_modules/type-is}/HISTORY.md +0 -0
  1324. /package/node_modules/{type-is → @slack/bolt/node_modules/type-is}/LICENSE +0 -0
  1325. /package/node_modules/{type-is → @slack/bolt/node_modules/type-is}/README.md +0 -0
  1326. /package/node_modules/{type-is → @slack/bolt/node_modules/type-is}/index.js +0 -0
  1327. /package/node_modules/{type-is → @slack/bolt/node_modules/type-is}/node_modules/content-type/LICENSE +0 -0
  1328. /package/node_modules/{type-is → @slack/bolt/node_modules/type-is}/node_modules/content-type/README.md +0 -0
  1329. /package/node_modules/{type-is → @slack/bolt/node_modules/type-is}/node_modules/content-type/dist/index.d.ts +0 -0
  1330. /package/node_modules/{type-is → @slack/bolt/node_modules/type-is}/node_modules/content-type/dist/index.js +0 -0
  1331. /package/node_modules/{type-is → @slack/bolt/node_modules/type-is}/node_modules/content-type/dist/index.js.map +0 -0
  1332. /package/node_modules/{type-is → @slack/bolt/node_modules/type-is}/node_modules/content-type/package.json +0 -0
  1333. /package/node_modules/{type-is → @slack/bolt/node_modules/type-is}/package.json +0 -0
  1334. /package/node_modules/{undici-types → @slack/bolt/node_modules/undici-types}/LICENSE +0 -0
  1335. /package/node_modules/{undici-types → @slack/bolt/node_modules/undici-types}/README.md +0 -0
  1336. /package/node_modules/{undici-types → @slack/bolt/node_modules/undici-types}/agent.d.ts +0 -0
  1337. /package/node_modules/{undici-types → @slack/bolt/node_modules/undici-types}/api.d.ts +0 -0
  1338. /package/node_modules/{undici-types → @slack/bolt/node_modules/undici-types}/balanced-pool.d.ts +0 -0
  1339. /package/node_modules/{undici-types → @slack/bolt/node_modules/undici-types}/cache-interceptor.d.ts +0 -0
  1340. /package/node_modules/{undici-types → @slack/bolt/node_modules/undici-types}/cache.d.ts +0 -0
  1341. /package/node_modules/{undici-types → @slack/bolt/node_modules/undici-types}/client-stats.d.ts +0 -0
  1342. /package/node_modules/{undici-types → @slack/bolt/node_modules/undici-types}/client.d.ts +0 -0
  1343. /package/node_modules/{undici-types → @slack/bolt/node_modules/undici-types}/connector.d.ts +0 -0
  1344. /package/node_modules/{undici-types → @slack/bolt/node_modules/undici-types}/content-type.d.ts +0 -0
  1345. /package/node_modules/{undici-types → @slack/bolt/node_modules/undici-types}/cookies.d.ts +0 -0
  1346. /package/node_modules/{undici-types → @slack/bolt/node_modules/undici-types}/diagnostics-channel.d.ts +0 -0
  1347. /package/node_modules/{undici-types → @slack/bolt/node_modules/undici-types}/dispatcher.d.ts +0 -0
  1348. /package/node_modules/{undici-types → @slack/bolt/node_modules/undici-types}/dispatcher1-wrapper.d.ts +0 -0
  1349. /package/node_modules/{undici-types → @slack/bolt/node_modules/undici-types}/env-http-proxy-agent.d.ts +0 -0
  1350. /package/node_modules/{undici-types → @slack/bolt/node_modules/undici-types}/errors.d.ts +0 -0
  1351. /package/node_modules/{undici-types → @slack/bolt/node_modules/undici-types}/eventsource.d.ts +0 -0
  1352. /package/node_modules/{undici-types → @slack/bolt/node_modules/undici-types}/fetch.d.ts +0 -0
  1353. /package/node_modules/{undici-types → @slack/bolt/node_modules/undici-types}/formdata.d.ts +0 -0
  1354. /package/node_modules/{undici-types → @slack/bolt/node_modules/undici-types}/global-dispatcher.d.ts +0 -0
  1355. /package/node_modules/{undici-types → @slack/bolt/node_modules/undici-types}/global-origin.d.ts +0 -0
  1356. /package/node_modules/{undici-types → @slack/bolt/node_modules/undici-types}/h2c-client.d.ts +0 -0
  1357. /package/node_modules/{undici-types → @slack/bolt/node_modules/undici-types}/handlers.d.ts +0 -0
  1358. /package/node_modules/{undici-types → @slack/bolt/node_modules/undici-types}/header.d.ts +0 -0
  1359. /package/node_modules/{undici-types → @slack/bolt/node_modules/undici-types}/index.d.ts +0 -0
  1360. /package/node_modules/{undici-types → @slack/bolt/node_modules/undici-types}/interceptors.d.ts +0 -0
  1361. /package/node_modules/{undici-types → @slack/bolt/node_modules/undici-types}/mock-agent.d.ts +0 -0
  1362. /package/node_modules/{undici-types → @slack/bolt/node_modules/undici-types}/mock-call-history.d.ts +0 -0
  1363. /package/node_modules/{undici-types → @slack/bolt/node_modules/undici-types}/mock-client.d.ts +0 -0
  1364. /package/node_modules/{undici-types → @slack/bolt/node_modules/undici-types}/mock-errors.d.ts +0 -0
  1365. /package/node_modules/{undici-types → @slack/bolt/node_modules/undici-types}/mock-interceptor.d.ts +0 -0
  1366. /package/node_modules/{undici-types → @slack/bolt/node_modules/undici-types}/mock-pool.d.ts +0 -0
  1367. /package/node_modules/{undici-types → @slack/bolt/node_modules/undici-types}/package.json +0 -0
  1368. /package/node_modules/{undici-types → @slack/bolt/node_modules/undici-types}/patch.d.ts +0 -0
  1369. /package/node_modules/{undici-types → @slack/bolt/node_modules/undici-types}/pool-stats.d.ts +0 -0
  1370. /package/node_modules/{undici-types → @slack/bolt/node_modules/undici-types}/pool.d.ts +0 -0
  1371. /package/node_modules/{undici-types → @slack/bolt/node_modules/undici-types}/proxy-agent.d.ts +0 -0
  1372. /package/node_modules/{undici-types → @slack/bolt/node_modules/undici-types}/readable.d.ts +0 -0
  1373. /package/node_modules/{undici-types → @slack/bolt/node_modules/undici-types}/retry-agent.d.ts +0 -0
  1374. /package/node_modules/{undici-types → @slack/bolt/node_modules/undici-types}/retry-handler.d.ts +0 -0
  1375. /package/node_modules/{undici-types → @slack/bolt/node_modules/undici-types}/round-robin-pool.d.ts +0 -0
  1376. /package/node_modules/{undici-types → @slack/bolt/node_modules/undici-types}/snapshot-agent.d.ts +0 -0
  1377. /package/node_modules/{undici-types → @slack/bolt/node_modules/undici-types}/socks5-proxy-agent.d.ts +0 -0
  1378. /package/node_modules/{undici-types → @slack/bolt/node_modules/undici-types}/util.d.ts +0 -0
  1379. /package/node_modules/{undici-types → @slack/bolt/node_modules/undici-types}/utility.d.ts +0 -0
  1380. /package/node_modules/{undici-types → @slack/bolt/node_modules/undici-types}/webidl.d.ts +0 -0
  1381. /package/node_modules/{undici-types → @slack/bolt/node_modules/undici-types}/websocket.d.ts +0 -0
  1382. /package/node_modules/{unpipe → @slack/bolt/node_modules/unpipe}/HISTORY.md +0 -0
  1383. /package/node_modules/{unpipe → @slack/bolt/node_modules/unpipe}/LICENSE +0 -0
  1384. /package/node_modules/{unpipe → @slack/bolt/node_modules/unpipe}/README.md +0 -0
  1385. /package/node_modules/{unpipe → @slack/bolt/node_modules/unpipe}/index.js +0 -0
  1386. /package/node_modules/{unpipe → @slack/bolt/node_modules/unpipe}/package.json +0 -0
  1387. /package/node_modules/{vary → @slack/bolt/node_modules/vary}/HISTORY.md +0 -0
  1388. /package/node_modules/{vary → @slack/bolt/node_modules/vary}/LICENSE +0 -0
  1389. /package/node_modules/{vary → @slack/bolt/node_modules/vary}/README.md +0 -0
  1390. /package/node_modules/{vary → @slack/bolt/node_modules/vary}/index.js +0 -0
  1391. /package/node_modules/{vary → @slack/bolt/node_modules/vary}/package.json +0 -0
  1392. /package/node_modules/{wrappy → @slack/bolt/node_modules/wrappy}/LICENSE +0 -0
  1393. /package/node_modules/{wrappy → @slack/bolt/node_modules/wrappy}/README.md +0 -0
  1394. /package/node_modules/{wrappy → @slack/bolt/node_modules/wrappy}/package.json +0 -0
  1395. /package/node_modules/{wrappy → @slack/bolt/node_modules/wrappy}/wrappy.js +0 -0
  1396. /package/node_modules/{eventemitter3 → @slack/socket-mode/node_modules/eventemitter3}/LICENSE +0 -0
  1397. /package/node_modules/{eventemitter3 → @slack/socket-mode/node_modules/eventemitter3}/README.md +0 -0
  1398. /package/node_modules/{eventemitter3 → @slack/socket-mode/node_modules/eventemitter3}/dist/eventemitter3.esm.js +0 -0
  1399. /package/node_modules/{eventemitter3 → @slack/socket-mode/node_modules/eventemitter3}/dist/eventemitter3.esm.min.js +0 -0
  1400. /package/node_modules/{eventemitter3 → @slack/socket-mode/node_modules/eventemitter3}/dist/eventemitter3.esm.min.js.map +0 -0
  1401. /package/node_modules/{eventemitter3 → @slack/socket-mode/node_modules/eventemitter3}/dist/eventemitter3.umd.js +0 -0
  1402. /package/node_modules/{eventemitter3 → @slack/socket-mode/node_modules/eventemitter3}/dist/eventemitter3.umd.min.js +0 -0
  1403. /package/node_modules/{eventemitter3 → @slack/socket-mode/node_modules/eventemitter3}/dist/eventemitter3.umd.min.js.map +0 -0
  1404. /package/node_modules/{eventemitter3 → @slack/socket-mode/node_modules/eventemitter3}/index.d.ts +0 -0
  1405. /package/node_modules/{eventemitter3 → @slack/socket-mode/node_modules/eventemitter3}/index.js +0 -0
  1406. /package/node_modules/{eventemitter3 → @slack/socket-mode/node_modules/eventemitter3}/index.mjs +0 -0
  1407. /package/node_modules/{eventemitter3 → @slack/socket-mode/node_modules/eventemitter3}/package.json +0 -0
  1408. /package/node_modules/{@types → @slack/web-api/node_modules/@types}/retry/LICENSE +0 -0
  1409. /package/node_modules/{@types → @slack/web-api/node_modules/@types}/retry/README.md +0 -0
  1410. /package/node_modules/{@types → @slack/web-api/node_modules/@types}/retry/index.d.ts +0 -0
  1411. /package/node_modules/{@types → @slack/web-api/node_modules/@types}/retry/package.json +0 -0
  1412. /package/node_modules/{p-queue → @slack/web-api}/node_modules/eventemitter3/LICENSE +0 -0
  1413. /package/node_modules/{p-queue → @slack/web-api}/node_modules/eventemitter3/index.js +0 -0
  1414. /package/node_modules/{p-finally → @slack/web-api/node_modules/p-finally}/index.js +0 -0
  1415. /package/node_modules/{p-finally → @slack/web-api/node_modules/p-finally}/license +0 -0
  1416. /package/node_modules/{p-finally → @slack/web-api/node_modules/p-finally}/package.json +0 -0
  1417. /package/node_modules/{p-finally → @slack/web-api/node_modules/p-finally}/readme.md +0 -0
  1418. /package/node_modules/{p-queue → @slack/web-api/node_modules/p-queue}/dist/index.d.ts +0 -0
  1419. /package/node_modules/{p-queue → @slack/web-api/node_modules/p-queue}/dist/index.js +0 -0
  1420. /package/node_modules/{p-queue → @slack/web-api/node_modules/p-queue}/dist/lower-bound.d.ts +0 -0
  1421. /package/node_modules/{p-queue → @slack/web-api/node_modules/p-queue}/dist/lower-bound.js +0 -0
  1422. /package/node_modules/{p-queue → @slack/web-api/node_modules/p-queue}/dist/options.d.ts +0 -0
  1423. /package/node_modules/{p-queue → @slack/web-api/node_modules/p-queue}/dist/options.js +0 -0
  1424. /package/node_modules/{p-queue → @slack/web-api/node_modules/p-queue}/dist/priority-queue.d.ts +0 -0
  1425. /package/node_modules/{p-queue → @slack/web-api/node_modules/p-queue}/dist/priority-queue.js +0 -0
  1426. /package/node_modules/{p-queue → @slack/web-api/node_modules/p-queue}/dist/queue.d.ts +0 -0
  1427. /package/node_modules/{p-queue → @slack/web-api/node_modules/p-queue}/dist/queue.js +0 -0
  1428. /package/node_modules/{p-queue → @slack/web-api/node_modules/p-queue}/license +0 -0
  1429. /package/node_modules/{p-queue → @slack/web-api/node_modules/p-queue}/node_modules/eventemitter3/README.md +0 -0
  1430. /package/node_modules/{p-queue → @slack/web-api/node_modules/p-queue}/node_modules/eventemitter3/index.d.ts +0 -0
  1431. /package/node_modules/{p-queue → @slack/web-api/node_modules/p-queue}/node_modules/eventemitter3/package.json +0 -0
  1432. /package/node_modules/{p-queue → @slack/web-api/node_modules/p-queue}/node_modules/eventemitter3/umd/eventemitter3.js +0 -0
  1433. /package/node_modules/{p-queue → @slack/web-api/node_modules/p-queue}/node_modules/eventemitter3/umd/eventemitter3.min.js +0 -0
  1434. /package/node_modules/{p-queue → @slack/web-api/node_modules/p-queue}/node_modules/eventemitter3/umd/eventemitter3.min.js.map +0 -0
  1435. /package/node_modules/{p-queue → @slack/web-api/node_modules/p-queue}/package.json +0 -0
  1436. /package/node_modules/{p-queue → @slack/web-api/node_modules/p-queue}/readme.md +0 -0
  1437. /package/node_modules/{p-retry → @slack/web-api/node_modules/p-retry}/index.d.ts +0 -0
  1438. /package/node_modules/{p-retry → @slack/web-api/node_modules/p-retry}/index.js +0 -0
  1439. /package/node_modules/{p-retry → @slack/web-api/node_modules/p-retry}/license +0 -0
  1440. /package/node_modules/{p-retry → @slack/web-api/node_modules/p-retry}/package.json +0 -0
  1441. /package/node_modules/{p-retry → @slack/web-api/node_modules/p-retry}/readme.md +0 -0
  1442. /package/node_modules/{p-timeout → @slack/web-api/node_modules/p-timeout}/index.d.ts +0 -0
  1443. /package/node_modules/{p-timeout → @slack/web-api/node_modules/p-timeout}/index.js +0 -0
  1444. /package/node_modules/{p-timeout → @slack/web-api/node_modules/p-timeout}/license +0 -0
  1445. /package/node_modules/{p-timeout → @slack/web-api/node_modules/p-timeout}/package.json +0 -0
  1446. /package/node_modules/{p-timeout → @slack/web-api/node_modules/p-timeout}/readme.md +0 -0
  1447. /package/node_modules/{retry → @slack/web-api/node_modules/retry}/License +0 -0
  1448. /package/node_modules/{retry → @slack/web-api/node_modules/retry}/README.md +0 -0
  1449. /package/node_modules/{retry → @slack/web-api/node_modules/retry}/example/dns.js +0 -0
  1450. /package/node_modules/{retry → @slack/web-api/node_modules/retry}/example/stop.js +0 -0
  1451. /package/node_modules/{retry → @slack/web-api/node_modules/retry}/index.js +0 -0
  1452. /package/node_modules/{retry → @slack/web-api/node_modules/retry}/lib/retry.js +0 -0
  1453. /package/node_modules/{retry → @slack/web-api/node_modules/retry}/lib/retry_operation.js +0 -0
  1454. /package/node_modules/{retry → @slack/web-api/node_modules/retry}/package.json +0 -0
@@ -0,0 +1,2527 @@
1
+ import { a as resolveSlackAccount, i as resolveDefaultSlackAccountId, n as listSlackAccountIds, o as resolveSlackAccountAllowFrom, r as mergeSlackAccountConfig } from "./accounts-CK4AVI2_.js";
2
+ import { a as parseSlackTarget, n as formatSlackTarget, t as canonicalizeSlackApiTargetId } from "./target-parsing-BnMD2ZqZ.js";
3
+ import { t as isSlackPluginAccountConfigured } from "./account-configured-BwfXBo_F.js";
4
+ import { normalizeAccountId } from "openclaw/plugin-sdk/account-resolution";
5
+ import { asOptionalRecord, normalizeLowercaseStringOrEmpty, normalizeOptionalLowercaseString, normalizeOptionalString, normalizeStringifiedOptionalString, readNonBlankString } from "openclaw/plugin-sdk/string-coerce-runtime";
6
+ import { normalizeMessageChannel } from "openclaw/plugin-sdk/routing";
7
+ import { FormatCapabilityProfile, chunkTextForOutbound, markdownToIR, renderMarkdownIRChunksWithinLimit, renderMarkdownWithMarkers } from "openclaw/plugin-sdk/text-chunking";
8
+ import { buildChannelKeyCandidates } from "openclaw/plugin-sdk/channel-targets";
9
+ import { createNativeApprovalChannelRouteGates, doesApprovalRequestSelectChannelAccount, resolveApprovalRequestSessionConversation } from "openclaw/plugin-sdk/approval-native-runtime";
10
+ import { createChannelApprovalAuth, resolveApprovalApprovers } from "openclaw/plugin-sdk/approval-auth-runtime";
11
+ import { createChannelExecApprovalProfile, isChannelExecApprovalClientEnabledFromConfig, isChannelExecApprovalTargetRecipient, matchesApprovalRequestFilters } from "openclaw/plugin-sdk/approval-client-runtime";
12
+ import { channelRouteTargetsMatchExact, stringifyRouteThreadId } from "openclaw/plugin-sdk/channel-route";
13
+ import { resolveGlobalMap } from "openclaw/plugin-sdk/global-singleton";
14
+ import { normalizeMessagePresentation, reduceLegacyInteractiveReply, renderMessagePresentationChartFallbackText, renderMessagePresentationFallbackText, renderMessagePresentationTableFallbackText, resolveMessagePresentationButtonAction, resolveMessagePresentationOptionAction } from "openclaw/plugin-sdk/interactive-runtime";
15
+ import { parseExecApprovalCommandText } from "openclaw/plugin-sdk/approval-reply-runtime";
16
+ import { buildApprovalResolutionRef } from "openclaw/plugin-sdk/approval-reference-runtime";
17
+ import { questionGatewayRuntime } from "openclaw/plugin-sdk/question-gateway-runtime";
18
+ import { sliceUtf16Safe } from "openclaw/plugin-sdk/text-utility-runtime";
19
+ import { eastAsianWidthType } from "get-east-asian-width";
20
+ import { readResponseTextLimited } from "openclaw/plugin-sdk/provider-http";
21
+ import { compileAllowlist, resolveCompiledAllowlistMatch } from "openclaw/plugin-sdk/allow-from";
22
+ import { normalizeHyphenSlug, normalizeStringEntries as normalizeStringEntries$1, normalizeStringEntriesLower } from "openclaw/plugin-sdk/string-normalization-runtime";
23
+ import { resolveScopeRequireMention, resolveScopeToolsPolicy } from "openclaw/plugin-sdk/channel-policy";
24
+ //#region extensions/slack/src/exec-approvals.ts
25
+ function normalizeSlackUserLikeId(value) {
26
+ const upper = value.toUpperCase();
27
+ return /^[UW][A-Z0-9]+$/.test(upper) ? upper : void 0;
28
+ }
29
+ function normalizeSlackApproverId(value) {
30
+ const trimmed = normalizeStringifiedOptionalString(value);
31
+ if (!trimmed) return;
32
+ const prefixed = trimmed.match(/^(?:slack|user):([A-Z0-9]+)$/i);
33
+ if (prefixed?.[1]) return normalizeSlackUserLikeId(prefixed[1]);
34
+ const mention = trimmed.match(/^<@([A-Z0-9]+)>$/i);
35
+ if (mention?.[1]) return normalizeSlackUserLikeId(mention[1]);
36
+ return normalizeSlackUserLikeId(trimmed);
37
+ }
38
+ function resolveSlackOwnerApprovers(cfg) {
39
+ const ownerAllowFrom = cfg.commands?.ownerAllowFrom;
40
+ if (!Array.isArray(ownerAllowFrom) || ownerAllowFrom.length === 0) return [];
41
+ return resolveApprovalApprovers({
42
+ explicit: ownerAllowFrom,
43
+ normalizeApprover: normalizeSlackApproverId
44
+ });
45
+ }
46
+ function getSlackExecApprovalApprovers(params) {
47
+ const account = resolveSlackAccount(params).config;
48
+ return resolveApprovalApprovers({
49
+ explicit: account.execApprovals?.approvers ?? resolveSlackOwnerApprovers(params.cfg),
50
+ normalizeApprover: normalizeSlackApproverId
51
+ });
52
+ }
53
+ function isSlackExecApprovalTargetRecipient(params) {
54
+ return isChannelExecApprovalTargetRecipient({
55
+ ...params,
56
+ channel: "slack",
57
+ normalizeSenderId: normalizeSlackApproverId,
58
+ matchTarget: ({ target, normalizedSenderId }) => normalizeSlackApproverId(target.to) === normalizedSenderId
59
+ });
60
+ }
61
+ const slackExecApprovalProfile = createChannelExecApprovalProfile({
62
+ resolveConfig: (params) => resolveSlackAccount(params).config.execApprovals,
63
+ resolveApprovers: getSlackExecApprovalApprovers,
64
+ normalizeSenderId: normalizeSlackApproverId,
65
+ isTargetRecipient: isSlackExecApprovalTargetRecipient
66
+ });
67
+ const isSlackExecApprovalClientEnabled = slackExecApprovalProfile.isClientEnabled;
68
+ const isSlackExecApprovalAuthorizedSender = slackExecApprovalProfile.isAuthorizedSender;
69
+ const resolveSlackExecApprovalTarget = slackExecApprovalProfile.resolveTarget;
70
+ const shouldSuppressLocalSlackExecApprovalPrompt = slackExecApprovalProfile.shouldSuppressLocalPrompt;
71
+ //#endregion
72
+ //#region extensions/slack/src/approval-auth.ts
73
+ const slackApproval = createChannelApprovalAuth({
74
+ channelLabel: "Slack",
75
+ resolveInputs: ({ cfg, accountId }) => {
76
+ const account = resolveSlackAccount({
77
+ cfg,
78
+ accountId
79
+ }).config;
80
+ return {
81
+ allowFrom: resolveSlackAccountAllowFrom({
82
+ cfg,
83
+ accountId
84
+ }),
85
+ defaultTo: account.defaultTo
86
+ };
87
+ },
88
+ normalizeApprover: normalizeSlackApproverId,
89
+ normalizeDefaultTo: normalizeSlackApproverId,
90
+ isWildcardAuthorized: ({ purpose, senderId, inputs, approvers }) => purpose === "sender" && Boolean(senderId) && approvers.length === 0 && inputs.allowFrom?.some((entry) => String(entry).trim() === "*") === true
91
+ });
92
+ const getSlackApprovalApprovers = slackApproval.resolveApprovers;
93
+ const isSlackApprovalAuthorizedSender = slackApproval.isAuthorizedSender;
94
+ //#endregion
95
+ //#region extensions/slack/src/installation-identity-state.ts
96
+ const slackInstallationStates = resolveGlobalMap(Symbol.for("openclaw.slack.installation-identities"), "close-and-restart");
97
+ function registerSlackInstallationState(accountId, kind) {
98
+ const normalizedAccountId = normalizeAccountId(accountId);
99
+ const owner = Symbol(`slack-installation:${normalizedAccountId}`);
100
+ slackInstallationStates.set(normalizedAccountId, {
101
+ kind,
102
+ owner
103
+ });
104
+ return {
105
+ update: (nextKind) => {
106
+ if (slackInstallationStates.get(normalizedAccountId)?.owner === owner) slackInstallationStates.set(normalizedAccountId, {
107
+ kind: nextKind,
108
+ owner
109
+ });
110
+ },
111
+ release: () => {
112
+ if (slackInstallationStates.get(normalizedAccountId)?.owner === owner) slackInstallationStates.delete(normalizedAccountId);
113
+ }
114
+ };
115
+ }
116
+ function getSlackInstallationKind(accountId) {
117
+ return slackInstallationStates.get(normalizeAccountId(accountId))?.kind;
118
+ }
119
+ function isSlackWorkspaceInstallation(accountId) {
120
+ return getSlackInstallationKind(accountId) === "workspace";
121
+ }
122
+ //#endregion
123
+ //#region extensions/slack/src/approval-native-gates.ts
124
+ const DEFAULT_APPROVAL_FORWARDING_MODE = "session";
125
+ const SLACK_DM_CHANNEL_ID_RE = /^D[A-Z0-9]{8,}$/i;
126
+ const SLACK_USER_ID_RE = /^[UW][A-Z0-9]{8,}$/i;
127
+ function resolveSlackApprovalKind(request) {
128
+ const isExec = "command" in request.request;
129
+ if (isExec === ("title" in request.request && "description" in request.request)) throw new Error("Slack approval request payload does not identify exactly one owner");
130
+ return isExec ? "exec" : "plugin";
131
+ }
132
+ function isSlackApprovalTransportEnabled(params) {
133
+ return isSlackPluginAccountConfigured(resolveSlackAccount(params));
134
+ }
135
+ function resolveSlackNativeApprovalConfig(params) {
136
+ return resolveSlackAccount(params).config.execApprovals;
137
+ }
138
+ function resolvePluginApprovalForwardingConfig(cfg) {
139
+ return cfg.approvals?.plugin;
140
+ }
141
+ function normalizeSlackThreadMatchKey(threadId) {
142
+ return threadId == null ? "" : String(threadId).trim();
143
+ }
144
+ function normalizeComparableTarget(value) {
145
+ return normalizeLowercaseStringOrEmpty(value);
146
+ }
147
+ function extractSlackSessionKind(sessionKey) {
148
+ if (!sessionKey) return null;
149
+ const kind = normalizeLowercaseStringOrEmpty(sessionKey.match(/slack:(direct|channel|group):/i)?.[1]);
150
+ return kind ? kind : null;
151
+ }
152
+ function resolveSlackTurnSourceDefaultKind(params) {
153
+ if (SLACK_DM_CHANNEL_ID_RE.test(params.turnSourceTo)) return "channel";
154
+ return params.sessionKind === "direct" ? "user" : "channel";
155
+ }
156
+ function resolveTurnSourceSlackOriginTarget(request) {
157
+ const turnSourceChannel = normalizeLowercaseStringOrEmpty(request.request.turnSourceChannel);
158
+ const turnSourceTo = normalizeOptionalString(request.request.turnSourceTo) ?? "";
159
+ if (turnSourceChannel !== "slack" || !turnSourceTo) return null;
160
+ const parsed = parseSlackTarget(turnSourceTo, { defaultKind: resolveSlackTurnSourceDefaultKind({
161
+ turnSourceTo,
162
+ sessionKind: extractSlackSessionKind(request.request.sessionKey ?? void 0)
163
+ }) });
164
+ if (!parsed) return null;
165
+ return {
166
+ to: formatSlackTarget({
167
+ ...parsed,
168
+ explicitKind: true
169
+ }),
170
+ threadId: stringifyRouteThreadId(request.request.turnSourceThreadId)
171
+ };
172
+ }
173
+ function resolveSessionSlackOriginTarget(sessionTarget) {
174
+ return {
175
+ to: sessionTarget.to,
176
+ threadId: stringifyRouteThreadId(sessionTarget.threadId)
177
+ };
178
+ }
179
+ function resolveSlackFallbackOriginTarget(request) {
180
+ const sessionTarget = resolveApprovalRequestSessionConversation({
181
+ request,
182
+ channel: "slack",
183
+ bundledFallback: false
184
+ });
185
+ if (!sessionTarget) return null;
186
+ const parsed = parseSlackTarget(sessionTarget.id, { defaultKind: "channel" });
187
+ if (!parsed) return null;
188
+ return {
189
+ to: formatSlackTarget({
190
+ ...parsed,
191
+ id: canonicalizeSlackApiTargetId(parsed.kind, parsed.id),
192
+ explicitKind: true
193
+ }),
194
+ threadId: sessionTarget.threadId
195
+ };
196
+ }
197
+ function normalizeSlackOriginTarget(target) {
198
+ return {
199
+ ...target,
200
+ to: normalizeComparableTarget(target.to)
201
+ };
202
+ }
203
+ function parseComparableSlackTarget(target) {
204
+ return parseSlackTarget(target.to, { defaultKind: "channel" });
205
+ }
206
+ function isSlackDmChannelToUserRoutePair(a, b) {
207
+ const left = parseComparableSlackTarget(a);
208
+ const right = parseComparableSlackTarget(b);
209
+ if (!left || !right) return false;
210
+ if (left.teamId?.toLowerCase() !== right.teamId?.toLowerCase()) return false;
211
+ return left.kind === "channel" && SLACK_DM_CHANNEL_ID_RE.test(left.id) && right.kind === "user" || right.kind === "channel" && SLACK_DM_CHANNEL_ID_RE.test(right.id) && left.kind === "user";
212
+ }
213
+ function slackTargetsMatch(a, b) {
214
+ const threadKey = normalizeSlackThreadMatchKey(a.threadId);
215
+ if (threadKey !== normalizeSlackThreadMatchKey(b.threadId)) return false;
216
+ if (channelRouteTargetsMatchExact({
217
+ left: {
218
+ channel: "slack",
219
+ to: a.to
220
+ },
221
+ right: {
222
+ channel: "slack",
223
+ to: b.to
224
+ }
225
+ })) return true;
226
+ return Boolean(threadKey && isSlackDmChannelToUserRoutePair(a, b));
227
+ }
228
+ function normalizeSlackForwardTarget(target) {
229
+ if ((normalizeMessageChannel(target.channel) ?? target.channel) !== "slack") return null;
230
+ const to = normalizeOptionalString(target.to);
231
+ if (!to) return null;
232
+ const parsed = parseSlackTarget(to, { defaultKind: SLACK_USER_ID_RE.test(to) ? "user" : "channel" });
233
+ if (!parsed) return null;
234
+ return {
235
+ to: formatSlackTarget({
236
+ ...parsed,
237
+ explicitKind: true
238
+ }),
239
+ accountId: normalizeOptionalString(target.accountId),
240
+ threadId: stringifyRouteThreadId(target.threadId)
241
+ };
242
+ }
243
+ const { canApprovalPotentiallyRouteToChannel: canApprovalPotentiallyRouteToSlack, isSessionApprovalEligible: isForwardedSlackSessionApprovalEligible, isExplicitTargetEligible: isForwardedSlackExplicitTargetEligible } = createNativeApprovalChannelRouteGates({
244
+ channel: "slack",
245
+ defaultForwardingMode: DEFAULT_APPROVAL_FORWARDING_MODE,
246
+ isTransportEnabled: isSlackApprovalTransportEnabled,
247
+ listAccountIds: listSlackAccountIds,
248
+ resolveDefaultAccountId: resolveDefaultSlackAccountId,
249
+ normalizeForwardTarget: normalizeSlackForwardTarget,
250
+ resolveTurnSourceTarget: resolveTurnSourceSlackOriginTarget,
251
+ targetsMatch: slackTargetsMatch
252
+ });
253
+ function hasSlackPluginApprovers(params) {
254
+ return getSlackApprovalApprovers(params).length > 0;
255
+ }
256
+ function isSlackPluginNativeApprovalClientConfigEnabled(params) {
257
+ return isChannelExecApprovalClientEnabledFromConfig({
258
+ enabled: resolveSlackNativeApprovalConfig(params)?.enabled,
259
+ approverCount: getSlackApprovalApprovers(params).length
260
+ });
261
+ }
262
+ function isSlackPluginForwardingRoutePotentiallyEnabled(params) {
263
+ return canApprovalPotentiallyRouteToSlack({
264
+ ...params,
265
+ approvalKind: "plugin"
266
+ });
267
+ }
268
+ function isSlackPluginNativeApprovalClientEnabled(params) {
269
+ return isSlackPluginNativeApprovalClientConfigEnabled(params) || isSlackPluginForwardingRoutePotentiallyEnabled(params);
270
+ }
271
+ function shouldHandleSlackPluginViaNativeClientConfig(params) {
272
+ if (!doesApprovalRequestSelectChannelAccount({
273
+ ...params,
274
+ channel: "slack",
275
+ defaultAccountId: resolveDefaultSlackAccountId(params.cfg),
276
+ eligibleAccountIds: listSlackNativeApprovalEligibleAccountIds({
277
+ ...params,
278
+ approvalKind: "plugin"
279
+ })
280
+ })) return false;
281
+ return isSlackNativeApprovalAccountEligible({
282
+ ...params,
283
+ approvalKind: "plugin"
284
+ });
285
+ }
286
+ function matchesSlackNativeApprovalFilters(params) {
287
+ return matchesApprovalRequestFilters({
288
+ request: params.request.request,
289
+ agentFilter: params.agentFilter,
290
+ sessionFilter: params.sessionFilter
291
+ });
292
+ }
293
+ function isSlackNativeApprovalAccountEligible(params) {
294
+ const config = resolveSlackNativeApprovalConfig(params);
295
+ const approverCount = params.approvalKind === "exec" ? getSlackExecApprovalApprovers(params).length : getSlackApprovalApprovers(params).length;
296
+ return isSlackApprovalTransportEnabled(params) && isChannelExecApprovalClientEnabledFromConfig({
297
+ enabled: config?.enabled,
298
+ approverCount
299
+ }) && matchesSlackNativeApprovalFilters({
300
+ request: params.request,
301
+ agentFilter: config?.agentFilter,
302
+ sessionFilter: config?.sessionFilter
303
+ });
304
+ }
305
+ function listSlackNativeApprovalEligibleAccountIds(params) {
306
+ const accountId = params.accountId ?? resolveDefaultSlackAccountId(params.cfg);
307
+ return isSlackNativeApprovalAccountEligible({
308
+ ...params,
309
+ accountId
310
+ }) ? [accountId] : [];
311
+ }
312
+ function isAnyForwardedSlackExplicitTargetEligible(params) {
313
+ return (resolvePluginApprovalForwardingConfig(params.cfg)?.targets ?? []).some((target) => isForwardedSlackExplicitTargetEligible({
314
+ ...params,
315
+ approvalKind: "plugin",
316
+ target
317
+ }));
318
+ }
319
+ function shouldHandleSlackPluginViaForwarding(params) {
320
+ return isForwardedSlackSessionApprovalEligible({
321
+ ...params,
322
+ approvalKind: "plugin"
323
+ }) || isAnyForwardedSlackExplicitTargetEligible(params);
324
+ }
325
+ function shouldHandleSlackPluginViaForwardingSession(params) {
326
+ return isForwardedSlackSessionApprovalEligible({
327
+ ...params,
328
+ approvalKind: "plugin"
329
+ });
330
+ }
331
+ function isSlackNativeApprovalClientEnabled(params) {
332
+ if (params.approvalKind === "exec") return isSlackExecApprovalClientEnabled(params);
333
+ return isSlackPluginNativeApprovalClientEnabled(params);
334
+ }
335
+ function isSlackAnyNativeApprovalClientEnabled(params) {
336
+ return isSlackNativeApprovalClientEnabled({
337
+ ...params,
338
+ approvalKind: "exec"
339
+ }) || isSlackNativeApprovalClientEnabled({
340
+ ...params,
341
+ approvalKind: "plugin"
342
+ });
343
+ }
344
+ function shouldHandleSlackNativeApprovalRequest(params) {
345
+ if (getSlackInstallationKind(resolveSlackAccount(params).accountId) === "enterprise" && !resolveEnterpriseApprovalTeamId(params.request)) return false;
346
+ if ((params.approvalKind ?? resolveSlackApprovalKind(params.request)) === "plugin") return shouldHandleSlackPluginViaNativeClientConfig(params) || shouldHandleSlackPluginViaForwarding(params);
347
+ const turnSourceChannel = normalizeMessageChannel(params.request.request.turnSourceChannel);
348
+ if (turnSourceChannel && turnSourceChannel !== "slack") return false;
349
+ if (!doesApprovalRequestSelectChannelAccount({
350
+ ...params,
351
+ channel: "slack",
352
+ defaultAccountId: resolveDefaultSlackAccountId(params.cfg),
353
+ eligibleAccountIds: listSlackNativeApprovalEligibleAccountIds({
354
+ ...params,
355
+ approvalKind: "exec"
356
+ })
357
+ })) return false;
358
+ return isSlackNativeApprovalAccountEligible({
359
+ ...params,
360
+ approvalKind: "exec"
361
+ });
362
+ }
363
+ function resolveEnterpriseApprovalTeamId(request) {
364
+ try {
365
+ const target = resolveTurnSourceSlackOriginTarget(request);
366
+ return target ? parseSlackTarget(target.to)?.teamId : void 0;
367
+ } catch {
368
+ return;
369
+ }
370
+ }
371
+ //#endregion
372
+ //#region extensions/slack/src/blocks-input.ts
373
+ const SLACK_MAX_BLOCKS = 50;
374
+ function parseBlocksJson(raw) {
375
+ try {
376
+ return JSON.parse(raw);
377
+ } catch {
378
+ throw new Error("blocks must be valid JSON");
379
+ }
380
+ }
381
+ function assertBlocksArray(raw) {
382
+ if (!Array.isArray(raw)) throw new Error("blocks must be an array");
383
+ if (raw.length === 0) throw new Error("blocks must contain at least one block");
384
+ if (raw.length > 50) throw new Error(`blocks cannot exceed 50 items`);
385
+ for (const block of raw) {
386
+ if (!block || typeof block !== "object" || Array.isArray(block)) throw new Error("each block must be an object");
387
+ const type = block.type;
388
+ if (typeof type !== "string" || type.trim().length === 0) throw new Error("each block must include a non-empty string type");
389
+ }
390
+ }
391
+ function validateSlackBlocksArray(raw) {
392
+ assertBlocksArray(raw);
393
+ return raw;
394
+ }
395
+ function parseSlackBlocksInput(raw) {
396
+ if (raw == null) return;
397
+ return validateSlackBlocksArray(typeof raw === "string" ? parseBlocksJson(raw) : raw);
398
+ }
399
+ const SLACK_BUTTON_VALUE_MAX = 2e3;
400
+ const SLACK_SECTION_TEXT_MAX = 3e3;
401
+ const SLACK_PRESENTATION_CAPABILITIES = {
402
+ supported: true,
403
+ buttons: true,
404
+ selects: true,
405
+ context: true,
406
+ divider: true,
407
+ charts: true,
408
+ tables: true,
409
+ limits: {
410
+ actions: {
411
+ maxActionsPerRow: 25,
412
+ maxValueBytes: SLACK_BUTTON_VALUE_MAX,
413
+ supportsStyles: true
414
+ },
415
+ selects: {
416
+ maxOptions: 100,
417
+ maxValueBytes: 150
418
+ },
419
+ text: {
420
+ encoding: "characters",
421
+ markdownDialect: "slack-mrkdwn",
422
+ supportsEdit: true
423
+ }
424
+ }
425
+ };
426
+ //#endregion
427
+ //#region extensions/slack/src/approval-actions.ts
428
+ const SLACK_APPROVAL_VALUE_PREFIX = "openclaw:approval:v1:";
429
+ function isApprovalDecision(value) {
430
+ return value === "allow-once" || value === "allow-always" || value === "deny";
431
+ }
432
+ /** Encode portable approval facts without exposing a slash command to Slack callbacks. */
433
+ function encodeSlackApprovalAction(action) {
434
+ const encode = (approvalId) => `${SLACK_APPROVAL_VALUE_PREFIX}${JSON.stringify({
435
+ approvalId,
436
+ approvalKind: action.approvalKind,
437
+ decision: action.decision
438
+ })}`;
439
+ const exact = encode(action.approvalId);
440
+ return exact.length <= 2e3 ? exact : encode(buildApprovalResolutionRef({
441
+ approvalId: action.approvalId,
442
+ approvalKind: action.approvalKind
443
+ }));
444
+ }
445
+ /** Decode only the exact Slack-owned approval envelope. Malformed callbacks fail closed. */
446
+ function decodeSlackApprovalAction(value) {
447
+ if (typeof value !== "string" || !value.startsWith(SLACK_APPROVAL_VALUE_PREFIX)) return null;
448
+ try {
449
+ const decoded = JSON.parse(value.slice(21));
450
+ if (!decoded || typeof decoded !== "object" || Array.isArray(decoded)) return null;
451
+ const record = decoded;
452
+ if (Object.keys(record).length !== 3 || typeof record.approvalId !== "string" || record.approvalId.length === 0 || record.approvalKind !== "exec" && record.approvalKind !== "plugin" || !isApprovalDecision(record.decision)) return null;
453
+ return {
454
+ type: "approval",
455
+ approvalId: record.approvalId,
456
+ approvalKind: record.approvalKind,
457
+ decision: record.decision
458
+ };
459
+ } catch {
460
+ return null;
461
+ }
462
+ }
463
+ //#endregion
464
+ //#region extensions/slack/src/monitor/mrkdwn.ts
465
+ function escapeSlackMrkdwn(value) {
466
+ return value.replaceAll("\\", "\\\\").replaceAll("&", "&amp;").replaceAll("<", "&lt;").replaceAll(">", "&gt;").replace(/([*_`~])/g, "\\$1");
467
+ }
468
+ //#endregion
469
+ //#region extensions/slack/src/presentation-fallback.ts
470
+ const SLACK_UNCOPYABLE_COMMAND_WARNING = "not copyable: contains backtick";
471
+ function resolveSlackCommandFallback(command) {
472
+ if (!command.includes("`")) return { command };
473
+ return {
474
+ command: command.replaceAll("`", "[backtick]"),
475
+ warning: SLACK_UNCOPYABLE_COMMAND_WARNING
476
+ };
477
+ }
478
+ function escapeSlackPresentationChartBlock(block) {
479
+ if (block.chartType === "pie") return {
480
+ ...block,
481
+ title: escapeSlackMrkdwn(block.title),
482
+ segments: block.segments.map((segment) => ({
483
+ ...segment,
484
+ label: escapeSlackMrkdwn(segment.label)
485
+ }))
486
+ };
487
+ return {
488
+ ...block,
489
+ title: escapeSlackMrkdwn(block.title),
490
+ categories: block.categories.map(escapeSlackMrkdwn),
491
+ series: block.series.map((series) => ({
492
+ ...series,
493
+ name: escapeSlackMrkdwn(series.name)
494
+ })),
495
+ ...block.xLabel ? { xLabel: escapeSlackMrkdwn(block.xLabel) } : {},
496
+ ...block.yLabel ? { yLabel: escapeSlackMrkdwn(block.yLabel) } : {}
497
+ };
498
+ }
499
+ function escapeSlackPresentationTableBlock(block) {
500
+ return {
501
+ ...block,
502
+ caption: escapeSlackMrkdwn(block.caption),
503
+ headers: block.headers.map(escapeSlackMrkdwn),
504
+ rows: block.rows.map((row) => row.map((cell) => typeof cell === "string" ? escapeSlackMrkdwn(cell) : cell))
505
+ };
506
+ }
507
+ function escapeSlackPresentationFallbackBlock(block) {
508
+ if (block.type === "chart") return escapeSlackPresentationChartBlock(block);
509
+ if (block.type === "table") return escapeSlackPresentationTableBlock(block);
510
+ if (block.type === "buttons") return {
511
+ ...block,
512
+ buttons: block.buttons.map((button) => {
513
+ const commandFallback = button.action?.type === "command" ? resolveSlackCommandFallback(button.action.command) : void 0;
514
+ const label = commandFallback?.warning ? `${button.label} [${commandFallback.warning}]` : button.label;
515
+ return {
516
+ ...button,
517
+ label: escapeSlackMrkdwn(label),
518
+ ...button.value ? { value: escapeSlackMrkdwn(button.value) } : {},
519
+ ...button.url ? { url: escapeSlackMrkdwn(button.url) } : {},
520
+ ...button.webApp ? { webApp: { url: escapeSlackMrkdwn(button.webApp.url) } } : {},
521
+ ...button.web_app ? { web_app: { url: escapeSlackMrkdwn(button.web_app.url) } } : {},
522
+ ...button.action?.type === "command" && commandFallback ? { action: {
523
+ ...button.action,
524
+ command: commandFallback.command
525
+ } } : {}
526
+ };
527
+ })
528
+ };
529
+ if (block.type === "select") return {
530
+ ...block,
531
+ ...block.placeholder ? { placeholder: escapeSlackMrkdwn(block.placeholder) } : {},
532
+ options: block.options.map((option) => ({
533
+ ...option,
534
+ label: escapeSlackMrkdwn(option.label)
535
+ }))
536
+ };
537
+ return block;
538
+ }
539
+ function renderSlackMessagePresentationChartFallbackText(block) {
540
+ return renderMessagePresentationChartFallbackText(escapeSlackPresentationChartBlock(block));
541
+ }
542
+ function renderSlackMessagePresentationTableFallbackText(block) {
543
+ return renderMessagePresentationTableFallbackText(escapeSlackPresentationTableBlock(block));
544
+ }
545
+ function renderSlackMessagePresentationFallbackText(params) {
546
+ if (!params.presentation) return renderMessagePresentationFallbackText(params);
547
+ const presentation = {
548
+ ...params.presentation,
549
+ ...params.presentation.title ? { title: escapeSlackMrkdwn(params.presentation.title) } : {},
550
+ blocks: params.presentation.blocks.map(escapeSlackPresentationFallbackBlock)
551
+ };
552
+ return renderMessagePresentationFallbackText({
553
+ ...params,
554
+ presentation
555
+ });
556
+ }
557
+ //#endregion
558
+ //#region extensions/slack/src/data-table.ts
559
+ const SLACK_DATA_TABLE_COLUMNS_MAX = 20;
560
+ const SLACK_DATA_TABLE_ROWS_MAX = 100;
561
+ function countCharacters(value) {
562
+ return Array.from(value).length;
563
+ }
564
+ function readRichTextLeaf(record) {
565
+ if (record.type === "text" && typeof record.text === "string") return record.text;
566
+ const text = readNonBlankString(record.text);
567
+ if (text) return text;
568
+ switch (record.type) {
569
+ case "link": return readNonBlankString(record.url) ?? "";
570
+ case "user": {
571
+ const userId = readNonBlankString(record.user_id);
572
+ return userId ? `<@${userId}>` : "";
573
+ }
574
+ case "channel": {
575
+ const channelId = readNonBlankString(record.channel_id);
576
+ return channelId ? `<#${channelId}>` : "";
577
+ }
578
+ case "usergroup": {
579
+ const usergroupId = readNonBlankString(record.usergroup_id);
580
+ return usergroupId ? `<!subteam^${usergroupId}>` : "";
581
+ }
582
+ case "broadcast": {
583
+ const range = readNonBlankString(record.range);
584
+ return range ? `<!${range}>` : "";
585
+ }
586
+ case "emoji": {
587
+ const name = readNonBlankString(record.name);
588
+ return name ? `:${name}:` : "";
589
+ }
590
+ case "date": return readNonBlankString(record.fallback) ?? "";
591
+ default: return "";
592
+ }
593
+ }
594
+ function readRichTextElements(value, separator = "") {
595
+ if (!Array.isArray(value)) return "";
596
+ const parts = [];
597
+ for (const rawElement of value) {
598
+ const element = asOptionalRecord(rawElement);
599
+ if (!element) continue;
600
+ if (Array.isArray(element.elements)) {
601
+ const rendered = readRichTextElements(element.elements, element.type === "rich_text_list" ? "\n" : "");
602
+ if (rendered) parts.push(rendered);
603
+ continue;
604
+ }
605
+ const rendered = readRichTextLeaf(element);
606
+ if (rendered) parts.push(rendered);
607
+ }
608
+ return parts.join(separator);
609
+ }
610
+ function readSlackBasicTableCell(value) {
611
+ const cell = asOptionalRecord(value);
612
+ if (!cell) return "";
613
+ if (cell.type === "raw_text") return typeof cell.text === "string" ? cell.text : "";
614
+ if (cell.type === "raw_number") {
615
+ if (typeof cell.text === "string" && cell.text.length > 0) return cell.text;
616
+ if (typeof cell.value === "number" && Number.isFinite(cell.value)) return String(cell.value);
617
+ return typeof cell.value === "string" ? cell.value : "";
618
+ }
619
+ return cell.type === "rich_text" ? readRichTextElements(cell.elements, "\n") : "";
620
+ }
621
+ function parseSlackBasicTableRows(value) {
622
+ const block = asOptionalRecord(value);
623
+ if (block?.type !== "table" || !Array.isArray(block.rows)) return;
624
+ if (block.rows.length < 1 || block.rows.length > SLACK_DATA_TABLE_ROWS_MAX) return;
625
+ let characterCount = 0;
626
+ const rows = [];
627
+ for (const rawRow of block.rows) {
628
+ if (!Array.isArray(rawRow) || rawRow.length < 1 || rawRow.length > SLACK_DATA_TABLE_COLUMNS_MAX) return;
629
+ const row = rawRow.map(readSlackBasicTableCell);
630
+ characterCount += row.reduce((total, cell) => total + countCharacters(cell), 0);
631
+ if (characterCount > 1e4) return;
632
+ rows.push(row);
633
+ }
634
+ return rows.some((row) => row.some((cell) => cell.length > 0)) ? rows : void 0;
635
+ }
636
+ function readSlackDataTableCell(value, allowRichText) {
637
+ const cell = asOptionalRecord(value);
638
+ if (!cell) return;
639
+ if (cell.type === "raw_text") return readNonBlankString(cell.text);
640
+ if (cell.type === "raw_number") return typeof cell.value === "number" && Number.isFinite(cell.value) ? readNonBlankString(cell.text) : void 0;
641
+ if (allowRichText && cell.type === "rich_text") return readNonBlankString(readRichTextElements(cell.elements));
642
+ }
643
+ function parseSlackDataTable(value, options = {}) {
644
+ const block = asOptionalRecord(value);
645
+ const caption = readNonBlankString(block?.caption);
646
+ if (block?.type !== "data_table" || !caption || !Array.isArray(block.rows)) return;
647
+ if (block.rows.length < 2) return;
648
+ const rawHeader = block.rows[0];
649
+ if (!Array.isArray(rawHeader) || rawHeader.length < 1) return;
650
+ const headers = rawHeader.map((cell) => readSlackDataTableCell(cell, false));
651
+ if (!headers.every((header) => Boolean(header))) return;
652
+ const rows = block.rows.slice(1).map((rawRow) => {
653
+ if (!Array.isArray(rawRow) || rawRow.length !== headers.length) return;
654
+ const cells = rawRow.map((cell) => readSlackDataTableCell(cell, true));
655
+ return cells.every((cell) => Boolean(cell)) ? cells : void 0;
656
+ });
657
+ if (!rows.every((row) => Boolean(row))) return;
658
+ const cellCharacterCount = [...headers, ...rows.flat()].reduce((total, cell) => total + countCharacters(cell), 0);
659
+ if (options.enforceNativeLimits && (block.rows.length > 101 || headers.length > SLACK_DATA_TABLE_COLUMNS_MAX || cellCharacterCount > 1e4)) return;
660
+ return {
661
+ caption,
662
+ headers,
663
+ rows,
664
+ cellCharacterCount
665
+ };
666
+ }
667
+ /** Detect current native table blocks without depending on unreleased Slack SDK types. */
668
+ function hasSlackDataTableBlock(blocks) {
669
+ return blocks?.some((block) => asOptionalRecord(block)?.type === "data_table") ?? false;
670
+ }
671
+ function countSlackDataTableCellCharacters(value) {
672
+ return parseSlackDataTable(value, { enforceNativeLimits: true })?.cellCharacterCount;
673
+ }
674
+ /** Count the aggregate native-table cell characters already present in a message. */
675
+ function countSlackDataTableBlocksCellCharacters(blocks) {
676
+ let total = 0;
677
+ for (const block of blocks ?? []) {
678
+ if (!hasSlackDataTableBlock([block])) continue;
679
+ const cellCharacterCount = countSlackDataTableCellCharacters(block);
680
+ if (cellCharacterCount === void 0) return;
681
+ total += cellCharacterCount;
682
+ }
683
+ return total;
684
+ }
685
+ function resolvePortableTableCellCharacterCount(block) {
686
+ if (typeof block.caption !== "string" || block.caption.trim().length === 0 || !Array.isArray(block.headers) || block.headers.length < 1 || block.headers.length > SLACK_DATA_TABLE_COLUMNS_MAX || !Array.isArray(block.rows) || block.rows.length < 1 || block.rows.length > SLACK_DATA_TABLE_ROWS_MAX || new Set(block.headers).size !== block.headers.length || !block.headers.every((header) => typeof header === "string" && header.trim().length > 0) || block.rowHeaderColumnIndex !== void 0 && (!Number.isInteger(block.rowHeaderColumnIndex) || block.rowHeaderColumnIndex < 0 || block.rowHeaderColumnIndex >= block.headers.length)) return;
687
+ const values = [...block.headers];
688
+ for (const row of block.rows) {
689
+ if (!Array.isArray(row) || row.length !== block.headers.length) return;
690
+ for (const cell of row) {
691
+ if (typeof cell === "number") {
692
+ if (!Number.isFinite(cell)) return;
693
+ values.push(String(cell));
694
+ continue;
695
+ }
696
+ if (typeof cell !== "string" || cell.trim().length === 0) return;
697
+ values.push(cell);
698
+ }
699
+ }
700
+ return values.reduce((total, value) => total + countCharacters(value), 0);
701
+ }
702
+ /** True when a portable table fits Slack's per-table and per-message contracts. */
703
+ function canRenderSlackDataTable(block, options = {}) {
704
+ const cellCharacterCountOffset = options.cellCharacterCountOffset ?? 0;
705
+ if (!Number.isSafeInteger(cellCharacterCountOffset) || cellCharacterCountOffset < 0) return false;
706
+ const cellCharacterCount = resolvePortableTableCellCharacterCount(block);
707
+ return cellCharacterCount !== void 0 && cellCharacterCountOffset + cellCharacterCount <= 1e4;
708
+ }
709
+ /** Map a validated portable table to Slack's current app-facing Block Kit shape. */
710
+ function buildSlackDataTableBlock(block, options = {}) {
711
+ if (!canRenderSlackDataTable(block, options)) return;
712
+ const header = block.headers.map((text) => ({
713
+ type: "raw_text",
714
+ text
715
+ }));
716
+ const rows = block.rows.map((row) => row.map((cell) => typeof cell === "number" ? {
717
+ type: "raw_number",
718
+ value: cell,
719
+ text: String(cell)
720
+ } : {
721
+ type: "raw_text",
722
+ text: cell
723
+ }));
724
+ return {
725
+ type: "data_table",
726
+ caption: block.caption,
727
+ rows: [header, ...rows],
728
+ ...block.rowHeaderColumnIndex !== void 0 ? { row_header_column_index: block.rowHeaderColumnIndex } : {}
729
+ };
730
+ }
731
+ /** Extract a deterministic accessible summary from a native Slack table block. */
732
+ function renderSlackDataTableFallbackText(value) {
733
+ const block = asOptionalRecord(value);
734
+ if (block?.type !== "data_table") return;
735
+ const parsed = parseSlackDataTable(block);
736
+ if (parsed) return renderMessagePresentationTableFallbackText({
737
+ type: "table",
738
+ caption: parsed.caption,
739
+ headers: parsed.headers,
740
+ rows: parsed.rows
741
+ });
742
+ return readNonBlankString(block.caption)?.trim();
743
+ }
744
+ function escapeCompactFallbackCell(value) {
745
+ return value.replaceAll("\\", "\\\\").replaceAll(" ", "\\t").replaceAll("\r", "\\r").replaceAll("\n", "\\n");
746
+ }
747
+ function escapeSlackBasicTableCell(value, mrkdwnSafe) {
748
+ return (mrkdwnSafe ? escapeSlackMrkdwn(value) : value.replaceAll("\\", "\\\\")).replaceAll(" ", "\\t").replaceAll("\r", "\\r").replaceAll("\n", "\\n");
749
+ }
750
+ function renderSlackBasicTableRows(value, mrkdwnSafe) {
751
+ return parseSlackBasicTableRows(value)?.map((row) => row.map((cell) => escapeSlackBasicTableCell(cell, mrkdwnSafe)).join(" ")).join("\n");
752
+ }
753
+ /** Render Slack's inbound `table` block as ordered, delimiter-safe TSV. */
754
+ function renderSlackTableFallbackText(value) {
755
+ return renderSlackBasicTableRows(value, false);
756
+ }
757
+ /** Render Slack's inbound `table` block without activating mrkdwn control tokens. */
758
+ function renderSlackTableMrkdwnFallbackText(value) {
759
+ return renderSlackBasicTableRows(value, true);
760
+ }
761
+ /** Render each native table cell once for bounded, formatting-disabled delivery. */
762
+ function renderSlackDataTableCompactPlainTextFallback(value) {
763
+ const block = asOptionalRecord(value);
764
+ if (block?.type !== "data_table") return;
765
+ const parsed = parseSlackDataTable(block);
766
+ if (!parsed) return readNonBlankString(block.caption)?.trim();
767
+ return [
768
+ `${escapeCompactFallbackCell(parsed.caption)} (table)`,
769
+ parsed.headers.map(escapeCompactFallbackCell).join(" "),
770
+ ...parsed.rows.map((row) => row.map(escapeCompactFallbackCell).join(" "))
771
+ ].join("\n");
772
+ }
773
+ /** Render a native table as mrkdwn without activating raw cell control tokens. */
774
+ function renderSlackDataTableMrkdwnFallbackText(value) {
775
+ const block = asOptionalRecord(value);
776
+ if (block?.type !== "data_table") return;
777
+ const parsed = parseSlackDataTable(block);
778
+ if (parsed) return renderSlackMessagePresentationTableFallbackText({
779
+ type: "table",
780
+ caption: parsed.caption,
781
+ headers: parsed.headers,
782
+ rows: parsed.rows
783
+ });
784
+ const caption = readNonBlankString(block.caption)?.trim();
785
+ return caption ? escapeSlackMrkdwn(caption) : void 0;
786
+ }
787
+ //#endregion
788
+ //#region extensions/slack/src/data-visualization.ts
789
+ const SLACK_CHART_TITLE_MAX = 50;
790
+ const SLACK_CHART_LABEL_MAX = 20;
791
+ const SLACK_CHART_AXIS_LABEL_MAX = 50;
792
+ const SLACK_CHART_SERIES_MAX = 12;
793
+ const SLACK_CHART_DATA_POINTS_MAX = 20;
794
+ /** Detect native chart blocks without depending on unreleased Slack SDK types. */
795
+ function hasSlackDataVisualizationBlock(blocks) {
796
+ return blocks?.some((block) => asOptionalRecord(block)?.type === "data_visualization") ?? false;
797
+ }
798
+ function isStringWithin(value, maxLength) {
799
+ return typeof value === "string" && value.trim().length > 0 && Array.from(value).length <= maxLength;
800
+ }
801
+ function hasUniqueStrings(values) {
802
+ return new Set(values).size === values.length;
803
+ }
804
+ /** True when a portable chart satisfies Slack's complete native-block contract. */
805
+ function canRenderSlackDataVisualization(block) {
806
+ if (!isStringWithin(block.title, SLACK_CHART_TITLE_MAX)) return false;
807
+ if (block.chartType === "pie") return block.segments.length >= 1 && block.segments.length <= SLACK_CHART_SERIES_MAX && block.segments.every((segment) => isStringWithin(segment.label, SLACK_CHART_LABEL_MAX) && Number.isFinite(segment.value) && segment.value > 0);
808
+ if (block.categories.length < 1 || block.categories.length > SLACK_CHART_DATA_POINTS_MAX || !block.categories.every((category) => isStringWithin(category, SLACK_CHART_LABEL_MAX)) || !hasUniqueStrings(block.categories) || block.series.length < 1 || block.series.length > SLACK_CHART_SERIES_MAX || !hasUniqueStrings(block.series.map((series) => series.name)) || block.xLabel !== void 0 && !isStringWithin(block.xLabel, SLACK_CHART_AXIS_LABEL_MAX) || block.yLabel !== void 0 && !isStringWithin(block.yLabel, SLACK_CHART_AXIS_LABEL_MAX)) return false;
809
+ return block.series.every((series) => isStringWithin(series.name, SLACK_CHART_LABEL_MAX) && series.values.length === block.categories.length && series.values.every((value) => Number.isFinite(value)));
810
+ }
811
+ /** Map a validated portable chart to Slack's app-facing Block Kit shape. */
812
+ function buildSlackDataVisualizationBlock(block) {
813
+ if (!canRenderSlackDataVisualization(block)) return;
814
+ if (block.chartType === "pie") return {
815
+ type: "data_visualization",
816
+ title: block.title,
817
+ chart: {
818
+ type: "pie",
819
+ segments: block.segments.map((segment) => ({ ...segment }))
820
+ }
821
+ };
822
+ return {
823
+ type: "data_visualization",
824
+ title: block.title,
825
+ chart: {
826
+ type: block.chartType,
827
+ series: block.series.map((series) => ({
828
+ name: series.name,
829
+ data: block.categories.map((label, index) => ({
830
+ label,
831
+ value: series.values[index]
832
+ }))
833
+ })),
834
+ axis_config: {
835
+ categories: [...block.categories],
836
+ ...block.xLabel ? { x_label: block.xLabel } : {},
837
+ ...block.yLabel ? { y_label: block.yLabel } : {}
838
+ }
839
+ }
840
+ };
841
+ }
842
+ function readSlackChartDatum(value) {
843
+ const record = asOptionalRecord(value);
844
+ const label = record?.label;
845
+ const datumValue = record?.value;
846
+ return typeof label === "string" && typeof datumValue === "number" ? {
847
+ label,
848
+ value: datumValue
849
+ } : void 0;
850
+ }
851
+ function parseSlackDataVisualizationBlock(value) {
852
+ const block = asOptionalRecord(value);
853
+ const title = block?.title;
854
+ const chart = asOptionalRecord(block?.chart);
855
+ if (block?.type !== "data_visualization" || typeof title !== "string" || !chart) return;
856
+ if (chart.type === "pie") {
857
+ if (!Array.isArray(chart.segments)) return;
858
+ const segments = chart.segments.map(readSlackChartDatum);
859
+ if (segments.some((segment) => !segment)) return;
860
+ const normalizedBlock = normalizeMessagePresentation({ blocks: [{
861
+ type: "chart",
862
+ chartType: "pie",
863
+ title,
864
+ segments
865
+ }] })?.blocks[0];
866
+ return normalizedBlock?.type === "chart" ? normalizedBlock : void 0;
867
+ }
868
+ if (chart.type !== "bar" && chart.type !== "area" && chart.type !== "line") return;
869
+ const axisConfig = asOptionalRecord(chart.axis_config);
870
+ const categories = axisConfig?.categories;
871
+ if (!Array.isArray(categories) || !categories.every((category) => typeof category === "string")) return;
872
+ if (!Array.isArray(chart.series)) return;
873
+ const series = chart.series.map((rawSeries) => {
874
+ const seriesRecord = asOptionalRecord(rawSeries);
875
+ if (typeof seriesRecord?.name !== "string" || !Array.isArray(seriesRecord.data)) return;
876
+ const data = seriesRecord.data.map(readSlackChartDatum);
877
+ if (data.some((datum) => !datum) || data.length !== categories.length) return;
878
+ const dataByLabel = new Map(data.map((datum) => [datum.label, datum.value]));
879
+ if (dataByLabel.size !== data.length || categories.some((category) => !dataByLabel.has(category))) return;
880
+ return {
881
+ name: seriesRecord.name,
882
+ values: categories.map((category) => dataByLabel.get(category))
883
+ };
884
+ });
885
+ if (series.some((entry) => !entry)) return;
886
+ const normalizedBlock = normalizeMessagePresentation({ blocks: [{
887
+ type: "chart",
888
+ chartType: chart.type,
889
+ title,
890
+ categories,
891
+ series,
892
+ xLabel: axisConfig?.x_label,
893
+ yLabel: axisConfig?.y_label
894
+ }] })?.blocks[0];
895
+ return normalizedBlock?.type === "chart" ? normalizedBlock : void 0;
896
+ }
897
+ /** Extract a deterministic accessible summary from a native Slack chart block. */
898
+ function renderSlackDataVisualizationFallbackText(value) {
899
+ const block = asOptionalRecord(value);
900
+ if (block?.type !== "data_visualization") return;
901
+ const parsed = parseSlackDataVisualizationBlock(block);
902
+ if (parsed) return renderMessagePresentationChartFallbackText(parsed);
903
+ return typeof block.title === "string" && block.title.trim() ? block.title.trim() : void 0;
904
+ }
905
+ /** Render a native chart as mrkdwn without activating raw data control tokens. */
906
+ function renderSlackDataVisualizationMrkdwnFallbackText(value) {
907
+ const block = asOptionalRecord(value);
908
+ if (block?.type !== "data_visualization") return;
909
+ const parsed = parseSlackDataVisualizationBlock(block);
910
+ if (parsed) return renderSlackMessagePresentationChartFallbackText(parsed);
911
+ return typeof block.title === "string" && block.title.trim() ? escapeSlackMrkdwn(block.title.trim()) : void 0;
912
+ }
913
+ //#endregion
914
+ //#region extensions/slack/src/question-actions.ts
915
+ const SLACK_QUESTION_VALUE_PREFIX = "slq1:";
916
+ const QUESTION_RECORD_ID_PATTERN = /^ask_[a-f0-9]{32}$/u;
917
+ function encodeSlackQuestionAction(action) {
918
+ if (!QUESTION_RECORD_ID_PATTERN.test(action.questionId) || !Number.isInteger(action.optionIndex) || action.optionIndex < 0 || action.optionIndex > 3) return;
919
+ const value = `${SLACK_QUESTION_VALUE_PREFIX}${action.questionId}:${action.optionIndex}`;
920
+ return value.length <= 2e3 ? value : void 0;
921
+ }
922
+ function decodeSlackQuestionAction(value) {
923
+ if (typeof value !== "string" || value.length > 2e3) return null;
924
+ const match = /^slq1:(ask_[a-f0-9]{32}):([0-3])$/u.exec(value);
925
+ return match?.[1] && match[2] ? {
926
+ questionId: match[1],
927
+ optionIndex: Number(match[2])
928
+ } : null;
929
+ }
930
+ async function resolveSlackQuestionAction(params) {
931
+ let result;
932
+ try {
933
+ result = await (params.resolveQuestion ?? questionGatewayRuntime.resolveOption)({
934
+ cfg: params.cfg,
935
+ questionId: params.action.questionId,
936
+ optionIndex: params.action.optionIndex,
937
+ senderId: params.userId,
938
+ clientDisplayName: `Slack question (${params.accountId})`
939
+ });
940
+ } catch {
941
+ await params.respond("Could not submit this answer.").catch(() => {});
942
+ return;
943
+ }
944
+ await params.respond(result.status === "answered" ? "Answer submitted." : "This question was already answered.").catch(() => {});
945
+ }
946
+ //#endregion
947
+ //#region extensions/slack/src/reply-action-ids.ts
948
+ const SLACK_REPLY_BUTTON_ACTION_ID = "openclaw:reply_button";
949
+ const SLACK_REPLY_LINK_ACTION_ID = "openclaw:reply_link";
950
+ const SLACK_SESSION_LINK_ACTION_ID = "openclaw:session_link";
951
+ const SLACK_REPLY_SELECT_ACTION_ID = "openclaw:reply_select";
952
+ const SLACK_CALLBACK_BUTTON_ACTION_ID = "openclaw:callback_button";
953
+ const SLACK_CALLBACK_SELECT_ACTION_ID = "openclaw:callback_select";
954
+ const SLACK_APPROVAL_BUTTON_ACTION_ID = "openclaw:approval_button";
955
+ const SLACK_APPROVAL_SELECT_ACTION_ID = "openclaw:approval_select";
956
+ const SLACK_QUESTION_BUTTON_ACTION_ID = "openclaw:question_button";
957
+ const SLACK_QUESTION_FINALIZATION_BLOCKS = Symbol("slackQuestionFinalizationBlocks");
958
+ function isSlackQuestionActionId(actionId) {
959
+ return actionId === "openclaw:question_button" || actionId.startsWith(`openclaw:question_button:`);
960
+ }
961
+ /** Read only question control identities from the blocks actually sent to Slack. */
962
+ function resolveSlackQuestionActionIds(blocks) {
963
+ return (blocks ?? []).flatMap((block) => {
964
+ if (block.type !== "actions") return [];
965
+ return (block.elements ?? []).flatMap(({ action_id }) => action_id && isSlackQuestionActionId(action_id) ? [action_id] : []);
966
+ });
967
+ }
968
+ function isSlackApprovalActionId(actionId) {
969
+ return actionId === "openclaw:approval_button" || actionId === "openclaw:approval_select" || actionId.startsWith(`openclaw:approval_button:`) || actionId.startsWith(`openclaw:approval_select:`);
970
+ }
971
+ function isSlackCallbackActionId(actionId) {
972
+ return actionId === "openclaw:callback_button" || actionId === "openclaw:callback_select" || actionId.startsWith(`openclaw:callback_button:`) || actionId.startsWith(`openclaw:callback_select:`);
973
+ }
974
+ //#endregion
975
+ //#region extensions/slack/src/truncate.ts
976
+ function truncateSlackText(value, max) {
977
+ const trimmed = value.trim();
978
+ if (trimmed.length <= max) return trimmed;
979
+ if (max <= 1) return sliceUtf16Safe(trimmed, 0, max);
980
+ return `${sliceUtf16Safe(trimmed, 0, max - 1)}…`;
981
+ }
982
+ function countSlackTextUtf8Bytes(value) {
983
+ return Buffer.byteLength(value, "utf8");
984
+ }
985
+ /** Truncate Slack text without splitting a code point or exceeding a UTF-8 byte limit. */
986
+ function truncateSlackTextByUtf8Bytes(value, maxBytes) {
987
+ const trimmed = value.trim();
988
+ if (maxBytes <= 0) return "";
989
+ if (countSlackTextUtf8Bytes(trimmed) <= maxBytes) return trimmed;
990
+ const suffix = "…";
991
+ const suffixBytes = countSlackTextUtf8Bytes(suffix);
992
+ const prefixBudget = maxBytes >= suffixBytes ? maxBytes - suffixBytes : maxBytes;
993
+ let prefix = "";
994
+ let prefixBytes = 0;
995
+ for (const character of trimmed) {
996
+ const characterBytes = countSlackTextUtf8Bytes(character);
997
+ if (prefixBytes + characterBytes > prefixBudget) break;
998
+ prefix += character;
999
+ prefixBytes += characterBytes;
1000
+ }
1001
+ return maxBytes >= suffixBytes ? `${prefix}${suffix}` : prefix;
1002
+ }
1003
+ //#endregion
1004
+ //#region extensions/slack/src/blocks-render.ts
1005
+ const SLACK_BUTTON_URL_MAX = 3e3;
1006
+ function buildSlackReplyButtonActionId(buttonIndex, choiceIndex) {
1007
+ return `${SLACK_REPLY_BUTTON_ACTION_ID}:${String(buttonIndex)}:${String(choiceIndex + 1)}`;
1008
+ }
1009
+ function buildSlackReplyLinkActionId(buttonIndex, choiceIndex) {
1010
+ return `${SLACK_REPLY_LINK_ACTION_ID}:${String(buttonIndex)}:${String(choiceIndex + 1)}`;
1011
+ }
1012
+ function buildSlackReplySelectActionId(selectIndex) {
1013
+ return `${SLACK_REPLY_SELECT_ACTION_ID}:${String(selectIndex)}`;
1014
+ }
1015
+ function buildSlackApprovalButtonActionId(buttonIndex, choiceIndex) {
1016
+ return `${SLACK_APPROVAL_BUTTON_ACTION_ID}:${String(buttonIndex)}:${String(choiceIndex + 1)}`;
1017
+ }
1018
+ function buildSlackApprovalSelectActionId(selectIndex) {
1019
+ return `${SLACK_APPROVAL_SELECT_ACTION_ID}:${String(selectIndex)}`;
1020
+ }
1021
+ function buildSlackCallbackButtonActionId(buttonIndex, choiceIndex) {
1022
+ return `${SLACK_CALLBACK_BUTTON_ACTION_ID}:${String(buttonIndex)}:${String(choiceIndex + 1)}`;
1023
+ }
1024
+ function buildSlackCallbackSelectActionId(selectIndex) {
1025
+ return `${SLACK_CALLBACK_SELECT_ACTION_ID}:${String(selectIndex)}`;
1026
+ }
1027
+ function buildSlackQuestionButtonActionId(buttonIndex, choiceIndex) {
1028
+ return `${SLACK_QUESTION_BUTTON_ACTION_ID}:${String(buttonIndex)}:${String(choiceIndex + 1)}`;
1029
+ }
1030
+ function resolveSlackButtonStyle(style) {
1031
+ if (style === "primary" || style === "danger") return style;
1032
+ if (style === "success") return "primary";
1033
+ }
1034
+ function resolveSlackActionTarget(action, optionIndex) {
1035
+ if (!action) return;
1036
+ if (action.type === "approval") return {
1037
+ kind: "approval",
1038
+ value: encodeSlackApprovalAction(action)
1039
+ };
1040
+ if (action.type === "question") {
1041
+ const value = optionIndex === void 0 ? void 0 : encodeSlackQuestionAction({
1042
+ questionId: action.questionId,
1043
+ optionIndex
1044
+ });
1045
+ return value ? {
1046
+ kind: "question",
1047
+ value
1048
+ } : void 0;
1049
+ }
1050
+ if (action.type === "url" || action.type === "web-app") {
1051
+ const url = normalizeOptionalString(action.url);
1052
+ return url ? {
1053
+ kind: "link",
1054
+ url
1055
+ } : void 0;
1056
+ }
1057
+ if (action.type === "callback") {
1058
+ const value = normalizeOptionalString(action.value);
1059
+ return value ? {
1060
+ kind: "callback",
1061
+ value
1062
+ } : void 0;
1063
+ }
1064
+ const command = normalizeOptionalString(action.command);
1065
+ return command && parseExecApprovalCommandText(command) ? {
1066
+ kind: "reply",
1067
+ value: command
1068
+ } : void 0;
1069
+ }
1070
+ function resolveSlackButtonTarget(button, optionIndex) {
1071
+ if (button.action !== void 0) {
1072
+ const action = resolveMessagePresentationButtonAction(button);
1073
+ return action ? resolveSlackActionTarget(action, optionIndex) : void 0;
1074
+ }
1075
+ const legacyUrl = normalizeOptionalString(button.url ?? button.webApp?.url ?? button.web_app?.url);
1076
+ if (legacyUrl && isWithinSlackLimit(legacyUrl, SLACK_BUTTON_URL_MAX)) return {
1077
+ kind: "link",
1078
+ url: legacyUrl
1079
+ };
1080
+ const legacyValue = normalizeOptionalString(button.value);
1081
+ if (legacyValue) return {
1082
+ kind: "reply",
1083
+ value: legacyValue
1084
+ };
1085
+ return legacyUrl ? {
1086
+ kind: "link",
1087
+ url: legacyUrl
1088
+ } : void 0;
1089
+ }
1090
+ function resolveSlackOptionTarget(option) {
1091
+ if (option.action !== void 0) {
1092
+ const action = resolveMessagePresentationOptionAction(option);
1093
+ const target = action ? resolveSlackActionTarget(action) : void 0;
1094
+ return target?.kind === "link" || target?.kind === "question" ? void 0 : target;
1095
+ }
1096
+ const value = normalizeOptionalString(option.value);
1097
+ return value ? {
1098
+ kind: "reply",
1099
+ value
1100
+ } : void 0;
1101
+ }
1102
+ function isWithinSlackLimit(value, maxLength) {
1103
+ return value.length <= maxLength;
1104
+ }
1105
+ function isRenderableSlackOption(option) {
1106
+ return isWithinSlackLimit(option.value, 150);
1107
+ }
1108
+ function readSlackBlockId(block) {
1109
+ const value = block.block_id;
1110
+ return typeof value === "string" ? value : void 0;
1111
+ }
1112
+ function readSlackOpenClawBlockIndex(blockId, prefix) {
1113
+ if (!blockId.startsWith(prefix)) return;
1114
+ const value = Number.parseInt(blockId.slice(prefix.length), 10);
1115
+ return Number.isSafeInteger(value) && value > 0 ? value : void 0;
1116
+ }
1117
+ /** Resolve existing Block Kit indexes and native-data budgets before appending portable blocks. */
1118
+ function resolveSlackBlockOffsets(blocks) {
1119
+ let buttonIndexOffset = 0;
1120
+ const dataTableCellCharacterCountOffset = countSlackDataTableBlocksCellCharacters(blocks) ?? 10001;
1121
+ let dataVisualizationCountOffset = 0;
1122
+ let selectIndexOffset = 0;
1123
+ for (const block of blocks ?? []) {
1124
+ if (hasSlackDataVisualizationBlock([block])) dataVisualizationCountOffset += 1;
1125
+ const blockId = readSlackBlockId(block);
1126
+ if (!blockId) continue;
1127
+ buttonIndexOffset = Math.max(buttonIndexOffset, readSlackOpenClawBlockIndex(blockId, "openclaw_reply_buttons_") ?? 0);
1128
+ selectIndexOffset = Math.max(selectIndexOffset, readSlackOpenClawBlockIndex(blockId, "openclaw_reply_select_") ?? 0);
1129
+ }
1130
+ return {
1131
+ buttonIndexOffset,
1132
+ dataTableCellCharacterCountOffset,
1133
+ dataVisualizationCountOffset,
1134
+ selectIndexOffset
1135
+ };
1136
+ }
1137
+ /**
1138
+ * @deprecated Use buildSlackPresentationBlocks with MessagePresentation.
1139
+ */
1140
+ function buildSlackInteractiveBlocks(interactive, options = {}) {
1141
+ return reduceLegacyInteractiveReply(interactive, {
1142
+ blocks: [],
1143
+ buttonIndex: options.buttonIndexOffset ?? 0,
1144
+ selectIndex: options.selectIndexOffset ?? 0
1145
+ }, (state, block) => {
1146
+ if (block.type === "text") {
1147
+ const trimmed = block.text.trim();
1148
+ if (!trimmed) return state;
1149
+ state.blocks.push({
1150
+ type: "section",
1151
+ text: {
1152
+ type: "mrkdwn",
1153
+ text: truncateSlackText(trimmed, SLACK_SECTION_TEXT_MAX)
1154
+ }
1155
+ });
1156
+ return state;
1157
+ }
1158
+ if (block.type === "buttons") {
1159
+ const elements = block.buttons.flatMap((button, choiceIndex) => {
1160
+ const target = resolveSlackButtonTarget(button, choiceIndex);
1161
+ if (!target || (target.kind === "link" ? !isWithinSlackLimit(target.url, SLACK_BUTTON_URL_MAX) : !isWithinSlackLimit(target.value, 2e3))) return [];
1162
+ const style = resolveSlackButtonStyle(button.style);
1163
+ return [{
1164
+ type: "button",
1165
+ action_id: target.kind === "link" ? buildSlackReplyLinkActionId(state.buttonIndex + 1, choiceIndex) : target.kind === "approval" ? buildSlackApprovalButtonActionId(state.buttonIndex + 1, choiceIndex) : target.kind === "callback" ? buildSlackCallbackButtonActionId(state.buttonIndex + 1, choiceIndex) : target.kind === "question" ? buildSlackQuestionButtonActionId(state.buttonIndex + 1, choiceIndex) : buildSlackReplyButtonActionId(state.buttonIndex + 1, choiceIndex),
1166
+ text: {
1167
+ type: "plain_text",
1168
+ text: truncateSlackText(button.label, 75),
1169
+ emoji: true
1170
+ },
1171
+ ...target.kind === "link" ? { url: target.url } : { value: target.value },
1172
+ ...style ? { style } : {}
1173
+ }];
1174
+ }).slice(0, 25);
1175
+ if (elements.length === 0) return state;
1176
+ state.blocks.push({
1177
+ type: "actions",
1178
+ block_id: `openclaw_reply_buttons_${++state.buttonIndex}`,
1179
+ elements
1180
+ });
1181
+ return state;
1182
+ }
1183
+ const optionsLocal = block.options.flatMap((option) => {
1184
+ const target = resolveSlackOptionTarget(option);
1185
+ return target ? [{
1186
+ label: option.label,
1187
+ ...target
1188
+ }] : [];
1189
+ }).filter(isRenderableSlackOption).slice(0, 100);
1190
+ const optionKinds = new Set(optionsLocal.map((option) => option.kind));
1191
+ if (optionsLocal.length === 0 || optionKinds.size !== 1) return state;
1192
+ state.blocks.push({
1193
+ type: "actions",
1194
+ block_id: `openclaw_reply_select_${++state.selectIndex}`,
1195
+ elements: [{
1196
+ type: "static_select",
1197
+ action_id: optionsLocal[0]?.kind === "approval" ? buildSlackApprovalSelectActionId(state.selectIndex) : optionsLocal[0]?.kind === "callback" ? buildSlackCallbackSelectActionId(state.selectIndex) : buildSlackReplySelectActionId(state.selectIndex),
1198
+ placeholder: {
1199
+ type: "plain_text",
1200
+ text: truncateSlackText(normalizeOptionalString(block.placeholder) ?? "Choose an option", 75),
1201
+ emoji: true
1202
+ },
1203
+ options: optionsLocal.map((option, _choiceIndex) => ({
1204
+ text: {
1205
+ type: "plain_text",
1206
+ text: truncateSlackText(option.label, 75),
1207
+ emoji: true
1208
+ },
1209
+ value: option.value
1210
+ }))
1211
+ }]
1212
+ });
1213
+ return state;
1214
+ }).blocks;
1215
+ }
1216
+ /** Render portable presentation blocks as Slack Block Kit blocks. */
1217
+ function buildSlackPresentationBlocks(presentation, options = {}) {
1218
+ if (!presentation) return [];
1219
+ const renderTablesNatively = canRenderSlackPresentationTables(presentation, options);
1220
+ const blocks = [];
1221
+ if (presentation.title) blocks.push({
1222
+ type: "header",
1223
+ text: {
1224
+ type: "plain_text",
1225
+ text: truncateSlackText(presentation.title, 150),
1226
+ emoji: true
1227
+ }
1228
+ });
1229
+ let buttonIndex = options.buttonIndexOffset ?? 0;
1230
+ let dataTableCellCharacterCount = options.dataTableCellCharacterCountOffset ?? 0;
1231
+ let dataVisualizationCount = options.dataVisualizationCountOffset ?? 0;
1232
+ let selectIndex = options.selectIndexOffset ?? 0;
1233
+ for (const block of presentation.blocks) {
1234
+ if (block.type === "text" || block.type === "context") {
1235
+ const text = block.text.trim();
1236
+ if (!text) continue;
1237
+ if (block.type === "context") blocks.push({
1238
+ type: "context",
1239
+ elements: [{
1240
+ type: "mrkdwn",
1241
+ text: truncateSlackText(text, SLACK_SECTION_TEXT_MAX),
1242
+ verbatim: true
1243
+ }]
1244
+ });
1245
+ else blocks.push({
1246
+ type: "section",
1247
+ text: {
1248
+ type: "mrkdwn",
1249
+ text: truncateSlackText(text, SLACK_SECTION_TEXT_MAX)
1250
+ }
1251
+ });
1252
+ continue;
1253
+ }
1254
+ if (block.type === "divider") {
1255
+ blocks.push({ type: "divider" });
1256
+ continue;
1257
+ }
1258
+ if (block.type === "buttons") {
1259
+ const rendered = buildSlackPresentationButtonBlock(block, buttonIndex + 1);
1260
+ if (rendered) {
1261
+ buttonIndex += 1;
1262
+ blocks.push(rendered);
1263
+ }
1264
+ continue;
1265
+ }
1266
+ if (block.type === "chart") {
1267
+ const rendered = dataVisualizationCount < 2 ? buildSlackPresentationChartBlock(block) : void 0;
1268
+ if (rendered) {
1269
+ dataVisualizationCount += 1;
1270
+ blocks.push(rendered);
1271
+ } else {
1272
+ const fallback = renderSlackMessagePresentationChartFallbackText(block);
1273
+ blocks.push(...chunkTextForOutbound(fallback, SLACK_SECTION_TEXT_MAX).map((text) => ({
1274
+ type: "context",
1275
+ elements: [{
1276
+ type: "mrkdwn",
1277
+ text,
1278
+ verbatim: true
1279
+ }]
1280
+ })));
1281
+ }
1282
+ continue;
1283
+ }
1284
+ if (block.type === "table") {
1285
+ if (!renderTablesNatively) continue;
1286
+ const rendered = buildSlackDataTableBlock(block, { cellCharacterCountOffset: dataTableCellCharacterCount });
1287
+ if (rendered) {
1288
+ dataTableCellCharacterCount += countSlackDataTableCellCharacters(rendered);
1289
+ blocks.push(rendered);
1290
+ }
1291
+ continue;
1292
+ }
1293
+ if (block.type === "select") {
1294
+ const rendered = buildSlackPresentationSelectBlock(block, selectIndex + 1);
1295
+ if (rendered) {
1296
+ selectIndex += 1;
1297
+ blocks.push(rendered);
1298
+ }
1299
+ }
1300
+ }
1301
+ return blocks;
1302
+ }
1303
+ function buildSlackPresentationChartBlock(block) {
1304
+ return buildSlackDataVisualizationBlock(block);
1305
+ }
1306
+ function buildSlackPresentationButtonBlock(block, buttonIndex) {
1307
+ const elements = block.buttons.flatMap((button, choiceIndex) => {
1308
+ const target = resolveSlackButtonTarget(button, choiceIndex);
1309
+ if (!target || (target.kind === "link" ? !isWithinSlackLimit(target.url, SLACK_BUTTON_URL_MAX) : !isWithinSlackLimit(target.value, 2e3))) return [];
1310
+ const style = resolveSlackButtonStyle(button.style);
1311
+ return [{
1312
+ type: "button",
1313
+ action_id: target.kind === "link" ? buildSlackReplyLinkActionId(buttonIndex, choiceIndex) : target.kind === "approval" ? buildSlackApprovalButtonActionId(buttonIndex, choiceIndex) : target.kind === "callback" ? buildSlackCallbackButtonActionId(buttonIndex, choiceIndex) : target.kind === "question" ? buildSlackQuestionButtonActionId(buttonIndex, choiceIndex) : buildSlackReplyButtonActionId(buttonIndex, choiceIndex),
1314
+ text: {
1315
+ type: "plain_text",
1316
+ text: truncateSlackText(button.label, 75),
1317
+ emoji: true
1318
+ },
1319
+ ...target.kind === "link" ? { url: target.url } : { value: target.value },
1320
+ ...style ? { style } : {}
1321
+ }];
1322
+ }).slice(0, 25);
1323
+ return elements.length > 0 ? {
1324
+ type: "actions",
1325
+ block_id: `openclaw_reply_buttons_${buttonIndex}`,
1326
+ elements
1327
+ } : void 0;
1328
+ }
1329
+ /** True when every portable table fits Slack's native per-message table budget. */
1330
+ function canRenderSlackPresentationTables(presentation, options = {}) {
1331
+ let cellCharacterCount = options.dataTableCellCharacterCountOffset ?? 0;
1332
+ for (const block of presentation.blocks) {
1333
+ if (block.type !== "table") continue;
1334
+ const rendered = buildSlackDataTableBlock(block, { cellCharacterCountOffset: cellCharacterCount });
1335
+ if (!rendered) return false;
1336
+ cellCharacterCount += countSlackDataTableCellCharacters(rendered);
1337
+ }
1338
+ return true;
1339
+ }
1340
+ /** True when native Slack rendering preserves every portable control. */
1341
+ function canRenderSlackPresentation(presentation, options = {}) {
1342
+ if (presentation.title && !isWithinSlackLimit(presentation.title.trim(), 150)) return false;
1343
+ if (!canRenderSlackPresentationTables(presentation, options)) return false;
1344
+ let dataVisualizationCount = options.dataVisualizationCountOffset ?? 0;
1345
+ for (const block of presentation.blocks) {
1346
+ if (block.type === "text" || block.type === "context") {
1347
+ if (!isWithinSlackLimit(block.text.trim(), 3e3)) return false;
1348
+ continue;
1349
+ }
1350
+ if (block.type === "buttons") {
1351
+ if (!(block.buttons.length <= 25 && block.buttons.every((button, choiceIndex) => {
1352
+ if (!isWithinSlackLimit(button.label, 75)) return false;
1353
+ const target = resolveSlackButtonTarget(button, choiceIndex);
1354
+ return target ? target.kind === "link" ? isWithinSlackLimit(target.url, SLACK_BUTTON_URL_MAX) : isWithinSlackLimit(target.value, 2e3) : false;
1355
+ }))) return false;
1356
+ continue;
1357
+ }
1358
+ if (block.type === "select") {
1359
+ if (!(isWithinSlackLimit(normalizeOptionalString(block.placeholder) ?? "Choose an option", 75) && block.options.length <= 100 && (!block.placeholder || isWithinSlackLimit(block.placeholder, 75)) && block.options.every((option) => {
1360
+ if (!isWithinSlackLimit(option.label, 75)) return false;
1361
+ const target = resolveSlackOptionTarget(option);
1362
+ return target ? isRenderableSlackOption({
1363
+ label: option.label,
1364
+ ...target
1365
+ }) : false;
1366
+ }) && new Set(block.options.map((option) => resolveSlackOptionTarget(option)?.kind)).size === 1)) return false;
1367
+ continue;
1368
+ }
1369
+ if (block.type === "chart") {
1370
+ if (dataVisualizationCount >= 2 || !canRenderSlackDataVisualization(block)) return false;
1371
+ dataVisualizationCount += 1;
1372
+ continue;
1373
+ }
1374
+ if (block.type === "table") continue;
1375
+ }
1376
+ return true;
1377
+ }
1378
+ function buildSlackPresentationSelectBlock(block, selectIndex) {
1379
+ const options = block.options.flatMap((option) => {
1380
+ const target = resolveSlackOptionTarget(option);
1381
+ return target ? [{
1382
+ label: option.label,
1383
+ ...target
1384
+ }] : [];
1385
+ }).filter(isRenderableSlackOption).slice(0, 100);
1386
+ const optionKinds = new Set(options.map((option) => option.kind));
1387
+ return options.length > 0 && optionKinds.size === 1 ? {
1388
+ type: "actions",
1389
+ block_id: `openclaw_reply_select_${selectIndex}`,
1390
+ elements: [{
1391
+ type: "static_select",
1392
+ action_id: options[0]?.kind === "approval" ? buildSlackApprovalSelectActionId(selectIndex) : options[0]?.kind === "callback" ? buildSlackCallbackSelectActionId(selectIndex) : buildSlackReplySelectActionId(selectIndex),
1393
+ placeholder: {
1394
+ type: "plain_text",
1395
+ text: truncateSlackText(normalizeOptionalString(block.placeholder) ?? "Choose an option", 75),
1396
+ emoji: true
1397
+ },
1398
+ options: options.map((option) => ({
1399
+ text: {
1400
+ type: "plain_text",
1401
+ text: truncateSlackText(option.label, 75),
1402
+ emoji: true
1403
+ },
1404
+ value: option.value
1405
+ }))
1406
+ }]
1407
+ } : void 0;
1408
+ }
1409
+ //#endregion
1410
+ //#region extensions/slack/src/limits.ts
1411
+ const SLACK_TEXT_LIMIT = 8e3;
1412
+ const SLACK_MESSAGE_TEXT_RECOMMENDED_LIMIT = 4e3;
1413
+ const SLACK_EDIT_TEXT_MAX_BYTES = 4e3;
1414
+ const SLACK_MESSAGE_TEXT_HARD_LIMIT = 4e4;
1415
+ //#endregion
1416
+ //#region extensions/slack/src/authored-text.ts
1417
+ function normalizeComparableSlackText(text) {
1418
+ return text.trim().replace(/\s+/g, " ");
1419
+ }
1420
+ function isSlackAuthoredTextRepresentedInInteractive(text, interactive) {
1421
+ return isSlackAuthoredTextRepresentedInFragments(text, interactive?.blocks.flatMap((block) => block.type === "text" ? [block.text] : []) ?? []);
1422
+ }
1423
+ function isSlackAuthoredTextRepresentedInFragments(text, rawFragments) {
1424
+ const target = normalizeComparableSlackText(text);
1425
+ const fragments = rawFragments.map(normalizeComparableSlackText).filter(Boolean);
1426
+ for (let start = 0; start < fragments.length; start += 1) {
1427
+ let combined = "";
1428
+ for (let end = start; end < fragments.length; end += 1) {
1429
+ combined = normalizeComparableSlackText(`${combined} ${fragments[end]}`);
1430
+ if (combined === target) return true;
1431
+ if (combined.length > target.length) break;
1432
+ }
1433
+ }
1434
+ return false;
1435
+ }
1436
+ /** Resolve placement from producer facts, before accessibility text changes the payload text. */
1437
+ function resolveSlackAuthoredTextPlacement(params) {
1438
+ const text = normalizeOptionalString(params.text);
1439
+ if (!text) return "none";
1440
+ return params.renderedInBlocks || isSlackAuthoredTextRepresentedInFragments(text, params.renderedTextFragments ?? []) || isSlackAuthoredTextRepresentedInInteractive(text, params.interactive) ? "blocks" : "outside-blocks";
1441
+ }
1442
+ //#endregion
1443
+ //#region extensions/slack/src/blocks-fallback.ts
1444
+ const SLACK_SELECT_ELEMENT_TYPES = /* @__PURE__ */ new Set([
1445
+ "static_select",
1446
+ "multi_static_select",
1447
+ "external_select",
1448
+ "multi_external_select",
1449
+ "users_select",
1450
+ "multi_users_select",
1451
+ "conversations_select",
1452
+ "multi_conversations_select",
1453
+ "channels_select",
1454
+ "multi_channels_select"
1455
+ ]);
1456
+ function readTextObject(value, options = {}) {
1457
+ const record = asOptionalRecord(value);
1458
+ if (!record) return;
1459
+ const text = normalizeOptionalString(record?.text);
1460
+ if (!text) return;
1461
+ return record.type === "plain_text" && options.nativeDataFormat !== "plain" ? escapeSlackMrkdwn(text) : text;
1462
+ }
1463
+ function readTextValue(value, options = {}) {
1464
+ return normalizeOptionalString(value) ?? readTextObject(value, options);
1465
+ }
1466
+ function renderSlackRichTextLeaf(element) {
1467
+ switch (element.type) {
1468
+ case "text": return typeof element.text === "string" ? escapeSlackMrkdwn(element.text) : "";
1469
+ case "link": return escapeSlackMrkdwn(normalizeOptionalString(element.text) ?? normalizeOptionalString(element.url) ?? "");
1470
+ case "user": {
1471
+ const userId = normalizeOptionalString(element.user_id);
1472
+ return userId ? escapeSlackMrkdwn(`<@${userId}>`) : "";
1473
+ }
1474
+ case "channel": {
1475
+ const channelId = normalizeOptionalString(element.channel_id);
1476
+ return channelId ? escapeSlackMrkdwn(`<#${channelId}>`) : "";
1477
+ }
1478
+ case "usergroup": {
1479
+ const usergroupId = normalizeOptionalString(element.usergroup_id);
1480
+ return usergroupId ? escapeSlackMrkdwn(`<!subteam^${usergroupId}>`) : "";
1481
+ }
1482
+ case "broadcast": {
1483
+ const range = normalizeOptionalString(element.range);
1484
+ return range ? escapeSlackMrkdwn(`<!${range}>`) : "";
1485
+ }
1486
+ case "emoji": {
1487
+ const name = normalizeOptionalString(element.name);
1488
+ return name ? `:${name}:` : "";
1489
+ }
1490
+ case "date": return escapeSlackMrkdwn(normalizeOptionalString(element.fallback) ?? "");
1491
+ default: return "";
1492
+ }
1493
+ }
1494
+ function renderSlackRichTextElement(value) {
1495
+ const element = asOptionalRecord(value);
1496
+ if (!element) return "";
1497
+ switch (element.type) {
1498
+ case "rich_text_section":
1499
+ case "rich_text_preformatted":
1500
+ case "rich_text_quote": return renderSlackRichTextElements(element.elements, "");
1501
+ case "rich_text_list": return renderSlackRichTextElements(element.elements, "\n");
1502
+ default: return renderSlackRichTextLeaf(element);
1503
+ }
1504
+ }
1505
+ function renderSlackRichTextElements(value, separator) {
1506
+ if (!Array.isArray(value)) return "";
1507
+ return value.map(renderSlackRichTextElement).filter(Boolean).join(separator);
1508
+ }
1509
+ function readImageText(block) {
1510
+ const altText = normalizeOptionalString(block.alt_text);
1511
+ return (altText ? escapeSlackMrkdwn(altText) : void 0) ?? readTextObject(block.title);
1512
+ }
1513
+ function readVideoText(block, options = {}) {
1514
+ const altText = normalizeOptionalString(block.alt_text);
1515
+ return readTextObject(block.title, options) ?? (altText ? escapeSlackMrkdwn(altText) : void 0);
1516
+ }
1517
+ function readContextText(block, options = {}) {
1518
+ if (!Array.isArray(block.elements)) return;
1519
+ const parts = block.elements.map((element) => {
1520
+ const record = asOptionalRecord(element);
1521
+ const altText = normalizeOptionalString(record?.alt_text);
1522
+ return readTextObject(record, options) ?? (altText ? escapeSlackMrkdwn(altText) : void 0);
1523
+ }).filter((part) => Boolean(part));
1524
+ return parts.length > 0 ? parts.join(" ") : void 0;
1525
+ }
1526
+ function readControlElementText(value, options = {}) {
1527
+ const element = asOptionalRecord(value);
1528
+ const type = normalizeOptionalString(element?.type);
1529
+ if (type === "button" || type === "workflow_button") return readTextValue(element?.text, options);
1530
+ if (type && SLACK_SELECT_ELEMENT_TYPES.has(type)) return readTextObject(element?.placeholder, options);
1531
+ }
1532
+ function readControlElementsText(values, options = {}) {
1533
+ const seen = /* @__PURE__ */ new Set();
1534
+ const labels = [];
1535
+ for (const value of values) {
1536
+ const candidate = readControlElementText(value, options);
1537
+ if (!candidate || seen.has(candidate)) continue;
1538
+ seen.add(candidate);
1539
+ labels.push(candidate);
1540
+ }
1541
+ return labels.length > 0 ? labels.join("\n") : void 0;
1542
+ }
1543
+ function readSectionText(block, options = {}) {
1544
+ const parts = [readTextObject(block.text, options)];
1545
+ if (Array.isArray(block.fields)) parts.push(...block.fields.map((field) => readTextObject(field, options)));
1546
+ parts.push(readControlElementText(block.accessory, options));
1547
+ const visibleParts = parts.filter((part) => Boolean(part));
1548
+ return visibleParts.length > 0 ? visibleParts.join("\n") : void 0;
1549
+ }
1550
+ function readActionsText(block, options = {}) {
1551
+ return Array.isArray(block.elements) ? readControlElementsText(block.elements, options) : void 0;
1552
+ }
1553
+ /** Read only user-visible text from one Slack block. */
1554
+ function renderSlackBlockFallbackText(raw, options = {}) {
1555
+ const block = asOptionalRecord(raw);
1556
+ if (!block) return;
1557
+ switch (block.type) {
1558
+ case "rich_text": return normalizeOptionalString(renderSlackRichTextElements(block.elements, "\n"));
1559
+ case "header": return readTextObject(block.text, options);
1560
+ case "section": return readSectionText(block, options);
1561
+ case "image": return readImageText(block) ?? "Shared an image";
1562
+ case "video": return readVideoText(block, options) ?? "Shared a video";
1563
+ case "file": return "Shared a file";
1564
+ case "context": return readContextText(block, options);
1565
+ case "actions": return readActionsText(block, options);
1566
+ case "data_visualization": return options.nativeDataFormat === "plain" ? renderSlackDataVisualizationFallbackText(block) : renderSlackDataVisualizationMrkdwnFallbackText(block);
1567
+ case "data_table": return options.nativeDataFormat === "plain" ? renderSlackDataTableFallbackText(block) : renderSlackDataTableMrkdwnFallbackText(block);
1568
+ case "table": return options.nativeDataFormat === "plain" ? renderSlackTableFallbackText(block) : renderSlackTableMrkdwnFallbackText(block);
1569
+ default: return;
1570
+ }
1571
+ }
1572
+ function buildSlackBlocksFallbackText(blocks) {
1573
+ for (const block of blocks) {
1574
+ const text = renderSlackBlockFallbackText(block);
1575
+ if (text) return text;
1576
+ }
1577
+ return "Shared a Block Kit message";
1578
+ }
1579
+ function buildSlackCompleteBlocksFallbackText(blocks) {
1580
+ return blocks.map((block) => renderSlackBlockFallbackText(block)).filter(Boolean).join("\n\n").trim() || buildSlackBlocksFallbackText(blocks);
1581
+ }
1582
+ //#endregion
1583
+ //#region extensions/slack/src/format.ts
1584
+ function escapeSlackMrkdwnSegment(text) {
1585
+ return text.replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;");
1586
+ }
1587
+ const SLACK_ANGLE_TOKEN_RE = /<[^>\n]+>/g;
1588
+ function isAllowedSlackAngleToken(token) {
1589
+ if (!token.startsWith("<") || !token.endsWith(">")) return false;
1590
+ const inner = token.slice(1, -1);
1591
+ return inner.startsWith("@") || inner.startsWith("#") || inner.startsWith("!") || inner.startsWith("mailto:") || inner.startsWith("tel:") || inner.startsWith("http://") || inner.startsWith("https://") || inner.startsWith("slack://");
1592
+ }
1593
+ function escapeSlackMrkdwnContent(text) {
1594
+ if (!text) return "";
1595
+ if (!text.includes("&") && !text.includes("<") && !text.includes(">")) return text;
1596
+ SLACK_ANGLE_TOKEN_RE.lastIndex = 0;
1597
+ const out = [];
1598
+ let lastIndex = 0;
1599
+ for (let match = SLACK_ANGLE_TOKEN_RE.exec(text); match; match = SLACK_ANGLE_TOKEN_RE.exec(text)) {
1600
+ const matchIndex = match.index ?? 0;
1601
+ out.push(escapeSlackMrkdwnSegment(text.slice(lastIndex, matchIndex)));
1602
+ const token = match[0] ?? "";
1603
+ out.push(isAllowedSlackAngleToken(token) ? token : escapeSlackMrkdwnSegment(token));
1604
+ lastIndex = matchIndex + token.length;
1605
+ }
1606
+ out.push(escapeSlackMrkdwnSegment(text.slice(lastIndex)));
1607
+ return out.join("");
1608
+ }
1609
+ function escapeSlackMrkdwnText(text) {
1610
+ if (!text) return "";
1611
+ if (!text.includes("&") && !text.includes("<") && !text.includes(">")) return text;
1612
+ return text.split("\n").map((line) => {
1613
+ if (line.startsWith("> ")) return `> ${escapeSlackMrkdwnContent(line.slice(2))}`;
1614
+ return escapeSlackMrkdwnContent(line);
1615
+ }).join("\n");
1616
+ }
1617
+ function buildSlackLink(link, text) {
1618
+ const href = link.href.trim();
1619
+ if (!href) return null;
1620
+ const trimmedLabel = text.slice(link.start, link.end).trim();
1621
+ const comparableHref = href.startsWith("mailto:") ? href.slice(7) : href;
1622
+ if (!(trimmedLabel.length > 0 && trimmedLabel !== href && trimmedLabel !== comparableHref)) return null;
1623
+ const safeHref = escapeSlackMrkdwnSegment(href);
1624
+ return {
1625
+ start: link.start,
1626
+ end: link.end,
1627
+ open: `<${safeHref}|`,
1628
+ close: ">"
1629
+ };
1630
+ }
1631
+ const SLACK_MRKDWN_WORD_CHARACTER_RE = /[\p{L}\p{M}\p{N}_]/u;
1632
+ const SLACK_MRKDWN_PUNCTUATION_RE = /\p{P}/u;
1633
+ const SLACK_MRKDWN_SYMBOL_RE = /\p{S}/u;
1634
+ const SLACK_MRKDWN_CJK_SCRIPT_RE = /[\p{Script_Extensions=Han}\p{Script_Extensions=Hiragana}\p{Script_Extensions=Katakana}\p{Script_Extensions=Hangul}]/u;
1635
+ const SLACK_MRKDWN_EMOJI_PRESENTATION_RE = /\p{Emoji_Presentation}/u;
1636
+ function getCodePointBefore(text, index) {
1637
+ if (index <= 0) return "";
1638
+ const lastCodeUnit = text.charCodeAt(index - 1);
1639
+ if (lastCodeUnit >= 56320 && lastCodeUnit <= 57343 && index > 1) {
1640
+ const previousCodeUnit = text.charCodeAt(index - 2);
1641
+ if (previousCodeUnit >= 55296 && previousCodeUnit <= 56319) return text.slice(index - 2, index);
1642
+ }
1643
+ return text[index - 1] ?? "";
1644
+ }
1645
+ function getCodePointAt(text, index) {
1646
+ const codePoint = text.codePointAt(index);
1647
+ return codePoint === void 0 ? "" : String.fromCodePoint(codePoint);
1648
+ }
1649
+ function isSlackCjkPunctuation(character) {
1650
+ if (!SLACK_MRKDWN_PUNCTUATION_RE.test(character)) return false;
1651
+ if (SLACK_MRKDWN_CJK_SCRIPT_RE.test(character)) return true;
1652
+ const codePoint = character.codePointAt(0);
1653
+ if (codePoint === void 0) return false;
1654
+ const width = eastAsianWidthType(codePoint);
1655
+ return width === "fullwidth" || width === "halfwidth" || width === "wide" && !SLACK_MRKDWN_EMOJI_PRESENTATION_RE.test(character);
1656
+ }
1657
+ function isUnsafeSlackEmphasisBoundary(character) {
1658
+ if (SLACK_MRKDWN_WORD_CHARACTER_RE.test(character)) return true;
1659
+ const codePoint = character.codePointAt(0);
1660
+ if (codePoint === void 0 || codePoint <= 127) return false;
1661
+ return SLACK_MRKDWN_SYMBOL_RE.test(character) || isSlackCjkPunctuation(character);
1662
+ }
1663
+ function makeSlackEmphasisStylesSafe(ir) {
1664
+ const styles = ir.styles.filter((span) => {
1665
+ if (span.style !== "italic" && span.style !== "bold") return true;
1666
+ return !isUnsafeSlackEmphasisBoundary(getCodePointBefore(ir.text, span.start)) && !isUnsafeSlackEmphasisBoundary(getCodePointAt(ir.text, span.end));
1667
+ });
1668
+ return styles.length === ir.styles.length ? ir : {
1669
+ ...ir,
1670
+ styles
1671
+ };
1672
+ }
1673
+ const SLACK_FORMAT_PROFILE = FormatCapabilityProfile.define({
1674
+ mechanism: "markdown",
1675
+ constructs: {
1676
+ underline: "strip",
1677
+ spoiler: "fallback",
1678
+ codeLanguage: "fallback",
1679
+ heading: "fallback",
1680
+ bulletList: "fallback",
1681
+ orderedList: "fallback",
1682
+ taskList: "fallback",
1683
+ table: "fallback",
1684
+ image: "fallback"
1685
+ },
1686
+ chunk: {
1687
+ limit: 4e3,
1688
+ unit: "chars",
1689
+ hardCap: 4e4
1690
+ }
1691
+ });
1692
+ const SLACK_ASSISTANT_TRANSCRIPT_PREFIX = "`Assistant:` ";
1693
+ function tokenizeSlackMrkdwn(text) {
1694
+ const tokens = [];
1695
+ for (let index = 0; index < text.length;) {
1696
+ if (text.startsWith("```", index)) {
1697
+ tokens.push("```");
1698
+ index += 3;
1699
+ continue;
1700
+ }
1701
+ const entity = [
1702
+ "&amp;",
1703
+ "&lt;",
1704
+ "&gt;"
1705
+ ].find((candidate) => text.startsWith(candidate, index));
1706
+ if (entity) {
1707
+ tokens.push(entity);
1708
+ index += entity.length;
1709
+ continue;
1710
+ }
1711
+ if (text[index] === "<") {
1712
+ const end = text.indexOf(">", index + 1);
1713
+ const angleToken = end >= 0 ? text.slice(index, end + 1) : void 0;
1714
+ if (angleToken && !angleToken.includes("\n") && isAllowedSlackAngleToken(angleToken)) {
1715
+ tokens.push(angleToken);
1716
+ index += angleToken.length;
1717
+ continue;
1718
+ }
1719
+ }
1720
+ const codePoint = text.codePointAt(index);
1721
+ if (codePoint === void 0) break;
1722
+ const character = String.fromCodePoint(codePoint);
1723
+ index += character.length;
1724
+ if (character === "\\" && index < text.length) {
1725
+ const escapedCodePoint = text.codePointAt(index);
1726
+ if (escapedCodePoint !== void 0) {
1727
+ const escapedCharacter = String.fromCodePoint(escapedCodePoint);
1728
+ tokens.push(character + escapedCharacter);
1729
+ index += escapedCharacter.length;
1730
+ continue;
1731
+ }
1732
+ }
1733
+ tokens.push(character);
1734
+ }
1735
+ return tokens;
1736
+ }
1737
+ function resolveSlackCodeMarkerTransition(active, token) {
1738
+ if (token === "```" && active !== "`") return active === "```" ? void 0 : "```";
1739
+ if (token === "`" && active !== "```") return active === "`" ? void 0 : "`";
1740
+ return null;
1741
+ }
1742
+ function maskSlackExcludedText(text) {
1743
+ return text.split("\n").map((line) => line.trim() ? `x${" ".repeat(Math.max(0, line.length - 1))}` : " ".repeat(line.length)).join("\n");
1744
+ }
1745
+ function maskSlackExcludedRanges(projection) {
1746
+ let masked = "";
1747
+ let cursor = 0;
1748
+ for (const range of projection.excludedRanges) {
1749
+ masked += projection.text.slice(cursor, range.start);
1750
+ masked += maskSlackExcludedText(projection.text.slice(range.start, range.end));
1751
+ cursor = range.end;
1752
+ }
1753
+ return masked + projection.text.slice(cursor);
1754
+ }
1755
+ function slackProjectionHasRoleHeader(projection) {
1756
+ return Boolean(markdownToIR(maskSlackExcludedRanges(projection), {
1757
+ assistantTranscriptRoleHeaders: true,
1758
+ autolink: false,
1759
+ blockquotePrefix: "",
1760
+ headingStyle: "none",
1761
+ linkify: false,
1762
+ tableMode: "off"
1763
+ }).annotations?.some((annotation) => annotation.type === "assistant_transcript_role"));
1764
+ }
1765
+ function decodeSlackMrkdwnEntities(text) {
1766
+ return text.replaceAll("&amp;", "&").replaceAll("&lt;", "<").replaceAll("&gt;", ">");
1767
+ }
1768
+ function projectSlackAngleToken(token, dateDisplay) {
1769
+ const inner = token.slice(1, -1);
1770
+ if (inner.startsWith("!date^")) {
1771
+ const fallbackSeparator = inner.indexOf("|");
1772
+ const tokenString = (fallbackSeparator === -1 ? inner : inner.slice(0, fallbackSeparator)).split("^")[2] ?? "";
1773
+ const fallback = fallbackSeparator === -1 ? "" : inner.slice(fallbackSeparator + 1);
1774
+ return decodeSlackMrkdwnEntities(dateDisplay === "fallback" ? fallback || tokenString : tokenString || fallback);
1775
+ }
1776
+ const labelSeparator = inner.indexOf("|");
1777
+ if (labelSeparator >= 0) return decodeSlackMrkdwnEntities(inner.slice(labelSeparator + 1));
1778
+ if (inner.startsWith("@")) return "@";
1779
+ if (inner.startsWith("#")) return "#";
1780
+ if (inner.startsWith("!")) return "!";
1781
+ return decodeSlackMrkdwnEntities(inner);
1782
+ }
1783
+ function appendSlackVisibleProjection(projection, visible, excluded) {
1784
+ if (!visible) return;
1785
+ const start = projection.text.length;
1786
+ projection.text += visible;
1787
+ if (!excluded) return;
1788
+ const previous = projection.excludedRanges.at(-1);
1789
+ if (previous?.end === start) previous.end = projection.text.length;
1790
+ else projection.excludedRanges.push({
1791
+ start,
1792
+ end: projection.text.length
1793
+ });
1794
+ }
1795
+ function projectSlackMrkdwnVisibleText(text, dateDisplay) {
1796
+ const projection = {
1797
+ text: "",
1798
+ excludedRanges: []
1799
+ };
1800
+ let activeMarker;
1801
+ let lineHasVisibleContent = false;
1802
+ for (const token of tokenizeSlackMrkdwn(text)) {
1803
+ const transition = resolveSlackCodeMarkerTransition(activeMarker, token);
1804
+ if (transition !== null) {
1805
+ activeMarker = transition;
1806
+ continue;
1807
+ }
1808
+ let visible = token;
1809
+ if (isAllowedSlackAngleToken(token)) visible = activeMarker ? token : projectSlackAngleToken(token, dateDisplay);
1810
+ else if (token === "&amp;" || token === "&lt;" || token === "&gt;") visible = decodeSlackMrkdwnEntities(token);
1811
+ else if (!activeMarker && (token === "*" || token === "_" || token === "~")) visible = "";
1812
+ else if (!activeMarker && token === ">" && !lineHasVisibleContent) visible = "";
1813
+ else if (token.startsWith("\\") && token.length > 1) visible = token.slice(1);
1814
+ appendSlackVisibleProjection(projection, visible, activeMarker !== void 0);
1815
+ for (const character of visible) if (character === "\n") lineHasVisibleContent = false;
1816
+ else if (character !== " " && character !== " " && character !== "\r") lineHasVisibleContent = true;
1817
+ }
1818
+ return projection;
1819
+ }
1820
+ function protectSlackAssistantTranscriptRoleHeaders(text) {
1821
+ if (text.startsWith(SLACK_ASSISTANT_TRANSCRIPT_PREFIX)) return text;
1822
+ const tokenProjection = projectSlackMrkdwnVisibleText(text, "token");
1823
+ const fallbackProjection = projectSlackMrkdwnVisibleText(text, "fallback");
1824
+ if (!slackProjectionHasRoleHeader(tokenProjection) && !slackProjectionHasRoleHeader(fallbackProjection)) return text;
1825
+ return `${SLACK_ASSISTANT_TRANSCRIPT_PREFIX}${text}`;
1826
+ }
1827
+ function hardSliceSlackToken(token, limit) {
1828
+ const chunks = [];
1829
+ let chunk = "";
1830
+ for (const character of token) {
1831
+ if (chunk && chunk.length + character.length > limit) {
1832
+ chunks.push(chunk);
1833
+ chunk = "";
1834
+ }
1835
+ chunk += character;
1836
+ }
1837
+ if (chunk) chunks.push(chunk);
1838
+ return chunks;
1839
+ }
1840
+ function buildSlackRenderOptions() {
1841
+ return {
1842
+ annotationMarkers: { assistant_transcript_role: {
1843
+ open: "`",
1844
+ close: "`",
1845
+ suppressNestedFormatting: true
1846
+ } },
1847
+ styleMarkers: {
1848
+ bold: {
1849
+ open: "*",
1850
+ close: "*"
1851
+ },
1852
+ italic: {
1853
+ open: "_",
1854
+ close: "_"
1855
+ },
1856
+ strikethrough: {
1857
+ open: "~",
1858
+ close: "~"
1859
+ },
1860
+ code: {
1861
+ open: "`",
1862
+ close: "`"
1863
+ },
1864
+ code_block: {
1865
+ open: "```\n",
1866
+ close: "```"
1867
+ }
1868
+ },
1869
+ escapeText: escapeSlackMrkdwnText,
1870
+ buildLink: buildSlackLink
1871
+ };
1872
+ }
1873
+ function markdownToSlackMrkdwn(markdown, options = {}) {
1874
+ return renderMarkdownWithMarkers(makeSlackEmphasisStylesSafe(markdownToIR(markdown ?? "", {
1875
+ assistantTranscriptRoleHeaders: true,
1876
+ linkify: false,
1877
+ autolink: false,
1878
+ headingStyle: "rich",
1879
+ blockquotePrefix: "> ",
1880
+ tableMode: options.tableMode
1881
+ })), buildSlackRenderOptions(), SLACK_FORMAT_PROFILE);
1882
+ }
1883
+ function normalizeSlackOutboundText(markdown) {
1884
+ return protectSlackAssistantTranscriptRoleHeaders(markdownToSlackMrkdwn(markdown ?? ""));
1885
+ }
1886
+ /** Chunk already-rendered Slack mrkdwn without splitting entities or code markers. */
1887
+ function chunkSlackMrkdwnText(text, limit) {
1888
+ if (text.length <= limit) return [text];
1889
+ if (!(text.includes("`") || text.includes("&amp;") || text.includes("&lt;") || text.includes("&gt;") || (text.match(/<[^>\n]+>/gu)?.some(isAllowedSlackAngleToken) ?? false) || /\\[\s\S]/u.test(text))) return chunkTextForOutbound(text, limit);
1890
+ const chunks = [];
1891
+ let activeMarker;
1892
+ let content = "";
1893
+ const wrapper = () => activeMarker && limit > activeMarker.length * 2 ? activeMarker : void 0;
1894
+ const capacity = () => limit - (wrapper()?.length ?? 0) * 2;
1895
+ const flush = () => {
1896
+ if (!content) return;
1897
+ const marker = wrapper();
1898
+ chunks.push(marker ? `${marker}${content}${marker}` : content);
1899
+ content = "";
1900
+ };
1901
+ for (const token of tokenizeSlackMrkdwn(text)) {
1902
+ const transition = resolveSlackCodeMarkerTransition(activeMarker, token);
1903
+ if (transition !== null) {
1904
+ flush();
1905
+ activeMarker = transition;
1906
+ continue;
1907
+ }
1908
+ const contentLimit = capacity();
1909
+ if (token.length > contentLimit) {
1910
+ flush();
1911
+ const marker = wrapper();
1912
+ if (activeMarker && isAllowedSlackAngleToken(token)) {
1913
+ if (marker) chunks.push(...hardSliceSlackToken(token, contentLimit).map((fragment) => `${marker}${fragment}${marker}`));
1914
+ else chunks.push(...hardSliceSlackToken(escapeSlackMrkdwnSegment(token), limit));
1915
+ continue;
1916
+ }
1917
+ chunks.push(...token.length <= limit ? [token] : chunkTextForOutbound(token, limit));
1918
+ continue;
1919
+ }
1920
+ if (content && content.length + token.length > contentLimit) flush();
1921
+ content += token;
1922
+ }
1923
+ flush();
1924
+ return chunks;
1925
+ }
1926
+ function markdownToSlackMrkdwnChunks(markdown, limit, options = {}) {
1927
+ const ir = makeSlackEmphasisStylesSafe(markdownToIR(markdown ?? "", {
1928
+ assistantTranscriptRoleHeaders: true,
1929
+ linkify: false,
1930
+ autolink: false,
1931
+ headingStyle: "rich",
1932
+ blockquotePrefix: "> ",
1933
+ tableMode: options.tableMode
1934
+ }));
1935
+ const renderOptions = buildSlackRenderOptions();
1936
+ return renderMarkdownIRChunksWithinLimit({
1937
+ ir,
1938
+ limit,
1939
+ renderChunk: (chunk) => protectSlackAssistantTranscriptRoleHeaders(renderMarkdownWithMarkers(chunk, renderOptions, SLACK_FORMAT_PROFILE)),
1940
+ measureRendered: (rendered) => rendered.length
1941
+ }).map(({ rendered }) => rendered);
1942
+ }
1943
+ //#endregion
1944
+ //#region extensions/slack/src/native-data-blocks.ts
1945
+ const SLACK_MALFORMED_NATIVE_DATA_FALLBACK = "Slack could not render this chart or table data.";
1946
+ const SLACK_RESPONSE_URL_BODY_LIMIT_BYTES = 16 * 1024;
1947
+ const SLACK_RESPONSE_URL_BODY_TIMEOUT_MS = 3e4;
1948
+ /** Detect a native Slack chart or table block. */
1949
+ function hasSlackNativeDataBlock(blocks) {
1950
+ return hasSlackDataVisualizationBlock(blocks) || hasSlackDataTableBlock(blocks);
1951
+ }
1952
+ /** Keep every sibling block while removing Slack's native data blocks. */
1953
+ function stripSlackNativeDataBlocks(blocks) {
1954
+ return (blocks ?? []).filter((block) => {
1955
+ const type = asOptionalRecord(block)?.type;
1956
+ return type !== "data_table" && type !== "data_visualization";
1957
+ });
1958
+ }
1959
+ /** Match Slack's Web API and response_url `invalid_blocks` error shapes. */
1960
+ function isSlackInvalidBlocksError(error) {
1961
+ const record = asOptionalRecord(error);
1962
+ const rawData = record?.data;
1963
+ const data = asOptionalRecord(rawData);
1964
+ const rawResponseData = asOptionalRecord(record?.response)?.data;
1965
+ const responseData = asOptionalRecord(rawResponseData);
1966
+ const code = data?.error ?? (typeof rawData === "string" ? rawData : void 0) ?? responseData?.error ?? (typeof rawResponseData === "string" ? rawResponseData : void 0) ?? record?.error;
1967
+ return typeof code === "string" && code.trim().toLowerCase() === "invalid_blocks";
1968
+ }
1969
+ function isSlackResponseLike(value) {
1970
+ const record = asOptionalRecord(value);
1971
+ const body = asOptionalRecord(record?.body);
1972
+ return typeof record?.status === "number" && (typeof record.arrayBuffer === "function" || typeof body?.getReader === "function");
1973
+ }
1974
+ /** Consume Bolt 5's native response_url body under strict time and byte bounds. */
1975
+ async function isSlackInvalidBlocksResponse(response) {
1976
+ if (!isSlackResponseLike(response)) return isSlackInvalidBlocksError(response);
1977
+ try {
1978
+ const body = await readResponseTextLimited(response, SLACK_RESPONSE_URL_BODY_LIMIT_BYTES, { timeoutMs: SLACK_RESPONSE_URL_BODY_TIMEOUT_MS });
1979
+ if (body.trim().toLowerCase() === "invalid_blocks") return true;
1980
+ return isSlackInvalidBlocksError(JSON.parse(body));
1981
+ } catch {
1982
+ return false;
1983
+ }
1984
+ }
1985
+ /** Bolt 5 omits the response body from RespondError; 400 is contextual here. */
1986
+ function isSlackNativeResponseUrlRejection(error) {
1987
+ if (isSlackInvalidBlocksError(error)) return true;
1988
+ const record = asOptionalRecord(error);
1989
+ return record?.code === "slack_bolt_respond_error" && record.statusCode === 400;
1990
+ }
1991
+ /** Extract a complete accessible summary from a supported native data block. */
1992
+ function renderSlackNativeDataFallbackText(value) {
1993
+ const type = asOptionalRecord(value)?.type;
1994
+ if (type === "data_visualization") return renderSlackDataVisualizationMrkdwnFallbackText(value);
1995
+ if (type === "data_table") return renderSlackDataTableMrkdwnFallbackText(value);
1996
+ }
1997
+ function comparableText(value) {
1998
+ return value.replace(/\s+/gu, " ").trim();
1999
+ }
2000
+ function countComparableOccurrences(value, candidate) {
2001
+ if (!candidate) return 0;
2002
+ let count = 0;
2003
+ let offset = 0;
2004
+ while ((offset = value.indexOf(candidate, offset)) >= 0) {
2005
+ count += 1;
2006
+ offset += candidate.length;
2007
+ }
2008
+ return count;
2009
+ }
2010
+ /** Consume native fallback occurrences already carried by an explicit outside base. */
2011
+ function createSlackNativeDataBaseTextConsumer(baseText) {
2012
+ const comparableBase = comparableText(baseText);
2013
+ const remainingByText = /* @__PURE__ */ new Map();
2014
+ return (text) => {
2015
+ const comparable = comparableText(text);
2016
+ const remaining = remainingByText.get(comparable) ?? countComparableOccurrences(comparableBase, comparable);
2017
+ if (remaining <= 0) return false;
2018
+ remainingByText.set(comparable, remaining - 1);
2019
+ return true;
2020
+ };
2021
+ }
2022
+ function appendSlackNativeDataFallback(text, blocks, render) {
2023
+ const base = text.trim();
2024
+ const consumeFromBase = createSlackNativeDataBaseTextConsumer(base);
2025
+ const dataTexts = [];
2026
+ for (const block of blocks ?? []) {
2027
+ const dataText = render(block);
2028
+ if (!dataText) continue;
2029
+ if (!comparableText(dataText) || consumeFromBase(dataText)) continue;
2030
+ dataTexts.push(dataText);
2031
+ }
2032
+ return [base, ...dataTexts].filter(Boolean).join("\n\n");
2033
+ }
2034
+ function renderSlackNativeDataPlainTextBlock(value) {
2035
+ const type = asOptionalRecord(value)?.type;
2036
+ if (type === "data_table") return renderSlackDataTableCompactPlainTextFallback(value);
2037
+ if (type === "data_visualization") return renderSlackDataVisualizationFallbackText(value);
2038
+ }
2039
+ /** Build formatting-disabled accessibility text from actual Slack block order. */
2040
+ function buildSlackNativeDataAccessibilityText(text, blocks) {
2041
+ const parts = [];
2042
+ const consumeFromBase = createSlackNativeDataBaseTextConsumer(text);
2043
+ const append = (value) => {
2044
+ if (value?.trim()) parts.push(value);
2045
+ };
2046
+ append(text);
2047
+ for (const block of blocks ?? []) {
2048
+ const isNativeData = hasSlackNativeDataBlock([block]);
2049
+ const rendered = renderSlackNativeDataPlainTextBlock(block) ?? renderSlackBlockFallbackText(block, { nativeDataFormat: "plain" }) ?? (isNativeData ? "Slack could not render this chart or table data." : void 0);
2050
+ if (!rendered || isNativeData && consumeFromBase(rendered)) continue;
2051
+ append(rendered);
2052
+ }
2053
+ return parts.join("\n\n");
2054
+ }
2055
+ /** Preserve every native data block's content once when Slack requires a text-only retry. */
2056
+ function appendSlackNativeDataFallbackText(text, blocks) {
2057
+ return appendSlackNativeDataFallback(text, blocks, renderSlackNativeDataFallbackText);
2058
+ }
2059
+ /** Build a bounded plain-text retry without activating control tokens. */
2060
+ function appendSlackNativeDataPlainTextFallback(text, blocks) {
2061
+ return appendSlackNativeDataFallback(text, blocks, renderSlackNativeDataPlainTextBlock);
2062
+ }
2063
+ //#endregion
2064
+ //#region extensions/slack/src/reply-blocks.ts
2065
+ function parseSlackReplyBlockSegments(value) {
2066
+ if (value === void 0) return;
2067
+ if (!Array.isArray(value)) throw new Error("Slack rendered presentation segments must be an array");
2068
+ return value.map((raw) => {
2069
+ if (!raw || typeof raw !== "object" || Array.isArray(raw)) throw new Error("Slack rendered presentation segment must be an object");
2070
+ const segment = raw;
2071
+ if (segment.kind === "text" && typeof segment.text === "string" && segment.mrkdwn === false) return {
2072
+ kind: "text",
2073
+ text: segment.text,
2074
+ mrkdwn: false
2075
+ };
2076
+ if (segment.kind === "blocks") {
2077
+ const blocks = parseSlackBlocksInput(segment.blocks);
2078
+ if (blocks?.length) return {
2079
+ kind: "blocks",
2080
+ blocks
2081
+ };
2082
+ }
2083
+ throw new Error("Slack rendered presentation segment is invalid");
2084
+ });
2085
+ }
2086
+ /** Convert compiled segments into ordered sender calls without re-inferring text placement. */
2087
+ function resolveSlackReplyDeliveryMessages(params) {
2088
+ const messages = [];
2089
+ let outsideText = params.authoredTextPlacement === "outside-blocks" ? params.text?.trim() ?? "" : "";
2090
+ for (const segment of params.segments) {
2091
+ if (segment.kind === "text") {
2092
+ const text = [outsideText, segment.text].filter(Boolean).join("\n\n");
2093
+ outsideText = "";
2094
+ if (text) messages.push({
2095
+ text,
2096
+ textIsSlackPlainText: true
2097
+ });
2098
+ continue;
2099
+ }
2100
+ const baseText = outsideText;
2101
+ outsideText = "";
2102
+ const text = buildSlackNativeDataAccessibilityText(baseText, segment.blocks) || buildSlackBlocksFallbackText(segment.blocks);
2103
+ const authoredTextPlacement = baseText ? "outside-blocks" : params.authoredTextPlacement === "blocks" ? "blocks" : "none";
2104
+ messages.push({
2105
+ text,
2106
+ blocks: segment.blocks,
2107
+ authoredTextPlacement,
2108
+ ...baseText ? { nativeDataFallbackBaseText: baseText } : {}
2109
+ });
2110
+ }
2111
+ if (outsideText) messages.push({ text: outsideText });
2112
+ return messages;
2113
+ }
2114
+ function resolveSlackReplyText(payload, text = payload.text) {
2115
+ const presentation = normalizeMessagePresentation(payload.presentation);
2116
+ return presentation ? renderSlackMessagePresentationFallbackText({
2117
+ text,
2118
+ presentation
2119
+ }) : text ?? "";
2120
+ }
2121
+ function resolveSlackReplyRenderPlan(payload, text = payload.text) {
2122
+ const hasStructuredContent = hasSlackReplyStructuredContent(payload);
2123
+ const resolution = resolveSlackReplyBlockResolution({
2124
+ ...payload,
2125
+ text
2126
+ }, { materializeAuthoredText: hasStructuredContent });
2127
+ const messages = resolveSlackReplyDeliveryMessages({
2128
+ authoredTextPlacement: resolution.authoredTextPlacement,
2129
+ segments: resolution.segments,
2130
+ text
2131
+ });
2132
+ if (messages.length <= 1) {
2133
+ const [message] = messages;
2134
+ const sourceText = text?.trim() ?? "";
2135
+ const blocks = message?.authoredTextPlacement === "blocks" ? addPreviewVerbatimToAuthoredTextBlocks(message.blocks, sourceText) : message?.blocks;
2136
+ let renderedText = message?.text ?? resolveSlackReplyText(payload, text);
2137
+ let textIsSlackMrkdwn = Boolean(message && !message.textIsSlackPlainText && (message.authoredTextPlacement !== "outside-blocks" || message.nativeDataFallbackBaseText));
2138
+ if (blocks?.length && sourceText) {
2139
+ if (hasSlackNativeDataBlock(blocks)) {
2140
+ renderedText = appendSlackNativeDataFallbackText(sourceText, blocks) || renderedText;
2141
+ textIsSlackMrkdwn = true;
2142
+ } else if (message?.authoredTextPlacement === "blocks") {
2143
+ renderedText = sourceText;
2144
+ textIsSlackMrkdwn = false;
2145
+ }
2146
+ }
2147
+ return {
2148
+ mode: "single",
2149
+ text: renderedText,
2150
+ ...blocks ? { blocks } : {},
2151
+ ...textIsSlackMrkdwn ? { textIsSlackMrkdwn: true } : {}
2152
+ };
2153
+ }
2154
+ const blockPart = messages.find((message) => message.blocks?.length);
2155
+ return {
2156
+ mode: "split",
2157
+ fallbackText: messages.map((message) => message.text).filter(Boolean).join("\n\n"),
2158
+ ...blockPart ? { blockPart: {
2159
+ text: blockPart.text,
2160
+ blocks: blockPart.blocks
2161
+ } } : {}
2162
+ };
2163
+ }
2164
+ function readSlackChannelBlocks(payload) {
2165
+ const slackData = payload.channelData?.slack;
2166
+ if (!slackData || typeof slackData !== "object" || Array.isArray(slackData)) return [];
2167
+ return parseSlackBlocksInput(slackData.blocks) ?? [];
2168
+ }
2169
+ function hasSlackReplyStructuredContent(payload) {
2170
+ return Boolean(readSlackChannelBlocks(payload).length || normalizeMessagePresentation(payload.presentation) || payload.interactive?.blocks.length);
2171
+ }
2172
+ function renderSlackAuthoredTextFragments(blocks) {
2173
+ return blocks.flatMap((block) => {
2174
+ if (block.type === "actions") return [];
2175
+ const text = renderSlackBlockFallbackText(block, { nativeDataFormat: "plain" });
2176
+ return text ? [text] : [];
2177
+ });
2178
+ }
2179
+ function buildSlackAuthoredTextBlocks(text) {
2180
+ return markdownToSlackMrkdwnChunks(text, SLACK_SECTION_TEXT_MAX).map((chunk) => ({
2181
+ type: "section",
2182
+ text: {
2183
+ type: "mrkdwn",
2184
+ text: chunk,
2185
+ verbatim: true
2186
+ }
2187
+ }));
2188
+ }
2189
+ function addPreviewVerbatimToAuthoredTextBlocks(blocks, sourceText) {
2190
+ if (!blocks?.length || !sourceText) return blocks;
2191
+ const authoredChunks = new Set(markdownToSlackMrkdwnChunks(sourceText, SLACK_SECTION_TEXT_MAX));
2192
+ return blocks.map((block) => {
2193
+ const text = block.text;
2194
+ if (block.type !== "section" || text?.type !== "mrkdwn" || typeof text.text !== "string" || !authoredChunks.has(text.text)) return block;
2195
+ return {
2196
+ ...block,
2197
+ text: {
2198
+ ...text,
2199
+ verbatim: true
2200
+ }
2201
+ };
2202
+ });
2203
+ }
2204
+ function readLastBlockSegment(segments) {
2205
+ const last = segments.at(-1);
2206
+ return last?.kind === "blocks" ? last.blocks : [];
2207
+ }
2208
+ function readAllNativeBlocks(segments) {
2209
+ return segments.flatMap((segment) => segment.kind === "blocks" ? segment.blocks : []);
2210
+ }
2211
+ function appendTextSegment(segments, text) {
2212
+ const trimmed = text.trim();
2213
+ if (!trimmed) return;
2214
+ const last = segments.at(-1);
2215
+ if (last?.kind === "text") {
2216
+ last.text = `${last.text}\n\n${trimmed}`;
2217
+ return;
2218
+ }
2219
+ segments.push({
2220
+ kind: "text",
2221
+ text: trimmed,
2222
+ mrkdwn: false
2223
+ });
2224
+ }
2225
+ function appendBlockSegment(segments, blocks, startNew = false) {
2226
+ let shouldStartNew = startNew;
2227
+ for (const block of blocks) {
2228
+ const last = segments.at(-1);
2229
+ if (!shouldStartNew && last?.kind === "blocks" && last.blocks.length < 50) last.blocks.push(block);
2230
+ else segments.push({
2231
+ kind: "blocks",
2232
+ blocks: [block]
2233
+ });
2234
+ shouldStartNew = false;
2235
+ }
2236
+ }
2237
+ function resolvePresentationRenderOptions(segments, mode) {
2238
+ const allOffsets = resolveSlackBlockOffsets(readAllNativeBlocks(segments));
2239
+ return {
2240
+ ...mode === "current" ? resolveSlackBlockOffsets(readLastBlockSegment(segments)) : {},
2241
+ buttonIndexOffset: allOffsets.buttonIndexOffset,
2242
+ selectIndexOffset: allOffsets.selectIndexOffset
2243
+ };
2244
+ }
2245
+ function renderNativePresentation(presentation, options) {
2246
+ if (!canRenderSlackPresentation(presentation, options)) return;
2247
+ const blocks = buildSlackPresentationBlocks(presentation, options);
2248
+ return blocks.length > 0 ? blocks : void 0;
2249
+ }
2250
+ function appendPresentationPart(segments, presentation) {
2251
+ const currentBlocks = readLastBlockSegment(segments);
2252
+ const currentRendered = renderNativePresentation(presentation, resolvePresentationRenderOptions(segments, "current"));
2253
+ if (currentRendered && currentBlocks.length + currentRendered.length <= 50) {
2254
+ appendBlockSegment(segments, currentRendered);
2255
+ return;
2256
+ }
2257
+ const freshRendered = renderNativePresentation(presentation, resolvePresentationRenderOptions(segments, "new-message"));
2258
+ if (freshRendered) {
2259
+ appendBlockSegment(segments, freshRendered, true);
2260
+ return;
2261
+ }
2262
+ appendTextSegment(segments, renderMessagePresentationFallbackText({ presentation }));
2263
+ }
2264
+ const SLACK_BUTTON_CONTROL_ACTION_IDS = [
2265
+ SLACK_APPROVAL_BUTTON_ACTION_ID,
2266
+ SLACK_CALLBACK_BUTTON_ACTION_ID,
2267
+ SLACK_REPLY_BUTTON_ACTION_ID,
2268
+ SLACK_REPLY_LINK_ACTION_ID
2269
+ ];
2270
+ const SLACK_SELECT_CONTROL_ACTION_IDS = [
2271
+ SLACK_APPROVAL_SELECT_ACTION_ID,
2272
+ SLACK_CALLBACK_SELECT_ACTION_ID,
2273
+ SLACK_REPLY_SELECT_ACTION_ID
2274
+ ];
2275
+ function readGeneratedSlackControlRowKey(block) {
2276
+ const record = block;
2277
+ if (record.type !== "actions" || typeof record.block_id !== "string") return;
2278
+ const expectedElementType = /^openclaw_reply_buttons_[1-9]\d*$/.test(record.block_id) ? "button" : /^openclaw_reply_select_[1-9]\d*$/.test(record.block_id) ? "static_select" : void 0;
2279
+ if (!expectedElementType || !Array.isArray(record.elements) || record.elements.length === 0) return;
2280
+ const actionIds = expectedElementType === "button" ? SLACK_BUTTON_CONTROL_ACTION_IDS : SLACK_SELECT_CONTROL_ACTION_IDS;
2281
+ const elements = record.elements.map((element) => {
2282
+ if (!element || typeof element !== "object" || Array.isArray(element)) return;
2283
+ const { action_id: actionId, ...content } = element;
2284
+ const actionFamily = typeof actionId === "string" ? actionIds.find((candidate) => actionId.startsWith(`${candidate}:`)) : void 0;
2285
+ return actionFamily && content.type === expectedElementType ? [actionFamily, content] : void 0;
2286
+ });
2287
+ return elements.some((element) => element === void 0) ? void 0 : JSON.stringify(elements);
2288
+ }
2289
+ function subtractMirroredSlackControlRows(params) {
2290
+ const remainingMirrors = /* @__PURE__ */ new Map();
2291
+ for (const block of params.presentationBlocks) {
2292
+ const key = readGeneratedSlackControlRowKey(block);
2293
+ if (key) remainingMirrors.set(key, (remainingMirrors.get(key) ?? 0) + 1);
2294
+ }
2295
+ return params.interactiveBlocks.filter((block) => {
2296
+ const key = readGeneratedSlackControlRowKey(block);
2297
+ const remaining = key ? remainingMirrors.get(key) ?? 0 : 0;
2298
+ if (!key || remaining === 0) return true;
2299
+ remainingMirrors.set(key, remaining - 1);
2300
+ return false;
2301
+ });
2302
+ }
2303
+ /**
2304
+ * Resolve reply content into transport-order segments. Each blocks segment is
2305
+ * one Slack message; text segments carry complete fallback content between it.
2306
+ */
2307
+ function resolveSlackReplyBlockResolution(payload, options = {}) {
2308
+ const segments = [];
2309
+ const channelBlocks = readSlackChannelBlocks(payload);
2310
+ let compiledChannelBlocks = channelBlocks;
2311
+ let authoredTextKnownInBlocks = false;
2312
+ if (options.materializeAuthoredText) {
2313
+ const rawTextFragments = renderSlackAuthoredTextFragments(channelBlocks);
2314
+ const initialPlacement = resolveSlackAuthoredTextPlacement({
2315
+ text: payload.text,
2316
+ interactive: payload.interactive,
2317
+ renderedTextFragments: rawTextFragments
2318
+ });
2319
+ authoredTextKnownInBlocks = initialPlacement === "blocks";
2320
+ const text = normalizeOptionalString(payload.text);
2321
+ if (text && initialPlacement === "outside-blocks") {
2322
+ const textBlocks = buildSlackAuthoredTextBlocks(text);
2323
+ if (resolveSlackAuthoredTextPlacement({
2324
+ text: renderSlackAuthoredTextFragments(textBlocks).join(" "),
2325
+ renderedTextFragments: rawTextFragments
2326
+ }) !== "blocks") compiledChannelBlocks = [...channelBlocks, ...textBlocks];
2327
+ authoredTextKnownInBlocks = true;
2328
+ }
2329
+ }
2330
+ if (compiledChannelBlocks.length > 0) appendBlockSegment(segments, compiledChannelBlocks);
2331
+ const presentation = normalizeMessagePresentation(payload.presentation);
2332
+ const presentationBlockOffset = readAllNativeBlocks(segments).length;
2333
+ if (presentation?.title) appendPresentationPart(segments, {
2334
+ title: presentation.title,
2335
+ blocks: []
2336
+ });
2337
+ for (const block of presentation?.blocks ?? []) appendPresentationPart(segments, { blocks: [block] });
2338
+ const renderedPresentationBlocks = readAllNativeBlocks(segments).slice(presentationBlockOffset);
2339
+ appendBlockSegment(segments, subtractMirroredSlackControlRows({
2340
+ interactiveBlocks: buildSlackInteractiveBlocks(payload.interactive, resolveSlackBlockOffsets(readAllNativeBlocks(segments))),
2341
+ presentationBlocks: renderedPresentationBlocks
2342
+ }));
2343
+ const renderedTextFragments = segments.flatMap((segment) => {
2344
+ if (segment.kind === "text") return [segment.text];
2345
+ return renderSlackAuthoredTextFragments(segment.blocks);
2346
+ });
2347
+ const authoredTextPlacement = resolveSlackAuthoredTextPlacement({
2348
+ text: payload.text,
2349
+ interactive: payload.interactive,
2350
+ renderedTextFragments
2351
+ });
2352
+ return {
2353
+ authoredTextPlacement: authoredTextKnownInBlocks ? "blocks" : authoredTextPlacement,
2354
+ segments
2355
+ };
2356
+ }
2357
+ /** Return the single-message native shape when no ordered text fallback is required. */
2358
+ function resolveSlackReplyBlocks(payload) {
2359
+ const { segments } = resolveSlackReplyBlockResolution(payload);
2360
+ return segments.length === 1 && segments[0]?.kind === "blocks" ? segments[0].blocks : void 0;
2361
+ }
2362
+ //#endregion
2363
+ //#region extensions/slack/src/detached-target-admission.ts
2364
+ function assertSlackDetachedTargetAllowed(accountId, teamId) {
2365
+ const installationKind = getSlackInstallationKind(accountId);
2366
+ if (installationKind && installationKind !== "workspace" && !teamId) throw new Error("unsupported_enterprise_slack_delivery: detached Slack operations require team:<team-id>:channel:<channel-id> or team:<team-id>:user:<user-id> until a workspace install is authenticated");
2367
+ }
2368
+ //#endregion
2369
+ //#region extensions/slack/src/monitor/allow-list.ts
2370
+ const SLACK_SLUG_CACHE_MAX = 512;
2371
+ const SLACK_STABLE_USER_ID_RE = /^[ubw][a-z0-9]+$/;
2372
+ const slackSlugCache = /* @__PURE__ */ new Map();
2373
+ function normalizeSlackSlug(raw) {
2374
+ const key = raw ?? "";
2375
+ const cached = slackSlugCache.get(key);
2376
+ if (cached !== void 0) return cached;
2377
+ const normalized = normalizeHyphenSlug(raw);
2378
+ slackSlugCache.set(key, normalized);
2379
+ if (slackSlugCache.size > SLACK_SLUG_CACHE_MAX) {
2380
+ const oldest = slackSlugCache.keys().next();
2381
+ if (!oldest.done) slackSlugCache.delete(oldest.value);
2382
+ }
2383
+ return normalized;
2384
+ }
2385
+ function normalizeAllowList(list) {
2386
+ return normalizeStringEntries$1(list);
2387
+ }
2388
+ function normalizeAllowListLower(list) {
2389
+ return normalizeStringEntriesLower(list);
2390
+ }
2391
+ function normalizeSlackAllowOwnerEntry(entry) {
2392
+ const trimmed = normalizeOptionalLowercaseString(entry);
2393
+ if (!trimmed || trimmed === "*") return;
2394
+ try {
2395
+ const target = parseSlackTarget(trimmed);
2396
+ if (target?.kind === "user" && target.teamId) return target.id.toLowerCase();
2397
+ } catch {
2398
+ return;
2399
+ }
2400
+ const withoutPrefix = trimmed.replace(/^(slack:|user:)/, "");
2401
+ return SLACK_STABLE_USER_ID_RE.test(withoutPrefix) ? withoutPrefix : void 0;
2402
+ }
2403
+ function resolveSlackAllowListMatch(params) {
2404
+ const compiledAllowList = compileAllowlist(params.allowList);
2405
+ const teamId = normalizeOptionalLowercaseString(params.teamId);
2406
+ const id = normalizeOptionalLowercaseString(params.id);
2407
+ const name = normalizeOptionalLowercaseString(params.name);
2408
+ const slug = normalizeSlackSlug(name);
2409
+ const scopedCandidates = [{
2410
+ value: teamId && id ? `team:${teamId}:user:${id}` : void 0,
2411
+ source: "workspace-id"
2412
+ }];
2413
+ const unscopedCandidates = [
2414
+ {
2415
+ value: id,
2416
+ source: "id"
2417
+ },
2418
+ {
2419
+ value: id ? `slack:${id}` : void 0,
2420
+ source: "prefixed-id"
2421
+ },
2422
+ {
2423
+ value: id ? `user:${id}` : void 0,
2424
+ source: "prefixed-user"
2425
+ },
2426
+ ...params.allowNameMatching === true ? [
2427
+ {
2428
+ value: name,
2429
+ source: "name"
2430
+ },
2431
+ {
2432
+ value: name ? `slack:${name}` : void 0,
2433
+ source: "prefixed-name"
2434
+ },
2435
+ {
2436
+ value: slug,
2437
+ source: "slug"
2438
+ }
2439
+ ] : []
2440
+ ];
2441
+ return resolveCompiledAllowlistMatch({
2442
+ compiledAllowlist: compiledAllowList,
2443
+ candidates: [...scopedCandidates, ...unscopedCandidates]
2444
+ });
2445
+ }
2446
+ function allowListMatches(params) {
2447
+ return resolveSlackAllowListMatch(params).allowed;
2448
+ }
2449
+ function resolveSlackUserAllowed(params) {
2450
+ const allowList = normalizeAllowListLower(params.allowList);
2451
+ if (allowList.length === 0) return true;
2452
+ return allowListMatches({
2453
+ allowList,
2454
+ teamId: params.teamId,
2455
+ id: params.userId,
2456
+ name: params.userName,
2457
+ allowNameMatching: params.allowNameMatching
2458
+ });
2459
+ }
2460
+ function resolveSlackUserAllowListForTeam(params) {
2461
+ const allowList = normalizeAllowListLower(params.allowList);
2462
+ const teamId = normalizeOptionalLowercaseString(params.teamId);
2463
+ return allowList.flatMap((entry) => {
2464
+ if (entry === "*") return [entry];
2465
+ if (!entry.startsWith("team:")) return [entry];
2466
+ try {
2467
+ const target = parseSlackTarget(entry);
2468
+ if (target?.kind === "user" && target.teamId?.toLowerCase() === teamId) return [entry];
2469
+ return params.preserveUnmatchedScopedEntries ? [entry] : [];
2470
+ } catch {
2471
+ return params.preserveUnmatchedScopedEntries ? [entry] : [];
2472
+ }
2473
+ });
2474
+ }
2475
+ //#endregion
2476
+ //#region extensions/slack/src/group-policy.ts
2477
+ function buildSlackChannelIdCandidates(channelId, teamId, options) {
2478
+ const trimmedId = channelId?.trim();
2479
+ if (!trimmedId) return [];
2480
+ const lowercaseId = trimmedId.toLowerCase();
2481
+ const uppercaseId = trimmedId.toUpperCase();
2482
+ const exactTeamId = teamId || void 0;
2483
+ const lowercaseTeamId = exactTeamId?.toLowerCase();
2484
+ const uppercaseTeamId = exactTeamId?.toUpperCase();
2485
+ const scopedCandidates = buildChannelKeyCandidates(exactTeamId ? `team:${exactTeamId}:channel:${trimmedId}` : void 0, lowercaseTeamId ? `team:${lowercaseTeamId}:channel:${lowercaseId}` : void 0, uppercaseTeamId ? `team:${uppercaseTeamId}:channel:${uppercaseId}` : void 0);
2486
+ if (exactTeamId && options?.allowUnscoped !== true) return scopedCandidates;
2487
+ return buildChannelKeyCandidates(...scopedCandidates, trimmedId, lowercaseId, uppercaseId, `channel:${trimmedId}`, `channel:${lowercaseId}`, `channel:${uppercaseId}`);
2488
+ }
2489
+ function buildSlackChannelPolicyScope(params) {
2490
+ const channels = params.channels ?? {};
2491
+ const tree = { scopes: channels };
2492
+ const matchKey = params.candidates.find((candidate) => candidate !== "*" && Object.hasOwn(tree.scopes, candidate)) ?? (Object.hasOwn(tree.scopes, "*") ? "*" : void 0);
2493
+ const matchSource = matchKey === void 0 ? void 0 : matchKey === "*" ? "wildcard" : "direct";
2494
+ return {
2495
+ tree,
2496
+ path: matchKey ? [matchKey] : [],
2497
+ entry: matchKey ? channels[matchKey] : void 0,
2498
+ wildcardEntry: channels["*"],
2499
+ matchKey,
2500
+ matchSource
2501
+ };
2502
+ }
2503
+ function resolveSlackGroupPolicyScope(params) {
2504
+ const accountId = normalizeAccountId(params.accountId ?? resolveDefaultSlackAccountId(params.cfg));
2505
+ const channels = mergeSlackAccountConfig(params.cfg, accountId).channels;
2506
+ const channelName = params.groupChannel?.replace(/^#/, "");
2507
+ const allowUnscoped = getSlackInstallationKind(accountId) !== "enterprise";
2508
+ return buildSlackChannelPolicyScope({
2509
+ channels,
2510
+ candidates: buildChannelKeyCandidates(...buildSlackChannelIdCandidates(params.groupId, params.groupSpace, { allowUnscoped }), channelName ? `#${channelName}` : void 0, channelName, normalizeHyphenSlug(channelName))
2511
+ });
2512
+ }
2513
+ function resolveSlackGroupRequireMention(params) {
2514
+ return resolveScopeRequireMention(resolveSlackGroupPolicyScope(params));
2515
+ }
2516
+ function resolveSlackGroupToolPolicy(params) {
2517
+ return resolveScopeToolsPolicy({
2518
+ ...resolveSlackGroupPolicyScope(params),
2519
+ senderPolicyMode: params.senderPolicyMode,
2520
+ senderId: params.senderId,
2521
+ senderName: params.senderName,
2522
+ senderUsername: params.senderUsername,
2523
+ senderE164: params.senderE164
2524
+ });
2525
+ }
2526
+ //#endregion
2527
+ export { isSlackCallbackActionId as $, chunkSlackMrkdwnText as A, normalizeSlackApproverId as At, SLACK_TEXT_LIMIT as B, buildSlackNativeDataAccessibilityText as C, isSlackWorkspaceInstallation as Ct, isSlackInvalidBlocksResponse as D, getSlackExecApprovalApprovers as Dt, isSlackInvalidBlocksError as E, isSlackApprovalAuthorizedSender as Et, renderSlackBlockFallbackText as F, truncateSlackText as G, buildSlackPresentationBlocks as H, resolveSlackAuthoredTextPlacement as I, SLACK_REPLY_BUTTON_ACTION_ID as J, truncateSlackTextByUtf8Bytes as K, SLACK_EDIT_TEXT_MAX_BYTES as L, normalizeSlackOutboundText as M, shouldSuppressLocalSlackExecApprovalPrompt as Mt, buildSlackBlocksFallbackText as N, isSlackNativeResponseUrlRejection as O, isSlackExecApprovalAuthorizedSender as Ot, buildSlackCompleteBlocksFallbackText as P, isSlackApprovalActionId as Q, SLACK_MESSAGE_TEXT_HARD_LIMIT as R, appendSlackNativeDataPlainTextFallback as S, getSlackInstallationKind as St, hasSlackNativeDataBlock as T, getSlackApprovalApprovers as Tt, canRenderSlackPresentation as U, buildSlackInteractiveBlocks as V, countSlackTextUtf8Bytes as W, SLACK_REPLY_SELECT_ACTION_ID as X, SLACK_REPLY_LINK_ACTION_ID as Y, SLACK_SESSION_LINK_ACTION_ID as Z, resolveSlackReplyBlocks as _, resolveSlackFallbackOriginTarget as _t, allowListMatches as a, escapeSlackMrkdwn as at, SLACK_MALFORMED_NATIVE_DATA_FALLBACK as b, shouldHandleSlackPluginViaForwardingSession as bt, normalizeSlackAllowOwnerEntry as c, SLACK_MAX_BLOCKS as ct, resolveSlackUserAllowListForTeam as d, hasSlackPluginApprovers as dt, isSlackQuestionActionId as et, resolveSlackUserAllowed as f, isSlackAnyNativeApprovalClientEnabled as ft, resolveSlackReplyBlockResolution as g, resolveSessionSlackOriginTarget as gt, parseSlackReplyBlockSegments as h, resolveEnterpriseApprovalTeamId as ht, resolveSlackGroupToolPolicy as i, renderSlackMessagePresentationFallbackText as it, markdownToSlackMrkdwnChunks as j, resolveSlackExecApprovalTarget as jt, stripSlackNativeDataBlocks as k, isSlackExecApprovalClientEnabled as kt, normalizeSlackSlug as l, parseSlackBlocksInput as lt, hasSlackReplyStructuredContent as m, normalizeSlackOriginTarget as mt, buildSlackChannelPolicyScope as n, decodeSlackQuestionAction as nt, normalizeAllowList as o, decodeSlackApprovalAction as ot, assertSlackDetachedTargetAllowed as p, normalizeSlackForwardTarget as pt, SLACK_QUESTION_FINALIZATION_BLOCKS as q, resolveSlackGroupRequireMention as r, resolveSlackQuestionAction as rt, normalizeAllowListLower as s, SLACK_PRESENTATION_CAPABILITIES as st, buildSlackChannelIdCandidates as t, resolveSlackQuestionActionIds as tt, resolveSlackAllowListMatch as u, validateSlackBlocksArray as ut, resolveSlackReplyDeliveryMessages as v, resolveTurnSourceSlackOriginTarget as vt, createSlackNativeDataBaseTextConsumer as w, registerSlackInstallationState as wt, appendSlackNativeDataFallbackText as x, slackTargetsMatch as xt, resolveSlackReplyRenderPlan as y, shouldHandleSlackNativeApprovalRequest as yt, SLACK_MESSAGE_TEXT_RECOMMENDED_LIMIT as z };