Files
openclaw/src/agents/models-config.providers.policy.ts
2026-04-05 17:17:16 +01:00

40 lines
1.3 KiB
TypeScript

import {
applyProviderNativeStreamingUsagePolicy,
normalizeProviderConfigPolicy,
resolveProviderConfigApiKeyPolicy,
} from "./models-config.providers.policy.runtime.js";
import type { ProviderConfig } from "./models-config.providers.secrets.js";
export function applyNativeStreamingUsageCompat(
providers: Record<string, ProviderConfig>,
): Record<string, ProviderConfig> {
let changed = false;
const nextProviders: Record<string, ProviderConfig> = {};
for (const [providerKey, provider] of Object.entries(providers)) {
const nextProvider = applyProviderNativeStreamingUsagePolicy(providerKey, provider);
nextProviders[providerKey] = nextProvider;
changed ||= nextProvider !== provider;
}
return changed ? nextProviders : providers;
}
export function normalizeProviderSpecificConfig(
providerKey: string,
provider: ProviderConfig,
): ProviderConfig {
const normalized = normalizeProviderConfigPolicy(providerKey, provider);
if (normalized && normalized !== provider) {
return normalized;
}
return provider;
}
export function resolveProviderConfigApiKeyResolver(
providerKey: string,
provider?: ProviderConfig,
): ((env: NodeJS.ProcessEnv) => string | undefined) | undefined {
return resolveProviderConfigApiKeyPolicy(providerKey, provider);
}