@openclaw/slack 2026.9.5 → 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 (648) hide show
  1. package/assets/icon.png +0 -0
  2. package/dist/.setup/{account-inspect-B86OaUEt.mjs → account-inspect-DWBXpER6.mjs} +1 -1
  3. package/dist/.setup/{accounts-C1FspRF-.mjs → accounts-D_N9IqNA.mjs} +33 -10
  4. package/dist/.setup/{action-runtime-Aa-h24Fq.mjs → action-runtime-DfWvuiZd.mjs} +46 -65
  5. package/dist/.setup/action-runtime.runtime-Ck4bAWOX.mjs +2 -0
  6. package/dist/.setup/{actions-BvGUGk3w.mjs → actions-Df0CzcDl.mjs} +148 -204
  7. package/dist/.setup/{approval-handler.runtime-BcZNF-VP.mjs → approval-handler.runtime-Ed6Sw5VK.mjs} +37 -47
  8. package/dist/.setup/{approval-message-updates-Cy1cxfBn.mjs → approval-message-updates-BadvtA7R.mjs} +1 -2
  9. package/dist/.setup/{channel-DrBm0NFw.mjs → channel-C7bgPSTE.mjs} +192 -280
  10. package/dist/.setup/channel-meta-C443t-lI.mjs +27 -0
  11. package/dist/.setup/{channel-type-osC0XOES.mjs → channel-type-ClOttrZ5.mjs} +13 -21
  12. package/dist/.setup/{channel.setup-BSY5hzVz.mjs → channel.setup-Dh2jzAjN.mjs} +35 -42
  13. package/dist/.setup/{config-schema-DrY3S7Ee.mjs → config-schema-BZCxmHKG.mjs} +32 -21
  14. package/dist/.setup/{directory-config-CTs7YyuU.mjs → directory-config-BOUWH3hR.mjs} +7 -10
  15. package/dist/.setup/{directory-live-Btq0063Q.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-DRnDCVdY.mjs → message-tool-api-Cu4lwlGy.mjs} +34 -48
  18. package/dist/.setup/{provider-w36VTgZ3.mjs → monitor-BPVfkumU.mjs} +2191 -2704
  19. package/dist/.setup/{outbound-adapter-K3Ek1iSR.mjs → outbound-adapter-Bv48XUjq.mjs} +10 -21
  20. package/dist/.setup/{pipeline.runtime-BZqGcbfi.mjs → pipeline.runtime-B1H63Frf.mjs} +901 -892
  21. package/dist/.setup/{plugin-routes-C3X0eVaK.mjs → plugin-routes-B8tooDLj.mjs} +1 -1
  22. package/dist/.setup/{policy-Db_QWCZZ.mjs → policy-D-jfM174.mjs} +5 -5
  23. package/dist/.setup/{probe-64C6k3_Q.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-CDqY76Vp.mjs → relay-source-BpKdjsll.mjs} +10 -12
  26. package/dist/.setup/{replies-CWFhjS9S.mjs → replies-BAnUtr2f.mjs} +16 -76
  27. package/dist/.setup/{reply-blocks-9uCeAJts.mjs → reply-blocks-SE1kTE3I.mjs} +27 -154
  28. package/dist/.setup/{resolve-channels-x8fX1SEt.mjs → resolve-channels-XXBn8UU_.mjs} +4 -5
  29. package/dist/.setup/{resolve-users-B8BpBnH2.mjs → resolve-users-DW0ngD03.mjs} +20 -22
  30. package/dist/.setup/{scopes-CJ-6l4v4.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-6GCb3lBP.mjs → send-BOVLQi3n.mjs} +102 -199
  35. package/dist/.setup/{session-status-BhG6pdiH.mjs → session-status-DscajIsd.mjs} +323 -250
  36. package/dist/.setup/{setup-plugin-api-DtCEByQB.mjs → setup-plugin-api-DTtbTKNk.mjs} +1 -1
  37. package/dist/.setup/{setup-surface-DsE0hsYY.mjs → setup-surface-Dn7QgWRE.mjs} +24 -56
  38. package/dist/.setup/{shared-BNmqCPgQ.mjs → shared-qau-uDGl.mjs} +30 -56
  39. package/dist/.setup/{slash-dispatch.runtime-Io4ASZsY.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/web-globals/streams.d.ts +4 -0
  73. package/node_modules/@slack/bolt/node_modules/@types/node/worker_threads.d.ts +4 -1
  74. package/node_modules/@slack/web-api/node_modules/@types/node/README.md +1 -1
  75. package/node_modules/@slack/web-api/node_modules/@types/node/child_process.d.ts +1 -1
  76. package/node_modules/@slack/web-api/node_modules/@types/node/crypto.d.ts +20 -8
  77. package/node_modules/@slack/web-api/node_modules/@types/node/ffi.d.ts +14 -0
  78. package/node_modules/@slack/web-api/node_modules/@types/node/http2.d.ts +3 -2
  79. package/node_modules/@slack/web-api/node_modules/@types/node/net.d.ts +16 -4
  80. package/node_modules/@slack/web-api/node_modules/@types/node/package.json +2 -2
  81. package/node_modules/@slack/web-api/node_modules/@types/node/process.d.ts +1 -0
  82. package/node_modules/@slack/web-api/node_modules/@types/node/quic.d.ts +39 -1
  83. package/node_modules/@slack/web-api/node_modules/@types/node/stream/iter.d.ts +9 -12
  84. package/node_modules/@slack/web-api/node_modules/@types/node/test/reporters.d.ts +1 -0
  85. package/node_modules/@slack/web-api/node_modules/@types/node/test.d.ts +72 -0
  86. package/node_modules/@slack/web-api/node_modules/@types/node/tls.d.ts +14 -10
  87. package/node_modules/@slack/web-api/node_modules/@types/node/vm.d.ts +2 -1
  88. package/node_modules/@slack/web-api/node_modules/@types/node/web-globals/streams.d.ts +4 -0
  89. package/node_modules/@slack/web-api/node_modules/@types/node/worker_threads.d.ts +4 -1
  90. package/node_modules/get-east-asian-width/index.js +8 -3
  91. package/node_modules/get-east-asian-width/lookup-data.js +1 -1
  92. package/node_modules/get-east-asian-width/lookup.js +4 -4
  93. package/node_modules/get-east-asian-width/package.json +1 -1
  94. package/node_modules/typebox/build/compile/code.mjs +1 -2
  95. package/node_modules/typebox/build/compile/validator.mjs +5 -1
  96. package/node_modules/typebox/build/format/iri.mjs +16 -9
  97. package/node_modules/typebox/build/guard/emit.mjs +2 -2
  98. package/node_modules/typebox/build/guard/guard.d.mts +7 -5
  99. package/node_modules/typebox/build/guard/guard.mjs +14 -9
  100. package/node_modules/typebox/build/guard/index.mjs +6 -0
  101. package/node_modules/typebox/build/guard/unicode/unicode.d.mts +6 -0
  102. package/node_modules/typebox/build/guard/unicode/unicode.mjs +35 -0
  103. package/node_modules/typebox/build/guard/{string.mjs → unicode/unicode_segment.mjs} +16 -19
  104. package/node_modules/typebox/build/schema/build.mjs +2 -3
  105. package/node_modules/typebox/build/schema/engine/_pathing.d.mts +1 -0
  106. package/node_modules/typebox/build/schema/engine/_pathing.mjs +11 -0
  107. package/node_modules/typebox/build/schema/engine/_refine.mjs +13 -5
  108. package/node_modules/typebox/build/schema/engine/additionalProperties.mjs +2 -1
  109. package/node_modules/typebox/build/schema/engine/dependencies.mjs +2 -1
  110. package/node_modules/typebox/build/schema/engine/dependentSchemas.mjs +2 -1
  111. package/node_modules/typebox/build/schema/engine/dynamicRef.d.mts +1 -1
  112. package/node_modules/typebox/build/schema/engine/dynamicRef.mjs +2 -2
  113. package/node_modules/typebox/build/schema/engine/format.mjs +9 -2
  114. package/node_modules/typebox/build/schema/engine/patternProperties.mjs +3 -2
  115. package/node_modules/typebox/build/schema/engine/properties.mjs +3 -2
  116. package/node_modules/typebox/build/schema/engine/propertyNames.mjs +2 -1
  117. package/node_modules/typebox/build/schema/engine/recursiveRef.d.mts +1 -1
  118. package/node_modules/typebox/build/schema/engine/recursiveRef.mjs +2 -2
  119. package/node_modules/typebox/build/schema/engine/ref.d.mts +1 -1
  120. package/node_modules/typebox/build/schema/engine/ref.mjs +2 -2
  121. package/node_modules/typebox/build/schema/engine/schema.mjs +24 -24
  122. package/node_modules/typebox/build/schema/parse.mjs +3 -0
  123. package/node_modules/typebox/build/schema/pointer/pointer.d.mts +1 -6
  124. package/node_modules/typebox/build/schema/pointer/pointer.mjs +47 -64
  125. package/node_modules/typebox/build/system/settings/internal.d.mts +2 -0
  126. package/node_modules/typebox/build/system/settings/internal.mjs +20 -0
  127. package/node_modules/typebox/build/system/settings/settings.d.mts +11 -0
  128. package/node_modules/typebox/build/system/settings/settings.mjs +14 -0
  129. package/node_modules/typebox/build/type/extends/inference.d.mts +1 -1
  130. package/node_modules/typebox/build/type/extends/inference.mjs +15 -2
  131. package/node_modules/typebox/build/type/extends/tuple.d.mts +2 -1
  132. package/node_modules/typebox/build/type/extends/tuple.mjs +21 -1
  133. package/node_modules/typebox/build/value/parse/parse.mjs +10 -4
  134. package/node_modules/typebox/package.json +1 -1
  135. package/node_modules/typebox/readme.md +3 -1
  136. package/node_modules/undici/README.md +81 -25
  137. package/node_modules/undici/docs/docs/api/Agent.md +249 -42
  138. package/node_modules/undici/docs/docs/api/BalancedPool.md +246 -48
  139. package/node_modules/undici/docs/docs/api/CacheStorage.md +171 -13
  140. package/node_modules/undici/docs/docs/api/CacheStore.md +294 -98
  141. package/node_modules/undici/docs/docs/api/Client.md +407 -162
  142. package/node_modules/undici/docs/docs/api/ClientStats.md +80 -14
  143. package/node_modules/undici/docs/docs/api/Connector.md +118 -35
  144. package/node_modules/undici/docs/docs/api/ContentType.md +65 -25
  145. package/node_modules/undici/docs/docs/api/Cookies.md +122 -71
  146. package/node_modules/undici/docs/docs/api/Debug.md +34 -18
  147. package/node_modules/undici/docs/docs/api/DiagnosticsChannel.md +364 -164
  148. package/node_modules/undici/docs/docs/api/Dispatcher.md +490 -1055
  149. package/node_modules/undici/docs/docs/api/EnvHttpProxyAgent.md +105 -93
  150. package/node_modules/undici/docs/docs/api/Errors.md +503 -28
  151. package/node_modules/undici/docs/docs/api/EventSource.md +326 -13
  152. package/node_modules/undici/docs/docs/api/Fetch.md +681 -30
  153. package/node_modules/undici/docs/docs/api/GlobalInstallation.md +78 -96
  154. package/node_modules/undici/docs/docs/api/H2CClient.md +298 -176
  155. package/node_modules/undici/docs/docs/api/Interceptors.md +418 -0
  156. package/node_modules/undici/docs/docs/api/MockAgent.md +333 -314
  157. package/node_modules/undici/docs/docs/api/MockCallHistory.md +272 -98
  158. package/node_modules/undici/docs/docs/api/MockCallHistoryLog.md +189 -26
  159. package/node_modules/undici/docs/docs/api/MockClient.md +151 -33
  160. package/node_modules/undici/docs/docs/api/MockErrors.md +56 -5
  161. package/node_modules/undici/docs/docs/api/MockPool.md +321 -258
  162. package/node_modules/undici/docs/docs/api/Pool.md +236 -41
  163. package/node_modules/undici/docs/docs/api/PoolStats.md +119 -13
  164. package/node_modules/undici/docs/docs/api/ProxyAgent.md +179 -160
  165. package/node_modules/undici/docs/docs/api/RedirectHandler.md +238 -55
  166. package/node_modules/undici/docs/docs/api/RetryAgent.md +113 -27
  167. package/node_modules/undici/docs/docs/api/RetryHandler.md +161 -79
  168. package/node_modules/undici/docs/docs/api/RoundRobinPool.md +166 -72
  169. package/node_modules/undici/docs/docs/api/SnapshotAgent.md +262 -517
  170. package/node_modules/undici/docs/docs/api/Socks5ProxyAgent.md +177 -196
  171. package/node_modules/undici/docs/docs/api/Util.md +68 -11
  172. package/node_modules/undici/docs/docs/api/WebSocket.md +475 -80
  173. package/node_modules/undici/docs/docs/api/api-lifecycle.md +100 -32
  174. package/node_modules/undici/docs/docs/best-practices/client-certificate.md +2 -0
  175. package/node_modules/undici/docs/docs/best-practices/crawling.md +3 -1
  176. package/node_modules/undici/docs/docs/best-practices/migrating-from-v7-to-v8.md +233 -0
  177. package/node_modules/undici/docs/docs/best-practices/mocking-request.md +9 -7
  178. package/node_modules/undici/docs/docs/best-practices/proxy.md +3 -1
  179. package/node_modules/undici/docs/docs/best-practices/undici-vs-builtin-fetch.md +10 -8
  180. package/node_modules/undici/docs/docs/best-practices/writing-tests.md +2 -0
  181. package/node_modules/undici/docs/docs/getting-started.md +281 -0
  182. package/node_modules/undici/docs/docs/index.md +784 -0
  183. package/node_modules/undici/docs/docs/site.json +125 -0
  184. package/node_modules/undici/docs/docs/type-map.json +79 -0
  185. package/node_modules/undici/index.js +4 -2
  186. package/node_modules/undici/lib/api/api-connect.js +13 -11
  187. package/node_modules/undici/lib/api/api-pipeline.js +26 -13
  188. package/node_modules/undici/lib/api/api-request.js +51 -21
  189. package/node_modules/undici/lib/api/api-stream.js +81 -20
  190. package/node_modules/undici/lib/api/api-upgrade.js +21 -11
  191. package/node_modules/undici/lib/api/readable.js +45 -9
  192. package/node_modules/undici/lib/cache/memory-cache-store.js +3 -3
  193. package/node_modules/undici/lib/cache/sqlite-cache-store.js +3 -1
  194. package/node_modules/undici/lib/core/connect.js +46 -7
  195. package/node_modules/undici/lib/core/constants.js +1 -24
  196. package/node_modules/undici/lib/core/errors.js +22 -2
  197. package/node_modules/undici/lib/core/request.js +100 -18
  198. package/node_modules/undici/lib/core/symbols.js +4 -0
  199. package/node_modules/undici/lib/core/util.js +105 -48
  200. package/node_modules/undici/lib/dispatcher/agent.js +51 -32
  201. package/node_modules/undici/lib/dispatcher/balanced-pool.js +23 -27
  202. package/node_modules/undici/lib/dispatcher/client-h1.js +86 -24
  203. package/node_modules/undici/lib/dispatcher/client-h2.js +1091 -361
  204. package/node_modules/undici/lib/dispatcher/client.js +109 -36
  205. package/node_modules/undici/lib/dispatcher/dispatcher-base.js +19 -6
  206. package/node_modules/undici/lib/dispatcher/dispatcher.js +15 -5
  207. package/node_modules/undici/lib/dispatcher/dispatcher1-wrapper.js +110 -0
  208. package/node_modules/undici/lib/dispatcher/env-http-proxy-agent.js +37 -8
  209. package/node_modules/undici/lib/dispatcher/h2c-client.js +4 -4
  210. package/node_modules/undici/lib/dispatcher/pool-base.js +28 -10
  211. package/node_modules/undici/lib/dispatcher/pool.js +30 -5
  212. package/node_modules/undici/lib/dispatcher/proxy-agent.js +95 -19
  213. package/node_modules/undici/lib/dispatcher/retry-agent.js +3 -0
  214. package/node_modules/undici/lib/dispatcher/round-robin-pool.js +32 -10
  215. package/node_modules/undici/lib/dispatcher/socks5-proxy-agent.js +153 -63
  216. package/node_modules/undici/lib/global.js +37 -14
  217. package/node_modules/undici/lib/handler/cache-handler.js +49 -7
  218. package/node_modules/undici/lib/handler/cache-revalidation-handler.js +10 -0
  219. package/node_modules/undici/lib/handler/decorator-handler.js +8 -3
  220. package/node_modules/undici/lib/handler/deduplication-handler.js +12 -6
  221. package/node_modules/undici/lib/handler/redirect-handler.js +66 -66
  222. package/node_modules/undici/lib/handler/retry-handler.js +191 -50
  223. package/node_modules/undici/lib/interceptor/cache.js +75 -25
  224. package/node_modules/undici/lib/interceptor/decompress.js +5 -2
  225. package/node_modules/undici/lib/interceptor/deduplicate.js +5 -4
  226. package/node_modules/undici/lib/interceptor/dns.js +12 -1
  227. package/node_modules/undici/lib/interceptor/redirect.js +3 -3
  228. package/node_modules/undici/lib/llhttp/llhttp-wasm.js +1 -1
  229. package/node_modules/undici/lib/llhttp/llhttp_simd-wasm.js +1 -1
  230. package/node_modules/undici/lib/mock/mock-agent.js +21 -9
  231. package/node_modules/undici/lib/mock/mock-call-history.js +1 -1
  232. package/node_modules/undici/lib/mock/mock-interceptor.js +25 -7
  233. package/node_modules/undici/lib/mock/mock-utils.js +281 -47
  234. package/node_modules/undici/lib/mock/snapshot-agent.js +25 -7
  235. package/node_modules/undici/lib/mock/snapshot-recorder.js +38 -3
  236. package/node_modules/undici/lib/util/cache.js +92 -10
  237. package/node_modules/undici/lib/util/runtime-features.js +3 -34
  238. package/node_modules/undici/lib/web/cache/cache.js +6 -8
  239. package/node_modules/undici/lib/web/cookies/parse.js +150 -146
  240. package/node_modules/undici/lib/web/cookies/util.js +1 -1
  241. package/node_modules/undici/lib/web/eventsource/eventsource-stream.js +28 -1
  242. package/node_modules/undici/lib/web/eventsource/eventsource.js +20 -21
  243. package/node_modules/undici/lib/web/eventsource/util.js +32 -1
  244. package/node_modules/undici/lib/web/fetch/body.js +48 -10
  245. package/node_modules/undici/lib/web/fetch/constants.js +1 -1
  246. package/node_modules/undici/lib/web/fetch/formdata.js +21 -2
  247. package/node_modules/undici/lib/web/fetch/index.js +242 -223
  248. package/node_modules/undici/lib/web/fetch/request.js +35 -6
  249. package/node_modules/undici/lib/web/fetch/response.js +1 -3
  250. package/node_modules/undici/lib/web/fetch/util.js +10 -2
  251. package/node_modules/undici/lib/web/webidl/index.js +5 -7
  252. package/node_modules/undici/lib/web/websocket/frame.js +1 -7
  253. package/node_modules/undici/lib/web/websocket/receiver.js +1 -1
  254. package/node_modules/undici/lib/web/websocket/stream/websocketstream.js +10 -10
  255. package/node_modules/undici/lib/web/websocket/websocket.js +25 -3
  256. package/node_modules/undici/package.json +10 -10
  257. package/node_modules/undici/types/agent.d.ts +0 -2
  258. package/node_modules/undici/types/client.d.ts +69 -24
  259. package/node_modules/undici/types/connector.d.ts +1 -0
  260. package/node_modules/undici/types/cookies.d.ts +1 -1
  261. package/node_modules/undici/types/dispatcher.d.ts +8 -30
  262. package/node_modules/undici/types/dispatcher1-wrapper.d.ts +7 -0
  263. package/node_modules/undici/types/errors.d.ts +10 -0
  264. package/node_modules/undici/types/fetch.d.ts +5 -1
  265. package/node_modules/undici/types/formdata.d.ts +0 -6
  266. package/node_modules/undici/types/h2c-client.d.ts +6 -6
  267. package/node_modules/undici/types/handlers.d.ts +2 -0
  268. package/node_modules/undici/types/header.d.ts +5 -0
  269. package/node_modules/undici/types/index.d.ts +3 -1
  270. package/node_modules/undici/types/interceptors.d.ts +1 -1
  271. package/node_modules/undici/types/mock-agent.d.ts +11 -10
  272. package/node_modules/undici/types/mock-interceptor.d.ts +5 -1
  273. package/node_modules/undici/types/pool.d.ts +0 -2
  274. package/node_modules/undici/types/proxy-agent.d.ts +9 -2
  275. package/node_modules/undici/types/round-robin-pool.d.ts +0 -2
  276. package/node_modules/undici/types/snapshot-agent.d.ts +4 -0
  277. package/node_modules/undici/types/socks5-proxy-agent.d.ts +4 -2
  278. package/node_modules/undici/types/webidl.d.ts +0 -1
  279. package/node_modules/zod/README.md +2 -2
  280. package/node_modules/zod/compile.cjs +19 -0
  281. package/node_modules/zod/index.cjs +19 -0
  282. package/node_modules/zod/locales/index.cjs +19 -0
  283. package/node_modules/zod/mini/index.cjs +19 -0
  284. package/node_modules/zod/package.json +8 -7
  285. package/node_modules/zod/src/v3/helpers/errorUtil.ts +1 -1
  286. package/node_modules/zod/src/v4/classic/external.ts +2 -0
  287. package/node_modules/zod/src/v4/classic/from-json-schema.ts +248 -25
  288. package/node_modules/zod/src/v4/classic/schemas.ts +243 -168
  289. package/node_modules/zod/src/v4/classic/tests/assignability.test.ts +60 -9
  290. package/node_modules/zod/src/v4/classic/tests/bigint.test.ts +6 -0
  291. package/node_modules/zod/src/v4/classic/tests/continuability.test.ts +2 -2
  292. package/node_modules/zod/src/v4/classic/tests/cyclic-data.test.ts +265 -0
  293. package/node_modules/zod/src/v4/classic/tests/discriminated-unions.test.ts +112 -6
  294. package/node_modules/zod/src/v4/classic/tests/enum.test.ts +9 -0
  295. package/node_modules/zod/src/v4/classic/tests/error.test.ts +130 -1
  296. package/node_modules/zod/src/v4/classic/tests/from-json-schema.test.ts +157 -0
  297. package/node_modules/zod/src/v4/classic/tests/iban.test.ts +81 -0
  298. package/node_modules/zod/src/v4/classic/tests/instance-footprint.test.ts +40 -2
  299. package/node_modules/zod/src/v4/classic/tests/instanceof.test.ts +27 -7
  300. package/node_modules/zod/src/v4/classic/tests/issue-schema.test.ts +88 -56
  301. package/node_modules/zod/src/v4/classic/tests/number.test.ts +39 -0
  302. package/node_modules/zod/src/v4/classic/tests/object.test.ts +56 -0
  303. package/node_modules/zod/src/v4/classic/tests/optin-ladder.test.ts +3 -2
  304. package/node_modules/zod/src/v4/classic/tests/prefault.test.ts +70 -0
  305. package/node_modules/zod/src/v4/classic/tests/properties.test.ts +141 -0
  306. package/node_modules/zod/src/v4/classic/tests/recursive-types.test.ts +46 -1
  307. package/node_modules/zod/src/v4/classic/tests/standard-schema.test.ts +19 -0
  308. package/node_modules/zod/src/v4/classic/tests/string.test.ts +95 -1
  309. package/node_modules/zod/src/v4/classic/tests/template-literal.test.ts +33 -1
  310. package/node_modules/zod/src/v4/classic/tests/to-json-schema.test.ts +234 -38
  311. package/node_modules/zod/src/v4/classic/tests/validate.test.ts +569 -0
  312. package/node_modules/zod/src/v4/core/api.ts +44 -28
  313. package/node_modules/zod/src/v4/core/checks.ts +62 -102
  314. package/node_modules/zod/src/v4/core/compile.ts +218 -93
  315. package/node_modules/zod/src/v4/core/core.ts +1 -3
  316. package/node_modules/zod/src/v4/core/doc.ts +6 -2
  317. package/node_modules/zod/src/v4/core/errors.ts +3 -6
  318. package/node_modules/zod/src/v4/core/json-schema-generator.ts +2 -2
  319. package/node_modules/zod/src/v4/core/json-schema-processors.ts +185 -81
  320. package/node_modules/zod/src/v4/core/memoizer.ts +75 -28
  321. package/node_modules/zod/src/v4/core/parse.ts +37 -16
  322. package/node_modules/zod/src/v4/core/regexes.ts +14 -4
  323. package/node_modules/zod/src/v4/core/schemas.ts +296 -132
  324. package/node_modules/zod/src/v4/core/tests/cached.test.ts +54 -0
  325. package/node_modules/zod/src/v4/core/tests/compile-differential.test.ts +35 -0
  326. package/node_modules/zod/src/v4/core/tests/compile-generative.test.ts +445 -0
  327. package/node_modules/zod/src/v4/core/tests/compile.test.ts +399 -2
  328. package/node_modules/zod/src/v4/core/tests/email-regex.test.ts +140 -0
  329. package/node_modules/zod/src/v4/core/tests/locales/tg.test.ts +85 -0
  330. package/node_modules/zod/src/v4/core/tests/polyfill-collision.test.ts +46 -0
  331. package/node_modules/zod/src/v4/core/tests/url-no-canparse.test.ts +118 -16
  332. package/node_modules/zod/src/v4/core/to-json-schema.ts +9 -7
  333. package/node_modules/zod/src/v4/core/util.ts +218 -147
  334. package/node_modules/zod/src/v4/core/versions.ts +2 -2
  335. package/node_modules/zod/src/v4/locales/ar.ts +2 -0
  336. package/node_modules/zod/src/v4/locales/az.ts +2 -0
  337. package/node_modules/zod/src/v4/locales/be.ts +2 -0
  338. package/node_modules/zod/src/v4/locales/bg.ts +2 -0
  339. package/node_modules/zod/src/v4/locales/bn.ts +2 -0
  340. package/node_modules/zod/src/v4/locales/ca.ts +2 -0
  341. package/node_modules/zod/src/v4/locales/ckb.ts +2 -0
  342. package/node_modules/zod/src/v4/locales/cs.ts +2 -0
  343. package/node_modules/zod/src/v4/locales/da.ts +2 -0
  344. package/node_modules/zod/src/v4/locales/de.ts +2 -0
  345. package/node_modules/zod/src/v4/locales/el.ts +2 -0
  346. package/node_modules/zod/src/v4/locales/en.ts +2 -0
  347. package/node_modules/zod/src/v4/locales/eo.ts +2 -0
  348. package/node_modules/zod/src/v4/locales/es.ts +2 -0
  349. package/node_modules/zod/src/v4/locales/fa.ts +2 -0
  350. package/node_modules/zod/src/v4/locales/fi.ts +2 -0
  351. package/node_modules/zod/src/v4/locales/fr-CA.ts +2 -0
  352. package/node_modules/zod/src/v4/locales/fr.ts +2 -0
  353. package/node_modules/zod/src/v4/locales/gu.ts +2 -0
  354. package/node_modules/zod/src/v4/locales/he.ts +2 -0
  355. package/node_modules/zod/src/v4/locales/hi.ts +2 -0
  356. package/node_modules/zod/src/v4/locales/hr.ts +2 -0
  357. package/node_modules/zod/src/v4/locales/hu.ts +2 -0
  358. package/node_modules/zod/src/v4/locales/hy.ts +2 -0
  359. package/node_modules/zod/src/v4/locales/id.ts +2 -0
  360. package/node_modules/zod/src/v4/locales/index.ts +1 -0
  361. package/node_modules/zod/src/v4/locales/is.ts +2 -0
  362. package/node_modules/zod/src/v4/locales/it.ts +2 -0
  363. package/node_modules/zod/src/v4/locales/ja.ts +2 -0
  364. package/node_modules/zod/src/v4/locales/ka.ts +2 -0
  365. package/node_modules/zod/src/v4/locales/km.ts +2 -0
  366. package/node_modules/zod/src/v4/locales/kn.ts +2 -0
  367. package/node_modules/zod/src/v4/locales/ko.ts +2 -0
  368. package/node_modules/zod/src/v4/locales/lt.ts +2 -0
  369. package/node_modules/zod/src/v4/locales/mk.ts +2 -0
  370. package/node_modules/zod/src/v4/locales/ms.ts +2 -0
  371. package/node_modules/zod/src/v4/locales/ne.ts +2 -0
  372. package/node_modules/zod/src/v4/locales/nl.ts +2 -0
  373. package/node_modules/zod/src/v4/locales/nn.ts +2 -0
  374. package/node_modules/zod/src/v4/locales/no.ts +2 -0
  375. package/node_modules/zod/src/v4/locales/ota.ts +2 -0
  376. package/node_modules/zod/src/v4/locales/pl.ts +2 -0
  377. package/node_modules/zod/src/v4/locales/ps.ts +2 -0
  378. package/node_modules/zod/src/v4/locales/pt-BR.ts +2 -0
  379. package/node_modules/zod/src/v4/locales/pt.ts +2 -0
  380. package/node_modules/zod/src/v4/locales/ro.ts +2 -0
  381. package/node_modules/zod/src/v4/locales/ru.ts +2 -0
  382. package/node_modules/zod/src/v4/locales/sk.ts +2 -0
  383. package/node_modules/zod/src/v4/locales/sl.ts +2 -0
  384. package/node_modules/zod/src/v4/locales/sv.ts +2 -0
  385. package/node_modules/zod/src/v4/locales/ta.ts +2 -0
  386. package/node_modules/zod/src/v4/locales/tg.ts +135 -0
  387. package/node_modules/zod/src/v4/locales/th.ts +2 -0
  388. package/node_modules/zod/src/v4/locales/tk.ts +2 -0
  389. package/node_modules/zod/src/v4/locales/tr.ts +2 -0
  390. package/node_modules/zod/src/v4/locales/uk.ts +2 -0
  391. package/node_modules/zod/src/v4/locales/ur.ts +2 -0
  392. package/node_modules/zod/src/v4/locales/uz.ts +2 -0
  393. package/node_modules/zod/src/v4/locales/vi.ts +2 -0
  394. package/node_modules/zod/src/v4/locales/yo.ts +2 -0
  395. package/node_modules/zod/src/v4/locales/zh-CN.ts +2 -0
  396. package/node_modules/zod/src/v4/locales/zh-TW.ts +2 -0
  397. package/node_modules/zod/src/v4/mini/external.ts +2 -0
  398. package/node_modules/zod/src/v4/mini/schemas.ts +32 -7
  399. package/node_modules/zod/src/v4/mini/tests/checks.test.ts +1 -1
  400. package/node_modules/zod/src/v4/mini/tests/computed.test.ts +11 -17
  401. package/node_modules/zod/src/v4/mini/tests/index.test.ts +86 -0
  402. package/node_modules/zod/src/v4/mini/tests/recursive-types.test.ts +16 -0
  403. package/node_modules/zod/src/v4/mini/tests/string.test.ts +23 -0
  404. package/node_modules/zod/v3/ZodError.cjs +19 -0
  405. package/node_modules/zod/v3/errors.cjs +19 -0
  406. package/node_modules/zod/v3/external.cjs +19 -0
  407. package/node_modules/zod/v3/helpers/enumUtil.cjs +19 -0
  408. package/node_modules/zod/v3/helpers/errorUtil.cjs +20 -1
  409. package/node_modules/zod/v3/helpers/errorUtil.js +1 -1
  410. package/node_modules/zod/v3/helpers/parseUtil.cjs +19 -0
  411. package/node_modules/zod/v3/helpers/partialUtil.cjs +19 -0
  412. package/node_modules/zod/v3/helpers/typeAliases.cjs +19 -0
  413. package/node_modules/zod/v3/helpers/util.cjs +19 -0
  414. package/node_modules/zod/v3/index.cjs +19 -0
  415. package/node_modules/zod/v3/standard-schema.cjs +19 -0
  416. package/node_modules/zod/v3/types.cjs +19 -0
  417. package/node_modules/zod/v4/classic/checks.cjs +19 -0
  418. package/node_modules/zod/v4/classic/coerce.cjs +19 -0
  419. package/node_modules/zod/v4/classic/compat.cjs +19 -0
  420. package/node_modules/zod/v4/classic/deep-partial.cjs +19 -0
  421. package/node_modules/zod/v4/classic/errors.cjs +19 -0
  422. package/node_modules/zod/v4/classic/external.cjs +22 -1
  423. package/node_modules/zod/v4/classic/external.d.cts +1 -1
  424. package/node_modules/zod/v4/classic/external.d.ts +1 -1
  425. package/node_modules/zod/v4/classic/external.js +1 -1
  426. package/node_modules/zod/v4/classic/from-json-schema.cjs +264 -24
  427. package/node_modules/zod/v4/classic/from-json-schema.js +245 -24
  428. package/node_modules/zod/v4/classic/in-out.cjs +19 -0
  429. package/node_modules/zod/v4/classic/index.cjs +19 -0
  430. package/node_modules/zod/v4/classic/iso.cjs +19 -0
  431. package/node_modules/zod/v4/classic/parse.cjs +19 -0
  432. package/node_modules/zod/v4/classic/schemas.cjs +100 -35
  433. package/node_modules/zod/v4/classic/schemas.d.cts +15 -1
  434. package/node_modules/zod/v4/classic/schemas.d.ts +15 -1
  435. package/node_modules/zod/v4/classic/schemas.js +77 -33
  436. package/node_modules/zod/v4/core/api.cjs +45 -22
  437. package/node_modules/zod/v4/core/api.d.cts +12 -6
  438. package/node_modules/zod/v4/core/api.d.ts +12 -6
  439. package/node_modules/zod/v4/core/api.js +25 -22
  440. package/node_modules/zod/v4/core/checks.cjs +51 -97
  441. package/node_modules/zod/v4/core/checks.d.cts +17 -1
  442. package/node_modules/zod/v4/core/checks.d.ts +17 -1
  443. package/node_modules/zod/v4/core/checks.js +31 -96
  444. package/node_modules/zod/v4/core/compile.cjs +173 -78
  445. package/node_modules/zod/v4/core/compile.d.cts +18 -4
  446. package/node_modules/zod/v4/core/compile.d.ts +18 -4
  447. package/node_modules/zod/v4/core/compile.js +154 -79
  448. package/node_modules/zod/v4/core/core.cjs +20 -1
  449. package/node_modules/zod/v4/core/core.js +1 -1
  450. package/node_modules/zod/v4/core/doc.cjs +26 -2
  451. package/node_modules/zod/v4/core/doc.js +7 -2
  452. package/node_modules/zod/v4/core/errors.cjs +21 -5
  453. package/node_modules/zod/v4/core/errors.js +2 -5
  454. package/node_modules/zod/v4/core/index.cjs +19 -0
  455. package/node_modules/zod/v4/core/json-schema-generator.cjs +20 -1
  456. package/node_modules/zod/v4/core/json-schema-generator.js +2 -2
  457. package/node_modules/zod/v4/core/json-schema-processors.cjs +188 -72
  458. package/node_modules/zod/v4/core/json-schema-processors.d.cts +16 -0
  459. package/node_modules/zod/v4/core/json-schema-processors.d.ts +16 -0
  460. package/node_modules/zod/v4/core/json-schema-processors.js +170 -74
  461. package/node_modules/zod/v4/core/json-schema.cjs +19 -0
  462. package/node_modules/zod/v4/core/memoizer.cjs +111 -23
  463. package/node_modules/zod/v4/core/memoizer.js +69 -23
  464. package/node_modules/zod/v4/core/parse.cjs +56 -16
  465. package/node_modules/zod/v4/core/parse.js +37 -16
  466. package/node_modules/zod/v4/core/regexes.cjs +31 -6
  467. package/node_modules/zod/v4/core/regexes.d.cts +3 -0
  468. package/node_modules/zod/v4/core/regexes.d.ts +3 -0
  469. package/node_modules/zod/v4/core/regexes.js +10 -4
  470. package/node_modules/zod/v4/core/registries.cjs +19 -0
  471. package/node_modules/zod/v4/core/schemas.cjs +302 -114
  472. package/node_modules/zod/v4/core/schemas.d.cts +28 -8
  473. package/node_modules/zod/v4/core/schemas.d.ts +28 -8
  474. package/node_modules/zod/v4/core/schemas.js +279 -113
  475. package/node_modules/zod/v4/core/standard-schema.cjs +19 -0
  476. package/node_modules/zod/v4/core/to-json-schema.cjs +28 -7
  477. package/node_modules/zod/v4/core/to-json-schema.d.cts +4 -3
  478. package/node_modules/zod/v4/core/to-json-schema.d.ts +4 -3
  479. package/node_modules/zod/v4/core/to-json-schema.js +7 -6
  480. package/node_modules/zod/v4/core/util.cjs +177 -143
  481. package/node_modules/zod/v4/core/util.d.cts +25 -4
  482. package/node_modules/zod/v4/core/util.d.ts +25 -4
  483. package/node_modules/zod/v4/core/util.js +156 -143
  484. package/node_modules/zod/v4/core/versions.cjs +21 -2
  485. package/node_modules/zod/v4/core/versions.d.cts +1 -1
  486. package/node_modules/zod/v4/core/versions.d.ts +1 -1
  487. package/node_modules/zod/v4/core/versions.js +2 -2
  488. package/node_modules/zod/v4/core/visit.cjs +19 -0
  489. package/node_modules/zod/v4/index.cjs +19 -0
  490. package/node_modules/zod/v4/locales/ar.cjs +2 -0
  491. package/node_modules/zod/v4/locales/ar.js +2 -0
  492. package/node_modules/zod/v4/locales/az.cjs +2 -0
  493. package/node_modules/zod/v4/locales/az.js +2 -0
  494. package/node_modules/zod/v4/locales/be.cjs +2 -0
  495. package/node_modules/zod/v4/locales/be.js +2 -0
  496. package/node_modules/zod/v4/locales/bg.cjs +2 -0
  497. package/node_modules/zod/v4/locales/bg.js +2 -0
  498. package/node_modules/zod/v4/locales/bn.cjs +2 -0
  499. package/node_modules/zod/v4/locales/bn.js +2 -0
  500. package/node_modules/zod/v4/locales/ca.cjs +2 -0
  501. package/node_modules/zod/v4/locales/ca.js +2 -0
  502. package/node_modules/zod/v4/locales/ckb.cjs +2 -0
  503. package/node_modules/zod/v4/locales/ckb.js +2 -0
  504. package/node_modules/zod/v4/locales/cs.cjs +2 -0
  505. package/node_modules/zod/v4/locales/cs.js +2 -0
  506. package/node_modules/zod/v4/locales/da.cjs +2 -0
  507. package/node_modules/zod/v4/locales/da.js +2 -0
  508. package/node_modules/zod/v4/locales/de.cjs +2 -0
  509. package/node_modules/zod/v4/locales/de.js +2 -0
  510. package/node_modules/zod/v4/locales/el.cjs +2 -0
  511. package/node_modules/zod/v4/locales/el.js +2 -0
  512. package/node_modules/zod/v4/locales/en.cjs +2 -0
  513. package/node_modules/zod/v4/locales/en.js +2 -0
  514. package/node_modules/zod/v4/locales/eo.cjs +2 -0
  515. package/node_modules/zod/v4/locales/eo.js +2 -0
  516. package/node_modules/zod/v4/locales/es.cjs +2 -0
  517. package/node_modules/zod/v4/locales/es.js +2 -0
  518. package/node_modules/zod/v4/locales/fa.cjs +2 -0
  519. package/node_modules/zod/v4/locales/fa.js +2 -0
  520. package/node_modules/zod/v4/locales/fi.cjs +2 -0
  521. package/node_modules/zod/v4/locales/fi.js +2 -0
  522. package/node_modules/zod/v4/locales/fr-CA.cjs +2 -0
  523. package/node_modules/zod/v4/locales/fr-CA.js +2 -0
  524. package/node_modules/zod/v4/locales/fr.cjs +2 -0
  525. package/node_modules/zod/v4/locales/fr.js +2 -0
  526. package/node_modules/zod/v4/locales/gu.cjs +2 -0
  527. package/node_modules/zod/v4/locales/gu.js +2 -0
  528. package/node_modules/zod/v4/locales/he.cjs +2 -0
  529. package/node_modules/zod/v4/locales/he.js +2 -0
  530. package/node_modules/zod/v4/locales/hi.cjs +2 -0
  531. package/node_modules/zod/v4/locales/hi.js +2 -0
  532. package/node_modules/zod/v4/locales/hr.cjs +2 -0
  533. package/node_modules/zod/v4/locales/hr.js +2 -0
  534. package/node_modules/zod/v4/locales/hu.cjs +2 -0
  535. package/node_modules/zod/v4/locales/hu.js +2 -0
  536. package/node_modules/zod/v4/locales/hy.cjs +2 -0
  537. package/node_modules/zod/v4/locales/hy.js +2 -0
  538. package/node_modules/zod/v4/locales/id.cjs +2 -0
  539. package/node_modules/zod/v4/locales/id.js +2 -0
  540. package/node_modules/zod/v4/locales/index.cjs +22 -1
  541. package/node_modules/zod/v4/locales/index.d.cts +1 -0
  542. package/node_modules/zod/v4/locales/index.d.ts +1 -0
  543. package/node_modules/zod/v4/locales/index.js +1 -0
  544. package/node_modules/zod/v4/locales/is.cjs +2 -0
  545. package/node_modules/zod/v4/locales/is.js +2 -0
  546. package/node_modules/zod/v4/locales/it.cjs +2 -0
  547. package/node_modules/zod/v4/locales/it.js +2 -0
  548. package/node_modules/zod/v4/locales/ja.cjs +2 -0
  549. package/node_modules/zod/v4/locales/ja.js +2 -0
  550. package/node_modules/zod/v4/locales/ka.cjs +2 -0
  551. package/node_modules/zod/v4/locales/ka.js +2 -0
  552. package/node_modules/zod/v4/locales/km.cjs +2 -0
  553. package/node_modules/zod/v4/locales/km.js +2 -0
  554. package/node_modules/zod/v4/locales/kn.cjs +2 -0
  555. package/node_modules/zod/v4/locales/kn.js +2 -0
  556. package/node_modules/zod/v4/locales/ko.cjs +2 -0
  557. package/node_modules/zod/v4/locales/ko.js +2 -0
  558. package/node_modules/zod/v4/locales/lt.cjs +2 -0
  559. package/node_modules/zod/v4/locales/lt.js +2 -0
  560. package/node_modules/zod/v4/locales/mk.cjs +2 -0
  561. package/node_modules/zod/v4/locales/mk.js +2 -0
  562. package/node_modules/zod/v4/locales/ms.cjs +2 -0
  563. package/node_modules/zod/v4/locales/ms.js +2 -0
  564. package/node_modules/zod/v4/locales/ne.cjs +2 -0
  565. package/node_modules/zod/v4/locales/ne.js +2 -0
  566. package/node_modules/zod/v4/locales/nl.cjs +2 -0
  567. package/node_modules/zod/v4/locales/nl.js +2 -0
  568. package/node_modules/zod/v4/locales/nn.cjs +2 -0
  569. package/node_modules/zod/v4/locales/nn.js +2 -0
  570. package/node_modules/zod/v4/locales/no.cjs +2 -0
  571. package/node_modules/zod/v4/locales/no.js +2 -0
  572. package/node_modules/zod/v4/locales/ota.cjs +2 -0
  573. package/node_modules/zod/v4/locales/ota.js +2 -0
  574. package/node_modules/zod/v4/locales/pl.cjs +2 -0
  575. package/node_modules/zod/v4/locales/pl.js +2 -0
  576. package/node_modules/zod/v4/locales/ps.cjs +2 -0
  577. package/node_modules/zod/v4/locales/ps.js +2 -0
  578. package/node_modules/zod/v4/locales/pt-BR.cjs +2 -0
  579. package/node_modules/zod/v4/locales/pt-BR.js +2 -0
  580. package/node_modules/zod/v4/locales/pt.cjs +2 -0
  581. package/node_modules/zod/v4/locales/pt.js +2 -0
  582. package/node_modules/zod/v4/locales/ro.cjs +2 -0
  583. package/node_modules/zod/v4/locales/ro.js +2 -0
  584. package/node_modules/zod/v4/locales/ru.cjs +2 -0
  585. package/node_modules/zod/v4/locales/ru.js +2 -0
  586. package/node_modules/zod/v4/locales/sk.cjs +2 -0
  587. package/node_modules/zod/v4/locales/sk.js +2 -0
  588. package/node_modules/zod/v4/locales/sl.cjs +2 -0
  589. package/node_modules/zod/v4/locales/sl.js +2 -0
  590. package/node_modules/zod/v4/locales/sv.cjs +2 -0
  591. package/node_modules/zod/v4/locales/sv.js +2 -0
  592. package/node_modules/zod/v4/locales/ta.cjs +2 -0
  593. package/node_modules/zod/v4/locales/ta.js +2 -0
  594. package/node_modules/zod/v4/locales/tg.cjs +144 -0
  595. package/node_modules/zod/v4/locales/tg.d.cts +5 -0
  596. package/node_modules/zod/v4/locales/tg.d.ts +4 -0
  597. package/node_modules/zod/v4/locales/tg.js +117 -0
  598. package/node_modules/zod/v4/locales/th.cjs +2 -0
  599. package/node_modules/zod/v4/locales/th.js +2 -0
  600. package/node_modules/zod/v4/locales/tk.cjs +2 -0
  601. package/node_modules/zod/v4/locales/tk.js +2 -0
  602. package/node_modules/zod/v4/locales/tr.cjs +2 -0
  603. package/node_modules/zod/v4/locales/tr.js +2 -0
  604. package/node_modules/zod/v4/locales/uk.cjs +2 -0
  605. package/node_modules/zod/v4/locales/uk.js +2 -0
  606. package/node_modules/zod/v4/locales/ur.cjs +2 -0
  607. package/node_modules/zod/v4/locales/ur.js +2 -0
  608. package/node_modules/zod/v4/locales/uz.cjs +2 -0
  609. package/node_modules/zod/v4/locales/uz.js +2 -0
  610. package/node_modules/zod/v4/locales/vi.cjs +2 -0
  611. package/node_modules/zod/v4/locales/vi.js +2 -0
  612. package/node_modules/zod/v4/locales/yo.cjs +2 -0
  613. package/node_modules/zod/v4/locales/yo.js +2 -0
  614. package/node_modules/zod/v4/locales/zh-CN.cjs +2 -0
  615. package/node_modules/zod/v4/locales/zh-CN.js +2 -0
  616. package/node_modules/zod/v4/locales/zh-TW.cjs +2 -0
  617. package/node_modules/zod/v4/locales/zh-TW.js +2 -0
  618. package/node_modules/zod/v4/mini/checks.cjs +19 -0
  619. package/node_modules/zod/v4/mini/coerce.cjs +19 -0
  620. package/node_modules/zod/v4/mini/deep-partial.cjs +19 -0
  621. package/node_modules/zod/v4/mini/external.cjs +22 -1
  622. package/node_modules/zod/v4/mini/external.d.cts +1 -1
  623. package/node_modules/zod/v4/mini/external.d.ts +1 -1
  624. package/node_modules/zod/v4/mini/external.js +1 -1
  625. package/node_modules/zod/v4/mini/in-out.cjs +19 -0
  626. package/node_modules/zod/v4/mini/index.cjs +19 -0
  627. package/node_modules/zod/v4/mini/iso.cjs +19 -0
  628. package/node_modules/zod/v4/mini/parse.cjs +19 -0
  629. package/node_modules/zod/v4/mini/schemas.cjs +44 -8
  630. package/node_modules/zod/v4/mini/schemas.d.cts +6 -1
  631. package/node_modules/zod/v4/mini/schemas.d.ts +6 -1
  632. package/node_modules/zod/v4/mini/schemas.js +21 -6
  633. package/node_modules/zod/v4-mini/index.cjs +19 -0
  634. package/openclaw.plugin.json +49 -3
  635. package/package.json +8 -8
  636. package/dist/.setup/accounts.runtime-BpWv-6-2.mjs +0 -2
  637. package/dist/.setup/action-runtime.runtime-DwH3NdpT.mjs +0 -2
  638. package/dist/.setup/doctor-contract-CtMUqjvk.mjs +0 -186
  639. package/dist/.setup/monitor-Dw5uuKWM.mjs +0 -13
  640. package/dist/.setup/rolldown-runtime-D7D4PA-g.mjs +0 -13
  641. package/dist/.setup/send.runtime-BmqRP-WG.mjs +0 -2
  642. package/dist/.setup/slash-commands.runtime-BpSH0b3q.mjs +0 -2
  643. package/dist/.setup/slash-skill-commands.runtime-Bi1JWZHY.mjs +0 -2
  644. package/node_modules/undici/lib/handler/unwrap-handler.js +0 -106
  645. package/node_modules/undici/lib/handler/wrap-handler.js +0 -105
  646. package/node_modules/undici/lib/llhttp/.gitkeep +0 -0
  647. package/node_modules/undici/lib/util/promise.js +0 -28
  648. /package/node_modules/typebox/build/guard/{string.d.mts → unicode/unicode_segment.d.mts} +0 -0
@@ -1,26 +1,28 @@
1
1
  import { n as isSlackPluginAccountConfigured } from "./account-configured-sUohAxZr.mjs";
2
- import { a as resolveSlackAccount, i as resolveDefaultSlackAccountId, l as resolveSlackOperationToken, n as listSlackAccountIds, o as resolveSlackAccountAllowFrom } from "./accounts-C1FspRF-.mjs";
3
- import { A as countSlackTextUtf8Bytes, At as resolveSlackExecApprovalTarget, Dt as isSlackExecApprovalAuthorizedSender, E as SLACK_EDIT_TEXT_MAX_BYTES, Et as getSlackExecApprovalApprovers, Nt as resolveSlackAutoThreadId, Ot as isSlackExecApprovalClientEnabled, Pt as resolveSlackReplyToMode, St as isSlackWorkspaceInstallation, Tt as isSlackApprovalAuthorizedSender, Y as normalizeSlackOutboundText, _t as resolveTurnSourceSlackOriginTarget, a as resolveSlackGroupRequireMention, at as renderSlackMessagePresentationFallbackText, bt as slackTargetsMatch, c as qualifySlackRoutePeerId, d as resolveSlackConversationBindingRoute, dt as isSlackAnyNativeApprovalClientEnabled, f as assertSlackDetachedTargetAllowed, ft as normalizeSlackForwardTarget, gt as resolveSlackFallbackOriginTarget, ht as resolveSessionSlackOriginTarget, jt as shouldSuppressLocalSlackExecApprovalPrompt, k as SLACK_TEXT_LIMIT, mt as resolveEnterpriseApprovalTeamId, n as setSlackSessionStatus, o as resolveSlackGroupToolPolicy, pt as normalizeSlackOriginTarget, s as qualifySlackConversationId, u as normalizeSlackRouteBindingConfig, ut as hasSlackPluginApprovers, vt as shouldHandleSlackNativeApprovalRequest, wt as getSlackApprovalApproversForTeam, xt as getSlackInstallationKind, yt as shouldHandleSlackPluginViaForwardingSession } from "./session-status-BhG6pdiH.mjs";
4
- import { a as parseSlackTarget, i as normalizeSlackMessagingTarget, n as formatSlackTarget, o as resolveSlackChannelId, r as looksLikeSlackTargetId, t as canonicalizeSlackApiTargetId } from "./target-parsing-DEsPjngB.mjs";
5
- import { t as slackContextTargetsMatch } from "./targets-Cku2KCvg.mjs";
6
- import { g as getSlackWriteClient, l as createSlackLookupClient, o as formatSlackError, s as collectSlackCursorPages } from "./probe-64C6k3_Q.mjs";
7
- import { c as resolveSlackReplyDeliveryMessages, f as buildSlackPresentationBlocks, o as resolveSlackReplyBlockResolution, p as canRenderSlackPresentation, r as normalizeSlackReplyPayload, s as resolveSlackReplyBlocks, v as SLACK_PRESENTATION_CAPABILITIES } from "./reply-blocks-9uCeAJts.mjs";
8
- import { n as resolveSlackReplyThreadTs, r as resolveSlackThreadTsValue, t as normalizeSlackThreadTsCandidate } from "./thread-ts-CukseRVL.mjs";
9
- import { n as extractSlackToolSend, t as describeSlackMessageTool } from "./message-tool-api-DRnDCVdY.mjs";
10
- import { a as PAIRING_APPROVED_MESSAGE, i as DEFAULT_ACCOUNT_ID$1, n as slackConfigAdapter, o as projectCredentialSnapshotFields, r as slackSecurityAdapter, s as resolveConfiguredFromRequiredCredentialStatuses, t as createSlackPluginBase } from "./shared-BNmqCPgQ.mjs";
11
- import { n as resolveSlackChannelType, r as resolveSlackConversationInfo } from "./channel-type-osC0XOES.mjs";
2
+ import { c as resolveSlackAccountAllowFrom, d as resolveSlackOperationToken, f as resolveSlackReplyToMode, i as listSlackAccountIds, n as hasImplicitDefaultSlackAccount, o as resolveDefaultSlackAccountId, s as resolveSlackAccount } from "./accounts-D_N9IqNA.mjs";
3
+ import { a as parseSlackTarget, i as normalizeSlackMessagingTarget, n as formatSlackTarget, o as resolveSlackChannelId, r as looksLikeSlackTargetId, t as canonicalizeSlackApiTargetId } from "./target-parsing-FFE26kOV.mjs";
4
+ import { t as slackContextTargetsMatch } from "./targets-C6LZQL1Q.mjs";
5
+ import { A as countSlackTextUtf8Bytes, At as getSlackApprovalApproversForTeam, Bt as resolveSlackExecApprovalTarget, Ct as resolveSessionSlackOriginTarget, Dt as shouldHandleSlackNativeApprovalRequest, E as SLACK_EDIT_TEXT_MAX_BYTES, Et as resolveTurnSourceSlackOriginTarget, Ht as resolvePluginApprovalSlackApprovers, It as getSlackExecApprovalApprovers, Lt as isSlackExecApprovalAuthorizedSender, Mt as resolveSlackApprovalTeamId, Nt as getSlackInstallationKind, Ot as shouldHandleSlackPluginViaForwardingSession, Pt as isSlackWorkspaceInstallation, Q as normalizeSlackOutboundText, Rt as isSlackExecApprovalClientEnabled, St as normalizeSlackOriginTarget, Tt as resolveSlackFallbackOriginTarget, Vt as shouldSuppressLocalSlackExecApprovalPrompt, Wt as resolveSlackAutoThreadId, a as resolveSlackGroupRequireMention, bt as isSlackPluginApprovalRequest, c as qualifySlackRoutePeerId, ct as renderSlackMessagePresentationFallbackText, d as resolveSlackConversationBindingRoute, f as assertSlackDetachedTargetAllowed, jt as isSlackPluginApprovalAuthorizedSender, k as SLACK_TEXT_LIMIT, kt as slackTargetsMatch, mt as SLACK_PRESENTATION_CAPABILITIES, n as setSlackSessionStatus, o as resolveSlackGroupToolPolicy, s as qualifySlackConversationId, u as normalizeSlackRouteBindingConfig, wt as resolveSlackApproverDmTargets, xt as normalizeSlackForwardTarget, yt as isSlackAnyNativeApprovalClientEnabled } from "./session-status-DscajIsd.mjs";
6
+ import { _ as getSlackWriteClient, c as collectSlackCursorPages, o as formatSlackError, u as createSlackLookupClient } from "./probe-B2Y9qc_z.mjs";
7
+ import { c as resolveSlackReplyDeliveryMessages, f as buildSlackPresentationBlocks, o as resolveSlackReplyBlockResolution, p as canRenderSlackPresentation, r as normalizeSlackReplyPayload, s as resolveSlackReplyBlocks } from "./reply-blocks-SE1kTE3I.mjs";
8
+ import { n as resolveSlackReplyThreadTs, r as resolveSlackThreadTsValue, t as normalizeSlackThreadTsCandidate } from "./thread-ts-Cvt7WD6B.mjs";
9
+ import { n as extractSlackToolSend, t as describeSlackMessageTool } from "./message-tool-api-Cu4lwlGy.mjs";
10
+ import { n as resolveSlackChannelType, r as resolveSlackConversationInfo } from "./channel-type-ClOttrZ5.mjs";
12
11
  import { t as getOptionalSlackRuntime } from "./runtime-JSVZSWAj.mjs";
13
- import { a as slackSetupContract, i as createSlackSetupWizardProxy, o as SLACK_CHANNEL } from "./channel.setup-BSY5hzVz.mjs";
14
- import { normalizeAccountId } from "openclaw/plugin-sdk/account-resolution";
12
+ import { n as slackConfigAdapter, r as slackSecurityAdapter, t as createSlackPluginBase } from "./shared-qau-uDGl.mjs";
13
+ import { a as slackSetupContract, i as createSlackSetupWizardProxy, o as SLACK_CHANNEL } from "./channel.setup-Dh2jzAjN.mjs";
14
+ import { DEFAULT_ACCOUNT_ID, normalizeAccountId } from "openclaw/plugin-sdk/account-id";
15
+ import { normalizeAccountId as normalizeAccountId$1 } from "openclaw/plugin-sdk/account-resolution";
15
16
  import { normalizeLowercaseStringOrEmpty, normalizeOptionalLowercaseString, normalizeOptionalString } from "openclaw/plugin-sdk/string-coerce-runtime";
16
17
  import { adaptScopedAccountAccessor } from "openclaw/plugin-sdk/channel-config-helpers";
17
- import { buildOutboundBaseSessionKey, normalizeMessageChannel, resolveAgentRoute } from "openclaw/plugin-sdk/routing";
18
+ import { buildOutboundBaseSessionKey, normalizeMessageChannel, resolveAccountEntry, resolveAgentRoute } from "openclaw/plugin-sdk/routing";
18
19
  import { buildLegacyDmAccountAllowlistAdapter, createAccountScopedAllowlistNameResolver, createFlatAllowlistOverrideResolver } from "openclaw/plugin-sdk/allowlist-config-edit";
19
20
  import { buildThreadAwareOutboundSessionRoute, createChatChannelPlugin } from "openclaw/plugin-sdk/channel-core";
20
21
  import { createChannelMessageAdapterFromOutbound, createRuntimeOutboundDelegates } from "openclaw/plugin-sdk/channel-outbound";
21
22
  import { createPairingPrefixStripper } from "openclaw/plugin-sdk/channel-pairing";
23
+ import { PAIRING_APPROVED_MESSAGE, projectCredentialSnapshotFields, resolveConfiguredFromRequiredCredentialStatuses } from "openclaw/plugin-sdk/channel-status";
22
24
  import { createChannelDirectoryAdapter, createRuntimeDirectoryLiveAdapter } from "openclaw/plugin-sdk/directory-runtime";
23
- import { createLazyRuntimeModule } from "openclaw/plugin-sdk/lazy-runtime";
25
+ import { createLazyRuntimeMethodBinder, createLazyRuntimeModule } from "openclaw/plugin-sdk/lazy-runtime";
24
26
  import { logVerbose } from "openclaw/plugin-sdk/runtime-env";
25
27
  import { createComputedAccountStatusAdapter, createDefaultChannelRuntimeState } from "openclaw/plugin-sdk/status-helpers";
26
28
  import { sanitizeAssistantVisibleText } from "openclaw/plugin-sdk/text-chunking";
@@ -44,47 +46,17 @@ function shouldConsiderSlackNativeForwardingSuppression(input) {
44
46
  }
45
47
  const resolveSlackOriginTarget = createChannelNativeOriginTargetResolver({
46
48
  channel: "slack",
47
- shouldHandleRequest: ({ cfg, accountId, approvalKind, request }) => shouldHandleSlackNativeApprovalRequest({
48
- cfg,
49
- accountId,
50
- approvalKind,
51
- request
52
- }),
49
+ shouldHandleRequest: shouldHandleSlackNativeApprovalRequest,
53
50
  resolveTurnSourceTarget: resolveTurnSourceSlackOriginTarget,
54
51
  resolveSessionTarget: resolveSessionSlackOriginTarget,
55
52
  normalizeTargetForMatch: normalizeSlackOriginTarget,
56
53
  targetsMatch: slackTargetsMatch,
57
54
  resolveFallbackTarget: resolveSlackFallbackOriginTarget
58
55
  });
59
- function resolveSlackApproverDmTargets(params) {
60
- if (!shouldHandleSlackNativeApprovalRequest({
61
- cfg: params.cfg,
62
- accountId: params.accountId,
63
- approvalKind: params.approvalKind,
64
- request: params.request
65
- })) return [];
66
- const teamId = resolveEnterpriseApprovalTeamId(params.request);
67
- return (params.approvalKind === "plugin" ? getSlackApprovalApproversForTeam({
68
- ...params,
69
- teamId
70
- }) : getSlackExecApprovalApprovers(params)).map((approver) => {
71
- const target = parseSlackTarget(approver, { defaultKind: "user" });
72
- if (!target || target.kind !== "user") throw new Error("Slack approval approver target must be a user");
73
- return { to: formatSlackTarget({
74
- kind: "user",
75
- id: target.id,
76
- teamId: target.teamId ?? teamId,
77
- explicitKind: true
78
- }) };
79
- });
80
- }
81
56
  const shouldSuppressSlackForwardingFallback = createNativeApprovalForwardingFallbackSuppressor({
82
57
  channel: "slack",
83
58
  normalizeForwardTarget: normalizeSlackForwardTarget,
84
- resolveAccountId: ({ target, request }) => resolveSlackNativeSuppressionAccountId({
85
- target,
86
- request
87
- }),
59
+ resolveAccountId: resolveSlackNativeSuppressionAccountId,
88
60
  isSessionRouteEligible: shouldHandleSlackNativeApprovalRequest,
89
61
  isExplicitTargetEligible: shouldHandleSlackNativeApprovalRequest,
90
62
  resolveOriginTarget: resolveSlackOriginTarget,
@@ -96,31 +68,23 @@ const baseSlackApprovalCapability = createApproverRestrictedNativeApprovalCapabi
96
68
  channelLabel: "Slack",
97
69
  describeExecApprovalSetup: ({ accountId }) => {
98
70
  const prefix = accountId && accountId !== "default" ? `channels.slack.accounts.${accountId}` : "channels.slack";
99
- return `Approve it from the Web UI or terminal UI for now. Slack supports native exec approvals for this account. Configure \`${prefix}.execApprovals.approvers\` or \`commands.ownerAllowFrom\`; set \`${prefix}.execApprovals.enabled\` to \`auto\` or \`true\`. Unset or \`false\` disables native exec approval delivery.`;
71
+ return `Approve it from the Web UI for now. Slack supports native exec approvals for this account. Configure \`${prefix}.execApprovals.approvers\` or \`commands.ownerAllowFrom\`; set \`${prefix}.execApprovals.enabled\` to \`auto\` or \`true\`. Unset or \`false\` disables native exec approval delivery.`;
100
72
  },
73
+ describePluginApprovalSetup: () => "Check `approvals.plugin.slack` for a reviewer in the bot's workspace and confirm the Slack bot is connected, or connect an approval-capable Gateway client. Then retry the request.",
101
74
  listAccountIds: listSlackAccountIds,
102
75
  hasApprovers: ({ cfg, accountId }) => getSlackExecApprovalApprovers({
103
76
  cfg,
104
77
  accountId
105
78
  }).length > 0,
106
- isExecAuthorizedSender: ({ cfg, accountId, senderId }) => isSlackExecApprovalAuthorizedSender({
107
- cfg,
108
- accountId,
109
- senderId
110
- }),
111
- isPluginAuthorizedSender: ({ cfg, accountId, senderId }) => isSlackApprovalAuthorizedSender({
112
- cfg,
113
- accountId,
114
- senderId
115
- }),
116
- isNativeDeliveryEnabled: ({ cfg, accountId }) => isSlackExecApprovalClientEnabled({
117
- cfg,
118
- accountId
119
- }),
120
- resolveNativeDeliveryMode: ({ cfg, accountId }) => resolveSlackExecApprovalTarget({
121
- cfg,
122
- accountId
123
- }),
79
+ isExecAuthorizedSender: isSlackExecApprovalAuthorizedSender,
80
+ isPluginAuthorizedSender: (params) => isSlackPluginApprovalAuthorizedSender(params) && (!params.request || resolvePluginApprovalSlackApprovers(params.cfg, params.request) === void 0 || shouldHandleSlackNativeApprovalRequest({
81
+ cfg: params.cfg,
82
+ accountId: params.accountId,
83
+ approvalKind: "plugin",
84
+ request: params.request
85
+ })),
86
+ isNativeDeliveryEnabled: isSlackExecApprovalClientEnabled,
87
+ resolveNativeDeliveryMode: resolveSlackExecApprovalTarget,
124
88
  requireMatchingTurnSourceChannel: true,
125
89
  resolveSuppressionAccountId: resolveSlackNativeSuppressionAccountId,
126
90
  resolveOriginTarget: resolveSlackOriginTarget,
@@ -133,26 +97,38 @@ const baseSlackApprovalCapability = createApproverRestrictedNativeApprovalCapabi
133
97
  "plugin",
134
98
  "system-agent"
135
99
  ],
136
- isConfigured: ({ cfg, accountId }) => isSlackAnyNativeApprovalClientEnabled({
137
- cfg,
138
- accountId
139
- }),
140
- shouldHandle: ({ cfg, accountId, approvalKind, request }) => shouldHandleSlackNativeApprovalRequest({
141
- cfg,
142
- accountId,
143
- approvalKind,
144
- request
145
- }),
146
- load: async () => (await import("./approval-handler.runtime-BcZNF-VP.mjs")).slackApprovalNativeRuntime
100
+ isConfigured: isSlackAnyNativeApprovalClientEnabled,
101
+ shouldHandle: shouldHandleSlackNativeApprovalRequest,
102
+ load: async () => (await import("./approval-handler.runtime-Ed6Sw5VK.mjs")).slackApprovalNativeRuntime
147
103
  })
148
104
  });
149
105
  const baseSlackNativeAdapter = baseSlackApprovalCapability.native;
150
106
  const slackApprovalCapability = {
151
107
  ...baseSlackApprovalCapability,
108
+ supportsScopedPluginApprovalApprovers: true,
109
+ resolveReviewerSenderId: ({ senderId, spaceId }) => {
110
+ try {
111
+ const parsed = senderId ? parseSlackTarget(senderId, { defaultKind: "user" }) : void 0;
112
+ return parsed?.kind === "user" && spaceId ? formatSlackTarget({
113
+ kind: "user",
114
+ id: parsed.id,
115
+ teamId: spaceId
116
+ }) : senderId ?? void 0;
117
+ } catch {
118
+ return senderId ?? void 0;
119
+ }
120
+ },
121
+ getActionAvailabilityState: (params) => params.approvalKind === "plugin" && params.cfg.approvals?.plugin?.slack && (!params.request || !isSlackPluginApprovalRequest(params.request) || resolvePluginApprovalSlackApprovers(params.cfg, params.request) !== void 0) ? { kind: params.request && !shouldHandleSlackNativeApprovalRequest({
122
+ ...params,
123
+ approvalKind: "plugin",
124
+ request: params.request
125
+ }) ? "disabled" : "enabled" } : baseSlackApprovalCapability.getActionAvailabilityState?.(params) ?? { kind: "disabled" },
152
126
  delivery: {
153
127
  ...baseSlackApprovalCapability.delivery,
128
+ shouldBlockForwardingFallback: (input) => shouldConsiderSlackNativeForwardingSuppression(input) && input.approvalKind === "plugin" && isSlackPluginApprovalRequest(input.request) && resolvePluginApprovalSlackApprovers(input.cfg, input.request) !== void 0,
154
129
  shouldSuppressForwardingFallback: (input) => {
155
130
  if (!shouldConsiderSlackNativeForwardingSuppression(input)) return false;
131
+ if (input.approvalKind === "plugin" && !isSlackPluginApprovalRequest(input.request)) return true;
156
132
  const canHandleNative = shouldHandleSlackNativeApprovalRequest({
157
133
  cfg: input.cfg,
158
134
  accountId: resolveSlackNativeSuppressionAccountId(input),
@@ -169,32 +145,52 @@ const slackApprovalCapability = {
169
145
  const capabilities = baseSlackNativeAdapter.describeDeliveryCapabilities(params);
170
146
  const request = params.request;
171
147
  const approvalKind = params.approvalKind;
172
- return {
148
+ const described = {
173
149
  ...capabilities,
174
150
  enabled: shouldHandleSlackNativeApprovalRequest({
175
151
  cfg: params.cfg,
176
152
  accountId: params.accountId,
177
153
  approvalKind,
178
154
  request
179
- }),
180
- ...approvalKind === "plugin" && shouldHandleSlackPluginViaForwardingSession({
155
+ })
156
+ };
157
+ if (approvalKind !== "plugin" || !isSlackPluginApprovalRequest(request)) return described;
158
+ if (resolvePluginApprovalSlackApprovers(params.cfg, request) !== void 0) return {
159
+ ...described,
160
+ preferredSurface: "approver-dm",
161
+ supportsApproverDmSurface: true
162
+ };
163
+ if (!shouldHandleSlackPluginViaForwardingSession({
164
+ cfg: params.cfg,
165
+ accountId: params.accountId,
166
+ request
167
+ })) return described;
168
+ return {
169
+ ...described,
170
+ preferredSurface: "origin",
171
+ supportsApproverDmSurface: getSlackApprovalApproversForTeam({
181
172
  cfg: params.cfg,
182
173
  accountId: params.accountId,
183
- request
184
- }) ? {
185
- preferredSurface: "origin",
186
- supportsApproverDmSurface: hasSlackPluginApprovers({
174
+ teamId: resolveSlackApprovalTeamId({
187
175
  cfg: params.cfg,
188
176
  accountId: params.accountId,
189
- teamId: resolveEnterpriseApprovalTeamId(request)
190
- })
191
- } : {}
177
+ request
178
+ }),
179
+ request
180
+ }).length > 0
192
181
  };
193
182
  }
194
183
  } : void 0
195
184
  };
196
185
  //#endregion
197
186
  //#region extensions/slack/src/message-action-dispatch.ts
187
+ const SLACK_MESSAGE_ACTIONS = /* @__PURE__ */ new Map([
188
+ ["reactions", "reactions"],
189
+ ["delete", "deleteMessage"],
190
+ ["pin", "pinMessage"],
191
+ ["unpin", "unpinMessage"],
192
+ ["list-pins", "listPins"]
193
+ ]);
198
194
  function readSlackForceDocument(params) {
199
195
  return readBooleanParam(params, "forceDocument") ?? readBooleanParam(params, "asDocument") ?? false;
200
196
  }
@@ -216,19 +212,28 @@ function renderSlackActionPresentation(presentation) {
216
212
  }
217
213
  /** Translate generic channel action requests into Slack-specific tool invocations and payload shapes. */
218
214
  async function handleSlackMessageAction(params) {
219
- const { providerId, ctx, invoke, normalizeChannelId, includeReadThreadId = false } = params;
215
+ const { providerId, ctx, invoke } = params;
220
216
  const { action, cfg, params: actionParams } = ctx;
221
217
  const accountId = ctx.accountId ?? void 0;
218
+ const invokeSlackAction = (request, toolContext = ctx.toolContext) => invoke({
219
+ ...request,
220
+ accountId
221
+ }, cfg, toolContext);
222
222
  const resolveChannelId = () => {
223
- const channelId = readStringParam$1(actionParams, "channelId") ?? readStringParam$1(actionParams, "to", { required: true });
224
- return normalizeChannelId ? normalizeChannelId(channelId) : channelId;
223
+ const raw = readStringParam$1(actionParams, "channelId") ?? readStringParam$1(actionParams, "to", { required: true });
224
+ const target = parseSlackTarget(raw, { defaultKind: "channel" });
225
+ const channelId = resolveSlackChannelId(raw);
226
+ return formatSlackTarget({
227
+ teamId: target?.teamId,
228
+ kind: "channel",
229
+ id: channelId
230
+ });
225
231
  };
226
- if (action === "conversation-open") return await invoke({
232
+ if (action === "conversation-open") return await invokeSlackAction({
227
233
  action: "openConversation",
228
234
  userIds: actionParams.userIds,
229
- teamId: readStringParam$1(actionParams, "teamId"),
230
- accountId
231
- }, cfg, ctx.toolContext);
235
+ teamId: readStringParam$1(actionParams, "teamId")
236
+ });
232
237
  if (action === "send") {
233
238
  const to = readStringParam$1(actionParams, "to", { required: true });
234
239
  const content = readStringParam$1(actionParams, "message", {
@@ -259,20 +264,19 @@ async function handleSlackMessageAction(params) {
259
264
  ...ctx.toolContext,
260
265
  preparedMessages
261
266
  } : ctx.toolContext;
262
- return await invoke({
267
+ return await invokeSlackAction({
263
268
  action: "sendMessage",
264
269
  to,
265
270
  content: content ?? "",
266
271
  mediaUrl: mediaUrl ?? void 0,
267
272
  ...readSlackForceDocument(actionParams) ? { forceDocument: true } : {},
268
- accountId,
269
273
  threadTs: resolveSlackThreadTsValue({
270
274
  replyToId: replyTo,
271
275
  threadId
272
276
  }),
273
277
  ...topLevel ? { topLevel: true } : {},
274
278
  ...replyBroadcast ? { replyBroadcast } : {}
275
- }, cfg, toolContext);
279
+ }, toolContext);
276
280
  }
277
281
  if (action === "react") {
278
282
  const messageIdRaw = resolveReactionMessageId({
@@ -283,44 +287,39 @@ async function handleSlackMessageAction(params) {
283
287
  const messageId = String(messageIdRaw);
284
288
  const emoji = readStringParam$1(actionParams, "emoji", { allowEmpty: true });
285
289
  const remove = typeof actionParams.remove === "boolean" ? actionParams.remove : void 0;
286
- return await invoke({
290
+ return await invokeSlackAction({
287
291
  action: "react",
288
292
  channelId: resolveChannelId(),
289
293
  messageId,
290
294
  emoji,
291
- remove,
292
- accountId
293
- }, cfg, ctx.toolContext);
295
+ remove
296
+ });
294
297
  }
295
- if (action === "reactions") {
296
- const messageId = readStringParam$1(actionParams, "messageId", { required: true });
297
- return await invoke({
298
- action: "reactions",
298
+ const messageAction = SLACK_MESSAGE_ACTIONS.get(action);
299
+ if (messageAction) {
300
+ const messageId = action === "list-pins" ? void 0 : readStringParam$1(actionParams, "messageId", { required: true });
301
+ return await invokeSlackAction({
302
+ action: messageAction,
299
303
  channelId: resolveChannelId(),
300
304
  messageId,
301
- limit: actionParams.limit,
302
- accountId
303
- }, cfg, ctx.toolContext);
304
- }
305
- if (action === "read") {
306
- const readAction = {
307
- action: "readMessages",
308
- channelId: resolveChannelId(),
309
- limit: actionParams.limit,
310
- before: readStringParam$1(actionParams, "before"),
311
- after: readStringParam$1(actionParams, "after"),
312
- messageId: readStringParam$1(actionParams, "messageId"),
313
- accountId
314
- };
315
- if (includeReadThreadId) readAction.threadId = readStringParam$1(actionParams, "threadId");
316
- return await invoke(readAction, cfg, ctx.toolContext);
305
+ ...action === "reactions" ? { limit: actionParams.limit } : {}
306
+ });
317
307
  }
308
+ if (action === "read") return await invokeSlackAction({
309
+ action: "readMessages",
310
+ channelId: resolveChannelId(),
311
+ limit: actionParams.limit,
312
+ before: readStringParam$1(actionParams, "before"),
313
+ after: readStringParam$1(actionParams, "after"),
314
+ messageId: readStringParam$1(actionParams, "messageId"),
315
+ threadId: readStringParam$1(actionParams, "threadId")
316
+ });
318
317
  if (action === "edit") {
319
318
  const messageId = readStringParam$1(actionParams, "messageId", { required: true });
320
319
  const content = readStringParam$1(actionParams, "message", { allowEmpty: true });
321
320
  const presentation = normalizeMessagePresentation(actionParams.presentation);
322
321
  const renderedPresentation = renderSlackActionPresentation(presentation);
323
- const blocks = renderedPresentation.usesPresentationTextFallback ? void 0 : renderedPresentation.blocks;
322
+ const blocks = renderedPresentation.blocks;
324
323
  const accessibleContent = renderedPresentation.usesPresentationTextFallback ? renderSlackMessagePresentationFallbackText({
325
324
  text: content,
326
325
  presentation
@@ -335,50 +334,29 @@ async function handleSlackMessageAction(params) {
335
334
  throw new Error(`${editSubject} exceeds the ${String(SLACK_EDIT_TEXT_MAX_BYTES)}-byte edit limit. Send a new message instead.`);
336
335
  }
337
336
  if (!accessibleContent && !blocks) throw new Error("Slack edit requires message or blocks.");
338
- return await invoke({
337
+ return await invokeSlackAction({
339
338
  action: "editMessage",
340
339
  channelId: resolveChannelId(),
341
340
  messageId,
342
341
  content: accessibleContent,
343
- blocks,
344
- accountId
345
- }, cfg, ctx.toolContext);
346
- }
347
- if (action === "delete") {
348
- const messageId = readStringParam$1(actionParams, "messageId", { required: true });
349
- return await invoke({
350
- action: "deleteMessage",
351
- channelId: resolveChannelId(),
352
- messageId,
353
- accountId
354
- }, cfg, ctx.toolContext);
355
- }
356
- if (action === "pin" || action === "unpin" || action === "list-pins") {
357
- const messageId = action === "list-pins" ? void 0 : readStringParam$1(actionParams, "messageId", { required: true });
358
- return await invoke({
359
- action: action === "pin" ? "pinMessage" : action === "unpin" ? "unpinMessage" : "listPins",
360
- channelId: resolveChannelId(),
361
- messageId,
362
- accountId
363
- }, cfg, ctx.toolContext);
342
+ blocks
343
+ });
364
344
  }
365
345
  if (action === "member-info") {
366
- const requesterAccountId = ctx.requesterAccountId ? normalizeAccountId(ctx.requesterAccountId) : void 0;
367
- const targetAccountId = normalizeAccountId(accountId ?? resolveDefaultSlackAccountId(cfg));
346
+ const requesterAccountId = ctx.requesterAccountId ? normalizeAccountId$1(ctx.requesterAccountId) : void 0;
347
+ const targetAccountId = normalizeAccountId$1(accountId ?? resolveDefaultSlackAccountId(cfg));
368
348
  const requesterUserId = normalizeOptionalLowercaseString(ctx.toolContext?.currentChannelProvider) === "slack" && requesterAccountId !== void 0 && requesterAccountId === targetAccountId ? normalizeOptionalString(ctx.requesterSenderId) : void 0;
369
349
  const userId = readStringParam$1(actionParams, "userId") ?? requesterUserId;
370
350
  if (!userId) throw new Error("member-info requires a userId outside a current Slack conversation.");
371
- return await invoke({
351
+ return await invokeSlackAction({
372
352
  action: "memberInfo",
373
- userId,
374
- accountId
375
- }, cfg, ctx.toolContext);
353
+ userId
354
+ });
376
355
  }
377
- if (action === "emoji-list") return await invoke({
356
+ if (action === "emoji-list") return await invokeSlackAction({
378
357
  action: "emojiList",
379
- limit: readPositiveIntegerParam$1(actionParams, "limit", { message: "limit must be a positive integer." }),
380
- accountId
381
- }, cfg, ctx.toolContext);
358
+ limit: readPositiveIntegerParam$1(actionParams, "limit", { message: "limit must be a positive integer." })
359
+ });
382
360
  if (action === "download-file") {
383
361
  const fileIdParam = readStringParam$1(actionParams, "fileId");
384
362
  const messageIdParam = readStringParam$1(actionParams, "messageId") ?? readStringParam$1(actionParams, "message_id");
@@ -386,13 +364,12 @@ async function handleSlackMessageAction(params) {
386
364
  const fileId = readStringParam$1(actionParams, "fileId", { required: true });
387
365
  const channelId = readStringParam$1(actionParams, "channelId") ?? readStringParam$1(actionParams, "to");
388
366
  const threadId = readStringParam$1(actionParams, "threadId") ?? readStringParam$1(actionParams, "replyTo");
389
- return await invoke({
367
+ return await invokeSlackAction({
390
368
  action: "downloadFile",
391
369
  fileId,
392
370
  channelId: channelId ?? void 0,
393
- threadId: threadId ?? void 0,
394
- accountId
395
- }, cfg, ctx.toolContext);
371
+ threadId: threadId ?? void 0
372
+ });
396
373
  }
397
374
  if (action === "upload-file") {
398
375
  if (readBooleanParam(actionParams, "replyBroadcast")) throw new Error("Slack replyBroadcast is only supported for text or block thread replies.");
@@ -401,7 +378,7 @@ async function handleSlackMessageAction(params) {
401
378
  if (!filePath) throw new Error("upload-file requires filePath, path, or media");
402
379
  const threadId = readStringParam$1(actionParams, "threadId") ?? readStringParam$1(actionParams, "replyTo");
403
380
  const topLevel = readBooleanParam(actionParams, "topLevel") === true || actionParams.threadId === null;
404
- return await invoke({
381
+ return await invokeSlackAction({
405
382
  action: "uploadFile",
406
383
  to,
407
384
  filePath,
@@ -410,9 +387,8 @@ async function handleSlackMessageAction(params) {
410
387
  title: readStringParam$1(actionParams, "title"),
411
388
  threadTs: threadId ?? void 0,
412
389
  ...readSlackForceDocument(actionParams) ? { forceDocument: true } : {},
413
- ...topLevel ? { topLevel: true } : {},
414
- accountId
415
- }, cfg, ctx.toolContext);
390
+ ...topLevel ? { topLevel: true } : {}
391
+ });
416
392
  }
417
393
  throw new Error(`Action ${action} is not supported for provider ${providerId}.`);
418
394
  }
@@ -427,7 +403,7 @@ const SLACK_TOOL_DELIVERY_ACTIONS = /* @__PURE__ */ new Set([
427
403
  "unpinMessage",
428
404
  "uploadFile"
429
405
  ]);
430
- const loadSlackActionRuntime$1 = createLazyRuntimeModule(() => import("./action-runtime.runtime-DwH3NdpT.mjs"));
406
+ const loadSlackActionRuntime$1 = createLazyRuntimeModule(() => import("./action-runtime.runtime-Ck4bAWOX.mjs"));
431
407
  function resolveSlackActionContext(ctx, toolContext) {
432
408
  if (!toolContext && !ctx.mediaAccess && !ctx.mediaLocalRoots && !ctx.mediaReadFile && !ctx.conversationReadOrigin && !ctx.requesterAccountId && !ctx.requesterSenderId && !ctx.assertDirectAdapterHandoff) return;
433
409
  return {
@@ -460,8 +436,6 @@ function createSlackActions(providerId, options) {
460
436
  return await handleSlackMessageAction({
461
437
  providerId,
462
438
  ctx,
463
- normalizeChannelId: normalizeSlackActionChannelTarget,
464
- includeReadThreadId: true,
465
439
  invoke: async (action, cfg, toolContext) => {
466
440
  const actionContext = resolveSlackActionContext(ctx, toolContext);
467
441
  return await (options?.invoke ? options.invoke(action, cfg, actionContext) : (await loadSlackActionRuntime$1()).handleSlackAction(action, cfg, actionContext));
@@ -470,15 +444,6 @@ function createSlackActions(providerId, options) {
470
444
  }
471
445
  };
472
446
  }
473
- function normalizeSlackActionChannelTarget(raw) {
474
- const target = parseSlackTarget(raw, { defaultKind: "channel" });
475
- const channelId = resolveSlackChannelId(raw);
476
- return formatSlackTarget({
477
- teamId: target?.teamId,
478
- kind: "channel",
479
- id: channelId
480
- });
481
- }
482
447
  function shouldUseWorkspaceAwareSlackActionSend(rawTarget, context) {
483
448
  const target = parseSlackTarget(rawTarget, { defaultKind: "channel" });
484
449
  if (!target || target.teamId) return false;
@@ -492,7 +457,10 @@ function shouldUseWorkspaceAwareSlackActionSend(rawTarget, context) {
492
457
  //#endregion
493
458
  //#region extensions/slack/src/conversation-route-owner.ts
494
459
  function inspectSlackConversationRouteOwner(params) {
495
- const installationKind = getSlackInstallationKind(params.accountId);
460
+ const accountId = normalizeAccountId(params.accountId);
461
+ const accountConfig = resolveAccountEntry(params.cfg.channels?.slack?.accounts, accountId);
462
+ if (params.cfg.channels?.slack?.enabled === false || accountConfig?.enabled === false || !accountConfig && (accountId !== DEFAULT_ACCOUNT_ID || !hasImplicitDefaultSlackAccount(params.cfg))) return null;
463
+ const installationKind = getSlackInstallationKind(accountId);
496
464
  const direct = params.conversation.kind === "direct";
497
465
  const target = parseSlackTarget(params.conversation.peerId, { defaultKind: direct ? "user" : "channel" });
498
466
  if (!target || target.kind !== (direct ? "user" : "channel")) return null;
@@ -506,10 +474,11 @@ function inspectSlackConversationRouteOwner(params) {
506
474
  const enterpriseRoute = installationKind === "enterprise" || targetIsEnterprise;
507
475
  if (enterpriseRoute && !teamId) return null;
508
476
  const enterpriseScope = enterpriseRoute && teamId ? { teamId } : void 0;
509
- const route = resolveAgentRoute({
510
- cfg: normalizeSlackRouteBindingConfig(params.cfg),
477
+ const route = ({ boundAgentId, bindingOwnerAvailable }) => resolveAgentRoute({
478
+ cfg: boundAgentId || !bindingOwnerAvailable ? { session: params.cfg.session } : normalizeSlackRouteBindingConfig(params.cfg),
479
+ defaultAgentId: boundAgentId,
511
480
  channel: "slack",
512
- accountId: params.accountId,
481
+ accountId,
513
482
  teamId,
514
483
  peer: {
515
484
  kind: params.conversation.kind,
@@ -523,8 +492,8 @@ function inspectSlackConversationRouteOwner(params) {
523
492
  const baseConversationId = qualifySlackConversationId(direct ? `user:${target.id}` : target.id, enterpriseScope);
524
493
  const bindingRoute = resolveSlackConversationBindingRoute({
525
494
  cfg: params.cfg,
526
- route,
527
- accountId: params.accountId,
495
+ resolveRoute: route,
496
+ accountId,
528
497
  baseConversationId,
529
498
  runtimeBindingThreadId: params.conversation.threadId,
530
499
  bindingsEnabled: !enterpriseRoute,
@@ -534,11 +503,11 @@ function inspectSlackConversationRouteOwner(params) {
534
503
  if (bindingRoute.runtimeRoute.pluginId) return {
535
504
  kind: "plugin",
536
505
  pluginId: bindingRoute.runtimeRoute.pluginId,
537
- fallbackAgentId: route.agentId
506
+ fallbackAgentId: bindingRoute.route.agentId
538
507
  };
539
508
  return {
540
509
  kind: "agent",
541
- agentId: bindingRoute.runtimeRoute.boundAgentId ?? bindingRoute.configuredRoute?.boundAgentId ?? route.agentId
510
+ agentId: bindingRoute.runtimeRoute.boundAgentId ?? bindingRoute.configuredRoute?.boundAgentId ?? bindingRoute.route.agentId
542
511
  };
543
512
  }
544
513
  //#endregion
@@ -604,23 +573,21 @@ const EXTENSION_SHARED_MODULE_ID = "openclaw/plugin-sdk/extension-shared";
604
573
  const TARGET_RESOLVER_RUNTIME_MODULE_ID = "openclaw/plugin-sdk/target-resolver-runtime";
605
574
  const loadExtensionSharedSdk = createLazyRuntimeModule(() => import(EXTENSION_SHARED_MODULE_ID));
606
575
  const loadTargetResolverRuntimeSdk = createLazyRuntimeModule(() => import(TARGET_RESOLVER_RUNTIME_MODULE_ID));
607
- const loadSlackSetupSurfaceModule = createLazyRuntimeModule(() => import("./setup-surface-DsE0hsYY.mjs"));
608
- const loadSlackScopesModule = createLazyRuntimeModule(() => import("./scopes-CJ-6l4v4.mjs"));
609
- const loadSlackOutboundAdapterModule = createLazyRuntimeModule(() => import("./outbound-adapter-K3Ek1iSR.mjs"));
576
+ const loadSlackSetupSurfaceModule = createLazyRuntimeModule(() => import("./setup-surface-Dn7QgWRE.mjs"));
577
+ const loadSlackScopesModule = createLazyRuntimeModule(() => import("./scopes-CasuDvaa.mjs"));
578
+ const loadSlackOutboundAdapterModule = createLazyRuntimeModule(() => import("./outbound-adapter-Bv48XUjq.mjs"));
579
+ const bindSlackOutbound = createLazyRuntimeMethodBinder(loadSlackOutboundAdapterModule);
610
580
  async function resolveSlackHandleAction() {
611
581
  return getOptionalSlackRuntime()?.channel?.slack?.handleSlackAction ?? (await loadSlackActionRuntime()).handleSlackAction;
612
582
  }
613
- function shouldTreatSlackDeliveredTextAsVisible(params) {
614
- return params.kind === "block" && typeof params.text === "string" && params.text.trim().length > 0;
615
- }
616
- const loadSlackDirectoryConfigModule = createLazyRuntimeModule(() => import("./directory-config-CTs7YyuU.mjs").then((n) => n.t));
617
- const loadSlackResolveChannelsModule = createLazyRuntimeModule(() => import("./resolve-channels-x8fX1SEt.mjs").then((n) => n.n));
618
- const loadSlackResolveUsersModule = createLazyRuntimeModule(() => import("./resolve-users-B8BpBnH2.mjs").then((n) => n.n));
619
- const loadSlackActionRuntime = createLazyRuntimeModule(() => import("./action-runtime.runtime-DwH3NdpT.mjs"));
620
- const loadSlackSendRuntime = createLazyRuntimeModule(() => import("./send.runtime-BmqRP-WG.mjs"));
621
- const loadSlackProbeModule = createLazyRuntimeModule(() => import("./probe-64C6k3_Q.mjs").then((n) => n.n));
622
- const loadSlackMonitorModule = createLazyRuntimeModule(() => import("./monitor-Dw5uuKWM.mjs").then((n) => n.t));
623
- const loadSlackDirectoryLiveModule = createLazyRuntimeModule(() => import("./directory-live-Btq0063Q.mjs").then((n) => n.t));
583
+ const loadSlackDirectoryConfigModule = createLazyRuntimeModule(() => import("./directory-config-BOUWH3hR.mjs").then((n) => n.t));
584
+ const loadSlackResolveChannelsModule = createLazyRuntimeModule(() => import("./resolve-channels-XXBn8UU_.mjs").then((n) => n.n));
585
+ const loadSlackResolveUsersModule = createLazyRuntimeModule(() => import("./resolve-users-DW0ngD03.mjs").then((n) => n.n));
586
+ const loadSlackActionRuntime = createLazyRuntimeModule(() => import("./action-runtime.runtime-Ck4bAWOX.mjs"));
587
+ const loadSlackSendRuntime = createLazyRuntimeModule(() => import("./send-BOVLQi3n.mjs").then((n) => n.n));
588
+ const loadSlackProbeModule = createLazyRuntimeModule(() => import("./probe-B2Y9qc_z.mjs").then((n) => n.n));
589
+ const loadSlackMonitorModule = createLazyRuntimeModule(() => import("./monitor-BPVfkumU.mjs").then((n) => n.t));
590
+ const loadSlackDirectoryLiveModule = createLazyRuntimeModule(() => import("./directory-live-B2O4B_Ho.mjs").then((n) => n.t));
624
591
  async function setSlackHeartbeatThreadStatus(params) {
625
592
  const threadTs = resolveSlackThreadTsValue({ threadId: params.threadId });
626
593
  const target = parseSlackTarget(params.to, { defaultKind: "channel" });
@@ -682,16 +649,6 @@ function matchSlackAcpConversation(params) {
682
649
  };
683
650
  return null;
684
651
  }
685
- function buildSlackBaseSessionKey(params) {
686
- return buildOutboundBaseSessionKey({
687
- ...params,
688
- channel: "slack"
689
- });
690
- }
691
- function shouldRecoverSlackThreadFromCurrentSession(params) {
692
- if (params.peerKind === "direct" && (params.cfg.session?.dmScope ?? "main") === "main") return false;
693
- return true;
694
- }
695
652
  async function resolveSlackOutboundSessionRoute(params) {
696
653
  const parsed = parseSlackTarget(params.target, { defaultKind: "channel" });
697
654
  if (!parsed) return null;
@@ -741,7 +698,8 @@ async function resolveSlackOutboundSessionRoute(params) {
741
698
  kind: peerKind,
742
699
  id: peerId
743
700
  };
744
- const unpartitionedBaseSessionKey = buildSlackBaseSessionKey({
701
+ const unpartitionedBaseSessionKey = buildOutboundBaseSessionKey({
702
+ channel: "slack",
745
703
  cfg: params.cfg,
746
704
  agentId: params.agentId,
747
705
  accountId: params.accountId,
@@ -764,10 +722,7 @@ async function resolveSlackOutboundSessionRoute(params) {
764
722
  replyToId: params.replyToId,
765
723
  threadId: params.threadId,
766
724
  currentSessionKey: params.currentSessionKey,
767
- canRecoverCurrentThread: () => shouldRecoverSlackThreadFromCurrentSession({
768
- cfg: params.cfg,
769
- peerKind
770
- })
725
+ canRecoverCurrentThread: () => peerKind !== "direct" || (params.cfg.session?.dmScope ?? "main") !== "main"
771
726
  });
772
727
  }
773
728
  function formatSlackScopeDiagnostic(params) {
@@ -806,17 +761,10 @@ const slackChannelOutbound = {
806
761
  thread: true,
807
762
  messageSendingHooks: true
808
763
  } },
809
- shouldTreatDeliveredTextAsVisible: shouldTreatSlackDeliveredTextAsVisible,
764
+ shouldTreatDeliveredTextAsVisible: ({ kind, text }) => kind === "block" && typeof text === "string" && text.trim().length > 0,
810
765
  preferFinalAssistantVisibleText: true,
811
- shouldSuppressLocalPayloadPrompt: ({ cfg, accountId, payload }) => shouldSuppressLocalSlackExecApprovalPrompt({
812
- cfg,
813
- accountId,
814
- payload
815
- }),
816
- afterDeliverPayload: async (ctx) => {
817
- const { slackOutbound } = await loadSlackOutboundAdapterModule();
818
- await slackOutbound.afterDeliverPayload(ctx);
819
- },
766
+ shouldSuppressLocalPayloadPrompt: shouldSuppressLocalSlackExecApprovalPrompt,
767
+ afterDeliverPayload: bindSlackOutbound(({ slackOutbound }) => slackOutbound.afterDeliverPayload),
820
768
  presentationCapabilities: SLACK_PRESENTATION_CAPABILITIES,
821
769
  ...createRuntimeOutboundDelegates({
822
770
  getRuntime: loadSlackOutboundAdapterModule,
@@ -825,18 +773,9 @@ const slackChannelOutbound = {
825
773
  unavailableMessage: "Slack outbound presentation rendering is unavailable"
826
774
  }
827
775
  }),
828
- sendPayload: async (ctx) => {
829
- const { slackOutbound } = await loadSlackOutboundAdapterModule();
830
- return await slackOutbound.sendPayload(ctx);
831
- },
832
- sendText: async (ctx) => {
833
- const { slackOutbound } = await loadSlackOutboundAdapterModule();
834
- return await slackOutbound.sendText(ctx);
835
- },
836
- sendMedia: async (ctx) => {
837
- const { slackOutbound } = await loadSlackOutboundAdapterModule();
838
- return await slackOutbound.sendMedia(ctx);
839
- }
776
+ sendPayload: bindSlackOutbound(({ slackOutbound }) => slackOutbound.sendPayload),
777
+ sendText: bindSlackOutbound(({ slackOutbound }) => slackOutbound.sendText),
778
+ sendMedia: bindSlackOutbound(({ slackOutbound }) => slackOutbound.sendMedia)
840
779
  };
841
780
  const slackMessageAdapterBase = createChannelMessageAdapterFromOutbound({
842
781
  id: "slack",
@@ -938,7 +877,7 @@ const slackPlugin = createChatChannelPlugin({
938
877
  return normalizeSlackMessagingTarget(`channel:${id}`);
939
878
  },
940
879
  inferTargetChatType: ({ to }) => resolveSlackRouteTarget(to)?.chatType,
941
- resolveOutboundSessionRoute: async (params) => await resolveSlackOutboundSessionRoute(params),
880
+ resolveOutboundSessionRoute: resolveSlackOutboundSessionRoute,
942
881
  hasStructuredReplyPayload: ({ payload }) => {
943
882
  try {
944
883
  return Boolean(resolveSlackReplyBlocks(payload)?.length);
@@ -1007,27 +946,17 @@ const slackPlugin = createChatChannelPlugin({
1007
946
  actions: createSlackActions(SLACK_CHANNEL, { invoke: async (action, cfg, toolContext) => await (await resolveSlackHandleAction())(action, cfg, toolContext) }),
1008
947
  message: slackMessageAdapter,
1009
948
  heartbeat: {
1010
- sendTyping: async ({ cfg, to, accountId, threadId }) => {
1011
- await setSlackHeartbeatThreadStatus({
1012
- cfg,
1013
- to,
1014
- accountId,
1015
- threadId,
1016
- status: "processing"
1017
- });
1018
- },
1019
- clearTyping: async ({ cfg, to, accountId, threadId }) => {
1020
- await setSlackHeartbeatThreadStatus({
1021
- cfg,
1022
- to,
1023
- accountId,
1024
- threadId,
1025
- status: "active"
1026
- });
1027
- }
949
+ sendTyping: (params) => setSlackHeartbeatThreadStatus({
950
+ ...params,
951
+ status: "processing"
952
+ }),
953
+ clearTyping: (params) => setSlackHeartbeatThreadStatus({
954
+ ...params,
955
+ status: "active"
956
+ })
1028
957
  },
1029
958
  status: createComputedAccountStatusAdapter({
1030
- defaultRuntime: createDefaultChannelRuntimeState(DEFAULT_ACCOUNT_ID$1),
959
+ defaultRuntime: createDefaultChannelRuntimeState(DEFAULT_ACCOUNT_ID),
1031
960
  buildChannelSummary: async ({ snapshot }) => {
1032
961
  const { buildPassiveProbedChannelStatusSummary } = await loadExtensionSharedSdk();
1033
962
  return buildPassiveProbedChannelStatusSummary(snapshot, snapshot.identity === "user" ? {
@@ -1072,37 +1001,20 @@ const slackPlugin = createChatChannelPlugin({
1072
1001
  buildCapabilitiesDiagnostics: async ({ account, timeoutMs }) => {
1073
1002
  const lines = [];
1074
1003
  const details = {};
1075
- const botToken = account.botToken?.trim();
1076
1004
  const userToken = account.userToken?.trim();
1077
1005
  const { fetchSlackScopes } = await loadSlackScopesModule();
1078
- if (account.identity === "user") {
1079
- const userScopes = userToken ? await fetchSlackScopes(userToken, timeoutMs) : {
1006
+ const tokenTypes = account.identity === "user" ? ["user"] : userToken ? ["bot", "user"] : ["bot"];
1007
+ for (const tokenType of tokenTypes) {
1008
+ const token = tokenType === "user" ? userToken : account.botToken?.trim();
1009
+ const result = token ? await fetchSlackScopes(token, timeoutMs) : {
1080
1010
  ok: false,
1081
- error: "Slack user token missing."
1011
+ error: `Slack ${tokenType} token missing.`
1082
1012
  };
1083
1013
  lines.push(formatSlackScopeDiagnostic({
1084
- tokenType: "user",
1085
- result: userScopes
1086
- }));
1087
- details.userScopes = userScopes;
1088
- } else {
1089
- const botScopes = botToken ? await fetchSlackScopes(botToken, timeoutMs) : {
1090
- ok: false,
1091
- error: "Slack bot token missing."
1092
- };
1093
- lines.push(formatSlackScopeDiagnostic({
1094
- tokenType: "bot",
1095
- result: botScopes
1096
- }));
1097
- details.botScopes = botScopes;
1098
- }
1099
- if (account.identity !== "user" && userToken) {
1100
- const userScopes = await fetchSlackScopes(userToken, timeoutMs);
1101
- lines.push(formatSlackScopeDiagnostic({
1102
- tokenType: "user",
1103
- result: userScopes
1014
+ tokenType,
1015
+ result
1104
1016
  }));
1105
- details.userScopes = userScopes;
1017
+ details[`${tokenType}Scopes`] = result;
1106
1018
  }
1107
1019
  return {
1108
1020
  lines,
@@ -1112,7 +1024,7 @@ const slackPlugin = createChatChannelPlugin({
1112
1024
  resolveAccountSnapshot: ({ account }) => {
1113
1025
  const mode = account.config.mode ?? "socket";
1114
1026
  const identity = account.config.postAs ?? "bot";
1115
- const configured = (mode === "http" ? resolveConfiguredFromRequiredCredentialStatuses(account, [identity === "user" ? "userTokenStatus" : "botTokenStatus", "signingSecretStatus"]) : mode === "socket" ? resolveConfiguredFromRequiredCredentialStatuses(account, [identity === "user" ? "userTokenStatus" : "botTokenStatus", "appTokenStatus"]) : void 0) ?? isSlackPluginAccountConfigured(account);
1027
+ const configured = (mode === "http" || mode === "socket" ? resolveConfiguredFromRequiredCredentialStatuses(account, [identity === "user" ? "userTokenStatus" : "botTokenStatus", mode === "http" ? "signingSecretStatus" : "appTokenStatus"]) : void 0) ?? isSlackPluginAccountConfigured(account);
1116
1028
  return {
1117
1029
  accountId: account.accountId,
1118
1030
  name: account.name,
@@ -1190,10 +1102,10 @@ const slackPlugin = createChatChannelPlugin({
1190
1102
  matchesToolContextTarget: ({ target, toolContext }) => slackContextTargetsMatch(target, toolContext),
1191
1103
  scopedAccountReplyToMode: {
1192
1104
  resolveAccount: adaptScopedAccountAccessor(resolveSlackAccount),
1193
- resolveReplyToMode: (account, chatType) => resolveSlackReplyToMode(account, chatType)
1105
+ resolveReplyToMode: resolveSlackReplyToMode
1194
1106
  },
1195
1107
  allowExplicitReplyTagsWhenOff: false,
1196
- buildToolContext: (params) => buildSlackThreadingToolContext(params),
1108
+ buildToolContext: buildSlackThreadingToolContext,
1197
1109
  resolveAutoThreadId: ({ to, toolContext, replyToId }) => normalizeSlackThreadTsCandidate(replyToId) ? void 0 : normalizeSlackThreadTsCandidate(resolveSlackAutoThreadId({
1198
1110
  to,
1199
1111
  toolContext