@@ -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+
92104export 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