@openclaw/slack 2026.10.7 → 2026.10.8

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.
@@ -9,8 +9,8 @@ import { n as resolveSlackReplyThreadTs, r as resolveSlackThreadTsValue, t as no
9
9
  import { n as extractSlackToolSend, t as describeSlackMessageTool } from "./message-tool-api-C7im5ETh.mjs";
10
10
  import { n as resolveSlackChannelType, r as resolveSlackConversationInfo } from "./channel-type-DjOFlEWC.mjs";
11
11
  import { t as getOptionalSlackRuntime } from "./runtime-JSVZSWAj.mjs";
12
- import { n as slackPluginBase, r as slackSecurityAdapter, t as slackConfigAdapter } from "./shared-CtprVh_G.mjs";
13
- import { i as SLACK_CHANNEL } from "./channel.setup-BFpQowO3.mjs";
12
+ import { n as slackPluginBase, r as slackSecurityAdapter, t as slackConfigAdapter } from "./shared-BDNmTlkh.mjs";
13
+ import { i as SLACK_CHANNEL } from "./channel.setup-DCR4c-Ju.mjs";
14
14
  import { DEFAULT_ACCOUNT_ID, normalizeAccountId } from "openclaw/plugin-sdk/account-id";
15
15
  import { normalizeAccountId as normalizeAccountId$1 } from "openclaw/plugin-sdk/account-resolution";
16
16
  import { normalizeLowercaseStringOrEmpty, normalizeOptionalLowercaseString, normalizeOptionalString } from "openclaw/plugin-sdk/string-coerce-runtime";
@@ -628,7 +628,7 @@ const loadSlackResolveUsersModule = createLazyRuntimeModule(() => import("./reso
628
628
  const loadSlackActionRuntime = createLazyRuntimeModule(() => import("./action-runtime.runtime-9GVSH-nB.mjs"));
629
629
  const loadSlackSendRuntime = createLazyRuntimeModule(() => import("./send-DfRHvECF.mjs").then((n) => n.n));
630
630
  const loadSlackProbeModule = createLazyRuntimeModule(() => import("./probe-CyX52GtD.mjs").then((n) => n.n));
631
- const loadSlackMonitorModule = createLazyRuntimeModule(() => import("./monitor-CsMog7BO.mjs").then((n) => n.t));
631
+ const loadSlackMonitorModule = createLazyRuntimeModule(() => import("./monitor-BuZrGeHk.mjs").then((n) => n.t));
632
632
  const loadSlackDirectoryLiveModule = createLazyRuntimeModule(() => import("./directory-live-FipfeCwt.mjs").then((n) => n.t));
633
633
  async function setSlackHeartbeatThreadStatus(params) {
634
634
  const threadTs = resolveSlackThreadTsValue({ threadId: params.threadId });
@@ -550,7 +550,7 @@ const slackSetupPlugin = {
550
550
  markdownCapable: true,
551
551
  preferSessionLookupForAnnounceTarget: true
552
552
  },
553
- setupWizard: createSlackSetupWizardProxy(() => import("./setup-surface-368jx6Uc.mjs")),
553
+ setupWizard: createSlackSetupWizardProxy(() => import("./setup-surface-DEVI3LNZ.mjs")),
554
554
  capabilities: {
555
555
  chatTypes: [
556
556
  "direct",
@@ -483,6 +483,9 @@ function resolveSlackIdentityHealth(params) {
483
483
  //#endregion
484
484
  //#region extensions/slack/src/monitor/reconnect-policy.ts
485
485
  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;
486
+ const SLACK_DEFINITIVE_AUTH_ERROR_RE = /account_inactive|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;
487
+ /** Consecutive isolated invalid_auth failures before the channel turns terminal. */
488
+ const SLACK_ISOLATED_INVALID_AUTH_TERMINAL_LIMIT = 3;
486
489
  const SLACK_SOCKET_RECONNECT_POLICY = {
487
490
  initialMs: 2e3,
488
491
  maxMs: 3e4,
@@ -576,6 +579,28 @@ function waitForSlackSocketDisconnect(app, abortSignal) {
576
579
  function isNonRecoverableSlackAuthError(error) {
577
580
  return SLACK_AUTH_ERROR_RE.test(formatSlackError(error, ""));
578
581
  }
582
+ /** Terminal, retryable-isolated, or undefined (not auth-shaped) for this failure. */
583
+ function nextSlackAuthFailureState(error, consecutiveInvalidAuth) {
584
+ if (error && isIsolatedInvalidAuthSlackError(error)) {
585
+ const next = consecutiveInvalidAuth + 1;
586
+ return next >= SLACK_ISOLATED_INVALID_AUTH_TERMINAL_LIMIT ? {
587
+ decision: "terminal",
588
+ consecutiveInvalidAuth: next
589
+ } : {
590
+ decision: "retry-isolated",
591
+ consecutiveInvalidAuth: next
592
+ };
593
+ }
594
+ return {
595
+ decision: error && isNonRecoverableSlackAuthError(error) ? "terminal" : void 0,
596
+ consecutiveInvalidAuth
597
+ };
598
+ }
599
+ /** Isolated invalid_auth: auth-shaped, but not a definitive credential verdict. */
600
+ function isIsolatedInvalidAuthSlackError(error) {
601
+ const text = formatSlackError(error, "");
602
+ return /invalid_auth/i.test(text) && !SLACK_DEFINITIVE_AUTH_ERROR_RE.test(text);
603
+ }
579
604
  //#endregion
580
605
  //#region extensions/slack/src/monitor/socket-mode-envelope.ts
581
606
  function installSlackSocketModeEnvelopeGuard(client, acknowledge, logger) {
@@ -698,6 +723,14 @@ function publishSlackConnectedStatus(setStatus, identityHealth = {
698
723
  lastConnectedAt
699
724
  }) : channelReadyPatch({ lastConnectedAt }));
700
725
  }
726
+ function trackSlackAuthFailure(failure, phase, setStatus, logError, state) {
727
+ const auth = nextSlackAuthFailureState(failure, state.consecutiveInvalidAuth);
728
+ state.consecutiveInvalidAuth = auth.consecutiveInvalidAuth;
729
+ if (auth.decision !== "terminal") return;
730
+ publishSlackBlockedStatus(setStatus, failure);
731
+ logError(`slack ${phase} (${formatSlackError(failure)})`);
732
+ throw failure instanceof Error ? failure : new Error(formatSlackError(failure));
733
+ }
701
734
  function publishSlackBlockedStatus(setStatus, error) {
702
735
  if (!setStatus) return;
703
736
  setStatus(channelBlockedPatch(formatSlackError(error), { connected: false }));
@@ -2830,7 +2863,7 @@ const SLACK_COMMAND_ARG_BUTTON_VALUE_MAX = 2e3;
2830
2863
  const SLACK_COMMAND_ARG_CONFIRM_TEXT_MAX = 300;
2831
2864
  const SLACK_HEADER_TEXT_MAX = 150;
2832
2865
  const SLACK_COMMAND_ARG_ACTION_BLOCKS_MAX = 47;
2833
- const loadSlashDispatchRuntime = createLazyRuntimeModule(() => import("./slash-dispatch.runtime-DIk3742D.mjs"));
2866
+ const loadSlashDispatchRuntime = createLazyRuntimeModule(() => import("./slash-dispatch.runtime-DzB9z0Xl.mjs"));
2834
2867
  const loadPluginCommandRuntime = createLazyRuntimeModule(() => import("openclaw/plugin-sdk/plugin-command-runtime"));
2835
2868
  function resolveSlackCommandMenuModelContext(params) {
2836
2869
  if (!params.sessionKey.trim()) return {};
@@ -5800,7 +5833,7 @@ function buildSlackDebounceKey(message, accountId, teamId) {
5800
5833
  }
5801
5834
  //#endregion
5802
5835
  //#region extensions/slack/src/monitor/message-handler.ts
5803
- const loadSlackMessagePipeline = createLazyRuntimeModule(() => import("./pipeline.runtime-aazZmSGt.mjs"));
5836
+ const loadSlackMessagePipeline = createLazyRuntimeModule(() => import("./pipeline.runtime-BquJCXGZ.mjs"));
5804
5837
  const RETRYABLE_FLUSH_MAX_ATTEMPTS = 3;
5805
5838
  const RETRYABLE_FLUSH_RETRY_DELAY_MS = 1e3;
5806
5839
  const REPLY_SESSION_INIT_CONFLICT_MESSAGE_RE = /reply session initialization conflicted for \S+/u;
@@ -6345,7 +6378,7 @@ async function getSlackBoltInterop() {
6345
6378
  }
6346
6379
  return slackBoltInterop;
6347
6380
  }
6348
- const loadSlackRelaySource = createLazyRuntimeModule(() => import("./relay-source-DYsxgCR_.mjs"));
6381
+ const loadSlackRelaySource = createLazyRuntimeModule(() => import("./relay-source-BvsVNO2y.mjs"));
6349
6382
  function resolveSlackRuntimeIdentity(params) {
6350
6383
  const botUserId = normalizeOptionalString(params.botUserId);
6351
6384
  const botId = normalizeOptionalString(params.botId);
@@ -6742,6 +6775,8 @@ async function monitorSlackProvider(opts) {
6742
6775
  }
6743
6776
  if (slackMode === "socket") {
6744
6777
  let reconnectAttempts = 0;
6778
+ const authState = { consecutiveInvalidAuth: 0 };
6779
+ const logError = (message) => runtime.error?.(message);
6745
6780
  let hasLoggedSocketConnected = false;
6746
6781
  while (!opts.abortSignal?.aborted) {
6747
6782
  let delayMs;
@@ -6751,6 +6786,7 @@ async function monitorSlackProvider(opts) {
6751
6786
  abortSignal: opts.abortSignal,
6752
6787
  onStarted: async () => {
6753
6788
  reconnectAttempts = 0;
6789
+ authState.consecutiveInvalidAuth = 0;
6754
6790
  await recoverSlackIdentity();
6755
6791
  publishSlackConnectedStatus(opts.setStatus, ctx.identityHealth);
6756
6792
  if (!hasLoggedSocketConnected) {
@@ -6762,11 +6798,7 @@ async function monitorSlackProvider(opts) {
6762
6798
  if (!disconnect) break;
6763
6799
  if (opts.abortSignal?.aborted) break;
6764
6800
  publishSlackDisconnectedStatus(opts.setStatus, disconnect.error);
6765
- if (disconnect.error && isNonRecoverableSlackAuthError(disconnect.error)) {
6766
- publishSlackBlockedStatus(opts.setStatus, disconnect.error);
6767
- runtime.error?.(`slack socket mode disconnected due to non-recoverable auth error — skipping channel (${formatSlackError(disconnect.error)})`);
6768
- throw disconnect.error instanceof Error ? disconnect.error : new Error(formatSlackError(disconnect.error));
6769
- }
6801
+ trackSlackAuthFailure(disconnect.error, "auth: disconnected, skipping channel", opts.setStatus, logError, authState);
6770
6802
  reconnectAttempts += 1;
6771
6803
  delayMs = computeBackoff(SLACK_SOCKET_RECONNECT_POLICY, reconnectAttempts);
6772
6804
  runtime.log?.(warn(formatSlackSocketReconnectMessage({
@@ -6777,11 +6809,7 @@ async function monitorSlackProvider(opts) {
6777
6809
  })));
6778
6810
  await gracefulStopSlackApp(app);
6779
6811
  } catch (err) {
6780
- if (isNonRecoverableSlackAuthError(err)) {
6781
- publishSlackBlockedStatus(opts.setStatus, err);
6782
- runtime.error?.(`slack socket mode failed to start due to non-recoverable auth error — skipping channel (${formatSlackError(err)})`);
6783
- throw err;
6784
- }
6812
+ trackSlackAuthFailure(err, "auth: start failed, skipping channel", opts.setStatus, logError, authState);
6785
6813
  publishSlackDisconnectedStatus(opts.setStatus, err);
6786
6814
  reconnectAttempts += 1;
6787
6815
  delayMs = computeBackoff(SLACK_SOCKET_RECONNECT_POLICY, reconnectAttempts);
@@ -8,8 +8,8 @@ import { n as resolveSlackReplyThreadTs } from "./thread-ts-Cvt7WD6B.mjs";
8
8
  import { C as hasSlackTableBlock, D as buildSlackEditTextPayload, E as resolveSlackMessageText$1, T as resolveSlackBlocksText, a as editSlackRenderedMessage, b as formatSlackFileReference, d as reactSlackMessage, i as editSlackMessage, m as removeSlackReaction, n as deleteSlackMessage, w as isSlackUnfurlAttachment, x as formatSlackFileReferenceList } from "./actions-DH287DuD.mjs";
9
9
  import { c as hasSlackThreadParticipationWithPersistence, i as clearSlackThreadFailureNotice, l as recordSlackThreadFailureNotice, m as buildSlackNativeDataDeliveryPlan, o as hasSlackThreadFailureNotice, p as hasSlackMessageIdentity, s as hasSlackThreadParticipation, t as sendMessageSlack, u as recordSlackThreadParticipation } from "./send-DfRHvECF.mjs";
10
10
  import { n as resolveSlackChannelConfig } from "./policy-CVFgJHQ1.mjs";
11
- import { C as resolveSlackChatType, E as stripSlackMentionsForCommandDetection, S as normalizeSlackChannelType, T as readSlackAssistantThreadContext, _ as appendSlackStream, b as stopSlackStream, c as resolveSlackRoutingContext, g as SlackStreamNotDeliveredError, h as resolveSlackEffectiveAllowFrom, i as resolveSlackRoomContextHints, l as registerSlackSessionRun, m as resolveSlackCommandIngress, p as authorizeSlackBotRoomMessage, r as trackSlackDraftMessage, s as authorizeSlackDirectMessage, u as resolveSlackThreadContext, v as markSlackStreamFallbackDelivered, w as buildSlackAssistantThreadMetadata, y as startSlackStream } from "./monitor-CsMog7BO.mjs";
12
- import { a as emitSlackMessageSentHooks, i as sanitizeSlackMonitorReplyPayload, n as deliverReplies, t as createSlackReplyDeliveryPlan } from "./replies-C5da48Bd.mjs";
11
+ import { C as resolveSlackChatType, E as stripSlackMentionsForCommandDetection, S as normalizeSlackChannelType, T as readSlackAssistantThreadContext, _ as appendSlackStream, b as stopSlackStream, c as resolveSlackRoutingContext, g as SlackStreamNotDeliveredError, h as resolveSlackEffectiveAllowFrom, i as resolveSlackRoomContextHints, l as registerSlackSessionRun, m as resolveSlackCommandIngress, p as authorizeSlackBotRoomMessage, r as trackSlackDraftMessage, s as authorizeSlackDirectMessage, u as resolveSlackThreadContext, v as markSlackStreamFallbackDelivered, w as buildSlackAssistantThreadMetadata, y as startSlackStream } from "./monitor-BuZrGeHk.mjs";
12
+ import { a as emitSlackMessageSentHooks, i as sanitizeSlackMonitorReplyPayload, n as deliverReplies, t as createSlackReplyDeliveryPlan } from "./replies-XX4mv15E.mjs";
13
13
  import { asOptionalRecord, normalizeLowercaseStringOrEmpty, normalizeOptionalLowercaseString, normalizeOptionalString, readNonBlankString } from "openclaw/plugin-sdk/string-coerce-runtime";
14
14
  import { resolveInboundLastRouteSessionKey } from "openclaw/plugin-sdk/routing";
15
15
  import { buildChannelProgressDraftLine, compactChannelProgressDraftLine, createChannelMessageReplyPipeline, createChannelProgressDraftCompositor, createChannelProgressWorkCounter, createDraftStreamLoop, createFinalizableDraftLifecycle, createLivePreviewLifecycle, createMessageReceiptFromOutboundResults, resolveAgentOutboundIdentity, resolveChannelMessageSourceReplyDeliveryMode, resolveChannelProgressDraftConfig, resolveChannelProgressDraftMaxLineChars, resolveChannelStreamingBlockEnabled, resolveChannelStreamingPreviewToolProgress, resolveChannelStreamingSuppressDefaultToolProgressMessages, selectPlanChecklistSteps } from "openclaw/plugin-sdk/channel-outbound";
@@ -1,11 +1,11 @@
1
1
  import { o as formatSlackError } from "./probe-CyX52GtD.mjs";
2
- import { d as parseSlackMessageEvent, f as requireSlackMessageEvent, x as SLACK_SOCKET_RECONNECT_POLICY } from "./monitor-CsMog7BO.mjs";
2
+ import { d as parseSlackMessageEvent, f as requireSlackMessageEvent, x as SLACK_SOCKET_RECONNECT_POLICY } from "./monitor-BuZrGeHk.mjs";
3
3
  import { asOptionalRecord, normalizeOptionalString, readStringValue } from "openclaw/plugin-sdk/string-coerce-runtime";
4
4
  import { computeBackoff, sleepWithAbort, warn } from "openclaw/plugin-sdk/runtime-env";
5
5
  import { createNodeProxyAgent } from "openclaw/plugin-sdk/fetch-runtime";
6
6
  import { isIP } from "node:net";
7
7
  import { rawDataToString } from "openclaw/plugin-sdk/webhook-ingress";
8
- import { WebSocket } from "openclaw/plugin-sdk/websocket-runtime";
8
+ import { WebSocket, startWebSocketKeepalive } from "openclaw/plugin-sdk/websocket-runtime";
9
9
  //#region extensions/slack/src/monitor/relay-source.ts
10
10
  const SLACK_RELAY_ROUTE_KINDS = /* @__PURE__ */ new Set([
11
11
  "user_group",
@@ -93,7 +93,12 @@ function runRelayWebSocket(params) {
93
93
  const ws = params.connection;
94
94
  let pending = Promise.resolve();
95
95
  return new Promise((resolve, reject) => {
96
+ const stopKeepalive = startWebSocketKeepalive(ws, () => {
97
+ ws.terminate();
98
+ settleReject(/* @__PURE__ */ new Error("Slack relay websocket heartbeat timed out"));
99
+ });
96
100
  const cleanup = () => {
101
+ stopKeepalive();
97
102
  ws.off("message", onMessage);
98
103
  ws.off("error", onError);
99
104
  ws.off("close", onClose);
@@ -2,7 +2,7 @@ import { A as SLACK_TEXT_LIMIT, Y as markdownToSlackMrkdwnChunks, b as isSlackIn
2
2
  import { n as iterateSlackReplyDeliveryMessages, o as resolveSlackReplyBlockResolution, t as hasSlackReplyStructuredContent } from "./reply-blocks-DyvlYyy7.mjs";
3
3
  import { n as resolveSlackReplyThreadTs } from "./thread-ts-Cvt7WD6B.mjs";
4
4
  import { h as chunkSlackTextAtHardLimit, m as buildSlackNativeDataDeliveryPlan, t as sendMessageSlack } from "./send-DfRHvECF.mjs";
5
- import { a as SlackResponseAlreadyReportedError, o as createSlackResponseUrlBudget } from "./monitor-CsMog7BO.mjs";
5
+ import { a as SlackResponseAlreadyReportedError, o as createSlackResponseUrlBudget } from "./monitor-BuZrGeHk.mjs";
6
6
  import { sanitizeAssistantVisibleText } from "openclaw/plugin-sdk/text-chunking";
7
7
  import { createReplyReferencePlanner } from "openclaw/plugin-sdk/reply-reference";
8
8
  import { deliverTextOrMediaReply, getReplyPayloadTtsSupplement, resolveSendableOutboundReplyParts } from "openclaw/plugin-sdk/reply-payload";
@@ -1,2 +1,2 @@
1
- export { t as channelSecrets, n as collectRuntimeConfigAssignments, r as secretTargetRegistryEntries } from "./secret-contract-B-Qm6aQQ.mjs";
1
+ export { t as channelSecrets, n as collectRuntimeConfigAssignments, r as secretTargetRegistryEntries } from "./secret-contract-vVRMoE1D.mjs";
2
2
  import "../secret-contract-api.js";
@@ -1,3 +1,4 @@
1
+ import { n as hasSlackAccountCredentialsFromConfig } from "./account-configured-zcR9TJJN.mjs";
1
2
  import { collectConditionalChannelFieldAssignments, collectNestedChannelFieldAssignments, collectSimpleChannelFieldAssignments, createChannelSecretContract, hasOwnProperty } from "openclaw/plugin-sdk/channel-secret-basic-runtime";
2
3
  //#region extensions/slack/src/secret-contract.ts
3
4
  const channelSecrets = createChannelSecretContract({
@@ -16,6 +17,7 @@ const channelSecrets = createChannelSecretContract({
16
17
  "signingSecret",
17
18
  "userToken"
18
19
  ],
20
+ hasImplicitDefaultAccount: ({ context }) => hasSlackAccountCredentialsFromConfig(context.sourceConfig.channels?.slack, context.env),
19
21
  collect(params) {
20
22
  const { channel: slack, surface } = params;
21
23
  const resolveMode = (value) => value === "http" || value === "socket" || value === "relay" ? value : void 0;
@@ -0,0 +1,2 @@
1
+ export { t as slackSetupPlugin } from "./channel.setup-DCR4c-Ju.mjs";
2
+ import "../setup-plugin-api.js";
@@ -1,7 +1,7 @@
1
1
  import { c as resolveSlackAccountAllowFrom, o as resolveDefaultSlackAccountId } from "./accounts-BMg9YLIv.mjs";
2
2
  import { t as inspectSlackAccount } from "./account-inspect-D58VVDjk.mjs";
3
- import "./shared-CtprVh_G.mjs";
4
- import { a as buildSlackAllowFromPrompt, i as SLACK_CHANNEL, n as createSlackSetupWizardBase } from "./channel.setup-BFpQowO3.mjs";
3
+ import "./shared-BDNmTlkh.mjs";
4
+ import { a as buildSlackAllowFromPrompt, i as SLACK_CHANNEL, n as createSlackSetupWizardBase } from "./channel.setup-DCR4c-Ju.mjs";
5
5
  import { t as resolveSlackChannelAllowlist } from "./resolve-channels-B96cgprw.mjs";
6
6
  import { t as resolveSlackUserAllowlist } from "./resolve-users-Xz9aPdns.mjs";
7
7
  import { normalizeStringEntries } from "openclaw/plugin-sdk/string-coerce-runtime";
@@ -4,9 +4,9 @@ import { t as inspectSlackAccount } from "./account-inspect-D58VVDjk.mjs";
4
4
  import { a as parseSlackTarget } from "./target-parsing-FFE26kOV.mjs";
5
5
  import { a as slackIngressIdentity, t as probeSlack } from "./probe-CyX52GtD.mjs";
6
6
  import { n as SLACK_CHANNEL_META } from "./channel-meta-C443t-lI.mjs";
7
- import { r as slackBaseConfigAdapter, t as slackSetupPlugin } from "./channel.setup-BFpQowO3.mjs";
7
+ import { r as slackBaseConfigAdapter, t as slackSetupPlugin } from "./channel.setup-DCR4c-Ju.mjs";
8
8
  import { n as normalizeCompatibilityConfig, r as runtime_doctor_migrations_exports, t as legacyConfigRules } from "./doctor-contract-Cd4-VzIM.mjs";
9
- import { n as collectRuntimeConfigAssignments, r as secretTargetRegistryEntries } from "./secret-contract-B-Qm6aQQ.mjs";
9
+ import { n as collectRuntimeConfigAssignments, r as secretTargetRegistryEntries } from "./secret-contract-vVRMoE1D.mjs";
10
10
  import { adaptScopedAccountAccessor, createScopedDmSecurityResolver } from "openclaw/plugin-sdk/channel-config-helpers";
11
11
  import { createLazyRuntimeModule } from "openclaw/plugin-sdk/lazy-runtime";
12
12
  import { buildMutableAllowEntryDetector, collectStandardAllowlistLists, createConditionalWarningCollector, createDangerousNameMatchingMutableAllowlistWarningCollector, createOpenProviderConfiguredRouteWarningCollector } from "openclaw/plugin-sdk/channel-policy";
@@ -1,4 +1,4 @@
1
- import { i as sanitizeSlackMonitorReplyPayload, r as deliverSlackSlashReplies } from "./replies-C5da48Bd.mjs";
1
+ import { i as sanitizeSlackMonitorReplyPayload, r as deliverSlackSlashReplies } from "./replies-XX4mv15E.mjs";
2
2
  import { resolveAgentRoute } from "openclaw/plugin-sdk/routing";
3
3
  import { resolveMarkdownTableMode } from "openclaw/plugin-sdk/markdown-table-runtime";
4
4
  import { resolveConversationLabel } from "openclaw/plugin-sdk/conversation-runtime";
@@ -0,0 +1 @@
1
+ {"version":3,"entries":[{"output":"account-inspect-api.js","source":"extensions/slack/account-inspect-api.ts"},{"output":"api.js","source":"extensions/slack/api.ts"},{"output":"channel-config-api.js","source":"extensions/slack/channel-config-api.ts"},{"output":"channel-entry.js","source":"extensions/slack/channel-entry.ts"},{"output":"channel-plugin-api.js","source":"extensions/slack/channel-plugin-api.ts"},{"output":"configured-state.js","source":"extensions/slack/configured-state.ts"},{"output":"contract-api.js","source":"extensions/slack/contract-api.ts"},{"output":"directory-contract-api.js","source":"extensions/slack/directory-contract-api.ts"},{"output":"doctor-contract-api.js","source":"extensions/slack/doctor-contract-api.ts"},{"output":"http-routes-api.js","source":"extensions/slack/http-routes-api.ts"},{"output":"index.js","source":"extensions/slack/index.ts"},{"output":"message-tool-api.js","source":"extensions/slack/message-tool-api.ts"},{"output":"runtime-api.js","source":"extensions/slack/runtime-api.ts"},{"output":"runtime-setter-api.js","source":"extensions/slack/runtime-setter-api.ts"},{"output":"secret-contract-api.js","source":"extensions/slack/secret-contract-api.ts"},{"output":"security-contract-api.js","source":"extensions/slack/security-contract-api.ts"},{"output":"setup-entry.js","source":"extensions/slack/setup-entry.ts"},{"output":"setup-plugin-api.js","source":"extensions/slack/setup-plugin-api.ts"}],"chunks":[{"output":".setup/account-configured-zcR9TJJN.mjs","sha256":"51dab8a8d80e33310313d3ae5f3244a30c5d343d55da630a1dbbf6da192d25b5","facadeSource":null,"sources":["extensions/slack/src/account-configured.ts"]},{"output":".setup/account-inspect-D58VVDjk.mjs","sha256":"3480614c2ddecc8baeb41ca4441b86cca65f709eead388ef183c84b204d32c5f","facadeSource":null,"sources":["extensions/slack/src/account-inspect.ts"]},{"output":".setup/accounts-BMg9YLIv.mjs","sha256":"984c79aeba194c2af97ed92f2e41462703166b9edd16a2f7e4d2279298c2cded","facadeSource":null,"sources":["extensions/slack/src/account-reply-mode.ts","extensions/slack/src/account-surface-fields.ts","extensions/slack/src/accounts.ts","extensions/slack/src/token.ts"]},{"output":".setup/action-runtime-DP76Xs8B.mjs","sha256":"e0fc40b480339eee921ddb2b138f361e30e37e83dff3f43fe7f40f7e712d4150","facadeSource":null,"sources":["extensions/slack/src/action-runtime.ts"]},{"output":".setup/action-runtime.runtime-9GVSH-nB.mjs","sha256":"313437840a5b45c47ba251906b4f9d77b168b34ef37f67ec598a4100bbbf2a30","facadeSource":"extensions/slack/src/action-runtime.runtime.ts","sources":[]},{"output":".setup/actions-DH287DuD.mjs","sha256":"cd11b38740b099d6e72bb66c0779c2e6252a5e1d5e14da4e27aeb2160b2aca1c","facadeSource":null,"sources":["extensions/slack/src/actions.ts","extensions/slack/src/conversation-open.ts","extensions/slack/src/edit-text.ts","extensions/slack/src/file-reference.ts","extensions/slack/src/monitor/block-text.ts","extensions/slack/src/monitor/media.runtime.ts","extensions/slack/src/monitor/media.ts","extensions/slack/src/monitor/slack-client-kind.ts"]},{"output":".setup/approval-handler.runtime-Cz4AcwuF.mjs","sha256":"c124983bf56a403fc9e901399a4c70ae44db4378ceab650ffd11db450e55b014","facadeSource":"extensions/slack/src/approval-handler.runtime.ts","sources":["extensions/slack/src/approval-handler.runtime.ts"]},{"output":".setup/approval-message-updates-CDf5hnhO.mjs","sha256":"e3559821300f5fe90c1424bc174dfed98ed314bfb1a865cb46464f864aab993a","facadeSource":null,"sources":["extensions/slack/src/approval-message-updates.ts"]},{"output":".setup/channel-BP1i40Jz.mjs","sha256":"8d4543a829e64b4856c2c9d187e040a5eca2d7cb69c5717a68fcddad19bfafe4","facadeSource":null,"sources":["extensions/slack/src/approval-native.ts","extensions/slack/src/channel-actions.ts","extensions/slack/src/channel.ts","extensions/slack/src/conversation-route-owner.ts","extensions/slack/src/enterprise-user-route.ts","extensions/slack/src/message-action-dispatch.ts","extensions/slack/src/threading-tool-context.ts"]},{"output":".setup/channel-meta-C443t-lI.mjs","sha256":"9c2859245e7b4af118b9e83309cfa1199171e136cee1722317d28e0d31a87180","facadeSource":null,"sources":["extensions/slack/src/channel-meta.ts"]},{"output":".setup/channel-type-DjOFlEWC.mjs","sha256":"6705acf5e21bd80a99b1fbe35d694b226eea081c553cfe549d36ac1a6684ef6d","facadeSource":null,"sources":["extensions/slack/src/channel-type.ts"]},{"output":".setup/channel.setup-DCR4c-Ju.mjs","sha256":"52816d2d44c00a6bf2665cb19b9de35ff3f59a28d6a87e78939e1226b6014fb5","facadeSource":null,"sources":["extensions/slack/src/channel.setup.ts","extensions/slack/src/config-adapter.ts","extensions/slack/src/setup-core.ts","extensions/slack/src/setup-shared.ts"]},{"output":".setup/config-schema-BH0K9-Um.mjs","sha256":"9e61d040fa0b62fd28f30d10cc0e8b214036d84f1bb41ad66d46460ba0ffa94d","facadeSource":null,"sources":["extensions/slack/src/config-schema.ts","extensions/slack/src/config-ui-hints.ts"]},{"output":".setup/directory-config-BEDZPfDn.mjs","sha256":"1c679f56b42aeda6a37e7f75a3bc6a02c222748b4babee9eadb23cb42ab9074d","facadeSource":null,"sources":["extensions/slack/src/directory-config.ts"]},{"output":".setup/directory-live-FipfeCwt.mjs","sha256":"da0cb680a1a8561a95b3b39cfbf9b7d8d8d1e356ab0ab21a7287e64dd9b6a213","facadeSource":null,"sources":["extensions/slack/src/directory-live.ts"]},{"output":".setup/doctor-contract-Cd4-VzIM.mjs","sha256":"b49d6223ab4fd59425141a9172be434537905dd9d9a4d1f77503d9d629a67151","facadeSource":null,"sources":["extensions/slack/src/doctor-contract.ts","extensions/slack/src/streaming-compat.ts","packages/normalization-core/src/record-coerce.ts","src/config/channel-config-normalization.ts","src/plugin-sdk/legacy-webhook-listener-migration.ts"]},{"output":".setup/message-tool-api-C7im5ETh.mjs","sha256":"0015ebc4937b425f341e3a4f19ed44039c019d4a1d4df16d53e18d325c0dacb1","facadeSource":null,"sources":["extensions/slack/src/message-actions.ts","extensions/slack/src/message-tool-api.ts"]},{"output":".setup/monitor-BuZrGeHk.mjs","sha256":"d1c7303d4192e120b39c7c62df75f12faabd575135fce2d44d7e9ac16add2ab0","facadeSource":null,"sources":["extensions/slack/src/channel-migration.ts","extensions/slack/src/draft-message-boundaries.ts","extensions/slack/src/interactive-dispatch.ts","extensions/slack/src/modal-metadata.ts","extensions/slack/src/monitor.ts","extensions/slack/src/monitor/agent-view-state.ts","extensions/slack/src/monitor/approval-runtime-context.ts","extensions/slack/src/monitor/assistant-thread-context.ts","extensions/slack/src/monitor/auth.ts","extensions/slack/src/monitor/channel-type.ts","extensions/slack/src/monitor/commands.ts","extensions/slack/src/monitor/context.ts","extensions/slack/src/monitor/deferred-action-routing.ts","extensions/slack/src/monitor/dm-auth.ts","extensions/slack/src/monitor/enterprise-install.ts","extensions/slack/src/monitor/event-scope.ts","extensions/slack/src/monitor/events.ts","extensions/slack/src/monitor/events/agent.ts","extensions/slack/src/monitor/events/assistant.ts","extensions/slack/src/monitor/events/channels.ts","extensions/slack/src/monitor/events/home.ts","extensions/slack/src/monitor/events/interaction-event.ts","extensions/slack/src/monitor/events/interactions.approval-sender.ts","extensions/slack/src/monitor/events/interactions.block-actions.ts","extensions/slack/src/monitor/events/interactions.modal.ts","extensions/slack/src/monitor/events/interactions.shortcuts.ts","extensions/slack/src/monitor/events/interactions.ts","extensions/slack/src/monitor/events/members.ts","extensions/slack/src/monitor/events/message-subtype-handlers.ts","extensions/slack/src/monitor/events/messages.ts","extensions/slack/src/monitor/events/modal-input-summary.ts","extensions/slack/src/monitor/events/pins.ts","extensions/slack/src/monitor/events/reactions.ts","extensions/slack/src/monitor/events/system-event-context.ts","extensions/slack/src/monitor/external-arg-menu-store.ts","extensions/slack/src/monitor/http-handler.ts","extensions/slack/src/monitor/ingress.ts","extensions/slack/src/monitor/message-dispatch-dedupe.ts","extensions/slack/src/monitor/message-handler.ts","extensions/slack/src/monitor/message-handler/debounce-key.ts","extensions/slack/src/monitor/message-handler/prepare-routing.ts","extensions/slack/src/monitor/presence-cooldown-store.ts","extensions/slack/src/monitor/presence-monitor.ts","extensions/slack/src/monitor/provider-support.ts","extensions/slack/src/monitor/provider.ts","extensions/slack/src/monitor/reconnect-policy.ts","extensions/slack/src/monitor/response-url-budget.ts","extensions/slack/src/monitor/room-context.ts","extensions/slack/src/monitor/runtime-policy.ts","extensions/slack/src/monitor/session-run-targets.ts","extensions/slack/src/monitor/slash.ts","extensions/slack/src/monitor/socket-mode-envelope.ts","extensions/slack/src/monitor/suggested-prompts.ts","extensions/slack/src/monitor/system-event-session.ts","extensions/slack/src/monitor/thread-resolution.ts","extensions/slack/src/streaming.ts","extensions/slack/src/threading.ts","extensions/slack/src/types.ts"]},{"output":".setup/outbound-adapter-BxfxyNoZ.mjs","sha256":"0ec2f66423a289e88856e595f30be3dbf75844f9bf180cc66cbbd8c65b52a67d","facadeSource":"extensions/slack/src/outbound-adapter.ts","sources":["extensions/slack/src/outbound-adapter.ts"]},{"output":".setup/pipeline.runtime-BquJCXGZ.mjs","sha256":"a4be2456e6f60c502dda4fc84a41bc17442b9ae1439237dd1a38065032380945","facadeSource":"extensions/slack/src/monitor/message-handler/pipeline.runtime.ts","sources":["extensions/slack/src/agent-context.ts","extensions/slack/src/draft-stream.ts","extensions/slack/src/monitor/message-handler/dispatch-helpers.ts","extensions/slack/src/monitor/message-handler/dispatch-progress-card.ts","extensions/slack/src/monitor/message-handler/dispatch-progress-native.ts","extensions/slack/src/monitor/message-handler/dispatch-progress-render.ts","extensions/slack/src/monitor/message-handler/dispatch-progress.ts","extensions/slack/src/monitor/message-handler/dispatch-setup.ts","extensions/slack/src/monitor/message-handler/dispatch-streaming.ts","extensions/slack/src/monitor/message-handler/dispatch.ts","extensions/slack/src/monitor/message-handler/preflight-audio.ts","extensions/slack/src/monitor/message-handler/prepare-content.ts","extensions/slack/src/monitor/message-handler/prepare-dm-history.ts","extensions/slack/src/monitor/message-handler/prepare-room-history.ts","extensions/slack/src/monitor/message-handler/prepare-session-presentation.ts","extensions/slack/src/monitor/message-handler/prepare-thread-context-root.ts","extensions/slack/src/monitor/message-handler/prepare-thread-context.ts","extensions/slack/src/monitor/message-handler/prepare-thread-mentions.ts","extensions/slack/src/monitor/message-handler/prepare.ts","extensions/slack/src/monitor/message-handler/preview-finalize.ts","extensions/slack/src/monitor/message-handler/subteam-mentions.ts","extensions/slack/src/monitor/message-handler/timestamp.ts","extensions/slack/src/monitor/thread.ts","extensions/slack/src/progress-blocks.ts","extensions/slack/src/stream-mode.ts","src/channels/mention-gating.ts"]},{"output":".setup/plugin-routes-B8tooDLj.mjs","sha256":"6807fcf3ddadca56e7c5fb24618aa0fb4a90fd8122019c6a419a8c1d101ae4b9","facadeSource":null,"sources":["extensions/slack/src/http/plugin-routes.ts"]},{"output":".setup/policy-CVFgJHQ1.mjs","sha256":"d6c2fb711fbe1d6b6cb05a4f5565c8a938d28b921a86ebc5d190c9903551bca1","facadeSource":null,"sources":["extensions/slack/src/monitor/channel-config.ts","extensions/slack/src/monitor/policy.ts"]},{"output":".setup/probe-CyX52GtD.mjs","sha256":"892a012fe40b6f8517fac140d8542b45d4812195d74538aa6e843e1c83543a57","facadeSource":null,"sources":["extensions/slack/src/client-options.ts","extensions/slack/src/client.ts","extensions/slack/src/cursor-pages.ts","extensions/slack/src/errors.ts","extensions/slack/src/monitor/allow-list.ts","extensions/slack/src/monitor/ingress-identity.ts","extensions/slack/src/monitor/lru-map-cache.ts","extensions/slack/src/probe.ts"]},{"output":".setup/registry-CIbMfuf8.mjs","sha256":"cd6833f1c991f545bbff77c95b64b743e01a1a51c8e89cc332f3cec3dcf4b4ac","facadeSource":null,"sources":["extensions/slack/src/http/paths.ts","extensions/slack/src/http/registry.ts"]},{"output":".setup/relay-source-BvsVNO2y.mjs","sha256":"7d3e2b27a11c41b958ad3f4f4e4b439a28495f9e129d36164366cd5290f9cfc1","facadeSource":"extensions/slack/src/monitor/relay-source.ts","sources":["extensions/slack/src/monitor/relay-source.ts"]},{"output":".setup/replies-XX4mv15E.mjs","sha256":"47f0853d9cb5cbaf40f7631f539656b991d0ca5dd65e0cdf8312a4dc765e5e5d","facadeSource":null,"sources":["extensions/slack/src/message-sent-hook.ts","extensions/slack/src/monitor/replies.ts"]},{"output":".setup/reply-blocks-DyvlYyy7.mjs","sha256":"12cba2f23dc6197ea1c2591f3abc40d4855b00b6de564678c802dec7d56d3d93","facadeSource":null,"sources":["extensions/slack/src/authored-text.ts","extensions/slack/src/blocks-render.ts","extensions/slack/src/reply-blocks.ts"]},{"output":".setup/resolve-channels-B96cgprw.mjs","sha256":"7e16e05d971bda1452b57c37644bd6ee10d042939a5879261efabc66683aecf0","facadeSource":null,"sources":["extensions/slack/src/resolve-channels.ts"]},{"output":".setup/resolve-users-Xz9aPdns.mjs","sha256":"db45099b06f9825c2621834fba8dc43e48e6c29690d47da0d3980c8669d62106","facadeSource":null,"sources":["extensions/slack/src/resolve-users.ts"]},{"output":".setup/rolldown-runtime-B4FMCO8f.mjs","sha256":"fcbee43c448920f8fe98ecc6ec974d3d100a0d6d19a223f5a135bfb261512c97","facadeSource":null,"sources":[]},{"output":".setup/runtime-JSVZSWAj.mjs","sha256":"bdc12ab895b35efc1ea3abeac2b050dbd7223c3accca9aad94baa9aaadb9123a","facadeSource":null,"sources":["extensions/slack/src/runtime.ts"]},{"output":".setup/runtime-setter-api-Cx_PV-xu.mjs","sha256":"459d6d1bc508399dbbfe2e5f654387d549a61897e2758c2f3b7537751aa847d8","facadeSource":"extensions/slack/runtime-setter-api.ts","sources":[]},{"output":".setup/scopes-aMcMHhXk.mjs","sha256":"d716ecd4eaa73b8352f3871dfa2dd311c931b1d6e509bcd4ad209c536c6a7078","facadeSource":"extensions/slack/src/scopes.ts","sources":["extensions/slack/src/scopes.ts"]},{"output":".setup/secret-contract-api-CQNCC4ux.mjs","sha256":"0596b32b828803810ae28584f5d993a21b8a9a459608536a8acaf927f9a26532","facadeSource":"extensions/slack/secret-contract-api.ts","sources":[]},{"output":".setup/secret-contract-vVRMoE1D.mjs","sha256":"0c6bc0f1d39e4be6c2d3bee72f0342167530ad32853892bfaf98828a2c890c01","facadeSource":null,"sources":["extensions/slack/src/secret-contract.ts"]},{"output":".setup/security-audit-C1nOGzJa.mjs","sha256":"73fe8957e43ee69a8a3bc780f0a519cc2fc9e5d18a5eb3acda178dc6bc221d39","facadeSource":null,"sources":["extensions/slack/src/security-audit.ts"]},{"output":".setup/send-DfRHvECF.mjs","sha256":"121dad5591113894bc47df657e9e3ac4c01b3033dac0e6c21c073c4a4ece6557","facadeSource":null,"sources":["extensions/slack/src/client-delivery.ts","extensions/slack/src/native-data-fallback.ts","extensions/slack/src/post-message-identity.ts","extensions/slack/src/post-message-payload.ts","extensions/slack/src/send.ts","extensions/slack/src/sent-thread-cache.ts","extensions/slack/src/slack-dm-channel-cache.ts"]},{"output":".setup/send-results-eeOu_HYm.mjs","sha256":"537adf38bb52b98f8693b8904c1bb0161f5a61c08ced67cd8ffa95ecc44b8778","facadeSource":null,"sources":["extensions/slack/src/send-results.ts"]},{"output":".setup/session-status-D_THGrJl.mjs","sha256":"c677dbde22d03d2c2654d431d0f9e3801ac4c2aa6bcd26465d99bb2cbf29afed","facadeSource":null,"sources":["extensions/slack/src/action-threading.ts","extensions/slack/src/approval-actions.ts","extensions/slack/src/approval-auth.ts","extensions/slack/src/approval-native-gates.ts","extensions/slack/src/approval-plugin-policy.ts","extensions/slack/src/blocks-fallback.ts","extensions/slack/src/blocks-input.ts","extensions/slack/src/conversation-binding-route.ts","extensions/slack/src/data-table.ts","extensions/slack/src/data-visualization.ts","extensions/slack/src/detached-target-admission.ts","extensions/slack/src/exec-approvals.ts","extensions/slack/src/format.ts","extensions/slack/src/group-policy.ts","extensions/slack/src/installation-identity-state.ts","extensions/slack/src/limits.ts","extensions/slack/src/monitor/mrkdwn.ts","extensions/slack/src/monitor/workspace-routing.ts","extensions/slack/src/native-data-blocks.ts","extensions/slack/src/presentation-fallback.ts","extensions/slack/src/presentation.ts","extensions/slack/src/question-actions.ts","extensions/slack/src/reply-action-ids.ts","extensions/slack/src/rich-text.ts","extensions/slack/src/session-status.ts","extensions/slack/src/truncate.ts"]},{"output":".setup/setup-plugin-api-XPY6h-pH.mjs","sha256":"10ebfab62073b49be8ae46f255a417031b0be89840e63436aee80c2987fd984c","facadeSource":"extensions/slack/setup-plugin-api.ts","sources":[]},{"output":".setup/setup-surface-DEVI3LNZ.mjs","sha256":"8344ec1738b335de16974982ffa3ae0967a78aba9b804788ece71b656e55302b","facadeSource":"extensions/slack/src/setup-surface.ts","sources":["extensions/slack/src/setup-surface.ts"]},{"output":".setup/shared-BDNmTlkh.mjs","sha256":"109e2348f76943576b4a1300da11a647c75e29e4dd7e33f4cab64eb7f08eb102","facadeSource":null,"sources":["extensions/slack/src/doctor.ts","extensions/slack/src/security-doctor.ts","extensions/slack/src/security.ts","extensions/slack/src/shared.ts"]},{"output":".setup/slash-dispatch.runtime-DzB9z0Xl.mjs","sha256":"d5020692361cabd9d238474b925277a5253f409b5bfee5c6119af6666629082d","facadeSource":"extensions/slack/src/monitor/slash-dispatch.runtime.ts","sources":[]},{"output":".setup/target-parsing-FFE26kOV.mjs","sha256":"89456e9a292d400c036b295073e5c95655912c002a655dac7b9cd6b53df0d4b8","facadeSource":null,"sources":["extensions/slack/src/target-parsing.ts"]},{"output":".setup/targets-C6LZQL1Q.mjs","sha256":"e977c787d9c4f44bc2eea643e072e7f98af6814125dc1a96d25266264e2017a8","facadeSource":null,"sources":["extensions/slack/src/targets.ts"]},{"output":".setup/thread-ts-Cvt7WD6B.mjs","sha256":"00e816eefbf22d06ca8a285a83b40fea4a2bfbb9d0561e3c80a9ef08b161fa41","facadeSource":null,"sources":["extensions/slack/src/thread-ts.ts"]},{"output":"account-inspect-api.js","sha256":"03b12ad51290de7b9a8b001325017186454a59890a532165a7a46138272012cf","facadeSource":"extensions/slack/account-inspect-api.ts","sources":["extensions/slack/account-inspect-api.ts"]},{"output":"api.js","sha256":"face4cc87980f18910fad3908f445cff7cb74842059fcca81fa6d14c76719f34","facadeSource":"extensions/slack/api.ts","sources":[]},{"output":"channel-config-api.js","sha256":"bb4decfd77bf97f5618f26125e025276d7081020b89978207f8ead126f668298","facadeSource":"extensions/slack/channel-config-api.ts","sources":[]},{"output":"channel-entry.js","sha256":"db4699f8ffe20a62ca6011814b4a20f3fcf49c905f9864c97cb41fabef0e0ba4","facadeSource":"extensions/slack/channel-entry.ts","sources":["extensions/slack/channel-entry.ts"]},{"output":"channel-plugin-api.js","sha256":"88f72ae3433cd8033e601f6d5f5cf9cd7b3d5843b80724fa06d43b1cd251395c","facadeSource":"extensions/slack/channel-plugin-api.ts","sources":[]},{"output":"configured-state.js","sha256":"e3269def4c411a8feeb67f01b26a54719792a3feea118a1280ef5a975bcc8e67","facadeSource":"extensions/slack/configured-state.ts","sources":["extensions/slack/configured-state.ts"]},{"output":"contract-api.js","sha256":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881","facadeSource":"extensions/slack/contract-api.ts","sources":[]},{"output":"directory-contract-api.js","sha256":"4aad99a86be619e1306f6e01b55777ee409191b5ad8ab7dd349b5d02b76fed7d","facadeSource":"extensions/slack/directory-contract-api.ts","sources":[]},{"output":"doctor-contract-api.js","sha256":"9e7afbb04ac8ce8e4ca6a801bb43533ae879c4f781245156d38bfa4afb12d994","facadeSource":"extensions/slack/doctor-contract-api.ts","sources":[]},{"output":"http-routes-api.js","sha256":"7e25eac01bd5146f5583bac6bf60ec777576e3de83bc9a9b2d017801a16e9ce7","facadeSource":"extensions/slack/http-routes-api.ts","sources":[]},{"output":"index.js","sha256":"063c52dcf87a3efe50e04cb33b9da12d20ea57bc5acc065dcb213fde2ff6a2a3","facadeSource":"extensions/slack/index.ts","sources":["extensions/slack/index.ts"]},{"output":"message-tool-api.js","sha256":"2e240812db2aba3bb3fb60e63f7c29c44f577d1f0c259945e3fdca9817e19458","facadeSource":"extensions/slack/message-tool-api.ts","sources":[]},{"output":"runtime-api.js","sha256":"b1bcfc34f110f441a7c9b7f2b5ef4e8670d0e98e9c9c687ca2005db60ab7175a","facadeSource":"extensions/slack/runtime-api.ts","sources":[]},{"output":"runtime-setter-api.js","sha256":"922b8e00df9d5b8ec92d98bda060404d5abd7644b3b5184db64a58077dbe0b5b","facadeSource":"extensions/slack/runtime-setter-api.ts","sources":[]},{"output":"secret-contract-api.js","sha256":"7c23ae80d2da44504d8bc04914233a70afbeac6f44ca75549fd39e4d99bb85b4","facadeSource":"extensions/slack/secret-contract-api.ts","sources":[]},{"output":"security-contract-api.js","sha256":"5b67bbe12d3cf69bd4b563a93659a719eec92900d95a10098db5aac15573f76d","facadeSource":"extensions/slack/security-contract-api.ts","sources":[]},{"output":"setup-entry.js","sha256":"9b2f434c1f74495156d3ff91851eb5da41d670cf6591837e77c03e6f591e7236","facadeSource":"extensions/slack/setup-entry.ts","sources":["extensions/slack/setup-entry.ts"]},{"output":"setup-plugin-api.js","sha256":"29d57ab4029b6d87d459ab712961fde0456e695f62d95e156a09314b249a03bd","facadeSource":"extensions/slack/setup-plugin-api.ts","sources":[]}],"unrenderedSources":["extensions/slack/api.ts","extensions/slack/channel-config-api.ts","extensions/slack/channel-plugin-api.ts","extensions/slack/config-doctor-api.ts","extensions/slack/contract-api.ts","extensions/slack/directory-contract-api.ts","extensions/slack/doctor-contract-api.ts","extensions/slack/http-routes-api.ts","extensions/slack/message-tool-api.ts","extensions/slack/runtime-api.ts","extensions/slack/runtime-setter-api.ts","extensions/slack/secret-contract-api.ts","extensions/slack/security-contract-api.ts","extensions/slack/setup-plugin-api.ts","extensions/slack/src/action-runtime.runtime.ts","extensions/slack/src/http/index.ts","extensions/slack/src/monitor/media-types.ts","extensions/slack/src/monitor/message-handler/pipeline.runtime.ts","extensions/slack/src/monitor/slash-dispatch.runtime.ts"]}
package/dist/api.js CHANGED
@@ -5,11 +5,11 @@ import { a as parseSlackTarget, i as normalizeSlackMessagingTarget, o as resolve
5
5
  import "./.setup/targets-C6LZQL1Q.mjs";
6
6
  import { Bt as resolveSlackAutoThreadId, a as resolveSlackGroupRequireMention, ft as SLACK_MAX_BLOCKS, mt as validateSlackBlocksArray, o as resolveSlackGroupToolPolicy, pt as parseSlackBlocksInput } from "./.setup/session-status-D_THGrJl.mjs";
7
7
  import { A as resolveSlackAllowListMatch, D as allowListMatches, E as resolveSlackWriteClientOptions, M as resolveSlackUserAllowed, O as normalizeSlackAllowOwnerEntry, S as SLACK_WRITE_RETRY_OPTIONS, T as resolveSlackWebClientOptions, _ as getSlackWriteClient, h as createSlackWriteClient, k as normalizeSlackSlug, m as createSlackWebClient, p as createSlackTokenCacheKey, t as probeSlack, x as SLACK_DEFAULT_RETRY_OPTIONS } from "./.setup/probe-CyX52GtD.mjs";
8
- import { n as buildSlackThreadingToolContext, t as slackPlugin } from "./.setup/channel-ChScqMJw.mjs";
8
+ import { n as buildSlackThreadingToolContext, t as slackPlugin } from "./.setup/channel-BP1i40Jz.mjs";
9
9
  import { d as buildSlackInteractiveBlocks, f as buildSlackPresentationBlocks } from "./.setup/reply-blocks-DyvlYyy7.mjs";
10
10
  import { n as extractSlackToolSend, r as listSlackMessageActions } from "./.setup/message-tool-api-C7im5ETh.mjs";
11
11
  import { n as resolveSlackChannelType } from "./.setup/channel-type-DjOFlEWC.mjs";
12
- import { t as slackSetupPlugin } from "./.setup/channel.setup-BFpQowO3.mjs";
12
+ import { t as slackSetupPlugin } from "./.setup/channel.setup-DCR4c-Ju.mjs";
13
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 "./.setup/actions-DH287DuD.mjs";
14
14
  import { a as clearSlackThreadParticipationCache, s as hasSlackThreadParticipation, u as recordSlackThreadParticipation } from "./.setup/send-DfRHvECF.mjs";
15
15
  import { n as listSlackDirectoryGroupsFromConfig, r as listSlackDirectoryPeersFromConfig } from "./.setup/directory-config-BEDZPfDn.mjs";
@@ -1 +1 @@
1
- export { t as slackPlugin } from "./.setup/channel-ChScqMJw.mjs";
1
+ export { t as slackPlugin } from "./.setup/channel-BP1i40Jz.mjs";
@@ -7,7 +7,7 @@ import { c as listSlackPins, d as reactSlackMessage, f as readSlackMessages, g a
7
7
  import { t as sendMessageSlack } from "./.setup/send-DfRHvECF.mjs";
8
8
  import { n as slackActionRuntime, t as handleSlackAction } from "./.setup/action-runtime-DP76Xs8B.mjs";
9
9
  import { n as listSlackDirectoryGroupsLive, r as listSlackDirectoryPeersLive } from "./.setup/directory-live-FipfeCwt.mjs";
10
- import { n as monitorSlackProvider } from "./.setup/monitor-CsMog7BO.mjs";
10
+ import { n as monitorSlackProvider } from "./.setup/monitor-BuZrGeHk.mjs";
11
11
  import { t as resolveSlackChannelAllowlist } from "./.setup/resolve-channels-B96cgprw.mjs";
12
12
  import { t as resolveSlackUserAllowlist } from "./.setup/resolve-users-Xz9aPdns.mjs";
13
13
  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 +1 @@
1
- export { t as channelSecrets, n as collectRuntimeConfigAssignments, r as secretTargetRegistryEntries } from "./.setup/secret-contract-B-Qm6aQQ.mjs";
1
+ export { t as channelSecrets, n as collectRuntimeConfigAssignments, r as secretTargetRegistryEntries } from "./.setup/secret-contract-vVRMoE1D.mjs";
@@ -4,11 +4,11 @@ import { fileURLToPath } from "node:url";
4
4
  var setup_entry_default = defineBundledChannelSetupEntry({
5
5
  importMetaUrl: import.meta.url,
6
6
  plugin: {
7
- specifier: fileURLToPath(new URL(".setup/setup-plugin-api-D7rHLiNk.mjs", import.meta.url).href),
7
+ specifier: fileURLToPath(new URL(".setup/setup-plugin-api-XPY6h-pH.mjs", import.meta.url).href),
8
8
  exportName: "slackSetupPlugin"
9
9
  },
10
10
  secrets: {
11
- specifier: fileURLToPath(new URL(".setup/secret-contract-api-DB6CMdgc.mjs", import.meta.url).href),
11
+ specifier: fileURLToPath(new URL(".setup/secret-contract-api-CQNCC4ux.mjs", import.meta.url).href),
12
12
  exportName: "channelSecrets"
13
13
  },
14
14
  runtime: {
@@ -1 +1 @@
1
- export { t as slackSetupPlugin } from "./.setup/channel.setup-BFpQowO3.mjs";
1
+ export { t as slackSetupPlugin } from "./.setup/channel.setup-DCR4c-Ju.mjs";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@openclaw/slack",
3
- "version": "2026.10.7",
3
+ "version": "2026.10.8",
4
4
  "description": "OpenClaw Slack channel plugin for channels, DMs, commands, and app events.",
5
5
  "repository": {
6
6
  "type": "git",
@@ -17,7 +17,7 @@
17
17
  "zod": "4.6.5"
18
18
  },
19
19
  "peerDependencies": {
20
- "openclaw": ">=2026.10.7"
20
+ "openclaw": ">=2026.10.8"
21
21
  },
22
22
  "peerDependenciesMeta": {
23
23
  "openclaw": {
@@ -150,10 +150,10 @@
150
150
  "allowInvalidConfigRecovery": true
151
151
  },
152
152
  "compat": {
153
- "pluginApi": ">=2026.10.7"
153
+ "pluginApi": ">=2026.10.8"
154
154
  },
155
155
  "build": {
156
- "openclawVersion": "2026.10.7",
156
+ "openclawVersion": "2026.10.8",
157
157
  "bundledDist": false
158
158
  },
159
159
  "release": {
@@ -1,2 +0,0 @@
1
- export { t as slackSetupPlugin } from "./channel.setup-BFpQowO3.mjs";
2
- import "../setup-plugin-api.js";