fix(gateway): share runtime asset list

This commit is contained in:
Ruben Cuevas
2026-05-05 09:59:32 -04:00
committed by Peter Steinberger
parent 28de7cc2e3
commit 795dd2d02e
2 changed files with 26 additions and 3 deletions

View File

@@ -19,7 +19,10 @@ import {
writeBuildStamp as writeDistBuildStamp,
writeRuntimePostBuildStamp as writeDistRuntimePostBuildStamp,
} from "./lib/local-build-metadata.mjs";
import { listStaticExtensionAssetSources } from "./lib/static-extension-assets.mjs";
import {
discoverStaticExtensionAssets,
listStaticExtensionAssetSources,
} from "./lib/static-extension-assets.mjs";
import {
extensionRestartMetadataFiles,
isBuildRelevantRunNodePath,
@@ -418,7 +421,7 @@ const listRequiredOpenClawExtensionAliasOutputs = (deps) => {
const listRequiredStaticExtensionAssetOutputs = (deps) => {
const distRoot = resolveRuntimePostBuildDistRoot(deps);
return runtimePostBuildStaticAssets
return discoverStaticExtensionAssets({ rootDir: deps.cwd, fs: deps.fs })
.filter((asset) => deps.fs.existsSync(path.join(deps.cwd, asset.src)))
.map((asset) => path.join(distRoot, normalizePath(asset.dest).replace(/^dist\//u, "")))
.toSorted((left, right) => left.localeCompare(right));

View File

@@ -50,8 +50,14 @@ const DIST_RUNTIME_EXTENSION_SKILL = "dist-runtime/extensions/demo/skills/SKILL.
const DIST_OPENCLAW_ALIAS_PACKAGE = "dist/extensions/node_modules/openclaw/package.json";
const DIST_OPENCLAW_ALIAS_PLUGIN_SDK_INDEX =
"dist/extensions/node_modules/openclaw/plugin-sdk/index.js";
const ACPX_PACKAGE = "extensions/acpx/package.json";
const ACPX_MCP_PROXY_SOURCE = "extensions/acpx/src/runtime-internals/mcp-proxy.mjs";
const DIST_ACPX_MCP_PROXY = "dist/extensions/acpx/mcp-proxy.mjs";
const ACPX_ERROR_FORMAT_SOURCE = "extensions/acpx/src/runtime-internals/error-format.mjs";
const DIST_ACPX_ERROR_FORMAT = "dist/extensions/acpx/error-format.mjs";
const ACPX_MCP_COMMAND_LINE_SOURCE = "extensions/acpx/src/runtime-internals/mcp-command-line.mjs";
const DIST_ACPX_MCP_COMMAND_LINE = "dist/extensions/acpx/mcp-command-line.mjs";
const DIFFS_PACKAGE = "extensions/diffs/package.json";
const DIFFS_VIEWER_RUNTIME_SOURCE = "extensions/diffs/assets/viewer-runtime.js";
const DIST_DIFFS_VIEWER_RUNTIME = "dist/extensions/diffs/assets/viewer-runtime.js";
const DIST_EXTENSION_MANIFEST = bundledDistPluginFile("demo", "openclaw.plugin.json");
@@ -1734,16 +1740,30 @@ describe("run-node script", () => {
await setupTrackedProject(tmp, {
files: {
[ROOT_SRC]: "export const value = 1;\n",
[ACPX_PACKAGE]:
'{"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',
[ACPX_MCP_PROXY_SOURCE]: "export {};\n",
[DIST_ACPX_MCP_PROXY]: "export {};\n",
[ACPX_ERROR_FORMAT_SOURCE]: "export {};\n",
[DIST_ACPX_ERROR_FORMAT]: "export {};\n",
[ACPX_MCP_COMMAND_LINE_SOURCE]: "export {};\n",
[DIST_ACPX_MCP_COMMAND_LINE]: "export {};\n",
[DIFFS_PACKAGE]:
'{"openclaw":{"build":{"staticAssets":[{"source":"./assets/viewer-runtime.js","output":"assets/viewer-runtime.js"}]}}}\n',
[DIFFS_VIEWER_RUNTIME_SOURCE]: "export {};\n",
[DIST_DIFFS_VIEWER_RUNTIME]: "export {};\n",
[RUNTIME_POSTBUILD_STAMP]: '{"head":"abc123"}\n',
},
buildPaths: [
ROOT_SRC,
ACPX_PACKAGE,
ACPX_MCP_PROXY_SOURCE,
DIST_ACPX_MCP_PROXY,
ACPX_ERROR_FORMAT_SOURCE,
DIST_ACPX_ERROR_FORMAT,
ACPX_MCP_COMMAND_LINE_SOURCE,
DIST_ACPX_MCP_COMMAND_LINE,
DIFFS_PACKAGE,
DIFFS_VIEWER_RUNTIME_SOURCE,
DIST_DIFFS_VIEWER_RUNTIME,
DIST_ENTRY,
@@ -1751,7 +1771,7 @@ describe("run-node script", () => {
RUNTIME_POSTBUILD_STAMP,
],
});
await fs.rm(resolvePath(tmp, DIST_ACPX_MCP_PROXY));
await fs.rm(resolvePath(tmp, DIST_ACPX_MCP_COMMAND_LINE));
const requirement = resolveRuntimePostBuildRequirement(
createBuildRequirementDeps(tmp, {