UNPKG

openclaw

Version:

Multi-channel AI gateway with extensible messaging integrations

59 lines (58 loc) • 3.02 kB
import { f as getActivePluginRegistryWorkspaceDirFromStateCore } from "./model-ref-shared-DNbjvLQv.mjs"; import { r as normalizeProviderId } from "./provider-id-BIyeXQag.mjs"; import { r as isInstalledPluginEnabled } from "./installed-plugin-index-DyE_yB6z.mjs"; import { u as resolvePluginMetadataSnapshot } from "./plugin-metadata-snapshot-D_ni58BI.mjs"; import { t as resolveRuntimeCliBackends } from "./cli-backends.runtime.js"; //#region src/plugins/setup-registry.runtime.ts /** Metadata lookup helpers for plugin setup CLI backend descriptors. */ function resolveSetupCliBackendSnapshot(params = {}) { if (params.metadataSnapshot) return params.metadataSnapshot; const env = params.env ?? process.env; const workspaceDir = params.workspaceDir ?? getActivePluginRegistryWorkspaceDirFromStateCore(); return resolvePluginMetadataSnapshot({ ...params.config ? { config: params.config } : {}, env, ...workspaceDir ? { workspaceDir } : {}, allowWorkspaceScopedCurrent: true }); } function resolvePluginSetupCliBackendDescriptor(params) { const normalized = normalizeProviderId(params.backend); const snapshot = resolveSetupCliBackendSnapshot(params); const pluginId = snapshot.owners.cliBackends.get(normalized)?.find((id) => isInstalledPluginEnabled(snapshot.index, id, params.config)); const plugin = pluginId ? snapshot.byPluginId.get(pluginId) : void 0; if (!plugin) return; const backendId = [...plugin.cliBackends, ...plugin.setup?.cliBackends ?? []].find((id) => normalizeProviderId(id) === normalized); return backendId ? { pluginId: plugin.id, backend: { id: backendId } } : void 0; } /** Resolve enabled setup CLI backend ids from one metadata snapshot. */ function resolvePluginSetupCliBackendIds(params = {}) { const snapshot = resolveSetupCliBackendSnapshot(params); return snapshot.plugins.flatMap((plugin) => { const ids = plugin.cliBackends.concat(plugin.setup?.cliBackends ?? []); return ids.length > 0 && isInstalledPluginEnabled(snapshot.index, plugin.id, params.config) ? ids : []; }); } //#endregion //#region src/agents/model-selection-cli.ts /** Prepare one CLI-provider lookup for request paths that classify multiple models. */ function prepareCliProviderClassifier(cfg) { const providers = new Set([...resolveRuntimeCliBackends("metadata").map((backend) => backend.id), ...resolvePluginSetupCliBackendIds({ config: cfg })].map(normalizeProviderId)); return (provider) => providers.has(normalizeProviderId(provider)); } /** Return true when a provider id resolves to a configured or plugin CLI backend. */ function isCliProvider(provider, cfg, metadataSnapshot) { const normalized = normalizeProviderId(provider); if (resolveRuntimeCliBackends("metadata").some((backend) => normalizeProviderId(backend.id) === normalized)) return true; if (resolvePluginSetupCliBackendDescriptor({ backend: normalized, config: cfg, metadataSnapshot })) return true; return false; } //#endregion export { prepareCliProviderClassifier as n, isCliProvider as t };