diff --git a/extensions/telegram/src/audit-membership-runtime.ts b/extensions/telegram/src/audit-membership-runtime.ts index 25feaf487ba..989e92980f6 100644 --- a/extensions/telegram/src/audit-membership-runtime.ts +++ b/extensions/telegram/src/audit-membership-runtime.ts @@ -5,7 +5,7 @@ import type { AuditTelegramGroupMembershipParams, TelegramGroupMembershipAudit, TelegramGroupMembershipAuditEntry, -} from "./audit.js"; +} from "./audit.types.js"; import { resolveTelegramApiBase, resolveTelegramFetch } from "./fetch.js"; import { makeProxyFetch } from "./proxy.js"; diff --git a/extensions/telegram/src/audit.ts b/extensions/telegram/src/audit.ts index 03ff16071e3..9bfeb43080a 100644 --- a/extensions/telegram/src/audit.ts +++ b/extensions/telegram/src/audit.ts @@ -1,24 +1,14 @@ import type { TelegramGroupConfig } from "openclaw/plugin-sdk/config-runtime"; -import type { TelegramNetworkConfig } from "openclaw/plugin-sdk/config-runtime"; import { normalizeOptionalString } from "openclaw/plugin-sdk/text-runtime"; - -export type TelegramGroupMembershipAuditEntry = { - chatId: string; - ok: boolean; - status?: string | null; - error?: string | null; - matchKey?: string; - matchSource?: "id"; -}; - -export type TelegramGroupMembershipAudit = { - ok: boolean; - checkedGroups: number; - unresolvedGroups: number; - hasWildcardUnmentionedGroups: boolean; - groups: TelegramGroupMembershipAuditEntry[]; - elapsedMs: number; -}; +export type { + AuditTelegramGroupMembershipParams, + TelegramGroupMembershipAudit, + TelegramGroupMembershipAuditEntry, +} from "./audit.types.js"; +import type { + AuditTelegramGroupMembershipParams, + TelegramGroupMembershipAudit, +} from "./audit.types.js"; export function collectTelegramUnmentionedGroupIds( groups: Record | undefined, @@ -61,16 +51,6 @@ export function collectTelegramUnmentionedGroupIds( return { groupIds, unresolvedGroups, hasWildcardUnmentionedGroups }; } -export type AuditTelegramGroupMembershipParams = { - token: string; - botId: number; - groupIds: string[]; - proxyUrl?: string; - network?: TelegramNetworkConfig; - apiRoot?: string; - timeoutMs: number; -}; - let auditMembershipRuntimePromise: Promise | null = null; diff --git a/extensions/telegram/src/audit.types.ts b/extensions/telegram/src/audit.types.ts new file mode 100644 index 00000000000..198a5d197e7 --- /dev/null +++ b/extensions/telegram/src/audit.types.ts @@ -0,0 +1,29 @@ +import type { TelegramNetworkConfig } from "openclaw/plugin-sdk/config-runtime"; + +export type TelegramGroupMembershipAuditEntry = { + chatId: string; + ok: boolean; + status?: string | null; + error?: string | null; + matchKey?: string; + matchSource?: "id"; +}; + +export type TelegramGroupMembershipAudit = { + ok: boolean; + checkedGroups: number; + unresolvedGroups: number; + hasWildcardUnmentionedGroups: boolean; + groups: TelegramGroupMembershipAuditEntry[]; + elapsedMs: number; +}; + +export type AuditTelegramGroupMembershipParams = { + token: string; + botId: number; + groupIds: string[]; + proxyUrl?: string; + network?: TelegramNetworkConfig; + apiRoot?: string; + timeoutMs: number; +}; diff --git a/extensions/telegram/src/runtime.ts b/extensions/telegram/src/runtime.ts index db0b9665f7a..e9f875d27ad 100644 --- a/extensions/telegram/src/runtime.ts +++ b/extensions/telegram/src/runtime.ts @@ -1,21 +1,6 @@ -import type { PluginRuntime } from "openclaw/plugin-sdk/runtime-store"; import { createPluginRuntimeStore } from "openclaw/plugin-sdk/runtime-store"; - -type TelegramChannelRuntime = { - probeTelegram?: typeof import("./probe.js").probeTelegram; - collectTelegramUnmentionedGroupIds?: typeof import("./audit.js").collectTelegramUnmentionedGroupIds; - auditTelegramGroupMembership?: typeof import("./audit.js").auditTelegramGroupMembership; - monitorTelegramProvider?: typeof import("./monitor.js").monitorTelegramProvider; - sendMessageTelegram?: typeof import("./send.js").sendMessageTelegram; - resolveTelegramToken?: typeof import("./token.js").resolveTelegramToken; - messageActions?: typeof import("./channel-actions.js").telegramMessageActions; -}; - -export type TelegramRuntime = PluginRuntime & { - channel: PluginRuntime["channel"] & { - telegram?: TelegramChannelRuntime; - }; -}; +export type { TelegramChannelRuntime, TelegramRuntime } from "./runtime.types.js"; +import type { TelegramRuntime } from "./runtime.types.js"; const { setRuntime: setTelegramRuntime, diff --git a/extensions/telegram/src/runtime.types.ts b/extensions/telegram/src/runtime.types.ts new file mode 100644 index 00000000000..8ec16237054 --- /dev/null +++ b/extensions/telegram/src/runtime.types.ts @@ -0,0 +1,25 @@ +import type { ChannelMessageActionAdapter } from "openclaw/plugin-sdk/channel-contract"; +import type { PluginRuntime } from "openclaw/plugin-sdk/runtime-store"; + +export type TelegramProbeFn = typeof import("./probe.js").probeTelegram; +export type TelegramAuditCollectFn = typeof import("./audit.js").collectTelegramUnmentionedGroupIds; +export type TelegramAuditMembershipFn = typeof import("./audit.js").auditTelegramGroupMembership; +export type TelegramMonitorFn = typeof import("./monitor.js").monitorTelegramProvider; +export type TelegramSendFn = typeof import("./send.js").sendMessageTelegram; +export type TelegramResolveTokenFn = typeof import("./token.js").resolveTelegramToken; + +export type TelegramChannelRuntime = { + probeTelegram?: TelegramProbeFn; + collectTelegramUnmentionedGroupIds?: TelegramAuditCollectFn; + auditTelegramGroupMembership?: TelegramAuditMembershipFn; + monitorTelegramProvider?: TelegramMonitorFn; + sendMessageTelegram?: TelegramSendFn; + resolveTelegramToken?: TelegramResolveTokenFn; + messageActions?: ChannelMessageActionAdapter; +}; + +export type TelegramRuntime = PluginRuntime & { + channel: PluginRuntime["channel"] & { + telegram?: TelegramChannelRuntime; + }; +};