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

55 lines
1.6 KiB
TypeScript

import {
applyProviderNativeStreamingUsageCompatWithPlugin,
normalizeProviderConfigWithPlugin,
resolveProviderConfigApiKeyWithPlugin,
} from "../plugins/provider-runtime.js";
import { resolveProviderPluginLookupKey } from "./models-config.providers.policy.lookup.js";
import type { ProviderConfig } from "./models-config.providers.secrets.js";
export function applyProviderNativeStreamingUsagePolicy(
providerKey: string,
provider: ProviderConfig,
): ProviderConfig {
const runtimeProviderKey = resolveProviderPluginLookupKey(providerKey, provider);
return (
applyProviderNativeStreamingUsageCompatWithPlugin({
provider: runtimeProviderKey,
context: {
provider: providerKey,
providerConfig: provider,
},
}) ?? provider
);
}
export function normalizeProviderConfigPolicy(
providerKey: string,
provider: ProviderConfig,
): ProviderConfig {
const runtimeProviderKey = resolveProviderPluginLookupKey(providerKey, provider);
return (
normalizeProviderConfigWithPlugin({
provider: runtimeProviderKey,
context: {
provider: providerKey,
providerConfig: provider,
},
}) ?? provider
);
}
export function resolveProviderConfigApiKeyPolicy(
providerKey: string,
provider?: ProviderConfig,
): ((env: NodeJS.ProcessEnv) => string | undefined) | undefined {
const runtimeProviderKey = resolveProviderPluginLookupKey(providerKey, provider).trim();
return (env) =>
resolveProviderConfigApiKeyWithPlugin({
provider: runtimeProviderKey,
context: {
provider: providerKey,
env,
},
});
}