@openclaw/slack 2026.6.8 → 2026.6.9
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/{action-runtime-CgrHdqkC.js → action-runtime-CkD5nTPl.js} +10 -20
- package/dist/action-runtime.runtime-CJyuCUxj.js +2 -0
- package/dist/{actions-YkhEE5f1.js → actions-B2w2hCZ2.js} +7 -3
- package/dist/{actions.runtime-DyVzqzLc.js → actions.runtime-B56qRt06.js} +1 -1
- package/dist/api.js +12 -12
- package/dist/{approval-handler.runtime-KWkR1mEG.js → approval-handler.runtime-BS6xpR-X.js} +2 -2
- package/dist/{channel-BxD37X5Y.js → channel-CwSI6hhC.js} +51 -39
- package/dist/channel-plugin-api.js +1 -1
- package/dist/{channel.setup-W5YnieWd.js → channel.setup-WLGVcaSf.js} +1 -1
- package/dist/{client-Cn2WwpcA.js → client-DhaHONzg.js} +1 -1
- package/dist/{directory-config-8UPAEyNg.js → directory-config-Dmhi8ECy.js} +2 -2
- package/dist/directory-contract-api.js +1 -1
- package/dist/{directory-live-C1acgXKJ.js → directory-live-D_pIXtL1.js} +1 -1
- package/dist/{message-tool-api-B9M0zzlQ.js → message-tool-api-NLAYFat2.js} +18 -1
- package/dist/message-tool-api.js +1 -1
- package/dist/{monitor-DwDmBYfl.js → monitor-CAdKQeRW.js} +3 -3
- package/dist/{outbound-adapter-DvXnHfDP.js → outbound-adapter-CBFfXlOI.js} +3 -2
- package/dist/{pipeline.runtime-1FYOQOt_.js → pipeline.runtime-DQBGMhhW.js} +38 -31
- package/dist/{policy-DT3mRh58.js → policy-Dfbxkneh.js} +1 -1
- package/dist/{probe-BTKzLT2u.js → probe-C3PL00Ms.js} +1 -1
- package/dist/{provider-ChhYGpXx.js → provider-DbHhtmBz.js} +146 -32
- package/dist/{replies-Bt4nWmSd.js → replies-CH4Dmgbr.js} +2 -2
- package/dist/{thread-ts-Cffag8e2.js → reply-blocks-DSfujQlj.js} +4 -15
- package/dist/{resolve-channels-DX2GSx9c.js → resolve-channels-DNiE0Z0_.js} +1 -1
- package/dist/{resolve-users-DOULgUwy.js → resolve-users-D_TmaIfG.js} +1 -1
- package/dist/{runtime-api-DudG6lbf.js → runtime-api-DYg05-Op.js} +2 -2
- package/dist/runtime-api.js +10 -10
- package/dist/{scopes-CErQL0td.js → scopes-CR4oXiXN.js} +1 -1
- package/dist/{send-rekB-Xjp.js → send-EpqsWCGd.js} +20 -8
- package/dist/send.runtime-CbeGF-al.js +2 -0
- package/dist/setup-plugin-api.js +1 -1
- package/dist/{setup-surface-NNMjGpXc.js → setup-surface-BHsOhTJd.js} +3 -3
- package/dist/{shared-Bkkmro6q.js → shared-BxzdaqOc.js} +1 -1
- package/dist/{slash-dispatch.runtime-Dvvs747S.js → slash-dispatch.runtime-BOl9Cbn9.js} +1 -1
- package/dist/{target-parsing-C7eeWg7M.js → target-parsing-3jYH8LfB.js} +6 -1
- package/dist/targets-Dll4NJgs.js +13 -0
- package/dist/thread-ts-DUGhaYKq.js +13 -0
- package/node_modules/semver/classes/range.js +11 -2
- package/node_modules/semver/package.json +2 -2
- package/npm-shrinkwrap.json +6 -6
- package/package.json +4 -4
- package/dist/action-runtime.runtime-D05xDf1s.js +0 -2
- package/dist/send.runtime-DGyqPLWj.js +0 -2
- package/dist/targets-nUqxHGgg.js +0 -2
|
@@ -1,9 +1,8 @@
|
|
|
1
|
-
import { i as resolveSlackChannelId
|
|
2
|
-
import "./targets-
|
|
3
|
-
import {
|
|
4
|
-
import { a as readPositiveIntegerParam, c as withNormalizedTimestamp, n as imageResultFromFile, o as readReactionParams, r as jsonResult, s as readStringParam, t as createActionGate } from "./runtime-api-
|
|
5
|
-
import { n as resolveSlackChannelConfig, t as isSlackChannelAllowedByPolicy } from "./policy-
|
|
6
|
-
import { normalizeLowercaseStringOrEmpty } from "openclaw/plugin-sdk/string-coerce-runtime";
|
|
1
|
+
import { i as resolveSlackChannelId } from "./target-parsing-3jYH8LfB.js";
|
|
2
|
+
import { t as slackContextTargetsMatch } from "./targets-Dll4NJgs.js";
|
|
3
|
+
import { r as parseSlackBlocksInput } from "./reply-blocks-DSfujQlj.js";
|
|
4
|
+
import { a as readPositiveIntegerParam, c as withNormalizedTimestamp, n as imageResultFromFile, o as readReactionParams, r as jsonResult, s as readStringParam, t as createActionGate } from "./runtime-api-DYg05-Op.js";
|
|
5
|
+
import { n as resolveSlackChannelConfig, t as isSlackChannelAllowedByPolicy } from "./policy-Dfbxkneh.js";
|
|
7
6
|
import { isSingleUseReplyToMode } from "openclaw/plugin-sdk/reply-reference";
|
|
8
7
|
import { readBooleanParam } from "openclaw/plugin-sdk/boolean-param";
|
|
9
8
|
import { resolveOpenProviderRuntimeGroupPolicy } from "openclaw/plugin-sdk/runtime-group-policy";
|
|
@@ -22,15 +21,10 @@ const pinActions = new Set([
|
|
|
22
21
|
"unpinMessage",
|
|
23
22
|
"listPins"
|
|
24
23
|
]);
|
|
25
|
-
function sameSlackChannelTarget(targetChannel, currentChannelId) {
|
|
26
|
-
const parsedTarget = parseSlackTarget(targetChannel, { defaultKind: "channel" });
|
|
27
|
-
if (!parsedTarget || parsedTarget.kind !== "channel") return false;
|
|
28
|
-
return normalizeLowercaseStringOrEmpty(parsedTarget.id) === normalizeLowercaseStringOrEmpty(currentChannelId);
|
|
29
|
-
}
|
|
30
24
|
let slackActionsRuntimePromise;
|
|
31
25
|
let slackAccountsRuntimePromise;
|
|
32
26
|
function loadSlackActionsRuntime() {
|
|
33
|
-
slackActionsRuntimePromise ??= import("./actions.runtime-
|
|
27
|
+
slackActionsRuntimePromise ??= import("./actions.runtime-B56qRt06.js");
|
|
34
28
|
return slackActionsRuntimePromise;
|
|
35
29
|
}
|
|
36
30
|
function loadSlackAccountsRuntime() {
|
|
@@ -69,8 +63,8 @@ const slackActionRuntime = {
|
|
|
69
63
|
function resolveThreadTsFromContext(explicitThreadTs, targetChannel, context, opts) {
|
|
70
64
|
if (explicitThreadTs) return explicitThreadTs;
|
|
71
65
|
if (opts?.suppressImplicitThread) return;
|
|
72
|
-
if (!context?.currentChannelId) return;
|
|
73
|
-
if (!
|
|
66
|
+
if (!context?.currentChannelId && !context?.currentMessagingTarget) return;
|
|
67
|
+
if (!slackContextTargetsMatch(targetChannel, context)) return;
|
|
74
68
|
if (!context.currentThreadTs) {
|
|
75
69
|
if (context.sameChannelThreadRequired) throw new Error("Slack thread context is required for same-channel replies from a threaded Slack turn. Set topLevel=true or threadId=null to post at the channel root.");
|
|
76
70
|
return;
|
|
@@ -207,9 +201,7 @@ async function handleSlackAction(params, cfg, context) {
|
|
|
207
201
|
mediaUrl: mediaUrl ?? void 0,
|
|
208
202
|
blocks
|
|
209
203
|
});
|
|
210
|
-
if (context?.hasRepliedRef && context
|
|
211
|
-
if (sameSlackChannelTarget(to, context.currentChannelId)) context.hasRepliedRef.value = true;
|
|
212
|
-
}
|
|
204
|
+
if (context?.hasRepliedRef && slackContextTargetsMatch(to, context)) context.hasRepliedRef.value = true;
|
|
213
205
|
return jsonResult({
|
|
214
206
|
ok: true,
|
|
215
207
|
result
|
|
@@ -235,9 +227,7 @@ async function handleSlackAction(params, cfg, context) {
|
|
|
235
227
|
...filename ? { uploadFileName: filename } : {},
|
|
236
228
|
...title ? { uploadTitle: title } : {}
|
|
237
229
|
});
|
|
238
|
-
if (context?.hasRepliedRef && context
|
|
239
|
-
if (sameSlackChannelTarget(to, context.currentChannelId)) context.hasRepliedRef.value = true;
|
|
240
|
-
}
|
|
230
|
+
if (context?.hasRepliedRef && slackContextTargetsMatch(to, context)) context.hasRepliedRef.value = true;
|
|
241
231
|
return jsonResult({
|
|
242
232
|
ok: true,
|
|
243
233
|
result
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { t as __exportAll } from "./rolldown-runtime-D7D4PA-g.js";
|
|
2
2
|
import { a as resolveSlackAccount, d as resolveSlackBotToken } from "./accounts-f6Xcv9Vi.js";
|
|
3
|
-
import {
|
|
4
|
-
import { a as getSlackWriteClient, r as createSlackWebClient } from "./client-
|
|
5
|
-
import { c as buildSlackBlocksFallbackText, t as sendMessageSlack } from "./send-
|
|
3
|
+
import { a as SLACK_TEXT_LIMIT, i as validateSlackBlocksArray, v as truncateSlackText } from "./reply-blocks-DSfujQlj.js";
|
|
4
|
+
import { a as getSlackWriteClient, r as createSlackWebClient } from "./client-DhaHONzg.js";
|
|
5
|
+
import { c as buildSlackBlocksFallbackText, t as sendMessageSlack } from "./send-EpqsWCGd.js";
|
|
6
6
|
import { normalizeLowercaseStringOrEmpty, normalizeOptionalLowercaseString, normalizeOptionalString } from "openclaw/plugin-sdk/string-coerce-runtime";
|
|
7
7
|
import { requireRuntimeConfig } from "openclaw/plugin-sdk/plugin-config-runtime";
|
|
8
8
|
import { logVerbose, logVerbose as logVerbose$1 } from "openclaw/plugin-sdk/runtime-env";
|
|
@@ -201,6 +201,9 @@ function createSlackMediaFetch() {
|
|
|
201
201
|
function resolveSlackFetchForRuntime() {
|
|
202
202
|
return isMockedFetch(globalThis.fetch) ? globalThis.fetch : fetchWithRuntimeDispatcher;
|
|
203
203
|
}
|
|
204
|
+
async function cancelUnreadResponseBody(response) {
|
|
205
|
+
if (!response.bodyUsed) await response.body?.cancel().catch(() => void 0);
|
|
206
|
+
}
|
|
204
207
|
/**
|
|
205
208
|
* Fetches a URL with Authorization header while keeping same-origin redirects
|
|
206
209
|
* authenticated and dropping auth once the redirect crosses origins.
|
|
@@ -223,6 +226,7 @@ async function fetchWithSlackAuth(url, token) {
|
|
|
223
226
|
return initialRes;
|
|
224
227
|
}
|
|
225
228
|
if (resolvedUrl.protocol !== "https:") return initialRes;
|
|
229
|
+
await cancelUnreadResponseBody(initialRes);
|
|
226
230
|
if (resolvedUrl.origin === parsed.origin) return fetchImpl(resolvedUrl.toString(), {
|
|
227
231
|
headers: authHeaders,
|
|
228
232
|
redirect: "follow"
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
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-
|
|
1
|
+
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-B2w2hCZ2.js";
|
|
2
2
|
export { deleteSlackMessage, downloadSlackFile, editSlackMessage, getSlackMemberInfo, listSlackEmojis, listSlackPins, listSlackReactions, pinSlackMessage, reactSlackMessage, readSlackMessages, removeOwnSlackReactions, removeSlackReaction, sendSlackMessage, unpinSlackMessage };
|
package/dist/api.js
CHANGED
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
import { n as registerSlackHttpHandler, r as normalizeSlackWebhookPath, t as handleSlackHttpRequest } from "./registry-bbjH7IHX.js";
|
|
2
2
|
import { a as resolveSlackAccount, i as resolveDefaultSlackAccountId, l as resolveSlackReplyToMode, n as listSlackAccountIds, r as mergeSlackAccountConfig, t as listEnabledSlackAccounts } from "./accounts-f6Xcv9Vi.js";
|
|
3
3
|
import { t as inspectSlackAccount } from "./account-inspect-CdGk6R7l.js";
|
|
4
|
-
import { i as resolveSlackChannelId, n as normalizeSlackMessagingTarget, r as parseSlackTarget, t as looksLikeSlackTargetId } from "./target-parsing-
|
|
5
|
-
import "./targets-
|
|
6
|
-
import { a as resolveSlackAutoThreadId, i as resolveSlackChannelType, n as buildSlackThreadingToolContext, r as resetSlackChannelTypeCacheForTest, t as slackPlugin } from "./channel-
|
|
7
|
-
import {
|
|
8
|
-
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-
|
|
9
|
-
import { n as extractSlackToolSend, r as listSlackMessageActions } from "./message-tool-api-
|
|
4
|
+
import { i as resolveSlackChannelId, n as normalizeSlackMessagingTarget, r as parseSlackTarget, t as looksLikeSlackTargetId } from "./target-parsing-3jYH8LfB.js";
|
|
5
|
+
import "./targets-Dll4NJgs.js";
|
|
6
|
+
import { a as resolveSlackAutoThreadId, i as resolveSlackChannelType, n as buildSlackThreadingToolContext, r as resetSlackChannelTypeCacheForTest, t as slackPlugin } from "./channel-CwSI6hhC.js";
|
|
7
|
+
import { c as allowListMatches, d as normalizeSlackAllowOwnerEntry, f as normalizeSlackSlug, g as buildSlackPresentationBlocks, h as buildSlackInteractiveBlocks, i as validateSlackBlocksArray, l as normalizeAllowList, m as resolveSlackUserAllowed, n as SLACK_MAX_BLOCKS, o as resolveSlackGroupRequireMention, p as resolveSlackAllowListMatch, r as parseSlackBlocksInput, s as resolveSlackGroupToolPolicy, u as normalizeAllowListLower } from "./reply-blocks-DSfujQlj.js";
|
|
8
|
+
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-DhaHONzg.js";
|
|
9
|
+
import { n as extractSlackToolSend, r as listSlackMessageActions } from "./message-tool-api-NLAYFat2.js";
|
|
10
10
|
import { n as isSlackInteractiveRepliesEnabled, r as parseSlackOptionsLine, t as compileSlackInteractiveReplies } from "./interactive-replies-DrBq4Mld.js";
|
|
11
|
-
import { t as slackSetupPlugin } from "./channel.setup-
|
|
12
|
-
import { a as recordSlackThreadParticipation, n as clearSlackThreadParticipationCache, r as hasSlackThreadParticipation } from "./send-
|
|
13
|
-
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-
|
|
14
|
-
import { n as listSlackDirectoryGroupsFromConfig, r as listSlackDirectoryPeersFromConfig } from "./directory-config-
|
|
15
|
-
import { t as probeSlack } from "./probe-
|
|
11
|
+
import { t as slackSetupPlugin } from "./channel.setup-WLGVcaSf.js";
|
|
12
|
+
import { a as recordSlackThreadParticipation, n as clearSlackThreadParticipationCache, r as hasSlackThreadParticipation } from "./send-EpqsWCGd.js";
|
|
13
|
+
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-B2w2hCZ2.js";
|
|
14
|
+
import { n as listSlackDirectoryGroupsFromConfig, r as listSlackDirectoryPeersFromConfig } from "./directory-config-Dmhi8ECy.js";
|
|
15
|
+
import { t as probeSlack } from "./probe-C3PL00Ms.js";
|
|
16
16
|
import { t as collectSlackSecurityAuditFindings } from "./security-audit-CikQhBUY.js";
|
|
17
|
-
import { n as resolveSlackRuntimeGroupPolicy } from "./provider-
|
|
17
|
+
import { n as resolveSlackRuntimeGroupPolicy } from "./provider-DbHhtmBz.js";
|
|
18
18
|
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 };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { t as sendMessageSlack } from "./send-
|
|
1
|
+
import { E as resolveSlackApprovalKind, L as normalizeSlackApproverId, S as isSlackAnyNativeApprovalClientEnabled, k as shouldHandleSlackNativeApprovalRequest, t as resolveSlackReplyBlocks, v as truncateSlackText } from "./reply-blocks-DSfujQlj.js";
|
|
2
|
+
import { t as sendMessageSlack } from "./send-EpqsWCGd.js";
|
|
3
3
|
import { normalizeOptionalString } from "openclaw/plugin-sdk/string-coerce-runtime";
|
|
4
4
|
import { buildChannelApprovalNativeTargetKey } from "openclaw/plugin-sdk/approval-native-runtime";
|
|
5
5
|
import { buildApprovalPresentationFromActionDescriptors } from "openclaw/plugin-sdk/approval-reply-runtime";
|
|
@@ -1,14 +1,16 @@
|
|
|
1
1
|
import { a as resolveSlackAccount, i as resolveDefaultSlackAccountId, l as resolveSlackReplyToMode, n as listSlackAccountIds, o as resolveSlackAccountAllowFrom } from "./accounts-f6Xcv9Vi.js";
|
|
2
|
-
import { i as resolveSlackChannelId, n as normalizeSlackMessagingTarget, r as parseSlackTarget, t as looksLikeSlackTargetId } from "./target-parsing-
|
|
3
|
-
import "./targets-
|
|
4
|
-
import { A as
|
|
5
|
-
import { d as PAIRING_APPROVED_MESSAGE, h as isSlackPluginAccountConfigured, m as resolveConfiguredFromRequiredCredentialStatuses, p as projectCredentialSnapshotFields, r as createSlackWebClient, u as DEFAULT_ACCOUNT_ID } from "./client-
|
|
6
|
-
import { n as
|
|
2
|
+
import { i as resolveSlackChannelId, n as normalizeSlackMessagingTarget, r as parseSlackTarget, t as looksLikeSlackTargetId } from "./target-parsing-3jYH8LfB.js";
|
|
3
|
+
import { t as slackContextTargetsMatch } from "./targets-Dll4NJgs.js";
|
|
4
|
+
import { A as shouldHandleSlackPluginViaForwardingSession, C as normalizeSlackForwardTarget, D as resolveSlackFallbackOriginTarget, E as resolveSlackApprovalKind, F as isSlackExecApprovalAuthorizedSender, I as isSlackExecApprovalClientEnabled, M as getSlackApprovalApprovers, N as isSlackApprovalAuthorizedSender, O as resolveTurnSourceSlackOriginTarget, P as getSlackExecApprovalApprovers, R as resolveSlackExecApprovalTarget, S as isSlackAnyNativeApprovalClientEnabled, T as resolveSessionSlackOriginTarget, _ as resolveSlackInteractiveBlockOffsets, a as SLACK_TEXT_LIMIT, g as buildSlackPresentationBlocks, h as buildSlackInteractiveBlocks, j as slackTargetsMatch, k as shouldHandleSlackNativeApprovalRequest, o as resolveSlackGroupRequireMention, s as resolveSlackGroupToolPolicy, t as resolveSlackReplyBlocks, u as normalizeAllowListLower, w as normalizeSlackOriginTarget, x as hasSlackPluginApprovers, z as shouldSuppressLocalSlackExecApprovalPrompt } from "./reply-blocks-DSfujQlj.js";
|
|
5
|
+
import { d as PAIRING_APPROVED_MESSAGE, h as isSlackPluginAccountConfigured, m as resolveConfiguredFromRequiredCredentialStatuses, p as projectCredentialSnapshotFields, r as createSlackWebClient, u as DEFAULT_ACCOUNT_ID$1 } from "./client-DhaHONzg.js";
|
|
6
|
+
import { n as resolveSlackThreadTsValue, t as normalizeSlackThreadTsCandidate } from "./thread-ts-DUGhaYKq.js";
|
|
7
|
+
import { n as extractSlackToolSend, t as describeSlackMessageTool } from "./message-tool-api-NLAYFat2.js";
|
|
7
8
|
import { n as isSlackInteractiveRepliesEnabled, t as compileSlackInteractiveReplies } from "./interactive-replies-DrBq4Mld.js";
|
|
8
9
|
import { t as getOptionalSlackRuntime } from "./runtime-BOk7xkOl.js";
|
|
9
|
-
import { n as slackConfigAdapter, r as slackSecurityAdapter, t as createSlackPluginBase } from "./shared-
|
|
10
|
+
import { n as slackConfigAdapter, r as slackSecurityAdapter, t as createSlackPluginBase } from "./shared-BxzdaqOc.js";
|
|
10
11
|
import { i as SLACK_CHANNEL, n as createSlackSetupWizardProxy, r as slackSetupAdapter } from "./setup-core-POfI_bgP.js";
|
|
11
|
-
import {
|
|
12
|
+
import { normalizeAccountId } from "openclaw/plugin-sdk/account-resolution";
|
|
13
|
+
import { normalizeLowercaseStringOrEmpty, normalizeOptionalLowercaseString, normalizeOptionalString } from "openclaw/plugin-sdk/string-coerce-runtime";
|
|
12
14
|
import { adaptScopedAccountAccessor } from "openclaw/plugin-sdk/channel-config-helpers";
|
|
13
15
|
import { buildOutboundBaseSessionKey, normalizeMessageChannel } from "openclaw/plugin-sdk/routing";
|
|
14
16
|
import { buildLegacyDmAccountAllowlistAdapter, createAccountScopedAllowlistNameResolver, createFlatAllowlistOverrideResolver } from "openclaw/plugin-sdk/allowlist-config-edit";
|
|
@@ -20,7 +22,7 @@ import { createChannelDirectoryAdapter, createRuntimeDirectoryLiveAdapter } from
|
|
|
20
22
|
import { createLazyRuntimeModule } from "openclaw/plugin-sdk/lazy-runtime";
|
|
21
23
|
import { createComputedAccountStatusAdapter, createDefaultChannelRuntimeState } from "openclaw/plugin-sdk/status-helpers";
|
|
22
24
|
import { isSingleUseReplyToMode } from "openclaw/plugin-sdk/reply-reference";
|
|
23
|
-
import { createApproverRestrictedNativeApprovalCapability
|
|
25
|
+
import { createApproverRestrictedNativeApprovalCapability } from "openclaw/plugin-sdk/approval-delivery-runtime";
|
|
24
26
|
import { createLazyChannelApprovalNativeRuntimeAdapter } from "openclaw/plugin-sdk/approval-handler-adapter-runtime";
|
|
25
27
|
import { createChannelNativeOriginTargetResolver, createNativeApprovalForwardingFallbackSuppressor } from "openclaw/plugin-sdk/approval-native-runtime";
|
|
26
28
|
import { readBooleanParam } from "openclaw/plugin-sdk/boolean-param";
|
|
@@ -29,10 +31,8 @@ import { readPositiveIntegerParam, readStringParam } from "openclaw/plugin-sdk/p
|
|
|
29
31
|
//#region extensions/slack/src/action-threading.ts
|
|
30
32
|
function resolveSlackAutoThreadId(params) {
|
|
31
33
|
const context = params.toolContext;
|
|
32
|
-
if (!context?.currentChannelId) return;
|
|
33
|
-
|
|
34
|
-
if (!parsedTarget || parsedTarget.kind !== "channel") return;
|
|
35
|
-
if (normalizeLowercaseStringOrEmpty(parsedTarget.id) !== normalizeLowercaseStringOrEmpty(context.currentChannelId)) return;
|
|
34
|
+
if (!context?.currentChannelId && !context?.currentMessagingTarget) return;
|
|
35
|
+
if (!slackContextTargetsMatch(params.to, context)) return;
|
|
36
36
|
if (!context.currentThreadTs) {
|
|
37
37
|
if (context.sameChannelThreadRequired) throw new Error("Slack thread context is required for same-channel replies from a threaded Slack turn. Set topLevel=true or threadId=null to post at the channel root.");
|
|
38
38
|
return;
|
|
@@ -133,7 +133,7 @@ const baseSlackApprovalCapability = createApproverRestrictedNativeApprovalCapabi
|
|
|
133
133
|
approvalKind: resolveSlackApprovalKind(request),
|
|
134
134
|
request
|
|
135
135
|
}),
|
|
136
|
-
load: async () => (await import("./approval-handler.runtime-
|
|
136
|
+
load: async () => (await import("./approval-handler.runtime-BS6xpR-X.js")).slackApprovalNativeRuntime
|
|
137
137
|
})
|
|
138
138
|
});
|
|
139
139
|
const baseSlackNativeAdapter = baseSlackApprovalCapability.native;
|
|
@@ -182,7 +182,6 @@ const slackApprovalCapability = {
|
|
|
182
182
|
}
|
|
183
183
|
} : void 0
|
|
184
184
|
};
|
|
185
|
-
splitChannelApprovalCapability(slackApprovalCapability);
|
|
186
185
|
//#endregion
|
|
187
186
|
//#region extensions/slack/src/message-action-dispatch.ts
|
|
188
187
|
/** Translate generic channel action requests into Slack-specific tool invocations and payload shapes. */
|
|
@@ -296,11 +295,18 @@ async function handleSlackMessageAction(params) {
|
|
|
296
295
|
accountId
|
|
297
296
|
}, cfg);
|
|
298
297
|
}
|
|
299
|
-
if (action === "member-info")
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
298
|
+
if (action === "member-info") {
|
|
299
|
+
const requesterAccountId = ctx.requesterAccountId ? normalizeAccountId(ctx.requesterAccountId) : void 0;
|
|
300
|
+
const targetAccountId = normalizeAccountId(accountId ?? resolveDefaultSlackAccountId(cfg));
|
|
301
|
+
const requesterUserId = normalizeOptionalLowercaseString(ctx.toolContext?.currentChannelProvider) === "slack" && requesterAccountId !== void 0 && requesterAccountId === targetAccountId ? normalizeOptionalString(ctx.requesterSenderId) : void 0;
|
|
302
|
+
const userId = readStringParam(actionParams, "userId") ?? requesterUserId;
|
|
303
|
+
if (!userId) throw new Error("member-info requires a userId outside a current Slack conversation.");
|
|
304
|
+
return await invoke({
|
|
305
|
+
action: "memberInfo",
|
|
306
|
+
userId,
|
|
307
|
+
accountId
|
|
308
|
+
}, cfg);
|
|
309
|
+
}
|
|
304
310
|
if (action === "emoji-list") return await invoke({
|
|
305
311
|
action: "emojiList",
|
|
306
312
|
limit: readPositiveIntegerParam(actionParams, "limit", { message: "limit must be a positive integer." }),
|
|
@@ -355,7 +361,7 @@ const SLACK_TOOL_DELIVERY_ACTIONS = new Set([
|
|
|
355
361
|
"uploadFile"
|
|
356
362
|
]);
|
|
357
363
|
async function loadSlackActionRuntime$1() {
|
|
358
|
-
slackActionRuntimePromise$1 ??= import("./action-runtime.runtime-
|
|
364
|
+
slackActionRuntimePromise$1 ??= import("./action-runtime.runtime-CJyuCUxj.js");
|
|
359
365
|
return await slackActionRuntimePromise$1;
|
|
360
366
|
}
|
|
361
367
|
function resolveSlackActionContext(params) {
|
|
@@ -472,8 +478,10 @@ function buildSlackThreadingToolContext(params) {
|
|
|
472
478
|
const currentThreadTs = messageThreadTs ?? transportThreadTs ?? replyToThreadTs;
|
|
473
479
|
const hasExplicitThreadTarget = messageThreadTs != null || transportThreadTs != null || replyToThreadTs != null && currentMessageTs != null && replyToThreadTs !== currentMessageTs;
|
|
474
480
|
const effectiveReplyToMode = hasExplicitThreadTarget ? "all" : configuredReplyToMode;
|
|
481
|
+
const currentMessagingTarget = normalizeOptionalString(params.context.To);
|
|
475
482
|
return {
|
|
476
|
-
currentChannelId:
|
|
483
|
+
currentChannelId: currentMessagingTarget?.startsWith("channel:") ? currentMessagingTarget.slice(8) : normalizeOptionalString(params.context.NativeChannelId) ?? currentMessagingTarget,
|
|
484
|
+
currentMessagingTarget,
|
|
477
485
|
currentThreadTs,
|
|
478
486
|
replyToMode: effectiveReplyToMode,
|
|
479
487
|
hasRepliedRef: params.hasRepliedRef,
|
|
@@ -486,9 +494,9 @@ const EXTENSION_SHARED_MODULE_ID = "openclaw/plugin-sdk/extension-shared";
|
|
|
486
494
|
const TARGET_RESOLVER_RUNTIME_MODULE_ID = "openclaw/plugin-sdk/target-resolver-runtime";
|
|
487
495
|
const loadExtensionSharedSdk = createLazyRuntimeModule(() => import(EXTENSION_SHARED_MODULE_ID));
|
|
488
496
|
const loadTargetResolverRuntimeSdk = createLazyRuntimeModule(() => import(TARGET_RESOLVER_RUNTIME_MODULE_ID));
|
|
489
|
-
const loadSlackSetupSurfaceModule = createLazyRuntimeModule(() => import("./setup-surface-
|
|
490
|
-
const loadSlackScopesModule = createLazyRuntimeModule(() => import("./scopes-
|
|
491
|
-
const loadSlackOutboundAdapterModule = createLazyRuntimeModule(() => import("./outbound-adapter-
|
|
497
|
+
const loadSlackSetupSurfaceModule = createLazyRuntimeModule(() => import("./setup-surface-BHsOhTJd.js"));
|
|
498
|
+
const loadSlackScopesModule = createLazyRuntimeModule(() => import("./scopes-CR4oXiXN.js"));
|
|
499
|
+
const loadSlackOutboundAdapterModule = createLazyRuntimeModule(() => import("./outbound-adapter-CBFfXlOI.js"));
|
|
492
500
|
async function resolveSlackHandleAction() {
|
|
493
501
|
return getOptionalSlackRuntime()?.channel?.slack?.handleSlackAction ?? (await loadSlackActionRuntime()).handleSlackAction;
|
|
494
502
|
}
|
|
@@ -508,27 +516,27 @@ let slackSendRuntimePromise;
|
|
|
508
516
|
let slackProbeModulePromise;
|
|
509
517
|
let slackMonitorModulePromise;
|
|
510
518
|
let slackDirectoryLiveModulePromise;
|
|
511
|
-
const loadSlackDirectoryConfigModule = createLazyRuntimeModule(() => import("./directory-config-
|
|
512
|
-
const loadSlackResolveChannelsModule = createLazyRuntimeModule(() => import("./resolve-channels-
|
|
513
|
-
const loadSlackResolveUsersModule = createLazyRuntimeModule(() => import("./resolve-users-
|
|
519
|
+
const loadSlackDirectoryConfigModule = createLazyRuntimeModule(() => import("./directory-config-Dmhi8ECy.js").then((n) => n.t));
|
|
520
|
+
const loadSlackResolveChannelsModule = createLazyRuntimeModule(() => import("./resolve-channels-DNiE0Z0_.js").then((n) => n.n));
|
|
521
|
+
const loadSlackResolveUsersModule = createLazyRuntimeModule(() => import("./resolve-users-D_TmaIfG.js").then((n) => n.n));
|
|
514
522
|
async function loadSlackActionRuntime() {
|
|
515
|
-
slackActionRuntimePromise ??= import("./action-runtime.runtime-
|
|
523
|
+
slackActionRuntimePromise ??= import("./action-runtime.runtime-CJyuCUxj.js");
|
|
516
524
|
return await slackActionRuntimePromise;
|
|
517
525
|
}
|
|
518
526
|
async function loadSlackSendRuntime() {
|
|
519
|
-
slackSendRuntimePromise ??= import("./send.runtime-
|
|
527
|
+
slackSendRuntimePromise ??= import("./send.runtime-CbeGF-al.js");
|
|
520
528
|
return await slackSendRuntimePromise;
|
|
521
529
|
}
|
|
522
530
|
async function loadSlackProbeModule() {
|
|
523
|
-
slackProbeModulePromise ??= import("./probe-
|
|
531
|
+
slackProbeModulePromise ??= import("./probe-C3PL00Ms.js").then((n) => n.n);
|
|
524
532
|
return await slackProbeModulePromise;
|
|
525
533
|
}
|
|
526
534
|
async function loadSlackMonitorModule() {
|
|
527
|
-
slackMonitorModulePromise ??= import("./monitor-
|
|
535
|
+
slackMonitorModulePromise ??= import("./monitor-CAdKQeRW.js").then((n) => n.t);
|
|
528
536
|
return await slackMonitorModulePromise;
|
|
529
537
|
}
|
|
530
538
|
async function loadSlackDirectoryLiveModule() {
|
|
531
|
-
slackDirectoryLiveModulePromise ??= import("./directory-live-
|
|
539
|
+
slackDirectoryLiveModulePromise ??= import("./directory-live-D_pIXtL1.js").then((n) => n.t);
|
|
532
540
|
return await slackDirectoryLiveModulePromise;
|
|
533
541
|
}
|
|
534
542
|
async function resolveSlackSendContext(params) {
|
|
@@ -883,7 +891,7 @@ const slackPlugin = createChatChannelPlugin({
|
|
|
883
891
|
actions: createSlackActions(SLACK_CHANNEL, { invoke: async (action, cfg, toolContext) => await (await resolveSlackHandleAction())(action, cfg, toolContext) }),
|
|
884
892
|
message: slackMessageAdapter,
|
|
885
893
|
status: createComputedAccountStatusAdapter({
|
|
886
|
-
defaultRuntime: createDefaultChannelRuntimeState(DEFAULT_ACCOUNT_ID),
|
|
894
|
+
defaultRuntime: createDefaultChannelRuntimeState(DEFAULT_ACCOUNT_ID$1),
|
|
887
895
|
buildChannelSummary: async ({ snapshot }) => {
|
|
888
896
|
const { buildPassiveProbedChannelStatusSummary } = await loadExtensionSharedSdk();
|
|
889
897
|
return buildPassiveProbedChannelStatusSummary(snapshot, {
|
|
@@ -989,6 +997,7 @@ const slackPlugin = createChatChannelPlugin({
|
|
|
989
997
|
} },
|
|
990
998
|
security: slackSecurityAdapter,
|
|
991
999
|
threading: {
|
|
1000
|
+
matchesToolContextTarget: ({ target, toolContext }) => slackContextTargetsMatch(target, toolContext),
|
|
992
1001
|
scopedAccountReplyToMode: {
|
|
993
1002
|
resolveAccount: adaptScopedAccountAccessor(resolveSlackAccount),
|
|
994
1003
|
resolveReplyToMode: (account, chatType) => resolveSlackReplyToMode(account, chatType)
|
|
@@ -999,13 +1008,16 @@ const slackPlugin = createChatChannelPlugin({
|
|
|
999
1008
|
to,
|
|
1000
1009
|
toolContext
|
|
1001
1010
|
})),
|
|
1002
|
-
resolveReplyTransport: ({ threadId, replyToId }) =>
|
|
1003
|
-
|
|
1004
|
-
replyToId,
|
|
1011
|
+
resolveReplyTransport: ({ threadId, replyToId, replyDelivery }) => {
|
|
1012
|
+
const resolvedReplyToId = resolveSlackThreadTsValue({
|
|
1013
|
+
replyToId: replyDelivery?.replyToMode === "off" ? void 0 : replyToId,
|
|
1005
1014
|
threadId
|
|
1006
|
-
})
|
|
1007
|
-
|
|
1008
|
-
|
|
1015
|
+
});
|
|
1016
|
+
return {
|
|
1017
|
+
replyToId: replyDelivery?.replyToMode === "off" && !resolvedReplyToId ? null : resolvedReplyToId,
|
|
1018
|
+
threadId: null
|
|
1019
|
+
};
|
|
1020
|
+
}
|
|
1009
1021
|
},
|
|
1010
1022
|
outbound: slackChannelOutbound
|
|
1011
1023
|
});
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { t as slackPlugin } from "./channel-
|
|
1
|
+
import { t as slackPlugin } from "./channel-CwSI6hhC.js";
|
|
2
2
|
export { slackPlugin };
|
|
@@ -4,7 +4,7 @@ import { t as SlackChannelConfigSchema } from "./config-schema-BjAjs8_6.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-BHsOhTJd.js")).slackSetupWizard }));
|
|
8
8
|
const slackSetupConfigAdapter = createScopedChannelConfigAdapter({
|
|
9
9
|
sectionKey: SLACK_CHANNEL,
|
|
10
10
|
listAccountIds: listSlackAccountIds,
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import "./target-parsing-
|
|
1
|
+
import "./target-parsing-3jYH8LfB.js";
|
|
2
2
|
import { DEFAULT_ACCOUNT_ID as DEFAULT_ACCOUNT_ID$2 } from "openclaw/plugin-sdk/account-id";
|
|
3
3
|
import { hasConfiguredAccountValue } from "openclaw/plugin-sdk/account-resolution";
|
|
4
4
|
import { PAIRING_APPROVED_MESSAGE, projectCredentialSnapshotFields, resolveConfiguredFromRequiredCredentialStatuses } from "openclaw/plugin-sdk/channel-status";
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { t as __exportAll } from "./rolldown-runtime-D7D4PA-g.js";
|
|
2
2
|
import { i as resolveDefaultSlackAccountId, o as resolveSlackAccountAllowFrom, r as mergeSlackAccountConfig } from "./accounts-f6Xcv9Vi.js";
|
|
3
|
-
import { r as parseSlackTarget } from "./target-parsing-
|
|
4
|
-
import "./targets-
|
|
3
|
+
import { r as parseSlackTarget } from "./target-parsing-3jYH8LfB.js";
|
|
4
|
+
import "./targets-Dll4NJgs.js";
|
|
5
5
|
import { normalizeAccountId } from "openclaw/plugin-sdk/account-resolution";
|
|
6
6
|
import { normalizeLowercaseStringOrEmpty } from "openclaw/plugin-sdk/string-coerce-runtime";
|
|
7
7
|
import { createResolvedDirectoryEntriesLister } from "openclaw/plugin-sdk/directory-config-runtime";
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { n as listSlackDirectoryGroupsFromConfig, r as listSlackDirectoryPeersFromConfig } from "./directory-config-
|
|
1
|
+
import { n as listSlackDirectoryGroupsFromConfig, r as listSlackDirectoryPeersFromConfig } from "./directory-config-Dmhi8ECy.js";
|
|
2
2
|
export { listSlackDirectoryGroupsFromConfig, listSlackDirectoryPeersFromConfig };
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { t as __exportAll } from "./rolldown-runtime-D7D4PA-g.js";
|
|
2
2
|
import { a as resolveSlackAccount } from "./accounts-f6Xcv9Vi.js";
|
|
3
|
-
import { r as createSlackWebClient } from "./client-
|
|
3
|
+
import { r as createSlackWebClient } from "./client-DhaHONzg.js";
|
|
4
4
|
import { normalizeLowercaseStringOrEmpty, normalizeOptionalLowercaseString, normalizeOptionalString } from "openclaw/plugin-sdk/string-coerce-runtime";
|
|
5
5
|
//#region extensions/slack/src/directory-live.ts
|
|
6
6
|
var directory_live_exports = /* @__PURE__ */ __exportAll({
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { a as resolveSlackAccount, t as listEnabledSlackAccounts } from "./accounts-f6Xcv9Vi.js";
|
|
2
|
+
import { n as resolveSlackThreadTsValue, t as normalizeSlackThreadTsCandidate } from "./thread-ts-DUGhaYKq.js";
|
|
2
3
|
import { n as isSlackInteractiveRepliesEnabled } from "./interactive-replies-DrBq4Mld.js";
|
|
3
4
|
import { createActionGate } from "openclaw/plugin-sdk/channel-actions";
|
|
4
5
|
import { extractToolSend } from "openclaw/plugin-sdk/tool-send";
|
|
@@ -36,7 +37,23 @@ function listSlackMessageActions(cfg, accountId) {
|
|
|
36
37
|
return Array.from(actions);
|
|
37
38
|
}
|
|
38
39
|
function extractSlackToolSend(args) {
|
|
39
|
-
|
|
40
|
+
const action = args.action;
|
|
41
|
+
if (action !== "sendMessage" && action !== "uploadFile" && action !== "send" && action !== "upload-file") return null;
|
|
42
|
+
const extracted = extractToolSend(args, action);
|
|
43
|
+
if (!extracted) return null;
|
|
44
|
+
const nativeThreadTs = typeof args.threadTs === "string" ? normalizeSlackThreadTsCandidate(args.threadTs) : void 0;
|
|
45
|
+
const replyTo = typeof args.replyTo === "string" ? normalizeSlackThreadTsCandidate(args.replyTo) : void 0;
|
|
46
|
+
const threadTs = action === "send" ? resolveSlackThreadTsValue({
|
|
47
|
+
replyToId: replyTo,
|
|
48
|
+
threadId: extracted.threadId
|
|
49
|
+
}) : action === "upload-file" ? normalizeSlackThreadTsCandidate(extracted.threadId) ?? replyTo : nativeThreadTs ?? normalizeSlackThreadTsCandidate(extracted.threadId);
|
|
50
|
+
const threadSuppressed = extracted.threadSuppressed === true || args.topLevel === true || args.threadTs === null;
|
|
51
|
+
return {
|
|
52
|
+
...extracted,
|
|
53
|
+
threadId: threadTs ?? extracted.threadId,
|
|
54
|
+
...!threadTs && !extracted.threadId && !threadSuppressed ? { threadImplicit: true } : {},
|
|
55
|
+
...threadSuppressed ? { threadSuppressed: true } : {}
|
|
56
|
+
};
|
|
40
57
|
}
|
|
41
58
|
//#endregion
|
|
42
59
|
//#region extensions/slack/src/message-tool-api.ts
|
package/dist/message-tool-api.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { t as describeSlackMessageTool } from "./message-tool-api-
|
|
1
|
+
import { t as describeSlackMessageTool } from "./message-tool-api-NLAYFat2.js";
|
|
2
2
|
export { describeSlackMessageTool as describeMessageTool };
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { t as __exportAll } from "./rolldown-runtime-D7D4PA-g.js";
|
|
2
|
-
import { t as monitorSlackProvider, y as buildSlackSlashCommandMatcher } from "./provider-
|
|
3
|
-
import { t as isSlackChannelAllowedByPolicy } from "./policy-
|
|
4
|
-
import { o as resolveSlackThreadTs } from "./replies-
|
|
2
|
+
import { t as monitorSlackProvider, y as buildSlackSlashCommandMatcher } from "./provider-DbHhtmBz.js";
|
|
3
|
+
import { t as isSlackChannelAllowedByPolicy } from "./policy-Dfbxkneh.js";
|
|
4
|
+
import { o as resolveSlackThreadTs } from "./replies-CH4Dmgbr.js";
|
|
5
5
|
//#region extensions/slack/src/monitor.ts
|
|
6
6
|
var monitor_exports = /* @__PURE__ */ __exportAll({
|
|
7
7
|
buildSlackSlashCommandMatcher: () => buildSlackSlashCommandMatcher,
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import { _ as
|
|
1
|
+
import { _ as resolveSlackInteractiveBlockOffsets, a as SLACK_TEXT_LIMIT, g as buildSlackPresentationBlocks, h as buildSlackInteractiveBlocks, r as parseSlackBlocksInput } from "./reply-blocks-DSfujQlj.js";
|
|
2
|
+
import { n as resolveSlackThreadTsValue } from "./thread-ts-DUGhaYKq.js";
|
|
2
3
|
import { t as compileSlackInteractiveReplies } from "./interactive-replies-DrBq4Mld.js";
|
|
3
4
|
import { normalizeOptionalString } from "openclaw/plugin-sdk/string-coerce-runtime";
|
|
4
5
|
import { resolveOutboundSendDep } from "openclaw/plugin-sdk/channel-outbound";
|
|
@@ -9,7 +10,7 @@ import { resolvePayloadMediaUrls, sendPayloadMediaSequenceAndFinalize, sendTextM
|
|
|
9
10
|
const SLACK_MAX_BLOCKS = 50;
|
|
10
11
|
let slackSendRuntimePromise;
|
|
11
12
|
async function loadSlackSendRuntime() {
|
|
12
|
-
slackSendRuntimePromise ??= import("./send.runtime-
|
|
13
|
+
slackSendRuntimePromise ??= import("./send.runtime-CbeGF-al.js");
|
|
13
14
|
return await slackSendRuntimePromise;
|
|
14
15
|
}
|
|
15
16
|
function resolveRenderedInteractiveBlocks(interactive, previousBlocks) {
|