superlocalmemory 2.3.0

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 (100) hide show
  1. package/ATTRIBUTION.md +140 -0
  2. package/CHANGELOG.md +1749 -0
  3. package/LICENSE +21 -0
  4. package/README.md +600 -0
  5. package/bin/aider-smart +72 -0
  6. package/bin/slm +202 -0
  7. package/bin/slm-npm +73 -0
  8. package/bin/slm.bat +195 -0
  9. package/bin/slm.cmd +10 -0
  10. package/bin/superlocalmemoryv2:list +3 -0
  11. package/bin/superlocalmemoryv2:profile +3 -0
  12. package/bin/superlocalmemoryv2:recall +3 -0
  13. package/bin/superlocalmemoryv2:remember +3 -0
  14. package/bin/superlocalmemoryv2:reset +3 -0
  15. package/bin/superlocalmemoryv2:status +3 -0
  16. package/completions/slm.bash +58 -0
  17. package/completions/slm.zsh +76 -0
  18. package/configs/antigravity-mcp.json +13 -0
  19. package/configs/chatgpt-desktop-mcp.json +7 -0
  20. package/configs/claude-desktop-mcp.json +15 -0
  21. package/configs/codex-mcp.toml +13 -0
  22. package/configs/cody-commands.json +29 -0
  23. package/configs/continue-mcp.yaml +14 -0
  24. package/configs/continue-skills.yaml +26 -0
  25. package/configs/cursor-mcp.json +15 -0
  26. package/configs/gemini-cli-mcp.json +11 -0
  27. package/configs/jetbrains-mcp.json +11 -0
  28. package/configs/opencode-mcp.json +12 -0
  29. package/configs/perplexity-mcp.json +9 -0
  30. package/configs/vscode-copilot-mcp.json +12 -0
  31. package/configs/windsurf-mcp.json +16 -0
  32. package/configs/zed-mcp.json +12 -0
  33. package/docs/ARCHITECTURE.md +877 -0
  34. package/docs/CLI-COMMANDS-REFERENCE.md +425 -0
  35. package/docs/COMPETITIVE-ANALYSIS.md +210 -0
  36. package/docs/COMPRESSION-README.md +390 -0
  37. package/docs/GRAPH-ENGINE.md +503 -0
  38. package/docs/MCP-MANUAL-SETUP.md +720 -0
  39. package/docs/MCP-TROUBLESHOOTING.md +787 -0
  40. package/docs/PATTERN-LEARNING.md +363 -0
  41. package/docs/PROFILES-GUIDE.md +453 -0
  42. package/docs/RESET-GUIDE.md +353 -0
  43. package/docs/SEARCH-ENGINE-V2.2.0.md +748 -0
  44. package/docs/SEARCH-INTEGRATION-GUIDE.md +502 -0
  45. package/docs/UI-SERVER.md +254 -0
  46. package/docs/UNIVERSAL-INTEGRATION.md +432 -0
  47. package/docs/V2.2.0-OPTIONAL-SEARCH.md +666 -0
  48. package/docs/WINDOWS-INSTALL-README.txt +34 -0
  49. package/docs/WINDOWS-POST-INSTALL.txt +45 -0
  50. package/docs/example_graph_usage.py +148 -0
  51. package/hooks/memory-list-skill.js +130 -0
  52. package/hooks/memory-profile-skill.js +284 -0
  53. package/hooks/memory-recall-skill.js +109 -0
  54. package/hooks/memory-remember-skill.js +127 -0
  55. package/hooks/memory-reset-skill.js +274 -0
  56. package/install-skills.sh +436 -0
  57. package/install.ps1 +417 -0
  58. package/install.sh +755 -0
  59. package/mcp_server.py +585 -0
  60. package/package.json +94 -0
  61. package/requirements-core.txt +24 -0
  62. package/requirements.txt +10 -0
  63. package/scripts/postinstall.js +126 -0
  64. package/scripts/preuninstall.js +57 -0
  65. package/skills/slm-build-graph/SKILL.md +423 -0
  66. package/skills/slm-list-recent/SKILL.md +348 -0
  67. package/skills/slm-recall/SKILL.md +325 -0
  68. package/skills/slm-remember/SKILL.md +194 -0
  69. package/skills/slm-status/SKILL.md +363 -0
  70. package/skills/slm-switch-profile/SKILL.md +442 -0
  71. package/src/__pycache__/cache_manager.cpython-312.pyc +0 -0
  72. package/src/__pycache__/embedding_engine.cpython-312.pyc +0 -0
  73. package/src/__pycache__/graph_engine.cpython-312.pyc +0 -0
  74. package/src/__pycache__/hnsw_index.cpython-312.pyc +0 -0
  75. package/src/__pycache__/hybrid_search.cpython-312.pyc +0 -0
  76. package/src/__pycache__/memory-profiles.cpython-312.pyc +0 -0
  77. package/src/__pycache__/memory-reset.cpython-312.pyc +0 -0
  78. package/src/__pycache__/memory_compression.cpython-312.pyc +0 -0
  79. package/src/__pycache__/memory_store_v2.cpython-312.pyc +0 -0
  80. package/src/__pycache__/migrate_v1_to_v2.cpython-312.pyc +0 -0
  81. package/src/__pycache__/pattern_learner.cpython-312.pyc +0 -0
  82. package/src/__pycache__/query_optimizer.cpython-312.pyc +0 -0
  83. package/src/__pycache__/search_engine_v2.cpython-312.pyc +0 -0
  84. package/src/__pycache__/setup_validator.cpython-312.pyc +0 -0
  85. package/src/__pycache__/tree_manager.cpython-312.pyc +0 -0
  86. package/src/cache_manager.py +520 -0
  87. package/src/embedding_engine.py +671 -0
  88. package/src/graph_engine.py +970 -0
  89. package/src/hnsw_index.py +626 -0
  90. package/src/hybrid_search.py +693 -0
  91. package/src/memory-profiles.py +518 -0
  92. package/src/memory-reset.py +485 -0
  93. package/src/memory_compression.py +999 -0
  94. package/src/memory_store_v2.py +1088 -0
  95. package/src/migrate_v1_to_v2.py +638 -0
  96. package/src/pattern_learner.py +898 -0
  97. package/src/query_optimizer.py +513 -0
  98. package/src/search_engine_v2.py +403 -0
  99. package/src/setup_validator.py +479 -0
  100. package/src/tree_manager.py +720 -0
@@ -0,0 +1,453 @@
1
+ # SuperLocalMemory V2 - Profile Management Guide
2
+
3
+ ## Overview
4
+
5
+ **Profiles** let you maintain completely separate memory systems for different contexts or personalities.
6
+
7
+ **Use cases:**
8
+ - **Work vs Personal**: Keep professional and personal memories separate
9
+ - **Client-specific**: Isolated memories for each client project
10
+ - **Experimentation**: Test profile for trying new features
11
+ - **Personality switching**: Different "AI Master" personas with unique learned patterns
12
+
13
+ ---
14
+
15
+ ## Quick Start
16
+
17
+ ### List Profiles
18
+ ```bash
19
+ python ~/.claude-memory/memory-profiles.py list
20
+ ```
21
+
22
+ ### Show Current Profile
23
+ ```bash
24
+ python ~/.claude-memory/memory-profiles.py current
25
+ ```
26
+
27
+ ### Create New Profile
28
+ ```bash
29
+ # Empty profile
30
+ python ~/.claude-memory/memory-profiles.py create work \
31
+ --description "Work projects"
32
+
33
+ # Copy current memories to new profile
34
+ python ~/.claude-memory/memory-profiles.py create personal \
35
+ --from-current
36
+ ```
37
+
38
+ ### Switch Profile
39
+ ```bash
40
+ python ~/.claude-memory/memory-profiles.py switch work
41
+
42
+ # ⚠️ IMPORTANT: Restart Claude CLI after switching!
43
+ ```
44
+
45
+ ### Delete Profile
46
+ ```bash
47
+ python ~/.claude-memory/memory-profiles.py delete old-profile
48
+ ```
49
+
50
+ ---
51
+
52
+ ## Profile Isolation
53
+
54
+ Each profile has its own:
55
+ - ✅ **Database** (memory.db) - Completely separate memories
56
+ - ✅ **Graph data** - Independent knowledge graph
57
+ - ✅ **Learned patterns** - Different identity profiles
58
+ - ✅ **Compressed archives** - Separate storage
59
+ - ✅ **Configuration** - Profile-specific settings
60
+
61
+ **Profiles DO NOT share:**
62
+ - Memories
63
+ - Graphs
64
+ - Patterns
65
+ - Any data
66
+
67
+ ---
68
+
69
+ ## Use Cases
70
+
71
+ ### 1. Work vs Personal
72
+
73
+ ```bash
74
+ # Create work profile
75
+ python ~/.claude-memory/memory-profiles.py create work \
76
+ --description "Professional coding projects"
77
+
78
+ # Create personal profile from current
79
+ python ~/.claude-memory/memory-profiles.py create personal \
80
+ --from-current --description "Personal learning and experiments"
81
+
82
+ # Switch based on context
83
+ python ~/.claude-memory/memory-profiles.py switch work # During work hours
84
+ python ~/.claude-memory/memory-profiles.py switch personal # Personal time
85
+ ```
86
+
87
+ **Result:**
88
+ - Work profile learns: Enterprise patterns, client tech stacks, professional terminology
89
+ - Personal profile learns: Hobby projects, experimental tech, casual coding style
90
+
91
+ ---
92
+
93
+ ### 2. Client-Specific Profiles
94
+
95
+ ```bash
96
+ # Create profile per client
97
+ python ~/.claude-memory/memory-profiles.py create client-acme \
98
+ --description "Acme Corp project"
99
+
100
+ python ~/.claude-memory/memory-profiles.py create client-contoso \
101
+ --description "Contoso Inc project"
102
+
103
+ # Switch when working on different clients
104
+ python ~/.claude-memory/memory-profiles.py switch client-acme
105
+ ```
106
+
107
+ **Benefits:**
108
+ - Client data never mixes
109
+ - Each client gets learned patterns specific to their codebase
110
+ - Easy to archive completed projects
111
+
112
+ ---
113
+
114
+ ### 3. Learning & Experimentation
115
+
116
+ ```bash
117
+ # Create test profile
118
+ python ~/.claude-memory/memory-profiles.py create experimental \
119
+ --description "Testing new features"
120
+
121
+ # Switch to test profile
122
+ python ~/.claude-memory/memory-profiles.py switch experimental
123
+
124
+ # Try new things without polluting main profile
125
+ # ...test features...
126
+
127
+ # Switch back when done
128
+ python ~/.claude-memory/memory-profiles.py switch default
129
+ ```
130
+
131
+ ---
132
+
133
+ ### 4. Different AI Personalities
134
+
135
+ ```bash
136
+ # Strict architect profile
137
+ python ~/.claude-memory/memory-profiles.py create architect \
138
+ --description "Rigorous architecture-first approach"
139
+
140
+ # Rapid prototyper profile
141
+ python ~/.claude-memory/memory-profiles.py create prototyper \
142
+ --description "Fast iteration, MVP-first approach"
143
+
144
+ # Use based on project phase
145
+ python ~/.claude-memory/memory-profiles.py switch architect # Planning
146
+ python ~/.claude-memory/memory-profiles.py switch prototyper # MVP development
147
+ ```
148
+
149
+ **Result:** Each profile learns different patterns:
150
+ - Architect: Detailed docs, extensive planning, clean architecture
151
+ - Prototyper: Quick iterations, pragmatic choices, speed over perfection
152
+
153
+ ---
154
+
155
+ ## Profile Operations
156
+
157
+ ### Create Empty Profile
158
+
159
+ Creates fresh V2 database with no memories:
160
+
161
+ ```bash
162
+ python ~/.claude-memory/memory-profiles.py create new-profile
163
+ ```
164
+
165
+ **When to use:**
166
+ - Starting completely fresh context
167
+ - Client work (no prior context)
168
+ - Experimentation (clean slate)
169
+
170
+ ---
171
+
172
+ ### Create from Current
173
+
174
+ Copies current memory system to new profile:
175
+
176
+ ```bash
177
+ python ~/.claude-memory/memory-profiles.py create backup --from-current
178
+ ```
179
+
180
+ **When to use:**
181
+ - Branching current memories
182
+ - Creating backup before major changes
183
+ - Testing with real data
184
+
185
+ ---
186
+
187
+ ### Switch Profile
188
+
189
+ Changes active profile (requires Claude CLI restart):
190
+
191
+ ```bash
192
+ python ~/.claude-memory/memory-profiles.py switch work
193
+
194
+ # Output:
195
+ # Switching from 'default' to 'work'...
196
+ # Saving current state to profile 'default'...
197
+ # ✓ Saved to ~/.claude-memory/profiles/default
198
+ # Loading profile 'work'...
199
+ # ✓ Loaded from ~/.claude-memory/profiles/work
200
+ # ✅ Switched to profile: work
201
+ #
202
+ # ⚠️ IMPORTANT: Restart Claude CLI to use new profile!
203
+ ```
204
+
205
+ **⚠️ Must restart Claude CLI after switching!**
206
+
207
+ ---
208
+
209
+ ### Delete Profile
210
+
211
+ Permanently removes a profile:
212
+
213
+ ```bash
214
+ python ~/.claude-memory/memory-profiles.py delete old-profile
215
+
216
+ # Prompts: Type profile name 'old-profile' to confirm:
217
+ ```
218
+
219
+ **Safety:**
220
+ - Cannot delete 'default' profile
221
+ - Cannot delete active profile
222
+ - Requires confirmation (type profile name)
223
+ - Use `--force` to skip confirmation
224
+
225
+ ---
226
+
227
+ ### Rename Profile
228
+
229
+ ```bash
230
+ python ~/.claude-memory/memory-profiles.py rename old-name new-name
231
+ ```
232
+
233
+ **Cannot rename:**
234
+ - 'default' profile
235
+ - Active profile (switch first)
236
+
237
+ ---
238
+
239
+ ## Profile Storage
240
+
241
+ Profiles stored in:
242
+ ```
243
+ ~/.claude-memory/profiles/
244
+ ├── work/
245
+ │ ├── memory.db
246
+ │ ├── config.json
247
+ │ └── vectors/
248
+ ├── personal/
249
+ │ ├── memory.db
250
+ │ ├── config.json
251
+ │ └── vectors/
252
+ └── client-acme/
253
+ ├── memory.db
254
+ ├── config.json
255
+ └── vectors/
256
+ ```
257
+
258
+ **Active profile** stored in main location:
259
+ ```
260
+ ~/.claude-memory/
261
+ ├── memory.db ← Currently active profile
262
+ ├── config.json
263
+ └── vectors/
264
+ ```
265
+
266
+ ---
267
+
268
+ ## Profile Configuration
269
+
270
+ Stored in `~/.claude-memory/profiles.json`:
271
+
272
+ ```json
273
+ {
274
+ "profiles": {
275
+ "default": {
276
+ "name": "default",
277
+ "description": "Default memory profile",
278
+ "created_at": "2026-02-05T10:00:00",
279
+ "last_used": "2026-02-05T14:00:00",
280
+ "created_from": "empty"
281
+ },
282
+ "work": {
283
+ "name": "work",
284
+ "description": "Work projects",
285
+ "created_at": "2026-02-05T11:00:00",
286
+ "last_used": "2026-02-05T13:00:00",
287
+ "created_from": "empty"
288
+ }
289
+ },
290
+ "active_profile": "work"
291
+ }
292
+ ```
293
+
294
+ ---
295
+
296
+ ## Best Practices
297
+
298
+ ### 1. Use Descriptive Names
299
+ ```bash
300
+ # Good
301
+ python ~/.claude-memory/memory-profiles.py create client-acme-api
302
+ python ~/.claude-memory/memory-profiles.py create personal-learning
303
+
304
+ # Avoid
305
+ python ~/.claude-memory/memory-profiles.py create profile1
306
+ python ~/.claude-memory/memory-profiles.py create temp
307
+ ```
308
+
309
+ ### 2. Document Profile Purpose
310
+ ```bash
311
+ python ~/.claude-memory/memory-profiles.py create project-x \
312
+ --description "Confidential client X - Next.js + PostgreSQL"
313
+ ```
314
+
315
+ ### 3. Switch Profiles at Context Boundaries
316
+ ```bash
317
+ # Start of work day
318
+ python ~/.claude-memory/memory-profiles.py switch work
319
+
320
+ # End of work day
321
+ python ~/.claude-memory/memory-profiles.py switch personal
322
+ ```
323
+
324
+ ### 4. Backup Before Major Changes
325
+ ```bash
326
+ # Create backup profile
327
+ python ~/.claude-memory/memory-profiles.py create backup-$(date +%Y%m%d) \
328
+ --from-current
329
+
330
+ # Make changes in main profile
331
+ # ...
332
+
333
+ # If needed, switch to backup
334
+ python ~/.claude-memory/memory-profiles.py switch backup-20260205
335
+ ```
336
+
337
+ ### 5. Archive Completed Projects
338
+ ```bash
339
+ # Rename completed project
340
+ python ~/.claude-memory/memory-profiles.py rename client-acme \
341
+ archived-client-acme-202602
342
+
343
+ # Create fresh profile for new project
344
+ python ~/.claude-memory/memory-profiles.py create client-newco
345
+ ```
346
+
347
+ ---
348
+
349
+ ## Integration with Reset Commands
350
+
351
+ **Profiles + Reset = Powerful Combination**
352
+
353
+ ### Reset Current Profile Only
354
+ ```bash
355
+ # Soft reset active profile
356
+ python ~/.claude-memory/memory-reset.py soft
357
+
358
+ # Active profile cleared, others untouched
359
+ ```
360
+
361
+ ### Reset Specific Profile
362
+ ```bash
363
+ # Switch to profile
364
+ python ~/.claude-memory/memory-profiles.py switch old-project
365
+
366
+ # Reset it
367
+ python ~/.claude-memory/memory-reset.py soft
368
+
369
+ # Switch back
370
+ python ~/.claude-memory/memory-profiles.py switch default
371
+ ```
372
+
373
+ ### Create Clean Profile
374
+ ```bash
375
+ # Create empty profile
376
+ python ~/.claude-memory/memory-profiles.py create clean-slate
377
+
378
+ # Switch to it
379
+ python ~/.claude-memory/memory-profiles.py switch clean-slate
380
+
381
+ # Now work in completely clean environment
382
+ ```
383
+
384
+ ---
385
+
386
+ ## Troubleshooting
387
+
388
+ ### "Profile not found"
389
+ Check available profiles:
390
+ ```bash
391
+ python ~/.claude-memory/memory-profiles.py list
392
+ ```
393
+
394
+ ### "Changes not reflecting"
395
+ Restart Claude CLI after switching profiles:
396
+ ```bash
397
+ # Exit Claude CLI
398
+ # Restart Claude CLI
399
+ ```
400
+
401
+ ### "Cannot delete active profile"
402
+ Switch to different profile first:
403
+ ```bash
404
+ python ~/.claude-memory/memory-profiles.py switch default
405
+ python ~/.claude-memory/memory-profiles.py delete unwanted
406
+ ```
407
+
408
+ ### "Profile directory not found"
409
+ Profile will be created on first switch:
410
+ ```bash
411
+ python ~/.claude-memory/memory-profiles.py switch new-profile
412
+ # Creates directory automatically
413
+ ```
414
+
415
+ ---
416
+
417
+ ## FAQ
418
+
419
+ **Q: Do profiles share learned patterns?**
420
+ A: No. Each profile learns independently.
421
+
422
+ **Q: Can I merge profiles?**
423
+ A: Not directly. You can manually copy memories between profiles.
424
+
425
+ **Q: What happens to cron jobs with multiple profiles?**
426
+ A: Cron jobs run on currently active profile. Switch profile to run jobs on it.
427
+
428
+ **Q: Can I have different compression settings per profile?**
429
+ A: Yes. Each profile has its own `config.json`.
430
+
431
+ **Q: How much space do profiles use?**
432
+ A: ~5MB per profile with 100 memories (before compression).
433
+
434
+ **Q: Can I backup all profiles at once?**
435
+ A: Yes, backup `~/.claude-memory/profiles/` directory.
436
+
437
+ ---
438
+
439
+ ## Quick Reference
440
+
441
+ | Command | Purpose |
442
+ |---------|---------|
443
+ | `list` | Show all profiles |
444
+ | `current` | Show active profile |
445
+ | `create <name>` | Create empty profile |
446
+ | `create <name> --from-current` | Copy current to new profile |
447
+ | `switch <name>` | Change active profile (requires restart) |
448
+ | `delete <name>` | Remove profile (requires confirmation) |
449
+ | `rename <old> <new>` | Rename profile |
450
+
451
+ ---
452
+
453
+ **Remember:** Always restart Claude CLI after switching profiles!