openclaw
Version:
Multi-channel AI gateway with extensible messaging integrations
26 lines (25 loc) • 965 B
JavaScript
import { r as asNullableRecord } from "../../record-coerce-DItp3I4t.js";
import "../../string-coerce-runtime-GQa0ehRA.js";
//#region extensions/file-transfer/doctor-contract-api.ts
function hasLegacyPositivePolicy(value) {
const config = asNullableRecord(value);
if (!config || config.policyVersion === 2) return false;
const nodes = asNullableRecord(config.nodes);
if (!nodes) return false;
return Object.values(nodes).some((rawNode) => {
const node = asNullableRecord(rawNode);
return Boolean(node && (Array.isArray(node.allowReadPaths) && node.allowReadPaths.length > 0 || Array.isArray(node.allowWritePaths) && node.allowWritePaths.length > 0));
});
}
const legacyConfigRules = [{
path: [
"plugins",
"entries",
"file-transfer",
"config"
],
message: "File-transfer permissions need review and remain inactive. Run \"openclaw file-transfer approvals migrate\".",
match: hasLegacyPositivePolicy
}];
//#endregion
export { legacyConfigRules };