@sema-agent/core
Version:
Stateless, task-oriented AI agent core
24 lines (23 loc) • 952 B
JavaScript
import { isPlainRecord, safeDataValue } from "./checkpoint-store.js";
import { validatePath } from "./effective-path-target.js";
export { READ_ROOT_CANDIDATE_DIR_MAX } from "./effective-path-target.js";
export function normalizeReadRootCandidate(value) {
if (!isPlainRecord(value))
return undefined;
if (safeDataValue(value, "clearsThisAsk") !== true)
return undefined;
const dir = validatePath(safeDataValue(value, "dir"), { intent: "validate-grant" });
if (dir === undefined)
return undefined;
let covers;
try {
const d = Object.getOwnPropertyDescriptor(value, "covers");
covers = d === undefined ? "absent" : "value" in d && d.value === "exact" ? "exact" : "refuse";
}
catch {
covers = "refuse";
}
if (covers === "refuse")
return undefined;
return covers === "exact" ? { dir, clearsThisAsk: true, covers: "exact" } : { dir, clearsThisAsk: true };
}