2026-03-16 00:24:40 -07:00
|
|
|
import {
|
|
|
|
|
auditTelegramGroupMembership,
|
|
|
|
|
collectTelegramUnmentionedGroupIds,
|
|
|
|
|
} from "../../../extensions/telegram/src/audit.js";
|
2026-03-16 01:05:18 -07:00
|
|
|
import { telegramMessageActions } from "../../../extensions/telegram/src/channel-actions.js";
|
2026-03-16 00:24:40 -07:00
|
|
|
import { monitorTelegramProvider } from "../../../extensions/telegram/src/monitor.js";
|
|
|
|
|
import { probeTelegram } from "../../../extensions/telegram/src/probe.js";
|
|
|
|
|
import {
|
|
|
|
|
deleteMessageTelegram,
|
|
|
|
|
editMessageReplyMarkupTelegram,
|
|
|
|
|
editMessageTelegram,
|
|
|
|
|
pinMessageTelegram,
|
|
|
|
|
renameForumTopicTelegram,
|
|
|
|
|
sendMessageTelegram,
|
|
|
|
|
sendPollTelegram,
|
|
|
|
|
sendTypingTelegram,
|
|
|
|
|
unpinMessageTelegram,
|
|
|
|
|
} from "../../../extensions/telegram/src/send.js";
|
2026-03-16 00:40:32 -07:00
|
|
|
import {
|
|
|
|
|
setTelegramThreadBindingIdleTimeoutBySessionKey,
|
|
|
|
|
setTelegramThreadBindingMaxAgeBySessionKey,
|
|
|
|
|
} from "../../../extensions/telegram/src/thread-bindings.js";
|
2026-03-16 00:24:40 -07:00
|
|
|
import { resolveTelegramToken } from "../../../extensions/telegram/src/token.js";
|
|
|
|
|
import { createTelegramTypingLease } from "./runtime-telegram-typing.js";
|
|
|
|
|
import type { PluginRuntimeChannel } from "./types-channel.js";
|
|
|
|
|
|
|
|
|
|
export function createRuntimeTelegram(): PluginRuntimeChannel["telegram"] {
|
|
|
|
|
return {
|
|
|
|
|
auditGroupMembership: auditTelegramGroupMembership,
|
|
|
|
|
collectUnmentionedGroupIds: collectTelegramUnmentionedGroupIds,
|
|
|
|
|
probeTelegram,
|
|
|
|
|
resolveTelegramToken,
|
|
|
|
|
sendMessageTelegram,
|
|
|
|
|
sendPollTelegram,
|
|
|
|
|
monitorTelegramProvider,
|
|
|
|
|
messageActions: telegramMessageActions,
|
2026-03-16 00:40:32 -07:00
|
|
|
threadBindings: {
|
|
|
|
|
setIdleTimeoutBySessionKey: setTelegramThreadBindingIdleTimeoutBySessionKey,
|
|
|
|
|
setMaxAgeBySessionKey: setTelegramThreadBindingMaxAgeBySessionKey,
|
|
|
|
|
},
|
2026-03-16 00:24:40 -07:00
|
|
|
typing: {
|
|
|
|
|
pulse: sendTypingTelegram,
|
|
|
|
|
start: async ({ to, accountId, cfg, intervalMs, messageThreadId }) =>
|
|
|
|
|
await createTelegramTypingLease({
|
|
|
|
|
to,
|
|
|
|
|
accountId,
|
|
|
|
|
cfg,
|
|
|
|
|
intervalMs,
|
|
|
|
|
messageThreadId,
|
|
|
|
|
pulse: async ({ to, accountId, cfg, messageThreadId }) =>
|
|
|
|
|
await sendTypingTelegram(to, {
|
|
|
|
|
accountId,
|
|
|
|
|
cfg,
|
|
|
|
|
messageThreadId,
|
|
|
|
|
}),
|
|
|
|
|
}),
|
|
|
|
|
},
|
|
|
|
|
conversationActions: {
|
|
|
|
|
editMessage: editMessageTelegram,
|
|
|
|
|
editReplyMarkup: editMessageReplyMarkupTelegram,
|
|
|
|
|
clearReplyMarkup: async (chatIdInput, messageIdInput, opts = {}) =>
|
|
|
|
|
await editMessageReplyMarkupTelegram(chatIdInput, messageIdInput, [], opts),
|
|
|
|
|
deleteMessage: deleteMessageTelegram,
|
|
|
|
|
renameTopic: renameForumTopicTelegram,
|
|
|
|
|
pinMessage: pinMessageTelegram,
|
|
|
|
|
unpinMessage: unpinMessageTelegram,
|
|
|
|
|
},
|
|
|
|
|
};
|
|
|
|
|
}
|