




















@@ -5,6 +5,7 @@ import { describe, expect, it } from "vitest";
55import { listBundledPluginPackArtifacts } from "../scripts/lib/bundled-plugin-build-entries.mjs";
66import { listPluginSdkDistArtifacts } from "../scripts/lib/plugin-sdk-entries.mjs";
77import { WORKSPACE_TEMPLATE_PACK_PATHS } from "../scripts/lib/workspace-bootstrap-smoke.mjs";
8+import { collectInstalledRootDependencyManifestErrors } from "../scripts/openclaw-npm-postpublish-verify.ts";
89import {
910collectAppcastSparkleVersionErrors,
1011collectBundledExtensionManifestErrors,
@@ -277,6 +278,62 @@ describe("bundled plugin root runtime mirrors", () => {
277278}
278279});
279280281+it("does not require root deps for root chunks sourced from the owning installed plugin", () => {
282+const tempRoot = mkdtempSync(join(tmpdir(), "openclaw-root-owned-installed-"));
283+284+try {
285+mkdirSync(join(tempRoot, "dist", "extensions", "memory-lancedb"), { recursive: true });
286+writeFileSync(
287+join(tempRoot, "package.json"),
288+`{"name":"openclaw","dependencies":{}}\n`,
289+"utf8",
290+);
291+writeFileSync(
292+join(tempRoot, "dist", "extensions", "memory-lancedb", "package.json"),
293+`{"name":"@openclaw/memory-lancedb","dependencies":{"@lancedb/lancedb":"^0.27.2"}}\n`,
294+"utf8",
295+);
296+writeFileSync(
297+join(tempRoot, "dist", "lancedb-runtime-7TYK-Pto.js"),
298+`//#region extensions/memory-lancedb/lancedb-runtime.ts\nimport("@lancedb/lancedb");\n`,
299+"utf8",
300+);
301+302+expect(collectInstalledRootDependencyManifestErrors(tempRoot)).toEqual([]);
303+} finally {
304+rmSync(tempRoot, { recursive: true, force: true });
305+}
306+});
307+308+it("still requires root deps for root-owned installed chunks", () => {
309+const tempRoot = mkdtempSync(join(tmpdir(), "openclaw-root-owned-installed-missing-"));
310+311+try {
312+mkdirSync(join(tempRoot, "dist", "extensions", "memory-lancedb"), { recursive: true });
313+writeFileSync(
314+join(tempRoot, "package.json"),
315+`{"name":"openclaw","dependencies":{}}\n`,
316+"utf8",
317+);
318+writeFileSync(
319+join(tempRoot, "dist", "extensions", "memory-lancedb", "package.json"),
320+`{"name":"@openclaw/memory-lancedb","dependencies":{"@lancedb/lancedb":"^0.27.2"}}\n`,
321+"utf8",
322+);
323+writeFileSync(
324+join(tempRoot, "dist", "root-runtime.js"),
325+`import("@lancedb/lancedb");\n`,
326+"utf8",
327+);
328+329+expect(collectInstalledRootDependencyManifestErrors(tempRoot)).toEqual([
330+"installed package root is missing declared runtime dependency '@lancedb/lancedb' for dist importers: root-runtime.js. Add it to package.json dependencies/optionalDependencies.",
331+]);
332+} finally {
333+rmSync(tempRoot, { recursive: true, force: true });
334+}
335+});
336+280337it("does not compare root mirror versions for plugin manifest deps", () => {
281338expect(
282339collectBundledPluginRootRuntimeMirrorErrors({
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。