






















@@ -252,6 +252,31 @@ function resolveSendableOutboundReplyPartsMock(payload: Record<string, unknown>)
252252};
253253}
254254255+function resolveChannelSourceReplyDeliveryModeMock(params: {
256+cfg: {
257+messages?: {
258+visibleReplies?: "automatic" | "message_tool";
259+groupChat?: { visibleReplies?: "automatic" | "message_tool" };
260+};
261+};
262+ctx: { ChatType?: string; CommandSource?: "text" | "native" };
263+requested?: "automatic" | "message_tool_only";
264+}) {
265+if (params.requested) {
266+return params.requested;
267+}
268+if (params.ctx.CommandSource === "native") {
269+return "automatic";
270+}
271+const chatType = normalizeLowercaseStringOrEmpty(params.ctx.ChatType);
272+if (chatType === "group" || chatType === "channel") {
273+return params.cfg.messages?.groupChat?.visibleReplies === "automatic"
274+ ? "automatic"
275+ : "message_tool_only";
276+}
277+return params.cfg.messages?.visibleReplies === "message_tool" ? "message_tool_only" : "automatic";
278+}
279+255280function toLocationContextMock(location: unknown) {
256281return { Location: location };
257282}
@@ -445,7 +470,7 @@ vi.mock("./auto-reply/monitor/inbound-dispatch.runtime.js", () => ({
445470getAgentScopedMediaLocalRoots: () => [] as string[],
446471jidToE164: normalizePhoneLikeToE164,
447472logVerbose: (_msg: string) => undefined,
448-resolveChannelSourceReplyDeliveryMode: () => undefined,
473+resolveChannelSourceReplyDeliveryMode: resolveChannelSourceReplyDeliveryModeMock,
449474resolveChunkMode: () => undefined,
450475resolveIdentityNamePrefix: resolveIdentityNamePrefixMock,
451476resolveInboundLastRouteSessionKey: (params: { sessionKey: string }) => params.sessionKey,
@@ -479,8 +504,8 @@ vi.mock("./auto-reply/monitor/runtime-api.js", () => ({
479504normalizeE164: normalizePhoneLikeToE164,
480505readStoreAllowFromForDmPolicy: async () => [] as string[],
481506recordSessionMetaFromInbound: async () => undefined,
507+resolveChannelSourceReplyDeliveryMode: resolveChannelSourceReplyDeliveryModeMock,
482508resolveChannelContextVisibilityMode: resolveChannelContextVisibilityModeMock,
483-resolveChannelSourceReplyDeliveryMode: () => undefined,
484509resolveChunkMode: () => undefined,
485510resolveIdentityNamePrefix: resolveIdentityNamePrefixMock,
486511resolveInboundLastRouteSessionKey: (params: { sessionKey: string }) => params.sessionKey,
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。