Skip to content

Commit 301594b

Browse files
committed
refactor: share discord auto thread params
1 parent 0f9e16c commit 301594b

File tree

1 file changed

+27
-28
lines changed

1 file changed

+27
-28
lines changed

src/discord/monitor/threading.ts

Lines changed: 27 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,18 @@ function isDiscordThreadType(type: ChannelType | undefined): boolean {
8989
);
9090
}
9191

92+
function resolveTrimmedDiscordMessageChannelId(params: {
93+
message: DiscordMessageEvent["message"];
94+
messageChannelId?: string;
95+
}) {
96+
return (
97+
params.messageChannelId ||
98+
resolveDiscordMessageChannelId({
99+
message: params.message,
100+
})
101+
).trim();
102+
}
103+
92104
export function resolveDiscordThreadChannel(params: {
93105
isGuildMessage: boolean;
94106
message: DiscordMessageEvent["message"];
@@ -301,7 +313,7 @@ export type DiscordAutoThreadReplyPlan = DiscordReplyDeliveryPlan & {
301313
autoThreadContext: DiscordAutoThreadContext | null;
302314
};
303315

304-
export async function resolveDiscordAutoThreadReplyPlan(params: {
316+
type MaybeCreateDiscordAutoThreadParams = {
305317
client: Client;
306318
message: DiscordMessageEvent["message"];
307319
messageChannelId?: string;
@@ -311,16 +323,16 @@ export async function resolveDiscordAutoThreadReplyPlan(params: {
311323
channelType?: ChannelType;
312324
baseText: string;
313325
combinedBody: string;
314-
replyToMode: ReplyToMode;
315-
agentId: string;
316-
channel: string;
317-
}): Promise<DiscordAutoThreadReplyPlan> {
318-
const messageChannelId = (
319-
params.messageChannelId ||
320-
resolveDiscordMessageChannelId({
321-
message: params.message,
322-
})
323-
).trim();
326+
};
327+
328+
export async function resolveDiscordAutoThreadReplyPlan(
329+
params: MaybeCreateDiscordAutoThreadParams & {
330+
replyToMode: ReplyToMode;
331+
agentId: string;
332+
channel: string;
333+
},
334+
): Promise<DiscordAutoThreadReplyPlan> {
335+
const messageChannelId = resolveTrimmedDiscordMessageChannelId(params);
324336
// Prefer the resolved thread channel ID when available so replies stay in-thread.
325337
const targetChannelId = params.threadChannel?.id ?? (messageChannelId || "unknown");
326338
const originalReplyTarget = `channel:${targetChannelId}`;
@@ -353,17 +365,9 @@ export async function resolveDiscordAutoThreadReplyPlan(params: {
353365
return { ...deliveryPlan, createdThreadId, autoThreadContext };
354366
}
355367

356-
export async function maybeCreateDiscordAutoThread(params: {
357-
client: Client;
358-
message: DiscordMessageEvent["message"];
359-
messageChannelId?: string;
360-
isGuildMessage: boolean;
361-
channelConfig?: DiscordChannelConfigResolved | null;
362-
threadChannel?: DiscordThreadChannel | null;
363-
channelType?: ChannelType;
364-
baseText: string;
365-
combinedBody: string;
366-
}): Promise<string | undefined> {
368+
export async function maybeCreateDiscordAutoThread(
369+
params: MaybeCreateDiscordAutoThreadParams,
370+
): Promise<string | undefined> {
367371
if (!params.isGuildMessage) {
368372
return undefined;
369373
}
@@ -383,12 +387,7 @@ export async function maybeCreateDiscordAutoThread(params: {
383387
return undefined;
384388
}
385389

386-
const messageChannelId = (
387-
params.messageChannelId ||
388-
resolveDiscordMessageChannelId({
389-
message: params.message,
390-
})
391-
).trim();
390+
const messageChannelId = resolveTrimmedDiscordMessageChannelId(params);
392391
if (!messageChannelId) {
393392
return undefined;
394393
}

0 commit comments

Comments
 (0)