UNPKG

openclaw

Version:

Multi-channel AI gateway with extensible messaging integrations

22 lines (21 loc) 1.28 kB
//#region src/agents/configured-provider-fallback.ts /** Resolve the first configured provider/model that can replace a missing default. */ function resolveConfiguredProviderFallback(params) { const configuredProviders = params.cfg.models?.providers; if (!configuredProviders || typeof configuredProviders !== "object") return null; const defaultProviderConfig = configuredProviders[params.defaultProvider]; const defaultModel = params.defaultModel?.trim(); const defaultProviderHasDefaultModel = Boolean(defaultProviderConfig) && Boolean(defaultModel) && Array.isArray(defaultProviderConfig.models) && defaultProviderConfig.models.some((model) => model?.id === defaultModel); if (defaultProviderConfig && (!defaultModel || defaultProviderHasDefaultModel)) return null; const availableProvider = Object.entries(configuredProviders).find(([, providerCfg]) => providerCfg && Array.isArray(providerCfg.models) && providerCfg.models.length > 0 && providerCfg.models[0]?.id); if (!availableProvider) return null; const [provider, providerCfg] = availableProvider; const models = providerCfg.models; if (!Array.isArray(models) || !models[0]?.id) return null; return { provider, model: models[0].id }; } //#endregion export { resolveConfiguredProviderFallback as t };