@openclaw/slack 2026.10.5 → 2026.10.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (22) hide show
  1. package/dist/.setup/{action-runtime-DtOIVezL.mjs → action-runtime-DP76Xs8B.mjs} +4 -4
  2. package/dist/.setup/action-runtime.runtime-9GVSH-nB.mjs +1 -0
  3. package/dist/.setup/{actions-Ch4O8XbW.mjs → actions-DH287DuD.mjs} +2 -2
  4. package/dist/.setup/{approval-handler.runtime-DqAUYttU.mjs → approval-handler.runtime-Cz4AcwuF.mjs} +4 -4
  5. package/dist/.setup/{approval-message-updates-BZohzbfY.mjs → approval-message-updates-CDf5hnhO.mjs} +1 -1
  6. package/dist/.setup/{channel-C6Y0ZA9K.mjs → channel-ChScqMJw.mjs} +9 -9
  7. package/dist/.setup/{channel-type-DFD9jUWJ.mjs → channel-type-DjOFlEWC.mjs} +1 -1
  8. package/dist/.setup/{monitor-CNECe8FK.mjs → monitor-CsMog7BO.mjs} +12 -12
  9. package/dist/.setup/{outbound-adapter-CEh2K9pB.mjs → outbound-adapter-BxfxyNoZ.mjs} +3 -3
  10. package/dist/.setup/{pipeline.runtime-q5AyVl22.mjs → pipeline.runtime-aazZmSGt.mjs} +9 -9
  11. package/dist/.setup/{policy-DhgXcV3u.mjs → policy-CVFgJHQ1.mjs} +1 -1
  12. package/dist/.setup/{relay-source-DYuDAF94.mjs → relay-source-DYsxgCR_.mjs} +2 -3
  13. package/dist/.setup/{replies-BNr7i3d0.mjs → replies-C5da48Bd.mjs} +4 -4
  14. package/dist/.setup/{reply-blocks-DrQW0Z9h.mjs → reply-blocks-DyvlYyy7.mjs} +1 -1
  15. package/dist/.setup/{send-CyRH2z7u.mjs → send-DfRHvECF.mjs} +1 -1
  16. package/dist/.setup/{session-status-Cl6oyyg7.mjs → session-status-D_THGrJl.mjs} +7 -1
  17. package/dist/.setup/{slash-dispatch.runtime-243ZiiBP.mjs → slash-dispatch.runtime-DIk3742D.mjs} +1 -1
  18. package/dist/api.js +6 -6
  19. package/dist/channel-plugin-api.js +1 -1
  20. package/dist/runtime-api.js +5 -5
  21. package/package.json +4 -4
  22. package/dist/.setup/action-runtime.runtime-DdFvX309.mjs +0 -1
@@ -1,7 +1,7 @@
1
1
  import { a as parseSlackTarget, n as formatSlackTarget, o as resolveSlackChannelId } from "./target-parsing-FFE26kOV.mjs";
2
2
  import { t as slackContextTargetsMatch } from "./targets-C6LZQL1Q.mjs";
3
- import { Bt as resolveSlackAutoThreadId, f as assertSlackDetachedTargetAllowed, kt as getSlackInstallationKind, pt as parseSlackBlocksInput, r as buildSlackChannelIdCandidates, v as hasSlackNativeDataBlock, zt as SLACK_PRIVATE_ACTION_DELIVERY_RESULT } from "./session-status-Cl6oyyg7.mjs";
4
- import { n as resolveSlackChannelConfig, t as isSlackChannelAllowedByPolicy } from "./policy-DhgXcV3u.mjs";
3
+ import { Bt as resolveSlackAutoThreadId, f as assertSlackDetachedTargetAllowed, kt as getSlackInstallationKind, pt as parseSlackBlocksInput, r as buildSlackChannelIdCandidates, v as hasSlackNativeDataBlock, zt as SLACK_PRIVATE_ACTION_DELIVERY_RESULT } from "./session-status-D_THGrJl.mjs";
4
+ import { n as resolveSlackChannelConfig, t as isSlackChannelAllowedByPolicy } from "./policy-CVFgJHQ1.mjs";
5
5
  import { t as mergeSlackSendResults } from "./send-results-eeOu_HYm.mjs";
6
6
  import { normalizeAccountId } from "openclaw/plugin-sdk/account-resolution";
7
7
  import { normalizeOptionalLowercaseString } from "openclaw/plugin-sdk/string-coerce-runtime";
@@ -30,10 +30,10 @@ const SLACK_REACTION_RESULT_LIMIT = 100;
30
30
  function readSlackResultLimit(params) {
31
31
  return Math.min(readPositiveIntegerParam(params, "limit", { message: "limit must be a positive integer." }) ?? SLACK_REACTION_RESULT_LIMIT, SLACK_REACTION_RESULT_LIMIT);
32
32
  }
33
- const loadSlackActionsRuntime = createLazyRuntimeModule(() => import("./actions-Ch4O8XbW.mjs").then((n) => n.t));
33
+ const loadSlackActionsRuntime = createLazyRuntimeModule(() => import("./actions-DH287DuD.mjs").then((n) => n.t));
34
34
  const bindSlackAction = createLazyRuntimeMethodBinder(loadSlackActionsRuntime);
35
35
  const loadSlackAccountsRuntime = createLazyRuntimeModule(() => import("./accounts-BMg9YLIv.mjs").then((n) => n.t));
36
- const loadSlackChannelTypeRuntime = createLazyRuntimeModule(() => import("./channel-type-DFD9jUWJ.mjs").then((n) => n.t));
36
+ const loadSlackChannelTypeRuntime = createLazyRuntimeModule(() => import("./channel-type-DjOFlEWC.mjs").then((n) => n.t));
37
37
  const bindSlackChannelType = createLazyRuntimeMethodBinder(loadSlackChannelTypeRuntime);
38
38
  const slackActionRuntime = {
39
39
  deleteSlackMessage: bindSlackAction((runtime) => runtime.deleteSlackMessage),
@@ -0,0 +1 @@
1
+ export { t as handleSlackAction } from "./action-runtime-DP76Xs8B.mjs";
@@ -1,9 +1,9 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-B4FMCO8f.mjs";
2
2
  import { h as resolveSlackBotToken, o as resolveDefaultSlackAccountId, s as resolveSlackAccount } from "./accounts-BMg9YLIv.mjs";
3
3
  import { n as formatSlackTarget } from "./target-parsing-FFE26kOV.mjs";
4
- import { C as stripSlackNativeDataBlocks, D as SLACK_EDIT_TEXT_MAX_BYTES, E as renderSlackBlockFallbackText, N as truncateSlackTextByUtf8Bytes, T as buildSlackCompleteBlocksFallbackText, X as normalizeSlackOutboundText, at as escapeSlackMrkdwn, f as assertSlackDetachedTargetAllowed, h as appendSlackNativeDataPlainTextFallback, j as countSlackTextUtf8Bytes, m as appendSlackNativeDataFallbackText, mt as validateSlackBlocksArray, v as hasSlackNativeDataBlock, w as buildSlackBlocksFallbackText, y as isSlackInvalidBlocksError, zt as SLACK_PRIVATE_ACTION_DELIVERY_RESULT } from "./session-status-Cl6oyyg7.mjs";
4
+ import { C as stripSlackNativeDataBlocks, D as SLACK_EDIT_TEXT_MAX_BYTES, E as renderSlackBlockFallbackText, N as truncateSlackTextByUtf8Bytes, T as buildSlackCompleteBlocksFallbackText, X as normalizeSlackOutboundText, at as escapeSlackMrkdwn, f as assertSlackDetachedTargetAllowed, h as appendSlackNativeDataPlainTextFallback, j as countSlackTextUtf8Bytes, m as appendSlackNativeDataFallbackText, mt as validateSlackBlocksArray, v as hasSlackNativeDataBlock, w as buildSlackBlocksFallbackText, y as isSlackInvalidBlocksError, zt as SLACK_PRIVATE_ACTION_DELIVERY_RESULT } from "./session-status-D_THGrJl.mjs";
5
5
  import { _ as getSlackWriteClient, h as createSlackWriteClient, u as createSlackLookupClient } from "./probe-CyX52GtD.mjs";
6
- import { m as buildSlackNativeDataDeliveryPlan, t as sendMessageSlack } from "./send-CyRH2z7u.mjs";
6
+ import { m as buildSlackNativeDataDeliveryPlan, t as sendMessageSlack } from "./send-DfRHvECF.mjs";
7
7
  import { normalizeAccountId } from "openclaw/plugin-sdk/account-resolution";
8
8
  import { asOptionalObjectRecord, asOptionalRecord, isRecord, normalizeLowercaseStringOrEmpty, normalizeOptionalLowercaseString, normalizeOptionalString, readNonBlankString } from "openclaw/plugin-sdk/string-coerce-runtime";
9
9
  import { createSubsystemLogger, logVerbose } from "openclaw/plugin-sdk/runtime-env";
@@ -1,9 +1,9 @@
1
1
  import { a as parseSlackTarget } from "./target-parsing-FFE26kOV.mjs";
2
- import { Ct as shouldHandleSlackNativeApprovalRequest, D as SLACK_EDIT_TEXT_MAX_BYTES, Ft as normalizeSlackApproverId, M as truncateSlackText, N as truncateSlackTextByUtf8Bytes, ht as isSlackAnyNativeApprovalClientEnabled, n as setSlackSessionStatus, ot as SLACK_APPROVAL_HEADER_BLOCK_ID } from "./session-status-Cl6oyyg7.mjs";
2
+ import { Ct as shouldHandleSlackNativeApprovalRequest, D as SLACK_EDIT_TEXT_MAX_BYTES, Ft as normalizeSlackApproverId, M as truncateSlackText, N as truncateSlackTextByUtf8Bytes, ht as isSlackAnyNativeApprovalClientEnabled, n as setSlackSessionStatus, ot as SLACK_APPROVAL_HEADER_BLOCK_ID } from "./session-status-D_THGrJl.mjs";
3
3
  import { g as getSlackListenerWriteClient } from "./probe-CyX52GtD.mjs";
4
- import { s as resolveSlackReplyBlocks } from "./reply-blocks-DrQW0Z9h.mjs";
5
- import { t as sendMessageSlack } from "./send-CyRH2z7u.mjs";
6
- import { n as runSlackApprovalMessageUpdate } from "./approval-message-updates-BZohzbfY.mjs";
4
+ import { s as resolveSlackReplyBlocks } from "./reply-blocks-DyvlYyy7.mjs";
5
+ import { t as sendMessageSlack } from "./send-DfRHvECF.mjs";
6
+ import { n as runSlackApprovalMessageUpdate } from "./approval-message-updates-CDf5hnhO.mjs";
7
7
  import { normalizeOptionalString } from "openclaw/plugin-sdk/string-coerce-runtime";
8
8
  import { buildChannelApprovalNativeTargetKey } from "openclaw/plugin-sdk/approval-native-runtime";
9
9
  import { buildApprovalPresentationFromActionDescriptors } from "openclaw/plugin-sdk/approval-reply-runtime";
@@ -1,4 +1,4 @@
1
- import { V as isSlackApprovalActionId, st as decodeSlackApprovalAction } from "./session-status-Cl6oyyg7.mjs";
1
+ import { V as isSlackApprovalActionId, st as decodeSlackApprovalAction } from "./session-status-D_THGrJl.mjs";
2
2
  import { asOptionalRecord } from "openclaw/plugin-sdk/string-coerce-runtime";
3
3
  import { KeyedAsyncQueue } from "openclaw/plugin-sdk/keyed-async-queue";
4
4
  //#region extensions/slack/src/approval-message-updates.ts
@@ -2,12 +2,12 @@ import { r as isSlackPluginAccountConfigured } from "./account-configured-zcR9TJ
2
2
  import { c as resolveSlackAccountAllowFrom, d as resolveSlackOperationToken, f as resolveSlackReplyToMode, i as listSlackAccountIds, n as hasImplicitDefaultSlackAccount, o as resolveDefaultSlackAccountId, s as resolveSlackAccount } from "./accounts-BMg9YLIv.mjs";
3
3
  import { a as parseSlackTarget, i as normalizeSlackMessagingTarget, n as formatSlackTarget, o as resolveSlackChannelId, r as looksLikeSlackTargetId, t as canonicalizeSlackApiTargetId } from "./target-parsing-FFE26kOV.mjs";
4
4
  import { t as slackContextTargetsMatch } from "./targets-C6LZQL1Q.mjs";
5
- import { A as SLACK_TEXT_LIMIT, At as isSlackWorkspaceInstallation, Bt as resolveSlackAutoThreadId, Ct as shouldHandleSlackNativeApprovalRequest, D as SLACK_EDIT_TEXT_MAX_BYTES, Dt as isSlackPluginApprovalAuthorizedSender, Et as getSlackApprovalApproversForTeam, It as resolveSlackExecApprovalTarget, Lt as shouldSuppressLocalSlackExecApprovalPrompt, Mt as getSlackExecApprovalApprovers, Nt as isSlackExecApprovalAuthorizedSender, Ot as resolveSlackApprovalTeamId, Pt as isSlackExecApprovalClientEnabled, Rt as resolvePluginApprovalSlackApprovers, St as resolveTurnSourceSlackOriginTarget, Tt as slackTargetsMatch, X as normalizeSlackOutboundText, _t as normalizeSlackForwardTarget, a as resolveSlackGroupRequireMention, bt as resolveSlackApproverDmTargets, c as qualifySlackRoutePeerId, d as resolveSlackConversationBindingRoute, f as assertSlackDetachedTargetAllowed, gt as isSlackPluginApprovalRequest, ht as isSlackAnyNativeApprovalClientEnabled, it as renderSlackMessagePresentationFallbackText, j as countSlackTextUtf8Bytes, kt as getSlackInstallationKind, n as setSlackSessionStatus, o as resolveSlackGroupToolPolicy, s as qualifySlackConversationId, u as normalizeSlackRouteBindingConfig, ut as SLACK_PRESENTATION_CAPABILITIES, vt as normalizeSlackOriginTarget, wt as shouldHandleSlackPluginViaForwardingSession, xt as resolveSlackFallbackOriginTarget, yt as resolveSessionSlackOriginTarget } from "./session-status-Cl6oyyg7.mjs";
5
+ import { A as SLACK_TEXT_LIMIT, At as isSlackWorkspaceInstallation, Bt as resolveSlackAutoThreadId, Ct as shouldHandleSlackNativeApprovalRequest, D as SLACK_EDIT_TEXT_MAX_BYTES, Dt as isSlackPluginApprovalAuthorizedSender, Et as getSlackApprovalApproversForTeam, It as resolveSlackExecApprovalTarget, Lt as shouldSuppressLocalSlackExecApprovalPrompt, Mt as getSlackExecApprovalApprovers, Nt as isSlackExecApprovalAuthorizedSender, Ot as resolveSlackApprovalTeamId, Pt as isSlackExecApprovalClientEnabled, Rt as resolvePluginApprovalSlackApprovers, St as resolveTurnSourceSlackOriginTarget, Tt as slackTargetsMatch, X as normalizeSlackOutboundText, _t as normalizeSlackForwardTarget, a as resolveSlackGroupRequireMention, bt as resolveSlackApproverDmTargets, c as qualifySlackRoutePeerId, d as resolveSlackConversationBindingRoute, f as assertSlackDetachedTargetAllowed, gt as isSlackPluginApprovalRequest, ht as isSlackAnyNativeApprovalClientEnabled, it as renderSlackMessagePresentationFallbackText, j as countSlackTextUtf8Bytes, kt as getSlackInstallationKind, n as setSlackSessionStatus, o as resolveSlackGroupToolPolicy, s as qualifySlackConversationId, u as normalizeSlackRouteBindingConfig, ut as SLACK_PRESENTATION_CAPABILITIES, vt as normalizeSlackOriginTarget, wt as shouldHandleSlackPluginViaForwardingSession, xt as resolveSlackFallbackOriginTarget, yt as resolveSessionSlackOriginTarget } from "./session-status-D_THGrJl.mjs";
6
6
  import { _ as getSlackWriteClient, c as collectSlackCursorPages, o as formatSlackError, u as createSlackLookupClient } from "./probe-CyX52GtD.mjs";
7
- import { c as resolveSlackReplyDeliveryMessages, o as resolveSlackReplyBlockResolution, p as buildSlackPresentationBlocksIfComplete, r as normalizeSlackReplyPayload, s as resolveSlackReplyBlocks } from "./reply-blocks-DrQW0Z9h.mjs";
7
+ import { c as resolveSlackReplyDeliveryMessages, o as resolveSlackReplyBlockResolution, p as buildSlackPresentationBlocksIfComplete, r as normalizeSlackReplyPayload, s as resolveSlackReplyBlocks } from "./reply-blocks-DyvlYyy7.mjs";
8
8
  import { n as resolveSlackReplyThreadTs, r as resolveSlackThreadTsValue, t as normalizeSlackThreadTsCandidate } from "./thread-ts-Cvt7WD6B.mjs";
9
9
  import { n as extractSlackToolSend, t as describeSlackMessageTool } from "./message-tool-api-C7im5ETh.mjs";
10
- import { n as resolveSlackChannelType, r as resolveSlackConversationInfo } from "./channel-type-DFD9jUWJ.mjs";
10
+ import { n as resolveSlackChannelType, r as resolveSlackConversationInfo } from "./channel-type-DjOFlEWC.mjs";
11
11
  import { t as getOptionalSlackRuntime } from "./runtime-JSVZSWAj.mjs";
12
12
  import { n as slackPluginBase, r as slackSecurityAdapter, t as slackConfigAdapter } from "./shared-CtprVh_G.mjs";
13
13
  import { i as SLACK_CHANNEL } from "./channel.setup-BFpQowO3.mjs";
@@ -99,7 +99,7 @@ const baseSlackApprovalCapability = createApproverRestrictedNativeApprovalCapabi
99
99
  ],
100
100
  isConfigured: isSlackAnyNativeApprovalClientEnabled,
101
101
  shouldHandle: shouldHandleSlackNativeApprovalRequest,
102
- load: async () => (await import("./approval-handler.runtime-DqAUYttU.mjs")).slackApprovalNativeRuntime
102
+ load: async () => (await import("./approval-handler.runtime-Cz4AcwuF.mjs")).slackApprovalNativeRuntime
103
103
  })
104
104
  });
105
105
  const baseSlackNativeAdapter = baseSlackApprovalCapability.native;
@@ -378,7 +378,7 @@ const SLACK_TOOL_DELIVERY_ACTIONS = /* @__PURE__ */ new Set([
378
378
  "unpinMessage",
379
379
  "uploadFile"
380
380
  ]);
381
- const loadSlackActionRuntime$1 = createLazyRuntimeModule(() => import("./action-runtime.runtime-DdFvX309.mjs"));
381
+ const loadSlackActionRuntime$1 = createLazyRuntimeModule(() => import("./action-runtime.runtime-9GVSH-nB.mjs"));
382
382
  function resolveSlackActionContext(ctx, toolContext) {
383
383
  if (!toolContext && !ctx.mediaAccess && !ctx.mediaLocalRoots && !ctx.mediaReadFile && !ctx.conversationReadOrigin && !ctx.requesterAccountId && !ctx.requesterSenderId && !ctx.assertDirectAdapterHandoff) return;
384
384
  return {
@@ -617,7 +617,7 @@ function buildSlackThreadingToolContext(params) {
617
617
  const loadExtensionSharedSdk = createLazyRuntimeModule(() => import("openclaw/plugin-sdk/extension-shared"));
618
618
  const loadTargetResolverRuntimeSdk = createLazyRuntimeModule(() => import("openclaw/plugin-sdk/target-resolver-runtime"));
619
619
  const loadSlackScopesModule = createLazyRuntimeModule(() => import("./scopes-aMcMHhXk.mjs"));
620
- const loadSlackOutboundAdapterModule = createLazyRuntimeModule(() => import("./outbound-adapter-CEh2K9pB.mjs"));
620
+ const loadSlackOutboundAdapterModule = createLazyRuntimeModule(() => import("./outbound-adapter-BxfxyNoZ.mjs"));
621
621
  const bindSlackOutbound = createLazyRuntimeMethodBinder(loadSlackOutboundAdapterModule);
622
622
  async function resolveSlackHandleAction() {
623
623
  return getOptionalSlackRuntime()?.channel?.slack?.handleSlackAction ?? (await loadSlackActionRuntime()).handleSlackAction;
@@ -625,10 +625,10 @@ async function resolveSlackHandleAction() {
625
625
  const loadSlackDirectoryConfigModule = createLazyRuntimeModule(() => import("./directory-config-BEDZPfDn.mjs").then((n) => n.t));
626
626
  const loadSlackResolveChannelsModule = createLazyRuntimeModule(() => import("./resolve-channels-B96cgprw.mjs").then((n) => n.n));
627
627
  const loadSlackResolveUsersModule = createLazyRuntimeModule(() => import("./resolve-users-Xz9aPdns.mjs").then((n) => n.n));
628
- const loadSlackActionRuntime = createLazyRuntimeModule(() => import("./action-runtime.runtime-DdFvX309.mjs"));
629
- const loadSlackSendRuntime = createLazyRuntimeModule(() => import("./send-CyRH2z7u.mjs").then((n) => n.n));
628
+ const loadSlackActionRuntime = createLazyRuntimeModule(() => import("./action-runtime.runtime-9GVSH-nB.mjs"));
629
+ const loadSlackSendRuntime = createLazyRuntimeModule(() => import("./send-DfRHvECF.mjs").then((n) => n.n));
630
630
  const loadSlackProbeModule = createLazyRuntimeModule(() => import("./probe-CyX52GtD.mjs").then((n) => n.n));
631
- const loadSlackMonitorModule = createLazyRuntimeModule(() => import("./monitor-CNECe8FK.mjs").then((n) => n.t));
631
+ const loadSlackMonitorModule = createLazyRuntimeModule(() => import("./monitor-CsMog7BO.mjs").then((n) => n.t));
632
632
  const loadSlackDirectoryLiveModule = createLazyRuntimeModule(() => import("./directory-live-FipfeCwt.mjs").then((n) => n.t));
633
633
  async function setSlackHeartbeatThreadStatus(params) {
634
634
  const threadTs = resolveSlackThreadTsValue({ threadId: params.threadId });
@@ -1,6 +1,6 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-B4FMCO8f.mjs";
2
2
  import { d as resolveSlackOperationToken, s as resolveSlackAccount } from "./accounts-BMg9YLIv.mjs";
3
- import { f as assertSlackDetachedTargetAllowed } from "./session-status-Cl6oyyg7.mjs";
3
+ import { f as assertSlackDetachedTargetAllowed } from "./session-status-D_THGrJl.mjs";
4
4
  import { d as createSlackReadClient, m as createSlackWebClient, y as readLruMapEntry } from "./probe-CyX52GtD.mjs";
5
5
  import { normalizeLowercaseStringOrEmpty, normalizeOptionalString } from "openclaw/plugin-sdk/string-coerce-runtime";
6
6
  import { normalizeStringEntriesLower } from "openclaw/plugin-sdk/string-normalization-runtime";
@@ -2,16 +2,16 @@ import { t as __exportAll } from "./rolldown-runtime-B4FMCO8f.mjs";
2
2
  import { n as registerSlackHttpHandler, r as normalizeSlackWebhookPath } from "./registry-CIbMfuf8.mjs";
3
3
  import { a as mergeSlackAccountConfig, c as resolveSlackAccountAllowFrom, f as resolveSlackReplyToMode, h as resolveSlackBotToken, l as resolveSlackAccountDmPolicy, m as resolveSlackAppToken, o as resolveDefaultSlackAccountId, p as formatSlackBotTokenIdentityWarning, s as resolveSlackAccount } from "./accounts-BMg9YLIv.mjs";
4
4
  import { a as parseSlackTarget, n as formatSlackTarget } from "./target-parsing-FFE26kOV.mjs";
5
- import { A as SLACK_TEXT_LIMIT, Dt as isSlackPluginApprovalAuthorizedSender, G as decodeSlackQuestionAction, H as isSlackCallbackActionId, M as truncateSlackText, Nt as isSlackExecApprovalAuthorizedSender, U as isSlackQuestionActionId, V as isSlackApprovalActionId, at as escapeSlackMrkdwn, c as qualifySlackRoutePeerId, d as resolveSlackConversationBindingRoute, ht as isSlackAnyNativeApprovalClientEnabled, jt as registerSlackInstallationState, l as resolveSlackAgentRoute, n as setSlackSessionStatus, q as resolveSlackQuestionAction, r as buildSlackChannelIdCandidates, s as qualifySlackConversationId, st as decodeSlackApprovalAction, t as renameSlackSession, u as normalizeSlackRouteBindingConfig } from "./session-status-Cl6oyyg7.mjs";
5
+ import { A as SLACK_TEXT_LIMIT, Dt as isSlackPluginApprovalAuthorizedSender, G as decodeSlackQuestionAction, H as isSlackCallbackActionId, M as truncateSlackText, Nt as isSlackExecApprovalAuthorizedSender, U as isSlackQuestionActionId, V as isSlackApprovalActionId, at as escapeSlackMrkdwn, c as qualifySlackRoutePeerId, d as resolveSlackConversationBindingRoute, ht as isSlackAnyNativeApprovalClientEnabled, jt as registerSlackInstallationState, l as resolveSlackAgentRoute, n as setSlackSessionStatus, q as resolveSlackQuestionAction, r as buildSlackChannelIdCandidates, s as qualifySlackConversationId, st as decodeSlackApprovalAction, t as renameSlackSession, u as normalizeSlackRouteBindingConfig } from "./session-status-D_THGrJl.mjs";
6
6
  import { A as resolveSlackAllowListMatch, C as resolveSlackLookupClientOptions, D as allowListMatches, O as normalizeSlackAllowOwnerEntry, T as resolveSlackWebClientOptions, a as slackIngressIdentity, b as writeLruMapEntry, c as collectSlackCursorPages, f as createSlackStartupAuthClient, g as getSlackListenerWriteClient, i as createSlackIngressSubject, j as resolveSlackUserAllowListForTeam, k as normalizeSlackSlug, m as createSlackWebClient, o as formatSlackError, v as pruneExpiredMapEntries, w as resolveSlackMonitorDispatchers, y as readLruMapEntry } from "./probe-CyX52GtD.mjs";
7
7
  import { n as getSlackRuntime, t as getOptionalSlackRuntime } from "./runtime-JSVZSWAj.mjs";
8
8
  import { t as DEFAULT_SLACK_SUGGESTED_PROMPTS } from "./channel-meta-C443t-lI.mjs";
9
- import { S as hasSlackMessageTableBlock, f as readSlackMessages, v as isGovSlackClient, y as saveRemoteMedia } from "./actions-Ch4O8XbW.mjs";
10
- import { d as requireSlackPostMessageTimestamp, f as buildSlackMessageIdentityPayload, r as setSlackDefaultSendIdentity } from "./send-CyRH2z7u.mjs";
11
- import { n as resolveSlackChannelConfig, r as resolveSlackChannelLabel, t as isSlackChannelAllowedByPolicy } from "./policy-DhgXcV3u.mjs";
9
+ import { S as hasSlackMessageTableBlock, f as readSlackMessages, v as isGovSlackClient, y as saveRemoteMedia } from "./actions-DH287DuD.mjs";
10
+ import { d as requireSlackPostMessageTimestamp, f as buildSlackMessageIdentityPayload, r as setSlackDefaultSendIdentity } from "./send-DfRHvECF.mjs";
11
+ import { n as resolveSlackChannelConfig, r as resolveSlackChannelLabel, t as isSlackChannelAllowedByPolicy } from "./policy-CVFgJHQ1.mjs";
12
12
  import { t as resolveSlackChannelAllowlist } from "./resolve-channels-B96cgprw.mjs";
13
13
  import { t as resolveSlackUserAllowlist } from "./resolve-users-Xz9aPdns.mjs";
14
- import { n as runSlackApprovalMessageUpdate, t as hasSlackApprovalControl } from "./approval-message-updates-BZohzbfY.mjs";
14
+ import { n as runSlackApprovalMessageUpdate, t as hasSlackApprovalControl } from "./approval-message-updates-CDf5hnhO.mjs";
15
15
  import { normalizeAccountId } from "openclaw/plugin-sdk/account-resolution";
16
16
  import { normalizeResolvedSecretInputString } from "openclaw/plugin-sdk/secret-input";
17
17
  import { asNonArrayRecord, asOptionalObjectRecord, asOptionalRecord, isRecord, normalizeLowercaseStringOrEmpty, normalizeOptionalLowercaseString, normalizeOptionalString, normalizeStringEntries, normalizeUniqueTrimmedStringList } from "openclaw/plugin-sdk/string-coerce-runtime";
@@ -605,7 +605,7 @@ function installSlackSocketModeEnvelopeGuard(client, acknowledge, logger) {
605
605
  //#region extensions/slack/src/monitor/provider-support.ts
606
606
  const OPENCLAW_SLACK_CLIENT_PING_TIMEOUT_MS = 15e3;
607
607
  const OPENCLAW_SLACK_SOCKET_START_FAILED_EVENT = "unable_to_socket_mode_start";
608
- const OPENCLAW_SLACK_NATIVE_RECONNECT_OBSERVER_KEY = "__openclawNativeReconnectFailureObserver";
608
+ const SLACK_NATIVE_RECONNECT_OBSERVER_KEY = "__openclawNativeReconnectFailureObserver";
609
609
  const SLACK_SOCKET_PONG_TIMEOUT_WARNING_PREFIX = "A pong wasn't received from the server";
610
610
  const SLACK_SOCKET_PING_TIMEOUT_WARNING_PREFIX = "A ping wasn't received from the server";
611
611
  const SLACK_SOCKET_LOG_LEVEL_IGNORED_WARNING_RE = /^The logLevel given to .+ was ignored as you also gave logger$/;
@@ -616,11 +616,11 @@ function isConstructorFunction(value) {
616
616
  function installSlackNativeReconnectFailureObserver(receiver) {
617
617
  const client = asOptionalObjectRecord(asOptionalObjectRecord(receiver)?.client);
618
618
  if (!client) return;
619
- if (Reflect.get(client, OPENCLAW_SLACK_NATIVE_RECONNECT_OBSERVER_KEY)) return;
619
+ if (Reflect.get(client, SLACK_NATIVE_RECONNECT_OBSERVER_KEY)) return;
620
620
  const delayReconnectAttempt = Reflect.get(client, "delayReconnectAttempt");
621
621
  const emit = Reflect.get(client, "emit");
622
622
  if (typeof delayReconnectAttempt !== "function" || typeof emit !== "function") return;
623
- Reflect.set(client, OPENCLAW_SLACK_NATIVE_RECONNECT_OBSERVER_KEY, true);
623
+ Reflect.set(client, SLACK_NATIVE_RECONNECT_OBSERVER_KEY, true);
624
624
  Reflect.set(client, "delayReconnectAttempt", function patchedDelayReconnectAttempt(callback) {
625
625
  if (typeof callback !== "function") return delayReconnectAttempt.call(this, callback);
626
626
  const nextFailureCount = Number(Reflect.get(this, "numOfConsecutiveReconnectionFailures") ?? 0) + 1;
@@ -2830,7 +2830,7 @@ const SLACK_COMMAND_ARG_BUTTON_VALUE_MAX = 2e3;
2830
2830
  const SLACK_COMMAND_ARG_CONFIRM_TEXT_MAX = 300;
2831
2831
  const SLACK_HEADER_TEXT_MAX = 150;
2832
2832
  const SLACK_COMMAND_ARG_ACTION_BLOCKS_MAX = 47;
2833
- const loadSlashDispatchRuntime = createLazyRuntimeModule(() => import("./slash-dispatch.runtime-243ZiiBP.mjs"));
2833
+ const loadSlashDispatchRuntime = createLazyRuntimeModule(() => import("./slash-dispatch.runtime-DIk3742D.mjs"));
2834
2834
  const loadPluginCommandRuntime = createLazyRuntimeModule(() => import("openclaw/plugin-sdk/plugin-command-runtime"));
2835
2835
  function resolveSlackCommandMenuModelContext(params) {
2836
2836
  if (!params.sessionKey.trim()) return {};
@@ -4461,7 +4461,7 @@ async function handleSlackApprovalInteraction(params) {
4461
4461
  channelId,
4462
4462
  messageTs
4463
4463
  }, async () => {
4464
- const { readSlackMessages } = await import("./actions-Ch4O8XbW.mjs").then((n) => n.t);
4464
+ const { readSlackMessages } = await import("./actions-DH287DuD.mjs").then((n) => n.t);
4465
4465
  const { messages } = await readSlackMessages(channelId, {
4466
4466
  client: params.eventScope?.client ?? params.ctx.app.client,
4467
4467
  messageId: messageTs,
@@ -5800,7 +5800,7 @@ function buildSlackDebounceKey(message, accountId, teamId) {
5800
5800
  }
5801
5801
  //#endregion
5802
5802
  //#region extensions/slack/src/monitor/message-handler.ts
5803
- const loadSlackMessagePipeline = createLazyRuntimeModule(() => import("./pipeline.runtime-q5AyVl22.mjs"));
5803
+ const loadSlackMessagePipeline = createLazyRuntimeModule(() => import("./pipeline.runtime-aazZmSGt.mjs"));
5804
5804
  const RETRYABLE_FLUSH_MAX_ATTEMPTS = 3;
5805
5805
  const RETRYABLE_FLUSH_RETRY_DELAY_MS = 1e3;
5806
5806
  const REPLY_SESSION_INIT_CONFLICT_MESSAGE_RE = /reply session initialization conflicted for \S+/u;
@@ -6345,7 +6345,7 @@ async function getSlackBoltInterop() {
6345
6345
  }
6346
6346
  return slackBoltInterop;
6347
6347
  }
6348
- const loadSlackRelaySource = createLazyRuntimeModule(() => import("./relay-source-DYuDAF94.mjs"));
6348
+ const loadSlackRelaySource = createLazyRuntimeModule(() => import("./relay-source-DYsxgCR_.mjs"));
6349
6349
  function resolveSlackRuntimeIdentity(params) {
6350
6350
  const botUserId = normalizeOptionalString(params.botUserId);
6351
6351
  const botId = normalizeOptionalString(params.botId);
@@ -1,7 +1,7 @@
1
1
  import { d as resolveSlackOperationToken, s as resolveSlackAccount } from "./accounts-BMg9YLIv.mjs";
2
2
  import { a as parseSlackTarget } from "./target-parsing-FFE26kOV.mjs";
3
- import { A as SLACK_TEXT_LIMIT, F as SLACK_QUESTION_FINALIZATION_BLOCKS, W as resolveSlackQuestionActionIds, at as escapeSlackMrkdwn, f as assertSlackDetachedTargetAllowed, ut as SLACK_PRESENTATION_CAPABILITIES } from "./session-status-Cl6oyyg7.mjs";
4
- import { c as resolveSlackReplyDeliveryMessages, i as parseSlackReplyBlockSegments, o as resolveSlackReplyBlockResolution, r as normalizeSlackReplyPayload, u as resolveSlackAuthoredTextPlacement } from "./reply-blocks-DrQW0Z9h.mjs";
3
+ import { A as SLACK_TEXT_LIMIT, F as SLACK_QUESTION_FINALIZATION_BLOCKS, W as resolveSlackQuestionActionIds, at as escapeSlackMrkdwn, f as assertSlackDetachedTargetAllowed, ut as SLACK_PRESENTATION_CAPABILITIES } from "./session-status-D_THGrJl.mjs";
4
+ import { c as resolveSlackReplyDeliveryMessages, i as parseSlackReplyBlockSegments, o as resolveSlackReplyBlockResolution, r as normalizeSlackReplyPayload, u as resolveSlackAuthoredTextPlacement } from "./reply-blocks-DyvlYyy7.mjs";
5
5
  import { r as resolveSlackThreadTsValue } from "./thread-ts-Cvt7WD6B.mjs";
6
6
  import { t as mergeSlackSendResults } from "./send-results-eeOu_HYm.mjs";
7
7
  import { normalizeOptionalString } from "openclaw/plugin-sdk/string-coerce-runtime";
@@ -44,7 +44,7 @@ function readSlackRenderedPresentation(slackData) {
44
44
  return;
45
45
  }
46
46
  }
47
- const loadSlackSendRuntime = createLazyRuntimeModule(() => import("./send-CyRH2z7u.mjs").then((n) => n.n));
47
+ const loadSlackSendRuntime = createLazyRuntimeModule(() => import("./send-DfRHvECF.mjs").then((n) => n.n));
48
48
  function resolveSlackSendIdentity(identity) {
49
49
  if (!identity) return;
50
50
  const username = normalizeOptionalString(identity.name);
@@ -1,15 +1,15 @@
1
1
  import { n as __reExport, t as __exportAll } from "./rolldown-runtime-B4FMCO8f.mjs";
2
2
  import { f as resolveSlackReplyToMode } from "./accounts-BMg9YLIv.mjs";
3
3
  import { n as formatSlackTarget } from "./target-parsing-FFE26kOV.mjs";
4
- import { A as SLACK_TEXT_LIMIT, B as SLACK_SESSION_LINK_ACTION_ID, D as SLACK_EDIT_TEXT_MAX_BYTES, M as truncateSlackText, N as truncateSlackTextByUtf8Bytes, T as buildSlackCompleteBlocksFallbackText, X as normalizeSlackOutboundText, at as escapeSlackMrkdwn, c as qualifySlackRoutePeerId, j as countSlackTextUtf8Bytes, v as hasSlackNativeDataBlock, w as buildSlackBlocksFallbackText } from "./session-status-Cl6oyyg7.mjs";
4
+ import { A as SLACK_TEXT_LIMIT, B as SLACK_SESSION_LINK_ACTION_ID, D as SLACK_EDIT_TEXT_MAX_BYTES, M as truncateSlackText, N as truncateSlackTextByUtf8Bytes, T as buildSlackCompleteBlocksFallbackText, X as normalizeSlackOutboundText, at as escapeSlackMrkdwn, c as qualifySlackRoutePeerId, j as countSlackTextUtf8Bytes, v as hasSlackNativeDataBlock, w as buildSlackBlocksFallbackText } from "./session-status-D_THGrJl.mjs";
5
5
  import { M as resolveSlackUserAllowed, O as normalizeSlackAllowOwnerEntry, b as writeLruMapEntry, o as formatSlackError, v as pruneExpiredMapEntries, y as readLruMapEntry } from "./probe-CyX52GtD.mjs";
6
- import { a as prepareSlackReply, l as resolveSlackReplyRenderPlan, s as resolveSlackReplyBlocks } from "./reply-blocks-DrQW0Z9h.mjs";
6
+ import { a as prepareSlackReply, l as resolveSlackReplyRenderPlan, s as resolveSlackReplyBlocks } from "./reply-blocks-DyvlYyy7.mjs";
7
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-Ch4O8XbW.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-CyRH2z7u.mjs";
10
- import { n as resolveSlackChannelConfig } from "./policy-DhgXcV3u.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-CNECe8FK.mjs";
12
- import { a as emitSlackMessageSentHooks, i as sanitizeSlackMonitorReplyPayload, n as deliverReplies, t as createSlackReplyDeliveryPlan } from "./replies-BNr7i3d0.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-DH287DuD.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-DfRHvECF.mjs";
10
+ import { n as resolveSlackChannelConfig } from "./policy-CVFgJHQ1.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-CsMog7BO.mjs";
12
+ import { a as emitSlackMessageSentHooks, i as sanitizeSlackMonitorReplyPayload, n as deliverReplies, t as createSlackReplyDeliveryPlan } from "./replies-C5da48Bd.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";
@@ -2771,7 +2771,7 @@ const SLACK_MENTION_RESOLUTION_CONCURRENCY = 4;
2771
2771
  const SLACK_MENTION_RESOLUTION_MAX_LOOKUPS_PER_MESSAGE = 20;
2772
2772
  const SLACK_USER_MENTION_RE$1 = /<@([A-Z0-9]+)(?:\|[^>]+)?>/gi;
2773
2773
  const MAX_SLACK_UNAVAILABLE_FILE_TEXT_CHARS = 2e3;
2774
- const loadSlackMediaModule$1 = createLazyRuntimeModule(() => import("./actions-Ch4O8XbW.mjs").then((n) => n._));
2774
+ const loadSlackMediaModule$1 = createLazyRuntimeModule(() => import("./actions-DH287DuD.mjs").then((n) => n._));
2775
2775
  function formatSlackUnavailableMedia(params) {
2776
2776
  let fileReferences = params.files?.map((file) => `${formatSlackFileReference(file)} unavailable (${file.reason})`).join(", ");
2777
2777
  if (fileReferences && fileReferences.length > MAX_SLACK_UNAVAILABLE_FILE_TEXT_CHARS) fileReferences = `${truncateUtf16Safe(fileReferences, MAX_SLACK_UNAVAILABLE_FILE_TEXT_CHARS)}; … (file references truncated)`;
@@ -3127,7 +3127,7 @@ function resolveSlackGroupSessionSubject(params) {
3127
3127
  }
3128
3128
  //#endregion
3129
3129
  //#region extensions/slack/src/monitor/message-handler/prepare-thread-context.ts
3130
- const loadSlackMediaModule = createLazyRuntimeModule(() => import("./actions-Ch4O8XbW.mjs").then((n) => n._));
3130
+ const loadSlackMediaModule = createLazyRuntimeModule(() => import("./actions-DH287DuD.mjs").then((n) => n._));
3131
3131
  const SLACK_THREAD_CONTEXT_USER_LOOKUP_CONCURRENCY = 4;
3132
3132
  function formatSlackThreadLabelSnippet(text) {
3133
3133
  return truncateUtf16Safe(text.replace(/\s+/g, " "), 80);
@@ -1,4 +1,4 @@
1
- import { i as buildSlackChannelPolicyScope, r as buildSlackChannelIdCandidates } from "./session-status-Cl6oyyg7.mjs";
1
+ import { i as buildSlackChannelPolicyScope, r as buildSlackChannelIdCandidates } from "./session-status-D_THGrJl.mjs";
2
2
  import { j as resolveSlackUserAllowListForTeam, k as normalizeSlackSlug } from "./probe-CyX52GtD.mjs";
3
3
  import { applyChannelMatchMeta, buildChannelKeyCandidates } from "openclaw/plugin-sdk/channel-targets";
4
4
  import { firstDefined } from "openclaw/plugin-sdk/allow-from";
@@ -1,5 +1,5 @@
1
1
  import { o as formatSlackError } from "./probe-CyX52GtD.mjs";
2
- import { d as parseSlackMessageEvent, f as requireSlackMessageEvent, x as SLACK_SOCKET_RECONNECT_POLICY } from "./monitor-CNECe8FK.mjs";
2
+ import { d as parseSlackMessageEvent, f as requireSlackMessageEvent, x as SLACK_SOCKET_RECONNECT_POLICY } from "./monitor-CsMog7BO.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";
@@ -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);
@@ -1,8 +1,8 @@
1
- import { A as SLACK_TEXT_LIMIT, Y as markdownToSlackMrkdwnChunks, b as isSlackInvalidBlocksResponse, v as hasSlackNativeDataBlock, x as isSlackNativeResponseUrlRejection } from "./session-status-Cl6oyyg7.mjs";
2
- import { n as iterateSlackReplyDeliveryMessages, o as resolveSlackReplyBlockResolution, t as hasSlackReplyStructuredContent } from "./reply-blocks-DrQW0Z9h.mjs";
1
+ import { A as SLACK_TEXT_LIMIT, Y as markdownToSlackMrkdwnChunks, b as isSlackInvalidBlocksResponse, v as hasSlackNativeDataBlock, x as isSlackNativeResponseUrlRejection } from "./session-status-D_THGrJl.mjs";
2
+ import { n as iterateSlackReplyDeliveryMessages, o as resolveSlackReplyBlockResolution, t as hasSlackReplyStructuredContent } from "./reply-blocks-DyvlYyy7.mjs";
3
3
  import { n as resolveSlackReplyThreadTs } from "./thread-ts-Cvt7WD6B.mjs";
4
- import { h as chunkSlackTextAtHardLimit, m as buildSlackNativeDataDeliveryPlan, t as sendMessageSlack } from "./send-CyRH2z7u.mjs";
5
- import { a as SlackResponseAlreadyReportedError, o as createSlackResponseUrlBudget } from "./monitor-CNECe8FK.mjs";
4
+ import { h as chunkSlackTextAtHardLimit, m as buildSlackNativeDataDeliveryPlan, t as sendMessageSlack } from "./send-DfRHvECF.mjs";
5
+ import { a as SlackResponseAlreadyReportedError, o as createSlackResponseUrlBudget } from "./monitor-CsMog7BO.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";
@@ -1,4 +1,4 @@
1
- import { E as renderSlackBlockFallbackText, J as chunkSlackMrkdwnText, K as encodeSlackQuestionAction, M as truncateSlackText, P as SLACK_BUTTON_ACTION_IDS, Q as hasSlackDataVisualizationBlock, T as buildSlackCompleteBlocksFallbackText, Y as markdownToSlackMrkdwnChunks, Z as buildSlackDataVisualizationBlock, ct as encodeSlackApprovalAction, dt as SLACK_SECTION_TEXT_MAX, et as buildSlackDataTableBlock, g as buildSlackNativeDataAccessibilityText, m as appendSlackNativeDataFallbackText, nt as countSlackDataTableCellCharacters, pt as parseSlackBlocksInput, rt as renderSlackMessagePresentationChartFallbackText, tt as countSlackDataTableBlocksCellCharacters, v as hasSlackNativeDataBlock, w as buildSlackBlocksFallbackText, z as SLACK_SELECT_ACTION_IDS } from "./session-status-Cl6oyyg7.mjs";
1
+ import { E as renderSlackBlockFallbackText, J as chunkSlackMrkdwnText, K as encodeSlackQuestionAction, M as truncateSlackText, P as SLACK_BUTTON_ACTION_IDS, Q as hasSlackDataVisualizationBlock, T as buildSlackCompleteBlocksFallbackText, Y as markdownToSlackMrkdwnChunks, Z as buildSlackDataVisualizationBlock, ct as encodeSlackApprovalAction, dt as SLACK_SECTION_TEXT_MAX, et as buildSlackDataTableBlock, g as buildSlackNativeDataAccessibilityText, m as appendSlackNativeDataFallbackText, nt as countSlackDataTableCellCharacters, pt as parseSlackBlocksInput, rt as renderSlackMessagePresentationChartFallbackText, tt as countSlackDataTableBlocksCellCharacters, v as hasSlackNativeDataBlock, w as buildSlackBlocksFallbackText, z as SLACK_SELECT_ACTION_IDS } from "./session-status-D_THGrJl.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";
@@ -1,7 +1,7 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-B4FMCO8f.mjs";
2
2
  import { d as resolveSlackOperationToken, s as resolveSlackAccount } from "./accounts-BMg9YLIv.mjs";
3
3
  import { a as parseSlackTarget, t as canonicalizeSlackApiTargetId } from "./target-parsing-FFE26kOV.mjs";
4
- import { A as SLACK_TEXT_LIMIT, C as stripSlackNativeDataBlocks, D as SLACK_EDIT_TEXT_MAX_BYTES, E as renderSlackBlockFallbackText, F as SLACK_QUESTION_FINALIZATION_BLOCKS, J as chunkSlackMrkdwnText, M as truncateSlackText, N as truncateSlackTextByUtf8Bytes, O as SLACK_MESSAGE_TEXT_HARD_LIMIT, S as renderSlackNativeDataPlainTextBlock, T as buildSlackCompleteBlocksFallbackText, W as resolveSlackQuestionActionIds, Y as markdownToSlackMrkdwnChunks, _ as createSlackNativeDataBaseTextConsumer, f as assertSlackDetachedTargetAllowed, g as buildSlackNativeDataAccessibilityText, k as SLACK_MESSAGE_TEXT_RECOMMENDED_LIMIT, mt as validateSlackBlocksArray, v as hasSlackNativeDataBlock, y as isSlackInvalidBlocksError } from "./session-status-Cl6oyyg7.mjs";
4
+ import { A as SLACK_TEXT_LIMIT, C as stripSlackNativeDataBlocks, D as SLACK_EDIT_TEXT_MAX_BYTES, E as renderSlackBlockFallbackText, F as SLACK_QUESTION_FINALIZATION_BLOCKS, J as chunkSlackMrkdwnText, M as truncateSlackText, N as truncateSlackTextByUtf8Bytes, O as SLACK_MESSAGE_TEXT_HARD_LIMIT, S as renderSlackNativeDataPlainTextBlock, T as buildSlackCompleteBlocksFallbackText, W as resolveSlackQuestionActionIds, Y as markdownToSlackMrkdwnChunks, _ as createSlackNativeDataBaseTextConsumer, f as assertSlackDetachedTargetAllowed, g as buildSlackNativeDataAccessibilityText, k as SLACK_MESSAGE_TEXT_RECOMMENDED_LIMIT, mt as validateSlackBlocksArray, v as hasSlackNativeDataBlock, y as isSlackInvalidBlocksError } from "./session-status-D_THGrJl.mjs";
5
5
  import { _ as getSlackWriteClient, b as writeLruMapEntry, d as createSlackReadClient, h as createSlackWriteClient, o as formatSlackError, p as createSlackTokenCacheKey, s as getSlackWebApiErrorData } from "./probe-CyX52GtD.mjs";
6
6
  import { r as resolveSlackThreadTsValue, t as normalizeSlackThreadTsCandidate } from "./thread-ts-Cvt7WD6B.mjs";
7
7
  import { t as getOptionalSlackRuntime } from "./runtime-JSVZSWAj.mjs";
@@ -633,7 +633,13 @@ function renderSlackRichText(value, mode, separator = "") {
633
633
  const name = read(element.name);
634
634
  return name ? `:${name}:` : "";
635
635
  }
636
- case "date": return literal(read(element.fallback) ?? "");
636
+ case "date": {
637
+ const fallback = read(element.fallback);
638
+ if (fallback) return literal(fallback);
639
+ if (typeof element.timestamp !== "number") return "";
640
+ const date = /* @__PURE__ */ new Date(element.timestamp * 1e3);
641
+ return Number.isNaN(date.getTime()) ? "" : date.toISOString();
642
+ }
637
643
  default: return "";
638
644
  }
639
645
  }).filter(Boolean).join(separator);
@@ -1,4 +1,4 @@
1
- import { i as sanitizeSlackMonitorReplyPayload, r as deliverSlackSlashReplies } from "./replies-BNr7i3d0.mjs";
1
+ import { i as sanitizeSlackMonitorReplyPayload, r as deliverSlackSlashReplies } from "./replies-C5da48Bd.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";
package/dist/api.js CHANGED
@@ -3,15 +3,15 @@ import { a as mergeSlackAccountConfig, f as resolveSlackReplyToMode, i as listSl
3
3
  import { t as inspectSlackAccount } from "./.setup/account-inspect-D58VVDjk.mjs";
4
4
  import { a as parseSlackTarget, i as normalizeSlackMessagingTarget, o as resolveSlackChannelId, r as looksLikeSlackTargetId } from "./.setup/target-parsing-FFE26kOV.mjs";
5
5
  import "./.setup/targets-C6LZQL1Q.mjs";
6
- import { Bt as resolveSlackAutoThreadId, a as resolveSlackGroupRequireMention, ft as SLACK_MAX_BLOCKS, mt as validateSlackBlocksArray, o as resolveSlackGroupToolPolicy, pt as parseSlackBlocksInput } from "./.setup/session-status-Cl6oyyg7.mjs";
6
+ import { Bt as resolveSlackAutoThreadId, a as resolveSlackGroupRequireMention, ft as SLACK_MAX_BLOCKS, mt as validateSlackBlocksArray, o as resolveSlackGroupToolPolicy, pt as parseSlackBlocksInput } from "./.setup/session-status-D_THGrJl.mjs";
7
7
  import { A as resolveSlackAllowListMatch, D as allowListMatches, E as resolveSlackWriteClientOptions, M as resolveSlackUserAllowed, O as normalizeSlackAllowOwnerEntry, S as SLACK_WRITE_RETRY_OPTIONS, T as resolveSlackWebClientOptions, _ as getSlackWriteClient, h as createSlackWriteClient, k as normalizeSlackSlug, m as createSlackWebClient, p as createSlackTokenCacheKey, t as probeSlack, x as SLACK_DEFAULT_RETRY_OPTIONS } from "./.setup/probe-CyX52GtD.mjs";
8
- import { n as buildSlackThreadingToolContext, t as slackPlugin } from "./.setup/channel-C6Y0ZA9K.mjs";
9
- import { d as buildSlackInteractiveBlocks, f as buildSlackPresentationBlocks } from "./.setup/reply-blocks-DrQW0Z9h.mjs";
8
+ import { n as buildSlackThreadingToolContext, t as slackPlugin } from "./.setup/channel-ChScqMJw.mjs";
9
+ import { d as buildSlackInteractiveBlocks, f as buildSlackPresentationBlocks } from "./.setup/reply-blocks-DyvlYyy7.mjs";
10
10
  import { n as extractSlackToolSend, r as listSlackMessageActions } from "./.setup/message-tool-api-C7im5ETh.mjs";
11
- import { n as resolveSlackChannelType } from "./.setup/channel-type-DFD9jUWJ.mjs";
11
+ import { n as resolveSlackChannelType } from "./.setup/channel-type-DjOFlEWC.mjs";
12
12
  import { t as slackSetupPlugin } from "./.setup/channel.setup-BFpQowO3.mjs";
13
- import { c as listSlackPins, d as reactSlackMessage, f as readSlackMessages, g as unpinSlackMessage, h as sendSlackMessage, i as editSlackMessage, l as listSlackReactions, m as removeSlackReaction, n as deleteSlackMessage, o as getSlackMemberInfo, p as removeOwnSlackReactions, r as downloadSlackFile, s as listSlackEmojis, u as pinSlackMessage } from "./.setup/actions-Ch4O8XbW.mjs";
14
- import { a as clearSlackThreadParticipationCache, s as hasSlackThreadParticipation, u as recordSlackThreadParticipation } from "./.setup/send-CyRH2z7u.mjs";
13
+ import { c as listSlackPins, d as reactSlackMessage, f as readSlackMessages, g as unpinSlackMessage, h as sendSlackMessage, i as editSlackMessage, l as listSlackReactions, m as removeSlackReaction, n as deleteSlackMessage, o as getSlackMemberInfo, p as removeOwnSlackReactions, r as downloadSlackFile, s as listSlackEmojis, u as pinSlackMessage } from "./.setup/actions-DH287DuD.mjs";
14
+ import { a as clearSlackThreadParticipationCache, s as hasSlackThreadParticipation, u as recordSlackThreadParticipation } from "./.setup/send-DfRHvECF.mjs";
15
15
  import { n as listSlackDirectoryGroupsFromConfig, r as listSlackDirectoryPeersFromConfig } from "./.setup/directory-config-BEDZPfDn.mjs";
16
16
  import { t as collectSlackSecurityAuditFindings } from "./.setup/security-audit-C1nOGzJa.mjs";
17
17
  import { normalizeStringEntries as normalizeAllowList, normalizeStringEntriesLower as normalizeAllowListLower } from "openclaw/plugin-sdk/string-normalization-runtime";
@@ -1 +1 @@
1
- export { t as slackPlugin } from "./.setup/channel-C6Y0ZA9K.mjs";
1
+ export { t as slackPlugin } from "./.setup/channel-ChScqMJw.mjs";
@@ -1,13 +1,13 @@
1
1
  import { t as registerSlackPluginHttpRoutes } from "./.setup/plugin-routes-B8tooDLj.mjs";
2
2
  import { h as resolveSlackBotToken, i as listSlackAccountIds, m as resolveSlackAppToken, o as resolveDefaultSlackAccountId, r as listEnabledSlackAccounts, s as resolveSlackAccount } from "./.setup/accounts-BMg9YLIv.mjs";
3
- import { a as resolveSlackGroupRequireMention, o as resolveSlackGroupToolPolicy } from "./.setup/session-status-Cl6oyyg7.mjs";
3
+ import { a as resolveSlackGroupRequireMention, o as resolveSlackGroupToolPolicy } from "./.setup/session-status-D_THGrJl.mjs";
4
4
  import { t as probeSlack } from "./.setup/probe-CyX52GtD.mjs";
5
5
  import { r as setSlackRuntime } from "./.setup/runtime-JSVZSWAj.mjs";
6
- import { c as listSlackPins, d as reactSlackMessage, f as readSlackMessages, g as unpinSlackMessage, h as sendSlackMessage, i as editSlackMessage, l as listSlackReactions, m as removeSlackReaction, n as deleteSlackMessage, o as getSlackMemberInfo, p as removeOwnSlackReactions, s as listSlackEmojis, u as pinSlackMessage } from "./.setup/actions-Ch4O8XbW.mjs";
7
- import { t as sendMessageSlack } from "./.setup/send-CyRH2z7u.mjs";
8
- import { n as slackActionRuntime, t as handleSlackAction } from "./.setup/action-runtime-DtOIVezL.mjs";
6
+ import { c as listSlackPins, d as reactSlackMessage, f as readSlackMessages, g as unpinSlackMessage, h as sendSlackMessage, i as editSlackMessage, l as listSlackReactions, m as removeSlackReaction, n as deleteSlackMessage, o as getSlackMemberInfo, p as removeOwnSlackReactions, s as listSlackEmojis, u as pinSlackMessage } from "./.setup/actions-DH287DuD.mjs";
7
+ import { t as sendMessageSlack } from "./.setup/send-DfRHvECF.mjs";
8
+ import { n as slackActionRuntime, t as handleSlackAction } from "./.setup/action-runtime-DP76Xs8B.mjs";
9
9
  import { n as listSlackDirectoryGroupsLive, r as listSlackDirectoryPeersLive } from "./.setup/directory-live-FipfeCwt.mjs";
10
- import { n as monitorSlackProvider } from "./.setup/monitor-CNECe8FK.mjs";
10
+ import { n as monitorSlackProvider } from "./.setup/monitor-CsMog7BO.mjs";
11
11
  import { t as resolveSlackChannelAllowlist } from "./.setup/resolve-channels-B96cgprw.mjs";
12
12
  import { t as resolveSlackUserAllowlist } from "./.setup/resolve-users-Xz9aPdns.mjs";
13
13
  export { deleteSlackMessage, editSlackMessage, getSlackMemberInfo, handleSlackAction, listEnabledSlackAccounts, listSlackAccountIds, listSlackDirectoryGroupsLive, listSlackDirectoryPeersLive, listSlackEmojis, listSlackPins, listSlackReactions, monitorSlackProvider, pinSlackMessage, probeSlack, reactSlackMessage, readSlackMessages, registerSlackPluginHttpRoutes, removeOwnSlackReactions, removeSlackReaction, resolveDefaultSlackAccountId, resolveSlackAccount, resolveSlackAppToken, resolveSlackBotToken, resolveSlackChannelAllowlist, resolveSlackGroupRequireMention, resolveSlackGroupToolPolicy, resolveSlackUserAllowlist, sendMessageSlack, sendSlackMessage, setSlackRuntime, slackActionRuntime, unpinSlackMessage };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@openclaw/slack",
3
- "version": "2026.10.5",
3
+ "version": "2026.10.7",
4
4
  "description": "OpenClaw Slack channel plugin for channels, DMs, commands, and app events.",
5
5
  "repository": {
6
6
  "type": "git",
@@ -17,7 +17,7 @@
17
17
  "zod": "4.6.5"
18
18
  },
19
19
  "peerDependencies": {
20
- "openclaw": ">=2026.10.5"
20
+ "openclaw": ">=2026.10.7"
21
21
  },
22
22
  "peerDependenciesMeta": {
23
23
  "openclaw": {
@@ -150,10 +150,10 @@
150
150
  "allowInvalidConfigRecovery": true
151
151
  },
152
152
  "compat": {
153
- "pluginApi": ">=2026.10.5"
153
+ "pluginApi": ">=2026.10.7"
154
154
  },
155
155
  "build": {
156
- "openclawVersion": "2026.10.5",
156
+ "openclawVersion": "2026.10.7",
157
157
  "bundledDist": false
158
158
  },
159
159
  "release": {
@@ -1 +0,0 @@
1
- export { t as handleSlackAction } from "./action-runtime-DtOIVezL.mjs";