UNPKG

openclaw

Version:

Multi-channel AI gateway with extensible messaging integrations

227 lines (226 loc) 9.99 kB
import { v as sortUniqueStrings } from "./string-normalization-DsCfAx8q.js"; import { f as extractPluginInstallRecordsFromInstalledPluginIndex } from "./installed-plugin-index-wrDsjyMD.js"; import { c as hasExplicitPluginIdScope } from "./current-plugin-metadata-snapshot-CmSX4G3W.js"; import { c as resolvePluginMetadataSnapshot } from "./plugin-metadata-snapshot-w-4EjxI4.js"; import { n as resolveManifestActivationPluginIds } from "./activation-planner-ByTGTikc.js"; import { p as getActivePluginRegistryWorkspaceDir } from "./runtime-BL4wZfTq.js"; import { n as getLoadedRuntimePluginRegistry } from "./active-runtime-registry-C5SJbS7x.js"; import { B as resolveProviderConfigApiOwnerHint } from "./gateway-startup-plugin-config-Bq9ZdScF.js"; import { a as resolveDiscoverableProviderOwnerPluginIds, f as resolveOwningPluginIdsForProviderRef, n as resolveActivatableProviderOwnerPluginIds, o as resolveDiscoveredProviderPluginIds, r as resolveBundledProviderCompatPluginIds, s as resolveEnabledProviderPluginIds, u as resolveOwningPluginIdsForModelRefs } from "./providers-DCe4UB6a.js"; import { n as withActivatedPluginIds, t as resolveBundledCompatActivationInputs } from "./activation-context-CigELUUd.js"; import { g as isPluginRegistryLoadInFlight, o as loadOpenClawPlugins, r as getRuntimePluginRegistryForLoadOptions } from "./loader-DPiOPJjR.js"; import { t as getPluginRuntimeGenerationRegistry } from "./generation-scope-Cf83d_iq.js"; import { n as buildPluginRuntimeLoadOptionsFromValues, r as createPluginRuntimeLoaderLogger } from "./load-context-BdeWeJHL.js"; //#region src/plugins/providers.runtime.ts function resolveExplicitProviderOwnerPluginIds(params, snapshot) { return sortUniqueStrings(params.providerRefs.flatMap((provider) => { const plannedPluginIds = resolveManifestActivationPluginIds({ trigger: { kind: "provider", provider }, config: params.config, workspaceDir: params.workspaceDir, env: params.env, manifestRecords: snapshot.manifestRegistry.plugins }); if (plannedPluginIds.length > 0) return plannedPluginIds; const apiOwnerHint = resolveProviderConfigApiOwnerHint({ provider, config: params.config }); if (apiOwnerHint) { const apiOwnerPluginIds = resolveManifestActivationPluginIds({ trigger: { kind: "provider", provider: apiOwnerHint }, config: params.config, workspaceDir: params.workspaceDir, env: params.env, manifestRecords: snapshot.manifestRegistry.plugins }); if (apiOwnerPluginIds.length > 0) return apiOwnerPluginIds; } return resolveOwningPluginIdsForProviderRef({ provider, config: params.config, workspaceDir: params.workspaceDir, env: params.env, manifestRegistry: snapshot.manifestRegistry }) ?? []; })); } function mergeExplicitOwnerPluginIds(providerPluginIds, explicitOwnerPluginIds) { if (explicitOwnerPluginIds.length === 0) return [...providerPluginIds]; return sortUniqueStrings([...providerPluginIds, ...explicitOwnerPluginIds]); } function resolvePluginProviderLoadBase(params, snapshot) { const env = params.env ?? process.env; const workspaceDir = params.workspaceDir ?? getActivePluginRegistryWorkspaceDir(); const providerOwnedPluginIds = params.providerRefs?.length ? resolveExplicitProviderOwnerPluginIds({ providerRefs: params.providerRefs, config: params.config, workspaceDir, env }, snapshot) : []; const modelOwnedPluginIds = params.modelRefs?.length ? resolveOwningPluginIdsForModelRefs({ models: params.modelRefs, config: params.config, workspaceDir, env, manifestRegistry: snapshot.manifestRegistry }) : []; return { env, workspaceDir, requestedPluginIds: hasExplicitPluginIdScope(params.onlyPluginIds) || params.providerRefs?.length || params.modelRefs?.length || providerOwnedPluginIds.length > 0 || modelOwnedPluginIds.length > 0 ? sortUniqueStrings([ ...params.onlyPluginIds ?? [], ...providerOwnedPluginIds, ...modelOwnedPluginIds ]) : void 0, explicitOwnerPluginIds: sortUniqueStrings([...providerOwnedPluginIds, ...modelOwnedPluginIds]), rawConfig: params.config }; } function resolveProviderMetadataLookup(params) { const env = params.env ?? process.env; const workspaceDir = params.workspaceDir ?? getActivePluginRegistryWorkspaceDir(); return { env, workspaceDir, snapshot: params.pluginMetadataSnapshot ?? resolvePluginMetadataSnapshot({ config: params.config ?? {}, workspaceDir, env }) }; } function resolveSetupProviderPluginLoadState(params, base, snapshot) { const setupPluginIds = mergeExplicitOwnerPluginIds(resolveDiscoveredProviderPluginIds({ config: params.config, workspaceDir: base.workspaceDir, env: base.env, onlyPluginIds: base.requestedPluginIds, includeUntrustedWorkspacePlugins: params.includeUntrustedWorkspacePlugins, registry: snapshot.index, manifestRegistry: snapshot.manifestRegistry }), resolveDiscoverableProviderOwnerPluginIds({ pluginIds: base.explicitOwnerPluginIds, config: params.config, workspaceDir: base.workspaceDir, env: base.env, includeUntrustedWorkspacePlugins: params.includeUntrustedWorkspacePlugins, registry: snapshot.index, manifestRegistry: snapshot.manifestRegistry })); if (setupPluginIds.length === 0) return; const setupConfig = withActivatedPluginIds({ config: base.rawConfig, pluginIds: setupPluginIds }); return { loadOptions: buildPluginRuntimeLoadOptionsFromValues({ config: setupConfig, activationSourceConfig: setupConfig, autoEnabledReasons: {}, workspaceDir: base.workspaceDir, env: base.env, logger: createPluginRuntimeLoaderLogger(), manifestRegistry: snapshot.manifestRegistry, installRecords: extractPluginInstallRecordsFromInstalledPluginIndex(snapshot.index) }, { onlyPluginIds: setupPluginIds, pluginSdkResolution: params.pluginSdkResolution, cache: params.cache ?? false, activate: params.activate ?? false }) }; } function resolveRuntimeProviderPluginLoadState(params, base, snapshot) { const explicitOwnerPluginIds = resolveActivatableProviderOwnerPluginIds({ pluginIds: base.explicitOwnerPluginIds, config: base.rawConfig, workspaceDir: base.workspaceDir, env: base.env, includeUntrustedWorkspacePlugins: params.includeUntrustedWorkspacePlugins, registry: snapshot.index, manifestRegistry: snapshot.manifestRegistry }); const runtimeRequestedPluginIds = base.requestedPluginIds !== void 0 ? sortUniqueStrings([...params.onlyPluginIds ?? [], ...explicitOwnerPluginIds]) : void 0; const requestConfig = withActivatedPluginIds({ config: base.rawConfig, pluginIds: explicitOwnerPluginIds }); const activation = resolveBundledCompatActivationInputs({ rawConfig: requestConfig, env: base.env, workspaceDir: base.workspaceDir, applyAutoEnable: params.applyAutoEnable ?? true, discovery: snapshot.discovery, manifestRegistry: snapshot.manifestRegistry, onlyPluginIds: runtimeRequestedPluginIds, resolveBundledPluginIds: resolveBundledProviderCompatPluginIds, activation: "defaults" }); const providerPluginIds = mergeExplicitOwnerPluginIds(resolveEnabledProviderPluginIds({ config: activation.config, workspaceDir: base.workspaceDir, env: base.env, onlyPluginIds: runtimeRequestedPluginIds, registry: snapshot.index, manifestRegistry: snapshot.manifestRegistry }), explicitOwnerPluginIds); return { loadOptions: buildPluginRuntimeLoadOptionsFromValues({ config: activation.config, activationSourceConfig: activation.activationSourceConfig, autoEnabledReasons: activation.autoEnabledReasons, workspaceDir: base.workspaceDir, env: base.env, logger: createPluginRuntimeLoaderLogger(), manifestRegistry: snapshot.manifestRegistry, installRecords: extractPluginInstallRecordsFromInstalledPluginIndex(snapshot.index) }, { onlyPluginIds: providerPluginIds, pluginSdkResolution: params.pluginSdkResolution, cache: params.cache ?? true, activate: params.activate ?? false }) }; } function isPluginProvidersLoadInFlight(params) { const { env, workspaceDir, snapshot } = resolveProviderMetadataLookup(params); const base = resolvePluginProviderLoadBase({ ...params, workspaceDir, env }, snapshot); const loadState = params.mode === "setup" ? resolveSetupProviderPluginLoadState(params, base, snapshot) : resolveRuntimeProviderPluginLoadState(params, base, snapshot); if (!loadState) return false; return isPluginRegistryLoadInFlight(loadState.loadOptions); } function resolvePluginProvidersCore(params) { const { env, workspaceDir, snapshot } = resolveProviderMetadataLookup(params); const base = resolvePluginProviderLoadBase({ ...params, workspaceDir, env }, snapshot); if (params.mode === "setup") { const loadState = resolveSetupProviderPluginLoadState(params, base, snapshot); if (!loadState) return []; if (params.skipIfLoadInFlight && isPluginRegistryLoadInFlight(loadState.loadOptions)) return []; return loadOpenClawPlugins(loadState.loadOptions).providers.map((entry) => Object.assign({}, entry.provider, { pluginId: entry.pluginId })); } const loadState = resolveRuntimeProviderPluginLoadState(params, base, snapshot); const generationRegistry = getPluginRuntimeGenerationRegistry(); if (!generationRegistry && params.skipIfLoadInFlight && isPluginRegistryLoadInFlight(loadState.loadOptions)) return []; const onlyPluginIds = loadState.loadOptions.onlyPluginIds; const registry = onlyPluginIds?.length === 0 ? void 0 : generationRegistry ?? getLoadedRuntimePluginRegistry({ env: base.env, loadOptions: loadState.loadOptions, workspaceDir: base.workspaceDir, requiredPluginIds: onlyPluginIds }) ?? getRuntimePluginRegistryForLoadOptions(loadState.loadOptions); if (!registry) return []; return registry.providers.filter((entry) => !onlyPluginIds || onlyPluginIds.includes(entry.pluginId)).map((entry) => Object.assign({}, entry.provider, { pluginId: entry.pluginId })); } //#endregion export { resolvePluginProvidersCore as n, isPluginProvidersLoadInFlight as t };