openclaw
Version:
Multi-channel AI gateway with extensible messaging integrations
37 lines (36 loc) • 1.88 kB
JavaScript
import { p as resolveUserPath } from "./utils-CCC-BEJH.js";
import { s as normalizePluginsConfig } from "./config-state-CikNNz7T.js";
import { r as getCurrentPluginMetadataSnapshot } from "./current-plugin-metadata-snapshot-CfA_n2Nc.js";
import { u as getActivePluginRuntimeSubagentMode } from "./runtime-B2ROiq5l.js";
import { t as ensureStandaloneRuntimePluginRegistryLoaded } from "./standalone-runtime-registry-loader-B2kFOc5m.js";
//#region src/agents/runtime-plugins.ts
function resolveStartupPluginIdsFromCurrentSnapshot(params) {
const pluginIds = getCurrentPluginMetadataSnapshot({
config: params.config,
workspaceDir: params.workspaceDir
})?.startup?.pluginIds;
if (!Array.isArray(pluginIds)) return;
return pluginIds.filter((pluginId) => typeof pluginId === "string");
}
/** Ensure standalone runtime plugins are loaded for the current agent context. */
function ensureRuntimePluginsLoaded(params) {
if (params.config && !normalizePluginsConfig(params.config.plugins).enabled) return;
const workspaceDir = typeof params.workspaceDir === "string" && params.workspaceDir.trim() ? resolveUserPath(params.workspaceDir) : void 0;
const startupPluginIds = resolveStartupPluginIdsFromCurrentSnapshot({
config: params.config,
workspaceDir
});
const allowGatewaySubagentBinding = params.allowGatewaySubagentBinding === true || getActivePluginRuntimeSubagentMode() === "gateway-bindable";
ensureStandaloneRuntimePluginRegistryLoaded({
requiredPluginIds: startupPluginIds,
loadOptions: {
config: params.config,
workspaceDir,
...startupPluginIds === void 0 ? {} : { onlyPluginIds: startupPluginIds },
...startupPluginIds === void 0 ? {} : { forceFullRuntimeForChannelPlugins: true },
runtimeOptions: allowGatewaySubagentBinding ? { allowGatewaySubagentBinding: true } : void 0
}
});
}
//#endregion
export { ensureRuntimePluginsLoaded as t };