@openclaw/slack 2026.9.6 → 2026.9.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (291) hide show
  1. package/assets/icon.png +0 -0
  2. package/dist/.setup/{account-inspect-DP1Bcwj4.mjs → account-inspect-DWBXpER6.mjs} +1 -1
  3. package/dist/.setup/{accounts-BBHvg0pY.mjs → accounts-D_N9IqNA.mjs} +23 -1
  4. package/dist/.setup/{action-runtime-B01d85zt.mjs → action-runtime-DfWvuiZd.mjs} +26 -41
  5. package/dist/.setup/action-runtime.runtime-Ck4bAWOX.mjs +2 -0
  6. package/dist/.setup/{actions-DKCtBgCI.mjs → actions-Df0CzcDl.mjs} +88 -175
  7. package/dist/.setup/{approval-handler.runtime-DMszKn_7.mjs → approval-handler.runtime-Ed6Sw5VK.mjs} +37 -47
  8. package/dist/.setup/{approval-message-updates-Tb_qRokK.mjs → approval-message-updates-BadvtA7R.mjs} +1 -2
  9. package/dist/.setup/{channel-CErYZ5zw.mjs → channel-C7bgPSTE.mjs} +181 -273
  10. package/dist/.setup/channel-meta-C443t-lI.mjs +27 -0
  11. package/dist/.setup/{channel-type-Dxk8VJUb.mjs → channel-type-ClOttrZ5.mjs} +13 -21
  12. package/dist/.setup/{channel.setup-BVoUtdPn.mjs → channel.setup-Dh2jzAjN.mjs} +35 -42
  13. package/dist/.setup/{config-schema-CyL279e7.mjs → config-schema-BZCxmHKG.mjs} +24 -21
  14. package/dist/.setup/{directory-config-CQTSH45W.mjs → directory-config-BOUWH3hR.mjs} +7 -10
  15. package/dist/.setup/{directory-live-BCcj89QV.mjs → directory-live-B2O4B_Ho.mjs} +9 -21
  16. package/dist/.setup/doctor-contract-CRN1Z_c7.mjs +342 -0
  17. package/dist/.setup/{message-tool-api-C0PTFaNV.mjs → message-tool-api-Cu4lwlGy.mjs} +34 -48
  18. package/dist/.setup/{provider-C-jPaGt2.mjs → monitor-BPVfkumU.mjs} +2181 -2693
  19. package/dist/.setup/{outbound-adapter-A7Wdn8ZT.mjs → outbound-adapter-Bv48XUjq.mjs} +10 -21
  20. package/dist/.setup/{pipeline.runtime-BlPOexmJ.mjs → pipeline.runtime-B1H63Frf.mjs} +311 -457
  21. package/dist/.setup/{plugin-routes-C3X0eVaK.mjs → plugin-routes-B8tooDLj.mjs} +1 -1
  22. package/dist/.setup/{policy-BApW53pI.mjs → policy-D-jfM174.mjs} +5 -5
  23. package/dist/.setup/{probe-DiYIMPJo.mjs → probe-B2Y9qc_z.mjs} +101 -39
  24. package/dist/.setup/{registry-bbjH7IHX.mjs → registry-CIbMfuf8.mjs} +6 -2
  25. package/dist/.setup/{relay-source-DfOnjJTE.mjs → relay-source-BpKdjsll.mjs} +10 -12
  26. package/dist/.setup/{replies-BBAJxUOQ.mjs → replies-BAnUtr2f.mjs} +16 -76
  27. package/dist/.setup/{reply-blocks-Bm8kf6mK.mjs → reply-blocks-SE1kTE3I.mjs} +27 -154
  28. package/dist/.setup/{resolve-channels-BXbMBbJD.mjs → resolve-channels-XXBn8UU_.mjs} +4 -5
  29. package/dist/.setup/{resolve-users-65WqvIqD.mjs → resolve-users-DW0ngD03.mjs} +20 -22
  30. package/dist/.setup/{scopes-h3YB-mMs.mjs → scopes-CasuDvaa.mjs} +6 -17
  31. package/dist/.setup/{secret-contract-DxmvbxBF.mjs → secret-contract-BaZcu6P_.mjs} +15 -20
  32. package/dist/.setup/{secret-contract-api-D9UfYujm.mjs → secret-contract-api-Dp6290Vg.mjs} +1 -1
  33. package/dist/.setup/{security-audit-BypHqcq5.mjs → security-audit-BqDc-6VL.mjs} +1 -1
  34. package/dist/.setup/{send-Cp6omkOg.mjs → send-BOVLQi3n.mjs} +84 -171
  35. package/dist/.setup/{session-status-Cf7AvWOt.mjs → session-status-DscajIsd.mjs} +315 -238
  36. package/dist/.setup/{setup-plugin-api-dLPkL06L.mjs → setup-plugin-api-DTtbTKNk.mjs} +1 -1
  37. package/dist/.setup/{setup-surface-D3DLcCxu.mjs → setup-surface-Dn7QgWRE.mjs} +24 -56
  38. package/dist/.setup/{shared-CJ3arAFL.mjs → shared-qau-uDGl.mjs} +30 -56
  39. package/dist/.setup/{slash-dispatch.runtime-HFy_XvyO.mjs → slash-dispatch.runtime--AEzLVBF.mjs} +1 -1
  40. package/dist/.setup/{streaming-compat-B-e0mqM0.mjs → streaming-compat-C5Wut626.mjs} +31 -8
  41. package/dist/.setup/{target-parsing-DEsPjngB.mjs → target-parsing-FFE26kOV.mjs} +1 -7
  42. package/dist/.setup/{targets-Cku2KCvg.mjs → targets-C6LZQL1Q.mjs} +1 -1
  43. package/dist/.setup/{thread-ts-CukseRVL.mjs → thread-ts-Cvt7WD6B.mjs} +0 -1
  44. package/dist/account-inspect-api.js +1 -1
  45. package/dist/api.js +18 -17
  46. package/dist/channel-config-api.js +1 -1
  47. package/dist/channel-plugin-api.js +1 -1
  48. package/dist/directory-contract-api.js +1 -1
  49. package/dist/doctor-contract-api.js +1 -1
  50. package/dist/http-routes-api.js +1 -1
  51. package/dist/index.js +1 -1
  52. package/dist/message-tool-api.js +1 -1
  53. package/dist/runtime-api.js +11 -12
  54. package/dist/secret-contract-api.js +1 -1
  55. package/dist/security-contract-api.js +1 -1
  56. package/dist/setup-entry.js +2 -2
  57. package/dist/setup-plugin-api.js +1 -1
  58. package/node_modules/@slack/bolt/node_modules/@types/node/README.md +1 -1
  59. package/node_modules/@slack/bolt/node_modules/@types/node/child_process.d.ts +1 -1
  60. package/node_modules/@slack/bolt/node_modules/@types/node/crypto.d.ts +20 -8
  61. package/node_modules/@slack/bolt/node_modules/@types/node/ffi.d.ts +14 -0
  62. package/node_modules/@slack/bolt/node_modules/@types/node/http2.d.ts +3 -2
  63. package/node_modules/@slack/bolt/node_modules/@types/node/net.d.ts +16 -4
  64. package/node_modules/@slack/bolt/node_modules/@types/node/package.json +2 -2
  65. package/node_modules/@slack/bolt/node_modules/@types/node/process.d.ts +1 -0
  66. package/node_modules/@slack/bolt/node_modules/@types/node/quic.d.ts +39 -1
  67. package/node_modules/@slack/bolt/node_modules/@types/node/stream/iter.d.ts +9 -12
  68. package/node_modules/@slack/bolt/node_modules/@types/node/test/reporters.d.ts +1 -0
  69. package/node_modules/@slack/bolt/node_modules/@types/node/test.d.ts +72 -0
  70. package/node_modules/@slack/bolt/node_modules/@types/node/tls.d.ts +14 -10
  71. package/node_modules/@slack/bolt/node_modules/@types/node/vm.d.ts +2 -1
  72. package/node_modules/@slack/bolt/node_modules/@types/node/worker_threads.d.ts +4 -1
  73. package/node_modules/@slack/web-api/node_modules/@types/node/README.md +1 -1
  74. package/node_modules/@slack/web-api/node_modules/@types/node/child_process.d.ts +1 -1
  75. package/node_modules/@slack/web-api/node_modules/@types/node/crypto.d.ts +20 -8
  76. package/node_modules/@slack/web-api/node_modules/@types/node/ffi.d.ts +14 -0
  77. package/node_modules/@slack/web-api/node_modules/@types/node/http2.d.ts +3 -2
  78. package/node_modules/@slack/web-api/node_modules/@types/node/net.d.ts +16 -4
  79. package/node_modules/@slack/web-api/node_modules/@types/node/package.json +2 -2
  80. package/node_modules/@slack/web-api/node_modules/@types/node/process.d.ts +1 -0
  81. package/node_modules/@slack/web-api/node_modules/@types/node/quic.d.ts +39 -1
  82. package/node_modules/@slack/web-api/node_modules/@types/node/stream/iter.d.ts +9 -12
  83. package/node_modules/@slack/web-api/node_modules/@types/node/test/reporters.d.ts +1 -0
  84. package/node_modules/@slack/web-api/node_modules/@types/node/test.d.ts +72 -0
  85. package/node_modules/@slack/web-api/node_modules/@types/node/tls.d.ts +14 -10
  86. package/node_modules/@slack/web-api/node_modules/@types/node/vm.d.ts +2 -1
  87. package/node_modules/@slack/web-api/node_modules/@types/node/worker_threads.d.ts +4 -1
  88. package/node_modules/get-east-asian-width/index.js +8 -3
  89. package/node_modules/get-east-asian-width/lookup-data.js +1 -1
  90. package/node_modules/get-east-asian-width/lookup.js +4 -4
  91. package/node_modules/get-east-asian-width/package.json +1 -1
  92. package/node_modules/typebox/build/compile/code.mjs +1 -2
  93. package/node_modules/typebox/build/compile/validator.mjs +5 -1
  94. package/node_modules/typebox/build/format/iri.mjs +16 -9
  95. package/node_modules/typebox/build/guard/emit.mjs +2 -2
  96. package/node_modules/typebox/build/guard/guard.d.mts +7 -5
  97. package/node_modules/typebox/build/guard/guard.mjs +14 -9
  98. package/node_modules/typebox/build/guard/index.mjs +6 -0
  99. package/node_modules/typebox/build/guard/unicode/unicode.d.mts +6 -0
  100. package/node_modules/typebox/build/guard/unicode/unicode.mjs +35 -0
  101. package/node_modules/typebox/build/guard/{string.mjs → unicode/unicode_segment.mjs} +16 -19
  102. package/node_modules/typebox/build/schema/build.mjs +2 -3
  103. package/node_modules/typebox/build/schema/engine/_pathing.d.mts +1 -0
  104. package/node_modules/typebox/build/schema/engine/_pathing.mjs +11 -0
  105. package/node_modules/typebox/build/schema/engine/_refine.mjs +13 -5
  106. package/node_modules/typebox/build/schema/engine/additionalProperties.mjs +2 -1
  107. package/node_modules/typebox/build/schema/engine/dependencies.mjs +2 -1
  108. package/node_modules/typebox/build/schema/engine/dependentSchemas.mjs +2 -1
  109. package/node_modules/typebox/build/schema/engine/dynamicRef.d.mts +1 -1
  110. package/node_modules/typebox/build/schema/engine/dynamicRef.mjs +2 -2
  111. package/node_modules/typebox/build/schema/engine/format.mjs +9 -2
  112. package/node_modules/typebox/build/schema/engine/patternProperties.mjs +3 -2
  113. package/node_modules/typebox/build/schema/engine/properties.mjs +3 -2
  114. package/node_modules/typebox/build/schema/engine/propertyNames.mjs +2 -1
  115. package/node_modules/typebox/build/schema/engine/recursiveRef.d.mts +1 -1
  116. package/node_modules/typebox/build/schema/engine/recursiveRef.mjs +2 -2
  117. package/node_modules/typebox/build/schema/engine/ref.d.mts +1 -1
  118. package/node_modules/typebox/build/schema/engine/ref.mjs +2 -2
  119. package/node_modules/typebox/build/schema/engine/schema.mjs +24 -24
  120. package/node_modules/typebox/build/schema/parse.mjs +3 -0
  121. package/node_modules/typebox/build/schema/pointer/pointer.d.mts +1 -6
  122. package/node_modules/typebox/build/schema/pointer/pointer.mjs +47 -64
  123. package/node_modules/typebox/build/system/settings/internal.d.mts +2 -0
  124. package/node_modules/typebox/build/system/settings/internal.mjs +20 -0
  125. package/node_modules/typebox/build/system/settings/settings.d.mts +11 -0
  126. package/node_modules/typebox/build/system/settings/settings.mjs +14 -0
  127. package/node_modules/typebox/build/type/extends/inference.d.mts +1 -1
  128. package/node_modules/typebox/build/type/extends/inference.mjs +15 -2
  129. package/node_modules/typebox/build/type/extends/tuple.d.mts +2 -1
  130. package/node_modules/typebox/build/type/extends/tuple.mjs +21 -1
  131. package/node_modules/typebox/build/value/parse/parse.mjs +10 -4
  132. package/node_modules/typebox/package.json +1 -1
  133. package/node_modules/typebox/readme.md +3 -1
  134. package/node_modules/undici/README.md +81 -25
  135. package/node_modules/undici/docs/docs/api/Agent.md +249 -42
  136. package/node_modules/undici/docs/docs/api/BalancedPool.md +246 -48
  137. package/node_modules/undici/docs/docs/api/CacheStorage.md +171 -13
  138. package/node_modules/undici/docs/docs/api/CacheStore.md +294 -98
  139. package/node_modules/undici/docs/docs/api/Client.md +407 -162
  140. package/node_modules/undici/docs/docs/api/ClientStats.md +80 -14
  141. package/node_modules/undici/docs/docs/api/Connector.md +118 -35
  142. package/node_modules/undici/docs/docs/api/ContentType.md +65 -25
  143. package/node_modules/undici/docs/docs/api/Cookies.md +122 -71
  144. package/node_modules/undici/docs/docs/api/Debug.md +34 -18
  145. package/node_modules/undici/docs/docs/api/DiagnosticsChannel.md +364 -164
  146. package/node_modules/undici/docs/docs/api/Dispatcher.md +490 -1055
  147. package/node_modules/undici/docs/docs/api/EnvHttpProxyAgent.md +105 -93
  148. package/node_modules/undici/docs/docs/api/Errors.md +503 -28
  149. package/node_modules/undici/docs/docs/api/EventSource.md +326 -13
  150. package/node_modules/undici/docs/docs/api/Fetch.md +681 -30
  151. package/node_modules/undici/docs/docs/api/GlobalInstallation.md +78 -96
  152. package/node_modules/undici/docs/docs/api/H2CClient.md +298 -176
  153. package/node_modules/undici/docs/docs/api/Interceptors.md +418 -0
  154. package/node_modules/undici/docs/docs/api/MockAgent.md +333 -314
  155. package/node_modules/undici/docs/docs/api/MockCallHistory.md +272 -98
  156. package/node_modules/undici/docs/docs/api/MockCallHistoryLog.md +189 -26
  157. package/node_modules/undici/docs/docs/api/MockClient.md +151 -33
  158. package/node_modules/undici/docs/docs/api/MockErrors.md +56 -5
  159. package/node_modules/undici/docs/docs/api/MockPool.md +321 -258
  160. package/node_modules/undici/docs/docs/api/Pool.md +236 -41
  161. package/node_modules/undici/docs/docs/api/PoolStats.md +119 -13
  162. package/node_modules/undici/docs/docs/api/ProxyAgent.md +179 -160
  163. package/node_modules/undici/docs/docs/api/RedirectHandler.md +238 -55
  164. package/node_modules/undici/docs/docs/api/RetryAgent.md +113 -27
  165. package/node_modules/undici/docs/docs/api/RetryHandler.md +161 -79
  166. package/node_modules/undici/docs/docs/api/RoundRobinPool.md +166 -72
  167. package/node_modules/undici/docs/docs/api/SnapshotAgent.md +262 -517
  168. package/node_modules/undici/docs/docs/api/Socks5ProxyAgent.md +177 -196
  169. package/node_modules/undici/docs/docs/api/Util.md +68 -11
  170. package/node_modules/undici/docs/docs/api/WebSocket.md +475 -80
  171. package/node_modules/undici/docs/docs/api/api-lifecycle.md +100 -32
  172. package/node_modules/undici/docs/docs/best-practices/client-certificate.md +2 -0
  173. package/node_modules/undici/docs/docs/best-practices/crawling.md +3 -1
  174. package/node_modules/undici/docs/docs/best-practices/migrating-from-v7-to-v8.md +233 -0
  175. package/node_modules/undici/docs/docs/best-practices/mocking-request.md +9 -7
  176. package/node_modules/undici/docs/docs/best-practices/proxy.md +3 -1
  177. package/node_modules/undici/docs/docs/best-practices/undici-vs-builtin-fetch.md +10 -8
  178. package/node_modules/undici/docs/docs/best-practices/writing-tests.md +2 -0
  179. package/node_modules/undici/docs/docs/getting-started.md +281 -0
  180. package/node_modules/undici/docs/docs/index.md +784 -0
  181. package/node_modules/undici/docs/docs/site.json +125 -0
  182. package/node_modules/undici/docs/docs/type-map.json +79 -0
  183. package/node_modules/undici/index.js +4 -2
  184. package/node_modules/undici/lib/api/api-connect.js +13 -11
  185. package/node_modules/undici/lib/api/api-pipeline.js +26 -13
  186. package/node_modules/undici/lib/api/api-request.js +51 -21
  187. package/node_modules/undici/lib/api/api-stream.js +81 -20
  188. package/node_modules/undici/lib/api/api-upgrade.js +21 -11
  189. package/node_modules/undici/lib/api/readable.js +45 -9
  190. package/node_modules/undici/lib/cache/memory-cache-store.js +3 -3
  191. package/node_modules/undici/lib/cache/sqlite-cache-store.js +3 -1
  192. package/node_modules/undici/lib/core/connect.js +46 -7
  193. package/node_modules/undici/lib/core/constants.js +1 -24
  194. package/node_modules/undici/lib/core/errors.js +22 -2
  195. package/node_modules/undici/lib/core/request.js +100 -18
  196. package/node_modules/undici/lib/core/symbols.js +4 -0
  197. package/node_modules/undici/lib/core/util.js +105 -48
  198. package/node_modules/undici/lib/dispatcher/agent.js +51 -32
  199. package/node_modules/undici/lib/dispatcher/balanced-pool.js +23 -27
  200. package/node_modules/undici/lib/dispatcher/client-h1.js +86 -24
  201. package/node_modules/undici/lib/dispatcher/client-h2.js +1091 -361
  202. package/node_modules/undici/lib/dispatcher/client.js +109 -36
  203. package/node_modules/undici/lib/dispatcher/dispatcher-base.js +19 -6
  204. package/node_modules/undici/lib/dispatcher/dispatcher.js +15 -5
  205. package/node_modules/undici/lib/dispatcher/dispatcher1-wrapper.js +110 -0
  206. package/node_modules/undici/lib/dispatcher/env-http-proxy-agent.js +37 -8
  207. package/node_modules/undici/lib/dispatcher/h2c-client.js +4 -4
  208. package/node_modules/undici/lib/dispatcher/pool-base.js +28 -10
  209. package/node_modules/undici/lib/dispatcher/pool.js +30 -5
  210. package/node_modules/undici/lib/dispatcher/proxy-agent.js +95 -19
  211. package/node_modules/undici/lib/dispatcher/retry-agent.js +3 -0
  212. package/node_modules/undici/lib/dispatcher/round-robin-pool.js +32 -10
  213. package/node_modules/undici/lib/dispatcher/socks5-proxy-agent.js +153 -63
  214. package/node_modules/undici/lib/global.js +37 -14
  215. package/node_modules/undici/lib/handler/cache-handler.js +49 -7
  216. package/node_modules/undici/lib/handler/cache-revalidation-handler.js +10 -0
  217. package/node_modules/undici/lib/handler/decorator-handler.js +8 -3
  218. package/node_modules/undici/lib/handler/deduplication-handler.js +12 -6
  219. package/node_modules/undici/lib/handler/redirect-handler.js +66 -66
  220. package/node_modules/undici/lib/handler/retry-handler.js +191 -50
  221. package/node_modules/undici/lib/interceptor/cache.js +75 -25
  222. package/node_modules/undici/lib/interceptor/decompress.js +5 -2
  223. package/node_modules/undici/lib/interceptor/deduplicate.js +5 -4
  224. package/node_modules/undici/lib/interceptor/dns.js +12 -1
  225. package/node_modules/undici/lib/interceptor/redirect.js +3 -3
  226. package/node_modules/undici/lib/llhttp/llhttp-wasm.js +1 -1
  227. package/node_modules/undici/lib/llhttp/llhttp_simd-wasm.js +1 -1
  228. package/node_modules/undici/lib/mock/mock-agent.js +21 -9
  229. package/node_modules/undici/lib/mock/mock-call-history.js +1 -1
  230. package/node_modules/undici/lib/mock/mock-interceptor.js +25 -7
  231. package/node_modules/undici/lib/mock/mock-utils.js +281 -47
  232. package/node_modules/undici/lib/mock/snapshot-agent.js +25 -7
  233. package/node_modules/undici/lib/mock/snapshot-recorder.js +38 -3
  234. package/node_modules/undici/lib/util/cache.js +92 -10
  235. package/node_modules/undici/lib/util/runtime-features.js +3 -34
  236. package/node_modules/undici/lib/web/cache/cache.js +6 -8
  237. package/node_modules/undici/lib/web/cookies/parse.js +150 -146
  238. package/node_modules/undici/lib/web/cookies/util.js +1 -1
  239. package/node_modules/undici/lib/web/eventsource/eventsource-stream.js +28 -1
  240. package/node_modules/undici/lib/web/eventsource/eventsource.js +20 -21
  241. package/node_modules/undici/lib/web/eventsource/util.js +32 -1
  242. package/node_modules/undici/lib/web/fetch/body.js +48 -10
  243. package/node_modules/undici/lib/web/fetch/constants.js +1 -1
  244. package/node_modules/undici/lib/web/fetch/formdata.js +21 -2
  245. package/node_modules/undici/lib/web/fetch/index.js +242 -223
  246. package/node_modules/undici/lib/web/fetch/request.js +35 -6
  247. package/node_modules/undici/lib/web/fetch/response.js +1 -3
  248. package/node_modules/undici/lib/web/fetch/util.js +10 -2
  249. package/node_modules/undici/lib/web/webidl/index.js +5 -7
  250. package/node_modules/undici/lib/web/websocket/frame.js +1 -7
  251. package/node_modules/undici/lib/web/websocket/receiver.js +1 -1
  252. package/node_modules/undici/lib/web/websocket/stream/websocketstream.js +10 -10
  253. package/node_modules/undici/lib/web/websocket/websocket.js +25 -3
  254. package/node_modules/undici/package.json +10 -10
  255. package/node_modules/undici/types/agent.d.ts +0 -2
  256. package/node_modules/undici/types/client.d.ts +69 -24
  257. package/node_modules/undici/types/connector.d.ts +1 -0
  258. package/node_modules/undici/types/cookies.d.ts +1 -1
  259. package/node_modules/undici/types/dispatcher.d.ts +8 -30
  260. package/node_modules/undici/types/dispatcher1-wrapper.d.ts +7 -0
  261. package/node_modules/undici/types/errors.d.ts +10 -0
  262. package/node_modules/undici/types/fetch.d.ts +5 -1
  263. package/node_modules/undici/types/formdata.d.ts +0 -6
  264. package/node_modules/undici/types/h2c-client.d.ts +6 -6
  265. package/node_modules/undici/types/handlers.d.ts +2 -0
  266. package/node_modules/undici/types/header.d.ts +5 -0
  267. package/node_modules/undici/types/index.d.ts +3 -1
  268. package/node_modules/undici/types/interceptors.d.ts +1 -1
  269. package/node_modules/undici/types/mock-agent.d.ts +11 -10
  270. package/node_modules/undici/types/mock-interceptor.d.ts +5 -1
  271. package/node_modules/undici/types/pool.d.ts +0 -2
  272. package/node_modules/undici/types/proxy-agent.d.ts +9 -2
  273. package/node_modules/undici/types/round-robin-pool.d.ts +0 -2
  274. package/node_modules/undici/types/snapshot-agent.d.ts +4 -0
  275. package/node_modules/undici/types/socks5-proxy-agent.d.ts +4 -2
  276. package/node_modules/undici/types/webidl.d.ts +0 -1
  277. package/openclaw.plugin.json +31 -3
  278. package/package.json +7 -7
  279. package/dist/.setup/accounts.runtime-DN-PPocC.mjs +0 -2
  280. package/dist/.setup/action-runtime.runtime-C8R8CUan.mjs +0 -2
  281. package/dist/.setup/doctor-contract-CtMUqjvk.mjs +0 -186
  282. package/dist/.setup/monitor-_Sht7Dqy.mjs +0 -13
  283. package/dist/.setup/rolldown-runtime-D7D4PA-g.mjs +0 -13
  284. package/dist/.setup/send.runtime-B4caZU6T.mjs +0 -2
  285. package/dist/.setup/slash-commands.runtime-BpSH0b3q.mjs +0 -2
  286. package/dist/.setup/slash-skill-commands.runtime-Bi1JWZHY.mjs +0 -2
  287. package/node_modules/undici/lib/handler/unwrap-handler.js +0 -106
  288. package/node_modules/undici/lib/handler/wrap-handler.js +0 -105
  289. package/node_modules/undici/lib/llhttp/.gitkeep +0 -0
  290. package/node_modules/undici/lib/util/promise.js +0 -28
  291. /package/node_modules/typebox/build/guard/{string.d.mts → unicode/unicode_segment.d.mts} +0 -0
@@ -1,14 +1,16 @@
1
- import { o as resolveSlackAccount, u as resolveSlackOperationToken } from "./accounts-BBHvg0pY.mjs";
2
- import { D as SLACK_MESSAGE_TEXT_HARD_LIMIT, E as SLACK_EDIT_TEXT_MAX_BYTES, J as markdownToSlackMrkdwnChunks, K as resolveSlackQuestionActionIds, M as truncateSlackTextByUtf8Bytes, O as SLACK_MESSAGE_TEXT_RECOMMENDED_LIMIT, R as SLACK_QUESTION_FINALIZATION_BLOCKS, S as stripSlackNativeDataBlocks, T as renderSlackBlockFallbackText, _ as createSlackNativeDataBaseTextConsumer, f as assertSlackDetachedTargetAllowed, g as buildSlackNativeDataAccessibilityText, h as appendSlackNativeDataPlainTextFallback, j as truncateSlackText, k as SLACK_TEXT_LIMIT, lt as validateSlackBlocksArray, q as chunkSlackMrkdwnText, v as hasSlackNativeDataBlock, w as buildSlackCompleteBlocksFallbackText, y as isSlackInvalidBlocksError } from "./session-status-Cf7AvWOt.mjs";
3
- import { a as parseSlackTarget, t as canonicalizeSlackApiTargetId } from "./target-parsing-DEsPjngB.mjs";
4
- import { f as createSlackTokenCacheKey, g as getSlackWriteClient, m as createSlackWriteClient, o as formatSlackError, u as createSlackReadClient } from "./probe-DiYIMPJo.mjs";
5
- import { r as resolveSlackThreadTsValue, t as normalizeSlackThreadTsCandidate } from "./thread-ts-CukseRVL.mjs";
1
+ import { r as __exportAll } from "./streaming-compat-C5Wut626.mjs";
2
+ import { d as resolveSlackOperationToken, s as resolveSlackAccount } from "./accounts-D_N9IqNA.mjs";
3
+ import { a as parseSlackTarget, t as canonicalizeSlackApiTargetId } from "./target-parsing-FFE26kOV.mjs";
4
+ import { D as SLACK_MESSAGE_TEXT_HARD_LIMIT, E as SLACK_EDIT_TEXT_MAX_BYTES, K as resolveSlackQuestionActionIds, M as truncateSlackTextByUtf8Bytes, O as SLACK_MESSAGE_TEXT_RECOMMENDED_LIMIT, R as SLACK_QUESTION_FINALIZATION_BLOCKS, S as stripSlackNativeDataBlocks, T as renderSlackBlockFallbackText, X as chunkSlackMrkdwnText, Z as markdownToSlackMrkdwnChunks, _ as createSlackNativeDataBaseTextConsumer, f as assertSlackDetachedTargetAllowed, g as buildSlackNativeDataAccessibilityText, h as appendSlackNativeDataPlainTextFallback, j as truncateSlackText, k as SLACK_TEXT_LIMIT, v as hasSlackNativeDataBlock, vt as validateSlackBlocksArray, w as buildSlackCompleteBlocksFallbackText, y as isSlackInvalidBlocksError } from "./session-status-DscajIsd.mjs";
5
+ import { _ as getSlackWriteClient, d as createSlackReadClient, h as createSlackWriteClient, o as formatSlackError, p as createSlackTokenCacheKey, s as getSlackWebApiErrorData } from "./probe-B2Y9qc_z.mjs";
6
+ import { r as resolveSlackThreadTsValue, t as normalizeSlackThreadTsCandidate } from "./thread-ts-Cvt7WD6B.mjs";
6
7
  import { t as getOptionalSlackRuntime } from "./runtime-JSVZSWAj.mjs";
7
8
  import { isRecord, normalizeLowercaseStringOrEmpty, normalizeOptionalString, normalizeTrimmedStringList } from "openclaw/plugin-sdk/string-coerce-runtime";
8
9
  import { createMessageReceiptFromOutboundResults } from "openclaw/plugin-sdk/channel-outbound";
9
10
  import { logVerbose, sleepWithAbort } from "openclaw/plugin-sdk/runtime-env";
10
11
  import { chunkTextForOutbound } from "openclaw/plugin-sdk/text-chunking";
11
12
  import { resolveGlobalSingleton } from "openclaw/plugin-sdk/global-singleton";
13
+ import { pruneMapToMaxSize } from "openclaw/plugin-sdk/collection-runtime";
12
14
  import { resolveMarkdownTableMode } from "openclaw/plugin-sdk/markdown-table-runtime";
13
15
  import { resolveTextChunksWithFallback } from "openclaw/plugin-sdk/reply-payload";
14
16
  import { createHash, createHmac } from "node:crypto";
@@ -121,20 +123,21 @@ function buildSlackNativeDataDeliveryPlan(params) {
121
123
  }
122
124
  //#endregion
123
125
  //#region extensions/slack/src/post-message-identity.ts
124
- function getSlackWebApiErrorData$1(err) {
125
- if (!(err instanceof Error)) return;
126
- const data = err.data;
127
- return data && typeof data === "object" ? data : void 0;
126
+ function buildSlackMessageIdentityPayload(identity) {
127
+ return {
128
+ ...identity?.username ? { username: identity.username } : {},
129
+ ...identity?.iconUrl ? { icon_url: identity.iconUrl } : identity?.iconEmoji ? { icon_emoji: identity.iconEmoji } : {}
130
+ };
128
131
  }
129
132
  function isSlackCustomizeScopeError(err) {
130
- const data = getSlackWebApiErrorData$1(err);
133
+ const data = getSlackWebApiErrorData(err);
131
134
  if (normalizeLowercaseStringOrEmpty(normalizeOptionalString(data?.error)) !== "missing_scope") return false;
132
135
  if (normalizeLowercaseStringOrEmpty(normalizeOptionalString(data?.needed)).includes("chat:write.customize")) return true;
133
136
  return [...normalizeTrimmedStringList(data?.response_metadata?.scopes), ...normalizeTrimmedStringList(data?.response_metadata?.acceptedScopes)].map((scope) => normalizeLowercaseStringOrEmpty(scope)).includes("chat:write.customize");
134
137
  }
135
138
  function isSlackCustomIdentityRejectedError(err) {
136
139
  if (isSlackCustomizeScopeError(err)) return true;
137
- const data = getSlackWebApiErrorData$1(err);
140
+ const data = getSlackWebApiErrorData(err);
138
141
  const code = normalizeLowercaseStringOrEmpty(normalizeOptionalString(data?.error));
139
142
  return code === "invalid_arguments" || code === "invalid_arg_name";
140
143
  }
@@ -146,19 +149,9 @@ async function postSlackMessageWithIdentityFallback(params) {
146
149
  const { basePayload, identity, post } = params;
147
150
  try {
148
151
  if (!identity) return await post(basePayload);
149
- if (identity?.iconUrl) return await post({
150
- ...basePayload,
151
- ...identity.username ? { username: identity.username } : {},
152
- icon_url: identity.iconUrl
153
- }, identity);
154
- if (identity?.iconEmoji) return await post({
155
- ...basePayload,
156
- ...identity.username ? { username: identity.username } : {},
157
- icon_emoji: identity.iconEmoji
158
- }, identity);
159
152
  return await post({
160
153
  ...basePayload,
161
- ...identity?.username ? { username: identity.username } : {}
154
+ ...buildSlackMessageIdentityPayload(identity)
162
155
  }, identity);
163
156
  } catch (err) {
164
157
  if (!identity || !hasCustomIdentity$1(identity) || !isSlackCustomIdentityRejectedError(err)) throw err;
@@ -191,18 +184,10 @@ function buildSlackPostMessagePayload(params) {
191
184
  reply_broadcast: true
192
185
  } : params.threadTs ? { thread_ts: params.threadTs } : {};
193
186
  const unfurlPayload = buildSlackUnfurlPayload(params.unfurl);
194
- if (params.blocks?.length) return {
195
- channel: params.channelId,
196
- text: params.text,
197
- blocks: params.blocks,
198
- ...params.metadata ? { metadata: params.metadata } : {},
199
- ...typeof params.mrkdwn === "boolean" ? { mrkdwn: params.mrkdwn } : {},
200
- ...threadPayload,
201
- ...unfurlPayload
202
- };
203
187
  return {
204
188
  channel: params.channelId,
205
189
  text: params.text,
190
+ ...params.blocks?.length ? { blocks: params.blocks } : {},
206
191
  ...params.metadata ? { metadata: params.metadata } : {},
207
192
  ...typeof params.mrkdwn === "boolean" ? { mrkdwn: params.mrkdwn } : {},
208
193
  ...threadPayload,
@@ -508,10 +493,7 @@ function recordSlackThreadFailureNotice(params) {
508
493
  if (threadFailureNotices.get(key) === fingerprint) return false;
509
494
  threadFailureNotices.delete(key);
510
495
  threadFailureNotices.set(key, fingerprint);
511
- if (threadFailureNotices.size > MAX_FAILURE_NOTICES) {
512
- const oldestKey = threadFailureNotices.keys().next().value;
513
- if (oldestKey !== void 0) threadFailureNotices.delete(oldestKey);
514
- }
496
+ pruneMapToMaxSize(threadFailureNotices, MAX_FAILURE_NOTICES);
515
497
  return true;
516
498
  }
517
499
  /** Clears a thread or channel outage notice after a healthy model turn completes. */
@@ -544,15 +526,19 @@ function readCachedSlackDmChannelId(params) {
544
526
  function cacheSlackDmChannelId(params, channelId) {
545
527
  const cache = getSlackDmChannelCache(params.cacheOwner);
546
528
  const key = createSlackDmCacheKey(params);
547
- if (cache.has(key)) cache.delete(key);
548
- else if (cache.size >= SLACK_DM_CHANNEL_CACHE_MAX) {
549
- const oldest = cache.keys().next().value;
550
- if (oldest) cache.delete(oldest);
551
- }
529
+ cache.delete(key);
552
530
  cache.set(key, channelId);
531
+ pruneMapToMaxSize(cache, SLACK_DM_CHANNEL_CACHE_MAX);
553
532
  }
554
533
  //#endregion
555
534
  //#region extensions/slack/src/send.ts
535
+ var send_exports = /* @__PURE__ */ __exportAll({
536
+ reconcileSlackUnknownSend: () => reconcileSlackUnknownSend,
537
+ resolveSlackDmChannelId: () => resolveSlackDmChannelId,
538
+ sendMessageSlack: () => sendMessageSlack,
539
+ setSlackDefaultSendIdentity: () => setSlackDefaultSendIdentity,
540
+ updateMessageSlack: () => updateMessageSlack
541
+ });
556
542
  const SLACK_DELIVERY_METADATA_EVENT = "openclaw_delivery";
557
543
  const SLACK_DELIVERY_METADATA_KEY = "openclaw_delivery_id";
558
544
  const SLACK_DELIVERY_METADATA_PART_INDEX_KEY = "openclaw_delivery_part_index";
@@ -593,12 +579,6 @@ function getSlackDefaultSendIdentity(accountId) {
593
579
  function resolveSlackSendIdentity(params) {
594
580
  return normalizeSlackSendIdentity(params.explicit) ?? getSlackDefaultSendIdentity(params.accountId);
595
581
  }
596
- function getSlackWebApiErrorData(err) {
597
- if (!(err instanceof Error)) return;
598
- const data = err.data;
599
- if (!data || typeof data !== "object") return;
600
- return data;
601
- }
602
582
  function formatSlackWebApiErrorMessage(err) {
603
583
  if (!(err instanceof Error)) return;
604
584
  const data = getSlackWebApiErrorData(err);
@@ -672,6 +652,19 @@ function createSlackSendReceiptFromResults(results, threadTs) {
672
652
  });
673
653
  return Object.assign(receipt, thread);
674
654
  }
655
+ function createSlackSendResult(messageId, channelId, kind, threadTs) {
656
+ return {
657
+ messageId,
658
+ channelId,
659
+ threadTs,
660
+ receipt: createSlackSendReceipt({
661
+ platformMessageIds: [messageId],
662
+ channelId,
663
+ kind,
664
+ threadTs
665
+ })
666
+ };
667
+ }
675
668
  function resolveToken(params) {
676
669
  const explicit = normalizeOptionalString(params.explicit);
677
670
  if (explicit) return explicit;
@@ -699,8 +692,7 @@ function parseEnterpriseEventRecipient(raw) {
699
692
  id: canonicalizeSlackApiTargetId("channel", match[1])
700
693
  };
701
694
  }
702
- function resolveSlackSendEventScope(params) {
703
- const scope = params.opts.eventScope;
695
+ function resolveSlackSendEventScope(scope) {
704
696
  if (!scope) return;
705
697
  if (!/^T[A-Z0-9]+$/i.test(scope.teamId) || !scope.client) throw new Error("invalid_enterprise_slack_listener_scope");
706
698
  return scope;
@@ -750,21 +742,15 @@ function createSlackSendQueueKey(params) {
750
742
  const workspaceScope = params.teamId ? `:${params.teamId}` : "";
751
743
  return `${params.accountId}:${createSlackTokenCacheKey(params.token)}${workspaceScope}:${recipientKey}:${params.threadTs ?? ""}`;
752
744
  }
753
- async function runQueuedSlackSend(key, task) {
754
- return await slackSendQueue.enqueue(key, task);
755
- }
756
- function isSlackUserRecipient(recipient) {
757
- return recipient.kind === "user";
758
- }
759
745
  function resolveDirectUserPostChannelId(params) {
760
- if (!isSlackUserRecipient(params.recipient) || params.hasMedia || params.threadTs) return;
746
+ if (params.recipient.kind !== "user" || params.hasMedia || params.threadTs) return;
761
747
  return params.recipient.id;
762
748
  }
763
749
  function resolvePostedMessageChannelId(response, fallback) {
764
750
  return (typeof response.channel === "string" ? normalizeOptionalString(response.channel) : null) ?? fallback;
765
751
  }
766
752
  async function resolveChannelId(client, recipient, params) {
767
- if (!isSlackUserRecipient(recipient)) return { channelId: recipient.id };
753
+ if (recipient.kind !== "user") return { channelId: recipient.id };
768
754
  const cacheParams = {
769
755
  cacheOwner: params.dmCacheOwner ?? client,
770
756
  accountId: params.accountId,
@@ -905,22 +891,18 @@ async function scanSlackConversationForDelivery(params) {
905
891
  let expectedPartCount;
906
892
  const deliveryParts = /* @__PURE__ */ new Map();
907
893
  for (let page = 0; page < SLACK_RECONCILE_MAX_PAGES; page += 1) {
908
- const response = threadTs ? await withSlackDnsRequestRetry("conversations.replies", () => params.client.conversations.replies({
894
+ const query = {
909
895
  channel: params.channelId,
910
- ts: threadTs,
911
896
  oldest: params.oldest,
912
897
  latest: params.latest,
913
898
  include_all_metadata: true,
914
899
  limit: SLACK_RECONCILE_LIMIT,
915
900
  ...cursor ? { cursor } : {}
916
- })) : await withSlackDnsRequestRetry("conversations.history", () => params.client.conversations.history({
917
- channel: params.channelId,
918
- oldest: params.oldest,
919
- latest: params.latest,
920
- include_all_metadata: true,
921
- limit: SLACK_RECONCILE_LIMIT,
922
- ...cursor ? { cursor } : {}
923
- }));
901
+ };
902
+ const response = threadTs ? await withSlackDnsRequestRetry("conversations.replies", () => params.client.conversations.replies({
903
+ ...query,
904
+ ts: threadTs
905
+ })) : await withSlackDnsRequestRetry("conversations.history", () => params.client.conversations.history(query));
924
906
  const matches = findSlackConversationDeliveryParts({
925
907
  messages: asSlackConversationMessages(response),
926
908
  queueId: params.queueId,
@@ -942,16 +924,7 @@ async function scanSlackConversationForDelivery(params) {
942
924
  deliveryParts.set(match.partIndex, match);
943
925
  }
944
926
  if (expectedPartCount !== void 0 && deliveryParts.size === expectedPartCount) {
945
- const orderedParts = Array.from({ length: expectedPartCount }, (_, index) => deliveryParts.get(index));
946
- if (orderedParts.some((part) => !part)) return {
947
- reconciliation: {
948
- status: "unresolved",
949
- error: "Slack history contains an invalid durable delivery marker set",
950
- retryable: false
951
- },
952
- evidence: "conflict"
953
- };
954
- const completeParts = orderedParts;
927
+ const completeParts = [...deliveryParts.values()].toSorted((a, b) => a.partIndex - b.partIndex);
955
928
  const reconciledThreadTs = completeParts[0]?.threadTs ?? params.threadTs;
956
929
  const platformMessageIds = completeParts.map((part) => part.messageId);
957
930
  return {
@@ -1019,7 +992,7 @@ async function reconcileSlackUnknownSend(ctx) {
1019
992
  error: `Slack read token missing for account "${account.accountId}"`,
1020
993
  retryable: false
1021
994
  };
1022
- const userRecipient = isSlackUserRecipient(recipient);
995
+ const userRecipient = recipient.kind === "user";
1023
996
  const writeToken = resolveSlackOperationToken(account, "write");
1024
997
  if (userRecipient && !writeToken) return {
1025
998
  status: "unresolved",
@@ -1082,7 +1055,7 @@ async function sendMessageSlack(to, message, opts) {
1082
1055
  cfg,
1083
1056
  accountId: opts.accountId
1084
1057
  });
1085
- const eventScope = resolveSlackSendEventScope({ opts });
1058
+ const eventScope = resolveSlackSendEventScope(opts.eventScope);
1086
1059
  const recipient = eventScope ? parseEnterpriseEventRecipient(to) : parseRecipient(to);
1087
1060
  if (!eventScope) assertSlackDetachedTargetAllowed(account.accountId, recipient.teamId);
1088
1061
  const blocks = opts.blocks == null ? void 0 : validateSlackBlocksArray(opts.blocks);
@@ -1094,32 +1067,28 @@ async function sendMessageSlack(to, message, opts) {
1094
1067
  opts: queuedOpts,
1095
1068
  recipient
1096
1069
  });
1097
- const result = await runQueuedSlackSend(createSlackSendQueueKey({
1070
+ const queueKey = createSlackSendQueueKey({
1098
1071
  accountId: account.accountId,
1099
1072
  token: delivery.credential,
1100
1073
  recipient: delivery.recipient,
1101
1074
  threadTs: opts.threadTs,
1102
1075
  teamId: delivery.teamId
1103
- }), () => sendMessageSlackQueued({
1076
+ });
1077
+ const result = await slackSendQueue.enqueue(queueKey, () => sendMessageSlackQueued({
1104
1078
  trimmedMessage,
1105
1079
  opts: queuedOpts,
1106
1080
  cfg,
1107
1081
  account,
1108
1082
  blocks,
1109
1083
  delivery
1084
+ }).catch((err) => {
1085
+ throw enrichSlackWebApiError(err);
1110
1086
  }));
1111
1087
  const threadTs = result.threadTs ?? normalizeSlackThreadTsCandidate(queuedOpts.threadTs);
1112
1088
  if (threadTs && result.channelId && account.accountId) recordSlackThreadParticipation(account.accountId, result.channelId, threadTs, { teamId: delivery.teamId });
1113
1089
  return result;
1114
1090
  }
1115
1091
  async function sendMessageSlackQueued(params) {
1116
- try {
1117
- return await sendMessageSlackQueuedInner(params);
1118
- } catch (err) {
1119
- throw enrichSlackWebApiError(err);
1120
- }
1121
- }
1122
- async function sendMessageSlackQueuedInner(params) {
1123
1092
  const { opts, cfg, account, blocks, trimmedMessage, delivery } = params;
1124
1093
  const { client, identity, recipient, unfurl } = delivery;
1125
1094
  if (opts.replyBroadcast && opts.mediaUrl) throw new Error("Slack replyBroadcast is only supported for text or block thread replies.");
@@ -1169,20 +1138,36 @@ async function sendMessageSlackQueuedInner(params) {
1169
1138
  blocks,
1170
1139
  textLimit: textChunkLimit
1171
1140
  }) : void 0;
1172
- const orderedBlockAccessibilityText = blocks && usesOrderedBlockAccessibility ? orderedBlockDeliveryPlan?.accessibilityText ?? (buildSlackNativeDataAccessibilityText(nativeDataFallbackBase, blocks) || "Slack could not render this Block Kit message.") : void 0;
1173
1141
  const completeBlockFallbackText = blocks ? buildSlackCompleteBlocksFallbackText(blocks) : "";
1174
1142
  const rawBlockAccessibilityText = trimmedMessage ? [trimmedMessage, ...completeBlockFallbackText.includes(trimmedMessage) ? [] : [completeBlockFallbackText]].join("\n\n") : completeBlockFallbackText;
1175
- const blockAccessibilityText = blocks ? orderedBlockAccessibilityText ?? rawBlockAccessibilityText : void 0;
1176
- let pendingBlockFallback = (hasNativeData || opts.authoredTextPlacement !== void 0) && orderedBlockDeliveryPlan?.skipOriginalBlocks ? orderedBlockDeliveryPlan : void 0;
1143
+ const blockAccessibilityText = blocks ? orderedBlockDeliveryPlan?.accessibilityText ?? rawBlockAccessibilityText : void 0;
1144
+ let pendingBlockFallback = orderedBlockDeliveryPlan?.skipOriginalBlocks ? orderedBlockDeliveryPlan : void 0;
1177
1145
  let lastMessageId = "";
1178
1146
  let deliveredChannelId = channelId;
1179
1147
  let canonicalDeliveredThreadTs;
1180
1148
  let sendIdentity = identity;
1149
+ const postPart = async (part) => {
1150
+ const posted = await postSlackMessageBestEffort({
1151
+ client,
1152
+ channelId,
1153
+ threadTs: opts.threadTs,
1154
+ identity: sendIdentity,
1155
+ unfurl,
1156
+ ...part
1157
+ });
1158
+ const { response } = posted;
1159
+ sendIdentity = posted.identity;
1160
+ lastMessageId = response.ts;
1161
+ deliveredChannelId = resolvePostedMessageChannelId(response, deliveredChannelId);
1162
+ const responseThreadTs = resolvePostedMessageThreadTs(response);
1163
+ canonicalDeliveredThreadTs ??= responseThreadTs;
1164
+ return await reportDelivery(createSlackSendResult(response.ts, deliveredChannelId, part.blocks ? "card" : "text", responseThreadTs ?? normalizeSlackThreadTsCandidate(opts.threadTs)), part.blocks);
1165
+ };
1181
1166
  if (blocks && opts.mediaUrl) throw new Error("Slack send does not support blocks with mediaUrl");
1182
1167
  if (blocks) {
1183
1168
  if (pendingBlockFallback) logVerbose("slack send: native data accessibility exceeds hard limit, using text fallback");
1184
1169
  else {
1185
- const accessibilityText = hasNativeData ? blockAccessibilityText ?? "Slack could not render this Block Kit message." : usesOrderedBlockAccessibility ? blockAccessibilityText ?? "Slack could not render this Block Kit message." : truncateSlackText(blockAccessibilityText ?? "", SLACK_TEXT_LIMIT);
1170
+ const accessibilityText = usesOrderedBlockAccessibility ? blockAccessibilityText ?? "Slack could not render this Block Kit message." : truncateSlackText(blockAccessibilityText ?? "", SLACK_TEXT_LIMIT);
1186
1171
  const initialBlockMetadata = withSlackDeliveryMetadata(opts.metadata, {
1187
1172
  queueId: opts.deliveryQueueId,
1188
1173
  channelId,
@@ -1192,32 +1177,13 @@ async function sendMessageSlackQueuedInner(params) {
1192
1177
  });
1193
1178
  await dispatchOnce();
1194
1179
  try {
1195
- const { response } = await postSlackMessageBestEffort({
1196
- client,
1197
- channelId,
1180
+ return await postPart({
1198
1181
  text: accessibilityText,
1199
- threadTs: opts.threadTs,
1200
1182
  replyBroadcast: opts.replyBroadcast,
1201
- identity,
1202
1183
  blocks,
1203
1184
  metadata: initialBlockMetadata,
1204
- ...usesOrderedBlockAccessibility ? { mrkdwn: false } : {},
1205
- unfurl
1185
+ ...usesOrderedBlockAccessibility ? { mrkdwn: false } : {}
1206
1186
  });
1207
- const messageId = response.ts;
1208
- deliveredChannelId = resolvePostedMessageChannelId(response, channelId);
1209
- const deliveredThreadTs = resolvePostedMessageThreadTs(response) ?? normalizeSlackThreadTsCandidate(opts.threadTs);
1210
- return await reportDelivery({
1211
- messageId,
1212
- channelId: deliveredChannelId,
1213
- threadTs: deliveredThreadTs,
1214
- receipt: createSlackSendReceipt({
1215
- platformMessageIds: [messageId],
1216
- channelId: deliveredChannelId,
1217
- kind: "card",
1218
- threadTs: deliveredThreadTs
1219
- })
1220
- }, blocks);
1221
1187
  } catch (error) {
1222
1188
  if (!hasNativeData || !isSlackInvalidBlocksError(error)) throw error;
1223
1189
  logVerbose("slack send: native data rejected, delivering complete text fallback");
@@ -1236,35 +1202,13 @@ async function sendMessageSlackQueuedInner(params) {
1236
1202
  partCount: fallbackMessages.length
1237
1203
  });
1238
1204
  if (partIndex === 0) await dispatchOnce();
1239
- const posted = await postSlackMessageBestEffort({
1240
- client,
1241
- channelId,
1205
+ const fallbackDelivery = await postPart({
1242
1206
  text: fallback.text,
1243
- threadTs: opts.threadTs,
1244
1207
  replyBroadcast: partIndex === 0 ? opts.replyBroadcast : void 0,
1245
- identity: sendIdentity,
1246
1208
  ...fallback.blocks ? { blocks: fallback.blocks } : {},
1247
1209
  metadata,
1248
- mrkdwn: false,
1249
- unfurl
1210
+ mrkdwn: false
1250
1211
  });
1251
- const response = posted.response;
1252
- sendIdentity = posted.identity;
1253
- lastMessageId = response.ts;
1254
- deliveredChannelId = resolvePostedMessageChannelId(response, deliveredChannelId);
1255
- canonicalDeliveredThreadTs ??= resolvePostedMessageThreadTs(response);
1256
- const deliveredThreadTs = resolvePostedMessageThreadTs(response) ?? normalizeSlackThreadTsCandidate(opts.threadTs);
1257
- const fallbackDelivery = await reportDelivery({
1258
- messageId: response.ts,
1259
- channelId: deliveredChannelId,
1260
- threadTs: deliveredThreadTs,
1261
- receipt: createSlackSendReceipt({
1262
- platformMessageIds: [response.ts],
1263
- channelId: deliveredChannelId,
1264
- kind: fallback.blocks ? "card" : "text",
1265
- threadTs: deliveredThreadTs
1266
- })
1267
- }, fallback.blocks);
1268
1212
  if (fallbackDelivery.meta?.slackQuestionActionIds.length) questionDelivery = fallbackDelivery;
1269
1213
  }
1270
1214
  const deliveredThreadTs = canonicalDeliveredThreadTs ?? normalizeSlackThreadTsCandidate(opts.threadTs);
@@ -1310,17 +1254,7 @@ async function sendMessageSlackQueuedInner(params) {
1310
1254
  assertDirectAdapterHandoff: opts.assertDirectAdapterHandoff,
1311
1255
  ...delivery.upload ? { auditContext: delivery.upload.auditContext } : {}
1312
1256
  });
1313
- await reportDelivery({
1314
- messageId: lastMessageId,
1315
- channelId,
1316
- threadTs: normalizeSlackThreadTsCandidate(opts.threadTs),
1317
- receipt: createSlackSendReceipt({
1318
- platformMessageIds: [lastMessageId],
1319
- channelId,
1320
- kind: "media",
1321
- threadTs: normalizeSlackThreadTsCandidate(opts.threadTs)
1322
- })
1323
- });
1257
+ await reportDelivery(createSlackSendResult(lastMessageId, channelId, "media", normalizeSlackThreadTsCandidate(opts.threadTs)));
1324
1258
  chunksToPost = rest;
1325
1259
  } else chunksToPost = resolvedChunks.length ? resolvedChunks : [""];
1326
1260
  for (const [partIndex, chunk] of chunksToPost.entries()) {
@@ -1334,32 +1268,11 @@ async function sendMessageSlackQueuedInner(params) {
1334
1268
  partCount: chunksToPost.length
1335
1269
  });
1336
1270
  if (partIndex === 0 && !opts.mediaUrl) await dispatchOnce();
1337
- const posted = await postSlackMessageBestEffort({
1338
- client,
1339
- channelId,
1271
+ await postPart({
1340
1272
  text: chunk,
1341
- threadTs: opts.threadTs,
1342
1273
  replyBroadcast: carriesPrimaryMessageOptions ? opts.replyBroadcast : void 0,
1343
- identity: sendIdentity,
1344
1274
  metadata,
1345
- ...opts.textIsSlackPlainText ? { mrkdwn: false } : {},
1346
- unfurl
1347
- });
1348
- const response = posted.response;
1349
- sendIdentity = posted.identity;
1350
- lastMessageId = response.ts;
1351
- deliveredChannelId = resolvePostedMessageChannelId(response, deliveredChannelId);
1352
- canonicalDeliveredThreadTs ??= resolvePostedMessageThreadTs(response);
1353
- await reportDelivery({
1354
- messageId: response.ts,
1355
- channelId: deliveredChannelId,
1356
- threadTs: resolvePostedMessageThreadTs(response) ?? normalizeSlackThreadTsCandidate(opts.threadTs),
1357
- receipt: createSlackSendReceipt({
1358
- platformMessageIds: [response.ts],
1359
- channelId: deliveredChannelId,
1360
- kind: "text",
1361
- threadTs: resolvePostedMessageThreadTs(response) ?? normalizeSlackThreadTsCandidate(opts.threadTs)
1362
- })
1275
+ ...opts.textIsSlackPlainText ? { mrkdwn: false } : {}
1363
1276
  });
1364
1277
  }
1365
1278
  const deliveredThreadTs = canonicalDeliveredThreadTs ?? normalizeSlackThreadTsCandidate(opts.threadTs);
@@ -1371,4 +1284,4 @@ async function sendMessageSlackQueuedInner(params) {
1371
1284
  };
1372
1285
  }
1373
1286
  //#endregion
1374
- export { updateMessageSlack as a, hasSlackThreadFailureNotice as c, recordSlackThreadFailureNotice as d, recordSlackThreadParticipation as f, chunkSlackTextAtHardLimit as h, setSlackDefaultSendIdentity as i, hasSlackThreadParticipation as l, buildSlackNativeDataDeliveryPlan as m, resolveSlackDmChannelId as n, clearSlackThreadFailureNotice as o, requireSlackPostMessageTimestamp as p, sendMessageSlack as r, clearSlackThreadParticipationCache as s, reconcileSlackUnknownSend as t, hasSlackThreadParticipationWithPersistence as u };
1287
+ export { clearSlackThreadParticipationCache as a, hasSlackThreadParticipationWithPersistence as c, requireSlackPostMessageTimestamp as d, buildSlackMessageIdentityPayload as f, clearSlackThreadFailureNotice as i, recordSlackThreadFailureNotice as l, chunkSlackTextAtHardLimit as m, send_exports as n, hasSlackThreadFailureNotice as o, buildSlackNativeDataDeliveryPlan as p, setSlackDefaultSendIdentity as r, hasSlackThreadParticipation as s, sendMessageSlack as t, recordSlackThreadParticipation as u };