@openclaw/slack 2026.9.1-beta.1 → 2026.9.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/{account-inspect-CN2hBsim.js → account-inspect-C3sePHWa.js} +3 -3
- package/dist/account-inspect-api.js +1 -1
- package/dist/{action-runtime-BoSeX09X.js → action-runtime-DND4Pyp2.js} +84 -66
- package/dist/action-runtime.runtime-CEhbmS-Z.js +2 -0
- package/dist/{actions-XdQyjG_p.js → actions-fh66A6lc.js} +198 -54
- package/dist/api.js +14 -14
- package/dist/{approval-handler.runtime-DxXfGX_Z.js → approval-handler.runtime-D7d8sKM0.js} +18 -12
- package/dist/{channel-C_vnTgxo.js → channel-4m8IAdMD.js} +70 -128
- package/dist/channel-config-api.js +1 -1
- package/dist/channel-plugin-api.js +1 -1
- package/dist/{channel-type-j-2lalcC.js → channel-type-3-SqEMVc.js} +2 -2
- package/dist/{channel.setup-aal8tokM.js → channel.setup-t_ghLGb_.js} +23 -22
- package/dist/{config-schema-CN3XZRX5.js → config-schema-bP3eV2ra.js} +25 -16
- package/dist/{conversation-binding-route-DFVLUdYF.js → conversation-binding-route-Vee8Dgbf.js} +2 -2
- package/dist/{cursor-pages-eX7p8Wwt.js → cursor-pages-ByFwo-Py.js} +7 -1
- package/dist/{directory-config-DqfQ42OV.js → directory-config-Bmw4ykSy.js} +4 -3
- package/dist/directory-contract-api.js +1 -1
- package/dist/{directory-live-lC6X_Ru-.js → directory-live-q32AW7N1.js} +3 -8
- package/dist/{doctor-contract-BAy7-EUQ.js → doctor-contract-BNjw9bxb.js} +5 -4
- package/dist/doctor-contract-api.js +1 -1
- package/dist/{group-policy-CU1tEGpS.js → group-policy-BKjMqT-8.js} +161 -260
- package/dist/{message-tool-api-CWosHSi5.js → message-tool-api-uNEfQYGY.js} +19 -2
- package/dist/message-tool-api.js +1 -1
- package/dist/{monitor-DrNCGneD.js → monitor-Chwu_SiZ.js} +3 -3
- package/dist/{outbound-adapter-DkT2vUE9.js → outbound-adapter-BB8wAjm5.js} +95 -91
- package/dist/{pipeline.runtime-CRRng_Nw.js → pipeline.runtime-BklS_NEj.js} +347 -505
- package/dist/{policy-BoP6t88v.js → policy-D7PKkiet.js} +7 -4
- package/dist/{probe-4_aHtVT3.js → probe-gj5yQgN2.js} +210 -3
- package/dist/{provider-D4nDgxCh.js → provider-Do50wMWn.js} +168 -153
- package/dist/{relay-source-CEmze11m.js → relay-source-DWuduiJ2.js} +6 -4
- package/dist/{replies-D9XMM_S0.js → replies-Dc6WVh_Q.js} +20 -16
- package/dist/{resolve-channels-DSamDgVs.js → resolve-channels-CU7Bg5Ka.js} +6 -10
- package/dist/{resolve-users-CIzwbaJR.js → resolve-users-DrhttvRQ.js} +5 -4
- package/dist/runtime-api.js +10 -10
- package/dist/{scopes-BBrUzpBH.js → scopes-B9HRguDe.js} +1 -1
- package/dist/{send-DtjEnlLh.js → send-Djswy6lf.js} +24 -16
- package/dist/send-results-eeOu_HYm.js +23 -0
- package/dist/{send.runtime-DQeNKa2J.js → send.runtime-__WVTWLQ.js} +1 -1
- package/dist/setup-plugin-api.js +1 -1
- package/dist/{setup-surface-CsBCM4rP.js → setup-surface-DO0e-MMS.js} +5 -5
- package/dist/{shared-D9GeeR9K.js → shared-DEQBEKBL.js} +7 -5
- package/dist/{slash-dispatch.runtime-Chr3YHnT.js → slash-dispatch.runtime-C3B4h5ZM.js} +2 -2
- package/dist/{target-parsing-BnMD2ZqZ.js → target-parsing-PbxGDbr9.js} +11 -6
- package/dist/{targets-Cx5W_n3W.js → targets-7FexXJ62.js} +1 -1
- package/dist/{thread-ts-DUGhaYKq.js → thread-ts-CukseRVL.js} +5 -1
- package/node_modules/@slack/bolt/node_modules/negotiator/lib/accept.js +54 -0
- package/node_modules/@slack/bolt/node_modules/negotiator/lib/charset.js +10 -34
- package/node_modules/@slack/bolt/node_modules/negotiator/lib/encoding.js +9 -30
- package/node_modules/@slack/bolt/node_modules/negotiator/lib/language.js +15 -36
- package/node_modules/@slack/bolt/node_modules/negotiator/lib/mediaType.js +16 -134
- package/node_modules/@slack/bolt/node_modules/negotiator/node_modules/content-type/LICENSE +22 -0
- package/node_modules/@slack/bolt/node_modules/negotiator/node_modules/content-type/README.md +71 -0
- package/node_modules/@slack/bolt/node_modules/negotiator/node_modules/content-type/dist/index.d.ts +46 -0
- package/node_modules/@slack/bolt/node_modules/negotiator/node_modules/content-type/dist/index.js +176 -0
- package/node_modules/@slack/bolt/node_modules/negotiator/node_modules/content-type/dist/index.js.map +1 -0
- package/node_modules/@slack/bolt/node_modules/negotiator/node_modules/content-type/package.json +52 -0
- package/node_modules/@slack/bolt/node_modules/negotiator/package.json +16 -10
- package/node_modules/typebox/build/format/email.mjs +1 -1
- package/node_modules/typebox/build/format/idna/idn-hostname.mjs +19 -1
- package/node_modules/typebox/package.json +1 -1
- package/openclaw.plugin.json +15 -7
- package/package.json +5 -5
- package/dist/action-runtime.runtime-Dpa16J87.js +0 -2
- package/dist/slack-client-kind-hSfjXyUM.js +0 -94
- package/node_modules/@slack/bolt/node_modules/negotiator/HISTORY.md +0 -114
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { n as listSlackAccountIds } from "./accounts-Dm_H77gH.js";
|
|
2
|
-
import { t as inspectSlackAccount } from "./account-inspect-
|
|
3
|
-
import {
|
|
2
|
+
import { t as inspectSlackAccount } from "./account-inspect-C3sePHWa.js";
|
|
3
|
+
import { r as resolveSlackThreadTsValue, t as normalizeSlackThreadTsCandidate } from "./thread-ts-CukseRVL.js";
|
|
4
4
|
import { createActionGate } from "openclaw/plugin-sdk/channel-actions";
|
|
5
5
|
import { extractToolSend } from "openclaw/plugin-sdk/tool-send";
|
|
6
6
|
import { Type } from "typebox";
|
|
@@ -24,6 +24,7 @@ function listSlackMessageActions(cfg, accountId) {
|
|
|
24
24
|
actions.add("reactions");
|
|
25
25
|
}
|
|
26
26
|
if (isActionEnabled("messages")) {
|
|
27
|
+
actions.add("conversation-open");
|
|
27
28
|
actions.add("read");
|
|
28
29
|
actions.add("edit");
|
|
29
30
|
actions.add("delete");
|
|
@@ -106,6 +107,22 @@ function describeSlackMessageTool({ cfg, accountId }) {
|
|
|
106
107
|
const actions = listSlackMessageActions(cfg, accountId);
|
|
107
108
|
const capabilities = /* @__PURE__ */ new Set();
|
|
108
109
|
const schema = [];
|
|
110
|
+
if (actions.includes("conversation-open")) schema.push({
|
|
111
|
+
actions: ["conversation-open"],
|
|
112
|
+
visibility: "all-configured",
|
|
113
|
+
properties: {
|
|
114
|
+
userIds: Type.Optional(Type.Array(Type.String({ pattern: "^[UW][A-Z0-9]+$" }), {
|
|
115
|
+
minItems: 1,
|
|
116
|
+
maxItems: 8,
|
|
117
|
+
uniqueItems: true,
|
|
118
|
+
description: "Slack conversation-open: 1-8 other member IDs. One opens a DM; multiple open or reuse a group DM. Exclude the calling account. Use the returned target with action=\"send\"."
|
|
119
|
+
})),
|
|
120
|
+
teamId: Type.Optional(Type.String({
|
|
121
|
+
pattern: "^T[A-Z0-9]+$",
|
|
122
|
+
description: "Slack workspace for conversation-open. Defaults to the trusted current workspace for the selected account; required for detached Enterprise operations."
|
|
123
|
+
}))
|
|
124
|
+
}
|
|
125
|
+
});
|
|
109
126
|
if (actions.includes("send")) capabilities.add("presentation");
|
|
110
127
|
if (actions.includes("download-file")) schema.push({
|
|
111
128
|
properties: createSlackFileActionSchema(),
|
package/dist/message-tool-api.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { t as describeSlackMessageTool } from "./message-tool-api-
|
|
1
|
+
import { t as describeSlackMessageTool } from "./message-tool-api-uNEfQYGY.js";
|
|
2
2
|
export { describeSlackMessageTool as describeMessageTool };
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { t as __exportAll } from "./rolldown-runtime-8H4AJuhK.js";
|
|
2
|
-
import { T as buildSlackSlashCommandMatcher, t as monitorSlackProvider } from "./provider-
|
|
3
|
-
import { t as isSlackChannelAllowedByPolicy } from "./policy-
|
|
4
|
-
import {
|
|
2
|
+
import { T as buildSlackSlashCommandMatcher, t as monitorSlackProvider } from "./provider-Do50wMWn.js";
|
|
3
|
+
import { t as isSlackChannelAllowedByPolicy } from "./policy-D7PKkiet.js";
|
|
4
|
+
import { a as resolveSlackThreadTs } from "./replies-Dc6WVh_Q.js";
|
|
5
5
|
//#region extensions/slack/src/monitor.ts
|
|
6
6
|
var monitor_exports = /* @__PURE__ */ __exportAll({
|
|
7
7
|
buildSlackSlashCommandMatcher: () => buildSlackSlashCommandMatcher,
|
|
@@ -1,24 +1,26 @@
|
|
|
1
|
-
import { a as
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
1
|
+
import { a as resolveSlackAccount, l as resolveSlackOperationToken } from "./accounts-Dm_H77gH.js";
|
|
2
|
+
import { a as parseSlackTarget } from "./target-parsing-PbxGDbr9.js";
|
|
3
|
+
import { M as SLACK_TEXT_LIMIT, O as resolveSlackAuthoredTextPlacement, c as assertSlackDetachedTargetAllowed, d as resolveSlackReplyBlockResolution, et as escapeSlackMrkdwn, p as resolveSlackReplyDeliveryMessages, q as resolveSlackQuestionActionIds, rt as SLACK_PRESENTATION_CAPABILITIES, u as parseSlackReplyBlockSegments, z as SLACK_QUESTION_FINALIZATION_BLOCKS } from "./group-policy-BKjMqT-8.js";
|
|
4
|
+
import { r as resolveSlackThreadTsValue } from "./thread-ts-CukseRVL.js";
|
|
5
|
+
import { t as mergeSlackSendResults } from "./send-results-eeOu_HYm.js";
|
|
4
6
|
import { normalizeOptionalString } from "openclaw/plugin-sdk/string-coerce-runtime";
|
|
5
|
-
import {
|
|
7
|
+
import { resolveOutboundSendDep } from "openclaw/plugin-sdk/channel-outbound";
|
|
6
8
|
import { createLazyRuntimeModule } from "openclaw/plugin-sdk/lazy-runtime";
|
|
7
9
|
import { normalizeMessagePresentation, resolveLegacyInteractiveTextFallback } from "openclaw/plugin-sdk/interactive-runtime";
|
|
10
|
+
import { resolvePayloadMediaUrls, sendPayloadMediaSequenceAndFinalize, sendTextMediaPayload } from "openclaw/plugin-sdk/reply-payload";
|
|
8
11
|
import { questionGatewayRuntime } from "openclaw/plugin-sdk/question-gateway-runtime";
|
|
9
12
|
import { createHmac, randomBytes, timingSafeEqual } from "node:crypto";
|
|
10
|
-
import {
|
|
11
|
-
import { attachChannelToResult, createAttachedChannelResultAdapter } from "openclaw/plugin-sdk/channel-send-result";
|
|
13
|
+
import { attachChannelToResult } from "openclaw/plugin-sdk/channel-send-result";
|
|
12
14
|
//#region extensions/slack/src/outbound-adapter.ts
|
|
13
15
|
function toSlackOutboundResult(result) {
|
|
14
16
|
const { channelId, ...delivery } = result;
|
|
15
|
-
return channelId === void 0 ? delivery : {
|
|
17
|
+
return attachChannelToResult("slack", channelId === void 0 ? delivery : {
|
|
16
18
|
...delivery,
|
|
17
19
|
target: {
|
|
18
20
|
kind: "channel",
|
|
19
21
|
id: channelId
|
|
20
22
|
}
|
|
21
|
-
};
|
|
23
|
+
});
|
|
22
24
|
}
|
|
23
25
|
const SLACK_RENDERED_PRESENTATION_PROVENANCE_KEY = randomBytes(32);
|
|
24
26
|
function createSlackRenderedPresentationProvenance(resolution) {
|
|
@@ -49,7 +51,7 @@ function readSlackRenderedPresentation(slackData) {
|
|
|
49
51
|
return;
|
|
50
52
|
}
|
|
51
53
|
}
|
|
52
|
-
const loadSlackSendRuntime = createLazyRuntimeModule(() => import("./send.runtime-
|
|
54
|
+
const loadSlackSendRuntime = createLazyRuntimeModule(() => import("./send.runtime-__WVTWLQ.js"));
|
|
53
55
|
function resolveSlackSendIdentity(identity) {
|
|
54
56
|
if (!identity) return;
|
|
55
57
|
const username = normalizeOptionalString(identity.name);
|
|
@@ -97,43 +99,45 @@ function withSlackRenderedPresentation(payload, slackData, resolution) {
|
|
|
97
99
|
function readSlackAuthoredTextPlacement(value) {
|
|
98
100
|
return value === "none" || value === "blocks" || value === "outside-blocks" ? value : void 0;
|
|
99
101
|
}
|
|
100
|
-
async function
|
|
101
|
-
const
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
replyToId: params.replyToId,
|
|
105
|
-
threadId: params.threadId
|
|
102
|
+
async function prepareSlackOutboundSend(ctx) {
|
|
103
|
+
const account = resolveSlackAccount({
|
|
104
|
+
cfg: ctx.cfg,
|
|
105
|
+
accountId: ctx.accountId
|
|
106
106
|
});
|
|
107
|
-
const
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
107
|
+
const target = parseSlackTarget(ctx.to, { defaultKind: "channel" });
|
|
108
|
+
assertSlackDetachedTargetAllowed(account.accountId, target?.teamId);
|
|
109
|
+
const send = resolveOutboundSendDep(ctx.deps, "slack") ?? (await loadSlackSendRuntime()).sendMessageSlack;
|
|
110
|
+
const token = resolveSlackOperationToken(account, "write");
|
|
111
|
+
const botToken = account.botToken?.trim();
|
|
112
|
+
const tokenOverride = token && token !== botToken ? token : void 0;
|
|
113
|
+
return async (params) => {
|
|
114
|
+
const slackIdentity = resolveSlackSendIdentity(params.identity);
|
|
115
|
+
const threadTs = resolveSlackThreadTsValue(params);
|
|
116
|
+
const sendOptions = {
|
|
117
|
+
cfg: params.cfg,
|
|
118
|
+
...tokenOverride ? { token: tokenOverride } : {},
|
|
119
|
+
threadTs,
|
|
120
|
+
accountId: params.accountId ?? void 0,
|
|
121
|
+
...params.mediaUrl ? {
|
|
122
|
+
mediaUrl: params.mediaUrl,
|
|
123
|
+
mediaAccess: params.mediaAccess,
|
|
124
|
+
mediaLocalRoots: params.mediaLocalRoots,
|
|
125
|
+
mediaReadFile: params.mediaReadFile,
|
|
126
|
+
...params.forceDocument ? { forceDocument: true } : {}
|
|
127
|
+
} : {},
|
|
128
|
+
...params.blocks ? { blocks: params.blocks } : {},
|
|
129
|
+
...params.authoredTextPlacement ? { authoredTextPlacement: params.authoredTextPlacement } : {},
|
|
130
|
+
...Object.hasOwn(params, "nativeDataFallbackBaseText") ? { nativeDataFallbackBaseText: params.nativeDataFallbackBaseText } : {},
|
|
131
|
+
...params.textIsSlackPlainText ? { textIsSlackPlainText: true } : {},
|
|
132
|
+
...slackIdentity ? { identity: slackIdentity } : {},
|
|
133
|
+
...params.deliveryQueueId ? { deliveryQueueId: params.deliveryQueueId } : {},
|
|
134
|
+
...params.onPlatformSendDispatch ? { onPlatformSendDispatch: params.onPlatformSendDispatch } : {},
|
|
135
|
+
...params.onDeliveryResult ? { onDeliveryResult: async (progress) => {
|
|
136
|
+
await params.onDeliveryResult?.(toSlackOutboundResult(progress));
|
|
137
|
+
} } : {}
|
|
138
|
+
};
|
|
139
|
+
return await send(params.to, params.text, sendOptions);
|
|
128
140
|
};
|
|
129
|
-
return await send(params.to, params.text, sendOptions);
|
|
130
|
-
}
|
|
131
|
-
function createSlackAttachedSendAdapter() {
|
|
132
|
-
return createAttachedChannelResultAdapter({
|
|
133
|
-
channel: "slack",
|
|
134
|
-
sendText: async (ctx) => toSlackOutboundResult(await sendSlackOutboundMessage(ctx)),
|
|
135
|
-
sendMedia: async (ctx) => toSlackOutboundResult(await sendSlackOutboundMessage(ctx))
|
|
136
|
-
});
|
|
137
141
|
}
|
|
138
142
|
const slackOutbound = {
|
|
139
143
|
deliveryMode: "direct",
|
|
@@ -146,11 +150,19 @@ const slackOutbound = {
|
|
|
146
150
|
return resolution.segments.length > 0 ? withSlackRenderedPresentation(payload, slackData, resolution) : null;
|
|
147
151
|
},
|
|
148
152
|
sendPayload: async (ctx) => {
|
|
153
|
+
const send = await prepareSlackOutboundSend(ctx);
|
|
154
|
+
const { mediaUrl: _mediaUrl, ...commonCtx } = ctx;
|
|
155
|
+
const preparedCtx = {
|
|
156
|
+
...commonCtx,
|
|
157
|
+
replyToId: resolveSlackThreadTsValue(ctx),
|
|
158
|
+
threadId: null,
|
|
159
|
+
deliveryQueueId: void 0
|
|
160
|
+
};
|
|
149
161
|
const payload = {
|
|
150
|
-
...
|
|
162
|
+
...preparedCtx.payload,
|
|
151
163
|
text: resolveLegacyInteractiveTextFallback({
|
|
152
|
-
text:
|
|
153
|
-
interactive:
|
|
164
|
+
text: preparedCtx.payload.text,
|
|
165
|
+
interactive: preparedCtx.payload.interactive
|
|
154
166
|
}) ?? ""
|
|
155
167
|
};
|
|
156
168
|
const slackData = payload.channelData?.slack;
|
|
@@ -158,66 +170,50 @@ const slackOutbound = {
|
|
|
158
170
|
let resolution;
|
|
159
171
|
if (renderedResolution) resolution = renderedResolution;
|
|
160
172
|
else resolution = resolveSlackOutboundBlockResolution(payload);
|
|
161
|
-
if (resolution.segments.length === 0)
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
173
|
+
if (resolution.segments.length === 0) {
|
|
174
|
+
const sendPart = async (part) => toSlackOutboundResult(await send(part));
|
|
175
|
+
return await sendTextMediaPayload({
|
|
176
|
+
channel: "slack",
|
|
177
|
+
ctx: {
|
|
178
|
+
...preparedCtx,
|
|
179
|
+
payload
|
|
180
|
+
},
|
|
181
|
+
adapter: {
|
|
182
|
+
sendText: sendPart,
|
|
183
|
+
sendMedia: sendPart
|
|
184
|
+
}
|
|
185
|
+
});
|
|
186
|
+
}
|
|
169
187
|
const mediaUrls = resolvePayloadMediaUrls(payload);
|
|
170
188
|
const deliveryMessages = resolveSlackReplyDeliveryMessages({
|
|
171
189
|
authoredTextPlacement: resolution.authoredTextPlacement,
|
|
172
190
|
segments: resolution.segments,
|
|
173
191
|
text: payload.text
|
|
174
192
|
});
|
|
175
|
-
const useSingleDeliveryMarker = mediaUrls.length === 0 && deliveryMessages.length === 1;
|
|
176
193
|
const sentResults = [];
|
|
177
|
-
return
|
|
194
|
+
return toSlackOutboundResult(await sendPayloadMediaSequenceAndFinalize({
|
|
178
195
|
text: "",
|
|
179
196
|
mediaUrls,
|
|
180
|
-
send: async ({ text, mediaUrl }) => await
|
|
181
|
-
...
|
|
197
|
+
send: async ({ text, mediaUrl }) => await send({
|
|
198
|
+
...preparedCtx,
|
|
182
199
|
text,
|
|
183
|
-
mediaUrl
|
|
184
|
-
deliveryQueueId: useSingleDeliveryMarker ? ctx.deliveryQueueId : void 0
|
|
200
|
+
mediaUrl
|
|
185
201
|
}),
|
|
186
202
|
onResult: (result) => {
|
|
187
203
|
sentResults.push(result);
|
|
188
204
|
},
|
|
189
205
|
finalize: async () => {
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
...message.nativeDataFallbackBaseText ? { nativeDataFallbackBaseText: message.nativeDataFallbackBaseText } : {},
|
|
198
|
-
...message.textIsSlackPlainText ? { textIsSlackPlainText: true } : {},
|
|
199
|
-
deliveryQueueId: useSingleDeliveryMarker ? ctx.deliveryQueueId : void 0
|
|
200
|
-
});
|
|
201
|
-
sentResults.push(lastResult);
|
|
202
|
-
}
|
|
203
|
-
if (!lastResult) throw new Error("Slack rendered presentation produced no deliverable segment");
|
|
204
|
-
if (sentResults.length === 1) return lastResult;
|
|
205
|
-
const receipt = createMessageReceiptFromOutboundResults({ results: sentResults });
|
|
206
|
-
receipt.parts = receipt.parts.map((part, index) => ({
|
|
207
|
-
...part,
|
|
208
|
-
index
|
|
206
|
+
for (const message of deliveryMessages) sentResults.push(await send({
|
|
207
|
+
...preparedCtx,
|
|
208
|
+
text: message.text,
|
|
209
|
+
...message.blocks ? { blocks: message.blocks } : {},
|
|
210
|
+
...message.authoredTextPlacement ? { authoredTextPlacement: message.authoredTextPlacement } : {},
|
|
211
|
+
...message.nativeDataFallbackBaseText ? { nativeDataFallbackBaseText: message.nativeDataFallbackBaseText } : {},
|
|
212
|
+
...message.textIsSlackPlainText ? { textIsSlackPlainText: true } : {}
|
|
209
213
|
}));
|
|
210
|
-
|
|
211
|
-
return {
|
|
212
|
-
...lastResult,
|
|
213
|
-
receipt,
|
|
214
|
-
...questionResult?.meta ? { meta: {
|
|
215
|
-
...questionResult.meta,
|
|
216
|
-
slackQuestionMessageId: questionResult.meta.slackQuestionMessageId ?? questionResult.messageId
|
|
217
|
-
} } : {}
|
|
218
|
-
};
|
|
214
|
+
return mergeSlackSendResults(sentResults);
|
|
219
215
|
}
|
|
220
|
-
}))
|
|
216
|
+
}));
|
|
221
217
|
},
|
|
222
218
|
afterDeliverPayload: async ({ cfg, target, payload, results }) => {
|
|
223
219
|
const questionId = questionGatewayRuntime.readAskUserQuestionId(payload);
|
|
@@ -263,7 +259,15 @@ const slackOutbound = {
|
|
|
263
259
|
}
|
|
264
260
|
});
|
|
265
261
|
},
|
|
266
|
-
|
|
262
|
+
sendText: async (ctx) => {
|
|
263
|
+
return toSlackOutboundResult(await (await prepareSlackOutboundSend(ctx))(ctx));
|
|
264
|
+
},
|
|
265
|
+
sendMedia: async (ctx) => {
|
|
266
|
+
return toSlackOutboundResult(await (await prepareSlackOutboundSend(ctx))({
|
|
267
|
+
...ctx,
|
|
268
|
+
deliveryQueueId: void 0
|
|
269
|
+
}));
|
|
270
|
+
}
|
|
267
271
|
};
|
|
268
272
|
//#endregion
|
|
269
273
|
export { slackOutbound };
|