@openclaw/slack 2026.5.16-beta.4 → 2026.5.16-beta.6
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-api.js +1 -1
- package/dist/{account-inspect-BJyQLSkN.js → account-inspect-uMPQ6wIu.js} +1 -1
- package/dist/{accounts-yk5K3wQU.js → accounts-Cbw3i3Sa.js} +7 -2
- package/dist/accounts.runtime-z3fshUeC.js +2 -0
- package/dist/{action-runtime-0RLkDKyA.js → action-runtime-DgzkekLM.js} +3 -3
- package/dist/action-runtime.runtime-CGEyxfMu.js +2 -0
- package/dist/{actions-Chs6DbrP.js → actions-vFq9T_Kd.js} +3 -3
- package/dist/{actions.runtime-BsbIDsmT.js → actions.runtime-3XZA8-ot.js} +1 -1
- package/dist/api.js +14 -14
- package/dist/{approval-handler.runtime-BmCbRrbT.js → approval-handler.runtime-C_hfvcRd.js} +4 -4
- package/dist/{blocks-render-BAVfd6r0.js → blocks-render-ziYgM0qF.js} +74 -3
- package/dist/{channel-DUS8ZO45.js → channel-D9Wzqu3W.js} +21 -21
- package/dist/channel-config-api.js +1 -1
- package/dist/channel-plugin-api.js +1 -1
- package/dist/{channel.setup-qGOC05UK.js → channel.setup-C2_IZ9It.js} +4 -4
- package/dist/{client-C_IaJbi5.js → client-Dr7pteMR.js} +4 -2
- package/dist/{config-schema-CNRousxw.js → config-schema-C8tW0Db0.js} +4 -0
- package/dist/contract-api.js +1 -1
- package/dist/{directory-config-CMvFiswf.js → directory-config-qDXRTCcs.js} +1 -1
- package/dist/directory-contract-api.js +1 -1
- package/dist/{directory-live-CZPzpQZF.js → directory-live-BnN4Zawp.js} +2 -2
- package/dist/http-routes-api.js +1 -1
- package/dist/inbound-contract-test-api.js +1 -1
- package/dist/{interactive-replies-BSg5hXhj.js → interactive-replies-B1wwXeVn.js} +10 -1
- package/dist/interactive-replies-api.js +1 -1
- package/dist/{message-tool-api-C7gc7goF.js → message-tool-api-DRSTJhP8.js} +2 -2
- package/dist/message-tool-api.js +1 -1
- package/dist/{monitor-BhEzWuv0.js → monitor-beou_Rl6.js} +2 -2
- package/dist/{outbound-adapter-BoDXPksS.js → outbound-adapter-Dcy9jZv1.js} +26 -6
- package/dist/outbound-payload-test-api.js +1 -1
- package/dist/{outbound-payload.test-harness-C7Izm95Q.js → outbound-payload.test-harness-B8N8U_AA.js} +1 -1
- package/dist/{pipeline.runtime-Bq754VH8.js → pipeline.runtime-COwSmZG5.js} +96 -26
- package/dist/{plugin-routes-CRnfsTTX.js → plugin-routes-hrKOqBIn.js} +1 -1
- package/dist/{prepare-BcznR9ok.js → prepare-BjlcuiLr.js} +12 -11
- package/dist/{probe-FL4sUJsH.js → probe-DDef8MfR.js} +1 -1
- package/dist/{provider-BFnE2bgI.js → provider-C7uiI7hL.js} +8 -8
- package/dist/{replies-2ve_YcHy.js → replies-ClYRn89v.js} +3 -3
- package/dist/{reply-blocks-BFaJ_ejG.js → reply-blocks-DgUdywKU.js} +9 -4
- package/dist/{resolve-channels-B_eKaOkE.js → resolve-channels-gx65A1PR.js} +1 -1
- package/dist/{resolve-users-BzBAJwvq.js → resolve-users-OknHaiRY.js} +1 -1
- package/dist/{runtime-api-B5HGOzX3.js → runtime-api-D3pvtood.js} +1 -1
- package/dist/runtime-api.js +12 -12
- package/dist/{scopes-Bvg_ZzqZ.js → scopes-vRHcdO0m.js} +1 -1
- package/dist/{send-C5PzphgC.js → send-Br_H5f6H.js} +3 -3
- package/dist/send.runtime-Cj0cqt6C.js +2 -0
- package/dist/send.runtime-CjgsYARn.js +2 -0
- package/dist/{setup-core-az0LCrNr.js → setup-core-BRD65LS_.js} +2 -2
- package/dist/setup-plugin-api.js +1 -1
- package/dist/{setup-surface-Cdq_mfjx.js → setup-surface-DpNyddrJ.js} +5 -5
- package/dist/{shared-BuNoOmas.js → shared-DdgQfBV9.js} +6 -6
- package/dist/{slash-dispatch.runtime-CcbE1HtP.js → slash-dispatch.runtime-DYm6lWN8.js} +1 -1
- package/dist/test-api.js +5 -5
- package/openclaw.plugin.json +14 -0
- package/package.json +4 -4
- package/dist/accounts.runtime-BhbEu1ZK.js +0 -2
- package/dist/action-runtime.runtime-DpzOXqtk.js +0 -2
- package/dist/send.runtime-Bgf0P22e.js +0 -2
- package/dist/send.runtime-DsEXD6MR.js +0 -2
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { t as inspectSlackAccount } from "./account-inspect-
|
|
1
|
+
import { t as inspectSlackAccount } from "./account-inspect-uMPQ6wIu.js";
|
|
2
2
|
//#region extensions/slack/account-inspect-api.ts
|
|
3
3
|
function inspectSlackReadOnlyAccount(cfg, accountId) {
|
|
4
4
|
return inspectSlackAccount({
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { i as resolveDefaultSlackAccountId, r as mergeSlackAccountConfig } from "./accounts-
|
|
1
|
+
import { i as resolveDefaultSlackAccountId, r as mergeSlackAccountConfig } from "./accounts-Cbw3i3Sa.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 { DEFAULT_ACCOUNT_ID, createAccountListHelpers, normalizeAccountId, resolveMergedAccountConfig } from "openclaw/plugin-sdk/account-resolution";
|
|
1
|
+
import { DEFAULT_ACCOUNT_ID, createAccountListHelpers, hasConfiguredAccountValue, normalizeAccountId, resolveMergedAccountConfig } from "openclaw/plugin-sdk/account-resolution";
|
|
2
2
|
import { normalizeResolvedSecretInputString } from "openclaw/plugin-sdk/secret-input";
|
|
3
3
|
import { normalizeOptionalString } from "openclaw/plugin-sdk/string-coerce-runtime";
|
|
4
4
|
import { mapAllowFromEntries, normalizeChannelDmPolicy, resolveChannelDmAllowFrom, resolveChannelDmPolicy } from "openclaw/plugin-sdk/channel-config-helpers";
|
|
@@ -38,7 +38,12 @@ function resolveSlackReplyToMode(account, chatType) {
|
|
|
38
38
|
}
|
|
39
39
|
//#endregion
|
|
40
40
|
//#region extensions/slack/src/accounts.ts
|
|
41
|
-
const { listAccountIds, resolveDefaultAccountId } = createAccountListHelpers("slack")
|
|
41
|
+
const { listAccountIds, resolveDefaultAccountId } = createAccountListHelpers("slack", { hasImplicitDefaultAccount: (cfg) => {
|
|
42
|
+
const slack = cfg.channels?.slack;
|
|
43
|
+
if (!(hasConfiguredAccountValue(slack?.botToken) || hasConfiguredAccountValue(process.env.SLACK_BOT_TOKEN))) return false;
|
|
44
|
+
if (slack?.mode === "http") return hasConfiguredAccountValue(slack.signingSecret);
|
|
45
|
+
return hasConfiguredAccountValue(slack?.appToken) || hasConfiguredAccountValue(process.env.SLACK_APP_TOKEN);
|
|
46
|
+
} });
|
|
42
47
|
const listSlackAccountIds = listAccountIds;
|
|
43
48
|
const resolveDefaultSlackAccountId = resolveDefaultAccountId;
|
|
44
49
|
function resolveSlackAccountConfig(cfg, accountId) {
|
|
@@ -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
3
|
import { i as parseSlackBlocksInput } from "./thread-ts-As_dcNbD.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-
|
|
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-D3pvtood.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-3XZA8-ot.js");
|
|
32
32
|
return slackActionsRuntimePromise;
|
|
33
33
|
}
|
|
34
34
|
function loadSlackAccountsRuntime() {
|
|
35
|
-
slackAccountsRuntimePromise ??= import("./accounts.runtime-
|
|
35
|
+
slackAccountsRuntimePromise ??= import("./accounts.runtime-z3fshUeC.js");
|
|
36
36
|
return slackAccountsRuntimePromise;
|
|
37
37
|
}
|
|
38
38
|
function createLazySlackAction(key) {
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { t as __exportAll } from "./rolldown-runtime-CiIaOW0V.js";
|
|
2
|
-
import { a as resolveSlackAccount, d as resolveSlackBotToken } from "./accounts-
|
|
2
|
+
import { a as resolveSlackAccount, d as resolveSlackBotToken } from "./accounts-Cbw3i3Sa.js";
|
|
3
3
|
import { a as validateSlackBlocksArray, o as SLACK_TEXT_LIMIT, s as truncateSlackText } from "./thread-ts-As_dcNbD.js";
|
|
4
|
-
import { a as getSlackWriteClient, r as createSlackWebClient } from "./client-
|
|
5
|
-
import { c as buildSlackBlocksFallbackText, t as sendMessageSlack } from "./send-
|
|
4
|
+
import { a as getSlackWriteClient, r as createSlackWebClient } from "./client-Dr7pteMR.js";
|
|
5
|
+
import { c as buildSlackBlocksFallbackText, t as sendMessageSlack } from "./send-Br_H5f6H.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";
|
|
@@ -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-vFq9T_Kd.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-Cbw3i3Sa.js";
|
|
2
|
+
import { t as inspectSlackAccount } from "./account-inspect-uMPQ6wIu.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 resolveSlackGroupRequireMention, r as resolveSlackGroupToolPolicy } from "./reply-blocks-
|
|
7
|
-
import { n as buildSlackPresentationBlocks, t as buildSlackInteractiveBlocks } from "./blocks-render-
|
|
5
|
+
import { i as resolveSlackChannelType, n as buildSlackThreadingToolContext, o as resolveSlackAutoThreadId, r as __resetSlackChannelTypeCacheForTest, t as slackPlugin } from "./channel-D9Wzqu3W.js";
|
|
6
|
+
import { n as resolveSlackGroupRequireMention, r as resolveSlackGroupToolPolicy } from "./reply-blocks-DgUdywKU.js";
|
|
7
|
+
import { n as buildSlackPresentationBlocks, t as buildSlackInteractiveBlocks } from "./blocks-render-ziYgM0qF.js";
|
|
8
8
|
import { a as validateSlackBlocksArray, i as parseSlackBlocksInput, r as SLACK_MAX_BLOCKS } from "./thread-ts-As_dcNbD.js";
|
|
9
|
-
import { n as extractSlackToolSend, r as listSlackMessageActions } from "./message-tool-api-
|
|
10
|
-
import { n as isSlackInteractiveRepliesEnabled, r as parseSlackOptionsLine, t as compileSlackInteractiveReplies } from "./interactive-replies-
|
|
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-
|
|
9
|
+
import { n as extractSlackToolSend, r as listSlackMessageActions } from "./message-tool-api-DRSTJhP8.js";
|
|
10
|
+
import { n as isSlackInteractiveRepliesEnabled, r as parseSlackOptionsLine, t as compileSlackInteractiveReplies } from "./interactive-replies-B1wwXeVn.js";
|
|
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-Dr7pteMR.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-
|
|
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-
|
|
13
|
+
import { t as slackSetupPlugin } from "./channel.setup-C2_IZ9It.js";
|
|
14
|
+
import { a as recordSlackThreadParticipation, n as clearSlackThreadParticipationCache, r as hasSlackThreadParticipation } from "./send-Br_H5f6H.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-vFq9T_Kd.js";
|
|
16
|
+
import { n as listSlackDirectoryGroupsFromConfig, r as listSlackDirectoryPeersFromConfig } from "./directory-config-qDXRTCcs.js";
|
|
17
17
|
import { n as registerSlackHttpHandler, r as normalizeSlackWebhookPath, t as handleSlackHttpRequest } from "./registry-D2cWOLZV.js";
|
|
18
|
-
import { t as probeSlack } from "./probe-
|
|
18
|
+
import { t as probeSlack } from "./probe-DDef8MfR.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-C7uiI7hL.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 };
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { c as normalizeSlackApproverId, s as isSlackExecApprovalClientEnabled, t as resolveSlackReplyBlocks, u as shouldHandleSlackExecApprovalRequest } from "./reply-blocks-
|
|
1
|
+
import { c as normalizeSlackApproverId, s as isSlackExecApprovalClientEnabled, t as resolveSlackReplyBlocks, u as shouldHandleSlackExecApprovalRequest } from "./reply-blocks-DgUdywKU.js";
|
|
2
2
|
import { s as truncateSlackText } from "./thread-ts-As_dcNbD.js";
|
|
3
|
-
import { t as sendMessageSlack } from "./send-
|
|
3
|
+
import { t as sendMessageSlack } from "./send-Br_H5f6H.js";
|
|
4
4
|
import { normalizeOptionalString } from "openclaw/plugin-sdk/string-coerce-runtime";
|
|
5
5
|
import { buildChannelApprovalNativeTargetKey } from "openclaw/plugin-sdk/approval-native-runtime";
|
|
6
6
|
import { logError } from "openclaw/plugin-sdk/logging-core";
|
|
7
|
-
import {
|
|
7
|
+
import { buildApprovalPresentationFromActionDescriptors } from "openclaw/plugin-sdk/approval-reply-runtime";
|
|
8
8
|
import { createChannelApprovalNativeRuntimeAdapter } from "openclaw/plugin-sdk/approval-handler-runtime";
|
|
9
9
|
//#region extensions/slack/src/approval-handler.runtime.ts
|
|
10
10
|
const SLACK_CONTEXT_ELEMENTS_MAX = 10;
|
|
@@ -77,7 +77,7 @@ function buildSlackPendingApprovalBlocks(view) {
|
|
|
77
77
|
const metadataElements = buildSlackMetadataContextElements(view.metadata);
|
|
78
78
|
const interactiveBlocks = resolveSlackReplyBlocks({
|
|
79
79
|
text: "",
|
|
80
|
-
|
|
80
|
+
presentation: buildApprovalPresentationFromActionDescriptors(view.actions)
|
|
81
81
|
}) ?? [];
|
|
82
82
|
return [
|
|
83
83
|
{
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { s as truncateSlackText } from "./thread-ts-As_dcNbD.js";
|
|
2
2
|
import { normalizeOptionalString } from "openclaw/plugin-sdk/string-coerce-runtime";
|
|
3
|
-
import {
|
|
3
|
+
import { reduceInteractiveReply } from "openclaw/plugin-sdk/interactive-runtime";
|
|
4
4
|
//#region extensions/slack/src/reply-action-ids.ts
|
|
5
5
|
const SLACK_REPLY_BUTTON_ACTION_ID = "openclaw:reply_button";
|
|
6
6
|
const SLACK_REPLY_SELECT_ACTION_ID = "openclaw:reply_select";
|
|
@@ -35,6 +35,7 @@ function readSlackOpenClawBlockIndex(blockId, prefix) {
|
|
|
35
35
|
const value = Number.parseInt(blockId.slice(prefix.length), 10);
|
|
36
36
|
return Number.isSafeInteger(value) && value > 0 ? value : void 0;
|
|
37
37
|
}
|
|
38
|
+
/** Resolve existing OpenClaw Block Kit indexes so appended controls keep stable unique IDs. */
|
|
38
39
|
function resolveSlackInteractiveBlockOffsets(blocks) {
|
|
39
40
|
let buttonIndexOffset = 0;
|
|
40
41
|
let selectIndexOffset = 0;
|
|
@@ -49,6 +50,9 @@ function resolveSlackInteractiveBlockOffsets(blocks) {
|
|
|
49
50
|
selectIndexOffset
|
|
50
51
|
};
|
|
51
52
|
}
|
|
53
|
+
/**
|
|
54
|
+
* @deprecated Use buildSlackPresentationBlocks with MessagePresentation.
|
|
55
|
+
*/
|
|
52
56
|
function buildSlackInteractiveBlocks(interactive, options = {}) {
|
|
53
57
|
return reduceInteractiveReply(interactive, {
|
|
54
58
|
blocks: [],
|
|
@@ -120,6 +124,7 @@ function buildSlackInteractiveBlocks(interactive, options = {}) {
|
|
|
120
124
|
return state;
|
|
121
125
|
}).blocks;
|
|
122
126
|
}
|
|
127
|
+
/** Render portable presentation blocks as Slack Block Kit blocks. */
|
|
123
128
|
function buildSlackPresentationBlocks(presentation, options = {}) {
|
|
124
129
|
if (!presentation) return [];
|
|
125
130
|
const blocks = [];
|
|
@@ -153,9 +158,75 @@ function buildSlackPresentationBlocks(presentation, options = {}) {
|
|
|
153
158
|
}
|
|
154
159
|
if (block.type === "divider") blocks.push({ type: "divider" });
|
|
155
160
|
}
|
|
156
|
-
|
|
157
|
-
|
|
161
|
+
let buttonIndex = options.buttonIndexOffset ?? 0;
|
|
162
|
+
let selectIndex = options.selectIndexOffset ?? 0;
|
|
163
|
+
for (const block of presentation.blocks) {
|
|
164
|
+
if (block.type === "buttons") {
|
|
165
|
+
const rendered = buildSlackPresentationButtonBlock(block, buttonIndex + 1);
|
|
166
|
+
if (rendered) {
|
|
167
|
+
buttonIndex += 1;
|
|
168
|
+
blocks.push(rendered);
|
|
169
|
+
}
|
|
170
|
+
continue;
|
|
171
|
+
}
|
|
172
|
+
if (block.type === "select") {
|
|
173
|
+
const rendered = buildSlackPresentationSelectBlock(block, selectIndex + 1);
|
|
174
|
+
if (rendered) {
|
|
175
|
+
selectIndex += 1;
|
|
176
|
+
blocks.push(rendered);
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
}
|
|
158
180
|
return blocks;
|
|
159
181
|
}
|
|
182
|
+
function buildSlackPresentationButtonBlock(block, buttonIndex) {
|
|
183
|
+
const elements = block.buttons.flatMap((button, choiceIndex) => {
|
|
184
|
+
const value = button.value && isWithinSlackLimit(button.value, SLACK_BUTTON_VALUE_MAX) ? button.value : void 0;
|
|
185
|
+
const url = button.url && isWithinSlackLimit(button.url, SLACK_BUTTON_URL_MAX) ? button.url : void 0;
|
|
186
|
+
if (!value && !url) return [];
|
|
187
|
+
const style = resolveSlackButtonStyle(button.style);
|
|
188
|
+
return [{
|
|
189
|
+
type: "button",
|
|
190
|
+
action_id: buildSlackReplyButtonActionId(buttonIndex, choiceIndex),
|
|
191
|
+
text: {
|
|
192
|
+
type: "plain_text",
|
|
193
|
+
text: truncateSlackText(button.label, SLACK_PLAIN_TEXT_MAX),
|
|
194
|
+
emoji: true
|
|
195
|
+
},
|
|
196
|
+
...value ? { value } : {},
|
|
197
|
+
...url ? { url } : {},
|
|
198
|
+
...style ? { style } : {}
|
|
199
|
+
}];
|
|
200
|
+
}).slice(0, SLACK_ACTION_BLOCK_ELEMENTS_MAX);
|
|
201
|
+
return elements.length > 0 ? {
|
|
202
|
+
type: "actions",
|
|
203
|
+
block_id: `openclaw_reply_buttons_${buttonIndex}`,
|
|
204
|
+
elements
|
|
205
|
+
} : void 0;
|
|
206
|
+
}
|
|
207
|
+
function buildSlackPresentationSelectBlock(block, selectIndex) {
|
|
208
|
+
const options = block.options.filter((option) => isWithinSlackLimit(option.value, SLACK_OPTION_VALUE_MAX)).slice(0, SLACK_STATIC_SELECT_OPTIONS_MAX);
|
|
209
|
+
return options.length > 0 ? {
|
|
210
|
+
type: "actions",
|
|
211
|
+
block_id: `openclaw_reply_select_${selectIndex}`,
|
|
212
|
+
elements: [{
|
|
213
|
+
type: "static_select",
|
|
214
|
+
action_id: buildSlackReplySelectActionId(selectIndex),
|
|
215
|
+
placeholder: {
|
|
216
|
+
type: "plain_text",
|
|
217
|
+
text: truncateSlackText(normalizeOptionalString(block.placeholder) ?? "Choose an option", SLACK_PLAIN_TEXT_MAX),
|
|
218
|
+
emoji: true
|
|
219
|
+
},
|
|
220
|
+
options: options.map((option) => ({
|
|
221
|
+
text: {
|
|
222
|
+
type: "plain_text",
|
|
223
|
+
text: truncateSlackText(option.label, SLACK_PLAIN_TEXT_MAX),
|
|
224
|
+
emoji: true
|
|
225
|
+
},
|
|
226
|
+
value: option.value
|
|
227
|
+
}))
|
|
228
|
+
}]
|
|
229
|
+
} : void 0;
|
|
230
|
+
}
|
|
160
231
|
//#endregion
|
|
161
232
|
export { SLACK_REPLY_SELECT_ACTION_ID as a, SLACK_REPLY_BUTTON_ACTION_ID as i, buildSlackPresentationBlocks as n, resolveSlackInteractiveBlockOffsets as r, buildSlackInteractiveBlocks as t };
|
|
@@ -1,16 +1,16 @@
|
|
|
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-Cbw3i3Sa.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 getSlackExecApprovalApprovers, d as shouldSuppressLocalSlackExecApprovalPrompt, i as isSlackApprovalAuthorizedSender, l as resolveSlackExecApprovalTarget, n as resolveSlackGroupRequireMention, o as isSlackExecApprovalAuthorizedSender, r as resolveSlackGroupToolPolicy, s as isSlackExecApprovalClientEnabled, t as resolveSlackReplyBlocks, u as shouldHandleSlackExecApprovalRequest } from "./reply-blocks-
|
|
5
|
-
import { n as buildSlackPresentationBlocks, r as resolveSlackInteractiveBlockOffsets, t as buildSlackInteractiveBlocks } from "./blocks-render-
|
|
4
|
+
import { a as getSlackExecApprovalApprovers, d as shouldSuppressLocalSlackExecApprovalPrompt, i as isSlackApprovalAuthorizedSender, l as resolveSlackExecApprovalTarget, n as resolveSlackGroupRequireMention, o as isSlackExecApprovalAuthorizedSender, r as resolveSlackGroupToolPolicy, s as isSlackExecApprovalClientEnabled, t as resolveSlackReplyBlocks, u as shouldHandleSlackExecApprovalRequest } from "./reply-blocks-DgUdywKU.js";
|
|
5
|
+
import { n as buildSlackPresentationBlocks, r as resolveSlackInteractiveBlockOffsets, t as buildSlackInteractiveBlocks } from "./blocks-render-ziYgM0qF.js";
|
|
6
6
|
import { n as resolveSlackThreadTsValue, o as SLACK_TEXT_LIMIT, t as normalizeSlackThreadTsCandidate } from "./thread-ts-As_dcNbD.js";
|
|
7
|
-
import { n as extractSlackToolSend, t as describeSlackMessageTool } from "./message-tool-api-
|
|
8
|
-
import { n as isSlackInteractiveRepliesEnabled, t as compileSlackInteractiveReplies } from "./interactive-replies-
|
|
9
|
-
import { d as PAIRING_APPROVED_MESSAGE, m as resolveConfiguredFromRequiredCredentialStatuses, p as projectCredentialSnapshotFields, r as createSlackWebClient, u as DEFAULT_ACCOUNT_ID } from "./client-
|
|
7
|
+
import { n as extractSlackToolSend, t as describeSlackMessageTool } from "./message-tool-api-DRSTJhP8.js";
|
|
8
|
+
import { n as isSlackInteractiveRepliesEnabled, t as compileSlackInteractiveReplies } from "./interactive-replies-B1wwXeVn.js";
|
|
9
|
+
import { d as PAIRING_APPROVED_MESSAGE, m as resolveConfiguredFromRequiredCredentialStatuses, p as projectCredentialSnapshotFields, r as createSlackWebClient, u as DEFAULT_ACCOUNT_ID } from "./client-Dr7pteMR.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-
|
|
13
|
-
import { i as SLACK_CHANNEL, n as createSlackSetupWizardProxy, r as slackSetupAdapter } from "./setup-core-
|
|
12
|
+
import { i as slackSecurityAdapter, n as isSlackPluginAccountConfigured, r as slackConfigAdapter, t as createSlackPluginBase } from "./shared-DdgQfBV9.js";
|
|
13
|
+
import { i as SLACK_CHANNEL, n as createSlackSetupWizardProxy, r as slackSetupAdapter } from "./setup-core-BRD65LS_.js";
|
|
14
14
|
import { normalizeLowercaseStringOrEmpty, normalizeOptionalString } from "openclaw/plugin-sdk/string-coerce-runtime";
|
|
15
15
|
import { adaptScopedAccountAccessor } from "openclaw/plugin-sdk/channel-config-helpers";
|
|
16
16
|
import { buildOutboundBaseSessionKey } from "openclaw/plugin-sdk/routing";
|
|
@@ -173,7 +173,7 @@ const slackApprovalCapability = createApproverRestrictedNativeApprovalCapability
|
|
|
173
173
|
accountId,
|
|
174
174
|
request
|
|
175
175
|
}),
|
|
176
|
-
load: async () => (await import("./approval-handler.runtime-
|
|
176
|
+
load: async () => (await import("./approval-handler.runtime-C_hfvcRd.js")).slackApprovalNativeRuntime
|
|
177
177
|
})
|
|
178
178
|
});
|
|
179
179
|
splitChannelApprovalCapability(slackApprovalCapability);
|
|
@@ -340,7 +340,7 @@ async function handleSlackMessageAction(params) {
|
|
|
340
340
|
//#region extensions/slack/src/channel-actions.ts
|
|
341
341
|
let slackActionRuntimePromise$1;
|
|
342
342
|
async function loadSlackActionRuntime$1() {
|
|
343
|
-
slackActionRuntimePromise$1 ??= import("./action-runtime.runtime-
|
|
343
|
+
slackActionRuntimePromise$1 ??= import("./action-runtime.runtime-CGEyxfMu.js");
|
|
344
344
|
return await slackActionRuntimePromise$1;
|
|
345
345
|
}
|
|
346
346
|
function resolveSlackActionContext(params) {
|
|
@@ -468,9 +468,9 @@ const EXTENSION_SHARED_MODULE_ID = "openclaw/plugin-sdk/extension-shared";
|
|
|
468
468
|
const TARGET_RESOLVER_RUNTIME_MODULE_ID = "openclaw/plugin-sdk/target-resolver-runtime";
|
|
469
469
|
const loadExtensionSharedSdk = createLazyRuntimeModule(() => import(EXTENSION_SHARED_MODULE_ID));
|
|
470
470
|
const loadTargetResolverRuntimeSdk = createLazyRuntimeModule(() => import(TARGET_RESOLVER_RUNTIME_MODULE_ID));
|
|
471
|
-
const loadSlackSetupSurfaceModule = createLazyRuntimeModule(() => import("./setup-surface-
|
|
472
|
-
const loadSlackScopesModule = createLazyRuntimeModule(() => import("./scopes-
|
|
473
|
-
const loadSlackOutboundAdapterModule = createLazyRuntimeModule(() => import("./outbound-adapter-
|
|
471
|
+
const loadSlackSetupSurfaceModule = createLazyRuntimeModule(() => import("./setup-surface-DpNyddrJ.js"));
|
|
472
|
+
const loadSlackScopesModule = createLazyRuntimeModule(() => import("./scopes-vRHcdO0m.js"));
|
|
473
|
+
const loadSlackOutboundAdapterModule = createLazyRuntimeModule(() => import("./outbound-adapter-Dcy9jZv1.js").then((n) => n.t));
|
|
474
474
|
async function resolveSlackHandleAction() {
|
|
475
475
|
return getOptionalSlackRuntime()?.channel?.slack?.handleSlackAction ?? (await loadSlackActionRuntime()).handleSlackAction;
|
|
476
476
|
}
|
|
@@ -490,27 +490,27 @@ let slackSendRuntimePromise;
|
|
|
490
490
|
let slackProbeModulePromise;
|
|
491
491
|
let slackMonitorModulePromise;
|
|
492
492
|
let slackDirectoryLiveModulePromise;
|
|
493
|
-
const loadSlackDirectoryConfigModule = createLazyRuntimeModule(() => import("./directory-config-
|
|
494
|
-
const loadSlackResolveChannelsModule = createLazyRuntimeModule(() => import("./resolve-channels-
|
|
495
|
-
const loadSlackResolveUsersModule = createLazyRuntimeModule(() => import("./resolve-users-
|
|
493
|
+
const loadSlackDirectoryConfigModule = createLazyRuntimeModule(() => import("./directory-config-qDXRTCcs.js").then((n) => n.t));
|
|
494
|
+
const loadSlackResolveChannelsModule = createLazyRuntimeModule(() => import("./resolve-channels-gx65A1PR.js").then((n) => n.n));
|
|
495
|
+
const loadSlackResolveUsersModule = createLazyRuntimeModule(() => import("./resolve-users-OknHaiRY.js").then((n) => n.n));
|
|
496
496
|
async function loadSlackActionRuntime() {
|
|
497
|
-
slackActionRuntimePromise ??= import("./action-runtime.runtime-
|
|
497
|
+
slackActionRuntimePromise ??= import("./action-runtime.runtime-CGEyxfMu.js");
|
|
498
498
|
return await slackActionRuntimePromise;
|
|
499
499
|
}
|
|
500
500
|
async function loadSlackSendRuntime() {
|
|
501
|
-
slackSendRuntimePromise ??= import("./send.runtime-
|
|
501
|
+
slackSendRuntimePromise ??= import("./send.runtime-Cj0cqt6C.js");
|
|
502
502
|
return await slackSendRuntimePromise;
|
|
503
503
|
}
|
|
504
504
|
async function loadSlackProbeModule() {
|
|
505
|
-
slackProbeModulePromise ??= import("./probe-
|
|
505
|
+
slackProbeModulePromise ??= import("./probe-DDef8MfR.js").then((n) => n.n);
|
|
506
506
|
return await slackProbeModulePromise;
|
|
507
507
|
}
|
|
508
508
|
async function loadSlackMonitorModule() {
|
|
509
|
-
slackMonitorModulePromise ??= import("./monitor-
|
|
509
|
+
slackMonitorModulePromise ??= import("./monitor-beou_Rl6.js").then((n) => n.t);
|
|
510
510
|
return await slackMonitorModulePromise;
|
|
511
511
|
}
|
|
512
512
|
async function loadSlackDirectoryLiveModule() {
|
|
513
|
-
slackDirectoryLiveModulePromise ??= import("./directory-live-
|
|
513
|
+
slackDirectoryLiveModulePromise ??= import("./directory-live-BnN4Zawp.js").then((n) => n.t);
|
|
514
514
|
return await slackDirectoryLiveModulePromise;
|
|
515
515
|
}
|
|
516
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-C8tW0Db0.js";
|
|
2
2
|
export { SlackChannelConfigSchema };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { t as slackPlugin } from "./channel-
|
|
1
|
+
import { t as slackPlugin } from "./channel-D9Wzqu3W.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-Cbw3i3Sa.js";
|
|
2
|
+
import { a as describeSlackSetupAccount, i as SLACK_CHANNEL, n as createSlackSetupWizardProxy, o as isSlackSetupAccountConfigured, r as slackSetupAdapter } from "./setup-core-BRD65LS_.js";
|
|
3
|
+
import { t as SlackChannelConfigSchema } from "./config-schema-C8tW0Db0.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-DpNyddrJ.js")).slackSetupWizard }));
|
|
8
8
|
const slackSetupConfigAdapter = createScopedChannelConfigAdapter({
|
|
9
9
|
sectionKey: SLACK_CHANNEL,
|
|
10
10
|
listAccountIds: listSlackAccountIds,
|
|
@@ -4,7 +4,7 @@ import { PAIRING_APPROVED_MESSAGE, projectCredentialSnapshotFields, resolveConfi
|
|
|
4
4
|
import { createHash } from "node:crypto";
|
|
5
5
|
import { WebClient } from "@slack/web-api";
|
|
6
6
|
import { HttpsProxyAgent } from "https-proxy-agent";
|
|
7
|
-
import { resolveEnvHttpProxyUrl } from "openclaw/plugin-sdk/fetch-runtime";
|
|
7
|
+
import { resolveActiveManagedProxyTlsOptions, resolveEnvHttpProxyUrl } from "openclaw/plugin-sdk/fetch-runtime";
|
|
8
8
|
//#region extensions/slack/src/channel-api.ts
|
|
9
9
|
const SLACK_CHANNEL_META = {
|
|
10
10
|
id: "slack",
|
|
@@ -65,8 +65,10 @@ function resolveSlackProxyAgent() {
|
|
|
65
65
|
const proxyUrl = resolveEnvHttpProxyUrl("https");
|
|
66
66
|
if (!proxyUrl) return;
|
|
67
67
|
if (isHostExcludedByNoProxy("slack.com")) return;
|
|
68
|
+
const proxyTls = resolveActiveManagedProxyTlsOptions({ proxyUrl });
|
|
69
|
+
const proxyAgentOptions = proxyTls?.ca ? { ca: proxyTls.ca } : void 0;
|
|
68
70
|
try {
|
|
69
|
-
return new HttpsProxyAgent(proxyUrl);
|
|
71
|
+
return new HttpsProxyAgent(proxyUrl, proxyAgentOptions);
|
|
70
72
|
} catch {
|
|
71
73
|
return;
|
|
72
74
|
}
|
|
@@ -154,6 +154,10 @@ const SlackChannelConfigSchema = buildChannelConfigSchema(SlackConfigSchema, { u
|
|
|
154
154
|
label: "Slack Progress Max Lines",
|
|
155
155
|
help: "Maximum number of compact progress lines to keep below the draft label (default: 8)."
|
|
156
156
|
},
|
|
157
|
+
"streaming.progress.maxLineChars": {
|
|
158
|
+
label: "Slack Progress Max Line Chars",
|
|
159
|
+
help: "Maximum characters per compact progress line before truncation (default: 120). Prose cuts at word boundaries; commands and paths keep useful suffixes."
|
|
160
|
+
},
|
|
157
161
|
"streaming.progress.render": {
|
|
158
162
|
label: "Slack Progress Renderer",
|
|
159
163
|
help: "Progress draft renderer: \"text\" uses one portable text body; \"rich\" renders structured Slack Block Kit fields with the same text fallback."
|
package/dist/contract-api.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { n as normalizeCompatibilityConfig, t as legacyConfigRules } from "./doctor-contract-B8QIWMs1.js";
|
|
2
2
|
import { n as collectRuntimeConfigAssignments, r as secretTargetRegistryEntries } from "./secret-contract-0TL3L5Kb.js";
|
|
3
|
-
import { n as listSlackDirectoryGroupsFromConfig, r as listSlackDirectoryPeersFromConfig } from "./directory-config-
|
|
3
|
+
import { n as listSlackDirectoryGroupsFromConfig, r as listSlackDirectoryPeersFromConfig } from "./directory-config-qDXRTCcs.js";
|
|
4
4
|
import { t as collectSlackSecurityAuditFindings } from "./security-audit-BJzADAw3.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-Cbw3i3Sa.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-qDXRTCcs.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-Cbw3i3Sa.js";
|
|
3
|
+
import { r as createSlackWebClient } from "./client-Dr7pteMR.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({
|
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-hrKOqBIn.js";
|
|
2
2
|
export { registerSlackPluginHttpRoutes };
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { t as prepareSlackMessage } from "./prepare-
|
|
1
|
+
import { t as prepareSlackMessage } from "./prepare-BjlcuiLr.js";
|
|
2
2
|
import { t as createInboundSlackTestContext } from "./prepare.test-helpers-D807wdul.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-Cbw3i3Sa.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;
|
|
@@ -97,12 +97,18 @@ function resolveInteractiveRepliesFromCapabilities(capabilities) {
|
|
|
97
97
|
if (typeof capabilities === "object") return capabilities.interactiveReplies === true;
|
|
98
98
|
return false;
|
|
99
99
|
}
|
|
100
|
+
/**
|
|
101
|
+
* @deprecated Only needed for legacy Slack reply directives. New producers should emit presentation payloads.
|
|
102
|
+
*/
|
|
100
103
|
function isSlackInteractiveRepliesEnabled(params) {
|
|
101
104
|
return resolveInteractiveRepliesFromCapabilities(resolveSlackAccount({
|
|
102
105
|
cfg: params.cfg,
|
|
103
106
|
accountId: params.accountId ?? resolveDefaultSlackAccountId(params.cfg)
|
|
104
107
|
}).config.capabilities);
|
|
105
108
|
}
|
|
109
|
+
/**
|
|
110
|
+
* @deprecated Slack reply directives are legacy. New producers should emit presentation payloads.
|
|
111
|
+
*/
|
|
106
112
|
function compileSlackInteractiveReplies(payload) {
|
|
107
113
|
const text = payload.text;
|
|
108
114
|
if (!text) return payload;
|
|
@@ -141,6 +147,9 @@ function compileSlackInteractiveReplies(payload) {
|
|
|
141
147
|
interactive: { blocks: [...payload.interactive?.blocks ?? [], ...generatedBlocks] }
|
|
142
148
|
};
|
|
143
149
|
}
|
|
150
|
+
/**
|
|
151
|
+
* @deprecated Legacy Slack directive fallback. New producers should emit presentation payloads.
|
|
152
|
+
*/
|
|
144
153
|
function parseSlackOptionsLine(payload) {
|
|
145
154
|
const text = payload.text;
|
|
146
155
|
if (!text || payload.interactive?.blocks?.length || hasSlackBlocks(payload)) return payload;
|
|
@@ -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-B1wwXeVn.js";
|
|
2
2
|
export { compileSlackInteractiveReplies, isSlackInteractiveRepliesEnabled };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { a as resolveSlackAccount, t as listEnabledSlackAccounts } from "./accounts-
|
|
2
|
-
import { n as isSlackInteractiveRepliesEnabled } from "./interactive-replies-
|
|
1
|
+
import { a as resolveSlackAccount, t as listEnabledSlackAccounts } from "./accounts-Cbw3i3Sa.js";
|
|
2
|
+
import { n as isSlackInteractiveRepliesEnabled } from "./interactive-replies-B1wwXeVn.js";
|
|
3
3
|
import { createActionGate } from "openclaw/plugin-sdk/channel-actions";
|
|
4
4
|
import { extractToolSend } from "openclaw/plugin-sdk/tool-send";
|
|
5
5
|
import { Type } from "typebox";
|
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-DRSTJhP8.js";
|
|
2
2
|
export { describeSlackMessageTool as describeMessageTool };
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { t as __exportAll } from "./rolldown-runtime-CiIaOW0V.js";
|
|
2
2
|
import { h as isSlackChannelAllowedByPolicy, k as buildSlackSlashCommandMatcher } from "./room-context-BI26wVBb.js";
|
|
3
|
-
import { t as monitorSlackProvider } from "./provider-
|
|
4
|
-
import { o as resolveSlackThreadTs } from "./replies-
|
|
3
|
+
import { t as monitorSlackProvider } from "./provider-C7uiI7hL.js";
|
|
4
|
+
import { o as resolveSlackThreadTs } from "./replies-ClYRn89v.js";
|
|
5
5
|
//#region extensions/slack/src/monitor.ts
|
|
6
6
|
var monitor_exports = /* @__PURE__ */ __exportAll({
|
|
7
7
|
buildSlackSlashCommandMatcher: () => buildSlackSlashCommandMatcher,
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { t as __exportAll } from "./rolldown-runtime-CiIaOW0V.js";
|
|
2
|
-
import { n as buildSlackPresentationBlocks, r as resolveSlackInteractiveBlockOffsets, t as buildSlackInteractiveBlocks } from "./blocks-render-
|
|
2
|
+
import { n as buildSlackPresentationBlocks, r as resolveSlackInteractiveBlockOffsets, t as buildSlackInteractiveBlocks } from "./blocks-render-ziYgM0qF.js";
|
|
3
3
|
import { i as parseSlackBlocksInput, n as resolveSlackThreadTsValue, o as SLACK_TEXT_LIMIT } from "./thread-ts-As_dcNbD.js";
|
|
4
|
-
import { t as compileSlackInteractiveReplies } from "./interactive-replies-
|
|
4
|
+
import { t as compileSlackInteractiveReplies } from "./interactive-replies-B1wwXeVn.js";
|
|
5
5
|
import { normalizeOptionalString } from "openclaw/plugin-sdk/string-coerce-runtime";
|
|
6
6
|
import { attachChannelToResult, createAttachedChannelResultAdapter } from "openclaw/plugin-sdk/channel-send-result";
|
|
7
7
|
import { resolveOutboundSendDep } from "openclaw/plugin-sdk/outbound-send-deps";
|
|
@@ -12,7 +12,7 @@ var outbound_adapter_exports = /* @__PURE__ */ __exportAll({ slackOutbound: () =
|
|
|
12
12
|
const SLACK_MAX_BLOCKS = 50;
|
|
13
13
|
let slackSendRuntimePromise;
|
|
14
14
|
async function loadSlackSendRuntime() {
|
|
15
|
-
slackSendRuntimePromise ??= import("./send.runtime-
|
|
15
|
+
slackSendRuntimePromise ??= import("./send.runtime-Cj0cqt6C.js");
|
|
16
16
|
return await slackSendRuntimePromise;
|
|
17
17
|
}
|
|
18
18
|
function resolveRenderedInteractiveBlocks(interactive, previousBlocks) {
|
|
@@ -75,18 +75,38 @@ const slackOutbound = {
|
|
|
75
75
|
buttons: true,
|
|
76
76
|
selects: true,
|
|
77
77
|
context: true,
|
|
78
|
-
divider: true
|
|
78
|
+
divider: true,
|
|
79
|
+
limits: {
|
|
80
|
+
actions: {
|
|
81
|
+
maxActionsPerRow: 25,
|
|
82
|
+
maxLabelLength: 75,
|
|
83
|
+
maxValueBytes: 2e3,
|
|
84
|
+
supportsStyles: true
|
|
85
|
+
},
|
|
86
|
+
selects: {
|
|
87
|
+
maxOptions: 100,
|
|
88
|
+
maxLabelLength: 75,
|
|
89
|
+
maxValueBytes: 150
|
|
90
|
+
},
|
|
91
|
+
text: {
|
|
92
|
+
maxLength: SLACK_TEXT_LIMIT,
|
|
93
|
+
encoding: "characters",
|
|
94
|
+
markdownDialect: "slack-mrkdwn",
|
|
95
|
+
supportsEdit: true
|
|
96
|
+
}
|
|
97
|
+
}
|
|
79
98
|
},
|
|
80
99
|
renderPresentation: ({ payload, presentation }) => {
|
|
81
100
|
const slackData = payload.channelData?.slack;
|
|
82
|
-
const
|
|
101
|
+
const presentationBlocks = buildSlackPresentationBlocks(presentation, resolveSlackInteractiveBlockOffsets(parseSlackBlocksInput(slackData?.blocks)));
|
|
102
|
+
if (presentationBlocks.length === 0) return null;
|
|
83
103
|
return {
|
|
84
104
|
...payload,
|
|
85
105
|
channelData: {
|
|
86
106
|
...payload.channelData,
|
|
87
107
|
slack: {
|
|
88
108
|
...slackData,
|
|
89
|
-
presentationBlocks
|
|
109
|
+
presentationBlocks
|
|
90
110
|
}
|
|
91
111
|
}
|
|
92
112
|
};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { t as createSlackOutboundPayloadHarness } from "./outbound-payload.test-harness-
|
|
1
|
+
import { t as createSlackOutboundPayloadHarness } from "./outbound-payload.test-harness-B8N8U_AA.js";
|
|
2
2
|
export { createSlackOutboundPayloadHarness };
|
package/dist/{outbound-payload.test-harness-C7Izm95Q.js → outbound-payload.test-harness-B8N8U_AA.js}
RENAMED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { n as slackOutbound } from "./outbound-adapter-
|
|
1
|
+
import { n as slackOutbound } from "./outbound-adapter-Dcy9jZv1.js";
|
|
2
2
|
import { primeChannelOutboundSendMock } from "openclaw/plugin-sdk/channel-contract-testing";
|
|
3
3
|
//#region node_modules/tinyrainbow/dist/index.js
|
|
4
4
|
var b = {
|