mirror of
https://github.com/openclaw/openclaw.git
synced 2026-05-17 00:10:48 +00:00
fix(plugins): use built code for tool discovery
This commit is contained in:
@@ -183,6 +183,7 @@ export type PluginLoadOptions = {
|
||||
* via package metadata because their setup entry covers the pre-listen startup surface.
|
||||
*/
|
||||
preferSetupRuntimeForChannelPlugins?: boolean;
|
||||
toolDiscovery?: boolean;
|
||||
activate?: boolean;
|
||||
loadModules?: boolean;
|
||||
installBundledRuntimeDeps?: boolean;
|
||||
@@ -621,6 +622,7 @@ function buildCacheKey(params: {
|
||||
forceSetupOnlyChannelPlugins?: boolean;
|
||||
requireSetupEntryForSetupOnlyChannelPlugins?: boolean;
|
||||
preferSetupRuntimeForChannelPlugins?: boolean;
|
||||
toolDiscovery?: boolean;
|
||||
loadModules?: boolean;
|
||||
installBundledRuntimeDeps?: boolean;
|
||||
runtimeSubagentMode?: "default" | "explicit" | "gateway-bindable";
|
||||
@@ -661,6 +663,7 @@ function buildCacheKey(params: {
|
||||
const startupChannelMode =
|
||||
params.preferSetupRuntimeForChannelPlugins === true ? "prefer-setup" : "full";
|
||||
const moduleLoadMode = params.loadModules === false ? "manifest-only" : "load-modules";
|
||||
const discoveryMode = params.toolDiscovery === true ? "tool-discovery" : "default-discovery";
|
||||
const bundledRuntimeDepsMode =
|
||||
params.installBundledRuntimeDeps === false ? "skip-runtime-deps" : "install-runtime-deps";
|
||||
const runtimeSubagentMode = params.runtimeSubagentMode ?? "default";
|
||||
@@ -672,7 +675,7 @@ function buildCacheKey(params: {
|
||||
installs,
|
||||
loadPaths,
|
||||
activationMetadataKey: params.activationMetadataKey ?? "",
|
||||
})}::${scopeKey}::${setupOnlyKey}::${setupOnlyModeKey}::${setupOnlyRequirementKey}::${startupChannelMode}::${moduleLoadMode}::${bundledRuntimeDepsMode}::${runtimeSubagentMode}::${params.pluginSdkResolution ?? "auto"}::${gatewayMethodsKey}::${activationMode}`;
|
||||
})}::${scopeKey}::${setupOnlyKey}::${setupOnlyModeKey}::${setupOnlyRequirementKey}::${startupChannelMode}::${moduleLoadMode}::${discoveryMode}::${bundledRuntimeDepsMode}::${runtimeSubagentMode}::${params.pluginSdkResolution ?? "auto"}::${gatewayMethodsKey}::${activationMode}`;
|
||||
}
|
||||
|
||||
function matchesScopedPluginRequest(params: {
|
||||
@@ -804,6 +807,7 @@ function resolvePluginRegistrationPlan(params: {
|
||||
cfg: OpenClawConfig;
|
||||
env: NodeJS.ProcessEnv;
|
||||
preferSetupRuntimeForChannelPlugins: boolean;
|
||||
toolDiscovery: boolean;
|
||||
}): PluginRegistrationPlan | null {
|
||||
if (params.canLoadScopedSetupOnlyChannelPlugin) {
|
||||
return {
|
||||
@@ -823,6 +827,15 @@ function resolvePluginRegistrationPlan(params: {
|
||||
if (!params.enableStateEnabled) {
|
||||
return null;
|
||||
}
|
||||
if (params.toolDiscovery) {
|
||||
return {
|
||||
mode: "tool-discovery",
|
||||
loadSetupEntry: false,
|
||||
loadSetupRuntimeEntry: false,
|
||||
runRuntimeCapabilityPolicy: true,
|
||||
runFullActivationOnlyRegistrations: false,
|
||||
};
|
||||
}
|
||||
const loadSetupRuntimeEntry =
|
||||
params.shouldLoadModules &&
|
||||
!params.validateOnly &&
|
||||
@@ -901,6 +914,7 @@ function resolvePluginLoadCacheContext(options: PluginLoadOptions = {}) {
|
||||
forceSetupOnlyChannelPlugins,
|
||||
requireSetupEntryForSetupOnlyChannelPlugins,
|
||||
preferSetupRuntimeForChannelPlugins,
|
||||
toolDiscovery: options.toolDiscovery,
|
||||
loadModules: options.loadModules,
|
||||
installBundledRuntimeDeps: options.installBundledRuntimeDeps,
|
||||
runtimeSubagentMode,
|
||||
@@ -1530,6 +1544,7 @@ export function loadOpenClawPlugins(options: PluginLoadOptions = {}): PluginRegi
|
||||
cfg,
|
||||
env,
|
||||
preferSetupRuntimeForChannelPlugins,
|
||||
toolDiscovery: options.toolDiscovery === true,
|
||||
});
|
||||
|
||||
if (!registrationPlan) {
|
||||
|
||||
Reference in New Issue
Block a user