@openclaw/slack 2026.10.10-beta.4 → 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-CgYsBWl6.mjs → action-runtime-DPoxYao5.mjs} +9 -10
  5. package/dist/.setup/action-runtime.runtime-DWKWaKgC.mjs +1 -0
  6. package/dist/.setup/{actions-CafoV8hS.mjs → actions-PF2cP6to.mjs} +14 -22
  7. package/dist/.setup/{approval-handler.runtime-Pty8hAZ9.mjs → approval-handler.runtime-BtRklemy.mjs} +7 -8
  8. package/dist/.setup/{approval-message-updates-DCnXFLf3.mjs → approval-message-updates-CpwbsEj6.mjs} +2 -3
  9. package/dist/.setup/{channel-B7jkkIen.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-BrbGGbzI.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-B36YZetK.mjs → monitor-DsZUQtTM.mjs} +116 -147
  20. package/dist/.setup/{outbound-adapter-BlN9vmT-.mjs → outbound-adapter-C0R5jz6S.mjs} +8 -9
  21. package/dist/.setup/{pipeline.runtime-CT7Krkyw.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-D4eNyn8m.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-DCfb4yWT.mjs → relay-source-DFBDTA5Z.mjs} +4 -6
  27. package/dist/.setup/{replies-Dwwt4eVi.mjs → replies-7DRN46EL.mjs} +7 -9
  28. package/dist/.setup/{reply-blocks-CoZ_dGM_.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-pi6r24yv.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-DQY4hZLd.mjs → session-status-CHkEn3HM.mjs} +39 -59
  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-BDEJ2s49.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-WS3mGjut.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,9 +1,9 @@
1
- import { d as resolveSlackOperationToken, s as resolveSlackAccount } from "./accounts-msihSF3-.mjs";
2
- import { a as parseSlackTarget } from "./target-parsing-FFE26kOV.mjs";
3
- import { K as resolveSlackQuestionActionIds, L as SLACK_QUESTION_FINALIZATION_BLOCKS, M as SLACK_TEXT_LIMIT, ft as SLACK_PRESENTATION_CAPABILITIES, m as assertSlackDetachedTargetAllowed, st as escapeSlackMrkdwn } from "./session-status-DQY4hZLd.mjs";
4
- import { c as resolveSlackReplyDeliveryMessages, i as parseSlackReplyBlockSegments, o as resolveSlackReplyBlockResolution, r as normalizeSlackReplyPayload, u as resolveSlackAuthoredTextPlacement } from "./reply-blocks-CoZ_dGM_.mjs";
5
- import { r as resolveSlackThreadTsValue } from "./thread-ts-Cvt7WD6B.mjs";
6
- import { t as mergeSlackSendResults } from "./send-results-eeOu_HYm.mjs";
1
+ import { d as resolveSlackOperationToken, s as resolveSlackAccount } from "./accounts-CEgdyqoW.mjs";
2
+ import { a as parseSlackTarget } from "./target-parsing-0pRZtahO.mjs";
3
+ import { K as resolveSlackQuestionActionIds, L as SLACK_QUESTION_FINALIZATION_BLOCKS, M as SLACK_TEXT_LIMIT, ft as SLACK_PRESENTATION_CAPABILITIES, m as assertSlackDetachedTargetAllowed, st as escapeSlackMrkdwn } from "./session-status-CHkEn3HM.mjs";
4
+ import { c as resolveSlackReplyDeliveryMessages, i as parseSlackReplyBlockSegments, o as resolveSlackReplyBlockResolution, r as normalizeSlackReplyPayload, u as resolveSlackAuthoredTextPlacement } from "./reply-blocks-DOjiDr44.mjs";
5
+ import { r as resolveSlackThreadTsValue } from "./thread-ts-47Au2-Yn.mjs";
6
+ import { t as mergeSlackSendResults } from "./send-results-D-o6PgtS.mjs";
7
7
  import { normalizeOptionalString } from "openclaw/plugin-sdk/string-coerce-runtime";
8
8
  import { resolveOutboundSendDep } from "openclaw/plugin-sdk/channel-outbound";
9
9
  import { createLazyRuntimeModule } from "openclaw/plugin-sdk/lazy-runtime";
@@ -13,7 +13,7 @@ import { questionGatewayRuntime } from "openclaw/plugin-sdk/question-gateway-run
13
13
  import { createHmac, randomBytes } from "node:crypto";
14
14
  import { safeEqualSecret } from "openclaw/plugin-sdk/security-runtime";
15
15
  import { attachChannelToResult } from "openclaw/plugin-sdk/channel-send-result";
16
- //#region extensions/slack/src/outbound-adapter.ts
16
+ // extensions/slack/src/outbound-adapter.ts
17
17
  function toSlackOutboundResult(result) {
18
18
  const { channelId, ...delivery } = result;
19
19
  return attachChannelToResult("slack", channelId === void 0 ? delivery : {
@@ -44,7 +44,7 @@ function readSlackRenderedPresentation(slackData) {
44
44
  return;
45
45
  }
46
46
  }
47
- const loadSlackSendRuntime = createLazyRuntimeModule(() => import("./send-pi6r24yv.mjs").then((n) => n.n));
47
+ const loadSlackSendRuntime = createLazyRuntimeModule(() => import("./send-C5uXkmZV.mjs").then((n) => n.n));
48
48
  function resolveSlackSendIdentity(identity) {
49
49
  if (!identity) return;
50
50
  const username = normalizeOptionalString(identity.name);
@@ -254,5 +254,4 @@ const slackOutbound = {
254
254
  }));
255
255
  }
256
256
  };
257
- //#endregion
258
257
  export { slackOutbound };
@@ -1,15 +1,15 @@
1
- import { n as __reExport, t as __exportAll } from "./rolldown-runtime-B4FMCO8f.mjs";
2
- import { f as resolveSlackReplyToMode, o as resolveDefaultSlackAccountId } from "./accounts-msihSF3-.mjs";
3
- import { n as formatSlackTarget } from "./target-parsing-FFE26kOV.mjs";
4
- import { D as buildSlackCompleteBlocksFallbackText, E as buildSlackBlocksFallbackText, F as truncateSlackTextByUtf8Bytes, H as SLACK_SESSION_LINK_ACTION_ID, M as SLACK_TEXT_LIMIT, N as countSlackTextUtf8Bytes, P as truncateSlackText, Q as normalizeSlackOutboundText, b as hasSlackNativeDataBlock, k as SLACK_EDIT_TEXT_MAX_BYTES, l as qualifySlackRoutePeerId, st as escapeSlackMrkdwn } from "./session-status-DQY4hZLd.mjs";
5
- import { M as resolveSlackUserAllowed, O as normalizeSlackAllowOwnerEntry, b as writeLruMapEntry, o as formatSlackError, v as pruneExpiredMapEntries, y as readLruMapEntry } from "./probe-IiHogLQN.mjs";
6
- import { a as prepareSlackReply, l as resolveSlackReplyRenderPlan, s as resolveSlackReplyBlocks } from "./reply-blocks-CoZ_dGM_.mjs";
7
- import { n as resolveSlackReplyThreadTs } from "./thread-ts-Cvt7WD6B.mjs";
8
- import { C as hasSlackTableBlock, D as buildSlackEditTextPayload, E as resolveSlackMessageText$1, T as resolveSlackBlocksText, a as editSlackRenderedMessage, b as formatSlackFileReference, d as reactSlackMessage, i as editSlackMessage, m as removeSlackReaction, n as deleteSlackMessage, w as isSlackUnfurlAttachment, x as formatSlackFileReferenceList } from "./actions-CafoV8hS.mjs";
9
- import { c as hasSlackThreadParticipationWithPersistence, i as clearSlackThreadFailureNotice, l as recordSlackThreadFailureNotice, m as buildSlackNativeDataDeliveryPlan, o as hasSlackThreadFailureNotice, p as hasSlackMessageIdentity, s as hasSlackThreadParticipation, t as sendMessageSlack, u as recordSlackThreadParticipation } from "./send-pi6r24yv.mjs";
10
- import { n as resolveSlackChannelConfig } from "./policy-D4eNyn8m.mjs";
11
- import { C as resolveSlackChatType, E as stripSlackMentionsForCommandDetection, S as normalizeSlackChannelType, T as readSlackAssistantThreadContext, _ as appendSlackStream, b as stopSlackStream, c as resolveSlackRoutingContext, g as SlackStreamNotDeliveredError, h as resolveSlackEffectiveAllowFrom, i as resolveSlackRoomContextHints, l as registerSlackSessionRun, m as resolveSlackCommandIngress, p as authorizeSlackBotRoomMessage, r as trackSlackDraftMessage, s as authorizeSlackDirectMessage, u as resolveSlackThreadContext, v as markSlackStreamFallbackDelivered, w as buildSlackAssistantThreadMetadata, y as startSlackStream } from "./monitor-B36YZetK.mjs";
12
- import { a as emitSlackMessageSentHooks, i as sanitizeSlackMonitorReplyPayload, n as deliverReplies, t as createSlackReplyDeliveryPlan } from "./replies-Dwwt4eVi.mjs";
1
+ import { n as __reExport, t as __exportAll } from "./rolldown-runtime-nwUcYXjP.mjs";
2
+ import { f as resolveSlackReplyToMode, o as resolveDefaultSlackAccountId } from "./accounts-CEgdyqoW.mjs";
3
+ import { n as formatSlackTarget } from "./target-parsing-0pRZtahO.mjs";
4
+ import { D as buildSlackCompleteBlocksFallbackText, E as buildSlackBlocksFallbackText, F as truncateSlackTextByUtf8Bytes, H as SLACK_SESSION_LINK_ACTION_ID, M as SLACK_TEXT_LIMIT, N as countSlackTextUtf8Bytes, P as truncateSlackText, Q as normalizeSlackOutboundText, b as hasSlackNativeDataBlock, k as SLACK_EDIT_TEXT_MAX_BYTES, l as qualifySlackRoutePeerId, st as escapeSlackMrkdwn } from "./session-status-CHkEn3HM.mjs";
5
+ import { M as resolveSlackUserAllowed, O as normalizeSlackAllowOwnerEntry, b as writeLruMapEntry, o as formatSlackError, v as pruneExpiredMapEntries, y as readLruMapEntry } from "./probe-C5VWf3sz.mjs";
6
+ import { a as prepareSlackReply, l as resolveSlackReplyRenderPlan, s as resolveSlackReplyBlocks } from "./reply-blocks-DOjiDr44.mjs";
7
+ import { n as resolveSlackReplyThreadTs } from "./thread-ts-47Au2-Yn.mjs";
8
+ import { C as hasSlackTableBlock, D as buildSlackEditTextPayload, E as resolveSlackMessageText$1, T as resolveSlackBlocksText, a as editSlackRenderedMessage, b as formatSlackFileReference, d as reactSlackMessage, i as editSlackMessage, m as removeSlackReaction, n as deleteSlackMessage, w as isSlackUnfurlAttachment, x as formatSlackFileReferenceList } from "./actions-PF2cP6to.mjs";
9
+ import { c as hasSlackThreadParticipationWithPersistence, i as clearSlackThreadFailureNotice, l as recordSlackThreadFailureNotice, m as buildSlackNativeDataDeliveryPlan, o as hasSlackThreadFailureNotice, p as hasSlackMessageIdentity, s as hasSlackThreadParticipation, t as sendMessageSlack, u as recordSlackThreadParticipation } from "./send-C5uXkmZV.mjs";
10
+ import { n as resolveSlackChannelConfig } from "./policy-Bp1FvE6m.mjs";
11
+ import { C as resolveSlackChatType, E as stripSlackMentionsForCommandDetection, S as normalizeSlackChannelType, T as readSlackAssistantThreadContext, _ as appendSlackStream, b as stopSlackStream, c as resolveSlackRoutingContext, g as SlackStreamNotDeliveredError, h as resolveSlackEffectiveAllowFrom, i as resolveSlackRoomContextHints, l as registerSlackSessionRun, m as resolveSlackCommandIngress, p as authorizeSlackBotRoomMessage, r as trackSlackDraftMessage, s as authorizeSlackDirectMessage, u as resolveSlackThreadContext, v as markSlackStreamFallbackDelivered, w as buildSlackAssistantThreadMetadata, y as startSlackStream } from "./monitor-DsZUQtTM.mjs";
12
+ import { a as emitSlackMessageSentHooks, i as sanitizeSlackMonitorReplyPayload, n as deliverReplies, t as createSlackReplyDeliveryPlan } from "./replies-7DRN46EL.mjs";
13
13
  import { asOptionalRecord, normalizeLowercaseStringOrEmpty, normalizeOptionalLowercaseString, normalizeOptionalString, readNonBlankString } from "openclaw/plugin-sdk/string-coerce-runtime";
14
14
  import { resolveInboundLastRouteSessionKey } from "openclaw/plugin-sdk/routing";
15
15
  import { buildChannelProgressDraftLine, compactChannelProgressDraftLine, createChannelMessageReplyPipeline, createChannelProgressDraftCompositor, createChannelProgressWorkCounter, createDraftStreamLoop, createFinalizableDraftLifecycle, createLivePreviewLifecycle, createMessageReceiptFromOutboundResults, resolveAgentOutboundIdentity, resolveChannelMessageSourceReplyDeliveryMode, resolveChannelProgressDraftConfig, resolveChannelProgressDraftMaxLineChars, resolveChannelStreamingBlockEnabled, resolveChannelStreamingPreviewToolProgress, resolveChannelStreamingSuppressDefaultToolProgressMessages, selectPlanChecklistSteps } from "openclaw/plugin-sdk/channel-outbound";
@@ -45,7 +45,7 @@ import { shouldHandleTextCommands } from "openclaw/plugin-sdk/command-surface";
45
45
  import { resolveChannelContextVisibilityMode } from "openclaw/plugin-sdk/context-visibility-runtime";
46
46
  import { DEFAULT_GROUP_HISTORY_LIMIT, buildHistoryContextFromEntries, buildInboundHistoryFromEntries } from "openclaw/plugin-sdk/reply-history";
47
47
  import { createChannelPreflightAudio, formatAudioTranscriptForAgent } from "openclaw/plugin-sdk/media-understanding-runtime";
48
- //#region extensions/slack/src/monitor/message-handler/timestamp.ts
48
+ // extensions/slack/src/monitor/message-handler/timestamp.ts
49
49
  const SLACK_TIMESTAMP_RE = /^\d+(?:\.\d+)?$/;
50
50
  const MAX_SAFE_SLACK_TIMESTAMP_SECONDS = Number.MAX_SAFE_INTEGER / 1e3;
51
51
  function resolveSlackTimestampMs(ts) {
@@ -57,8 +57,7 @@ function resolveSlackTimestampMs(ts) {
57
57
  });
58
58
  return seconds === void 0 ? void 0 : Math.round(seconds * 1e3);
59
59
  }
60
- //#endregion
61
- //#region extensions/slack/src/monitor/message-handler/dispatch-helpers.ts
60
+ // extensions/slack/src/monitor/message-handler/dispatch-helpers.ts
62
61
  function resolveSlackBotLoopProtection(prepared) {
63
62
  const senderBotId = prepared.message.bot_id;
64
63
  if (!senderBotId) return;
@@ -140,8 +139,7 @@ async function resolveSlackStreamRecipientTeamId(params) {
140
139
  }
141
140
  return params.fallbackTeamId;
142
141
  }
143
- //#endregion
144
- //#region extensions/slack/src/draft-stream.ts
142
+ // extensions/slack/src/draft-stream.ts
145
143
  const DEFAULT_THROTTLE_MS = 1e3;
146
144
  function createSlackDraftStream(params) {
147
145
  const maxChars = Math.min(params.maxChars ?? 8e3, SLACK_TEXT_LIMIT);
@@ -315,8 +313,7 @@ function createSlackDraftStream(params) {
315
313
  channelId: () => streamMessage?.channelId
316
314
  };
317
315
  }
318
- //#endregion
319
- //#region extensions/slack/src/stream-mode.ts
316
+ // extensions/slack/src/stream-mode.ts
320
317
  function resolveSlackStreamingConfig(params) {
321
318
  return {
322
319
  mode: params.streaming?.mode ?? "progress",
@@ -365,8 +362,7 @@ function applyAppendOnlyStreamUpdate(params) {
365
362
  changed: true
366
363
  };
367
364
  }
368
- //#endregion
369
- //#region extensions/slack/src/progress-blocks.ts
365
+ // extensions/slack/src/progress-blocks.ts
370
366
  const SLACK_PROGRESS_FIELD_MAX = 1800;
371
367
  const DEFAULT_SLACK_PROGRESS_DETAIL_MAX_CHARS = 120;
372
368
  const DEFAULT_SLACK_PROGRESS_TASK_DETAIL_MAX_CHARS = 48;
@@ -751,8 +747,7 @@ function reconcileSlackNativeTaskChunks(params) {
751
747
  }
752
748
  };
753
749
  }
754
- //#endregion
755
- //#region extensions/slack/src/monitor/message-handler/dispatch-progress-render.ts
750
+ // extensions/slack/src/monitor/message-handler/dispatch-progress-render.ts
756
751
  function resolveStructuredProgressLines(lines) {
757
752
  return lines.map((line) => {
758
753
  if (typeof line !== "string") return line;
@@ -793,8 +788,7 @@ function isSlackProgressTitleText(text, snapshot, explicitTitle) {
793
788
  const title = normalizeProgressText(combineProgressHeadlineAndExplanation(explicitTitle ?? (snapshot.statusHeadlineFormat === "plain" ? void 0 : snapshot.statusHeadline), snapshot.planExplanationFormat === "plain" ? void 0 : snapshot.planExplanation));
794
789
  return title.length > 0 && title.includes(candidate);
795
790
  }
796
- //#endregion
797
- //#region extensions/slack/src/monitor/message-handler/preview-finalize.ts
791
+ // extensions/slack/src/monitor/message-handler/preview-finalize.ts
798
792
  function buildExpectedSlackEditText(params) {
799
793
  const trimmedText = params.text.trim();
800
794
  if (trimmedText) return normalizeSlackOutboundText(trimmedText);
@@ -879,8 +873,7 @@ async function finalizeSlackPreviewEdit(params) {
879
873
  throw err;
880
874
  }
881
875
  }
882
- //#endregion
883
- //#region extensions/slack/src/monitor/message-handler/dispatch-progress-card.ts
876
+ // extensions/slack/src/monitor/message-handler/dispatch-progress-card.ts
884
877
  const MAX_VISIBLE_WORK_LINKS = 5;
885
878
  function createSlackDraftProgressCardRuntime(params) {
886
879
  const { cfg, prepared, slackClient } = params.setup;
@@ -1008,8 +1001,7 @@ function formatSlackProgressDraftLine(line) {
1008
1001
  enclosingStyle: "italic"
1009
1002
  })}_`;
1010
1003
  }
1011
- //#endregion
1012
- //#region extensions/slack/src/monitor/message-handler/dispatch-progress-native.ts
1004
+ // extensions/slack/src/monitor/message-handler/dispatch-progress-native.ts
1013
1005
  function createSlackNativeProgressTransport(params) {
1014
1006
  const { replyPlan } = params.setup;
1015
1007
  const { delivery } = params;
@@ -1070,8 +1062,7 @@ function createSlackNativeProgressTransport(params) {
1070
1062
  waitForStart
1071
1063
  };
1072
1064
  }
1073
- //#endregion
1074
- //#region extensions/slack/src/monitor/message-handler/dispatch-progress.ts
1065
+ // extensions/slack/src/monitor/message-handler/dispatch-progress.ts
1075
1066
  function createSlackProgressRuntime(runtimeParams) {
1076
1067
  const { setup, delivery } = runtimeParams;
1077
1068
  const { cfg, hasSlackCustomIdentity, prepared, replyPlan, runtime, slackIdentity, slackStreaming, slackProgressStyle, quietProgress, shouldUseDraftStream, useStreaming, previewStreamingEnabled } = setup;
@@ -1546,8 +1537,7 @@ function createSlackProgressRuntime(runtimeParams) {
1546
1537
  updateDraftFromPartial
1547
1538
  };
1548
1539
  }
1549
- //#endregion
1550
- //#region extensions/slack/src/monitor/message-handler/dispatch-setup.ts
1540
+ // extensions/slack/src/monitor/message-handler/dispatch-setup.ts
1551
1541
  async function createSlackDispatchSetup(prepared) {
1552
1542
  const { ctx, account, message, route } = prepared;
1553
1543
  const slackClient = prepared.eventScope?.client ?? ctx.app.client;
@@ -1765,8 +1755,7 @@ async function createSlackDispatchSetup(prepared) {
1765
1755
  useStreaming
1766
1756
  };
1767
1757
  }
1768
- //#endregion
1769
- //#region extensions/slack/src/monitor/message-handler/dispatch-streaming.ts
1758
+ // extensions/slack/src/monitor/message-handler/dispatch-streaming.ts
1770
1759
  function createSlackStreamingDeliveryRuntime(setup) {
1771
1760
  const { isThreadReply, messageSentHookContext, messageSentHookTarget, prepared, replyDeliveryMode, replyPlan, runtime, slackClient, slackClientOptions, slackIdentity, slackStreamFallbackTeamId } = setup;
1772
1761
  const { account, ctx, forcedReplyThreadTs, message, slackMessageMetadata } = prepared;
@@ -2095,8 +2084,7 @@ function createSlackStreamingDeliveryRuntime(setup) {
2095
2084
  resetDeliveryTracker: () => deliveredKeys.clear()
2096
2085
  });
2097
2086
  }
2098
- //#endregion
2099
- //#region extensions/slack/src/monitor/message-handler/dispatch.ts
2087
+ // extensions/slack/src/monitor/message-handler/dispatch.ts
2100
2088
  function formatSlackGroupThreadReply(text, participant) {
2101
2089
  return `**${participant.name.replace(/[\\`*_{}[\]()<>#!|]/g, "\\$&").replace(/\s+/g, " ")}**\n${text}`;
2102
2090
  }
@@ -2455,8 +2443,7 @@ async function dispatchSlackMessageWithSetup(setup, beginSessionRun, turnAdoptio
2455
2443
  logVerbose(`slack: delivered ${finalCount} repl${finalCount === 1 ? "y" : "ies"} to ${prepared.replyTarget}`);
2456
2444
  }
2457
2445
  }
2458
- //#endregion
2459
- //#region extensions/slack/src/agent-context.ts
2446
+ // extensions/slack/src/agent-context.ts
2460
2447
  function normalizeEntity(value) {
2461
2448
  const entity = asOptionalRecord(value);
2462
2449
  const type = normalizeOptionalString(entity?.type);
@@ -2494,8 +2481,7 @@ function normalizeSlackAppContextEntities(value) {
2494
2481
  return normalized ? [normalized] : [];
2495
2482
  });
2496
2483
  }
2497
- //#endregion
2498
- //#region extensions/slack/src/monitor/thread.ts
2484
+ // extensions/slack/src/monitor/thread.ts
2499
2485
  const THREAD_STARTER_CACHE = /* @__PURE__ */ new Map();
2500
2486
  const THREAD_STARTER_CACHE_TTL_MS = 216e5;
2501
2487
  const THREAD_STARTER_CACHE_MAX = 2e3;
@@ -2676,8 +2662,7 @@ async function resolveSlackChannelHistory(params) {
2676
2662
  }
2677
2663
  return messages.slice(0, params.limit).toReversed();
2678
2664
  }
2679
- //#endregion
2680
- //#region extensions/slack/src/monitor/message-handler/preflight-audio.ts
2665
+ // extensions/slack/src/monitor/message-handler/preflight-audio.ts
2681
2666
  function isSlackAudioFile(file) {
2682
2667
  if (file.subtype === "slack_audio") return true;
2683
2668
  if ((file.mimetype?.split(";")[0]?.trim().toLowerCase())?.startsWith("audio/")) return true;
@@ -2720,13 +2705,12 @@ const sendSlackPreflightAudioTranscriptEcho = slackPreflightAudio.send.bind(slac
2720
2705
  async function discardSlackPreflightMedia(media) {
2721
2706
  await Promise.allSettled((media ?? []).map((entry) => fs.rm(entry.path, { force: true })));
2722
2707
  }
2723
- //#endregion
2724
- //#region extensions/slack/src/monitor/message-handler/prepare-content.ts
2708
+ // extensions/slack/src/monitor/message-handler/prepare-content.ts
2725
2709
  const SLACK_MENTION_RESOLUTION_CONCURRENCY = 4;
2726
2710
  const SLACK_MENTION_RESOLUTION_MAX_LOOKUPS_PER_MESSAGE = 20;
2727
2711
  const SLACK_USER_MENTION_RE$1 = /<@([A-Z0-9]+)(?:\|[^>]+)?>/gi;
2728
2712
  const MAX_SLACK_UNAVAILABLE_FILE_TEXT_CHARS = 2e3;
2729
- const loadSlackMediaModule$1 = createLazyRuntimeModule(() => import("./actions-CafoV8hS.mjs").then((n) => n._));
2713
+ const loadSlackMediaModule$1 = createLazyRuntimeModule(() => import("./actions-PF2cP6to.mjs").then((n) => n._));
2730
2714
  function formatSlackUnavailableMedia(params) {
2731
2715
  let fileReferences = params.files?.map((file) => `${formatSlackFileReference(file)} unavailable (${file.reason})`).join(", ");
2732
2716
  if (fileReferences && fileReferences.length > MAX_SLACK_UNAVAILABLE_FILE_TEXT_CHARS) fileReferences = `${truncateUtf16Safe(fileReferences, MAX_SLACK_UNAVAILABLE_FILE_TEXT_CHARS)}; … (file references truncated)`;
@@ -2834,8 +2818,7 @@ async function resolveSlackMessageContent(params) {
2834
2818
  mentionStripPatterns
2835
2819
  } : null;
2836
2820
  }
2837
- //#endregion
2838
- //#region extensions/slack/src/monitor/message-handler/prepare-dm-history.ts
2821
+ // extensions/slack/src/monitor/message-handler/prepare-dm-history.ts
2839
2822
  function resolveSlackDmHistoryLimit(params) {
2840
2823
  const override = params.userId ? params.account.config.dms?.[params.userId]?.historyLimit : void 0;
2841
2824
  return resolvePromptHistoryLimit(override ?? params.defaultLimit, 0);
@@ -2908,16 +2891,14 @@ async function resolveSlackDmHistoryContext(params) {
2908
2891
  };
2909
2892
  }
2910
2893
  }
2911
- //#endregion
2912
- //#region extensions/slack/src/monitor/message-handler/prepare-thread-context-root.ts
2894
+ // extensions/slack/src/monitor/message-handler/prepare-thread-context-root.ts
2913
2895
  function isSlackThreadAuthorCurrentBot(params) {
2914
2896
  const { identity, author } = params;
2915
2897
  if (identity.botUserId && author.userId && author.userId === identity.botUserId) return true;
2916
2898
  if (identity.botId && author.botId && author.botId === identity.botId) return true;
2917
2899
  return false;
2918
2900
  }
2919
- //#endregion
2920
- //#region extensions/slack/src/monitor/message-handler/prepare-room-history.ts
2901
+ // extensions/slack/src/monitor/message-handler/prepare-room-history.ts
2921
2902
  const SLACK_HISTORY_MEDIA_MAX_ATTACHMENTS = 4;
2922
2903
  const SLACK_HISTORY_MEDIA_MAX_BYTES = 10485760;
2923
2904
  const SLACK_HISTORY_MEDIA_IDLE_TIMEOUT_MS = 1e3;
@@ -3072,17 +3053,15 @@ async function resolveSlackHistoryMedia(params) {
3072
3053
  attempted
3073
3054
  };
3074
3055
  }
3075
- //#endregion
3076
- //#region extensions/slack/src/monitor/message-handler/prepare-session-presentation.ts
3056
+ // extensions/slack/src/monitor/message-handler/prepare-session-presentation.ts
3077
3057
  function resolveSlackGroupSessionSubject(params) {
3078
3058
  const channelName = normalizeOptionalString(params.channelName);
3079
3059
  const workspaceName = normalizeOptionalString(params.installationIdentity?.kind === "workspace" && params.installationIdentity.teamId === params.workspaceId ? params.installationIdentity.teamName : void 0);
3080
3060
  if (channelName && workspaceName) return `${workspaceName} #${channelName}`;
3081
3061
  return `Slack Channel (Workspace ID: ${params.workspaceId}, Channel ID: ${params.channelId})`;
3082
3062
  }
3083
- //#endregion
3084
- //#region extensions/slack/src/monitor/message-handler/prepare-thread-context.ts
3085
- const loadSlackMediaModule = createLazyRuntimeModule(() => import("./actions-CafoV8hS.mjs").then((n) => n._));
3063
+ // extensions/slack/src/monitor/message-handler/prepare-thread-context.ts
3064
+ const loadSlackMediaModule = createLazyRuntimeModule(() => import("./actions-PF2cP6to.mjs").then((n) => n._));
3086
3065
  const SLACK_THREAD_CONTEXT_USER_LOOKUP_CONCURRENCY = 4;
3087
3066
  function formatSlackThreadLabelSnippet(text) {
3088
3067
  return truncateUtf16Safe(text.replace(/\s+/g, " "), 80);
@@ -3289,8 +3268,7 @@ async function resolveSlackThreadContextData(params) {
3289
3268
  threadStarterMedia
3290
3269
  };
3291
3270
  }
3292
- //#endregion
3293
- //#region src/channels/mention-gating.ts
3271
+ // src/channels/mention-gating.ts
3294
3272
  function resolveBotThreadMentionPolicy(params) {
3295
3273
  if (!params.isBotOwnedThread || params.requireMentionInBotThreads === void 0) return {
3296
3274
  requireMention: params.requireMention,
@@ -3301,13 +3279,11 @@ function resolveBotThreadMentionPolicy(params) {
3301
3279
  implicitMentionKinds: params.requireMentionInBotThreads ? params.implicitMentionKinds?.filter((kind) => kind === "native") : params.implicitMentionKinds
3302
3280
  };
3303
3281
  }
3304
- //#endregion
3305
- //#region \0openclaw:bundled-sdk:openclaw/plugin-sdk/channel-mention-gating
3282
+ // \0openclaw:bundled-sdk:openclaw/plugin-sdk/channel-mention-gating
3306
3283
  var channel_mention_gating_exports = /* @__PURE__ */ __exportAll({ resolveBotThreadMentionPolicy: () => resolveBotThreadMentionPolicy });
3307
3284
  import * as import_openclaw_plugin_sdk_channel_mention_gating from "openclaw/plugin-sdk/channel-mention-gating";
3308
3285
  __reExport(channel_mention_gating_exports, import_openclaw_plugin_sdk_channel_mention_gating);
3309
- //#endregion
3310
- //#region extensions/slack/src/monitor/message-handler/prepare-thread-mentions.ts
3286
+ // extensions/slack/src/monitor/message-handler/prepare-thread-mentions.ts
3311
3287
  async function resolveSlackThreadMentionPolicy(params) {
3312
3288
  const { ctx, account, message, conversation, thread } = params;
3313
3289
  const { isRoom, isDirectMessage, channelConfig } = conversation;
@@ -3341,8 +3317,7 @@ async function resolveSlackThreadMentionPolicy(params) {
3341
3317
  implicitMentionKinds
3342
3318
  });
3343
3319
  }
3344
- //#endregion
3345
- //#region extensions/slack/src/monitor/message-handler/subteam-mentions.ts
3320
+ // extensions/slack/src/monitor/message-handler/subteam-mentions.ts
3346
3321
  const SUBTEAM_MENTION_RE = /<!subteam\^([A-Z0-9]+)(?:\|[^>]*)?>/gi;
3347
3322
  const SUBTEAM_MEMBER_CACHE_TTL_MS = 3e5;
3348
3323
  const subteamMemberCache = /* @__PURE__ */ new WeakMap();
@@ -3407,8 +3382,7 @@ async function isSlackSubteamMentionForBot(params) {
3407
3382
  })).has(botUserId)) return true;
3408
3383
  return false;
3409
3384
  }
3410
- //#endregion
3411
- //#region extensions/slack/src/monitor/message-handler/prepare.ts
3385
+ // extensions/slack/src/monitor/message-handler/prepare.ts
3412
3386
  const mentionRegexCache = /* @__PURE__ */ new WeakMap();
3413
3387
  const SLACK_ANY_MENTION_RE = /<@[^>]+>|<!subteam\^[^>]+>/;
3414
3388
  const SLACK_USER_MENTION_RE = /<@([^>|]+)(?:\|[^>]+)?>/g;
@@ -4350,5 +4324,4 @@ async function prepareSlackMessage(params) {
4350
4324
  ackReactionPromise
4351
4325
  };
4352
4326
  }
4353
- //#endregion
4354
4327
  export { dispatchPreparedSlackMessage, prepareSlackMessage };
@@ -1,6 +1,6 @@
1
- import { r as normalizeSlackWebhookPath, t as handleSlackHttpRequest } from "./registry-DizWcnNp.mjs";
1
+ import { r as normalizeSlackWebhookPath, t as handleSlackHttpRequest } from "./registry-1G0f1zuZ.mjs";
2
2
  import { DEFAULT_ACCOUNT_ID } from "openclaw/plugin-sdk/account-id";
3
- //#region extensions/slack/src/http/plugin-routes.ts
3
+ // extensions/slack/src/http/plugin-routes.ts
4
4
  function resolveSlackWebhookPaths(config) {
5
5
  const slack = config.channels?.slack;
6
6
  const accountConfigs = slack?.accounts ?? {};
@@ -18,5 +18,4 @@ function registerSlackPluginHttpRoutes(api) {
18
18
  handler: async (req, res) => await handleSlackHttpRequest(req, res)
19
19
  });
20
20
  }
21
- //#endregion
22
21
  export { registerSlackPluginHttpRoutes as t };
@@ -1,9 +1,9 @@
1
- import { i as buildSlackChannelPolicyScope, r as buildSlackChannelIdCandidates } from "./session-status-DQY4hZLd.mjs";
2
- import { j as resolveSlackUserAllowListForTeam, k as normalizeSlackSlug } from "./probe-IiHogLQN.mjs";
1
+ import { i as buildSlackChannelPolicyScope, r as buildSlackChannelIdCandidates } from "./session-status-CHkEn3HM.mjs";
2
+ import { j as resolveSlackUserAllowListForTeam, k as normalizeSlackSlug } from "./probe-C5VWf3sz.mjs";
3
3
  import { applyChannelMatchMeta, buildChannelKeyCandidates } from "openclaw/plugin-sdk/channel-targets";
4
4
  import { firstDefined } from "openclaw/plugin-sdk/allow-from";
5
5
  import { mergePairLoopGuardConfig } from "openclaw/plugin-sdk/pair-loop-guard-runtime";
6
- //#region extensions/slack/src/monitor/channel-config.ts
6
+ // extensions/slack/src/monitor/channel-config.ts
7
7
  function resolveSlackChannelLabel(params) {
8
8
  const channelName = params.channelName?.trim();
9
9
  if (channelName) return `#${normalizeSlackSlug(channelName) || channelName}`;
@@ -52,11 +52,9 @@ function resolveSlackChannelConfig(params) {
52
52
  };
53
53
  return applyChannelMatchMeta(result, match);
54
54
  }
55
- //#endregion
56
- //#region extensions/slack/src/monitor/policy.ts
55
+ // extensions/slack/src/monitor/policy.ts
57
56
  function isSlackChannelAllowedByPolicy(params) {
58
57
  if (params.groupPolicy === "disabled") return false;
59
58
  return params.groupPolicy !== "allowlist" || params.channelAllowlistConfigured && params.channelAllowed;
60
59
  }
61
- //#endregion
62
60
  export { resolveSlackChannelConfig as n, resolveSlackChannelLabel as r, isSlackChannelAllowedByPolicy as t };
@@ -1,6 +1,6 @@
1
- import { t as __exportAll } from "./rolldown-runtime-B4FMCO8f.mjs";
2
- import { p as formatSlackBotTokenIdentityWarning } from "./accounts-msihSF3-.mjs";
3
- import { a as parseSlackTarget } from "./target-parsing-FFE26kOV.mjs";
1
+ import { t as __exportAll } from "./rolldown-runtime-nwUcYXjP.mjs";
2
+ import { p as formatSlackBotTokenIdentityWarning } from "./accounts-CEgdyqoW.mjs";
3
+ import { a as parseSlackTarget } from "./target-parsing-0pRZtahO.mjs";
4
4
  import { createRequire } from "node:module";
5
5
  import { isRecord, normalizeOptionalLowercaseString } from "openclaw/plugin-sdk/string-coerce-runtime";
6
6
  import { sleepWithAbort } from "openclaw/plugin-sdk/runtime-env";
@@ -16,7 +16,7 @@ import { parseRetryAfterHeaderSeconds, retryAsync } from "openclaw/plugin-sdk/re
16
16
  import { fetchWithRuntimeDispatcher } from "openclaw/plugin-sdk/runtime-fetch";
17
17
  import { redactSensitiveText } from "openclaw/plugin-sdk/logging-core";
18
18
  import { defineStableChannelIngressIdentity } from "openclaw/plugin-sdk/channel-ingress-runtime";
19
- //#region extensions/slack/src/monitor/allow-list.ts
19
+ // extensions/slack/src/monitor/allow-list.ts
20
20
  const SLACK_SLUG_CACHE_MAX = 512;
21
21
  const SLACK_STABLE_USER_ID_RE = /^[ubw][a-z0-9]+$/;
22
22
  const slackSlugCache = /* @__PURE__ */ new Map();
@@ -113,8 +113,7 @@ function resolveSlackUserAllowListForTeam(params) {
113
113
  }
114
114
  });
115
115
  }
116
- //#endregion
117
- //#region extensions/slack/src/client-options.ts
116
+ // extensions/slack/src/client-options.ts
118
117
  const SLACK_DEFAULT_RETRY_OPTIONS = {
119
118
  retries: 2,
120
119
  factor: 2,
@@ -286,8 +285,7 @@ function resolveSlackLookupClientOptions(options = {}, dispatcher = resolveSlack
286
285
  resolved.timeout ??= SLACK_READ_TIMEOUT_MS;
287
286
  return resolved;
288
287
  }
289
- //#endregion
290
- //#region extensions/slack/src/monitor/lru-map-cache.ts
288
+ // extensions/slack/src/monitor/lru-map-cache.ts
291
289
  /** LRU-touch read: move hit to newest so pruneMapToMaxSize keeps active keys. */
292
290
  function readLruMapEntry(cache, cacheKey) {
293
291
  const cached = cache.get(cacheKey);
@@ -305,8 +303,7 @@ function writeLruMapEntry(cache, cacheKey, entry, maxEntries) {
305
303
  function pruneExpiredMapEntries(cache, now) {
306
304
  for (const [key, entry] of cache) if (entry.expiresAt <= now) cache.delete(key);
307
305
  }
308
- //#endregion
309
- //#region extensions/slack/src/client.ts
306
+ // extensions/slack/src/client.ts
310
307
  const SLACK_WRITE_CLIENT_CACHE_MAX = 32;
311
308
  const SLACK_STARTUP_AUTH_TIMEOUT_MS = 1e4;
312
309
  const SLACK_STARTUP_AUTH_RETRY_BUDGET_MS = 35e3;
@@ -392,8 +389,7 @@ function getSlackListenerWriteClient(params) {
392
389
  else if (!cached) slackListenerWriteClientCache.set(params.listenerClient, { teamId });
393
390
  return client;
394
391
  }
395
- //#endregion
396
- //#region extensions/slack/src/cursor-pages.ts
392
+ // extensions/slack/src/cursor-pages.ts
397
393
  const SLACK_CURSOR_PAGE_LIMIT = 1e4;
398
394
  const fetchSlackChannelListPage = (client, cursor) => client.conversations.list({
399
395
  types: "public_channel,private_channel",
@@ -416,8 +412,7 @@ async function collectSlackCursorPages(params) {
416
412
  }
417
413
  throw new Error(`Slack cursor pagination exceeded ${SLACK_CURSOR_PAGE_LIMIT} pages`);
418
414
  }
419
- //#endregion
420
- //#region extensions/slack/src/errors.ts
415
+ // extensions/slack/src/errors.ts
421
416
  const NO_ERROR_DETAIL = "no error detail";
422
417
  const MAX_ERROR_CAUSE_DEPTH = 32;
423
418
  function getSlackWebApiErrorData(error) {
@@ -528,8 +523,7 @@ function formatSlackErrorWithCauses(error, fallback, seen) {
528
523
  function formatSlackError(error, fallback = NO_ERROR_DETAIL) {
529
524
  return formatSlackErrorWithCauses(error, fallback, /* @__PURE__ */ new Set());
530
525
  }
531
- //#endregion
532
- //#region extensions/slack/src/monitor/ingress-identity.ts
526
+ // extensions/slack/src/monitor/ingress-identity.ts
533
527
  const SLACK_USER_NAME_KIND = "plugin:slack-user-name";
534
528
  const SLACK_WORKSPACE_USER_ID_KIND = "plugin:slack-workspace-user-id";
535
529
  function normalizeSlackUserId(raw) {
@@ -629,8 +623,7 @@ function createSlackIngressSubject(params) {
629
623
  }
630
624
  };
631
625
  }
632
- //#endregion
633
- //#region extensions/slack/src/probe.ts
626
+ // extensions/slack/src/probe.ts
634
627
  var probe_exports = /* @__PURE__ */ __exportAll({ probeSlack: () => probeSlack });
635
628
  async function probeSlack(token, timeoutMs = 2500, opts) {
636
629
  const dispatcher = createSlackProbeDispatcher(timeoutMs);
@@ -690,5 +683,4 @@ async function probeSlack(token, timeoutMs = 2500, opts) {
690
683
  await dispatcher.destroy().catch(() => void 0);
691
684
  }
692
685
  }
693
- //#endregion
694
686
  export { resolveSlackAllowListMatch as A, resolveSlackLookupClientOptions as C, allowListMatches as D, resolveSlackWriteClientOptions as E, resolveSlackUserAllowed as M, normalizeSlackAllowOwnerEntry as O, SLACK_WRITE_RETRY_OPTIONS as S, resolveSlackWebClientOptions as T, getSlackWriteClient as _, slackIngressIdentity as a, writeLruMapEntry as b, collectSlackCursorPages as c, createSlackReadClient as d, createSlackStartupAuthClient as f, getSlackListenerWriteClient as g, createSlackWriteClient as h, createSlackIngressSubject as i, resolveSlackUserAllowListForTeam as j, normalizeSlackSlug as k, fetchSlackChannelListPage as l, createSlackWebClient as m, probe_exports as n, formatSlackError as o, createSlackTokenCacheKey as p, SLACK_USER_NAME_KIND as r, getSlackWebApiErrorData as s, probeSlack as t, createSlackLookupClient as u, pruneExpiredMapEntries as v, resolveSlackMonitorDispatchers as w, SLACK_DEFAULT_RETRY_OPTIONS as x, readLruMapEntry as y };
@@ -1,12 +1,11 @@
1
1
  import { resolveGlobalMap } from "openclaw/plugin-sdk/global-singleton";
2
- //#region extensions/slack/src/http/paths.ts
2
+ // extensions/slack/src/http/paths.ts
3
3
  function normalizeSlackWebhookPath(path) {
4
4
  const trimmed = path?.trim();
5
5
  if (!trimmed) return "/slack/events";
6
6
  return trimmed.startsWith("/") ? trimmed : `/${trimmed}`;
7
7
  }
8
- //#endregion
9
- //#region extensions/slack/src/http/registry.ts
8
+ // extensions/slack/src/http/registry.ts
10
9
  const slackHttpRoutes = resolveGlobalMap(Symbol.for("openclaw.slack.httpRoutes.v1"));
11
10
  function registerSlackHttpHandler(params) {
12
11
  const normalizedPath = normalizeSlackWebhookPath(params.path);
@@ -32,5 +31,4 @@ async function handleSlackHttpRequest(req, res) {
32
31
  await handler(req, res);
33
32
  return true;
34
33
  }
35
- //#endregion
36
34
  export { registerSlackHttpHandler as n, normalizeSlackWebhookPath as r, handleSlackHttpRequest as t };
@@ -1,12 +1,12 @@
1
- import { o as formatSlackError } from "./probe-IiHogLQN.mjs";
2
- import { d as parseSlackMessageEvent, f as requireSlackMessageEvent, x as SLACK_SOCKET_RECONNECT_POLICY } from "./monitor-B36YZetK.mjs";
1
+ import { o as formatSlackError } from "./probe-C5VWf3sz.mjs";
2
+ import { d as parseSlackMessageEvent, f as requireSlackMessageEvent, x as SLACK_SOCKET_RECONNECT_POLICY } from "./monitor-DsZUQtTM.mjs";
3
3
  import { asOptionalRecord, normalizeOptionalString, readStringValue } from "openclaw/plugin-sdk/string-coerce-runtime";
4
4
  import { computeBackoff, sleepWithAbort, warn } from "openclaw/plugin-sdk/runtime-env";
5
5
  import { createNodeProxyAgent } from "openclaw/plugin-sdk/fetch-runtime";
6
6
  import { isIP } from "node:net";
7
7
  import { rawDataToString } from "openclaw/plugin-sdk/webhook-ingress";
8
8
  import { WebSocket } from "openclaw/plugin-sdk/websocket-runtime";
9
- //#region extensions/slack/src/monitor/relay-source.ts
9
+ // extensions/slack/src/monitor/relay-source.ts
10
10
  const SLACK_RELAY_ROUTE_KINDS = /* @__PURE__ */ new Set([
11
11
  "user_group",
12
12
  "thread_affinity",
@@ -137,8 +137,7 @@ function runRelayWebSocket(params) {
137
137
  });
138
138
  };
139
139
  const onError = (error) => {
140
- cleanup();
141
- reject(error);
140
+ settleReject(error);
142
141
  };
143
142
  const onClose = (code, reason) => {
144
143
  const closeReason = formatRelayClose(code, reason);
@@ -247,5 +246,4 @@ function formatRelayClose(code, reason) {
247
246
  const text = reason.toString("utf8");
248
247
  return text ? `Slack relay websocket closed (${code} ${text})` : `Slack relay websocket closed (${code})`;
249
248
  }
250
- //#endregion
251
249
  export { SLACK_RELAY_MAX_PAYLOAD_BYTES, SlackRelayMalformedFrameError, buildRelayWebSocketOptions, buildRelayWebSocketUrl, monitorSlackRelaySource, parseRelayFrame, requireSlackMessageEvent };
@@ -1,8 +1,8 @@
1
- import { C as isSlackNativeResponseUrlRejection, M as SLACK_TEXT_LIMIT, S as isSlackInvalidBlocksResponse, Z as markdownToSlackMrkdwnChunks, b as hasSlackNativeDataBlock } from "./session-status-DQY4hZLd.mjs";
2
- import { n as iterateSlackReplyDeliveryMessages, o as resolveSlackReplyBlockResolution, t as hasSlackReplyStructuredContent } from "./reply-blocks-CoZ_dGM_.mjs";
3
- import { n as resolveSlackReplyThreadTs } from "./thread-ts-Cvt7WD6B.mjs";
4
- import { h as chunkSlackTextAtHardLimit, m as buildSlackNativeDataDeliveryPlan, t as sendMessageSlack } from "./send-pi6r24yv.mjs";
5
- import { a as SlackResponseAlreadyReportedError, o as createSlackResponseUrlBudget } from "./monitor-B36YZetK.mjs";
1
+ import { C as isSlackNativeResponseUrlRejection, M as SLACK_TEXT_LIMIT, S as isSlackInvalidBlocksResponse, Z as markdownToSlackMrkdwnChunks, b as hasSlackNativeDataBlock } from "./session-status-CHkEn3HM.mjs";
2
+ import { n as iterateSlackReplyDeliveryMessages, o as resolveSlackReplyBlockResolution, t as hasSlackReplyStructuredContent } from "./reply-blocks-DOjiDr44.mjs";
3
+ import { n as resolveSlackReplyThreadTs } from "./thread-ts-47Au2-Yn.mjs";
4
+ import { h as chunkSlackTextAtHardLimit, m as buildSlackNativeDataDeliveryPlan, t as sendMessageSlack } from "./send-C5uXkmZV.mjs";
5
+ import { a as SlackResponseAlreadyReportedError, o as createSlackResponseUrlBudget } from "./monitor-DsZUQtTM.mjs";
6
6
  import { sanitizeAssistantVisibleText } from "openclaw/plugin-sdk/text-chunking";
7
7
  import { createReplyReferencePlanner } from "openclaw/plugin-sdk/reply-reference";
8
8
  import { deliverTextOrMediaReply, getReplyPayloadTtsSupplement, resolveSendableOutboundReplyParts } from "openclaw/plugin-sdk/reply-payload";
@@ -12,7 +12,7 @@ import { SILENT_REPLY_TOKEN, chunkMarkdownTextWithMode, isSilentReplyText } from
12
12
  import { getGlobalHookRunner } from "openclaw/plugin-sdk/plugin-runtime";
13
13
  import { createAcceptedChannelDeliveryResult, createChannelPartialDeliveryError, getGroupThreadDeliverySession } from "openclaw/plugin-sdk/channel-inbound";
14
14
  import { buildCanonicalSentMessageHookContext, createInternalHookEvent, fireAndForgetHook, toInternalMessageSentContext, toPluginMessageContext, toPluginMessageSentEvent, triggerInternalHook } from "openclaw/plugin-sdk/hook-runtime";
15
- //#region extensions/slack/src/message-sent-hook.ts
15
+ // extensions/slack/src/message-sent-hook.ts
16
16
  function emitSlackMessageSentHooks(params) {
17
17
  const hookRunner = getGlobalHookRunner();
18
18
  const enabled = hookRunner?.hasHooks("message_sent") ?? false;
@@ -33,8 +33,7 @@ function emitSlackMessageSentHooks(params) {
33
33
  if (enabled) fireAndForgetHook(Promise.resolve(hookRunner.runMessageSent(toPluginMessageSentEvent(canonical), toPluginMessageContext(canonical))), "slack: message_sent plugin hook failed");
34
34
  if (params.sessionKeyForInternalHooks) fireAndForgetHook(triggerInternalHook(createInternalHookEvent("message", "sent", params.sessionKeyForInternalHooks, toInternalMessageSentContext(canonical))), "slack: message:sent internal hook failed");
35
35
  }
36
- //#endregion
37
- //#region extensions/slack/src/monitor/replies.ts
36
+ // extensions/slack/src/monitor/replies.ts
38
37
  function compactSlackResponseUrlFallback(messages) {
39
38
  if (messages.length <= 1) return [...messages];
40
39
  if (messages.every((message) => !message.blocks?.length)) return chunkSlackTextAtHardLimit(messages.map((message) => message.text).join("")).map((text) => ({
@@ -421,5 +420,4 @@ async function deliverSlackSlashReplies(params) {
421
420
  });
422
421
  }
423
422
  }
424
- //#endregion
425
423
  export { emitSlackMessageSentHooks as a, sanitizeSlackMonitorReplyPayload as i, deliverReplies as n, deliverSlackSlashReplies as r, createSlackReplyDeliveryPlan as t };
@@ -1,10 +1,10 @@
1
- import { $ as buildSlackDataVisualizationBlock, D as buildSlackCompleteBlocksFallbackText, E as buildSlackBlocksFallbackText, I as SLACK_BUTTON_ACTION_IDS, J as encodeSlackQuestionAction, O as renderSlackBlockFallbackText, P as truncateSlackText, V as SLACK_SELECT_ACTION_IDS, X as chunkSlackMrkdwnText, Z as markdownToSlackMrkdwnChunks, at as renderSlackMessagePresentationChartFallbackText, b as hasSlackNativeDataBlock, et as hasSlackDataVisualizationBlock, g as appendSlackNativeDataFallbackText, ht as parseSlackBlocksInput, it as countSlackDataTableCellCharacters, nt as buildSlackDataTableBlock, pt as SLACK_SECTION_TEXT_MAX, rt as countSlackDataTableBlocksCellCharacters, ut as encodeSlackApprovalAction, v as buildSlackNativeDataAccessibilityText } from "./session-status-DQY4hZLd.mjs";
1
+ import { $ as buildSlackDataVisualizationBlock, D as buildSlackCompleteBlocksFallbackText, E as buildSlackBlocksFallbackText, I as SLACK_BUTTON_ACTION_IDS, J as encodeSlackQuestionAction, O as renderSlackBlockFallbackText, P as truncateSlackText, V as SLACK_SELECT_ACTION_IDS, X as chunkSlackMrkdwnText, Z as markdownToSlackMrkdwnChunks, at as renderSlackMessagePresentationChartFallbackText, b as hasSlackNativeDataBlock, et as hasSlackDataVisualizationBlock, g as appendSlackNativeDataFallbackText, ht as parseSlackBlocksInput, it as countSlackDataTableCellCharacters, nt as buildSlackDataTableBlock, pt as SLACK_SECTION_TEXT_MAX, rt as countSlackDataTableBlocksCellCharacters, ut as encodeSlackApprovalAction, v as buildSlackNativeDataAccessibilityText } from "./session-status-CHkEn3HM.mjs";
2
2
  import { asOptionalRecord, normalizeOptionalString } from "openclaw/plugin-sdk/string-coerce-runtime";
3
3
  import { chunkTextForOutbound } from "openclaw/plugin-sdk/text-chunking";
4
4
  import { legacyInteractiveReplyToPresentation, normalizeMessagePresentation, renderMessagePresentationFallbackText, resolveMessagePresentationButtonAction, resolveMessagePresentationOptionAction } from "openclaw/plugin-sdk/interactive-runtime";
5
5
  import { parseExecApprovalCommandText } from "openclaw/plugin-sdk/approval-reply-runtime";
6
6
  import { resolveAskUserQuestionOptionIndex, resolveAskUserQuestionOptionIndices, resolveSendableOutboundReplyParts } from "openclaw/plugin-sdk/reply-payload";
7
- //#region extensions/slack/src/blocks-render.ts
7
+ // extensions/slack/src/blocks-render.ts
8
8
  const SLACK_BUTTON_URL_MAX = 3e3;
9
9
  function buildSlackPlainText(text, maxLength) {
10
10
  return {
@@ -268,8 +268,7 @@ function buildSlackPresentationSelectElements(block, selectIndex, requireComplet
268
268
  }))
269
269
  }] : [];
270
270
  }
271
- //#endregion
272
- //#region extensions/slack/src/authored-text.ts
271
+ // extensions/slack/src/authored-text.ts
273
272
  function normalizeComparableSlackText(text) {
274
273
  return text.trim().replace(/\s+/g, " ");
275
274
  }
@@ -298,8 +297,7 @@ function resolveSlackAuthoredTextPlacement(params) {
298
297
  if (!text) return "none";
299
298
  return params.renderedInBlocks || isSlackAuthoredTextRepresentedInFragments(text, params.renderedTextFragments ?? []) || isSlackAuthoredTextRepresentedInFragments(text, params.interactive?.blocks.flatMap((block) => block.type === "text" ? [block.text] : []) ?? []) ? "blocks" : "outside-blocks";
300
299
  }
301
- //#endregion
302
- //#region extensions/slack/src/reply-blocks.ts
300
+ // extensions/slack/src/reply-blocks.ts
303
301
  function normalizeSlackReplyPayload(payload) {
304
302
  const previousSlackData = asOptionalRecord(payload.channelData?.slack) ?? {};
305
303
  const { authoredPresentationText: _authoredPresentationText, ...slackData } = previousSlackData;
@@ -647,5 +645,4 @@ function resolveSlackReplyBlocks(payload) {
647
645
  const { segments } = resolveSlackReplyBlockResolution(payload);
648
646
  return segments.length === 1 && segments[0]?.kind === "blocks" ? segments[0].blocks : void 0;
649
647
  }
650
- //#endregion
651
648
  export { prepareSlackReply as a, resolveSlackReplyDeliveryMessages as c, buildSlackInteractiveBlocks as d, buildSlackPresentationBlocks as f, parseSlackReplyBlockSegments as i, resolveSlackReplyRenderPlan as l, iterateSlackReplyDeliveryMessages as n, resolveSlackReplyBlockResolution as o, buildSlackPresentationBlocksIfComplete as p, normalizeSlackReplyPayload as r, resolveSlackReplyBlocks as s, hasSlackReplyStructuredContent as t, resolveSlackAuthoredTextPlacement as u };