@openclaw/slack 2026.8.1-beta.3 → 2026.8.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (237) hide show
  1. package/dist/account-configured-sUohAxZr.js +33 -0
  2. package/dist/account-inspect-CN2hBsim.js +87 -0
  3. package/dist/account-inspect-api.js +1 -1
  4. package/dist/{accounts-BlzxuYle.js → accounts-Dm_H77gH.js} +7 -10
  5. package/dist/{accounts.runtime-CbabBL8x.js → accounts.runtime-DRuEK6mL.js} +1 -1
  6. package/dist/{action-runtime-D6jg2CQd.js → action-runtime-044ldvNL.js} +53 -48
  7. package/dist/action-runtime.runtime-BL3KzX13.js +2 -0
  8. package/dist/{actions-DFk0ANVB.js → actions-BI7JkfVm.js} +266 -96
  9. package/dist/api.js +12 -12
  10. package/dist/{approval-handler.runtime-BNvAoKdK.js → approval-handler.runtime-DYv0UIZS.js} +53 -176
  11. package/dist/{channel-CA5w7qDF.js → channel-1vIJOzPx.js} +77 -142
  12. package/dist/channel-config-api.js +1 -1
  13. package/dist/channel-plugin-api.js +1 -1
  14. package/dist/{channel-type-CZWv55Wu.js → channel-type-DlFSKeIZ.js} +3 -3
  15. package/dist/{channel.setup-CpyYsEXH.js → channel.setup-ofDi3_Pu.js} +34 -49
  16. package/dist/{config-schema-CN3XZRX5.js → config-schema-BVIMyiDN.js} +19 -12
  17. package/dist/configured-state.js +34 -0
  18. package/dist/{directory-config-BGYyuzWh.js → directory-config-DqfQ42OV.js} +1 -1
  19. package/dist/directory-contract-api.js +1 -1
  20. package/dist/{directory-live-DjUJQLbq.js → directory-live-BPaNHjmP.js} +2 -2
  21. package/dist/{group-policy-DyfB_ZIE.js → group-policy-BdwszjYn.js} +581 -743
  22. package/dist/{message-tool-api-CqMr5Rmc.js → message-tool-api-CJ0kjcg5.js} +23 -5
  23. package/dist/message-tool-api.js +1 -1
  24. package/dist/{monitor-Chrecrb9.js → monitor-Dq5Cmrvp.js} +3 -3
  25. package/dist/{outbound-adapter-DuRqAQXK.js → outbound-adapter-DYaI8ThX.js} +93 -68
  26. package/dist/{pipeline.runtime-Bbfd5VFW.js → pipeline.runtime-Bd22U0ga.js} +128 -160
  27. package/dist/{policy-BKXSxrIS.js → policy-CtQVbde1.js} +2 -1
  28. package/dist/{probe-BVA65leh.js → probe-0usmAb0i.js} +209 -22
  29. package/dist/{provider-CUUiwsg2.js → provider-CN_8hFv2.js} +243 -146
  30. package/dist/{relay-source-mhpMMRG-.js → relay-source-BNGpsdwV.js} +1 -1
  31. package/dist/{replies-SnWyXcsL.js → replies-BSiRQOJ1.js} +15 -5
  32. package/dist/{resolve-channels-BSpqC8jU.js → resolve-channels-Czheznc8.js} +1 -1
  33. package/dist/{resolve-users-Dvz9pDe0.js → resolve-users-BAOlNimr.js} +1 -1
  34. package/dist/runtime-api.js +11 -11
  35. package/dist/{scopes-BSk4GZvZ.js → scopes-COSlmhnH.js} +1 -1
  36. package/dist/{send-CtnOxKCc.js → send-DS9ICrBI.js} +39 -31
  37. package/dist/send-results-eeOu_HYm.js +23 -0
  38. package/dist/{send.runtime-kYctMHSd.js → send.runtime-D_Bb6IuH.js} +1 -1
  39. package/dist/setup-plugin-api.js +1 -1
  40. package/dist/{setup-surface-BPFfp6So.js → setup-surface-BGnd2pSe.js} +6 -6
  41. package/dist/{shared-DJBaslN7.js → shared-D5B-5hBg.js} +26 -6
  42. package/dist/{slash-dispatch.runtime-Cf2FTrnf.js → slash-dispatch.runtime-CilDmI0c.js} +3 -3
  43. package/node_modules/@slack/bolt/node_modules/@types/node/README.md +1 -1
  44. package/node_modules/@slack/bolt/node_modules/@types/node/child_process.d.ts +0 -1
  45. package/node_modules/@slack/bolt/node_modules/@types/node/crypto.d.ts +6 -6
  46. package/node_modules/@slack/bolt/node_modules/@types/node/dns/promises.d.ts +5 -5
  47. package/node_modules/@slack/bolt/node_modules/@types/node/dns.d.ts +5 -5
  48. package/node_modules/@slack/bolt/node_modules/@types/node/fs.d.ts +7 -0
  49. package/node_modules/@slack/bolt/node_modules/@types/node/http.d.ts +30 -0
  50. package/node_modules/@slack/bolt/node_modules/@types/node/http2.d.ts +4 -4
  51. package/node_modules/@slack/bolt/node_modules/@types/node/os.d.ts +30 -30
  52. package/node_modules/@slack/bolt/node_modules/@types/node/package.json +2 -2
  53. package/node_modules/@slack/bolt/node_modules/@types/node/perf_hooks.d.ts +2 -1
  54. package/node_modules/@slack/bolt/node_modules/@types/node/process.d.ts +42 -43
  55. package/node_modules/@slack/bolt/node_modules/@types/node/quic.d.ts +1049 -84
  56. package/node_modules/@slack/bolt/node_modules/@types/node/sqlite.d.ts +14 -1
  57. package/node_modules/@slack/bolt/node_modules/@types/node/stream/iter.d.ts +3 -2
  58. package/node_modules/@slack/bolt/node_modules/@types/node/test.d.ts +61 -0
  59. package/node_modules/@slack/bolt/node_modules/@types/node/v8.d.ts +20 -23
  60. package/node_modules/@slack/bolt/node_modules/body-parser/node_modules/content-type/README.md +2 -0
  61. package/node_modules/@slack/bolt/node_modules/body-parser/node_modules/content-type/dist/index.d.ts +20 -0
  62. package/node_modules/@slack/bolt/node_modules/body-parser/node_modules/content-type/dist/index.js +20 -14
  63. package/node_modules/@slack/bolt/node_modules/body-parser/node_modules/content-type/dist/index.js.map +1 -1
  64. package/node_modules/@slack/bolt/node_modules/body-parser/node_modules/content-type/package.json +1 -1
  65. package/node_modules/@slack/bolt/node_modules/type-is/node_modules/content-type/README.md +2 -0
  66. package/node_modules/@slack/bolt/node_modules/type-is/node_modules/content-type/dist/index.d.ts +20 -0
  67. package/node_modules/@slack/bolt/node_modules/type-is/node_modules/content-type/dist/index.js +20 -14
  68. package/node_modules/@slack/bolt/node_modules/type-is/node_modules/content-type/dist/index.js.map +1 -1
  69. package/node_modules/@slack/bolt/node_modules/type-is/node_modules/content-type/package.json +1 -1
  70. package/node_modules/@slack/socket-mode/node_modules/@types/node/README.md +1 -1
  71. package/node_modules/@slack/socket-mode/node_modules/@types/node/child_process.d.ts +0 -1
  72. package/node_modules/@slack/socket-mode/node_modules/@types/node/crypto.d.ts +6 -6
  73. package/node_modules/@slack/socket-mode/node_modules/@types/node/dns/promises.d.ts +5 -5
  74. package/node_modules/@slack/socket-mode/node_modules/@types/node/dns.d.ts +5 -5
  75. package/node_modules/@slack/socket-mode/node_modules/@types/node/fs.d.ts +7 -0
  76. package/node_modules/@slack/socket-mode/node_modules/@types/node/http.d.ts +30 -0
  77. package/node_modules/@slack/socket-mode/node_modules/@types/node/http2.d.ts +4 -4
  78. package/node_modules/@slack/socket-mode/node_modules/@types/node/os.d.ts +30 -30
  79. package/node_modules/@slack/socket-mode/node_modules/@types/node/package.json +2 -2
  80. package/node_modules/@slack/socket-mode/node_modules/@types/node/perf_hooks.d.ts +2 -1
  81. package/node_modules/@slack/socket-mode/node_modules/@types/node/process.d.ts +42 -43
  82. package/node_modules/@slack/socket-mode/node_modules/@types/node/quic.d.ts +1049 -84
  83. package/node_modules/@slack/socket-mode/node_modules/@types/node/sqlite.d.ts +14 -1
  84. package/node_modules/@slack/socket-mode/node_modules/@types/node/stream/iter.d.ts +3 -2
  85. package/node_modules/@slack/socket-mode/node_modules/@types/node/test.d.ts +61 -0
  86. package/node_modules/@slack/socket-mode/node_modules/@types/node/v8.d.ts +20 -23
  87. package/node_modules/@slack/web-api/node_modules/@types/node/README.md +1 -1
  88. package/node_modules/@slack/web-api/node_modules/@types/node/child_process.d.ts +0 -1
  89. package/node_modules/@slack/web-api/node_modules/@types/node/crypto.d.ts +6 -6
  90. package/node_modules/@slack/web-api/node_modules/@types/node/dns/promises.d.ts +5 -5
  91. package/node_modules/@slack/web-api/node_modules/@types/node/dns.d.ts +5 -5
  92. package/node_modules/@slack/web-api/node_modules/@types/node/fs.d.ts +7 -0
  93. package/node_modules/@slack/web-api/node_modules/@types/node/http.d.ts +30 -0
  94. package/node_modules/@slack/web-api/node_modules/@types/node/http2.d.ts +4 -4
  95. package/node_modules/@slack/web-api/node_modules/@types/node/os.d.ts +30 -30
  96. package/node_modules/@slack/web-api/node_modules/@types/node/package.json +2 -2
  97. package/node_modules/@slack/web-api/node_modules/@types/node/perf_hooks.d.ts +2 -1
  98. package/node_modules/@slack/web-api/node_modules/@types/node/process.d.ts +42 -43
  99. package/node_modules/@slack/web-api/node_modules/@types/node/quic.d.ts +1049 -84
  100. package/node_modules/@slack/web-api/node_modules/@types/node/sqlite.d.ts +14 -1
  101. package/node_modules/@slack/web-api/node_modules/@types/node/stream/iter.d.ts +3 -2
  102. package/node_modules/@slack/web-api/node_modules/@types/node/test.d.ts +61 -0
  103. package/node_modules/@slack/web-api/node_modules/@types/node/v8.d.ts +20 -23
  104. package/node_modules/typebox/build/format/date.d.mts +1 -1
  105. package/node_modules/typebox/build/format/date.mjs +1 -1
  106. package/node_modules/typebox/build/format/date_time.d.mts +2 -2
  107. package/node_modules/typebox/build/format/date_time.mjs +3 -3
  108. package/node_modules/typebox/build/format/email.d.mts +1 -1
  109. package/node_modules/typebox/build/format/email.mjs +2 -2
  110. package/node_modules/typebox/build/format/hostname.mjs +2 -10
  111. package/node_modules/typebox/build/format/idn_email.d.mts +1 -1
  112. package/node_modules/typebox/build/format/idn_email.mjs +3 -3
  113. package/node_modules/typebox/build/format/idn_hostname.d.mts +1 -0
  114. package/node_modules/typebox/build/format/idn_hostname.mjs +3 -11
  115. package/node_modules/typebox/build/format/idna/format/bidi.d.mts +3 -0
  116. package/node_modules/typebox/build/format/idna/format/bidi.mjs +98 -0
  117. package/node_modules/typebox/build/format/idna/format/puny.d.mts +3 -0
  118. package/node_modules/typebox/build/format/idna/format/puny.mjs +144 -0
  119. package/node_modules/typebox/build/format/idna/hostname.d.mts +1 -0
  120. package/node_modules/typebox/build/format/idna/hostname.mjs +16 -0
  121. package/node_modules/typebox/build/format/idna/idn-hostname.d.mts +1 -0
  122. package/node_modules/typebox/build/format/idna/idn-hostname.mjs +23 -0
  123. package/node_modules/typebox/build/format/idna/index.d.mts +2 -0
  124. package/node_modules/typebox/build/format/idna/index.mjs +2 -0
  125. package/node_modules/typebox/build/format/idna/label/ascii.d.mts +1 -0
  126. package/node_modules/typebox/build/format/idna/label/ascii.mjs +9 -0
  127. package/node_modules/typebox/build/format/idna/label/puny.d.mts +1 -0
  128. package/node_modules/typebox/build/format/idna/label/puny.mjs +28 -0
  129. package/node_modules/typebox/build/format/idna/label/unicode.d.mts +1 -0
  130. package/node_modules/typebox/build/format/idna/label/unicode.mjs +106 -0
  131. package/node_modules/typebox/build/format/idna/pattern/pattern.d.mts +30 -0
  132. package/node_modules/typebox/build/format/idna/pattern/pattern.mjs +70 -0
  133. package/node_modules/typebox/build/format/ipv4.d.mts +0 -1
  134. package/node_modules/typebox/build/format/ipv4.mjs +2 -32
  135. package/node_modules/typebox/build/format/ipv6.mjs +2 -61
  136. package/node_modules/typebox/build/format/iri.d.mts +2 -2
  137. package/node_modules/typebox/build/format/iri.mjs +26 -8
  138. package/node_modules/typebox/build/format/iri_reference.d.mts +2 -2
  139. package/node_modules/typebox/build/format/iri_reference.mjs +9 -55
  140. package/node_modules/typebox/build/format/regex.d.mts +1 -2
  141. package/node_modules/typebox/build/format/regex.mjs +2 -6
  142. package/node_modules/typebox/build/format/time.d.mts +2 -2
  143. package/node_modules/typebox/build/format/time.mjs +19 -14
  144. package/node_modules/typebox/build/format/uri.d.mts +1 -1
  145. package/node_modules/typebox/build/format/uri.mjs +3 -130
  146. package/node_modules/typebox/build/format/uri_reference.d.mts +1 -1
  147. package/node_modules/typebox/build/format/uri_reference.mjs +2 -3
  148. package/node_modules/typebox/build/format/uri_template.d.mts +2 -3
  149. package/node_modules/typebox/build/format/uri_template.mjs +4 -5
  150. package/node_modules/typebox/build/format/url.d.mts +3 -3
  151. package/node_modules/typebox/build/format/url.mjs +4 -5
  152. package/node_modules/typebox/build/guard/emit.d.mts +3 -1
  153. package/node_modules/typebox/build/guard/emit.mjs +12 -5
  154. package/node_modules/typebox/build/guard/guard.d.mts +8 -2
  155. package/node_modules/typebox/build/guard/guard.mjs +25 -4
  156. package/node_modules/typebox/build/guard/string.d.mts +2 -2
  157. package/node_modules/typebox/build/guard/string.mjs +7 -7
  158. package/node_modules/typebox/build/schema/engine/_context.mjs +3 -3
  159. package/node_modules/typebox/build/schema/engine/_functions.mjs +1 -2
  160. package/node_modules/typebox/build/schema/engine/_regexp.d.mts +2 -0
  161. package/node_modules/typebox/build/schema/engine/_regexp.mjs +4 -0
  162. package/node_modules/typebox/build/schema/engine/_stack.mjs +12 -13
  163. package/node_modules/typebox/build/schema/engine/additionalItems.mjs +17 -7
  164. package/node_modules/typebox/build/schema/engine/additionalProperties.mjs +4 -3
  165. package/node_modules/typebox/build/schema/engine/contains.mjs +18 -6
  166. package/node_modules/typebox/build/schema/engine/enum.mjs +1 -1
  167. package/node_modules/typebox/build/schema/engine/items.mjs +26 -6
  168. package/node_modules/typebox/build/schema/engine/maxContains.mjs +3 -3
  169. package/node_modules/typebox/build/schema/engine/minContains.mjs +14 -4
  170. package/node_modules/typebox/build/schema/engine/not.mjs +4 -2
  171. package/node_modules/typebox/build/schema/engine/oneOf.mjs +7 -6
  172. package/node_modules/typebox/build/schema/engine/pattern.mjs +3 -2
  173. package/node_modules/typebox/build/schema/engine/patternProperties.mjs +4 -3
  174. package/node_modules/typebox/build/schema/engine/ref.mjs +1 -7
  175. package/node_modules/typebox/build/schema/engine/schema.mjs +13 -4
  176. package/node_modules/typebox/build/schema/engine/type.mjs +1 -1
  177. package/node_modules/typebox/build/schema/resolve/resolve.d.mts +4 -1
  178. package/node_modules/typebox/build/schema/resolve/resolve.mjs +202 -1
  179. package/node_modules/typebox/build/schema/static/propertyNames.d.mts +5 -0
  180. package/node_modules/typebox/build/schema/static/propertyNames.mjs +3 -0
  181. package/node_modules/typebox/build/schema/static/schema.d.mts +3 -0
  182. package/node_modules/typebox/build/schema/types/index.d.mts +0 -2
  183. package/node_modules/typebox/build/schema/types/index.mjs +0 -2
  184. package/node_modules/typebox/build/system/memory/clone.mjs +14 -11
  185. package/node_modules/typebox/build/system/memory/discard.mjs +6 -5
  186. package/node_modules/typebox/build/system/settings/settings.d.mts +9 -0
  187. package/node_modules/typebox/build/system/settings/settings.mjs +2 -0
  188. package/node_modules/typebox/build/type/engine/call/distribute_arguments.d.mts +6 -1
  189. package/node_modules/typebox/build/type/engine/call/distribute_arguments.mjs +16 -3
  190. package/node_modules/typebox/build/type/engine/call/instantiate.mjs +34 -4
  191. package/node_modules/typebox/build/type/engine/evaluate/broaden.d.mts +5 -5
  192. package/node_modules/typebox/build/type/engine/evaluate/broaden.mjs +20 -26
  193. package/node_modules/typebox/build/type/engine/evaluate/compare.d.mts +6 -10
  194. package/node_modules/typebox/build/type/engine/evaluate/compare.mjs +9 -13
  195. package/node_modules/typebox/build/type/engine/evaluate/composite.d.mts +7 -4
  196. package/node_modules/typebox/build/type/engine/evaluate/composite.mjs +12 -19
  197. package/node_modules/typebox/build/type/engine/evaluate/distribute.d.mts +4 -20
  198. package/node_modules/typebox/build/type/engine/evaluate/distribute.mjs +8 -20
  199. package/node_modules/typebox/build/type/engine/evaluate/evaluate.d.mts +4 -4
  200. package/node_modules/typebox/build/type/engine/evaluate/evaluate.mjs +11 -8
  201. package/node_modules/typebox/build/type/engine/evaluate/flatten.d.mts +1 -1
  202. package/node_modules/typebox/build/type/engine/evaluate/flatten.mjs +3 -4
  203. package/node_modules/typebox/build/type/engine/evaluate/narrow.d.mts +17 -2
  204. package/node_modules/typebox/build/type/engine/evaluate/narrow.mjs +26 -6
  205. package/node_modules/typebox/build/type/engine/exclude/operation.mjs +3 -4
  206. package/node_modules/typebox/build/type/engine/extract/operation.d.mts +1 -1
  207. package/node_modules/typebox/build/type/engine/extract/operation.mjs +3 -4
  208. package/node_modules/typebox/build/type/engine/priority/priority.d.mts +2 -2
  209. package/node_modules/typebox/build/type/engine/priority/priority.mjs +3 -4
  210. package/node_modules/typebox/build/type/script/mapping.d.mts +32 -29
  211. package/node_modules/typebox/build/type/script/mapping.mjs +18 -25
  212. package/node_modules/typebox/build/type/script/parser.d.mts +19 -25
  213. package/node_modules/typebox/build/type/script/parser.mjs +27 -23
  214. package/node_modules/typebox/build/value/errors/errors.d.mts +2 -2
  215. package/node_modules/typebox/build/value/errors/errors.mjs +1 -1
  216. package/node_modules/typebox/package.json +27 -27
  217. package/node_modules/typebox/readme.md +79 -82
  218. package/node_modules/ws/lib/permessage-deflate.js +3 -1
  219. package/node_modules/ws/package.json +1 -1
  220. package/openclaw.plugin.json +14 -6
  221. package/package.json +9 -7
  222. package/dist/account-configured-BwfXBo_F.js +0 -14
  223. package/dist/account-inspect-YJvFBbCR.js +0 -89
  224. package/dist/action-runtime.runtime-JtoOK9l5.js +0 -2
  225. package/dist/actions.runtime-CYLsYRai.js +0 -2
  226. package/dist/runtime-api-DBi7xc_g.js +0 -10
  227. package/dist/slack-client-kind-BXyOOICI.js +0 -94
  228. package/node_modules/typebox/build/format/_idna.d.mts +0 -2
  229. package/node_modules/typebox/build/format/_idna.mjs +0 -246
  230. package/node_modules/typebox/build/format/_puny.d.mts +0 -1
  231. package/node_modules/typebox/build/format/_puny.mjs +0 -77
  232. package/node_modules/typebox/build/schema/resolve/ref.d.mts +0 -3
  233. package/node_modules/typebox/build/schema/resolve/ref.mjs +0 -146
  234. package/node_modules/typebox/build/schema/types/contentEncoding.d.mts +0 -9
  235. package/node_modules/typebox/build/schema/types/contentEncoding.mjs +0 -13
  236. package/node_modules/typebox/build/schema/types/contentMediaType.d.mts +0 -9
  237. package/node_modules/typebox/build/schema/types/contentMediaType.mjs +0 -13
@@ -1,32 +1,17 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-8H4AJuhK.js";
2
- import { u as formatSlackBotTokenIdentityWarning } from "./accounts-BlzxuYle.js";
3
- import "./target-parsing-BnMD2ZqZ.js";
2
+ import { u as formatSlackBotTokenIdentityWarning } from "./accounts-Dm_H77gH.js";
3
+ import { a as parseSlackTarget } from "./target-parsing-BnMD2ZqZ.js";
4
4
  import { createRequire } from "node:module";
5
- import { DEFAULT_ACCOUNT_ID as DEFAULT_ACCOUNT_ID$1 } from "openclaw/plugin-sdk/account-id";
6
- import { isRecord } from "openclaw/plugin-sdk/string-coerce-runtime";
5
+ import { isRecord, normalizeOptionalLowercaseString } from "openclaw/plugin-sdk/string-coerce-runtime";
7
6
  import { runChannelProbe } from "openclaw/plugin-sdk/text-utility-runtime";
8
- import { PAIRING_APPROVED_MESSAGE, projectCredentialSnapshotFields, resolveConfiguredFromRequiredCredentialStatuses } from "openclaw/plugin-sdk/channel-status";
9
7
  import { createHash } from "node:crypto";
10
8
  import { WebClient } from "@slack/web-api";
11
9
  import { addActiveManagedProxyTlsOptions, resolveEnvHttpProxyAgentOptions, resolveFetch } from "openclaw/plugin-sdk/fetch-runtime";
12
10
  import { isDebugProxyGlobalFetchPatchInstalled } from "openclaw/plugin-sdk/proxy-capture";
11
+ import { compileAllowlist, resolveCompiledAllowlistMatch } from "openclaw/plugin-sdk/allow-from";
12
+ import { normalizeHyphenSlug, normalizeStringEntries as normalizeStringEntries$1, normalizeStringEntriesLower } from "openclaw/plugin-sdk/string-normalization-runtime";
13
13
  import { redactSensitiveText } from "openclaw/plugin-sdk/logging-core";
14
- //#region extensions/slack/src/channel-api.ts
15
- const SLACK_CHANNEL_META = {
16
- id: "slack",
17
- label: "Slack",
18
- selectionLabel: "Slack",
19
- docsPath: "/channels/slack",
20
- docsLabel: "slack",
21
- blurb: "supports bot + app tokens, channels, threads, and interactive replies.",
22
- systemImage: "number.square",
23
- markdownCapable: true
24
- };
25
- function getChatChannelMeta(id) {
26
- if (id !== SLACK_CHANNEL_META.id) throw new Error(`Unsupported Slack channel meta lookup: ${id}`);
27
- return SLACK_CHANNEL_META;
28
- }
29
- //#endregion
14
+ import { defineStableChannelIngressIdentity } from "openclaw/plugin-sdk/channel-ingress-runtime";
30
15
  //#region extensions/slack/src/client-options.ts
31
16
  const requireFromSlackSocketMode = (() => {
32
17
  return createRequire(createRequire(import.meta.url).resolve("@slack/socket-mode/package.json"));
@@ -194,6 +179,113 @@ function getSlackListenerUploadCompletionClient(params) {
194
179
  return client;
195
180
  }
196
181
  //#endregion
182
+ //#region extensions/slack/src/monitor/allow-list.ts
183
+ const SLACK_SLUG_CACHE_MAX = 512;
184
+ const SLACK_STABLE_USER_ID_RE = /^[ubw][a-z0-9]+$/;
185
+ const slackSlugCache = /* @__PURE__ */ new Map();
186
+ function normalizeSlackSlug(raw) {
187
+ const key = raw ?? "";
188
+ const cached = slackSlugCache.get(key);
189
+ if (cached !== void 0) return cached;
190
+ const normalized = normalizeHyphenSlug(raw);
191
+ slackSlugCache.set(key, normalized);
192
+ if (slackSlugCache.size > SLACK_SLUG_CACHE_MAX) {
193
+ const oldest = slackSlugCache.keys().next();
194
+ if (!oldest.done) slackSlugCache.delete(oldest.value);
195
+ }
196
+ return normalized;
197
+ }
198
+ function normalizeAllowList(list) {
199
+ return normalizeStringEntries$1(list);
200
+ }
201
+ function normalizeAllowListLower(list) {
202
+ return normalizeStringEntriesLower(list);
203
+ }
204
+ function normalizeSlackAllowOwnerEntry(entry) {
205
+ const trimmed = normalizeOptionalLowercaseString(entry);
206
+ if (!trimmed || trimmed === "*") return;
207
+ try {
208
+ const target = parseSlackTarget(trimmed);
209
+ if (target?.kind === "user" && target.teamId) return target.id.toLowerCase();
210
+ } catch {
211
+ return;
212
+ }
213
+ const withoutPrefix = trimmed.replace(/^(slack:|user:)/, "");
214
+ return SLACK_STABLE_USER_ID_RE.test(withoutPrefix) ? withoutPrefix : void 0;
215
+ }
216
+ function resolveSlackAllowListMatch(params) {
217
+ const compiledAllowList = compileAllowlist(params.allowList);
218
+ const teamId = normalizeOptionalLowercaseString(params.teamId);
219
+ const id = normalizeOptionalLowercaseString(params.id);
220
+ const name = normalizeOptionalLowercaseString(params.name);
221
+ const slug = normalizeSlackSlug(name);
222
+ const scopedCandidates = [{
223
+ value: teamId && id ? `team:${teamId}:user:${id}` : void 0,
224
+ source: "workspace-id"
225
+ }];
226
+ const unscopedCandidates = [
227
+ {
228
+ value: id,
229
+ source: "id"
230
+ },
231
+ {
232
+ value: id ? `slack:${id}` : void 0,
233
+ source: "prefixed-id"
234
+ },
235
+ {
236
+ value: id ? `user:${id}` : void 0,
237
+ source: "prefixed-user"
238
+ },
239
+ ...params.allowNameMatching === true ? [
240
+ {
241
+ value: name,
242
+ source: "name"
243
+ },
244
+ {
245
+ value: name ? `slack:${name}` : void 0,
246
+ source: "prefixed-name"
247
+ },
248
+ {
249
+ value: slug,
250
+ source: "slug"
251
+ }
252
+ ] : []
253
+ ];
254
+ return resolveCompiledAllowlistMatch({
255
+ compiledAllowlist: compiledAllowList,
256
+ candidates: [...scopedCandidates, ...unscopedCandidates]
257
+ });
258
+ }
259
+ function allowListMatches(params) {
260
+ return resolveSlackAllowListMatch(params).allowed;
261
+ }
262
+ function resolveSlackUserAllowed(params) {
263
+ const allowList = normalizeAllowListLower(params.allowList);
264
+ if (allowList.length === 0) return true;
265
+ return allowListMatches({
266
+ allowList,
267
+ teamId: params.teamId,
268
+ id: params.userId,
269
+ name: params.userName,
270
+ allowNameMatching: params.allowNameMatching
271
+ });
272
+ }
273
+ function resolveSlackUserAllowListForTeam(params) {
274
+ const allowList = normalizeAllowListLower(params.allowList);
275
+ const teamId = normalizeOptionalLowercaseString(params.teamId);
276
+ return allowList.flatMap((entry) => {
277
+ if (entry === "*") return [entry];
278
+ if (!entry.startsWith("team:")) return [entry];
279
+ try {
280
+ const target = parseSlackTarget(entry);
281
+ if (target?.kind === "user" && target.teamId?.toLowerCase() === teamId) return [entry];
282
+ return params.preserveUnmatchedScopedEntries ? [entry] : [];
283
+ } catch {
284
+ return params.preserveUnmatchedScopedEntries ? [entry] : [];
285
+ }
286
+ });
287
+ }
288
+ //#endregion
197
289
  //#region extensions/slack/src/errors.ts
198
290
  const NO_ERROR_DETAIL = "no error detail";
199
291
  function redact(value) {
@@ -298,6 +390,101 @@ function formatSlackError(error, fallback = NO_ERROR_DETAIL) {
298
390
  return safeStringify(error) ?? fallback;
299
391
  }
300
392
  //#endregion
393
+ //#region extensions/slack/src/monitor/ingress-identity.ts
394
+ const SLACK_USER_NAME_KIND = "plugin:slack-user-name";
395
+ const SLACK_WORKSPACE_USER_ID_KIND = "plugin:slack-workspace-user-id";
396
+ function normalizeSlackUserId(raw) {
397
+ const value = (raw ?? "").trim().toLowerCase();
398
+ if (!value) return "";
399
+ const mention = value.match(/^<@([a-z0-9_]+)>$/i);
400
+ if (mention?.[1]) return mention[1];
401
+ return value.replace(/^(slack:|user:)/, "");
402
+ }
403
+ function isSlackStableUserId(value) {
404
+ return /^[ubw][a-z0-9_]+$/i.test(value);
405
+ }
406
+ function normalizeSlackWorkspaceUserEntry(entry) {
407
+ const normalized = entry.trim().toLowerCase();
408
+ if (!normalized) return null;
409
+ try {
410
+ const target = parseSlackTarget(normalized);
411
+ if (target?.kind === "user" && target.teamId) return target.normalized;
412
+ } catch {
413
+ return null;
414
+ }
415
+ return null;
416
+ }
417
+ function normalizeSlackBareUserEntry(entry) {
418
+ const normalized = entry.trim().toLowerCase();
419
+ if (!normalized || normalizeSlackWorkspaceUserEntry(normalized)) return null;
420
+ const userId = normalizeSlackUserId(normalized);
421
+ return isSlackStableUserId(userId) ? userId : null;
422
+ }
423
+ function normalizeSlackStableEntry(entry) {
424
+ return normalizeSlackBareUserEntry(entry) ?? normalizeSlackWorkspaceUserEntry(entry);
425
+ }
426
+ function normalizeSlackNameEntry(entry) {
427
+ const normalized = entry.trim().toLowerCase();
428
+ if (!normalized || normalizeSlackStableEntry(normalized)) return null;
429
+ return normalized.replace(/^slack:/, "") || null;
430
+ }
431
+ function normalizeSlackNameSubject(value) {
432
+ return value.trim().toLowerCase() || null;
433
+ }
434
+ function normalizeSlackNameSlugEntry(entry) {
435
+ const name = normalizeSlackNameEntry(entry);
436
+ if (!name) return null;
437
+ return normalizeSlackSlug(name) || null;
438
+ }
439
+ const slackIngressIdentity = defineStableChannelIngressIdentity({
440
+ resolveParticipant: (subject) => {
441
+ const qualified = subject.aliases?.workspaceSenderId;
442
+ if (typeof qualified !== "string") return;
443
+ const normalized = normalizeSlackWorkspaceUserEntry(qualified);
444
+ const target = normalized ? parseSlackTarget(normalized) : void 0;
445
+ return target?.teamId ? {
446
+ domain: target.teamId,
447
+ idKind: target.id.startsWith("b") ? "bot-id" : "user-id",
448
+ id: target.id
449
+ } : void 0;
450
+ },
451
+ key: "senderId",
452
+ kind: "stable-id",
453
+ authentication: "asserted",
454
+ normalizeEntry: normalizeSlackBareUserEntry,
455
+ normalizeSubject: normalizeSlackUserId,
456
+ sensitivity: "pii",
457
+ aliases: [{
458
+ key: "workspaceSenderId",
459
+ kind: SLACK_WORKSPACE_USER_ID_KIND,
460
+ authentication: "asserted",
461
+ normalizeEntry: normalizeSlackWorkspaceUserEntry,
462
+ normalizeSubject: normalizeSlackWorkspaceUserEntry,
463
+ sensitivity: "pii"
464
+ }, ...[["senderName", normalizeSlackNameEntry], ["senderNameSlug", normalizeSlackNameSlugEntry]].map(([key, normalizeEntry]) => ({
465
+ key,
466
+ kind: SLACK_USER_NAME_KIND,
467
+ normalizeEntry,
468
+ normalizeSubject: normalizeSlackNameSubject,
469
+ authentication: "mutable",
470
+ sensitivity: "pii"
471
+ }))]
472
+ });
473
+ function createSlackIngressSubject(params) {
474
+ const senderId = normalizeSlackUserId(params.senderId);
475
+ const teamId = normalizeOptionalLowercaseString(params.teamId);
476
+ const senderName = params.senderName?.trim().toLowerCase();
477
+ const senderNameSlug = senderName ? normalizeSlackSlug(senderName) : void 0;
478
+ return {
479
+ stableId: senderId,
480
+ aliases: {
481
+ workspaceSenderId: teamId && senderId ? `team:${teamId}:user:${senderId}` : void 0,
482
+ senderName,
483
+ senderNameSlug
484
+ }
485
+ };
486
+ }
487
+ //#endregion
301
488
  //#region extensions/slack/src/probe.ts
302
489
  var probe_exports = /* @__PURE__ */ __exportAll({ probeSlack: () => probeSlack });
303
490
  async function probeSlack(token, timeoutMs = 2500, opts) {
@@ -362,4 +549,4 @@ async function probeSlack(token, timeoutMs = 2500, opts) {
362
549
  }));
363
550
  }
364
551
  //#endregion
365
- export { resolveConfiguredFromRequiredCredentialStatuses as S, resolveSlackWriteClientOptions as _, createSlackReadClient as a, getChatChannelMeta as b, createSlackWebClient as c, getSlackWriteClient as d, SLACK_DEFAULT_RETRY_OPTIONS as f, resolveSlackWebClientOptions as g, resolveSlackProxyDispatcher as h, createSlackLookupClient as i, createSlackWriteClient as l, resolveSlackLookupClientOptions as m, probe_exports as n, createSlackStartupAuthClient as o, SLACK_WRITE_RETRY_OPTIONS as p, formatSlackError as r, createSlackTokenCacheKey as s, probeSlack as t, getSlackListenerUploadCompletionClient as u, DEFAULT_ACCOUNT_ID$1 as v, projectCredentialSnapshotFields as x, PAIRING_APPROVED_MESSAGE as y };
552
+ export { SLACK_DEFAULT_RETRY_OPTIONS as C, resolveSlackWebClientOptions as D, resolveSlackProxyDispatcher as E, resolveSlackWriteClientOptions as O, getSlackWriteClient as S, resolveSlackLookupClientOptions as T, createSlackStartupAuthClient as _, slackIngressIdentity as a, createSlackWriteClient as b, normalizeAllowList as c, normalizeSlackSlug as d, resolveSlackAllowListMatch as f, createSlackReadClient as g, createSlackLookupClient as h, createSlackIngressSubject as i, normalizeAllowListLower as l, resolveSlackUserAllowed as m, probe_exports as n, formatSlackError as o, resolveSlackUserAllowListForTeam as p, SLACK_USER_NAME_KIND as r, allowListMatches as s, probeSlack as t, normalizeSlackAllowOwnerEntry as u, createSlackTokenCacheKey as v, SLACK_WRITE_RETRY_OPTIONS as w, getSlackListenerUploadCompletionClient as x, createSlackWebClient as y };