@@ -21,7 +21,7 @@ import {
2121} from "../plugins/plugin-metadata-snapshot.js" ;
2222import { validateJsonSchemaValue } from "../plugins/schema-validator.js" ;
2323import { listConfiguredMemoryRolePluginIds } from "../plugins/slot-resolution.js" ;
24- import { hasKind } from "../plugins/slots.js" ;
24+ import { MEMORY_PLUGIN_SLOT_KEYS , hasKind } from "../plugins/slots.js" ;
2525import { resolveWebSearchInstallCatalogEntries } from "../plugins/web-search-install-catalog.js" ;
2626import { collectUnsupportedSecretRefConfigCandidates } from "../secrets/unsupported-surface-policy.js" ;
2727import {
@@ -45,22 +45,13 @@ import { collectChannelSchemaMetadata } from "./channel-config-metadata.js";
4545import { materializeRuntimeConfig } from "./materialize.js" ;
4646import { collectConfiguredModelRefs } from "./model-refs.js" ;
4747import type { OpenClawConfig , ConfigValidationIssue } from "./types.js" ;
48- import type { PluginSlotsConfig } from "./types.plugins.js" ;
4948import { coerceSecretRef } from "./types.secrets.js" ;
5049import { isBuiltInModelProviderOverlayId } from "./zod-schema.core.js" ;
5150import { OpenClawSchema } from "./zod-schema.js" ;
5251
5352const LEGACY_REMOVED_PLUGIN_IDS = new Set ( [ "google-antigravity-auth" , "google-gemini-cli-auth" ] ) ;
5453const BLOCKED_PLUGIN_CANDIDATE_PREFIX = "blocked plugin candidate:" ;
55- const MEMORY_SLOT_KEYS = [
56- "memory" ,
57- "memory.recall" ,
58- "memory.compaction" ,
59- "memory.capture" ,
60- "memory.dreaming" ,
61- "memory.userModel" ,
62- ] as const satisfies readonly ( keyof PluginSlotsConfig ) [ ] ;
63- const GRANULAR_MEMORY_SLOT_KEYS = MEMORY_SLOT_KEYS . filter ( ( key ) => key !== "memory" ) ;
54+ const GRANULAR_MEMORY_SLOT_KEYS = MEMORY_PLUGIN_SLOT_KEYS . filter ( ( key ) => key !== "memory" ) ;
6455
6556type UnknownIssueRecord = Record < string , unknown > ;
6657type ConfigPathSegment = string | number ;
@@ -1815,7 +1806,7 @@ function validateConfigObjectWithPluginsBase(
18151806
18161807 // Default slot values are inferred; only user-configured slot refs should block startup.
18171808 const pluginSlots = pluginsConfig ?. slots ;
1818- for ( const slotKey of MEMORY_SLOT_KEYS ) {
1809+ for ( const slotKey of MEMORY_PLUGIN_SLOT_KEYS ) {
18191810 const hasExplicitSlot =
18201811 pluginSlots !== undefined && Object . prototype . hasOwnProperty . call ( pluginSlots , slotKey ) ;
18211812 const slotValue = normalizedPlugins . slots [ slotKey ] ;
@@ -1848,7 +1839,7 @@ function validateConfigObjectWithPluginsBase(
18481839 if ( ! agentSlots ) {
18491840 continue ;
18501841 }
1851- for ( const slotKey of MEMORY_SLOT_KEYS ) {
1842+ for ( const slotKey of MEMORY_PLUGIN_SLOT_KEYS ) {
18521843 if ( ! Object . prototype . hasOwnProperty . call ( agentSlots , slotKey ) ) {
18531844 continue ;
18541845 }
0 commit comments