






















@@ -59,16 +59,10 @@ const DIST_RUNTIME_EXTENSION_SKILL = "dist-runtime/extensions/demo/skills/SKILL.
5959const DIST_OPENCLAW_ALIAS_PACKAGE = "dist/extensions/node_modules/openclaw/package.json";
6060const DIST_OPENCLAW_ALIAS_PLUGIN_SDK_INDEX =
6161"dist/extensions/node_modules/openclaw/plugin-sdk/index.js";
62-const ACPX_PACKAGE = "extensions/acpx/package.json";
63-const ACPX_MCP_PROXY_SOURCE = "extensions/acpx/src/runtime-internals/mcp-proxy.mjs";
64-const DIST_ACPX_MCP_PROXY = "dist/extensions/acpx/mcp-proxy.mjs";
65-const ACPX_ERROR_FORMAT_SOURCE = "extensions/acpx/src/runtime-internals/error-format.mjs";
66-const DIST_ACPX_ERROR_FORMAT = "dist/extensions/acpx/error-format.mjs";
67-const ACPX_MCP_COMMAND_LINE_SOURCE = "extensions/acpx/src/runtime-internals/mcp-command-line.mjs";
68-const DIST_ACPX_MCP_COMMAND_LINE = "dist/extensions/acpx/mcp-command-line.mjs";
6962const DIFFS_PACKAGE = "extensions/diffs/package.json";
7063const DIFFS_VIEWER_RUNTIME_SOURCE = "extensions/diffs/assets/viewer-runtime.js";
7164const DIST_DIFFS_VIEWER_RUNTIME = "dist/extensions/diffs/assets/viewer-runtime.js";
65+const DIST_RUNTIME_DIFFS_VIEWER_RUNTIME = "dist-runtime/extensions/diffs/assets/viewer-runtime.js";
7266const DIST_EXTENSION_MANIFEST = bundledDistPluginFile("demo", "openclaw.plugin.json");
7367const DIST_EXTENSION_PACKAGE = bundledDistPluginFile("demo", "package.json");
7468@@ -1904,38 +1898,25 @@ describe("run-node script", () => {
19041898await setupTrackedProject(tmp, {
19051899files: {
19061900[ROOT_SRC]: "export const value = 1;\n",
1907-[ACPX_PACKAGE]:
1908-'{"openclaw":{"build":{"staticAssets":[{"source":"./src/runtime-internals/mcp-proxy.mjs","output":"mcp-proxy.mjs"},{"source":"./src/runtime-internals/error-format.mjs","output":"error-format.mjs"},{"source":"./src/runtime-internals/mcp-command-line.mjs","output":"mcp-command-line.mjs"}]}}}\n',
1909-[ACPX_MCP_PROXY_SOURCE]: "export {};\n",
1910-[DIST_ACPX_MCP_PROXY]: "export {};\n",
1911-[ACPX_ERROR_FORMAT_SOURCE]: "export {};\n",
1912-[DIST_ACPX_ERROR_FORMAT]: "export {};\n",
1913-[ACPX_MCP_COMMAND_LINE_SOURCE]: "export {};\n",
1914-[DIST_ACPX_MCP_COMMAND_LINE]: "export {};\n",
19151901[DIFFS_PACKAGE]:
19161902'{"openclaw":{"build":{"staticAssets":[{"source":"./assets/viewer-runtime.js","output":"assets/viewer-runtime.js"}]}}}\n',
19171903[DIFFS_VIEWER_RUNTIME_SOURCE]: "export {};\n",
19181904[DIST_DIFFS_VIEWER_RUNTIME]: "export {};\n",
1905+[DIST_RUNTIME_DIFFS_VIEWER_RUNTIME]: "export {};\n",
19191906[RUNTIME_POSTBUILD_STAMP]: '{"head":"abc123"}\n',
19201907},
19211908buildPaths: [
19221909ROOT_SRC,
1923-ACPX_PACKAGE,
1924-ACPX_MCP_PROXY_SOURCE,
1925-DIST_ACPX_MCP_PROXY,
1926-ACPX_ERROR_FORMAT_SOURCE,
1927-DIST_ACPX_ERROR_FORMAT,
1928-ACPX_MCP_COMMAND_LINE_SOURCE,
1929-DIST_ACPX_MCP_COMMAND_LINE,
19301910DIFFS_PACKAGE,
19311911DIFFS_VIEWER_RUNTIME_SOURCE,
19321912DIST_DIFFS_VIEWER_RUNTIME,
1913+DIST_RUNTIME_DIFFS_VIEWER_RUNTIME,
19331914DIST_ENTRY,
19341915BUILD_STAMP,
19351916RUNTIME_POSTBUILD_STAMP,
19361917],
19371918});
1938-await fs.rm(resolvePath(tmp, DIST_ACPX_MCP_COMMAND_LINE));
1919+await fs.rm(resolvePath(tmp, DIST_DIFFS_VIEWER_RUNTIME));
1939192019401921const requirement = resolveRuntimePostBuildRequirement(
19411922createBuildRequirementDeps(tmp, {
@@ -1951,6 +1932,32 @@ describe("run-node script", () => {
19511932});
19521933});
195319341935+it("does not require static asset outputs when the declared source is absent", async () => {
1936+await withTempDir({ prefix: "openclaw-run-node-" }, async (tmp) => {
1937+await setupTrackedProject(tmp, {
1938+files: {
1939+[ROOT_SRC]: "export const value = 1;\n",
1940+[DIFFS_PACKAGE]:
1941+'{"openclaw":{"build":{"staticAssets":[{"source":"./assets/viewer-runtime.js","output":"assets/viewer-runtime.js"}]}}}\n',
1942+[RUNTIME_POSTBUILD_STAMP]: '{"head":"abc123"}\n',
1943+},
1944+buildPaths: [ROOT_SRC, DIFFS_PACKAGE, DIST_ENTRY, BUILD_STAMP, RUNTIME_POSTBUILD_STAMP],
1945+});
1946+1947+const requirement = resolveRuntimePostBuildRequirement(
1948+createBuildRequirementDeps(tmp, {
1949+gitHead: "abc123\n",
1950+gitStatus: "",
1951+}),
1952+);
1953+1954+expect(requirement).toEqual({
1955+shouldSync: false,
1956+reason: "clean",
1957+});
1958+});
1959+});
1960+19541961it("reports missing core runtime postbuild outputs when runtime stamps match HEAD", async () => {
19551962for (const missingPath of [
19561963DIST_PLUGIN_SDK_ROOT_ALIAS,
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。