openclaw
Version:
Multi-channel AI gateway with extensible messaging integrations
60 lines (59 loc) • 2.19 kB
JavaScript
import { c as loadOpenClawPlugins, u as resolvePluginRegistryLoadCacheKey } from "./loader-Dp13N9qc.js";
import { S as setActivePluginRegistry, f as pinActivePluginChannelRegistry, p as pinActivePluginHttpRouteRegistry } from "./runtime-B2ROiq5l.js";
import { n as getLoadedRuntimePluginRegistry } from "./active-runtime-registry-PnN7H8vW.js";
//#region src/plugins/runtime/standalone-runtime-registry-loader.ts
function resolveRuntimeSubagentMode(loadOptions) {
if (loadOptions.runtimeOptions?.allowGatewaySubagentBinding === true) return "gateway-bindable";
if (loadOptions.runtimeOptions?.subagent) return "explicit";
return "default";
}
function installStandaloneRegistry(registry, params) {
setActivePluginRegistry(registry, resolvePluginRegistryLoadCacheKey(params.loadOptions), resolveRuntimeSubagentMode(params.loadOptions), params.loadOptions.workspaceDir);
switch (params.surface) {
case "active": break;
case "channel":
pinActivePluginChannelRegistry(registry);
break;
case "http-route":
pinActivePluginHttpRouteRegistry(registry);
break;
}
}
function ensureStandaloneRuntimePluginRegistryLoaded(params) {
const requiredPluginIds = params.requiredPluginIds ?? params.loadOptions.onlyPluginIds;
const surface = params.surface ?? "active";
if (!params.forceLoad) {
const existing = getLoadedRuntimePluginRegistry({
env: params.loadOptions.env,
loadOptions: params.loadOptions,
workspaceDir: params.loadOptions.workspaceDir,
requiredPluginIds,
surface
});
if (existing) return existing;
}
const registry = loadOpenClawPlugins(params.forceLoad ? {
...params.loadOptions,
cache: false
} : params.loadOptions);
if (params.loadOptions.activate !== false) {
switch (surface) {
case "active": break;
case "channel":
pinActivePluginChannelRegistry(registry);
break;
case "http-route":
pinActivePluginHttpRouteRegistry(registry);
break;
}
return registry;
}
if (params.installRegistry === false) return registry;
installStandaloneRegistry(registry, {
loadOptions: params.loadOptions,
surface
});
return registry;
}
//#endregion
export { ensureStandaloneRuntimePluginRegistryLoaded as t };