mirror of
https://github.com/openclaw/openclaw.git
synced 2026-05-05 09:00:21 +00:00
58 lines
1.5 KiB
TypeScript
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;
|
|
}
|
|
}
|