@openclaw/slack 2026.6.8 → 2026.6.9-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/{action-runtime-CgrHdqkC.js → action-runtime-E614LMrR.js} +10 -20
- package/dist/action-runtime.runtime-7FY7XZa3.js +2 -0
- package/dist/{actions-YkhEE5f1.js → actions-C2HjraXv.js} +3 -3
- package/dist/{actions.runtime-DyVzqzLc.js → actions.runtime-9HYdoYvN.js} +1 -1
- package/dist/api.js +12 -12
- package/dist/{approval-handler.runtime-KWkR1mEG.js → approval-handler.runtime-BuE470KE.js} +2 -2
- package/dist/{channel-BxD37X5Y.js → channel-DNL5oO9B.js} +35 -30
- package/dist/channel-plugin-api.js +1 -1
- package/dist/{channel.setup-W5YnieWd.js → channel.setup-WLGVcaSf.js} +1 -1
- package/dist/{client-Cn2WwpcA.js → client-DhaHONzg.js} +1 -1
- package/dist/{directory-config-8UPAEyNg.js → directory-config-Dmhi8ECy.js} +2 -2
- package/dist/directory-contract-api.js +1 -1
- package/dist/{directory-live-C1acgXKJ.js → directory-live-D_pIXtL1.js} +1 -1
- package/dist/{message-tool-api-B9M0zzlQ.js → message-tool-api-NLAYFat2.js} +18 -1
- package/dist/message-tool-api.js +1 -1
- package/dist/{monitor-DwDmBYfl.js → monitor-BMC1e8-1.js} +3 -3
- package/dist/{outbound-adapter-DvXnHfDP.js → outbound-adapter-BcTq1zQP.js} +3 -2
- package/dist/{pipeline.runtime-1FYOQOt_.js → pipeline.runtime-ByBVsuvQ.js} +16 -13
- package/dist/{policy-DT3mRh58.js → policy-Dfbxkneh.js} +1 -1
- package/dist/{probe-BTKzLT2u.js → probe-C3PL00Ms.js} +1 -1
- package/dist/{provider-ChhYGpXx.js → provider-CxePoDl1.js} +20 -27
- package/dist/{replies-Bt4nWmSd.js → replies-C_dlJ8Aw.js} +2 -2
- package/dist/{thread-ts-Cffag8e2.js → reply-blocks-DSfujQlj.js} +4 -15
- package/dist/{resolve-channels-DX2GSx9c.js → resolve-channels-DNiE0Z0_.js} +1 -1
- package/dist/{resolve-users-DOULgUwy.js → resolve-users-D_TmaIfG.js} +1 -1
- package/dist/{runtime-api-DudG6lbf.js → runtime-api-DYg05-Op.js} +2 -2
- package/dist/runtime-api.js +10 -10
- package/dist/{scopes-CErQL0td.js → scopes-CR4oXiXN.js} +1 -1
- package/dist/{send-rekB-Xjp.js → send-CTnNcQeb.js} +6 -5
- package/dist/send.runtime-nW-v-Zc0.js +2 -0
- package/dist/setup-plugin-api.js +1 -1
- package/dist/{setup-surface-NNMjGpXc.js → setup-surface-BHsOhTJd.js} +3 -3
- package/dist/{shared-Bkkmro6q.js → shared-BxzdaqOc.js} +1 -1
- package/dist/{slash-dispatch.runtime-Dvvs747S.js → slash-dispatch.runtime-9VbEQ9-6.js} +1 -1
- package/dist/{target-parsing-C7eeWg7M.js → target-parsing-3jYH8LfB.js} +6 -1
- package/dist/targets-Dll4NJgs.js +13 -0
- package/dist/thread-ts-DUGhaYKq.js +13 -0
- package/node_modules/semver/classes/range.js +11 -2
- package/node_modules/semver/package.json +2 -2
- package/npm-shrinkwrap.json +6 -6
- package/package.json +4 -4
- package/dist/action-runtime.runtime-D05xDf1s.js +0 -2
- package/dist/send.runtime-DGyqPLWj.js +0 -2
- package/dist/targets-nUqxHGgg.js +0 -2
|
@@ -1,9 +1,8 @@
|
|
|
1
|
-
import { i as resolveSlackChannelId
|
|
2
|
-
import "./targets-
|
|
3
|
-
import {
|
|
4
|
-
import { a as readPositiveIntegerParam, c as withNormalizedTimestamp, n as imageResultFromFile, o as readReactionParams, r as jsonResult, s as readStringParam, t as createActionGate } from "./runtime-api-
|
|
5
|
-
import { n as resolveSlackChannelConfig, t as isSlackChannelAllowedByPolicy } from "./policy-
|
|
6
|
-
import { normalizeLowercaseStringOrEmpty } from "openclaw/plugin-sdk/string-coerce-runtime";
|
|
1
|
+
import { i as resolveSlackChannelId } from "./target-parsing-3jYH8LfB.js";
|
|
2
|
+
import { t as slackContextTargetsMatch } from "./targets-Dll4NJgs.js";
|
|
3
|
+
import { r as parseSlackBlocksInput } from "./reply-blocks-DSfujQlj.js";
|
|
4
|
+
import { a as readPositiveIntegerParam, c as withNormalizedTimestamp, n as imageResultFromFile, o as readReactionParams, r as jsonResult, s as readStringParam, t as createActionGate } from "./runtime-api-DYg05-Op.js";
|
|
5
|
+
import { n as resolveSlackChannelConfig, t as isSlackChannelAllowedByPolicy } from "./policy-Dfbxkneh.js";
|
|
7
6
|
import { isSingleUseReplyToMode } from "openclaw/plugin-sdk/reply-reference";
|
|
8
7
|
import { readBooleanParam } from "openclaw/plugin-sdk/boolean-param";
|
|
9
8
|
import { resolveOpenProviderRuntimeGroupPolicy } from "openclaw/plugin-sdk/runtime-group-policy";
|
|
@@ -22,15 +21,10 @@ const pinActions = new Set([
|
|
|
22
21
|
"unpinMessage",
|
|
23
22
|
"listPins"
|
|
24
23
|
]);
|
|
25
|
-
function sameSlackChannelTarget(targetChannel, currentChannelId) {
|
|
26
|
-
const parsedTarget = parseSlackTarget(targetChannel, { defaultKind: "channel" });
|
|
27
|
-
if (!parsedTarget || parsedTarget.kind !== "channel") return false;
|
|
28
|
-
return normalizeLowercaseStringOrEmpty(parsedTarget.id) === normalizeLowercaseStringOrEmpty(currentChannelId);
|
|
29
|
-
}
|
|
30
24
|
let slackActionsRuntimePromise;
|
|
31
25
|
let slackAccountsRuntimePromise;
|
|
32
26
|
function loadSlackActionsRuntime() {
|
|
33
|
-
slackActionsRuntimePromise ??= import("./actions.runtime-
|
|
27
|
+
slackActionsRuntimePromise ??= import("./actions.runtime-9HYdoYvN.js");
|
|
34
28
|
return slackActionsRuntimePromise;
|
|
35
29
|
}
|
|
36
30
|
function loadSlackAccountsRuntime() {
|
|
@@ -69,8 +63,8 @@ const slackActionRuntime = {
|
|
|
69
63
|
function resolveThreadTsFromContext(explicitThreadTs, targetChannel, context, opts) {
|
|
70
64
|
if (explicitThreadTs) return explicitThreadTs;
|
|
71
65
|
if (opts?.suppressImplicitThread) return;
|
|
72
|
-
if (!context?.currentChannelId) return;
|
|
73
|
-
if (!
|
|
66
|
+
if (!context?.currentChannelId && !context?.currentMessagingTarget) return;
|
|
67
|
+
if (!slackContextTargetsMatch(targetChannel, context)) return;
|
|
74
68
|
if (!context.currentThreadTs) {
|
|
75
69
|
if (context.sameChannelThreadRequired) throw new Error("Slack thread context is required for same-channel replies from a threaded Slack turn. Set topLevel=true or threadId=null to post at the channel root.");
|
|
76
70
|
return;
|
|
@@ -207,9 +201,7 @@ async function handleSlackAction(params, cfg, context) {
|
|
|
207
201
|
mediaUrl: mediaUrl ?? void 0,
|
|
208
202
|
blocks
|
|
209
203
|
});
|
|
210
|
-
if (context?.hasRepliedRef && context
|
|
211
|
-
if (sameSlackChannelTarget(to, context.currentChannelId)) context.hasRepliedRef.value = true;
|
|
212
|
-
}
|
|
204
|
+
if (context?.hasRepliedRef && slackContextTargetsMatch(to, context)) context.hasRepliedRef.value = true;
|
|
213
205
|
return jsonResult({
|
|
214
206
|
ok: true,
|
|
215
207
|
result
|
|
@@ -235,9 +227,7 @@ async function handleSlackAction(params, cfg, context) {
|
|
|
235
227
|
...filename ? { uploadFileName: filename } : {},
|
|
236
228
|
...title ? { uploadTitle: title } : {}
|
|
237
229
|
});
|
|
238
|
-
if (context?.hasRepliedRef && context
|
|
239
|
-
if (sameSlackChannelTarget(to, context.currentChannelId)) context.hasRepliedRef.value = true;
|
|
240
|
-
}
|
|
230
|
+
if (context?.hasRepliedRef && slackContextTargetsMatch(to, context)) context.hasRepliedRef.value = true;
|
|
241
231
|
return jsonResult({
|
|
242
232
|
ok: true,
|
|
243
233
|
result
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { t as __exportAll } from "./rolldown-runtime-D7D4PA-g.js";
|
|
2
2
|
import { a as resolveSlackAccount, d as resolveSlackBotToken } from "./accounts-f6Xcv9Vi.js";
|
|
3
|
-
import {
|
|
4
|
-
import { a as getSlackWriteClient, r as createSlackWebClient } from "./client-
|
|
5
|
-
import { c as buildSlackBlocksFallbackText, t as sendMessageSlack } from "./send-
|
|
3
|
+
import { a as SLACK_TEXT_LIMIT, i as validateSlackBlocksArray, v as truncateSlackText } from "./reply-blocks-DSfujQlj.js";
|
|
4
|
+
import { a as getSlackWriteClient, r as createSlackWebClient } from "./client-DhaHONzg.js";
|
|
5
|
+
import { c as buildSlackBlocksFallbackText, t as sendMessageSlack } from "./send-CTnNcQeb.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-C2HjraXv.js";
|
|
2
2
|
export { deleteSlackMessage, downloadSlackFile, editSlackMessage, getSlackMemberInfo, listSlackEmojis, listSlackPins, listSlackReactions, pinSlackMessage, reactSlackMessage, readSlackMessages, removeOwnSlackReactions, removeSlackReaction, sendSlackMessage, unpinSlackMessage };
|
package/dist/api.js
CHANGED
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
import { n as registerSlackHttpHandler, r as normalizeSlackWebhookPath, t as handleSlackHttpRequest } from "./registry-bbjH7IHX.js";
|
|
2
2
|
import { a as resolveSlackAccount, i as resolveDefaultSlackAccountId, l as resolveSlackReplyToMode, n as listSlackAccountIds, r as mergeSlackAccountConfig, t as listEnabledSlackAccounts } from "./accounts-f6Xcv9Vi.js";
|
|
3
3
|
import { t as inspectSlackAccount } from "./account-inspect-CdGk6R7l.js";
|
|
4
|
-
import { i as resolveSlackChannelId, n as normalizeSlackMessagingTarget, r as parseSlackTarget, t as looksLikeSlackTargetId } from "./target-parsing-
|
|
5
|
-
import "./targets-
|
|
6
|
-
import { a as resolveSlackAutoThreadId, i as resolveSlackChannelType, n as buildSlackThreadingToolContext, r as resetSlackChannelTypeCacheForTest, t as slackPlugin } from "./channel-
|
|
7
|
-
import {
|
|
8
|
-
import { a as getSlackWriteClient, c as resolveSlackWebClientOptions, i as createSlackWriteClient, l as resolveSlackWriteClientOptions, n as createSlackTokenCacheKey, o as SLACK_DEFAULT_RETRY_OPTIONS, r as createSlackWebClient, s as SLACK_WRITE_RETRY_OPTIONS, t as clearSlackWriteClientCacheForTest } from "./client-
|
|
9
|
-
import { n as extractSlackToolSend, r as listSlackMessageActions } from "./message-tool-api-
|
|
4
|
+
import { i as resolveSlackChannelId, n as normalizeSlackMessagingTarget, r as parseSlackTarget, t as looksLikeSlackTargetId } from "./target-parsing-3jYH8LfB.js";
|
|
5
|
+
import "./targets-Dll4NJgs.js";
|
|
6
|
+
import { a as resolveSlackAutoThreadId, i as resolveSlackChannelType, n as buildSlackThreadingToolContext, r as resetSlackChannelTypeCacheForTest, t as slackPlugin } from "./channel-DNL5oO9B.js";
|
|
7
|
+
import { c as allowListMatches, d as normalizeSlackAllowOwnerEntry, f as normalizeSlackSlug, g as buildSlackPresentationBlocks, h as buildSlackInteractiveBlocks, i as validateSlackBlocksArray, l as normalizeAllowList, m as resolveSlackUserAllowed, n as SLACK_MAX_BLOCKS, o as resolveSlackGroupRequireMention, p as resolveSlackAllowListMatch, r as parseSlackBlocksInput, s as resolveSlackGroupToolPolicy, u as normalizeAllowListLower } from "./reply-blocks-DSfujQlj.js";
|
|
8
|
+
import { a as getSlackWriteClient, c as resolveSlackWebClientOptions, i as createSlackWriteClient, l as resolveSlackWriteClientOptions, n as createSlackTokenCacheKey, o as SLACK_DEFAULT_RETRY_OPTIONS, r as createSlackWebClient, s as SLACK_WRITE_RETRY_OPTIONS, t as clearSlackWriteClientCacheForTest } from "./client-DhaHONzg.js";
|
|
9
|
+
import { n as extractSlackToolSend, r as listSlackMessageActions } from "./message-tool-api-NLAYFat2.js";
|
|
10
10
|
import { n as isSlackInteractiveRepliesEnabled, r as parseSlackOptionsLine, t as compileSlackInteractiveReplies } from "./interactive-replies-DrBq4Mld.js";
|
|
11
|
-
import { t as slackSetupPlugin } from "./channel.setup-
|
|
12
|
-
import { a as recordSlackThreadParticipation, n as clearSlackThreadParticipationCache, r as hasSlackThreadParticipation } from "./send-
|
|
13
|
-
import { a as listSlackEmojis, c as pinSlackMessage, d as removeOwnSlackReactions, f as removeSlackReaction, i as getSlackMemberInfo, l as reactSlackMessage, m as unpinSlackMessage, n as downloadSlackFile, o as listSlackPins, p as sendSlackMessage, r as editSlackMessage, s as listSlackReactions, t as deleteSlackMessage, u as readSlackMessages } from "./actions-
|
|
14
|
-
import { n as listSlackDirectoryGroupsFromConfig, r as listSlackDirectoryPeersFromConfig } from "./directory-config-
|
|
15
|
-
import { t as probeSlack } from "./probe-
|
|
11
|
+
import { t as slackSetupPlugin } from "./channel.setup-WLGVcaSf.js";
|
|
12
|
+
import { a as recordSlackThreadParticipation, n as clearSlackThreadParticipationCache, r as hasSlackThreadParticipation } from "./send-CTnNcQeb.js";
|
|
13
|
+
import { a as listSlackEmojis, c as pinSlackMessage, d as removeOwnSlackReactions, f as removeSlackReaction, i as getSlackMemberInfo, l as reactSlackMessage, m as unpinSlackMessage, n as downloadSlackFile, o as listSlackPins, p as sendSlackMessage, r as editSlackMessage, s as listSlackReactions, t as deleteSlackMessage, u as readSlackMessages } from "./actions-C2HjraXv.js";
|
|
14
|
+
import { n as listSlackDirectoryGroupsFromConfig, r as listSlackDirectoryPeersFromConfig } from "./directory-config-Dmhi8ECy.js";
|
|
15
|
+
import { t as probeSlack } from "./probe-C3PL00Ms.js";
|
|
16
16
|
import { t as collectSlackSecurityAuditFindings } from "./security-audit-CikQhBUY.js";
|
|
17
|
-
import { n as resolveSlackRuntimeGroupPolicy } from "./provider-
|
|
17
|
+
import { n as resolveSlackRuntimeGroupPolicy } from "./provider-CxePoDl1.js";
|
|
18
18
|
export { SLACK_DEFAULT_RETRY_OPTIONS, SLACK_MAX_BLOCKS, SLACK_WRITE_RETRY_OPTIONS, resetSlackChannelTypeCacheForTest as __resetSlackChannelTypeCacheForTest, resetSlackChannelTypeCacheForTest, allowListMatches, buildSlackInteractiveBlocks, buildSlackPresentationBlocks, buildSlackThreadingToolContext, clearSlackThreadParticipationCache, clearSlackWriteClientCacheForTest, collectSlackSecurityAuditFindings, compileSlackInteractiveReplies, createSlackTokenCacheKey, createSlackWebClient, createSlackWriteClient, deleteSlackMessage, downloadSlackFile, editSlackMessage, extractSlackToolSend, getSlackMemberInfo, getSlackWriteClient, handleSlackHttpRequest, hasSlackThreadParticipation, inspectSlackAccount, isSlackInteractiveRepliesEnabled, listEnabledSlackAccounts, listSlackAccountIds, listSlackDirectoryGroupsFromConfig, listSlackDirectoryPeersFromConfig, listSlackEmojis, listSlackMessageActions, listSlackPins, listSlackReactions, looksLikeSlackTargetId, mergeSlackAccountConfig, normalizeAllowList, normalizeAllowListLower, normalizeSlackAllowOwnerEntry, normalizeSlackMessagingTarget, normalizeSlackSlug, normalizeSlackWebhookPath, parseSlackBlocksInput, parseSlackOptionsLine, parseSlackTarget, pinSlackMessage, probeSlack, reactSlackMessage, readSlackMessages, recordSlackThreadParticipation, registerSlackHttpHandler, removeOwnSlackReactions, removeSlackReaction, resolveDefaultSlackAccountId, resolveSlackAccount, resolveSlackAllowListMatch, resolveSlackAutoThreadId, resolveSlackChannelId, resolveSlackChannelType, resolveSlackGroupRequireMention, resolveSlackGroupToolPolicy, resolveSlackReplyToMode, resolveSlackRuntimeGroupPolicy, resolveSlackUserAllowed, resolveSlackWebClientOptions, resolveSlackWriteClientOptions, sendSlackMessage, slackPlugin, slackSetupPlugin, unpinSlackMessage, validateSlackBlocksArray };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { t as sendMessageSlack } from "./send-
|
|
1
|
+
import { E as resolveSlackApprovalKind, L as normalizeSlackApproverId, S as isSlackAnyNativeApprovalClientEnabled, k as shouldHandleSlackNativeApprovalRequest, t as resolveSlackReplyBlocks, v as truncateSlackText } from "./reply-blocks-DSfujQlj.js";
|
|
2
|
+
import { t as sendMessageSlack } from "./send-CTnNcQeb.js";
|
|
3
3
|
import { normalizeOptionalString } from "openclaw/plugin-sdk/string-coerce-runtime";
|
|
4
4
|
import { buildChannelApprovalNativeTargetKey } from "openclaw/plugin-sdk/approval-native-runtime";
|
|
5
5
|
import { buildApprovalPresentationFromActionDescriptors } from "openclaw/plugin-sdk/approval-reply-runtime";
|
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
import { a as resolveSlackAccount, i as resolveDefaultSlackAccountId, l as resolveSlackReplyToMode, n as listSlackAccountIds, o as resolveSlackAccountAllowFrom } from "./accounts-f6Xcv9Vi.js";
|
|
2
|
-
import { i as resolveSlackChannelId, n as normalizeSlackMessagingTarget, r as parseSlackTarget, t as looksLikeSlackTargetId } from "./target-parsing-
|
|
3
|
-
import "./targets-
|
|
4
|
-
import { A as
|
|
5
|
-
import { d as PAIRING_APPROVED_MESSAGE, h as isSlackPluginAccountConfigured, m as resolveConfiguredFromRequiredCredentialStatuses, p as projectCredentialSnapshotFields, r as createSlackWebClient, u as DEFAULT_ACCOUNT_ID } from "./client-
|
|
6
|
-
import { n as
|
|
2
|
+
import { i as resolveSlackChannelId, n as normalizeSlackMessagingTarget, r as parseSlackTarget, t as looksLikeSlackTargetId } from "./target-parsing-3jYH8LfB.js";
|
|
3
|
+
import { t as slackContextTargetsMatch } from "./targets-Dll4NJgs.js";
|
|
4
|
+
import { A as shouldHandleSlackPluginViaForwardingSession, C as normalizeSlackForwardTarget, D as resolveSlackFallbackOriginTarget, E as resolveSlackApprovalKind, F as isSlackExecApprovalAuthorizedSender, I as isSlackExecApprovalClientEnabled, M as getSlackApprovalApprovers, N as isSlackApprovalAuthorizedSender, O as resolveTurnSourceSlackOriginTarget, P as getSlackExecApprovalApprovers, R as resolveSlackExecApprovalTarget, S as isSlackAnyNativeApprovalClientEnabled, T as resolveSessionSlackOriginTarget, _ as resolveSlackInteractiveBlockOffsets, a as SLACK_TEXT_LIMIT, g as buildSlackPresentationBlocks, h as buildSlackInteractiveBlocks, j as slackTargetsMatch, k as shouldHandleSlackNativeApprovalRequest, o as resolveSlackGroupRequireMention, s as resolveSlackGroupToolPolicy, t as resolveSlackReplyBlocks, u as normalizeAllowListLower, w as normalizeSlackOriginTarget, x as hasSlackPluginApprovers, z as shouldSuppressLocalSlackExecApprovalPrompt } from "./reply-blocks-DSfujQlj.js";
|
|
5
|
+
import { d as PAIRING_APPROVED_MESSAGE, h as isSlackPluginAccountConfigured, m as resolveConfiguredFromRequiredCredentialStatuses, p as projectCredentialSnapshotFields, r as createSlackWebClient, u as DEFAULT_ACCOUNT_ID } from "./client-DhaHONzg.js";
|
|
6
|
+
import { n as resolveSlackThreadTsValue, t as normalizeSlackThreadTsCandidate } from "./thread-ts-DUGhaYKq.js";
|
|
7
|
+
import { n as extractSlackToolSend, t as describeSlackMessageTool } from "./message-tool-api-NLAYFat2.js";
|
|
7
8
|
import { n as isSlackInteractiveRepliesEnabled, t as compileSlackInteractiveReplies } from "./interactive-replies-DrBq4Mld.js";
|
|
8
9
|
import { t as getOptionalSlackRuntime } from "./runtime-BOk7xkOl.js";
|
|
9
|
-
import { n as slackConfigAdapter, r as slackSecurityAdapter, t as createSlackPluginBase } from "./shared-
|
|
10
|
+
import { n as slackConfigAdapter, r as slackSecurityAdapter, t as createSlackPluginBase } from "./shared-BxzdaqOc.js";
|
|
10
11
|
import { i as SLACK_CHANNEL, n as createSlackSetupWizardProxy, r as slackSetupAdapter } from "./setup-core-POfI_bgP.js";
|
|
11
12
|
import { normalizeLowercaseStringOrEmpty, normalizeOptionalString } from "openclaw/plugin-sdk/string-coerce-runtime";
|
|
12
13
|
import { adaptScopedAccountAccessor } from "openclaw/plugin-sdk/channel-config-helpers";
|
|
@@ -29,10 +30,8 @@ import { readPositiveIntegerParam, readStringParam } from "openclaw/plugin-sdk/p
|
|
|
29
30
|
//#region extensions/slack/src/action-threading.ts
|
|
30
31
|
function resolveSlackAutoThreadId(params) {
|
|
31
32
|
const context = params.toolContext;
|
|
32
|
-
if (!context?.currentChannelId) return;
|
|
33
|
-
|
|
34
|
-
if (!parsedTarget || parsedTarget.kind !== "channel") return;
|
|
35
|
-
if (normalizeLowercaseStringOrEmpty(parsedTarget.id) !== normalizeLowercaseStringOrEmpty(context.currentChannelId)) return;
|
|
33
|
+
if (!context?.currentChannelId && !context?.currentMessagingTarget) return;
|
|
34
|
+
if (!slackContextTargetsMatch(params.to, context)) return;
|
|
36
35
|
if (!context.currentThreadTs) {
|
|
37
36
|
if (context.sameChannelThreadRequired) throw new Error("Slack thread context is required for same-channel replies from a threaded Slack turn. Set topLevel=true or threadId=null to post at the channel root.");
|
|
38
37
|
return;
|
|
@@ -133,7 +132,7 @@ const baseSlackApprovalCapability = createApproverRestrictedNativeApprovalCapabi
|
|
|
133
132
|
approvalKind: resolveSlackApprovalKind(request),
|
|
134
133
|
request
|
|
135
134
|
}),
|
|
136
|
-
load: async () => (await import("./approval-handler.runtime-
|
|
135
|
+
load: async () => (await import("./approval-handler.runtime-BuE470KE.js")).slackApprovalNativeRuntime
|
|
137
136
|
})
|
|
138
137
|
});
|
|
139
138
|
const baseSlackNativeAdapter = baseSlackApprovalCapability.native;
|
|
@@ -355,7 +354,7 @@ const SLACK_TOOL_DELIVERY_ACTIONS = new Set([
|
|
|
355
354
|
"uploadFile"
|
|
356
355
|
]);
|
|
357
356
|
async function loadSlackActionRuntime$1() {
|
|
358
|
-
slackActionRuntimePromise$1 ??= import("./action-runtime.runtime-
|
|
357
|
+
slackActionRuntimePromise$1 ??= import("./action-runtime.runtime-7FY7XZa3.js");
|
|
359
358
|
return await slackActionRuntimePromise$1;
|
|
360
359
|
}
|
|
361
360
|
function resolveSlackActionContext(params) {
|
|
@@ -472,8 +471,10 @@ function buildSlackThreadingToolContext(params) {
|
|
|
472
471
|
const currentThreadTs = messageThreadTs ?? transportThreadTs ?? replyToThreadTs;
|
|
473
472
|
const hasExplicitThreadTarget = messageThreadTs != null || transportThreadTs != null || replyToThreadTs != null && currentMessageTs != null && replyToThreadTs !== currentMessageTs;
|
|
474
473
|
const effectiveReplyToMode = hasExplicitThreadTarget ? "all" : configuredReplyToMode;
|
|
474
|
+
const currentMessagingTarget = normalizeOptionalString(params.context.To);
|
|
475
475
|
return {
|
|
476
|
-
currentChannelId:
|
|
476
|
+
currentChannelId: currentMessagingTarget?.startsWith("channel:") ? currentMessagingTarget.slice(8) : normalizeOptionalString(params.context.NativeChannelId) ?? currentMessagingTarget,
|
|
477
|
+
currentMessagingTarget,
|
|
477
478
|
currentThreadTs,
|
|
478
479
|
replyToMode: effectiveReplyToMode,
|
|
479
480
|
hasRepliedRef: params.hasRepliedRef,
|
|
@@ -486,9 +487,9 @@ const EXTENSION_SHARED_MODULE_ID = "openclaw/plugin-sdk/extension-shared";
|
|
|
486
487
|
const TARGET_RESOLVER_RUNTIME_MODULE_ID = "openclaw/plugin-sdk/target-resolver-runtime";
|
|
487
488
|
const loadExtensionSharedSdk = createLazyRuntimeModule(() => import(EXTENSION_SHARED_MODULE_ID));
|
|
488
489
|
const loadTargetResolverRuntimeSdk = createLazyRuntimeModule(() => import(TARGET_RESOLVER_RUNTIME_MODULE_ID));
|
|
489
|
-
const loadSlackSetupSurfaceModule = createLazyRuntimeModule(() => import("./setup-surface-
|
|
490
|
-
const loadSlackScopesModule = createLazyRuntimeModule(() => import("./scopes-
|
|
491
|
-
const loadSlackOutboundAdapterModule = createLazyRuntimeModule(() => import("./outbound-adapter-
|
|
490
|
+
const loadSlackSetupSurfaceModule = createLazyRuntimeModule(() => import("./setup-surface-BHsOhTJd.js"));
|
|
491
|
+
const loadSlackScopesModule = createLazyRuntimeModule(() => import("./scopes-CR4oXiXN.js"));
|
|
492
|
+
const loadSlackOutboundAdapterModule = createLazyRuntimeModule(() => import("./outbound-adapter-BcTq1zQP.js"));
|
|
492
493
|
async function resolveSlackHandleAction() {
|
|
493
494
|
return getOptionalSlackRuntime()?.channel?.slack?.handleSlackAction ?? (await loadSlackActionRuntime()).handleSlackAction;
|
|
494
495
|
}
|
|
@@ -508,27 +509,27 @@ let slackSendRuntimePromise;
|
|
|
508
509
|
let slackProbeModulePromise;
|
|
509
510
|
let slackMonitorModulePromise;
|
|
510
511
|
let slackDirectoryLiveModulePromise;
|
|
511
|
-
const loadSlackDirectoryConfigModule = createLazyRuntimeModule(() => import("./directory-config-
|
|
512
|
-
const loadSlackResolveChannelsModule = createLazyRuntimeModule(() => import("./resolve-channels-
|
|
513
|
-
const loadSlackResolveUsersModule = createLazyRuntimeModule(() => import("./resolve-users-
|
|
512
|
+
const loadSlackDirectoryConfigModule = createLazyRuntimeModule(() => import("./directory-config-Dmhi8ECy.js").then((n) => n.t));
|
|
513
|
+
const loadSlackResolveChannelsModule = createLazyRuntimeModule(() => import("./resolve-channels-DNiE0Z0_.js").then((n) => n.n));
|
|
514
|
+
const loadSlackResolveUsersModule = createLazyRuntimeModule(() => import("./resolve-users-D_TmaIfG.js").then((n) => n.n));
|
|
514
515
|
async function loadSlackActionRuntime() {
|
|
515
|
-
slackActionRuntimePromise ??= import("./action-runtime.runtime-
|
|
516
|
+
slackActionRuntimePromise ??= import("./action-runtime.runtime-7FY7XZa3.js");
|
|
516
517
|
return await slackActionRuntimePromise;
|
|
517
518
|
}
|
|
518
519
|
async function loadSlackSendRuntime() {
|
|
519
|
-
slackSendRuntimePromise ??= import("./send.runtime-
|
|
520
|
+
slackSendRuntimePromise ??= import("./send.runtime-nW-v-Zc0.js");
|
|
520
521
|
return await slackSendRuntimePromise;
|
|
521
522
|
}
|
|
522
523
|
async function loadSlackProbeModule() {
|
|
523
|
-
slackProbeModulePromise ??= import("./probe-
|
|
524
|
+
slackProbeModulePromise ??= import("./probe-C3PL00Ms.js").then((n) => n.n);
|
|
524
525
|
return await slackProbeModulePromise;
|
|
525
526
|
}
|
|
526
527
|
async function loadSlackMonitorModule() {
|
|
527
|
-
slackMonitorModulePromise ??= import("./monitor-
|
|
528
|
+
slackMonitorModulePromise ??= import("./monitor-BMC1e8-1.js").then((n) => n.t);
|
|
528
529
|
return await slackMonitorModulePromise;
|
|
529
530
|
}
|
|
530
531
|
async function loadSlackDirectoryLiveModule() {
|
|
531
|
-
slackDirectoryLiveModulePromise ??= import("./directory-live-
|
|
532
|
+
slackDirectoryLiveModulePromise ??= import("./directory-live-D_pIXtL1.js").then((n) => n.t);
|
|
532
533
|
return await slackDirectoryLiveModulePromise;
|
|
533
534
|
}
|
|
534
535
|
async function resolveSlackSendContext(params) {
|
|
@@ -989,6 +990,7 @@ const slackPlugin = createChatChannelPlugin({
|
|
|
989
990
|
} },
|
|
990
991
|
security: slackSecurityAdapter,
|
|
991
992
|
threading: {
|
|
993
|
+
matchesToolContextTarget: ({ target, toolContext }) => slackContextTargetsMatch(target, toolContext),
|
|
992
994
|
scopedAccountReplyToMode: {
|
|
993
995
|
resolveAccount: adaptScopedAccountAccessor(resolveSlackAccount),
|
|
994
996
|
resolveReplyToMode: (account, chatType) => resolveSlackReplyToMode(account, chatType)
|
|
@@ -999,13 +1001,16 @@ const slackPlugin = createChatChannelPlugin({
|
|
|
999
1001
|
to,
|
|
1000
1002
|
toolContext
|
|
1001
1003
|
})),
|
|
1002
|
-
resolveReplyTransport: ({ threadId, replyToId }) =>
|
|
1003
|
-
|
|
1004
|
-
replyToId,
|
|
1004
|
+
resolveReplyTransport: ({ threadId, replyToId, replyDelivery }) => {
|
|
1005
|
+
const resolvedReplyToId = resolveSlackThreadTsValue({
|
|
1006
|
+
replyToId: replyDelivery?.replyToMode === "off" ? void 0 : replyToId,
|
|
1005
1007
|
threadId
|
|
1006
|
-
})
|
|
1007
|
-
|
|
1008
|
-
|
|
1008
|
+
});
|
|
1009
|
+
return {
|
|
1010
|
+
replyToId: replyDelivery?.replyToMode === "off" && !resolvedReplyToId ? null : resolvedReplyToId,
|
|
1011
|
+
threadId: null
|
|
1012
|
+
};
|
|
1013
|
+
}
|
|
1009
1014
|
},
|
|
1010
1015
|
outbound: slackChannelOutbound
|
|
1011
1016
|
});
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { t as slackPlugin } from "./channel-
|
|
1
|
+
import { t as slackPlugin } from "./channel-DNL5oO9B.js";
|
|
2
2
|
export { slackPlugin };
|
|
@@ -4,7 +4,7 @@ import { t as SlackChannelConfigSchema } from "./config-schema-BjAjs8_6.js";
|
|
|
4
4
|
import { adaptScopedAccountAccessor, createScopedChannelConfigAdapter } from "openclaw/plugin-sdk/channel-config-helpers";
|
|
5
5
|
import { formatAllowFromLowercase } from "openclaw/plugin-sdk/allow-from";
|
|
6
6
|
//#region extensions/slack/src/channel.setup.ts
|
|
7
|
-
const slackSetupWizard = createSlackSetupWizardProxy(async () => ({ slackSetupWizard: (await import("./setup-surface-
|
|
7
|
+
const slackSetupWizard = createSlackSetupWizardProxy(async () => ({ slackSetupWizard: (await import("./setup-surface-BHsOhTJd.js")).slackSetupWizard }));
|
|
8
8
|
const slackSetupConfigAdapter = createScopedChannelConfigAdapter({
|
|
9
9
|
sectionKey: SLACK_CHANNEL,
|
|
10
10
|
listAccountIds: listSlackAccountIds,
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import "./target-parsing-
|
|
1
|
+
import "./target-parsing-3jYH8LfB.js";
|
|
2
2
|
import { DEFAULT_ACCOUNT_ID as DEFAULT_ACCOUNT_ID$2 } from "openclaw/plugin-sdk/account-id";
|
|
3
3
|
import { hasConfiguredAccountValue } from "openclaw/plugin-sdk/account-resolution";
|
|
4
4
|
import { PAIRING_APPROVED_MESSAGE, projectCredentialSnapshotFields, resolveConfiguredFromRequiredCredentialStatuses } from "openclaw/plugin-sdk/channel-status";
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { t as __exportAll } from "./rolldown-runtime-D7D4PA-g.js";
|
|
2
2
|
import { i as resolveDefaultSlackAccountId, o as resolveSlackAccountAllowFrom, r as mergeSlackAccountConfig } from "./accounts-f6Xcv9Vi.js";
|
|
3
|
-
import { r as parseSlackTarget } from "./target-parsing-
|
|
4
|
-
import "./targets-
|
|
3
|
+
import { r as parseSlackTarget } from "./target-parsing-3jYH8LfB.js";
|
|
4
|
+
import "./targets-Dll4NJgs.js";
|
|
5
5
|
import { normalizeAccountId } from "openclaw/plugin-sdk/account-resolution";
|
|
6
6
|
import { normalizeLowercaseStringOrEmpty } from "openclaw/plugin-sdk/string-coerce-runtime";
|
|
7
7
|
import { createResolvedDirectoryEntriesLister } from "openclaw/plugin-sdk/directory-config-runtime";
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { n as listSlackDirectoryGroupsFromConfig, r as listSlackDirectoryPeersFromConfig } from "./directory-config-
|
|
1
|
+
import { n as listSlackDirectoryGroupsFromConfig, r as listSlackDirectoryPeersFromConfig } from "./directory-config-Dmhi8ECy.js";
|
|
2
2
|
export { listSlackDirectoryGroupsFromConfig, listSlackDirectoryPeersFromConfig };
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { t as __exportAll } from "./rolldown-runtime-D7D4PA-g.js";
|
|
2
2
|
import { a as resolveSlackAccount } from "./accounts-f6Xcv9Vi.js";
|
|
3
|
-
import { r as createSlackWebClient } from "./client-
|
|
3
|
+
import { r as createSlackWebClient } from "./client-DhaHONzg.js";
|
|
4
4
|
import { normalizeLowercaseStringOrEmpty, normalizeOptionalLowercaseString, normalizeOptionalString } from "openclaw/plugin-sdk/string-coerce-runtime";
|
|
5
5
|
//#region extensions/slack/src/directory-live.ts
|
|
6
6
|
var directory_live_exports = /* @__PURE__ */ __exportAll({
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { a as resolveSlackAccount, t as listEnabledSlackAccounts } from "./accounts-f6Xcv9Vi.js";
|
|
2
|
+
import { n as resolveSlackThreadTsValue, t as normalizeSlackThreadTsCandidate } from "./thread-ts-DUGhaYKq.js";
|
|
2
3
|
import { n as isSlackInteractiveRepliesEnabled } from "./interactive-replies-DrBq4Mld.js";
|
|
3
4
|
import { createActionGate } from "openclaw/plugin-sdk/channel-actions";
|
|
4
5
|
import { extractToolSend } from "openclaw/plugin-sdk/tool-send";
|
|
@@ -36,7 +37,23 @@ function listSlackMessageActions(cfg, accountId) {
|
|
|
36
37
|
return Array.from(actions);
|
|
37
38
|
}
|
|
38
39
|
function extractSlackToolSend(args) {
|
|
39
|
-
|
|
40
|
+
const action = args.action;
|
|
41
|
+
if (action !== "sendMessage" && action !== "uploadFile" && action !== "send" && action !== "upload-file") return null;
|
|
42
|
+
const extracted = extractToolSend(args, action);
|
|
43
|
+
if (!extracted) return null;
|
|
44
|
+
const nativeThreadTs = typeof args.threadTs === "string" ? normalizeSlackThreadTsCandidate(args.threadTs) : void 0;
|
|
45
|
+
const replyTo = typeof args.replyTo === "string" ? normalizeSlackThreadTsCandidate(args.replyTo) : void 0;
|
|
46
|
+
const threadTs = action === "send" ? resolveSlackThreadTsValue({
|
|
47
|
+
replyToId: replyTo,
|
|
48
|
+
threadId: extracted.threadId
|
|
49
|
+
}) : action === "upload-file" ? normalizeSlackThreadTsCandidate(extracted.threadId) ?? replyTo : nativeThreadTs ?? normalizeSlackThreadTsCandidate(extracted.threadId);
|
|
50
|
+
const threadSuppressed = extracted.threadSuppressed === true || args.topLevel === true || args.threadTs === null;
|
|
51
|
+
return {
|
|
52
|
+
...extracted,
|
|
53
|
+
threadId: threadTs ?? extracted.threadId,
|
|
54
|
+
...!threadTs && !extracted.threadId && !threadSuppressed ? { threadImplicit: true } : {},
|
|
55
|
+
...threadSuppressed ? { threadSuppressed: true } : {}
|
|
56
|
+
};
|
|
40
57
|
}
|
|
41
58
|
//#endregion
|
|
42
59
|
//#region extensions/slack/src/message-tool-api.ts
|
package/dist/message-tool-api.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { t as describeSlackMessageTool } from "./message-tool-api-
|
|
1
|
+
import { t as describeSlackMessageTool } from "./message-tool-api-NLAYFat2.js";
|
|
2
2
|
export { describeSlackMessageTool as describeMessageTool };
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { t as __exportAll } from "./rolldown-runtime-D7D4PA-g.js";
|
|
2
|
-
import { t as monitorSlackProvider, y as buildSlackSlashCommandMatcher } from "./provider-
|
|
3
|
-
import { t as isSlackChannelAllowedByPolicy } from "./policy-
|
|
4
|
-
import { o as resolveSlackThreadTs } from "./replies-
|
|
2
|
+
import { t as monitorSlackProvider, y as buildSlackSlashCommandMatcher } from "./provider-CxePoDl1.js";
|
|
3
|
+
import { t as isSlackChannelAllowedByPolicy } from "./policy-Dfbxkneh.js";
|
|
4
|
+
import { o as resolveSlackThreadTs } from "./replies-C_dlJ8Aw.js";
|
|
5
5
|
//#region extensions/slack/src/monitor.ts
|
|
6
6
|
var monitor_exports = /* @__PURE__ */ __exportAll({
|
|
7
7
|
buildSlackSlashCommandMatcher: () => buildSlackSlashCommandMatcher,
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import { _ as
|
|
1
|
+
import { _ as resolveSlackInteractiveBlockOffsets, a as SLACK_TEXT_LIMIT, g as buildSlackPresentationBlocks, h as buildSlackInteractiveBlocks, r as parseSlackBlocksInput } from "./reply-blocks-DSfujQlj.js";
|
|
2
|
+
import { n as resolveSlackThreadTsValue } from "./thread-ts-DUGhaYKq.js";
|
|
2
3
|
import { t as compileSlackInteractiveReplies } from "./interactive-replies-DrBq4Mld.js";
|
|
3
4
|
import { normalizeOptionalString } from "openclaw/plugin-sdk/string-coerce-runtime";
|
|
4
5
|
import { resolveOutboundSendDep } from "openclaw/plugin-sdk/channel-outbound";
|
|
@@ -9,7 +10,7 @@ import { resolvePayloadMediaUrls, sendPayloadMediaSequenceAndFinalize, sendTextM
|
|
|
9
10
|
const SLACK_MAX_BLOCKS = 50;
|
|
10
11
|
let slackSendRuntimePromise;
|
|
11
12
|
async function loadSlackSendRuntime() {
|
|
12
|
-
slackSendRuntimePromise ??= import("./send.runtime-
|
|
13
|
+
slackSendRuntimePromise ??= import("./send.runtime-nW-v-Zc0.js");
|
|
13
14
|
return await slackSendRuntimePromise;
|
|
14
15
|
}
|
|
15
16
|
function resolveRenderedInteractiveBlocks(interactive, previousBlocks) {
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
import { l as resolveSlackReplyToMode } from "./accounts-f6Xcv9Vi.js";
|
|
2
|
-
import { r as parseSlackTarget } from "./target-parsing-
|
|
3
|
-
import "./targets-
|
|
4
|
-
import {
|
|
2
|
+
import { r as parseSlackTarget } from "./target-parsing-3jYH8LfB.js";
|
|
3
|
+
import "./targets-Dll4NJgs.js";
|
|
4
|
+
import { a as SLACK_TEXT_LIMIT, d as normalizeSlackAllowOwnerEntry, p as resolveSlackAllowListMatch, u as normalizeAllowListLower, v as truncateSlackText } from "./reply-blocks-DSfujQlj.js";
|
|
5
5
|
import { n as isSlackInteractiveRepliesEnabled, t as compileSlackInteractiveReplies } from "./interactive-replies-DrBq4Mld.js";
|
|
6
6
|
import { n as resolveSlackNativeStreaming, r as resolveSlackStreamingMode, t as mapStreamingModeToSlackLegacyDraftStreamMode } from "./streaming-compat-DjlgH-Be.js";
|
|
7
|
-
import { a as recordSlackThreadParticipation, i as hasSlackThreadParticipationWithPersistence, s as normalizeSlackOutboundText, t as sendMessageSlack } from "./send-
|
|
8
|
-
import { _ as resolveSlackThreadStarter, b as buildSlackEditTextPayload, f as removeSlackReaction, g as resolveSlackThreadHistory, l as reactSlackMessage, r as editSlackMessage, t as deleteSlackMessage, y as formatSlackFileReference } from "./actions-
|
|
7
|
+
import { a as recordSlackThreadParticipation, i as hasSlackThreadParticipationWithPersistence, s as normalizeSlackOutboundText, t as sendMessageSlack } from "./send-CTnNcQeb.js";
|
|
8
|
+
import { _ as resolveSlackThreadStarter, b as buildSlackEditTextPayload, f as removeSlackReaction, g as resolveSlackThreadHistory, l as reactSlackMessage, r as editSlackMessage, t as deleteSlackMessage, y as formatSlackFileReference } from "./actions-C2HjraXv.js";
|
|
9
9
|
import { t as formatSlackError } from "./errors-CZtmv-h0.js";
|
|
10
|
-
import { _ as resolveStorePath, a as escapeSlackMrkdwn, b as stripSlackMentionsForCommandDetection, c as authorizeSlackBotRoomMessage, d as buildSlackAssistantThreadMetadata, f as parseSlackAssistantThreadMetadata, g as resolveChannelContextVisibilityMode, h as readSessionUpdatedAt, i as authorizeSlackDirectMessage, l as resolveSlackCommandIngress, m as resolveSlackChatType, o as recordInboundSession, p as normalizeSlackChannelType, r as resolveSlackRoomContextHints, s as resolveConversationLabel$1, u as resolveSlackEffectiveAllowFrom, v as updateLastRoute } from "./provider-
|
|
11
|
-
import { n as resolveSlackChannelConfig } from "./policy-
|
|
12
|
-
import { a as resolveDeliveredSlackReplyThreadTs, i as readSlackReplyBlocks, n as deliverReplies, o as resolveSlackThreadTs, s as emitSlackMessageSentHooks, t as createSlackReplyDeliveryPlan } from "./replies-
|
|
10
|
+
import { _ as resolveStorePath, a as escapeSlackMrkdwn, b as stripSlackMentionsForCommandDetection, c as authorizeSlackBotRoomMessage, d as buildSlackAssistantThreadMetadata, f as parseSlackAssistantThreadMetadata, g as resolveChannelContextVisibilityMode, h as readSessionUpdatedAt, i as authorizeSlackDirectMessage, l as resolveSlackCommandIngress, m as resolveSlackChatType, o as recordInboundSession, p as normalizeSlackChannelType, r as resolveSlackRoomContextHints, s as resolveConversationLabel$1, u as resolveSlackEffectiveAllowFrom, v as updateLastRoute } from "./provider-CxePoDl1.js";
|
|
11
|
+
import { n as resolveSlackChannelConfig } from "./policy-Dfbxkneh.js";
|
|
12
|
+
import { a as resolveDeliveredSlackReplyThreadTs, i as readSlackReplyBlocks, n as deliverReplies, o as resolveSlackThreadTs, s as emitSlackMessageSentHooks, t as createSlackReplyDeliveryPlan } from "./replies-C_dlJ8Aw.js";
|
|
13
13
|
import { asOptionalRecord, normalizeLowercaseStringOrEmpty, normalizeOptionalLowercaseString, normalizeOptionalString, readStringValue } from "openclaw/plugin-sdk/string-coerce-runtime";
|
|
14
14
|
import { resolveAgentRoute, resolveInboundLastRouteSessionKey, resolveThreadSessionKeys } from "openclaw/plugin-sdk/routing";
|
|
15
15
|
import { buildChannelProgressDraftLine, buildChannelProgressDraftLineForEntry, createChannelMessageReplyPipeline, createChannelProgressDraftGate, createDraftStreamLoop, defineFinalizableLivePreviewAdapter, deliverWithFinalizableLivePreviewAdapter, formatChannelProgressDraftText, isChannelProgressDraftWorkToolName, mergeChannelProgressDraftLine, resolveAgentOutboundIdentity, resolveChannelMessageSourceReplyDeliveryMode, resolveChannelProgressDraftConfig, resolveChannelProgressDraftMaxLineChars, resolveChannelProgressDraftMaxLines, resolveChannelProgressDraftRender, resolveChannelStreamingBlockEnabled, resolveChannelStreamingNativeTransport, resolveChannelStreamingPreviewToolProgress, resolveChannelStreamingSuppressDefaultToolProgressMessages } from "openclaw/plugin-sdk/channel-outbound";
|
|
@@ -181,7 +181,7 @@ function compactChunkText(value) {
|
|
|
181
181
|
return truncateSlackText(value.replace(/\s+/g, " ").trim(), SLACK_PROGRESS_CHUNK_TEXT_MAX);
|
|
182
182
|
}
|
|
183
183
|
function lineDetailParts(line) {
|
|
184
|
-
return [line.detail, line.status && !line.detail?.includes(line.status) ? line.status : void 0].map((part) => part?.trim()).filter((part) => Boolean(part));
|
|
184
|
+
return [line.detail, line.status && line.status !== "completed" && !line.detail?.includes(line.status) ? line.status : void 0].map((part) => part?.trim()).filter((part) => Boolean(part));
|
|
185
185
|
}
|
|
186
186
|
function legacyLineTitle(line) {
|
|
187
187
|
return `${line.icon ?? "•"} *${escapeSlackMrkdwn(line.label)}*`;
|
|
@@ -192,7 +192,7 @@ function legacyLineDetail(line, maxChars) {
|
|
|
192
192
|
}
|
|
193
193
|
function lineTaskTitle(line, maxLineChars) {
|
|
194
194
|
const label = line.label.replace(/\s+/g, " ").trim() || line.toolName || line.kind || "Update";
|
|
195
|
-
const detail = lineDetailParts(line).join(" · ");
|
|
195
|
+
const detail = lineDetailParts(line).join(" · ") || line.status?.trim();
|
|
196
196
|
const fallback = line.text.replace(/\s+/g, " ").trim();
|
|
197
197
|
if (detail) return compactTitle(`${label} — ${compactDetail(detail, maxLineChars)}`);
|
|
198
198
|
if (fallback && fallback !== label) return compactTitle(fallback);
|
|
@@ -626,7 +626,7 @@ const UNICODE_TO_SLACK = {
|
|
|
626
626
|
"🛠️": "hammer_and_wrench",
|
|
627
627
|
"💻": "computer"
|
|
628
628
|
};
|
|
629
|
-
const SLACK_REASONING_TAG_RE = /<\s*(\/?)\s*(?:think(?:ing)?|thought|antthinking)\b[^<>]*>/gi;
|
|
629
|
+
const SLACK_REASONING_TAG_RE = /<\s*(\/?)\s*(?:(?:antml:|mm:)?(?:think(?:ing)?|thought)|antthinking)\b[^<>]*>/gi;
|
|
630
630
|
const SLACK_REASONING_LABEL_PREFIX_RE = /^\s*(?:>\s*)?Reasoning:\s*/iu;
|
|
631
631
|
const SLACK_THINKING_LABEL_PREFIX_RE = /^\s*(?:>\s*)?Thinking\.{0,3}(?=\s*(?:\n|_))/iu;
|
|
632
632
|
function resolveSlackMessageTimestampMs(message) {
|
|
@@ -1825,6 +1825,8 @@ async function dispatchPreparedSlackMessage(prepared) {
|
|
|
1825
1825
|
disableBlockStreaming,
|
|
1826
1826
|
onModelSelected,
|
|
1827
1827
|
suppressDefaultToolProgressMessages: suppressDefaultToolProgressMessages ? true : void 0,
|
|
1828
|
+
allowProgressCallbacksWhenSourceDeliverySuppressed: sourceReplyDeliveryMode === "message_tool_only" && statusReactionsEnabled ? true : void 0,
|
|
1829
|
+
allowToolLifecycleWhenProgressHidden: statusReactionsEnabled ? true : void 0,
|
|
1828
1830
|
onPartialReply: useStreaming ? void 0 : !previewStreamingEnabled ? void 0 : async (payload) => {
|
|
1829
1831
|
updateDraftFromPartial(payload.text);
|
|
1830
1832
|
},
|
|
@@ -1850,6 +1852,7 @@ async function dispatchPreparedSlackMessage(prepared) {
|
|
|
1850
1852
|
await pushPreviewToolProgress(buildChannelProgressDraftLineForEntry(account.config, {
|
|
1851
1853
|
event: "item",
|
|
1852
1854
|
itemId: payload.itemId,
|
|
1855
|
+
toolCallId: payload.toolCallId,
|
|
1853
1856
|
itemKind: payload.kind,
|
|
1854
1857
|
title: payload.title,
|
|
1855
1858
|
name: payload.name,
|
|
@@ -2025,7 +2028,7 @@ const SLACK_MENTION_RESOLUTION_MAX_LOOKUPS_PER_MESSAGE = 20;
|
|
|
2025
2028
|
const SLACK_USER_MENTION_RE$1 = /<@([A-Z0-9]+)(?:\|[^>]+)?>/gi;
|
|
2026
2029
|
let slackMediaModulePromise$1;
|
|
2027
2030
|
function loadSlackMediaModule$1() {
|
|
2028
|
-
slackMediaModulePromise$1 ??= import("./actions-
|
|
2031
|
+
slackMediaModulePromise$1 ??= import("./actions-C2HjraXv.js").then((n) => n.h);
|
|
2029
2032
|
return slackMediaModulePromise$1;
|
|
2030
2033
|
}
|
|
2031
2034
|
function collectUniqueSlackMentionIds$1(texts) {
|
|
@@ -2539,7 +2542,7 @@ function formatSlackBotStarterThreadLabel(params) {
|
|
|
2539
2542
|
//#region extensions/slack/src/monitor/message-handler/prepare-thread-context.ts
|
|
2540
2543
|
let slackMediaModulePromise;
|
|
2541
2544
|
function loadSlackMediaModule() {
|
|
2542
|
-
slackMediaModulePromise ??= import("./actions-
|
|
2545
|
+
slackMediaModulePromise ??= import("./actions-C2HjraXv.js").then((n) => n.h);
|
|
2543
2546
|
return slackMediaModulePromise;
|
|
2544
2547
|
}
|
|
2545
2548
|
const SLACK_THREAD_CONTEXT_USER_LOOKUP_CONCURRENCY = 4;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { f as normalizeSlackSlug } from "./reply-blocks-DSfujQlj.js";
|
|
2
2
|
import { normalizeLowercaseStringOrEmpty } from "openclaw/plugin-sdk/string-coerce-runtime";
|
|
3
3
|
import { applyChannelMatchMeta, buildChannelKeyCandidates, resolveChannelEntryMatchWithFallback } from "openclaw/plugin-sdk/channel-targets";
|
|
4
4
|
import { mergePairLoopGuardConfig } from "openclaw/plugin-sdk/pair-loop-guard-runtime";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { t as __exportAll } from "./rolldown-runtime-D7D4PA-g.js";
|
|
2
|
-
import { r as createSlackWebClient } from "./client-
|
|
2
|
+
import { r as createSlackWebClient } from "./client-DhaHONzg.js";
|
|
3
3
|
import { t as formatSlackError } from "./errors-CZtmv-h0.js";
|
|
4
4
|
import { withTimeout } from "openclaw/plugin-sdk/text-utility-runtime";
|
|
5
5
|
//#region extensions/slack/src/probe.ts
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { n as registerSlackHttpHandler, r as normalizeSlackWebhookPath } from "./registry-bbjH7IHX.js";
|
|
2
2
|
import { a as resolveSlackAccount, d as resolveSlackBotToken, o as resolveSlackAccountAllowFrom, s as resolveSlackAccountDmPolicy, u as resolveSlackAppToken } from "./accounts-f6Xcv9Vi.js";
|
|
3
|
-
import { F as
|
|
4
|
-
import { c as resolveSlackWebClientOptions } from "./client-
|
|
3
|
+
import { F as isSlackExecApprovalAuthorizedSender, N as isSlackApprovalAuthorizedSender, S as isSlackAnyNativeApprovalClientEnabled, a as SLACK_TEXT_LIMIT, c as allowListMatches, d as normalizeSlackAllowOwnerEntry, f as normalizeSlackSlug, l as normalizeAllowList, p as resolveSlackAllowListMatch, u as normalizeAllowListLower, v as truncateSlackText } from "./reply-blocks-DSfujQlj.js";
|
|
4
|
+
import { c as resolveSlackWebClientOptions } from "./client-DhaHONzg.js";
|
|
5
5
|
import { n as isSlackInteractiveRepliesEnabled, t as compileSlackInteractiveReplies } from "./interactive-replies-DrBq4Mld.js";
|
|
6
6
|
import { t as getOptionalSlackRuntime } from "./runtime-BOk7xkOl.js";
|
|
7
7
|
import { t as formatSlackError } from "./errors-CZtmv-h0.js";
|
|
8
|
-
import { t as resolveSlackChannelAllowlist } from "./resolve-channels-
|
|
9
|
-
import { t as resolveSlackUserAllowlist } from "./resolve-users-
|
|
10
|
-
import { n as resolveSlackChannelConfig, r as resolveSlackChannelLabel, t as isSlackChannelAllowedByPolicy } from "./policy-
|
|
8
|
+
import { t as resolveSlackChannelAllowlist } from "./resolve-channels-DNiE0Z0_.js";
|
|
9
|
+
import { t as resolveSlackUserAllowlist } from "./resolve-users-D_TmaIfG.js";
|
|
10
|
+
import { n as resolveSlackChannelConfig, r as resolveSlackChannelLabel, t as isSlackChannelAllowedByPolicy } from "./policy-Dfbxkneh.js";
|
|
11
11
|
import { normalizeResolvedSecretInputString } from "openclaw/plugin-sdk/secret-input";
|
|
12
12
|
import { asOptionalRecord, normalizeLowercaseStringOrEmpty, normalizeOptionalLowercaseString, normalizeOptionalString, normalizeStringEntries, normalizeStringEntriesLower, normalizeUniqueTrimmedStringList } from "openclaw/plugin-sdk/string-coerce-runtime";
|
|
13
13
|
import { normalizeAccountId, normalizeMainKey, resolveAgentRoute, resolveThreadSessionKeys } from "openclaw/plugin-sdk/routing";
|
|
@@ -28,7 +28,7 @@ import { resolveNativeCommandsEnabled, resolveNativeSkillsEnabled } from "opencl
|
|
|
28
28
|
import { registerChannelRuntimeContext } from "openclaw/plugin-sdk/channel-runtime-context";
|
|
29
29
|
import { DEFAULT_GROUP_HISTORY_LIMIT } from "openclaw/plugin-sdk/reply-history";
|
|
30
30
|
import { installRequestBodyLimitGuard } from "openclaw/plugin-sdk/webhook-request-guards";
|
|
31
|
-
import { getRuntimeConfig, getRuntimeConfig as getRuntimeConfig$1 } from "openclaw/plugin-sdk/runtime-config-snapshot";
|
|
31
|
+
import { getRuntimeConfig, getRuntimeConfig as getRuntimeConfig$1, getRuntimeConfigSnapshot } from "openclaw/plugin-sdk/runtime-config-snapshot";
|
|
32
32
|
import { isDangerousNameMatchingEnabled } from "openclaw/plugin-sdk/dangerous-name-runtime";
|
|
33
33
|
import { loadSessionStore, readSessionUpdatedAt, resolveSessionKey, resolveStorePath, resolveStorePath as resolveStorePath$1, updateLastRoute } from "openclaw/plugin-sdk/session-store-runtime";
|
|
34
34
|
import { resolveChannelContextVisibilityMode } from "openclaw/plugin-sdk/context-visibility-runtime";
|
|
@@ -2699,7 +2699,7 @@ function createSlackThreadTsResolver(params) {
|
|
|
2699
2699
|
//#region extensions/slack/src/monitor/message-handler.ts
|
|
2700
2700
|
let slackMessagePipelinePromise;
|
|
2701
2701
|
function loadSlackMessagePipeline() {
|
|
2702
|
-
slackMessagePipelinePromise ??= import("./pipeline.runtime-
|
|
2702
|
+
slackMessagePipelinePromise ??= import("./pipeline.runtime-ByBVsuvQ.js");
|
|
2703
2703
|
return slackMessagePipelinePromise;
|
|
2704
2704
|
}
|
|
2705
2705
|
const APP_MENTION_RETRY_TTL_MS = 6e4;
|
|
@@ -2873,14 +2873,13 @@ function createSlackMessageHandler(params) {
|
|
|
2873
2873
|
}
|
|
2874
2874
|
//#endregion
|
|
2875
2875
|
//#region extensions/slack/src/monitor/reconnect-policy.ts
|
|
2876
|
-
const SLACK_AUTH_ERROR_RE = /account_inactive|invalid_auth|token_revoked|token_expired|not_authed|org_login_required|team_access_not_granted|missing_scope|cannot_find_service|invalid_token/i;
|
|
2876
|
+
const SLACK_AUTH_ERROR_RE = /account_inactive|invalid_auth|token_revoked|token_expired|not_authed|org_login_required|team_access_not_granted|user_removed_from_team|team_disabled|missing_scope|cannot_find_service|invalid_token/i;
|
|
2877
2877
|
const NO_ERROR_DETAIL = "no error detail";
|
|
2878
2878
|
const SLACK_SOCKET_RECONNECT_POLICY = {
|
|
2879
2879
|
initialMs: 2e3,
|
|
2880
2880
|
maxMs: 3e4,
|
|
2881
2881
|
factor: 1.8,
|
|
2882
|
-
jitter: .25
|
|
2883
|
-
maxAttempts: 12
|
|
2882
|
+
jitter: .25
|
|
2884
2883
|
};
|
|
2885
2884
|
function getSocketEmitter(app) {
|
|
2886
2885
|
const receiver = app.receiver;
|
|
@@ -2928,9 +2927,8 @@ function waitForSlackSocketDisconnect(app, abortSignal) {
|
|
|
2928
2927
|
});
|
|
2929
2928
|
}
|
|
2930
2929
|
/**
|
|
2931
|
-
* Detect
|
|
2932
|
-
*
|
|
2933
|
-
* and retrying will never succeed — continuing to retry blocks the entire gateway.
|
|
2930
|
+
* Detect permanent Slack account and credential failures.
|
|
2931
|
+
* Transient request and HTTP failures stay in OpenClaw's reconnect loop.
|
|
2934
2932
|
*/
|
|
2935
2933
|
function isNonRecoverableSlackAuthError(error) {
|
|
2936
2934
|
return SLACK_AUTH_ERROR_RE.test(formatUnknownError(error, ""));
|
|
@@ -3341,7 +3339,7 @@ function loadSlashCommandsRuntime() {
|
|
|
3341
3339
|
return slashCommandsRuntimePromise;
|
|
3342
3340
|
}
|
|
3343
3341
|
function loadSlashDispatchRuntime() {
|
|
3344
|
-
slashDispatchRuntimePromise ??= import("./slash-dispatch.runtime-
|
|
3342
|
+
slashDispatchRuntimePromise ??= import("./slash-dispatch.runtime-9VbEQ9-6.js");
|
|
3345
3343
|
return slashDispatchRuntimePromise;
|
|
3346
3344
|
}
|
|
3347
3345
|
function loadSlackPluginCommandsRuntime() {
|
|
@@ -3560,13 +3558,14 @@ function buildSlackCommandArgMenuBlocks(params) {
|
|
|
3560
3558
|
}
|
|
3561
3559
|
async function registerSlackMonitorSlashCommands(params) {
|
|
3562
3560
|
const { ctx, account, trackEvent } = params;
|
|
3563
|
-
const
|
|
3561
|
+
const startupCfg = ctx.cfg;
|
|
3564
3562
|
const runtime = ctx.runtime;
|
|
3565
3563
|
const supportsInteractiveArgMenus = typeof ctx.app.action === "function";
|
|
3566
3564
|
let supportsExternalArgMenus = typeof ctx.app.options === "function";
|
|
3567
3565
|
const slashCommand = resolveSlackSlashCommandConfig(ctx.slashCommand ?? account.config.slashCommand);
|
|
3568
3566
|
const handleSlashCommand = async (p) => {
|
|
3569
3567
|
const { command, ack, respond, body, prompt, commandArgs, commandDefinition } = p;
|
|
3568
|
+
const cfg = getRuntimeConfigSnapshot() ?? ctx.cfg;
|
|
3570
3569
|
try {
|
|
3571
3570
|
if (ctx.shouldDropMismatchedSlackEvent?.(body)) {
|
|
3572
3571
|
await ack();
|
|
@@ -3879,19 +3878,19 @@ async function registerSlackMonitorSlashCommands(params) {
|
|
|
3879
3878
|
const nativeEnabled = resolveNativeCommandsEnabled({
|
|
3880
3879
|
providerId: "slack",
|
|
3881
3880
|
providerSetting: account.config.commands?.native,
|
|
3882
|
-
globalSetting:
|
|
3881
|
+
globalSetting: startupCfg.commands?.native
|
|
3883
3882
|
});
|
|
3884
3883
|
const nativeSkillsEnabled = resolveNativeSkillsEnabled({
|
|
3885
3884
|
providerId: "slack",
|
|
3886
3885
|
providerSetting: account.config.commands?.nativeSkills,
|
|
3887
|
-
globalSetting:
|
|
3886
|
+
globalSetting: startupCfg.commands?.nativeSkills
|
|
3888
3887
|
});
|
|
3889
3888
|
let nativeCommands = [];
|
|
3890
3889
|
let slashCommandsRuntime = null;
|
|
3891
3890
|
if (nativeEnabled) {
|
|
3892
3891
|
slashCommandsRuntime = await loadSlashCommandsRuntime();
|
|
3893
|
-
const skillCommands = nativeSkillsEnabled ? (await loadSlashSkillCommandsRuntime()).listSkillCommandsForAgents({ cfg }) : [];
|
|
3894
|
-
nativeCommands = slashCommandsRuntime.listNativeCommandSpecsForConfig(
|
|
3892
|
+
const skillCommands = nativeSkillsEnabled ? (await loadSlashSkillCommandsRuntime()).listSkillCommandsForAgents({ cfg: startupCfg }) : [];
|
|
3893
|
+
nativeCommands = slashCommandsRuntime.listNativeCommandSpecsForConfig(startupCfg, {
|
|
3895
3894
|
skillCommands,
|
|
3896
3895
|
provider: "slack"
|
|
3897
3896
|
});
|
|
@@ -4071,15 +4070,13 @@ function resolveStableSlackUserAllowlistEntries(entries) {
|
|
|
4071
4070
|
return resolved;
|
|
4072
4071
|
}
|
|
4073
4072
|
function formatSlackSocketReconnectMessage(params) {
|
|
4074
|
-
const maxAttempts = params.maxAttempts > 0 ? String(params.maxAttempts) : "∞";
|
|
4075
4073
|
const suffix = params.error ? ` (${formatUnknownError(params.error)})` : "";
|
|
4076
|
-
return `slack socket disconnected (${params.event}); reconnecting in ${Math.round(params.delayMs / 1e3)}s (attempt ${params.attempt}
|
|
4074
|
+
return `slack socket disconnected (${params.event}); reconnecting in ${Math.round(params.delayMs / 1e3)}s (attempt ${params.attempt}/∞)${suffix}`;
|
|
4077
4075
|
}
|
|
4078
4076
|
function formatSlackSocketStartRetryMessage(params) {
|
|
4079
|
-
const maxAttempts = params.maxAttempts > 0 ? String(params.maxAttempts) : "∞";
|
|
4080
4077
|
const reason = formatUnknownError(params.error, "Slack Socket Mode start failed without error detail");
|
|
4081
4078
|
const sdkContext = params.sdkContext?.trim() ? `; last SDK log: ${params.sdkContext.trim()}` : "";
|
|
4082
|
-
return `slack socket mode failed to start; retry ${params.attempt}
|
|
4079
|
+
return `slack socket mode failed to start; retry ${params.attempt}/∞ in ${Math.round(params.delayMs / 1e3)}s reason="${reason}${sdkContext}"`;
|
|
4083
4080
|
}
|
|
4084
4081
|
function parseApiAppIdFromAppToken(raw) {
|
|
4085
4082
|
const token = raw?.trim();
|
|
@@ -4415,12 +4412,10 @@ async function monitorSlackProvider(opts = {}) {
|
|
|
4415
4412
|
throw disconnect.error instanceof Error ? disconnect.error : new Error(formatUnknownError(disconnect.error));
|
|
4416
4413
|
}
|
|
4417
4414
|
reconnectAttempts += 1;
|
|
4418
|
-
if (SLACK_SOCKET_RECONNECT_POLICY.maxAttempts > 0 && reconnectAttempts >= SLACK_SOCKET_RECONNECT_POLICY.maxAttempts) throw new Error(`Slack socket mode reconnect max attempts reached (${reconnectAttempts}/${SLACK_SOCKET_RECONNECT_POLICY.maxAttempts}) after ${disconnect.event}`);
|
|
4419
4415
|
const delayMs = computeBackoff(SLACK_SOCKET_RECONNECT_POLICY, reconnectAttempts);
|
|
4420
4416
|
runtime.log?.(warn(formatSlackSocketReconnectMessage({
|
|
4421
4417
|
event: disconnect.event,
|
|
4422
4418
|
attempt: reconnectAttempts,
|
|
4423
|
-
maxAttempts: SLACK_SOCKET_RECONNECT_POLICY.maxAttempts,
|
|
4424
4419
|
delayMs,
|
|
4425
4420
|
error: disconnect.error
|
|
4426
4421
|
})));
|
|
@@ -4436,11 +4431,9 @@ async function monitorSlackProvider(opts = {}) {
|
|
|
4436
4431
|
throw err;
|
|
4437
4432
|
}
|
|
4438
4433
|
reconnectAttempts += 1;
|
|
4439
|
-
if (SLACK_SOCKET_RECONNECT_POLICY.maxAttempts > 0 && reconnectAttempts >= SLACK_SOCKET_RECONNECT_POLICY.maxAttempts) throw err;
|
|
4440
4434
|
const delayMs = computeBackoff(SLACK_SOCKET_RECONNECT_POLICY, reconnectAttempts);
|
|
4441
4435
|
runtime.error?.(formatSlackSocketStartRetryMessage({
|
|
4442
4436
|
attempt: reconnectAttempts,
|
|
4443
|
-
maxAttempts: SLACK_SOCKET_RECONNECT_POLICY.maxAttempts,
|
|
4444
4437
|
delayMs,
|
|
4445
4438
|
error: err,
|
|
4446
4439
|
sdkContext: socketModeLogger.getLastMessage()
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { o as markdownToSlackMrkdwnChunks, t as sendMessageSlack } from "./send-
|
|
1
|
+
import { a as SLACK_TEXT_LIMIT, t as resolveSlackReplyBlocks } from "./reply-blocks-DSfujQlj.js";
|
|
2
|
+
import { o as markdownToSlackMrkdwnChunks, t as sendMessageSlack } from "./send-CTnNcQeb.js";
|
|
3
3
|
import { createReplyReferencePlanner } from "openclaw/plugin-sdk/reply-reference";
|
|
4
4
|
import { formatErrorMessage } from "openclaw/plugin-sdk/error-runtime";
|
|
5
5
|
import { SILENT_REPLY_TOKEN, chunkMarkdownTextWithMode, isSilentReplyText } from "openclaw/plugin-sdk/reply-chunking";
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { a as resolveSlackAccount, i as resolveDefaultSlackAccountId, n as listSlackAccountIds, o as resolveSlackAccountAllowFrom, r as mergeSlackAccountConfig } from "./accounts-f6Xcv9Vi.js";
|
|
2
|
-
import { r as parseSlackTarget } from "./target-parsing-
|
|
3
|
-
import "./targets-
|
|
4
|
-
import { h as isSlackPluginAccountConfigured } from "./client-
|
|
2
|
+
import { r as parseSlackTarget } from "./target-parsing-3jYH8LfB.js";
|
|
3
|
+
import "./targets-Dll4NJgs.js";
|
|
4
|
+
import { h as isSlackPluginAccountConfigured } from "./client-DhaHONzg.js";
|
|
5
5
|
import { normalizeAccountId } from "openclaw/plugin-sdk/account-resolution";
|
|
6
6
|
import { normalizeLowercaseStringOrEmpty, normalizeOptionalLowercaseString, normalizeOptionalString, normalizeStringifiedOptionalString } from "openclaw/plugin-sdk/string-coerce-runtime";
|
|
7
7
|
import { normalizeMessageChannel } from "openclaw/plugin-sdk/routing";
|
|
@@ -725,15 +725,4 @@ function resolveSlackReplyBlocks(payload) {
|
|
|
725
725
|
return blocks.length > 0 ? blocks : void 0;
|
|
726
726
|
}
|
|
727
727
|
//#endregion
|
|
728
|
-
|
|
729
|
-
const SLACK_THREAD_TS_PATTERN = /^\d+\.\d+$/;
|
|
730
|
-
function normalizeSlackThreadTsCandidate(value) {
|
|
731
|
-
if (typeof value !== "string") return;
|
|
732
|
-
const normalized = normalizeOptionalString(value);
|
|
733
|
-
return normalized && SLACK_THREAD_TS_PATTERN.test(normalized) ? normalized : void 0;
|
|
734
|
-
}
|
|
735
|
-
function resolveSlackThreadTsValue(params) {
|
|
736
|
-
return normalizeSlackThreadTsCandidate(params.replyToId) ?? normalizeSlackThreadTsCandidate(params.threadId);
|
|
737
|
-
}
|
|
738
|
-
//#endregion
|
|
739
|
-
export { resolveTurnSourceSlackOriginTarget as A, resolveSlackExecApprovalTarget as B, hasSlackPluginApprovers as C, resolveSessionSlackOriginTarget as D, normalizeSlackOriginTarget as E, isSlackApprovalAuthorizedSender as F, getSlackExecApprovalApprovers as I, isSlackExecApprovalAuthorizedSender as L, shouldHandleSlackPluginViaForwardingSession as M, slackTargetsMatch as N, resolveSlackApprovalKind as O, getSlackApprovalApprovers as P, isSlackExecApprovalClientEnabled as R, SLACK_REPLY_SELECT_ACTION_ID as S, normalizeSlackForwardTarget as T, shouldSuppressLocalSlackExecApprovalPrompt as V, buildSlackInteractiveBlocks as _, parseSlackBlocksInput as a, truncateSlackText as b, resolveSlackGroupRequireMention as c, normalizeAllowList as d, normalizeAllowListLower as f, resolveSlackUserAllowed as g, resolveSlackAllowListMatch as h, SLACK_MAX_BLOCKS as i, shouldHandleSlackNativeApprovalRequest as j, resolveSlackFallbackOriginTarget as k, resolveSlackGroupToolPolicy as l, normalizeSlackSlug as m, resolveSlackThreadTsValue as n, validateSlackBlocksArray as o, normalizeSlackAllowOwnerEntry as p, resolveSlackReplyBlocks as r, SLACK_TEXT_LIMIT as s, normalizeSlackThreadTsCandidate as t, allowListMatches as u, buildSlackPresentationBlocks as v, isSlackAnyNativeApprovalClientEnabled as w, SLACK_REPLY_BUTTON_ACTION_ID as x, resolveSlackInteractiveBlockOffsets as y, normalizeSlackApproverId as z };
|
|
728
|
+
export { shouldHandleSlackPluginViaForwardingSession as A, normalizeSlackForwardTarget as C, resolveSlackFallbackOriginTarget as D, resolveSlackApprovalKind as E, isSlackExecApprovalAuthorizedSender as F, isSlackExecApprovalClientEnabled as I, normalizeSlackApproverId as L, getSlackApprovalApprovers as M, isSlackApprovalAuthorizedSender as N, resolveTurnSourceSlackOriginTarget as O, getSlackExecApprovalApprovers as P, resolveSlackExecApprovalTarget as R, isSlackAnyNativeApprovalClientEnabled as S, resolveSessionSlackOriginTarget as T, resolveSlackInteractiveBlockOffsets as _, SLACK_TEXT_LIMIT as a, SLACK_REPLY_SELECT_ACTION_ID as b, allowListMatches as c, normalizeSlackAllowOwnerEntry as d, normalizeSlackSlug as f, buildSlackPresentationBlocks as g, buildSlackInteractiveBlocks as h, validateSlackBlocksArray as i, slackTargetsMatch as j, shouldHandleSlackNativeApprovalRequest as k, normalizeAllowList as l, resolveSlackUserAllowed as m, SLACK_MAX_BLOCKS as n, resolveSlackGroupRequireMention as o, resolveSlackAllowListMatch as p, parseSlackBlocksInput as r, resolveSlackGroupToolPolicy as s, resolveSlackReplyBlocks as t, normalizeAllowListLower as u, truncateSlackText as v, normalizeSlackOriginTarget as w, hasSlackPluginApprovers as x, SLACK_REPLY_BUTTON_ACTION_ID as y, shouldSuppressLocalSlackExecApprovalPrompt as z };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { t as __exportAll } from "./rolldown-runtime-D7D4PA-g.js";
|
|
2
|
-
import { r as createSlackWebClient } from "./client-
|
|
2
|
+
import { r as createSlackWebClient } from "./client-DhaHONzg.js";
|
|
3
3
|
import { n as resolveSlackAllowlistEntries, t as collectSlackCursorItems } from "./resolve-allowlist-common-CP8SH0Zf.js";
|
|
4
4
|
import { normalizeLowercaseStringOrEmpty } from "openclaw/plugin-sdk/string-coerce-runtime";
|
|
5
5
|
//#region extensions/slack/src/resolve-channels.ts
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { t as __exportAll } from "./rolldown-runtime-D7D4PA-g.js";
|
|
2
|
-
import { r as createSlackWebClient } from "./client-
|
|
2
|
+
import { r as createSlackWebClient } from "./client-DhaHONzg.js";
|
|
3
3
|
import { n as resolveSlackAllowlistEntries, t as collectSlackCursorItems } from "./resolve-allowlist-common-CP8SH0Zf.js";
|
|
4
4
|
import { normalizeLowercaseStringOrEmpty, normalizeOptionalString } from "openclaw/plugin-sdk/string-coerce-runtime";
|
|
5
5
|
//#region extensions/slack/src/resolve-users.ts
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import "./target-parsing-
|
|
2
|
-
import "./client-
|
|
1
|
+
import "./target-parsing-3jYH8LfB.js";
|
|
2
|
+
import "./client-DhaHONzg.js";
|
|
3
3
|
import "./config-api-DnT9ohtE.js";
|
|
4
4
|
import "openclaw/plugin-sdk/account-id";
|
|
5
5
|
import { createActionGate as createActionGate$1, imageResultFromFile, jsonResult, readPositiveIntegerParam, readReactionParams, readStringParam, withNormalizedTimestamp } from "openclaw/plugin-sdk/channel-actions";
|
package/dist/runtime-api.js
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import { t as registerSlackPluginHttpRoutes } from "./plugin-routes-B9PvcDQJ.js";
|
|
2
2
|
import { a as resolveSlackAccount, d as resolveSlackBotToken, i as resolveDefaultSlackAccountId, n as listSlackAccountIds, t as listEnabledSlackAccounts, u as resolveSlackAppToken } from "./accounts-f6Xcv9Vi.js";
|
|
3
|
-
import {
|
|
3
|
+
import { o as resolveSlackGroupRequireMention, s as resolveSlackGroupToolPolicy } from "./reply-blocks-DSfujQlj.js";
|
|
4
4
|
import { n as setSlackRuntime } from "./runtime-BOk7xkOl.js";
|
|
5
|
-
import { t as sendMessageSlack } from "./send-
|
|
6
|
-
import { a as listSlackEmojis, c as pinSlackMessage, d as removeOwnSlackReactions, f as removeSlackReaction, i as getSlackMemberInfo, l as reactSlackMessage, m as unpinSlackMessage, o as listSlackPins, p as sendSlackMessage, r as editSlackMessage, s as listSlackReactions, t as deleteSlackMessage, u as readSlackMessages } from "./actions-
|
|
7
|
-
import { t as probeSlack } from "./probe-
|
|
8
|
-
import { t as resolveSlackChannelAllowlist } from "./resolve-channels-
|
|
9
|
-
import { t as resolveSlackUserAllowlist } from "./resolve-users-
|
|
10
|
-
import { t as monitorSlackProvider } from "./provider-
|
|
11
|
-
import { n as slackActionRuntime, t as handleSlackAction } from "./action-runtime-
|
|
12
|
-
import { n as listSlackDirectoryGroupsLive, r as listSlackDirectoryPeersLive } from "./directory-live-
|
|
13
|
-
import "./monitor-
|
|
5
|
+
import { t as sendMessageSlack } from "./send-CTnNcQeb.js";
|
|
6
|
+
import { a as listSlackEmojis, c as pinSlackMessage, d as removeOwnSlackReactions, f as removeSlackReaction, i as getSlackMemberInfo, l as reactSlackMessage, m as unpinSlackMessage, o as listSlackPins, p as sendSlackMessage, r as editSlackMessage, s as listSlackReactions, t as deleteSlackMessage, u as readSlackMessages } from "./actions-C2HjraXv.js";
|
|
7
|
+
import { t as probeSlack } from "./probe-C3PL00Ms.js";
|
|
8
|
+
import { t as resolveSlackChannelAllowlist } from "./resolve-channels-DNiE0Z0_.js";
|
|
9
|
+
import { t as resolveSlackUserAllowlist } from "./resolve-users-D_TmaIfG.js";
|
|
10
|
+
import { t as monitorSlackProvider } from "./provider-CxePoDl1.js";
|
|
11
|
+
import { n as slackActionRuntime, t as handleSlackAction } from "./action-runtime-E614LMrR.js";
|
|
12
|
+
import { n as listSlackDirectoryGroupsLive, r as listSlackDirectoryPeersLive } from "./directory-live-D_pIXtL1.js";
|
|
13
|
+
import "./monitor-BMC1e8-1.js";
|
|
14
14
|
export { deleteSlackMessage, editSlackMessage, getSlackMemberInfo, handleSlackAction, listEnabledSlackAccounts, listSlackAccountIds, listSlackDirectoryGroupsLive, listSlackDirectoryPeersLive, listSlackEmojis, listSlackPins, listSlackReactions, monitorSlackProvider, pinSlackMessage, probeSlack, reactSlackMessage, readSlackMessages, registerSlackPluginHttpRoutes, removeOwnSlackReactions, removeSlackReaction, resolveDefaultSlackAccountId, resolveSlackAccount, resolveSlackAppToken, resolveSlackBotToken, resolveSlackChannelAllowlist, resolveSlackGroupRequireMention, resolveSlackGroupToolPolicy, resolveSlackUserAllowlist, sendMessageSlack, sendSlackMessage, setSlackRuntime, slackActionRuntime, unpinSlackMessage };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { r as createSlackWebClient } from "./client-
|
|
1
|
+
import { r as createSlackWebClient } from "./client-DhaHONzg.js";
|
|
2
2
|
import { t as formatSlackError } from "./errors-CZtmv-h0.js";
|
|
3
3
|
import { isRecord, normalizeOptionalString, normalizeStringEntries, sortUniqueStrings } from "openclaw/plugin-sdk/string-coerce-runtime";
|
|
4
4
|
//#region extensions/slack/src/scopes.ts
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import { a as resolveSlackAccount, d as resolveSlackBotToken } from "./accounts-f6Xcv9Vi.js";
|
|
2
|
-
import { r as parseSlackTarget } from "./target-parsing-
|
|
3
|
-
import "./targets-
|
|
4
|
-
import {
|
|
5
|
-
import { a as getSlackWriteClient, n as createSlackTokenCacheKey } from "./client-
|
|
2
|
+
import { r as parseSlackTarget } from "./target-parsing-3jYH8LfB.js";
|
|
3
|
+
import "./targets-Dll4NJgs.js";
|
|
4
|
+
import { a as SLACK_TEXT_LIMIT, i as validateSlackBlocksArray, v as truncateSlackText } from "./reply-blocks-DSfujQlj.js";
|
|
5
|
+
import { a as getSlackWriteClient, n as createSlackTokenCacheKey } from "./client-DhaHONzg.js";
|
|
6
|
+
import { t as normalizeSlackThreadTsCandidate } from "./thread-ts-DUGhaYKq.js";
|
|
6
7
|
import { t as getOptionalSlackRuntime } from "./runtime-BOk7xkOl.js";
|
|
7
|
-
import { i as loadOutboundMediaFromUrl } from "./runtime-api-
|
|
8
|
+
import { i as loadOutboundMediaFromUrl } from "./runtime-api-DYg05-Op.js";
|
|
8
9
|
import { normalizeLowercaseStringOrEmpty, normalizeOptionalString } from "openclaw/plugin-sdk/string-coerce-runtime";
|
|
9
10
|
import { createMessageReceiptFromOutboundResults } from "openclaw/plugin-sdk/channel-outbound";
|
|
10
11
|
import { withTrustedEnvProxyGuardedFetchMode } from "openclaw/plugin-sdk/fetch-runtime";
|
package/dist/setup-plugin-api.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { t as slackSetupPlugin } from "./channel.setup-
|
|
1
|
+
import { t as slackSetupPlugin } from "./channel.setup-WLGVcaSf.js";
|
|
2
2
|
export { slackSetupPlugin };
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { a as resolveSlackAccount, i as resolveDefaultSlackAccountId, o as resolveSlackAccountAllowFrom } from "./accounts-f6Xcv9Vi.js";
|
|
2
|
-
import "./shared-
|
|
2
|
+
import "./shared-BxzdaqOc.js";
|
|
3
3
|
import { i as SLACK_CHANNEL, t as createSlackSetupWizardBase } from "./setup-core-POfI_bgP.js";
|
|
4
|
-
import { t as resolveSlackChannelAllowlist } from "./resolve-channels-
|
|
5
|
-
import { t as resolveSlackUserAllowlist } from "./resolve-users-
|
|
4
|
+
import { t as resolveSlackChannelAllowlist } from "./resolve-channels-DNiE0Z0_.js";
|
|
5
|
+
import { t as resolveSlackUserAllowlist } from "./resolve-users-D_TmaIfG.js";
|
|
6
6
|
import { normalizeStringEntries } from "openclaw/plugin-sdk/string-coerce-runtime";
|
|
7
7
|
import { adaptScopedAccountAccessor } from "openclaw/plugin-sdk/channel-config-helpers";
|
|
8
8
|
import { createSetupTranslator, noteChannelLookupFailure, noteChannelLookupSummary, parseMentionOrPrefixedId, promptLegacyChannelAllowFromForAccount, resolveEntriesWithOptionalToken } from "openclaw/plugin-sdk/setup-runtime";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { a as resolveSlackAccount, c as resolveSlackConfigAccessorAccount, i as resolveDefaultSlackAccountId, n as listSlackAccountIds, o as resolveSlackAccountAllowFrom, r as mergeSlackAccountConfig, s as resolveSlackAccountDmPolicy } from "./accounts-f6Xcv9Vi.js";
|
|
2
2
|
import { t as inspectSlackAccount } from "./account-inspect-CdGk6R7l.js";
|
|
3
|
-
import { f as getChatChannelMeta, h as isSlackPluginAccountConfigured } from "./client-
|
|
3
|
+
import { f as getChatChannelMeta, h as isSlackPluginAccountConfigured } from "./client-DhaHONzg.js";
|
|
4
4
|
import { n as isSlackInteractiveRepliesEnabled } from "./interactive-replies-DrBq4Mld.js";
|
|
5
5
|
import { i as SLACK_CHANNEL } from "./setup-core-POfI_bgP.js";
|
|
6
6
|
import { t as SlackChannelConfigSchema } from "./config-schema-BjAjs8_6.js";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { r as deliverSlackSlashReplies$1 } from "./replies-
|
|
1
|
+
import { r as deliverSlackSlashReplies$1 } from "./replies-C_dlJ8Aw.js";
|
|
2
2
|
import { resolveAgentRoute as resolveAgentRoute$1 } from "openclaw/plugin-sdk/routing";
|
|
3
3
|
import { resolveMarkdownTableMode as resolveMarkdownTableMode$1 } from "openclaw/plugin-sdk/markdown-table-runtime";
|
|
4
4
|
import { recordInboundSessionMetaSafe as recordInboundSessionMetaSafe$1, resolveConversationLabel as resolveConversationLabel$1 } from "openclaw/plugin-sdk/conversation-runtime";
|
|
@@ -42,6 +42,11 @@ function resolveSlackChannelId(raw) {
|
|
|
42
42
|
function normalizeSlackMessagingTarget(raw) {
|
|
43
43
|
return parseSlackTarget(raw, { defaultKind: "channel" })?.normalized;
|
|
44
44
|
}
|
|
45
|
+
function slackTargetsMatch(left, right) {
|
|
46
|
+
const leftTarget = normalizeSlackMessagingTarget(left);
|
|
47
|
+
const rightTarget = normalizeSlackMessagingTarget(right);
|
|
48
|
+
return Boolean(leftTarget && rightTarget && leftTarget === rightTarget);
|
|
49
|
+
}
|
|
45
50
|
function looksLikeSlackTargetId(raw) {
|
|
46
51
|
const trimmed = raw.trim();
|
|
47
52
|
if (!trimmed) return false;
|
|
@@ -52,4 +57,4 @@ function looksLikeSlackTargetId(raw) {
|
|
|
52
57
|
return /^[CUWGD][A-Z0-9]{8,}$/i.test(trimmed);
|
|
53
58
|
}
|
|
54
59
|
//#endregion
|
|
55
|
-
export { resolveSlackChannelId as i, normalizeSlackMessagingTarget as n, parseSlackTarget as r, looksLikeSlackTargetId as t };
|
|
60
|
+
export { slackTargetsMatch as a, resolveSlackChannelId as i, normalizeSlackMessagingTarget as n, parseSlackTarget as r, looksLikeSlackTargetId as t };
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { a as slackTargetsMatch, r as parseSlackTarget } from "./target-parsing-3jYH8LfB.js";
|
|
2
|
+
//#region extensions/slack/src/targets.ts
|
|
3
|
+
function matchesResolvedUserTarget(target, currentMessagingTarget) {
|
|
4
|
+
const resolvedId = target.trim();
|
|
5
|
+
if (!/^[UW][A-Z0-9]+$/i.test(resolvedId)) return false;
|
|
6
|
+
const currentTarget = parseSlackTarget(currentMessagingTarget);
|
|
7
|
+
return currentTarget?.kind === "user" && currentTarget.id.toLowerCase() === resolvedId.toLowerCase();
|
|
8
|
+
}
|
|
9
|
+
function slackContextTargetsMatch(target, context) {
|
|
10
|
+
return Boolean(context.currentMessagingTarget && (slackTargetsMatch(target, context.currentMessagingTarget) || matchesResolvedUserTarget(target, context.currentMessagingTarget)) || context.currentChannelId && slackTargetsMatch(target, context.currentChannelId));
|
|
11
|
+
}
|
|
12
|
+
//#endregion
|
|
13
|
+
export { slackContextTargetsMatch as t };
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { normalizeOptionalString } from "openclaw/plugin-sdk/string-coerce-runtime";
|
|
2
|
+
//#region extensions/slack/src/thread-ts.ts
|
|
3
|
+
const SLACK_THREAD_TS_PATTERN = /^\d+\.\d+$/;
|
|
4
|
+
function normalizeSlackThreadTsCandidate(value) {
|
|
5
|
+
if (typeof value !== "string") return;
|
|
6
|
+
const normalized = normalizeOptionalString(value);
|
|
7
|
+
return normalized && SLACK_THREAD_TS_PATTERN.test(normalized) ? normalized : void 0;
|
|
8
|
+
}
|
|
9
|
+
function resolveSlackThreadTsValue(params) {
|
|
10
|
+
return normalizeSlackThreadTsCandidate(params.replyToId) ?? normalizeSlackThreadTsCandidate(params.threadId);
|
|
11
|
+
}
|
|
12
|
+
//#endregion
|
|
13
|
+
export { resolveSlackThreadTsValue as n, normalizeSlackThreadTsCandidate as t };
|
|
@@ -277,6 +277,11 @@ const parseComparator = (comp, options) => {
|
|
|
277
277
|
|
|
278
278
|
const isX = id => !id || id.toLowerCase() === 'x' || id === '*'
|
|
279
279
|
|
|
280
|
+
const invalidXRangeOrder = (M, m, p) => (
|
|
281
|
+
(isX(M) && !isX(m)) ||
|
|
282
|
+
(isX(m) && p && !isX(p))
|
|
283
|
+
)
|
|
284
|
+
|
|
280
285
|
// ~, ~> --> * (any, kinda silly)
|
|
281
286
|
// ~2, ~2.x, ~2.x.x, ~>2, ~>2.x ~>2.x.x --> >=2.0.0 <3.0.0-0
|
|
282
287
|
// ~2.0, ~2.0.x, ~>2.0, ~>2.0.x --> >=2.0.0 <2.1.0-0
|
|
@@ -373,10 +378,10 @@ const replaceCaret = (comp, options) => {
|
|
|
373
378
|
if (M === '0') {
|
|
374
379
|
if (m === '0') {
|
|
375
380
|
ret = `>=${M}.${m}.${p
|
|
376
|
-
}
|
|
381
|
+
} <${M}.${m}.${+p + 1}-0`
|
|
377
382
|
} else {
|
|
378
383
|
ret = `>=${M}.${m}.${p
|
|
379
|
-
}
|
|
384
|
+
} <${M}.${+m + 1}.0-0`
|
|
380
385
|
}
|
|
381
386
|
} else {
|
|
382
387
|
ret = `>=${M}.${m}.${p
|
|
@@ -402,6 +407,10 @@ const replaceXRange = (comp, options) => {
|
|
|
402
407
|
const r = options.loose ? re[t.XRANGELOOSE] : re[t.XRANGE]
|
|
403
408
|
return comp.replace(r, (ret, gtlt, M, m, p, pr) => {
|
|
404
409
|
debug('xRange', comp, ret, gtlt, M, m, p, pr)
|
|
410
|
+
if (invalidXRangeOrder(M, m, p)) {
|
|
411
|
+
return comp
|
|
412
|
+
}
|
|
413
|
+
|
|
405
414
|
const xM = isX(M)
|
|
406
415
|
const xm = xM || isX(m)
|
|
407
416
|
const xp = xm || isX(p)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "semver",
|
|
3
|
-
"version": "7.8.
|
|
3
|
+
"version": "7.8.4",
|
|
4
4
|
"description": "The semantic version parser used by npm.",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"scripts": {
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
"eslint": "eslint \"**/*.{js,cjs,ts,mjs,jsx,tsx}\""
|
|
15
15
|
},
|
|
16
16
|
"devDependencies": {
|
|
17
|
-
"@npmcli/eslint-config": "^
|
|
17
|
+
"@npmcli/eslint-config": "^7.0.0",
|
|
18
18
|
"@npmcli/template-oss": "5.0.0",
|
|
19
19
|
"benchmark": "^2.1.4",
|
|
20
20
|
"tap": "^16.0.0"
|
package/npm-shrinkwrap.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@openclaw/slack",
|
|
3
|
-
"version": "2026.6.
|
|
3
|
+
"version": "2026.6.9-beta.1",
|
|
4
4
|
"lockfileVersion": 3,
|
|
5
5
|
"requires": true,
|
|
6
6
|
"packages": {
|
|
7
7
|
"": {
|
|
8
8
|
"name": "@openclaw/slack",
|
|
9
|
-
"version": "2026.6.
|
|
9
|
+
"version": "2026.6.9-beta.1",
|
|
10
10
|
"dependencies": {
|
|
11
11
|
"@slack/bolt": "4.7.3",
|
|
12
12
|
"@slack/types": "2.21.1",
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
"zod": "4.4.3"
|
|
16
16
|
},
|
|
17
17
|
"peerDependencies": {
|
|
18
|
-
"openclaw": ">=2026.6.
|
|
18
|
+
"openclaw": ">=2026.6.9-beta.1"
|
|
19
19
|
},
|
|
20
20
|
"peerDependenciesMeta": {
|
|
21
21
|
"openclaw": {
|
|
@@ -1156,9 +1156,9 @@
|
|
|
1156
1156
|
"license": "MIT"
|
|
1157
1157
|
},
|
|
1158
1158
|
"node_modules/semver": {
|
|
1159
|
-
"version": "7.8.
|
|
1160
|
-
"resolved": "https://registry.npmjs.org/semver/-/semver-7.8.
|
|
1161
|
-
"integrity": "sha512-
|
|
1159
|
+
"version": "7.8.4",
|
|
1160
|
+
"resolved": "https://registry.npmjs.org/semver/-/semver-7.8.4.tgz",
|
|
1161
|
+
"integrity": "sha512-rUCObTnP32Q08R2uuIrt7r9PlEonuTmtuXYcW6s5kjdlj3xbnwe+21yXptAUYcMAABLkYYTtnmzb3w3EDZfueA==",
|
|
1162
1162
|
"license": "ISC",
|
|
1163
1163
|
"bin": {
|
|
1164
1164
|
"semver": "bin/semver.js"
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@openclaw/slack",
|
|
3
|
-
"version": "2026.6.
|
|
3
|
+
"version": "2026.6.9-beta.1",
|
|
4
4
|
"description": "OpenClaw Slack channel plugin for channels, DMs, commands, and app events.",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
"zod": "4.4.3"
|
|
16
16
|
},
|
|
17
17
|
"peerDependencies": {
|
|
18
|
-
"openclaw": ">=2026.6.
|
|
18
|
+
"openclaw": ">=2026.6.9-beta.1"
|
|
19
19
|
},
|
|
20
20
|
"peerDependenciesMeta": {
|
|
21
21
|
"openclaw": {
|
|
@@ -60,13 +60,13 @@
|
|
|
60
60
|
"allowInvalidConfigRecovery": true
|
|
61
61
|
},
|
|
62
62
|
"compat": {
|
|
63
|
-
"pluginApi": ">=2026.6.
|
|
63
|
+
"pluginApi": ">=2026.6.9-beta.1"
|
|
64
64
|
},
|
|
65
65
|
"startup": {
|
|
66
66
|
"deferConfiguredChannelFullLoadUntilAfterListen": true
|
|
67
67
|
},
|
|
68
68
|
"build": {
|
|
69
|
-
"openclawVersion": "2026.6.
|
|
69
|
+
"openclawVersion": "2026.6.9-beta.1",
|
|
70
70
|
"bundledDist": false
|
|
71
71
|
},
|
|
72
72
|
"release": {
|
package/dist/targets-nUqxHGgg.js
DELETED