fix(plugin-sdk): keep compat facades out of core graph

This commit is contained in:
Peter Steinberger
2026-04-29 05:54:29 +01:00
parent 7994833fac
commit 07104c80b3
2 changed files with 77 additions and 10 deletions

View File

@@ -12,10 +12,6 @@ import {
} from "./facade-loader.js";
import { getRuntimeConfig, getRuntimeConfigSnapshot } from "./runtime-config-snapshot.js";
export type {
DiscordComponentBuildResult,
DiscordComponentMessageSpec,
} from "../../extensions/discord/api.js";
export type { ChannelMessageActionAdapter, ChannelMessageActionName } from "./channel-contract.js";
export type { ChannelPlugin } from "./channel-core.js";
export type { OpenClawConfig } from "./config-types.js";
@@ -41,6 +37,43 @@ export { DiscordConfigSchema } from "./bundled-channel-config-schema.js";
export type DiscordAccountConfig = NonNullable<NonNullable<OpenClawConfig["channels"]>["discord"]>;
export type DiscordComponentMessageSpec = {
text?: string;
reusable?: boolean;
container?: {
accentColor?: string | number;
spoiler?: boolean;
};
blocks?: unknown[];
modal?: unknown;
};
export type DiscordComponentBuildResult = {
components: unknown[];
entries: unknown[];
modals: unknown[];
};
export type DiscordComponentSendOpts = {
cfg?: OpenClawConfig;
accountId?: string;
replyTo?: string;
files?: unknown;
mediaReadFile?: (filePath: string) => Promise<Buffer>;
filename?: string;
textLimit?: number;
maxLinesPerMessage?: number;
tableMode?: unknown;
chunkMode?: unknown;
[key: string]: unknown;
};
export type DiscordComponentSendResult = {
id?: string;
channel_id?: string;
[key: string]: unknown;
};
export type ResolvedDiscordAccount = {
accountId: string;
enabled: boolean;
@@ -70,9 +103,29 @@ type DirectoryConfigParams = {
accountId?: string | null;
};
type BuildDiscordComponentMessage = (params: {
spec: DiscordComponentMessageSpec;
fallbackText?: string;
sessionKey?: string;
agentId?: string;
accountId?: string;
}) => DiscordComponentBuildResult;
type EditDiscordComponentMessage = (
to: string,
messageId: string,
spec: DiscordComponentMessageSpec,
opts: DiscordComponentSendOpts,
) => Promise<DiscordComponentSendResult>;
type RegisterBuiltDiscordComponentMessage = (params: {
buildResult: DiscordComponentBuildResult;
messageId: string;
}) => void;
type DiscordApiFacadeModule = {
collectDiscordStatusIssues: (accounts: ChannelAccountSnapshot[]) => ChannelStatusIssue[];
buildDiscordComponentMessage: typeof import("../../extensions/discord/api.js").buildDiscordComponentMessage;
buildDiscordComponentMessage: BuildDiscordComponentMessage;
discordOnboardingAdapter?: NonNullable<ChannelPlugin<ResolvedDiscordAccount>["setup"]>;
inspectDiscordAccount: (params: { cfg: OpenClawConfig; accountId?: string | null }) => unknown;
listDiscordAccountIds: (cfg: OpenClawConfig) => string[];
@@ -95,8 +148,8 @@ type DiscordApiFacadeModule = {
};
type DiscordRuntimeFacadeModule = {
editDiscordComponentMessage: typeof import("../../extensions/discord/runtime-api.js").editDiscordComponentMessage;
registerBuiltDiscordComponentMessage: typeof import("../../extensions/discord/runtime-api.js").registerBuiltDiscordComponentMessage;
editDiscordComponentMessage: EditDiscordComponentMessage;
registerBuiltDiscordComponentMessage: RegisterBuiltDiscordComponentMessage;
autoBindSpawnedDiscordSubagent: (params: {
cfg: OpenClawConfig;
accountId?: string;

View File

@@ -1,10 +1,24 @@
import type { OpenClawConfig } from "./config-types.js";
import { loadBundledPluginPublicSurfaceModuleSync } from "./facade-loader.js";
export type { ResolvedTelegramAccount } from "../../extensions/telegram/api.js";
export type TelegramAccountConfig = NonNullable<
NonNullable<OpenClawConfig["channels"]>["telegram"]
>;
export type ResolvedTelegramAccount = {
accountId: string;
enabled: boolean;
name?: string;
token: string;
tokenSource: "env" | "tokenFile" | "config" | "none";
config: TelegramAccountConfig;
};
type TelegramAccountFacadeModule = {
resolveTelegramAccount: typeof import("../../extensions/telegram/api.js").resolveTelegramAccount;
resolveTelegramAccount: (params: {
cfg: OpenClawConfig;
accountId?: string | null;
}) => ResolvedTelegramAccount;
};
function loadTelegramAccountFacadeModule(): TelegramAccountFacadeModule {
@@ -21,6 +35,6 @@ function loadTelegramAccountFacadeModule(): TelegramAccountFacadeModule {
export function resolveTelegramAccount(params: {
cfg: OpenClawConfig;
accountId?: string | null;
}): ReturnType<TelegramAccountFacadeModule["resolveTelegramAccount"]> {
}): ResolvedTelegramAccount {
return loadTelegramAccountFacadeModule().resolveTelegramAccount(params);
}