@openclaw/slack 2026.5.20-beta.1 → 2026.5.20

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.
package/dist/api.js CHANGED
@@ -2,7 +2,7 @@ import { a as resolveSlackAccount, i as resolveDefaultSlackAccountId, l as resol
2
2
  import { t as inspectSlackAccount } from "./account-inspect-vVg3pT03.js";
3
3
  import { i as resolveSlackChannelId, n as normalizeSlackMessagingTarget, r as parseSlackTarget, t as looksLikeSlackTargetId } from "./target-parsing-CugsYhBQ.js";
4
4
  import "./targets-C5NeqQJr.js";
5
- import { i as resolveSlackChannelType, n as buildSlackThreadingToolContext, o as resolveSlackAutoThreadId, r as resetSlackChannelTypeCacheForTest, t as slackPlugin } from "./channel-Drmb6mnS.js";
5
+ import { i as resolveSlackChannelType, n as buildSlackThreadingToolContext, o as resolveSlackAutoThreadId, r as resetSlackChannelTypeCacheForTest, t as slackPlugin } from "./channel-BGx02-m4.js";
6
6
  import { n as resolveSlackGroupRequireMention, r as resolveSlackGroupToolPolicy } from "./reply-blocks-B_x2Hzez.js";
7
7
  import { n as buildSlackPresentationBlocks, t as buildSlackInteractiveBlocks } from "./blocks-render-CNC4vQnd.js";
8
8
  import { a as validateSlackBlocksArray, i as parseSlackBlocksInput, r as SLACK_MAX_BLOCKS } from "./thread-ts-ks-O8cEG.js";
@@ -17,5 +17,5 @@ import { n as listSlackDirectoryGroupsFromConfig, r as listSlackDirectoryPeersFr
17
17
  import { n as registerSlackHttpHandler, r as normalizeSlackWebhookPath, t as handleSlackHttpRequest } from "./registry-bbjH7IHX.js";
18
18
  import { t as probeSlack } from "./probe-DTCmOwpe.js";
19
19
  import { t as collectSlackSecurityAuditFindings } from "./security-audit-CikQhBUY.js";
20
- import { n as resolveSlackRuntimeGroupPolicy } from "./provider-CrKP-JyL.js";
20
+ import { n as resolveSlackRuntimeGroupPolicy } from "./provider-BooGa5D8.js";
21
21
  export { SLACK_DEFAULT_RETRY_OPTIONS, SLACK_MAX_BLOCKS, SLACK_WRITE_RETRY_OPTIONS, resetSlackChannelTypeCacheForTest as __resetSlackChannelTypeCacheForTest, resetSlackChannelTypeCacheForTest, allowListMatches, buildSlackInteractiveBlocks, buildSlackPresentationBlocks, buildSlackThreadingToolContext, clearSlackThreadParticipationCache, clearSlackWriteClientCacheForTest, collectSlackSecurityAuditFindings, compileSlackInteractiveReplies, createSlackTokenCacheKey, createSlackWebClient, createSlackWriteClient, deleteSlackMessage, downloadSlackFile, editSlackMessage, extractSlackToolSend, getSlackMemberInfo, getSlackWriteClient, handleSlackHttpRequest, hasSlackThreadParticipation, inspectSlackAccount, isSlackInteractiveRepliesEnabled, listEnabledSlackAccounts, listSlackAccountIds, listSlackDirectoryGroupsFromConfig, listSlackDirectoryPeersFromConfig, listSlackEmojis, listSlackMessageActions, listSlackPins, listSlackReactions, looksLikeSlackTargetId, mergeSlackAccountConfig, normalizeAllowList, normalizeAllowListLower, normalizeSlackAllowOwnerEntry, normalizeSlackMessagingTarget, normalizeSlackSlug, normalizeSlackWebhookPath, parseSlackBlocksInput, parseSlackOptionsLine, parseSlackTarget, pinSlackMessage, probeSlack, reactSlackMessage, readSlackMessages, recordSlackThreadParticipation, registerSlackHttpHandler, removeOwnSlackReactions, removeSlackReaction, resolveDefaultSlackAccountId, resolveSlackAccount, resolveSlackAllowListMatch, resolveSlackAutoThreadId, resolveSlackChannelId, resolveSlackChannelType, resolveSlackGroupRequireMention, resolveSlackGroupToolPolicy, resolveSlackReplyToMode, resolveSlackRuntimeGroupPolicy, resolveSlackUserAllowed, resolveSlackWebClientOptions, resolveSlackWriteClientOptions, sendSlackMessage, slackPlugin, slackSetupPlugin, unpinSlackMessage, validateSlackBlocksArray };
@@ -512,7 +512,7 @@ async function loadSlackProbeModule() {
512
512
  return await slackProbeModulePromise;
513
513
  }
514
514
  async function loadSlackMonitorModule() {
515
- slackMonitorModulePromise ??= import("./monitor-B9Ka9cWt.js").then((n) => n.t);
515
+ slackMonitorModulePromise ??= import("./monitor-B5cDOhd9.js").then((n) => n.t);
516
516
  return await slackMonitorModulePromise;
517
517
  }
518
518
  async function loadSlackDirectoryLiveModule() {
@@ -1,2 +1,2 @@
1
- import { t as slackPlugin } from "./channel-Drmb6mnS.js";
1
+ import { t as slackPlugin } from "./channel-BGx02-m4.js";
2
2
  export { slackPlugin };
@@ -1,3 +1,3 @@
1
- import { t as prepareSlackMessage } from "./prepare--dY1BAh5.js";
1
+ import { t as prepareSlackMessage } from "./prepare-DG5iny4a.js";
2
2
  import { t as createInboundSlackTestContext } from "./prepare.test-helpers-DkdsBfN8.js";
3
3
  export { createInboundSlackTestContext, prepareSlackMessage };
@@ -1,7 +1,7 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-D7D4PA-g.js";
2
2
  import { h as isSlackChannelAllowedByPolicy, k as buildSlackSlashCommandMatcher } from "./room-context-pG80xzA4.js";
3
- import { t as monitorSlackProvider } from "./provider-CrKP-JyL.js";
4
- import { o as resolveSlackThreadTs } from "./replies-D7fiGAki.js";
3
+ import { t as monitorSlackProvider } from "./provider-BooGa5D8.js";
4
+ import { o as resolveSlackThreadTs } from "./replies-CZYffp8P.js";
5
5
  //#region extensions/slack/src/monitor.ts
6
6
  var monitor_exports = /* @__PURE__ */ __exportAll({
7
7
  buildSlackSlashCommandMatcher: () => buildSlackSlashCommandMatcher,
@@ -6,9 +6,9 @@ import { a as recordSlackThreadParticipation, s as normalizeSlackOutboundText, t
6
6
  import { b as buildSlackEditTextPayload, f as removeSlackReaction, l as reactSlackMessage, r as editSlackMessage, t as deleteSlackMessage } from "./actions-S6WfIXe6.js";
7
7
  import { t as formatSlackError } from "./errors-co-Fg3Ll.js";
8
8
  import { D as updateLastRoute, E as resolveStorePath, a as recordInboundSession } from "./room-context-pG80xzA4.js";
9
- import { r as escapeSlackMrkdwn } from "./provider-CrKP-JyL.js";
10
- import { n as resolveSlackThreadTargets, t as prepareSlackMessage } from "./prepare--dY1BAh5.js";
11
- import { a as resolveDeliveredSlackReplyThreadTs, i as readSlackReplyBlocks, n as deliverReplies, o as resolveSlackThreadTs, t as createSlackReplyDeliveryPlan } from "./replies-D7fiGAki.js";
9
+ import { r as escapeSlackMrkdwn } from "./provider-BooGa5D8.js";
10
+ import { n as resolveSlackThreadTargets, t as prepareSlackMessage } from "./prepare-DG5iny4a.js";
11
+ import { a as resolveDeliveredSlackReplyThreadTs, i as readSlackReplyBlocks, n as deliverReplies, o as resolveSlackThreadTs, t as createSlackReplyDeliveryPlan } from "./replies-CZYffp8P.js";
12
12
  import { normalizeOptionalLowercaseString } from "openclaw/plugin-sdk/string-coerce-runtime";
13
13
  import { resolveInboundLastRouteSessionKey } from "openclaw/plugin-sdk/routing";
14
14
  import { createChannelMessageReplyPipeline, defineFinalizableLivePreviewAdapter, deliverWithFinalizableLivePreviewAdapter, resolveChannelMessageSourceReplyDeliveryMode } from "openclaw/plugin-sdk/channel-message";
@@ -713,10 +713,13 @@ async function dispatchPreparedSlackMessage(prepared) {
713
713
  agentId: route.agentId,
714
714
  channel: "slack",
715
715
  accountId: route.accountId,
716
- transformReplyPayload: (payload) => isSlackInteractiveRepliesEnabled({
717
- cfg,
718
- accountId: route.accountId
719
- }) ? compileSlackInteractiveReplies(payload) : payload,
716
+ transformReplyPayload: (payload) => {
717
+ if (payload.isReasoning === true) return null;
718
+ return isSlackInteractiveRepliesEnabled({
719
+ cfg,
720
+ accountId: route.accountId
721
+ }) ? compileSlackInteractiveReplies(payload) : payload;
722
+ },
720
723
  typing: {
721
724
  start: async () => {
722
725
  didSetStatus = true;
@@ -834,6 +837,7 @@ async function dispatchPreparedSlackMessage(prepared) {
834
837
  }
835
838
  };
836
839
  const deliverNormally = async (params) => {
840
+ if (params.payload.isReasoning === true) return;
837
841
  const replyThreadTs = resolveDeliveryThreadTs(params);
838
842
  if (deliveryTracker.hasDelivered({
839
843
  kind: params.kind,
@@ -1005,6 +1009,7 @@ async function dispatchPreparedSlackMessage(prepared) {
1005
1009
  ...replyPipeline,
1006
1010
  humanDelay: resolveHumanDelayConfig(cfg, route.agentId),
1007
1011
  deliver: async (payload, info) => {
1012
+ if (payload.isReasoning === true) return;
1008
1013
  if (useStreaming) {
1009
1014
  await deliverWithStreaming({
1010
1015
  payload,
@@ -1469,9 +1469,7 @@ async function prepareSlackMessage(params) {
1469
1469
  const slackFrom = isDirectMessage ? `slack:${message.user}` : isRoom ? `slack:channel:${message.channel}` : `slack:group:${message.channel}`;
1470
1470
  enqueueSystemEvent(`${inboundLabel}: ${preview}`, {
1471
1471
  sessionKey,
1472
- contextKey: `slack:message:${message.channel}:${message.ts ?? "unknown"}`,
1473
- forceSenderIsOwnerFalse: true,
1474
- trusted: false
1472
+ contextKey: `slack:message:${message.channel}:${message.ts ?? "unknown"}`
1475
1473
  });
1476
1474
  const envelopeFrom = resolveConversationLabel$1({
1477
1475
  ChatType: chatType,
@@ -2,6 +2,7 @@ import { a as resolveSlackAccount, d as resolveSlackBotToken, o as resolveSlackA
2
2
  import { i as isSlackApprovalAuthorizedSender, o as isSlackExecApprovalAuthorizedSender, s as isSlackExecApprovalClientEnabled } from "./reply-blocks-B_x2Hzez.js";
3
3
  import "./blocks-render-CNC4vQnd.js";
4
4
  import { o as SLACK_TEXT_LIMIT, s as truncateSlackText } from "./thread-ts-ks-O8cEG.js";
5
+ import { n as isSlackInteractiveRepliesEnabled, t as compileSlackInteractiveReplies } from "./interactive-replies-9v8OYeGV.js";
5
6
  import { c as resolveSlackWebClientOptions } from "./client-BY0ZhGHl.js";
6
7
  import { n as normalizeAllowList, r as normalizeAllowListLower, t as allowListMatches } from "./allow-list-ChDz7vQO.js";
7
8
  import { t as getOptionalSlackRuntime } from "./runtime-BOk7xkOl.js";
@@ -228,9 +229,7 @@ function registerSlackChannelEvents(params) {
228
229
  });
229
230
  enqueueSystemEvent(`Slack channel ${params.kind}: ${label}.`, {
230
231
  sessionKey,
231
- contextKey: `slack:channel:${params.kind}:${params.channelId ?? params.channelName ?? "unknown"}`,
232
- forceSenderIsOwnerFalse: true,
233
- trusted: false
232
+ contextKey: `slack:channel:${params.kind}:${params.channelId ?? params.channelName ?? "unknown"}`
234
233
  });
235
234
  };
236
235
  ctx.app.event("channel_created", async ({ event, body }) => {
@@ -808,9 +807,7 @@ function enqueueSlackBlockActionEvent(params) {
808
807
  to: params.auth.channelType === "im" ? `user:${params.parsed.userId}` : params.parsed.channelId ? `channel:${params.parsed.channelId}` : void 0,
809
808
  accountId: params.ctx.accountId,
810
809
  threadId: params.parsed.threadTs
811
- },
812
- forceSenderIsOwnerFalse: true,
813
- trusted: false
810
+ }
814
811
  })) requestHeartbeat({
815
812
  source: "hook",
816
813
  intent: "immediate",
@@ -1706,9 +1703,7 @@ function registerSlackReactionEvents(params) {
1706
1703
  const baseText = `Slack reaction ${action}: :${emojiLabel}: by ${actorLabel} in ${ingressContext.channelLabel} msg ${item.ts}`;
1707
1704
  enqueueSystemEvent(authorLabel ? `${baseText} from ${authorLabel}` : baseText, {
1708
1705
  sessionKey: ingressContext.sessionKey,
1709
- contextKey: `slack:reaction:${action}:${item.channel}:${item.ts}:${event.user}:${emojiLabel}`,
1710
- forceSenderIsOwnerFalse: true,
1711
- trusted: false
1706
+ contextKey: `slack:reaction:${action}:${item.channel}:${item.ts}:${event.user}:${emojiLabel}`
1712
1707
  });
1713
1708
  } catch (err) {
1714
1709
  ctx.runtime.error?.(danger(`slack reaction handler failed: ${formatErrorMessage(err)}`));
@@ -1961,7 +1956,7 @@ function createSlackThreadTsResolver(params) {
1961
1956
  //#region extensions/slack/src/monitor/message-handler.ts
1962
1957
  let slackMessagePipelinePromise;
1963
1958
  function loadSlackMessagePipeline() {
1964
- slackMessagePipelinePromise ??= import("./pipeline.runtime-oxXFPiWU.js");
1959
+ slackMessagePipelinePromise ??= import("./pipeline.runtime-Dgsru7II.js");
1965
1960
  return slackMessagePipelinePromise;
1966
1961
  }
1967
1962
  const APP_MENTION_RETRY_TTL_MS = 6e4;
@@ -2519,7 +2514,7 @@ function loadSlashCommandsRuntime() {
2519
2514
  return slashCommandsRuntimePromise;
2520
2515
  }
2521
2516
  function loadSlashDispatchRuntime() {
2522
- slashDispatchRuntimePromise ??= import("./slash-dispatch.runtime-DWq9YKkN.js");
2517
+ slashDispatchRuntimePromise ??= import("./slash-dispatch.runtime-CagAaHMo.js");
2523
2518
  return slashDispatchRuntimePromise;
2524
2519
  }
2525
2520
  function loadSlackPluginCommandsRuntime() {
@@ -3000,7 +2995,14 @@ async function registerSlackMonitorSlashCommands(params) {
3000
2995
  cfg,
3001
2996
  agentId: route.agentId,
3002
2997
  channel: "slack",
3003
- accountId: route.accountId
2998
+ accountId: route.accountId,
2999
+ transformReplyPayload: (payload) => {
3000
+ if (payload.isReasoning === true) return null;
3001
+ return isSlackInteractiveRepliesEnabled({
3002
+ cfg,
3003
+ accountId: route.accountId
3004
+ }) ? compileSlackInteractiveReplies(payload) : payload;
3005
+ }
3004
3006
  });
3005
3007
  const deliverSlashPayloads = async (replies) => {
3006
3008
  await deliverSlackSlashReplies({
@@ -14,6 +14,7 @@ function resolveDeliveredSlackReplyThreadTs(params) {
14
14
  }
15
15
  async function deliverReplies(params) {
16
16
  for (const payload of params.replies) {
17
+ if (payload.isReasoning === true) continue;
17
18
  const threadTs = resolveDeliveredSlackReplyThreadTs({
18
19
  replyToMode: params.replyToMode,
19
20
  payloadReplyToId: payload.replyToId,
@@ -114,6 +115,7 @@ async function deliverSlackSlashReplies(params) {
114
115
  const messages = [];
115
116
  const chunkLimit = Math.min(params.textLimit, SLACK_TEXT_LIMIT);
116
117
  for (const payload of params.replies) {
118
+ if (payload.isReasoning === true) continue;
117
119
  const reply = resolveSendableOutboundReplyParts(payload);
118
120
  const slackBlocks = readSlackReplyBlocks(payload);
119
121
  const text = reply.hasText && !isSilentReplyText(reply.trimmedText, SILENT_REPLY_TOKEN) ? reply.trimmedText : void 0;
@@ -6,9 +6,9 @@ import { a as listSlackEmojis, c as pinSlackMessage, d as removeOwnSlackReaction
6
6
  import { t as probeSlack } from "./probe-DTCmOwpe.js";
7
7
  import { t as resolveSlackChannelAllowlist } from "./resolve-channels-CXV6oSKF.js";
8
8
  import { t as resolveSlackUserAllowlist } from "./resolve-users-BCBZwBB5.js";
9
- import { t as monitorSlackProvider } from "./provider-CrKP-JyL.js";
9
+ import { t as monitorSlackProvider } from "./provider-BooGa5D8.js";
10
10
  import { t as registerSlackPluginHttpRoutes } from "./plugin-routes-DRR3ijKM.js";
11
11
  import { n as slackActionRuntime, t as handleSlackAction } from "./action-runtime-CiDDL5q5.js";
12
12
  import { n as listSlackDirectoryGroupsLive, r as listSlackDirectoryPeersLive } from "./directory-live-COvr0w-z.js";
13
- import "./monitor-B9Ka9cWt.js";
13
+ import "./monitor-B5cDOhd9.js";
14
14
  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 };
@@ -1,4 +1,4 @@
1
- import { r as deliverSlackSlashReplies$1 } from "./replies-D7fiGAki.js";
1
+ import { r as deliverSlackSlashReplies$1 } from "./replies-CZYffp8P.js";
2
2
  import { resolveAgentRoute as resolveAgentRoute$1 } from "openclaw/plugin-sdk/routing";
3
3
  import { resolveMarkdownTableMode as resolveMarkdownTableMode$1 } from "openclaw/plugin-sdk/markdown-table-runtime";
4
4
  import { recordInboundSessionMetaSafe as recordInboundSessionMetaSafe$1, resolveConversationLabel as resolveConversationLabel$1 } from "openclaw/plugin-sdk/conversation-runtime";
package/dist/test-api.js CHANGED
@@ -1,7 +1,7 @@
1
- import { a as createSlackActions, t as slackPlugin } from "./channel-Drmb6mnS.js";
1
+ import { a as createSlackActions, t as slackPlugin } from "./channel-BGx02-m4.js";
2
2
  import { n as setSlackRuntime } from "./runtime-BOk7xkOl.js";
3
3
  import { t as sendMessageSlack } from "./send-ag0Lnpod.js";
4
- import { t as prepareSlackMessage } from "./prepare--dY1BAh5.js";
4
+ import { t as prepareSlackMessage } from "./prepare-DG5iny4a.js";
5
5
  import { t as createInboundSlackTestContext } from "./prepare.test-helpers-DkdsBfN8.js";
6
6
  import { t as createSlackOutboundPayloadHarness } from "./outbound-payload.test-harness-CCyuhlnK.js";
7
7
  import { n as slackOutbound } from "./outbound-adapter-CrkqCWtg.js";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@openclaw/slack",
3
- "version": "2026.5.20-beta.1",
3
+ "version": "2026.5.20",
4
4
  "description": "OpenClaw Slack channel plugin",
5
5
  "repository": {
6
6
  "type": "git",
@@ -20,7 +20,7 @@
20
20
  "openclaw": "workspace:*"
21
21
  },
22
22
  "peerDependencies": {
23
- "openclaw": ">=2026.5.20-beta.1"
23
+ "openclaw": ">=2026.5.20"
24
24
  },
25
25
  "peerDependenciesMeta": {
26
26
  "openclaw": {
@@ -65,10 +65,10 @@
65
65
  "allowInvalidConfigRecovery": true
66
66
  },
67
67
  "compat": {
68
- "pluginApi": ">=2026.5.20-beta.1"
68
+ "pluginApi": ">=2026.5.20"
69
69
  },
70
70
  "build": {
71
- "openclawVersion": "2026.5.20-beta.1",
71
+ "openclawVersion": "2026.5.20",
72
72
  "bundledDist": false
73
73
  },
74
74
  "release": {