@openclaw/slack 2026.5.16-beta.1 → 2026.5.16-beta.3
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 +3 -3
- package/dist/{channel-CVSopl66.js → channel-DoFtZGpw.js} +10 -6
- package/dist/channel-plugin-api.js +1 -1
- package/dist/{channel.setup-DknBgufI.js → channel.setup-BDL4qn9U.js} +1 -1
- package/dist/inbound-contract-test-api.js +1 -1
- package/dist/{monitor-CdVxsuHi.js → monitor-Djnd8pGL.js} +1 -1
- package/dist/{pipeline.runtime-CakcaQh9.js → pipeline.runtime-DJcwOZky.js} +3 -3
- package/dist/{prepare-DSRUr44d.js → prepare-Or_6_XXl.js} +15 -10
- package/dist/{provider-bKg1hkf5.js → provider-3Y7c15_J.js} +5 -2
- package/dist/runtime-api.js +2 -2
- package/dist/setup-plugin-api.js +1 -1
- package/dist/{setup-surface-D6LLzeRz.js → setup-surface-CJS-L7PA.js} +1 -1
- package/dist/{shared-7Vi9j4aV.js → shared-BEabCPK3.js} +5 -1
- package/dist/test-api.js +2 -2
- package/package.json +6 -5
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-BJyQLSkN.js";
|
|
3
3
|
import { i as resolveSlackChannelId, n as normalizeSlackMessagingTarget, r as parseSlackTarget, t as looksLikeSlackTargetId } from "./target-parsing-CQmv-iSm.js";
|
|
4
4
|
import "./targets-B1tYCAr6.js";
|
|
5
|
-
import { i as resolveSlackChannelType, n as buildSlackThreadingToolContext, o as resolveSlackAutoThreadId, r as __resetSlackChannelTypeCacheForTest, t as slackPlugin } from "./channel-
|
|
5
|
+
import { i as resolveSlackChannelType, n as buildSlackThreadingToolContext, o as resolveSlackAutoThreadId, r as __resetSlackChannelTypeCacheForTest, t as slackPlugin } from "./channel-DoFtZGpw.js";
|
|
6
6
|
import { n as resolveSlackGroupRequireMention, r as resolveSlackGroupToolPolicy } from "./reply-blocks-BFaJ_ejG.js";
|
|
7
7
|
import { n as buildSlackPresentationBlocks, t as buildSlackInteractiveBlocks } from "./blocks-render-BAVfd6r0.js";
|
|
8
8
|
import { a as validateSlackBlocksArray, i as parseSlackBlocksInput, r as SLACK_MAX_BLOCKS } from "./thread-ts-As_dcNbD.js";
|
|
@@ -10,12 +10,12 @@ import { n as extractSlackToolSend, r as listSlackMessageActions } from "./messa
|
|
|
10
10
|
import { n as isSlackInteractiveRepliesEnabled, r as parseSlackOptionsLine, t as compileSlackInteractiveReplies } from "./interactive-replies-BSg5hXhj.js";
|
|
11
11
|
import { a as getSlackWriteClient, c as resolveSlackWebClientOptions, i as createSlackWriteClient, l as resolveSlackWriteClientOptions, n as createSlackTokenCacheKey, o as SLACK_DEFAULT_RETRY_OPTIONS, r as createSlackWebClient, s as SLACK_WRITE_RETRY_OPTIONS, t as clearSlackWriteClientCacheForTest } from "./client-C_IaJbi5.js";
|
|
12
12
|
import { a as normalizeSlackSlug, i as normalizeSlackAllowOwnerEntry, n as normalizeAllowList, o as resolveSlackAllowListMatch, r as normalizeAllowListLower, s as resolveSlackUserAllowed, t as allowListMatches } from "./allow-list-nwXs_eCP.js";
|
|
13
|
-
import { t as slackSetupPlugin } from "./channel.setup-
|
|
13
|
+
import { t as slackSetupPlugin } from "./channel.setup-BDL4qn9U.js";
|
|
14
14
|
import { a as recordSlackThreadParticipation, n as clearSlackThreadParticipationCache, r as hasSlackThreadParticipation } from "./send-CxXFbqN1.js";
|
|
15
15
|
import { a as listSlackEmojis, c as pinSlackMessage, d as removeOwnSlackReactions, f as removeSlackReaction, i as getSlackMemberInfo, l as reactSlackMessage, m as unpinSlackMessage, n as downloadSlackFile, o as listSlackPins, p as sendSlackMessage, r as editSlackMessage, s as listSlackReactions, t as deleteSlackMessage, u as readSlackMessages } from "./actions-BCRbHv1Q.js";
|
|
16
16
|
import { n as listSlackDirectoryGroupsFromConfig, r as listSlackDirectoryPeersFromConfig } from "./directory-config-CMvFiswf.js";
|
|
17
17
|
import { n as registerSlackHttpHandler, r as normalizeSlackWebhookPath, t as handleSlackHttpRequest } from "./registry-D2cWOLZV.js";
|
|
18
18
|
import { t as probeSlack } from "./probe-FL4sUJsH.js";
|
|
19
19
|
import { t as collectSlackSecurityAuditFindings } from "./security-audit-BJzADAw3.js";
|
|
20
|
-
import { n as resolveSlackRuntimeGroupPolicy } from "./provider-
|
|
20
|
+
import { n as resolveSlackRuntimeGroupPolicy } from "./provider-3Y7c15_J.js";
|
|
21
21
|
export { SLACK_DEFAULT_RETRY_OPTIONS, SLACK_MAX_BLOCKS, SLACK_WRITE_RETRY_OPTIONS, __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 };
|
|
@@ -9,7 +9,7 @@ import { n as isSlackInteractiveRepliesEnabled, t as compileSlackInteractiveRepl
|
|
|
9
9
|
import { d as PAIRING_APPROVED_MESSAGE, m as resolveConfiguredFromRequiredCredentialStatuses, p as projectCredentialSnapshotFields, r as createSlackWebClient, u as DEFAULT_ACCOUNT_ID } from "./client-C_IaJbi5.js";
|
|
10
10
|
import { r as normalizeAllowListLower } from "./allow-list-nwXs_eCP.js";
|
|
11
11
|
import { t as getOptionalSlackRuntime } from "./runtime-DQxkf7k2.js";
|
|
12
|
-
import { i as slackSecurityAdapter, n as isSlackPluginAccountConfigured, r as slackConfigAdapter, t as createSlackPluginBase } from "./shared-
|
|
12
|
+
import { i as slackSecurityAdapter, n as isSlackPluginAccountConfigured, r as slackConfigAdapter, t as createSlackPluginBase } from "./shared-BEabCPK3.js";
|
|
13
13
|
import { i as SLACK_CHANNEL, n as createSlackSetupWizardProxy, r as slackSetupAdapter } from "./setup-core-B7pou7oe.js";
|
|
14
14
|
import { normalizeLowercaseStringOrEmpty, normalizeOptionalString } from "openclaw/plugin-sdk/string-coerce-runtime";
|
|
15
15
|
import { adaptScopedAccountAccessor } from "openclaw/plugin-sdk/channel-config-helpers";
|
|
@@ -449,11 +449,15 @@ function buildSlackThreadingToolContext(params) {
|
|
|
449
449
|
cfg: params.cfg,
|
|
450
450
|
accountId: params.accountId
|
|
451
451
|
}), params.context.ChatType);
|
|
452
|
-
const
|
|
453
|
-
const
|
|
452
|
+
const messageThreadTs = normalizeSlackThreadTsCandidate(params.context.MessageThreadId);
|
|
453
|
+
const transportThreadTs = normalizeSlackThreadTsCandidate(params.context.TransportThreadId);
|
|
454
|
+
const replyToThreadTs = normalizeSlackThreadTsCandidate(params.context.ReplyToId);
|
|
455
|
+
const currentMessageTs = normalizeSlackThreadTsCandidate(params.context.CurrentMessageId);
|
|
456
|
+
const currentThreadTs = messageThreadTs ?? transportThreadTs ?? replyToThreadTs;
|
|
457
|
+
const effectiveReplyToMode = messageThreadTs != null || transportThreadTs != null || replyToThreadTs != null && currentMessageTs != null && replyToThreadTs !== currentMessageTs ? "all" : configuredReplyToMode;
|
|
454
458
|
return {
|
|
455
459
|
currentChannelId: params.context.To?.startsWith("channel:") ? params.context.To.slice(8) : normalizeOptionalString(params.context.NativeChannelId),
|
|
456
|
-
currentThreadTs
|
|
460
|
+
currentThreadTs,
|
|
457
461
|
replyToMode: effectiveReplyToMode,
|
|
458
462
|
hasRepliedRef: params.hasRepliedRef
|
|
459
463
|
};
|
|
@@ -464,7 +468,7 @@ const EXTENSION_SHARED_MODULE_ID = "openclaw/plugin-sdk/extension-shared";
|
|
|
464
468
|
const TARGET_RESOLVER_RUNTIME_MODULE_ID = "openclaw/plugin-sdk/target-resolver-runtime";
|
|
465
469
|
const loadExtensionSharedSdk = createLazyRuntimeModule(() => import(EXTENSION_SHARED_MODULE_ID));
|
|
466
470
|
const loadTargetResolverRuntimeSdk = createLazyRuntimeModule(() => import(TARGET_RESOLVER_RUNTIME_MODULE_ID));
|
|
467
|
-
const loadSlackSetupSurfaceModule = createLazyRuntimeModule(() => import("./setup-surface-
|
|
471
|
+
const loadSlackSetupSurfaceModule = createLazyRuntimeModule(() => import("./setup-surface-CJS-L7PA.js"));
|
|
468
472
|
const loadSlackScopesModule = createLazyRuntimeModule(() => import("./scopes-Bvg_ZzqZ.js"));
|
|
469
473
|
const loadSlackOutboundAdapterModule = createLazyRuntimeModule(() => import("./outbound-adapter-CHm6e-0Q.js").then((n) => n.t));
|
|
470
474
|
async function resolveSlackHandleAction() {
|
|
@@ -502,7 +506,7 @@ async function loadSlackProbeModule() {
|
|
|
502
506
|
return await slackProbeModulePromise;
|
|
503
507
|
}
|
|
504
508
|
async function loadSlackMonitorModule() {
|
|
505
|
-
slackMonitorModulePromise ??= import("./monitor-
|
|
509
|
+
slackMonitorModulePromise ??= import("./monitor-Djnd8pGL.js").then((n) => n.t);
|
|
506
510
|
return await slackMonitorModulePromise;
|
|
507
511
|
}
|
|
508
512
|
async function loadSlackDirectoryLiveModule() {
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { t as slackPlugin } from "./channel-
|
|
1
|
+
import { t as slackPlugin } from "./channel-DoFtZGpw.js";
|
|
2
2
|
export { slackPlugin };
|
|
@@ -4,7 +4,7 @@ import { t as SlackChannelConfigSchema } from "./config-schema-CNRousxw.js";
|
|
|
4
4
|
import { adaptScopedAccountAccessor, createScopedChannelConfigAdapter } from "openclaw/plugin-sdk/channel-config-helpers";
|
|
5
5
|
import { formatAllowFromLowercase } from "openclaw/plugin-sdk/allow-from";
|
|
6
6
|
//#region extensions/slack/src/channel.setup.ts
|
|
7
|
-
const slackSetupWizard = createSlackSetupWizardProxy(async () => ({ slackSetupWizard: (await import("./setup-surface-
|
|
7
|
+
const slackSetupWizard = createSlackSetupWizardProxy(async () => ({ slackSetupWizard: (await import("./setup-surface-CJS-L7PA.js")).slackSetupWizard }));
|
|
8
8
|
const slackSetupConfigAdapter = createScopedChannelConfigAdapter({
|
|
9
9
|
sectionKey: SLACK_CHANNEL,
|
|
10
10
|
listAccountIds: listSlackAccountIds,
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { t as prepareSlackMessage } from "./prepare-
|
|
1
|
+
import { t as prepareSlackMessage } from "./prepare-Or_6_XXl.js";
|
|
2
2
|
import { t as createInboundSlackTestContext } from "./prepare.test-helpers-CU1qB54Q.js";
|
|
3
3
|
export { createInboundSlackTestContext, prepareSlackMessage };
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { t as __exportAll } from "./rolldown-runtime-CiIaOW0V.js";
|
|
2
2
|
import { D as buildSlackSlashCommandMatcher, p as isSlackChannelAllowedByPolicy } from "./room-context-Cd8jFpS-.js";
|
|
3
|
-
import { t as monitorSlackProvider } from "./provider-
|
|
3
|
+
import { t as monitorSlackProvider } from "./provider-3Y7c15_J.js";
|
|
4
4
|
import { o as resolveSlackThreadTs } from "./replies-Fg1T3ZzU.js";
|
|
5
5
|
//#region extensions/slack/src/monitor.ts
|
|
6
6
|
var monitor_exports = /* @__PURE__ */ __exportAll({
|
|
@@ -6,8 +6,8 @@ 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-BCRbHv1Q.js";
|
|
7
7
|
import { t as formatSlackError } from "./errors-C_sW0Zgl.js";
|
|
8
8
|
import { T as updateLastRoute, a as recordInboundSession, w as resolveStorePath } from "./room-context-Cd8jFpS-.js";
|
|
9
|
-
import { r as escapeSlackMrkdwn } from "./provider-
|
|
10
|
-
import { n as resolveSlackThreadTargets, t as prepareSlackMessage } from "./prepare-
|
|
9
|
+
import { r as escapeSlackMrkdwn } from "./provider-3Y7c15_J.js";
|
|
10
|
+
import { n as resolveSlackThreadTargets, t as prepareSlackMessage } from "./prepare-Or_6_XXl.js";
|
|
11
11
|
import { a as resolveDeliveredSlackReplyThreadTs, i as readSlackReplyBlocks, n as deliverReplies, o as resolveSlackThreadTs, t as createSlackReplyDeliveryPlan } from "./replies-Fg1T3ZzU.js";
|
|
12
12
|
import { normalizeOptionalLowercaseString } from "openclaw/plugin-sdk/string-coerce-runtime";
|
|
13
13
|
import { resolveInboundLastRouteSessionKey } from "openclaw/plugin-sdk/routing";
|
|
@@ -627,7 +627,7 @@ async function dispatchPreparedSlackMessage(prepared) {
|
|
|
627
627
|
channel: "slack",
|
|
628
628
|
to: `user:${message.user}`,
|
|
629
629
|
accountId: route.accountId,
|
|
630
|
-
threadId: prepared.ctxPayload.MessageThreadId
|
|
630
|
+
threadId: prepared.ctxPayload.MessageThreadId ?? prepared.ctxPayload.TransportThreadId
|
|
631
631
|
},
|
|
632
632
|
ctx: prepared.ctxPayload
|
|
633
633
|
});
|
|
@@ -460,17 +460,18 @@ function resolveSlackRoutingContext(params) {
|
|
|
460
460
|
const isThreadReply = threadContext.isThreadReply;
|
|
461
461
|
const autoThreadId = !isThreadReply && replyToMode === "all" && threadContext.messageTs ? threadContext.messageTs : void 0;
|
|
462
462
|
const seedCandidateThreadId = threadContext.incomingThreadTs ?? threadContext.messageTs;
|
|
463
|
-
const routedThreadId = (isDirectMessage ?
|
|
463
|
+
const routedThreadId = (isDirectMessage ? void 0 : isRoomish ? isThreadReply && threadTs ? threadTs : void 0 : isThreadReply ? threadTs : autoThreadId) ?? (isRoomish ? !isThreadReply && isRoom && seedTopLevelRoomThread && replyToMode !== "off" && seedCandidateThreadId ? seedCandidateThreadId : void 0 : void 0);
|
|
464
464
|
const baseConversationId = resolveSlackBaseConversationId({
|
|
465
465
|
message,
|
|
466
466
|
isDirectMessage
|
|
467
467
|
});
|
|
468
|
-
const
|
|
468
|
+
const runtimeBindingThreadId = routedThreadId ?? (isDirectMessage && isThreadReply ? threadTs : void 0);
|
|
469
|
+
const boundThreadRoute = runtimeBindingThreadId ? resolveRuntimeConversationBindingRoute({
|
|
469
470
|
route,
|
|
470
471
|
conversation: {
|
|
471
472
|
channel: "slack",
|
|
472
473
|
accountId: account.accountId,
|
|
473
|
-
conversationId:
|
|
474
|
+
conversationId: runtimeBindingThreadId,
|
|
474
475
|
parentConversationId: baseConversationId
|
|
475
476
|
}
|
|
476
477
|
}) : null;
|
|
@@ -686,7 +687,7 @@ async function resolveSlackThreadContextData(params) {
|
|
|
686
687
|
logVerbose("slack: retained current-bot thread starter as assistant root context");
|
|
687
688
|
}
|
|
688
689
|
const threadInitialHistoryLimit = params.account.config?.thread?.initialHistoryLimit ?? 20;
|
|
689
|
-
if (threadInitialHistoryLimit > 0 && !threadSessionPreviousTimestamp) {
|
|
690
|
+
if (threadInitialHistoryLimit > 0 && (!threadSessionPreviousTimestamp || params.forceInitialHistory)) {
|
|
690
691
|
const currentBotRootTs = starter?.ts ?? params.threadTs;
|
|
691
692
|
const threadHistoryWithBotRoot = ensureSlackThreadHistoryHasBotRoot({
|
|
692
693
|
history: await resolveSlackThreadHistory({
|
|
@@ -1150,6 +1151,7 @@ async function prepareSlackMessage(params) {
|
|
|
1150
1151
|
return null;
|
|
1151
1152
|
}
|
|
1152
1153
|
}
|
|
1154
|
+
const directThreadRoutedToDmSession = isDirectMessage && isThreadReply && threadTs && runtimeBinding?.conversation.conversationId !== threadTs;
|
|
1153
1155
|
let implicitMentionKinds = [];
|
|
1154
1156
|
if (!isDirectMessage && ctx.botUserId && message.thread_ts && !ctx.threadRequireExplicitMention && !wasMentioned) {
|
|
1155
1157
|
const replyToBotKinds = implicitMentionKindWhen("reply_to_bot", message.parent_user_id === ctx.botUserId);
|
|
@@ -1446,6 +1448,7 @@ async function prepareSlackMessage(params) {
|
|
|
1446
1448
|
roomLabel,
|
|
1447
1449
|
storePath,
|
|
1448
1450
|
sessionKey,
|
|
1451
|
+
forceInitialHistory: Boolean(directThreadRoutedToDmSession),
|
|
1449
1452
|
allowFromLower: threadContextAllowFromLower,
|
|
1450
1453
|
allowNameMatching: ctx.allowNameMatching,
|
|
1451
1454
|
contextVisibilityMode,
|
|
@@ -1458,6 +1461,7 @@ async function prepareSlackMessage(params) {
|
|
|
1458
1461
|
limit: ctx.historyLimit
|
|
1459
1462
|
}) : dmHistoryContext.inboundHistory;
|
|
1460
1463
|
const commandBody = textForCommandDetection.trim();
|
|
1464
|
+
const supplementalThreadHistoryBody = directThreadRoutedToDmSession && !threadHistoryBody ? threadStarterBody : threadHistoryBody;
|
|
1461
1465
|
const ctxPayload = buildChannelTurnContext({
|
|
1462
1466
|
channel: "slack",
|
|
1463
1467
|
provider: "slack",
|
|
@@ -1476,7 +1480,7 @@ async function prepareSlackMessage(params) {
|
|
|
1476
1480
|
id: message.channel,
|
|
1477
1481
|
label: envelopeFrom,
|
|
1478
1482
|
spaceId: ctx.teamId || void 0,
|
|
1479
|
-
threadId: threadContext.messageThreadId,
|
|
1483
|
+
threadId: directThreadRoutedToDmSession ? void 0 : threadContext.messageThreadId,
|
|
1480
1484
|
nativeChannelId: message.channel,
|
|
1481
1485
|
routePeer: {
|
|
1482
1486
|
kind: chatType,
|
|
@@ -1493,7 +1497,7 @@ async function prepareSlackMessage(params) {
|
|
|
1493
1497
|
to: slackTo,
|
|
1494
1498
|
originatingTo: slackTo,
|
|
1495
1499
|
replyToId: threadContext.replyToId,
|
|
1496
|
-
messageThreadId: threadContext.messageThreadId,
|
|
1500
|
+
messageThreadId: directThreadRoutedToDmSession ? void 0 : threadContext.messageThreadId,
|
|
1497
1501
|
nativeChannelId: message.channel
|
|
1498
1502
|
},
|
|
1499
1503
|
message: {
|
|
@@ -1523,16 +1527,17 @@ async function prepareSlackMessage(params) {
|
|
|
1523
1527
|
media: toInboundMediaFacts(effectiveMedia),
|
|
1524
1528
|
supplemental: {
|
|
1525
1529
|
thread: {
|
|
1526
|
-
starterBody: !threadSessionPreviousTimestamp ? threadStarterBody : void 0,
|
|
1527
|
-
historyBody:
|
|
1528
|
-
label: threadLabel
|
|
1530
|
+
starterBody: !directThreadRoutedToDmSession && !threadSessionPreviousTimestamp ? threadStarterBody : void 0,
|
|
1531
|
+
historyBody: supplementalThreadHistoryBody,
|
|
1532
|
+
label: directThreadRoutedToDmSession ? void 0 : threadLabel
|
|
1529
1533
|
},
|
|
1530
1534
|
groupSystemPrompt
|
|
1531
1535
|
},
|
|
1532
1536
|
extra: {
|
|
1533
1537
|
GroupSubject: isRoomish ? roomLabel : void 0,
|
|
1534
1538
|
UntrustedContext: untrustedChannelMetadata ? [untrustedChannelMetadata] : void 0,
|
|
1535
|
-
|
|
1539
|
+
TransportThreadId: directThreadRoutedToDmSession ? threadContext.messageThreadId : void 0,
|
|
1540
|
+
IsFirstThreadTurn: isThreadReply && threadTs && !directThreadRoutedToDmSession && !threadSessionPreviousTimestamp ? true : void 0,
|
|
1536
1541
|
...buildSlackMentionContextPayload({
|
|
1537
1542
|
isRoomish,
|
|
1538
1543
|
effectiveWasMentioned,
|
|
@@ -1418,7 +1418,10 @@ function resolveAssistantMessageChangedInbound(params) {
|
|
|
1418
1418
|
message,
|
|
1419
1419
|
botUserId: params.ctx.botUserId
|
|
1420
1420
|
});
|
|
1421
|
-
if (!senderId)
|
|
1421
|
+
if (!senderId) {
|
|
1422
|
+
if (shouldLogVerbose()) logVerbose(`slack: assistant_app_thread message_changed in DM channel=${changed.channel} dropped: no sender resolved from metadata`);
|
|
1423
|
+
return;
|
|
1424
|
+
}
|
|
1422
1425
|
return {
|
|
1423
1426
|
type: "message",
|
|
1424
1427
|
channel: changed.channel ?? params.event.channel,
|
|
@@ -1761,7 +1764,7 @@ function createSlackThreadTsResolver(params) {
|
|
|
1761
1764
|
//#region extensions/slack/src/monitor/message-handler.ts
|
|
1762
1765
|
let slackMessagePipelinePromise;
|
|
1763
1766
|
function loadSlackMessagePipeline() {
|
|
1764
|
-
slackMessagePipelinePromise ??= import("./pipeline.runtime-
|
|
1767
|
+
slackMessagePipelinePromise ??= import("./pipeline.runtime-DJcwOZky.js");
|
|
1765
1768
|
return slackMessagePipelinePromise;
|
|
1766
1769
|
}
|
|
1767
1770
|
const APP_MENTION_RETRY_TTL_MS = 6e4;
|
package/dist/runtime-api.js
CHANGED
|
@@ -6,9 +6,9 @@ import { a as listSlackEmojis, c as pinSlackMessage, d as removeOwnSlackReaction
|
|
|
6
6
|
import { t as probeSlack } from "./probe-FL4sUJsH.js";
|
|
7
7
|
import { t as resolveSlackChannelAllowlist } from "./resolve-channels-B_eKaOkE.js";
|
|
8
8
|
import { t as resolveSlackUserAllowlist } from "./resolve-users-BzBAJwvq.js";
|
|
9
|
-
import { t as monitorSlackProvider } from "./provider-
|
|
9
|
+
import { t as monitorSlackProvider } from "./provider-3Y7c15_J.js";
|
|
10
10
|
import { t as registerSlackPluginHttpRoutes } from "./plugin-routes-CRnfsTTX.js";
|
|
11
11
|
import { n as slackActionRuntime, t as handleSlackAction } from "./action-runtime-p39JLqwf.js";
|
|
12
12
|
import { n as listSlackDirectoryGroupsLive, r as listSlackDirectoryPeersLive } from "./directory-live-CZPzpQZF.js";
|
|
13
|
-
import "./monitor-
|
|
13
|
+
import "./monitor-Djnd8pGL.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 };
|
package/dist/setup-plugin-api.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { t as slackSetupPlugin } from "./channel.setup-
|
|
1
|
+
import { t as slackSetupPlugin } from "./channel.setup-BDL4qn9U.js";
|
|
2
2
|
export { slackSetupPlugin };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { a as resolveSlackAccount, i as resolveDefaultSlackAccountId, o as resolveSlackAccountAllowFrom } from "./accounts-yk5K3wQU.js";
|
|
2
|
-
import "./shared-
|
|
2
|
+
import "./shared-BEabCPK3.js";
|
|
3
3
|
import { i as SLACK_CHANNEL, t as createSlackSetupWizardBase } from "./setup-core-B7pou7oe.js";
|
|
4
4
|
import { t as resolveSlackChannelAllowlist } from "./resolve-channels-B_eKaOkE.js";
|
|
5
5
|
import { t as resolveSlackUserAllowlist } from "./resolve-users-BzBAJwvq.js";
|
|
@@ -171,7 +171,11 @@ function createSlackPluginBase(params) {
|
|
|
171
171
|
"- Prefer Slack buttons/selects for 2-5 discrete choices or parameter picks instead of asking the user to type one.",
|
|
172
172
|
"- Slack interactive replies: use `[[slack_buttons: Label:value, Other:other]]` to add action buttons that route clicks back as Slack interaction system events.",
|
|
173
173
|
"- Slack selects: use `[[slack_select: Placeholder | Label:value, Other:other]]` to add a static select menu that routes the chosen value back as a Slack interaction system event."
|
|
174
|
-
] : ["- Slack interactive replies are disabled. If needed, ask to set `channels.slack.capabilities.interactiveReplies=true` (or the same under `channels.slack.accounts.<account>.capabilities`)."]).concat([
|
|
174
|
+
] : ["- Slack interactive replies are disabled. If needed, ask to set `channels.slack.capabilities.interactiveReplies=true` (or the same under `channels.slack.accounts.<account>.capabilities`)."]).concat([
|
|
175
|
+
"- Slack plain text sends: write standard Markdown; OpenClaw converts it to Slack mrkdwn, including `**bold**`, headings, lists, and `[label](url)` links.",
|
|
176
|
+
"- When mentioning Slack users, use the stable `<@USER_ID>` token from Slack context instead of plain `@name` text so Slack notifies and links the user.",
|
|
177
|
+
"- Slack Block Kit or presentation text fields are sent as Slack mrkdwn directly; use `*bold*`, `_italic_`, `~strike~`, `<url|label>` links, and avoid Markdown headings or pipe tables there."
|
|
178
|
+
])
|
|
175
179
|
},
|
|
176
180
|
streaming: { blockStreamingCoalesceDefaults: {
|
|
177
181
|
minChars: 1500,
|
package/dist/test-api.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { a as createSlackActions, t as slackPlugin } from "./channel-
|
|
1
|
+
import { a as createSlackActions, t as slackPlugin } from "./channel-DoFtZGpw.js";
|
|
2
2
|
import { n as setSlackRuntime } from "./runtime-DQxkf7k2.js";
|
|
3
3
|
import { t as sendMessageSlack } from "./send-CxXFbqN1.js";
|
|
4
|
-
import { t as prepareSlackMessage } from "./prepare-
|
|
4
|
+
import { t as prepareSlackMessage } from "./prepare-Or_6_XXl.js";
|
|
5
5
|
import { t as createInboundSlackTestContext } from "./prepare.test-helpers-CU1qB54Q.js";
|
|
6
6
|
import { t as createSlackOutboundPayloadHarness } from "./outbound-payload.test-harness-C0CW7_CE.js";
|
|
7
7
|
import { n as slackOutbound } from "./outbound-adapter-CHm6e-0Q.js";
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@openclaw/slack",
|
|
3
|
-
"version": "2026.5.16-beta.
|
|
3
|
+
"version": "2026.5.16-beta.3",
|
|
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.16-beta.
|
|
23
|
+
"openclaw": ">=2026.5.16-beta.3"
|
|
24
24
|
},
|
|
25
25
|
"peerDependenciesMeta": {
|
|
26
26
|
"openclaw": {
|
|
@@ -61,13 +61,14 @@
|
|
|
61
61
|
"install": {
|
|
62
62
|
"npmSpec": "@openclaw/slack",
|
|
63
63
|
"defaultChoice": "npm",
|
|
64
|
-
"minHostVersion": ">=2026.5.12-beta.1"
|
|
64
|
+
"minHostVersion": ">=2026.5.12-beta.1",
|
|
65
|
+
"allowInvalidConfigRecovery": true
|
|
65
66
|
},
|
|
66
67
|
"compat": {
|
|
67
|
-
"pluginApi": ">=2026.5.16-beta.
|
|
68
|
+
"pluginApi": ">=2026.5.16-beta.3"
|
|
68
69
|
},
|
|
69
70
|
"build": {
|
|
70
|
-
"openclawVersion": "2026.5.16-beta.
|
|
71
|
+
"openclawVersion": "2026.5.16-beta.3",
|
|
71
72
|
"bundledDist": false
|
|
72
73
|
},
|
|
73
74
|
"release": {
|