@openclaw/slack 2026.5.12 → 2026.5.14-beta.1
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/{account-inspect-D7AZNs8C.js → account-inspect-BJyQLSkN.js} +1 -1
- package/dist/account-inspect-api.js +1 -1
- package/dist/{accounts-ClAPP5ry.js → accounts-yk5K3wQU.js} +2 -1
- package/dist/accounts.runtime-CkfFIisb.js +2 -0
- package/dist/{action-runtime-e2UhRsNx.js → action-runtime-gtC-RM3r.js} +4 -4
- package/dist/action-runtime.runtime-DbVd7_Na.js +2 -0
- package/dist/{actions-CYLFK-Zy.js → actions-Cqyj7oRr.js} +26 -9
- package/dist/{actions.runtime-CO3OaTLb.js → actions.runtime-DD6hfFCA.js} +1 -1
- package/dist/api.js +18 -18
- package/dist/approval-auth-D3xf0sS6.js +28 -0
- package/dist/{approval-handler.runtime-CmeRr9qA.js → approval-handler.runtime-DeYBuIaU.js} +4 -4
- package/dist/{blocks-render-BIDw-Pom.js → blocks-render-BdLueE_v.js} +1 -1
- package/dist/{channel-DRjHBTDB.js → channel-CC04F-xs.js} +28 -52
- package/dist/channel-config-api.js +1 -1
- package/dist/channel-plugin-api.js +1 -1
- package/dist/{channel.setup-Cayn7afd.js → channel.setup-jzYjY634.js} +4 -4
- package/dist/{config-schema-D9B5LB_L.js → config-schema-Bueih4yH.js} +21 -1
- package/dist/contract-api.js +4 -4
- package/dist/{directory-config-B3JiHeB7.js → directory-config-BKKNBkCq.js} +1 -1
- package/dist/directory-contract-api.js +1 -1
- package/dist/{directory-live-Bf16GwDh.js → directory-live-CuaWaGnM.js} +2 -2
- package/dist/{doctor-contract-KUjHnkQm.js → doctor-contract-DCkS8eNN.js} +1 -1
- package/dist/doctor-contract-api.js +1 -1
- package/dist/{exec-approvals-7xUNgLi9.js → exec-approvals-BLn4Zx7V.js} +3 -3
- package/dist/{group-policy-CyLUK6My.js → group-policy-utF2iWnE.js} +1 -1
- package/dist/http-routes-api.js +1 -1
- package/dist/inbound-contract-test-api.js +2 -2
- package/dist/{interactive-replies-qAIfuBor.js → interactive-replies-CawNPL-h.js} +1 -1
- package/dist/interactive-replies-api.js +1 -1
- package/dist/{media-D1XCd1uP.js → media-B-nNpS2G.js} +32 -21
- package/dist/{message-tool-api-6lowf9zE.js → message-tool-api-B_bKUmP0.js} +2 -2
- package/dist/message-tool-api.js +1 -1
- package/dist/{monitor-a97o17G6.js → monitor-B3QB1ysK.js} +3 -3
- package/dist/{outbound-adapter-B_5sEhCg.js → outbound-adapter-DsAvCwpZ.js} +5 -5
- package/dist/outbound-payload-test-api.js +1 -1
- package/dist/{outbound-payload.test-harness-CVCamg1x.js → outbound-payload.test-harness-DM9ZdY2f.js} +2 -2
- package/dist/{pipeline.runtime-DT0hLnq2.js → pipeline.runtime-D-YJZZaI.js} +49 -22
- package/dist/{plugin-routes-DtTPmga1.js → plugin-routes-Dt_jh9W8.js} +2 -2
- package/dist/{prepare-D3YqV8jB.js → prepare-CXI8nHbJ.js} +10 -10
- package/dist/{prepare.test-helpers-DVcjRhfG.js → prepare.test-helpers-BhFHtbz3.js} +1 -1
- package/dist/{probe-3eZf1FjI.js → probe-D1wYA05H.js} +2 -2
- package/dist/{provider-D7uAN3Fq.js → provider-Ut7IF0Mn.js} +66 -29
- package/dist/{replies-Xe_jMR6o.js → replies-CzfjCaLG.js} +4 -4
- package/dist/{reply-blocks-Z5l6_R6H.js → reply-blocks-DWoZrUll.js} +2 -2
- package/dist/{resolve-channels-BRYqyNVJ.js → resolve-channels-BiVxSLVm.js} +2 -2
- package/dist/{resolve-users-Bd_SdP8j.js → resolve-users-CcpSlYw-.js} +2 -2
- package/dist/{room-context-0vovmZPU.js → room-context-D0hGOp8m.js} +4 -2
- package/dist/{runtime-api-Dd1xIV5v.js → runtime-api-D8wiG9BS.js} +2 -2
- package/dist/runtime-api.js +13 -13
- package/dist/runtime-setter-api.js +1 -1
- package/dist/{scopes-CDevO8jg.js → scopes-BTkB8PPE.js} +2 -2
- package/dist/secret-contract-api.js +1 -1
- package/dist/security-contract-api.js +1 -1
- package/dist/{send-D_A9kL-C.js → send-ioky2Xpy.js} +6 -6
- package/dist/send.runtime-5Kl3Wzbf.js +2 -0
- package/dist/send.runtime-DoifekaA.js +2 -0
- package/dist/{setup-core-B9NetDkM.js → setup-core-DgLJ7dQY.js} +2 -2
- package/dist/setup-plugin-api.js +1 -1
- package/dist/{setup-surface-D88QBVOW.js → setup-surface-B6w9gtds.js} +5 -5
- package/dist/{shared-D8U42xFL.js → shared-CSiHkaVO.js} +9 -9
- package/dist/{slash-dispatch.runtime-BJgT0jwV.js → slash-dispatch.runtime-DNr1EDON.js} +1 -1
- package/dist/test-api.js +7 -7
- package/openclaw.plugin.json +116 -0
- package/package.json +8 -6
- package/dist/accounts.runtime-DDVcLJUI.js +0 -2
- package/dist/action-runtime.runtime-BFcqMbOm.js +0 -2
- package/dist/send.runtime-BRE_ncCU.js +0 -2
- package/dist/send.runtime-_l76lUuL.js +0 -2
- /package/dist/{allow-list-BPnnlRPL.js → allow-list-T7ZDpUsF.js} +0 -0
- /package/dist/{blocks-input-CwTFVImV.js → blocks-input-BJZ8vv03.js} +0 -0
- /package/dist/{channel-api-B_nZwosg.js → channel-api-BfBK89IN.js} +0 -0
- /package/dist/{client-CPe4GmDR.js → client-8r7r7aZ3.js} +0 -0
- /package/dist/{config-api-B_jq4NJW.js → config-api-B48Z4H47.js} +0 -0
- /package/dist/{errors-BYFHR24f.js → errors-BrtayXHa.js} +0 -0
- /package/dist/{magic-string.es-BMaGRRZ1.js → magic-string.es-BLAi6qQC.js} +0 -0
- /package/dist/{mrkdwn-Cax-eSfK.js → mrkdwn-18IzcEAY.js} +0 -0
- /package/dist/{registry-CeaoNfoP.js → registry-BdfKYina.js} +0 -0
- /package/dist/{resolve-allowlist-common-Bk3clYPK.js → resolve-allowlist-common-rhfyDyWi.js} +0 -0
- /package/dist/{runtime-Bo-KHM-F.js → runtime--VlVtTPu.js} +0 -0
- /package/dist/{secret-contract-Bo6lbSkh.js → secret-contract-BurGIyhv.js} +0 -0
- /package/dist/{security-audit-BtHGnD3d.js → security-audit-DvOpSaZM.js} +0 -0
- /package/dist/{slash-commands.runtime-22kgyst2.js → slash-commands.runtime-DRkNgIQ2.js} +0 -0
- /package/dist/{slash-plugin-commands.runtime-CF-n3MeP.js → slash-plugin-commands.runtime-Dj5h8hmv.js} +0 -0
- /package/dist/{slash-skill-commands.runtime-BMs0VjTe.js → slash-skill-commands.runtime-B-_KAk0C.js} +0 -0
- /package/dist/{streaming-compat-RkZgTmQ2.js → streaming-compat-C6rySwiD.js} +0 -0
- /package/dist/{thread-ts-C2x7c5PP.js → thread-ts-o-QBwB3k.js} +0 -0
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { i as resolveDefaultSlackAccountId, r as mergeSlackAccountConfig } from "./accounts-
|
|
1
|
+
import { i as resolveDefaultSlackAccountId, r as mergeSlackAccountConfig } from "./accounts-yk5K3wQU.js";
|
|
2
2
|
import { DEFAULT_ACCOUNT_ID, normalizeAccountId } from "openclaw/plugin-sdk/account-resolution";
|
|
3
3
|
import { hasConfiguredSecretInput, normalizeSecretInputString } from "openclaw/plugin-sdk/secret-input";
|
|
4
4
|
import { normalizeOptionalString } from "openclaw/plugin-sdk/string-coerce-runtime";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { t as inspectSlackAccount } from "./account-inspect-
|
|
1
|
+
import { t as inspectSlackAccount } from "./account-inspect-BJyQLSkN.js";
|
|
2
2
|
//#region extensions/slack/account-inspect-api.ts
|
|
3
3
|
function inspectSlackReadOnlyAccount(cfg, accountId) {
|
|
4
4
|
return inspectSlackAccount({
|
|
@@ -48,7 +48,8 @@ function mergeSlackAccountConfig(cfg, accountId) {
|
|
|
48
48
|
return resolveMergedAccountConfig({
|
|
49
49
|
channelConfig: cfg.channels?.slack,
|
|
50
50
|
accounts: cfg.channels?.slack?.accounts,
|
|
51
|
-
accountId
|
|
51
|
+
accountId,
|
|
52
|
+
nestedObjectKeys: ["botLoopProtection"]
|
|
52
53
|
});
|
|
53
54
|
}
|
|
54
55
|
function resolveSlackAccountAllowFrom(params) {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { i as resolveSlackChannelId, r as parseSlackTarget } from "./target-parsing-CQmv-iSm.js";
|
|
2
2
|
import "./targets-B1tYCAr6.js";
|
|
3
|
-
import { n as parseSlackBlocksInput } from "./blocks-input-
|
|
4
|
-
import { a as readNumberParam, c as withNormalizedTimestamp, n as imageResultFromFile, o as readReactionParams, r as jsonResult, s as readStringParam, t as createActionGate } from "./runtime-api-
|
|
3
|
+
import { n as parseSlackBlocksInput } from "./blocks-input-BJZ8vv03.js";
|
|
4
|
+
import { a as readNumberParam, c as withNormalizedTimestamp, n as imageResultFromFile, o as readReactionParams, r as jsonResult, s as readStringParam, t as createActionGate } from "./runtime-api-D8wiG9BS.js";
|
|
5
5
|
import { normalizeLowercaseStringOrEmpty } from "openclaw/plugin-sdk/string-coerce-runtime";
|
|
6
6
|
import { isSingleUseReplyToMode } from "openclaw/plugin-sdk/reply-reference";
|
|
7
7
|
import { readBooleanParam } from "openclaw/plugin-sdk/boolean-param";
|
|
@@ -28,11 +28,11 @@ function sameSlackChannelTarget(targetChannel, currentChannelId) {
|
|
|
28
28
|
let slackActionsRuntimePromise;
|
|
29
29
|
let slackAccountsRuntimePromise;
|
|
30
30
|
function loadSlackActionsRuntime() {
|
|
31
|
-
slackActionsRuntimePromise ??= import("./actions.runtime-
|
|
31
|
+
slackActionsRuntimePromise ??= import("./actions.runtime-DD6hfFCA.js");
|
|
32
32
|
return slackActionsRuntimePromise;
|
|
33
33
|
}
|
|
34
34
|
function loadSlackAccountsRuntime() {
|
|
35
|
-
slackAccountsRuntimePromise ??= import("./accounts.runtime-
|
|
35
|
+
slackAccountsRuntimePromise ??= import("./accounts.runtime-CkfFIisb.js");
|
|
36
36
|
return slackAccountsRuntimePromise;
|
|
37
37
|
}
|
|
38
38
|
function createLazySlackAction(key) {
|
|
@@ -1,11 +1,12 @@
|
|
|
1
|
-
import { a as resolveSlackAccount, d as resolveSlackBotToken } from "./accounts-
|
|
2
|
-
import { i as truncateSlackText, r as SLACK_TEXT_LIMIT } from "./thread-ts-
|
|
3
|
-
import { a as getSlackWriteClient, r as createSlackWebClient } from "./client-
|
|
4
|
-
import { r as validateSlackBlocksArray } from "./blocks-input-
|
|
5
|
-
import { c as buildSlackBlocksFallbackText, t as sendMessageSlack } from "./send-
|
|
6
|
-
import { n as resolveSlackMedia } from "./media-
|
|
1
|
+
import { a as resolveSlackAccount, d as resolveSlackBotToken } from "./accounts-yk5K3wQU.js";
|
|
2
|
+
import { i as truncateSlackText, r as SLACK_TEXT_LIMIT } from "./thread-ts-o-QBwB3k.js";
|
|
3
|
+
import { a as getSlackWriteClient, r as createSlackWebClient } from "./client-8r7r7aZ3.js";
|
|
4
|
+
import { r as validateSlackBlocksArray } from "./blocks-input-BJZ8vv03.js";
|
|
5
|
+
import { c as buildSlackBlocksFallbackText, t as sendMessageSlack } from "./send-ioky2Xpy.js";
|
|
6
|
+
import { n as resolveSlackMedia } from "./media-B-nNpS2G.js";
|
|
7
7
|
import { requireRuntimeConfig } from "openclaw/plugin-sdk/plugin-config-runtime";
|
|
8
8
|
import { logVerbose } from "openclaw/plugin-sdk/runtime-env";
|
|
9
|
+
import { z } from "zod";
|
|
9
10
|
//#region extensions/slack/src/edit-text.ts
|
|
10
11
|
function buildSlackEditTextPayload(content, blocks) {
|
|
11
12
|
const trimmedContent = content.trim();
|
|
@@ -37,6 +38,22 @@ function normalizeEmoji(raw) {
|
|
|
37
38
|
if (!trimmed) throw new Error("Emoji is required for Slack reactions");
|
|
38
39
|
return trimmed.replace(/^:+|:+$/g, "");
|
|
39
40
|
}
|
|
41
|
+
const SLACK_TIMESTAMP_RE = /^\d+(?:\.\d+)?$/;
|
|
42
|
+
const ISO_8601_TIMESTAMP_SCHEMA = z.iso.datetime({ offset: true });
|
|
43
|
+
function formatEpochSeconds(milliseconds) {
|
|
44
|
+
const seconds = milliseconds / 1e3;
|
|
45
|
+
if (Number.isInteger(seconds)) return String(seconds);
|
|
46
|
+
return seconds.toFixed(3).replace(/0+$/, "").replace(/\.$/, "");
|
|
47
|
+
}
|
|
48
|
+
function normalizeSlackReadTimestamp(raw, field) {
|
|
49
|
+
const trimmed = raw?.trim();
|
|
50
|
+
if (!trimmed) return;
|
|
51
|
+
if (SLACK_TIMESTAMP_RE.test(trimmed)) return trimmed;
|
|
52
|
+
if (!ISO_8601_TIMESTAMP_SCHEMA.safeParse(trimmed).success) throw new Error(`Invalid Slack read ${field} timestamp "${trimmed}": expected a Slack timestamp or ISO-8601 date string`);
|
|
53
|
+
const parsed = Date.parse(trimmed);
|
|
54
|
+
if (!Number.isFinite(parsed)) throw new Error(`Invalid Slack read ${field} timestamp "${trimmed}": expected a Slack timestamp or ISO-8601 date string`);
|
|
55
|
+
return formatEpochSeconds(parsed);
|
|
56
|
+
}
|
|
40
57
|
function hasSlackPlatformError(err, code) {
|
|
41
58
|
if (!err || typeof err !== "object") return false;
|
|
42
59
|
const data = err.data;
|
|
@@ -137,7 +154,6 @@ async function deleteSlackMessage(channelId, messageId, opts = {}) {
|
|
|
137
154
|
});
|
|
138
155
|
}
|
|
139
156
|
async function readSlackMessages(channelId, opts = {}) {
|
|
140
|
-
const client = await getClient(opts);
|
|
141
157
|
const exactMessageId = opts.messageId?.trim();
|
|
142
158
|
const readLimit = exactMessageId ? 1 : opts.limit;
|
|
143
159
|
const exactBounds = exactMessageId ? {
|
|
@@ -145,9 +161,10 @@ async function readSlackMessages(channelId, opts = {}) {
|
|
|
145
161
|
latest: exactMessageId,
|
|
146
162
|
oldest: void 0
|
|
147
163
|
} : {
|
|
148
|
-
latest: opts.before,
|
|
149
|
-
oldest: opts.after
|
|
164
|
+
latest: normalizeSlackReadTimestamp(opts.before, "before"),
|
|
165
|
+
oldest: normalizeSlackReadTimestamp(opts.after, "after")
|
|
150
166
|
};
|
|
167
|
+
const client = await getClient(opts);
|
|
151
168
|
if (opts.threadId) {
|
|
152
169
|
const result = await client.conversations.replies({
|
|
153
170
|
channel: channelId,
|
|
@@ -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-Cqyj7oRr.js";
|
|
2
2
|
export { deleteSlackMessage, downloadSlackFile, editSlackMessage, getSlackMemberInfo, listSlackEmojis, listSlackPins, listSlackReactions, pinSlackMessage, reactSlackMessage, readSlackMessages, removeOwnSlackReactions, removeSlackReaction, sendSlackMessage, unpinSlackMessage };
|
package/dist/api.js
CHANGED
|
@@ -1,21 +1,21 @@
|
|
|
1
|
-
import { a as resolveSlackAccount, i as resolveDefaultSlackAccountId, l as resolveSlackReplyToMode, n as listSlackAccountIds, r as mergeSlackAccountConfig, t as listEnabledSlackAccounts } from "./accounts-
|
|
2
|
-
import { t as inspectSlackAccount } from "./account-inspect-
|
|
1
|
+
import { a as resolveSlackAccount, i as resolveDefaultSlackAccountId, l as resolveSlackReplyToMode, n as listSlackAccountIds, r as mergeSlackAccountConfig, t as listEnabledSlackAccounts } from "./accounts-yk5K3wQU.js";
|
|
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-
|
|
6
|
-
import { n as buildSlackPresentationBlocks, t as buildSlackInteractiveBlocks } from "./blocks-render-
|
|
7
|
-
import { n as extractSlackToolSend, r as listSlackMessageActions } from "./message-tool-api-
|
|
8
|
-
import { n as isSlackInteractiveRepliesEnabled, r as parseSlackOptionsLine, t as compileSlackInteractiveReplies } from "./interactive-replies-
|
|
9
|
-
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-
|
|
10
|
-
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-
|
|
11
|
-
import { n as resolveSlackGroupToolPolicy, t as resolveSlackGroupRequireMention } from "./group-policy-
|
|
12
|
-
import { n as parseSlackBlocksInput, r as validateSlackBlocksArray, t as SLACK_MAX_BLOCKS } from "./blocks-input-
|
|
13
|
-
import { t as slackSetupPlugin } from "./channel.setup-
|
|
14
|
-
import { a as recordSlackThreadParticipation, n as clearSlackThreadParticipationCache, r as hasSlackThreadParticipation } from "./send-
|
|
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-
|
|
16
|
-
import { n as listSlackDirectoryGroupsFromConfig, r as listSlackDirectoryPeersFromConfig } from "./directory-config-
|
|
17
|
-
import { n as registerSlackHttpHandler, r as normalizeSlackWebhookPath, t as handleSlackHttpRequest } from "./registry-
|
|
18
|
-
import { t as probeSlack } from "./probe-
|
|
19
|
-
import { t as collectSlackSecurityAuditFindings } from "./security-audit-
|
|
20
|
-
import { n as resolveSlackRuntimeGroupPolicy } from "./provider-
|
|
5
|
+
import { i as resolveSlackChannelType, n as buildSlackThreadingToolContext, o as resolveSlackAutoThreadId, r as __resetSlackChannelTypeCacheForTest, t as slackPlugin } from "./channel-CC04F-xs.js";
|
|
6
|
+
import { n as buildSlackPresentationBlocks, t as buildSlackInteractiveBlocks } from "./blocks-render-BdLueE_v.js";
|
|
7
|
+
import { n as extractSlackToolSend, r as listSlackMessageActions } from "./message-tool-api-B_bKUmP0.js";
|
|
8
|
+
import { n as isSlackInteractiveRepliesEnabled, r as parseSlackOptionsLine, t as compileSlackInteractiveReplies } from "./interactive-replies-CawNPL-h.js";
|
|
9
|
+
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-8r7r7aZ3.js";
|
|
10
|
+
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-T7ZDpUsF.js";
|
|
11
|
+
import { n as resolveSlackGroupToolPolicy, t as resolveSlackGroupRequireMention } from "./group-policy-utF2iWnE.js";
|
|
12
|
+
import { n as parseSlackBlocksInput, r as validateSlackBlocksArray, t as SLACK_MAX_BLOCKS } from "./blocks-input-BJZ8vv03.js";
|
|
13
|
+
import { t as slackSetupPlugin } from "./channel.setup-jzYjY634.js";
|
|
14
|
+
import { a as recordSlackThreadParticipation, n as clearSlackThreadParticipationCache, r as hasSlackThreadParticipation } from "./send-ioky2Xpy.js";
|
|
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-Cqyj7oRr.js";
|
|
16
|
+
import { n as listSlackDirectoryGroupsFromConfig, r as listSlackDirectoryPeersFromConfig } from "./directory-config-BKKNBkCq.js";
|
|
17
|
+
import { n as registerSlackHttpHandler, r as normalizeSlackWebhookPath, t as handleSlackHttpRequest } from "./registry-BdfKYina.js";
|
|
18
|
+
import { t as probeSlack } from "./probe-D1wYA05H.js";
|
|
19
|
+
import { t as collectSlackSecurityAuditFindings } from "./security-audit-DvOpSaZM.js";
|
|
20
|
+
import { n as resolveSlackRuntimeGroupPolicy } from "./provider-Ut7IF0Mn.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 };
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { a as resolveSlackAccount, o as resolveSlackAccountAllowFrom } from "./accounts-yk5K3wQU.js";
|
|
2
|
+
import { i as normalizeSlackApproverId } from "./exec-approvals-BLn4Zx7V.js";
|
|
3
|
+
import { createResolvedApproverActionAuthAdapter, resolveApprovalApprovers } from "openclaw/plugin-sdk/approval-auth-runtime";
|
|
4
|
+
//#region extensions/slack/src/approval-auth.ts
|
|
5
|
+
function getSlackApprovalApprovers(params) {
|
|
6
|
+
const account = resolveSlackAccount(params).config;
|
|
7
|
+
return resolveApprovalApprovers({
|
|
8
|
+
allowFrom: resolveSlackAccountAllowFrom(params),
|
|
9
|
+
defaultTo: account.defaultTo,
|
|
10
|
+
normalizeApprover: normalizeSlackApproverId,
|
|
11
|
+
normalizeDefaultTo: normalizeSlackApproverId
|
|
12
|
+
});
|
|
13
|
+
}
|
|
14
|
+
function isSlackApprovalAuthorizedSender(params) {
|
|
15
|
+
const senderId = params.senderId ? normalizeSlackApproverId(params.senderId) : void 0;
|
|
16
|
+
if (!senderId) return false;
|
|
17
|
+
return getSlackApprovalApprovers(params).includes(senderId);
|
|
18
|
+
}
|
|
19
|
+
createResolvedApproverActionAuthAdapter({
|
|
20
|
+
channelLabel: "Slack",
|
|
21
|
+
resolveApprovers: ({ cfg, accountId }) => getSlackApprovalApprovers({
|
|
22
|
+
cfg,
|
|
23
|
+
accountId
|
|
24
|
+
}),
|
|
25
|
+
normalizeSenderId: (value) => normalizeSlackApproverId(value)
|
|
26
|
+
});
|
|
27
|
+
//#endregion
|
|
28
|
+
export { isSlackApprovalAuthorizedSender as t };
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { i as truncateSlackText } from "./thread-ts-
|
|
3
|
-
import { t as resolveSlackReplyBlocks } from "./reply-blocks-
|
|
4
|
-
import { t as sendMessageSlack } from "./send-
|
|
1
|
+
import { i as normalizeSlackApproverId, o as shouldHandleSlackExecApprovalRequest, r as isSlackExecApprovalClientEnabled } from "./exec-approvals-BLn4Zx7V.js";
|
|
2
|
+
import { i as truncateSlackText } from "./thread-ts-o-QBwB3k.js";
|
|
3
|
+
import { t as resolveSlackReplyBlocks } from "./reply-blocks-DWoZrUll.js";
|
|
4
|
+
import { t as sendMessageSlack } from "./send-ioky2Xpy.js";
|
|
5
5
|
import { normalizeOptionalString } from "openclaw/plugin-sdk/string-coerce-runtime";
|
|
6
6
|
import { buildChannelApprovalNativeTargetKey } from "openclaw/plugin-sdk/approval-native-runtime";
|
|
7
7
|
import { logError } from "openclaw/plugin-sdk/logging-core";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { i as truncateSlackText } from "./thread-ts-
|
|
1
|
+
import { i as truncateSlackText } from "./thread-ts-o-QBwB3k.js";
|
|
2
2
|
import { normalizeOptionalString } from "openclaw/plugin-sdk/string-coerce-runtime";
|
|
3
3
|
import { presentationToInteractiveControlsReply, reduceInteractiveReply } from "openclaw/plugin-sdk/interactive-runtime";
|
|
4
4
|
//#region extensions/slack/src/reply-action-ids.ts
|
|
@@ -1,19 +1,20 @@
|
|
|
1
|
-
import { a as resolveSlackAccount, i as resolveDefaultSlackAccountId, l as resolveSlackReplyToMode, n as listSlackAccountIds, o as resolveSlackAccountAllowFrom } from "./accounts-
|
|
1
|
+
import { a as resolveSlackAccount, i as resolveDefaultSlackAccountId, l as resolveSlackReplyToMode, n as listSlackAccountIds, o as resolveSlackAccountAllowFrom } from "./accounts-yk5K3wQU.js";
|
|
2
2
|
import { i as resolveSlackChannelId, n as normalizeSlackMessagingTarget, r as parseSlackTarget, t as looksLikeSlackTargetId } from "./target-parsing-CQmv-iSm.js";
|
|
3
3
|
import "./targets-B1tYCAr6.js";
|
|
4
|
-
import { a as
|
|
5
|
-
import {
|
|
6
|
-
import { n as
|
|
7
|
-
import { n as
|
|
8
|
-
import { n as
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
11
|
-
import { r as
|
|
12
|
-
import {
|
|
13
|
-
import { t as
|
|
14
|
-
import { t as
|
|
15
|
-
import {
|
|
16
|
-
import { i as
|
|
4
|
+
import { a as resolveSlackExecApprovalTarget, n as isSlackExecApprovalAuthorizedSender, o as shouldHandleSlackExecApprovalRequest, r as isSlackExecApprovalClientEnabled, s as shouldSuppressLocalSlackExecApprovalPrompt, t as getSlackExecApprovalApprovers } from "./exec-approvals-BLn4Zx7V.js";
|
|
5
|
+
import { t as isSlackApprovalAuthorizedSender } from "./approval-auth-D3xf0sS6.js";
|
|
6
|
+
import { n as buildSlackPresentationBlocks, r as resolveSlackInteractiveBlockOffsets, t as buildSlackInteractiveBlocks } from "./blocks-render-BdLueE_v.js";
|
|
7
|
+
import { n as resolveSlackThreadTsValue, r as SLACK_TEXT_LIMIT, t as normalizeSlackThreadTsCandidate } from "./thread-ts-o-QBwB3k.js";
|
|
8
|
+
import { n as extractSlackToolSend, t as describeSlackMessageTool } from "./message-tool-api-B_bKUmP0.js";
|
|
9
|
+
import { n as isSlackInteractiveRepliesEnabled, t as compileSlackInteractiveReplies } from "./interactive-replies-CawNPL-h.js";
|
|
10
|
+
import { a as resolveConfiguredFromRequiredCredentialStatuses, i as projectCredentialSnapshotFields, n as PAIRING_APPROVED_MESSAGE, t as DEFAULT_ACCOUNT_ID } from "./channel-api-BfBK89IN.js";
|
|
11
|
+
import { r as createSlackWebClient } from "./client-8r7r7aZ3.js";
|
|
12
|
+
import { r as normalizeAllowListLower } from "./allow-list-T7ZDpUsF.js";
|
|
13
|
+
import { n as resolveSlackGroupToolPolicy, t as resolveSlackGroupRequireMention } from "./group-policy-utF2iWnE.js";
|
|
14
|
+
import { t as resolveSlackReplyBlocks } from "./reply-blocks-DWoZrUll.js";
|
|
15
|
+
import { t as getOptionalSlackRuntime } from "./runtime--VlVtTPu.js";
|
|
16
|
+
import { i as slackSecurityAdapter, n as isSlackPluginAccountConfigured, r as slackConfigAdapter, t as createSlackPluginBase } from "./shared-CSiHkaVO.js";
|
|
17
|
+
import { i as SLACK_CHANNEL, n as createSlackSetupWizardProxy, r as slackSetupAdapter } from "./setup-core-DgLJ7dQY.js";
|
|
17
18
|
import { normalizeLowercaseStringOrEmpty, normalizeOptionalString } from "openclaw/plugin-sdk/string-coerce-runtime";
|
|
18
19
|
import { adaptScopedAccountAccessor } from "openclaw/plugin-sdk/channel-config-helpers";
|
|
19
20
|
import { buildOutboundBaseSessionKey } from "openclaw/plugin-sdk/routing";
|
|
@@ -31,7 +32,6 @@ import { createApproverRestrictedNativeApprovalCapability, splitChannelApprovalC
|
|
|
31
32
|
import { createLazyChannelApprovalNativeRuntimeAdapter } from "openclaw/plugin-sdk/approval-handler-adapter-runtime";
|
|
32
33
|
import { createChannelApproverDmTargetResolver, createChannelNativeOriginTargetResolver, resolveApprovalRequestSessionConversation } from "openclaw/plugin-sdk/approval-native-runtime";
|
|
33
34
|
import { channelRouteTargetsMatchExact, stringifyRouteThreadId } from "openclaw/plugin-sdk/channel-route";
|
|
34
|
-
import { createResolvedApproverActionAuthAdapter, resolveApprovalApprovers } from "openclaw/plugin-sdk/approval-auth-runtime";
|
|
35
35
|
import { readBooleanParam } from "openclaw/plugin-sdk/boolean-param";
|
|
36
36
|
import { normalizeInteractiveReply, normalizeMessagePresentation } from "openclaw/plugin-sdk/interactive-runtime";
|
|
37
37
|
import { readNumberParam, readStringParam } from "openclaw/plugin-sdk/param-readers";
|
|
@@ -47,30 +47,6 @@ function resolveSlackAutoThreadId(params) {
|
|
|
47
47
|
return context.currentThreadTs;
|
|
48
48
|
}
|
|
49
49
|
//#endregion
|
|
50
|
-
//#region extensions/slack/src/approval-auth.ts
|
|
51
|
-
function getSlackApprovalApprovers(params) {
|
|
52
|
-
const account = resolveSlackAccount(params).config;
|
|
53
|
-
return resolveApprovalApprovers({
|
|
54
|
-
allowFrom: resolveSlackAccountAllowFrom(params),
|
|
55
|
-
defaultTo: account.defaultTo,
|
|
56
|
-
normalizeApprover: normalizeSlackApproverId,
|
|
57
|
-
normalizeDefaultTo: normalizeSlackApproverId
|
|
58
|
-
});
|
|
59
|
-
}
|
|
60
|
-
function isSlackApprovalAuthorizedSender(params) {
|
|
61
|
-
const senderId = params.senderId ? normalizeSlackApproverId(params.senderId) : void 0;
|
|
62
|
-
if (!senderId) return false;
|
|
63
|
-
return getSlackApprovalApprovers(params).includes(senderId);
|
|
64
|
-
}
|
|
65
|
-
createResolvedApproverActionAuthAdapter({
|
|
66
|
-
channelLabel: "Slack",
|
|
67
|
-
resolveApprovers: ({ cfg, accountId }) => getSlackApprovalApprovers({
|
|
68
|
-
cfg,
|
|
69
|
-
accountId
|
|
70
|
-
}),
|
|
71
|
-
normalizeSenderId: (value) => normalizeSlackApproverId(value)
|
|
72
|
-
});
|
|
73
|
-
//#endregion
|
|
74
50
|
//#region extensions/slack/src/approval-native.ts
|
|
75
51
|
function extractSlackSessionKind(sessionKey) {
|
|
76
52
|
if (!sessionKey) return null;
|
|
@@ -201,7 +177,7 @@ const slackApprovalCapability = createApproverRestrictedNativeApprovalCapability
|
|
|
201
177
|
accountId,
|
|
202
178
|
request
|
|
203
179
|
}),
|
|
204
|
-
load: async () => (await import("./approval-handler.runtime-
|
|
180
|
+
load: async () => (await import("./approval-handler.runtime-DeYBuIaU.js")).slackApprovalNativeRuntime
|
|
205
181
|
})
|
|
206
182
|
});
|
|
207
183
|
splitChannelApprovalCapability(slackApprovalCapability);
|
|
@@ -368,7 +344,7 @@ async function handleSlackMessageAction(params) {
|
|
|
368
344
|
//#region extensions/slack/src/channel-actions.ts
|
|
369
345
|
let slackActionRuntimePromise$1;
|
|
370
346
|
async function loadSlackActionRuntime$1() {
|
|
371
|
-
slackActionRuntimePromise$1 ??= import("./action-runtime.runtime-
|
|
347
|
+
slackActionRuntimePromise$1 ??= import("./action-runtime.runtime-DbVd7_Na.js");
|
|
372
348
|
return await slackActionRuntimePromise$1;
|
|
373
349
|
}
|
|
374
350
|
function resolveSlackActionContext(params) {
|
|
@@ -492,9 +468,9 @@ const EXTENSION_SHARED_MODULE_ID = "openclaw/plugin-sdk/extension-shared";
|
|
|
492
468
|
const TARGET_RESOLVER_RUNTIME_MODULE_ID = "openclaw/plugin-sdk/target-resolver-runtime";
|
|
493
469
|
const loadExtensionSharedSdk = createLazyRuntimeModule(() => import(EXTENSION_SHARED_MODULE_ID));
|
|
494
470
|
const loadTargetResolverRuntimeSdk = createLazyRuntimeModule(() => import(TARGET_RESOLVER_RUNTIME_MODULE_ID));
|
|
495
|
-
const loadSlackSetupSurfaceModule = createLazyRuntimeModule(() => import("./setup-surface-
|
|
496
|
-
const loadSlackScopesModule = createLazyRuntimeModule(() => import("./scopes-
|
|
497
|
-
const loadSlackOutboundAdapterModule = createLazyRuntimeModule(() => import("./outbound-adapter-
|
|
471
|
+
const loadSlackSetupSurfaceModule = createLazyRuntimeModule(() => import("./setup-surface-B6w9gtds.js"));
|
|
472
|
+
const loadSlackScopesModule = createLazyRuntimeModule(() => import("./scopes-BTkB8PPE.js"));
|
|
473
|
+
const loadSlackOutboundAdapterModule = createLazyRuntimeModule(() => import("./outbound-adapter-DsAvCwpZ.js").then((n) => n.t));
|
|
498
474
|
async function resolveSlackHandleAction() {
|
|
499
475
|
return getOptionalSlackRuntime()?.channel?.slack?.handleSlackAction ?? (await loadSlackActionRuntime()).handleSlackAction;
|
|
500
476
|
}
|
|
@@ -514,27 +490,27 @@ let slackSendRuntimePromise;
|
|
|
514
490
|
let slackProbeModulePromise;
|
|
515
491
|
let slackMonitorModulePromise;
|
|
516
492
|
let slackDirectoryLiveModulePromise;
|
|
517
|
-
const loadSlackDirectoryConfigModule = createLazyRuntimeModule(() => import("./directory-config-
|
|
518
|
-
const loadSlackResolveChannelsModule = createLazyRuntimeModule(() => import("./resolve-channels-
|
|
519
|
-
const loadSlackResolveUsersModule = createLazyRuntimeModule(() => import("./resolve-users-
|
|
493
|
+
const loadSlackDirectoryConfigModule = createLazyRuntimeModule(() => import("./directory-config-BKKNBkCq.js").then((n) => n.t));
|
|
494
|
+
const loadSlackResolveChannelsModule = createLazyRuntimeModule(() => import("./resolve-channels-BiVxSLVm.js").then((n) => n.n));
|
|
495
|
+
const loadSlackResolveUsersModule = createLazyRuntimeModule(() => import("./resolve-users-CcpSlYw-.js").then((n) => n.n));
|
|
520
496
|
async function loadSlackActionRuntime() {
|
|
521
|
-
slackActionRuntimePromise ??= import("./action-runtime.runtime-
|
|
497
|
+
slackActionRuntimePromise ??= import("./action-runtime.runtime-DbVd7_Na.js");
|
|
522
498
|
return await slackActionRuntimePromise;
|
|
523
499
|
}
|
|
524
500
|
async function loadSlackSendRuntime() {
|
|
525
|
-
slackSendRuntimePromise ??= import("./send.runtime-
|
|
501
|
+
slackSendRuntimePromise ??= import("./send.runtime-5Kl3Wzbf.js");
|
|
526
502
|
return await slackSendRuntimePromise;
|
|
527
503
|
}
|
|
528
504
|
async function loadSlackProbeModule() {
|
|
529
|
-
slackProbeModulePromise ??= import("./probe-
|
|
505
|
+
slackProbeModulePromise ??= import("./probe-D1wYA05H.js").then((n) => n.n);
|
|
530
506
|
return await slackProbeModulePromise;
|
|
531
507
|
}
|
|
532
508
|
async function loadSlackMonitorModule() {
|
|
533
|
-
slackMonitorModulePromise ??= import("./monitor-
|
|
509
|
+
slackMonitorModulePromise ??= import("./monitor-B3QB1ysK.js").then((n) => n.t);
|
|
534
510
|
return await slackMonitorModulePromise;
|
|
535
511
|
}
|
|
536
512
|
async function loadSlackDirectoryLiveModule() {
|
|
537
|
-
slackDirectoryLiveModulePromise ??= import("./directory-live-
|
|
513
|
+
slackDirectoryLiveModulePromise ??= import("./directory-live-CuaWaGnM.js").then((n) => n.t);
|
|
538
514
|
return await slackDirectoryLiveModulePromise;
|
|
539
515
|
}
|
|
540
516
|
async function resolveSlackSendContext(params) {
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { t as SlackChannelConfigSchema } from "./config-schema-
|
|
1
|
+
import { t as SlackChannelConfigSchema } from "./config-schema-Bueih4yH.js";
|
|
2
2
|
export { SlackChannelConfigSchema };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { t as slackPlugin } from "./channel-
|
|
1
|
+
import { t as slackPlugin } from "./channel-CC04F-xs.js";
|
|
2
2
|
export { slackPlugin };
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { a as resolveSlackAccount, c as resolveSlackConfigAccessorAccount, i as resolveDefaultSlackAccountId, n as listSlackAccountIds } from "./accounts-
|
|
2
|
-
import { a as describeSlackSetupAccount, i as SLACK_CHANNEL, n as createSlackSetupWizardProxy, o as isSlackSetupAccountConfigured, r as slackSetupAdapter } from "./setup-core-
|
|
3
|
-
import { t as SlackChannelConfigSchema } from "./config-schema-
|
|
1
|
+
import { a as resolveSlackAccount, c as resolveSlackConfigAccessorAccount, i as resolveDefaultSlackAccountId, n as listSlackAccountIds } from "./accounts-yk5K3wQU.js";
|
|
2
|
+
import { a as describeSlackSetupAccount, i as SLACK_CHANNEL, n as createSlackSetupWizardProxy, o as isSlackSetupAccountConfigured, r as slackSetupAdapter } from "./setup-core-DgLJ7dQY.js";
|
|
3
|
+
import { t as SlackChannelConfigSchema } from "./config-schema-Bueih4yH.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-B6w9gtds.js")).slackSetupWizard }));
|
|
8
8
|
const slackSetupConfigAdapter = createScopedChannelConfigAdapter({
|
|
9
9
|
sectionKey: SLACK_CHANNEL,
|
|
10
10
|
listAccountIds: listSlackAccountIds,
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { n as buildChannelConfigSchema, t as SlackConfigSchema } from "./config-api-
|
|
1
|
+
import { n as buildChannelConfigSchema, t as SlackConfigSchema } from "./config-api-B48Z4H47.js";
|
|
2
2
|
//#endregion
|
|
3
3
|
//#region extensions/slack/src/config-schema.ts
|
|
4
4
|
const SlackChannelConfigSchema = buildChannelConfigSchema(SlackConfigSchema, { uiHints: {
|
|
@@ -30,6 +30,26 @@ const SlackChannelConfigSchema = buildChannelConfigSchema(SlackConfigSchema, { u
|
|
|
30
30
|
label: "Slack Allow Bot Messages",
|
|
31
31
|
help: "Allow bot-authored messages to trigger Slack replies (default: false)."
|
|
32
32
|
},
|
|
33
|
+
botLoopProtection: {
|
|
34
|
+
label: "Slack Bot Loop Protection",
|
|
35
|
+
help: "Sliding-window guard for Slack bot-to-bot loops. Default is enabled whenever allowBots lets bot-authored messages reach dispatch."
|
|
36
|
+
},
|
|
37
|
+
"botLoopProtection.enabled": {
|
|
38
|
+
label: "Slack Bot Loop Protection Enabled",
|
|
39
|
+
help: "Enable the bot-pair loop guard. Defaults to true when allowBots is true or \"mentions\", and false when bot messages are ignored."
|
|
40
|
+
},
|
|
41
|
+
"botLoopProtection.maxEventsPerWindow": {
|
|
42
|
+
label: "Slack Bot Loop Events per Window",
|
|
43
|
+
help: "Maximum accepted bot-pair messages within the sliding window before suppression starts. Default: 20."
|
|
44
|
+
},
|
|
45
|
+
"botLoopProtection.windowSeconds": {
|
|
46
|
+
label: "Slack Bot Loop Window Seconds",
|
|
47
|
+
help: "Sliding window length for counting bot-pair messages. Default: 60."
|
|
48
|
+
},
|
|
49
|
+
"botLoopProtection.cooldownSeconds": {
|
|
50
|
+
label: "Slack Bot Loop Cooldown Seconds",
|
|
51
|
+
help: "How long to suppress the bot pair after it exceeds the budget. Default: 60."
|
|
52
|
+
},
|
|
33
53
|
socketMode: {
|
|
34
54
|
label: "Slack Socket Mode Transport",
|
|
35
55
|
help: "Slack Socket Mode transport tuning passed to the Slack SDK. Use only when investigating ping/pong timeout or stale websocket behavior."
|
package/dist/contract-api.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { n as normalizeCompatibilityConfig, t as legacyConfigRules } from "./doctor-contract-
|
|
2
|
-
import { n as collectRuntimeConfigAssignments, r as secretTargetRegistryEntries } from "./secret-contract-
|
|
3
|
-
import { n as listSlackDirectoryGroupsFromConfig, r as listSlackDirectoryPeersFromConfig } from "./directory-config-
|
|
4
|
-
import { t as collectSlackSecurityAuditFindings } from "./security-audit-
|
|
1
|
+
import { n as normalizeCompatibilityConfig, t as legacyConfigRules } from "./doctor-contract-DCkS8eNN.js";
|
|
2
|
+
import { n as collectRuntimeConfigAssignments, r as secretTargetRegistryEntries } from "./secret-contract-BurGIyhv.js";
|
|
3
|
+
import { n as listSlackDirectoryGroupsFromConfig, r as listSlackDirectoryPeersFromConfig } from "./directory-config-BKKNBkCq.js";
|
|
4
|
+
import { t as collectSlackSecurityAuditFindings } from "./security-audit-DvOpSaZM.js";
|
|
5
5
|
export { collectRuntimeConfigAssignments, collectSlackSecurityAuditFindings, legacyConfigRules, listSlackDirectoryGroupsFromConfig, listSlackDirectoryPeersFromConfig, normalizeCompatibilityConfig, secretTargetRegistryEntries };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { t as __exportAll } from "./rolldown-runtime-CiIaOW0V.js";
|
|
2
|
-
import { i as resolveDefaultSlackAccountId, o as resolveSlackAccountAllowFrom, r as mergeSlackAccountConfig } from "./accounts-
|
|
2
|
+
import { i as resolveDefaultSlackAccountId, o as resolveSlackAccountAllowFrom, r as mergeSlackAccountConfig } from "./accounts-yk5K3wQU.js";
|
|
3
3
|
import { r as parseSlackTarget } from "./target-parsing-CQmv-iSm.js";
|
|
4
4
|
import "./targets-B1tYCAr6.js";
|
|
5
5
|
import { normalizeAccountId } from "openclaw/plugin-sdk/account-resolution";
|
|
@@ -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-BKKNBkCq.js";
|
|
2
2
|
export { listSlackDirectoryGroupsFromConfig, listSlackDirectoryPeersFromConfig };
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { t as __exportAll } from "./rolldown-runtime-CiIaOW0V.js";
|
|
2
|
-
import { a as resolveSlackAccount } from "./accounts-
|
|
3
|
-
import { r as createSlackWebClient } from "./client-
|
|
2
|
+
import { a as resolveSlackAccount } from "./accounts-yk5K3wQU.js";
|
|
3
|
+
import { r as createSlackWebClient } from "./client-8r7r7aZ3.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,4 @@
|
|
|
1
|
-
import { n as resolveSlackNativeStreaming, r as resolveSlackStreamingMode } from "./streaming-compat-
|
|
1
|
+
import { n as resolveSlackNativeStreaming, r as resolveSlackStreamingMode } from "./streaming-compat-C6rySwiD.js";
|
|
2
2
|
import { asObjectRecord, hasLegacyAccountStreamingAliases, hasLegacyStreamingAliases, normalizeLegacyChannelAliases } from "openclaw/plugin-sdk/runtime-doctor";
|
|
3
3
|
//#region extensions/slack/src/doctor-contract.ts
|
|
4
4
|
function hasLegacySlackStreamingAliases(value) {
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { n as normalizeCompatibilityConfig, t as legacyConfigRules } from "./doctor-contract-
|
|
1
|
+
import { n as normalizeCompatibilityConfig, t as legacyConfigRules } from "./doctor-contract-DCkS8eNN.js";
|
|
2
2
|
export { legacyConfigRules, normalizeCompatibilityConfig };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { a as resolveSlackAccount } from "./accounts-
|
|
1
|
+
import { a as resolveSlackAccount } from "./accounts-yk5K3wQU.js";
|
|
2
2
|
import { normalizeStringifiedOptionalString } from "openclaw/plugin-sdk/string-coerce-runtime";
|
|
3
3
|
import { doesApprovalRequestMatchChannelAccount } from "openclaw/plugin-sdk/approval-native-runtime";
|
|
4
4
|
import { resolveApprovalApprovers } from "openclaw/plugin-sdk/approval-auth-runtime";
|
|
@@ -49,10 +49,10 @@ const slackExecApprovalProfile = createChannelExecApprovalProfile({
|
|
|
49
49
|
})
|
|
50
50
|
});
|
|
51
51
|
const isSlackExecApprovalClientEnabled = slackExecApprovalProfile.isClientEnabled;
|
|
52
|
-
|
|
52
|
+
slackExecApprovalProfile.isApprover;
|
|
53
53
|
const isSlackExecApprovalAuthorizedSender = slackExecApprovalProfile.isAuthorizedSender;
|
|
54
54
|
const resolveSlackExecApprovalTarget = slackExecApprovalProfile.resolveTarget;
|
|
55
55
|
const shouldHandleSlackExecApprovalRequest = slackExecApprovalProfile.shouldHandleRequest;
|
|
56
56
|
const shouldSuppressLocalSlackExecApprovalPrompt = slackExecApprovalProfile.shouldSuppressLocalPrompt;
|
|
57
57
|
//#endregion
|
|
58
|
-
export {
|
|
58
|
+
export { resolveSlackExecApprovalTarget as a, normalizeSlackApproverId as i, isSlackExecApprovalAuthorizedSender as n, shouldHandleSlackExecApprovalRequest as o, isSlackExecApprovalClientEnabled as r, shouldSuppressLocalSlackExecApprovalPrompt as s, getSlackExecApprovalApprovers as t };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { i as resolveDefaultSlackAccountId, r as mergeSlackAccountConfig } from "./accounts-
|
|
1
|
+
import { i as resolveDefaultSlackAccountId, r as mergeSlackAccountConfig } from "./accounts-yk5K3wQU.js";
|
|
2
2
|
import { normalizeAccountId } from "openclaw/plugin-sdk/account-resolution";
|
|
3
3
|
import { normalizeHyphenSlug } from "openclaw/plugin-sdk/string-normalization-runtime";
|
|
4
4
|
import { resolveToolsBySender } from "openclaw/plugin-sdk/channel-policy";
|
package/dist/http-routes-api.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { t as registerSlackPluginHttpRoutes } from "./plugin-routes-
|
|
1
|
+
import { t as registerSlackPluginHttpRoutes } from "./plugin-routes-Dt_jh9W8.js";
|
|
2
2
|
export { registerSlackPluginHttpRoutes };
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { t as prepareSlackMessage } from "./prepare-
|
|
2
|
-
import { t as createInboundSlackTestContext } from "./prepare.test-helpers-
|
|
1
|
+
import { t as prepareSlackMessage } from "./prepare-CXI8nHbJ.js";
|
|
2
|
+
import { t as createInboundSlackTestContext } from "./prepare.test-helpers-BhFHtbz3.js";
|
|
3
3
|
export { createInboundSlackTestContext, prepareSlackMessage };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { a as resolveSlackAccount, i as resolveDefaultSlackAccountId } from "./accounts-
|
|
1
|
+
import { a as resolveSlackAccount, i as resolveDefaultSlackAccountId } from "./accounts-yk5K3wQU.js";
|
|
2
2
|
import { normalizeLowercaseStringOrEmpty } from "openclaw/plugin-sdk/string-coerce-runtime";
|
|
3
3
|
//#region extensions/slack/src/interactive-replies.ts
|
|
4
4
|
const SLACK_BUTTON_MAX_ITEMS = 5;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { n as isSlackInteractiveRepliesEnabled, t as compileSlackInteractiveReplies } from "./interactive-replies-
|
|
1
|
+
import { n as isSlackInteractiveRepliesEnabled, t as compileSlackInteractiveReplies } from "./interactive-replies-CawNPL-h.js";
|
|
2
2
|
export { compileSlackInteractiveReplies, isSlackInteractiveRepliesEnabled };
|