fix(plugins): declare host peer in npm runtime packs

This commit is contained in:
Vincent Koc
2026-05-02 23:17:37 -07:00
parent 25ceffbf25
commit 188c3b74ba
4 changed files with 85 additions and 0 deletions

View File

@@ -59,6 +59,9 @@ function writePublishablePluginPackage(repoDir: string): string {
openclaw: {
extensions: ["./index.ts"],
setupEntry: "./setup-entry.ts",
compat: {
pluginApi: ">=2026.4.30",
},
release: {
publishToNpm: true,
},
@@ -127,6 +130,14 @@ describe("plugin npm package manifest staging", () => {
expect(resolved.changed).toBe(true);
expect(resolved.packageJson).toMatchObject({
files: ["dist/**", "openclaw.plugin.json", "README.md", "SKILL.md", "skills/**"],
peerDependencies: {
openclaw: ">=2026.4.30",
},
peerDependenciesMeta: {
openclaw: {
optional: true,
},
},
openclaw: {
runtimeExtensions: ["./dist/index.js"],
runtimeSetupEntry: "./dist/setup-entry.js",
@@ -141,6 +152,8 @@ describe("plugin npm package manifest staging", () => {
expect(stagedPackageJson.openclaw.runtimeSetupEntry).toBe("./dist/setup-entry.js");
expect(stagedPackageJson.files).toContain("dist/**");
expect(stagedPackageJson.files).toContain("skills/**");
expect(stagedPackageJson.peerDependencies.openclaw).toBe(">=2026.4.30");
expect(stagedPackageJson.peerDependenciesMeta.openclaw.optional).toBe(true);
});
expect(readFileSync(join(packageDir, "package.json"), "utf8")).toBe(originalText);
});

View File

@@ -26,6 +26,10 @@ describe("plugin npm runtime build planning", () => {
expect(plan?.runtimeExtensions.every((entry) => entry.startsWith("./dist/"))).toBe(true);
expect(plan?.runtimeBuildOutputs.every((entry) => entry.startsWith("./dist/"))).toBe(true);
expect(plan?.packageFiles).toContain("dist/**");
expect(plan?.packagePeerMetadata.peerDependencies.openclaw).toBe(
plan?.packageJson.openclaw.compat.pluginApi,
);
expect(plan?.packagePeerMetadata.peerDependenciesMeta.openclaw.optional).toBe(true);
}
});