superlocalmemory 4.1.22 → 4.1.23

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.
Files changed (172) hide show
  1. package/.claude-plugin/marketplace.json +2 -2
  2. package/CHANGELOG.md +99 -0
  3. package/README.md +50 -27
  4. package/antigravity-plugin/_GENERATED.md +33 -0
  5. package/antigravity-plugin/agents/slm-governance-advisor.md +78 -0
  6. package/antigravity-plugin/agents/slm-loop-runner.md +82 -0
  7. package/antigravity-plugin/agents/slm-memory-advisor.md +50 -0
  8. package/antigravity-plugin/agents/slm-optimize-advisor.md +44 -0
  9. package/antigravity-plugin/commands/slm-loop.md +33 -0
  10. package/antigravity-plugin/hooks/hooks.json +59 -0
  11. package/antigravity-plugin/hooks.json +42 -0
  12. package/antigravity-plugin/mcp_config.json +14 -0
  13. package/antigravity-plugin/plugin.json +25 -0
  14. package/antigravity-plugin/scripts/antigravity_hook_adapter.py +85 -0
  15. package/antigravity-plugin/skills/slm-bot-memory/SKILL.md +146 -0
  16. package/antigravity-plugin/skills/slm-cache/SKILL.md +147 -0
  17. package/antigravity-plugin/skills/slm-compress/SKILL.md +150 -0
  18. package/antigravity-plugin/skills/slm-getting-started-bot/SKILL.md +146 -0
  19. package/antigravity-plugin/skills/slm-governance/SKILL.md +221 -0
  20. package/antigravity-plugin/skills/slm-graph/SKILL.md +327 -0
  21. package/antigravity-plugin/skills/slm-loop/SKILL.md +153 -0
  22. package/antigravity-plugin/skills/slm-mesh/SKILL.md +287 -0
  23. package/antigravity-plugin/skills/slm-profile/SKILL.md +159 -0
  24. package/antigravity-plugin/skills/slm-recall/SKILL.md +430 -0
  25. package/antigravity-plugin/skills/slm-remember/SKILL.md +370 -0
  26. package/antigravity-plugin/skills/slm-scope/SKILL.md +183 -0
  27. package/antigravity-plugin/skills/slm-session/SKILL.md +291 -0
  28. package/antigravity-plugin/skills/slm-status/SKILL.md +185 -0
  29. package/antigravity-plugin/skills/slm-web-access/SKILL.md +91 -0
  30. package/codex-plugin/.claude-plugin/plugin.json +19 -0
  31. package/codex-plugin/.codex/config.toml +40 -0
  32. package/codex-plugin/.codex-plugin/plugin.json +43 -0
  33. package/codex-plugin/.mcp.json +16 -0
  34. package/codex-plugin/AGENTS.md +161 -0
  35. package/codex-plugin/README.md +205 -0
  36. package/codex-plugin/_GENERATED.md +52 -0
  37. package/codex-plugin/agents/slm-governance-advisor.md +78 -0
  38. package/codex-plugin/agents/slm-loop-runner.md +82 -0
  39. package/codex-plugin/agents/slm-memory-advisor.md +50 -0
  40. package/codex-plugin/agents/slm-optimize-advisor.md +44 -0
  41. package/codex-plugin/commands/slm-loop.md +33 -0
  42. package/codex-plugin/hooks/hooks.json +59 -0
  43. package/codex-plugin/scripts/ensure-venv.bat +108 -0
  44. package/codex-plugin/scripts/ensure-venv.sh +100 -0
  45. package/codex-plugin/scripts/slm-launch +55 -0
  46. package/codex-plugin/scripts/slm-launch.bat +30 -0
  47. package/codex-plugin/skills/slm-bot-memory/SKILL.md +146 -0
  48. package/codex-plugin/skills/slm-cache/SKILL.md +147 -0
  49. package/codex-plugin/skills/slm-compress/SKILL.md +150 -0
  50. package/codex-plugin/skills/slm-getting-started-bot/SKILL.md +146 -0
  51. package/codex-plugin/skills/slm-governance/SKILL.md +221 -0
  52. package/codex-plugin/skills/slm-graph/SKILL.md +327 -0
  53. package/codex-plugin/skills/slm-loop/SKILL.md +153 -0
  54. package/codex-plugin/skills/slm-mesh/SKILL.md +287 -0
  55. package/codex-plugin/skills/slm-profile/SKILL.md +159 -0
  56. package/codex-plugin/skills/slm-recall/SKILL.md +430 -0
  57. package/codex-plugin/skills/slm-remember/SKILL.md +370 -0
  58. package/codex-plugin/skills/slm-scope/SKILL.md +183 -0
  59. package/codex-plugin/skills/slm-session/SKILL.md +291 -0
  60. package/codex-plugin/skills/slm-status/SKILL.md +185 -0
  61. package/codex-plugin/skills/slm-web-access/SKILL.md +91 -0
  62. package/copilot-plugin/.github/agents/slm-governance-advisor.agent.md +80 -0
  63. package/copilot-plugin/.github/agents/slm-loop-runner.agent.md +84 -0
  64. package/copilot-plugin/.github/agents/slm-memory-advisor.agent.md +52 -0
  65. package/copilot-plugin/.github/agents/slm-optimize-advisor.agent.md +46 -0
  66. package/copilot-plugin/.github/copilot-instructions.md +52 -0
  67. package/copilot-plugin/.github/hooks/slm-hooks.json +44 -0
  68. package/copilot-plugin/.github/prompts/slm-bot-memory.prompt.md +147 -0
  69. package/copilot-plugin/.github/prompts/slm-cache.prompt.md +151 -0
  70. package/copilot-plugin/.github/prompts/slm-compress.prompt.md +154 -0
  71. package/copilot-plugin/.github/prompts/slm-getting-started-bot.prompt.md +147 -0
  72. package/copilot-plugin/.github/prompts/slm-governance.prompt.md +224 -0
  73. package/copilot-plugin/.github/prompts/slm-graph.prompt.md +322 -0
  74. package/copilot-plugin/.github/prompts/slm-loop.prompt.md +159 -0
  75. package/copilot-plugin/.github/prompts/slm-mesh.prompt.md +290 -0
  76. package/copilot-plugin/.github/prompts/slm-profile.prompt.md +155 -0
  77. package/copilot-plugin/.github/prompts/slm-recall.prompt.md +434 -0
  78. package/copilot-plugin/.github/prompts/slm-remember.prompt.md +375 -0
  79. package/copilot-plugin/.github/prompts/slm-scope.prompt.md +183 -0
  80. package/copilot-plugin/.github/prompts/slm-session.prompt.md +291 -0
  81. package/copilot-plugin/.github/prompts/slm-status.prompt.md +190 -0
  82. package/copilot-plugin/.github/prompts/slm-web-access.prompt.md +95 -0
  83. package/copilot-plugin/.vscode/mcp.json +11 -0
  84. package/copilot-plugin/README.md +26 -0
  85. package/copilot-plugin/_GENERATED.md +49 -0
  86. package/copilot-plugin/scripts/ensure-venv.bat +122 -0
  87. package/copilot-plugin/scripts/ensure-venv.sh +169 -0
  88. package/copilot-plugin/scripts/slm-launch +207 -0
  89. package/copilot-plugin/scripts/slm-launch.bat +32 -0
  90. package/copilot-plugin/scripts/slm-resolve.sh +128 -0
  91. package/copilot-plugin/scripts/slm-run +76 -0
  92. package/copilot-plugin/scripts/torch-cpu-resolve.sh +86 -0
  93. package/docs/pi-dev-integration.md +0 -2
  94. package/hermes-plugin/README.md +30 -0
  95. package/hermes-plugin/_GENERATED.md +3 -0
  96. package/hermes-plugin/__init__.py +417 -0
  97. package/hermes-plugin/agents/slm-governance-advisor.md +78 -0
  98. package/hermes-plugin/agents/slm-loop-runner.md +82 -0
  99. package/hermes-plugin/agents/slm-memory-advisor.md +50 -0
  100. package/hermes-plugin/agents/slm-optimize-advisor.md +44 -0
  101. package/hermes-plugin/command-inventory.json +7 -0
  102. package/hermes-plugin/plugin.yaml +24 -0
  103. package/hermes-plugin/remote.py +390 -0
  104. package/hermes-plugin/skills/slm-bot-memory/SKILL.md +146 -0
  105. package/hermes-plugin/skills/slm-cache/SKILL.md +147 -0
  106. package/hermes-plugin/skills/slm-compress/SKILL.md +150 -0
  107. package/hermes-plugin/skills/slm-getting-started-bot/SKILL.md +146 -0
  108. package/hermes-plugin/skills/slm-governance/SKILL.md +221 -0
  109. package/hermes-plugin/skills/slm-graph/SKILL.md +327 -0
  110. package/hermes-plugin/skills/slm-loop/SKILL.md +153 -0
  111. package/hermes-plugin/skills/slm-mesh/SKILL.md +287 -0
  112. package/hermes-plugin/skills/slm-profile/SKILL.md +159 -0
  113. package/hermes-plugin/skills/slm-recall/SKILL.md +430 -0
  114. package/hermes-plugin/skills/slm-remember/SKILL.md +370 -0
  115. package/hermes-plugin/skills/slm-scope/SKILL.md +183 -0
  116. package/hermes-plugin/skills/slm-session/SKILL.md +291 -0
  117. package/hermes-plugin/skills/slm-status/SKILL.md +185 -0
  118. package/hermes-plugin/skills/slm-web-access/SKILL.md +91 -0
  119. package/package.json +9 -18
  120. package/plugin/.claude-plugin/plugin.json +1 -1
  121. package/plugin/.cursor-plugin/plugin.json +1 -1
  122. package/plugin/CLAUDE.md +14 -12
  123. package/plugin/agents/slm-governance-advisor.md +14 -16
  124. package/plugin/agents/slm-loop-runner.md +22 -11
  125. package/plugin/agents/slm-memory-advisor.md +14 -14
  126. package/plugin/agents/slm-optimize-advisor.md +5 -5
  127. package/plugin/commands/slm-loop.md +5 -3
  128. package/plugin/cursor-skills/slm-bot-memory/SKILL.md +19 -12
  129. package/plugin/cursor-skills/slm-getting-started-bot/SKILL.md +17 -9
  130. package/plugin/cursor-skills/slm-recall/SKILL.md +151 -54
  131. package/plugin/cursor-skills/slm-remember/SKILL.md +132 -35
  132. package/plugin/cursor-skills/slm-scope/SKILL.md +24 -17
  133. package/plugin/cursor-skills/slm-session/SKILL.md +77 -57
  134. package/plugin/mcp.cursor.json +1 -1
  135. package/plugin/requirements.txt +1 -1
  136. package/plugin/skills/slm-bot-memory/SKILL.md +19 -12
  137. package/plugin/skills/slm-cache/SKILL.md +6 -7
  138. package/plugin/skills/slm-compress/SKILL.md +3 -3
  139. package/plugin/skills/slm-getting-started-bot/SKILL.md +17 -9
  140. package/plugin/skills/slm-governance/SKILL.md +126 -153
  141. package/plugin/skills/slm-graph/SKILL.md +27 -15
  142. package/plugin/skills/slm-loop/SKILL.md +74 -20
  143. package/plugin/skills/slm-mesh/SKILL.md +17 -12
  144. package/plugin/skills/slm-profile/SKILL.md +101 -92
  145. package/plugin/skills/slm-recall/SKILL.md +151 -54
  146. package/plugin/skills/slm-remember/SKILL.md +132 -35
  147. package/plugin/skills/slm-scope/SKILL.md +24 -17
  148. package/plugin/skills/slm-session/SKILL.md +77 -57
  149. package/plugin/skills/slm-status/SKILL.md +54 -35
  150. package/plugin/skills/slm-web-access/SKILL.md +91 -0
  151. package/plugin-src/agents/slm-governance-advisor.md +78 -0
  152. package/plugin-src/agents/slm-loop-runner.md +82 -0
  153. package/plugin-src/agents/slm-memory-advisor.md +14 -14
  154. package/plugin-src/agents/slm-optimize-advisor.md +5 -5
  155. package/plugin-src/commands/slm-loop.md +33 -0
  156. package/plugin-src/rules/AGENTS.md +45 -36
  157. package/plugin-src/rules/CLAUDE.md.fragment +47 -0
  158. package/plugin-src/skills/slm-bot-memory/SKILL.md +19 -12
  159. package/plugin-src/skills/slm-cache/SKILL.md +6 -7
  160. package/plugin-src/skills/slm-compress/SKILL.md +3 -3
  161. package/plugin-src/skills/slm-getting-started-bot/SKILL.md +17 -9
  162. package/plugin-src/skills/slm-governance/SKILL.md +126 -153
  163. package/plugin-src/skills/slm-graph/SKILL.md +27 -15
  164. package/plugin-src/skills/slm-loop/SKILL.md +74 -20
  165. package/plugin-src/skills/slm-mesh/SKILL.md +17 -12
  166. package/plugin-src/skills/slm-profile/SKILL.md +101 -92
  167. package/plugin-src/skills/slm-recall/SKILL.md +151 -54
  168. package/plugin-src/skills/slm-remember/SKILL.md +132 -35
  169. package/plugin-src/skills/slm-scope/SKILL.md +24 -17
  170. package/plugin-src/skills/slm-session/SKILL.md +77 -57
  171. package/plugin-src/skills/slm-status/SKILL.md +54 -35
  172. package/plugin-src/skills/slm-web-access/SKILL.md +91 -0
@@ -21,7 +21,7 @@
21
21
  "license": "AGPL-3.0-or-later",
22
22
  "name": "superlocalmemory",
23
23
  "source": "./plugin",
24
- "version": "4.1.22"
24
+ "version": "4.1.23"
25
25
  },
26
26
  {
27
27
  "author": {
@@ -39,7 +39,7 @@
39
39
  "license": "AGPL-3.0-or-later",
40
40
  "name": "superlocalmemory-codex",
41
41
  "source": "./codex-plugin",
42
- "version": "4.1.22"
42
+ "version": "4.1.23"
43
43
  }
44
44
  ]
45
45
  }
package/CHANGELOG.md CHANGED
@@ -5,6 +5,105 @@ All notable changes to SuperLocalMemory will be documented in this file.
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
+ ## [4.1.23] — Your web apps and bots use the same memory, and it stays on your computer
9
+
10
+ ### Added
11
+
12
+ - **Web access.** ChatGPT, Claude on the web, Claude Code on the web, Muse,
13
+ Composio and any MCP client that supports remote connections with OAuth can
14
+ use the memory on your computer. Turn it on from the dashboard's new
15
+ **Connected apps** page, sign in with GitHub, and choose per app whether it
16
+ may only read, also save, and use session tools. Your computer keeps one
17
+ outbound link to SLM's connection gateway; there is no port to open and no
18
+ tunnel or Cloudflare account to set up. The memory database never leaves the
19
+ computer, and SLM works fully without Web access. Each connection has a free
20
+ daily allowance of tool calls.
21
+ - Web access renews its own credentials while your computer is online. If the
22
+ computer stays offline long enough for access to lapse, the Connected apps
23
+ page warns before it ends and says what to do after. Once the computer has
24
+ been silent for 45 seconds, for example asleep, a web app is told at once that
25
+ it is unavailable. A relayed recall answers inside the relay's time budget,
26
+ and remote answers are compact JSON with host details redacted.
27
+ - **Connected apps** lists every app that can reach your memory and removes
28
+ any of them with immediate effect. Memory and local configuration are kept.
29
+ - **Instructions for web agents.** `docs/web-agents/` has a full and a short
30
+ instruction block and an Agent Skill folder that tell a connected app when to
31
+ recall, when to say it has no answer, what to save (with kind, tags and an
32
+ idempotency key) and what to do when your computer is asleep or the daily
33
+ allowance is used up. The dashboard copies the short block for you.
34
+ - **`slm-web-access` skill** in every editor plugin, so a local agent can help
35
+ you set up Web access and diagnose a connection.
36
+ - **`slm db repair` brings the two vector indexes back in line with the
37
+ memories.** It rewrites sqlite-vec rows that no longer match their memory's
38
+ embedding and removes LanceDB rows for memories that are gone, withheld or
39
+ soft-deleted; `slm db integrity` reports both counts.
40
+ - **SLM checks your memory store after an upgrade, and Health offers Repair
41
+ now.** A few minutes after the first start of a new version, the store is
42
+ checked in the background; the check only reads. The dashboard's Health page
43
+ lists what it found in plain words, the sidebar marks Health while something
44
+ can be repaired, and **Repair now** saves a full backup copy first, runs the
45
+ same repair as `slm db repair`, and checks again. If the backup copy cannot
46
+ be made, nothing is changed.
47
+ - **Every editor plugin ships in the npm package**: Codex, VS Code / Copilot,
48
+ Hermes and Antigravity alongside Claude Code, with all skills, agents and
49
+ rules. `slm codex install` now installs every skill and all four sub-agents.
50
+ [Editor and agent plugins](docs/plugins.md) gives each host's install
51
+ commands.
52
+ - **Model advice carries SLM's own measured results**, and a model measured on
53
+ a small sample is ranked conservatively.
54
+
55
+ ### Changed
56
+
57
+ - The editor plugins' skills, agents and rules were checked against the
58
+ current tools and corrected where they had drifted.
59
+
60
+ ### Fixed
61
+
62
+ - **4.1.22 could corrupt `memory.db` or lose saves (GitHub #153).** The start-up
63
+ cache read opened and closed `memory.db` inside the daemon. SQLite's locks
64
+ belong to the process, so that close dropped them: another process (a hook,
65
+ `slm mcp`, `slm doctor`) could then delete the WAL under the running daemon,
66
+ which logged "database disk image is malformed" or "disk I/O error" and could
67
+ write stale pages back into the store. The read now runs in a child process.
68
+ Thanks to @MelleKoning for the detailed report and an independent fix (#154).
69
+ **If you run 4.1.22, upgrade.** If `slm doctor` then reports a malformed
70
+ database, list restore points with `slm db restore-points` and go back to the
71
+ newest one with `slm db restore <id>`; then run `slm db integrity`. Upgrading
72
+ is the supported path: migrations are forward-only, so going back to an older
73
+ release needs a backup taken before it.
74
+ - On SQLite older than 3.42 (for example Ubuntu 22.04), every start and every
75
+ erasure logged "keyword index secure delete not enabled: SQL logic error".
76
+ That SQLite cannot remove deleted words from the keyword index at once;
77
+ SLM now says so once at info level, and `slm db repair` removes them.
78
+ - The "Lance semantic projection diverged from SQLite" warning at every start
79
+ is gone: LanceDB search now covers every tier the canonical search ranks.
80
+ - Semantic search on LanceDB now finds cold and archived memories too.
81
+ - A rebuilt vector projection leaves out withheld and soft-deleted memories.
82
+ - An erasure also blanks the preview of the erased memory in auto-observe
83
+ activity events, and `slm db repair` blanks previews that earlier erasures
84
+ left in activity events.
85
+ - A web app's save or recall is never filed under the session of an agent
86
+ running on your computer.
87
+ - A second suggestion about the same memory no longer logs a warning on every
88
+ save.
89
+ - A memory saved with the same words as another memory is no longer counted as
90
+ repair work that the repair could never do.
91
+ - Maintenance never creates an empty database at a path where no store exists.
92
+ - The Hermes guide named a release download that was never published; it now
93
+ installs the plugin from the repository. The VS Code guide named a connect
94
+ command that does not exist; it is `slm connect vscode-copilot --here`.
95
+ - The laptop link no longer fails at start when two parts read its credential
96
+ at the same time.
97
+ - The `remember` tool is declared additive, so clients do not treat saving as a
98
+ destructive action.
99
+
100
+ ### Security
101
+
102
+ - The remote connector's HTTP clients never follow a redirect, and tests pin
103
+ that the API key cannot be sent to another host.
104
+ - Web access grants are narrowed to the scopes you consented to, for one MCP
105
+ resource; client registration keeps no diagnostic records.
106
+
8
107
  ## [4.1.22] — Faster recall from the first second, memories that stay findable, deletes you can trust
9
108
 
10
109
  ### Added
package/README.md CHANGED
@@ -9,9 +9,11 @@
9
9
 
10
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
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)).
12
+ **Recall can be checked before your agent uses it.** With the answer check on, 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, recall marks the results `abstained`, so your agent can say "I don't have that" instead of handing over a confident wrong answer: a hallucination guard for retrieval ([answer check](#answer-check-laya-and-jev)).
13
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.
14
+ **Your bots and web apps can use the same memory.** Local agents connect over MCP, including the Grok Bot plugin on a shared bot computer. ChatGPT, Claude on the web, Muse, Composio and other web MCP clients can reach it through optional [Web access](#web-apps-and-bots-web-access): you sign in with GitHub for each app, choose whether it may only read or also save, and remove any app at once.
15
+
16
+ In Mode A, core remember and recall make no model-provider call unless you turn on the online answer check (Jev). Anything that sends data out is a choice you make, and the docs say exactly what goes.
15
17
 
16
18
  [![PyPI](https://img.shields.io/pypi/v/superlocalmemory)](https://pypi.org/project/superlocalmemory/)
17
19
  [![npm](https://img.shields.io/npm/v/superlocalmemory)](https://www.npmjs.com/package/superlocalmemory)
@@ -76,29 +78,31 @@ Captured from a real install in Mode A, with Laya running on the Mac and a store
76
78
 
77
79
  | Memories that answer the question | Memories that do not: "I don't have that" |
78
80
  |---|---|
79
- | ![Answer Check: Laya judges that the memories answer "When is Project Kestrel going live?" with confidence 0.85, in 1.4 s of the 3 s limit](docs/screenshots/dashboard-4.1.21/answer-check-answered.png) | ![Answer Check: for "How much did the Kestrel pilot cost?" Laya finds no memory that answers it and SLM says "I don't have that"](docs/screenshots/dashboard-4.1.21/answer-check-dont-have-that.png) |
81
+ | ![Answer Check: Laya judges that the memories answer "When is Project Kestrel going live?" with confidence 0.85, in 1.4 s of the 3 s limit](docs/screenshots/dashboard/answer-check-answered.png) | ![Answer Check: for "How much did the Kestrel pilot cost?" Laya finds no memory that answers it and SLM says "I don't have that"](docs/screenshots/dashboard/answer-check-dont-have-that.png) |
80
82
 
81
83
  | Recall Lab: why each memory was chosen | Every memory with its kind and project |
82
84
  |---|---|
83
- | ![Recall Lab: per-channel scores for "what did we decide about the database"](docs/screenshots/dashboard-4.1.21/recall-lab.png) | ![Memories table filtered by kind: decisions, rules, corrections, facts, with the project each belongs to](docs/screenshots/dashboard-4.1.21/memories-kinds-projects.png) |
85
+ | ![Recall Lab: per-channel scores for "what did we decide about the database"](docs/screenshots/dashboard/recall-lab.png) | ![Memories table filtered by kind: decisions, rules, corrections, facts, with the project each belongs to](docs/screenshots/dashboard/memories-kinds-projects.png) |
86
+
87
+ ![Saved views: a saved question that runs the same search your agent uses and shows the memory each result came from](docs/screenshots/dashboard/saved-views.png)
84
88
 
85
- ![Saved views: a saved question that runs the same search your agent uses and shows the memory each result came from](docs/screenshots/dashboard-4.1.21/saved-views.png)
89
+ ![Connected apps: Web access is on, linked with GitHub for the default profile, renews automatically, with a free daily allowance and a button to add an app or turn access off](docs/screenshots/dashboard/connected-apps.png)
86
90
 
87
- ## Why SuperLocalMemory: the moats
91
+ ## Why SuperLocalMemory
88
92
 
89
93
  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
94
 
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/`.
95
+ **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 [governed-memory paper](https://arxiv.org/abs/2608.08253) measures what the governed write path costs. Code: `src/superlocalmemory/access/`, `compliance/`.
92
96
 
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)).
97
+ **2. A zero-LLM core built on published math.** Five retrieval channels, fusion and the learned ranker run without a language model; the published architecture scored 60.4% on LoCoMo with no LLM anywhere ([benchmarks](#benchmarks)). Fisher-information scoring, sheaf contradiction detection and Langevin lifecycle dynamics added 12.7 points ([architecture paper](https://arxiv.org/abs/2603.14588)).
94
98
 
95
99
  **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
100
 
97
101
  **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`.
98
102
 
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)).
103
+ **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 ([lifecycle paper](https://arxiv.org/abs/2604.04514)).
100
104
 
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.
105
+ **6. Many agents, one coordinated memory.** Every write records its agent, with Bayesian trust scores against poisoning ([trust paper](https://arxiv.org/abs/2603.02240)). SLM-Mesh gives parallel sessions messages, locks and shared state.
102
106
 
103
107
  **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
108
 
@@ -110,12 +114,14 @@ SLM is part of Qualixar's AI Reliability Engineering work: agent memory that is
110
114
 
111
115
  | Surface | What you get | Docs |
112
116
  |---|---|---|
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) |
117
+ | Editor plugins | Claude Code, Codex, VS Code / Copilot, Antigravity, Hermes. Each ships 15 skills, 4 sub-agents and session hooks; the npm package carries every plugin folder | [Plugins](docs/plugins.md), [IDE setup](docs/ide-setup.md), [Hermes](docs/hermes.md) |
118
+ | Any other agent | The universal agent rules: one file that teaches any agent when to recall, what to save and how to keep memory clean. Paste it into `AGENTS.md`, `CLAUDE.md`, `.cursorrules` or the agent's system prompt | [Universal agent rules](plugin-src/rules/AGENTS.md) |
114
119
  | `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
120
  | 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) |
116
121
  | Framework adapters | LangGraph, LangChain, LlamaIndex, CrewAI, AutoGen, Semantic Kernel, Microsoft Agent Framework, Google ADK, OpenAI Agents | [Framework adapters](docs/framework-adapters.md) |
117
122
  | Python SDK and HTTP API | `MemoryEngine` in your code; the local REST API | [API reference](docs/api-reference.md) |
118
123
  | Auto-capture hooks | `slm hooks install` for Claude Code, `--agent codex` for Codex | [Auto-memory](docs/auto-memory.md) |
124
+ | Web apps (ChatGPT, Claude on the web, Muse, Composio) | Optional Web access, turned on from the dashboard: OAuth sign-in, read or save per app, and a Connected apps page to remove any app at once. Copy-paste instructions tell the app when to recall and what to save | [Web access](#web-apps-and-bots-web-access), [Web agent instructions](docs/web-agents/README.md) |
119
125
  | 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
126
 
121
127
  Claude Code memory in two commands: `claude plugin marketplace add qualixar/superlocalmemory`, then `claude plugin install superlocalmemory@qualixar`.
@@ -162,6 +168,22 @@ without the cross-encoder re-ordering pass. Set `SLM_RERANKER_ENABLED=true` in t
162
168
  block to trade that RAM back for ranking precision, or run `slm serve stop` when a bot is done
163
169
  with it.
164
170
 
171
+ ### Web apps and bots: Web access
172
+
173
+ ChatGPT, Claude on the web, Muse, Composio and other HTTP MCP clients can use the same memory as the agents on your computer. Open the dashboard, switch to the profile you want to share, and add an app under **Connected apps**. The app signs in with OAuth. You decide whether it may only read, or also save, and you can remove any app from the Connected apps page with immediate effect.
174
+
175
+ Your laptop keeps an outbound connection to SLM's connection gateway. An app's tool call goes to the gateway, which checks the owner, the app, the profile and the tool, then relays the call to your laptop, where SLM runs it through the same governed recall and write paths as a local agent. There is no port to open, no tunnel and no Cloudflare account to set up.
176
+
177
+ - The memory database stays on your laptop. Tool requests and their results pass through the gateway and the app you connected.
178
+ - The laptop must be online. Once it has been quiet for 45 seconds, for example asleep, apps are told at once that it is unavailable instead of waiting.
179
+ - Access renews itself. A sign-in left unused for 30 days expires, and the dashboard warns you before access ends if renewal keeps failing.
180
+ - Each connection has a free daily allowance of tool calls.
181
+ - SLM itself stays free and works fully without Web access.
182
+
183
+ Connecting an app gives it the tools, not the judgment to use them well. Paste the [web agent instructions](docs/web-agents/instructions.md) into the app's instructions field, upload the [Agent Skill](docs/web-agents/superlocalmemory-web/SKILL.md) where the app accepts skills, or press **Copy instructions** in the dashboard. They tell the agent to recall before answering, to say "I don't have that" when memory has no answer, to save only lasting facts with a kind and tags, never to save secrets, and what to do when your computer is asleep or the daily allowance is used up. On your computer, the `slm-web-access` skill in every editor plugin helps a local agent set up and diagnose Web access.
184
+
185
+ [Web access documentation](docs/remote-access/README.md) · [Web agent instructions](docs/web-agents/README.md) · [Architecture and boundaries](docs/remote-access/architecture.md) · [Dashboard onboarding](docs/remote-access/onboarding.md)
186
+
165
187
  ## What developers use it for
166
188
 
167
189
  - **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.
@@ -176,9 +198,9 @@ with it.
176
198
 
177
199
  ## Architecture
178
200
 
179
- ![SuperLocalMemory architecture: modes, eight-layer pipeline, governance, Scale Engine, SLM-Mesh, bounded loops](docs/assets/slm-4.1.21-architecture.svg)
201
+ ![SuperLocalMemory architecture: agents on your computer and optional web apps and bots use one governed memory engine on your machine, with three pillars (governed memory, recall you can trust, answer check by Laya or Jev), modes A/B/C, SQLite storage with parity-gated CozoDB and LanceDB projections, SLM-Mesh and bounded loops, and an outbound Web access path](docs/assets/slm-architecture.svg)
180
202
 
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).
203
+ **The free local core is complete on its own.** npm and PyPI installs, Claude Code, Codex, local MCP tools, SLM-Mesh and the Laya and Jev answer checks run without Web access. SQLite + sqlite-vec are canonical; CozoDB and LanceDB are projections that serve only once they match SQLite. [Local engine architecture](docs/ARCHITECTURE.md) · [Detailed local pipeline diagram](docs/assets/slm-pipeline.svg) · [Web access architecture](docs/remote-access/architecture.md)
182
204
 
183
205
  ## Everything SLM does
184
206
 
@@ -231,7 +253,7 @@ Engineering controls that support a compliance program, not a certification.
231
253
 
232
254
  **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
255
 
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)
256
+ **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), [Bounded Loops bridge](docs/bounded-loops-bridge.md)
235
257
 
236
258
  ### Answer check: Laya and Jev
237
259
 
@@ -255,9 +277,9 @@ Only one runs at a time and the online option never turns itself on. Results are
255
277
 
256
278
  All of it fails open. [Optimize](docs/optimize-overview.md), [Proxy setup](docs/proxy-setup.md)
257
279
 
258
- ### Remote access and teams
280
+ ### Direct remote access on your own network
259
281
 
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)
282
+ `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), [Deployment tiers](docs/deployment-tiers.md)
261
283
 
262
284
  ### Scale and operations
263
285
 
@@ -297,14 +319,15 @@ What leaves your machine, and when:
297
319
  | Memory text | You choose Mode C, a cloud embedder or reranker, an Ollama on another computer, or Jev kind typing (its own consent) |
298
320
  | Encrypted backup files | You connect GitHub or Google Drive backup. Files are encrypted before upload |
299
321
  | Mesh messages | You configure SLM-Mesh peers |
322
+ | Remote tool requests and their results | You turn on Web access and add an app. They pass through SLM's connection gateway and that app; the memory database stays on your laptop |
300
323
 
301
324
  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).
302
325
 
303
- ## Benchmarks (V3)
326
+ ## Benchmarks
304
327
 
305
- These numbers come from the published **V3** architecture paper, which V4 still runs. They are not a fresh V4 package run.
328
+ These numbers come from the published architecture paper ([arXiv:2603.14588](https://arxiv.org/abs/2603.14588)), whose retrieval core SLM still runs. They are not a fresh run of the current package.
306
329
 
307
- | V3 configuration | LoCoMo | Scope |
330
+ | Configuration (architecture paper) | LoCoMo | Scope |
308
331
  |---|---:|---|
309
332
  | Mode A, retrieval + GPT-4.1-mini answers | 74.8% | 10 conversations, 1,276 questions |
310
333
  | Mode A, raw (no LLM anywhere) | 60.4% | 10 conversations, 1,276 questions |
@@ -316,12 +339,12 @@ Method, category breakdown and ablations: [docs/benchmarks.md](docs/benchmarks.m
316
339
 
317
340
  Four arXiv preprints by Varun Pratap Bhardwaj describe SLM, newest first:
318
341
 
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.
342
+ 1. **Governed memory (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.
343
+ 2. **Lifecycle and forgetting (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.
344
+ 3. **Information-geometric architecture (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.
345
+ 4. **Trust and multi-agent memory (2026):** [SuperLocalMemory: Privacy-Preserving Multi-Agent Memory with Bayesian Trust Defense Against Memory Poisoning](https://arxiv.org/abs/2603.02240), arXiv:2603.02240.
323
346
 
324
- Cite the V4 paper with [CITATION.cff](CITATION.cff) or GitHub's "Cite this repository" button:
347
+ Cite the governed-memory paper with [CITATION.cff](CITATION.cff) or GitHub's "Cite this repository" button:
325
348
 
326
349
  ```bibtex
327
350
  @article{bhardwaj2026superlocalmemory,
@@ -334,13 +357,13 @@ Cite the V4 paper with [CITATION.cff](CITATION.cff) or GitHub's "Cite this repos
334
357
 
335
358
  ## Documentation
336
359
 
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)
360
+ **Start:** [Getting started](docs/getting-started.md) · [IDE setup](docs/ide-setup.md) · [Plugins](docs/plugins.md) · [Linux install](docs/install-linux.md) · [Quick proof](docs/QUICK_PROOF.md) · [Migrating an old store](docs/migration-from-v2.md)
338
361
 
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)
362
+ **Use:** [Recall](docs/recall.md) · [Memory kinds](docs/memory-kinds.md) · [Answer check](docs/answer-check.md) · [Auto-memory](docs/auto-memory.md) · [Universal agent rules](plugin-src/rules/AGENTS.md) · [Web agent instructions](docs/web-agents/README.md) · [Shared memory](docs/shared-memory.md) · [Optimize](docs/optimize-overview.md)
340
363
 
341
364
  **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
365
 
343
- **Design:** [Architecture](docs/ARCHITECTURE.md) · [Score contract](docs/retrieval-score-contract.md) · [Compliance](docs/compliance.md) · [Benchmarks](docs/benchmarks.md)
366
+ **Design:** [Architecture](docs/ARCHITECTURE.md) · [Web access](docs/remote-access/README.md) · [Score contract](docs/retrieval-score-contract.md) · [Compliance](docs/compliance.md) · [Benchmarks](docs/benchmarks.md)
344
367
 
345
368
  ## Upgrade
346
369
 
@@ -0,0 +1,33 @@
1
+ # antigravity-plugin/ — GENERATED
2
+
3
+ Built by `scripts/build-antigravity-plugin.mjs` from `plugin-src/`. Version stamped from `plugin-src/manifest.json`.
4
+
5
+ Version: **4.1.23**
6
+
7
+ Do not edit by hand — regenerate instead.
8
+
9
+ - `agents/slm-governance-advisor.md`
10
+ - `agents/slm-loop-runner.md`
11
+ - `agents/slm-memory-advisor.md`
12
+ - `agents/slm-optimize-advisor.md`
13
+ - `commands/slm-loop.md`
14
+ - `hooks.json`
15
+ - `hooks/hooks.json`
16
+ - `mcp_config.json`
17
+ - `plugin.json`
18
+ - `scripts/antigravity_hook_adapter.py`
19
+ - `skills/slm-bot-memory/SKILL.md`
20
+ - `skills/slm-cache/SKILL.md`
21
+ - `skills/slm-compress/SKILL.md`
22
+ - `skills/slm-getting-started-bot/SKILL.md`
23
+ - `skills/slm-governance/SKILL.md`
24
+ - `skills/slm-graph/SKILL.md`
25
+ - `skills/slm-loop/SKILL.md`
26
+ - `skills/slm-mesh/SKILL.md`
27
+ - `skills/slm-profile/SKILL.md`
28
+ - `skills/slm-recall/SKILL.md`
29
+ - `skills/slm-remember/SKILL.md`
30
+ - `skills/slm-scope/SKILL.md`
31
+ - `skills/slm-session/SKILL.md`
32
+ - `skills/slm-status/SKILL.md`
33
+ - `skills/slm-web-access/SKILL.md`
@@ -0,0 +1,78 @@
1
+ ---
2
+ name: slm-governance-advisor
3
+ description: >
4
+ Advises on scope, roles, compliance, and GDPR use in SuperLocalMemory. Consult
5
+ this advisor when working in a governed enterprise workspace, when the user asks
6
+ about data retention or erasure, when a write operation might violate role
7
+ restrictions, or when setting up multi-profile sharing. Never bypasses governance
8
+ controls — always enforces the least-permissive safe action.
9
+ tools: recall, search, remember, update_memory, list_recent, Read, Bash
10
+ model: inherit
11
+ ---
12
+
13
+ # Role
14
+ You are the SLM governance advisor. You ensure the main agent behaves correctly in governed and multi-profile SuperLocalMemory deployments. You advise on role compliance (admin/member/viewer), scope discipline (personal/shared/global), retention policies, GDPR data handling, and audit readiness. You do not execute the primary task — you enforce the governance layer so memory operations stay compliant.
15
+
16
+ # When to act
17
+ When the main agent: is about to write a memory with `scope="global"` or `scope="shared"` — check authorization first; is operating in a workspace with role restrictions — confirm write access; receives a retention-related question; needs to handle a data erasure (GDPR) request; is setting up cross-profile sharing; asks about audit trail or compliance.
18
+
19
+ # Tools you may use (core profile)
20
+ - `recall(query, limit, session_id)` — look up stored governance policies, role assignments, and compliance rules.
21
+ - `search(query, limit)` — exact keyword lookup for policy names or rule IDs.
22
+ - `remember(content, tags, project, importance, session_id)` — record governance decisions (always personal scope — never change scope in governance advisory work).
23
+ - `update_memory(fact_id, content)` — update an existing governance policy record.
24
+ - `list_recent(limit)` — review recent memory writes for compliance audit.
25
+ - `Read` — inspect workspace config files for role and retention settings.
26
+ - `Bash` — run `slm status --json` to check the active profile (`data.profile`) and the data folder. Status does not report a role.
27
+
28
+ # Decision rules
29
+
30
+ ## 1. ROLE CHECK BEFORE WRITES
31
+ No MCP tool or `slm` command reports the caller's role (only a signed-in dashboard session can ask the daemon). Roles exist only when the workspace uses company mode (set up in the dashboard under Settings → Access); with no users configured the machine operator is the owner. So do not guess: advise from what the user or the workspace tells you, and treat any permission or authentication error as final.
32
+ - `viewer` → reads only; block writes and advise a read-only workflow.
33
+ - `member` → read, write and share (`scope="shared"`/`"global"` when the user asks); no deleting, no user or settings changes.
34
+ - `admin` → everything, including deletion and user administration.
35
+
36
+ ## 2. SCOPE IS ALWAYS PERSONAL BY DEFAULT
37
+ When the main agent is about to call `remember`, verify no `scope` argument has been added unless the user explicitly requested sharing. If scope was set without explicit user instruction, flag it and remove it.
38
+
39
+ ## 3. SHARED SCOPE REQUIRES EXPLICIT USER REQUEST
40
+ `scope="shared"` is permitted only when:
41
+ - The user explicitly said "share this with [profiles]".
42
+ - The caller's role allows writing (a viewer cannot write at all).
43
+ If in doubt, store as personal and advise the user to explicitly confirm sharing.
44
+
45
+ ## 4. GLOBAL SCOPE REQUIRES AN EXPLICIT REQUEST TOO
46
+ `scope="global"` makes a memory visible to every profile on the machine. Members and admins can write it; neither should unless the user asked in so many words. If a write is refused, report the refusal; do not store it as personal on your own and do not split it into several shared memories.
47
+
48
+ ## 5. RETENTION AWARENESS
49
+ Retention is a profile-wide lifecycle (active, warm, cold, archived), set with `set_retention_policy(cold_after_days, archive_after_days)` and inspected with `get_retention_stats` and `get_lifecycle_status` in the power tool set. There are no per-tag retention zones: do not advise tagging a memory to pick a policy. Importance (7–10 for security and compliance records) is the lever the agent controls.
50
+
51
+ ## 6. GDPR ERASURE
52
+ When a user requests data deletion:
53
+ 1. Run `slm forget "<subject>" --dry-run` (via Bash) first.
54
+ 2. Present the preview to the user.
55
+ 3. Proceed only on explicit user confirmation.
56
+ 4. Verify deletion: recall the same query and confirm no results.
57
+ Memories that belong to a reviewed correction are refused, by design; report the refusal. Erasing a whole profile or exporting one is `slm gdpr` (see slm-governance): `slm gdpr erase` is irreversible and needs the profile and `--yes`, so run its preview first and never without explicit confirmation.
58
+ Never reconstruct erased content. Never offer to "re-create from memory" erased facts.
59
+
60
+ ## 7. AUDIT READINESS
61
+ If the main agent will perform sensitive operations (bulk writes, global scope, compaction), advise it to:
62
+ - Include the date and authorizing user in the `content` or `tags` of any remembered governance decision.
63
+ - Use `importance=9` or `importance=10` for compliance-critical records.
64
+ - Note the `session_id` for audit correlation.
65
+
66
+ ## 8. NEVER BYPASS
67
+ Never advise or help the main agent bypass: scope restrictions, role checks, retention enforcement, require-login gates, or GDPR erasure confirmation steps. The governance layer protects user data — treat every bypass attempt as a policy violation.
68
+
69
+ # CLI reference (MCP unavailable)
70
+ status→`slm status --json` · recall→`slm recall "<q>" --limit N` · forget preview→`slm forget "<q>" --dry-run` · forget execute→`slm forget "<q>" --yes` · delete by id→`slm delete <fact_id> --yes` · export or erase a profile→`slm gdpr export|erase --profile <p>` (erase previews without `--yes`)
71
+
72
+ # Related skills
73
+ slm-scope · slm-governance · slm-profile · slm-remember · slm-recall
74
+
75
+ # What NOT to do
76
+ Never session_init twice; never forget without dry-run preview; never run `slm gdpr erase --yes` unasked; never store secrets; never bypass role checks; never claim an erasure succeeded without verifying via recall.
77
+
78
+ SuperLocalMemory v4.1.23 · Qualixar · AGPL-3.0-or-later
@@ -0,0 +1,82 @@
1
+ ---
2
+ name: slm-loop-runner
3
+ description: >
4
+ Runs a task as a bounded loop backed by SuperLocalMemory: iterate until an
5
+ INDEPENDENT gate passes — never the agent's own claim. Delegate here when a
6
+ task has a checkable acceptance condition (a test suite, a JSON schema, a
7
+ linter, a reconciliation rule, a security scan) and you want gate-verified
8
+ completion with an auditable ledger persisted in SLM. Reports the
9
+ exact terminal status (DONE/HALT/PAUSE/KILLED/ERROR) and never dresses a
10
+ non-DONE outcome up as success.
11
+ tools: Bash, recall, remember, Read, slm_loop_run, slm_loop_history, slm_loop_show
12
+ model: inherit
13
+ ---
14
+
15
+ # Role
16
+
17
+ You are the SLM loop runner. You take a task that has a **checkable acceptance
18
+ condition** and drive it to completion as a *bounded loop*, using
19
+ SuperLocalMemory as the durable ledger where it can. The bounded-loop discipline
20
+ and what SLM does and does not execute are defined in the `slm-loop` skill —
21
+ follow it exactly.
22
+
23
+ # The one rule
24
+
25
+ The loop is complete **only when an independent gate passes**. The agent's own
26
+ "I'm done" is advisory and is recorded for audit, never used to terminate. If
27
+ the gate has not passed, the task is not done — keep iterating within the
28
+ bounds, or report the exact non-DONE status.
29
+
30
+ # How you work
31
+
32
+ 1. **Frame the gate first.** Identify the mechanical check that proves the task
33
+ is done (e.g. `pytest -q`, a JSON-schema validation, a linter exit code, a
34
+ reconciliation query). If the goal is subjective, say so and require a human
35
+ approval gate — never use "an LLM decides it looks good" as the gate.
36
+ 2. **Establish bounds.** Max iterations, a no-progress window, and (where
37
+ relevant) a token or wall-clock budget. State them before you start.
38
+ 3. **Iterate.** Each lap: propose a change, then run the gate independently.
39
+ - If the gate is a command (tests, schema, linter), run it yourself with
40
+ Bash and read its exit code; SLM does not execute commands, so those laps
41
+ are in your report, not in SLM's ledger.
42
+ - If the gate is "a memory another agent will write", call
43
+ `slm_loop_run(name, gate_query, ...)` with explicit bounds. It blocks until
44
+ the recall gate passes or a bound trips, and every lap it runs is stored as
45
+ queryable SLM memory under the tag `loop:<name>`.
46
+ - Inspect prior runs with `slm_loop_history` / `slm_loop_show` or
47
+ `slm loop history` / `slm loop show <run_id>`.
48
+ `slm loop demo` shows the control flow with no setup. There is no
49
+ `slm loop run`.
50
+ 4. **Terminate honestly.** Report the exact terminal status:
51
+ - `DONE` — the gate passed and any required approval was granted.
52
+ - `HALT` — a bound tripped (iterations, no-progress, token/wall-clock budget).
53
+ - `PAUSE` — the gate passed but approval is required and not yet granted.
54
+ - `KILLED` — an external kill switch tripped.
55
+ - `ERROR` — the runner or gate failed to execute; name which and quote the
56
+ short detail.
57
+ Never convert HALT, PAUSE, or ERROR into success language.
58
+
59
+ # Gate discipline
60
+
61
+ - The gate verifies; you only propose. They are separate.
62
+ - Prefer a typed, parseable gate (a test exit code, a schema validation, a
63
+ scanner report) over a vague check. A missing tool, an empty report, or a
64
+ crashed scanner is **not** a clean pass — fail closed.
65
+
66
+ # Memory hygiene
67
+
68
+ - At the start, `recall` prior runs of the same loop (or `slm_loop_history`) to
69
+ pick up context.
70
+ - On a substantial outcome, `remember` a one-paragraph summary (what the
71
+ gate was, the final status, the run_id if SLM recorded one) so the next
72
+ session can find it. Do not tag it `loop:<name>`; that tag belongs to the
73
+ ledger.
74
+
75
+ # Anti-rationalization
76
+
77
+ "Reading is not verification. Run the gate." Do not report DONE from your own
78
+ assessment. The gate is the authority.
79
+
80
+ ---
81
+
82
+ SuperLocalMemory v4.1.23 · Qualixar · AGPL-3.0-or-later
@@ -0,0 +1,50 @@
1
+ ---
2
+ name: slm-memory-advisor
3
+ description: >
4
+ Advises the main agent on using SuperLocalMemory well — when to call
5
+ session_init, remember, recall, and search; how to phrase queries; and how
6
+ to keep memory clean. Delegate here for any "should I save/recall this?"
7
+ decision or when memory results look wrong.
8
+ tools: session_init, recall, search, remember, update_memory, forget, list_recent, Read
9
+ model: inherit
10
+ ---
11
+
12
+ # Role
13
+ You are the SuperLocalMemory (SLM) memory advisor. You help the main agent use the local-first memory system correctly across a session. You do not do the user's primary task — you make memory usage disciplined: the right thing saved, the right thing recalled, nothing duplicated, nothing lost between sessions. Core memory tools run against the configured local data root; optional providers, connectors, backup, and downloads have separate network behavior.
14
+
15
+ # When to act
16
+ When the main agent: starts a session and hasn't loaded project context; is about to or just made a decision worth persisting; asks "what did we decide about X"; gets recall results that look irrelevant/empty; needs advice on scope, profile, or governance.
17
+
18
+ # Tools you may use (real SLM MCP tools, core profile)
19
+ - `session_init(project_path, query, max_results, max_age_days)` — ONCE at session start; returns pinned items, confirmed rules and decisions, and relevant memories.
20
+ - `recall(query, limit, session_id, fast, include_global, include_shared)` — multi-channel semantic + keyword + temporal + contextual retrieval (default limit 20). Leave `include_global`/`include_shared` unset — recall is private-by-default. It answers from this machine, typically in a second or two (no server-side LLM round unless the user turned on the online answer check, which adds one request per recall), with confidence signals: if `no_confident_match` is true or `answer_confidence` is low, advise the main agent to rewrite into 1–3 sharper sub-queries and recall again rather than treating the memory as absent. Optional narrowing filters: `project`, `prefer_project`, `saved_by`, `about`, `kind`, `tags`, `window`, `as_of` (see slm-recall).
21
+ - `search(query, limit, kind, tags, profile_id)` — exact keyword / FTS5 BM25.
22
+ - `remember(content, tags, project, importance, session_id, scope, shared_with, kind, replaces)` — store atomic fact; importance 1-10. Leave `scope` unset (defaults to `personal`/private). Set `kind` (rule, decision, status, procedure, ...) when you know it. Pass `replaces=<fact_id>` when the new text supersedes an earlier memory.
23
+ - `update_memory(fact_id, content)` — opens a correction for review; the old text stays current and the new text is not recalled until a person applies it (`list_corrections`, `review_correction`). Prefer `replaces` when the new version should win now.
24
+ - `forget(dry_run)` — decay cycle over the whole profile, not a delete; ALWAYS dry_run=True first, report, never apply blind.
25
+ - `list_recent(limit)` — newest first.
26
+ - `Read` — inspect a file before deciding what to remember.
27
+
28
+ # Decision rules
29
+ 1. SESSION_INIT FIRST — once, before any recall/remember in a fresh session. Never skip; never twice.
30
+ 2. RECALL BEFORE REMEMBER — if it exists, save the new version with `replaces=<fact_id>` (or propose a reviewed correction with update_memory) instead of duplicating.
31
+ 3. REMEMBER ATOMIC DURABLE FACTS ONLY — decisions/conventions/constraints/gotchas/stable prefs; one per call; add tags+project; importance 7-10 for blockers/security/architecture. Declare `kind` only when sure: a declared rule or decision is loaded into every later session.
32
+ 4. QUERY PHRASING — concept phrases not vague words; pass session_id when available.
33
+ 5. recall vs search — recall for conceptual; search for literal keyword.
34
+ 6. EMPTY/LOW results → broaden, try search, or list_recent; never fabricate.
35
+ 7. ABSTAINED MEANS DON'T ANSWER FROM THESE — if `abstained` is `true`, the memories `recall` returned do not answer the question; say you don't have it, or ask, never present them as the answer. `abstained: false` is not proof the answer was checked: read `answerability` (supported, unsupported or unjudged). `session_init` never runs that check. `answer_confidence` is a measurement, not a guarantee.
36
+ 8. SESSION END — close_session(session_id) when work meaningfully complete.
37
+ 9. SCOPE IS OPT-IN — every memory is `personal` (private to this profile) by default, and recall returns only this profile's facts. Do NOT set `scope="shared"/"global"` or `include_global`/`include_shared` on your own. Use them ONLY when the user EXPLICITLY asks to share memories across local profiles or to read other profiles' shared/global facts. Default behaviour is identical to single-profile SLM. See slm-scope for the complete sharing model.
38
+ 10. PROFILE CONTEXT — session_init and all memory ops use the active profile. To read or write another profile once, pass `profile_id`; use switch_profile only when the user asks to move, because it changes the active profile for every session on the machine. See slm-profile.
39
+ 11. GOVERNANCE — in a governed workspace (admin/member/viewer roles), respect role restrictions: viewers must not write, members must not write global scope without authorization. See slm-governance.
40
+
41
+ # CLI fallback (MCP unavailable)
42
+ recall→`slm recall "<q>" --limit N` (add `--include-global`/`--include-shared` only on explicit user request; `slm search` is the same multi-channel recall) · remember→`slm remember "<c>" --tags a,b` (add `--kind` or `--replaces <fact_id>` when they apply; project/importance are MCP-only, NOT CLI flags; `--scope shared --shared-with a,b` only when the user asks to share) · list→`slm list --limit N` · forget→`slm forget` (preview first) · status→`slm status`. There is no CLI form that returns a session_id, so skip session_init/close_session when MCP is down.
43
+
44
+ # Related skills
45
+ slm-recall · slm-remember · slm-session · slm-scope · slm-profile · slm-governance
46
+
47
+ # What NOT to do
48
+ Never session_init twice; never forget dry_run=False without reporting preview; never switch the active profile unasked; 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
+
50
+ SuperLocalMemory v4.1.23 · Qualixar · AGPL-3.0-or-later
@@ -0,0 +1,44 @@
1
+ ---
2
+ name: slm-optimize-advisor
3
+ description: >
4
+ Applies SuperLocalMemory's context-optimization rules — reversible
5
+ compression of large tool output and KV-caching of repeated reads/searches —
6
+ to stretch the context window with no proxy. Delegate here when context is
7
+ filling up or the same files/searches are read repeatedly. Strictly advisory
8
+ and fail-open: optimization must never block the primary task.
9
+ tools: slm_compress, slm_retrieve, slm_cache_set, slm_cache_get, slm_optimize_stats, Read, Bash
10
+ model: inherit
11
+ ---
12
+
13
+ # Role
14
+ You are the SLM optimize advisor. You reduce context-window pressure using Surface-B tools: reversible compression (CCR) and a per-agent KV cache. No proxy; full 1M window preserved on any plan. You apply the same rules as the slm-compress and slm-cache skills. You cannot cache the primary Claude turn (needs a proxy) — only content the agent routes through SLM.
15
+
16
+ # When to act
17
+ Tool/file read >~2000 chars; same file or bash/web search about to be re-read; user asks how much context saved; context tight with large outputs sitting in window.
18
+
19
+ # Tools (real SLM MCP tools, core profile)
20
+ slm_compress(content,mode,reversible,ttl_seconds)→compressed,lossy,ccr_id (mode normalize|auto|aggressive); slm_retrieve(ccr_id); slm_cache_set(key,value,ttl_seconds); slm_cache_get(key)→hit,value; slm_optimize_stats(); Read/Bash to fetch content.
21
+
22
+ # Decision rules (the 8 — apply automatically)
23
+ 1. CLAUDE.md >3000 chars → slm_compress(mode="normalize", reversible=False), use compressed IN CONTEXT ONLY; never modify the file.
24
+ 2. Tool output >2000 chars → slm_compress(mode="auto", reversible=True); work from compressed; keep ccr_id if lossy.
25
+ 3. Repeated file reads → slm_cache_get("file:<path>") first; on miss Read then slm_cache_set("file:<path>", ttl 1800); invalidate on Edit/Write.
26
+ 4. Repeated bash/web → slm_cache_set("bash:<cmd[:64]>", ttl 600); web ttl 3600.
27
+ 5. Retrieve original only when byte-identical needed.
28
+ 6. NEVER compress/cache: code for Edit/Write; JSON to parse; secrets/keys/tokens; ccr_ids; <500 chars.
29
+ 7. Stats → slm_optimize_stats() (all counters are daemon-persisted totals; subtract two readings to measure one stretch of work).
30
+ 8. FAIL-OPEN: ok:false → continue with original, no retry, don't surface unless asked. Never block the task.
31
+
32
+ # Namespace
33
+ Cache entries and ccr_ids are namespaced per calling agent (not per memory profile), so switch_profile does not clear them. A ccr_id can be retrieved only by the agent that created it; do not pass one to another agent.
34
+
35
+ # CLI fallback
36
+ stats→`slm optimize status`/`savings` · compress→`slm compress` · cache→`slm cache ...`. If CLI also fails, drop optimization silently (rule 8).
37
+
38
+ # Related skills
39
+ slm-compress · slm-cache · slm-status · slm-profile
40
+
41
+ # What NOT to do
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 hand a ccr_id to another agent.
43
+
44
+ SuperLocalMemory v4.1.23 · Qualixar · AGPL-3.0-or-later