UNPKG

openclaw

Version:

Multi-channel AI gateway with extensible messaging integrations

40 lines (39 loc) 1.94 kB
import { r as normalizeAnyChannelId } from "./message-channel-core-DqmPisgp.js"; import { t as getLoadedChannelPluginForRead } from "./registry-loaded-read-7phT5GIn.js"; import { i as resolveSourceReplyDeliveryMode } from "./source-reply-delivery-mode-DwzhG4UZ.js"; import { n as createReplyPrefixOptions } from "./reply-prefix-0ojzXxbX.js"; import { t as createTypingCallbacks } from "./typing-By1cdYk1.js"; //#region src/channels/message/reply-pipeline.ts /** Resolves whether a channel reply should use source delivery, message tools, or direct sending. */ function resolveChannelSourceReplyDeliveryMode(params) { return resolveSourceReplyDeliveryMode(params); } /** Builds the reply pipeline used by channel turns and plugin SDK reply helpers. */ function createChannelReplyPipeline(params) { const channelId = params.channel ? normalizeAnyChannelId(params.channel) ?? params.channel : void 0; let plugin; let pluginTransformResolved = false; const resolvePluginTransform = () => { if (pluginTransformResolved) return plugin?.messaging?.transformReplyPayload; pluginTransformResolved = true; plugin = channelId ? getLoadedChannelPluginForRead(channelId) : void 0; return plugin?.messaging?.transformReplyPayload; }; const transformReplyPayload = params.transformReplyPayload ? params.transformReplyPayload : channelId ? (payload) => resolvePluginTransform()?.({ payload, cfg: params.cfg, accountId: params.accountId }) ?? payload : void 0; return { ...createReplyPrefixOptions({ cfg: params.cfg, agentId: params.agentId, channel: params.channel, accountId: params.accountId }), ...transformReplyPayload ? { transformReplyPayload } : {}, ...params.typingCallbacks ? { typingCallbacks: params.typingCallbacks } : params.typing ? { typingCallbacks: createTypingCallbacks(params.typing) } : {} }; } //#endregion export { resolveChannelSourceReplyDeliveryMode as n, createChannelReplyPipeline as t };