@openclaw/slack 2026.9.1 → 2026.9.2
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-DND4Pyp2.js → action-runtime-DftQWpI4.js} +4 -4
- package/dist/action-runtime.runtime-rHI3UAh4.js +2 -0
- package/dist/{actions-fh66A6lc.js → actions-CFkvEv1d.js} +3 -3
- package/dist/api.js +9 -9
- package/dist/{approval-handler.runtime-D7d8sKM0.js → approval-handler.runtime-BeILKdw4.js} +31 -15
- package/dist/{channel-4m8IAdMD.js → channel-CmOuxbOD.js} +24 -23
- package/dist/channel-config-api.js +1 -1
- package/dist/channel-plugin-api.js +1 -1
- package/dist/{channel-type-3-SqEMVc.js → channel-type-BWt2CRaI.js} +2 -2
- package/dist/{channel.setup-t_ghLGb_.js → channel.setup-D5z1ReaT.js} +8 -3
- package/dist/{config-schema-bP3eV2ra.js → config-schema-JDx_f9Zb.js} +2 -2
- package/dist/{directory-live-q32AW7N1.js → directory-live-BuBPHmju.js} +1 -1
- package/dist/{monitor-Chwu_SiZ.js → monitor-DI07pfJl.js} +3 -3
- package/dist/{outbound-adapter-BB8wAjm5.js → outbound-adapter-B5QyTRpJ.js} +3 -2
- package/dist/{pipeline.runtime-BklS_NEj.js → pipeline.runtime-BdIwZgm4.js} +567 -733
- package/dist/{policy-D7PKkiet.js → policy-Bh5TOqII.js} +2 -2
- package/dist/{probe-gj5yQgN2.js → probe-Biy--yhL.js} +42 -10
- package/dist/{provider-Do50wMWn.js → provider-DoaUvAM4.js} +5583 -4921
- package/dist/{relay-source-DWuduiJ2.js → relay-source-D4uecp68.js} +1 -1
- package/dist/{replies-Dc6WVh_Q.js → replies-DENuTcPO.js} +4 -3
- package/dist/reply-blocks-PRkhyAN7.js +790 -0
- package/dist/{resolve-channels-CU7Bg5Ka.js → resolve-channels-DQGV2VrE.js} +1 -1
- package/dist/{resolve-users-DrhttvRQ.js → resolve-users-DRGt_Q4I.js} +1 -1
- package/dist/runtime-api.js +10 -10
- package/dist/{scopes-B9HRguDe.js → scopes-CZzeGdWV.js} +1 -1
- package/dist/{send-Djswy6lf.js → send-DElUcgIs.js} +10 -10
- package/dist/{send.runtime-__WVTWLQ.js → send.runtime-C8D6cKGm.js} +1 -1
- package/dist/{group-policy-BKjMqT-8.js → session-status-BynwcZSO.js} +169 -799
- package/dist/setup-plugin-api.js +1 -1
- package/dist/{setup-surface-DO0e-MMS.js → setup-surface-B1_gpGBl.js} +4 -4
- package/dist/{shared-DEQBEKBL.js → shared-CNQsWJT7.js} +2 -2
- package/dist/{slash-dispatch.runtime-C3B4h5ZM.js → slash-dispatch.runtime-DhsXavSY.js} +1 -1
- package/node_modules/typebox/build/format/json_pointer.d.mts +2 -2
- package/node_modules/typebox/build/format/json_pointer.mjs +2 -2
- package/node_modules/typebox/build/format/json_pointer_uri_fragment.d.mts +2 -2
- package/node_modules/typebox/build/format/json_pointer_uri_fragment.mjs +2 -2
- package/node_modules/typebox/build/format/relative_json_pointer.d.mts +2 -2
- package/node_modules/typebox/build/format/relative_json_pointer.mjs +2 -2
- package/node_modules/typebox/build/system/memory/assign.mjs +2 -1
- package/node_modules/typebox/build/system/memory/create.mjs +3 -4
- package/node_modules/typebox/build/system/memory/discard.mjs +2 -2
- package/node_modules/typebox/build/system/memory/freeze.d.mts +4 -0
- package/node_modules/typebox/build/system/memory/freeze.mjs +6 -0
- package/node_modules/typebox/build/system/memory/update.mjs +3 -2
- package/node_modules/typebox/package.json +1 -1
- package/node_modules/undici/lib/dispatcher/balanced-pool.js +4 -2
- package/node_modules/undici/lib/dispatcher/client-h1.js +12 -4
- package/node_modules/undici/lib/dispatcher/client-h2.js +70 -14
- package/node_modules/undici/lib/dispatcher/client.js +6 -2
- package/node_modules/undici/lib/handler/cache-handler.js +21 -5
- package/node_modules/undici/lib/handler/retry-handler.js +42 -7
- package/node_modules/undici/lib/interceptor/cache.js +20 -1
- package/node_modules/undici/lib/interceptor/decompress.js +146 -14
- package/node_modules/undici/lib/interceptor/dump.js +10 -23
- package/node_modules/undici/lib/web/eventsource/eventsource-stream.js +245 -150
- package/node_modules/undici/lib/web/websocket/connection.js +1 -1
- package/node_modules/undici/lib/web/websocket/permessage-deflate.js +5 -0
- package/node_modules/undici/lib/web/websocket/stream/websocketstream.js +8 -10
- package/node_modules/undici/package.json +1 -1
- package/node_modules/undici/types/interceptors.d.ts +2 -0
- package/openclaw.plugin.json +3 -3
- package/package.json +6 -6
- package/skills/_vendor/slack-skills-plugin.LICENSE +21 -0
- package/skills/_vendor/slack-skills-plugin.json +31 -0
- package/skills/block-kit/SKILL.md +37 -0
- package/skills/block-kit/references/official-block-kit.md +257 -0
- package/skills/block-kit/references/official-common-patterns.md +385 -0
- package/skills/slack/SKILL.md +1 -1
- package/dist/action-runtime.runtime-CEhbmS-Z.js +0 -2
- package/dist/conversation-binding-route-Vee8Dgbf.js +0 -115
|
@@ -1,7 +1,7 @@
|
|
|
1
|
+
import { Mt as resolveSlackAutoThreadId, bt as getSlackInstallationKind, f as assertSlackDetachedTargetAllowed, jt as SLACK_PRIVATE_ACTION_DELIVERY_RESULT, r as buildSlackChannelIdCandidates, st as parseSlackBlocksInput, v as hasSlackNativeDataBlock } from "./session-status-BynwcZSO.js";
|
|
1
2
|
import { a as parseSlackTarget, n as formatSlackTarget, o as resolveSlackChannelId } from "./target-parsing-PbxGDbr9.js";
|
|
2
3
|
import { t as slackContextTargetsMatch } from "./targets-7FexXJ62.js";
|
|
3
|
-
import {
|
|
4
|
-
import { n as resolveSlackChannelConfig, t as isSlackChannelAllowedByPolicy } from "./policy-D7PKkiet.js";
|
|
4
|
+
import { n as resolveSlackChannelConfig, t as isSlackChannelAllowedByPolicy } from "./policy-Bh5TOqII.js";
|
|
5
5
|
import { t as mergeSlackSendResults } from "./send-results-eeOu_HYm.js";
|
|
6
6
|
import { normalizeAccountId } from "openclaw/plugin-sdk/account-resolution";
|
|
7
7
|
import { normalizeOptionalLowercaseString } from "openclaw/plugin-sdk/string-coerce-runtime";
|
|
@@ -27,9 +27,9 @@ const pinActions = /* @__PURE__ */ new Set([
|
|
|
27
27
|
"listPins"
|
|
28
28
|
]);
|
|
29
29
|
const SLACK_REACTION_RESULT_LIMIT = 100;
|
|
30
|
-
const loadSlackActionsRuntime = createLazyRuntimeModule(() => import("./actions-
|
|
30
|
+
const loadSlackActionsRuntime = createLazyRuntimeModule(() => import("./actions-CFkvEv1d.js").then((n) => n.t));
|
|
31
31
|
const loadSlackAccountsRuntime = createLazyRuntimeModule(() => import("./accounts.runtime-DRuEK6mL.js"));
|
|
32
|
-
const loadSlackChannelTypeRuntime = createLazyRuntimeModule(() => import("./channel-type-
|
|
32
|
+
const loadSlackChannelTypeRuntime = createLazyRuntimeModule(() => import("./channel-type-BWt2CRaI.js").then((n) => n.t));
|
|
33
33
|
function createLazySlackAction(key) {
|
|
34
34
|
return (async (...args) => {
|
|
35
35
|
const action = (await loadSlackActionsRuntime())[key];
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { t as __exportAll } from "./rolldown-runtime-8H4AJuhK.js";
|
|
2
2
|
import { a as resolveSlackAccount, f as resolveSlackBotToken, i as resolveDefaultSlackAccountId } from "./accounts-Dm_H77gH.js";
|
|
3
|
+
import { A as countSlackTextUtf8Bytes, C as buildSlackBlocksFallbackText, E as SLACK_EDIT_TEXT_MAX_BYTES, M as truncateSlackTextByUtf8Bytes, S as stripSlackNativeDataBlocks, T as renderSlackBlockFallbackText, Y as normalizeSlackOutboundText, at as escapeSlackMrkdwn, ct as validateSlackBlocksArray, f as assertSlackDetachedTargetAllowed, h as appendSlackNativeDataPlainTextFallback, jt as SLACK_PRIVATE_ACTION_DELIVERY_RESULT, m as appendSlackNativeDataFallbackText, v as hasSlackNativeDataBlock, w as buildSlackCompleteBlocksFallbackText, y as isSlackInvalidBlocksError } from "./session-status-BynwcZSO.js";
|
|
3
4
|
import { n as formatSlackTarget } from "./target-parsing-PbxGDbr9.js";
|
|
4
|
-
import {
|
|
5
|
-
import { m as
|
|
6
|
-
import { m as buildSlackNativeDataDeliveryPlan, r as sendMessageSlack } from "./send-Djswy6lf.js";
|
|
5
|
+
import { m as getSlackWriteClient, s as createSlackLookupClient } from "./probe-Biy--yhL.js";
|
|
6
|
+
import { m as buildSlackNativeDataDeliveryPlan, r as sendMessageSlack } from "./send-DElUcgIs.js";
|
|
7
7
|
import { normalizeAccountId } from "openclaw/plugin-sdk/account-resolution";
|
|
8
8
|
import { normalizeLowercaseStringOrEmpty, normalizeOptionalLowercaseString, normalizeOptionalString } from "openclaw/plugin-sdk/string-coerce-runtime";
|
|
9
9
|
import { createSubsystemLogger, logVerbose, logVerbose as logVerbose$1 } from "openclaw/plugin-sdk/runtime-env";
|
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, n as listSlackAccountIds, r as mergeSlackAccountConfig, t as listEnabledSlackAccounts } from "./accounts-Dm_H77gH.js";
|
|
3
|
-
import {
|
|
3
|
+
import { Mt as resolveSlackAutoThreadId, Nt as resolveSlackReplyToMode, a as resolveSlackGroupRequireMention, ct as validateSlackBlocksArray, o as resolveSlackGroupToolPolicy, ot as SLACK_MAX_BLOCKS, st as parseSlackBlocksInput } from "./session-status-BynwcZSO.js";
|
|
4
4
|
import { t as inspectSlackAccount } from "./account-inspect-C3sePHWa.js";
|
|
5
5
|
import { a as parseSlackTarget, i as normalizeSlackMessagingTarget, o as resolveSlackChannelId, r as looksLikeSlackTargetId } from "./target-parsing-PbxGDbr9.js";
|
|
6
6
|
import "./targets-7FexXJ62.js";
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
7
|
+
import { C as normalizeAllowListLower, E as resolveSlackAllowListMatch, O as resolveSlackUserAllowed, S as normalizeAllowList, T as normalizeSlackSlug, b as resolveSlackWriteClientOptions, d as createSlackWebClient, f as createSlackWriteClient, g as SLACK_WRITE_RETRY_OPTIONS, h as SLACK_DEFAULT_RETRY_OPTIONS, m as getSlackWriteClient, t as probeSlack, u as createSlackTokenCacheKey, w as normalizeSlackAllowOwnerEntry, x as allowListMatches, y as resolveSlackWebClientOptions } from "./probe-Biy--yhL.js";
|
|
8
|
+
import { n as buildSlackThreadingToolContext, t as slackPlugin } from "./channel-CmOuxbOD.js";
|
|
9
|
+
import { c as buildSlackInteractiveBlocks, l as buildSlackPresentationBlocks } from "./reply-blocks-PRkhyAN7.js";
|
|
10
10
|
import { n as extractSlackToolSend, r as listSlackMessageActions } from "./message-tool-api-uNEfQYGY.js";
|
|
11
|
-
import { n as resolveSlackChannelType } from "./channel-type-
|
|
12
|
-
import { t as slackSetupPlugin } from "./channel.setup-
|
|
13
|
-
import { c as listSlackPins, d as reactSlackMessage, f as readSlackMessages, g as unpinSlackMessage, h as sendSlackMessage, i as editSlackMessage, l as listSlackReactions, m as removeSlackReaction, n as deleteSlackMessage, o as getSlackMemberInfo, p as removeOwnSlackReactions, r as downloadSlackFile, s as listSlackEmojis, u as pinSlackMessage } from "./actions-
|
|
14
|
-
import { f as recordSlackThreadParticipation, l as hasSlackThreadParticipation, s as clearSlackThreadParticipationCache } from "./send-
|
|
11
|
+
import { n as resolveSlackChannelType } from "./channel-type-BWt2CRaI.js";
|
|
12
|
+
import { t as slackSetupPlugin } from "./channel.setup-D5z1ReaT.js";
|
|
13
|
+
import { c as listSlackPins, d as reactSlackMessage, f as readSlackMessages, g as unpinSlackMessage, h as sendSlackMessage, i as editSlackMessage, l as listSlackReactions, m as removeSlackReaction, n as deleteSlackMessage, o as getSlackMemberInfo, p as removeOwnSlackReactions, r as downloadSlackFile, s as listSlackEmojis, u as pinSlackMessage } from "./actions-CFkvEv1d.js";
|
|
14
|
+
import { f as recordSlackThreadParticipation, l as hasSlackThreadParticipation, s as clearSlackThreadParticipationCache } from "./send-DElUcgIs.js";
|
|
15
15
|
import { n as listSlackDirectoryGroupsFromConfig, r as listSlackDirectoryPeersFromConfig } from "./directory-config-Bmw4ykSy.js";
|
|
16
16
|
import { t as collectSlackSecurityAuditFindings } from "./security-audit-B_yKr7MW.js";
|
|
17
|
-
import { n as resolveSlackRuntimeGroupPolicy } from "./provider-
|
|
17
|
+
import { n as resolveSlackRuntimeGroupPolicy } from "./provider-DoaUvAM4.js";
|
|
18
18
|
export { SLACK_DEFAULT_RETRY_OPTIONS, SLACK_MAX_BLOCKS, SLACK_WRITE_RETRY_OPTIONS, allowListMatches, buildSlackInteractiveBlocks, buildSlackPresentationBlocks, buildSlackThreadingToolContext, clearSlackThreadParticipationCache, collectSlackSecurityAuditFindings, createSlackTokenCacheKey, createSlackWebClient, createSlackWriteClient, deleteSlackMessage, downloadSlackFile, editSlackMessage, extractSlackToolSend, getSlackMemberInfo, getSlackWriteClient, handleSlackHttpRequest, hasSlackThreadParticipation, inspectSlackAccount, listEnabledSlackAccounts, listSlackAccountIds, listSlackDirectoryGroupsFromConfig, listSlackDirectoryPeersFromConfig, listSlackEmojis, listSlackMessageActions, listSlackPins, listSlackReactions, looksLikeSlackTargetId, mergeSlackAccountConfig, normalizeAllowList, normalizeAllowListLower, normalizeSlackAllowOwnerEntry, normalizeSlackMessagingTarget, normalizeSlackSlug, normalizeSlackWebhookPath, parseSlackBlocksInput, 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,6 +1,8 @@
|
|
|
1
|
+
import { E as SLACK_EDIT_TEXT_MAX_BYTES, M as truncateSlackTextByUtf8Bytes, Ot as normalizeSlackApproverId, _t as shouldHandleSlackNativeApprovalRequest, n as setSlackSessionStatus, ut as isSlackAnyNativeApprovalClientEnabled } from "./session-status-BynwcZSO.js";
|
|
1
2
|
import { a as parseSlackTarget } from "./target-parsing-PbxGDbr9.js";
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
3
|
+
import { p as getSlackListenerWriteClient } from "./probe-Biy--yhL.js";
|
|
4
|
+
import { i as resolveSlackReplyBlocks, p as SLACK_APPROVAL_HEADER_BLOCK_ID } from "./reply-blocks-PRkhyAN7.js";
|
|
5
|
+
import { r as sendMessageSlack } from "./send-DElUcgIs.js";
|
|
4
6
|
import { normalizeOptionalString } from "openclaw/plugin-sdk/string-coerce-runtime";
|
|
5
7
|
import { buildChannelApprovalNativeTargetKey } from "openclaw/plugin-sdk/approval-native-runtime";
|
|
6
8
|
import { buildApprovalPresentationFromActionDescriptors } from "openclaw/plugin-sdk/approval-reply-runtime";
|
|
@@ -222,7 +224,15 @@ const slackApprovalNativeRuntime = createChannelApprovalNativeRuntimeAdapter({
|
|
|
222
224
|
if (!resolved) return null;
|
|
223
225
|
const client = resolveApprovalClient(resolved.context, preparedTarget.teamId);
|
|
224
226
|
const to = await resolveApprovalChannel(client, preparedTarget.to, preparedTarget.teamId);
|
|
225
|
-
const eventScope =
|
|
227
|
+
const eventScope = preparedTarget.teamId ? {
|
|
228
|
+
teamId: preparedTarget.teamId,
|
|
229
|
+
client,
|
|
230
|
+
writeClient: getSlackListenerWriteClient({
|
|
231
|
+
listenerClient: client,
|
|
232
|
+
teamId: preparedTarget.teamId,
|
|
233
|
+
clientOptions: resolved.context.app.webClientOptions
|
|
234
|
+
})
|
|
235
|
+
} : void 0;
|
|
226
236
|
const message = await sendMessageSlack(to, pendingPayload.text, {
|
|
227
237
|
cfg,
|
|
228
238
|
accountId: resolved.accountId,
|
|
@@ -231,26 +241,39 @@ const slackApprovalNativeRuntime = createChannelApprovalNativeRuntimeAdapter({
|
|
|
231
241
|
client,
|
|
232
242
|
eventScope
|
|
233
243
|
});
|
|
244
|
+
await setSlackSessionStatus({
|
|
245
|
+
client,
|
|
246
|
+
channelId: message.channelId,
|
|
247
|
+
threadTs: preparedTarget.threadTs,
|
|
248
|
+
status: "suspended"
|
|
249
|
+
});
|
|
234
250
|
return {
|
|
235
251
|
channelId: message.channelId,
|
|
236
252
|
messageTs: message.messageId,
|
|
253
|
+
threadTs: preparedTarget.threadTs,
|
|
237
254
|
teamId: preparedTarget.teamId
|
|
238
255
|
};
|
|
239
256
|
},
|
|
240
|
-
updateEntry: async ({ cfg, accountId, context, entry, payload }) => {
|
|
257
|
+
updateEntry: async ({ cfg, accountId, context, entry, payload, phase }) => {
|
|
241
258
|
const resolved = resolveHandlerContext({
|
|
242
259
|
cfg,
|
|
243
260
|
accountId,
|
|
244
261
|
context
|
|
245
262
|
});
|
|
246
263
|
if (!resolved) return;
|
|
247
|
-
const
|
|
264
|
+
const client = resolveApprovalClient(resolved.context, entry.teamId);
|
|
248
265
|
await updateMessage({
|
|
249
|
-
client
|
|
266
|
+
client,
|
|
250
267
|
channelId: entry.channelId,
|
|
251
268
|
messageTs: entry.messageTs,
|
|
252
|
-
text:
|
|
253
|
-
blocks:
|
|
269
|
+
text: payload.text,
|
|
270
|
+
blocks: payload.blocks
|
|
271
|
+
});
|
|
272
|
+
await setSlackSessionStatus({
|
|
273
|
+
client,
|
|
274
|
+
channelId: entry.channelId,
|
|
275
|
+
threadTs: entry.threadTs,
|
|
276
|
+
status: phase === "resolved" ? "processing" : "active"
|
|
254
277
|
});
|
|
255
278
|
}
|
|
256
279
|
},
|
|
@@ -265,13 +288,6 @@ function resolveApprovalClient(context, teamId) {
|
|
|
265
288
|
if (!client) throw new Error("Slack Enterprise Grid approval client is unavailable");
|
|
266
289
|
return client;
|
|
267
290
|
}
|
|
268
|
-
function resolveApprovalEventScope(client, teamId) {
|
|
269
|
-
if (!teamId) return;
|
|
270
|
-
return {
|
|
271
|
-
teamId,
|
|
272
|
-
client
|
|
273
|
-
};
|
|
274
|
-
}
|
|
275
291
|
async function resolveApprovalChannel(client, target, teamId) {
|
|
276
292
|
if (!teamId) return target;
|
|
277
293
|
const parsed = parseSlackTarget(target, { defaultKind: "channel" });
|
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
import { n as isSlackPluginAccountConfigured } from "./account-configured-sUohAxZr.js";
|
|
2
2
|
import { a as resolveSlackAccount, i as resolveDefaultSlackAccountId, l as resolveSlackOperationToken, n as listSlackAccountIds, o as resolveSlackAccountAllowFrom } from "./accounts-Dm_H77gH.js";
|
|
3
|
-
import {
|
|
3
|
+
import { A as countSlackTextUtf8Bytes, At as shouldSuppressLocalSlackExecApprovalPrompt, Ct as getSlackApprovalApproversForTeam, Dt as isSlackExecApprovalClientEnabled, E as SLACK_EDIT_TEXT_MAX_BYTES, Et as isSlackExecApprovalAuthorizedSender, Mt as resolveSlackAutoThreadId, Nt as resolveSlackReplyToMode, Tt as getSlackExecApprovalApprovers, Y as normalizeSlackOutboundText, _t as shouldHandleSlackNativeApprovalRequest, a as resolveSlackGroupRequireMention, bt as getSlackInstallationKind, c as qualifySlackRoutePeerId, d as resolveSlackConversationBindingRoute, dt as normalizeSlackForwardTarget, f as assertSlackDetachedTargetAllowed, ft as normalizeSlackOriginTarget, gt as resolveTurnSourceSlackOriginTarget, ht as resolveSlackFallbackOriginTarget, it as renderSlackMessagePresentationFallbackText, k as SLACK_TEXT_LIMIT, kt as resolveSlackExecApprovalTarget, lt as hasSlackPluginApprovers, mt as resolveSessionSlackOriginTarget, n as setSlackSessionStatus, o as resolveSlackGroupToolPolicy, pt as resolveEnterpriseApprovalTeamId, s as qualifySlackConversationId, u as normalizeSlackRouteBindingConfig, ut as isSlackAnyNativeApprovalClientEnabled, vt as shouldHandleSlackPluginViaForwardingSession, wt as isSlackApprovalAuthorizedSender, xt as isSlackWorkspaceInstallation, yt as slackTargetsMatch } from "./session-status-BynwcZSO.js";
|
|
4
4
|
import { a as parseSlackTarget, i as normalizeSlackMessagingTarget, n as formatSlackTarget, o as resolveSlackChannelId, r as looksLikeSlackTargetId, t as canonicalizeSlackApiTargetId } from "./target-parsing-PbxGDbr9.js";
|
|
5
5
|
import { t as slackContextTargetsMatch } from "./targets-7FexXJ62.js";
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
6
|
+
import { m as getSlackWriteClient, o as formatSlackError } from "./probe-Biy--yhL.js";
|
|
7
|
+
import { a as resolveSlackReplyDeliveryMessages, h as SLACK_PRESENTATION_CAPABILITIES, i as resolveSlackReplyBlocks, l as buildSlackPresentationBlocks, r as resolveSlackReplyBlockResolution, u as canRenderSlackPresentation } from "./reply-blocks-PRkhyAN7.js";
|
|
8
8
|
import { n as resolveSlackReplyThreadTs, r as resolveSlackThreadTsValue, t as normalizeSlackThreadTsCandidate } from "./thread-ts-CukseRVL.js";
|
|
9
9
|
import { n as extractSlackToolSend, t as describeSlackMessageTool } from "./message-tool-api-uNEfQYGY.js";
|
|
10
|
-
import { a as PAIRING_APPROVED_MESSAGE, i as DEFAULT_ACCOUNT_ID$1, n as slackConfigAdapter, o as projectCredentialSnapshotFields, r as slackSecurityAdapter, s as resolveConfiguredFromRequiredCredentialStatuses, t as createSlackPluginBase } from "./shared-
|
|
11
|
-
import { n as resolveSlackChannelType, r as resolveSlackConversationInfo } from "./channel-type-
|
|
10
|
+
import { a as PAIRING_APPROVED_MESSAGE, i as DEFAULT_ACCOUNT_ID$1, n as slackConfigAdapter, o as projectCredentialSnapshotFields, r as slackSecurityAdapter, s as resolveConfiguredFromRequiredCredentialStatuses, t as createSlackPluginBase } from "./shared-CNQsWJT7.js";
|
|
11
|
+
import { n as resolveSlackChannelType, r as resolveSlackConversationInfo } from "./channel-type-BWt2CRaI.js";
|
|
12
12
|
import { t as getOptionalSlackRuntime } from "./runtime-JSVZSWAj.js";
|
|
13
|
-
import { a as slackSetupContract, i as createSlackSetupWizardProxy, o as SLACK_CHANNEL } from "./channel.setup-
|
|
13
|
+
import { a as slackSetupContract, i as createSlackSetupWizardProxy, o as SLACK_CHANNEL } from "./channel.setup-D5z1ReaT.js";
|
|
14
14
|
import { normalizeAccountId } from "openclaw/plugin-sdk/account-resolution";
|
|
15
15
|
import { normalizeLowercaseStringOrEmpty, normalizeOptionalLowercaseString, normalizeOptionalString } from "openclaw/plugin-sdk/string-coerce-runtime";
|
|
16
16
|
import { adaptScopedAccountAccessor } from "openclaw/plugin-sdk/channel-config-helpers";
|
|
@@ -141,7 +141,7 @@ const baseSlackApprovalCapability = createApproverRestrictedNativeApprovalCapabi
|
|
|
141
141
|
approvalKind,
|
|
142
142
|
request
|
|
143
143
|
}),
|
|
144
|
-
load: async () => (await import("./approval-handler.runtime-
|
|
144
|
+
load: async () => (await import("./approval-handler.runtime-BeILKdw4.js")).slackApprovalNativeRuntime
|
|
145
145
|
})
|
|
146
146
|
});
|
|
147
147
|
const baseSlackNativeAdapter = baseSlackApprovalCapability.native;
|
|
@@ -425,7 +425,7 @@ const SLACK_TOOL_DELIVERY_ACTIONS = /* @__PURE__ */ new Set([
|
|
|
425
425
|
"unpinMessage",
|
|
426
426
|
"uploadFile"
|
|
427
427
|
]);
|
|
428
|
-
const loadSlackActionRuntime$1 = createLazyRuntimeModule(() => import("./action-runtime.runtime-
|
|
428
|
+
const loadSlackActionRuntime$1 = createLazyRuntimeModule(() => import("./action-runtime.runtime-rHI3UAh4.js"));
|
|
429
429
|
function resolveSlackActionContext(ctx, toolContext) {
|
|
430
430
|
if (!toolContext && !ctx.mediaAccess && !ctx.mediaLocalRoots && !ctx.mediaReadFile && !ctx.conversationReadOrigin && !ctx.requesterAccountId && !ctx.requesterSenderId) return;
|
|
431
431
|
return {
|
|
@@ -567,9 +567,9 @@ const EXTENSION_SHARED_MODULE_ID = "openclaw/plugin-sdk/extension-shared";
|
|
|
567
567
|
const TARGET_RESOLVER_RUNTIME_MODULE_ID = "openclaw/plugin-sdk/target-resolver-runtime";
|
|
568
568
|
const loadExtensionSharedSdk = createLazyRuntimeModule(() => import(EXTENSION_SHARED_MODULE_ID));
|
|
569
569
|
const loadTargetResolverRuntimeSdk = createLazyRuntimeModule(() => import(TARGET_RESOLVER_RUNTIME_MODULE_ID));
|
|
570
|
-
const loadSlackSetupSurfaceModule = createLazyRuntimeModule(() => import("./setup-surface-
|
|
571
|
-
const loadSlackScopesModule = createLazyRuntimeModule(() => import("./scopes-
|
|
572
|
-
const loadSlackOutboundAdapterModule = createLazyRuntimeModule(() => import("./outbound-adapter-
|
|
570
|
+
const loadSlackSetupSurfaceModule = createLazyRuntimeModule(() => import("./setup-surface-B1_gpGBl.js"));
|
|
571
|
+
const loadSlackScopesModule = createLazyRuntimeModule(() => import("./scopes-CZzeGdWV.js"));
|
|
572
|
+
const loadSlackOutboundAdapterModule = createLazyRuntimeModule(() => import("./outbound-adapter-B5QyTRpJ.js"));
|
|
573
573
|
async function resolveSlackHandleAction() {
|
|
574
574
|
return getOptionalSlackRuntime()?.channel?.slack?.handleSlackAction ?? (await loadSlackActionRuntime()).handleSlackAction;
|
|
575
575
|
}
|
|
@@ -577,13 +577,13 @@ function shouldTreatSlackDeliveredTextAsVisible(params) {
|
|
|
577
577
|
return params.kind === "block" && typeof params.text === "string" && params.text.trim().length > 0;
|
|
578
578
|
}
|
|
579
579
|
const loadSlackDirectoryConfigModule = createLazyRuntimeModule(() => import("./directory-config-Bmw4ykSy.js").then((n) => n.t));
|
|
580
|
-
const loadSlackResolveChannelsModule = createLazyRuntimeModule(() => import("./resolve-channels-
|
|
581
|
-
const loadSlackResolveUsersModule = createLazyRuntimeModule(() => import("./resolve-users-
|
|
582
|
-
const loadSlackActionRuntime = createLazyRuntimeModule(() => import("./action-runtime.runtime-
|
|
583
|
-
const loadSlackSendRuntime = createLazyRuntimeModule(() => import("./send.runtime-
|
|
584
|
-
const loadSlackProbeModule = createLazyRuntimeModule(() => import("./probe-
|
|
585
|
-
const loadSlackMonitorModule = createLazyRuntimeModule(() => import("./monitor-
|
|
586
|
-
const loadSlackDirectoryLiveModule = createLazyRuntimeModule(() => import("./directory-live-
|
|
580
|
+
const loadSlackResolveChannelsModule = createLazyRuntimeModule(() => import("./resolve-channels-DQGV2VrE.js").then((n) => n.n));
|
|
581
|
+
const loadSlackResolveUsersModule = createLazyRuntimeModule(() => import("./resolve-users-DRGt_Q4I.js").then((n) => n.n));
|
|
582
|
+
const loadSlackActionRuntime = createLazyRuntimeModule(() => import("./action-runtime.runtime-rHI3UAh4.js"));
|
|
583
|
+
const loadSlackSendRuntime = createLazyRuntimeModule(() => import("./send.runtime-C8D6cKGm.js"));
|
|
584
|
+
const loadSlackProbeModule = createLazyRuntimeModule(() => import("./probe-Biy--yhL.js").then((n) => n.n));
|
|
585
|
+
const loadSlackMonitorModule = createLazyRuntimeModule(() => import("./monitor-DI07pfJl.js").then((n) => n.t));
|
|
586
|
+
const loadSlackDirectoryLiveModule = createLazyRuntimeModule(() => import("./directory-live-BuBPHmju.js").then((n) => n.t));
|
|
587
587
|
async function setSlackHeartbeatThreadStatus(params) {
|
|
588
588
|
const threadTs = resolveSlackThreadTsValue({ threadId: params.threadId });
|
|
589
589
|
const target = parseSlackTarget(params.to, { defaultKind: "channel" });
|
|
@@ -604,10 +604,11 @@ async function setSlackHeartbeatThreadStatus(params) {
|
|
|
604
604
|
accountId: account.accountId,
|
|
605
605
|
token: botToken
|
|
606
606
|
});
|
|
607
|
-
await
|
|
607
|
+
await setSlackSessionStatus({
|
|
608
|
+
client,
|
|
608
609
|
token: botToken,
|
|
609
|
-
|
|
610
|
-
|
|
610
|
+
channelId,
|
|
611
|
+
threadTs,
|
|
611
612
|
status: params.status
|
|
612
613
|
});
|
|
613
614
|
} catch (error) {
|
|
@@ -963,7 +964,7 @@ const slackPlugin = createChatChannelPlugin({
|
|
|
963
964
|
to,
|
|
964
965
|
accountId,
|
|
965
966
|
threadId,
|
|
966
|
-
status: "
|
|
967
|
+
status: "processing"
|
|
967
968
|
});
|
|
968
969
|
},
|
|
969
970
|
clearTyping: async ({ cfg, to, accountId, threadId }) => {
|
|
@@ -972,7 +973,7 @@ const slackPlugin = createChatChannelPlugin({
|
|
|
972
973
|
to,
|
|
973
974
|
accountId,
|
|
974
975
|
threadId,
|
|
975
|
-
status: ""
|
|
976
|
+
status: "active"
|
|
976
977
|
});
|
|
977
978
|
}
|
|
978
979
|
},
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { t as SlackChannelConfigSchema } from "./config-schema-
|
|
1
|
+
import { t as SlackChannelConfigSchema } from "./config-schema-JDx_f9Zb.js";
|
|
2
2
|
export { SlackChannelConfigSchema };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { t as slackPlugin } from "./channel-
|
|
1
|
+
import { t as slackPlugin } from "./channel-CmOuxbOD.js";
|
|
2
2
|
export { slackPlugin };
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { t as __exportAll } from "./rolldown-runtime-8H4AJuhK.js";
|
|
2
2
|
import { a as resolveSlackAccount, l as resolveSlackOperationToken } from "./accounts-Dm_H77gH.js";
|
|
3
|
-
import {
|
|
4
|
-
import { C as normalizeAllowListLower, c as createSlackReadClient, d as createSlackWebClient } from "./probe-
|
|
3
|
+
import { f as assertSlackDetachedTargetAllowed } from "./session-status-BynwcZSO.js";
|
|
4
|
+
import { C as normalizeAllowListLower, c as createSlackReadClient, d as createSlackWebClient } from "./probe-Biy--yhL.js";
|
|
5
5
|
import { normalizeLowercaseStringOrEmpty, normalizeOptionalString } from "openclaw/plugin-sdk/string-coerce-runtime";
|
|
6
6
|
import { createHash } from "node:crypto";
|
|
7
7
|
import { pruneMapToMaxSize } from "openclaw/plugin-sdk/collection-runtime";
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { r as isSlackSetupAccountConfigured } from "./account-configured-sUohAxZr.js";
|
|
2
2
|
import { a as resolveSlackAccount, c as resolveSlackConfigAccessorAccount, i as resolveDefaultSlackAccountId, n as listSlackAccountIds } from "./accounts-Dm_H77gH.js";
|
|
3
3
|
import { t as inspectSlackAccount } from "./account-inspect-C3sePHWa.js";
|
|
4
|
-
import { t as SlackChannelConfigSchema } from "./config-schema-
|
|
4
|
+
import { t as SlackChannelConfigSchema } from "./config-schema-JDx_f9Zb.js";
|
|
5
5
|
import { normalizeSecretInputString } from "openclaw/plugin-sdk/secret-input";
|
|
6
6
|
import { normalizeOptionalString } from "openclaw/plugin-sdk/string-coerce-runtime";
|
|
7
7
|
import { adaptScopedAccountAccessor, createScopedChannelConfigAdapter } from "openclaw/plugin-sdk/channel-config-helpers";
|
|
@@ -84,6 +84,8 @@ function buildSlackManifest(botName = "OpenClaw") {
|
|
|
84
84
|
"app_home_opened",
|
|
85
85
|
"app_mention",
|
|
86
86
|
"app_context_changed",
|
|
87
|
+
"agent_session_stopped",
|
|
88
|
+
"agent_session_title_changed",
|
|
87
89
|
"channel_rename",
|
|
88
90
|
"member_joined_channel",
|
|
89
91
|
"member_left_channel",
|
|
@@ -556,7 +558,7 @@ const slackBaseConfigAdapter = createScopedChannelConfigAdapter({
|
|
|
556
558
|
});
|
|
557
559
|
//#endregion
|
|
558
560
|
//#region extensions/slack/src/channel.setup.ts
|
|
559
|
-
const slackSetupWizard = createSlackSetupWizardProxy(async () => ({ slackSetupWizard: (await import("./setup-surface-
|
|
561
|
+
const slackSetupWizard = createSlackSetupWizardProxy(async () => ({ slackSetupWizard: (await import("./setup-surface-B1_gpGBl.js")).slackSetupWizard }));
|
|
560
562
|
const slackSetupPlugin = {
|
|
561
563
|
id: SLACK_CHANNEL,
|
|
562
564
|
meta: {
|
|
@@ -592,7 +594,10 @@ const slackSetupPlugin = {
|
|
|
592
594
|
minChars: 1500,
|
|
593
595
|
idleMs: 1e3
|
|
594
596
|
} },
|
|
595
|
-
reload: {
|
|
597
|
+
reload: {
|
|
598
|
+
configPrefixes: ["channels.slack"],
|
|
599
|
+
noopPrefixes: ["messages.inbound", "messages.ackReactionScope"]
|
|
600
|
+
},
|
|
596
601
|
configSchema: SlackChannelConfigSchema,
|
|
597
602
|
config: {
|
|
598
603
|
...slackBaseConfigAdapter,
|
|
@@ -29,10 +29,10 @@ const slackChannelConfigUiHints = {
|
|
|
29
29
|
chunkMode: "Chunking mode for outbound Slack text delivery: \"length\" (default) or \"newline\".",
|
|
30
30
|
"block.enabled": "Enable chunked block-style Slack preview delivery when channels.slack.streaming.mode=\"block\".",
|
|
31
31
|
"block.coalesce": "Merge streamed Slack block replies before final delivery.",
|
|
32
|
-
nativeTransport: "Enable native Slack text streaming (chat.startStream/chat.appendStream/chat.stopStream) when channels.slack.streaming.mode is partial (default: true). Native streaming and Slack
|
|
32
|
+
nativeTransport: "Enable native Slack text streaming (chat.startStream/chat.appendStream/chat.stopStream) when channels.slack.streaming.mode is partial (default: true). Native streaming and Slack session status require a reply thread target; top-level DMs can still use draft post-and-edit preview streaming.",
|
|
33
33
|
"preview.toolProgress": "Show tool/progress activity in the live draft preview message (default: true). Set false to hide interim tool updates while the draft preview stays active.",
|
|
34
34
|
"preview.commandText": "Command/exec detail in preview tool-progress lines: \"status\" is the safe default; \"raw\" opts into command text.",
|
|
35
|
-
"progress.style": "Slack progress presentation: \"card\" uses structured task/session cards; \"compact\" keeps
|
|
35
|
+
"progress.style": "Slack progress presentation: \"card\" uses structured task/session cards; \"compact\" keeps a temporary editable text draft. The final response is posted as a new message, then the draft is deleted after confirmed delivery. Defaults to \"compact\" when progress.toolProgress is explicitly false, otherwise \"card\".",
|
|
36
36
|
"progress.nativeTaskCards": "Slack native task-card progress updates when channels.slack.streaming.mode=\"progress\", progress.style=\"card\", and streaming.nativeTransport is enabled. Set false to fall back to the Block Kit progress card. Default: true."
|
|
37
37
|
},
|
|
38
38
|
progress: { labels: "openclaw" }
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { t as __exportAll } from "./rolldown-runtime-8H4AJuhK.js";
|
|
2
2
|
import { a as resolveSlackAccount } from "./accounts-Dm_H77gH.js";
|
|
3
|
-
import { s as createSlackLookupClient } from "./probe-
|
|
3
|
+
import { s as createSlackLookupClient } from "./probe-Biy--yhL.js";
|
|
4
4
|
import { n as fetchSlackChannelListPage, t as collectSlackCursorPages } from "./cursor-pages-ByFwo-Py.js";
|
|
5
5
|
import { normalizeLowercaseStringOrEmpty, normalizeOptionalLowercaseString, normalizeOptionalString } from "openclaw/plugin-sdk/string-coerce-runtime";
|
|
6
6
|
//#region extensions/slack/src/directory-live.ts
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { t as __exportAll } from "./rolldown-runtime-8H4AJuhK.js";
|
|
2
|
-
import {
|
|
3
|
-
import { t as isSlackChannelAllowedByPolicy } from "./policy-
|
|
4
|
-
import { a as resolveSlackThreadTs } from "./replies-
|
|
2
|
+
import { M as buildSlackSlashCommandMatcher, t as monitorSlackProvider } from "./provider-DoaUvAM4.js";
|
|
3
|
+
import { t as isSlackChannelAllowedByPolicy } from "./policy-Bh5TOqII.js";
|
|
4
|
+
import { a as resolveSlackThreadTs } from "./replies-DENuTcPO.js";
|
|
5
5
|
//#region extensions/slack/src/monitor.ts
|
|
6
6
|
var monitor_exports = /* @__PURE__ */ __exportAll({
|
|
7
7
|
buildSlackSlashCommandMatcher: () => buildSlackSlashCommandMatcher,
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { a as resolveSlackAccount, l as resolveSlackOperationToken } from "./accounts-Dm_H77gH.js";
|
|
2
|
+
import { K as resolveSlackQuestionActionIds, R as SLACK_QUESTION_FINALIZATION_BLOCKS, at as escapeSlackMrkdwn, f as assertSlackDetachedTargetAllowed, k as SLACK_TEXT_LIMIT } from "./session-status-BynwcZSO.js";
|
|
2
3
|
import { a as parseSlackTarget } from "./target-parsing-PbxGDbr9.js";
|
|
3
|
-
import {
|
|
4
|
+
import { a as resolveSlackReplyDeliveryMessages, h as SLACK_PRESENTATION_CAPABILITIES, n as parseSlackReplyBlockSegments, r as resolveSlackReplyBlockResolution, s as resolveSlackAuthoredTextPlacement } from "./reply-blocks-PRkhyAN7.js";
|
|
4
5
|
import { r as resolveSlackThreadTsValue } from "./thread-ts-CukseRVL.js";
|
|
5
6
|
import { t as mergeSlackSendResults } from "./send-results-eeOu_HYm.js";
|
|
6
7
|
import { normalizeOptionalString } from "openclaw/plugin-sdk/string-coerce-runtime";
|
|
@@ -51,7 +52,7 @@ function readSlackRenderedPresentation(slackData) {
|
|
|
51
52
|
return;
|
|
52
53
|
}
|
|
53
54
|
}
|
|
54
|
-
const loadSlackSendRuntime = createLazyRuntimeModule(() => import("./send.runtime-
|
|
55
|
+
const loadSlackSendRuntime = createLazyRuntimeModule(() => import("./send.runtime-C8D6cKGm.js"));
|
|
55
56
|
function resolveSlackSendIdentity(identity) {
|
|
56
57
|
if (!identity) return;
|
|
57
58
|
const username = normalizeOptionalString(identity.name);
|