openclaw
Version:
Multi-channel AI gateway with extensible messaging integrations
110 lines (109 loc) • 4.36 kB
JavaScript
import { l as normalizeOptionalString } from "./string-coerce-CIXf7egm.js";
import { f as secretRefKey } from "./ref-contract-D92DqQ-r.js";
import { u as resolveConfigSecretRef } from "./resolution-facts-Dks1tbik.js";
import { r as resolveSecretRefValues } from "./resolve-224YoYfx.js";
import { n as describeSecretResolutionOperatorDiagnostic, r as describeSecretResolutionOperatorRecovery } from "./resolve-errors-C2XRFrol.js";
//#region src/gateway/resolve-configured-secret-input-string.ts
function buildUnresolvedReason(params) {
if (params.style === "generic") return `${params.path} SecretRef is unresolved (${params.refLabel}).`;
if (params.kind === "non-string") return `${params.path} SecretRef resolved to a non-string value.`;
if (params.kind === "empty") return `${params.path} SecretRef resolved to an empty value.`;
return `${params.path} SecretRef is unresolved (${params.refLabel}).`;
}
async function resolveConfiguredSecretInputString(params) {
const style = params.unresolvedReasonStyle ?? "generic";
const ref = resolveConfigSecretRef({
config: params.config,
path: params.path,
value: params.value,
defaults: params.config.secrets?.defaults
});
if (!ref) return { value: normalizeOptionalString(params.value) };
const refLabel = `${ref.source}:${ref.provider}:${ref.id}`;
try {
const resolvedValue = (await resolveSecretRefValues([ref], {
config: params.config,
env: params.env,
...params.manifestRegistry ? { manifestRegistry: params.manifestRegistry } : {}
})).get(secretRefKey(ref));
if (typeof resolvedValue !== "string") return { unresolvedRefReason: buildUnresolvedReason({
path: params.path,
style,
kind: "non-string",
refLabel
}) };
const trimmed = normalizeOptionalString(resolvedValue);
if (!trimmed) return { unresolvedRefReason: buildUnresolvedReason({
path: params.path,
style,
kind: "empty",
refLabel
}) };
return { value: trimmed };
} catch (error) {
const operatorDiagnostic = style === "detailed" ? describeSecretResolutionOperatorDiagnostic(error) : void 0;
const operatorRecovery = style === "detailed" ? describeSecretResolutionOperatorRecovery(error) : void 0;
const unresolvedReason = buildUnresolvedReason({
path: params.path,
style,
kind: "unresolved",
refLabel
});
const operatorDetail = [operatorDiagnostic, operatorRecovery].filter(Boolean).join(". ");
return { unresolvedRefReason: operatorDetail ? `${unresolvedReason} ${operatorDetail}.` : unresolvedReason };
}
}
async function resolveConfiguredSecretRefOnlyInputString(params) {
if (!resolveConfigSecretRef({
config: params.config,
path: params.path,
value: params.value,
defaults: params.config.secrets?.defaults
})) return { refConfigured: false };
return {
refConfigured: true,
...await resolveConfiguredSecretInputString({
config: params.config,
env: params.env,
value: params.value,
path: params.path,
...params.manifestRegistry ? { manifestRegistry: params.manifestRegistry } : {},
unresolvedReasonStyle: params.unresolvedReasonStyle
})
};
}
async function resolveConfiguredSecretInputWithFallback(params) {
const resolved = await resolveConfiguredSecretRefOnlyInputString(params);
const configValue = !resolved.refConfigured ? normalizeOptionalString(params.value) : void 0;
if (configValue) return {
value: configValue,
source: "config",
secretRefConfigured: false
};
if (!resolved.refConfigured) {
const fallback = normalizeOptionalString(params.readFallback?.());
if (fallback) return {
value: fallback,
source: "fallback",
secretRefConfigured: false
};
return { secretRefConfigured: false };
}
if (resolved.value) return {
value: resolved.value,
source: "secretRef",
secretRefConfigured: true
};
return {
unresolvedRefReason: resolved.unresolvedRefReason,
secretRefConfigured: true
};
}
async function resolveRequiredConfiguredSecretRefInputString(params) {
const resolved = await resolveConfiguredSecretRefOnlyInputString(params);
if (!resolved.refConfigured) return;
if (resolved.value) return resolved.value;
throw new Error(resolved.unresolvedRefReason ?? `${params.path} resolved to an empty value.`);
}
//#endregion
export { resolveConfiguredSecretInputWithFallback as n, resolveRequiredConfiguredSecretRefInputString as r, resolveConfiguredSecretInputString as t };