superlocalmemory 4.1.20 → 4.1.22
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude-plugin/marketplace.json +3 -3
- package/CHANGELOG.md +217 -0
- package/README.md +258 -58
- package/package.json +3 -1
- package/plugin/.claude-plugin/plugin.json +2 -2
- package/plugin/.cursor-plugin/plugin.json +24 -0
- package/plugin/CLAUDE.md +3 -3
- package/plugin/agents/slm-governance-advisor.md +1 -1
- package/plugin/agents/slm-loop-runner.md +1 -1
- package/plugin/agents/slm-memory-advisor.md +1 -1
- package/plugin/agents/slm-optimize-advisor.md +1 -1
- package/plugin/assets/logo.svg +36 -0
- package/plugin/cursor-skills/slm-bot-memory/SKILL.md +139 -0
- package/plugin/cursor-skills/slm-getting-started-bot/SKILL.md +138 -0
- package/plugin/cursor-skills/slm-recall/SKILL.md +333 -0
- package/plugin/cursor-skills/slm-remember/SKILL.md +273 -0
- package/plugin/cursor-skills/slm-scope/SKILL.md +176 -0
- package/plugin/cursor-skills/slm-session/SKILL.md +271 -0
- package/plugin/hooks/hooks.json +9 -9
- package/plugin/mcp.cursor.json +23 -0
- package/plugin/requirements-cpu-torch.txt +13 -0
- package/plugin/requirements.txt +1 -1
- package/plugin/scripts/ensure-venv.sh +45 -3
- package/plugin/scripts/slm-launch +93 -9
- package/plugin/scripts/torch-cpu-resolve.sh +86 -0
- package/plugin/skills/slm-bot-memory/SKILL.md +139 -0
- package/plugin/skills/slm-cache/SKILL.md +1 -1
- package/plugin/skills/slm-compress/SKILL.md +1 -1
- package/plugin/skills/slm-getting-started-bot/SKILL.md +138 -0
- package/plugin/skills/slm-governance/SKILL.md +1 -1
- package/plugin/skills/slm-graph/SKILL.md +1 -1
- package/plugin/skills/slm-loop/SKILL.md +1 -1
- package/plugin/skills/slm-mesh/SKILL.md +1 -1
- package/plugin/skills/slm-profile/SKILL.md +5 -4
- package/plugin/skills/slm-recall/SKILL.md +1 -1
- package/plugin/skills/slm-remember/SKILL.md +1 -1
- package/plugin/skills/slm-scope/SKILL.md +1 -1
- package/plugin/skills/slm-session/SKILL.md +1 -1
- package/plugin/skills/slm-status/SKILL.md +1 -1
- package/plugin-src/agents/slm-memory-advisor.md +1 -1
- package/plugin-src/agents/slm-optimize-advisor.md +1 -1
- package/plugin-src/rules/AGENTS.md +3 -3
- package/plugin-src/skills/slm-bot-memory/SKILL.md +139 -0
- package/plugin-src/skills/slm-cache/SKILL.md +1 -1
- package/plugin-src/skills/slm-compress/SKILL.md +1 -1
- package/plugin-src/skills/slm-getting-started-bot/SKILL.md +138 -0
- package/plugin-src/skills/slm-governance/SKILL.md +1 -1
- package/plugin-src/skills/slm-graph/SKILL.md +1 -1
- package/plugin-src/skills/slm-loop/SKILL.md +1 -1
- package/plugin-src/skills/slm-mesh/SKILL.md +1 -1
- package/plugin-src/skills/slm-profile/SKILL.md +5 -4
- package/plugin-src/skills/slm-recall/SKILL.md +1 -1
- package/plugin-src/skills/slm-remember/SKILL.md +1 -1
- package/plugin-src/skills/slm-scope/SKILL.md +1 -1
- package/plugin-src/skills/slm-session/SKILL.md +1 -1
- package/plugin-src/skills/slm-status/SKILL.md +1 -1
- package/scripts/postinstall.js +107 -0
package/README.md
CHANGED
|
@@ -5,15 +5,28 @@
|
|
|
5
5
|
</picture>
|
|
6
6
|
</p>
|
|
7
7
|
|
|
8
|
-
# SuperLocalMemory: local-first memory for AI agents
|
|
8
|
+
# SuperLocalMemory: governed, local-first memory for AI agents
|
|
9
9
|
|
|
10
|
-
Claude Code, Codex, Cursor and other MCP clients
|
|
10
|
+
Claude Code, Codex, Cursor and other MCP clients forget what they learned when a session ends. SuperLocalMemory (SLM) gives them one long-term memory that lives on your machine: it learns from use, enforces who may read and erase what, coordinates many agents, and says "I don't have that" instead of guessing.
|
|
11
|
+
|
|
12
|
+
**Every recall is checked before your agent uses it.** A judge decides whether the memories found actually answer the question: **Laya** runs fully on your Mac, and **Jev** runs online on Windows, Linux and macOS. When they don't answer it, SLM says so instead of handing over a confident wrong answer: a hallucination guard for retrieval ([answer check](#answer-check-laya-and-jev)).
|
|
13
|
+
|
|
14
|
+
In Mode A, core remember and recall make no model-provider call. Anything that sends data out is a choice you make, and the docs say exactly what goes.
|
|
11
15
|
|
|
12
16
|
[](https://pypi.org/project/superlocalmemory/)
|
|
13
17
|
[](https://www.npmjs.com/package/superlocalmemory)
|
|
18
|
+
[](https://pepy.tech/project/superlocalmemory)
|
|
19
|
+
[](https://www.npmjs.com/package/superlocalmemory)
|
|
20
|
+
[](https://github.com/qualixar/superlocalmemory/stargazers)
|
|
14
21
|
[](pyproject.toml)
|
|
15
22
|
[](LICENSE)
|
|
16
|
-
[](#answer-check-laya-and-jev)
|
|
24
|
+
[](https://arxiv.org/abs/2608.08253)
|
|
25
|
+
[](https://arxiv.org/abs/2604.04514)
|
|
26
|
+
[](https://arxiv.org/abs/2603.14588)
|
|
27
|
+
[](https://arxiv.org/abs/2603.02240)
|
|
28
|
+
|
|
29
|
+
**[Install](https://www.superlocalmemory.com/install)** · **[Product walkthrough](https://www.superlocalmemory.com/demo)** · **[Demo video](https://www.youtube.com/watch?v=PMWW_ypsL60)** · **[CLI proof](docs/QUICK_PROOF.md)** · **[Release notes](CHANGELOG.md)**
|
|
17
30
|
|
|
18
31
|
```bash
|
|
19
32
|
npm install -g superlocalmemory # primary route (Node 18+, Python 3.12+); or: pipx install superlocalmemory
|
|
@@ -23,7 +36,7 @@ slm connect cursor # or claude-code, codex, windsurf, zed ... 12
|
|
|
23
36
|
|
|
24
37
|
npm installs SLM into a package-owned virtual environment. The other primary route is pip in a Python virtual environment you activate: `python3 -m venv .venv`, activate it, then `python -m pip install superlocalmemory`. Repository clone: `./scripts/install.sh install` (macOS, Linux) or `.\scripts\install.ps1 -Action Install` (Windows); see [CONTRIBUTING.md](CONTRIBUTING.md).
|
|
25
38
|
|
|
26
|
-
Runs on
|
|
39
|
+
Runs on Windows, Linux and macOS ([platforms](#platform-support)). No Docker, no required graph database, no API key.
|
|
27
40
|
|
|
28
41
|
## 30-second example
|
|
29
42
|
|
|
@@ -49,14 +62,47 @@ $ slm recall "which port does staging postgres use"
|
|
|
49
62
|
1. [0.68] Staging DB moved to Postgres 17 on port 5434.
|
|
50
63
|
```
|
|
51
64
|
|
|
52
|
-
Real output from a fresh Mode A install, trimmed.
|
|
65
|
+
Real output from a fresh Mode A install, trimmed. Scores rank; they are not probabilities. While the embedding model loads, recall says `Incomplete search`.
|
|
66
|
+
|
|
67
|
+
### Watch the product walkthrough
|
|
68
|
+
|
|
69
|
+
[](https://www.youtube.com/watch?v=PMWW_ypsL60)
|
|
70
|
+
|
|
71
|
+
Five minutes: install, setup, recall, cache and compression.
|
|
72
|
+
|
|
73
|
+
### The dashboard
|
|
74
|
+
|
|
75
|
+
Captured from a real install in Mode A, with Laya running on the Mac and a store of fictional project memories. Nothing is mocked: each verdict, score and timing is what SLM returned.
|
|
76
|
+
|
|
77
|
+
| Memories that answer the question | Memories that do not: "I don't have that" |
|
|
78
|
+
|---|---|
|
|
79
|
+
|  |  |
|
|
80
|
+
|
|
81
|
+
| Recall Lab: why each memory was chosen | Every memory with its kind and project |
|
|
82
|
+
|---|---|
|
|
83
|
+
|  |  |
|
|
84
|
+
|
|
85
|
+

|
|
86
|
+
|
|
87
|
+
## Why SuperLocalMemory: the moats
|
|
88
|
+
|
|
89
|
+
A vector store answers "what is similar". AI agent memory must also answer: is this still true, who may see it, can it be erased with proof, and does the agent actually have the answer?
|
|
90
|
+
|
|
91
|
+
**1. Governed memory, not a vector store.** Roles per workspace, personal / shared / global scopes with default-deny cross-profile recall, GDPR erasure with HMAC-verifiable receipts, retention rules and a hash-chained audit log. The [V4 paper](https://arxiv.org/abs/2608.08253) measures what the governed write path costs. Code: `src/superlocalmemory/access/`, `compliance/`.
|
|
92
|
+
|
|
93
|
+
**2. A zero-LLM core built on published math.** Five retrieval channels, fusion and the learned ranker run without a language model; V3 scored 60.4% on LoCoMo with no LLM anywhere ([benchmarks](#benchmarks-v3)). Fisher-information scoring, sheaf contradiction detection and Langevin lifecycle dynamics added 12.7 points ([V3 paper](https://arxiv.org/abs/2603.14588)).
|
|
94
|
+
|
|
95
|
+
**3. It says "I don't have that."** The [answer check](docs/answer-check.md) decides whether the top results answer the question, on your Mac (Laya) or online (Jev), and recall reports `abstained` instead of a confident wrong answer.
|
|
96
|
+
|
|
97
|
+
**4. Memory that learns, and cannot quietly get worse.** A Thompson-sampling bandit tunes channel weights and a LightGBM ranker learns from reported outcomes. A retrained ranker is promoted only after a shadow A/B test on live recalls, and rolled back automatically if NDCG@10 drops 2% or more. Code: `learning/shadow_test.py`, `learning/model_rollback.py`.
|
|
53
98
|
|
|
54
|
-
|
|
99
|
+
**5. Memory with a sense of time.** Every fact records when it happened and when SLM learned it. Ask what was true last month (`--valid-at`) or what SLM knew before a date (`--known-as-of`). Unused memories fade and lose vector precision ([V3.3 paper](https://arxiv.org/abs/2604.04514)).
|
|
55
100
|
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
101
|
+
**6. Many agents, one coordinated memory.** Every write records its agent, with Bayesian trust scores against poisoning ([V2 paper](https://arxiv.org/abs/2603.02240)). SLM-Mesh gives parallel sessions messages, locks and shared state.
|
|
102
|
+
|
|
103
|
+
**7. "Done" means a gate passed.** Bounded loops repeat a task until an independent check (tests, a schema, a linter) passes, never on the agent's word, and store every lap as auditable memory.
|
|
104
|
+
|
|
105
|
+
**8. Context you don't pay for twice.** Exact cache and reversible compression work through MCP tools or a skill, with no proxy, so your full context window stays intact.
|
|
60
106
|
|
|
61
107
|
SLM is part of Qualixar's AI Reliability Engineering work: agent memory that is observable, bounded and honest about what it doesn't know.
|
|
62
108
|
|
|
@@ -64,73 +110,181 @@ SLM is part of Qualixar's AI Reliability Engineering work: agent memory that is
|
|
|
64
110
|
|
|
65
111
|
| Surface | What you get | Docs |
|
|
66
112
|
|---|---|---|
|
|
67
|
-
| Editor plugins | Claude Code, Codex, VS Code / Copilot, Antigravity, Hermes. Each ships
|
|
68
|
-
| `slm connect <ide>` | Writes the MCP config for 12 IDEs
|
|
69
|
-
| MCP | stdio (`slm mcp`) or HTTP at `http://127.0.0.1:8765/mcp
|
|
113
|
+
| Editor plugins | Claude Code, Codex, VS Code / Copilot, Antigravity, Hermes. Each ships 14 skills, 4 sub-agents and session hooks | [IDE setup](docs/ide-setup.md), [Hermes](docs/hermes.md) |
|
|
114
|
+
| `slm connect <ide>` | Writes the MCP config for 12 IDEs, including Cursor, Windsurf, Zed, JetBrains, Gemini CLI and Claude Desktop | [IDE setup](docs/ide-setup.md) |
|
|
115
|
+
| MCP | stdio (`slm mcp`) or HTTP at `http://127.0.0.1:8765/mcp/`; profiles from 8 to 103 tools | [MCP tools](docs/mcp-tools.md) |
|
|
70
116
|
| Framework adapters | LangGraph, LangChain, LlamaIndex, CrewAI, AutoGen, Semantic Kernel, Microsoft Agent Framework, Google ADK, OpenAI Agents | [Framework adapters](docs/framework-adapters.md) |
|
|
71
|
-
| Python SDK and HTTP API | `MemoryEngine` in your
|
|
117
|
+
| Python SDK and HTTP API | `MemoryEngine` in your code; the local REST API | [API reference](docs/api-reference.md) |
|
|
72
118
|
| Auto-capture hooks | `slm hooks install` for Claude Code, `--agent codex` for Codex | [Auto-memory](docs/auto-memory.md) |
|
|
73
|
-
|
|
|
74
|
-
|
|
75
|
-
|
|
119
|
+
| Cursor-format plugin (Grok Bot, Cursor) | A marketplace-distributed plugin — different from `slm connect cursor` above — that runs on a shared, memory-tight computer with no hooks or dashboard | See below |
|
|
120
|
+
|
|
121
|
+
Claude Code memory in two commands: `claude plugin marketplace add qualixar/superlocalmemory`, then `claude plugin install superlocalmemory@qualixar`.
|
|
122
|
+
|
|
123
|
+
### Grok Bot (and other Cursor-format plugin hosts)
|
|
124
|
+
|
|
125
|
+
Grok Bot runs plugins in Cursor's format: a `.cursor-plugin/plugin.json` manifest, not the
|
|
126
|
+
`.claude-plugin/` one Claude Code reads. SuperLocalMemory ships both from one source, so the
|
|
127
|
+
plugin works on Grok Bot's shared, memory-constrained computer without any manual MCP setup.
|
|
128
|
+
|
|
129
|
+
**Install:** add the `qualixar` marketplace (`.cursor-plugin/marketplace.json` at this repo's
|
|
130
|
+
root) in Grok Bot's Plugins screen, then add `superlocalmemory`. No API key, no sign-in step —
|
|
131
|
+
the server runs locally on the Grok Bot computer, so nothing goes to a memory SaaS.
|
|
132
|
+
*(The MCP server starts as `uvx --from superlocalmemory==<version> slm mcp`: a pinned,
|
|
133
|
+
on-PATH command, with `UV_TORCH_BACKEND=cpu` so a GPU-less Linux box never pulls PyTorch's CUDA
|
|
134
|
+
wheel stack. The first start resolves the package once; the first recall downloads the local
|
|
135
|
+
embedding model once.)*
|
|
136
|
+
|
|
137
|
+
**Try it:** tell any bot *"Remember that our Q4 theme is agent reliability."* Then open a
|
|
138
|
+
different bot and ask *"What's our Q4 theme?"*
|
|
139
|
+
|
|
140
|
+
**What's shared and what isn't:** every write is attributed to `SLM_AGENT_ID=cursor_plugin` —
|
|
141
|
+
that is attribution, not an access boundary. If your bots share one `SLM_DATA_DIR` (the default
|
|
142
|
+
on one Grok Bot computer), they share one memory store: anything stored without an explicit
|
|
143
|
+
`scope` is visible to any bot that can reach that store, the same way two terminal sessions on
|
|
144
|
+
one laptop would see each other's files. Mark a fact `scope=global` only when every bot on that
|
|
145
|
+
computer should see it; a bot that genuinely needs private memory needs its own `SLM_DATA_DIR`.
|
|
146
|
+
See the `slm-bot-memory` skill (ships with this plugin) for the full model, including what
|
|
147
|
+
should never be stored on a computer shared with other bots (secrets, keys, other people's
|
|
148
|
+
personal data).
|
|
149
|
+
|
|
150
|
+
**Tools:** this plugin sets `SLM_MCP_PROFILE=core` — 18 tools (`remember`, `recall`, `search`,
|
|
151
|
+
session lifecycle, compression/cache, corrections) — deliberately smaller than the 56-tool
|
|
152
|
+
default profile every other host gets, so a shared computer is not listing tool descriptions
|
|
153
|
+
for tiers it will not use.
|
|
154
|
+
|
|
155
|
+
**Resources — the lite bot-host profile:** this plugin also sets `SLM_RERANKER_ENABLED=false`,
|
|
156
|
+
`SLM_RERANKER_IDLE_TIMEOUT=120` and `SLM_MAX_EMBEDDING_WORKERS=1` by default, because the box is
|
|
157
|
+
"shared by every bot on it" with as little as 1.8-3.5 GiB free. Measured on macOS, warm, after
|
|
158
|
+
one remember and one recall: about 390 MB resident with the reranker on (daemon + reranker
|
|
159
|
+
worker + embedding worker) vs. about 190 MB with it off — recall still runs every other channel
|
|
160
|
+
(BM25, semantic, entity graph, temporal, spreading activation, Hopfield) and fuses them, just
|
|
161
|
+
without the cross-encoder re-ordering pass. Set `SLM_RERANKER_ENABLED=true` in the plugin's env
|
|
162
|
+
block to trade that RAM back for ranking precision, or run `slm serve stop` when a bot is done
|
|
163
|
+
with it.
|
|
164
|
+
|
|
165
|
+
## What developers use it for
|
|
166
|
+
|
|
167
|
+
- **Persistent memory for Claude Code, Codex and Cursor.** Decisions, conventions, fixes and project context carry across sessions and across tools; confirmed rules and decisions load at session start.
|
|
168
|
+
- **An MCP memory server for any agent.** stdio or HTTP, with adapters for LangGraph, LangChain, LlamaIndex, CrewAI, AutoGen, Semantic Kernel, Microsoft Agent Framework, Google ADK and the OpenAI Agents SDK.
|
|
169
|
+
- **Local-first RAG without a vector database service.** SQLite + sqlite-vec, hybrid search (BM25, embeddings, knowledge graph, temporal), reranking, no Docker and no cloud account.
|
|
170
|
+
- **A hallucination guard for retrieval.** The answer check, Jev or Laya, abstains when the retrieved memories don't answer the question, so your agent doesn't build on a wrong one.
|
|
171
|
+
- **Team and enterprise AI memory.** Roles, company mode with sign-in, scoped sharing, GDPR export and verified erasure, a hash-chained audit trail and an EU AI Act posture report.
|
|
172
|
+
- **Multi-agent memory and coordination.** One store shared by many agents with per-agent attribution, SLM-Mesh messages, locks and shared state, and bounded loops that finish only when an independent gate passes.
|
|
173
|
+
- **Lower token cost.** Exact caching and reversible compression of tool output and file reads keep long agent sessions inside the context window.
|
|
174
|
+
- **Memory for local LLMs.** Mode B runs extraction on Ollama, llama.cpp, vLLM, LM Studio or any OpenAI-compatible server on your machine.
|
|
175
|
+
- **A searchable work log.** Bi-temporal "what was true then" queries, daily, session and project summaries, and saved views, each answer pointing back to its memory ids.
|
|
176
|
+
|
|
177
|
+
## Architecture
|
|
178
|
+
|
|
179
|
+

|
|
180
|
+
|
|
181
|
+
*SQLite + sqlite-vec are canonical; CozoDB and LanceDB are parity-gated projections; SLM-Mesh coordinates trusted peers rather than replicating a distributed database; connectors are opt-in.* [Architecture docs](docs/ARCHITECTURE.md).
|
|
76
182
|
|
|
77
183
|
## Everything SLM does
|
|
78
184
|
|
|
185
|
+
### Memory and recall
|
|
186
|
+
|
|
79
187
|
| Capability | What you get | Docs |
|
|
80
188
|
|---|---|---|
|
|
81
|
-
| Hybrid recall | Semantic, keyword (BM25), temporal, associative (Hopfield) and spreading-activation channels, fused and reranked. `slm trace` shows each channel's score | [Recall](docs/recall.md) |
|
|
82
|
-
| Answer check | A second step that says whether the results answer the question. Laya on your Mac or Jev online, one at a time; a dashboard tab with history and the "I don't have that" rate | [Answer check](docs/answer-check.md) |
|
|
189
|
+
| Hybrid recall | Semantic, keyword (BM25), temporal, associative (Hopfield) and spreading-activation channels, fused by reciprocal rank and reranked. `slm trace` shows each channel's score | [Recall](docs/recall.md) |
|
|
83
190
|
| Memory kinds | Nine kinds: fact, event, status, opinion, rule, decision, how-to, plan, correction. "What did we decide" favours decisions | [Memory kinds](docs/memory-kinds.md) |
|
|
84
191
|
| Standing rules | Confirmed rules (up to 10) and decisions (up to 5) load into every new agent session | [Memory kinds](docs/memory-kinds.md#standing-rules-at-session-start) |
|
|
85
192
|
| Replace and correct | `--replaces <id>` retires an old fact, kept and undoable. Edits go through reviewed corrections with rollback | [Corrections](docs/reviewed-corrections.md) |
|
|
86
193
|
| Time travel | `--as-of`, `--known-as-of`, `--valid-at`, and `--window 7d` or a date range | [Recall](docs/recall.md#time-travel) |
|
|
87
|
-
| Recall filters | `--project`, `--saved-by`, `--about`, `--kind
|
|
88
|
-
|
|
|
194
|
+
| Recall filters | `--project`, `--saved-by`, `--about`, `--kind`, and exact tags with `--tag` (repeat it; `--tags-match all` or `any`); applied before the answer check, and an empty result says why | [Recall](docs/recall.md#narrowing-a-recall) |
|
|
195
|
+
| Project-aware recall | Memories from your current project rank first, hiding nothing. `--project` narrows and says when nothing matched | [Recall](docs/recall.md) |
|
|
196
|
+
| Summaries and saved views | `slm summary session`, `day` or `project`, each citing its memory ids; `slm view create "Work log" "what did I ship" --window 7d`, then `slm view run` | [Summaries](docs/recall.md#summaries), [Views](docs/recall.md#saved-views) |
|
|
89
197
|
| Knowledge graph | Entities, aliases, scenes and timelines; Entity Explorer in the dashboard | [Architecture](docs/ARCHITECTURE.md) |
|
|
90
|
-
| Code graph |
|
|
91
|
-
|
|
|
92
|
-
|
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
198
|
+
| Code graph | Index a repo, then ask for blast radius, callers, review context and code search by meaning | [MCP tools](docs/mcp-tools.md) |
|
|
199
|
+
| Modes and providers | A: no model calls. B: a model on this machine (Ollama by default, or another local OpenAI-compatible server). C: your own endpoint or a cloud provider. Multilingual embedders work. `slm models` recommends models that fit this computer | [Configuration](docs/configuration.md) |
|
|
200
|
+
| Switch the embedding model | `slm embedder switch MODEL` re-indexes every memory in the background while recall keeps working, then changes over in one step; `status`, `cancel` and `rollback` | [CLI reference](docs/cli-reference.md#embedding-models-and-store-health) |
|
|
201
|
+
|
|
202
|
+
Recalled text is untrusted evidence: before it reaches a prompt, secrets are redacted, forged boundary markers neutralised and provenance attached, a defence against prompt injection through memory.
|
|
203
|
+
|
|
204
|
+
### Learning in memory
|
|
205
|
+
|
|
206
|
+
- **Adaptive ranking.** A contextual Thompson-sampling bandit picks channel weights per query type; a LightGBM learning-to-rank model trains on `report_outcome` and `report_feedback`. The same question on an unchanged store gets the same ranking.
|
|
207
|
+
- **Guarded promotion.** A candidate ranker runs in shadow and is promoted only on a measured win; a later NDCG@10 drop of 2% or more restores the previous model automatically.
|
|
208
|
+
- **Soft prompts.** Consolidation mines behavioural patterns and turns stable ones into soft prompts for new sessions.
|
|
209
|
+
- **Forgetting.** An Ebbinghaus retention cycle and a Langevin lifecycle move neglected memories toward archive and pull used ones back.
|
|
210
|
+
- **Skill evolution (opt-in).** Measures agent skills, proposes revisions and keeps lineage, under a budget and blind verification. [Skill evolution](docs/skill-evolution.md)
|
|
211
|
+
|
|
212
|
+
### Governance
|
|
213
|
+
|
|
214
|
+
| Control | What it does | Docs |
|
|
215
|
+
|---|---|---|
|
|
216
|
+
| Roles | Admin, member and viewer per workspace. A role in one workspace grants nothing in another | [Teams](docs/rbac-teams.md) |
|
|
217
|
+
| Company mode | Every read and write is attributed to a signed-in person; turn on with "Require login" | [Company mode](docs/company-mode.md) |
|
|
218
|
+
| Profiles and scopes | Isolated workspaces. Memories are `personal` by default; `shared` and `global` are opt-in | [Profiles](docs/profiles.md), [Scopes](docs/shared-memory.md) |
|
|
219
|
+
| GDPR | `slm gdpr export` (Art. 15/20), `slm gdpr erase` (Art. 17) across every store, `slm gdpr verify` checks the erasure receipt | [Compliance](docs/compliance.md) |
|
|
220
|
+
| Retention and audit | Per-profile retention rules; a hash-chained audit trail of stores, recalls, changes and erasures; ABAC policy checks | [Compliance](docs/compliance.md) |
|
|
221
|
+
| EU AI Act posture | A per-mode technical report (data locality, generative AI use). Risk class stays "undetermined"; no legal verdict | [Compliance](docs/compliance.md) |
|
|
222
|
+
| Write gate | Install token, API keys and remote keys decide who may write | [Auth write gate](docs/auth-write-gate.md) |
|
|
98
223
|
| Evidence export | Checksummed JSONL bundles: `slm evidence export`, `verify`, `import` | [CLI reference](docs/cli-reference.md#data-and-evidence) |
|
|
99
|
-
|
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
224
|
+
| Backup and restore | Cloud backup to GitHub or Google Drive, encrypted before upload. A restore point before each store update | [Cloud backup](docs/cloud-backup.md), [Restore points](docs/restore-points.md) |
|
|
225
|
+
|
|
226
|
+
Engineering controls that support a compliance program, not a certification.
|
|
227
|
+
|
|
228
|
+
### Multi-agent: SLM-Mesh and bounded loops
|
|
229
|
+
|
|
230
|
+
**Shared memory with attribution.** Claude Code, Codex, Cursor and Hermes share one store; each memory records its agent (`SLM_AGENT_ID`) and the dashboard shows per-agent activity.
|
|
231
|
+
|
|
232
|
+
**SLM-Mesh** coordinates sessions on one machine, or several machines with a shared secret: `mesh_peers`, `mesh_send`, `mesh_inbox`, `mesh_state`, `mesh_lock`, `mesh_events`, `mesh_status`, `mesh_summary`. Messages route across machines; locks and state are per machine. [Multi-machine](docs/multi-machine.md)
|
|
233
|
+
|
|
234
|
+
**Bounded loops** end only when an independent gate passes (tests, a linter, a schema, a recall condition), never because the agent says it is done. Runs end DONE, HALT, PAUSE, KILLED or ERROR, with each lap stored under `loop:<name>`. Run `slm loop demo`, the `slm_loop_*` MCP tools or `/slm-loop`; the separate Bounded Loops product can store its finished runs here as read-only evidence. [CLI reference](docs/cli-reference.md#bounded-loops-v380), [Bounded Loops bridge](docs/bounded-loops-bridge.md)
|
|
235
|
+
|
|
236
|
+
### Answer check: Laya and Jev
|
|
237
|
+
|
|
238
|
+
Answer check adds a second step after ranking; choose one in **Settings → Answer check**:
|
|
239
|
+
|
|
240
|
+
- **Laya, on this Mac:** a small on-device model (about 1.1 GB) for Apple Silicon Macs. Nothing leaves the machine.
|
|
241
|
+
- **Jev, online, on any computer:** Windows, Linux or macOS, through TypeSafe or OpenRouter with your own key and an explicit consent box. Sends the question and the top 3 memories.
|
|
242
|
+
- **Off.**
|
|
243
|
+
|
|
244
|
+
Only one runs at a time and the online option never turns itself on. Results are never hidden: recall marks them `abstained` and your agent decides. A repeat question gets the same verdict. The **Answer Check** tab shows verdicts, timing against the 3-second recall ceiling and the "I don't have that" rate; it never stores questions or memory text. [Answer check](docs/answer-check.md)
|
|
245
|
+
|
|
246
|
+
### Context optimisation: cache and compression
|
|
247
|
+
|
|
248
|
+
| Feature | What it does |
|
|
249
|
+
|---|---|
|
|
250
|
+
| Exact cache | `slm_cache_get` / `slm_cache_set` keep tool output and file reads with a TTL; a hit skips the repeat call |
|
|
251
|
+
| Compression | `slm_compress` shrinks large output; safe mode keeps JSON and code intact. A reversible result returns an id, and `slm_retrieve` restores the exact original |
|
|
252
|
+
| Three surfaces | Works through a proxy (`slm wrap claude`), MCP tools or a skill. Only the proxy caches the main conversation turn |
|
|
253
|
+
| Savings | `slm optimize savings --since 7` reports tokens and cost saved |
|
|
254
|
+
| Memory compression | Vector precision follows retention: fading memories are quantized to fewer bits, and consolidation folds clusters of faded memories into one gist |
|
|
255
|
+
|
|
256
|
+
All of it fails open. [Optimize](docs/optimize-overview.md), [Proxy setup](docs/proxy-setup.md)
|
|
257
|
+
|
|
258
|
+
### Remote access and teams
|
|
259
|
+
|
|
260
|
+
`slm remote` serves memory to other computers over TLS only. Each client gets a named key bound to one profile, read-only or read-write, revocable at once. Remote callers authenticate to read and never see this computer's paths or account. [Remote access](docs/distributed-deployment.md#remote-access-over-tls-4120), [Deployment tiers](docs/deployment-tiers.md)
|
|
261
|
+
|
|
262
|
+
### Scale and operations
|
|
263
|
+
|
|
264
|
+
- **[Scale Engine](docs/scale-engine.md):** SQLite stays canonical. Optional CozoDB graph and LanceDB vector copies go through prepare, verify, promote and rollback, and serve recall only once they match SQLite.
|
|
265
|
+
- **[Dashboard](docs/DASHBOARD-COVERAGE.md):** `slm dashboard`, 16 panes including Answer Check, Brain, Knowledge Graph, Governance, Optimize and Mesh Peers.
|
|
266
|
+
- **Durable writes:** each save moves raw → queryable → enriching → complete with a receipt; a failed step keeps the raw evidence and retries. Saves under heavy load are queued, never refused.
|
|
267
|
+
- **[Operations](docs/troubleshooting.md):** `slm doctor`, `status`, `health`, `restart`, `ops`; stuck operations are listed and resolved.
|
|
268
|
+
- **Store health:** `slm db integrity` reports the store's health; `slm db repair` previews fixes for leftover rows, erased words, unfinished deletes and memories that lost their searchable fact, applies them with `--apply`, and undoes a run with `--undo`. It never brings back anything erased, deleted or withheld. [CLI reference](docs/cli-reference.md#embedding-models-and-store-health)
|
|
103
269
|
|
|
104
270
|
## MCP memory server: tool profiles
|
|
105
271
|
|
|
106
|
-
Pick how many tools your agent sees with `SLM_MCP_PROFILE`.
|
|
272
|
+
Pick how many tools your agent sees with `SLM_MCP_PROFILE`.
|
|
107
273
|
|
|
108
274
|
| Profile | Tools | For |
|
|
109
275
|
|---|---:|---|
|
|
110
276
|
| `core` | 18 | Remember, recall, sessions, optimize, correction review |
|
|
111
277
|
| `code` | 38 | Core plus code graph, memory kinds, Brain evidence, profile switching, bounded loops |
|
|
112
278
|
| `mesh` | 8 | SLM-Mesh coordination only |
|
|
113
|
-
| `full` (and unset) |
|
|
114
|
-
| `power` |
|
|
115
|
-
| `whole` |
|
|
279
|
+
| `full` (and unset) | 56 | Memory, kinds, Brain, optimize, skill evolution, mesh, loops, views and summaries |
|
|
280
|
+
| `power` | 68 | Full plus administration, lifecycle and diagnostics |
|
|
281
|
+
| `whole` | 103 | Every registered tool |
|
|
116
282
|
|
|
117
283
|
```json
|
|
118
284
|
{ "mcpServers": { "superlocalmemory": { "type": "http", "url": "http://127.0.0.1:8765/mcp/" } } }
|
|
119
285
|
```
|
|
120
286
|
|
|
121
|
-
For stdio clients use `{"command": "slm", "args": ["mcp"]}`.
|
|
122
|
-
|
|
123
|
-
## Answer Check: memory that says "I don't have that"
|
|
124
|
-
|
|
125
|
-
Relevance and "does this answer it" are different questions. The closest memory on file can still be the wrong answer, and an agent that treats it as the answer makes things up with confidence.
|
|
126
|
-
|
|
127
|
-
Answer check adds a second step after ranking. It reads the top results and decides whether they answer the question. Choose one, in **Settings → Answer check** in the dashboard:
|
|
128
|
-
|
|
129
|
-
- **On this Mac (Laya):** a small model, about 1.1 GB, on Apple Silicon. Nothing leaves the machine.
|
|
130
|
-
- **Online with Jev:** TypeSafe or OpenRouter, with your own key and an explicit consent box. Sends the question and the top 3 memories.
|
|
131
|
-
- **Off.**
|
|
132
|
-
|
|
133
|
-
Only one runs at a time, and nothing turns the online option on by itself. Each option shows whether it is ready, has a **Test** button, and is applied live with one **Save**. Results are never hidden: recall returns them with `abstained` and `abstention_reason` set, and your agent decides what to do. The same question gets the same verdict on a repeat. The **Answer Check** tab shows each verdict, its timing against the 3-second recall ceiling, and how often it said "I don't have that" over 24 hours, 7 days or 30 days. The history keeps outcomes and timings, never your questions or memory text.
|
|
287
|
+
For stdio clients use `{"command": "slm", "args": ["mcp"]}`.
|
|
134
288
|
|
|
135
289
|
## Privacy and security
|
|
136
290
|
|
|
@@ -144,9 +298,7 @@ What leaves your machine, and when:
|
|
|
144
298
|
| Encrypted backup files | You connect GitHub or Google Drive backup. Files are encrypted before upload |
|
|
145
299
|
| Mesh messages | You configure SLM-Mesh peers |
|
|
146
300
|
|
|
147
|
-
Model downloads
|
|
148
|
-
|
|
149
|
-
Since 4.1.20, other computers must authenticate to read memory, not only to write it. SLM ignores forwarded-for headers unless you name a trusted proxy, so a proxy can't make a remote caller look local. SLM's own outbound requests never follow redirects, and the remote listener never answers with one, so a key is never sent through a redirect. Remote callers never see this computer's paths, account or environment outside the memories themselves. Remote agents connect through `slm remote`: TLS only, one named key per client, each key bound to one profile (its holder reads that profile's memories in full and nothing else), read-only keys available, and `slm remote keys revoke <name>` takes effect on the next request. See [Remote access](docs/distributed-deployment.md#remote-access-over-tls-4120), [Security policy](SECURITY.md) and [encryption at rest](docs/SECURITY-encryption-at-rest.md).
|
|
301
|
+
Model downloads send no memory content. Credentials in memory text are redacted on every outbound path. Outbound requests never follow redirects, and forwarded-for headers count only from a proxy you name. See [Security policy](SECURITY.md) and [encryption at rest](docs/SECURITY-encryption-at-rest.md).
|
|
150
302
|
|
|
151
303
|
## Benchmarks (V3)
|
|
152
304
|
|
|
@@ -162,30 +314,78 @@ Method, category breakdown and ablations: [docs/benchmarks.md](docs/benchmarks.m
|
|
|
162
314
|
|
|
163
315
|
## Research
|
|
164
316
|
|
|
165
|
-
|
|
317
|
+
Four arXiv preprints by Varun Pratap Bhardwaj describe SLM, newest first:
|
|
318
|
+
|
|
319
|
+
1. **V4 (2026):** [SuperLocalMemory 4.0: The Governed Memory Operating System for AI Agents](https://arxiv.org/abs/2608.08253), with Garima Singh and Arun Pratap Bhardwaj. arXiv:2608.08253. Multi-scope isolation, role-based access, verified erasure, hash-chained audit and bi-temporal recall, with their measured cost.
|
|
320
|
+
2. **V3.3 (2026):** [SuperLocalMemory V3.3: The Living Brain](https://arxiv.org/abs/2604.04514), arXiv:2604.04514. Biologically inspired forgetting, cognitive quantization, multi-channel retrieval without an LLM.
|
|
321
|
+
3. **V3 (2026):** [SuperLocalMemory V3: Information-Geometric Foundations for Zero-LLM Enterprise Agent Memory](https://arxiv.org/abs/2603.14588), arXiv:2603.14588. Fisher-information retrieval, Langevin lifecycle, sheaf contradiction detection; the LoCoMo results above.
|
|
322
|
+
4. **V2 (2026):** [SuperLocalMemory: Privacy-Preserving Multi-Agent Memory with Bayesian Trust Defense Against Memory Poisoning](https://arxiv.org/abs/2603.02240), arXiv:2603.02240.
|
|
323
|
+
|
|
324
|
+
Cite the V4 paper with [CITATION.cff](CITATION.cff) or GitHub's "Cite this repository" button:
|
|
166
325
|
|
|
167
326
|
```bibtex
|
|
168
327
|
@article{bhardwaj2026superlocalmemory,
|
|
169
328
|
title = {SuperLocalMemory 4.0: The Governed Memory Operating System for AI Agents},
|
|
170
329
|
author = {Bhardwaj, Varun Pratap and Singh, Garima and Bhardwaj, Arun Pratap},
|
|
171
330
|
journal = {arXiv preprint arXiv:2608.08253},
|
|
172
|
-
year = {2026}
|
|
173
|
-
doi = {10.5281/zenodo.21853302}
|
|
331
|
+
year = {2026}
|
|
174
332
|
}
|
|
175
333
|
```
|
|
176
334
|
|
|
335
|
+
## Documentation
|
|
336
|
+
|
|
337
|
+
**Start:** [Getting started](docs/getting-started.md) · [IDE setup](docs/ide-setup.md) · [Linux install](docs/install-linux.md) · [Quick proof](docs/QUICK_PROOF.md) · [Migrating from V2](docs/migration-from-v2.md)
|
|
338
|
+
|
|
339
|
+
**Use:** [Recall](docs/recall.md) · [Memory kinds](docs/memory-kinds.md) · [Answer check](docs/answer-check.md) · [Auto-memory](docs/auto-memory.md) · [Shared memory](docs/shared-memory.md) · [Optimize](docs/optimize-overview.md)
|
|
340
|
+
|
|
341
|
+
**Reference:** [CLI](docs/cli-reference.md) · [MCP tools](docs/mcp-tools.md) · [Configuration](docs/configuration.md) · [Errors](docs/errors.md) · [Troubleshooting](docs/troubleshooting.md) · [Distributed deployment](docs/distributed-deployment.md) · [Privacy diagnostics](docs/privacy-diagnostics.md)
|
|
342
|
+
|
|
343
|
+
**Design:** [Architecture](docs/ARCHITECTURE.md) · [Score contract](docs/retrieval-score-contract.md) · [Compliance](docs/compliance.md) · [Benchmarks](docs/benchmarks.md)
|
|
344
|
+
|
|
177
345
|
## Upgrade
|
|
178
346
|
|
|
179
347
|
```bash
|
|
180
|
-
|
|
348
|
+
npm update -g superlocalmemory # or, in your activated venv: python -m pip install --upgrade superlocalmemory
|
|
181
349
|
slm restart && slm doctor
|
|
182
350
|
slm upgrade-hosts # preview IDE and plugin updates; nothing changes until you --apply
|
|
183
351
|
```
|
|
184
352
|
|
|
185
|
-
Upgrades never move or delete memory
|
|
353
|
+
Upgrades never move or delete memory; an update that changes the store takes a restore point first. Plugins update through your editor; see [host upgrades](docs/host-upgrades.md).
|
|
354
|
+
|
|
355
|
+
## Platform support
|
|
356
|
+
|
|
357
|
+
| | SuperLocalMemory | Jev (online check) | Laya (on-device check) |
|
|
358
|
+
|---|---|---|---|
|
|
359
|
+
| Apple Silicon macOS | Yes | Yes | Yes |
|
|
360
|
+
| 64-bit Windows | Yes | Yes | No (Laya uses Apple's MLX) |
|
|
361
|
+
| 64-bit Linux (x86-64, ARM64) | Yes | Yes | No |
|
|
362
|
+
| Intel Mac, 32-bit Windows | No prebuilt install | — | — |
|
|
363
|
+
|
|
364
|
+
Python 3.12+, and Node 18+ for npm. Intel Mac and 32-bit Windows lack a build of the pinned security library (`cryptography` 50); older versions have high-severity advisories. The default embedding model (about 500 MB) downloads on first use or with `slm warmup`.
|
|
186
365
|
|
|
187
366
|
## Contributing and license
|
|
188
367
|
|
|
189
368
|
Issues and pull requests are welcome; start with [CONTRIBUTING.md](CONTRIBUTING.md). Report vulnerabilities through [SECURITY.md](SECURITY.md). Release notes are in [CHANGELOG.md](CHANGELOG.md).
|
|
190
369
|
|
|
191
370
|
SLM is licensed under [AGPL-3.0-or-later](LICENSE). For a commercial license, see [COMMERCIAL-LICENSE.md](COMMERCIAL-LICENSE.md). Copyright (c) 2026 Varun Pratap Bhardwaj / [Qualixar](https://qualixar.com). Website: [superlocalmemory.com](https://www.superlocalmemory.com).
|
|
371
|
+
|
|
372
|
+
---
|
|
373
|
+
|
|
374
|
+
<div align="center">
|
|
375
|
+
|
|
376
|
+
### Built by Qualixar
|
|
377
|
+
|
|
378
|
+
**SuperLocalMemory** is made by [Varun Pratap Bhardwaj](https://varunpratap.com) at [Qualixar](https://qualixar.com), where the work is AI Reliability Engineering: memory, contracts, tests and loops that make AI agents dependable enough to trust with real work.
|
|
379
|
+
|
|
380
|
+
[](https://github.com/qualixar/superlocalmemory/stargazers)
|
|
381
|
+
[](https://pepy.tech/project/superlocalmemory)
|
|
382
|
+
[](https://www.npmjs.com/package/superlocalmemory)
|
|
383
|
+
[](https://x.com/varunPbhardwaj)
|
|
384
|
+
|
|
385
|
+
If SLM keeps your agents from forgetting, **[star the repository](https://github.com/qualixar/superlocalmemory)**: it is how other developers find it.
|
|
386
|
+
|
|
387
|
+
**More from Qualixar:** [Qualixar OS](https://github.com/qualixar/qualixar-os) · [SkillFortify](https://github.com/qualixar/skillfortify) · [SLM Mesh](https://github.com/qualixar/slm-mesh) · [AgentAssert](https://github.com/qualixar/agentassert-abc) · [AgentAssay](https://github.com/qualixar/agentassay) · [Bounded Loops](https://github.com/qualixar/bounded-loops) · [Jev Decision Layer](https://github.com/qualixar/jev-decision-layer) · [SLM MCP Hub](https://github.com/qualixar/slm-mcp-hub)
|
|
388
|
+
|
|
389
|
+
[superlocalmemory.com](https://www.superlocalmemory.com) · [qualixar.com](https://qualixar.com) · [Papers](#research) · [LinkedIn](https://www.linkedin.com/in/varun-pratap-bhardwaj-7ab63742/) · [X](https://x.com/varunPbhardwaj)
|
|
390
|
+
|
|
391
|
+
</div>
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "superlocalmemory",
|
|
3
|
-
"version": "4.1.
|
|
3
|
+
"version": "4.1.22",
|
|
4
4
|
"description": "Local-first agent memory with MCP and an agent-native CLI. Documented clients include Claude Code, Cursor, and Windsurf.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"ai-memory",
|
|
@@ -78,8 +78,10 @@
|
|
|
78
78
|
"scripts/preuninstall.js",
|
|
79
79
|
".claude-plugin/",
|
|
80
80
|
"plugin/",
|
|
81
|
+
"plugin-src/skills/slm-bot-memory/SKILL.md",
|
|
81
82
|
"plugin-src/skills/slm-cache/SKILL.md",
|
|
82
83
|
"plugin-src/skills/slm-compress/SKILL.md",
|
|
84
|
+
"plugin-src/skills/slm-getting-started-bot/SKILL.md",
|
|
83
85
|
"plugin-src/skills/slm-governance/SKILL.md",
|
|
84
86
|
"plugin-src/skills/slm-graph/SKILL.md",
|
|
85
87
|
"plugin-src/skills/slm-loop/SKILL.md",
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"name": "Qualixar",
|
|
4
4
|
"url": "https://github.com/qualixar/superlocalmemory"
|
|
5
5
|
},
|
|
6
|
-
"description": "Local-first agent memory + reversible context compression and KV cache, as an MCP server.
|
|
6
|
+
"description": "Local-first agent memory + reversible context compression and KV cache, as an MCP server. Serves the 56-tool full profile by default; set SLM_MCP_PROFILE=code for the 38-tool code profile.",
|
|
7
7
|
"displayName": "SuperLocalMemory",
|
|
8
8
|
"keywords": [
|
|
9
9
|
"memory",
|
|
@@ -15,5 +15,5 @@
|
|
|
15
15
|
"mcpServers": "./.mcp.json",
|
|
16
16
|
"name": "superlocalmemory",
|
|
17
17
|
"repository": "https://github.com/qualixar/superlocalmemory",
|
|
18
|
-
"version": "4.1.
|
|
18
|
+
"version": "4.1.22"
|
|
19
19
|
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
{
|
|
2
|
+
"author": {
|
|
3
|
+
"name": "Qualixar"
|
|
4
|
+
},
|
|
5
|
+
"description": "Local-first long-term memory for your agents and bots: remember, recall and session context stored on your own computer, with reversible compression and a cache for large tool outputs.",
|
|
6
|
+
"homepage": "https://github.com/qualixar/superlocalmemory",
|
|
7
|
+
"hooks": {
|
|
8
|
+
"hooks": {}
|
|
9
|
+
},
|
|
10
|
+
"keywords": [
|
|
11
|
+
"memory",
|
|
12
|
+
"long-term-memory",
|
|
13
|
+
"local-first",
|
|
14
|
+
"mcp",
|
|
15
|
+
"agents"
|
|
16
|
+
],
|
|
17
|
+
"license": "AGPL-3.0-or-later",
|
|
18
|
+
"logo": "assets/logo.svg",
|
|
19
|
+
"mcpServers": "./mcp.cursor.json",
|
|
20
|
+
"name": "superlocalmemory",
|
|
21
|
+
"repository": "https://github.com/qualixar/superlocalmemory",
|
|
22
|
+
"skills": "./cursor-skills/",
|
|
23
|
+
"version": "4.1.22"
|
|
24
|
+
}
|
package/plugin/CLAUDE.md
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
<!-- BEGIN SuperLocalMemory v4.1.
|
|
1
|
+
<!-- BEGIN SuperLocalMemory v4.1.22 -->
|
|
2
2
|
|
|
3
3
|
## SuperLocalMemory (SLM) — Agent Rules
|
|
4
4
|
|
|
@@ -40,6 +40,6 @@ slm-recall · slm-remember · slm-session · slm-status · slm-cache · slm-comp
|
|
|
40
40
|
### Subagents
|
|
41
41
|
slm-memory-advisor (memory decisions, session hygiene, scope/profile guidance) · slm-optimize-advisor (context compression + KV cache) · slm-governance-advisor (scope/roles/compliance/GDPR)
|
|
42
42
|
|
|
43
|
-
<!-- END SuperLocalMemory v4.1.
|
|
43
|
+
<!-- END SuperLocalMemory v4.1.22 -->
|
|
44
44
|
|
|
45
|
-
SuperLocalMemory v4.1.
|
|
45
|
+
SuperLocalMemory v4.1.22 · Qualixar · AGPL-3.0-or-later
|
|
@@ -77,4 +77,4 @@ slm-scope · slm-governance · slm-profile · slm-remember · slm-recall
|
|
|
77
77
|
# What NOT to do
|
|
78
78
|
Never session_init twice; never forget without dry-run preview; never store secrets; never bypass role checks; never claim an erasure succeeded without verifying via recall.
|
|
79
79
|
|
|
80
|
-
SuperLocalMemory v4.1.
|
|
80
|
+
SuperLocalMemory v4.1.22 · Qualixar · AGPL-3.0-or-later
|
|
@@ -47,4 +47,4 @@ slm-recall · slm-remember · slm-session · slm-scope · slm-profile · slm-gov
|
|
|
47
47
|
# What NOT to do
|
|
48
48
|
Never session_init twice; never forget dry_run=False without reporting preview; never dump a whole file into remember; never invent a memory; never claim "saved" without success:true / clean CLI exit; never bypass scope or governance restrictions.
|
|
49
49
|
|
|
50
|
-
SuperLocalMemory v4.1.
|
|
50
|
+
SuperLocalMemory v4.1.22 · Qualixar · AGPL-3.0-or-later
|
|
@@ -41,4 +41,4 @@ slm-compress · slm-cache · slm-status · slm-profile
|
|
|
41
41
|
# What NOT to do
|
|
42
42
|
Never compress code-for-edit/JSON-to-parse/<500 chars; never store secrets/ccr_ids; never let optimize failure block/alter the task; never claim a specific savings %; never carry ccr_ids across profile switches.
|
|
43
43
|
|
|
44
|
-
SuperLocalMemory v4.1.
|
|
44
|
+
SuperLocalMemory v4.1.22 · Qualixar · AGPL-3.0-or-later
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 128 128" role="img" aria-labelledby="title desc">
|
|
2
|
+
<title id="title">SuperLocalMemory mark</title>
|
|
3
|
+
<desc id="desc">A local memory core represented by connected evidence nodes in a cyan and violet ring.</desc>
|
|
4
|
+
<defs>
|
|
5
|
+
<linearGradient id="slm-ring" x1="18" y1="18" x2="110" y2="110" gradientUnits="userSpaceOnUse">
|
|
6
|
+
<stop stop-color="#22d3ee"/>
|
|
7
|
+
<stop offset=".52" stop-color="#60a5fa"/>
|
|
8
|
+
<stop offset="1" stop-color="#a78bfa"/>
|
|
9
|
+
</linearGradient>
|
|
10
|
+
<linearGradient id="slm-core" x1="39" y1="37" x2="91" y2="91" gradientUnits="userSpaceOnUse">
|
|
11
|
+
<stop stop-color="#d9fbff"/>
|
|
12
|
+
<stop offset="1" stop-color="#c4b5fd"/>
|
|
13
|
+
</linearGradient>
|
|
14
|
+
</defs>
|
|
15
|
+
<circle cx="64" cy="64" r="58" fill="#07111f" stroke="url(#slm-ring)" stroke-width="4"/>
|
|
16
|
+
<path d="M33 51c4-15 16-25 31-25 20 0 35 16 35 36 0 17-12 31-28 35" fill="none" stroke="url(#slm-ring)" stroke-linecap="round" stroke-width="4"/>
|
|
17
|
+
<path d="M35 78c6 15 22 24 38 20 9-2 16-8 20-16" fill="none" stroke="url(#slm-ring)" stroke-linecap="round" stroke-width="4" opacity=".82"/>
|
|
18
|
+
<g fill="none" stroke="url(#slm-ring)" stroke-linecap="round" stroke-linejoin="round" stroke-width="3.5">
|
|
19
|
+
<path d="M43 55 58 45l14 10 13-8"/>
|
|
20
|
+
<path d="M43 55v18l15 9 14-9 13 8"/>
|
|
21
|
+
<path d="M58 45v37"/>
|
|
22
|
+
<path d="M72 55v18"/>
|
|
23
|
+
</g>
|
|
24
|
+
<g fill="url(#slm-core)" stroke="#07111f" stroke-width="2">
|
|
25
|
+
<circle cx="43" cy="55" r="6"/>
|
|
26
|
+
<circle cx="58" cy="45" r="6"/>
|
|
27
|
+
<circle cx="72" cy="55" r="6"/>
|
|
28
|
+
<circle cx="85" cy="47" r="6"/>
|
|
29
|
+
<circle cx="43" cy="73" r="6"/>
|
|
30
|
+
<circle cx="58" cy="82" r="6"/>
|
|
31
|
+
<circle cx="72" cy="73" r="6"/>
|
|
32
|
+
<circle cx="85" cy="81" r="6"/>
|
|
33
|
+
</g>
|
|
34
|
+
<circle cx="64" cy="64" r="8" fill="url(#slm-ring)"/>
|
|
35
|
+
<circle cx="64" cy="64" r="3" fill="#f8fafc"/>
|
|
36
|
+
</svg>
|