diff --git a/src/message-runtime-loop.ts b/src/message-runtime-loop.ts index ccaf240..a17c34c 100644 --- a/src/message-runtime-loop.ts +++ b/src/message-runtime-loop.ts @@ -11,15 +11,10 @@ import { getProcessableMessages, } from './message-runtime-rules.js'; import { SERVICE_SESSION_SCOPE } from './config.js'; +import type { schedulePairedFollowUpWithMessageCheck } from './message-runtime-follow-up.js'; import type { ExecuteTurnFn } from './message-runtime-types.js'; -import type { ScheduledPairedFollowUpIntentKind } from './paired-follow-up-scheduler.js'; import { findChannel, formatMessages } from './router.js'; -import type { - Channel, - NewMessage, - PairedTask, - RegisteredGroup, -} from './types.js'; +import type { Channel, NewMessage, RegisteredGroup } from './types.js'; export async function processMessageLoopTick(args: { assistantName: string; @@ -38,13 +33,7 @@ export async function processMessageLoopTick(args: { ) => boolean; executeTurn: ExecuteTurnFn; enqueuePendingHandoffs: () => void; - scheduleQueuedPairedFollowUp: (args: { - chatJid: string; - runId: string; - task: PairedTask | null | undefined; - intentKind: ScheduledPairedFollowUpIntentKind; - enqueue: () => void; - }) => boolean; + schedulePairedFollowUpWithMessageCheck: typeof schedulePairedFollowUpWithMessageCheck; enqueueScopedGroupMessageCheck: ( chatJid: string, groupFolder: string, @@ -104,12 +93,12 @@ export async function processMessageLoopTick(args: { timezone: args.timezone, executeTurn: args.executeTurn, schedulePairedFollowUp: (task, intentKind, followUpRunId) => - args.scheduleQueuedPairedFollowUp({ + args.schedulePairedFollowUpWithMessageCheck({ chatJid, runId: followUpRunId, task, intentKind, - enqueue: () => + enqueueMessageCheck: () => args.enqueueScopedGroupMessageCheck(chatJid, group.folder), }), enqueueMessageCheck: () => diff --git a/src/message-runtime.ts b/src/message-runtime.ts index 0d518f8..a86fd70 100644 --- a/src/message-runtime.ts +++ b/src/message-runtime.ts @@ -35,15 +35,8 @@ import { } from './message-runtime-rules.js'; import { resolveOwnerTaskForHumanMessage } from './paired-execution-context.js'; import { schedulePairedFollowUpWithMessageCheck } from './message-runtime-follow-up.js'; -import { type ScheduledPairedFollowUpIntentKind } from './paired-follow-up-scheduler.js'; import { transitionPairedTaskStatus } from './paired-task-status.js'; -import { - Channel, - NewMessage, - type PairedRoomRole, - RegisteredGroup, - type PairedTask, -} from './types.js'; +import { Channel, NewMessage, RegisteredGroup } from './types.js'; import { createScopedLogger, logger } from './logger.js'; import { hasReviewerLease } from './service-routing.js'; export { @@ -124,23 +117,6 @@ export function createMessageRuntime(deps: MessageRuntimeDeps): { deps.queue, ); - const scheduleQueuedPairedFollowUp = (args: { - chatJid: string; - runId: string; - task: PairedTask | null | undefined; - intentKind: ScheduledPairedFollowUpIntentKind; - enqueue: () => void; - fallbackLastTurnOutputRole?: PairedRoomRole | null; - }): boolean => - schedulePairedFollowUpWithMessageCheck({ - chatJid: args.chatJid, - runId: args.runId, - task: args.task, - intentKind: args.intentKind, - enqueueMessageCheck: args.enqueue, - fallbackLastTurnOutputRole: args.fallbackLastTurnOutputRole, - }); - /** * Check if a message is a duplicate of the last bot final message in a paired room. * Returns true if duplicate (should be suppressed). @@ -559,7 +535,7 @@ export function createMessageRuntime(deps: MessageRuntimeDeps): { hasImplicitContinuationWindow: continuationTracker.has, executeTurn, enqueuePendingHandoffs, - scheduleQueuedPairedFollowUp, + schedulePairedFollowUpWithMessageCheck, enqueueScopedGroupMessageCheck, sendQueuedMessage: deps.queue.sendMessage.bind(deps.queue), closeStdin: (chatJid, reason) =>