Spracherkennung für: .ts vermutete Sprache: Unknown {[0] [0] [0]} [Methode: Schwerpunktbildung, einfache Gewichte, sechs Dimensionen]
import { getChannelPlugin, normalizeChannelId } from "../channels/plugins/index.js";
import {
createReplyPrefixContext,
createReplyPrefixOptions,
type ReplyPrefixContextBundle,
type ReplyPrefixOptions,
} from "../channels/reply-prefix.js";
import {
createTypingCallbacks,
type CreateTypingCallbacksParams,
type TypingCallbacks,
} from "../channels/typing.js";
import type { ReplyPayload } from "./reply-payload.js";
export type ReplyPrefixContext = ReplyPrefixContextBundle["prefixContext"];
export type { ReplyPrefixContextBundle, ReplyPrefixOptions };
export type { CreateTypingCallbacksParams, TypingCallbacks };
export { createReplyPrefixContext, createReplyPrefixOptions, createTypingCallbacks };
export type ChannelReplyPipeline = ReplyPrefixOptions & {
typingCallbacks?: TypingCallbacks;
transformReplyPayload?: (payload: ReplyPayload) => ReplyPayload | null;
};
export function createChannelReplyPipeline(params: {
cfg: Parameters<typeof createReplyPrefixOptions>[0]["cfg"];
agentId: string;
channel?: string;
accountId?: string;
typing?: CreateTypingCallbacksParams;
typingCallbacks?: TypingCallbacks;
transformReplyPayload?: (payload: ReplyPayload) => ReplyPayload | null;
}): ChannelReplyPipeline {
const channelId = params.channel
? (normalizeChannelId(params.channel) ?? params.channel)
: undefined;
let plugin: ReturnType<typeof getChannelPlugin> | undefined;
let pluginTransformResolved = false;
const resolvePluginTransform = () => {
if (pluginTransformResolved) {
return plugin?.messaging?.transformReplyPayload;
}
pluginTransformResolved = true;
plugin = channelId ? getChannelPlugin(channelId) : undefined;
return plugin?.messaging?.transformReplyPayload;
};
const transformReplyPayload = params.transformReplyPayload
? params.transformReplyPayload
: channelId
? (payload: ReplyPayload) =>
resolvePluginTransform()?.({
payload,
cfg: params.cfg,
accountId: params.accountId,
}) ?? payload
: undefined;
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) }
: {}),
};
}
¤ Dauer der Verarbeitung: 0.14 Sekunden
(vorverarbeitet am 2026-04-27)
¤
*© Formatika GbR, Deutschland