@openclaw/slack 2026.10.10-beta.5 → 2026.10.10

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 (136) hide show
  1. package/dist/.setup/{account-configured-zcR9TJJN.mjs → account-configured-35y0-Hso.mjs} +1 -2
  2. package/dist/.setup/{account-inspect-CmkKiSb9.mjs → account-inspect-Bc7TVU8F.mjs} +3 -4
  3. package/dist/.setup/{accounts-msihSF3-.mjs → accounts-CEgdyqoW.mjs} +6 -10
  4. package/dist/.setup/{action-runtime-ChRfnnBu.mjs → action-runtime-DPoxYao5.mjs} +9 -10
  5. package/dist/.setup/action-runtime.runtime-DWKWaKgC.mjs +1 -0
  6. package/dist/.setup/{actions-By7tvpvv.mjs → actions-PF2cP6to.mjs} +14 -22
  7. package/dist/.setup/{approval-handler.runtime-D8ArtDQt.mjs → approval-handler.runtime-BtRklemy.mjs} +7 -8
  8. package/dist/.setup/{approval-message-updates-DT7XBPbV.mjs → approval-message-updates-CpwbsEj6.mjs} +2 -3
  9. package/dist/.setup/{channel-6YzXl_63.mjs → channel-B6bRmYmX.mjs} +32 -39
  10. package/dist/.setup/{channel-meta-C443t-lI.mjs → channel-meta-C5vsCo3a.mjs} +1 -2
  11. package/dist/.setup/{channel-type-BEFP2ORi.mjs → channel-type-Dh4vwh1Y.mjs} +5 -6
  12. package/dist/.setup/{channel.setup-u6QQdbTa.mjs → channel.setup-BBzT6uKA.mjs} +10 -14
  13. package/dist/.setup/{config-schema-DNnh6bWU.mjs → config-schema-Cz3uId-c.mjs} +2 -4
  14. package/dist/.setup/{directory-config-Cjj0N8R0.mjs → directory-config-BEPra1E2.mjs} +5 -6
  15. package/dist/.setup/{directory-live-BIKD-5B_.mjs → directory-live-BkUwPrS0.mjs} +4 -5
  16. package/dist/.setup/{doctor-contract-Cd4-VzIM.mjs → doctor-contract-HK8aedwU.mjs} +7 -13
  17. package/dist/.setup/http-GpAVKwSX.mjs +2 -0
  18. package/dist/.setup/{message-tool-api-BS5ekEA_.mjs → message-tool-api-DeiQJoRV.mjs} +5 -7
  19. package/dist/.setup/{monitor-BFilOuM_.mjs → monitor-DsZUQtTM.mjs} +78 -137
  20. package/dist/.setup/{outbound-adapter-9dbnYtL1.mjs → outbound-adapter-C0R5jz6S.mjs} +8 -9
  21. package/dist/.setup/{pipeline.runtime-BG5swHnj.mjs → pipeline.runtime-CIFVL0kf.mjs} +41 -68
  22. package/dist/.setup/{plugin-routes-D4qozHVn.mjs → plugin-routes-lXsy_bNV.mjs} +2 -3
  23. package/dist/.setup/{policy-yhn48xf5.mjs → policy-Bp1FvE6m.mjs} +4 -6
  24. package/dist/.setup/{probe-IiHogLQN.mjs → probe-C5VWf3sz.mjs} +11 -19
  25. package/dist/.setup/{registry-DizWcnNp.mjs → registry-1G0f1zuZ.mjs} +2 -4
  26. package/dist/.setup/{relay-source-oY9SbDiX.mjs → relay-source-DFBDTA5Z.mjs} +3 -4
  27. package/dist/.setup/{replies-CJwjTqDr.mjs → replies-7DRN46EL.mjs} +7 -9
  28. package/dist/.setup/{reply-blocks-Ca-raz2z.mjs → reply-blocks-DOjiDr44.mjs} +4 -7
  29. package/dist/.setup/{resolve-channels-DRRhElwz.mjs → resolve-channels-BNQ1KZXh.mjs} +4 -5
  30. package/dist/.setup/{resolve-users-Cz8e17ky.mjs → resolve-users-C4dC8Z7D.mjs} +4 -5
  31. package/dist/.setup/{rolldown-runtime-B4FMCO8f.mjs → rolldown-runtime-nwUcYXjP.mjs} +1 -2
  32. package/dist/.setup/{runtime-JSVZSWAj.mjs → runtime-C6HKn7Av.mjs} +1 -2
  33. package/dist/.setup/runtime-setter-api-DrXr965r.mjs +2 -0
  34. package/dist/.setup/{scopes-DfQVi8Jw.mjs → scopes-C1aeCBa6.mjs} +2 -3
  35. package/dist/.setup/{secret-contract-B-Qm6aQQ.mjs → secret-contract-D0UY2JWF.mjs} +1 -2
  36. package/dist/.setup/{secret-contract-api-DB6CMdgc.mjs → secret-contract-api-BhzGpUb0.mjs} +1 -1
  37. package/dist/.setup/{security-audit-DFGiFLqd.mjs → security-audit-C3hXCfDt.mjs} +2 -3
  38. package/dist/.setup/{send-C-8wY0lK.mjs → send-C5uXkmZV.mjs} +14 -21
  39. package/dist/.setup/{send-results-eeOu_HYm.mjs → send-results-D-o6PgtS.mjs} +1 -2
  40. package/dist/.setup/{session-status-Dv8wNBEt.mjs → session-status-CHkEn3HM.mjs} +31 -57
  41. package/dist/.setup/setup-plugin-api-D7DoueEh.mjs +2 -0
  42. package/dist/.setup/{setup-surface-9WVQgYCT.mjs → setup-surface-CtM1pm-9.mjs} +7 -8
  43. package/dist/.setup/{shared-DpHCoKy2.mjs → shared-CohTHxM1.mjs} +14 -18
  44. package/dist/.setup/{slash-dispatch.runtime-v5kQqJPh.mjs → slash-dispatch.runtime-Bnn9a5qB.mjs} +1 -1
  45. package/dist/.setup/{target-parsing-FFE26kOV.mjs → target-parsing-0pRZtahO.mjs} +1 -2
  46. package/dist/.setup/{targets-C6LZQL1Q.mjs → targets-BqXz7CpG.mjs} +2 -3
  47. package/dist/.setup/{thread-ts-Cvt7WD6B.mjs → thread-ts-47Au2-Yn.mjs} +1 -2
  48. package/dist/.source-module-urls/562d694877afe9d9dcbb3b32a8883c16974738f2aa892c48d45572cdc9a62529.json +1 -1
  49. package/dist/account-inspect-api.js +2 -3
  50. package/dist/api.js +17 -17
  51. package/dist/channel-config-api.js +1 -1
  52. package/dist/channel-entry.js +1 -2
  53. package/dist/channel-plugin-api.js +1 -1
  54. package/dist/configured-state.js +2 -3
  55. package/dist/directory-contract-api.js +1 -1
  56. package/dist/doctor-contract-api.js +1 -1
  57. package/dist/http-routes-api.js +1 -1
  58. package/dist/index.js +2 -3
  59. package/dist/message-tool-api.js +1 -1
  60. package/dist/runtime-api.js +12 -12
  61. package/dist/runtime-setter-api.js +1 -1
  62. package/dist/secret-contract-api.js +1 -1
  63. package/dist/security-contract-api.js +1 -1
  64. package/dist/setup-entry.js +4 -5
  65. package/dist/setup-plugin-api.js +1 -1
  66. package/node_modules/@slack/bolt/node_modules/body-parser/README.md +17 -13
  67. package/node_modules/@slack/bolt/node_modules/body-parser/lib/read.js +74 -57
  68. package/node_modules/@slack/bolt/node_modules/body-parser/lib/types/json.js +11 -11
  69. package/node_modules/@slack/bolt/node_modules/body-parser/lib/types/urlencoded.js +5 -5
  70. package/node_modules/@slack/bolt/node_modules/body-parser/lib/utils.js +0 -15
  71. package/node_modules/@slack/bolt/node_modules/body-parser/package.json +7 -12
  72. package/node_modules/undici/README.md +25 -3
  73. package/node_modules/undici/docs/docs/api/CacheStore.md +24 -9
  74. package/node_modules/undici/docs/docs/api/Client.md +11 -6
  75. package/node_modules/undici/docs/docs/api/Dispatcher.md +3 -0
  76. package/node_modules/undici/docs/docs/api/Errors.md +76 -1
  77. package/node_modules/undici/docs/docs/api/H2CClient.md +3 -2
  78. package/node_modules/undici/docs/docs/api/Interceptors.md +13 -6
  79. package/node_modules/undici/docs/docs/api/RedirectHandler.md +13 -10
  80. package/node_modules/undici/docs/docs/index.md +12 -12
  81. package/node_modules/undici/docs/docs/type-map.json +66 -66
  82. package/node_modules/undici/lib/cache/memory-cache-store.js +48 -13
  83. package/node_modules/undici/lib/cache/sqlite-cache-store.js +83 -5
  84. package/node_modules/undici/lib/core/connect.js +10 -4
  85. package/node_modules/undici/lib/core/constants.js +12 -1
  86. package/node_modules/undici/lib/core/errors.js +38 -1
  87. package/node_modules/undici/lib/core/request.js +16 -1
  88. package/node_modules/undici/lib/core/symbols.js +2 -0
  89. package/node_modules/undici/lib/core/util.js +26 -1
  90. package/node_modules/undici/lib/dispatcher/agent.js +6 -2
  91. package/node_modules/undici/lib/dispatcher/client-h1.js +116 -80
  92. package/node_modules/undici/lib/dispatcher/client-h2.js +46 -14
  93. package/node_modules/undici/lib/dispatcher/client.js +4 -1
  94. package/node_modules/undici/lib/dispatcher/dispatcher-base.js +3 -2
  95. package/node_modules/undici/lib/dispatcher/dispatcher1-wrapper.js +20 -3
  96. package/node_modules/undici/lib/dispatcher/parser-h1.js +1064 -0
  97. package/node_modules/undici/lib/dispatcher/pool-base.js +65 -28
  98. package/node_modules/undici/lib/dispatcher/pool.js +11 -8
  99. package/node_modules/undici/lib/dispatcher/proxy-agent.js +18 -8
  100. package/node_modules/undici/lib/dispatcher/retry-agent.js +10 -0
  101. package/node_modules/undici/lib/dispatcher/round-robin-pool.js +15 -5
  102. package/node_modules/undici/lib/handler/cache-handler.js +153 -15
  103. package/node_modules/undici/lib/handler/deduplication-handler.js +112 -51
  104. package/node_modules/undici/lib/handler/redirect-handler.js +28 -8
  105. package/node_modules/undici/lib/handler/retry-handler.js +44 -11
  106. package/node_modules/undici/lib/interceptor/cache.js +11 -3
  107. package/node_modules/undici/lib/interceptor/decompress.js +22 -9
  108. package/node_modules/undici/lib/interceptor/dns.js +11 -0
  109. package/node_modules/undici/lib/interceptor/response-error.js +72 -28
  110. package/node_modules/undici/lib/milo/LICENSE.md +7 -0
  111. package/node_modules/undici/lib/milo/no-simd.js +1002 -0
  112. package/node_modules/undici/lib/milo/simd.js +1002 -0
  113. package/node_modules/undici/lib/mock/mock-agent.js +11 -0
  114. package/node_modules/undici/lib/mock/snapshot-recorder.js +3 -2
  115. package/node_modules/undici/lib/mock/snapshot-utils.js +3 -2
  116. package/node_modules/undici/lib/util/cache.js +11 -5
  117. package/node_modules/undici/lib/web/cookies/util.js +19 -2
  118. package/node_modules/undici/lib/web/eventsource/eventsource-stream.js +69 -15
  119. package/node_modules/undici/lib/web/eventsource/eventsource.js +25 -2
  120. package/node_modules/undici/lib/web/fetch/body.js +47 -38
  121. package/node_modules/undici/lib/web/fetch/formdata-parser.js +12 -4
  122. package/node_modules/undici/lib/web/fetch/headers.js +2 -2
  123. package/node_modules/undici/lib/web/fetch/index.js +8 -4
  124. package/node_modules/undici/lib/web/subresource-integrity/subresource-integrity.js +5 -5
  125. package/node_modules/undici/lib/web/websocket/receiver.js +25 -4
  126. package/node_modules/undici/package.json +7 -5
  127. package/node_modules/undici/types/cache-interceptor.d.ts +10 -0
  128. package/node_modules/undici/types/client.d.ts +10 -4
  129. package/node_modules/undici/types/errors.d.ts +16 -1
  130. package/node_modules/undici/types/h2c-client.d.ts +1 -1
  131. package/node_modules/undici/types/interceptors.d.ts +6 -1
  132. package/package.json +5 -5
  133. package/dist/.setup/action-runtime.runtime-Ck_j1YTn.mjs +0 -1
  134. package/dist/.setup/http-C9sM-FXe.mjs +0 -2
  135. package/dist/.setup/runtime-setter-api-Cx_PV-xu.mjs +0 -2
  136. package/dist/.setup/setup-plugin-api-B18kDKtr.mjs +0 -2
@@ -1,8 +1,8 @@
1
- import { t as __exportAll } from "./rolldown-runtime-B4FMCO8f.mjs";
2
- import { s as resolveWorkspaceQualifiedSlackTarget } from "./target-parsing-FFE26kOV.mjs";
3
- import { c as collectSlackCursorPages, u as createSlackLookupClient } from "./probe-IiHogLQN.mjs";
1
+ import { t as __exportAll } from "./rolldown-runtime-nwUcYXjP.mjs";
2
+ import { s as resolveWorkspaceQualifiedSlackTarget } from "./target-parsing-0pRZtahO.mjs";
3
+ import { c as collectSlackCursorPages, u as createSlackLookupClient } from "./probe-C5VWf3sz.mjs";
4
4
  import { normalizeLowercaseStringOrEmpty, normalizeOptionalLowercaseString, normalizeOptionalString } from "openclaw/plugin-sdk/string-coerce-runtime";
5
- //#region extensions/slack/src/resolve-users.ts
5
+ // extensions/slack/src/resolve-users.ts
6
6
  var resolve_users_exports = /* @__PURE__ */ __exportAll({ resolveSlackUserAllowlist: () => resolveSlackUserAllowlist });
7
7
  function parseSlackUserInput(raw) {
8
8
  const trimmed = raw.trim();
@@ -81,5 +81,4 @@ async function resolveSlackUserAllowlist(params) {
81
81
  return result;
82
82
  });
83
83
  }
84
- //#endregion
85
84
  export { resolve_users_exports as n, resolveSlackUserAllowlist as t };
@@ -1,5 +1,5 @@
1
1
  import "node:module";
2
- //#region \0rolldown/runtime.js
2
+ // \0rolldown/runtime.js
3
3
  var __defProp = Object.defineProperty;
4
4
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
5
  var __getOwnPropNames = Object.getOwnPropertyNames;
@@ -24,5 +24,4 @@ var __copyProps = (to, from, except, desc) => {
24
24
  return to;
25
25
  };
26
26
  var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
27
- //#endregion
28
27
  export { __reExport as n, __exportAll as t };
@@ -1,8 +1,7 @@
1
1
  import { createPluginRuntimeStore } from "openclaw/plugin-sdk/runtime-store";
2
- //#region extensions/slack/src/runtime.ts
2
+ // extensions/slack/src/runtime.ts
3
3
  const { setRuntime: setSlackRuntime, tryGetRuntime: getOptionalSlackRuntime, getRuntime: getSlackRuntime } = createPluginRuntimeStore({
4
4
  pluginId: "slack",
5
5
  errorMessage: "Slack runtime not initialized"
6
6
  });
7
- //#endregion
8
7
  export { getSlackRuntime as n, setSlackRuntime as r, getOptionalSlackRuntime as t };
@@ -0,0 +1,2 @@
1
+ export { r as setSlackRuntime } from "./runtime-C6HKn7Av.mjs";
2
+ import "../runtime-setter-api.js";
@@ -1,6 +1,6 @@
1
- import { d as createSlackReadClient, o as formatSlackError } from "./probe-IiHogLQN.mjs";
1
+ import { d as createSlackReadClient, o as formatSlackError } from "./probe-C5VWf3sz.mjs";
2
2
  import { isRecord, normalizeOptionalString, normalizeTrimmedStringList, sortUniqueStrings } from "openclaw/plugin-sdk/string-coerce-runtime";
3
- //#region extensions/slack/src/scopes.ts
3
+ // extensions/slack/src/scopes.ts
4
4
  function collectScopes(value, into) {
5
5
  if (Array.isArray(value) || typeof value === "string") {
6
6
  for (const scope of normalizeTrimmedStringList(typeof value === "string" ? value.split(/[,\s]+/) : value)) into.push(scope);
@@ -58,5 +58,4 @@ async function fetchSlackScopes(token, timeoutMs) {
58
58
  error: errors.length > 0 ? errors.join(" | ") : "no scopes returned"
59
59
  };
60
60
  }
61
- //#endregion
62
61
  export { fetchSlackScopes };
@@ -1,5 +1,5 @@
1
1
  import { collectConditionalChannelFieldAssignments, collectNestedChannelFieldAssignments, collectSimpleChannelFieldAssignments, createChannelSecretContract, hasOwnProperty } from "openclaw/plugin-sdk/channel-secret-basic-runtime";
2
- //#region extensions/slack/src/secret-contract.ts
2
+ // extensions/slack/src/secret-contract.ts
3
3
  const channelSecrets = createChannelSecretContract({
4
4
  channelKey: "slack",
5
5
  account: [
@@ -61,5 +61,4 @@ const channelSecrets = createChannelSecretContract({
61
61
  }
62
62
  });
63
63
  const { secretTargetRegistryEntries, collectRuntimeConfigAssignments } = channelSecrets;
64
- //#endregion
65
64
  export { collectRuntimeConfigAssignments as n, secretTargetRegistryEntries as r, channelSecrets as t };
@@ -1,2 +1,2 @@
1
- export { t as channelSecrets, n as collectRuntimeConfigAssignments, r as secretTargetRegistryEntries } from "./secret-contract-B-Qm6aQQ.mjs";
1
+ export { t as channelSecrets, n as collectRuntimeConfigAssignments, r as secretTargetRegistryEntries } from "./secret-contract-D0UY2JWF.mjs";
2
2
  import "../secret-contract-api.js";
@@ -1,8 +1,8 @@
1
- import { t as __exportAll } from "./rolldown-runtime-B4FMCO8f.mjs";
1
+ import { t as __exportAll } from "./rolldown-runtime-nwUcYXjP.mjs";
2
2
  import { coerceNativeSetting, normalizeAllowFromList } from "openclaw/plugin-sdk/channel-policy";
3
3
  import { readChannelAllowFromStore } from "openclaw/plugin-sdk/conversation-runtime";
4
4
  import { resolveNativeCommandsEnabled, resolveNativeSkillsEnabled } from "openclaw/plugin-sdk/native-command-config-runtime";
5
- //#region extensions/slack/src/security-audit.ts
5
+ // extensions/slack/src/security-audit.ts
6
6
  var security_audit_exports = /* @__PURE__ */ __exportAll({ collectSlackSecurityAuditFindings: () => collectSlackSecurityAuditFindings });
7
7
  async function collectSlackSecurityAuditFindings(params) {
8
8
  const findings = [];
@@ -37,5 +37,4 @@ async function collectSlackSecurityAuditFindings(params) {
37
37
  });
38
38
  return findings;
39
39
  }
40
- //#endregion
41
40
  export { security_audit_exports as n, collectSlackSecurityAuditFindings as t };
@@ -1,10 +1,10 @@
1
- import { t as __exportAll } from "./rolldown-runtime-B4FMCO8f.mjs";
2
- import { d as resolveSlackOperationToken, s as resolveSlackAccount } from "./accounts-msihSF3-.mjs";
3
- import { a as parseSlackTarget, t as canonicalizeSlackApiTargetId } from "./target-parsing-FFE26kOV.mjs";
4
- import { A as SLACK_MESSAGE_TEXT_HARD_LIMIT, D as buildSlackCompleteBlocksFallbackText, F as truncateSlackTextByUtf8Bytes, K as resolveSlackQuestionActionIds, L as SLACK_QUESTION_FINALIZATION_BLOCKS, M as SLACK_TEXT_LIMIT, O as renderSlackBlockFallbackText, P as truncateSlackText, T as stripSlackNativeDataBlocks, X as chunkSlackMrkdwnText, Z as markdownToSlackMrkdwnChunks, b as hasSlackNativeDataBlock, gt as validateSlackBlocksArray, j as SLACK_MESSAGE_TEXT_RECOMMENDED_LIMIT, k as SLACK_EDIT_TEXT_MAX_BYTES, m as assertSlackDetachedTargetAllowed, v as buildSlackNativeDataAccessibilityText, w as renderSlackNativeDataPlainTextBlock, x as isSlackInvalidBlocksError, y as createSlackNativeDataBaseTextConsumer } from "./session-status-Dv8wNBEt.mjs";
5
- import { _ as getSlackWriteClient, b as writeLruMapEntry, d as createSlackReadClient, h as createSlackWriteClient, o as formatSlackError, p as createSlackTokenCacheKey, s as getSlackWebApiErrorData } from "./probe-IiHogLQN.mjs";
6
- import { r as resolveSlackThreadTsValue, t as normalizeSlackThreadTsCandidate } from "./thread-ts-Cvt7WD6B.mjs";
7
- import { t as getOptionalSlackRuntime } from "./runtime-JSVZSWAj.mjs";
1
+ import { t as __exportAll } from "./rolldown-runtime-nwUcYXjP.mjs";
2
+ import { d as resolveSlackOperationToken, s as resolveSlackAccount } from "./accounts-CEgdyqoW.mjs";
3
+ import { a as parseSlackTarget, t as canonicalizeSlackApiTargetId } from "./target-parsing-0pRZtahO.mjs";
4
+ import { A as SLACK_MESSAGE_TEXT_HARD_LIMIT, D as buildSlackCompleteBlocksFallbackText, F as truncateSlackTextByUtf8Bytes, K as resolveSlackQuestionActionIds, L as SLACK_QUESTION_FINALIZATION_BLOCKS, M as SLACK_TEXT_LIMIT, O as renderSlackBlockFallbackText, P as truncateSlackText, T as stripSlackNativeDataBlocks, X as chunkSlackMrkdwnText, Z as markdownToSlackMrkdwnChunks, b as hasSlackNativeDataBlock, gt as validateSlackBlocksArray, j as SLACK_MESSAGE_TEXT_RECOMMENDED_LIMIT, k as SLACK_EDIT_TEXT_MAX_BYTES, m as assertSlackDetachedTargetAllowed, v as buildSlackNativeDataAccessibilityText, w as renderSlackNativeDataPlainTextBlock, x as isSlackInvalidBlocksError, y as createSlackNativeDataBaseTextConsumer } from "./session-status-CHkEn3HM.mjs";
5
+ import { _ as getSlackWriteClient, b as writeLruMapEntry, d as createSlackReadClient, h as createSlackWriteClient, o as formatSlackError, p as createSlackTokenCacheKey, s as getSlackWebApiErrorData } from "./probe-C5VWf3sz.mjs";
6
+ import { r as resolveSlackThreadTsValue, t as normalizeSlackThreadTsCandidate } from "./thread-ts-47Au2-Yn.mjs";
7
+ import { t as getOptionalSlackRuntime } from "./runtime-C6HKn7Av.mjs";
8
8
  import { resolveGlobalSingleton } from "openclaw/plugin-sdk/global-singleton";
9
9
  import { asOptionalObjectRecord, asOptionalRecord, isRecord, normalizeLowercaseStringOrEmpty, normalizeOptionalString, normalizeTrimmedStringList } from "openclaw/plugin-sdk/string-coerce-runtime";
10
10
  import { createMessageReceiptFromOutboundResults } from "openclaw/plugin-sdk/channel-outbound";
@@ -27,7 +27,7 @@ import { loadOutboundMediaFromUrl } from "openclaw/plugin-sdk/outbound-media";
27
27
  import { fetchWithSsrFGuard } from "openclaw/plugin-sdk/ssrf-runtime";
28
28
  import { createPersistentDedupeCache } from "openclaw/plugin-sdk/dedupe-runtime";
29
29
  import { createPluginStateErrorReporter } from "openclaw/plugin-sdk/plugin-state-runtime";
30
- //#region extensions/slack/src/native-data-fallback.ts
30
+ // extensions/slack/src/native-data-fallback.ts
31
31
  const SLACK_SECTION_PLAIN_TEXT_MAX = 3e3;
32
32
  const SLACK_EMPTY_BLOCK_FALLBACK = "Shared a Block Kit message";
33
33
  function chunkSlackTextAtHardLimit(text, limit = SLACK_MESSAGE_TEXT_HARD_LIMIT) {
@@ -104,8 +104,7 @@ function buildSlackNativeDataDeliveryPlan(params) {
104
104
  skipOriginalBlocks: accessibilityText.length > SLACK_MESSAGE_TEXT_HARD_LIMIT
105
105
  };
106
106
  }
107
- //#endregion
108
- //#region extensions/slack/src/post-message-identity.ts
107
+ // extensions/slack/src/post-message-identity.ts
109
108
  function buildSlackMessageIdentityPayload(identity) {
110
109
  return {
111
110
  ...identity?.username ? { username: identity.username } : {},
@@ -151,8 +150,7 @@ async function postSlackMessageWithIdentityFallback(params) {
151
150
  return post(basePayload);
152
151
  }
153
152
  }
154
- //#endregion
155
- //#region extensions/slack/src/post-message-payload.ts
153
+ // extensions/slack/src/post-message-payload.ts
156
154
  function buildSlackPostMessagePayload(params) {
157
155
  const threadPayload = params.replyBroadcast && params.threadTs ? {
158
156
  thread_ts: params.threadTs,
@@ -169,8 +167,7 @@ function buildSlackPostMessagePayload(params) {
169
167
  ...typeof params.unfurl?.unfurlMedia === "boolean" ? { unfurl_media: params.unfurl.unfurlMedia } : {}
170
168
  };
171
169
  }
172
- //#endregion
173
- //#region extensions/slack/src/client-delivery.ts
170
+ // extensions/slack/src/client-delivery.ts
174
171
  const SLACK_COMMERCIAL_API_HOSTNAME = "slack.com";
175
172
  const SLACK_COMMERCIAL_UPLOAD_HOSTNAME = "files.slack.com";
176
173
  const SLACK_GOV_API_HOSTNAME = "slack-gov.com";
@@ -379,8 +376,7 @@ async function uploadSlackFile(params) {
379
376
  if (!completeResp.ok) throw new Error(`Failed to complete upload: ${completeResp.error ?? "unknown error"}`);
380
377
  return uploadFileId;
381
378
  }
382
- //#endregion
383
- //#region extensions/slack/src/sent-thread-cache.ts
379
+ // extensions/slack/src/sent-thread-cache.ts
384
380
  /**
385
381
  * Cache of Slack threads the bot has participated in.
386
382
  * Used to auto-respond in threads without requiring @mention after the first reply.
@@ -456,8 +452,7 @@ function clearSlackThreadParticipationCache() {
456
452
  threadParticipation.clearForTest();
457
453
  threadFailureNotices.clear();
458
454
  }
459
- //#endregion
460
- //#region extensions/slack/src/slack-dm-channel-cache.ts
455
+ // extensions/slack/src/slack-dm-channel-cache.ts
461
456
  const SLACK_DM_CHANNEL_CACHE_MAX = 1024;
462
457
  const slackDmChannelCaches = /* @__PURE__ */ new WeakMap();
463
458
  function createSlackDmCacheKey(params) {
@@ -478,8 +473,7 @@ function cacheSlackDmChannelId(params, channelId) {
478
473
  const key = createSlackDmCacheKey(params);
479
474
  writeLruMapEntry(cache, key, channelId, SLACK_DM_CHANNEL_CACHE_MAX);
480
475
  }
481
- //#endregion
482
- //#region extensions/slack/src/send.ts
476
+ // extensions/slack/src/send.ts
483
477
  var send_exports = /* @__PURE__ */ __exportAll({
484
478
  reconcileSlackUnknownSend: () => reconcileSlackUnknownSend,
485
479
  resolveSlackDmChannelId: () => resolveSlackDmChannelId,
@@ -1125,5 +1119,4 @@ async function sendMessageSlackQueued(params) {
1125
1119
  receipt: createSlackSendReceiptFromResults(deliveredResults, deliveredThreadTs)
1126
1120
  };
1127
1121
  }
1128
- //#endregion
1129
1122
  export { clearSlackThreadParticipationCache as a, hasSlackThreadParticipationWithPersistence as c, requireSlackPostMessageTimestamp as d, buildSlackMessageIdentityPayload as f, chunkSlackTextAtHardLimit as h, clearSlackThreadFailureNotice as i, recordSlackThreadFailureNotice as l, buildSlackNativeDataDeliveryPlan as m, send_exports as n, hasSlackThreadFailureNotice as o, hasSlackMessageIdentity as p, setSlackDefaultSendIdentity as r, hasSlackThreadParticipation as s, sendMessageSlack as t, recordSlackThreadParticipation as u };
@@ -1,5 +1,5 @@
1
1
  import { createMessageReceiptFromOutboundResults } from "openclaw/plugin-sdk/channel-outbound";
2
- //#region extensions/slack/src/send-results.ts
2
+ // extensions/slack/src/send-results.ts
3
3
  function mergeSlackSendResults(results) {
4
4
  const lastResult = results.at(-1);
5
5
  if (!lastResult) throw new Error("Slack send plan produced no delivery.");
@@ -19,5 +19,4 @@ function mergeSlackSendResults(results) {
19
19
  } } : {}
20
20
  };
21
21
  }
22
- //#endregion
23
22
  export { mergeSlackSendResults as t };
@@ -1,8 +1,8 @@
1
- import { r as isSlackPluginAccountConfigured } from "./account-configured-zcR9TJJN.mjs";
2
- import { a as mergeSlackAccountConfig, c as resolveSlackAccountAllowFrom, i as listSlackAccountIds, o as resolveDefaultSlackAccountId, s as resolveSlackAccount } from "./accounts-msihSF3-.mjs";
3
- import { a as parseSlackTarget, n as formatSlackTarget, t as canonicalizeSlackApiTargetId } from "./target-parsing-FFE26kOV.mjs";
4
- import { t as slackContextTargetsMatch } from "./targets-C6LZQL1Q.mjs";
5
- import { A as resolveSlackAllowListMatch, j as resolveSlackUserAllowListForTeam, o as formatSlackError } from "./probe-IiHogLQN.mjs";
1
+ import { r as isSlackPluginAccountConfigured } from "./account-configured-35y0-Hso.mjs";
2
+ import { a as mergeSlackAccountConfig, c as resolveSlackAccountAllowFrom, i as listSlackAccountIds, o as resolveDefaultSlackAccountId, s as resolveSlackAccount } from "./accounts-CEgdyqoW.mjs";
3
+ import { a as parseSlackTarget, n as formatSlackTarget, t as canonicalizeSlackApiTargetId } from "./target-parsing-0pRZtahO.mjs";
4
+ import { t as slackContextTargetsMatch } from "./targets-BqXz7CpG.mjs";
5
+ import { A as resolveSlackAllowListMatch, j as resolveSlackUserAllowListForTeam, o as formatSlackError } from "./probe-C5VWf3sz.mjs";
6
6
  import { resolveGlobalMap } from "openclaw/plugin-sdk/global-singleton";
7
7
  import { normalizeAccountId } from "openclaw/plugin-sdk/account-resolution";
8
8
  import { asOptionalRecord, normalizeLowercaseStringOrEmpty, normalizeOptionalString, normalizeStringifiedOptionalString, readNonBlankString } from "openclaw/plugin-sdk/string-coerce-runtime";
@@ -25,7 +25,7 @@ import { questionGatewayRuntime } from "openclaw/plugin-sdk/question-gateway-run
25
25
  import { readResponseTextLimited } from "openclaw/plugin-sdk/provider-http";
26
26
  import { inspectRuntimeConversationBindingRoute, resolveConfiguredBindingRoute, resolveRuntimeConversationBindingRouteAsync } from "openclaw/plugin-sdk/conversation-binding-runtime";
27
27
  import { resolveScopeRequireMention, resolveScopeToolsPolicy } from "openclaw/plugin-sdk/channel-policy";
28
- //#region extensions/slack/src/action-threading.ts
28
+ // extensions/slack/src/action-threading.ts
29
29
  const SLACK_PRIVATE_ACTION_DELIVERY_RESULT = Symbol("slack.action.delivery-result");
30
30
  function resolveSlackAutoThreadId(params) {
31
31
  const context = params.toolContext;
@@ -39,8 +39,7 @@ function resolveSlackAutoThreadId(params) {
39
39
  if (isSingleUseReplyToMode(context.replyToMode ?? "off") && context.hasRepliedRef?.value) return;
40
40
  return context.currentThreadTs;
41
41
  }
42
- //#endregion
43
- //#region extensions/slack/src/approval-plugin-policy.ts
42
+ // extensions/slack/src/approval-plugin-policy.ts
44
43
  /** Returns undefined only when Slack plugin approvals retain legacy account authorization. */
45
44
  function resolvePluginApprovalSlackApprovers(cfg, request) {
46
45
  const policy = cfg.approvals?.plugin?.slack;
@@ -57,8 +56,7 @@ function resolvePluginApprovalSlackApprovers(cfg, request) {
57
56
  }
58
57
  return plugin?.approvers ?? policy.approvers;
59
58
  }
60
- //#endregion
61
- //#region extensions/slack/src/exec-approvals.ts
59
+ // extensions/slack/src/exec-approvals.ts
62
60
  function normalizeSlackUserLikeId(value) {
63
61
  const upper = value.toUpperCase();
64
62
  return /^[UW][A-Z0-9]+$/.test(upper) ? upper : void 0;
@@ -105,8 +103,7 @@ const isSlackExecApprovalClientEnabled = slackExecApprovalProfile.isClientEnable
105
103
  const isSlackExecApprovalAuthorizedSender = slackExecApprovalProfile.isAuthorizedSender;
106
104
  const resolveSlackExecApprovalTarget = slackExecApprovalProfile.resolveTarget;
107
105
  const shouldSuppressLocalSlackExecApprovalPrompt = slackExecApprovalProfile.shouldSuppressLocalPrompt;
108
- //#endregion
109
- //#region extensions/slack/src/installation-identity-state.ts
106
+ // extensions/slack/src/installation-identity-state.ts
110
107
  const slackInstallationStates = resolveGlobalMap(Symbol.for("openclaw.slack.installation-identities"), "close-and-restart");
111
108
  function registerSlackInstallationState(accountId, kind, teamId) {
112
109
  const normalizedAccountId = normalizeAccountId(accountId);
@@ -139,8 +136,7 @@ function getSlackInstallationTeamId(accountId) {
139
136
  function isSlackWorkspaceInstallation(accountId) {
140
137
  return getSlackInstallationKind(accountId) === "workspace";
141
138
  }
142
- //#endregion
143
- //#region extensions/slack/src/approval-auth.ts
139
+ // extensions/slack/src/approval-auth.ts
144
140
  function resolveSlackApprovalInputs(params) {
145
141
  const account = resolveSlackAccount(params).config;
146
142
  return {
@@ -207,8 +203,7 @@ function getSlackApprovalApproversForTeam(params) {
207
203
  function resolveSlackApprovalTeamId(params) {
208
204
  return getSlackInstallationTeamId(resolveSlackAccount(params).accountId) ?? resolveSlackApprovalOriginTeamId(params.request);
209
205
  }
210
- //#endregion
211
- //#region extensions/slack/src/approval-native-gates.ts
206
+ // extensions/slack/src/approval-native-gates.ts
212
207
  function isSlackPluginApprovalRequest(request) {
213
208
  return resolveApprovalKind(request) === "plugin";
214
209
  }
@@ -419,8 +414,7 @@ async function shouldHandleSlackNativeApprovalRequest(params) {
419
414
  approvalKind: "exec"
420
415
  });
421
416
  }
422
- //#endregion
423
- //#region extensions/slack/src/blocks-input.ts
417
+ // extensions/slack/src/blocks-input.ts
424
418
  const SLACK_MAX_BLOCKS = 50;
425
419
  function parseBlocksJson(raw) {
426
420
  try {
@@ -471,8 +465,7 @@ const SLACK_PRESENTATION_CAPABILITIES = {
471
465
  }
472
466
  }
473
467
  };
474
- //#endregion
475
- //#region extensions/slack/src/approval-actions.ts
468
+ // extensions/slack/src/approval-actions.ts
476
469
  const SLACK_APPROVAL_VALUE_PREFIX = "openclaw:approval:v1:";
477
470
  const SLACK_APPROVAL_HEADER_BLOCK_ID = "openclaw_approval_header";
478
471
  function isApprovalDecision(value) {
@@ -509,13 +502,11 @@ function decodeSlackApprovalAction(value) {
509
502
  return null;
510
503
  }
511
504
  }
512
- //#endregion
513
- //#region extensions/slack/src/monitor/mrkdwn.ts
505
+ // extensions/slack/src/monitor/mrkdwn.ts
514
506
  function escapeSlackMrkdwn(value) {
515
507
  return value.replaceAll("&", "&amp;").replaceAll("<", "&lt;").replaceAll(">", "&gt;");
516
508
  }
517
- //#endregion
518
- //#region extensions/slack/src/presentation-fallback.ts
509
+ // extensions/slack/src/presentation-fallback.ts
519
510
  const SLACK_UNCOPYABLE_COMMAND_WARNING = "not copyable: contains backtick";
520
511
  function escapeSlackPresentationChartBlock(block) {
521
512
  const escaped = {
@@ -595,8 +586,7 @@ function renderSlackMessagePresentationFallbackText(params) {
595
586
  presentation
596
587
  });
597
588
  }
598
- //#endregion
599
- //#region extensions/slack/src/rich-text.ts
589
+ // extensions/slack/src/rich-text.ts
600
590
  const RICH_TEXT_CONTAINER_TYPES = /* @__PURE__ */ new Set([
601
591
  "rich_text_section",
602
592
  "rich_text_preformatted",
@@ -643,8 +633,7 @@ function renderSlackRichText(value, mode, separator = "") {
643
633
  }
644
634
  }).filter(Boolean).join(separator);
645
635
  }
646
- //#endregion
647
- //#region extensions/slack/src/data-table.ts
636
+ // extensions/slack/src/data-table.ts
648
637
  const SLACK_DATA_TABLE_COLUMNS_MAX = 20;
649
638
  const SLACK_DATA_TABLE_ROWS_MAX = 100;
650
639
  const SLACK_DATA_TABLE_AGGREGATE_CELL_CHARACTERS_MAX = 1e4;
@@ -784,8 +773,7 @@ function renderSlackDataTableCompactPlainTextFallback(value) {
784
773
  ...table.rows.map((row) => row.map(escapeCompactFallbackCell).join(" "))
785
774
  ].join("\n"));
786
775
  }
787
- //#endregion
788
- //#region extensions/slack/src/data-visualization.ts
776
+ // extensions/slack/src/data-visualization.ts
789
777
  const SLACK_CHART_TITLE_MAX = 50;
790
778
  const SLACK_CHART_LABEL_MAX = 20;
791
779
  const SLACK_CHART_AXIS_LABEL_MAX = 50;
@@ -896,8 +884,7 @@ function renderSlackDataVisualizationFallbackText(value, mrkdwnSafe = false) {
896
884
  const title = typeof block.title === "string" ? block.title.trim() : "";
897
885
  return title ? mrkdwnSafe ? escapeSlackMrkdwn(title) : title : void 0;
898
886
  }
899
- //#endregion
900
- //#region extensions/slack/src/format.ts
887
+ // extensions/slack/src/format.ts
901
888
  const SLACK_ANGLE_TOKEN_RE = /<[^>\n]+>/g;
902
889
  function isAllowedSlackAngleToken(token) {
903
890
  const inner = token.slice(1, -1);
@@ -1227,8 +1214,7 @@ function markdownToSlackMrkdwnChunks(markdown, limit, options = {}) {
1227
1214
  measureRendered: (rendered) => rendered.length
1228
1215
  }).map(({ rendered }) => rendered.length > normalizedLimit ? protectSlackAssistantTranscriptRoleHeaders(rendered) : rendered);
1229
1216
  }
1230
- //#endregion
1231
- //#region extensions/slack/src/question-actions.ts
1217
+ // extensions/slack/src/question-actions.ts
1232
1218
  const SLACK_QUESTION_VALUE_PREFIX = "slq1:";
1233
1219
  const QUESTION_RECORD_ID_PATTERN = /^ask_[a-f0-9]{32}$/u;
1234
1220
  function encodeSlackQuestionAction(action) {
@@ -1259,8 +1245,7 @@ async function resolveSlackQuestionAction(params) {
1259
1245
  }
1260
1246
  await params.respond(result.status === "answered" ? "Answer submitted." : "This question was already answered.").catch(() => {});
1261
1247
  }
1262
- //#endregion
1263
- //#region extensions/slack/src/reply-action-ids.ts
1248
+ // extensions/slack/src/reply-action-ids.ts
1264
1249
  const SLACK_REPLY_BUTTON_ACTION_ID = "openclaw:reply_button";
1265
1250
  const SLACK_REPLY_LINK_ACTION_ID = "openclaw:reply_link";
1266
1251
  const SLACK_SESSION_LINK_ACTION_ID = "openclaw:session_link";
@@ -1291,8 +1276,7 @@ function resolveSlackQuestionActionIds(blocks) {
1291
1276
  return (block.elements ?? []).flatMap(({ action_id }) => action_id && isSlackQuestionActionId(action_id) ? [action_id] : []);
1292
1277
  });
1293
1278
  }
1294
- //#endregion
1295
- //#region extensions/slack/src/truncate.ts
1279
+ // extensions/slack/src/truncate.ts
1296
1280
  function truncateSlackText(value, max, whitespace = "trim") {
1297
1281
  const text = whitespace === "preserve" ? value : value.trim();
1298
1282
  if (text.length <= max) return text;
@@ -1320,14 +1304,12 @@ function truncateSlackTextByUtf8Bytes(value, maxBytes) {
1320
1304
  }
1321
1305
  return maxBytes >= suffixBytes ? `${prefix}${suffix}` : prefix;
1322
1306
  }
1323
- //#endregion
1324
- //#region extensions/slack/src/limits.ts
1307
+ // extensions/slack/src/limits.ts
1325
1308
  const SLACK_TEXT_LIMIT = 8e3;
1326
1309
  const SLACK_MESSAGE_TEXT_RECOMMENDED_LIMIT = 4e3;
1327
1310
  const SLACK_EDIT_TEXT_MAX_BYTES = 4e3;
1328
1311
  const SLACK_MESSAGE_TEXT_HARD_LIMIT = 4e4;
1329
- //#endregion
1330
- //#region extensions/slack/src/blocks-fallback.ts
1312
+ // extensions/slack/src/blocks-fallback.ts
1331
1313
  const SLACK_SELECT_ELEMENT_TYPES = /* @__PURE__ */ new Set([
1332
1314
  "static_select",
1333
1315
  "multi_static_select",
@@ -1404,8 +1386,7 @@ function buildSlackBlocksFallbackText(blocks) {
1404
1386
  function buildSlackCompleteBlocksFallbackText(blocks, options = {}) {
1405
1387
  return blocks.map((block) => renderSlackBlockFallbackText(block, options)).filter(Boolean).join("\n\n").trim() || buildSlackBlocksFallbackText(blocks);
1406
1388
  }
1407
- //#endregion
1408
- //#region extensions/slack/src/native-data-blocks.ts
1389
+ // extensions/slack/src/native-data-blocks.ts
1409
1390
  const SLACK_MALFORMED_NATIVE_DATA_FALLBACK = "Slack could not render this chart or table data.";
1410
1391
  const SLACK_RESPONSE_URL_BODY_LIMIT_BYTES = 16384;
1411
1392
  const SLACK_RESPONSE_URL_BODY_TIMEOUT_MS = 3e4;
@@ -1508,14 +1489,12 @@ function appendSlackNativeDataFallbackText(text, blocks) {
1508
1489
  function appendSlackNativeDataPlainTextFallback(text, blocks) {
1509
1490
  return appendSlackBlockFallback(text.trim(), blocks, renderSlackNativeDataPlainTextBlock);
1510
1491
  }
1511
- //#endregion
1512
- //#region extensions/slack/src/detached-target-admission.ts
1492
+ // extensions/slack/src/detached-target-admission.ts
1513
1493
  function assertSlackDetachedTargetAllowed(accountId, teamId) {
1514
1494
  const installationKind = getSlackInstallationKind(accountId);
1515
1495
  if (installationKind && installationKind !== "workspace" && !teamId) throw new Error("unsupported_enterprise_slack_delivery: detached Slack operations require team:<team-id>:channel:<channel-id> or team:<team-id>:user:<user-id> until a workspace install is authenticated");
1516
1496
  }
1517
- //#endregion
1518
- //#region extensions/slack/src/conversation-binding-route.ts
1497
+ // extensions/slack/src/conversation-binding-route.ts
1519
1498
  const slackRouteBindingConfigCache = /* @__PURE__ */ new WeakMap();
1520
1499
  function normalizeSlackRouteBindingPeer(peer) {
1521
1500
  const rawId = peer.id.trim();
@@ -1652,8 +1631,7 @@ function applySlackConfiguredBindingRoute(params, runtimeRoute) {
1652
1631
  route: runtimeRoute.boundSessionKey ? runtimeRoute.route : configuredRoute?.route ?? runtimeRoute.route
1653
1632
  };
1654
1633
  }
1655
- //#endregion
1656
- //#region extensions/slack/src/monitor/workspace-routing.ts
1634
+ // extensions/slack/src/monitor/workspace-routing.ts
1657
1635
  function resolveSlackAgentRoute(params) {
1658
1636
  const route = resolveAgentRoute({
1659
1637
  cfg: params.cfg,
@@ -1687,8 +1665,7 @@ function qualifySlackRoutePeerId(params) {
1687
1665
  function qualifySlackConversationId(conversationId, eventScope) {
1688
1666
  return eventScope ? `team:${encodeURIComponent(eventScope.teamId)}:${conversationId}` : conversationId;
1689
1667
  }
1690
- //#endregion
1691
- //#region extensions/slack/src/channel-policy-state.ts
1668
+ // extensions/slack/src/channel-policy-state.ts
1692
1669
  const slackChannelPolicyBindings = resolveGlobalMap(Symbol.for("openclaw.slack.channel-policy-bindings"), "close-and-restart");
1693
1670
  function setSlackChannelPolicyBindings(accountId, bindings) {
1694
1671
  slackChannelPolicyBindings.set(normalizeAccountId(accountId), new Map([...bindings].map(([key, id]) => [key, id.toUpperCase()])));
@@ -1698,8 +1675,7 @@ function getSlackChannelPolicyKeys(accountId, channelId) {
1698
1675
  if (!id) return [];
1699
1676
  return [...slackChannelPolicyBindings.get(normalizeAccountId(accountId)) ?? []].filter(([, resolvedId]) => resolvedId === id).map(([key]) => key);
1700
1677
  }
1701
- //#endregion
1702
- //#region extensions/slack/src/group-policy.ts
1678
+ // extensions/slack/src/group-policy.ts
1703
1679
  function buildSlackChannelIdCandidates(channelId, teamId, options) {
1704
1680
  const trimmedId = channelId?.trim();
1705
1681
  if (!trimmedId) return [];
@@ -1751,8 +1727,7 @@ function resolveSlackGroupToolPolicy(params) {
1751
1727
  senderE164: params.senderE164
1752
1728
  });
1753
1729
  }
1754
- //#endregion
1755
- //#region extensions/slack/src/session-status.ts
1730
+ // extensions/slack/src/session-status.ts
1756
1731
  const MISSING_STOP_SUBSCRIPTION = "missing_agent_session_stopped_event_subscription";
1757
1732
  let warnedMissingStopSubscription = false;
1758
1733
  async function setSlackSessionStatus(params) {
@@ -1793,5 +1768,4 @@ async function renameSlackSession(params) {
1793
1768
  return false;
1794
1769
  }
1795
1770
  }
1796
- //#endregion
1797
1771
  export { buildSlackDataVisualizationBlock as $, SLACK_MESSAGE_TEXT_HARD_LIMIT as A, resolveSlackApprovalTeamId as At, SLACK_REPLY_SELECT_ACTION_ID as B, resolvePluginApprovalSlackApprovers as Bt, isSlackNativeResponseUrlRejection as C, resolveSlackFallbackOriginTarget as Ct, buildSlackCompleteBlocksFallbackText as D, slackTargetsMatch as Dt, buildSlackBlocksFallbackText as E, shouldHandleSlackPluginViaForwardingSession as Et, truncateSlackTextByUtf8Bytes as F, isSlackExecApprovalAuthorizedSender as Ft, isSlackQuestionActionId as G, SLACK_SESSION_LINK_ACTION_ID as H, resolveSlackAutoThreadId as Ht, SLACK_BUTTON_ACTION_IDS as I, isSlackExecApprovalClientEnabled as It, encodeSlackQuestionAction as J, resolveSlackQuestionActionIds as K, SLACK_QUESTION_FINALIZATION_BLOCKS as L, normalizeSlackApproverId as Lt, SLACK_TEXT_LIMIT as M, isSlackWorkspaceInstallation as Mt, countSlackTextUtf8Bytes as N, registerSlackInstallationState as Nt, renderSlackBlockFallbackText as O, getSlackApprovalApproversForTeam as Ot, truncateSlackText as P, getSlackExecApprovalApprovers as Pt, normalizeSlackOutboundText as Q, SLACK_REPLY_BUTTON_ACTION_ID as R, resolveSlackExecApprovalTarget as Rt, isSlackInvalidBlocksResponse as S, resolveSlackApproverDmTargets as St, stripSlackNativeDataBlocks as T, shouldHandleSlackNativeApprovalRequest as Tt, isSlackApprovalActionId as U, SLACK_SELECT_ACTION_IDS as V, SLACK_PRIVATE_ACTION_DELIVERY_RESULT as Vt, isSlackCallbackActionId as W, chunkSlackMrkdwnText as X, resolveSlackQuestionAction as Y, markdownToSlackMrkdwnChunks as Z, appendSlackNativeDataPlainTextFallback as _, isSlackAnyNativeApprovalClientEnabled as _t, resolveSlackGroupRequireMention as a, renderSlackMessagePresentationChartFallbackText as at, hasSlackNativeDataBlock as b, normalizeSlackOriginTarget as bt, qualifySlackConversationId as c, SLACK_APPROVAL_HEADER_BLOCK_ID as ct, normalizeSlackRouteBindingConfig as d, SLACK_BUTTON_VALUE_MAX as dt, hasSlackDataVisualizationBlock as et, resolveSlackConversationBindingRoute as f, SLACK_PRESENTATION_CAPABILITIES as ft, appendSlackNativeDataFallbackText as g, validateSlackBlocksArray as gt, SLACK_MALFORMED_NATIVE_DATA_FALLBACK as h, parseSlackBlocksInput as ht, buildSlackChannelPolicyScope as i, countSlackDataTableCellCharacters as it, SLACK_MESSAGE_TEXT_RECOMMENDED_LIMIT as j, getSlackInstallationKind as jt, SLACK_EDIT_TEXT_MAX_BYTES as k, isSlackPluginApprovalAuthorizedSender as kt, qualifySlackRoutePeerId as l, decodeSlackApprovalAction as lt, assertSlackDetachedTargetAllowed as m, SLACK_MAX_BLOCKS as mt, setSlackSessionStatus as n, buildSlackDataTableBlock as nt, resolveSlackGroupToolPolicy as o, renderSlackMessagePresentationFallbackText as ot, resolveSlackConversationBindingRouteAsync as p, SLACK_SECTION_TEXT_MAX as pt, decodeSlackQuestionAction as q, buildSlackChannelIdCandidates as r, countSlackDataTableBlocksCellCharacters as rt, setSlackChannelPolicyBindings as s, escapeSlackMrkdwn as st, renameSlackSession as t, SLACK_DATA_TABLE_AGGREGATE_CELL_CHARACTERS_MAX as tt, resolveSlackAgentRoute as u, encodeSlackApprovalAction as ut, buildSlackNativeDataAccessibilityText as v, isSlackPluginApprovalRequest as vt, renderSlackNativeDataPlainTextBlock as w, resolveTurnSourceSlackOriginTarget as wt, isSlackInvalidBlocksError as x, resolveSessionSlackOriginTarget as xt, createSlackNativeDataBaseTextConsumer as y, normalizeSlackForwardTarget as yt, SLACK_REPLY_LINK_ACTION_ID as z, shouldSuppressLocalSlackExecApprovalPrompt as zt };
@@ -0,0 +1,2 @@
1
+ export { t as slackSetupPlugin } from "./channel.setup-BBzT6uKA.mjs";
2
+ import "../setup-plugin-api.js";
@@ -1,13 +1,13 @@
1
- import { c as resolveSlackAccountAllowFrom, o as resolveDefaultSlackAccountId } from "./accounts-msihSF3-.mjs";
2
- import { t as inspectSlackAccount } from "./account-inspect-CmkKiSb9.mjs";
3
- import "./shared-DpHCoKy2.mjs";
4
- import { a as buildSlackAllowFromPrompt, i as SLACK_CHANNEL, n as createSlackSetupWizardBase } from "./channel.setup-u6QQdbTa.mjs";
5
- import { t as resolveSlackChannelAllowlist } from "./resolve-channels-DRRhElwz.mjs";
6
- import { t as resolveSlackUserAllowlist } from "./resolve-users-Cz8e17ky.mjs";
1
+ import { c as resolveSlackAccountAllowFrom, o as resolveDefaultSlackAccountId } from "./accounts-CEgdyqoW.mjs";
2
+ import { t as inspectSlackAccount } from "./account-inspect-Bc7TVU8F.mjs";
3
+ import "./shared-CohTHxM1.mjs";
4
+ import { a as buildSlackAllowFromPrompt, i as SLACK_CHANNEL, n as createSlackSetupWizardBase } from "./channel.setup-BBzT6uKA.mjs";
5
+ import { t as resolveSlackChannelAllowlist } from "./resolve-channels-BNQ1KZXh.mjs";
6
+ import { t as resolveSlackUserAllowlist } from "./resolve-users-C4dC8Z7D.mjs";
7
7
  import { normalizeStringEntries } from "openclaw/plugin-sdk/string-coerce-runtime";
8
8
  import { resolveBasicAllowFromEntries } from "openclaw/plugin-sdk/allow-from";
9
9
  import { createSetupTranslator, noteChannelLookupFailure, noteChannelLookupSummary, patchChannelConfigForAccount, promptResolvedAllowFrom, resolveEntriesWithOptionalToken, resolveSetupAccountId, splitSetupEntries } from "openclaw/plugin-sdk/setup-runtime";
10
- //#region extensions/slack/src/setup-surface.ts
10
+ // extensions/slack/src/setup-surface.ts
11
11
  const t = createSetupTranslator();
12
12
  function resolveSlackSetupAuth(account, credentialValues) {
13
13
  if (account.config.postAs === "user") return credentialValues.userToken || account.userToken;
@@ -109,5 +109,4 @@ const slackSetupWizard = createSlackSetupWizardBase({
109
109
  },
110
110
  resolveGroupAllowlist: resolveSlackGroupAllowlist
111
111
  });
112
- //#endregion
113
112
  export { slackSetupWizard };
@@ -1,18 +1,18 @@
1
- import { r as isSlackPluginAccountConfigured } from "./account-configured-zcR9TJJN.mjs";
2
- import { a as mergeSlackAccountConfig, c as resolveSlackAccountAllowFrom, i as listSlackAccountIds, l as resolveSlackAccountDmPolicy } from "./accounts-msihSF3-.mjs";
3
- import { t as inspectSlackAccount } from "./account-inspect-CmkKiSb9.mjs";
4
- import { a as parseSlackTarget } from "./target-parsing-FFE26kOV.mjs";
5
- import { a as slackIngressIdentity, t as probeSlack } from "./probe-IiHogLQN.mjs";
6
- import { n as SLACK_CHANNEL_META } from "./channel-meta-C443t-lI.mjs";
7
- import { r as slackBaseConfigAdapter, t as slackSetupPlugin } from "./channel.setup-u6QQdbTa.mjs";
8
- import { n as normalizeCompatibilityConfig, r as runtime_doctor_migrations_exports, t as legacyConfigRules } from "./doctor-contract-Cd4-VzIM.mjs";
9
- import { n as collectRuntimeConfigAssignments, r as secretTargetRegistryEntries } from "./secret-contract-B-Qm6aQQ.mjs";
1
+ import { r as isSlackPluginAccountConfigured } from "./account-configured-35y0-Hso.mjs";
2
+ import { a as mergeSlackAccountConfig, c as resolveSlackAccountAllowFrom, i as listSlackAccountIds, l as resolveSlackAccountDmPolicy } from "./accounts-CEgdyqoW.mjs";
3
+ import { t as inspectSlackAccount } from "./account-inspect-Bc7TVU8F.mjs";
4
+ import { a as parseSlackTarget } from "./target-parsing-0pRZtahO.mjs";
5
+ import { a as slackIngressIdentity, t as probeSlack } from "./probe-C5VWf3sz.mjs";
6
+ import { n as SLACK_CHANNEL_META } from "./channel-meta-C5vsCo3a.mjs";
7
+ import { r as slackBaseConfigAdapter, t as slackSetupPlugin } from "./channel.setup-BBzT6uKA.mjs";
8
+ import { n as normalizeCompatibilityConfig, r as runtime_doctor_migrations_exports, t as legacyConfigRules } from "./doctor-contract-HK8aedwU.mjs";
9
+ import { n as collectRuntimeConfigAssignments, r as secretTargetRegistryEntries } from "./secret-contract-D0UY2JWF.mjs";
10
10
  import { adaptScopedAccountAccessor, createScopedDmSecurityResolver } from "openclaw/plugin-sdk/channel-config-helpers";
11
11
  import { createLazyRuntimeModule } from "openclaw/plugin-sdk/lazy-runtime";
12
12
  import { buildMutableAllowEntryDetector, collectStandardAllowlistLists, createConditionalWarningCollector, createDangerousNameMatchingMutableAllowlistWarningCollector, createOpenProviderConfiguredRouteWarningCollector } from "openclaw/plugin-sdk/channel-policy";
13
13
  import { identityEntryAuthenticationClassifier } from "openclaw/plugin-sdk/channel-ingress-runtime";
14
14
  import { describeAccountSnapshot } from "openclaw/plugin-sdk/account-helpers";
15
- //#region extensions/slack/src/security.ts
15
+ // extensions/slack/src/security.ts
16
16
  const resolveSlackDmPolicy = createScopedDmSecurityResolver({
17
17
  channelKey: "slack",
18
18
  resolvePolicy: (account) => account.config.dmPolicy,
@@ -53,7 +53,7 @@ const collectSlackSecurityFindings = createConditionalWarningCollector.findings(
53
53
  severity: "warn",
54
54
  title: "Slack security warning"
55
55
  });
56
- const loadSlackSecurityAuditModule = createLazyRuntimeModule(() => import("./security-audit-DFGiFLqd.mjs").then((n) => n.n));
56
+ const loadSlackSecurityAuditModule = createLazyRuntimeModule(() => import("./security-audit-C3hXCfDt.mjs").then((n) => n.n));
57
57
  const slackSecurityAdapter = {
58
58
  resolveDmPolicy: resolveSlackDmPolicy,
59
59
  collectWarnings: collectSlackSecurityFindings,
@@ -62,8 +62,7 @@ const slackSecurityAdapter = {
62
62
  return await collectSlackSecurityAuditFindings(params);
63
63
  }
64
64
  };
65
- //#endregion
66
- //#region extensions/slack/src/security-doctor.ts
65
+ // extensions/slack/src/security-doctor.ts
67
66
  const isSlackMutableUnqualifiedAllowEntry = buildMutableAllowEntryDetector({ stableIdPattern: /^(?:(?:(?:[sS][lL][aA][cC][kK]|[uU][sS][eE][rR]):)?(?:[UWBCGDT][A-Z0-9]{2,}|[A-Za-z0-9]{8,})|<@[A-Za-z0-9]{8,}>)$/ });
68
67
  function isSlackMutableAllowEntry(entry) {
69
68
  if (/^team:/i.test(entry)) try {
@@ -72,8 +71,7 @@ function isSlackMutableAllowEntry(entry) {
72
71
  } catch {}
73
72
  return isSlackMutableUnqualifiedAllowEntry(entry);
74
73
  }
75
- //#endregion
76
- //#region extensions/slack/src/doctor.ts
74
+ // extensions/slack/src/doctor.ts
77
75
  const collectSlackMutableAllowlistWarnings = createDangerousNameMatchingMutableAllowlistWarningCollector({
78
76
  channel: "slack",
79
77
  detector: isSlackMutableAllowEntry,
@@ -202,8 +200,7 @@ const slackDoctor = {
202
200
  collectPreviewWarnings: collectSlackUserIdentityWarnings,
203
201
  collectMutableAllowlistWarnings: ({ cfg }) => [...collectSlackMutableAllowlistWarnings({ cfg }), ...collectSlackNameKeyedChannelWarnings({ cfg })]
204
202
  };
205
- //#endregion
206
- //#region extensions/slack/src/shared.ts
203
+ // extensions/slack/src/shared.ts
207
204
  const slackConfigAdapter = {
208
205
  ...slackBaseConfigAdapter,
209
206
  inspectAccount: adaptScopedAccountAccessor(inspectSlackAccount)
@@ -255,5 +252,4 @@ const slackPluginBase = {
255
252
  collectRuntimeConfigAssignments
256
253
  }
257
254
  };
258
- //#endregion
259
255
  export { slackPluginBase as n, slackSecurityAdapter as r, slackConfigAdapter as t };
@@ -1,4 +1,4 @@
1
- import { i as sanitizeSlackMonitorReplyPayload, r as deliverSlackSlashReplies } from "./replies-CJwjTqDr.mjs";
1
+ import { i as sanitizeSlackMonitorReplyPayload, r as deliverSlackSlashReplies } from "./replies-7DRN46EL.mjs";
2
2
  import { resolveAgentRoute } from "openclaw/plugin-sdk/routing";
3
3
  import { resolveMarkdownTableMode } from "openclaw/plugin-sdk/markdown-table-runtime";
4
4
  import { resolveConversationLabel } from "openclaw/plugin-sdk/conversation-runtime";
@@ -1,5 +1,5 @@
1
1
  import { buildMessagingTarget, ensureTargetId, parseMentionPrefixOrAtUserTarget, requireTargetKind } from "openclaw/plugin-sdk/channel-targets";
2
- //#region extensions/slack/src/target-parsing.ts
2
+ // extensions/slack/src/target-parsing.ts
3
3
  const SLACK_CHANNEL_API_ID_RE = /^[CDG][0-9][A-Z0-9]{7,}$/i;
4
4
  const SLACK_USER_API_ID_RE = /^[BUW][A-Z0-9]{8,}$/i;
5
5
  const SLACK_QUALIFIED_TARGET_RE = /^team:([^:]+):(user|channel):([^:]+)$/i;
@@ -124,5 +124,4 @@ function looksLikeSlackTargetId(raw) {
124
124
  const trimmed = raw.trim();
125
125
  return /^<@([A-Z0-9]+)>$/i.test(trimmed) || /^(user|channel):/i.test(trimmed) || /^slack:/i.test(trimmed) || /^team:/i.test(trimmed) || /^[@#]/.test(trimmed) || /^[CUWGD][A-Z0-9]{8,}$/i.test(trimmed);
126
126
  }
127
- //#endregion
128
127
  export { parseSlackTarget as a, slackTargetsMatch as c, normalizeSlackMessagingTarget as i, formatSlackTarget as n, resolveSlackChannelId as o, looksLikeSlackTargetId as r, resolveWorkspaceQualifiedSlackTarget as s, canonicalizeSlackApiTargetId as t };
@@ -1,5 +1,5 @@
1
- import { a as parseSlackTarget, c as slackTargetsMatch } from "./target-parsing-FFE26kOV.mjs";
2
- //#region extensions/slack/src/targets.ts
1
+ import { a as parseSlackTarget, c as slackTargetsMatch } from "./target-parsing-0pRZtahO.mjs";
2
+ // extensions/slack/src/targets.ts
3
3
  function matchesResolvedUserTarget(target, currentMessagingTarget) {
4
4
  const resolvedId = target.trim();
5
5
  if (!/^[UW][A-Z0-9]+$/i.test(resolvedId)) return false;
@@ -9,5 +9,4 @@ function matchesResolvedUserTarget(target, currentMessagingTarget) {
9
9
  function slackContextTargetsMatch(target, context) {
10
10
  return Boolean(context.currentMessagingTarget && (slackTargetsMatch(target, context.currentMessagingTarget) || matchesResolvedUserTarget(target, context.currentMessagingTarget)) || context.currentChannelId && slackTargetsMatch(target, context.currentChannelId));
11
11
  }
12
- //#endregion
13
12
  export { slackContextTargetsMatch as t };