@openclaw/slack 2026.9.34 → 2026.9.35

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.
@@ -586,7 +586,7 @@ const loadSlackResolveUsersModule = createLazyRuntimeModule(() => import("./reso
586
586
  const loadSlackActionRuntime = createLazyRuntimeModule(() => import("./action-runtime.runtime-BhXBcznI.mjs"));
587
587
  const loadSlackSendRuntime = createLazyRuntimeModule(() => import("./send-BSQKD4nx.mjs").then((n) => n.n));
588
588
  const loadSlackProbeModule = createLazyRuntimeModule(() => import("./probe-B2Y9qc_z.mjs").then((n) => n.n));
589
- const loadSlackMonitorModule = createLazyRuntimeModule(() => import("./monitor-0RYQ8Lt4.mjs").then((n) => n.t));
589
+ const loadSlackMonitorModule = createLazyRuntimeModule(() => import("./monitor-CX8JFutk.mjs").then((n) => n.t));
590
590
  const loadSlackDirectoryLiveModule = createLazyRuntimeModule(() => import("./directory-live-B2O4B_Ho.mjs").then((n) => n.t));
591
591
  async function setSlackHeartbeatThreadStatus(params) {
592
592
  const threadTs = resolveSlackThreadTsValue({ threadId: params.threadId });
@@ -491,6 +491,9 @@ function resolveSlackIdentityHealth(params) {
491
491
  //#endregion
492
492
  //#region extensions/slack/src/monitor/reconnect-policy.ts
493
493
  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;
494
+ 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;
495
+ /** Consecutive isolated invalid_auth failures before the channel turns terminal. */
496
+ const SLACK_ISOLATED_INVALID_AUTH_TERMINAL_LIMIT = 3;
494
497
  const SLACK_SOCKET_RECONNECT_POLICY = {
495
498
  initialMs: 2e3,
496
499
  maxMs: 3e4,
@@ -584,6 +587,28 @@ function waitForSlackSocketDisconnect(app, abortSignal) {
584
587
  function isNonRecoverableSlackAuthError(error) {
585
588
  return SLACK_AUTH_ERROR_RE.test(formatSlackError(error, ""));
586
589
  }
590
+ /** Terminal, retryable-isolated, or undefined (not auth-shaped) for this failure. */
591
+ function nextSlackAuthFailureState(error, consecutiveInvalidAuth) {
592
+ if (error && isIsolatedInvalidAuthSlackError(error)) {
593
+ const next = consecutiveInvalidAuth + 1;
594
+ return next >= SLACK_ISOLATED_INVALID_AUTH_TERMINAL_LIMIT ? {
595
+ decision: "terminal",
596
+ consecutiveInvalidAuth: next
597
+ } : {
598
+ decision: "retry-isolated",
599
+ consecutiveInvalidAuth: next
600
+ };
601
+ }
602
+ return {
603
+ decision: error && isNonRecoverableSlackAuthError(error) ? "terminal" : void 0,
604
+ consecutiveInvalidAuth
605
+ };
606
+ }
607
+ /** Isolated invalid_auth: auth-shaped, but not a definitive credential verdict. */
608
+ function isIsolatedInvalidAuthSlackError(error) {
609
+ const text = formatSlackError(error, "");
610
+ return /invalid_auth/i.test(text) && !SLACK_DEFINITIVE_AUTH_ERROR_RE.test(text);
611
+ }
587
612
  //#endregion
588
613
  //#region extensions/slack/src/monitor/socket-mode-envelope.ts
589
614
  function installSlackSocketModeEnvelopeGuard(client, acknowledge, logger) {
@@ -705,6 +730,14 @@ function publishSlackConnectedStatus(setStatus, identityHealth = {
705
730
  lastConnectedAt
706
731
  }) : channelReadyPatch({ lastConnectedAt }));
707
732
  }
733
+ function trackSlackAuthFailure(failure, phase, setStatus, logError, state) {
734
+ const auth = nextSlackAuthFailureState(failure, state.consecutiveInvalidAuth);
735
+ state.consecutiveInvalidAuth = auth.consecutiveInvalidAuth;
736
+ if (auth.decision !== "terminal") return;
737
+ publishSlackBlockedStatus(setStatus, failure);
738
+ logError(`slack ${phase} (${formatSlackError(failure)})`);
739
+ throw failure instanceof Error ? failure : new Error(formatSlackError(failure));
740
+ }
708
741
  function publishSlackBlockedStatus(setStatus, error) {
709
742
  if (!setStatus) return;
710
743
  setStatus(channelBlockedPatch(formatSlackError(error), { connected: false }));
@@ -2898,7 +2931,7 @@ const SLACK_COMMAND_ARG_CONFIRM_TEXT_MAX = 300;
2898
2931
  const SLACK_HEADER_TEXT_MAX = 150;
2899
2932
  const SLACK_COMMAND_ARG_ACTION_BLOCKS_MAX = 47;
2900
2933
  const loadSlashCommandsRuntime = createLazyRuntimeModule(() => import("openclaw/plugin-sdk/command-auth-native"));
2901
- const loadSlashDispatchRuntime = createLazyRuntimeModule(() => import("./slash-dispatch.runtime-D_QM_3Cg.mjs"));
2934
+ const loadSlashDispatchRuntime = createLazyRuntimeModule(() => import("./slash-dispatch.runtime-B_jVFfTv.mjs"));
2902
2935
  const loadPluginCommandRuntime = createLazyRuntimeModule(() => import("openclaw/plugin-sdk/plugin-command-runtime"));
2903
2936
  function resolveSlackCommandMenuModelContext(params) {
2904
2937
  if (!params.sessionKey.trim()) return {};
@@ -6092,7 +6125,7 @@ function buildSlackDebounceKey(message, accountId, teamId) {
6092
6125
  }
6093
6126
  //#endregion
6094
6127
  //#region extensions/slack/src/monitor/message-handler.ts
6095
- const loadSlackMessagePipeline = createLazyRuntimeModule(() => import("./pipeline.runtime-DhQXp3fP.mjs"));
6128
+ const loadSlackMessagePipeline = createLazyRuntimeModule(() => import("./pipeline.runtime-DpcyomUm.mjs"));
6096
6129
  const RETRYABLE_FLUSH_MAX_ATTEMPTS = 3;
6097
6130
  const RETRYABLE_FLUSH_RETRY_DELAY_MS = 1e3;
6098
6131
  const REPLY_SESSION_INIT_CONFLICT_MESSAGE_RE = /reply session initialization conflicted for \S+/u;
@@ -6653,7 +6686,7 @@ async function getSlackBoltInterop() {
6653
6686
  }
6654
6687
  return slackBoltInterop;
6655
6688
  }
6656
- const loadSlackRelaySource = createLazyRuntimeModule(() => import("./relay-source-DL5bqusA.mjs"));
6689
+ const loadSlackRelaySource = createLazyRuntimeModule(() => import("./relay-source-D89S2hfg.mjs"));
6657
6690
  function resolveSlackRuntimeIdentity(params) {
6658
6691
  const botUserId = normalizeOptionalString(params.botUserId);
6659
6692
  const botId = normalizeOptionalString(params.botId);
@@ -7055,6 +7088,8 @@ async function monitorSlackProvider(opts = {}) {
7055
7088
  }
7056
7089
  if (slackMode === "socket") {
7057
7090
  let reconnectAttempts = 0;
7091
+ const authState = { consecutiveInvalidAuth: 0 };
7092
+ const logError = (message) => runtime.error?.(message);
7058
7093
  let hasLoggedSocketConnected = false;
7059
7094
  while (!opts.abortSignal?.aborted) try {
7060
7095
  const disconnect = await startSlackSocketAndWaitForDisconnect({
@@ -7062,6 +7097,7 @@ async function monitorSlackProvider(opts = {}) {
7062
7097
  abortSignal: opts.abortSignal,
7063
7098
  onStarted: async () => {
7064
7099
  reconnectAttempts = 0;
7100
+ authState.consecutiveInvalidAuth = 0;
7065
7101
  await recoverSlackIdentity();
7066
7102
  publishSlackConnectedStatus(opts.setStatus, ctx.identityHealth);
7067
7103
  if (!hasLoggedSocketConnected) {
@@ -7073,11 +7109,7 @@ async function monitorSlackProvider(opts = {}) {
7073
7109
  if (!disconnect) break;
7074
7110
  if (opts.abortSignal?.aborted) break;
7075
7111
  publishSlackDisconnectedStatus(opts.setStatus, disconnect.error);
7076
- if (disconnect.error && isNonRecoverableSlackAuthError(disconnect.error)) {
7077
- publishSlackBlockedStatus(opts.setStatus, disconnect.error);
7078
- runtime.error?.(`slack socket mode disconnected due to non-recoverable auth error — skipping channel (${formatSlackError(disconnect.error)})`);
7079
- throw disconnect.error instanceof Error ? disconnect.error : new Error(formatSlackError(disconnect.error));
7080
- }
7112
+ trackSlackAuthFailure(disconnect.error, "auth: disconnected, skipping channel", opts.setStatus, logError, authState);
7081
7113
  reconnectAttempts += 1;
7082
7114
  const delayMs = computeBackoff(SLACK_SOCKET_RECONNECT_POLICY, reconnectAttempts);
7083
7115
  runtime.log?.(warn(formatSlackSocketReconnectMessage({
@@ -7093,11 +7125,7 @@ async function monitorSlackProvider(opts = {}) {
7093
7125
  break;
7094
7126
  }
7095
7127
  } catch (err) {
7096
- if (isNonRecoverableSlackAuthError(err)) {
7097
- publishSlackBlockedStatus(opts.setStatus, err);
7098
- runtime.error?.(`slack socket mode failed to start due to non-recoverable auth error — skipping channel (${formatSlackError(err)})`);
7099
- throw err;
7100
- }
7128
+ trackSlackAuthFailure(err, "auth: start failed, skipping channel", opts.setStatus, logError, authState);
7101
7129
  publishSlackDisconnectedStatus(opts.setStatus, err);
7102
7130
  reconnectAttempts += 1;
7103
7131
  const 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-B-E1iXQh.mjs";
9
9
  import { c as hasSlackThreadParticipationWithPersistence, i as clearSlackThreadFailureNotice, l as recordSlackThreadFailureNotice, o as hasSlackThreadFailureNotice, p as buildSlackNativeDataDeliveryPlan, s as hasSlackThreadParticipation, t as sendMessageSlack, u as recordSlackThreadParticipation } from "./send-BSQKD4nx.mjs";
10
10
  import { n as resolveSlackChannelConfig } from "./policy-D7nmaTmD.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-0RYQ8Lt4.mjs";
12
- import { a as emitSlackMessageSentHooks, i as sanitizeSlackMonitorReplyPayload, n as deliverReplies, t as createSlackReplyDeliveryPlan } from "./replies-BHFmop3k.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-CX8JFutk.mjs";
12
+ import { a as emitSlackMessageSentHooks, i as sanitizeSlackMonitorReplyPayload, n as deliverReplies, t as createSlackReplyDeliveryPlan } from "./replies-DsANnslp.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, createChannelMessageReplyPipeline, createChannelProgressDraftCompositor, createChannelProgressWorkCounter, createDraftStreamLoop, createFinalizableDraftLifecycle, createLivePreviewLifecycle, createMessageReceiptFromOutboundResults, formatChannelProgressDraftDiffStat, formatPlanChecklistLines, resolveAgentOutboundIdentity, resolveChannelMessageSourceReplyDeliveryMode, resolveChannelProgressDraftConfig, resolveChannelProgressDraftMaxLineChars, resolveChannelStreamingBlockEnabled, resolveChannelStreamingPreviewToolProgress, resolveChannelStreamingSuppressDefaultToolProgressMessages } from "openclaw/plugin-sdk/channel-outbound";
@@ -1,11 +1,11 @@
1
1
  import { o as formatSlackError } from "./probe-B2Y9qc_z.mjs";
2
- import { d as parseSlackMessageEvent, f as requireSlackMessageEvent, x as SLACK_SOCKET_RECONNECT_POLICY } from "./monitor-0RYQ8Lt4.mjs";
2
+ import { d as parseSlackMessageEvent, f as requireSlackMessageEvent, x as SLACK_SOCKET_RECONNECT_POLICY } from "./monitor-CX8JFutk.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 { C as buildSlackBlocksFallbackText, Z as markdownToSlackMrkdwnChunks, b
2
2
  import { n as iterateSlackReplyDeliveryMessages, o as resolveSlackReplyBlockResolution, t as hasSlackReplyStructuredContent } from "./reply-blocks-BntCJ7mr.mjs";
3
3
  import { n as resolveSlackReplyThreadTs } from "./thread-ts-Cvt7WD6B.mjs";
4
4
  import { m as chunkSlackTextAtHardLimit, p as buildSlackNativeDataDeliveryPlan, t as sendMessageSlack } from "./send-BSQKD4nx.mjs";
5
- import { a as SlackResponseAlreadyReportedError, o as createSlackResponseUrlBudget } from "./monitor-0RYQ8Lt4.mjs";
5
+ import { a as SlackResponseAlreadyReportedError, o as createSlackResponseUrlBudget } from "./monitor-CX8JFutk.mjs";
6
6
  import { createMessageReceiptFromOutboundResults } from "openclaw/plugin-sdk/channel-outbound";
7
7
  import { sanitizeAssistantVisibleText } from "openclaw/plugin-sdk/text-chunking";
8
8
  import { createReplyReferencePlanner } from "openclaw/plugin-sdk/reply-reference";
@@ -1,4 +1,4 @@
1
- import { i as sanitizeSlackMonitorReplyPayload, r as deliverSlackSlashReplies } from "./replies-BHFmop3k.mjs";
1
+ import { i as sanitizeSlackMonitorReplyPayload, r as deliverSlackSlashReplies } from "./replies-DsANnslp.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-sUohAxZr.mjs","sha256":"82fcabfb7b188ada842e8d3ce4cdb58919c010a37ce05edf88033ac332198ffe","facadeSource":null,"sources":["extensions/slack/src/account-configured.ts"]},{"output":".setup/account-inspect-DWBXpER6.mjs","sha256":"ab057df3481a5e7e4d618756e61b5a4ef6a6bbbcdef7b4d77bea2b46d1c20838","facadeSource":null,"sources":["extensions/slack/src/account-inspect.ts"]},{"output":".setup/accounts-D_N9IqNA.mjs","sha256":"16fd7747f988f365337ee760fa9c00541b66a72f1cfa758255d195e80333c333","facadeSource":null,"sources":["extensions/slack/src/account-reply-mode.ts","extensions/slack/src/accounts.ts","extensions/slack/src/token.ts"]},{"output":".setup/action-runtime-DrJGFq6u.mjs","sha256":"d88e1d22cc6e1c775539ec4b0f6f66745a84aa8863def7124c6b5bf4505cd4bc","facadeSource":null,"sources":["extensions/slack/src/action-runtime.ts"]},{"output":".setup/action-runtime.runtime-BhXBcznI.mjs","sha256":"2c8291809facf90ae23f7c38eba08e192843be9fd4fceb07f6f9a94b9ef2d7e2","facadeSource":"extensions/slack/src/action-runtime.runtime.ts","sources":[]},{"output":".setup/actions-B-E1iXQh.mjs","sha256":"8bd427bc0f2fa1013702bedeb14e35a9b4171adcb12ee5fda8ee1c8a69159def","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-B4zv4Cy-.mjs","sha256":"d9f6f74f9a90e4a9e9b4e1c5ee0aeb8a154e3d6cecdb0fe1c0cd96ca78d36580","facadeSource":"extensions/slack/src/approval-handler.runtime.ts","sources":["extensions/slack/src/approval-handler.runtime.ts"]},{"output":".setup/approval-message-updates-Psy357ys.mjs","sha256":"e512c51e8574de2c5ac5e6aefd666aa66766916fc9105d5bc047b37063ca0f37","facadeSource":null,"sources":["extensions/slack/src/approval-message-updates.ts"]},{"output":".setup/channel-CLZVpPR0.mjs","sha256":"a8652af83e064d6e325d1fc5317bcd8304e5f80dd50bf5606e4b2538564050e1","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-DdNW4_3Y.mjs","sha256":"0535b73da829ca76b67b0030b57ef568123f121ea933163e47e1a18128077cbb","facadeSource":null,"sources":["extensions/slack/src/channel-type.ts"]},{"output":".setup/channel.setup-Dh2jzAjN.mjs","sha256":"b5f1ed7eb81c50286316e253738683f3c109e94d17950ba28aacb4bf070d4538","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-BZCxmHKG.mjs","sha256":"5c76e3a84299f218857440091c54a7aaa9b3c6cb751b66647fecbe47af7e1850","facadeSource":null,"sources":["extensions/slack/src/config-schema.ts","extensions/slack/src/config-ui-hints.ts"]},{"output":".setup/directory-config-BOUWH3hR.mjs","sha256":"79a1f38c13d61173b8093faeb3f879fbc44416ac186f0fec4c4a9afa51bc7757","facadeSource":null,"sources":["extensions/slack/src/directory-config.ts"]},{"output":".setup/directory-live-B2O4B_Ho.mjs","sha256":"4db7e91f5a2a6f3c458f448d80bcd4205f3c31ea87e84812aa2c89419213f9ae","facadeSource":null,"sources":["extensions/slack/src/directory-live.ts"]},{"output":".setup/doctor-contract-CRN1Z_c7.mjs","sha256":"5717c9afd8aeb5d758d4e8949ef73a817db900184e8d7a5b290046fe1d5a14fa","facadeSource":null,"sources":["extensions/slack/src/doctor-contract.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-Cu4lwlGy.mjs","sha256":"5c8459024c265cec8a0efd77efe9b0063e8e15369b46cea1d4fa17d7b88450b0","facadeSource":null,"sources":["extensions/slack/src/message-actions.ts","extensions/slack/src/message-tool-api.ts"]},{"output":".setup/monitor-CX8JFutk.mjs","sha256":"67bf9d2bd8821f1e02935d540446a26d760270fe96573fc4b5f4e2e3ccb7631c","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/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-BGeEF1Tb.mjs","sha256":"bc96be64567ae188f482fd46ae6ef3783b999360c4dc4625fdc610cba0b25d58","facadeSource":"extensions/slack/src/outbound-adapter.ts","sources":["extensions/slack/src/outbound-adapter.ts"]},{"output":".setup/pipeline.runtime-DpcyomUm.mjs","sha256":"d29246dbb1025c1de7e0abc3bf5c67abf0d3c77222b319cc953a25fe8b3453e9","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-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-D7nmaTmD.mjs","sha256":"0ae67b64d5a7b076a762a91f44713af0f5e85d9efbd29feeab5f3f69b2a5feb6","facadeSource":null,"sources":["extensions/slack/src/monitor/channel-config.ts","extensions/slack/src/monitor/policy.ts"]},{"output":".setup/probe-B2Y9qc_z.mjs","sha256":"57867725eb23ff26972b8ff7fd2268312bfd7cf68b924e9ada5dc7dafe83eade","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-D89S2hfg.mjs","sha256":"cfba198d3d1f4a426ff248b123efb33e47a8dfeb215d03d69d4293b65be6edbb","facadeSource":"extensions/slack/src/monitor/relay-source.ts","sources":["extensions/slack/src/monitor/relay-source.ts"]},{"output":".setup/replies-DsANnslp.mjs","sha256":"c65588cf8f0f586a3f54ebcf3620d47f242bc043d2147ae796ed9474f557eca5","facadeSource":null,"sources":["extensions/slack/src/message-sent-hook.ts","extensions/slack/src/monitor/replies.ts"]},{"output":".setup/reply-blocks-BntCJ7mr.mjs","sha256":"0798f5abf3dcb0ae0086e9e8c21257b372d6d68fd7989ce36dcb487cd64c0746","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-XXBn8UU_.mjs","sha256":"057aa5d458bc8be81c79243b809c463e31a709659ad49a76e44783f814f840ee","facadeSource":null,"sources":["extensions/slack/src/resolve-channels.ts"]},{"output":".setup/resolve-users-DW0ngD03.mjs","sha256":"f1b6a740261eeb78aec1393f4e6677468d3cb5b04636c412ed8173cbb3c90a8b","facadeSource":null,"sources":["extensions/slack/src/resolve-users.ts"]},{"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-CasuDvaa.mjs","sha256":"cc1e11dc2dd3f64c4f2457d83a1e4be2d2dad79f69d65f2a554f31343c36d9ba","facadeSource":"extensions/slack/src/scopes.ts","sources":["extensions/slack/src/scopes.ts"]},{"output":".setup/secret-contract-api-3duiGw0K.mjs","sha256":"c90976fd133e65fdda4e034977b72cda25f23d511eee441b153f73c45f65f973","facadeSource":"extensions/slack/secret-contract-api.ts","sources":[]},{"output":".setup/secret-contract-BaZcu6P_.mjs","sha256":"83cc90575775dae77a143edeb6e685b9abe35fc8766661e1b376016ea97a5d44","facadeSource":null,"sources":["extensions/slack/src/secret-contract.ts"]},{"output":".setup/security-audit-BqDc-6VL.mjs","sha256":"f18115e43f8bc00d6331d74737562839ad44e9c6ec5b86de7277b1cdb60f228f","facadeSource":null,"sources":["extensions/slack/src/security-audit.ts"]},{"output":".setup/send-BSQKD4nx.mjs","sha256":"c4614e7a35aa9817743343475b7eb9b80dfab30858071702bf8d559bab20d9f9","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-CPWDBkOb.mjs","sha256":"044bc65cabbc8b87cb652dca422ca305e86a80b199b99bba1387aa9a71222d10","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-BVR4tSwT.mjs","sha256":"c05bcb204a8854467b186a1216f39cab852b25c036ea7c665f40f197785b97ba","facadeSource":"extensions/slack/setup-plugin-api.ts","sources":[]},{"output":".setup/setup-surface-Dn7QgWRE.mjs","sha256":"1fe1ba32ab519b8e265913ca6ff8e548ab8e967ba22b29eb03f9e341cd1c6d70","facadeSource":"extensions/slack/src/setup-surface.ts","sources":["extensions/slack/src/setup-surface.ts"]},{"output":".setup/shared-qau-uDGl.mjs","sha256":"a0cb391ff94ca29b8a53853ec9e4fd2cfcf8cbae3ea99e7ba8a7e7e334afb670","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-B_jVFfTv.mjs","sha256":"77117eb099b410dd1aa0966ad51b13753ddd0837e2e731a30cc75251f73c25e9","facadeSource":"extensions/slack/src/monitor/slash-dispatch.runtime.ts","sources":[]},{"output":".setup/streaming-compat-C5Wut626.mjs","sha256":"8ed0c454f5c42b31b8d94c1bccd4abdeea750877df7f704446a6657a68973d49","facadeSource":null,"sources":["extensions/slack/src/streaming-compat.ts"]},{"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":"bb26e61bc575b68715fe10c2e3e267769c3132766e76a4a44bcc8f22938f03de","facadeSource":"extensions/slack/account-inspect-api.ts","sources":["extensions/slack/account-inspect-api.ts"]},{"output":"api.js","sha256":"1613f64ba1ed08b7345f0155c4c520b15ebcf545665641828375f729f64268b5","facadeSource":"extensions/slack/api.ts","sources":[]},{"output":"channel-config-api.js","sha256":"1ede360d5135be4029418addb752e6e5a03a3b1325ed090d3a58f3745cbeab3d","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":"c834bcbceadc0f9c1f1eff58ab086a91494f2a8cee72f09a74f5a9a651f1084c","facadeSource":"extensions/slack/channel-plugin-api.ts","sources":[]},{"output":"configured-state.js","sha256":"62886bc2fe28e2ceb5541a6d41287bdbb1fbbb253bfef8df87f8f4c9735bbc5a","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":"1ecd6452c405398578551007f334498fc34251825167ab9601febe8a4860153c","facadeSource":"extensions/slack/directory-contract-api.ts","sources":[]},{"output":"doctor-contract-api.js","sha256":"37ac50eaf2ad7f3fe5961d0473830768e38d8c0a34c1ba2668a1092a693a31e2","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":"50819b53ed1bfebdae1418950374c11e9364049ed6b40f2d70db21d346bf5228","facadeSource":"extensions/slack/message-tool-api.ts","sources":[]},{"output":"runtime-api.js","sha256":"81fdf517215231f355278674a19ff3151b89964aca5bbd3eb90183e06f3f653d","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":"8d72c3223d225222b4dabfdc0ff33cc624e3c5bb9ddc719f40d8fe71d81ce622","facadeSource":"extensions/slack/secret-contract-api.ts","sources":[]},{"output":"security-contract-api.js","sha256":"b79eae03969176010a7d9d823a3d6b54f623077fbc561e178a3c3a0f0718f269","facadeSource":"extensions/slack/security-contract-api.ts","sources":[]},{"output":"setup-entry.js","sha256":"2e97418f8dd112060ca2084dd93428310902e44322a88551bf7239d77f6098f8","facadeSource":"extensions/slack/setup-entry.ts","sources":["extensions/slack/setup-entry.ts"]},{"output":"setup-plugin-api.js","sha256":"4c31378b0430ef257d01909c2b8a19dbc95cea124a768784dae0543f09bcdcf0","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,7 +5,7 @@ import { a as parseSlackTarget, i as normalizeSlackMessagingTarget, o as resolve
5
5
  import "./.setup/targets-C6LZQL1Q.mjs";
6
6
  import { Wt as resolveSlackAutoThreadId, _t as parseSlackBlocksInput, a as resolveSlackGroupRequireMention, gt as SLACK_MAX_BLOCKS, o as resolveSlackGroupToolPolicy, vt as validateSlackBlocksArray } from "./.setup/session-status-CPWDBkOb.mjs";
7
7
  import { D as normalizeSlackAllowOwnerEntry, E as allowListMatches, O as normalizeSlackSlug, T as resolveSlackWriteClientOptions, _ as getSlackWriteClient, b as SLACK_DEFAULT_RETRY_OPTIONS, h as createSlackWriteClient, j as resolveSlackUserAllowed, k as resolveSlackAllowListMatch, m as createSlackWebClient, p as createSlackTokenCacheKey, t as probeSlack, w as resolveSlackWebClientOptions, x as SLACK_WRITE_RETRY_OPTIONS } from "./.setup/probe-B2Y9qc_z.mjs";
8
- import { n as buildSlackThreadingToolContext, t as slackPlugin } from "./.setup/channel-C19w97Oe.mjs";
8
+ import { n as buildSlackThreadingToolContext, t as slackPlugin } from "./.setup/channel-CLZVpPR0.mjs";
9
9
  import { d as buildSlackInteractiveBlocks, f as buildSlackPresentationBlocks } from "./.setup/reply-blocks-BntCJ7mr.mjs";
10
10
  import { n as extractSlackToolSend, r as listSlackMessageActions } from "./.setup/message-tool-api-Cu4lwlGy.mjs";
11
11
  import { n as resolveSlackChannelType } from "./.setup/channel-type-DdNW4_3Y.mjs";
@@ -1 +1 @@
1
- export { t as slackPlugin } from "./.setup/channel-C19w97Oe.mjs";
1
+ export { t as slackPlugin } from "./.setup/channel-CLZVpPR0.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-BSQKD4nx.mjs";
8
8
  import { n as slackActionRuntime, t as handleSlackAction } from "./.setup/action-runtime-DrJGFq6u.mjs";
9
9
  import { n as listSlackDirectoryGroupsLive, r as listSlackDirectoryPeersLive } from "./.setup/directory-live-B2O4B_Ho.mjs";
10
- import { n as monitorSlackProvider } from "./.setup/monitor-0RYQ8Lt4.mjs";
10
+ import { n as monitorSlackProvider } from "./.setup/monitor-CX8JFutk.mjs";
11
11
  import { t as resolveSlackChannelAllowlist } from "./.setup/resolve-channels-XXBn8UU_.mjs";
12
12
  import { t as resolveSlackUserAllowlist } from "./.setup/resolve-users-DW0ngD03.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 };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@openclaw/slack",
3
- "version": "2026.9.34",
3
+ "version": "2026.9.35",
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.7"
18
18
  },
19
19
  "peerDependencies": {
20
- "openclaw": ">=2026.9.34"
20
+ "openclaw": ">=2026.9.35"
21
21
  },
22
22
  "peerDependenciesMeta": {
23
23
  "openclaw": {
@@ -150,10 +150,10 @@
150
150
  "allowInvalidConfigRecovery": true
151
151
  },
152
152
  "compat": {
153
- "pluginApi": ">=2026.9.34"
153
+ "pluginApi": ">=2026.9.35"
154
154
  },
155
155
  "build": {
156
- "openclawVersion": "2026.9.34",
156
+ "openclawVersion": "2026.9.35",
157
157
  "bundledDist": false
158
158
  },
159
159
  "release": {