refactor: remove plugin sdk facade generator

This commit is contained in:
Peter Steinberger
2026-04-05 09:23:42 +01:00
parent a4b767c89b
commit 8be017fae6
40 changed files with 97 additions and 1341 deletions

View File

@@ -240,17 +240,6 @@ async function readPackedRootPackageJson(archivePath: string): Promise<{
}
}
function readGeneratedFacadeTypeMap(): string {
return readFileSync(
resolve(REPO_ROOT, "src/generated/plugin-sdk-facade-type-map.generated.ts"),
"utf8",
);
}
function buildLegacyPluginSourceAlias(): string {
return ["openclaw", ["plugin", "source"].join("-")].join("/") + "/";
}
function collectExtensionFiles(dir: string): string[] {
const entries = readdirSync(dir, { withFileTypes: true });
const files: string[] = [];
@@ -398,11 +387,6 @@ describe("plugin-sdk package contract guardrails", () => {
}
});
it("keeps generated facade types on package-style module specifiers", () => {
expect(readGeneratedFacadeTypeMap()).not.toContain("../../extensions/");
expect(readGeneratedFacadeTypeMap()).not.toContain(buildLegacyPluginSourceAlias());
});
it("keeps extension sources on public sdk or local package seams", () => {
expect(collectExtensionCoreImportLeaks()).toEqual([]);
});

View File

@@ -165,7 +165,7 @@ function expectSourceOmitsImportPattern(subpath: string, specifier: string) {
function isGeneratedBundledFacadeSubpath(subpath: string): boolean {
const source = readPluginSdkSource(subpath);
return (
source.startsWith("// Generated by scripts/generate-plugin-sdk-facades.mjs.") &&
source.startsWith("// Manual facade.") &&
sourceMentionsIdentifier(source, "loadBundledPluginPublicSurfaceModuleSync")
);
}

View File

@@ -1,5 +1,8 @@
import { resolveStateDir } from "../../config/paths.js";
import { loadBundledPluginPublicSurfaceModuleSync } from "../../plugin-sdk/facade-runtime.js";
import {
generateImage as generateRuntimeImage,
listRuntimeImageGenerationProviders,
} from "../../image-generation/runtime.js";
import { resolveGlobalSingleton } from "../../shared/global-singleton.js";
import {
createLazyRuntimeMethod,
@@ -56,26 +59,10 @@ function createRuntimeMediaUnderstandingFacade(): PluginRuntime["mediaUnderstand
};
}
type RuntimeImageGenerationModule = Pick<
typeof import("../../plugin-sdk/image-generation-runtime.js"),
"generateImage" | "listRuntimeImageGenerationProviders"
>;
let cachedRuntimeImageGenerationModule: RuntimeImageGenerationModule | null = null;
function loadRuntimeImageGenerationModule(): RuntimeImageGenerationModule {
cachedRuntimeImageGenerationModule ??=
loadBundledPluginPublicSurfaceModuleSync<RuntimeImageGenerationModule>({
dirName: "image-generation-core",
artifactBasename: "runtime-api.js",
});
return cachedRuntimeImageGenerationModule;
}
function createRuntimeImageGeneration(): PluginRuntime["imageGeneration"] {
return {
generate: (params) => loadRuntimeImageGenerationModule().generateImage(params),
listProviders: (params) =>
loadRuntimeImageGenerationModule().listRuntimeImageGenerationProviders(params),
generate: (params) => generateRuntimeImage(params),
listProviders: (params) => listRuntimeImageGenerationProviders(params),
};
}

View File

@@ -79,8 +79,8 @@ export type PluginRuntimeCore = {
transcribeAudioFile: typeof import("../../media-understanding/runtime.js").transcribeAudioFile;
};
imageGeneration: {
generate: typeof import("../../plugin-sdk/image-generation-runtime.js").generateImage;
listProviders: typeof import("../../plugin-sdk/image-generation-runtime.js").listRuntimeImageGenerationProviders;
generate: typeof import("../../image-generation/runtime.js").generateImage;
listProviders: typeof import("../../image-generation/runtime.js").listRuntimeImageGenerationProviders;
};
videoGeneration: {
generate: typeof import("../../video-generation/runtime.js").generateVideo;