mirror of
https://github.com/openclaw/openclaw.git
synced 2026-05-06 10:00:42 +00:00
fix: correct whatsapp normalized reply typing
This commit is contained in:
@@ -8,6 +8,7 @@ import {
|
||||
import { logVerbose, shouldLogVerbose } from "openclaw/plugin-sdk/runtime-env";
|
||||
import { loadWebMedia } from "../media.js";
|
||||
import {
|
||||
type DeliverableWhatsAppOutboundPayload,
|
||||
normalizeWhatsAppOutboundPayload,
|
||||
normalizeWhatsAppPayloadTextPreservingIndentation,
|
||||
prepareWhatsAppOutboundMedia,
|
||||
@@ -24,7 +25,7 @@ import { elide } from "./util.js";
|
||||
|
||||
export async function deliverWebReply(params: {
|
||||
replyResult: ReplyPayload;
|
||||
normalizedReplyResult?: ReturnType<typeof normalizeWhatsAppOutboundPayload<ReplyPayload>>;
|
||||
normalizedReplyResult?: DeliverableWhatsAppOutboundPayload<ReplyPayload>;
|
||||
msg: WebInboundMsg;
|
||||
mediaLocalRoots?: readonly string[];
|
||||
maxMediaBytes: number;
|
||||
@@ -51,7 +52,9 @@ export async function deliverWebReply(params: {
|
||||
normalizeWhatsAppOutboundPayload(replyResult, {
|
||||
normalizeText: normalizeWhatsAppPayloadTextPreservingIndentation,
|
||||
});
|
||||
const convertedText = markdownToWhatsApp(convertMarkdownTables(normalizedReply.text, tableMode));
|
||||
const convertedText = markdownToWhatsApp(
|
||||
convertMarkdownTables(normalizedReply.text ?? "", tableMode),
|
||||
);
|
||||
const textChunks = chunkMarkdownTextWithMode(convertedText, textLimit, chunkMode);
|
||||
const mediaList = normalizedReply.mediaUrls ?? [];
|
||||
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
import { resolveMergedWhatsAppAccountConfig } from "../../account-config.js";
|
||||
import {
|
||||
type DeliverableWhatsAppOutboundPayload,
|
||||
normalizeWhatsAppOutboundPayload,
|
||||
normalizeWhatsAppPayloadTextPreservingIndentation,
|
||||
} from "../../outbound-media-contract.js";
|
||||
@@ -250,6 +251,7 @@ export async function dispatchWhatsAppBufferedReply(params: {
|
||||
conversationId: string;
|
||||
deliverReply: (params: {
|
||||
replyResult: ReplyPayload;
|
||||
normalizedReplyResult?: DeliverableWhatsAppOutboundPayload<ReplyPayload>;
|
||||
msg: WebInboundMsg;
|
||||
mediaLocalRoots: readonly string[];
|
||||
maxMediaBytes: number;
|
||||
|
||||
@@ -24,6 +24,22 @@ type WhatsAppLoadedMediaLike = {
|
||||
fileName?: string;
|
||||
};
|
||||
|
||||
export type NormalizedWhatsAppOutboundPayload<T extends WhatsAppOutboundPayloadLike> = Omit<
|
||||
T,
|
||||
"text" | "mediaUrl" | "mediaUrls"
|
||||
> & {
|
||||
text: string;
|
||||
mediaUrl?: string;
|
||||
mediaUrls?: string[];
|
||||
};
|
||||
|
||||
export type DeliverableWhatsAppOutboundPayload<T extends WhatsAppOutboundPayloadLike> = Omit<
|
||||
NormalizedWhatsAppOutboundPayload<T>,
|
||||
"text"
|
||||
> & {
|
||||
text?: string;
|
||||
};
|
||||
|
||||
export type CanonicalWhatsAppLoadedMedia = {
|
||||
buffer: Buffer;
|
||||
kind: "image" | "audio" | "video" | "document";
|
||||
@@ -82,11 +98,7 @@ export function normalizeWhatsAppOutboundPayload<T extends WhatsAppOutboundPaylo
|
||||
options?: {
|
||||
normalizeText?: (text: string | undefined) => string;
|
||||
},
|
||||
): Omit<T, "text" | "mediaUrl" | "mediaUrls"> & {
|
||||
text: string;
|
||||
mediaUrl?: string;
|
||||
mediaUrls?: string[];
|
||||
} {
|
||||
): NormalizedWhatsAppOutboundPayload<T> {
|
||||
const mediaUrls = resolveWhatsAppOutboundMediaUrls(payload);
|
||||
const normalizeText = options?.normalizeText ?? normalizeWhatsAppPayloadText;
|
||||
return {
|
||||
|
||||
Reference in New Issue
Block a user