mirror of
https://github.com/openclaw/openclaw.git
synced 2026-04-19 21:21:10 +00:00
Merged via squash.
Prepared head SHA: dfe29e36bb
Co-authored-by: gumadeiras <5599352+gumadeiras@users.noreply.github.com>
Co-authored-by: gumadeiras <5599352+gumadeiras@users.noreply.github.com>
Reviewed-by: @gumadeiras
56 lines
1.8 KiB
TypeScript
56 lines
1.8 KiB
TypeScript
import type { OpenClawConfig } from "openclaw/plugin-sdk/config-runtime";
|
|
import { detectLegacyMatrixCrypto } from "./legacy-crypto.js";
|
|
import { detectLegacyMatrixState } from "./legacy-state.js";
|
|
import {
|
|
maybeCreateMatrixMigrationSnapshot,
|
|
resolveMatrixMigrationSnapshotMarkerPath,
|
|
resolveMatrixMigrationSnapshotOutputDir,
|
|
type MatrixMigrationSnapshotResult,
|
|
} from "./migration-snapshot-backup.js";
|
|
|
|
export type MatrixMigrationStatus = {
|
|
legacyState: ReturnType<typeof detectLegacyMatrixState>;
|
|
legacyCrypto: ReturnType<typeof detectLegacyMatrixCrypto>;
|
|
pending: boolean;
|
|
actionable: boolean;
|
|
};
|
|
|
|
export function resolveMatrixMigrationStatus(params: {
|
|
cfg: OpenClawConfig;
|
|
env?: NodeJS.ProcessEnv;
|
|
}): MatrixMigrationStatus {
|
|
const env = params.env ?? process.env;
|
|
const legacyState = detectLegacyMatrixState({ cfg: params.cfg, env });
|
|
const legacyCrypto = detectLegacyMatrixCrypto({ cfg: params.cfg, env });
|
|
const actionableLegacyState = legacyState !== null && !("warning" in legacyState);
|
|
const actionableLegacyCrypto = legacyCrypto.plans.length > 0 && legacyCrypto.inspectorAvailable;
|
|
return {
|
|
legacyState,
|
|
legacyCrypto,
|
|
pending:
|
|
legacyState !== null || legacyCrypto.plans.length > 0 || legacyCrypto.warnings.length > 0,
|
|
actionable: actionableLegacyState || actionableLegacyCrypto,
|
|
};
|
|
}
|
|
|
|
export function hasPendingMatrixMigration(params: {
|
|
cfg: OpenClawConfig;
|
|
env?: NodeJS.ProcessEnv;
|
|
}): boolean {
|
|
return resolveMatrixMigrationStatus(params).pending;
|
|
}
|
|
|
|
export function hasActionableMatrixMigration(params: {
|
|
cfg: OpenClawConfig;
|
|
env?: NodeJS.ProcessEnv;
|
|
}): boolean {
|
|
return resolveMatrixMigrationStatus(params).actionable;
|
|
}
|
|
|
|
export {
|
|
maybeCreateMatrixMigrationSnapshot,
|
|
resolveMatrixMigrationSnapshotMarkerPath,
|
|
resolveMatrixMigrationSnapshotOutputDir,
|
|
};
|
|
export type { MatrixMigrationSnapshotResult };
|