fix(telegram): split runtime and audit types

This commit is contained in:
Vincent Koc
2026-04-10 08:50:26 +01:00
parent 76c2221717
commit 77b108ee7f
5 changed files with 66 additions and 47 deletions

View File

@@ -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";

View File

@@ -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<string, TelegramGroupConfig> | 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<typeof import("./audit-membership-runtime.js")> | null =
null;

View File

@@ -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;
};

View File

@@ -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,

View File

@@ -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;
};
};