openclaw
Version:
Multi-channel AI gateway with extensible messaging integrations
69 lines (68 loc) • 3.77 kB
JavaScript
import { r as resolveDurableWorkerProviderAutoEnabledReasons } from "./worker-provider-manifest-p8jUgDjU.js";
import { t as applyPluginAutoEnable } from "./plugin-auto-enable-Tv_C18cS.js";
import { a as formatPluginVerificationDiagnostic, i as findActiveDegradedPlugin } from "./runtime-degraded-state-B_-lbcPZ.js";
import { r as loadGatewayPlugins } from "./server-plugins-BMUM-t60.js";
import { t as primeConfiguredBindingRegistry } from "./configured-binding-registry-Cuw2WGgE.js";
import { t as mergeActivationSectionsIntoRuntimeConfig } from "./plugin-activation-runtime-config-BOxF5R5M.js";
//#region src/gateway/server-plugin-bootstrap.ts
function logGatewayPluginDiagnostics(params) {
for (const diag of params.diagnostics) {
const degradedPlugin = diag.pluginId ? findActiveDegradedPlugin(diag.pluginId) : void 0;
if (diag.code === "plugin-verification" && degradedPlugin && diag.message === formatPluginVerificationDiagnostic(degradedPlugin.diagnostic)) continue;
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.warn(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,
ambientEnvTriggers: params.ambientEnvTriggers
});
const resolvedConfig = activationSourceConfig === params.cfg ? autoEnabled.config : mergeActivationSectionsIntoRuntimeConfig({
runtimeConfig: params.cfg,
activationConfig: autoEnabled.config
});
const durableReasons = params.pluginLookUpTable ? resolveDurableWorkerProviderAutoEnabledReasons(params.pluginLookUpTable.manifestRegistry, params.pluginLookUpTable.workerProviderIds) : {};
const autoEnabledReasons = {
...autoEnabled.autoEnabledReasons,
...durableReasons
};
const loaded = loadGatewayPlugins({
cfg: resolvedConfig,
activationSourceConfig,
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,
pluginMetadataSnapshot: params.pluginMetadataSnapshot,
channelPluginLoadIntent: params.channelPluginLoadIntent ?? "full",
suppressPluginInfoLogs: params.suppressPluginInfoLogs,
startupTrace: params.startupTrace,
ambientEnvTriggers: params.ambientEnvTriggers,
...params.resolveGatewayContext ? { resolveGatewayContext: params.resolveGatewayContext } : {}
});
primeConfiguredBindingRegistry({ cfg: resolvedConfig });
if ((params.logDiagnostics ?? true) && loaded.pluginRegistry.diagnostics.length > 0) logGatewayPluginDiagnostics({
diagnostics: loaded.pluginRegistry.diagnostics,
log: params.log
});
return loaded;
}
/** Loads gateway plugins during normal gateway startup. */
function loadGatewayStartupPlugins(params) {
return prepareGatewayPluginLoad(params);
}
//#endregion
export { loadGatewayStartupPlugins, prepareGatewayPluginLoad };