@openclaw/slack 2026.5.16-beta.2 → 2026.5.16-beta.4

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.
Files changed (34) hide show
  1. package/dist/{action-runtime-p39JLqwf.js → action-runtime-0RLkDKyA.js} +1 -1
  2. package/dist/action-runtime.runtime-DpzOXqtk.js +2 -0
  3. package/dist/{actions-BCRbHv1Q.js → actions-Chs6DbrP.js} +1 -1
  4. package/dist/{actions.runtime-CpywQR3D.js → actions.runtime-BsbIDsmT.js} +1 -1
  5. package/dist/api.js +5 -5
  6. package/dist/{approval-handler.runtime-DXrdRbkT.js → approval-handler.runtime-BmCbRrbT.js} +1 -1
  7. package/dist/{channel-CVSopl66.js → channel-DUS8ZO45.js} +16 -12
  8. package/dist/channel-plugin-api.js +1 -1
  9. package/dist/{channel.setup-DknBgufI.js → channel.setup-qGOC05UK.js} +2 -2
  10. package/dist/inbound-contract-test-api.js +2 -2
  11. package/dist/{monitor-CdVxsuHi.js → monitor-BhEzWuv0.js} +3 -3
  12. package/dist/{outbound-adapter-CHm6e-0Q.js → outbound-adapter-BoDXPksS.js} +1 -1
  13. package/dist/outbound-payload-test-api.js +1 -1
  14. package/dist/{outbound-payload.test-harness-C0CW7_CE.js → outbound-payload.test-harness-C7Izm95Q.js} +1 -1
  15. package/dist/{pipeline.runtime-CakcaQh9.js → pipeline.runtime-Bq754VH8.js} +41 -26
  16. package/dist/{prepare-DSRUr44d.js → prepare-BcznR9ok.js} +136 -24
  17. package/dist/{prepare.test-helpers-CU1qB54Q.js → prepare.test-helpers-D807wdul.js} +1 -1
  18. package/dist/{provider-bKg1hkf5.js → provider-BFnE2bgI.js} +118 -4
  19. package/dist/{replies-Fg1T3ZzU.js → replies-2ve_YcHy.js} +8 -5
  20. package/dist/{room-context-Cd8jFpS-.js → room-context-BI26wVBb.js} +83 -2
  21. package/dist/runtime-api.js +5 -5
  22. package/dist/{send-CxXFbqN1.js → send-C5PzphgC.js} +5 -0
  23. package/dist/send.runtime-Bgf0P22e.js +2 -0
  24. package/dist/send.runtime-DsEXD6MR.js +2 -0
  25. package/dist/{setup-core-B7pou7oe.js → setup-core-az0LCrNr.js} +21 -2
  26. package/dist/setup-plugin-api.js +1 -1
  27. package/dist/{setup-surface-D6LLzeRz.js → setup-surface-Cdq_mfjx.js} +2 -2
  28. package/dist/{shared-7Vi9j4aV.js → shared-BuNoOmas.js} +6 -2
  29. package/dist/{slash-dispatch.runtime-Cg7uU92H.js → slash-dispatch.runtime-CcbE1HtP.js} +1 -1
  30. package/dist/test-api.js +6 -6
  31. package/package.json +4 -4
  32. package/dist/action-runtime.runtime-BzrPV3EA.js +0 -2
  33. package/dist/send.runtime-BHCPpSj_.js +0 -2
  34. package/dist/send.runtime-CDG5AgU3.js +0 -2
@@ -121,6 +121,36 @@ function isSlackChannelAllowedByPolicy(params) {
121
121
  }
122
122
  //#endregion
123
123
  //#region extensions/slack/src/monitor/context.ts
124
+ const SLACK_ASSISTANT_THREAD_CONTEXT_METADATA_EVENT = "assistant_thread_context";
125
+ function buildSlackAssistantThreadMetadata(context) {
126
+ const eventPayload = {};
127
+ if (context.channelId) eventPayload.channel_id = context.channelId;
128
+ if (context.teamId) eventPayload.team_id = context.teamId;
129
+ if (context.enterpriseId) eventPayload.enterprise_id = context.enterpriseId;
130
+ return {
131
+ event_type: SLACK_ASSISTANT_THREAD_CONTEXT_METADATA_EVENT,
132
+ event_payload: eventPayload
133
+ };
134
+ }
135
+ function parseSlackAssistantThreadMetadata(value) {
136
+ if (!value || typeof value !== "object" || Array.isArray(value)) return;
137
+ const metadata = value;
138
+ if (metadata.event_type !== "assistant_thread_context") return;
139
+ const payload = metadata.event_payload;
140
+ if (!payload || typeof payload !== "object" || Array.isArray(payload)) return;
141
+ const record = payload;
142
+ const stringField = (key) => {
143
+ const raw = record[key];
144
+ return typeof raw === "string" && raw.trim() ? raw.trim() : void 0;
145
+ };
146
+ return {
147
+ channelId: stringField("channel_id"),
148
+ teamId: stringField("team_id"),
149
+ enterpriseId: stringField("enterprise_id")
150
+ };
151
+ }
152
+ const SLACK_ASSISTANT_CONTEXT_TTL_MS = 1440 * 60 * 1e3;
153
+ const SLACK_ASSISTANT_CONTEXT_CLEANUP_INTERVAL_MS = 600 * 1e3;
124
154
  function createSlackMonitorContext(params) {
125
155
  const channelHistories = /* @__PURE__ */ new Map();
126
156
  const logger = getChildLogger({ module: "slack-auto-reply" });
@@ -130,6 +160,8 @@ function createSlackMonitorContext(params) {
130
160
  ttlMs: 6e4,
131
161
  maxSize: 500
132
162
  });
163
+ const assistantThreadContexts = /* @__PURE__ */ new Map();
164
+ let lastAssistantContextCleanupAt = Date.now();
133
165
  const allowFrom = normalizeAllowList(params.allowFrom);
134
166
  const groupDmChannels = normalizeAllowList(params.groupDmChannels);
135
167
  const groupDmChannelsLower = normalizeAllowListLower(groupDmChannels);
@@ -144,6 +176,32 @@ function createSlackMonitorContext(params) {
144
176
  if (!channelId || !ts) return;
145
177
  seenMessages.delete(`${channelId}:${ts}`);
146
178
  };
179
+ const assistantContextKey = (channelId, threadTs) => `${channelId}:${threadTs}`;
180
+ const cleanupAssistantThreadContexts = () => {
181
+ const now = Date.now();
182
+ if (now - lastAssistantContextCleanupAt < SLACK_ASSISTANT_CONTEXT_CLEANUP_INTERVAL_MS) return;
183
+ lastAssistantContextCleanupAt = now;
184
+ const cutoff = now - SLACK_ASSISTANT_CONTEXT_TTL_MS;
185
+ for (const [key, entry] of assistantThreadContexts) if (entry.updatedAt < cutoff) assistantThreadContexts.delete(key);
186
+ };
187
+ const getSlackAssistantThreadContext = (channelId, threadTs) => {
188
+ if (!channelId || !threadTs) return;
189
+ const key = assistantContextKey(channelId, threadTs);
190
+ const entry = assistantThreadContexts.get(key);
191
+ if (!entry) return;
192
+ if (Date.now() - entry.updatedAt > SLACK_ASSISTANT_CONTEXT_TTL_MS) {
193
+ assistantThreadContexts.delete(key);
194
+ return;
195
+ }
196
+ return entry;
197
+ };
198
+ const saveSlackAssistantThreadContext = (context) => {
199
+ cleanupAssistantThreadContexts();
200
+ assistantThreadContexts.set(assistantContextKey(context.assistantChannelId, context.threadTs), {
201
+ ...context,
202
+ updatedAt: Date.now()
203
+ });
204
+ };
147
205
  const resolveSlackSystemEventSessionKey = (p) => {
148
206
  const channelId = normalizeOptionalString(p.channelId) ?? "";
149
207
  if (!channelId) return params.mainKey;
@@ -256,6 +314,26 @@ function createSlackMonitorContext(params) {
256
314
  logVerbose(`slack status update failed for channel ${p.channelId}: ${formatSlackError(err)}`);
257
315
  }
258
316
  };
317
+ const setSlackAssistantSuggestedPrompts = async (p) => {
318
+ const prompts = p.prompts.map((prompt) => ({
319
+ title: prompt.title.trim(),
320
+ message: prompt.message.trim()
321
+ })).filter((prompt) => prompt.title && prompt.message).slice(0, 4);
322
+ if (prompts.length === 0) return false;
323
+ try {
324
+ await params.app.client.assistant.threads.setSuggestedPrompts({
325
+ token: params.botToken,
326
+ channel_id: p.channelId,
327
+ thread_ts: p.threadTs,
328
+ ...p.title?.trim() ? { title: p.title.trim() } : {},
329
+ prompts
330
+ });
331
+ return true;
332
+ } catch (err) {
333
+ logVerbose(`slack suggested prompts update failed for channel ${p.channelId}: ${formatSlackError(err)}`);
334
+ return false;
335
+ }
336
+ };
259
337
  const isChannelAllowed = (p) => {
260
338
  const channelType = normalizeSlackChannelType(p.channelType, p.channelId);
261
339
  const isDirectMessage = channelType === "im";
@@ -362,7 +440,10 @@ function createSlackMonitorContext(params) {
362
440
  isChannelAllowed,
363
441
  resolveChannelName,
364
442
  resolveUserName,
365
- setSlackThreadStatus
443
+ setSlackThreadStatus,
444
+ getSlackAssistantThreadContext,
445
+ saveSlackAssistantThreadContext,
446
+ setSlackAssistantSuggestedPrompts
366
447
  };
367
448
  }
368
449
  //#endregion
@@ -786,4 +867,4 @@ function resolveSlackRoomContextHints(params) {
786
867
  };
787
868
  }
788
869
  //#endregion
789
- export { resolveOpenProviderRuntimeGroupPolicy as C, buildSlackSlashCommandMatcher as D, warnMissingProviderGroupPolicyFallbackOnce as E, resolveSlackSlashCommandConfig as O, resolveDefaultGroupPolicy as S, updateLastRoute as T, resolveSlackChannelLabel as _, recordInboundSession as a, readSessionUpdatedAt as b, authorizeSlackBotRoomMessage as c, resolveSlackEffectiveAllowFrom as d, createSlackMonitorContext as f, resolveSlackChannelConfig as g, resolveSlackChatType as h, parsePluginBindingApprovalCustomId as i, stripSlackMentionsForCommandDetection as k, authorizeSlackSystemEventSender as l, normalizeSlackChannelType as m, authorizeSlackDirectMessage as n, resolveConversationLabel$1 as o, isSlackChannelAllowedByPolicy as p, buildPluginBindingResolvedText as r, resolvePluginConversationBindingApproval as s, resolveSlackRoomContextHints as t, resolveSlackCommandIngress as u, getRuntimeConfig$1 as v, resolveStorePath$1 as w, resolveChannelContextVisibilityMode as x, isDangerousNameMatchingEnabled as y };
870
+ export { resolveSlackSlashCommandConfig as A, resolveChannelContextVisibilityMode as C, updateLastRoute as D, resolveStorePath$1 as E, warnMissingProviderGroupPolicyFallbackOnce as O, readSessionUpdatedAt as S, resolveOpenProviderRuntimeGroupPolicy as T, resolveSlackChatType as _, recordInboundSession as a, getRuntimeConfig$1 as b, authorizeSlackBotRoomMessage as c, resolveSlackEffectiveAllowFrom as d, buildSlackAssistantThreadMetadata as f, normalizeSlackChannelType as g, isSlackChannelAllowedByPolicy as h, parsePluginBindingApprovalCustomId as i, stripSlackMentionsForCommandDetection as j, buildSlackSlashCommandMatcher as k, authorizeSlackSystemEventSender as l, parseSlackAssistantThreadMetadata as m, authorizeSlackDirectMessage as n, resolveConversationLabel$1 as o, createSlackMonitorContext as p, buildPluginBindingResolvedText as r, resolvePluginConversationBindingApproval as s, resolveSlackRoomContextHints as t, resolveSlackCommandIngress as u, resolveSlackChannelConfig as v, resolveDefaultGroupPolicy as w, isDangerousNameMatchingEnabled as x, resolveSlackChannelLabel as y };
@@ -1,14 +1,14 @@
1
1
  import { a as resolveSlackAccount, d as resolveSlackBotToken, i as resolveDefaultSlackAccountId, n as listSlackAccountIds, t as listEnabledSlackAccounts, u as resolveSlackAppToken } from "./accounts-yk5K3wQU.js";
2
2
  import { n as resolveSlackGroupRequireMention, r as resolveSlackGroupToolPolicy } from "./reply-blocks-BFaJ_ejG.js";
3
3
  import { n as setSlackRuntime } from "./runtime-DQxkf7k2.js";
4
- import { t as sendMessageSlack } from "./send-CxXFbqN1.js";
5
- import { a as listSlackEmojis, c as pinSlackMessage, d as removeOwnSlackReactions, f as removeSlackReaction, i as getSlackMemberInfo, l as reactSlackMessage, m as unpinSlackMessage, o as listSlackPins, p as sendSlackMessage, r as editSlackMessage, s as listSlackReactions, t as deleteSlackMessage, u as readSlackMessages } from "./actions-BCRbHv1Q.js";
4
+ import { t as sendMessageSlack } from "./send-C5PzphgC.js";
5
+ import { a as listSlackEmojis, c as pinSlackMessage, d as removeOwnSlackReactions, f as removeSlackReaction, i as getSlackMemberInfo, l as reactSlackMessage, m as unpinSlackMessage, o as listSlackPins, p as sendSlackMessage, r as editSlackMessage, s as listSlackReactions, t as deleteSlackMessage, u as readSlackMessages } from "./actions-Chs6DbrP.js";
6
6
  import { t as probeSlack } from "./probe-FL4sUJsH.js";
7
7
  import { t as resolveSlackChannelAllowlist } from "./resolve-channels-B_eKaOkE.js";
8
8
  import { t as resolveSlackUserAllowlist } from "./resolve-users-BzBAJwvq.js";
9
- import { t as monitorSlackProvider } from "./provider-bKg1hkf5.js";
9
+ import { t as monitorSlackProvider } from "./provider-BFnE2bgI.js";
10
10
  import { t as registerSlackPluginHttpRoutes } from "./plugin-routes-CRnfsTTX.js";
11
- import { n as slackActionRuntime, t as handleSlackAction } from "./action-runtime-p39JLqwf.js";
11
+ import { n as slackActionRuntime, t as handleSlackAction } from "./action-runtime-0RLkDKyA.js";
12
12
  import { n as listSlackDirectoryGroupsLive, r as listSlackDirectoryPeersLive } from "./directory-live-CZPzpQZF.js";
13
- import "./monitor-CdVxsuHi.js";
13
+ import "./monitor-BhEzWuv0.js";
14
14
  export { deleteSlackMessage, editSlackMessage, getSlackMemberInfo, handleSlackAction, listEnabledSlackAccounts, listSlackAccountIds, listSlackDirectoryGroupsLive, listSlackDirectoryPeersLive, listSlackEmojis, listSlackPins, listSlackReactions, monitorSlackProvider, pinSlackMessage, probeSlack, reactSlackMessage, readSlackMessages, registerSlackPluginHttpRoutes, removeOwnSlackReactions, removeSlackReaction, resolveDefaultSlackAccountId, resolveSlackAccount, resolveSlackAppToken, resolveSlackBotToken, resolveSlackChannelAllowlist, resolveSlackGroupRequireMention, resolveSlackGroupToolPolicy, resolveSlackUserAllowlist, sendMessageSlack, sendSlackMessage, setSlackRuntime, slackActionRuntime, unpinSlackMessage };
@@ -312,12 +312,14 @@ function buildSlackPostMessagePayload(params) {
312
312
  channel: params.channelId,
313
313
  text: params.text,
314
314
  blocks: params.blocks,
315
+ ...params.metadata ? { metadata: params.metadata } : {},
315
316
  ...threadPayload,
316
317
  ...unfurlPayload
317
318
  };
318
319
  return {
319
320
  channel: params.channelId,
320
321
  text: params.text,
322
+ ...params.metadata ? { metadata: params.metadata } : {},
321
323
  ...threadPayload,
322
324
  ...unfurlPayload
323
325
  };
@@ -637,6 +639,7 @@ async function sendMessageSlackQueuedInner(params) {
637
639
  replyBroadcast: opts.replyBroadcast,
638
640
  identity: opts.identity,
639
641
  blocks,
642
+ metadata: opts.metadata,
640
643
  unfurl
641
644
  })).ts ?? "unknown";
642
645
  return {
@@ -686,6 +689,7 @@ async function sendMessageSlackQueuedInner(params) {
686
689
  threadTs: opts.threadTs,
687
690
  replyBroadcast: sentMessageIds.length === 0 ? opts.replyBroadcast : void 0,
688
691
  identity: opts.identity,
692
+ metadata: sentMessageIds.length === 0 ? opts.metadata : void 0,
689
693
  unfurl
690
694
  });
691
695
  lastMessageId = response.ts ?? lastMessageId;
@@ -699,6 +703,7 @@ async function sendMessageSlackQueuedInner(params) {
699
703
  threadTs: opts.threadTs,
700
704
  replyBroadcast: sentMessageIds.length === 0 ? opts.replyBroadcast : void 0,
701
705
  identity: opts.identity,
706
+ metadata: sentMessageIds.length === 0 ? opts.metadata : void 0,
702
707
  unfurl
703
708
  });
704
709
  lastMessageId = response.ts ?? lastMessageId;
@@ -0,0 +1,2 @@
1
+ import { t as sendMessageSlack } from "./send-C5PzphgC.js";
2
+ export { sendMessageSlack };
@@ -0,0 +1,2 @@
1
+ import "./send-C5PzphgC.js";
2
+ export {};
@@ -24,6 +24,23 @@ function buildSlackManifest(botName = "OpenClaw") {
24
24
  messages_tab_enabled: true,
25
25
  messages_tab_read_only_enabled: false
26
26
  },
27
+ assistant_view: {
28
+ assistant_description: `${safeName} connects Slack assistant threads to OpenClaw agents.`,
29
+ suggested_prompts: [
30
+ {
31
+ title: "What can you do?",
32
+ message: "What can you help me with?"
33
+ },
34
+ {
35
+ title: "Summarize this channel",
36
+ message: "Summarize the recent activity in this channel."
37
+ },
38
+ {
39
+ title: "Draft a reply",
40
+ message: "Help me draft a reply."
41
+ }
42
+ ]
43
+ },
27
44
  slash_commands: [{
28
45
  command: "/openclaw",
29
46
  description: "Send a message to OpenClaw",
@@ -60,6 +77,8 @@ function buildSlackManifest(botName = "OpenClaw") {
60
77
  event_subscriptions: { bot_events: [
61
78
  "app_home_opened",
62
79
  "app_mention",
80
+ "assistant_thread_context_changed",
81
+ "assistant_thread_started",
63
82
  "channel_rename",
64
83
  "member_joined_channel",
65
84
  "member_left_channel",
@@ -81,8 +100,8 @@ function buildSlackSetupLines() {
81
100
  "1) Slack API -> Create App -> From scratch or From manifest (with the JSON below)",
82
101
  "2) Add Socket Mode + enable it to get the app-level token (xapp-...)",
83
102
  "3) Install App to workspace to get the xoxb- bot token",
84
- "4) Enable Event Subscriptions (socket) for message and App Home events",
85
- "5) App Home -> enable the Home tab and Messages tab for DMs",
103
+ "4) Enable Event Subscriptions (socket) for message, App Home, and assistant events",
104
+ "5) App Home -> enable the Home tab, Messages tab for DMs, and AI assistant view",
86
105
  "Manifest JSON follows as plain text for copy/paste.",
87
106
  "Tip: set SLACK_BOT_TOKEN + SLACK_APP_TOKEN in your env.",
88
107
  `Docs: ${formatDocsLink("/slack", "slack")}`
@@ -1,2 +1,2 @@
1
- import { t as slackSetupPlugin } from "./channel.setup-DknBgufI.js";
1
+ import { t as slackSetupPlugin } from "./channel.setup-qGOC05UK.js";
2
2
  export { slackSetupPlugin };
@@ -1,6 +1,6 @@
1
1
  import { a as resolveSlackAccount, i as resolveDefaultSlackAccountId, o as resolveSlackAccountAllowFrom } from "./accounts-yk5K3wQU.js";
2
- import "./shared-7Vi9j4aV.js";
3
- import { i as SLACK_CHANNEL, t as createSlackSetupWizardBase } from "./setup-core-B7pou7oe.js";
2
+ import "./shared-BuNoOmas.js";
3
+ import { i as SLACK_CHANNEL, t as createSlackSetupWizardBase } from "./setup-core-az0LCrNr.js";
4
4
  import { t as resolveSlackChannelAllowlist } from "./resolve-channels-B_eKaOkE.js";
5
5
  import { t as resolveSlackUserAllowlist } from "./resolve-users-BzBAJwvq.js";
6
6
  import { adaptScopedAccountAccessor } from "openclaw/plugin-sdk/channel-config-helpers";
@@ -2,7 +2,7 @@ import { a as resolveSlackAccount, c as resolveSlackConfigAccessorAccount, i as
2
2
  import { t as inspectSlackAccount } from "./account-inspect-BJyQLSkN.js";
3
3
  import { n as isSlackInteractiveRepliesEnabled } from "./interactive-replies-BSg5hXhj.js";
4
4
  import { f as getChatChannelMeta } from "./client-C_IaJbi5.js";
5
- import { i as SLACK_CHANNEL } from "./setup-core-B7pou7oe.js";
5
+ import { i as SLACK_CHANNEL } from "./setup-core-az0LCrNr.js";
6
6
  import { t as SlackChannelConfigSchema } from "./config-schema-CNRousxw.js";
7
7
  import { n as normalizeCompatibilityConfig, t as legacyConfigRules } from "./doctor-contract-B8QIWMs1.js";
8
8
  import { n as collectRuntimeConfigAssignments, r as secretTargetRegistryEntries } from "./secret-contract-0TL3L5Kb.js";
@@ -171,7 +171,11 @@ function createSlackPluginBase(params) {
171
171
  "- Prefer Slack buttons/selects for 2-5 discrete choices or parameter picks instead of asking the user to type one.",
172
172
  "- Slack interactive replies: use `[[slack_buttons: Label:value, Other:other]]` to add action buttons that route clicks back as Slack interaction system events.",
173
173
  "- Slack selects: use `[[slack_select: Placeholder | Label:value, Other:other]]` to add a static select menu that routes the chosen value back as a Slack interaction system event."
174
- ] : ["- Slack interactive replies are disabled. If needed, ask to set `channels.slack.capabilities.interactiveReplies=true` (or the same under `channels.slack.accounts.<account>.capabilities`)."]).concat(["- Slack plain text sends: write standard Markdown; OpenClaw converts it to Slack mrkdwn, including `**bold**`, headings, lists, and `[label](url)` links.", "- Slack Block Kit or presentation text fields are sent as Slack mrkdwn directly; use `*bold*`, `_italic_`, `~strike~`, `<url|label>` links, and avoid Markdown headings or pipe tables there."])
174
+ ] : ["- Slack interactive replies are disabled. If needed, ask to set `channels.slack.capabilities.interactiveReplies=true` (or the same under `channels.slack.accounts.<account>.capabilities`)."]).concat([
175
+ "- Slack plain text sends: write standard Markdown; OpenClaw converts it to Slack mrkdwn, including `**bold**`, headings, lists, and `[label](url)` links.",
176
+ "- When mentioning Slack users, use the stable `<@USER_ID>` token from Slack context instead of plain `@name` text so Slack notifies and links the user.",
177
+ "- Slack Block Kit or presentation text fields are sent as Slack mrkdwn directly; use `*bold*`, `_italic_`, `~strike~`, `<url|label>` links, and avoid Markdown headings or pipe tables there."
178
+ ])
175
179
  },
176
180
  streaming: { blockStreamingCoalesceDefaults: {
177
181
  minChars: 1500,
@@ -1,4 +1,4 @@
1
- import { r as deliverSlackSlashReplies$1 } from "./replies-Fg1T3ZzU.js";
1
+ import { r as deliverSlackSlashReplies$1 } from "./replies-2ve_YcHy.js";
2
2
  import { resolveAgentRoute as resolveAgentRoute$1 } from "openclaw/plugin-sdk/routing";
3
3
  import { resolveMarkdownTableMode as resolveMarkdownTableMode$1 } from "openclaw/plugin-sdk/markdown-table-runtime";
4
4
  import { recordInboundSessionMetaSafe as recordInboundSessionMetaSafe$1, resolveConversationLabel as resolveConversationLabel$1 } from "openclaw/plugin-sdk/conversation-runtime";
package/dist/test-api.js CHANGED
@@ -1,8 +1,8 @@
1
- import { a as createSlackActions, t as slackPlugin } from "./channel-CVSopl66.js";
1
+ import { a as createSlackActions, t as slackPlugin } from "./channel-DUS8ZO45.js";
2
2
  import { n as setSlackRuntime } from "./runtime-DQxkf7k2.js";
3
- import { t as sendMessageSlack } from "./send-CxXFbqN1.js";
4
- import { t as prepareSlackMessage } from "./prepare-DSRUr44d.js";
5
- import { t as createInboundSlackTestContext } from "./prepare.test-helpers-CU1qB54Q.js";
6
- import { t as createSlackOutboundPayloadHarness } from "./outbound-payload.test-harness-C0CW7_CE.js";
7
- import { n as slackOutbound } from "./outbound-adapter-CHm6e-0Q.js";
3
+ import { t as sendMessageSlack } from "./send-C5PzphgC.js";
4
+ import { t as prepareSlackMessage } from "./prepare-BcznR9ok.js";
5
+ import { t as createInboundSlackTestContext } from "./prepare.test-helpers-D807wdul.js";
6
+ import { t as createSlackOutboundPayloadHarness } from "./outbound-payload.test-harness-C7Izm95Q.js";
7
+ import { n as slackOutbound } from "./outbound-adapter-BoDXPksS.js";
8
8
  export { createInboundSlackTestContext, createSlackActions, createSlackOutboundPayloadHarness, prepareSlackMessage, sendMessageSlack, setSlackRuntime, slackOutbound, slackPlugin };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@openclaw/slack",
3
- "version": "2026.5.16-beta.2",
3
+ "version": "2026.5.16-beta.4",
4
4
  "description": "OpenClaw Slack channel plugin",
5
5
  "repository": {
6
6
  "type": "git",
@@ -20,7 +20,7 @@
20
20
  "openclaw": "workspace:*"
21
21
  },
22
22
  "peerDependencies": {
23
- "openclaw": ">=2026.5.16-beta.2"
23
+ "openclaw": ">=2026.5.16-beta.4"
24
24
  },
25
25
  "peerDependenciesMeta": {
26
26
  "openclaw": {
@@ -65,10 +65,10 @@
65
65
  "allowInvalidConfigRecovery": true
66
66
  },
67
67
  "compat": {
68
- "pluginApi": ">=2026.5.16-beta.2"
68
+ "pluginApi": ">=2026.5.16-beta.4"
69
69
  },
70
70
  "build": {
71
- "openclawVersion": "2026.5.16-beta.2",
71
+ "openclawVersion": "2026.5.16-beta.4",
72
72
  "bundledDist": false
73
73
  },
74
74
  "release": {
@@ -1,2 +0,0 @@
1
- import { t as handleSlackAction } from "./action-runtime-p39JLqwf.js";
2
- export { handleSlackAction };
@@ -1,2 +0,0 @@
1
- import "./send-CxXFbqN1.js";
2
- export {};
@@ -1,2 +0,0 @@
1
- import { t as sendMessageSlack } from "./send-CxXFbqN1.js";
2
- export { sendMessageSlack };