UNPKG

openclaw

Version:

Multi-channel AI gateway with extensible messaging integrations

85 lines (84 loc) 4.37 kB
import { r as normalizeProviderId } from "./provider-id-DMd-TDFp.js"; import { a as resolveMergedModelProviderModels, r as resolveMergedModelProviderConfig, t as createModelProviderRouteOverrideResolver } from "./model-provider-config-DX4Bzd5F.js"; import { t as projectConfigOntoRuntimeSourceSnapshot } from "./runtime-source-projection-DOHmC11j.js"; import { t as resolveDirectBundledProviderPolicySurface } from "./provider-policy-surface-D4OLLhsN.js"; //#region src/plugins/provider-model-routes.ts /** Generic adapter for provider-owned model route public artifacts. */ /** Resolves provider-owned catalog id equivalence without loading its runtime. */ function resolveProviderModelCatalogId(params) { const provider = normalizeProviderId(params.provider); const normalized = (params.surface === void 0 ? resolveDirectBundledProviderPolicySurface(provider) : params.surface)?.normalizeModelCatalogId?.({ provider, modelId: params.modelId }); return typeof normalized === "string" && normalized.trim() ? normalized.trim() : null; } function normalizeModelId(provider, modelId, surface) { const trimmed = modelId?.trim(); if (!trimmed) return; const canonical = surface?.normalizeModelCatalogId?.({ provider, modelId: trimmed }); return typeof canonical === "string" && canonical.trim() ? canonical.trim() : trimmed; } function projectConfiguredModelRoute(model) { return { ...Object.hasOwn(model, "api") ? { api: model.api } : {}, ...Object.hasOwn(model, "baseUrl") ? { baseUrl: model.baseUrl } : {} }; } /** Captures one provider artifact and config view for repeated row resolution. */ function createProviderModelRoutesResolver(params) { const provider = normalizeProviderId(params.provider); if (!provider) return () => null; const surface = params.surface === void 0 ? resolveDirectBundledProviderPolicySurface(provider) : params.surface; const resolveModelRoutes = surface?.resolveModelRoutes; if (!resolveModelRoutes) return () => null; const providerConfig = resolveMergedModelProviderConfig(params.config, provider); const authoredConfig = params.config ? projectConfigOntoRuntimeSourceSnapshot(params.config) : void 0; const configuredProvider = providerConfig ? { api: providerConfig.api, baseUrl: providerConfig.baseUrl } : void 0; const canonicalizeModelId = (modelId) => normalizeModelId(provider, modelId, surface) ?? modelId.trim(); const configuredModels = new Map(Array.from(resolveMergedModelProviderModels({ models: providerConfig?.models, normalizeModelId: canonicalizeModelId }), ([modelId, model]) => [modelId, projectConfiguredModelRoute(model)])); const resolveRouteOverridePresence = params.requestTransportOverrides === "present" ? () => "present" : createModelProviderRouteOverrideResolver({ provider, authoredConfig, canonicalizeModelId }); const providerRouteOverridePresence = resolveRouteOverridePresence(); const routeOverridePresenceByModel = new Map(Array.from(configuredModels.keys(), (modelId) => [modelId, resolveRouteOverridePresence(modelId)])); const env = params.env ?? process.env; return (observed) => { const modelId = normalizeModelId(provider, observed?.modelId, surface); const configuredModel = modelId ? configuredModels.get(modelId) : void 0; const requestTransportOverrides = modelId ? routeOverridePresenceByModel.get(modelId) ?? providerRouteOverridePresence : providerRouteOverridePresence; const observedRoutes = observed?.observedRoutes?.filter((route) => route.api != null || route.baseUrl !== void 0 && route.baseUrl !== null); return resolveModelRoutes({ provider, ...modelId ? { modelId } : {}, requestTransportOverrides, ...configuredModel ? { configuredModel } : {}, ...configuredProvider ? { configuredProvider } : {}, env, ...observedRoutes && observedRoutes.length > 0 ? { observedRoutes } : {} }) ?? null; }; } /** Resolves one model route through its bundled provider public artifact. */ function resolveProviderModelRoutes(params) { return createProviderModelRoutesResolver(params)({ modelId: params.modelId, observedRoutes: params.api != null || params.baseUrl !== void 0 && params.baseUrl !== null ? [{ api: params.api, baseUrl: params.baseUrl }] : void 0 }); } //#endregion export { resolveProviderModelCatalogId as n, resolveProviderModelRoutes as r, createProviderModelRoutesResolver as t };