mirror of
https://github.com/openclaw/openclaw.git
synced 2026-05-18 02:00:46 +00:00
40 lines
1.3 KiB
TypeScript
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);
|
|
}
|