UNPKG

openclaw

Version:

Multi-channel AI gateway with extensible messaging integrations

34 lines (33 loc) 1.47 kB
import { r as asNullableRecord } from "./record-coerce-DItp3I4t.js"; //#region src/skills/workshop/config.ts const DEFAULT_CONFIG = { autonomous: { mode: "auto" }, allowSymlinkTargetWrites: false, approvalPolicy: "auto", maxPending: 50, maxSkillBytes: 4e4 }; function readBooleanOr(value, fallback) { return typeof value === "boolean" ? value : fallback; } function readInteger(value, fallback, min, max) { return typeof value === "number" && Number.isFinite(value) ? Math.min(Math.max(Math.trunc(value), min), max) : fallback; } function readAutonomousMode(value, fallback) { return value === "off" || value === "propose" || value === "auto" ? value : fallback; } function readApprovalPolicy(value, fallback) { return value === "pending" || value === "auto" ? value : fallback; } function resolveSkillWorkshopConfig(config) { const raw = asNullableRecord(config?.skills?.workshop) ?? {}; return { autonomous: { mode: readAutonomousMode((asNullableRecord(raw.autonomous) ?? {}).mode, DEFAULT_CONFIG.autonomous.mode) }, allowSymlinkTargetWrites: readBooleanOr(raw.allowSymlinkTargetWrites, DEFAULT_CONFIG.allowSymlinkTargetWrites), approvalPolicy: readApprovalPolicy(raw.approvalPolicy, DEFAULT_CONFIG.approvalPolicy), maxPending: readInteger(raw.maxPending, DEFAULT_CONFIG.maxPending, 1, 200), maxSkillBytes: readInteger(raw.maxSkillBytes, DEFAULT_CONFIG.maxSkillBytes, 1024, 2e5) }; } //#endregion export { resolveSkillWorkshopConfig as t };