@openclaw/slack 2026.9.5 → 2026.9.6

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 (408) hide show
  1. package/dist/.setup/{account-inspect-B86OaUEt.mjs → account-inspect-DP1Bcwj4.mjs} +1 -1
  2. package/dist/.setup/{accounts-C1FspRF-.mjs → accounts-BBHvg0pY.mjs} +11 -10
  3. package/dist/.setup/accounts.runtime-DN-PPocC.mjs +2 -0
  4. package/dist/.setup/{action-runtime-Aa-h24Fq.mjs → action-runtime-B01d85zt.mjs} +25 -29
  5. package/dist/.setup/action-runtime.runtime-C8R8CUan.mjs +2 -0
  6. package/dist/.setup/{actions-BvGUGk3w.mjs → actions-DKCtBgCI.mjs} +80 -49
  7. package/dist/.setup/{approval-handler.runtime-BcZNF-VP.mjs → approval-handler.runtime-DMszKn_7.mjs} +5 -5
  8. package/dist/.setup/{approval-message-updates-Cy1cxfBn.mjs → approval-message-updates-Tb_qRokK.mjs} +2 -2
  9. package/dist/.setup/{channel-DrBm0NFw.mjs → channel-CErYZ5zw.mjs} +33 -29
  10. package/dist/.setup/{channel-type-osC0XOES.mjs → channel-type-Dxk8VJUb.mjs} +3 -3
  11. package/dist/.setup/{channel.setup-BSY5hzVz.mjs → channel.setup-BVoUtdPn.mjs} +4 -4
  12. package/dist/.setup/{config-schema-DrY3S7Ee.mjs → config-schema-CyL279e7.mjs} +8 -0
  13. package/dist/.setup/{directory-config-CTs7YyuU.mjs → directory-config-CQTSH45W.mjs} +1 -1
  14. package/dist/.setup/{directory-live-Btq0063Q.mjs → directory-live-BCcj89QV.mjs} +2 -2
  15. package/dist/.setup/{message-tool-api-DRnDCVdY.mjs → message-tool-api-C0PTFaNV.mjs} +2 -2
  16. package/dist/.setup/{monitor-Dw5uuKWM.mjs → monitor-_Sht7Dqy.mjs} +3 -3
  17. package/dist/.setup/{outbound-adapter-K3Ek1iSR.mjs → outbound-adapter-A7Wdn8ZT.mjs} +4 -4
  18. package/dist/.setup/{pipeline.runtime-BZqGcbfi.mjs → pipeline.runtime-BlPOexmJ.mjs} +642 -487
  19. package/dist/.setup/{policy-Db_QWCZZ.mjs → policy-BApW53pI.mjs} +2 -2
  20. package/dist/.setup/{probe-64C6k3_Q.mjs → probe-DiYIMPJo.mjs} +1 -1
  21. package/dist/.setup/{provider-w36VTgZ3.mjs → provider-C-jPaGt2.mjs} +26 -27
  22. package/dist/.setup/{relay-source-CDqY76Vp.mjs → relay-source-DfOnjJTE.mjs} +1 -1
  23. package/dist/.setup/{replies-CWFhjS9S.mjs → replies-BBAJxUOQ.mjs} +4 -4
  24. package/dist/.setup/{reply-blocks-9uCeAJts.mjs → reply-blocks-Bm8kf6mK.mjs} +1 -1
  25. package/dist/.setup/{resolve-channels-x8fX1SEt.mjs → resolve-channels-BXbMBbJD.mjs} +1 -1
  26. package/dist/.setup/{resolve-users-B8BpBnH2.mjs → resolve-users-65WqvIqD.mjs} +1 -1
  27. package/dist/.setup/{scopes-CJ-6l4v4.mjs → scopes-h3YB-mMs.mjs} +1 -1
  28. package/dist/.setup/{send-6GCb3lBP.mjs → send-Cp6omkOg.mjs} +21 -31
  29. package/dist/.setup/{send.runtime-BmqRP-WG.mjs → send.runtime-B4caZU6T.mjs} +1 -1
  30. package/dist/.setup/{session-status-BhG6pdiH.mjs → session-status-Cf7AvWOt.mjs} +11 -15
  31. package/dist/.setup/{setup-plugin-api-DtCEByQB.mjs → setup-plugin-api-dLPkL06L.mjs} +1 -1
  32. package/dist/.setup/{setup-surface-DsE0hsYY.mjs → setup-surface-D3DLcCxu.mjs} +6 -6
  33. package/dist/.setup/{shared-BNmqCPgQ.mjs → shared-CJ3arAFL.mjs} +4 -4
  34. package/dist/.setup/{slash-dispatch.runtime-Io4ASZsY.mjs → slash-dispatch.runtime-HFy_XvyO.mjs} +1 -1
  35. package/dist/account-inspect-api.js +1 -1
  36. package/dist/api.js +13 -13
  37. package/dist/channel-config-api.js +1 -1
  38. package/dist/channel-plugin-api.js +1 -1
  39. package/dist/directory-contract-api.js +1 -1
  40. package/dist/message-tool-api.js +1 -1
  41. package/dist/runtime-api.js +11 -11
  42. package/dist/setup-entry.js +1 -1
  43. package/dist/setup-plugin-api.js +1 -1
  44. package/node_modules/@slack/bolt/node_modules/@types/node/README.md +1 -1
  45. package/node_modules/@slack/bolt/node_modules/@types/node/package.json +2 -2
  46. package/node_modules/@slack/bolt/node_modules/@types/node/web-globals/streams.d.ts +4 -0
  47. package/node_modules/@slack/web-api/node_modules/@types/node/README.md +1 -1
  48. package/node_modules/@slack/web-api/node_modules/@types/node/package.json +2 -2
  49. package/node_modules/@slack/web-api/node_modules/@types/node/web-globals/streams.d.ts +4 -0
  50. package/node_modules/zod/README.md +2 -2
  51. package/node_modules/zod/compile.cjs +19 -0
  52. package/node_modules/zod/index.cjs +19 -0
  53. package/node_modules/zod/locales/index.cjs +19 -0
  54. package/node_modules/zod/mini/index.cjs +19 -0
  55. package/node_modules/zod/package.json +8 -7
  56. package/node_modules/zod/src/v3/helpers/errorUtil.ts +1 -1
  57. package/node_modules/zod/src/v4/classic/external.ts +2 -0
  58. package/node_modules/zod/src/v4/classic/from-json-schema.ts +248 -25
  59. package/node_modules/zod/src/v4/classic/schemas.ts +243 -168
  60. package/node_modules/zod/src/v4/classic/tests/assignability.test.ts +60 -9
  61. package/node_modules/zod/src/v4/classic/tests/bigint.test.ts +6 -0
  62. package/node_modules/zod/src/v4/classic/tests/continuability.test.ts +2 -2
  63. package/node_modules/zod/src/v4/classic/tests/cyclic-data.test.ts +265 -0
  64. package/node_modules/zod/src/v4/classic/tests/discriminated-unions.test.ts +112 -6
  65. package/node_modules/zod/src/v4/classic/tests/enum.test.ts +9 -0
  66. package/node_modules/zod/src/v4/classic/tests/error.test.ts +130 -1
  67. package/node_modules/zod/src/v4/classic/tests/from-json-schema.test.ts +157 -0
  68. package/node_modules/zod/src/v4/classic/tests/iban.test.ts +81 -0
  69. package/node_modules/zod/src/v4/classic/tests/instance-footprint.test.ts +40 -2
  70. package/node_modules/zod/src/v4/classic/tests/instanceof.test.ts +27 -7
  71. package/node_modules/zod/src/v4/classic/tests/issue-schema.test.ts +88 -56
  72. package/node_modules/zod/src/v4/classic/tests/number.test.ts +39 -0
  73. package/node_modules/zod/src/v4/classic/tests/object.test.ts +56 -0
  74. package/node_modules/zod/src/v4/classic/tests/optin-ladder.test.ts +3 -2
  75. package/node_modules/zod/src/v4/classic/tests/prefault.test.ts +70 -0
  76. package/node_modules/zod/src/v4/classic/tests/properties.test.ts +141 -0
  77. package/node_modules/zod/src/v4/classic/tests/recursive-types.test.ts +46 -1
  78. package/node_modules/zod/src/v4/classic/tests/standard-schema.test.ts +19 -0
  79. package/node_modules/zod/src/v4/classic/tests/string.test.ts +95 -1
  80. package/node_modules/zod/src/v4/classic/tests/template-literal.test.ts +33 -1
  81. package/node_modules/zod/src/v4/classic/tests/to-json-schema.test.ts +234 -38
  82. package/node_modules/zod/src/v4/classic/tests/validate.test.ts +569 -0
  83. package/node_modules/zod/src/v4/core/api.ts +44 -28
  84. package/node_modules/zod/src/v4/core/checks.ts +62 -102
  85. package/node_modules/zod/src/v4/core/compile.ts +218 -93
  86. package/node_modules/zod/src/v4/core/core.ts +1 -3
  87. package/node_modules/zod/src/v4/core/doc.ts +6 -2
  88. package/node_modules/zod/src/v4/core/errors.ts +3 -6
  89. package/node_modules/zod/src/v4/core/json-schema-generator.ts +2 -2
  90. package/node_modules/zod/src/v4/core/json-schema-processors.ts +185 -81
  91. package/node_modules/zod/src/v4/core/memoizer.ts +75 -28
  92. package/node_modules/zod/src/v4/core/parse.ts +37 -16
  93. package/node_modules/zod/src/v4/core/regexes.ts +14 -4
  94. package/node_modules/zod/src/v4/core/schemas.ts +296 -132
  95. package/node_modules/zod/src/v4/core/tests/cached.test.ts +54 -0
  96. package/node_modules/zod/src/v4/core/tests/compile-differential.test.ts +35 -0
  97. package/node_modules/zod/src/v4/core/tests/compile-generative.test.ts +445 -0
  98. package/node_modules/zod/src/v4/core/tests/compile.test.ts +399 -2
  99. package/node_modules/zod/src/v4/core/tests/email-regex.test.ts +140 -0
  100. package/node_modules/zod/src/v4/core/tests/locales/tg.test.ts +85 -0
  101. package/node_modules/zod/src/v4/core/tests/polyfill-collision.test.ts +46 -0
  102. package/node_modules/zod/src/v4/core/tests/url-no-canparse.test.ts +118 -16
  103. package/node_modules/zod/src/v4/core/to-json-schema.ts +9 -7
  104. package/node_modules/zod/src/v4/core/util.ts +218 -147
  105. package/node_modules/zod/src/v4/core/versions.ts +2 -2
  106. package/node_modules/zod/src/v4/locales/ar.ts +2 -0
  107. package/node_modules/zod/src/v4/locales/az.ts +2 -0
  108. package/node_modules/zod/src/v4/locales/be.ts +2 -0
  109. package/node_modules/zod/src/v4/locales/bg.ts +2 -0
  110. package/node_modules/zod/src/v4/locales/bn.ts +2 -0
  111. package/node_modules/zod/src/v4/locales/ca.ts +2 -0
  112. package/node_modules/zod/src/v4/locales/ckb.ts +2 -0
  113. package/node_modules/zod/src/v4/locales/cs.ts +2 -0
  114. package/node_modules/zod/src/v4/locales/da.ts +2 -0
  115. package/node_modules/zod/src/v4/locales/de.ts +2 -0
  116. package/node_modules/zod/src/v4/locales/el.ts +2 -0
  117. package/node_modules/zod/src/v4/locales/en.ts +2 -0
  118. package/node_modules/zod/src/v4/locales/eo.ts +2 -0
  119. package/node_modules/zod/src/v4/locales/es.ts +2 -0
  120. package/node_modules/zod/src/v4/locales/fa.ts +2 -0
  121. package/node_modules/zod/src/v4/locales/fi.ts +2 -0
  122. package/node_modules/zod/src/v4/locales/fr-CA.ts +2 -0
  123. package/node_modules/zod/src/v4/locales/fr.ts +2 -0
  124. package/node_modules/zod/src/v4/locales/gu.ts +2 -0
  125. package/node_modules/zod/src/v4/locales/he.ts +2 -0
  126. package/node_modules/zod/src/v4/locales/hi.ts +2 -0
  127. package/node_modules/zod/src/v4/locales/hr.ts +2 -0
  128. package/node_modules/zod/src/v4/locales/hu.ts +2 -0
  129. package/node_modules/zod/src/v4/locales/hy.ts +2 -0
  130. package/node_modules/zod/src/v4/locales/id.ts +2 -0
  131. package/node_modules/zod/src/v4/locales/index.ts +1 -0
  132. package/node_modules/zod/src/v4/locales/is.ts +2 -0
  133. package/node_modules/zod/src/v4/locales/it.ts +2 -0
  134. package/node_modules/zod/src/v4/locales/ja.ts +2 -0
  135. package/node_modules/zod/src/v4/locales/ka.ts +2 -0
  136. package/node_modules/zod/src/v4/locales/km.ts +2 -0
  137. package/node_modules/zod/src/v4/locales/kn.ts +2 -0
  138. package/node_modules/zod/src/v4/locales/ko.ts +2 -0
  139. package/node_modules/zod/src/v4/locales/lt.ts +2 -0
  140. package/node_modules/zod/src/v4/locales/mk.ts +2 -0
  141. package/node_modules/zod/src/v4/locales/ms.ts +2 -0
  142. package/node_modules/zod/src/v4/locales/ne.ts +2 -0
  143. package/node_modules/zod/src/v4/locales/nl.ts +2 -0
  144. package/node_modules/zod/src/v4/locales/nn.ts +2 -0
  145. package/node_modules/zod/src/v4/locales/no.ts +2 -0
  146. package/node_modules/zod/src/v4/locales/ota.ts +2 -0
  147. package/node_modules/zod/src/v4/locales/pl.ts +2 -0
  148. package/node_modules/zod/src/v4/locales/ps.ts +2 -0
  149. package/node_modules/zod/src/v4/locales/pt-BR.ts +2 -0
  150. package/node_modules/zod/src/v4/locales/pt.ts +2 -0
  151. package/node_modules/zod/src/v4/locales/ro.ts +2 -0
  152. package/node_modules/zod/src/v4/locales/ru.ts +2 -0
  153. package/node_modules/zod/src/v4/locales/sk.ts +2 -0
  154. package/node_modules/zod/src/v4/locales/sl.ts +2 -0
  155. package/node_modules/zod/src/v4/locales/sv.ts +2 -0
  156. package/node_modules/zod/src/v4/locales/ta.ts +2 -0
  157. package/node_modules/zod/src/v4/locales/tg.ts +135 -0
  158. package/node_modules/zod/src/v4/locales/th.ts +2 -0
  159. package/node_modules/zod/src/v4/locales/tk.ts +2 -0
  160. package/node_modules/zod/src/v4/locales/tr.ts +2 -0
  161. package/node_modules/zod/src/v4/locales/uk.ts +2 -0
  162. package/node_modules/zod/src/v4/locales/ur.ts +2 -0
  163. package/node_modules/zod/src/v4/locales/uz.ts +2 -0
  164. package/node_modules/zod/src/v4/locales/vi.ts +2 -0
  165. package/node_modules/zod/src/v4/locales/yo.ts +2 -0
  166. package/node_modules/zod/src/v4/locales/zh-CN.ts +2 -0
  167. package/node_modules/zod/src/v4/locales/zh-TW.ts +2 -0
  168. package/node_modules/zod/src/v4/mini/external.ts +2 -0
  169. package/node_modules/zod/src/v4/mini/schemas.ts +32 -7
  170. package/node_modules/zod/src/v4/mini/tests/checks.test.ts +1 -1
  171. package/node_modules/zod/src/v4/mini/tests/computed.test.ts +11 -17
  172. package/node_modules/zod/src/v4/mini/tests/index.test.ts +86 -0
  173. package/node_modules/zod/src/v4/mini/tests/recursive-types.test.ts +16 -0
  174. package/node_modules/zod/src/v4/mini/tests/string.test.ts +23 -0
  175. package/node_modules/zod/v3/ZodError.cjs +19 -0
  176. package/node_modules/zod/v3/errors.cjs +19 -0
  177. package/node_modules/zod/v3/external.cjs +19 -0
  178. package/node_modules/zod/v3/helpers/enumUtil.cjs +19 -0
  179. package/node_modules/zod/v3/helpers/errorUtil.cjs +20 -1
  180. package/node_modules/zod/v3/helpers/errorUtil.js +1 -1
  181. package/node_modules/zod/v3/helpers/parseUtil.cjs +19 -0
  182. package/node_modules/zod/v3/helpers/partialUtil.cjs +19 -0
  183. package/node_modules/zod/v3/helpers/typeAliases.cjs +19 -0
  184. package/node_modules/zod/v3/helpers/util.cjs +19 -0
  185. package/node_modules/zod/v3/index.cjs +19 -0
  186. package/node_modules/zod/v3/standard-schema.cjs +19 -0
  187. package/node_modules/zod/v3/types.cjs +19 -0
  188. package/node_modules/zod/v4/classic/checks.cjs +19 -0
  189. package/node_modules/zod/v4/classic/coerce.cjs +19 -0
  190. package/node_modules/zod/v4/classic/compat.cjs +19 -0
  191. package/node_modules/zod/v4/classic/deep-partial.cjs +19 -0
  192. package/node_modules/zod/v4/classic/errors.cjs +19 -0
  193. package/node_modules/zod/v4/classic/external.cjs +22 -1
  194. package/node_modules/zod/v4/classic/external.d.cts +1 -1
  195. package/node_modules/zod/v4/classic/external.d.ts +1 -1
  196. package/node_modules/zod/v4/classic/external.js +1 -1
  197. package/node_modules/zod/v4/classic/from-json-schema.cjs +264 -24
  198. package/node_modules/zod/v4/classic/from-json-schema.js +245 -24
  199. package/node_modules/zod/v4/classic/in-out.cjs +19 -0
  200. package/node_modules/zod/v4/classic/index.cjs +19 -0
  201. package/node_modules/zod/v4/classic/iso.cjs +19 -0
  202. package/node_modules/zod/v4/classic/parse.cjs +19 -0
  203. package/node_modules/zod/v4/classic/schemas.cjs +100 -35
  204. package/node_modules/zod/v4/classic/schemas.d.cts +15 -1
  205. package/node_modules/zod/v4/classic/schemas.d.ts +15 -1
  206. package/node_modules/zod/v4/classic/schemas.js +77 -33
  207. package/node_modules/zod/v4/core/api.cjs +45 -22
  208. package/node_modules/zod/v4/core/api.d.cts +12 -6
  209. package/node_modules/zod/v4/core/api.d.ts +12 -6
  210. package/node_modules/zod/v4/core/api.js +25 -22
  211. package/node_modules/zod/v4/core/checks.cjs +51 -97
  212. package/node_modules/zod/v4/core/checks.d.cts +17 -1
  213. package/node_modules/zod/v4/core/checks.d.ts +17 -1
  214. package/node_modules/zod/v4/core/checks.js +31 -96
  215. package/node_modules/zod/v4/core/compile.cjs +173 -78
  216. package/node_modules/zod/v4/core/compile.d.cts +18 -4
  217. package/node_modules/zod/v4/core/compile.d.ts +18 -4
  218. package/node_modules/zod/v4/core/compile.js +154 -79
  219. package/node_modules/zod/v4/core/core.cjs +20 -1
  220. package/node_modules/zod/v4/core/core.js +1 -1
  221. package/node_modules/zod/v4/core/doc.cjs +26 -2
  222. package/node_modules/zod/v4/core/doc.js +7 -2
  223. package/node_modules/zod/v4/core/errors.cjs +21 -5
  224. package/node_modules/zod/v4/core/errors.js +2 -5
  225. package/node_modules/zod/v4/core/index.cjs +19 -0
  226. package/node_modules/zod/v4/core/json-schema-generator.cjs +20 -1
  227. package/node_modules/zod/v4/core/json-schema-generator.js +2 -2
  228. package/node_modules/zod/v4/core/json-schema-processors.cjs +188 -72
  229. package/node_modules/zod/v4/core/json-schema-processors.d.cts +16 -0
  230. package/node_modules/zod/v4/core/json-schema-processors.d.ts +16 -0
  231. package/node_modules/zod/v4/core/json-schema-processors.js +170 -74
  232. package/node_modules/zod/v4/core/json-schema.cjs +19 -0
  233. package/node_modules/zod/v4/core/memoizer.cjs +111 -23
  234. package/node_modules/zod/v4/core/memoizer.js +69 -23
  235. package/node_modules/zod/v4/core/parse.cjs +56 -16
  236. package/node_modules/zod/v4/core/parse.js +37 -16
  237. package/node_modules/zod/v4/core/regexes.cjs +31 -6
  238. package/node_modules/zod/v4/core/regexes.d.cts +3 -0
  239. package/node_modules/zod/v4/core/regexes.d.ts +3 -0
  240. package/node_modules/zod/v4/core/regexes.js +10 -4
  241. package/node_modules/zod/v4/core/registries.cjs +19 -0
  242. package/node_modules/zod/v4/core/schemas.cjs +302 -114
  243. package/node_modules/zod/v4/core/schemas.d.cts +28 -8
  244. package/node_modules/zod/v4/core/schemas.d.ts +28 -8
  245. package/node_modules/zod/v4/core/schemas.js +279 -113
  246. package/node_modules/zod/v4/core/standard-schema.cjs +19 -0
  247. package/node_modules/zod/v4/core/to-json-schema.cjs +28 -7
  248. package/node_modules/zod/v4/core/to-json-schema.d.cts +4 -3
  249. package/node_modules/zod/v4/core/to-json-schema.d.ts +4 -3
  250. package/node_modules/zod/v4/core/to-json-schema.js +7 -6
  251. package/node_modules/zod/v4/core/util.cjs +177 -143
  252. package/node_modules/zod/v4/core/util.d.cts +25 -4
  253. package/node_modules/zod/v4/core/util.d.ts +25 -4
  254. package/node_modules/zod/v4/core/util.js +156 -143
  255. package/node_modules/zod/v4/core/versions.cjs +21 -2
  256. package/node_modules/zod/v4/core/versions.d.cts +1 -1
  257. package/node_modules/zod/v4/core/versions.d.ts +1 -1
  258. package/node_modules/zod/v4/core/versions.js +2 -2
  259. package/node_modules/zod/v4/core/visit.cjs +19 -0
  260. package/node_modules/zod/v4/index.cjs +19 -0
  261. package/node_modules/zod/v4/locales/ar.cjs +2 -0
  262. package/node_modules/zod/v4/locales/ar.js +2 -0
  263. package/node_modules/zod/v4/locales/az.cjs +2 -0
  264. package/node_modules/zod/v4/locales/az.js +2 -0
  265. package/node_modules/zod/v4/locales/be.cjs +2 -0
  266. package/node_modules/zod/v4/locales/be.js +2 -0
  267. package/node_modules/zod/v4/locales/bg.cjs +2 -0
  268. package/node_modules/zod/v4/locales/bg.js +2 -0
  269. package/node_modules/zod/v4/locales/bn.cjs +2 -0
  270. package/node_modules/zod/v4/locales/bn.js +2 -0
  271. package/node_modules/zod/v4/locales/ca.cjs +2 -0
  272. package/node_modules/zod/v4/locales/ca.js +2 -0
  273. package/node_modules/zod/v4/locales/ckb.cjs +2 -0
  274. package/node_modules/zod/v4/locales/ckb.js +2 -0
  275. package/node_modules/zod/v4/locales/cs.cjs +2 -0
  276. package/node_modules/zod/v4/locales/cs.js +2 -0
  277. package/node_modules/zod/v4/locales/da.cjs +2 -0
  278. package/node_modules/zod/v4/locales/da.js +2 -0
  279. package/node_modules/zod/v4/locales/de.cjs +2 -0
  280. package/node_modules/zod/v4/locales/de.js +2 -0
  281. package/node_modules/zod/v4/locales/el.cjs +2 -0
  282. package/node_modules/zod/v4/locales/el.js +2 -0
  283. package/node_modules/zod/v4/locales/en.cjs +2 -0
  284. package/node_modules/zod/v4/locales/en.js +2 -0
  285. package/node_modules/zod/v4/locales/eo.cjs +2 -0
  286. package/node_modules/zod/v4/locales/eo.js +2 -0
  287. package/node_modules/zod/v4/locales/es.cjs +2 -0
  288. package/node_modules/zod/v4/locales/es.js +2 -0
  289. package/node_modules/zod/v4/locales/fa.cjs +2 -0
  290. package/node_modules/zod/v4/locales/fa.js +2 -0
  291. package/node_modules/zod/v4/locales/fi.cjs +2 -0
  292. package/node_modules/zod/v4/locales/fi.js +2 -0
  293. package/node_modules/zod/v4/locales/fr-CA.cjs +2 -0
  294. package/node_modules/zod/v4/locales/fr-CA.js +2 -0
  295. package/node_modules/zod/v4/locales/fr.cjs +2 -0
  296. package/node_modules/zod/v4/locales/fr.js +2 -0
  297. package/node_modules/zod/v4/locales/gu.cjs +2 -0
  298. package/node_modules/zod/v4/locales/gu.js +2 -0
  299. package/node_modules/zod/v4/locales/he.cjs +2 -0
  300. package/node_modules/zod/v4/locales/he.js +2 -0
  301. package/node_modules/zod/v4/locales/hi.cjs +2 -0
  302. package/node_modules/zod/v4/locales/hi.js +2 -0
  303. package/node_modules/zod/v4/locales/hr.cjs +2 -0
  304. package/node_modules/zod/v4/locales/hr.js +2 -0
  305. package/node_modules/zod/v4/locales/hu.cjs +2 -0
  306. package/node_modules/zod/v4/locales/hu.js +2 -0
  307. package/node_modules/zod/v4/locales/hy.cjs +2 -0
  308. package/node_modules/zod/v4/locales/hy.js +2 -0
  309. package/node_modules/zod/v4/locales/id.cjs +2 -0
  310. package/node_modules/zod/v4/locales/id.js +2 -0
  311. package/node_modules/zod/v4/locales/index.cjs +22 -1
  312. package/node_modules/zod/v4/locales/index.d.cts +1 -0
  313. package/node_modules/zod/v4/locales/index.d.ts +1 -0
  314. package/node_modules/zod/v4/locales/index.js +1 -0
  315. package/node_modules/zod/v4/locales/is.cjs +2 -0
  316. package/node_modules/zod/v4/locales/is.js +2 -0
  317. package/node_modules/zod/v4/locales/it.cjs +2 -0
  318. package/node_modules/zod/v4/locales/it.js +2 -0
  319. package/node_modules/zod/v4/locales/ja.cjs +2 -0
  320. package/node_modules/zod/v4/locales/ja.js +2 -0
  321. package/node_modules/zod/v4/locales/ka.cjs +2 -0
  322. package/node_modules/zod/v4/locales/ka.js +2 -0
  323. package/node_modules/zod/v4/locales/km.cjs +2 -0
  324. package/node_modules/zod/v4/locales/km.js +2 -0
  325. package/node_modules/zod/v4/locales/kn.cjs +2 -0
  326. package/node_modules/zod/v4/locales/kn.js +2 -0
  327. package/node_modules/zod/v4/locales/ko.cjs +2 -0
  328. package/node_modules/zod/v4/locales/ko.js +2 -0
  329. package/node_modules/zod/v4/locales/lt.cjs +2 -0
  330. package/node_modules/zod/v4/locales/lt.js +2 -0
  331. package/node_modules/zod/v4/locales/mk.cjs +2 -0
  332. package/node_modules/zod/v4/locales/mk.js +2 -0
  333. package/node_modules/zod/v4/locales/ms.cjs +2 -0
  334. package/node_modules/zod/v4/locales/ms.js +2 -0
  335. package/node_modules/zod/v4/locales/ne.cjs +2 -0
  336. package/node_modules/zod/v4/locales/ne.js +2 -0
  337. package/node_modules/zod/v4/locales/nl.cjs +2 -0
  338. package/node_modules/zod/v4/locales/nl.js +2 -0
  339. package/node_modules/zod/v4/locales/nn.cjs +2 -0
  340. package/node_modules/zod/v4/locales/nn.js +2 -0
  341. package/node_modules/zod/v4/locales/no.cjs +2 -0
  342. package/node_modules/zod/v4/locales/no.js +2 -0
  343. package/node_modules/zod/v4/locales/ota.cjs +2 -0
  344. package/node_modules/zod/v4/locales/ota.js +2 -0
  345. package/node_modules/zod/v4/locales/pl.cjs +2 -0
  346. package/node_modules/zod/v4/locales/pl.js +2 -0
  347. package/node_modules/zod/v4/locales/ps.cjs +2 -0
  348. package/node_modules/zod/v4/locales/ps.js +2 -0
  349. package/node_modules/zod/v4/locales/pt-BR.cjs +2 -0
  350. package/node_modules/zod/v4/locales/pt-BR.js +2 -0
  351. package/node_modules/zod/v4/locales/pt.cjs +2 -0
  352. package/node_modules/zod/v4/locales/pt.js +2 -0
  353. package/node_modules/zod/v4/locales/ro.cjs +2 -0
  354. package/node_modules/zod/v4/locales/ro.js +2 -0
  355. package/node_modules/zod/v4/locales/ru.cjs +2 -0
  356. package/node_modules/zod/v4/locales/ru.js +2 -0
  357. package/node_modules/zod/v4/locales/sk.cjs +2 -0
  358. package/node_modules/zod/v4/locales/sk.js +2 -0
  359. package/node_modules/zod/v4/locales/sl.cjs +2 -0
  360. package/node_modules/zod/v4/locales/sl.js +2 -0
  361. package/node_modules/zod/v4/locales/sv.cjs +2 -0
  362. package/node_modules/zod/v4/locales/sv.js +2 -0
  363. package/node_modules/zod/v4/locales/ta.cjs +2 -0
  364. package/node_modules/zod/v4/locales/ta.js +2 -0
  365. package/node_modules/zod/v4/locales/tg.cjs +144 -0
  366. package/node_modules/zod/v4/locales/tg.d.cts +5 -0
  367. package/node_modules/zod/v4/locales/tg.d.ts +4 -0
  368. package/node_modules/zod/v4/locales/tg.js +117 -0
  369. package/node_modules/zod/v4/locales/th.cjs +2 -0
  370. package/node_modules/zod/v4/locales/th.js +2 -0
  371. package/node_modules/zod/v4/locales/tk.cjs +2 -0
  372. package/node_modules/zod/v4/locales/tk.js +2 -0
  373. package/node_modules/zod/v4/locales/tr.cjs +2 -0
  374. package/node_modules/zod/v4/locales/tr.js +2 -0
  375. package/node_modules/zod/v4/locales/uk.cjs +2 -0
  376. package/node_modules/zod/v4/locales/uk.js +2 -0
  377. package/node_modules/zod/v4/locales/ur.cjs +2 -0
  378. package/node_modules/zod/v4/locales/ur.js +2 -0
  379. package/node_modules/zod/v4/locales/uz.cjs +2 -0
  380. package/node_modules/zod/v4/locales/uz.js +2 -0
  381. package/node_modules/zod/v4/locales/vi.cjs +2 -0
  382. package/node_modules/zod/v4/locales/vi.js +2 -0
  383. package/node_modules/zod/v4/locales/yo.cjs +2 -0
  384. package/node_modules/zod/v4/locales/yo.js +2 -0
  385. package/node_modules/zod/v4/locales/zh-CN.cjs +2 -0
  386. package/node_modules/zod/v4/locales/zh-CN.js +2 -0
  387. package/node_modules/zod/v4/locales/zh-TW.cjs +2 -0
  388. package/node_modules/zod/v4/locales/zh-TW.js +2 -0
  389. package/node_modules/zod/v4/mini/checks.cjs +19 -0
  390. package/node_modules/zod/v4/mini/coerce.cjs +19 -0
  391. package/node_modules/zod/v4/mini/deep-partial.cjs +19 -0
  392. package/node_modules/zod/v4/mini/external.cjs +22 -1
  393. package/node_modules/zod/v4/mini/external.d.cts +1 -1
  394. package/node_modules/zod/v4/mini/external.d.ts +1 -1
  395. package/node_modules/zod/v4/mini/external.js +1 -1
  396. package/node_modules/zod/v4/mini/in-out.cjs +19 -0
  397. package/node_modules/zod/v4/mini/index.cjs +19 -0
  398. package/node_modules/zod/v4/mini/iso.cjs +19 -0
  399. package/node_modules/zod/v4/mini/parse.cjs +19 -0
  400. package/node_modules/zod/v4/mini/schemas.cjs +44 -8
  401. package/node_modules/zod/v4/mini/schemas.d.cts +6 -1
  402. package/node_modules/zod/v4/mini/schemas.d.ts +6 -1
  403. package/node_modules/zod/v4/mini/schemas.js +21 -6
  404. package/node_modules/zod/v4-mini/index.cjs +19 -0
  405. package/openclaw.plugin.json +18 -0
  406. package/package.json +5 -5
  407. package/dist/.setup/accounts.runtime-BpWv-6-2.mjs +0 -2
  408. package/dist/.setup/action-runtime.runtime-DwH3NdpT.mjs +0 -2
@@ -1,5 +1,5 @@
1
1
  import { t as hasSlackAccountCredentials } from "./account-configured-sUohAxZr.mjs";
2
- import { i as resolveDefaultSlackAccountId, r as mergeSlackAccountConfig } from "./accounts-C1FspRF-.mjs";
2
+ import { a as resolveDefaultSlackAccountId, i as mergeSlackAccountConfig } from "./accounts-BBHvg0pY.mjs";
3
3
  import { DEFAULT_ACCOUNT_ID, normalizeAccountId } from "openclaw/plugin-sdk/account-resolution";
4
4
  import { hasConfiguredSecretInput, normalizeSecretInputString } from "openclaw/plugin-sdk/secret-input";
5
5
  import { normalizeOptionalString } from "openclaw/plugin-sdk/string-coerce-runtime";
@@ -39,21 +39,22 @@ function resolveSlackOperationToken(account, operation) {
39
39
  if (operation === "read") return userToken ?? botToken;
40
40
  return account.config.userTokenReadOnly === false ? botToken ?? userToken : botToken;
41
41
  }
42
+ function hasImplicitDefaultSlackAccount(cfg) {
43
+ const slack = cfg.channels?.slack;
44
+ const userIdentity = slack?.postAs === "user";
45
+ return hasSlackAccountCredentials({
46
+ config: slack ?? {},
47
+ identityTokenConfigured: hasConfiguredAccountValue(userIdentity ? slack?.userToken : slack?.botToken) || hasConfiguredAccountValue(userIdentity ? process.env.SLACK_USER_TOKEN : process.env.SLACK_BOT_TOKEN),
48
+ appTokenConfigured: hasConfiguredAccountValue(slack?.appToken) || hasConfiguredAccountValue(process.env.SLACK_APP_TOKEN)
49
+ });
50
+ }
42
51
  const { listAccountIds, resolveDefaultAccountId, resolveAccountConfig: resolveMergedSlackAccountConfig } = createAccountListHelpers("slack", {
43
52
  nestedObjectKeys: [
44
53
  "botLoopProtection",
45
54
  "presenceEvents",
46
55
  "relay"
47
56
  ],
48
- hasImplicitDefaultAccount: (cfg) => {
49
- const slack = cfg.channels?.slack;
50
- const userIdentity = slack?.postAs === "user";
51
- return hasSlackAccountCredentials({
52
- config: slack ?? {},
53
- identityTokenConfigured: hasConfiguredAccountValue(userIdentity ? slack?.userToken : slack?.botToken) || hasConfiguredAccountValue(userIdentity ? process.env.SLACK_USER_TOKEN : process.env.SLACK_BOT_TOKEN),
54
- appTokenConfigured: hasConfiguredAccountValue(slack?.appToken) || hasConfiguredAccountValue(process.env.SLACK_APP_TOKEN)
55
- });
56
- }
57
+ hasImplicitDefaultAccount: hasImplicitDefaultSlackAccount
57
58
  });
58
59
  const listSlackAccountIds = listAccountIds;
59
60
  const resolveDefaultSlackAccountId = resolveDefaultAccountId;
@@ -184,4 +185,4 @@ function listEnabledSlackAccounts(cfg) {
184
185
  })).filter((account) => account.enabled);
185
186
  }
186
187
  //#endregion
187
- export { resolveSlackAccount as a, resolveSlackConfigAccessorAccount as c, resolveSlackAppToken as d, resolveSlackBotToken as f, resolveDefaultSlackAccountId as i, resolveSlackOperationToken as l, listSlackAccountIds as n, resolveSlackAccountAllowFrom as o, mergeSlackAccountConfig as r, resolveSlackAccountDmPolicy as s, listEnabledSlackAccounts as t, formatSlackBotTokenIdentityWarning as u };
188
+ export { resolveDefaultSlackAccountId as a, resolveSlackAccountDmPolicy as c, formatSlackBotTokenIdentityWarning as d, resolveSlackAppToken as f, mergeSlackAccountConfig as i, resolveSlackConfigAccessorAccount as l, listEnabledSlackAccounts as n, resolveSlackAccount as o, resolveSlackBotToken as p, listSlackAccountIds as r, resolveSlackAccountAllowFrom as s, hasImplicitDefaultSlackAccount as t, resolveSlackOperationToken as u };
@@ -0,0 +1,2 @@
1
+ import { o as resolveSlackAccount, s as resolveSlackAccountAllowFrom, u as resolveSlackOperationToken } from "./accounts-BBHvg0pY.mjs";
2
+ export { resolveSlackAccount, resolveSlackAccountAllowFrom, resolveSlackOperationToken };
@@ -1,11 +1,11 @@
1
- import { Mt as SLACK_PRIVATE_ACTION_DELIVERY_RESULT, Nt as resolveSlackAutoThreadId, ct as parseSlackBlocksInput, f as assertSlackDetachedTargetAllowed, r as buildSlackChannelIdCandidates, v as hasSlackNativeDataBlock, xt as getSlackInstallationKind } from "./session-status-BhG6pdiH.mjs";
1
+ import { Mt as SLACK_PRIVATE_ACTION_DELIVERY_RESULT, Nt as resolveSlackAutoThreadId, ct as parseSlackBlocksInput, f as assertSlackDetachedTargetAllowed, r as buildSlackChannelIdCandidates, v as hasSlackNativeDataBlock, xt as getSlackInstallationKind } from "./session-status-Cf7AvWOt.mjs";
2
2
  import { a as parseSlackTarget, n as formatSlackTarget, o as resolveSlackChannelId } from "./target-parsing-DEsPjngB.mjs";
3
3
  import { t as slackContextTargetsMatch } from "./targets-Cku2KCvg.mjs";
4
- import { n as resolveSlackChannelConfig, t as isSlackChannelAllowedByPolicy } from "./policy-Db_QWCZZ.mjs";
4
+ import { n as resolveSlackChannelConfig, t as isSlackChannelAllowedByPolicy } from "./policy-BApW53pI.mjs";
5
5
  import { t as mergeSlackSendResults } from "./send-results-eeOu_HYm.mjs";
6
6
  import { normalizeAccountId } from "openclaw/plugin-sdk/account-resolution";
7
7
  import { normalizeOptionalLowercaseString } from "openclaw/plugin-sdk/string-coerce-runtime";
8
- import { createLazyRuntimeModule } from "openclaw/plugin-sdk/lazy-runtime";
8
+ import { createLazyRuntimeMethodBinder, createLazyRuntimeModule } from "openclaw/plugin-sdk/lazy-runtime";
9
9
  import { isSingleUseReplyToMode } from "openclaw/plugin-sdk/reply-reference";
10
10
  import { readBooleanParam } from "openclaw/plugin-sdk/boolean-param";
11
11
  import { createActionGate, imageResultFromFile, jsonResult, readPositiveIntegerParam, readReactionParams, readStringParam, withNormalizedTimestamp } from "openclaw/plugin-sdk/channel-actions";
@@ -27,35 +27,31 @@ const pinActions = /* @__PURE__ */ new Set([
27
27
  "listPins"
28
28
  ]);
29
29
  const SLACK_REACTION_RESULT_LIMIT = 100;
30
- const loadSlackActionsRuntime = createLazyRuntimeModule(() => import("./actions-BvGUGk3w.mjs").then((n) => n.t));
31
- const loadSlackAccountsRuntime = createLazyRuntimeModule(() => import("./accounts.runtime-BpWv-6-2.mjs"));
32
- const loadSlackChannelTypeRuntime = createLazyRuntimeModule(() => import("./channel-type-osC0XOES.mjs").then((n) => n.t));
33
- function createLazySlackAction(key) {
34
- return (async (...args) => {
35
- const action = (await loadSlackActionsRuntime())[key];
36
- return action(...args);
37
- });
38
- }
30
+ const loadSlackActionsRuntime = createLazyRuntimeModule(() => import("./actions-DKCtBgCI.mjs").then((n) => n.t));
31
+ const bindSlackAction = createLazyRuntimeMethodBinder(loadSlackActionsRuntime);
32
+ const loadSlackAccountsRuntime = createLazyRuntimeModule(() => import("./accounts.runtime-DN-PPocC.mjs"));
33
+ const loadSlackChannelTypeRuntime = createLazyRuntimeModule(() => import("./channel-type-Dxk8VJUb.mjs").then((n) => n.t));
34
+ const bindSlackChannelType = createLazyRuntimeMethodBinder(loadSlackChannelTypeRuntime);
39
35
  const slackActionRuntime = {
40
- deleteSlackMessage: createLazySlackAction("deleteSlackMessage"),
41
- downloadSlackFile: createLazySlackAction("downloadSlackFile"),
42
- editSlackMessage: createLazySlackAction("editSlackMessage"),
43
- getSlackMemberInfo: createLazySlackAction("getSlackMemberInfo"),
44
- listSlackEmojis: createLazySlackAction("listSlackEmojis"),
45
- listSlackPins: createLazySlackAction("listSlackPins"),
46
- listSlackReactions: createLazySlackAction("listSlackReactions"),
47
- openSlackConversation: createLazySlackAction("openSlackConversation"),
36
+ deleteSlackMessage: bindSlackAction((runtime) => runtime.deleteSlackMessage),
37
+ downloadSlackFile: bindSlackAction((runtime) => runtime.downloadSlackFile),
38
+ editSlackMessage: bindSlackAction((runtime) => runtime.editSlackMessage),
39
+ getSlackMemberInfo: bindSlackAction((runtime) => runtime.getSlackMemberInfo),
40
+ listSlackEmojis: bindSlackAction((runtime) => runtime.listSlackEmojis),
41
+ listSlackPins: bindSlackAction((runtime) => runtime.listSlackPins),
42
+ listSlackReactions: bindSlackAction((runtime) => runtime.listSlackReactions),
43
+ openSlackConversation: bindSlackAction((runtime) => runtime.openSlackConversation),
48
44
  parseSlackBlocksInput,
49
- pinSlackMessage: createLazySlackAction("pinSlackMessage"),
50
- reactSlackMessage: createLazySlackAction("reactSlackMessage"),
51
- readSlackMessages: createLazySlackAction("readSlackMessages"),
52
- removeOwnSlackReactions: createLazySlackAction("removeOwnSlackReactions"),
53
- removeSlackReaction: createLazySlackAction("removeSlackReaction"),
54
- resolveSlackConversationName: createLazySlackAction("resolveSlackConversationName"),
55
- resolveSlackConversationInfo: async (params) => (await loadSlackChannelTypeRuntime()).resolveSlackConversationInfo(params),
45
+ pinSlackMessage: bindSlackAction((runtime) => runtime.pinSlackMessage),
46
+ reactSlackMessage: bindSlackAction((runtime) => runtime.reactSlackMessage),
47
+ readSlackMessages: bindSlackAction((runtime) => runtime.readSlackMessages),
48
+ removeOwnSlackReactions: bindSlackAction((runtime) => runtime.removeOwnSlackReactions),
49
+ removeSlackReaction: bindSlackAction((runtime) => runtime.removeSlackReaction),
50
+ resolveSlackConversationName: bindSlackAction((runtime) => runtime.resolveSlackConversationName),
51
+ resolveSlackConversationInfo: bindSlackChannelType((runtime) => runtime.resolveSlackConversationInfo),
56
52
  resolveSlackChannelType: async (params) => (await loadSlackChannelTypeRuntime()).resolveSlackChannelType(params),
57
- sendSlackMessage: createLazySlackAction("sendSlackMessage"),
58
- unpinSlackMessage: createLazySlackAction("unpinSlackMessage")
53
+ sendSlackMessage: bindSlackAction((runtime) => runtime.sendSlackMessage),
54
+ unpinSlackMessage: bindSlackAction((runtime) => runtime.unpinSlackMessage)
59
55
  };
60
56
  function resolveThreadTsFromContext(explicitThreadTs, targetChannel, context, opts) {
61
57
  if (explicitThreadTs) return explicitThreadTs;
@@ -0,0 +1,2 @@
1
+ import { t as handleSlackAction } from "./action-runtime-B01d85zt.mjs";
2
+ export { handleSlackAction };
@@ -1,9 +1,9 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-D7D4PA-g.mjs";
2
- import { a as resolveSlackAccount, f as resolveSlackBotToken, i as resolveDefaultSlackAccountId } from "./accounts-C1FspRF-.mjs";
3
- import { A as countSlackTextUtf8Bytes, C as buildSlackBlocksFallbackText, E as SLACK_EDIT_TEXT_MAX_BYTES, M as truncateSlackTextByUtf8Bytes, Mt as SLACK_PRIVATE_ACTION_DELIVERY_RESULT, S as stripSlackNativeDataBlocks, T as renderSlackBlockFallbackText, Y as normalizeSlackOutboundText, f as assertSlackDetachedTargetAllowed, h as appendSlackNativeDataPlainTextFallback, lt as validateSlackBlocksArray, m as appendSlackNativeDataFallbackText, ot as escapeSlackMrkdwn, v as hasSlackNativeDataBlock, w as buildSlackCompleteBlocksFallbackText, y as isSlackInvalidBlocksError } from "./session-status-BhG6pdiH.mjs";
2
+ import { a as resolveDefaultSlackAccountId, o as resolveSlackAccount, p as resolveSlackBotToken } from "./accounts-BBHvg0pY.mjs";
3
+ import { A as countSlackTextUtf8Bytes, C as buildSlackBlocksFallbackText, E as SLACK_EDIT_TEXT_MAX_BYTES, M as truncateSlackTextByUtf8Bytes, Mt as SLACK_PRIVATE_ACTION_DELIVERY_RESULT, S as stripSlackNativeDataBlocks, T as renderSlackBlockFallbackText, Y as normalizeSlackOutboundText, f as assertSlackDetachedTargetAllowed, h as appendSlackNativeDataPlainTextFallback, lt as validateSlackBlocksArray, m as appendSlackNativeDataFallbackText, ot as escapeSlackMrkdwn, v as hasSlackNativeDataBlock, w as buildSlackCompleteBlocksFallbackText, y as isSlackInvalidBlocksError } from "./session-status-Cf7AvWOt.mjs";
4
4
  import { n as formatSlackTarget } from "./target-parsing-DEsPjngB.mjs";
5
- import { g as getSlackWriteClient, l as createSlackLookupClient, m as createSlackWriteClient } from "./probe-64C6k3_Q.mjs";
6
- import { m as buildSlackNativeDataDeliveryPlan, r as sendMessageSlack } from "./send-6GCb3lBP.mjs";
5
+ import { g as getSlackWriteClient, l as createSlackLookupClient, m as createSlackWriteClient } from "./probe-DiYIMPJo.mjs";
6
+ import { m as buildSlackNativeDataDeliveryPlan, r as sendMessageSlack } from "./send-Cp6omkOg.mjs";
7
7
  import { normalizeAccountId } from "openclaw/plugin-sdk/account-resolution";
8
8
  import { normalizeLowercaseStringOrEmpty, normalizeOptionalLowercaseString, normalizeOptionalString } from "openclaw/plugin-sdk/string-coerce-runtime";
9
9
  import { createSubsystemLogger, logVerbose, logVerbose as logVerbose$1 } from "openclaw/plugin-sdk/runtime-env";
@@ -15,7 +15,7 @@ import { z } from "zod";
15
15
  import { requireRuntimeConfig } from "openclaw/plugin-sdk/plugin-config-runtime";
16
16
  import fs from "node:fs/promises";
17
17
  import { runTasksWithConcurrency } from "openclaw/plugin-sdk/concurrency-runtime";
18
- import { formatErrorMessage } from "openclaw/plugin-sdk/error-runtime";
18
+ import { formatErrorMessage, toErrorObject } from "openclaw/plugin-sdk/error-runtime";
19
19
  import { normalizeHostname } from "openclaw/plugin-sdk/host-runtime";
20
20
  import { resolveRequestUrl } from "openclaw/plugin-sdk/request-url";
21
21
  import { saveRemoteMedia, unlinkIfExists } from "openclaw/plugin-sdk/media-runtime";
@@ -198,6 +198,16 @@ function assertSlackFileUrl(rawUrl, govSlack) {
198
198
  function createSlackAuthHeaders(token) {
199
199
  return { Authorization: `Bearer ${token}` };
200
200
  }
201
+ function captureSlackMediaReadGuard(params) {
202
+ const inherited = captureChannelReadAuthority$1();
203
+ const { assertCurrent, abortSignal } = params;
204
+ if (!assertCurrent && !abortSignal) return inherited;
205
+ return () => {
206
+ inherited?.();
207
+ abortSignal?.throwIfAborted();
208
+ assertCurrent?.();
209
+ };
210
+ }
201
211
  function createSlackMediaRequest(url, token, govSlack) {
202
212
  return {
203
213
  url: assertSlackFileUrl(url, govSlack).href,
@@ -306,8 +316,12 @@ function formatSlackMediaFailure(error) {
306
316
  }
307
317
  async function fetchFreshSlackFileUrl(params) {
308
318
  if (!params.file.id || !params.client) return null;
319
+ const assertCurrent = captureSlackMediaReadGuard(params);
309
320
  try {
310
- const freshFile = (await params.client.files.info({ file: params.file.id })).file;
321
+ assertCurrent?.();
322
+ const info = await params.client.files.info({ file: params.file.id });
323
+ assertCurrent?.();
324
+ const freshFile = info.file;
311
325
  if (freshFile && params.isRefreshedFileAllowed?.(freshFile) === false) {
312
326
  logVerbose$1(`slack: refreshed file metadata rejected for file id=${params.file.id}`);
313
327
  return null;
@@ -320,12 +334,13 @@ async function fetchFreshSlackFileUrl(params) {
320
334
  logVerbose$1(`slack: files.info returned no private URL for file id=${params.file.id}`);
321
335
  return null;
322
336
  } catch (error) {
337
+ assertCurrent?.();
323
338
  logVerbose$1(`slack: files.info failed for file id=${params.file.id}: ${formatErrorMessage(error)}`);
324
339
  return null;
325
340
  }
326
341
  }
327
342
  async function downloadSlackMediaFile(params) {
328
- const assertReadAuthority = captureChannelReadAuthority$1();
343
+ const assertReadAuthority = captureSlackMediaReadGuard(params);
329
344
  assertReadAuthority?.();
330
345
  const { url: slackUrl, requestInit } = createSlackMediaRequest(params.url, params.token, params.govSlack);
331
346
  const saved = await saveSlackMedia({
@@ -333,6 +348,7 @@ async function downloadSlackMediaFile(params) {
333
348
  url: slackUrl,
334
349
  fetchImpl: createSlackMediaFetch(params.govSlack, assertReadAuthority),
335
350
  beforeRequest: assertReadAuthority,
351
+ assertCurrent: params.assertCurrent,
336
352
  requestInit,
337
353
  filePathHint: params.file.name,
338
354
  fallbackContentType: resolveSlackMediaMimetype(params.file, params.file.mimetype),
@@ -383,6 +399,7 @@ function resolveForwardedAttachmentImageUrl(attachment, govSlack) {
383
399
  * Returns `null` when no files could be downloaded.
384
400
  */
385
401
  async function resolveSlackMedia(params) {
402
+ const assertCurrent = captureSlackMediaReadGuard(params);
386
403
  const govSlack = isGovSlackClient(params.client);
387
404
  const files = params.files ?? [];
388
405
  const limitedFiles = files.length > 8 ? files.slice(0, 8) : files;
@@ -390,10 +407,13 @@ async function resolveSlackMedia(params) {
390
407
  const refreshFileUrl = (file) => fetchFreshSlackFileUrl({
391
408
  file,
392
409
  client: params.client,
393
- isRefreshedFileAllowed: params.isRefreshedFileAllowed
410
+ isRefreshedFileAllowed: params.isRefreshedFileAllowed,
411
+ assertCurrent: params.assertCurrent,
412
+ abortSignal: params.abortSignal
394
413
  });
395
- const { results } = await runTasksWithConcurrency({
414
+ const { results, hasError, firstError } = await runTasksWithConcurrency({
396
415
  tasks: limitedFiles.map((file) => async () => {
416
+ assertCurrent?.();
397
417
  const preloaded = params.preloadedMedia?.get(file);
398
418
  if (preloaded) return preloaded;
399
419
  const eventUrl = file.url_private_download ?? file.url_private;
@@ -410,6 +430,7 @@ async function resolveSlackMedia(params) {
410
430
  } catch (error) {
411
431
  reason = formatSlackMediaFailure(error);
412
432
  }
433
+ assertCurrent?.();
413
434
  url = attempt === 0 && eventUrl ? await refreshFileUrl(file) : null;
414
435
  }
415
436
  params.unavailableFiles?.set(file, reason);
@@ -417,9 +438,9 @@ async function resolveSlackMedia(params) {
417
438
  return null;
418
439
  }),
419
440
  limit: MAX_SLACK_MEDIA_CONCURRENCY,
420
- errorMode: "stop",
421
- throwOnError: true
441
+ errorMode: "stop"
422
442
  });
443
+ if (hasError) throw toErrorObject(firstError, "Slack media read failed");
423
444
  const resolved = results.filter((result) => result !== null);
424
445
  return resolved.length > 0 ? resolved : null;
425
446
  }
@@ -456,47 +477,57 @@ async function resolveSlackAttachmentContent(params) {
456
477
  return selected ? [selected] : [];
457
478
  })
458
479
  });
459
- const directMediaPromise = resolveFiles(params.files);
460
480
  const textBlocks = [];
461
- const attachmentMedia = [];
462
481
  let unavailableMediaCount = 0;
463
482
  const govSlack = isGovSlackClient(params.client);
464
- for (const att of forwardedAttachments) {
465
- const text = att.text?.trim() || att.fallback?.trim();
466
- if (text) {
467
- const author = att.author_name;
468
- const heading = author ? `[Forwarded message from ${author}]` : "[Forwarded message]";
469
- textBlocks.push(`${heading}\n${text}`);
470
- }
471
- const imageUrl = resolveForwardedAttachmentImageUrl(att, govSlack);
472
- if (imageUrl) try {
473
- const { url: slackUrl, requestInit } = createSlackMediaRequest(imageUrl, params.token, govSlack);
474
- const saved = await saveSlackMedia({
475
- options: {
476
- url: slackUrl,
477
- fetchImpl: createSlackMediaFetch(govSlack),
478
- requestInit,
479
- maxBytes: params.maxBytes,
480
- ssrfPolicy: govSlack ? SLACK_GOV_MEDIA_SSRF_POLICY : SLACK_MEDIA_SSRF_POLICY
481
- },
482
- readIdleTimeoutMs: params.readIdleTimeoutMs,
483
- totalTimeoutMs: params.totalTimeoutMs ?? SLACK_MEDIA_TOTAL_TIMEOUT_MS,
484
- abortSignal: params.abortSignal
485
- });
486
- const label = saved.fileName ?? "forwarded image";
487
- attachmentMedia.push({
488
- path: saved.path,
489
- contentType: saved.contentType,
490
- ...saved.fileName ? { fileName: saved.fileName } : {},
491
- placeholder: `[Forwarded image: ${label}]`
492
- });
493
- } catch (error) {
494
- unavailableMediaCount += 1;
495
- slackMediaLog.warn(`slack: forwarded image unavailable (${formatSlackMediaFailure(error)})`);
496
- }
497
- attachmentMedia.push(...await resolveFiles(att.files) ?? []);
498
- }
499
- const allMedia = [...await directMediaPromise ?? [], ...attachmentMedia];
483
+ const { results, hasError, firstError } = await runTasksWithConcurrency({
484
+ tasks: [() => resolveFiles(params.files), async () => {
485
+ const attachmentMedia = [];
486
+ for (const att of forwardedAttachments) {
487
+ const text = att.text?.trim() || att.fallback?.trim();
488
+ if (text) {
489
+ const author = att.author_name;
490
+ const heading = author ? `[Forwarded message from ${author}]` : "[Forwarded message]";
491
+ textBlocks.push(`${heading}\n${text}`);
492
+ }
493
+ const imageUrl = resolveForwardedAttachmentImageUrl(att, govSlack);
494
+ if (imageUrl) try {
495
+ const { url: slackUrl, requestInit } = createSlackMediaRequest(imageUrl, params.token, govSlack);
496
+ const assertReadAuthority = captureSlackMediaReadGuard(params);
497
+ const saved = await saveSlackMedia({
498
+ options: {
499
+ url: slackUrl,
500
+ fetchImpl: createSlackMediaFetch(govSlack, assertReadAuthority),
501
+ beforeRequest: assertReadAuthority,
502
+ assertCurrent: params.assertCurrent,
503
+ requestInit,
504
+ maxBytes: params.maxBytes,
505
+ ssrfPolicy: govSlack ? SLACK_GOV_MEDIA_SSRF_POLICY : SLACK_MEDIA_SSRF_POLICY
506
+ },
507
+ readIdleTimeoutMs: params.readIdleTimeoutMs,
508
+ totalTimeoutMs: params.totalTimeoutMs ?? SLACK_MEDIA_TOTAL_TIMEOUT_MS,
509
+ abortSignal: params.abortSignal
510
+ });
511
+ const label = saved.fileName ?? "forwarded image";
512
+ attachmentMedia.push({
513
+ path: saved.path,
514
+ contentType: saved.contentType,
515
+ ...saved.fileName ? { fileName: saved.fileName } : {},
516
+ placeholder: `[Forwarded image: ${label}]`
517
+ });
518
+ } catch (error) {
519
+ unavailableMediaCount += 1;
520
+ slackMediaLog.warn(`slack: forwarded image unavailable (${formatSlackMediaFailure(error)})`);
521
+ }
522
+ attachmentMedia.push(...await resolveFiles(att.files) ?? []);
523
+ }
524
+ return attachmentMedia;
525
+ }],
526
+ limit: 2,
527
+ errorMode: "stop"
528
+ });
529
+ if (hasError) throw toErrorObject(firstError, "Slack attachment read failed");
530
+ const allMedia = results.flatMap((media) => media ?? []);
500
531
  const unavailableFiles = allFiles.flatMap((file, index) => {
501
532
  const reason = index >= 8 ? SLACK_MEDIA_LIMIT_REASON : unavailableFileReasons.get(file);
502
533
  return reason ? [{
@@ -1,9 +1,9 @@
1
- import { E as SLACK_EDIT_TEXT_MAX_BYTES, M as truncateSlackTextByUtf8Bytes, dt as isSlackAnyNativeApprovalClientEnabled, kt as normalizeSlackApproverId, n as setSlackSessionStatus, vt as shouldHandleSlackNativeApprovalRequest } from "./session-status-BhG6pdiH.mjs";
1
+ import { E as SLACK_EDIT_TEXT_MAX_BYTES, M as truncateSlackTextByUtf8Bytes, dt as isSlackAnyNativeApprovalClientEnabled, kt as normalizeSlackApproverId, n as setSlackSessionStatus, vt as shouldHandleSlackNativeApprovalRequest } from "./session-status-Cf7AvWOt.mjs";
2
2
  import { a as parseSlackTarget } from "./target-parsing-DEsPjngB.mjs";
3
- import { h as getSlackListenerWriteClient } from "./probe-64C6k3_Q.mjs";
4
- import { g as SLACK_APPROVAL_HEADER_BLOCK_ID, s as resolveSlackReplyBlocks } from "./reply-blocks-9uCeAJts.mjs";
5
- import { r as sendMessageSlack } from "./send-6GCb3lBP.mjs";
6
- import { n as runSlackApprovalMessageUpdate } from "./approval-message-updates-Cy1cxfBn.mjs";
3
+ import { h as getSlackListenerWriteClient } from "./probe-DiYIMPJo.mjs";
4
+ import { g as SLACK_APPROVAL_HEADER_BLOCK_ID, s as resolveSlackReplyBlocks } from "./reply-blocks-Bm8kf6mK.mjs";
5
+ import { r as sendMessageSlack } from "./send-Cp6omkOg.mjs";
6
+ import { n as runSlackApprovalMessageUpdate } from "./approval-message-updates-Tb_qRokK.mjs";
7
7
  import { normalizeOptionalString } from "openclaw/plugin-sdk/string-coerce-runtime";
8
8
  import { truncateUtf16Safe } from "openclaw/plugin-sdk/text-utility-runtime";
9
9
  import { buildChannelApprovalNativeTargetKey } from "openclaw/plugin-sdk/approval-native-runtime";
@@ -1,5 +1,5 @@
1
- import { U as isSlackApprovalActionId } from "./session-status-BhG6pdiH.mjs";
2
- import { _ as decodeSlackApprovalAction } from "./reply-blocks-9uCeAJts.mjs";
1
+ import { U as isSlackApprovalActionId } from "./session-status-Cf7AvWOt.mjs";
2
+ import { _ as decodeSlackApprovalAction } from "./reply-blocks-Bm8kf6mK.mjs";
3
3
  import { asOptionalRecord } from "openclaw/plugin-sdk/string-coerce-runtime";
4
4
  import { KeyedAsyncQueue } from "openclaw/plugin-sdk/keyed-async-queue";
5
5
  //#region extensions/slack/src/approval-message-updates.ts
@@ -1,20 +1,21 @@
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";
2
+ import { a as resolveDefaultSlackAccountId, o as resolveSlackAccount, r as listSlackAccountIds, s as resolveSlackAccountAllowFrom, t as hasImplicitDefaultSlackAccount, u as resolveSlackOperationToken } from "./accounts-BBHvg0pY.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-Cf7AvWOt.mjs";
4
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
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";
6
+ import { g as getSlackWriteClient, l as createSlackLookupClient, o as formatSlackError, s as collectSlackCursorPages } from "./probe-DiYIMPJo.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-Bm8kf6mK.mjs";
8
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";
9
+ import { n as extractSlackToolSend, t as describeSlackMessageTool } from "./message-tool-api-C0PTFaNV.mjs";
10
+ import { a as PAIRING_APPROVED_MESSAGE, i as DEFAULT_ACCOUNT_ID$2, n as slackConfigAdapter, o as projectCredentialSnapshotFields, r as slackSecurityAdapter, s as resolveConfiguredFromRequiredCredentialStatuses, t as createSlackPluginBase } from "./shared-CJ3arAFL.mjs";
11
+ import { n as resolveSlackChannelType, r as resolveSlackConversationInfo } from "./channel-type-Dxk8VJUb.mjs";
12
12
  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";
13
+ import { a as slackSetupContract, i as createSlackSetupWizardProxy, o as SLACK_CHANNEL } from "./channel.setup-BVoUtdPn.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";
@@ -143,7 +144,7 @@ const baseSlackApprovalCapability = createApproverRestrictedNativeApprovalCapabi
143
144
  approvalKind,
144
145
  request
145
146
  }),
146
- load: async () => (await import("./approval-handler.runtime-BcZNF-VP.mjs")).slackApprovalNativeRuntime
147
+ load: async () => (await import("./approval-handler.runtime-DMszKn_7.mjs")).slackApprovalNativeRuntime
147
148
  })
148
149
  });
149
150
  const baseSlackNativeAdapter = baseSlackApprovalCapability.native;
@@ -363,8 +364,8 @@ async function handleSlackMessageAction(params) {
363
364
  }, cfg, ctx.toolContext);
364
365
  }
365
366
  if (action === "member-info") {
366
- const requesterAccountId = ctx.requesterAccountId ? normalizeAccountId(ctx.requesterAccountId) : void 0;
367
- const targetAccountId = normalizeAccountId(accountId ?? resolveDefaultSlackAccountId(cfg));
367
+ const requesterAccountId = ctx.requesterAccountId ? normalizeAccountId$1(ctx.requesterAccountId) : void 0;
368
+ const targetAccountId = normalizeAccountId$1(accountId ?? resolveDefaultSlackAccountId(cfg));
368
369
  const requesterUserId = normalizeOptionalLowercaseString(ctx.toolContext?.currentChannelProvider) === "slack" && requesterAccountId !== void 0 && requesterAccountId === targetAccountId ? normalizeOptionalString(ctx.requesterSenderId) : void 0;
369
370
  const userId = readStringParam$1(actionParams, "userId") ?? requesterUserId;
370
371
  if (!userId) throw new Error("member-info requires a userId outside a current Slack conversation.");
@@ -427,7 +428,7 @@ const SLACK_TOOL_DELIVERY_ACTIONS = /* @__PURE__ */ new Set([
427
428
  "unpinMessage",
428
429
  "uploadFile"
429
430
  ]);
430
- const loadSlackActionRuntime$1 = createLazyRuntimeModule(() => import("./action-runtime.runtime-DwH3NdpT.mjs"));
431
+ const loadSlackActionRuntime$1 = createLazyRuntimeModule(() => import("./action-runtime.runtime-C8R8CUan.mjs"));
431
432
  function resolveSlackActionContext(ctx, toolContext) {
432
433
  if (!toolContext && !ctx.mediaAccess && !ctx.mediaLocalRoots && !ctx.mediaReadFile && !ctx.conversationReadOrigin && !ctx.requesterAccountId && !ctx.requesterSenderId && !ctx.assertDirectAdapterHandoff) return;
433
434
  return {
@@ -492,7 +493,10 @@ function shouldUseWorkspaceAwareSlackActionSend(rawTarget, context) {
492
493
  //#endregion
493
494
  //#region extensions/slack/src/conversation-route-owner.ts
494
495
  function inspectSlackConversationRouteOwner(params) {
495
- const installationKind = getSlackInstallationKind(params.accountId);
496
+ const accountId = normalizeAccountId(params.accountId);
497
+ const accountConfig = resolveAccountEntry(params.cfg.channels?.slack?.accounts, accountId);
498
+ if (params.cfg.channels?.slack?.enabled === false || accountConfig?.enabled === false || !accountConfig && (accountId !== DEFAULT_ACCOUNT_ID || !hasImplicitDefaultSlackAccount(params.cfg))) return null;
499
+ const installationKind = getSlackInstallationKind(accountId);
496
500
  const direct = params.conversation.kind === "direct";
497
501
  const target = parseSlackTarget(params.conversation.peerId, { defaultKind: direct ? "user" : "channel" });
498
502
  if (!target || target.kind !== (direct ? "user" : "channel")) return null;
@@ -509,7 +513,7 @@ function inspectSlackConversationRouteOwner(params) {
509
513
  const route = resolveAgentRoute({
510
514
  cfg: normalizeSlackRouteBindingConfig(params.cfg),
511
515
  channel: "slack",
512
- accountId: params.accountId,
516
+ accountId,
513
517
  teamId,
514
518
  peer: {
515
519
  kind: params.conversation.kind,
@@ -524,7 +528,7 @@ function inspectSlackConversationRouteOwner(params) {
524
528
  const bindingRoute = resolveSlackConversationBindingRoute({
525
529
  cfg: params.cfg,
526
530
  route,
527
- accountId: params.accountId,
531
+ accountId,
528
532
  baseConversationId,
529
533
  runtimeBindingThreadId: params.conversation.threadId,
530
534
  bindingsEnabled: !enterpriseRoute,
@@ -604,23 +608,23 @@ const EXTENSION_SHARED_MODULE_ID = "openclaw/plugin-sdk/extension-shared";
604
608
  const TARGET_RESOLVER_RUNTIME_MODULE_ID = "openclaw/plugin-sdk/target-resolver-runtime";
605
609
  const loadExtensionSharedSdk = createLazyRuntimeModule(() => import(EXTENSION_SHARED_MODULE_ID));
606
610
  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"));
611
+ const loadSlackSetupSurfaceModule = createLazyRuntimeModule(() => import("./setup-surface-D3DLcCxu.mjs"));
612
+ const loadSlackScopesModule = createLazyRuntimeModule(() => import("./scopes-h3YB-mMs.mjs"));
613
+ const loadSlackOutboundAdapterModule = createLazyRuntimeModule(() => import("./outbound-adapter-A7Wdn8ZT.mjs"));
610
614
  async function resolveSlackHandleAction() {
611
615
  return getOptionalSlackRuntime()?.channel?.slack?.handleSlackAction ?? (await loadSlackActionRuntime()).handleSlackAction;
612
616
  }
613
617
  function shouldTreatSlackDeliveredTextAsVisible(params) {
614
618
  return params.kind === "block" && typeof params.text === "string" && params.text.trim().length > 0;
615
619
  }
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));
620
+ const loadSlackDirectoryConfigModule = createLazyRuntimeModule(() => import("./directory-config-CQTSH45W.mjs").then((n) => n.t));
621
+ const loadSlackResolveChannelsModule = createLazyRuntimeModule(() => import("./resolve-channels-BXbMBbJD.mjs").then((n) => n.n));
622
+ const loadSlackResolveUsersModule = createLazyRuntimeModule(() => import("./resolve-users-65WqvIqD.mjs").then((n) => n.n));
623
+ const loadSlackActionRuntime = createLazyRuntimeModule(() => import("./action-runtime.runtime-C8R8CUan.mjs"));
624
+ const loadSlackSendRuntime = createLazyRuntimeModule(() => import("./send.runtime-B4caZU6T.mjs"));
625
+ const loadSlackProbeModule = createLazyRuntimeModule(() => import("./probe-DiYIMPJo.mjs").then((n) => n.n));
626
+ const loadSlackMonitorModule = createLazyRuntimeModule(() => import("./monitor-_Sht7Dqy.mjs").then((n) => n.t));
627
+ const loadSlackDirectoryLiveModule = createLazyRuntimeModule(() => import("./directory-live-BCcj89QV.mjs").then((n) => n.t));
624
628
  async function setSlackHeartbeatThreadStatus(params) {
625
629
  const threadTs = resolveSlackThreadTsValue({ threadId: params.threadId });
626
630
  const target = parseSlackTarget(params.to, { defaultKind: "channel" });
@@ -1027,7 +1031,7 @@ const slackPlugin = createChatChannelPlugin({
1027
1031
  }
1028
1032
  },
1029
1033
  status: createComputedAccountStatusAdapter({
1030
- defaultRuntime: createDefaultChannelRuntimeState(DEFAULT_ACCOUNT_ID$1),
1034
+ defaultRuntime: createDefaultChannelRuntimeState(DEFAULT_ACCOUNT_ID$2),
1031
1035
  buildChannelSummary: async ({ snapshot }) => {
1032
1036
  const { buildPassiveProbedChannelStatusSummary } = await loadExtensionSharedSdk();
1033
1037
  return buildPassiveProbedChannelStatusSummary(snapshot, snapshot.identity === "user" ? {
@@ -1,7 +1,7 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-D7D4PA-g.mjs";
2
- import { a as resolveSlackAccount, l as resolveSlackOperationToken } from "./accounts-C1FspRF-.mjs";
3
- import { f as assertSlackDetachedTargetAllowed } from "./session-status-BhG6pdiH.mjs";
4
- import { T as normalizeAllowListLower, p as createSlackWebClient, u as createSlackReadClient } from "./probe-64C6k3_Q.mjs";
2
+ import { o as resolveSlackAccount, u as resolveSlackOperationToken } from "./accounts-BBHvg0pY.mjs";
3
+ import { f as assertSlackDetachedTargetAllowed } from "./session-status-Cf7AvWOt.mjs";
4
+ import { T as normalizeAllowListLower, p as createSlackWebClient, u as createSlackReadClient } from "./probe-DiYIMPJo.mjs";
5
5
  import { normalizeLowercaseStringOrEmpty, normalizeOptionalString } from "openclaw/plugin-sdk/string-coerce-runtime";
6
6
  import { createHash } from "node:crypto";
7
7
  import { pruneMapToMaxSize } from "openclaw/plugin-sdk/collection-runtime";
@@ -1,7 +1,7 @@
1
1
  import { r as isSlackSetupAccountConfigured } from "./account-configured-sUohAxZr.mjs";
2
- import { a as resolveSlackAccount, c as resolveSlackConfigAccessorAccount, i as resolveDefaultSlackAccountId, n as listSlackAccountIds } from "./accounts-C1FspRF-.mjs";
3
- import { t as inspectSlackAccount } from "./account-inspect-B86OaUEt.mjs";
4
- import { t as SlackChannelConfigSchema } from "./config-schema-DrY3S7Ee.mjs";
2
+ import { a as resolveDefaultSlackAccountId, l as resolveSlackConfigAccessorAccount, o as resolveSlackAccount, r as listSlackAccountIds } from "./accounts-BBHvg0pY.mjs";
3
+ import { t as inspectSlackAccount } from "./account-inspect-DP1Bcwj4.mjs";
4
+ import { t as SlackChannelConfigSchema } from "./config-schema-CyL279e7.mjs";
5
5
  import { normalizeSecretInputString } from "openclaw/plugin-sdk/secret-input";
6
6
  import { normalizeOptionalString } from "openclaw/plugin-sdk/string-coerce-runtime";
7
7
  import { adaptScopedAccountAccessor, createScopedChannelConfigAdapter } from "openclaw/plugin-sdk/channel-config-helpers";
@@ -549,7 +549,7 @@ const slackBaseConfigAdapter = createScopedChannelConfigAdapter({
549
549
  });
550
550
  //#endregion
551
551
  //#region extensions/slack/src/channel.setup.ts
552
- const slackSetupWizard = createSlackSetupWizardProxy(async () => ({ slackSetupWizard: (await import("./setup-surface-DsE0hsYY.mjs")).slackSetupWizard }));
552
+ const slackSetupWizard = createSlackSetupWizardProxy(async () => ({ slackSetupWizard: (await import("./setup-surface-D3DLcCxu.mjs")).slackSetupWizard }));
553
553
  const slackSetupPlugin = {
554
554
  id: SLACK_CHANNEL,
555
555
  meta: {
@@ -3,7 +3,15 @@ import { createChannelConfigUiHints } from "openclaw/plugin-sdk/channel-core";
3
3
  import { ChannelBotLoopProtectionSchema, ChannelDangerouslyAllowNameMatchingSchema, ChannelImplicitMentionsSchema, ChannelPreviewStreamingConfigSchema, ChannelStreamingProgressSchema, ProviderCommandsSchema, ReplyToModeSchema, buildChannelAccountSchemaParts, buildChannelAllowBotsSchema, buildChannelConfigSchema, buildChannelExecApprovalsSchema, buildChannelReactionShape, buildGroupEntrySchema, refineChannelDmPolicy } from "openclaw/plugin-sdk/channel-config-schema";
4
4
  import { z } from "zod";
5
5
  //#region extensions/slack/src/config-ui-hints.ts
6
+ const observedGroupHistoryHint = { help: "Automatic observed-message context uses a default of 50 and a maximum of 200 messages; 0 disables automatic injection. The JSON integer maximum selects the 50-message default. Session transcript trimming separately counts user turns, where 0 means no trimming. The observed-message cap does not rewrite saved values." };
7
+ const observedDmHistoryHint = { help: "Automatic observed-DM context uses a default of 0 and a maximum of 200 messages; 0 disables that extra context. The JSON integer maximum selects the 0-message default. Session transcript trimming separately counts user turns, where 0 means no trimming. The observed-message cap does not rewrite saved values." };
6
8
  const slackChannelConfigUiHints = {
9
+ historyLimit: observedGroupHistoryHint,
10
+ "accounts.*.historyLimit": observedGroupHistoryHint,
11
+ dmHistoryLimit: observedDmHistoryHint,
12
+ "accounts.*.dmHistoryLimit": observedDmHistoryHint,
13
+ "dms.*.historyLimit": observedDmHistoryHint,
14
+ "accounts.*.dms.*.historyLimit": observedDmHistoryHint,
7
15
  "": {
8
16
  label: "Slack",
9
17
  help: "Slack channel provider configuration for bot/app tokens, streaming behavior, and DM policy controls. Keep token handling and thread behavior explicit to avoid noisy workspace interactions."
@@ -1,5 +1,5 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-D7D4PA-g.mjs";
2
- import { i as resolveDefaultSlackAccountId, o as resolveSlackAccountAllowFrom, r as mergeSlackAccountConfig } from "./accounts-C1FspRF-.mjs";
2
+ import { a as resolveDefaultSlackAccountId, i as mergeSlackAccountConfig, s as resolveSlackAccountAllowFrom } from "./accounts-BBHvg0pY.mjs";
3
3
  import { a as parseSlackTarget } from "./target-parsing-DEsPjngB.mjs";
4
4
  import "./targets-Cku2KCvg.mjs";
5
5
  import { normalizeAccountId } from "openclaw/plugin-sdk/account-resolution";
@@ -1,6 +1,6 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-D7D4PA-g.mjs";
2
- import { a as resolveSlackAccount } from "./accounts-C1FspRF-.mjs";
3
- import { c as fetchSlackChannelListPage, l as createSlackLookupClient, s as collectSlackCursorPages } from "./probe-64C6k3_Q.mjs";
2
+ import { o as resolveSlackAccount } from "./accounts-BBHvg0pY.mjs";
3
+ import { c as fetchSlackChannelListPage, l as createSlackLookupClient, s as collectSlackCursorPages } from "./probe-DiYIMPJo.mjs";
4
4
  import { normalizeLowercaseStringOrEmpty, normalizeOptionalLowercaseString, normalizeOptionalString } from "openclaw/plugin-sdk/string-coerce-runtime";
5
5
  //#region extensions/slack/src/directory-live.ts
6
6
  var directory_live_exports = /* @__PURE__ */ __exportAll({
@@ -1,5 +1,5 @@
1
- import { n as listSlackAccountIds } from "./accounts-C1FspRF-.mjs";
2
- import { t as inspectSlackAccount } from "./account-inspect-B86OaUEt.mjs";
1
+ import { r as listSlackAccountIds } from "./accounts-BBHvg0pY.mjs";
2
+ import { t as inspectSlackAccount } from "./account-inspect-DP1Bcwj4.mjs";
3
3
  import { r as resolveSlackThreadTsValue, t as normalizeSlackThreadTsCandidate } from "./thread-ts-CukseRVL.mjs";
4
4
  import { createActionGate } from "openclaw/plugin-sdk/channel-actions";
5
5
  import { extractToolSend } from "openclaw/plugin-sdk/tool-send";
@@ -1,7 +1,7 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-D7D4PA-g.mjs";
2
- import { P as buildSlackSlashCommandMatcher, t as monitorSlackProvider } from "./provider-w36VTgZ3.mjs";
3
- import { t as isSlackChannelAllowedByPolicy } from "./policy-Db_QWCZZ.mjs";
4
- import { a as resolveSlackThreadTs } from "./replies-CWFhjS9S.mjs";
2
+ import { P as buildSlackSlashCommandMatcher, t as monitorSlackProvider } from "./provider-C-jPaGt2.mjs";
3
+ import { t as isSlackChannelAllowedByPolicy } from "./policy-BApW53pI.mjs";
4
+ import { a as resolveSlackThreadTs } from "./replies-BBAJxUOQ.mjs";
5
5
  //#region extensions/slack/src/monitor.ts
6
6
  var monitor_exports = /* @__PURE__ */ __exportAll({
7
7
  buildSlackSlashCommandMatcher: () => buildSlackSlashCommandMatcher,