UNPKG

openclaw

Version:

Multi-channel AI gateway with extensible messaging integrations

69 lines (68 loc) 4.08 kB
import { a as normalizeLowercaseStringOrEmpty } from "./string-coerce-mnp54Vah.js"; import { i as normalizeProviderId } from "./provider-id-Dq06Bcx6.js"; import { _ as normalizeConfiguredProviderCatalogModelId$1, b as normalizeStaticProviderModelIdWithPolicies, g as normalizeBuiltInProviderModelId, h as collectManifestModelIdNormalizationPolicies, v as normalizeConfiguredProviderCatalogModelRef } from "./current-plugin-metadata-snapshot-CfA_n2Nc.js"; import { t as normalizeProviderModelIdWithManifest } from "./manifest-model-id-normalization-CyZpftw0.js"; //#region src/agents/model-ref-shared.ts /** * Shared provider/model reference normalization for static catalogs, * allowlists, and display paths. Manifest policies are optional so tests can * isolate built-in normalization behavior. */ /** Join provider and model into the canonical provider/model key. */ function modelKey(provider, model) { const providerId = provider.trim(); const modelId = model.trim(); if (!providerId) return modelId; if (!modelId) return providerId; return normalizeLowercaseStringOrEmpty(modelId).startsWith(`${normalizeLowercaseStringOrEmpty(providerId)}/`) ? modelId : `${providerId}/${modelId}`; } /** Normalize a static provider model ID with built-in and optional manifest policy. */ function normalizeStaticProviderModelId(provider, model, options = {}) { const normalizedProvider = normalizeProviderId(provider); if (options.allowManifestNormalization === false) return normalizeBuiltInProviderModelId(normalizedProvider, model); if (options.manifestPlugins) return normalizeStaticProviderModelIdWithPolicies(normalizedProvider, model, collectManifestModelIdNormalizationPolicies(options.manifestPlugins)); return normalizeBuiltInProviderModelId(normalizedProvider, normalizeProviderModelIdWithManifest({ provider: normalizedProvider, context: { provider: normalizedProvider, modelId: model } }) ?? model); } /** Normalize a configured catalog model ID for comparisons against provider catalogs. */ function normalizeConfiguredProviderCatalogModelId(provider, model, options = {}) { if (options.allowManifestNormalization === false) return normalizeConfiguredProviderCatalogModelId$1(provider, model, /* @__PURE__ */ new Map()); if (options.manifestPlugins) return normalizeConfiguredProviderCatalogModelId$1(provider, model, collectManifestModelIdNormalizationPolicies(options.manifestPlugins)); return normalizeConfiguredProviderCatalogModelRef(normalizeStaticProviderModelId(provider, model, options)); } function parseStaticModelRef(raw, defaultProvider) { const trimmed = raw.trim(); if (!trimmed) return null; const slash = trimmed.indexOf("/"); const providerRaw = slash === -1 ? defaultProvider : trimmed.slice(0, slash).trim(); const modelRaw = slash === -1 ? trimmed : trimmed.slice(slash + 1).trim(); if (!providerRaw || !modelRaw) return null; const provider = normalizeProviderId(providerRaw); return { provider, model: normalizeStaticProviderModelId(provider, modelRaw) }; } /** Resolve an allowlist entry to a canonical provider/model key. */ function resolveStaticAllowlistModelKey(raw, defaultProvider) { const parsed = parseStaticModelRef(raw, defaultProvider); if (!parsed) return null; return modelKey(parsed.provider, parsed.model); } /** Preserve literal provider/model refs that already include a provider prefix twice. */ function formatLiteralProviderPrefixedModelRef(provider, modelRef) { const providerId = normalizeProviderId(provider); const trimmedRef = modelRef.trim(); if (!providerId || !trimmedRef) return trimmedRef; const normalizedRef = normalizeLowercaseStringOrEmpty(trimmedRef); const literalPrefix = `${providerId}/${providerId}/`; if (normalizedRef.startsWith(literalPrefix)) return trimmedRef; return normalizedRef.startsWith(`${providerId}/`) ? `${providerId}/${trimmedRef}` : trimmedRef; } //#endregion export { resolveStaticAllowlistModelKey as a, normalizeStaticProviderModelId as i, modelKey as n, normalizeConfiguredProviderCatalogModelId as r, formatLiteralProviderPrefixedModelRef as t };