@openclaw/slack 2026.11.1 → 2026.11.3

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 (71) hide show
  1. package/dist/.setup/{account-configured-35y0-Hso.mjs → account-configured-zcR9TJJN.mjs} +2 -1
  2. package/dist/.setup/{account-inspect-Bc7TVU8F.mjs → account-inspect-CmkKiSb9.mjs} +4 -3
  3. package/dist/.setup/{accounts-CEgdyqoW.mjs → accounts-msihSF3-.mjs} +10 -6
  4. package/dist/.setup/{action-runtime-DPoxYao5.mjs → action-runtime-ChRfnnBu.mjs} +10 -9
  5. package/dist/.setup/action-runtime.runtime-vLxx_7s2.mjs +2 -0
  6. package/dist/.setup/{actions-PF2cP6to.mjs → actions-By7tvpvv.mjs} +22 -14
  7. package/dist/.setup/{approval-handler.runtime-BtRklemy.mjs → approval-handler.runtime-D8ArtDQt.mjs} +8 -7
  8. package/dist/.setup/{approval-message-updates-CpwbsEj6.mjs → approval-message-updates-DT7XBPbV.mjs} +3 -2
  9. package/dist/.setup/{channel-BzPa5LRe.mjs → channel-DLFiMJm2.mjs} +39 -32
  10. package/dist/.setup/{channel-meta-C5vsCo3a.mjs → channel-meta-C443t-lI.mjs} +2 -1
  11. package/dist/.setup/{channel-type-Dh4vwh1Y.mjs → channel-type-BEFP2ORi.mjs} +6 -5
  12. package/dist/.setup/{channel.setup-Cc6oaNPS.mjs → channel.setup-CzFw73mU.mjs} +14 -10
  13. package/dist/.setup/{config-schema-Cz3uId-c.mjs → config-schema-DNnh6bWU.mjs} +4 -2
  14. package/dist/.setup/{directory-config-BEPra1E2.mjs → directory-config-Cjj0N8R0.mjs} +6 -5
  15. package/dist/.setup/{directory-live-BkUwPrS0.mjs → directory-live-BIKD-5B_.mjs} +5 -4
  16. package/dist/.setup/{doctor-contract-HK8aedwU.mjs → doctor-contract-Cd4-VzIM.mjs} +13 -7
  17. package/dist/.setup/http-C9sM-FXe.mjs +2 -0
  18. package/dist/.setup/{message-tool-api-DeiQJoRV.mjs → message-tool-api-BS5ekEA_.mjs} +7 -5
  19. package/dist/.setup/{monitor-BSKi0nx-.mjs → monitor-CV6Z6FKP.mjs} +137 -78
  20. package/dist/.setup/{outbound-adapter-C0R5jz6S.mjs → outbound-adapter-9dbnYtL1.mjs} +9 -8
  21. package/dist/.setup/{pipeline.runtime-zTQpztym.mjs → pipeline.runtime-DLIQf1Bo.mjs} +68 -41
  22. package/dist/.setup/{plugin-routes-lXsy_bNV.mjs → plugin-routes-D4qozHVn.mjs} +3 -2
  23. package/dist/.setup/{policy-Bp1FvE6m.mjs → policy-yhn48xf5.mjs} +6 -4
  24. package/dist/.setup/{probe-C5VWf3sz.mjs → probe-IiHogLQN.mjs} +19 -11
  25. package/dist/.setup/{registry-1G0f1zuZ.mjs → registry-DizWcnNp.mjs} +4 -2
  26. package/dist/.setup/{relay-source-D1NGf3d2.mjs → relay-source-CxDcrn16.mjs} +4 -3
  27. package/dist/.setup/{replies-BY9G1WZH.mjs → replies-MRkrg3rC.mjs} +9 -7
  28. package/dist/.setup/{reply-blocks-DOjiDr44.mjs → reply-blocks-Ca-raz2z.mjs} +7 -4
  29. package/dist/.setup/{resolve-channels-BNQ1KZXh.mjs → resolve-channels-DRRhElwz.mjs} +5 -4
  30. package/dist/.setup/{resolve-users-C4dC8Z7D.mjs → resolve-users-Cz8e17ky.mjs} +5 -4
  31. package/dist/.setup/{rolldown-runtime-nwUcYXjP.mjs → rolldown-runtime-B4FMCO8f.mjs} +2 -1
  32. package/dist/.setup/{runtime-C6HKn7Av.mjs → runtime-JSVZSWAj.mjs} +2 -1
  33. package/dist/.setup/runtime-setter-api-CMFvhrAr.mjs +3 -0
  34. package/dist/.setup/{scopes-C1aeCBa6.mjs → scopes-DfQVi8Jw.mjs} +3 -2
  35. package/dist/.setup/secret-contract-api-DK9gZldc.mjs +3 -0
  36. package/dist/.setup/{secret-contract-BH1ergYo.mjs → secret-contract-vVRMoE1D.mjs} +3 -2
  37. package/dist/.setup/{security-audit-C3hXCfDt.mjs → security-audit-DFGiFLqd.mjs} +3 -2
  38. package/dist/.setup/{send-C5uXkmZV.mjs → send-C-8wY0lK.mjs} +21 -14
  39. package/dist/.setup/{send-results-D-o6PgtS.mjs → send-results-eeOu_HYm.mjs} +2 -1
  40. package/dist/.setup/{session-status-CHkEn3HM.mjs → session-status-Dv8wNBEt.mjs} +57 -31
  41. package/dist/.setup/setup-plugin-api-BGD1TYnK.mjs +3 -0
  42. package/dist/.setup/{setup-surface-b9gluDhT.mjs → setup-surface--n8VsDvV.mjs} +8 -7
  43. package/dist/.setup/{shared-DbdvOUXo.mjs → shared-BhJHIZs1.mjs} +18 -14
  44. package/dist/.setup/{slash-dispatch.runtime-Bf0r7kf2.mjs → slash-dispatch.runtime-D3Wq45ER.mjs} +1 -1
  45. package/dist/.setup/{target-parsing-0pRZtahO.mjs → target-parsing-FFE26kOV.mjs} +2 -1
  46. package/dist/.setup/{targets-BqXz7CpG.mjs → targets-C6LZQL1Q.mjs} +3 -2
  47. package/dist/.setup/{thread-ts-47Au2-Yn.mjs → thread-ts-Cvt7WD6B.mjs} +2 -1
  48. package/dist/account-inspect-api.js +3 -2
  49. package/dist/api.js +17 -17
  50. package/dist/channel-config-api.js +2 -1
  51. package/dist/channel-entry.js +2 -1
  52. package/dist/channel-plugin-api.js +2 -1
  53. package/dist/configured-state.js +3 -2
  54. package/dist/directory-contract-api.js +2 -1
  55. package/dist/doctor-contract-api.js +2 -1
  56. package/dist/http-routes-api.js +2 -1
  57. package/dist/index.js +3 -2
  58. package/dist/message-tool-api.js +2 -1
  59. package/dist/runtime-api.js +12 -12
  60. package/dist/runtime-setter-api.js +2 -1
  61. package/dist/secret-contract-api.js +2 -1
  62. package/dist/security-contract-api.js +2 -1
  63. package/dist/setup-entry.js +5 -4
  64. package/dist/setup-plugin-api.js +2 -1
  65. package/package.json +4 -4
  66. package/dist/.setup/action-runtime.runtime-DWKWaKgC.mjs +0 -1
  67. package/dist/.setup/http-GpAVKwSX.mjs +0 -2
  68. package/dist/.setup/runtime-setter-api-DrXr965r.mjs +0 -2
  69. package/dist/.setup/secret-contract-api-BdG3j9lT.mjs +0 -2
  70. package/dist/.setup/setup-plugin-api-9mACIIlc.mjs +0 -2
  71. package/dist/.source-module-urls/562d694877afe9d9dcbb3b32a8883c16974738f2aa892c48d45572cdc9a62529.json +0 -1
@@ -1,6 +1,6 @@
1
1
  import { hasConfiguredAccountValue } from "openclaw/plugin-sdk/account-resolution";
2
2
  import { hasConfiguredSecretInput } from "openclaw/plugin-sdk/secret-input";
3
- // extensions/slack/src/account-configured.ts
3
+ //#region extensions/slack/src/account-configured.ts
4
4
  function hasSlackAccountCredentials(params) {
5
5
  if (!params.identityTokenConfigured) return false;
6
6
  const mode = params.config.mode ?? "socket";
@@ -31,4 +31,5 @@ function createSlackAccountConfiguredChecker(allowSecretRefs) {
31
31
  }
32
32
  const isSlackPluginAccountConfigured = createSlackAccountConfiguredChecker(false);
33
33
  const isSlackSetupAccountConfigured = createSlackAccountConfiguredChecker(true);
34
+ //#endregion
34
35
  export { isSlackSetupAccountConfigured as i, hasSlackAccountCredentialsFromConfig as n, isSlackPluginAccountConfigured as r, hasSlackAccountCredentials as t };
@@ -1,9 +1,9 @@
1
- import { t as hasSlackAccountCredentials } from "./account-configured-35y0-Hso.mjs";
2
- import { a as mergeSlackAccountConfig, g as buildSlackAccountSurfaceFields, o as resolveDefaultSlackAccountId } from "./accounts-CEgdyqoW.mjs";
1
+ import { t as hasSlackAccountCredentials } from "./account-configured-zcR9TJJN.mjs";
2
+ import { a as mergeSlackAccountConfig, g as buildSlackAccountSurfaceFields, o as resolveDefaultSlackAccountId } from "./accounts-msihSF3-.mjs";
3
3
  import { DEFAULT_ACCOUNT_ID, normalizeAccountId } from "openclaw/plugin-sdk/account-resolution";
4
4
  import { hasConfiguredSecretInput, normalizeSecretInputString } from "openclaw/plugin-sdk/secret-input";
5
5
  import { normalizeOptionalString } from "openclaw/plugin-sdk/string-coerce-runtime";
6
- // extensions/slack/src/account-inspect.ts
6
+ //#region extensions/slack/src/account-inspect.ts
7
7
  function inspectSlackToken(value, envToken) {
8
8
  const token = normalizeSecretInputString(value);
9
9
  if (token || hasConfiguredSecretInput(value)) return {
@@ -63,4 +63,5 @@ function inspectSlackAccount(params) {
63
63
  ...buildSlackAccountSurfaceFields(merged)
64
64
  };
65
65
  }
66
+ //#endregion
66
67
  export { inspectSlackAccount as t };
@@ -1,12 +1,12 @@
1
- import { t as __exportAll } from "./rolldown-runtime-nwUcYXjP.mjs";
2
- import { n as hasSlackAccountCredentialsFromConfig } from "./account-configured-35y0-Hso.mjs";
1
+ import { t as __exportAll } from "./rolldown-runtime-B4FMCO8f.mjs";
2
+ import { n as hasSlackAccountCredentialsFromConfig } from "./account-configured-zcR9TJJN.mjs";
3
3
  import { DEFAULT_ACCOUNT_ID, createAccountListHelpers, normalizeAccountId } from "openclaw/plugin-sdk/account-resolution";
4
4
  import { normalizeResolvedSecretInputString } from "openclaw/plugin-sdk/secret-input";
5
5
  import { normalizeOptionalString } from "openclaw/plugin-sdk/string-coerce-runtime";
6
6
  import { mapAllowFromEntries, normalizeChannelDmPolicy } from "openclaw/plugin-sdk/channel-config-helpers";
7
7
  import { resolveAccountEntry } from "openclaw/plugin-sdk/routing";
8
8
  import { normalizeChatType } from "openclaw/plugin-sdk/account-core";
9
- // extensions/slack/src/account-surface-fields.ts
9
+ //#region extensions/slack/src/account-surface-fields.ts
10
10
  function buildSlackAccountSurfaceFields(config) {
11
11
  return {
12
12
  groupPolicy: config.groupPolicy,
@@ -22,7 +22,8 @@ function buildSlackAccountSurfaceFields(config) {
22
22
  channels: config.channels
23
23
  };
24
24
  }
25
- // extensions/slack/src/token.ts
25
+ //#endregion
26
+ //#region extensions/slack/src/token.ts
26
27
  function formatSlackBotTokenIdentityWarning(params) {
27
28
  const userId = params.auth.user_id?.trim();
28
29
  const botId = params.auth.bot_id?.trim();
@@ -39,13 +40,15 @@ function createSlackTokenResolver(defaultPath) {
39
40
  const resolveSlackBotToken = createSlackTokenResolver("channels.slack.botToken");
40
41
  const resolveSlackAppToken = createSlackTokenResolver("channels.slack.appToken");
41
42
  const resolveSlackUserToken = createSlackTokenResolver("channels.slack.userToken");
42
- // extensions/slack/src/account-reply-mode.ts
43
+ //#endregion
44
+ //#region extensions/slack/src/account-reply-mode.ts
43
45
  function resolveSlackReplyToMode(account, chatType) {
44
46
  const normalized = normalizeChatType(chatType ?? void 0);
45
47
  if (normalized && account.replyToModeByChatType?.[normalized] !== void 0) return account.replyToModeByChatType[normalized] ?? "off";
46
48
  return account.replyToMode ?? "off";
47
49
  }
48
- // extensions/slack/src/accounts.ts
50
+ //#endregion
51
+ //#region extensions/slack/src/accounts.ts
49
52
  var accounts_exports = /* @__PURE__ */ __exportAll({
50
53
  hasImplicitDefaultSlackAccount: () => hasImplicitDefaultSlackAccount,
51
54
  listEnabledSlackAccounts: () => listEnabledSlackAccounts,
@@ -182,4 +185,5 @@ function listEnabledSlackAccounts(cfg) {
182
185
  accountId
183
186
  })).filter((account) => account.enabled);
184
187
  }
188
+ //#endregion
185
189
  export { mergeSlackAccountConfig as a, resolveSlackAccountAllowFrom as c, resolveSlackOperationToken as d, resolveSlackReplyToMode as f, buildSlackAccountSurfaceFields as g, resolveSlackBotToken as h, listSlackAccountIds as i, resolveSlackAccountDmPolicy as l, resolveSlackAppToken as m, hasImplicitDefaultSlackAccount as n, resolveDefaultSlackAccountId as o, formatSlackBotTokenIdentityWarning as p, listEnabledSlackAccounts as r, resolveSlackAccount as s, accounts_exports as t, resolveSlackConfigAccessorAccount as u };
@@ -1,8 +1,8 @@
1
- import { a as parseSlackTarget, n as formatSlackTarget, o as resolveSlackChannelId } from "./target-parsing-0pRZtahO.mjs";
2
- import { t as slackContextTargetsMatch } from "./targets-BqXz7CpG.mjs";
3
- import { Ht as resolveSlackAutoThreadId, Vt as SLACK_PRIVATE_ACTION_DELIVERY_RESULT, b as hasSlackNativeDataBlock, ht as parseSlackBlocksInput, jt as getSlackInstallationKind, m as assertSlackDetachedTargetAllowed, r as buildSlackChannelIdCandidates } from "./session-status-CHkEn3HM.mjs";
4
- import { n as resolveSlackChannelConfig, t as isSlackChannelAllowedByPolicy } from "./policy-Bp1FvE6m.mjs";
5
- import { t as mergeSlackSendResults } from "./send-results-D-o6PgtS.mjs";
1
+ import { a as parseSlackTarget, n as formatSlackTarget, o as resolveSlackChannelId } from "./target-parsing-FFE26kOV.mjs";
2
+ import { t as slackContextTargetsMatch } from "./targets-C6LZQL1Q.mjs";
3
+ import { Ht as resolveSlackAutoThreadId, Vt as SLACK_PRIVATE_ACTION_DELIVERY_RESULT, b as hasSlackNativeDataBlock, ht as parseSlackBlocksInput, jt as getSlackInstallationKind, m as assertSlackDetachedTargetAllowed, r as buildSlackChannelIdCandidates } from "./session-status-Dv8wNBEt.mjs";
4
+ import { n as resolveSlackChannelConfig, t as isSlackChannelAllowedByPolicy } from "./policy-yhn48xf5.mjs";
5
+ import { t as mergeSlackSendResults } from "./send-results-eeOu_HYm.mjs";
6
6
  import { normalizeAccountId } from "openclaw/plugin-sdk/account-resolution";
7
7
  import { normalizeOptionalLowercaseString } from "openclaw/plugin-sdk/string-coerce-runtime";
8
8
  import { createLazyRuntimeMethodBinder, createLazyRuntimeModule } from "openclaw/plugin-sdk/lazy-runtime";
@@ -10,7 +10,7 @@ import { isSingleUseReplyToMode } from "openclaw/plugin-sdk/reply-reference";
10
10
  import { readBooleanParam } from "openclaw/plugin-sdk/boolean-param";
11
11
  import { createActionGate, imageResultFromFile, jsonResult, readPositiveIntegerParam, readReactionParams, readStringParam, withNormalizedTimestamp } from "openclaw/plugin-sdk/channel-actions";
12
12
  import { resolveOpenProviderRuntimeGroupPolicy } from "openclaw/plugin-sdk/runtime-group-policy";
13
- // extensions/slack/src/action-runtime.ts
13
+ //#region extensions/slack/src/action-runtime.ts
14
14
  const messagingActions = /* @__PURE__ */ new Set([
15
15
  "openConversation",
16
16
  "sendMessage",
@@ -30,10 +30,10 @@ const SLACK_REACTION_RESULT_LIMIT = 100;
30
30
  function readSlackResultLimit(params) {
31
31
  return Math.min(readPositiveIntegerParam(params, "limit", { message: "limit must be a positive integer." }) ?? SLACK_REACTION_RESULT_LIMIT, SLACK_REACTION_RESULT_LIMIT);
32
32
  }
33
- const loadSlackActionsRuntime = createLazyRuntimeModule(() => import("./actions-PF2cP6to.mjs").then((n) => n.t));
33
+ const loadSlackActionsRuntime = createLazyRuntimeModule(() => import("./actions-By7tvpvv.mjs").then((n) => n.t));
34
34
  const bindSlackAction = createLazyRuntimeMethodBinder(loadSlackActionsRuntime);
35
- const loadSlackAccountsRuntime = createLazyRuntimeModule(() => import("./accounts-CEgdyqoW.mjs").then((n) => n.t));
36
- const loadSlackChannelTypeRuntime = createLazyRuntimeModule(() => import("./channel-type-Dh4vwh1Y.mjs").then((n) => n.t));
35
+ const loadSlackAccountsRuntime = createLazyRuntimeModule(() => import("./accounts-msihSF3-.mjs").then((n) => n.t));
36
+ const loadSlackChannelTypeRuntime = createLazyRuntimeModule(() => import("./channel-type-BEFP2ORi.mjs").then((n) => n.t));
37
37
  const bindSlackChannelType = createLazyRuntimeMethodBinder(loadSlackChannelTypeRuntime);
38
38
  const slackActionRuntime = {
39
39
  deleteSlackMessage: bindSlackAction((runtime) => runtime.deleteSlackMessage),
@@ -620,4 +620,5 @@ async function handleSlackAction(params, cfg, context) {
620
620
  }
621
621
  throw new Error(`Unknown action: ${action}`);
622
622
  }
623
+ //#endregion
623
624
  export { slackActionRuntime as n, handleSlackAction as t };
@@ -0,0 +1,2 @@
1
+ import { t as handleSlackAction } from "./action-runtime-ChRfnnBu.mjs";
2
+ export { handleSlackAction };
@@ -1,9 +1,9 @@
1
- import { t as __exportAll } from "./rolldown-runtime-nwUcYXjP.mjs";
2
- import { h as resolveSlackBotToken, o as resolveDefaultSlackAccountId, s as resolveSlackAccount } from "./accounts-CEgdyqoW.mjs";
3
- import { n as formatSlackTarget } from "./target-parsing-0pRZtahO.mjs";
4
- import { D as buildSlackCompleteBlocksFallbackText, E as buildSlackBlocksFallbackText, F as truncateSlackTextByUtf8Bytes, N as countSlackTextUtf8Bytes, O as renderSlackBlockFallbackText, Q as normalizeSlackOutboundText, T as stripSlackNativeDataBlocks, Vt as SLACK_PRIVATE_ACTION_DELIVERY_RESULT, _ as appendSlackNativeDataPlainTextFallback, b as hasSlackNativeDataBlock, g as appendSlackNativeDataFallbackText, gt as validateSlackBlocksArray, k as SLACK_EDIT_TEXT_MAX_BYTES, m as assertSlackDetachedTargetAllowed, st as escapeSlackMrkdwn, x as isSlackInvalidBlocksError } from "./session-status-CHkEn3HM.mjs";
5
- import { _ as getSlackWriteClient, h as createSlackWriteClient, u as createSlackLookupClient } from "./probe-C5VWf3sz.mjs";
6
- import { m as buildSlackNativeDataDeliveryPlan, t as sendMessageSlack } from "./send-C5uXkmZV.mjs";
1
+ import { t as __exportAll } from "./rolldown-runtime-B4FMCO8f.mjs";
2
+ import { h as resolveSlackBotToken, o as resolveDefaultSlackAccountId, s as resolveSlackAccount } from "./accounts-msihSF3-.mjs";
3
+ import { n as formatSlackTarget } from "./target-parsing-FFE26kOV.mjs";
4
+ import { D as buildSlackCompleteBlocksFallbackText, E as buildSlackBlocksFallbackText, F as truncateSlackTextByUtf8Bytes, N as countSlackTextUtf8Bytes, O as renderSlackBlockFallbackText, Q as normalizeSlackOutboundText, T as stripSlackNativeDataBlocks, Vt as SLACK_PRIVATE_ACTION_DELIVERY_RESULT, _ as appendSlackNativeDataPlainTextFallback, b as hasSlackNativeDataBlock, g as appendSlackNativeDataFallbackText, gt as validateSlackBlocksArray, k as SLACK_EDIT_TEXT_MAX_BYTES, m as assertSlackDetachedTargetAllowed, st as escapeSlackMrkdwn, x as isSlackInvalidBlocksError } from "./session-status-Dv8wNBEt.mjs";
5
+ import { _ as getSlackWriteClient, h as createSlackWriteClient, u as createSlackLookupClient } from "./probe-IiHogLQN.mjs";
6
+ import { m as buildSlackNativeDataDeliveryPlan, t as sendMessageSlack } from "./send-C-8wY0lK.mjs";
7
7
  import { normalizeAccountId } from "openclaw/plugin-sdk/account-resolution";
8
8
  import { asOptionalObjectRecord, asOptionalRecord, isRecord, normalizeLowercaseStringOrEmpty, normalizeOptionalLowercaseString, normalizeOptionalString, readNonBlankString } from "openclaw/plugin-sdk/string-coerce-runtime";
9
9
  import { createSubsystemLogger, logVerbose } from "openclaw/plugin-sdk/runtime-env";
@@ -20,7 +20,7 @@ import { normalizeHostname } from "openclaw/plugin-sdk/host-runtime";
20
20
  import { resolveRequestUrl } from "openclaw/plugin-sdk/request-url";
21
21
  import { raceWithTimeout } from "openclaw/plugin-sdk/time-runtime";
22
22
  import { saveRemoteMedia, unlinkIfExists } from "openclaw/plugin-sdk/media-runtime";
23
- // extensions/slack/src/conversation-open.ts
23
+ //#region extensions/slack/src/conversation-open.ts
24
24
  function parseSlackConversationOpenInput(userIds, teamId) {
25
25
  const users = z.array(z.string().trim().regex(/^[UW][A-Z0-9]+$/)).min(1).max(8).parse(userIds);
26
26
  if (new Set(users).size !== users.length) throw new Error("Slack conversation-open requires distinct userIds.");
@@ -42,7 +42,8 @@ async function openSlackConversationWithClient(client, input) {
42
42
  })
43
43
  };
44
44
  }
45
- // extensions/slack/src/edit-text.ts
45
+ //#endregion
46
+ //#region extensions/slack/src/edit-text.ts
46
47
  function buildSlackEditTextPayload(content, blocks) {
47
48
  const trimmedContent = content.trim();
48
49
  const blockText = blocks?.length ? buildSlackCompleteBlocksFallbackText(blocks).trim() : "";
@@ -55,7 +56,8 @@ function buildSlackEditTextPayload(content, blocks) {
55
56
  if (blockText) return truncateSlackTextByUtf8Bytes(blockText, SLACK_EDIT_TEXT_MAX_BYTES);
56
57
  return " ";
57
58
  }
58
- // extensions/slack/src/monitor/block-text.ts
59
+ //#endregion
60
+ //#region extensions/slack/src/monitor/block-text.ts
59
61
  function hasSlackTableBlock(blocks) {
60
62
  return blocks?.some((block) => asOptionalRecord(block)?.type === "table") ?? false;
61
63
  }
@@ -130,7 +132,8 @@ function chooseSlackPrimaryText(params) {
130
132
  if (blocksText.hasRichText && blocksText.text.length > messageText.length) return blocksText.text;
131
133
  return blocksText.text.length > messageText.length && blocksText.text.startsWith(messageText) ? blocksText.text : messageText;
132
134
  }
133
- // extensions/slack/src/file-reference.ts
135
+ //#endregion
136
+ //#region extensions/slack/src/file-reference.ts
134
137
  function formatSlackFileReference(file) {
135
138
  const name = normalizeOptionalString(file?.name) ?? "file";
136
139
  const mimetype = normalizeOptionalString(file?.mimetype);
@@ -147,15 +150,18 @@ function formatSlackFileReferenceList(files) {
147
150
  if (!files?.length) return "file";
148
151
  return files.map((file) => formatSlackFileReference(file)).join(", ");
149
152
  }
150
- // extensions/slack/src/monitor/media.runtime.ts
153
+ //#endregion
154
+ //#region extensions/slack/src/monitor/media.runtime.ts
151
155
  const slackMediaLog = createSubsystemLogger("gateway/channels/slack").child("media");
152
- // extensions/slack/src/monitor/slack-client-kind.ts
156
+ //#endregion
157
+ //#region extensions/slack/src/monitor/slack-client-kind.ts
153
158
  /** Detects the isolated GovSlack API plane without consulting mutable config. */
154
159
  function isGovSlackClient(client) {
155
160
  const apiUrl = client?.slackApiUrl ? URL.parse(client.slackApiUrl) : null;
156
161
  return apiUrl?.protocol === "https:" && !apiUrl.port && normalizeHostname(apiUrl.hostname) === "slack-gov.com";
157
162
  }
158
- // extensions/slack/src/monitor/media.ts
163
+ //#endregion
164
+ //#region extensions/slack/src/monitor/media.ts
159
165
  var media_exports = /* @__PURE__ */ __exportAll({
160
166
  SLACK_MEDIA_READ_IDLE_TIMEOUT_MS: () => SLACK_MEDIA_READ_IDLE_TIMEOUT_MS,
161
167
  resolveSlackAttachmentContent: () => resolveSlackAttachmentContent,
@@ -488,7 +494,8 @@ async function resolveSlackAttachmentContent(params) {
488
494
  ...unavailableFiles.length > 0 ? { files: unavailableFiles } : {}
489
495
  };
490
496
  }
491
- // extensions/slack/src/actions.ts
497
+ //#endregion
498
+ //#region extensions/slack/src/actions.ts
492
499
  var actions_exports = /* @__PURE__ */ __exportAll({
493
500
  deleteSlackMessage: () => deleteSlackMessage,
494
501
  downloadSlackFile: () => downloadSlackFile,
@@ -840,4 +847,5 @@ async function downloadSlackFile(fileId, opts) {
840
847
  maxBytes: opts.maxBytes
841
848
  }))?.[0] ?? null;
842
849
  }
850
+ //#endregion
843
851
  export { hasSlackTableBlock as C, buildSlackEditTextPayload as D, resolveSlackMessageText as E, hasSlackMessageTableBlock as S, resolveSlackBlocksText as T, media_exports as _, editSlackRenderedMessage as a, formatSlackFileReference as b, listSlackPins as c, reactSlackMessage as d, readSlackMessages as f, unpinSlackMessage as g, sendSlackMessage as h, editSlackMessage as i, listSlackReactions as l, removeSlackReaction as m, deleteSlackMessage as n, getSlackMemberInfo as o, removeOwnSlackReactions as p, downloadSlackFile as r, listSlackEmojis as s, actions_exports as t, pinSlackMessage as u, isGovSlackClient as v, isSlackUnfurlAttachment as w, formatSlackFileReferenceList as x, saveRemoteMedia as y };
@@ -1,16 +1,16 @@
1
- import { a as parseSlackTarget } from "./target-parsing-0pRZtahO.mjs";
2
- import { F as truncateSlackTextByUtf8Bytes, Lt as normalizeSlackApproverId, P as truncateSlackText, Tt as shouldHandleSlackNativeApprovalRequest, _t as isSlackAnyNativeApprovalClientEnabled, ct as SLACK_APPROVAL_HEADER_BLOCK_ID, k as SLACK_EDIT_TEXT_MAX_BYTES, n as setSlackSessionStatus } from "./session-status-CHkEn3HM.mjs";
3
- import { g as getSlackListenerWriteClient } from "./probe-C5VWf3sz.mjs";
4
- import { s as resolveSlackReplyBlocks } from "./reply-blocks-DOjiDr44.mjs";
5
- import { t as sendMessageSlack } from "./send-C5uXkmZV.mjs";
6
- import { n as runSlackApprovalMessageUpdate } from "./approval-message-updates-CpwbsEj6.mjs";
1
+ import { a as parseSlackTarget } from "./target-parsing-FFE26kOV.mjs";
2
+ import { F as truncateSlackTextByUtf8Bytes, Lt as normalizeSlackApproverId, P as truncateSlackText, Tt as shouldHandleSlackNativeApprovalRequest, _t as isSlackAnyNativeApprovalClientEnabled, ct as SLACK_APPROVAL_HEADER_BLOCK_ID, k as SLACK_EDIT_TEXT_MAX_BYTES, n as setSlackSessionStatus } from "./session-status-Dv8wNBEt.mjs";
3
+ import { g as getSlackListenerWriteClient } from "./probe-IiHogLQN.mjs";
4
+ import { s as resolveSlackReplyBlocks } from "./reply-blocks-Ca-raz2z.mjs";
5
+ import { t as sendMessageSlack } from "./send-C-8wY0lK.mjs";
6
+ import { n as runSlackApprovalMessageUpdate } from "./approval-message-updates-DT7XBPbV.mjs";
7
7
  import { normalizeOptionalString } from "openclaw/plugin-sdk/string-coerce-runtime";
8
8
  import { buildChannelApprovalNativeTargetKey } from "openclaw/plugin-sdk/approval-native-runtime";
9
9
  import { buildApprovalPresentationFromActionDescriptors } from "openclaw/plugin-sdk/approval-reply-runtime";
10
10
  import { logError } from "openclaw/plugin-sdk/logging-core";
11
11
  import { createChannelApprovalNativeRuntimeAdapterAsync } from "openclaw/plugin-sdk/approval-handler-runtime";
12
12
  import { formatChannelApprovalResolvedLabel } from "openclaw/plugin-sdk/approval-runtime";
13
- // extensions/slack/src/approval-handler.runtime.ts
13
+ //#region extensions/slack/src/approval-handler.runtime.ts
14
14
  const SLACK_CONTEXT_ELEMENTS_MAX = 10;
15
15
  const SLACK_TEXT_OBJECT_MAX = 3e3;
16
16
  function resolveHandlerContext(params) {
@@ -265,4 +265,5 @@ async function resolveApprovalChannel(client, target, teamId) {
265
265
  if (!channelId) throw new Error("Slack approval DM did not return a channel id");
266
266
  return `channel:${channelId}`;
267
267
  }
268
+ //#endregion
268
269
  export { slackApprovalNativeRuntime };
@@ -1,7 +1,7 @@
1
- import { U as isSlackApprovalActionId, lt as decodeSlackApprovalAction } from "./session-status-CHkEn3HM.mjs";
1
+ import { U as isSlackApprovalActionId, lt as decodeSlackApprovalAction } from "./session-status-Dv8wNBEt.mjs";
2
2
  import { asOptionalRecord } from "openclaw/plugin-sdk/string-coerce-runtime";
3
3
  import { KeyedAsyncQueue } from "openclaw/plugin-sdk/keyed-async-queue";
4
- // extensions/slack/src/approval-message-updates.ts
4
+ //#region extensions/slack/src/approval-message-updates.ts
5
5
  const updates = new KeyedAsyncQueue();
6
6
  function runSlackApprovalMessageUpdate(target, update) {
7
7
  return updates.enqueue(JSON.stringify([
@@ -22,4 +22,5 @@ function hasSlackApprovalControl(blocks, approval) {
22
22
  });
23
23
  }) ?? false;
24
24
  }
25
+ //#endregion
25
26
  export { runSlackApprovalMessageUpdate as n, hasSlackApprovalControl as t };
@@ -1,16 +1,16 @@
1
- import { r as isSlackPluginAccountConfigured } from "./account-configured-35y0-Hso.mjs";
2
- import { c as resolveSlackAccountAllowFrom, d as resolveSlackOperationToken, f as resolveSlackReplyToMode, i as listSlackAccountIds, n as hasImplicitDefaultSlackAccount, o as resolveDefaultSlackAccountId, s as resolveSlackAccount } from "./accounts-CEgdyqoW.mjs";
3
- import { a as parseSlackTarget, i as normalizeSlackMessagingTarget, n as formatSlackTarget, o as resolveSlackChannelId, r as looksLikeSlackTargetId, t as canonicalizeSlackApiTargetId } from "./target-parsing-0pRZtahO.mjs";
4
- import { t as slackContextTargetsMatch } from "./targets-BqXz7CpG.mjs";
5
- import { At as resolveSlackApprovalTeamId, Bt as resolvePluginApprovalSlackApprovers, Ct as resolveSlackFallbackOriginTarget, Dt as slackTargetsMatch, Et as shouldHandleSlackPluginViaForwardingSession, Ft as isSlackExecApprovalAuthorizedSender, Ht as resolveSlackAutoThreadId, It as isSlackExecApprovalClientEnabled, M as SLACK_TEXT_LIMIT, Mt as isSlackWorkspaceInstallation, N as countSlackTextUtf8Bytes, Ot as getSlackApprovalApproversForTeam, Pt as getSlackExecApprovalApprovers, Q as normalizeSlackOutboundText, Rt as resolveSlackExecApprovalTarget, St as resolveSlackApproverDmTargets, Tt as shouldHandleSlackNativeApprovalRequest, _t as isSlackAnyNativeApprovalClientEnabled, a as resolveSlackGroupRequireMention, bt as normalizeSlackOriginTarget, c as qualifySlackConversationId, d as normalizeSlackRouteBindingConfig, f as resolveSlackConversationBindingRoute, ft as SLACK_PRESENTATION_CAPABILITIES, jt as getSlackInstallationKind, k as SLACK_EDIT_TEXT_MAX_BYTES, kt as isSlackPluginApprovalAuthorizedSender, l as qualifySlackRoutePeerId, m as assertSlackDetachedTargetAllowed, n as setSlackSessionStatus, o as resolveSlackGroupToolPolicy, ot as renderSlackMessagePresentationFallbackText, vt as isSlackPluginApprovalRequest, wt as resolveTurnSourceSlackOriginTarget, xt as resolveSessionSlackOriginTarget, yt as normalizeSlackForwardTarget, zt as shouldSuppressLocalSlackExecApprovalPrompt } from "./session-status-CHkEn3HM.mjs";
6
- import { _ as getSlackWriteClient, c as collectSlackCursorPages, o as formatSlackError, u as createSlackLookupClient } from "./probe-C5VWf3sz.mjs";
7
- import { c as resolveSlackReplyDeliveryMessages, o as resolveSlackReplyBlockResolution, p as buildSlackPresentationBlocksIfComplete, r as normalizeSlackReplyPayload, s as resolveSlackReplyBlocks } from "./reply-blocks-DOjiDr44.mjs";
8
- import { n as resolveSlackReplyThreadTs, r as resolveSlackThreadTsValue, t as normalizeSlackThreadTsCandidate } from "./thread-ts-47Au2-Yn.mjs";
9
- import { n as extractSlackToolSend, t as describeSlackMessageTool } from "./message-tool-api-DeiQJoRV.mjs";
10
- import { n as resolveSlackChannelType, r as resolveSlackConversationInfo } from "./channel-type-Dh4vwh1Y.mjs";
11
- import { t as getOptionalSlackRuntime } from "./runtime-C6HKn7Av.mjs";
12
- import { n as slackPluginBase, r as slackSecurityAdapter, t as slackConfigAdapter } from "./shared-DbdvOUXo.mjs";
13
- import { i as SLACK_CHANNEL } from "./channel.setup-Cc6oaNPS.mjs";
1
+ import { r as isSlackPluginAccountConfigured } from "./account-configured-zcR9TJJN.mjs";
2
+ import { c as resolveSlackAccountAllowFrom, d as resolveSlackOperationToken, f as resolveSlackReplyToMode, i as listSlackAccountIds, n as hasImplicitDefaultSlackAccount, o as resolveDefaultSlackAccountId, s as resolveSlackAccount } from "./accounts-msihSF3-.mjs";
3
+ import { a as parseSlackTarget, i as normalizeSlackMessagingTarget, n as formatSlackTarget, o as resolveSlackChannelId, r as looksLikeSlackTargetId, t as canonicalizeSlackApiTargetId } from "./target-parsing-FFE26kOV.mjs";
4
+ import { t as slackContextTargetsMatch } from "./targets-C6LZQL1Q.mjs";
5
+ import { At as resolveSlackApprovalTeamId, Bt as resolvePluginApprovalSlackApprovers, Ct as resolveSlackFallbackOriginTarget, Dt as slackTargetsMatch, Et as shouldHandleSlackPluginViaForwardingSession, Ft as isSlackExecApprovalAuthorizedSender, Ht as resolveSlackAutoThreadId, It as isSlackExecApprovalClientEnabled, M as SLACK_TEXT_LIMIT, Mt as isSlackWorkspaceInstallation, N as countSlackTextUtf8Bytes, Ot as getSlackApprovalApproversForTeam, Pt as getSlackExecApprovalApprovers, Q as normalizeSlackOutboundText, Rt as resolveSlackExecApprovalTarget, St as resolveSlackApproverDmTargets, Tt as shouldHandleSlackNativeApprovalRequest, _t as isSlackAnyNativeApprovalClientEnabled, a as resolveSlackGroupRequireMention, bt as normalizeSlackOriginTarget, c as qualifySlackConversationId, d as normalizeSlackRouteBindingConfig, f as resolveSlackConversationBindingRoute, ft as SLACK_PRESENTATION_CAPABILITIES, jt as getSlackInstallationKind, k as SLACK_EDIT_TEXT_MAX_BYTES, kt as isSlackPluginApprovalAuthorizedSender, l as qualifySlackRoutePeerId, m as assertSlackDetachedTargetAllowed, n as setSlackSessionStatus, o as resolveSlackGroupToolPolicy, ot as renderSlackMessagePresentationFallbackText, vt as isSlackPluginApprovalRequest, wt as resolveTurnSourceSlackOriginTarget, xt as resolveSessionSlackOriginTarget, yt as normalizeSlackForwardTarget, zt as shouldSuppressLocalSlackExecApprovalPrompt } from "./session-status-Dv8wNBEt.mjs";
6
+ import { _ as getSlackWriteClient, c as collectSlackCursorPages, o as formatSlackError, u as createSlackLookupClient } from "./probe-IiHogLQN.mjs";
7
+ import { c as resolveSlackReplyDeliveryMessages, o as resolveSlackReplyBlockResolution, p as buildSlackPresentationBlocksIfComplete, r as normalizeSlackReplyPayload, s as resolveSlackReplyBlocks } from "./reply-blocks-Ca-raz2z.mjs";
8
+ import { n as resolveSlackReplyThreadTs, r as resolveSlackThreadTsValue, t as normalizeSlackThreadTsCandidate } from "./thread-ts-Cvt7WD6B.mjs";
9
+ import { n as extractSlackToolSend, t as describeSlackMessageTool } from "./message-tool-api-BS5ekEA_.mjs";
10
+ import { n as resolveSlackChannelType, r as resolveSlackConversationInfo } from "./channel-type-BEFP2ORi.mjs";
11
+ import { t as getOptionalSlackRuntime } from "./runtime-JSVZSWAj.mjs";
12
+ import { n as slackPluginBase, r as slackSecurityAdapter, t as slackConfigAdapter } from "./shared-BhJHIZs1.mjs";
13
+ import { i as SLACK_CHANNEL } from "./channel.setup-CzFw73mU.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";
@@ -35,7 +35,7 @@ import { resolveReactionMessageId } from "openclaw/plugin-sdk/channel-actions";
35
35
  import { normalizeLegacyInteractiveReply, normalizeMessagePresentation } from "openclaw/plugin-sdk/interactive-runtime";
36
36
  import { resolveMarkdownTableMode } from "openclaw/plugin-sdk/markdown-table-runtime";
37
37
  import { readPositiveIntegerParam as readPositiveIntegerParam$1, readStringParam as readStringParam$1 } from "openclaw/plugin-sdk/param-readers";
38
- // extensions/slack/src/approval-native.ts
38
+ //#region extensions/slack/src/approval-native.ts
39
39
  function resolveSlackNativeSuppressionAccountId({ target, request }) {
40
40
  return normalizeOptionalString(target.accountId) ?? normalizeOptionalString(request.request.turnSourceAccountId);
41
41
  }
@@ -99,7 +99,7 @@ const baseSlackApprovalCapability = createApproverRestrictedNativeApprovalCapabi
99
99
  ],
100
100
  isConfigured: isSlackAnyNativeApprovalClientEnabled,
101
101
  shouldHandle: shouldHandleSlackNativeApprovalRequest,
102
- load: async () => (await import("./approval-handler.runtime-BtRklemy.mjs")).slackApprovalNativeRuntime
102
+ load: async () => (await import("./approval-handler.runtime-D8ArtDQt.mjs")).slackApprovalNativeRuntime
103
103
  })
104
104
  });
105
105
  const baseSlackNativeAdapter = baseSlackApprovalCapability.nativeAsync;
@@ -167,7 +167,8 @@ const slackApprovalCapability = {
167
167
  }
168
168
  } : void 0
169
169
  };
170
- // extensions/slack/src/message-action-dispatch.ts
170
+ //#endregion
171
+ //#region extensions/slack/src/message-action-dispatch.ts
171
172
  const SLACK_MESSAGE_ACTIONS = /* @__PURE__ */ new Map([
172
173
  ["reactions", "reactions"],
173
174
  ["delete", "deleteMessage"],
@@ -366,7 +367,8 @@ async function handleSlackMessageAction(params) {
366
367
  }
367
368
  throw new Error(`Action ${action} is not supported for provider ${providerId}.`);
368
369
  }
369
- // extensions/slack/src/channel-actions.ts
370
+ //#endregion
371
+ //#region extensions/slack/src/channel-actions.ts
370
372
  const SLACK_TOOL_DELIVERY_ACTIONS = /* @__PURE__ */ new Set([
371
373
  "deleteMessage",
372
374
  "editMessage",
@@ -376,7 +378,7 @@ const SLACK_TOOL_DELIVERY_ACTIONS = /* @__PURE__ */ new Set([
376
378
  "unpinMessage",
377
379
  "uploadFile"
378
380
  ]);
379
- const loadSlackActionRuntime$1 = createLazyRuntimeModule(() => import("./action-runtime.runtime-DWKWaKgC.mjs"));
381
+ const loadSlackActionRuntime$1 = createLazyRuntimeModule(() => import("./action-runtime.runtime-vLxx_7s2.mjs"));
380
382
  function resolveSlackActionContext(ctx, toolContext) {
381
383
  if (!toolContext && !ctx.mediaAccess && !ctx.mediaLocalRoots && !ctx.mediaReadFile && !ctx.conversationReadOrigin && !ctx.requesterAccountId && !ctx.requesterSenderId && !ctx.assertDirectAdapterHandoff) return;
382
384
  return {
@@ -427,7 +429,8 @@ function shouldUseWorkspaceAwareSlackActionSend(rawTarget, context) {
427
429
  }
428
430
  return false;
429
431
  }
430
- // extensions/slack/src/conversation-route-owner.ts
432
+ //#endregion
433
+ //#region extensions/slack/src/conversation-route-owner.ts
431
434
  function prepareSlackConversationRouteOwner(params) {
432
435
  const accountId = normalizeAccountId(params.accountId);
433
436
  const accountConfig = resolveAccountEntry(params.cfg.channels?.slack?.accounts, accountId);
@@ -548,7 +551,8 @@ async function prepareSlackConversationRouteOwnersAsync(inputs, inspectBindings)
548
551
  });
549
552
  }
550
553
  const slackConversationRouteOwners = { prepareConversationRouteOwnersAsync: prepareSlackConversationRouteOwnersAsync };
551
- // extensions/slack/src/enterprise-user-route.ts
554
+ //#endregion
555
+ //#region extensions/slack/src/enterprise-user-route.ts
552
556
  /** Resolve a workspace for a detached Enterprise DM without opening a conversation. */
553
557
  async function resolveSlackEnterpriseUserTeamId(params) {
554
558
  const account = resolveSlackAccount(params);
@@ -573,7 +577,8 @@ async function resolveSlackEnterpriseUserTeamId(params) {
573
577
  if (!teamId) throw new Error("unsupported_enterprise_slack_delivery: recipient shares no verified installed workspace");
574
578
  return teamId;
575
579
  }
576
- // extensions/slack/src/threading-tool-context.ts
580
+ //#endregion
581
+ //#region extensions/slack/src/threading-tool-context.ts
577
582
  function buildSlackThreadingToolContext(params) {
578
583
  const account = resolveSlackAccount({
579
584
  cfg: params.cfg,
@@ -603,23 +608,24 @@ function buildSlackThreadingToolContext(params) {
603
608
  sameChannelThreadRequired: hasExplicitThreadTarget
604
609
  };
605
610
  }
606
- // extensions/slack/src/channel.ts
611
+ //#endregion
612
+ //#region extensions/slack/src/channel.ts
607
613
  const loadExtensionSharedSdk = createLazyRuntimeModule(() => import("openclaw/plugin-sdk/extension-shared"));
608
614
  const loadTargetResolverRuntimeSdk = createLazyRuntimeModule(() => import("openclaw/plugin-sdk/target-resolver-runtime"));
609
- const loadSlackScopesModule = createLazyRuntimeModule(() => import("./scopes-C1aeCBa6.mjs"));
610
- const loadSlackOutboundAdapterModule = createLazyRuntimeModule(() => import("./outbound-adapter-C0R5jz6S.mjs"));
615
+ const loadSlackScopesModule = createLazyRuntimeModule(() => import("./scopes-DfQVi8Jw.mjs"));
616
+ const loadSlackOutboundAdapterModule = createLazyRuntimeModule(() => import("./outbound-adapter-9dbnYtL1.mjs"));
611
617
  const bindSlackOutbound = createLazyRuntimeMethodBinder(loadSlackOutboundAdapterModule);
612
618
  async function resolveSlackHandleAction() {
613
619
  return getOptionalSlackRuntime()?.channel?.slack?.handleSlackAction ?? (await loadSlackActionRuntime()).handleSlackAction;
614
620
  }
615
- const loadSlackDirectoryConfigModule = createLazyRuntimeModule(() => import("./directory-config-BEPra1E2.mjs").then((n) => n.t));
616
- const loadSlackResolveChannelsModule = createLazyRuntimeModule(() => import("./resolve-channels-BNQ1KZXh.mjs").then((n) => n.n));
617
- const loadSlackResolveUsersModule = createLazyRuntimeModule(() => import("./resolve-users-C4dC8Z7D.mjs").then((n) => n.n));
618
- const loadSlackActionRuntime = createLazyRuntimeModule(() => import("./action-runtime.runtime-DWKWaKgC.mjs"));
619
- const loadSlackSendRuntime = createLazyRuntimeModule(() => import("./send-C5uXkmZV.mjs").then((n) => n.n));
620
- const loadSlackProbeModule = createLazyRuntimeModule(() => import("./probe-C5VWf3sz.mjs").then((n) => n.n));
621
- const loadSlackMonitorModule = createLazyRuntimeModule(() => import("./monitor-BSKi0nx-.mjs").then((n) => n.t));
622
- const loadSlackDirectoryLiveModule = createLazyRuntimeModule(() => import("./directory-live-BkUwPrS0.mjs").then((n) => n.t));
621
+ const loadSlackDirectoryConfigModule = createLazyRuntimeModule(() => import("./directory-config-Cjj0N8R0.mjs").then((n) => n.t));
622
+ const loadSlackResolveChannelsModule = createLazyRuntimeModule(() => import("./resolve-channels-DRRhElwz.mjs").then((n) => n.n));
623
+ const loadSlackResolveUsersModule = createLazyRuntimeModule(() => import("./resolve-users-Cz8e17ky.mjs").then((n) => n.n));
624
+ const loadSlackActionRuntime = createLazyRuntimeModule(() => import("./action-runtime.runtime-vLxx_7s2.mjs"));
625
+ const loadSlackSendRuntime = createLazyRuntimeModule(() => import("./send-C-8wY0lK.mjs").then((n) => n.n));
626
+ const loadSlackProbeModule = createLazyRuntimeModule(() => import("./probe-IiHogLQN.mjs").then((n) => n.n));
627
+ const loadSlackMonitorModule = createLazyRuntimeModule(() => import("./monitor-CV6Z6FKP.mjs").then((n) => n.t));
628
+ const loadSlackDirectoryLiveModule = createLazyRuntimeModule(() => import("./directory-live-BIKD-5B_.mjs").then((n) => n.t));
623
629
  async function setSlackHeartbeatThreadStatus(params) {
624
630
  const threadTs = resolveSlackThreadTsValue({ threadId: params.threadId });
625
631
  const target = parseSlackTarget(params.to, { defaultKind: "channel" });
@@ -1155,4 +1161,5 @@ const slackPlugin = createChatChannelPlugin({
1155
1161
  },
1156
1162
  outbound: slackChannelOutbound
1157
1163
  });
1164
+ //#endregion
1158
1165
  export { buildSlackThreadingToolContext as n, slackPlugin as t };
@@ -1,4 +1,4 @@
1
- // extensions/slack/src/channel-meta.ts
1
+ //#region extensions/slack/src/channel-meta.ts
2
2
  const SLACK_CHANNEL_META = {
3
3
  id: "slack",
4
4
  label: "Slack",
@@ -23,4 +23,5 @@ const DEFAULT_SLACK_SUGGESTED_PROMPTS = [
23
23
  message: "Help me draft a reply."
24
24
  }
25
25
  ];
26
+ //#endregion
26
27
  export { SLACK_CHANNEL_META as n, DEFAULT_SLACK_SUGGESTED_PROMPTS as t };
@@ -1,12 +1,12 @@
1
- import { t as __exportAll } from "./rolldown-runtime-nwUcYXjP.mjs";
2
- import { d as resolveSlackOperationToken, s as resolveSlackAccount } from "./accounts-CEgdyqoW.mjs";
3
- import { m as assertSlackDetachedTargetAllowed } from "./session-status-CHkEn3HM.mjs";
4
- import { d as createSlackReadClient, m as createSlackWebClient, y as readLruMapEntry } from "./probe-C5VWf3sz.mjs";
1
+ import { t as __exportAll } from "./rolldown-runtime-B4FMCO8f.mjs";
2
+ import { d as resolveSlackOperationToken, s as resolveSlackAccount } from "./accounts-msihSF3-.mjs";
3
+ import { m as assertSlackDetachedTargetAllowed } from "./session-status-Dv8wNBEt.mjs";
4
+ import { d as createSlackReadClient, m as createSlackWebClient, y as readLruMapEntry } from "./probe-IiHogLQN.mjs";
5
5
  import { normalizeLowercaseStringOrEmpty, normalizeOptionalString } from "openclaw/plugin-sdk/string-coerce-runtime";
6
6
  import { normalizeStringEntriesLower } from "openclaw/plugin-sdk/string-normalization-runtime";
7
7
  import { pruneMapToMaxSize } from "openclaw/plugin-sdk/collection-runtime";
8
8
  import { createHash } from "node:crypto";
9
- // extensions/slack/src/channel-type.ts
9
+ //#region extensions/slack/src/channel-type.ts
10
10
  var channel_type_exports = /* @__PURE__ */ __exportAll({
11
11
  resolveSlackChannelType: () => resolveSlackChannelType,
12
12
  resolveSlackConversationInfo: () => resolveSlackConversationInfo
@@ -94,4 +94,5 @@ async function resolveSlackConversationInfo(params) {
94
94
  async function resolveSlackChannelType(params) {
95
95
  return (await resolveSlackConversationInfo(params)).type;
96
96
  }
97
+ //#endregion
97
98
  export { resolveSlackChannelType as n, resolveSlackConversationInfo as r, channel_type_exports as t };
@@ -1,8 +1,8 @@
1
- import { i as isSlackSetupAccountConfigured } from "./account-configured-35y0-Hso.mjs";
2
- import { i as listSlackAccountIds, o as resolveDefaultSlackAccountId, s as resolveSlackAccount, u as resolveSlackConfigAccessorAccount } from "./accounts-CEgdyqoW.mjs";
3
- import { t as inspectSlackAccount } from "./account-inspect-Bc7TVU8F.mjs";
4
- import { t as DEFAULT_SLACK_SUGGESTED_PROMPTS } from "./channel-meta-C5vsCo3a.mjs";
5
- import { t as SlackChannelConfigSchema } from "./config-schema-Cz3uId-c.mjs";
1
+ import { i as isSlackSetupAccountConfigured } from "./account-configured-zcR9TJJN.mjs";
2
+ import { i as listSlackAccountIds, o as resolveDefaultSlackAccountId, s as resolveSlackAccount, u as resolveSlackConfigAccessorAccount } from "./accounts-msihSF3-.mjs";
3
+ import { t as inspectSlackAccount } from "./account-inspect-CmkKiSb9.mjs";
4
+ import { t as DEFAULT_SLACK_SUGGESTED_PROMPTS } from "./channel-meta-C443t-lI.mjs";
5
+ import { t as SlackChannelConfigSchema } from "./config-schema-DNnh6bWU.mjs";
6
6
  import { normalizeSecretInputString } from "openclaw/plugin-sdk/secret-input";
7
7
  import { normalizeOptionalString } from "openclaw/plugin-sdk/string-coerce-runtime";
8
8
  import { adaptScopedAccountAccessor, createScopedChannelConfigAdapter } from "openclaw/plugin-sdk/channel-config-helpers";
@@ -13,7 +13,7 @@ import { formatDocsLink } from "openclaw/plugin-sdk/setup-tools";
13
13
  import { createChannelDmPolicy } from "openclaw/plugin-sdk/channel-dm-policy";
14
14
  import { defineChannelSetupContract } from "openclaw/plugin-sdk/channel-setup";
15
15
  import { patchTopLevelChannelConfigSection } from "openclaw/plugin-sdk/setup";
16
- // extensions/slack/src/setup-shared.ts
16
+ //#region extensions/slack/src/setup-shared.ts
17
17
  const SLACK_CHANNEL = "slack";
18
18
  function buildSlackAllowFromPrompt() {
19
19
  const t = createSetupTranslator();
@@ -150,7 +150,8 @@ function describeSlackSetupAccount(account) {
150
150
  }
151
151
  });
152
152
  }
153
- // extensions/slack/src/config-adapter.ts
153
+ //#endregion
154
+ //#region extensions/slack/src/config-adapter.ts
154
155
  const slackBaseConfigAdapter = createScopedChannelConfigAdapter({
155
156
  sectionKey: SLACK_CHANNEL,
156
157
  listAccountIds: listSlackAccountIds,
@@ -168,7 +169,8 @@ const slackBaseConfigAdapter = createScopedChannelConfigAdapter({
168
169
  formatAllowFrom: (allowFrom) => formatAllowFromLowercase({ allowFrom }),
169
170
  resolveDefaultTo: (account) => account.defaultTo
170
171
  });
171
- // extensions/slack/src/setup-core.ts
172
+ //#endregion
173
+ //#region extensions/slack/src/setup-core.ts
172
174
  const t = createSetupTranslator();
173
175
  function enableSlackAccount(cfg, accountId) {
174
176
  return patchChannelConfigForAccount({
@@ -532,7 +534,8 @@ function createSlackSetupWizardProxy(loadWizard) {
532
534
  fallbackResolvedGroupAllowlist: (entries) => entries
533
535
  });
534
536
  }
535
- // extensions/slack/src/channel.setup.ts
537
+ //#endregion
538
+ //#region extensions/slack/src/channel.setup.ts
536
539
  const slackSetupPlugin = {
537
540
  id: SLACK_CHANNEL,
538
541
  meta: {
@@ -547,7 +550,7 @@ const slackSetupPlugin = {
547
550
  markdownCapable: true,
548
551
  preferSessionLookupForAnnounceTarget: true
549
552
  },
550
- setupWizard: createSlackSetupWizardProxy(() => import("./setup-surface-b9gluDhT.mjs")),
553
+ setupWizard: createSlackSetupWizardProxy(() => import("./setup-surface--n8VsDvV.mjs")),
551
554
  capabilities: {
552
555
  chatTypes: [
553
556
  "direct",
@@ -625,4 +628,5 @@ const slackSetupPlugin = {
625
628
  },
626
629
  setupContract: slackSetupContract
627
630
  };
631
+ //#endregion
628
632
  export { buildSlackAllowFromPrompt as a, SLACK_CHANNEL as i, createSlackSetupWizardBase as n, slackBaseConfigAdapter as r, slackSetupPlugin as t };
@@ -2,7 +2,7 @@ import { buildSecretInputSchema, hasConfiguredSecretInput } from "openclaw/plugi
2
2
  import { createChannelConfigUiHints } from "openclaw/plugin-sdk/channel-core";
3
3
  import { ChannelBotLoopProtectionSchema, ChannelDangerouslyAllowNameMatchingSchema, ChannelImplicitMentionsSchema, ChannelPreviewStreamingConfigSchema, ChannelStreamingProgressSchema, ProviderCommandsSchema, ReplyToModeSchema, buildChannelAccountSchemaParts, buildChannelAllowBotsSchema, buildChannelConfigSchema, buildChannelExecApprovalsSchema, buildChannelReactionShape, buildGroupEntrySchema, refineChannelDmPolicy } from "openclaw/plugin-sdk/channel-config-schema";
4
4
  import { z } from "zod";
5
- // extensions/slack/src/config-ui-hints.ts
5
+ //#region extensions/slack/src/config-ui-hints.ts
6
6
  const observedGroupHistoryHint = { help: "Automatic observed-message context uses a default of 50 and a maximum of 200 messages; 0 disables automatic injection. The JSON integer maximum selects the 50-message default. Session transcript trimming separately counts user turns, where 0 means no trimming. The observed-message cap does not rewrite saved values." };
7
7
  const observedDmHistoryHint = { help: "Automatic observed-DM context uses a default of 0 and a maximum of 200 messages; 0 disables that extra context. The JSON integer maximum selects the 0-message default. Session transcript trimming separately counts user turns, where 0 means no trimming. The observed-message cap does not rewrite saved values." };
8
8
  const botThreadMentionHint = {
@@ -174,7 +174,8 @@ const slackChannelConfigUiHints = {
174
174
  help: "Maximum number of existing Slack thread messages to fetch when starting a new thread session (default: 20, set to 0 to disable)."
175
175
  }
176
176
  };
177
- // extensions/slack/src/config-schema.ts
177
+ //#endregion
178
+ //#region extensions/slack/src/config-schema.ts
178
179
  const SecretInputSchema = buildSecretInputSchema();
179
180
  const SLACK_PRESENCE_EVENT_PROMPT_MAX_CHARS = 2e4;
180
181
  const SlackStreamingProgressSchema = ChannelStreamingProgressSchema.extend({
@@ -373,4 +374,5 @@ const SlackConfigSchema = SlackAccountSchema.safeExtend({
373
374
  validateSlackSigningSecretRequirements(value, ctx);
374
375
  });
375
376
  const SlackChannelConfigSchema = buildChannelConfigSchema(SlackConfigSchema, { uiHints: slackChannelConfigUiHints });
377
+ //#endregion
376
378
  export { SlackChannelConfigSchema as t };
@@ -1,11 +1,11 @@
1
- import { t as __exportAll } from "./rolldown-runtime-nwUcYXjP.mjs";
2
- import { a as mergeSlackAccountConfig, c as resolveSlackAccountAllowFrom, o as resolveDefaultSlackAccountId } from "./accounts-CEgdyqoW.mjs";
3
- import { a as parseSlackTarget } from "./target-parsing-0pRZtahO.mjs";
4
- import "./targets-BqXz7CpG.mjs";
1
+ import { t as __exportAll } from "./rolldown-runtime-B4FMCO8f.mjs";
2
+ import { a as mergeSlackAccountConfig, c as resolveSlackAccountAllowFrom, o as resolveDefaultSlackAccountId } from "./accounts-msihSF3-.mjs";
3
+ import { a as parseSlackTarget } from "./target-parsing-FFE26kOV.mjs";
4
+ import "./targets-C6LZQL1Q.mjs";
5
5
  import { normalizeAccountId } from "openclaw/plugin-sdk/account-resolution";
6
6
  import { normalizeLowercaseStringOrEmpty } from "openclaw/plugin-sdk/string-coerce-runtime";
7
7
  import { createResolvedDirectoryEntriesLister } from "openclaw/plugin-sdk/directory-config-runtime";
8
- // extensions/slack/src/directory-config.ts
8
+ //#region extensions/slack/src/directory-config.ts
9
9
  var directory_config_exports = /* @__PURE__ */ __exportAll({
10
10
  listSlackDirectoryGroupsFromConfig: () => listSlackDirectoryGroupsFromConfig,
11
11
  listSlackDirectoryPeersFromConfig: () => listSlackDirectoryPeersFromConfig
@@ -48,4 +48,5 @@ const listSlackDirectoryGroupsFromConfig = createResolvedDirectoryEntriesLister(
48
48
  return normalized?.kind === "channel" ? `channel:${normalizeLowercaseStringOrEmpty(normalized.id)}` : null;
49
49
  }
50
50
  });
51
+ //#endregion
51
52
  export { listSlackDirectoryGroupsFromConfig as n, listSlackDirectoryPeersFromConfig as r, directory_config_exports as t };
@@ -1,8 +1,8 @@
1
- import { t as __exportAll } from "./rolldown-runtime-nwUcYXjP.mjs";
2
- import { s as resolveSlackAccount } from "./accounts-CEgdyqoW.mjs";
3
- import { c as collectSlackCursorPages, l as fetchSlackChannelListPage, u as createSlackLookupClient } from "./probe-C5VWf3sz.mjs";
1
+ import { t as __exportAll } from "./rolldown-runtime-B4FMCO8f.mjs";
2
+ import { s as resolveSlackAccount } from "./accounts-msihSF3-.mjs";
3
+ import { c as collectSlackCursorPages, l as fetchSlackChannelListPage, u as createSlackLookupClient } from "./probe-IiHogLQN.mjs";
4
4
  import { normalizeLowercaseStringOrEmpty, normalizeOptionalLowercaseString, normalizeOptionalString } from "openclaw/plugin-sdk/string-coerce-runtime";
5
- // extensions/slack/src/directory-live.ts
5
+ //#region extensions/slack/src/directory-live.ts
6
6
  var directory_live_exports = /* @__PURE__ */ __exportAll({
7
7
  getSlackDirectorySelfLive: () => getSlackDirectorySelfLive,
8
8
  listSlackDirectoryGroupsLive: () => listSlackDirectoryGroupsLive,
@@ -97,4 +97,5 @@ const listSlackDirectoryGroupsLive = createSlackDirectoryLister({
97
97
  } : null;
98
98
  }
99
99
  });
100
+ //#endregion
100
101
  export { listSlackDirectoryGroupsLive as n, listSlackDirectoryPeersLive as r, directory_live_exports as t };