diff --git a/src/discord/monitor/message-handler.ts b/src/discord/monitor/message-handler.ts index 5945e719a2e..ad6f4803403 100644 --- a/src/discord/monitor/message-handler.ts +++ b/src/discord/monitor/message-handler.ts @@ -1,9 +1,6 @@ import type { Client } from "@buape/carbon"; -import type { HistoryEntry } from "../../auto-reply/reply/history.js"; -import type { ReplyToMode } from "../../config/config.js"; -import type { RuntimeEnv } from "../../runtime.js"; -import type { DiscordGuildEntryResolved } from "./allow-list.js"; import type { DiscordMessageEvent, DiscordMessageHandler } from "./listeners.js"; +import type { DiscordMessagePreflightParams } from "./message-handler.preflight.types.js"; import { hasControlCommand } from "../../auto-reply/command-detection.js"; import { createInboundDebouncer, @@ -14,29 +11,14 @@ import { preflightDiscordMessage } from "./message-handler.preflight.js"; import { processDiscordMessage } from "./message-handler.process.js"; import { resolveDiscordMessageText } from "./message-utils.js"; -type LoadedConfig = ReturnType; -type DiscordConfig = NonNullable< - import("../../config/config.js").OpenClawConfig["channels"] ->["discord"]; +type DiscordMessageHandlerParams = Omit< + DiscordMessagePreflightParams, + "ackReactionScope" | "groupPolicy" | "data" | "client" +>; -export function createDiscordMessageHandler(params: { - cfg: LoadedConfig; - discordConfig: DiscordConfig; - accountId: string; - token: string; - runtime: RuntimeEnv; - botUserId?: string; - guildHistories: Map; - historyLimit: number; - mediaMaxBytes: number; - textLimit: number; - replyToMode: ReplyToMode; - dmEnabled: boolean; - groupDmEnabled: boolean; - groupDmChannels?: Array; - allowFrom?: Array; - guildEntries?: Record; -}): DiscordMessageHandler { +export function createDiscordMessageHandler( + params: DiscordMessageHandlerParams, +): DiscordMessageHandler { const groupPolicy = params.discordConfig?.groupPolicy ?? "open"; const ackReactionScope = params.cfg.messages?.ackReactionScope ?? "group-mentions"; const debounceMs = resolveInboundDebounceMs({ cfg: params.cfg, channel: "discord" });