superlocalmemory 3.6.14 → 3.6.16

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 (66) hide show
  1. package/CHANGELOG.md +28 -0
  2. package/README.md +23 -6
  3. package/package.json +1 -1
  4. package/plugin/.claude-plugin/plugin.json +1 -1
  5. package/plugin/CLAUDE.md +5 -4
  6. package/plugin/agents/slm-memory-advisor.md +5 -4
  7. package/plugin/agents/slm-optimize-advisor.md +1 -1
  8. package/plugin/requirements.txt +1 -1
  9. package/plugin/skills/slm-cache/SKILL.md +1 -1
  10. package/plugin/skills/slm-compress/SKILL.md +1 -1
  11. package/plugin/skills/slm-graph/SKILL.md +1 -1
  12. package/plugin/skills/slm-recall/SKILL.md +10 -2
  13. package/plugin/skills/slm-remember/SKILL.md +14 -2
  14. package/plugin/skills/slm-session/SKILL.md +1 -1
  15. package/plugin/skills/slm-status/SKILL.md +1 -1
  16. package/plugin-src/agents/slm-memory-advisor.md +5 -4
  17. package/plugin-src/agents/slm-optimize-advisor.md +1 -1
  18. package/plugin-src/commands/slm-optimize.md +1 -1
  19. package/plugin-src/commands/slm-recall.md +1 -1
  20. package/plugin-src/commands/slm-remember.md +2 -2
  21. package/plugin-src/commands/slm-status.md +1 -1
  22. package/plugin-src/manifest.json +1 -1
  23. package/plugin-src/requirements.txt +1 -1
  24. package/plugin-src/rules/AGENTS.md +5 -4
  25. package/plugin-src/rules/CLAUDE.md.fragment +5 -4
  26. package/plugin-src/skills/slm-cache/SKILL.md +1 -1
  27. package/plugin-src/skills/slm-compress/SKILL.md +1 -1
  28. package/plugin-src/skills/slm-graph/SKILL.md +1 -1
  29. package/plugin-src/skills/slm-recall/SKILL.md +10 -2
  30. package/plugin-src/skills/slm-remember/SKILL.md +14 -2
  31. package/plugin-src/skills/slm-session/SKILL.md +1 -1
  32. package/plugin-src/skills/slm-status/SKILL.md +1 -1
  33. package/pyproject.toml +1 -1
  34. package/scripts/build-plugin.js +1 -1
  35. package/src/superlocalmemory/__init__.py +1 -1
  36. package/src/superlocalmemory/cli/commands.py +91 -2
  37. package/src/superlocalmemory/cli/main.py +45 -0
  38. package/src/superlocalmemory/cli/setup_wizard.py +27 -0
  39. package/src/superlocalmemory/core/backend_orchestrator.py +12 -8
  40. package/src/superlocalmemory/core/config.py +115 -0
  41. package/src/superlocalmemory/core/engine.py +74 -3
  42. package/src/superlocalmemory/core/fact_consolidator.py +20 -3
  43. package/src/superlocalmemory/core/platform_utils.py +8 -0
  44. package/src/superlocalmemory/core/recall_pipeline.py +7 -0
  45. package/src/superlocalmemory/core/recall_worker.py +7 -0
  46. package/src/superlocalmemory/core/store_pipeline.py +23 -1
  47. package/src/superlocalmemory/core/worker_pool.py +14 -2
  48. package/src/superlocalmemory/hooks/session_registry.py +8 -4
  49. package/src/superlocalmemory/mcp/_daemon_proxy.py +12 -2
  50. package/src/superlocalmemory/mcp/_pool_adapter.py +15 -6
  51. package/src/superlocalmemory/mcp/tools_core.py +25 -0
  52. package/src/superlocalmemory/mcp/tools_v3.py +6 -1
  53. package/src/superlocalmemory/mcp/tools_v33.py +8 -4
  54. package/src/superlocalmemory/retrieval/bm25_channel.py +12 -2
  55. package/src/superlocalmemory/retrieval/engine.py +36 -3
  56. package/src/superlocalmemory/retrieval/entity_channel.py +5 -5
  57. package/src/superlocalmemory/retrieval/hopfield_channel.py +10 -2
  58. package/src/superlocalmemory/retrieval/semantic_channel.py +10 -2
  59. package/src/superlocalmemory/server/unified_daemon.py +132 -10
  60. package/src/superlocalmemory/storage/database.py +215 -43
  61. package/src/superlocalmemory/storage/migration_runner.py +17 -1
  62. package/src/superlocalmemory/storage/migrations/M016_add_scope_support.py +120 -0
  63. package/src/superlocalmemory/storage/models.py +10 -0
  64. package/src/superlocalmemory/storage/schema.py +15 -10
  65. package/src/superlocalmemory.egg-info/PKG-INFO +24 -7
  66. package/src/superlocalmemory.egg-info/SOURCES.txt +1 -0
@@ -110,6 +110,8 @@ _SQL_MEMORIES: Final[str] = """
110
110
  CREATE TABLE IF NOT EXISTS memories (
111
111
  memory_id TEXT PRIMARY KEY,
112
112
  profile_id TEXT NOT NULL DEFAULT 'default',
113
+ scope TEXT NOT NULL DEFAULT 'personal',
114
+ shared_with TEXT,
113
115
  content TEXT NOT NULL,
114
116
  session_id TEXT NOT NULL DEFAULT '',
115
117
  speaker TEXT NOT NULL DEFAULT '',
@@ -127,8 +129,7 @@ CREATE INDEX IF NOT EXISTS idx_memories_profile
127
129
  CREATE INDEX IF NOT EXISTS idx_memories_session
128
130
  ON memories (profile_id, session_id);
129
131
  CREATE INDEX IF NOT EXISTS idx_memories_created
130
- ON memories (created_at);
131
- """
132
+ ON memories (created_at);"""
132
133
 
133
134
 
134
135
  # ---------------------------------------------------------------------------
@@ -140,6 +141,8 @@ CREATE TABLE IF NOT EXISTS atomic_facts (
140
141
  fact_id TEXT PRIMARY KEY,
141
142
  memory_id TEXT NOT NULL,
142
143
  profile_id TEXT NOT NULL DEFAULT 'default',
144
+ scope TEXT NOT NULL DEFAULT 'personal',
145
+ shared_with TEXT,
143
146
  content TEXT NOT NULL,
144
147
  fact_type TEXT NOT NULL DEFAULT 'semantic'
145
148
  CHECK (fact_type IN (
@@ -208,8 +211,7 @@ CREATE INDEX IF NOT EXISTS idx_facts_referenced_date
208
211
  WHERE referenced_date IS NOT NULL;
209
212
  CREATE INDEX IF NOT EXISTS idx_facts_interval
210
213
  ON atomic_facts (profile_id, interval_start, interval_end)
211
- WHERE interval_start IS NOT NULL;
212
- """
214
+ WHERE interval_start IS NOT NULL;"""
213
215
 
214
216
 
215
217
  # ---------------------------------------------------------------------------
@@ -287,6 +289,8 @@ _SQL_CANONICAL_ENTITIES: Final[str] = """
287
289
  CREATE TABLE IF NOT EXISTS canonical_entities (
288
290
  entity_id TEXT PRIMARY KEY,
289
291
  profile_id TEXT NOT NULL DEFAULT 'default',
292
+ scope TEXT NOT NULL DEFAULT 'personal',
293
+ shared_with TEXT,
290
294
  canonical_name TEXT NOT NULL,
291
295
  entity_type TEXT NOT NULL DEFAULT '',
292
296
  first_seen TEXT NOT NULL DEFAULT (datetime('now')),
@@ -302,8 +306,7 @@ CREATE INDEX IF NOT EXISTS idx_entities_profile
302
306
  CREATE INDEX IF NOT EXISTS idx_entities_name_lower
303
307
  ON canonical_entities (profile_id, canonical_name COLLATE NOCASE);
304
308
  CREATE INDEX IF NOT EXISTS idx_entities_type
305
- ON canonical_entities (profile_id, entity_type);
306
- """
309
+ ON canonical_entities (profile_id, entity_type);"""
307
310
 
308
311
 
309
312
  # ---------------------------------------------------------------------------
@@ -386,6 +389,8 @@ _SQL_TEMPORAL_EVENTS: Final[str] = """
386
389
  CREATE TABLE IF NOT EXISTS temporal_events (
387
390
  event_id TEXT PRIMARY KEY,
388
391
  profile_id TEXT NOT NULL DEFAULT 'default',
392
+ scope TEXT NOT NULL DEFAULT 'personal',
393
+ shared_with TEXT,
389
394
  entity_id TEXT NOT NULL,
390
395
  fact_id TEXT NOT NULL,
391
396
  observation_date TEXT,
@@ -408,8 +413,7 @@ CREATE INDEX IF NOT EXISTS idx_tevents_entity
408
413
  ON temporal_events (profile_id, entity_id);
409
414
  CREATE INDEX IF NOT EXISTS idx_tevents_date_range
410
415
  ON temporal_events (profile_id, referenced_date)
411
- WHERE referenced_date IS NOT NULL;
412
- """
416
+ WHERE referenced_date IS NOT NULL;"""
413
417
 
414
418
 
415
419
  # ---------------------------------------------------------------------------
@@ -420,6 +424,8 @@ _SQL_GRAPH_EDGES: Final[str] = """
420
424
  CREATE TABLE IF NOT EXISTS graph_edges (
421
425
  edge_id TEXT PRIMARY KEY,
422
426
  profile_id TEXT NOT NULL DEFAULT 'default',
427
+ scope TEXT NOT NULL DEFAULT 'personal',
428
+ shared_with TEXT,
423
429
  source_id TEXT NOT NULL,
424
430
  target_id TEXT NOT NULL,
425
431
  edge_type TEXT NOT NULL DEFAULT 'entity'
@@ -443,8 +449,7 @@ CREATE INDEX IF NOT EXISTS idx_edges_target
443
449
  CREATE INDEX IF NOT EXISTS idx_edges_type
444
450
  ON graph_edges (profile_id, edge_type);
445
451
  CREATE INDEX IF NOT EXISTS idx_edges_exists_check
446
- ON graph_edges (profile_id, source_id, target_id, edge_type);
447
- """
452
+ ON graph_edges (profile_id, source_id, target_id, edge_type);"""
448
453
 
449
454
 
450
455
  # ---------------------------------------------------------------------------
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: superlocalmemory
3
- Version: 3.6.14
3
+ Version: 3.6.16
4
4
  Summary: Information-geometric agent memory with mathematical guarantees
5
5
  Author-email: Varun Pratap Bhardwaj <admin@superlocalmemory.com>
6
6
  License: AGPL-3.0-or-later
@@ -96,10 +96,10 @@ Dynamic: license-file
96
96
  <img src="https://superlocalmemory.com/assets/logo-mark.png" alt="SuperLocalMemory" width="200"/>
97
97
  </p>
98
98
 
99
- <h1 align="center">SuperLocalMemory V3.6.14</h1>
99
+ <h1 align="center">SuperLocalMemory V3.6.16</h1>
100
100
  <p align="center"><strong>Cache. Compress. Remember. Three surfaces — proxy, MCP tools, or skill. Every setup covered.</strong><br/>
101
101
  <em>To the best of our knowledge, the only zero-cloud agent memory that beats Mem0's zero-LLM score on LoCoMo. Mode A: 74.8% vs Mem0 64.2% — no GPU, no API key, on CPU.</em></p>
102
- <p align="center"><code>v3.6.14</code> — <strong>Plugin-native. Profile-aware. Distributed-ready.</strong><br/>
102
+ <p align="center"><code>v3.6.16</code> — <strong>Plugin-native. Profile-aware. Distributed-ready.</strong><br/>
103
103
  Proxy: <code>slm wrap claude</code> &nbsp;·&nbsp; MCP: add <code>slm_compress</code> to your config &nbsp;·&nbsp; Skill: zero-config</p>
104
104
  <p align="center"><strong>3 published research papers</strong> (arXiv preprints + Zenodo-archived) · <a href="https://arxiv.org/abs/2603.02240">arXiv:2603.02240</a> · <a href="https://arxiv.org/abs/2603.14588">arXiv:2603.14588</a> · <a href="https://arxiv.org/abs/2604.04514">arXiv:2604.04514</a></p>
105
105
 
@@ -194,6 +194,8 @@ Three mathematical contributions replace cloud LLM dependency:
194
194
 
195
195
  Auto-capture hooks (`slm hooks install`) fire only on real signals — topic pivot, web call, file edit — never on a timer. Fail-open, <10ms p99 hot path.
196
196
 
197
+ **Multi-scope memory (v3.6.15, opt-in):** keep memories `personal` (default), `shared` with named profiles, or `global` across the machine. Off by default — recall only ever returns your own facts until you turn sharing on, per call or in config. See **[docs/shared-memory.md](docs/shared-memory.md)**.
198
+
197
199
  <a id="multilingual-embedding-support"></a>
198
200
 
199
201
  **Multilingual:** plug in any OpenAI-compatible embedding endpoint — Ollama, vLLM, LiteLLM, `bge-m3`, `multilingual-e5`, `Qwen3-Embedding`. The math layer is language-agnostic; 30+ languages work at full retrieval quality. No cloud dependency, no code changes.
@@ -254,7 +256,7 @@ Full docs: [docs/multi-machine.md](docs/multi-machine.md) · [docs/distributed-d
254
256
  |:-----|:--------|:-----|
255
257
  | **npm** (recommended) | `npm install -g superlocalmemory` | Node 14+, installs Python deps automatically |
256
258
  | **pip** | `pip install superlocalmemory` | Python 3.11+, direct install |
257
- | **Claude Code Plugin** (WP-06) | `/plugin install superlocalmemory@qualixar` | Self-bootstraps venv, isolated SLM_DATA_DIR, additive — 14-tool core |
259
+ | **Claude Code Plugin** (WP-06) | `/plugin marketplace add qualixar/superlocalmemory` then `/plugin install superlocalmemory@qualixar` | Self-bootstraps venv, isolated SLM_DATA_DIR, additive — 14-tool core. Ships the skills/agents/hooks/commands |
258
260
  | **Portable / IDE connect** (WP-08) | `slm connect <ide> [--here]` | Wire any IDE without reinstalling; `slm connect claude-code` → plugin pointer |
259
261
 
260
262
  After any install path: `slm setup` → `slm doctor` → `slm warmup` (optional, pre-downloads ~500MB embedding model).
@@ -310,18 +312,31 @@ Per-IDE configs available for Claude Code, Cursor, Windsurf, VS Code Copilot, Co
310
312
 
311
313
  ## Claude Code Plugin
312
314
 
313
- Install directly in Claude Code without a system-level npm/pip install:
315
+ Install directly in Claude Code no system-level npm/pip needed. This is how you
316
+ get the **skills, agents, hooks, commands, and rules** (the MCP server is
317
+ bootstrapped automatically). It is a two-step flow — add the marketplace once,
318
+ then install:
314
319
 
315
320
  ```bash
321
+ # 1. Add the Qualixar marketplace (one-time — the repo IS the marketplace)
322
+ /plugin marketplace add qualixar/superlocalmemory
323
+
324
+ # 2. Install the plugin
316
325
  /plugin install superlocalmemory@qualixar
317
326
  ```
318
327
 
319
328
  - Self-bootstraps a Python venv, installs all deps in an isolated `SLM_DATA_DIR`
320
- - Registers 14-tool core MCP surface (`core14` profile by default)
329
+ - Registers the 14-tool core MCP surface (`core14` profile by default)
330
+ - Ships the SLM skills / agents / hooks / commands / rules
321
331
  - Additive — does not replace an existing SLM install
322
332
  - `slm connect claude-code` detects an existing plugin install and links them
323
333
 
324
- See [docs/getting-started.md](docs/getting-started.md) for full plugin walkthrough.
334
+ > **Plugin vs `pip`/`npm`:** `pip install superlocalmemory` / `npm i -g superlocalmemory`
335
+ > give you the `slm` CLI + the MCP server (the *tools*). The **skills/agents/hooks/
336
+ > commands** come only through the plugin above. Use the plugin for Claude Code; use
337
+ > pip/npm for the CLI or other IDEs.
338
+
339
+ To update later: `/plugin marketplace update qualixar` then `/plugin install superlocalmemory@qualixar`.
325
340
 
326
341
  ---
327
342
 
@@ -386,6 +401,8 @@ slm dashboard # Opens at http://localhost:8765
386
401
 
387
402
  | Version | Codename | Key Features |
388
403
  |---|---|---|
404
+ | **v3.6.16** | Docs | Corrected Claude Code plugin install — adds the required `/plugin marketplace add` step; clarifies plugin vs pip/npm delivery |
405
+ | **v3.6.15** | Multi-scope | **Opt-in [shared memory](docs/shared-memory.md)** (personal/shared/global, off by default), default-deny scope at every read path, recall scope-race fix, contributor PRs #42/#43/#44, fixes #46–#49 |
389
406
  | **v3.6.14** | Plugin-native | Claude Code Plugin (WP-06), MCP profiles (WP-01), IDE connect (WP-08), asset consolidation, UI polish (WP-12) |
390
407
  | **v3.6.x** | Optimize Everywhere / Distributed-ready | Three surfaces (proxy/MCP/skill), `SLM_REMOTE=1` LAN mode, remote dashboard, custom LLM endpoints |
391
408
  | **v3.5.0** | Scale-Ready | CozoDB/LanceDB, 6-channel recall <1s, Core Memory Block, context injection v2, score normalization |
@@ -433,6 +433,7 @@ src/superlocalmemory/storage/migrations/M012_shadow_observations.py
433
433
  src/superlocalmemory/storage/migrations/M013_bi_temporal_columns.py
434
434
  src/superlocalmemory/storage/migrations/M014_v345_scale_ready.py
435
435
  src/superlocalmemory/storage/migrations/M015_add_pinned_column.py
436
+ src/superlocalmemory/storage/migrations/M016_add_scope_support.py
436
437
  src/superlocalmemory/storage/migrations/__init__.py
437
438
  src/superlocalmemory/trust/__init__.py
438
439
  src/superlocalmemory/trust/gate.py