refactor: share discord auto thread params

This commit is contained in:
Peter Steinberger
2026-03-13 22:21:43 +00:00
parent 0f9e16ca46
commit 301594b448

View File

@@ -89,6 +89,18 @@ function isDiscordThreadType(type: ChannelType | undefined): boolean {
);
}
function resolveTrimmedDiscordMessageChannelId(params: {
message: DiscordMessageEvent["message"];
messageChannelId?: string;
}) {
return (
params.messageChannelId ||
resolveDiscordMessageChannelId({
message: params.message,
})
).trim();
}
export function resolveDiscordThreadChannel(params: {
isGuildMessage: boolean;
message: DiscordMessageEvent["message"];
@@ -301,7 +313,7 @@ export type DiscordAutoThreadReplyPlan = DiscordReplyDeliveryPlan & {
autoThreadContext: DiscordAutoThreadContext | null;
};
export async function resolveDiscordAutoThreadReplyPlan(params: {
type MaybeCreateDiscordAutoThreadParams = {
client: Client;
message: DiscordMessageEvent["message"];
messageChannelId?: string;
@@ -311,16 +323,16 @@ export async function resolveDiscordAutoThreadReplyPlan(params: {
channelType?: ChannelType;
baseText: string;
combinedBody: string;
replyToMode: ReplyToMode;
agentId: string;
channel: string;
}): Promise<DiscordAutoThreadReplyPlan> {
const messageChannelId = (
params.messageChannelId ||
resolveDiscordMessageChannelId({
message: params.message,
})
).trim();
};
export async function resolveDiscordAutoThreadReplyPlan(
params: MaybeCreateDiscordAutoThreadParams & {
replyToMode: ReplyToMode;
agentId: string;
channel: string;
},
): Promise<DiscordAutoThreadReplyPlan> {
const messageChannelId = resolveTrimmedDiscordMessageChannelId(params);
// Prefer the resolved thread channel ID when available so replies stay in-thread.
const targetChannelId = params.threadChannel?.id ?? (messageChannelId || "unknown");
const originalReplyTarget = `channel:${targetChannelId}`;
@@ -353,17 +365,9 @@ export async function resolveDiscordAutoThreadReplyPlan(params: {
return { ...deliveryPlan, createdThreadId, autoThreadContext };
}
export async function maybeCreateDiscordAutoThread(params: {
client: Client;
message: DiscordMessageEvent["message"];
messageChannelId?: string;
isGuildMessage: boolean;
channelConfig?: DiscordChannelConfigResolved | null;
threadChannel?: DiscordThreadChannel | null;
channelType?: ChannelType;
baseText: string;
combinedBody: string;
}): Promise<string | undefined> {
export async function maybeCreateDiscordAutoThread(
params: MaybeCreateDiscordAutoThreadParams,
): Promise<string | undefined> {
if (!params.isGuildMessage) {
return undefined;
}
@@ -383,12 +387,7 @@ export async function maybeCreateDiscordAutoThread(params: {
return undefined;
}
const messageChannelId = (
params.messageChannelId ||
resolveDiscordMessageChannelId({
message: params.message,
})
).trim();
const messageChannelId = resolveTrimmedDiscordMessageChannelId(params);
if (!messageChannelId) {
return undefined;
}