openclaw
Version:
Multi-channel AI gateway with extensible messaging integrations
75 lines (74 loc) • 3.75 kB
JavaScript
import { t as applyPluginAutoEnable } from "./plugin-auto-enable-pAtqig-B.js";
import { f as pinActivePluginChannelRegistry } from "./runtime-B2ROiq5l.js";
import { c as setPluginSubagentOverridePolicies, n as createGatewaySubagentRuntime, o as loadGatewayPlugins, t as createGatewayNodesRuntime } from "./server-plugins-DUe67FFK.js";
import { t as primeConfiguredBindingRegistry } from "./binding-registry-DEX4J6tW.js";
import { i as setGatewaySubagentRuntime, r as setGatewayNodesRuntime } from "./gateway-bindings-6VdB9O0r.js";
import { t as mergeActivationSectionsIntoRuntimeConfig } from "./plugin-activation-runtime-config-ChqOWNk0.js";
//#region src/gateway/server-plugin-bootstrap.ts
function installGatewayPluginRuntimeEnvironment(cfg) {
setPluginSubagentOverridePolicies(cfg);
setGatewaySubagentRuntime(createGatewaySubagentRuntime());
setGatewayNodesRuntime(createGatewayNodesRuntime());
}
function logGatewayPluginDiagnostics(params) {
for (const diag of params.diagnostics) {
const details = [diag.pluginId ? `plugin=${diag.pluginId}` : null, diag.source ? `source=${diag.source}` : null].filter((entry) => Boolean(entry)).join(", ");
const message = details ? `[plugins] ${diag.message} (${details})` : `[plugins] ${diag.message}`;
if (diag.level === "error") params.log.error(message);
else params.log.info(message);
}
}
/** Prepares gateway plugin runtime and returns the loaded plugin registry state. */
function prepareGatewayPluginLoad(params) {
const activationSourceConfig = params.activationSourceConfig ?? params.cfg;
const autoEnabled = applyPluginAutoEnable({
config: activationSourceConfig,
env: process.env,
...params.pluginLookUpTable?.manifestRegistry ? { manifestRegistry: params.pluginLookUpTable.manifestRegistry } : {},
discovery: params.pluginLookUpTable?.discovery
});
const resolvedConfig = activationSourceConfig === params.cfg ? autoEnabled.config : mergeActivationSectionsIntoRuntimeConfig({
runtimeConfig: params.cfg,
activationConfig: autoEnabled.config
});
installGatewayPluginRuntimeEnvironment(resolvedConfig);
const loaded = loadGatewayPlugins({
cfg: resolvedConfig,
activationSourceConfig,
autoEnabledReasons: autoEnabled.autoEnabledReasons,
workspaceDir: params.workspaceDir,
log: params.log,
...params.coreGatewayHandlers !== void 0 && { coreGatewayHandlers: params.coreGatewayHandlers },
...params.coreGatewayMethodNames !== void 0 && { coreGatewayMethodNames: params.coreGatewayMethodNames },
...params.hostServices !== void 0 && { hostServices: params.hostServices },
baseMethods: params.baseMethods,
pluginIds: params.pluginIds,
pluginLookUpTable: params.pluginLookUpTable,
preferSetupRuntimeForChannelPlugins: params.preferSetupRuntimeForChannelPlugins,
suppressPluginInfoLogs: params.suppressPluginInfoLogs,
startupTrace: params.startupTrace
});
params.beforePrimeRegistry?.(loaded.pluginRegistry);
primeConfiguredBindingRegistry({ cfg: resolvedConfig });
if ((params.logDiagnostics ?? true) && loaded.pluginRegistry.diagnostics.length > 0) logGatewayPluginDiagnostics({
diagnostics: loaded.pluginRegistry.diagnostics,
log: params.log
});
return loaded;
}
/** Loads and pins gateway plugins during normal gateway startup. */
function loadGatewayStartupPlugins(params) {
return prepareGatewayPluginLoad({
...params,
beforePrimeRegistry: pinActivePluginChannelRegistry
});
}
/** Reloads deferred gateway plugins while preserving startup bootstrap behavior. */
function reloadDeferredGatewayPlugins(params) {
return prepareGatewayPluginLoad({
...params,
beforePrimeRegistry: pinActivePluginChannelRegistry
});
}
//#endregion
export { loadGatewayStartupPlugins, prepareGatewayPluginLoad, reloadDeferredGatewayPlugins };