mirror of
https://github.com/openclaw/openclaw.git
synced 2026-10-03 09:39:25 +00:00
* feat(macos): run the private app runtime on the OpenClaw Bun fork * fix(macos): let the bundled runtime load unsigned plugin addons * test(macos): remove obsolete worker pruning closure tests * test(macos): drop stale packaging test imports * test(macos): migrate CI scope cases to runtime paths
51 lines
2.1 KiB
JavaScript
Executable file
51 lines
2.1 KiB
JavaScript
Executable file
#!/usr/bin/env bun
|
|
import assert from "node:assert/strict";
|
|
import fs from "node:fs";
|
|
import { createRequire } from "node:module";
|
|
import path from "node:path";
|
|
import { pathToFileURL } from "node:url";
|
|
|
|
const [packageArg, home] = process.argv.slice(2);
|
|
if (!packageArg || !home) {
|
|
throw new Error("Usage: verify-mac-runtime-fs.mjs <package-root> <proof-home>");
|
|
}
|
|
assert.equal(process.env.HOME, home);
|
|
assert.equal(process.env.TMPDIR, home);
|
|
assert.equal(process.env.FS_SAFE_NATIVE_MODE, "require");
|
|
const packageRoot = fs.realpathSync(packageArg);
|
|
const { root } = await import(
|
|
pathToFileURL(path.join(packageRoot, "dist/plugin-sdk/memory-core-host-engine-fs.js")).href
|
|
);
|
|
const scoped = await root(home);
|
|
const written = "bundled runtime write proof\n";
|
|
const created = "bundled runtime create proof\n";
|
|
fs.writeFileSync(path.join(home, "native-write-proof"), "before replacement\n");
|
|
await scoped.write("native-write-proof", written);
|
|
await scoped.create("native-create-proof", created);
|
|
assert.deepEqual(fs.readFileSync(path.join(home, "native-write-proof")), Buffer.from(written));
|
|
assert.deepEqual(fs.readFileSync(path.join(home, "native-create-proof")), Buffer.from(created));
|
|
|
|
// Resolve from fs-safe's dependency scope, including pnpm's nested install layout.
|
|
const requireFromPackage = createRequire(path.join(packageRoot, "package.json"));
|
|
const requireFromFsSafe = createRequire(
|
|
requireFromPackage.resolve("@openclaw/fs-safe/package.json"),
|
|
);
|
|
const nativeModule = requireFromFsSafe.resolve(
|
|
`@openclaw/fs-safe-${process.platform}-${process.arch}`,
|
|
);
|
|
assert(
|
|
nativeModule.startsWith(packageRoot + path.sep),
|
|
"fs-safe native package is outside the runtime payload",
|
|
);
|
|
const loaded = Object.keys(createRequire(import.meta.url).cache).filter(
|
|
(file) => path.basename(file) === "fs-safe-native.node",
|
|
);
|
|
assert.deepEqual(loaded, [nativeModule], "Installed fs-safe native module path mismatch");
|
|
console.log(
|
|
JSON.stringify({
|
|
architecture: process.arch,
|
|
nativeModule,
|
|
writeBytes: Buffer.byteLength(written),
|
|
createBytes: Buffer.byteLength(created),
|
|
}),
|
|
);
|