Files
openclaw/src/secrets/runtime-config-collectors-tts.ts
2026-03-26 23:23:47 +00:00

58 lines
1.5 KiB
TypeScript

import {
collectSecretInputAssignment,
type ResolverContext,
type SecretDefaults,
} from "./runtime-shared.js";
import { isRecord } from "./shared.js";
function collectProviderApiKeyAssignment(params: {
providerId: string;
providerConfig: Record<string, unknown>;
pathPrefix: string;
defaults: SecretDefaults | undefined;
context: ResolverContext;
active?: boolean;
inactiveReason?: string;
}): void {
collectSecretInputAssignment({
value: params.providerConfig.apiKey,
path: `${params.pathPrefix}.providers.${params.providerId}.apiKey`,
expected: "string",
defaults: params.defaults,
context: params.context,
active: params.active,
inactiveReason: params.inactiveReason,
apply: (value) => {
params.providerConfig.apiKey = value;
},
});
}
export function collectTtsApiKeyAssignments(params: {
tts: Record<string, unknown>;
pathPrefix: string;
defaults: SecretDefaults | undefined;
context: ResolverContext;
active?: boolean;
inactiveReason?: string;
}): void {
const providers = params.tts.providers;
if (isRecord(providers)) {
for (const [providerId, providerConfig] of Object.entries(providers)) {
if (!isRecord(providerConfig)) {
continue;
}
collectProviderApiKeyAssignment({
providerId,
providerConfig,
pathPrefix: params.pathPrefix,
defaults: params.defaults,
context: params.context,
active: params.active,
inactiveReason: params.inactiveReason,
});
}
return;
}
}