Add exact KV memory with persona overlays and param priority.
Canonical defaults live in exact.json (UI fills empties without an LLM call); chat session overrides beat file defaults until clear/persona change. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -319,6 +319,9 @@ public sealed class AssistentConfig
|
||||
|
||||
public JObject LoadUi(string personaId) => MergeJsonLayers("ui.json", LayerRoots(personaId));
|
||||
|
||||
/// <summary>Exact (KV) memory: bundled base → persona overlays → disk overlays. Persona keys overwrite base.</summary>
|
||||
public JObject LoadExact(string personaId) => MergeJsonLayers("exact.json", LayerRoots(personaId));
|
||||
|
||||
public JObject LoadModelProfile(string personaId)
|
||||
{
|
||||
JObject assistant = LoadAssistant(personaId);
|
||||
@@ -712,6 +715,7 @@ public sealed class AssistentConfig
|
||||
JObject assistant = LoadAssistant(id);
|
||||
JObject ui = LoadUi(id);
|
||||
JObject model = LoadModelProfile(id);
|
||||
JObject exact = LoadExact(id);
|
||||
var packs = ListPacks(id);
|
||||
var skills = ListSkills(id);
|
||||
var personas = ListPersonaCatalog();
|
||||
@@ -724,6 +728,7 @@ public sealed class AssistentConfig
|
||||
["assistant"] = assistant,
|
||||
["ui"] = ui,
|
||||
["model"] = model,
|
||||
["exact"] = exact,
|
||||
["packs"] = new JArray(packs.Select(p => new JObject
|
||||
{
|
||||
["id"] = p.id,
|
||||
|
||||
Reference in New Issue
Block a user