@openclaw/slack 2026.9.7 → 2026.10.1-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/.setup/{account-inspect-DWBXpER6.mjs → account-inspect-Cs-7DXXW.mjs} +1 -1
- package/dist/.setup/{accounts-D_N9IqNA.mjs → accounts-CDgkV7Cm.mjs} +4 -16
- package/dist/.setup/{action-runtime-DfWvuiZd.mjs → action-runtime-DJ1daRAZ.mjs} +5 -7
- package/dist/.setup/action-runtime.runtime-CdWL2mLC.mjs +2 -0
- package/dist/.setup/{actions-Df0CzcDl.mjs → actions-DDoAJnrH.mjs} +16 -35
- package/dist/.setup/{approval-handler.runtime-Ed6Sw5VK.mjs → approval-handler.runtime-BcE_shWc.mjs} +5 -5
- package/dist/.setup/{approval-message-updates-BadvtA7R.mjs → approval-message-updates-EgKGmFXx.mjs} +1 -1
- package/dist/.setup/{channel-C7bgPSTE.mjs → channel-DgKSu8Iv.mjs} +46 -48
- package/dist/.setup/{channel-type-ClOttrZ5.mjs → channel-type-B9zYYzBU.mjs} +4 -4
- package/dist/.setup/{channel.setup-Dh2jzAjN.mjs → channel.setup-BYIlwbQ7.mjs} +27 -27
- package/dist/.setup/{config-schema-BZCxmHKG.mjs → config-schema-BH0K9-Um.mjs} +4 -0
- package/dist/.setup/{directory-config-BOUWH3hR.mjs → directory-config-B_by7zrc.mjs} +2 -2
- package/dist/.setup/{directory-live-B2O4B_Ho.mjs → directory-live-C48wazJt.mjs} +3 -3
- package/dist/.setup/{doctor-contract-CRN1Z_c7.mjs → doctor-contract-Cd4-VzIM.mjs} +28 -28
- package/dist/.setup/{message-tool-api-Cu4lwlGy.mjs → message-tool-api-CcjLPN3v.mjs} +2 -2
- package/dist/.setup/{monitor-BPVfkumU.mjs → monitor-BuYBDmm7.mjs} +190 -315
- package/dist/.setup/{outbound-adapter-Bv48XUjq.mjs → outbound-adapter-BZFkK-mw.mjs} +6 -17
- package/dist/.setup/{pipeline.runtime-B1H63Frf.mjs → pipeline.runtime-CIepKmZt.mjs} +241 -247
- package/dist/.setup/{policy-D-jfM174.mjs → policy-KKTqEiDv.mjs} +12 -22
- package/dist/.setup/{probe-B2Y9qc_z.mjs → probe-BVlJ3dp0.mjs} +4 -7
- package/dist/.setup/{relay-source-BpKdjsll.mjs → relay-source-CC3h6M7y.mjs} +2 -2
- package/dist/.setup/{replies-BAnUtr2f.mjs → replies-DHbuthIR.mjs} +12 -26
- package/dist/.setup/{reply-blocks-SE1kTE3I.mjs → reply-blocks-CKnO4BSG.mjs} +4 -29
- package/dist/.setup/{resolve-channels-XXBn8UU_.mjs → resolve-channels-HR0TgArR.mjs} +2 -2
- package/dist/.setup/{resolve-users-DW0ngD03.mjs → resolve-users-BNYBhF0q.mjs} +4 -4
- package/dist/.setup/rolldown-runtime-B4FMCO8f.mjs +28 -0
- package/dist/.setup/{scopes-CasuDvaa.mjs → scopes-DrDbyUH2.mjs} +1 -1
- package/dist/.setup/secret-contract-B-Qm6aQQ.mjs +65 -0
- package/dist/.setup/{secret-contract-api-Dp6290Vg.mjs → secret-contract-api-DmUVxIRs.mjs} +1 -1
- package/dist/.setup/{security-audit-BqDc-6VL.mjs → security-audit-C1nOGzJa.mjs} +1 -1
- package/dist/.setup/{send-BOVLQi3n.mjs → send-CgPI3Zj8.mjs} +22 -53
- package/dist/.setup/{session-status-DscajIsd.mjs → session-status-D46GHwOV.mjs} +39 -49
- package/dist/.setup/{setup-plugin-api-DTtbTKNk.mjs → setup-plugin-api-ZrHs0N4U.mjs} +1 -1
- package/dist/.setup/{setup-surface-Dn7QgWRE.mjs → setup-surface-83lxvE2y.mjs} +10 -13
- package/dist/.setup/{shared-qau-uDGl.mjs → shared-VtmYNj-v.mjs} +53 -57
- package/dist/.setup/{slash-dispatch.runtime--AEzLVBF.mjs → slash-dispatch.runtime-gBj_uaLM.mjs} +1 -1
- package/dist/account-inspect-api.js +1 -1
- package/dist/api.js +13 -13
- package/dist/channel-config-api.js +1 -1
- package/dist/channel-plugin-api.js +1 -1
- package/dist/control-ui/2f4b1e827be6b68ced2ea0d8b7da8529a4eafbe72be27ee37e1064bdd530ec10/index.js +1 -0
- package/dist/directory-contract-api.js +1 -1
- package/dist/doctor-contract-api.js +1 -1
- package/dist/message-tool-api.js +1 -1
- package/dist/runtime-api.js +10 -10
- package/dist/secret-contract-api.js +1 -1
- package/dist/security-contract-api.js +1 -1
- package/dist/setup-entry.js +2 -2
- package/dist/setup-plugin-api.js +1 -1
- package/node_modules/undici/README.md +10 -1
- package/node_modules/undici/docs/docs/api/Agent.md +8 -8
- package/node_modules/undici/docs/docs/api/DiagnosticsChannel.md +9 -6
- package/node_modules/undici/docs/docs/api/Dispatcher.md +9 -0
- package/node_modules/undici/docs/docs/api/Errors.md +25 -0
- package/node_modules/undici/docs/docs/api/Fetch.md +10 -0
- package/node_modules/undici/docs/docs/api/Interceptors.md +4 -3
- package/node_modules/undici/docs/docs/api/Pool.md +5 -6
- package/node_modules/undici/docs/docs/index.md +10 -1
- package/node_modules/undici/lib/api/readable.js +1 -2
- package/node_modules/undici/lib/core/request.js +23 -2
- package/node_modules/undici/lib/core/util.js +0 -39
- package/node_modules/undici/lib/dispatcher/client-h1.js +11 -4
- package/node_modules/undici/lib/dispatcher/client-h2.js +52 -8
- package/node_modules/undici/lib/dispatcher/client.js +6 -1
- package/node_modules/undici/lib/dispatcher/env-http-proxy-agent.js +21 -6
- package/node_modules/undici/lib/dispatcher/pool-base.js +63 -2
- package/node_modules/undici/lib/dispatcher/pool.js +90 -7
- package/node_modules/undici/lib/dispatcher/proxy-agent.js +16 -3
- package/node_modules/undici/lib/handler/deduplication-handler.js +24 -11
- package/node_modules/undici/lib/handler/redirect-handler.js +5 -0
- package/node_modules/undici/lib/handler/retry-handler.js +72 -13
- package/node_modules/undici/lib/interceptor/cache.js +4 -1
- package/node_modules/undici/lib/interceptor/decompress.js +236 -69
- package/node_modules/undici/lib/web/cache/cache.js +17 -8
- package/node_modules/undici/lib/web/cache/cachestorage.js +11 -5
- package/node_modules/undici/lib/web/cookies/index.js +19 -7
- package/node_modules/undici/lib/web/cookies/util.js +3 -1
- package/node_modules/undici/lib/web/eventsource/eventsource.js +25 -1
- package/node_modules/undici/lib/web/fetch/body.js +22 -15
- package/node_modules/undici/lib/web/fetch/data-url.js +6 -6
- package/node_modules/undici/lib/web/fetch/formdata.js +30 -36
- package/node_modules/undici/lib/web/fetch/headers.js +34 -31
- package/node_modules/undici/lib/web/fetch/index.js +46 -25
- package/node_modules/undici/lib/web/fetch/request.js +74 -79
- package/node_modules/undici/lib/web/fetch/response.js +43 -44
- package/node_modules/undici/lib/web/fetch/util.js +7 -7
- package/node_modules/undici/lib/web/infra/index.js +16 -1
- package/node_modules/undici/lib/web/webidl/index.js +2 -14
- package/node_modules/undici/lib/web/websocket/connection.js +33 -12
- package/node_modules/undici/lib/web/websocket/events.js +43 -26
- package/node_modules/undici/lib/web/websocket/receiver.js +2 -0
- package/node_modules/undici/lib/web/websocket/stream/websocketerror.js +13 -10
- package/node_modules/undici/lib/web/websocket/stream/websocketstream.js +19 -4
- package/node_modules/undici/lib/web/websocket/websocket.js +44 -41
- package/node_modules/undici/package.json +1 -1
- package/node_modules/undici/types/diagnostics-channel.d.ts +2 -1
- package/node_modules/undici/types/interceptors.d.ts +1 -1
- package/node_modules/undici/types/webidl.d.ts +13 -7
- package/openclaw.plugin.json +4 -1
- package/package.json +14 -6
- package/dist/.setup/action-runtime.runtime-Ck4bAWOX.mjs +0 -2
- package/dist/.setup/secret-contract-BaZcu6P_.mjs +0 -82
- package/dist/.setup/streaming-compat-C5Wut626.mjs +0 -62
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { n as isSlackPluginAccountConfigured } from "./account-configured-sUohAxZr.mjs";
|
|
2
|
-
import { a as mergeSlackAccountConfig, c as resolveSlackAccountAllowFrom, i as listSlackAccountIds, o as resolveDefaultSlackAccountId, s as resolveSlackAccount } from "./accounts-
|
|
2
|
+
import { a as mergeSlackAccountConfig, c as resolveSlackAccountAllowFrom, i as listSlackAccountIds, o as resolveDefaultSlackAccountId, s as resolveSlackAccount } from "./accounts-CDgkV7Cm.mjs";
|
|
3
3
|
import { a as parseSlackTarget, n as formatSlackTarget, t as canonicalizeSlackApiTargetId } from "./target-parsing-FFE26kOV.mjs";
|
|
4
4
|
import { t as slackContextTargetsMatch } from "./targets-C6LZQL1Q.mjs";
|
|
5
|
-
import { A as resolveSlackUserAllowListForTeam, k as resolveSlackAllowListMatch, o as formatSlackError } from "./probe-
|
|
5
|
+
import { A as resolveSlackUserAllowListForTeam, k as resolveSlackAllowListMatch, o as formatSlackError } from "./probe-BVlJ3dp0.mjs";
|
|
6
6
|
import { normalizeAccountId } from "openclaw/plugin-sdk/account-resolution";
|
|
7
7
|
import { asOptionalRecord, normalizeLowercaseStringOrEmpty, normalizeOptionalString, normalizeStringifiedOptionalString, readNonBlankString } from "openclaw/plugin-sdk/string-coerce-runtime";
|
|
8
8
|
import { normalizeMessageChannel } from "openclaw/plugin-sdk/routing";
|
|
@@ -1284,8 +1284,7 @@ const SLACK_QUESTION_VALUE_PREFIX = "slq1:";
|
|
|
1284
1284
|
const QUESTION_RECORD_ID_PATTERN = /^ask_[a-f0-9]{32}$/u;
|
|
1285
1285
|
function encodeSlackQuestionAction(action) {
|
|
1286
1286
|
if (!QUESTION_RECORD_ID_PATTERN.test(action.questionId) || !Number.isInteger(action.optionIndex) || action.optionIndex < 0 || action.optionIndex > 3) return;
|
|
1287
|
-
|
|
1288
|
-
return value.length <= 2e3 ? value : void 0;
|
|
1287
|
+
return `${SLACK_QUESTION_VALUE_PREFIX}${action.questionId}:${action.optionIndex}`;
|
|
1289
1288
|
}
|
|
1290
1289
|
function decodeSlackQuestionAction(value) {
|
|
1291
1290
|
if (typeof value !== "string" || value.length > 2e3) return null;
|
|
@@ -1322,9 +1321,21 @@ const SLACK_CALLBACK_SELECT_ACTION_ID = "openclaw:callback_select";
|
|
|
1322
1321
|
const SLACK_APPROVAL_BUTTON_ACTION_ID = "openclaw:approval_button";
|
|
1323
1322
|
const SLACK_APPROVAL_SELECT_ACTION_ID = "openclaw:approval_select";
|
|
1324
1323
|
const SLACK_QUESTION_BUTTON_ACTION_ID = "openclaw:question_button";
|
|
1324
|
+
const SLACK_BUTTON_ACTION_IDS = {
|
|
1325
|
+
approval: SLACK_APPROVAL_BUTTON_ACTION_ID,
|
|
1326
|
+
callback: SLACK_CALLBACK_BUTTON_ACTION_ID,
|
|
1327
|
+
link: SLACK_REPLY_LINK_ACTION_ID,
|
|
1328
|
+
question: SLACK_QUESTION_BUTTON_ACTION_ID,
|
|
1329
|
+
reply: SLACK_REPLY_BUTTON_ACTION_ID
|
|
1330
|
+
};
|
|
1331
|
+
const SLACK_SELECT_ACTION_IDS = {
|
|
1332
|
+
approval: SLACK_APPROVAL_SELECT_ACTION_ID,
|
|
1333
|
+
callback: SLACK_CALLBACK_SELECT_ACTION_ID,
|
|
1334
|
+
reply: SLACK_REPLY_SELECT_ACTION_ID
|
|
1335
|
+
};
|
|
1325
1336
|
const SLACK_QUESTION_FINALIZATION_BLOCKS = Symbol("slackQuestionFinalizationBlocks");
|
|
1326
1337
|
function isSlackQuestionActionId(actionId) {
|
|
1327
|
-
return actionId ===
|
|
1338
|
+
return actionId === SLACK_QUESTION_BUTTON_ACTION_ID || actionId.startsWith(`${SLACK_QUESTION_BUTTON_ACTION_ID}:`);
|
|
1328
1339
|
}
|
|
1329
1340
|
/** Read only question control identities from the blocks actually sent to Slack. */
|
|
1330
1341
|
function resolveSlackQuestionActionIds(blocks) {
|
|
@@ -1334,10 +1345,10 @@ function resolveSlackQuestionActionIds(blocks) {
|
|
|
1334
1345
|
});
|
|
1335
1346
|
}
|
|
1336
1347
|
function isSlackApprovalActionId(actionId) {
|
|
1337
|
-
return actionId ===
|
|
1348
|
+
return actionId === SLACK_APPROVAL_BUTTON_ACTION_ID || actionId === SLACK_APPROVAL_SELECT_ACTION_ID || actionId.startsWith(`${SLACK_APPROVAL_BUTTON_ACTION_ID}:`) || actionId.startsWith(`${SLACK_APPROVAL_SELECT_ACTION_ID}:`);
|
|
1338
1349
|
}
|
|
1339
1350
|
function isSlackCallbackActionId(actionId) {
|
|
1340
|
-
return actionId ===
|
|
1351
|
+
return actionId === SLACK_CALLBACK_BUTTON_ACTION_ID || actionId === SLACK_CALLBACK_SELECT_ACTION_ID || actionId.startsWith(`${SLACK_CALLBACK_BUTTON_ACTION_ID}:`) || actionId.startsWith(`${SLACK_CALLBACK_SELECT_ACTION_ID}:`);
|
|
1341
1352
|
}
|
|
1342
1353
|
//#endregion
|
|
1343
1354
|
//#region extensions/slack/src/truncate.ts
|
|
@@ -1390,35 +1401,26 @@ const SLACK_SELECT_ELEMENT_TYPES = /* @__PURE__ */ new Set([
|
|
|
1390
1401
|
]);
|
|
1391
1402
|
function readTextObject(value, options = {}) {
|
|
1392
1403
|
const record = asOptionalRecord(value);
|
|
1393
|
-
if (!record) return;
|
|
1394
1404
|
const text = normalizeOptionalString(record?.text);
|
|
1395
1405
|
if (!text) return;
|
|
1396
|
-
return record
|
|
1397
|
-
}
|
|
1398
|
-
function readTextValue(value, options = {}) {
|
|
1399
|
-
return normalizeOptionalString(value) ?? readTextObject(value, options);
|
|
1400
|
-
}
|
|
1401
|
-
function readImageText(block) {
|
|
1402
|
-
const altText = normalizeOptionalString(block.alt_text);
|
|
1403
|
-
return (altText ? escapeSlackMrkdwn(altText) : void 0) ?? readTextObject(block.title);
|
|
1406
|
+
return record?.type === "plain_text" && options.nativeDataFormat !== "plain" ? escapeSlackMrkdwn(text) : text;
|
|
1404
1407
|
}
|
|
1405
|
-
function
|
|
1406
|
-
const
|
|
1407
|
-
return
|
|
1408
|
+
function readAltText(value) {
|
|
1409
|
+
const text = normalizeOptionalString(value);
|
|
1410
|
+
return text ? escapeSlackMrkdwn(text) : void 0;
|
|
1408
1411
|
}
|
|
1409
1412
|
function readContextText(block, options = {}) {
|
|
1410
1413
|
if (!Array.isArray(block.elements)) return;
|
|
1411
1414
|
const parts = block.elements.map((element) => {
|
|
1412
1415
|
const record = asOptionalRecord(element);
|
|
1413
|
-
|
|
1414
|
-
return readTextObject(record, options) ?? (altText ? escapeSlackMrkdwn(altText) : void 0);
|
|
1416
|
+
return readTextObject(record, options) ?? readAltText(record?.alt_text);
|
|
1415
1417
|
}).filter((part) => Boolean(part));
|
|
1416
1418
|
return parts.length > 0 ? parts.join(" ") : void 0;
|
|
1417
1419
|
}
|
|
1418
1420
|
function readControlElementText(value, options = {}) {
|
|
1419
1421
|
const element = asOptionalRecord(value);
|
|
1420
1422
|
const type = normalizeOptionalString(element?.type);
|
|
1421
|
-
if (type === "button" || type === "workflow_button") return
|
|
1423
|
+
if (type === "button" || type === "workflow_button") return normalizeOptionalString(element?.text) ?? readTextObject(element?.text, options);
|
|
1422
1424
|
if (type && SLACK_SELECT_ELEMENT_TYPES.has(type)) {
|
|
1423
1425
|
if (!options.includeSelectOptions) return readTextObject(element?.placeholder, options);
|
|
1424
1426
|
const choices = Array.isArray(element?.options) ? element.options : [];
|
|
@@ -1436,9 +1438,6 @@ function readSectionText(block, options = {}) {
|
|
|
1436
1438
|
const visibleParts = parts.filter((part) => Boolean(part));
|
|
1437
1439
|
return visibleParts.length > 0 ? visibleParts.join("\n") : void 0;
|
|
1438
1440
|
}
|
|
1439
|
-
function readActionsText(block, options = {}) {
|
|
1440
|
-
return Array.isArray(block.elements) ? readControlElementsText(block.elements, options) : void 0;
|
|
1441
|
-
}
|
|
1442
1441
|
/** Read only user-visible text from one Slack block. */
|
|
1443
1442
|
function renderSlackBlockFallbackText(raw, options = {}) {
|
|
1444
1443
|
const block = asOptionalRecord(raw);
|
|
@@ -1447,11 +1446,11 @@ function renderSlackBlockFallbackText(raw, options = {}) {
|
|
|
1447
1446
|
case "rich_text": return normalizeOptionalString(renderSlackRichText(block.elements, options.nativeReferenceFormat === "plain" ? "native-reference" : "escaped", "\n"));
|
|
1448
1447
|
case "header": return readTextObject(block.text, options);
|
|
1449
1448
|
case "section": return readSectionText(block, options);
|
|
1450
|
-
case "image": return
|
|
1451
|
-
case "video": return
|
|
1449
|
+
case "image": return readAltText(block.alt_text) ?? readTextObject(block.title) ?? "Shared an image";
|
|
1450
|
+
case "video": return readTextObject(block.title, options) ?? readAltText(block.alt_text) ?? "Shared a video";
|
|
1452
1451
|
case "file": return "Shared a file";
|
|
1453
1452
|
case "context": return readContextText(block, options);
|
|
1454
|
-
case "actions": return
|
|
1453
|
+
case "actions": return Array.isArray(block.elements) ? readControlElementsText(block.elements, options) : void 0;
|
|
1455
1454
|
case "data_visualization": return renderSlackDataVisualizationFallbackText(block, options.nativeDataFormat !== "plain");
|
|
1456
1455
|
case "data_table": return renderSlackDataTableFallbackText(block, options.nativeDataFormat !== "plain");
|
|
1457
1456
|
case "table": return renderSlackTableFallbackText(block, options.nativeDataFormat !== "plain");
|
|
@@ -1594,29 +1593,20 @@ function assertSlackDetachedTargetAllowed(accountId, teamId) {
|
|
|
1594
1593
|
//#endregion
|
|
1595
1594
|
//#region extensions/slack/src/conversation-binding-route.ts
|
|
1596
1595
|
const slackRouteBindingConfigCache = /* @__PURE__ */ new WeakMap();
|
|
1597
|
-
function slackTargetDefaultKindForPeer(kind) {
|
|
1598
|
-
return kind === "direct" ? "user" : "channel";
|
|
1599
|
-
}
|
|
1600
|
-
function slackTargetKindMatchesPeer(peerKind, targetKind) {
|
|
1601
|
-
if (targetKind === "user") return peerKind === "direct";
|
|
1602
|
-
return peerKind === "channel" || peerKind === "group";
|
|
1603
|
-
}
|
|
1604
1596
|
function normalizeSlackRouteBindingPeer(peer) {
|
|
1605
1597
|
const rawId = peer.id.trim();
|
|
1606
1598
|
if (!rawId || rawId === "*") return peer;
|
|
1607
|
-
|
|
1608
|
-
|
|
1609
|
-
|
|
1610
|
-
}
|
|
1611
|
-
|
|
1612
|
-
|
|
1613
|
-
|
|
1614
|
-
|
|
1615
|
-
|
|
1616
|
-
|
|
1617
|
-
|
|
1618
|
-
id: normalizedId
|
|
1619
|
-
};
|
|
1599
|
+
try {
|
|
1600
|
+
const target = parseSlackTarget(rawId, { defaultKind: peer.kind === "direct" ? "user" : "channel" });
|
|
1601
|
+
if (!target || target.kind === "user" !== (peer.kind === "direct")) return peer;
|
|
1602
|
+
const normalizedId = target.teamId ? `team:${target.teamId}:${target.kind}:${target.id}` : target.id;
|
|
1603
|
+
return normalizedId === peer.id ? peer : {
|
|
1604
|
+
...peer,
|
|
1605
|
+
id: normalizedId
|
|
1606
|
+
};
|
|
1607
|
+
} catch {
|
|
1608
|
+
return peer;
|
|
1609
|
+
}
|
|
1620
1610
|
}
|
|
1621
1611
|
function normalizeSlackRouteBindingConfig(cfg) {
|
|
1622
1612
|
const bindings = cfg.bindings;
|
|
@@ -1811,4 +1801,4 @@ async function renameSlackSession(params) {
|
|
|
1811
1801
|
}
|
|
1812
1802
|
}
|
|
1813
1803
|
//#endregion
|
|
1814
|
-
export {
|
|
1804
|
+
export { SLACK_DATA_TABLE_AGGREGATE_CELL_CHARACTERS_MAX as $, countSlackTextUtf8Bytes as A, getSlackInstallationKind as At, isSlackApprovalActionId as B, SLACK_PRIVATE_ACTION_DELIVERY_RESULT as Bt, buildSlackBlocksFallbackText as C, resolveTurnSourceSlackOriginTarget as Ct, SLACK_MESSAGE_TEXT_HARD_LIMIT as D, getSlackApprovalApproversForTeam as Dt, SLACK_EDIT_TEXT_MAX_BYTES as E, slackTargetsMatch as Et, SLACK_REPLY_BUTTON_ACTION_ID as F, isSlackExecApprovalClientEnabled as Ft, encodeSlackQuestionAction as G, isSlackQuestionActionId as H, SLACK_REPLY_LINK_ACTION_ID as I, normalizeSlackApproverId as It, markdownToSlackMrkdwnChunks as J, resolveSlackQuestionAction as K, SLACK_REPLY_SELECT_ACTION_ID as L, resolveSlackExecApprovalTarget as Lt, truncateSlackTextByUtf8Bytes as M, registerSlackInstallationState as Mt, SLACK_BUTTON_ACTION_IDS as N, getSlackExecApprovalApprovers as Nt, SLACK_MESSAGE_TEXT_RECOMMENDED_LIMIT as O, isSlackPluginApprovalAuthorizedSender as Ot, SLACK_QUESTION_FINALIZATION_BLOCKS as P, isSlackExecApprovalAuthorizedSender as Pt, hasSlackDataVisualizationBlock as Q, SLACK_SELECT_ACTION_IDS as R, shouldSuppressLocalSlackExecApprovalPrompt as Rt, stripSlackNativeDataBlocks as S, resolveSlackFallbackOriginTarget as St, renderSlackBlockFallbackText as T, shouldHandleSlackPluginViaForwardingSession as Tt, resolveSlackQuestionActionIds as U, isSlackCallbackActionId as V, resolveSlackAutoThreadId as Vt, decodeSlackQuestionAction as W, buildSlackDataVisualizationBlock as X, normalizeSlackOutboundText as Y, canRenderSlackDataVisualization as Z, createSlackNativeDataBaseTextConsumer as _, isSlackPluginApprovalRequest as _t, resolveSlackGroupRequireMention as a, renderSlackMessagePresentationFallbackText as at, isSlackInvalidBlocksResponse as b, resolveSessionSlackOriginTarget as bt, qualifySlackRoutePeerId as c, decodeSlackApprovalAction as ct, resolveSlackConversationBindingRoute as d, SLACK_PRESENTATION_CAPABILITIES as dt, buildSlackDataTableBlock as et, assertSlackDetachedTargetAllowed as f, SLACK_SECTION_TEXT_MAX as ft, buildSlackNativeDataAccessibilityText as g, isSlackAnyNativeApprovalClientEnabled as gt, appendSlackNativeDataPlainTextFallback as h, validateSlackBlocksArray as ht, buildSlackChannelPolicyScope as i, renderSlackMessagePresentationChartFallbackText as it, truncateSlackText as j, isSlackWorkspaceInstallation as jt, SLACK_TEXT_LIMIT as k, resolveSlackApprovalTeamId as kt, resolveSlackEnterpriseMainDmSessionKey as l, encodeSlackApprovalAction as lt, appendSlackNativeDataFallbackText as m, parseSlackBlocksInput as mt, setSlackSessionStatus as n, countSlackDataTableCellCharacters as nt, resolveSlackGroupToolPolicy as o, escapeSlackMrkdwn as ot, SLACK_MALFORMED_NATIVE_DATA_FALLBACK as p, SLACK_MAX_BLOCKS as pt, chunkSlackMrkdwnText as q, buildSlackChannelIdCandidates as r, resolveSlackDataTableCellCharacterCount as rt, qualifySlackConversationId as s, SLACK_APPROVAL_HEADER_BLOCK_ID as st, renameSlackSession as t, countSlackDataTableBlocksCellCharacters as tt, normalizeSlackRouteBindingConfig as u, SLACK_BUTTON_VALUE_MAX as ut, hasSlackNativeDataBlock as v, normalizeSlackForwardTarget as vt, buildSlackCompleteBlocksFallbackText as w, shouldHandleSlackNativeApprovalRequest as wt, isSlackNativeResponseUrlRejection as x, resolveSlackApproverDmTargets as xt, isSlackInvalidBlocksError as y, normalizeSlackOriginTarget as yt, SLACK_SESSION_LINK_ACTION_ID as z, resolvePluginApprovalSlackApprovers as zt };
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { c as resolveSlackAccountAllowFrom, o as resolveDefaultSlackAccountId } from "./accounts-
|
|
2
|
-
import { t as inspectSlackAccount } from "./account-inspect-
|
|
3
|
-
import "./shared-
|
|
4
|
-
import {
|
|
5
|
-
import { t as resolveSlackChannelAllowlist } from "./resolve-channels-
|
|
6
|
-
import { t as resolveSlackUserAllowlist } from "./resolve-users-
|
|
1
|
+
import { c as resolveSlackAccountAllowFrom, o as resolveDefaultSlackAccountId } from "./accounts-CDgkV7Cm.mjs";
|
|
2
|
+
import { t as inspectSlackAccount } from "./account-inspect-Cs-7DXXW.mjs";
|
|
3
|
+
import "./shared-VtmYNj-v.mjs";
|
|
4
|
+
import { a as buildSlackAllowFromPrompt, i as SLACK_CHANNEL, n as createSlackSetupWizardBase } from "./channel.setup-BYIlwbQ7.mjs";
|
|
5
|
+
import { t as resolveSlackChannelAllowlist } from "./resolve-channels-HR0TgArR.mjs";
|
|
6
|
+
import { t as resolveSlackUserAllowlist } from "./resolve-users-BNYBhF0q.mjs";
|
|
7
7
|
import { normalizeStringEntries } from "openclaw/plugin-sdk/string-coerce-runtime";
|
|
8
8
|
import { resolveBasicAllowFromEntries } from "openclaw/plugin-sdk/allow-from";
|
|
9
9
|
import { createSetupTranslator, noteChannelLookupFailure, noteChannelLookupSummary, patchChannelConfigForAccount, promptResolvedAllowFrom, resolveEntriesWithOptionalToken, resolveSetupAccountId, splitSetupEntries } from "openclaw/plugin-sdk/setup-runtime";
|
|
@@ -37,14 +37,11 @@ async function promptSlackAllowFrom(params) {
|
|
|
37
37
|
parseInputs: splitSetupEntries,
|
|
38
38
|
parseId: prompt.parseId,
|
|
39
39
|
invalidWithoutTokenNote: prompt.invalidWithoutCredentialNote,
|
|
40
|
-
resolveEntries: async ({ token, entries }) =>
|
|
40
|
+
resolveEntries: async ({ token, entries }) => await resolveBasicAllowFromEntries({
|
|
41
41
|
token,
|
|
42
|
-
entries
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
resolved: entry.resolved,
|
|
46
|
-
id: entry.id ?? null
|
|
47
|
-
}))
|
|
42
|
+
entries,
|
|
43
|
+
resolveEntries: resolveSlackUserAllowlist
|
|
44
|
+
})
|
|
48
45
|
});
|
|
49
46
|
return patchChannelConfigForAccount({
|
|
50
47
|
cfg: params.cfg,
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { n as isSlackPluginAccountConfigured } from "./account-configured-sUohAxZr.mjs";
|
|
2
|
-
import { a as mergeSlackAccountConfig, c as resolveSlackAccountAllowFrom, i as listSlackAccountIds, l as resolveSlackAccountDmPolicy } from "./accounts-
|
|
3
|
-
import { t as inspectSlackAccount } from "./account-inspect-
|
|
2
|
+
import { a as mergeSlackAccountConfig, c as resolveSlackAccountAllowFrom, i as listSlackAccountIds, l as resolveSlackAccountDmPolicy } from "./accounts-CDgkV7Cm.mjs";
|
|
3
|
+
import { t as inspectSlackAccount } from "./account-inspect-Cs-7DXXW.mjs";
|
|
4
4
|
import { a as parseSlackTarget } from "./target-parsing-FFE26kOV.mjs";
|
|
5
|
-
import { a as slackIngressIdentity, t as probeSlack } from "./probe-
|
|
5
|
+
import { a as slackIngressIdentity, t as probeSlack } from "./probe-BVlJ3dp0.mjs";
|
|
6
6
|
import { n as SLACK_CHANNEL_META } from "./channel-meta-C443t-lI.mjs";
|
|
7
|
-
import {
|
|
8
|
-
import { n as normalizeCompatibilityConfig, r as runtime_doctor_migrations_exports, t as legacyConfigRules } from "./doctor-contract-
|
|
9
|
-
import { n as collectRuntimeConfigAssignments, r as secretTargetRegistryEntries } from "./secret-contract-
|
|
7
|
+
import { r as slackBaseConfigAdapter, t as slackSetupPlugin } from "./channel.setup-BYIlwbQ7.mjs";
|
|
8
|
+
import { n as normalizeCompatibilityConfig, r as runtime_doctor_migrations_exports, t as legacyConfigRules } from "./doctor-contract-Cd4-VzIM.mjs";
|
|
9
|
+
import { n as collectRuntimeConfigAssignments, r as secretTargetRegistryEntries } from "./secret-contract-B-Qm6aQQ.mjs";
|
|
10
10
|
import { adaptScopedAccountAccessor, createScopedDmSecurityResolver } from "openclaw/plugin-sdk/channel-config-helpers";
|
|
11
11
|
import { createLazyRuntimeModule } from "openclaw/plugin-sdk/lazy-runtime";
|
|
12
12
|
import { buildMutableAllowEntryDetector, collectStandardAllowlistLists, createConditionalWarningCollector, createDangerousNameMatchingMutableAllowlistWarningCollector, createOpenProviderConfiguredRouteWarningCollector } from "openclaw/plugin-sdk/channel-policy";
|
|
@@ -53,7 +53,7 @@ const collectSlackSecurityFindings = createConditionalWarningCollector.findings(
|
|
|
53
53
|
severity: "warn",
|
|
54
54
|
title: "Slack security warning"
|
|
55
55
|
});
|
|
56
|
-
const loadSlackSecurityAuditModule = createLazyRuntimeModule(() => import("./security-audit-
|
|
56
|
+
const loadSlackSecurityAuditModule = createLazyRuntimeModule(() => import("./security-audit-C1nOGzJa.mjs").then((n) => n.n));
|
|
57
57
|
const slackSecurityAdapter = {
|
|
58
58
|
resolveDmPolicy: resolveSlackDmPolicy,
|
|
59
59
|
collectWarnings: collectSlackSecurityFindings,
|
|
@@ -208,55 +208,51 @@ const slackConfigAdapter = {
|
|
|
208
208
|
...slackBaseConfigAdapter,
|
|
209
209
|
inspectAccount: adaptScopedAccountAccessor(inspectSlackAccount)
|
|
210
210
|
};
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
"Links use [label](url). Keep Slack mentions as <@USER_ID>.",
|
|
228
|
-
"Use presentation table blocks for tabular data; Markdown pipe tables are not auto-promoted.",
|
|
229
|
-
"Only raw Block Kit or presentation text fields use Slack mrkdwn directly: *bold*, _italic_, ~strike~, and <url|label> links. Avoid Markdown headings or pipe tables in those fields."
|
|
230
|
-
]
|
|
231
|
-
}),
|
|
232
|
-
messageToolHints: () => [
|
|
233
|
-
"- Use `presentation` buttons/selects for discrete choices or parameter picks instead of asking the user to type one.",
|
|
234
|
-
"- For line, bar, area, or pie data, use a `presentation` chart block; Slack renders it as a native chart and retains a text data summary for accessibility.",
|
|
235
|
-
"- For row-and-column data, use an explicit `presentation` table block; Slack renders it as a native table and retains a linear text summary for accessibility. Markdown pipe tables are not auto-promoted.",
|
|
236
|
-
"- Slack plain text sends: write standard Markdown; OpenClaw converts it to Slack mrkdwn, including `**bold**`, headings, lists, and `[label](url)` links.",
|
|
237
|
-
"- 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.",
|
|
238
|
-
"- 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."
|
|
211
|
+
const slackPluginBase = {
|
|
212
|
+
...slackSetupPlugin,
|
|
213
|
+
meta: {
|
|
214
|
+
...SLACK_CHANNEL_META,
|
|
215
|
+
preferSessionLookupForAnnounceTarget: true
|
|
216
|
+
},
|
|
217
|
+
doctor: slackDoctor,
|
|
218
|
+
agentPrompt: {
|
|
219
|
+
inboundFormattingHints: () => ({
|
|
220
|
+
text_markup: "markdown",
|
|
221
|
+
rules: [
|
|
222
|
+
"Write replies in standard Markdown; OpenClaw converts them to Slack mrkdwn.",
|
|
223
|
+
"Bold uses **double asterisks**; *single asterisks* or _underscores_ produce italics.",
|
|
224
|
+
"Links use [label](url). Keep Slack mentions as <@USER_ID>.",
|
|
225
|
+
"Use presentation table blocks for tabular data; Markdown pipe tables are not auto-promoted.",
|
|
226
|
+
"Only raw Block Kit or presentation text fields use Slack mrkdwn directly: *bold*, _italic_, ~strike~, and <url|label> links. Avoid Markdown headings or pipe tables in those fields."
|
|
239
227
|
]
|
|
240
|
-
},
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
228
|
+
}),
|
|
229
|
+
messageToolHints: () => [
|
|
230
|
+
"- Use `presentation` buttons/selects for discrete choices or parameter picks instead of asking the user to type one.",
|
|
231
|
+
"- For line, bar, area, or pie data, use a `presentation` chart block; Slack renders it as a native chart and retains a text data summary for accessibility.",
|
|
232
|
+
"- For row-and-column data, use an explicit `presentation` table block; Slack renders it as a native table and retains a linear text summary for accessibility. Markdown pipe tables are not auto-promoted.",
|
|
233
|
+
"- Slack plain text sends: write standard Markdown; OpenClaw converts it to Slack mrkdwn, including `**bold**`, headings, lists, and `[label](url)` links.",
|
|
234
|
+
"- 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.",
|
|
235
|
+
"- 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."
|
|
236
|
+
]
|
|
237
|
+
},
|
|
238
|
+
security: slackSecurityAdapter,
|
|
239
|
+
config: {
|
|
240
|
+
...slackSetupPlugin.config,
|
|
241
|
+
...slackConfigAdapter,
|
|
242
|
+
isConfigured: isSlackPluginAccountConfigured,
|
|
243
|
+
describeAccount: (account) => describeAccountSnapshot({
|
|
244
|
+
account,
|
|
245
|
+
configured: isSlackPluginAccountConfigured(account),
|
|
246
|
+
extra: {
|
|
247
|
+
botTokenSource: account.botTokenSource,
|
|
248
|
+
appTokenSource: account.appTokenSource
|
|
249
|
+
}
|
|
250
|
+
})
|
|
251
|
+
},
|
|
252
|
+
secrets: {
|
|
253
|
+
secretTargetRegistryEntries,
|
|
254
|
+
collectRuntimeConfigAssignments
|
|
255
|
+
}
|
|
256
|
+
};
|
|
261
257
|
//#endregion
|
|
262
|
-
export {
|
|
258
|
+
export { slackPluginBase as n, slackSecurityAdapter as r, slackConfigAdapter as t };
|
package/dist/.setup/{slash-dispatch.runtime--AEzLVBF.mjs → slash-dispatch.runtime-gBj_uaLM.mjs}
RENAMED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { i as sanitizeSlackMonitorReplyPayload, r as deliverSlackSlashReplies } from "./replies-
|
|
1
|
+
import { i as sanitizeSlackMonitorReplyPayload, r as deliverSlackSlashReplies } from "./replies-DHbuthIR.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";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { t as inspectSlackAccount } from "./.setup/account-inspect-
|
|
1
|
+
import { t as inspectSlackAccount } from "./.setup/account-inspect-Cs-7DXXW.mjs";
|
|
2
2
|
//#region extensions/slack/account-inspect-api.ts
|
|
3
3
|
function inspectSlackReadOnlyAccount(cfg, accountId) {
|
|
4
4
|
return inspectSlackAccount({
|
package/dist/api.js
CHANGED
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
import { n as registerSlackHttpHandler, r as normalizeSlackWebhookPath, t as handleSlackHttpRequest } from "./.setup/registry-CIbMfuf8.mjs";
|
|
2
|
-
import { a as mergeSlackAccountConfig, f as resolveSlackReplyToMode, i as listSlackAccountIds, o as resolveDefaultSlackAccountId, r as listEnabledSlackAccounts, s as resolveSlackAccount } from "./.setup/accounts-
|
|
3
|
-
import { t as inspectSlackAccount } from "./.setup/account-inspect-
|
|
2
|
+
import { a as mergeSlackAccountConfig, f as resolveSlackReplyToMode, i as listSlackAccountIds, o as resolveDefaultSlackAccountId, r as listEnabledSlackAccounts, s as resolveSlackAccount } from "./.setup/accounts-CDgkV7Cm.mjs";
|
|
3
|
+
import { t as inspectSlackAccount } from "./.setup/account-inspect-Cs-7DXXW.mjs";
|
|
4
4
|
import { a as parseSlackTarget, i as normalizeSlackMessagingTarget, o as resolveSlackChannelId, r as looksLikeSlackTargetId } from "./.setup/target-parsing-FFE26kOV.mjs";
|
|
5
5
|
import "./.setup/targets-C6LZQL1Q.mjs";
|
|
6
|
-
import {
|
|
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-
|
|
8
|
-
import { n as buildSlackThreadingToolContext, t as slackPlugin } from "./.setup/channel-
|
|
9
|
-
import { d as buildSlackInteractiveBlocks, f as buildSlackPresentationBlocks } from "./.setup/reply-blocks-
|
|
10
|
-
import { n as extractSlackToolSend, r as listSlackMessageActions } from "./.setup/message-tool-api-
|
|
11
|
-
import { n as resolveSlackChannelType } from "./.setup/channel-type-
|
|
12
|
-
import { t as slackSetupPlugin } from "./.setup/channel.setup-
|
|
13
|
-
import { c as listSlackPins, d as reactSlackMessage, f as readSlackMessages, g as unpinSlackMessage, h as sendSlackMessage, i as editSlackMessage, l as listSlackReactions, m as removeSlackReaction, n as deleteSlackMessage, o as getSlackMemberInfo, p as removeOwnSlackReactions, r as downloadSlackFile, s as listSlackEmojis, u as pinSlackMessage } from "./.setup/actions-
|
|
14
|
-
import { a as clearSlackThreadParticipationCache, s as hasSlackThreadParticipation, u as recordSlackThreadParticipation } from "./.setup/send-
|
|
15
|
-
import { n as listSlackDirectoryGroupsFromConfig, r as listSlackDirectoryPeersFromConfig } from "./.setup/directory-config-
|
|
16
|
-
import { t as collectSlackSecurityAuditFindings } from "./.setup/security-audit-
|
|
6
|
+
import { Vt as resolveSlackAutoThreadId, a as resolveSlackGroupRequireMention, ht as validateSlackBlocksArray, mt as parseSlackBlocksInput, o as resolveSlackGroupToolPolicy, pt as SLACK_MAX_BLOCKS } from "./.setup/session-status-D46GHwOV.mjs";
|
|
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-BVlJ3dp0.mjs";
|
|
8
|
+
import { n as buildSlackThreadingToolContext, t as slackPlugin } from "./.setup/channel-DgKSu8Iv.mjs";
|
|
9
|
+
import { d as buildSlackInteractiveBlocks, f as buildSlackPresentationBlocks } from "./.setup/reply-blocks-CKnO4BSG.mjs";
|
|
10
|
+
import { n as extractSlackToolSend, r as listSlackMessageActions } from "./.setup/message-tool-api-CcjLPN3v.mjs";
|
|
11
|
+
import { n as resolveSlackChannelType } from "./.setup/channel-type-B9zYYzBU.mjs";
|
|
12
|
+
import { t as slackSetupPlugin } from "./.setup/channel.setup-BYIlwbQ7.mjs";
|
|
13
|
+
import { c as listSlackPins, d as reactSlackMessage, f as readSlackMessages, g as unpinSlackMessage, h as sendSlackMessage, i as editSlackMessage, l as listSlackReactions, m as removeSlackReaction, n as deleteSlackMessage, o as getSlackMemberInfo, p as removeOwnSlackReactions, r as downloadSlackFile, s as listSlackEmojis, u as pinSlackMessage } from "./.setup/actions-DDoAJnrH.mjs";
|
|
14
|
+
import { a as clearSlackThreadParticipationCache, s as hasSlackThreadParticipation, u as recordSlackThreadParticipation } from "./.setup/send-CgPI3Zj8.mjs";
|
|
15
|
+
import { n as listSlackDirectoryGroupsFromConfig, r as listSlackDirectoryPeersFromConfig } from "./.setup/directory-config-B_by7zrc.mjs";
|
|
16
|
+
import { t as collectSlackSecurityAuditFindings } from "./.setup/security-audit-C1nOGzJa.mjs";
|
|
17
17
|
import { normalizeStringEntries as normalizeAllowList, normalizeStringEntriesLower as normalizeAllowListLower } from "openclaw/plugin-sdk/string-normalization-runtime";
|
|
18
18
|
import { resolveOpenProviderRuntimeGroupPolicy as resolveSlackRuntimeGroupPolicy } from "openclaw/plugin-sdk/runtime-group-policy";
|
|
19
19
|
export { SLACK_DEFAULT_RETRY_OPTIONS, SLACK_MAX_BLOCKS, SLACK_WRITE_RETRY_OPTIONS, allowListMatches, buildSlackInteractiveBlocks, buildSlackPresentationBlocks, buildSlackThreadingToolContext, clearSlackThreadParticipationCache, collectSlackSecurityAuditFindings, createSlackTokenCacheKey, createSlackWebClient, createSlackWriteClient, deleteSlackMessage, downloadSlackFile, editSlackMessage, extractSlackToolSend, getSlackMemberInfo, getSlackWriteClient, handleSlackHttpRequest, hasSlackThreadParticipation, inspectSlackAccount, listEnabledSlackAccounts, listSlackAccountIds, listSlackDirectoryGroupsFromConfig, listSlackDirectoryPeersFromConfig, listSlackEmojis, listSlackMessageActions, listSlackPins, listSlackReactions, looksLikeSlackTargetId, mergeSlackAccountConfig, normalizeAllowList, normalizeAllowListLower, normalizeSlackAllowOwnerEntry, normalizeSlackMessagingTarget, normalizeSlackSlug, normalizeSlackWebhookPath, parseSlackBlocksInput, parseSlackTarget, pinSlackMessage, probeSlack, reactSlackMessage, readSlackMessages, recordSlackThreadParticipation, registerSlackHttpHandler, removeOwnSlackReactions, removeSlackReaction, resolveDefaultSlackAccountId, resolveSlackAccount, resolveSlackAllowListMatch, resolveSlackAutoThreadId, resolveSlackChannelId, resolveSlackChannelType, resolveSlackGroupRequireMention, resolveSlackGroupToolPolicy, resolveSlackReplyToMode, resolveSlackRuntimeGroupPolicy, resolveSlackUserAllowed, resolveSlackWebClientOptions, resolveSlackWriteClientOptions, sendSlackMessage, slackPlugin, slackSetupPlugin, unpinSlackMessage, validateSlackBlocksArray };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { t as SlackChannelConfigSchema } from "./.setup/config-schema-
|
|
1
|
+
import { t as SlackChannelConfigSchema } from "./.setup/config-schema-BH0K9-Um.mjs";
|
|
2
2
|
export { SlackChannelConfigSchema };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { t as slackPlugin } from "./.setup/channel-
|
|
1
|
+
import { t as slackPlugin } from "./.setup/channel-DgKSu8Iv.mjs";
|
|
2
2
|
export { slackPlugin };
|
package/dist/control-ui/2f4b1e827be6b68ced2ea0d8b7da8529a4eafbe72be27ee37e1064bdd530ec10/index.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
function l(s){return(n,o)=>{let e=document.createElement("a");e.className="plugin-session-header-link",e.target="_blank",e.rel="noopener noreferrer",e.dataset.linkReaderExternal="";let d=!1,a=()=>{d=!0,e.removeAttribute("href"),e.remove()},p=t=>{if(d)return;let r=t.presented&&!t.signal.aborted&&t.props.session?s(t.props.session):void 0,i=r?URL.parse(r.url):null;if(!r||!i||i.protocol!=="https:"&&i.protocol!=="http:"){e.removeAttribute("href"),e.remove();return}e.href=i.href,e.textContent=`${r.label} \u2197`,e.parentNode!==n&&n.append(e)};return o.signal.addEventListener("abort",a,{once:!0}),p(o),{update:p,dispose(){o.signal.removeEventListener("abort",a),a()}}}}var b={id:"slack",activate(s){return s.ui.registerAccessory({id:"conversation-origin",placement:"session-header",mount:l(({conversationLink:n})=>{let o=n&&URL.parse(n.url);return o?.protocol==="https:"&&(o.hostname==="slack.com"||o.hostname.endsWith(".slack.com")||o.hostname==="slack-gov.com"||o.hostname.endsWith(".slack-gov.com"))?n:void 0})})}};export{b as default};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { n as listSlackDirectoryGroupsFromConfig, r as listSlackDirectoryPeersFromConfig } from "./.setup/directory-config-
|
|
1
|
+
import { n as listSlackDirectoryGroupsFromConfig, r as listSlackDirectoryPeersFromConfig } from "./.setup/directory-config-B_by7zrc.mjs";
|
|
2
2
|
export { listSlackDirectoryGroupsFromConfig, listSlackDirectoryPeersFromConfig };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { n as normalizeCompatibilityConfig, t as legacyConfigRules } from "./.setup/doctor-contract-
|
|
1
|
+
import { n as normalizeCompatibilityConfig, t as legacyConfigRules } from "./.setup/doctor-contract-Cd4-VzIM.mjs";
|
|
2
2
|
export { legacyConfigRules, normalizeCompatibilityConfig };
|
package/dist/message-tool-api.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { t as describeSlackMessageTool } from "./.setup/message-tool-api-
|
|
1
|
+
import { t as describeSlackMessageTool } from "./.setup/message-tool-api-CcjLPN3v.mjs";
|
|
2
2
|
export { describeSlackMessageTool as describeMessageTool };
|
package/dist/runtime-api.js
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { t as registerSlackPluginHttpRoutes } from "./.setup/plugin-routes-B8tooDLj.mjs";
|
|
2
|
-
import { h as resolveSlackBotToken, i as listSlackAccountIds, m as resolveSlackAppToken, o as resolveDefaultSlackAccountId, r as listEnabledSlackAccounts, s as resolveSlackAccount } from "./.setup/accounts-
|
|
3
|
-
import { a as resolveSlackGroupRequireMention, o as resolveSlackGroupToolPolicy } from "./.setup/session-status-
|
|
4
|
-
import { t as probeSlack } from "./.setup/probe-
|
|
2
|
+
import { h as resolveSlackBotToken, i as listSlackAccountIds, m as resolveSlackAppToken, o as resolveDefaultSlackAccountId, r as listEnabledSlackAccounts, s as resolveSlackAccount } from "./.setup/accounts-CDgkV7Cm.mjs";
|
|
3
|
+
import { a as resolveSlackGroupRequireMention, o as resolveSlackGroupToolPolicy } from "./.setup/session-status-D46GHwOV.mjs";
|
|
4
|
+
import { t as probeSlack } from "./.setup/probe-BVlJ3dp0.mjs";
|
|
5
5
|
import { r as setSlackRuntime } from "./.setup/runtime-JSVZSWAj.mjs";
|
|
6
|
-
import { c as listSlackPins, d as reactSlackMessage, f as readSlackMessages, g as unpinSlackMessage, h as sendSlackMessage, i as editSlackMessage, l as listSlackReactions, m as removeSlackReaction, n as deleteSlackMessage, o as getSlackMemberInfo, p as removeOwnSlackReactions, s as listSlackEmojis, u as pinSlackMessage } from "./.setup/actions-
|
|
7
|
-
import { t as sendMessageSlack } from "./.setup/send-
|
|
8
|
-
import { n as slackActionRuntime, t as handleSlackAction } from "./.setup/action-runtime-
|
|
9
|
-
import { n as listSlackDirectoryGroupsLive, r as listSlackDirectoryPeersLive } from "./.setup/directory-live-
|
|
10
|
-
import { n as monitorSlackProvider } from "./.setup/monitor-
|
|
11
|
-
import { t as resolveSlackChannelAllowlist } from "./.setup/resolve-channels-
|
|
12
|
-
import { t as resolveSlackUserAllowlist } from "./.setup/resolve-users-
|
|
6
|
+
import { c as listSlackPins, d as reactSlackMessage, f as readSlackMessages, g as unpinSlackMessage, h as sendSlackMessage, i as editSlackMessage, l as listSlackReactions, m as removeSlackReaction, n as deleteSlackMessage, o as getSlackMemberInfo, p as removeOwnSlackReactions, s as listSlackEmojis, u as pinSlackMessage } from "./.setup/actions-DDoAJnrH.mjs";
|
|
7
|
+
import { t as sendMessageSlack } from "./.setup/send-CgPI3Zj8.mjs";
|
|
8
|
+
import { n as slackActionRuntime, t as handleSlackAction } from "./.setup/action-runtime-DJ1daRAZ.mjs";
|
|
9
|
+
import { n as listSlackDirectoryGroupsLive, r as listSlackDirectoryPeersLive } from "./.setup/directory-live-C48wazJt.mjs";
|
|
10
|
+
import { n as monitorSlackProvider } from "./.setup/monitor-BuYBDmm7.mjs";
|
|
11
|
+
import { t as resolveSlackChannelAllowlist } from "./.setup/resolve-channels-HR0TgArR.mjs";
|
|
12
|
+
import { t as resolveSlackUserAllowlist } from "./.setup/resolve-users-BNYBhF0q.mjs";
|
|
13
13
|
export { deleteSlackMessage, editSlackMessage, getSlackMemberInfo, handleSlackAction, listEnabledSlackAccounts, listSlackAccountIds, listSlackDirectoryGroupsLive, listSlackDirectoryPeersLive, listSlackEmojis, listSlackPins, listSlackReactions, monitorSlackProvider, pinSlackMessage, probeSlack, reactSlackMessage, readSlackMessages, registerSlackPluginHttpRoutes, removeOwnSlackReactions, removeSlackReaction, resolveDefaultSlackAccountId, resolveSlackAccount, resolveSlackAppToken, resolveSlackBotToken, resolveSlackChannelAllowlist, resolveSlackGroupRequireMention, resolveSlackGroupToolPolicy, resolveSlackUserAllowlist, sendMessageSlack, sendSlackMessage, setSlackRuntime, slackActionRuntime, unpinSlackMessage };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { n as collectRuntimeConfigAssignments, r as secretTargetRegistryEntries, t as channelSecrets } from "./.setup/secret-contract-
|
|
1
|
+
import { n as collectRuntimeConfigAssignments, r as secretTargetRegistryEntries, t as channelSecrets } from "./.setup/secret-contract-B-Qm6aQQ.mjs";
|
|
2
2
|
export { channelSecrets, collectRuntimeConfigAssignments, secretTargetRegistryEntries };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { t as collectSlackSecurityAuditFindings } from "./.setup/security-audit-
|
|
1
|
+
import { t as collectSlackSecurityAuditFindings } from "./.setup/security-audit-C1nOGzJa.mjs";
|
|
2
2
|
export { collectSlackSecurityAuditFindings };
|
package/dist/setup-entry.js
CHANGED
|
@@ -4,11 +4,11 @@ import { fileURLToPath } from "node:url";
|
|
|
4
4
|
var setup_entry_default = defineBundledChannelSetupEntry({
|
|
5
5
|
importMetaUrl: import.meta.url,
|
|
6
6
|
plugin: {
|
|
7
|
-
specifier: fileURLToPath(new URL(".setup/setup-plugin-api-
|
|
7
|
+
specifier: fileURLToPath(new URL(".setup/setup-plugin-api-ZrHs0N4U.mjs", import.meta.url).href),
|
|
8
8
|
exportName: "slackSetupPlugin"
|
|
9
9
|
},
|
|
10
10
|
secrets: {
|
|
11
|
-
specifier: fileURLToPath(new URL(".setup/secret-contract-api-
|
|
11
|
+
specifier: fileURLToPath(new URL(".setup/secret-contract-api-DmUVxIRs.mjs", import.meta.url).href),
|
|
12
12
|
exportName: "channelSecrets"
|
|
13
13
|
},
|
|
14
14
|
runtime: {
|
package/dist/setup-plugin-api.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { t as slackSetupPlugin } from "./.setup/channel.setup-
|
|
1
|
+
import { t as slackSetupPlugin } from "./.setup/channel.setup-BYIlwbQ7.mjs";
|
|
2
2
|
export { slackSetupPlugin };
|
|
@@ -378,7 +378,16 @@ The `body` mixins are the most common way to format the request/response body. M
|
|
|
378
378
|
> The body returned from `undici.request` does not implement `.formData()`.
|
|
379
379
|
|
|
380
380
|
> [!WARNING]
|
|
381
|
-
>
|
|
381
|
+
> The body mixins `.arrayBuffer()`, `.blob()`, `.bytes()`, `.json()`, `.text()`,
|
|
382
|
+
> and `.formData()` buffer the entire body in memory before returning. Where
|
|
383
|
+
> applicable, they also decode or parse the payload and retain that
|
|
384
|
+
> representation in memory. Calling these methods therefore means trusting that
|
|
385
|
+
> the response body is small enough to fit in the available memory. Do not use
|
|
386
|
+
> them for responses from untrusted or user-controlled sources. Instead, consume
|
|
387
|
+
> the response body as a stream and enforce an application-specific size limit:
|
|
388
|
+
> use `response.body` for fetch responses or the `body` returned by
|
|
389
|
+
> `undici.request()`. For streaming decoded text, use `body.textStream()` on a
|
|
390
|
+
> fetch `Request` or `Response`.
|
|
382
391
|
|
|
383
392
|
Example usage:
|
|
384
393
|
|
|
@@ -56,16 +56,16 @@ changes:
|
|
|
56
56
|
`Infinity`, no limit is enforced. Must be a number greater than `0`.
|
|
57
57
|
**Default:** `Infinity`.
|
|
58
58
|
|
|
59
|
-
`Agent` inherits all {PoolOptions} (and therefore all {ClientOptions}).
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
instances on separate sockets.
|
|
59
|
+
`Agent` inherits all {PoolOptions} (and therefore all {ClientOptions}). Each
|
|
60
|
+
origin gets a separate {Pool}, with `connections` acting as the maximum number
|
|
61
|
+
of clients that pool may create.
|
|
63
62
|
|
|
64
63
|
> [!NOTE]
|
|
65
|
-
>
|
|
66
|
-
>
|
|
67
|
-
>
|
|
68
|
-
>
|
|
64
|
+
> For an h2-capable HTTPS origin, the per-origin pool waits for the first TLS
|
|
65
|
+
> connection to finish ALPN negotiation. If the server selects h2, concurrent
|
|
66
|
+
> requests share that session up to `maxConcurrentStreams`. If it selects
|
|
67
|
+
> HTTP/1.1, normal connection fan-out resumes up to `connections`. See
|
|
68
|
+
> {PoolOptions} and {ClientOptions} for inherited options such as `allowH2`
|
|
69
69
|
> (default `true`) and `maxConcurrentStreams` (default `100`).
|
|
70
70
|
|
|
71
71
|
### `agent.closed`
|
|
@@ -120,7 +120,8 @@ diagnosticsChannel.channel('undici:request:bodySent').subscribe(({ request }) =>
|
|
|
120
120
|
added: v6.3.0
|
|
121
121
|
-->
|
|
122
122
|
|
|
123
|
-
Published after the response headers have been received.
|
|
123
|
+
Published after the response headers have been received. This includes a
|
|
124
|
+
successful CONNECT or protocol upgrade response.
|
|
124
125
|
|
|
125
126
|
* `message` {Object}
|
|
126
127
|
* `request` {Object} The same object published by
|
|
@@ -128,8 +129,9 @@ Published after the response headers have been received.
|
|
|
128
129
|
* `response` {Object} The response being received.
|
|
129
130
|
* `statusCode` {number} The HTTP status code.
|
|
130
131
|
* `statusText` {string} The HTTP status message.
|
|
131
|
-
* `headers` {Buffer[]}
|
|
132
|
-
alternating between header name and value.
|
|
132
|
+
* `headers` {Buffer[]|Object} HTTP/1.1 response headers are an array of
|
|
133
|
+
buffers alternating between header name and value. HTTP/2 response
|
|
134
|
+
headers are an object.
|
|
133
135
|
|
|
134
136
|
```mjs
|
|
135
137
|
import diagnosticsChannel from 'node:diagnostics_channel'
|
|
@@ -137,7 +139,7 @@ import diagnosticsChannel from 'node:diagnostics_channel'
|
|
|
137
139
|
diagnosticsChannel.channel('undici:request:headers').subscribe(({ request, response }) => {
|
|
138
140
|
console.log('statusCode', response.statusCode)
|
|
139
141
|
console.log(response.statusText)
|
|
140
|
-
console.log(response.headers
|
|
142
|
+
console.log(response.headers)
|
|
141
143
|
})
|
|
142
144
|
```
|
|
143
145
|
|
|
@@ -168,8 +170,9 @@ diagnosticsChannel.channel('undici:request:bodyChunkReceived').subscribe(({ requ
|
|
|
168
170
|
added: v6.3.0
|
|
169
171
|
-->
|
|
170
172
|
|
|
171
|
-
Published
|
|
172
|
-
the
|
|
173
|
+
Published once the response has fully completed. After an upgraded socket has
|
|
174
|
+
been passed to the request handler, this event is published with an empty
|
|
175
|
+
`trailers` array.
|
|
173
176
|
|
|
174
177
|
* `message` {Object}
|
|
175
178
|
* `request` {Object} The same object published by
|