diff --git a/CHANGELOG.md b/CHANGELOG.md index 9ef3d0074..6500f0f45 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,7 @@ Docs: https://docs.openclaw.ai ### Changes +- Telegram: remove `@ts-nocheck` from `bot-message.ts`, type deps via `Omit`, widen `allMedia` to `TelegramMediaRef[]`. (#9180) - Telegram: remove `@ts-nocheck` from `bot.ts`, fix duplicate `bot.catch` error handler (Grammy overrides), remove dead reaction `message_thread_id` routing, harden sticker cache guard. (#9077) - Onboarding: add Cloudflare AI Gateway provider setup and docs. (#7914) Thanks @roerohan. - Onboarding: add Moonshot (.cn) auth choice and keep the China base URL when preserving defaults. (#7180) Thanks @waynelwz. diff --git a/src/telegram/bot-message-context.ts b/src/telegram/bot-message-context.ts index b4f284aee..a8da88871 100644 --- a/src/telegram/bot-message-context.ts +++ b/src/telegram/bot-message-context.ts @@ -54,7 +54,7 @@ import { resolveTelegramThreadSpec, } from "./bot/helpers.js"; -type TelegramMediaRef = { +export type TelegramMediaRef = { path: string; contentType?: string; stickerMetadata?: { @@ -89,7 +89,7 @@ type ResolveGroupActivation = (params: { type ResolveGroupRequireMention = (chatId: string | number) => boolean; -type BuildTelegramMessageContextParams = { +export type BuildTelegramMessageContextParams = { primaryCtx: TelegramContext; allMedia: TelegramMediaRef[]; storeAllowFrom: string[]; diff --git a/src/telegram/bot-message.ts b/src/telegram/bot-message.ts index ffaa00be5..cc9c34fa5 100644 --- a/src/telegram/bot-message.ts +++ b/src/telegram/bot-message.ts @@ -1,8 +1,30 @@ -// @ts-nocheck -import { buildTelegramMessageContext } from "./bot-message-context.js"; +import type { ReplyToMode } from "../config/config.js"; +import type { TelegramAccountConfig } from "../config/types.telegram.js"; +import type { RuntimeEnv } from "../runtime.js"; +import type { TelegramBotOptions } from "./bot.js"; +import type { TelegramContext, TelegramStreamMode } from "./bot/types.js"; +import { + buildTelegramMessageContext, + type BuildTelegramMessageContextParams, + type TelegramMediaRef, +} from "./bot-message-context.js"; import { dispatchTelegramMessage } from "./bot-message-dispatch.js"; -export const createTelegramMessageProcessor = (deps) => { +/** Dependencies injected once when creating the message processor. */ +type TelegramMessageProcessorDeps = Omit< + BuildTelegramMessageContextParams, + "primaryCtx" | "allMedia" | "storeAllowFrom" | "options" +> & { + telegramCfg: TelegramAccountConfig; + runtime: RuntimeEnv; + replyToMode: ReplyToMode; + streamMode: TelegramStreamMode; + textLimit: number; + opts: Pick; + resolveBotTopicsEnabled: (ctx: TelegramContext) => boolean | Promise; +}; + +export const createTelegramMessageProcessor = (deps: TelegramMessageProcessorDeps) => { const { bot, cfg, @@ -26,7 +48,12 @@ export const createTelegramMessageProcessor = (deps) => { resolveBotTopicsEnabled, } = deps; - return async (primaryCtx, allMedia, storeAllowFrom, options) => { + return async ( + primaryCtx: TelegramContext, + allMedia: TelegramMediaRef[], + storeAllowFrom: string[], + options?: { messageIdOverride?: string; forceWasMentioned?: boolean }, + ) => { const context = await buildTelegramMessageContext({ primaryCtx, allMedia,