feat: add mind model with versioned personality, templates and self-model
Phase 2. Minds are rows with a slug, status (active/disabled/archived), cognitive configuration and a pointer to the current personality version. Personalities are structured (identity, values, traits, communication, behaviour, free text) with a deterministic Brief() used by prompts and the editor preview. Every change appends a personality_versions row protected by the append-only trigger; restore copies an old version forward. Templates carry reusable personalities; minds record their overrides so a template can be re-applied without losing mind-specific edits. The self-model starts with structural limitations the mind cannot drop (no policy changes, no influence over shutdown, no cross-mind access). API, UI (list, overview, editor with sliders/diff/history/import/export, template editor) and noemactl mind/template commands. All mutations are audited with field-level diffs.
This commit is contained in:
@@ -62,6 +62,12 @@
|
||||
if (el && !window.confirm(el.getAttribute("data-confirm"))) { ev.preventDefault(); ev.stopImmediatePropagation(); }
|
||||
}, true);
|
||||
|
||||
// Live value readouts for range inputs.
|
||||
document.querySelectorAll("input[type=range][data-out]").forEach((el) => {
|
||||
const out = el.parentElement.querySelector("output");
|
||||
if (out) el.addEventListener("input", () => (out.value = el.value));
|
||||
});
|
||||
|
||||
// Auto-dismiss flashes.
|
||||
document.querySelectorAll(".flash").forEach((f) => setTimeout(() => f.remove(), 8000));
|
||||
|
||||
|
||||
Reference in New Issue
Block a user