UNPKG

@sema-agent/core

Version:

Stateless, task-oriented AI agent core

24 lines (23 loc) • 952 B
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 }; }