Merge rules per key
- Unioned across layers, duplicates dropped, order kept:
styleIgnoreGlobs,allowList.phrases,allowList.patterns,bypass.phrases,bypass.patterns,features.aiWriting.allow,features.aiWriting.packs,features.aiWriting.excludePacks. - Replaced by the higher layer:
ignoreGlobs,features.aiWriting.categories. - Merged one level deep:
features,checks,log,monitor,context,subagentStop,testFilter, andfeatures.aiWriting.optionsper pack id. - Merged by
id:features.dictionary.entries. A higher entry replaces a lower entry with the sameidin place, and new ids go at the end.{ "id": "x", "enabled": false }in a higher layer switches off entryx. enablePatternsanddisablePatternsend as two final lists. Inside one layer, an id in both goes to disable. A higher enable removes the id from a lower disable, and a higher disable removes it from a lower enable.
A config file or a BEC_CONFIG_JSON value that does not parse as a JSON object is skipped. The other layers still apply, and the hook reports the skipped layer once per session in a systemMessage.