UNPKG

openclaw

Version:

Multi-channel AI gateway with extensible messaging integrations

36 lines (35 loc) 1.5 kB
import { i as formatExecSecretRefIdValidationMessage, o as isValidExecSecretRefId } from "./ref-contract-D92DqQ-r.js"; //#region src/secrets/exec-resolution-policy.ts /** * Splits refs by whether the current audit/apply mode is allowed to execute secret providers. */ function selectRefsForExecPolicy(params) { const refsToResolve = []; const skippedExecRefs = []; for (const ref of params.refs) { if (ref.source === "exec" && !params.allowExec) { skippedExecRefs.push(ref); continue; } refsToResolve.push(ref); } return { refsToResolve, skippedExecRefs }; } /** * Returns static validation errors for skipped exec refs without resolving the provider command. */ function getSkippedExecRefStaticError(params) { const id = params.ref.id.trim(); const refLabel = `${params.ref.source}:${params.ref.provider}:${id}`; if (!id) return "Error: Secret reference id is empty."; if (!isValidExecSecretRefId(id)) return `Error: ${formatExecSecretRefIdValidationMessage()} (ref: ${refLabel}).`; const providerConfig = params.config.secrets?.providers?.[params.ref.provider]; if (!providerConfig) return `Error: Secret provider "${params.ref.provider}" is not configured (ref: ${refLabel}).`; if (providerConfig.source !== params.ref.source) return `Error: Secret provider "${params.ref.provider}" has source "${providerConfig.source}" but ref requests "${params.ref.source}".`; return null; } //#endregion export { selectRefsForExecPolicy as n, getSkippedExecRefStaticError as t };