superlocalmemory 3.7.8 → 3.8.1
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 +1 -1
- package/ATTRIBUTION.md +1 -3
- package/CHANGELOG.md +129 -0
- package/README.md +205 -123
- package/package.json +12 -3
- package/plugin/.claude-plugin/plugin.json +2 -3
- package/plugin/CLAUDE.md +8 -8
- package/plugin/agents/slm-governance-advisor.md +80 -0
- package/plugin/agents/slm-loop-runner.md +71 -0
- package/plugin/agents/slm-memory-advisor.md +10 -5
- package/plugin/agents/slm-optimize-advisor.md +9 -3
- package/plugin/commands/slm-loop.md +31 -0
- package/plugin/hooks/hooks.json +79 -0
- package/plugin/requirements.txt +1 -1
- package/plugin/scripts/slm-launch +46 -7
- package/plugin/settings.json +9 -0
- package/plugin/skills/slm-cache/SKILL.md +9 -1
- package/plugin/skills/slm-compress/SKILL.md +8 -1
- package/plugin/skills/slm-governance/SKILL.md +248 -0
- package/plugin/skills/slm-graph/SKILL.md +17 -3
- package/plugin/skills/slm-loop/SKILL.md +99 -0
- package/plugin/skills/slm-mesh/SKILL.md +282 -0
- package/plugin/skills/slm-profile/SKILL.md +148 -0
- package/plugin/skills/slm-recall/SKILL.md +46 -10
- package/plugin/skills/slm-remember/SKILL.md +48 -1
- package/plugin/skills/slm-scope/SKILL.md +176 -0
- package/plugin/skills/slm-session/SKILL.md +24 -1
- package/plugin/skills/slm-status/SKILL.md +18 -1
- package/plugin-src/rules/AGENTS.md +57 -18
- package/plugin-src/skills/slm-cache/SKILL.md +9 -1
- package/plugin-src/skills/slm-compress/SKILL.md +8 -1
- package/plugin-src/skills/slm-graph/SKILL.md +17 -3
- package/plugin-src/skills/slm-recall/SKILL.md +46 -10
- package/plugin-src/skills/slm-remember/SKILL.md +48 -1
- package/plugin-src/skills/slm-session/SKILL.md +24 -1
- package/plugin-src/skills/slm-status/SKILL.md +18 -1
- package/pyproject.toml +2 -1
- package/scripts/postinstall/validation.js +2 -0
- package/scripts/postinstall-interactive.js +74 -2
- package/src/superlocalmemory/__init__.py +1 -1
- package/src/superlocalmemory/access/__init__.py +3 -0
- package/src/superlocalmemory/access/rbac.py +477 -0
- package/src/superlocalmemory/cli/commands.py +228 -17
- package/src/superlocalmemory/cli/compress_cmd.py +17 -7
- package/src/superlocalmemory/cli/daemon.py +7 -0
- package/src/superlocalmemory/cli/loop_cmd.py +187 -0
- package/src/superlocalmemory/cli/main.py +49 -8
- package/src/superlocalmemory/cli/mesh_cmd.py +38 -0
- package/src/superlocalmemory/cli/optimize_cmd.py +3 -0
- package/src/superlocalmemory/cli/pending_store.py +49 -13
- package/src/superlocalmemory/cli/proxy_cmd.py +4 -0
- package/src/superlocalmemory/cli/scale_engine_cmd.py +6 -0
- package/src/superlocalmemory/cli/setup_wizard.py +22 -13
- package/src/superlocalmemory/cli/version_banner.py +17 -3
- package/src/superlocalmemory/compliance/audit.py +6 -0
- package/src/superlocalmemory/compliance/gdpr.py +128 -138
- package/src/superlocalmemory/compliance/retention.py +176 -45
- package/src/superlocalmemory/core/backend_orchestrator.py +23 -59
- package/src/superlocalmemory/core/community_summary.py +267 -0
- package/src/superlocalmemory/core/config.py +216 -3
- package/src/superlocalmemory/core/consolidation_engine.py +95 -22
- package/src/superlocalmemory/core/context_cache.py +61 -18
- package/src/superlocalmemory/core/embedding_worker.py +21 -7
- package/src/superlocalmemory/core/embeddings.py +131 -46
- package/src/superlocalmemory/core/engine.py +41 -22
- package/src/superlocalmemory/core/engine_ingestion.py +359 -43
- package/src/superlocalmemory/core/engine_wiring.py +13 -0
- package/src/superlocalmemory/core/entity_community.py +178 -0
- package/src/superlocalmemory/core/graph_analyzer.py +39 -2
- package/src/superlocalmemory/core/graph_pruner.py +13 -8
- package/src/superlocalmemory/core/ingestion_command.py +134 -25
- package/src/superlocalmemory/core/injection.py +12 -7
- package/src/superlocalmemory/core/key_expander.py +138 -0
- package/src/superlocalmemory/core/maintenance.py +23 -0
- package/src/superlocalmemory/core/maintenance_scheduler.py +17 -7
- package/src/superlocalmemory/core/modes.py +1 -1
- package/src/superlocalmemory/core/mutations.py +2 -2
- package/src/superlocalmemory/core/pii.py +105 -0
- package/src/superlocalmemory/core/progressive_abstraction.py +208 -0
- package/src/superlocalmemory/core/recall_pipeline.py +7 -3
- package/src/superlocalmemory/core/recall_worker.py +20 -6
- package/src/superlocalmemory/core/scale_engine.py +60 -1
- package/src/superlocalmemory/core/security_primitives.py +40 -2
- package/src/superlocalmemory/core/store_pipeline.py +186 -29
- package/src/superlocalmemory/core/worker_pool.py +21 -6
- package/src/superlocalmemory/encoding/entity_reflexion.py +200 -0
- package/src/superlocalmemory/encoding/entity_resolver.py +34 -24
- package/src/superlocalmemory/encoding/fact_extractor.py +26 -1
- package/src/superlocalmemory/encoding/temporal_validator.py +64 -1
- package/src/superlocalmemory/evolution/evolution_store.py +122 -45
- package/src/superlocalmemory/evolution/llm_dispatch.py +12 -1
- package/src/superlocalmemory/evolution/model_selection.py +160 -0
- package/src/superlocalmemory/evolution/mutation_generator.py +16 -0
- package/src/superlocalmemory/evolution/skill_evolver.py +127 -42
- package/src/superlocalmemory/evolution/triggers.py +22 -13
- package/src/superlocalmemory/graph/cozo_backend.py +43 -20
- package/src/superlocalmemory/hooks/adapter_base.py +5 -1
- package/src/superlocalmemory/hooks/auto_recall.py +13 -1
- package/src/superlocalmemory/hooks/claude_code_hooks.py +11 -0
- package/src/superlocalmemory/hooks/codex_assets.py +64 -5
- package/src/superlocalmemory/hooks/hook_daemon.py +20 -3
- package/src/superlocalmemory/hooks/hook_handlers.py +6 -1
- package/src/superlocalmemory/hooks/memory_protocol.py +54 -0
- package/src/superlocalmemory/hooks/portable_kit.py +148 -3
- package/src/superlocalmemory/infra/backup.py +12 -1
- package/src/superlocalmemory/infra/daemon_identity.py +40 -4
- package/src/superlocalmemory/infra/data_root.py +43 -4
- package/src/superlocalmemory/infra/event_bus.py +107 -24
- package/src/superlocalmemory/infra/rate_limiter.py +93 -0
- package/src/superlocalmemory/ingestion/adapter_manager.py +4 -1
- package/src/superlocalmemory/ingestion/credentials.py +1 -1
- package/src/superlocalmemory/learning/cross_project.py +28 -19
- package/src/superlocalmemory/learning/model_rollback.py +3 -0
- package/src/superlocalmemory/learning/ranker_retrain_online.py +2 -0
- package/src/superlocalmemory/learning/reward.py +50 -0
- package/src/superlocalmemory/learning/reward_proxy.py +42 -9
- package/src/superlocalmemory/learning/source_quality.py +523 -1
- package/src/superlocalmemory/loops/__init__.py +56 -0
- package/src/superlocalmemory/loops/budget.py +58 -0
- package/src/superlocalmemory/loops/engine.py +164 -0
- package/src/superlocalmemory/loops/ledger.py +263 -0
- package/src/superlocalmemory/loops/models.py +152 -0
- package/src/superlocalmemory/loops/rules.py +52 -0
- package/src/superlocalmemory/mcp/_daemon_proxy.py +3 -0
- package/src/superlocalmemory/mcp/_pool_adapter.py +2 -0
- package/src/superlocalmemory/mcp/profiles.py +103 -0
- package/src/superlocalmemory/mcp/server.py +32 -79
- package/src/superlocalmemory/mcp/tools_active.py +4 -7
- package/src/superlocalmemory/mcp/tools_code_graph.py +51 -5
- package/src/superlocalmemory/mcp/tools_core.py +12 -4
- package/src/superlocalmemory/mcp/tools_evolution.py +6 -3
- package/src/superlocalmemory/mcp/tools_learning.py +2 -2
- package/src/superlocalmemory/mcp/tools_loops.py +300 -0
- package/src/superlocalmemory/mcp/tools_mesh.py +140 -4
- package/src/superlocalmemory/mcp/tools_optimize.py +15 -8
- package/src/superlocalmemory/mesh/broker.py +237 -129
- package/src/superlocalmemory/mesh/remote_sync.py +50 -8
- package/src/superlocalmemory/optimize/NOTICE +1 -6
- package/src/superlocalmemory/optimize/adapters/anthropic_adapter.py +1 -4
- package/src/superlocalmemory/optimize/adapters/openai_adapter.py +1 -4
- package/src/superlocalmemory/optimize/cache/semantic.py +27 -19
- package/src/superlocalmemory/optimize/compress/align.py +32 -26
- package/src/superlocalmemory/optimize/compress/ccr.py +14 -71
- package/src/superlocalmemory/optimize/compress/router.py +105 -22
- package/src/superlocalmemory/optimize/config/defaults.py +1 -1
- package/src/superlocalmemory/optimize/config/schema.py +87 -4
- package/src/superlocalmemory/optimize/metrics/counters.py +13 -4
- package/src/superlocalmemory/optimize/metrics/estimator.py +0 -3
- package/src/superlocalmemory/optimize/proxy/_helpers.py +31 -4
- package/src/superlocalmemory/optimize/storage/db.py +38 -9
- package/src/superlocalmemory/optimize/storage/schema.py +10 -0
- package/src/superlocalmemory/parameterization/pattern_extractor.py +6 -3
- package/src/superlocalmemory/retrieval/agentic.py +1 -1
- package/src/superlocalmemory/retrieval/bm25_channel.py +68 -10
- package/src/superlocalmemory/retrieval/engine.py +221 -47
- package/src/superlocalmemory/retrieval/entity_channel.py +7 -5
- package/src/superlocalmemory/retrieval/hopfield_channel.py +9 -2
- package/src/superlocalmemory/retrieval/reranker.py +3 -4
- package/src/superlocalmemory/retrieval/semantic_channel.py +114 -21
- package/src/superlocalmemory/retrieval/spreading_activation.py +11 -2
- package/src/superlocalmemory/retrieval/temporal_channel.py +48 -9
- package/src/superlocalmemory/retrieval/temporal_frame.py +102 -0
- package/src/superlocalmemory/retrieval/temporal_validity_filter.py +135 -0
- package/src/superlocalmemory/retrieval/time_window.py +181 -0
- package/src/superlocalmemory/server/api.py +4 -4
- package/src/superlocalmemory/server/config_file.py +90 -0
- package/src/superlocalmemory/server/origin.py +50 -0
- package/src/superlocalmemory/server/profile_runtime.py +125 -8
- package/src/superlocalmemory/server/rbac_enforce.py +142 -0
- package/src/superlocalmemory/server/recall_health.py +24 -3
- package/src/superlocalmemory/server/recall_serializer.py +19 -1
- package/src/superlocalmemory/server/routes/abstraction.py +115 -0
- package/src/superlocalmemory/server/routes/agents.py +128 -38
- package/src/superlocalmemory/server/routes/backup.py +317 -70
- package/src/superlocalmemory/server/routes/behavioral.py +349 -71
- package/src/superlocalmemory/server/routes/brain.py +69 -12
- package/src/superlocalmemory/server/routes/chat.py +10 -5
- package/src/superlocalmemory/server/routes/compliance.py +171 -21
- package/src/superlocalmemory/server/routes/config_api.py +438 -0
- package/src/superlocalmemory/server/routes/data_io.py +30 -8
- package/src/superlocalmemory/server/routes/entity.py +108 -26
- package/src/superlocalmemory/server/routes/events.py +24 -8
- package/src/superlocalmemory/server/routes/evolution.py +189 -68
- package/src/superlocalmemory/server/routes/helpers.py +16 -1
- package/src/superlocalmemory/server/routes/ingest.py +7 -4
- package/src/superlocalmemory/server/routes/insights.py +3 -3
- package/src/superlocalmemory/server/routes/learning.py +289 -118
- package/src/superlocalmemory/server/routes/learning_telemetry.py +153 -0
- package/src/superlocalmemory/server/routes/lifecycle.py +59 -8
- package/src/superlocalmemory/server/routes/memories.py +182 -57
- package/src/superlocalmemory/server/routes/mesh.py +200 -31
- package/src/superlocalmemory/server/routes/optimize.py +33 -1
- package/src/superlocalmemory/server/routes/prewarm.py +2 -0
- package/src/superlocalmemory/server/routes/profiles.py +63 -17
- package/src/superlocalmemory/server/routes/ratelimit.py +132 -0
- package/src/superlocalmemory/server/routes/rbac.py +367 -0
- package/src/superlocalmemory/server/routes/stats.py +103 -158
- package/src/superlocalmemory/server/routes/tiers.py +11 -9
- package/src/superlocalmemory/server/routes/token.py +3 -13
- package/src/superlocalmemory/server/routes/v3_api.py +247 -89
- package/src/superlocalmemory/server/routes/ws.py +5 -2
- package/src/superlocalmemory/server/security_middleware.py +12 -5
- package/src/superlocalmemory/server/ui.py +20 -5
- package/src/superlocalmemory/server/unified_daemon.py +827 -72
- package/src/superlocalmemory/server/write_identity.py +38 -8
- package/src/superlocalmemory/storage/database.py +265 -53
- package/src/superlocalmemory/storage/migration_runner.py +132 -1
- package/src/superlocalmemory/storage/migrations/M010_evolution_config.py +5 -0
- package/src/superlocalmemory/storage/migrations/M021_ingestion_log_profile.py +108 -0
- package/src/superlocalmemory/storage/migrations/M022_entity_aliases_profile.py +86 -0
- package/src/superlocalmemory/storage/migrations/M023_mesh_profile_isolation.py +194 -0
- package/src/superlocalmemory/storage/migrations/M024_rbac_users_roles.py +87 -0
- package/src/superlocalmemory/storage/migrations/M025_perf_indexes.py +90 -0
- package/src/superlocalmemory/storage/migrations/M026_rbac_memberships_fk.py +136 -0
- package/src/superlocalmemory/storage/migrations/M027_transferable_patterns_profile.py +163 -0
- package/src/superlocalmemory/storage/migrations/M028_fact_entity_associations.py +270 -0
- package/src/superlocalmemory/storage/migrations/M029_behavioral_history_indexes.py +137 -0
- package/src/superlocalmemory/storage/migrations/M030_entity_explorer_indexes.py +93 -0
- package/src/superlocalmemory/storage/migrations/__init__.py +4 -0
- package/src/superlocalmemory/storage/models.py +4 -0
- package/src/superlocalmemory/storage/schema.py +136 -1
- package/src/superlocalmemory/storage/schema_v32.py +2 -0
- package/src/superlocalmemory/storage/schema_v343.py +24 -12
- package/src/superlocalmemory/storage/schema_v347.py +4 -0
- package/src/superlocalmemory/trust/gate.py +49 -8
- package/src/superlocalmemory/ui/assets/slm-icon-white.svg +64 -0
- package/src/superlocalmemory/ui/assets/slm-icon.svg +36 -0
- package/src/superlocalmemory/ui/css/design-system.css +621 -0
- package/src/superlocalmemory/ui/css/neural-glass.css +6 -0
- package/src/superlocalmemory/ui/css/od-bridge.css +158 -0
- package/src/superlocalmemory/ui/favicon.svg +35 -4
- package/src/superlocalmemory/ui/index.html +303 -173
- package/src/superlocalmemory/ui/js/brain.js +5 -20
- package/src/superlocalmemory/ui/js/core.js +100 -41
- package/src/superlocalmemory/ui/js/dashboard.js +403 -65
- package/src/superlocalmemory/ui/js/event-delegation.js +102 -0
- package/src/superlocalmemory/ui/js/knowledge-graph.js +11 -11
- package/src/superlocalmemory/ui/js/math-health.js +1 -1
- package/src/superlocalmemory/ui/js/memories.js +15 -4
- package/src/superlocalmemory/ui/js/memory-chat.js +7 -7
- package/src/superlocalmemory/ui/js/ng-entities.js +6 -8
- package/src/superlocalmemory/ui/js/ng-ingestion.js +4 -4
- package/src/superlocalmemory/ui/js/ng-mesh.js +4 -9
- package/src/superlocalmemory/ui/js/ng-shell.js +8 -8
- package/src/superlocalmemory/ui/js/ng-skills.js +54 -2
- package/src/superlocalmemory/ui/js/od-agents.js +544 -0
- package/src/superlocalmemory/ui/js/od-auth-gate.js +257 -0
- package/src/superlocalmemory/ui/js/od-backup.js +871 -0
- package/src/superlocalmemory/ui/js/od-brain.js +816 -0
- package/src/superlocalmemory/ui/js/od-entities.js +579 -0
- package/src/superlocalmemory/ui/js/od-graph.js +600 -0
- package/src/superlocalmemory/ui/js/od-health.js +539 -0
- package/src/superlocalmemory/ui/js/od-mcp.js +508 -0
- package/src/superlocalmemory/ui/js/od-memories.js +929 -0
- package/src/superlocalmemory/ui/js/od-mesh.js +553 -0
- package/src/superlocalmemory/ui/js/od-operations.js +1250 -0
- package/src/superlocalmemory/ui/js/od-optimize.js +787 -0
- package/src/superlocalmemory/ui/js/od-settings.js +1107 -0
- package/src/superlocalmemory/ui/js/od-shell.js +809 -0
- package/src/superlocalmemory/ui/js/od-skills.js +600 -0
- package/src/superlocalmemory/ui/js/od-team.js +258 -0
- package/src/superlocalmemory/ui/js/profiles.js +159 -46
- package/src/superlocalmemory/ui/js/settings.js +17 -3
- package/src/superlocalmemory/ui/js/timeline.js +34 -5
- package/src/superlocalmemory/ui/js/trust-dashboard.js +2 -2
- package/src/superlocalmemory/vector/lancedb_backend.py +8 -6
- package/plugin-src/.mcp.json +0 -12
- package/plugin-src/agents/slm-memory-advisor.md +0 -44
- package/plugin-src/agents/slm-optimize-advisor.md +0 -38
- package/plugin-src/hooks/.gitkeep +0 -0
- package/plugin-src/hooks/hooks.json +0 -23
- package/plugin-src/manifest.json +0 -25
- package/plugin-src/requirements.txt +0 -1
- package/plugin-src/rules/CLAUDE.md.fragment +0 -44
- package/plugin-src/scripts/ensure-venv.bat +0 -122
- package/plugin-src/scripts/ensure-venv.sh +0 -105
- package/plugin-src/scripts/slm-launch +0 -23
- package/plugin-src/scripts/slm-launch.bat +0 -23
- package/plugin-src/settings.json +0 -16
- package/src/superlocalmemory/learning/behavioral_listener.py +0 -94
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: slm-profile
|
|
3
|
+
description: Workspace isolation and runtime profile switching for SuperLocalMemory. Each profile is a fully independent memory namespace — separate facts, code graphs, and tool sets. Use switch_profile (MCP, requires code/full/power profile) to change the active workspace without restarting. Check the active profile with slm status. Required when working across multiple projects, clients, or tenants.
|
|
4
|
+
when_to_use: |
|
|
5
|
+
- "Switch to my work profile"
|
|
6
|
+
- "Use the code profile for this session"
|
|
7
|
+
- "What profile am I currently in?"
|
|
8
|
+
- "I need mesh tools — switch to full profile"
|
|
9
|
+
- "Load the devops workspace"
|
|
10
|
+
- Multi-project workflows needing memory isolation
|
|
11
|
+
- Switching between personal and team workspaces
|
|
12
|
+
- Enabling additional MCP tools by activating a richer profile
|
|
13
|
+
allowed-tools: switch_profile, Bash
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
# slm-profile — Workspace Isolation and Profile Switching
|
|
17
|
+
|
|
18
|
+
A profile is a fully isolated memory workspace. Each profile has its own:
|
|
19
|
+
- Memory facts (nothing bleeds across profiles by default)
|
|
20
|
+
- Code graph index (separate per repo/project)
|
|
21
|
+
- Active MCP tool set (determined by profile tier)
|
|
22
|
+
- Retention policy and decay settings
|
|
23
|
+
|
|
24
|
+
Profiles are the right tool when you have genuinely separate contexts: a personal
|
|
25
|
+
project, a client engagement, a production vs staging environment.
|
|
26
|
+
|
|
27
|
+
---
|
|
28
|
+
|
|
29
|
+
## Available profiles and their tool sets
|
|
30
|
+
|
|
31
|
+
| Profile | Tools | When to use |
|
|
32
|
+
|---------|-------|-------------|
|
|
33
|
+
| `core` | 14 tools — remember, recall, search, session, optimize | Minimal footprint, no code tools |
|
|
34
|
+
| `code` | 24 tools — core + 6 code-graph tools + switch_profile + 3 bounded-loop tools | Default for IDE/coding agents |
|
|
35
|
+
| `full` | 42 tools — code + all memory ops + mesh + bounded loops | Multi-session, team workflows |
|
|
36
|
+
| `power` | 54 tools — full + governance + behavioral tools | Enterprise, admin, audit use cases |
|
|
37
|
+
| `mesh` | 8 tools — mesh coordination only | Lightweight cross-session signalling |
|
|
38
|
+
|
|
39
|
+
The profile is set at MCP server startup via `SLM_MCP_PROFILE` in the MCP config.
|
|
40
|
+
`switch_profile` lets you change it at runtime without a restart.
|
|
41
|
+
|
|
42
|
+
---
|
|
43
|
+
|
|
44
|
+
## Checking the active profile
|
|
45
|
+
|
|
46
|
+
```bash
|
|
47
|
+
slm status --json
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
The `profile` field in the output is the currently active profile name.
|
|
51
|
+
|
|
52
|
+
Or via MCP (works in any profile):
|
|
53
|
+
|
|
54
|
+
```bash
|
|
55
|
+
slm status
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
---
|
|
59
|
+
|
|
60
|
+
## Switching profiles at runtime (v3.8.0+)
|
|
61
|
+
|
|
62
|
+
`switch_profile` is available in `code`, `full`, and `power` profiles.
|
|
63
|
+
|
|
64
|
+
```
|
|
65
|
+
switch_profile(
|
|
66
|
+
profile: str, # one of: "core", "code", "full", "power", "mesh"
|
|
67
|
+
)
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
### Example: activate full profile to access mesh tools
|
|
71
|
+
|
|
72
|
+
```
|
|
73
|
+
# You started in code profile but need mesh coordination
|
|
74
|
+
switch_profile(profile="full")
|
|
75
|
+
|
|
76
|
+
# Now mesh_peers, mesh_send, mesh_inbox, etc. are available
|
|
77
|
+
mesh_peers()
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
### Example: switch workspaces
|
|
81
|
+
|
|
82
|
+
```
|
|
83
|
+
# Switch from personal to work workspace
|
|
84
|
+
switch_profile(profile="work-project")
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
Wait — profile names and workspace names are distinct concepts:
|
|
88
|
+
- **Profile tier** (`core`, `code`, `full`, `power`, `mesh`) controls which MCP
|
|
89
|
+
tools are registered.
|
|
90
|
+
- **Workspace / data directory** (`SLM_DATA_DIR`) controls which memory database
|
|
91
|
+
is used.
|
|
92
|
+
|
|
93
|
+
`switch_profile` changes the **tool tier** within the current workspace. To
|
|
94
|
+
switch to a completely different memory database (workspace), you need to change
|
|
95
|
+
`SLM_DATA_DIR` — this requires restarting the MCP server or using a separately
|
|
96
|
+
configured MCP server instance.
|
|
97
|
+
|
|
98
|
+
---
|
|
99
|
+
|
|
100
|
+
## Configuring the initial profile
|
|
101
|
+
|
|
102
|
+
In your `.mcp.json` (Claude Code) or `.codex/config.toml` (Codex):
|
|
103
|
+
|
|
104
|
+
```json
|
|
105
|
+
"env": {
|
|
106
|
+
"SLM_MCP_PROFILE": "code",
|
|
107
|
+
"SLM_DATA_DIR": "~/.superlocalmemory"
|
|
108
|
+
}
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
Profile aliases from older versions still resolve: `code20` → `code`,
|
|
112
|
+
`full38` → `full`, `power50` → `power`. Stale configs get a startup warning
|
|
113
|
+
but continue to work.
|
|
114
|
+
|
|
115
|
+
---
|
|
116
|
+
|
|
117
|
+
## Profile isolation guarantees
|
|
118
|
+
|
|
119
|
+
- `recall` returns only memories in the active profile (plus opt-in shared/global
|
|
120
|
+
facts — see `slm-scope`).
|
|
121
|
+
- `remember` writes to the active profile only unless `scope="shared"/"global"`.
|
|
122
|
+
- Code graph tools (`build_code_graph`, `get_blast_radius`, etc.) index into the
|
|
123
|
+
active profile's graph store.
|
|
124
|
+
- KV cache entries are namespaced per profile — switching profiles gives you a
|
|
125
|
+
clean cache.
|
|
126
|
+
|
|
127
|
+
---
|
|
128
|
+
|
|
129
|
+
## Multiple concurrent profiles
|
|
130
|
+
|
|
131
|
+
You can run multiple SLM MCP server instances simultaneously, each pointed at a
|
|
132
|
+
different `SLM_DATA_DIR`, to serve different workspaces in the same IDE session.
|
|
133
|
+
Name them differently in your MCP config (e.g. `superlocalmemory-personal` and
|
|
134
|
+
`superlocalmemory-work`) and route tool calls to the appropriate server.
|
|
135
|
+
|
|
136
|
+
---
|
|
137
|
+
|
|
138
|
+
## Related skills
|
|
139
|
+
|
|
140
|
+
- `slm-scope` — opt-in fact sharing across profiles (personal/shared/global)
|
|
141
|
+
- `slm-graph` — code-graph tools available in code/full/power profiles
|
|
142
|
+
- `slm-mesh` — mesh tools available in full/power/mesh profiles
|
|
143
|
+
- `slm-status` — check active profile name and tool inventory
|
|
144
|
+
- `slm-governance` — enterprise role-based access to profiles
|
|
145
|
+
|
|
146
|
+
---
|
|
147
|
+
|
|
148
|
+
*SuperLocalMemory v3.8.1 · Qualixar · AGPL-3.0-or-later*
|
|
@@ -50,7 +50,7 @@ recall(
|
|
|
50
50
|
query="authentication strategy decision",
|
|
51
51
|
limit=20, # default 20; reduce to 5 for quick pre-task checks
|
|
52
52
|
session_id="<sid>", # pass the session_id returned by session_init
|
|
53
|
-
fast=False, # default False; True
|
|
53
|
+
fast=False, # default False; True enables faster, reduced-channel retrieval
|
|
54
54
|
)
|
|
55
55
|
```
|
|
56
56
|
|
|
@@ -101,8 +101,8 @@ correctly, but feedback is not attributed to the session.
|
|
|
101
101
|
### 3. Fast mode
|
|
102
102
|
|
|
103
103
|
Use `fast=True` for pre-tool-call checks where sub-second response matters.
|
|
104
|
-
This
|
|
105
|
-
|
|
104
|
+
This enables a faster, reduced-channel mode. Core semantic and keyword channels
|
|
105
|
+
always run; additional graph and contextual channels are skipped.
|
|
106
106
|
|
|
107
107
|
```
|
|
108
108
|
recall(query="rate limiting approach", limit=5, session_id="<sid>", fast=True)
|
|
@@ -142,12 +142,12 @@ once you have the `fact_id` for full content.
|
|
|
142
142
|
|
|
143
143
|
## How multi-channel retrieval works
|
|
144
144
|
|
|
145
|
-
`recall` runs
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
145
|
+
`recall` runs multiple candidate producers in parallel — semantic vector similarity,
|
|
146
|
+
keyword matching, temporal recency weighting, and contextual graph channels — then
|
|
147
|
+
fuses and reranks the combined results, with an optional entity-graph score
|
|
148
|
+
enhancement. The `channel_weights` field in the response shows how each channel
|
|
149
|
+
contributed for that query. Weights adapt over time based on engagement signals
|
|
150
|
+
attributed via `session_id`.
|
|
151
151
|
|
|
152
152
|
To inspect per-channel scores for a real query against your own data:
|
|
153
153
|
|
|
@@ -202,4 +202,40 @@ trusts that what you surface came from the store.
|
|
|
202
202
|
|
|
203
203
|
---
|
|
204
204
|
|
|
205
|
-
|
|
205
|
+
## Multi-scope retrieval (v3.6.15+, opt-in)
|
|
206
|
+
|
|
207
|
+
By default `recall` returns only memories in the active profile (personal scope).
|
|
208
|
+
To also surface memories shared from other profiles, pass the scope flags:
|
|
209
|
+
|
|
210
|
+
```
|
|
211
|
+
recall(
|
|
212
|
+
query="...",
|
|
213
|
+
include_global=True, # include global-scope memories (visible to all profiles)
|
|
214
|
+
include_shared=True, # include shared-scope memories (shared with this profile)
|
|
215
|
+
session_id="<sid>",
|
|
216
|
+
)
|
|
217
|
+
```
|
|
218
|
+
|
|
219
|
+
Scope flags are **off by default**. Only enable them when the user explicitly asks
|
|
220
|
+
to see shared or global facts. See `slm-scope` for the full sharing model.
|
|
221
|
+
|
|
222
|
+
---
|
|
223
|
+
|
|
224
|
+
## Profile-aware retrieval (v3.8.0+)
|
|
225
|
+
|
|
226
|
+
`recall` always queries the currently active profile. To query a different
|
|
227
|
+
workspace, use `switch_profile` (requires `code`, `full`, or `power` MCP profile)
|
|
228
|
+
before recalling, then switch back. See `slm-profile` for workspace switching.
|
|
229
|
+
|
|
230
|
+
---
|
|
231
|
+
|
|
232
|
+
## Related skills
|
|
233
|
+
|
|
234
|
+
- `slm-remember` — store the decisions and facts that recall surfaces later
|
|
235
|
+
- `slm-session` — session lifecycle (must call before first recall)
|
|
236
|
+
- `slm-scope` — multi-scope sharing model (personal / shared / global)
|
|
237
|
+
- `slm-profile` — workspace isolation and profile switching
|
|
238
|
+
|
|
239
|
+
---
|
|
240
|
+
|
|
241
|
+
*SuperLocalMemory v3.8.1 · Qualixar · AGPL-3.0-or-later*
|
|
@@ -191,4 +191,51 @@ slm remember "<content>" --scope shared --shared-with alice,bob
|
|
|
191
191
|
|
|
192
192
|
---
|
|
193
193
|
|
|
194
|
-
|
|
194
|
+
## Multi-scope sharing (v3.6.15+, opt-in)
|
|
195
|
+
|
|
196
|
+
Every `remember` call defaults to `personal` scope — private to the active profile.
|
|
197
|
+
To share a fact with other profiles on the same machine, set the `scope` parameter:
|
|
198
|
+
|
|
199
|
+
```
|
|
200
|
+
# Share with every profile on this machine
|
|
201
|
+
remember(
|
|
202
|
+
content="API rate limit is 100 req/min per tenant",
|
|
203
|
+
tags="api,limits,shared",
|
|
204
|
+
project="platform",
|
|
205
|
+
scope="global", # visible to all profiles
|
|
206
|
+
session_id="<sid>",
|
|
207
|
+
)
|
|
208
|
+
|
|
209
|
+
# Share with specific profiles only
|
|
210
|
+
remember(
|
|
211
|
+
content="Staging DB migration runs Fridays 22:00 UTC",
|
|
212
|
+
tags="db,ops",
|
|
213
|
+
scope="shared",
|
|
214
|
+
shared_with="work-profile,devops-profile",
|
|
215
|
+
session_id="<sid>",
|
|
216
|
+
)
|
|
217
|
+
```
|
|
218
|
+
|
|
219
|
+
**Only set scope when the user explicitly asks to share.** The default
|
|
220
|
+
`personal` scope is identical to single-profile SLM. See `slm-scope` for the
|
|
221
|
+
complete sharing model and when to use each scope.
|
|
222
|
+
|
|
223
|
+
---
|
|
224
|
+
|
|
225
|
+
## Profile-aware storage (v3.8.0+)
|
|
226
|
+
|
|
227
|
+
`remember` always stores in the active profile's namespace. To write to a
|
|
228
|
+
different workspace, use `switch_profile` first. See `slm-profile`.
|
|
229
|
+
|
|
230
|
+
---
|
|
231
|
+
|
|
232
|
+
## Related skills
|
|
233
|
+
|
|
234
|
+
- `slm-recall` — retrieve what was remembered
|
|
235
|
+
- `slm-session` — session lifecycle; session_id is required for attribution
|
|
236
|
+
- `slm-scope` — complete guide to personal / shared / global scopes
|
|
237
|
+
- `slm-profile` — workspace isolation and profile switching
|
|
238
|
+
|
|
239
|
+
---
|
|
240
|
+
|
|
241
|
+
*SuperLocalMemory v3.8.1 · Qualixar · AGPL-3.0-or-later*
|
|
@@ -0,0 +1,176 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: slm-scope
|
|
3
|
+
description: Controls memory visibility across profiles — personal (private, default), shared (selected profiles), or global (all profiles on this machine). Default is always personal. Only change scope when the user explicitly asks to share a memory across workspaces. Works with both remember (write scope) and recall (read scope flags).
|
|
4
|
+
when_to_use: |
|
|
5
|
+
- "Share this memory with the team profile"
|
|
6
|
+
- "Store this globally so all my agents can see it"
|
|
7
|
+
- "Recall anything shared from the work profile"
|
|
8
|
+
- "Can other agents on this machine see my memories?"
|
|
9
|
+
- User explicitly asks to cross-profile share a fact or see shared facts
|
|
10
|
+
- Enterprise setup where multiple profiles collaborate
|
|
11
|
+
allowed-tools: remember, recall, search, list_recent, Bash
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
# slm-scope — Memory Scope and Sharing Model
|
|
15
|
+
|
|
16
|
+
SuperLocalMemory is profile-isolated by default. Every profile is a fully
|
|
17
|
+
independent memory namespace. The scope model adds controlled, opt-in sharing
|
|
18
|
+
between profiles on the same machine — it is never active unless you explicitly
|
|
19
|
+
set it.
|
|
20
|
+
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
## The Three Scopes
|
|
24
|
+
|
|
25
|
+
| Scope | Visibility | When to use |
|
|
26
|
+
|-------|-----------|-------------|
|
|
27
|
+
| `personal` | Active profile only | Default — all facts. Never set explicitly. |
|
|
28
|
+
| `shared` | Active profile + `shared_with` profiles | Team handoffs, shared project context |
|
|
29
|
+
| `global` | Every profile on this machine | Machine-wide conventions, org-wide rules |
|
|
30
|
+
|
|
31
|
+
**The default is always `personal`.** A fact stored without a `scope` argument
|
|
32
|
+
is private to the profile that stored it. Recall without scope flags returns only
|
|
33
|
+
personal facts. This is identical to single-profile SLM.
|
|
34
|
+
|
|
35
|
+
---
|
|
36
|
+
|
|
37
|
+
## Opt-in is mandatory
|
|
38
|
+
|
|
39
|
+
Never set `scope="shared"` or `scope="global"` (or the recall equivalents
|
|
40
|
+
`include_shared`, `include_global`) unless the user explicitly asks you to share
|
|
41
|
+
or read across profiles. This is a hard rule — scope expansion is an action with
|
|
42
|
+
team-wide or machine-wide impact, and it must always be user-initiated.
|
|
43
|
+
|
|
44
|
+
---
|
|
45
|
+
|
|
46
|
+
## Writing a shared or global fact
|
|
47
|
+
|
|
48
|
+
### share with specific profiles
|
|
49
|
+
|
|
50
|
+
```
|
|
51
|
+
remember(
|
|
52
|
+
content="API gateway rate limit is 1000 req/min per client",
|
|
53
|
+
tags="api,limits,ops",
|
|
54
|
+
project="platform",
|
|
55
|
+
importance=8,
|
|
56
|
+
session_id="<sid>",
|
|
57
|
+
scope="shared",
|
|
58
|
+
shared_with="devops-profile,backend-profile",
|
|
59
|
+
)
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
`shared_with` is a comma-separated list of profile IDs that should be able to
|
|
63
|
+
recall this fact. Use `slm status` to see the current profile name — that is the
|
|
64
|
+
`profile_id` to supply.
|
|
65
|
+
|
|
66
|
+
### share with all profiles on the machine
|
|
67
|
+
|
|
68
|
+
```
|
|
69
|
+
remember(
|
|
70
|
+
content="All services must enforce TLS 1.3 minimum",
|
|
71
|
+
tags="security,tls,global",
|
|
72
|
+
project="infra",
|
|
73
|
+
importance=9,
|
|
74
|
+
session_id="<sid>",
|
|
75
|
+
scope="global",
|
|
76
|
+
)
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
`scope="global"` makes the fact visible to every profile on this machine. Use
|
|
80
|
+
this only for machine-wide conventions (security rules, org-wide constraints).
|
|
81
|
+
|
|
82
|
+
---
|
|
83
|
+
|
|
84
|
+
## Reading shared or global facts
|
|
85
|
+
|
|
86
|
+
By default, `recall` returns only the active profile's personal facts. To surface
|
|
87
|
+
shared and global facts, pass the opt-in flags:
|
|
88
|
+
|
|
89
|
+
```
|
|
90
|
+
recall(
|
|
91
|
+
query="rate limiting rules",
|
|
92
|
+
limit=20,
|
|
93
|
+
include_global=True, # include global-scope facts
|
|
94
|
+
include_shared=True, # include facts shared with this profile
|
|
95
|
+
session_id="<sid>",
|
|
96
|
+
)
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
You can opt in to either or both flags independently. Only the active profile's
|
|
100
|
+
permitted shared facts are returned — you cannot read another profile's personal
|
|
101
|
+
facts.
|
|
102
|
+
|
|
103
|
+
### CLI equivalents
|
|
104
|
+
|
|
105
|
+
```bash
|
|
106
|
+
# Recall with global facts included
|
|
107
|
+
slm recall "rate limiting rules" --include-global
|
|
108
|
+
|
|
109
|
+
# Recall with shared facts included
|
|
110
|
+
slm recall "rate limiting rules" --include-shared
|
|
111
|
+
|
|
112
|
+
# Both
|
|
113
|
+
slm recall "rate limiting rules" --include-global --include-shared
|
|
114
|
+
|
|
115
|
+
# Store a global fact
|
|
116
|
+
slm remember "TLS 1.3 minimum" --scope global
|
|
117
|
+
|
|
118
|
+
# Store a shared fact (shared-with is a comma-separated list of profile IDs)
|
|
119
|
+
slm remember "API rate limit 1000/min" --scope shared --shared-with devops,backend
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
CLI flags verified in source: `--include-global` / `--no-global`, `--include-shared` / `--no-shared`,
|
|
123
|
+
`--scope personal|shared|global`, `--shared-with <profile-ids>`.
|
|
124
|
+
|
|
125
|
+
---
|
|
126
|
+
|
|
127
|
+
## Configuring scope defaults
|
|
128
|
+
|
|
129
|
+
Per-profile defaults live in `mode_a/b/c.json` configuration. To make a profile
|
|
130
|
+
always include global facts without passing flags each time:
|
|
131
|
+
|
|
132
|
+
```json
|
|
133
|
+
{
|
|
134
|
+
"recall": {
|
|
135
|
+
"include_global": true,
|
|
136
|
+
"include_shared": false
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
Changing the default requires editing the profile config directly — this is an
|
|
142
|
+
admin-level operation.
|
|
143
|
+
|
|
144
|
+
---
|
|
145
|
+
|
|
146
|
+
## Enterprise governance
|
|
147
|
+
|
|
148
|
+
In a governed workspace (admin/member/viewer roles), scope expansion may be
|
|
149
|
+
restricted:
|
|
150
|
+
- **Viewers** cannot write `scope="global"` facts — their writes are always `personal`.
|
|
151
|
+
- **Members** can write `scope="shared"` with profiles in their access list.
|
|
152
|
+
- **Admins** can write `scope="global"` unrestricted.
|
|
153
|
+
|
|
154
|
+
See `slm-governance` for the full enterprise behavior model.
|
|
155
|
+
|
|
156
|
+
---
|
|
157
|
+
|
|
158
|
+
## Scope deletion and retention
|
|
159
|
+
|
|
160
|
+
A `scope="global"` fact deleted by one profile is deleted for all profiles. A
|
|
161
|
+
`scope="shared"` fact is deleted from all profiles that had access to it.
|
|
162
|
+
Use `slm forget "<query>" --dry-run` before any deletion involving shared facts
|
|
163
|
+
to review the impact. See `slm-remember` for the full deletion discipline.
|
|
164
|
+
|
|
165
|
+
---
|
|
166
|
+
|
|
167
|
+
## Related skills
|
|
168
|
+
|
|
169
|
+
- `slm-remember` — full fact storage reference including scope parameters
|
|
170
|
+
- `slm-recall` — full retrieval reference including include_global/include_shared
|
|
171
|
+
- `slm-profile` — what a profile is and how to switch between them
|
|
172
|
+
- `slm-governance` — enterprise role restrictions on scope
|
|
173
|
+
|
|
174
|
+
---
|
|
175
|
+
|
|
176
|
+
*SuperLocalMemory v3.8.1 · Qualixar · AGPL-3.0-or-later*
|
|
@@ -204,4 +204,27 @@ slm doctor [--json] # preflight check including daemon and embedding worker
|
|
|
204
204
|
|
|
205
205
|
---
|
|
206
206
|
|
|
207
|
-
|
|
207
|
+
## Profile context (v3.8.0+)
|
|
208
|
+
|
|
209
|
+
`session_init` operates on the currently active profile. If you need to start
|
|
210
|
+
a session on a different workspace, call `switch_profile` (requires `code`,
|
|
211
|
+
`full`, or `power` MCP profile) before `session_init`, then call `session_init`
|
|
212
|
+
for that workspace. See `slm-profile` for workspace switching.
|
|
213
|
+
|
|
214
|
+
The returned `memories` array reflects facts stored in the active profile only.
|
|
215
|
+
To also surface shared or global facts in the initial context, pass the query
|
|
216
|
+
explicitly and call `recall` with `include_global`/`include_shared` after
|
|
217
|
+
`session_init`. See `slm-scope` for the sharing model.
|
|
218
|
+
|
|
219
|
+
---
|
|
220
|
+
|
|
221
|
+
## Related skills
|
|
222
|
+
|
|
223
|
+
- `slm-recall` — multi-channel retrieval during the session
|
|
224
|
+
- `slm-remember` — store durable facts during the session
|
|
225
|
+
- `slm-profile` — workspace isolation and profile switching
|
|
226
|
+
- `slm-scope` — multi-scope sharing model
|
|
227
|
+
|
|
228
|
+
---
|
|
229
|
+
|
|
230
|
+
*SuperLocalMemory v3.8.1 · Qualixar · AGPL-3.0-or-later*
|
|
@@ -146,4 +146,21 @@ Note: the `slm optimize` subcommands have known pre-existing parse-test failures
|
|
|
146
146
|
|
|
147
147
|
---
|
|
148
148
|
|
|
149
|
-
|
|
149
|
+
## Profile-aware status (v3.8.0+)
|
|
150
|
+
|
|
151
|
+
`slm status --json` reports the currently active profile name in the `profile`
|
|
152
|
+
field. Use this to confirm which workspace is active before starting work on a
|
|
153
|
+
multi-profile setup. To switch the active profile, see `slm-profile`.
|
|
154
|
+
|
|
155
|
+
---
|
|
156
|
+
|
|
157
|
+
## Related skills
|
|
158
|
+
|
|
159
|
+
- `slm-session` — session lifecycle (session_init/close_session)
|
|
160
|
+
- `slm-profile` — workspace isolation and profile switching
|
|
161
|
+
- `slm-cache` — KV cache performance metrics
|
|
162
|
+
- `slm-compress` — reversible context compression
|
|
163
|
+
|
|
164
|
+
---
|
|
165
|
+
|
|
166
|
+
SuperLocalMemory v3.8.1 · Qualixar · AGPL-3.0-or-later
|
|
@@ -43,6 +43,16 @@ Apply automatically when context pressure builds:
|
|
|
43
43
|
|
|
44
44
|
---
|
|
45
45
|
|
|
46
|
+
## Bounded loops
|
|
47
|
+
|
|
48
|
+
When a task has a checkable acceptance condition (tests, schema, lint, reconciliation), run it as a **bounded loop**: iterate until an INDEPENDENT gate passes — never stop because the agent believes it is done. The agent's own "done" claim is advisory only; the gate is the authority.
|
|
49
|
+
|
|
50
|
+
- Try it: `slm loop demo` (keyless convergence demo, records every lap to SLM).
|
|
51
|
+
- Inspect: `slm loop history` / `slm loop show <run_id>` — each lap is persisted as queryable SLM memory (tag `loop:<name>`), so runs are auditable and resumable.
|
|
52
|
+
- Terminal statuses: `DONE` (gate passed + approved), `HALT` (bound tripped: iterations/no-progress/budget), `PAUSE` (approval pending), `KILLED`, `ERROR`. Report the exact status — never turn HALT/PAUSE/ERROR into success. See slm-loop.
|
|
53
|
+
|
|
54
|
+
---
|
|
55
|
+
|
|
46
56
|
## Session end
|
|
47
57
|
|
|
48
58
|
Call `close_session(session_id)` when the work in the session is meaningfully complete. This finalises session metadata and allows the next session to find this one via `session_init`.
|
|
@@ -71,21 +81,50 @@ When the SLM MCP server is unavailable, use these CLI equivalents:
|
|
|
71
81
|
|
|
72
82
|
## Tool reference (core profile — 14 tools)
|
|
73
83
|
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
|
81
|
-
|
|
82
|
-
| `
|
|
83
|
-
| `
|
|
84
|
-
| `
|
|
85
|
-
| `
|
|
86
|
-
| `
|
|
87
|
-
| `
|
|
88
|
-
| `
|
|
89
|
-
| `
|
|
90
|
-
|
|
91
|
-
|
|
84
|
+
> The MCP config ships `SLM_MCP_PROFILE=code` (24 tools): the 14 core memory tools below
|
|
85
|
+
> **plus** 6 code-graph tools (`build_code_graph`, `get_blast_radius`, `query_graph`,
|
|
86
|
+
> `semantic_search_code`, `get_review_context`, `detect_changes`) and `switch_profile`.
|
|
87
|
+
> Use `full` (42 tools) to add mesh coordination. Use `power` (54 tools) for governance
|
|
88
|
+
> and audit tools. See slm-profile for profile switching.
|
|
89
|
+
|
|
90
|
+
| Tool | Signature (key params) | Notes |
|
|
91
|
+
|--------------------|----------------------------------------------------------------------------------------------|----------------------------------------|
|
|
92
|
+
| `remember` | `content, tags="", project="", importance=5, session_id="", scope="personal", shared_with=""` | Store atomic fact. `scope` opt-in (personal default). See slm-scope. |
|
|
93
|
+
| `recall` | `query, limit=10, agent_id, session_id="", fast=False, include_global, include_shared` | Multi-channel retrieval. Scope flags off by default. See slm-scope. |
|
|
94
|
+
| `search` | `query, limit=10, profile_id=""` | FTS5 BM25 keyword search |
|
|
95
|
+
| `fetch` | `url, ...` | Fetch remote content |
|
|
96
|
+
| `list_recent` | `limit=20, profile_id=""` | Newest memories first |
|
|
97
|
+
| `update_memory` | `fact_id, content, agent_id` | Correct an existing memory by id |
|
|
98
|
+
| `forget` | `profile_id="", dry_run=True` | Decay cycle; always dry_run first |
|
|
99
|
+
| `session_init` | `project_path="", query="", max_results=10, max_age_days=30` | Once per session; loads context |
|
|
100
|
+
| `close_session` | `session_id=""` | Finalise session |
|
|
101
|
+
| `slm_compress` | `content, mode="auto", reversible=True, ttl_seconds=86400` | Returns compressed, lossy, ccr_id |
|
|
102
|
+
| `slm_retrieve` | `ccr_id` | Retrieve original from ccr_id |
|
|
103
|
+
| `slm_cache_set` | `key, value, ttl_seconds=86400` | KV cache set |
|
|
104
|
+
| `slm_cache_get` | `key` | KV cache get; returns hit, value |
|
|
105
|
+
| `slm_optimize_stats` | `()` | Returns compress_runs, tokens_saved_compress, cache_kv_hits |
|
|
106
|
+
|
|
107
|
+
## Skills
|
|
108
|
+
|
|
109
|
+
| Skill | Purpose |
|
|
110
|
+
|-------|---------|
|
|
111
|
+
| slm-recall | Multi-channel memory retrieval |
|
|
112
|
+
| slm-remember | Store durable facts and decisions |
|
|
113
|
+
| slm-session | Session lifecycle (init + close) |
|
|
114
|
+
| slm-status | Health check, optimize stats |
|
|
115
|
+
| slm-cache | KV cache for repeated reads |
|
|
116
|
+
| slm-compress | Reversible context compression |
|
|
117
|
+
| slm-graph | Code graph: blast radius, callers, search (code profile) |
|
|
118
|
+
| slm-loop | Bounded, gate-verified agent loops with an SLM-backed ledger |
|
|
119
|
+
| slm-scope | Personal / shared / global memory scoping |
|
|
120
|
+
| slm-profile | Workspace isolation and profile switching |
|
|
121
|
+
| slm-governance | Enterprise roles, retention, audit, GDPR |
|
|
122
|
+
| slm-mesh | Cross-session peer coordination (full/mesh profile) |
|
|
123
|
+
|
|
124
|
+
## Subagents
|
|
125
|
+
|
|
126
|
+
- **slm-memory-advisor** — memory decisions, session hygiene, scope and profile guidance
|
|
127
|
+
- **slm-optimize-advisor** — context compression and KV cache
|
|
128
|
+
- **slm-governance-advisor** — scope/role compliance, retention policies, GDPR
|
|
129
|
+
|
|
130
|
+
SuperLocalMemory v3.8.1 · Qualixar · AGPL-3.0-or-later
|
|
@@ -137,4 +137,12 @@ These subcommands control daemon-level cache settings. They do not read or write
|
|
|
137
137
|
|
|
138
138
|
---
|
|
139
139
|
|
|
140
|
-
|
|
140
|
+
## Related skills
|
|
141
|
+
|
|
142
|
+
- `slm-compress` — for large content reduction; cache and compress work together
|
|
143
|
+
- `slm-status` — view `cache_kv_hits`/`cache_kv_misses` counters from `slm_optimize_stats`
|
|
144
|
+
- `slm-profile` — cache entries are namespaced per profile; switching profiles gives a fresh cache namespace
|
|
145
|
+
|
|
146
|
+
---
|
|
147
|
+
|
|
148
|
+
SuperLocalMemory v3.8.1 · Qualixar · AGPL-3.0-or-later
|
|
@@ -140,4 +140,11 @@ Content over 1 MB (1 000 000 bytes UTF-8) is processed but `reversible` is force
|
|
|
140
140
|
|
|
141
141
|
---
|
|
142
142
|
|
|
143
|
-
|
|
143
|
+
## Related skills
|
|
144
|
+
|
|
145
|
+
- `slm-cache` — for repeated reads; use cache-aside before compressing a frequently re-read result
|
|
146
|
+
- `slm-status` — check `tokens_saved_compress` and `compress_runs` from `slm_optimize_stats`
|
|
147
|
+
|
|
148
|
+
---
|
|
149
|
+
|
|
150
|
+
SuperLocalMemory v3.8.1 · Qualixar · AGPL-3.0-or-later
|
|
@@ -285,7 +285,8 @@ If `build_code_graph` returns `files_parsed: 0`, no supported source files were
|
|
|
285
285
|
|
|
286
286
|
## Profile Requirement
|
|
287
287
|
|
|
288
|
-
This skill uses graph tools that are only active under the `code` MCP profile
|
|
288
|
+
This skill uses graph tools that are only active under the `code` MCP profile
|
|
289
|
+
(or `full` / `power`). Your plugin `.mcp.json` must include:
|
|
289
290
|
|
|
290
291
|
```json
|
|
291
292
|
"env": {
|
|
@@ -293,8 +294,21 @@ This skill uses graph tools that are only active under the `code` MCP profile. Y
|
|
|
293
294
|
}
|
|
294
295
|
```
|
|
295
296
|
|
|
296
|
-
Without this, the six graph tools are not registered and will appear as unknown
|
|
297
|
+
Without this, the six graph tools are not registered and will appear as unknown
|
|
298
|
+
tools. Run `slm status` to confirm the active profile.
|
|
299
|
+
|
|
300
|
+
**Switching profiles at runtime (v3.8.0+):** Use `switch_profile("code")` via
|
|
301
|
+
MCP to activate the code profile in a session that started with a different
|
|
302
|
+
profile. See `slm-profile` for the full profile switching workflow.
|
|
303
|
+
|
|
304
|
+
---
|
|
305
|
+
|
|
306
|
+
## Related skills
|
|
307
|
+
|
|
308
|
+
- `slm-profile` — workspace isolation and profile switching (required for code tools)
|
|
309
|
+
- `slm-recall` — retrieve architectural decisions before graph queries
|
|
310
|
+
- `slm-status` — confirm the active profile and graph index health
|
|
297
311
|
|
|
298
312
|
---
|
|
299
313
|
|
|
300
|
-
SuperLocalMemory v3.
|
|
314
|
+
SuperLocalMemory v3.8.1 · Qualixar · AGPL-3.0-or-later
|