openclaw/src/version.ts
2026-02-03 20:19:32 -05:00

34 lines
975 B
TypeScript

import { createRequire } from "node:module";
declare const __OPENCLAW_VERSION__: string | undefined;
function readVersionFromPackageJson(): string | null {
try {
const require = createRequire(import.meta.url);
const pkg = require("../package.json") as { version?: string };
return pkg.version ?? null;
} catch {
return null;
}
}
function readVersionFromBuildInfo(): string | null {
try {
const require = createRequire(import.meta.url);
const info = require("../build-info.json") as { version?: string };
return info.version ?? null;
} catch {
return null;
}
}
// Single source of truth for the current OpenClaw version.
// - Embedded/bundled builds: injected define or env var.
// - Dev/npm builds: package.json.
export const VERSION =
(typeof __OPENCLAW_VERSION__ === "string" && __OPENCLAW_VERSION__) ||
process.env.OPENCLAW_BUNDLED_VERSION ||
readVersionFromPackageJson() ||
readVersionFromBuildInfo() ||
"0.0.0";