superlocalmemory 2.8.6 → 3.0.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.
Files changed (431) hide show
  1. package/LICENSE +9 -1
  2. package/NOTICE +63 -0
  3. package/README.md +165 -480
  4. package/bin/slm +17 -449
  5. package/bin/slm-npm +62 -48
  6. package/conftest.py +5 -0
  7. package/docs/api-reference.md +284 -0
  8. package/docs/architecture.md +149 -0
  9. package/docs/auto-memory.md +150 -0
  10. package/docs/cli-reference.md +276 -0
  11. package/docs/compliance.md +191 -0
  12. package/docs/configuration.md +182 -0
  13. package/docs/getting-started.md +102 -0
  14. package/docs/ide-setup.md +261 -0
  15. package/docs/mcp-tools.md +220 -0
  16. package/docs/migration-from-v2.md +170 -0
  17. package/docs/profiles.md +173 -0
  18. package/docs/troubleshooting.md +310 -0
  19. package/{configs → ide/configs}/antigravity-mcp.json +3 -3
  20. package/ide/configs/chatgpt-desktop-mcp.json +16 -0
  21. package/{configs → ide/configs}/claude-desktop-mcp.json +3 -3
  22. package/{configs → ide/configs}/codex-mcp.toml +4 -4
  23. package/{configs → ide/configs}/continue-mcp.yaml +4 -3
  24. package/{configs → ide/configs}/continue-skills.yaml +6 -6
  25. package/ide/configs/cursor-mcp.json +15 -0
  26. package/{configs → ide/configs}/gemini-cli-mcp.json +2 -2
  27. package/{configs → ide/configs}/jetbrains-mcp.json +2 -2
  28. package/{configs → ide/configs}/opencode-mcp.json +2 -2
  29. package/{configs → ide/configs}/perplexity-mcp.json +2 -2
  30. package/{configs → ide/configs}/vscode-copilot-mcp.json +2 -2
  31. package/{configs → ide/configs}/windsurf-mcp.json +3 -3
  32. package/{configs → ide/configs}/zed-mcp.json +2 -2
  33. package/{hooks → ide/hooks}/context-hook.js +9 -20
  34. package/ide/hooks/memory-list-skill.js +70 -0
  35. package/ide/hooks/memory-profile-skill.js +101 -0
  36. package/ide/hooks/memory-recall-skill.js +62 -0
  37. package/ide/hooks/memory-remember-skill.js +68 -0
  38. package/ide/hooks/memory-reset-skill.js +160 -0
  39. package/{hooks → ide/hooks}/post-recall-hook.js +2 -2
  40. package/ide/integrations/langchain/README.md +106 -0
  41. package/ide/integrations/langchain/langchain_superlocalmemory/__init__.py +9 -0
  42. package/ide/integrations/langchain/langchain_superlocalmemory/chat_message_history.py +201 -0
  43. package/ide/integrations/langchain/pyproject.toml +38 -0
  44. package/{src/learning → ide/integrations/langchain}/tests/__init__.py +1 -0
  45. package/ide/integrations/langchain/tests/test_chat_message_history.py +215 -0
  46. package/ide/integrations/langchain/tests/test_security.py +117 -0
  47. package/ide/integrations/llamaindex/README.md +81 -0
  48. package/ide/integrations/llamaindex/llama_index/storage/chat_store/superlocalmemory/__init__.py +9 -0
  49. package/ide/integrations/llamaindex/llama_index/storage/chat_store/superlocalmemory/base.py +316 -0
  50. package/ide/integrations/llamaindex/pyproject.toml +43 -0
  51. package/{src/lifecycle → ide/integrations/llamaindex}/tests/__init__.py +1 -2
  52. package/ide/integrations/llamaindex/tests/test_chat_store.py +294 -0
  53. package/ide/integrations/llamaindex/tests/test_security.py +241 -0
  54. package/{skills → ide/skills}/slm-build-graph/SKILL.md +6 -6
  55. package/{skills → ide/skills}/slm-list-recent/SKILL.md +5 -5
  56. package/{skills → ide/skills}/slm-recall/SKILL.md +5 -5
  57. package/{skills → ide/skills}/slm-remember/SKILL.md +6 -6
  58. package/{skills → ide/skills}/slm-show-patterns/SKILL.md +7 -7
  59. package/{skills → ide/skills}/slm-status/SKILL.md +9 -9
  60. package/{skills → ide/skills}/slm-switch-profile/SKILL.md +9 -9
  61. package/package.json +13 -22
  62. package/pyproject.toml +85 -0
  63. package/scripts/build-dmg.sh +417 -0
  64. package/scripts/install-skills.ps1 +334 -0
  65. package/scripts/postinstall.js +2 -2
  66. package/scripts/start-dashboard.ps1 +52 -0
  67. package/scripts/start-dashboard.sh +41 -0
  68. package/scripts/sync-wiki.ps1 +127 -0
  69. package/scripts/sync-wiki.sh +82 -0
  70. package/scripts/test-dmg.sh +161 -0
  71. package/scripts/test-npm-package.ps1 +252 -0
  72. package/scripts/test-npm-package.sh +207 -0
  73. package/scripts/verify-install.ps1 +294 -0
  74. package/scripts/verify-install.sh +266 -0
  75. package/src/superlocalmemory/__init__.py +0 -0
  76. package/src/superlocalmemory/attribution/__init__.py +9 -0
  77. package/src/superlocalmemory/attribution/mathematical_dna.py +235 -0
  78. package/src/superlocalmemory/attribution/signer.py +153 -0
  79. package/src/superlocalmemory/attribution/watermark.py +189 -0
  80. package/src/superlocalmemory/cli/__init__.py +5 -0
  81. package/src/superlocalmemory/cli/commands.py +245 -0
  82. package/src/superlocalmemory/cli/main.py +89 -0
  83. package/src/superlocalmemory/cli/migrate_cmd.py +55 -0
  84. package/src/superlocalmemory/cli/post_install.py +99 -0
  85. package/src/superlocalmemory/cli/setup_wizard.py +129 -0
  86. package/src/superlocalmemory/compliance/__init__.py +0 -0
  87. package/src/superlocalmemory/compliance/abac.py +204 -0
  88. package/src/superlocalmemory/compliance/audit.py +314 -0
  89. package/src/superlocalmemory/compliance/eu_ai_act.py +131 -0
  90. package/src/superlocalmemory/compliance/gdpr.py +294 -0
  91. package/src/superlocalmemory/compliance/lifecycle.py +158 -0
  92. package/src/superlocalmemory/compliance/retention.py +232 -0
  93. package/src/superlocalmemory/compliance/scheduler.py +148 -0
  94. package/src/superlocalmemory/core/__init__.py +0 -0
  95. package/src/superlocalmemory/core/config.py +391 -0
  96. package/src/superlocalmemory/core/embeddings.py +293 -0
  97. package/src/superlocalmemory/core/engine.py +701 -0
  98. package/src/superlocalmemory/core/hooks.py +65 -0
  99. package/src/superlocalmemory/core/maintenance.py +172 -0
  100. package/src/superlocalmemory/core/modes.py +140 -0
  101. package/src/superlocalmemory/core/profiles.py +234 -0
  102. package/src/superlocalmemory/core/registry.py +117 -0
  103. package/src/superlocalmemory/dynamics/__init__.py +0 -0
  104. package/src/superlocalmemory/dynamics/fisher_langevin_coupling.py +223 -0
  105. package/src/superlocalmemory/encoding/__init__.py +0 -0
  106. package/src/superlocalmemory/encoding/consolidator.py +485 -0
  107. package/src/superlocalmemory/encoding/emotional.py +125 -0
  108. package/src/superlocalmemory/encoding/entity_resolver.py +525 -0
  109. package/src/superlocalmemory/encoding/entropy_gate.py +104 -0
  110. package/src/superlocalmemory/encoding/fact_extractor.py +775 -0
  111. package/src/superlocalmemory/encoding/foresight.py +91 -0
  112. package/src/superlocalmemory/encoding/graph_builder.py +302 -0
  113. package/src/superlocalmemory/encoding/observation_builder.py +160 -0
  114. package/src/superlocalmemory/encoding/scene_builder.py +183 -0
  115. package/src/superlocalmemory/encoding/signal_inference.py +90 -0
  116. package/src/superlocalmemory/encoding/temporal_parser.py +426 -0
  117. package/src/superlocalmemory/encoding/type_router.py +235 -0
  118. package/src/superlocalmemory/hooks/__init__.py +3 -0
  119. package/src/superlocalmemory/hooks/auto_capture.py +111 -0
  120. package/src/superlocalmemory/hooks/auto_recall.py +93 -0
  121. package/src/superlocalmemory/hooks/ide_connector.py +204 -0
  122. package/src/superlocalmemory/hooks/rules_engine.py +99 -0
  123. package/src/superlocalmemory/infra/__init__.py +3 -0
  124. package/src/superlocalmemory/infra/auth_middleware.py +82 -0
  125. package/src/superlocalmemory/infra/backup.py +317 -0
  126. package/src/superlocalmemory/infra/cache_manager.py +267 -0
  127. package/src/superlocalmemory/infra/event_bus.py +381 -0
  128. package/src/superlocalmemory/infra/rate_limiter.py +135 -0
  129. package/src/{webhook_dispatcher.py → superlocalmemory/infra/webhook_dispatcher.py} +104 -101
  130. package/src/superlocalmemory/learning/__init__.py +0 -0
  131. package/src/superlocalmemory/learning/adaptive.py +172 -0
  132. package/src/superlocalmemory/learning/behavioral.py +490 -0
  133. package/src/superlocalmemory/learning/behavioral_listener.py +94 -0
  134. package/src/superlocalmemory/learning/bootstrap.py +298 -0
  135. package/src/superlocalmemory/learning/cross_project.py +399 -0
  136. package/src/superlocalmemory/learning/database.py +376 -0
  137. package/src/superlocalmemory/learning/engagement.py +323 -0
  138. package/src/superlocalmemory/learning/features.py +138 -0
  139. package/src/superlocalmemory/learning/feedback.py +316 -0
  140. package/src/superlocalmemory/learning/outcomes.py +255 -0
  141. package/src/superlocalmemory/learning/project_context.py +366 -0
  142. package/src/superlocalmemory/learning/ranker.py +155 -0
  143. package/src/superlocalmemory/learning/source_quality.py +303 -0
  144. package/src/superlocalmemory/learning/workflows.py +309 -0
  145. package/src/superlocalmemory/llm/__init__.py +0 -0
  146. package/src/superlocalmemory/llm/backbone.py +316 -0
  147. package/src/superlocalmemory/math/__init__.py +0 -0
  148. package/src/superlocalmemory/math/fisher.py +356 -0
  149. package/src/superlocalmemory/math/langevin.py +398 -0
  150. package/src/superlocalmemory/math/sheaf.py +257 -0
  151. package/src/superlocalmemory/mcp/__init__.py +0 -0
  152. package/src/superlocalmemory/mcp/resources.py +245 -0
  153. package/src/superlocalmemory/mcp/server.py +61 -0
  154. package/src/superlocalmemory/mcp/tools.py +18 -0
  155. package/src/superlocalmemory/mcp/tools_core.py +305 -0
  156. package/src/superlocalmemory/mcp/tools_v28.py +223 -0
  157. package/src/superlocalmemory/mcp/tools_v3.py +286 -0
  158. package/src/superlocalmemory/retrieval/__init__.py +0 -0
  159. package/src/superlocalmemory/retrieval/agentic.py +295 -0
  160. package/src/superlocalmemory/retrieval/ann_index.py +223 -0
  161. package/src/superlocalmemory/retrieval/bm25_channel.py +185 -0
  162. package/src/superlocalmemory/retrieval/bridge_discovery.py +170 -0
  163. package/src/superlocalmemory/retrieval/engine.py +390 -0
  164. package/src/superlocalmemory/retrieval/entity_channel.py +179 -0
  165. package/src/superlocalmemory/retrieval/fusion.py +78 -0
  166. package/src/superlocalmemory/retrieval/profile_channel.py +105 -0
  167. package/src/superlocalmemory/retrieval/reranker.py +154 -0
  168. package/src/superlocalmemory/retrieval/semantic_channel.py +232 -0
  169. package/src/superlocalmemory/retrieval/strategy.py +96 -0
  170. package/src/superlocalmemory/retrieval/temporal_channel.py +175 -0
  171. package/src/superlocalmemory/server/__init__.py +1 -0
  172. package/src/superlocalmemory/server/api.py +248 -0
  173. package/src/superlocalmemory/server/routes/__init__.py +4 -0
  174. package/src/superlocalmemory/server/routes/agents.py +107 -0
  175. package/src/superlocalmemory/server/routes/backup.py +91 -0
  176. package/src/superlocalmemory/server/routes/behavioral.py +127 -0
  177. package/src/superlocalmemory/server/routes/compliance.py +160 -0
  178. package/src/superlocalmemory/server/routes/data_io.py +188 -0
  179. package/src/superlocalmemory/server/routes/events.py +183 -0
  180. package/src/superlocalmemory/server/routes/helpers.py +85 -0
  181. package/src/superlocalmemory/server/routes/learning.py +273 -0
  182. package/src/superlocalmemory/server/routes/lifecycle.py +116 -0
  183. package/src/superlocalmemory/server/routes/memories.py +399 -0
  184. package/src/superlocalmemory/server/routes/profiles.py +219 -0
  185. package/src/superlocalmemory/server/routes/stats.py +346 -0
  186. package/src/superlocalmemory/server/routes/v3_api.py +365 -0
  187. package/src/superlocalmemory/server/routes/ws.py +82 -0
  188. package/src/superlocalmemory/server/security_middleware.py +57 -0
  189. package/src/superlocalmemory/server/ui.py +245 -0
  190. package/src/superlocalmemory/storage/__init__.py +0 -0
  191. package/src/superlocalmemory/storage/access_control.py +182 -0
  192. package/src/superlocalmemory/storage/database.py +594 -0
  193. package/src/superlocalmemory/storage/migrations.py +303 -0
  194. package/src/superlocalmemory/storage/models.py +406 -0
  195. package/src/superlocalmemory/storage/schema.py +726 -0
  196. package/src/superlocalmemory/storage/v2_migrator.py +317 -0
  197. package/src/superlocalmemory/trust/__init__.py +0 -0
  198. package/src/superlocalmemory/trust/gate.py +130 -0
  199. package/src/superlocalmemory/trust/provenance.py +124 -0
  200. package/src/superlocalmemory/trust/scorer.py +347 -0
  201. package/src/superlocalmemory/trust/signals.py +153 -0
  202. package/ui/index.html +278 -5
  203. package/ui/js/auto-settings.js +70 -0
  204. package/ui/js/dashboard.js +90 -0
  205. package/ui/js/fact-detail.js +92 -0
  206. package/ui/js/feedback.js +2 -2
  207. package/ui/js/ide-status.js +102 -0
  208. package/ui/js/math-health.js +98 -0
  209. package/ui/js/recall-lab.js +127 -0
  210. package/ui/js/settings.js +2 -2
  211. package/ui/js/trust-dashboard.js +73 -0
  212. package/api_server.py +0 -724
  213. package/bin/aider-smart +0 -72
  214. package/bin/superlocalmemoryv2-learning +0 -4
  215. package/bin/superlocalmemoryv2-list +0 -3
  216. package/bin/superlocalmemoryv2-patterns +0 -4
  217. package/bin/superlocalmemoryv2-profile +0 -3
  218. package/bin/superlocalmemoryv2-recall +0 -3
  219. package/bin/superlocalmemoryv2-remember +0 -3
  220. package/bin/superlocalmemoryv2-reset +0 -3
  221. package/bin/superlocalmemoryv2-status +0 -3
  222. package/configs/chatgpt-desktop-mcp.json +0 -16
  223. package/configs/cursor-mcp.json +0 -15
  224. package/hooks/memory-list-skill.js +0 -139
  225. package/hooks/memory-profile-skill.js +0 -273
  226. package/hooks/memory-recall-skill.js +0 -114
  227. package/hooks/memory-remember-skill.js +0 -127
  228. package/hooks/memory-reset-skill.js +0 -274
  229. package/mcp_server.py +0 -1808
  230. package/requirements-core.txt +0 -22
  231. package/requirements-learning.txt +0 -12
  232. package/requirements.txt +0 -12
  233. package/src/agent_registry.py +0 -411
  234. package/src/auth_middleware.py +0 -61
  235. package/src/auto_backup.py +0 -459
  236. package/src/behavioral/__init__.py +0 -49
  237. package/src/behavioral/behavioral_listener.py +0 -203
  238. package/src/behavioral/behavioral_patterns.py +0 -275
  239. package/src/behavioral/cross_project_transfer.py +0 -206
  240. package/src/behavioral/outcome_inference.py +0 -194
  241. package/src/behavioral/outcome_tracker.py +0 -193
  242. package/src/behavioral/tests/__init__.py +0 -4
  243. package/src/behavioral/tests/test_behavioral_integration.py +0 -108
  244. package/src/behavioral/tests/test_behavioral_patterns.py +0 -150
  245. package/src/behavioral/tests/test_cross_project_transfer.py +0 -142
  246. package/src/behavioral/tests/test_mcp_behavioral.py +0 -139
  247. package/src/behavioral/tests/test_mcp_report_outcome.py +0 -117
  248. package/src/behavioral/tests/test_outcome_inference.py +0 -107
  249. package/src/behavioral/tests/test_outcome_tracker.py +0 -96
  250. package/src/cache_manager.py +0 -518
  251. package/src/compliance/__init__.py +0 -48
  252. package/src/compliance/abac_engine.py +0 -149
  253. package/src/compliance/abac_middleware.py +0 -116
  254. package/src/compliance/audit_db.py +0 -215
  255. package/src/compliance/audit_logger.py +0 -148
  256. package/src/compliance/retention_manager.py +0 -289
  257. package/src/compliance/retention_scheduler.py +0 -186
  258. package/src/compliance/tests/__init__.py +0 -4
  259. package/src/compliance/tests/test_abac_enforcement.py +0 -95
  260. package/src/compliance/tests/test_abac_engine.py +0 -124
  261. package/src/compliance/tests/test_abac_mcp_integration.py +0 -118
  262. package/src/compliance/tests/test_audit_db.py +0 -123
  263. package/src/compliance/tests/test_audit_logger.py +0 -98
  264. package/src/compliance/tests/test_mcp_audit.py +0 -128
  265. package/src/compliance/tests/test_mcp_retention_policy.py +0 -125
  266. package/src/compliance/tests/test_retention_manager.py +0 -131
  267. package/src/compliance/tests/test_retention_scheduler.py +0 -99
  268. package/src/compression/__init__.py +0 -25
  269. package/src/compression/cli.py +0 -150
  270. package/src/compression/cold_storage.py +0 -217
  271. package/src/compression/config.py +0 -72
  272. package/src/compression/orchestrator.py +0 -133
  273. package/src/compression/tier2_compressor.py +0 -228
  274. package/src/compression/tier3_compressor.py +0 -153
  275. package/src/compression/tier_classifier.py +0 -148
  276. package/src/db_connection_manager.py +0 -536
  277. package/src/embedding_engine.py +0 -63
  278. package/src/embeddings/__init__.py +0 -47
  279. package/src/embeddings/cache.py +0 -70
  280. package/src/embeddings/cli.py +0 -113
  281. package/src/embeddings/constants.py +0 -47
  282. package/src/embeddings/database.py +0 -91
  283. package/src/embeddings/engine.py +0 -247
  284. package/src/embeddings/model_loader.py +0 -145
  285. package/src/event_bus.py +0 -562
  286. package/src/graph/__init__.py +0 -36
  287. package/src/graph/build_helpers.py +0 -74
  288. package/src/graph/cli.py +0 -87
  289. package/src/graph/cluster_builder.py +0 -188
  290. package/src/graph/cluster_summary.py +0 -148
  291. package/src/graph/constants.py +0 -47
  292. package/src/graph/edge_builder.py +0 -162
  293. package/src/graph/entity_extractor.py +0 -95
  294. package/src/graph/graph_core.py +0 -226
  295. package/src/graph/graph_search.py +0 -231
  296. package/src/graph/hierarchical.py +0 -207
  297. package/src/graph/schema.py +0 -99
  298. package/src/graph_engine.py +0 -52
  299. package/src/hnsw_index.py +0 -628
  300. package/src/hybrid_search.py +0 -46
  301. package/src/learning/__init__.py +0 -217
  302. package/src/learning/adaptive_ranker.py +0 -682
  303. package/src/learning/bootstrap/__init__.py +0 -69
  304. package/src/learning/bootstrap/constants.py +0 -93
  305. package/src/learning/bootstrap/db_queries.py +0 -316
  306. package/src/learning/bootstrap/sampling.py +0 -82
  307. package/src/learning/bootstrap/text_utils.py +0 -71
  308. package/src/learning/cross_project_aggregator.py +0 -857
  309. package/src/learning/db/__init__.py +0 -40
  310. package/src/learning/db/constants.py +0 -44
  311. package/src/learning/db/schema.py +0 -279
  312. package/src/learning/engagement_tracker.py +0 -628
  313. package/src/learning/feature_extractor.py +0 -708
  314. package/src/learning/feedback_collector.py +0 -806
  315. package/src/learning/learning_db.py +0 -915
  316. package/src/learning/project_context_manager.py +0 -572
  317. package/src/learning/ranking/__init__.py +0 -33
  318. package/src/learning/ranking/constants.py +0 -84
  319. package/src/learning/ranking/helpers.py +0 -278
  320. package/src/learning/source_quality_scorer.py +0 -676
  321. package/src/learning/synthetic_bootstrap.py +0 -755
  322. package/src/learning/tests/test_adaptive_ranker.py +0 -325
  323. package/src/learning/tests/test_adaptive_ranker_v28.py +0 -60
  324. package/src/learning/tests/test_aggregator.py +0 -306
  325. package/src/learning/tests/test_auto_retrain_v28.py +0 -35
  326. package/src/learning/tests/test_e2e_ranking_v28.py +0 -82
  327. package/src/learning/tests/test_feature_extractor_v28.py +0 -93
  328. package/src/learning/tests/test_feedback_collector.py +0 -294
  329. package/src/learning/tests/test_learning_db.py +0 -602
  330. package/src/learning/tests/test_learning_db_v28.py +0 -110
  331. package/src/learning/tests/test_learning_init_v28.py +0 -48
  332. package/src/learning/tests/test_outcome_signals.py +0 -48
  333. package/src/learning/tests/test_project_context.py +0 -292
  334. package/src/learning/tests/test_schema_migration.py +0 -319
  335. package/src/learning/tests/test_signal_inference.py +0 -397
  336. package/src/learning/tests/test_source_quality.py +0 -351
  337. package/src/learning/tests/test_synthetic_bootstrap.py +0 -429
  338. package/src/learning/tests/test_workflow_miner.py +0 -318
  339. package/src/learning/workflow_pattern_miner.py +0 -655
  340. package/src/lifecycle/__init__.py +0 -54
  341. package/src/lifecycle/bounded_growth.py +0 -239
  342. package/src/lifecycle/compaction_engine.py +0 -226
  343. package/src/lifecycle/lifecycle_engine.py +0 -355
  344. package/src/lifecycle/lifecycle_evaluator.py +0 -257
  345. package/src/lifecycle/lifecycle_scheduler.py +0 -130
  346. package/src/lifecycle/retention_policy.py +0 -285
  347. package/src/lifecycle/tests/test_bounded_growth.py +0 -193
  348. package/src/lifecycle/tests/test_compaction.py +0 -179
  349. package/src/lifecycle/tests/test_lifecycle_engine.py +0 -137
  350. package/src/lifecycle/tests/test_lifecycle_evaluation.py +0 -177
  351. package/src/lifecycle/tests/test_lifecycle_scheduler.py +0 -127
  352. package/src/lifecycle/tests/test_lifecycle_search.py +0 -109
  353. package/src/lifecycle/tests/test_mcp_compact.py +0 -149
  354. package/src/lifecycle/tests/test_mcp_lifecycle_status.py +0 -114
  355. package/src/lifecycle/tests/test_retention_policy.py +0 -162
  356. package/src/mcp_tools_v28.py +0 -281
  357. package/src/memory/__init__.py +0 -36
  358. package/src/memory/cli.py +0 -205
  359. package/src/memory/constants.py +0 -39
  360. package/src/memory/helpers.py +0 -28
  361. package/src/memory/schema.py +0 -166
  362. package/src/memory-profiles.py +0 -595
  363. package/src/memory-reset.py +0 -491
  364. package/src/memory_compression.py +0 -989
  365. package/src/memory_store_v2.py +0 -1155
  366. package/src/migrate_v1_to_v2.py +0 -629
  367. package/src/pattern_learner.py +0 -34
  368. package/src/patterns/__init__.py +0 -24
  369. package/src/patterns/analyzers.py +0 -251
  370. package/src/patterns/learner.py +0 -271
  371. package/src/patterns/scoring.py +0 -171
  372. package/src/patterns/store.py +0 -225
  373. package/src/patterns/terminology.py +0 -140
  374. package/src/provenance_tracker.py +0 -312
  375. package/src/qualixar_attribution.py +0 -139
  376. package/src/qualixar_watermark.py +0 -78
  377. package/src/query_optimizer.py +0 -511
  378. package/src/rate_limiter.py +0 -83
  379. package/src/search/__init__.py +0 -20
  380. package/src/search/cli.py +0 -77
  381. package/src/search/constants.py +0 -26
  382. package/src/search/engine.py +0 -241
  383. package/src/search/fusion.py +0 -122
  384. package/src/search/index_loader.py +0 -114
  385. package/src/search/methods.py +0 -162
  386. package/src/search_engine_v2.py +0 -401
  387. package/src/setup_validator.py +0 -482
  388. package/src/subscription_manager.py +0 -391
  389. package/src/tree/__init__.py +0 -59
  390. package/src/tree/builder.py +0 -185
  391. package/src/tree/nodes.py +0 -202
  392. package/src/tree/queries.py +0 -257
  393. package/src/tree/schema.py +0 -80
  394. package/src/tree_manager.py +0 -19
  395. package/src/trust/__init__.py +0 -45
  396. package/src/trust/constants.py +0 -66
  397. package/src/trust/queries.py +0 -157
  398. package/src/trust/schema.py +0 -95
  399. package/src/trust/scorer.py +0 -299
  400. package/src/trust/signals.py +0 -95
  401. package/src/trust_scorer.py +0 -44
  402. package/ui/app.js +0 -1588
  403. package/ui/js/graph-cytoscape-monolithic-backup.js +0 -1168
  404. package/ui/js/graph-cytoscape.js +0 -1168
  405. package/ui/js/graph-d3-backup.js +0 -32
  406. package/ui/js/graph.js +0 -32
  407. package/ui_server.py +0 -286
  408. /package/docs/{ACCESSIBILITY.md → v2-archive/ACCESSIBILITY.md} +0 -0
  409. /package/docs/{ARCHITECTURE.md → v2-archive/ARCHITECTURE.md} +0 -0
  410. /package/docs/{CLI-COMMANDS-REFERENCE.md → v2-archive/CLI-COMMANDS-REFERENCE.md} +0 -0
  411. /package/docs/{COMPRESSION-README.md → v2-archive/COMPRESSION-README.md} +0 -0
  412. /package/docs/{FRAMEWORK-INTEGRATIONS.md → v2-archive/FRAMEWORK-INTEGRATIONS.md} +0 -0
  413. /package/docs/{MCP-MANUAL-SETUP.md → v2-archive/MCP-MANUAL-SETUP.md} +0 -0
  414. /package/docs/{MCP-TROUBLESHOOTING.md → v2-archive/MCP-TROUBLESHOOTING.md} +0 -0
  415. /package/docs/{PATTERN-LEARNING.md → v2-archive/PATTERN-LEARNING.md} +0 -0
  416. /package/docs/{PROFILES-GUIDE.md → v2-archive/PROFILES-GUIDE.md} +0 -0
  417. /package/docs/{RESET-GUIDE.md → v2-archive/RESET-GUIDE.md} +0 -0
  418. /package/docs/{SEARCH-ENGINE-V2.2.0.md → v2-archive/SEARCH-ENGINE-V2.2.0.md} +0 -0
  419. /package/docs/{SEARCH-INTEGRATION-GUIDE.md → v2-archive/SEARCH-INTEGRATION-GUIDE.md} +0 -0
  420. /package/docs/{UI-SERVER.md → v2-archive/UI-SERVER.md} +0 -0
  421. /package/docs/{UNIVERSAL-INTEGRATION.md → v2-archive/UNIVERSAL-INTEGRATION.md} +0 -0
  422. /package/docs/{V2.2.0-OPTIONAL-SEARCH.md → v2-archive/V2.2.0-OPTIONAL-SEARCH.md} +0 -0
  423. /package/docs/{WINDOWS-INSTALL-README.txt → v2-archive/WINDOWS-INSTALL-README.txt} +0 -0
  424. /package/docs/{WINDOWS-POST-INSTALL.txt → v2-archive/WINDOWS-POST-INSTALL.txt} +0 -0
  425. /package/docs/{example_graph_usage.py → v2-archive/example_graph_usage.py} +0 -0
  426. /package/{completions → ide/completions}/slm.bash +0 -0
  427. /package/{completions → ide/completions}/slm.zsh +0 -0
  428. /package/{configs → ide/configs}/cody-commands.json +0 -0
  429. /package/{install-skills.sh → scripts/install-skills.sh} +0 -0
  430. /package/{install.ps1 → scripts/install.ps1} +0 -0
  431. /package/{install.sh → scripts/install.sh} +0 -0
@@ -0,0 +1,241 @@
1
+ #!/usr/bin/env python3
2
+ # SPDX-License-Identifier: MIT
3
+ # Copyright (c) 2026 SuperLocalMemory (superlocalmemory.com)
4
+ """SuperLocalMemory V2 - LlamaIndex Chat Store Security Tests
5
+
6
+ Security-focused tests: SQL injection, XSS, oversized payloads, null bytes,
7
+ and other adversarial inputs that a production chat store must handle safely.
8
+ """
9
+ import os
10
+ import sys
11
+ import tempfile
12
+
13
+ import pytest
14
+
15
+ # Ensure the SLM source tree is importable for tests
16
+ _SLM_SRC = os.path.join(
17
+ os.path.dirname(__file__), os.pardir, os.pardir, os.pardir, "src"
18
+ )
19
+ _SLM_SRC = os.path.abspath(_SLM_SRC)
20
+ if _SLM_SRC not in sys.path:
21
+ sys.path.insert(0, _SLM_SRC)
22
+
23
+ from llama_index.core.base.llms.types import ChatMessage, MessageRole
24
+ from llama_index.storage.chat_store.superlocalmemory import SuperLocalMemoryChatStore
25
+
26
+
27
+ # ---------------------------------------------------------------------------
28
+ # Fixtures
29
+ # ---------------------------------------------------------------------------
30
+
31
+
32
+ @pytest.fixture
33
+ def tmp_db():
34
+ with tempfile.TemporaryDirectory() as d:
35
+ yield os.path.join(d, "test_security.db")
36
+
37
+
38
+ @pytest.fixture
39
+ def store(tmp_db):
40
+ return SuperLocalMemoryChatStore(db_path=tmp_db)
41
+
42
+
43
+ # ---------------------------------------------------------------------------
44
+ # SQL Injection Tests
45
+ # ---------------------------------------------------------------------------
46
+
47
+
48
+ class TestSQLInjection:
49
+ """Verify that SQL injection attempts in keys and content are harmless."""
50
+
51
+ SQL_PAYLOADS = [
52
+ "'; DROP TABLE memories; --",
53
+ "' OR '1'='1",
54
+ "'; DELETE FROM memories WHERE '1'='1",
55
+ "1; SELECT * FROM memories --",
56
+ "Robert'); DROP TABLE memories;--",
57
+ "' UNION SELECT * FROM memories --",
58
+ ]
59
+
60
+ def test_sql_injection_in_key(self, store):
61
+ """SQL injection attempts in the session key must not corrupt the store."""
62
+ for payload in self.SQL_PAYLOADS:
63
+ msg = ChatMessage(role=MessageRole.USER, content="safe content")
64
+ store.add_message(payload, msg)
65
+
66
+ # The store should still function — retrieve the message back
67
+ msgs = store.get_messages(payload)
68
+ assert len(msgs) == 1
69
+ assert msgs[0].content == "safe content"
70
+
71
+ # Clean up
72
+ store.delete_messages(payload)
73
+
74
+ def test_sql_injection_in_content(self, store):
75
+ """SQL injection attempts in message content must be stored literally."""
76
+ for payload in self.SQL_PAYLOADS:
77
+ msg = ChatMessage(role=MessageRole.USER, content=payload)
78
+ store.add_message("safe-key", msg)
79
+
80
+ msgs = store.get_messages("safe-key")
81
+ assert len(msgs) == len(self.SQL_PAYLOADS)
82
+
83
+ # Verify content is stored literally, not executed
84
+ for i, payload in enumerate(self.SQL_PAYLOADS):
85
+ assert msgs[i].content == payload
86
+
87
+ # Clean up
88
+ store.delete_messages("safe-key")
89
+
90
+
91
+ # ---------------------------------------------------------------------------
92
+ # XSS Tests
93
+ # ---------------------------------------------------------------------------
94
+
95
+
96
+ class TestXSS:
97
+ """Verify that XSS payloads in content are stored literally (not executed)."""
98
+
99
+ XSS_PAYLOADS = [
100
+ "<script>alert('xss')</script>",
101
+ '<img src=x onerror=alert(1)>',
102
+ "javascript:alert(document.cookie)",
103
+ "<svg/onload=alert('xss')>",
104
+ '"><script>alert(String.fromCharCode(88,83,83))</script>',
105
+ ]
106
+
107
+ def test_xss_in_content(self, store):
108
+ """XSS payloads must be stored and retrieved as literal strings."""
109
+ for payload in self.XSS_PAYLOADS:
110
+ msg = ChatMessage(role=MessageRole.USER, content=payload)
111
+ store.add_message("xss-key", msg)
112
+
113
+ msgs = store.get_messages("xss-key")
114
+ assert len(msgs) == len(self.XSS_PAYLOADS)
115
+
116
+ for i, payload in enumerate(self.XSS_PAYLOADS):
117
+ assert msgs[i].content == payload
118
+
119
+ store.delete_messages("xss-key")
120
+
121
+
122
+ # ---------------------------------------------------------------------------
123
+ # Oversized Content Tests
124
+ # ---------------------------------------------------------------------------
125
+
126
+
127
+ class TestOversizedContent:
128
+ """Verify that oversized payloads are handled without crashing."""
129
+
130
+ def test_oversized_content_1mb(self, store):
131
+ """A 1MB message should be rejected by MemoryStoreV2's validation."""
132
+ huge = "A" * 1_000_001 # Just over the 1MB limit
133
+ msg = ChatMessage(role=MessageRole.USER, content=huge)
134
+
135
+ # MemoryStoreV2 raises ValueError for content > 1MB
136
+ with pytest.raises((ValueError, Exception)):
137
+ store.add_message("huge-key", msg)
138
+
139
+ def test_large_but_valid_content(self, store):
140
+ """A 500KB message should be stored successfully (under 1MB limit)."""
141
+ large = "B" * 500_000
142
+ msg = ChatMessage(role=MessageRole.USER, content=large)
143
+ store.add_message("large-key", msg)
144
+
145
+ msgs = store.get_messages("large-key")
146
+ assert len(msgs) == 1
147
+ assert len(msgs[0].content) == 500_000
148
+
149
+ store.delete_messages("large-key")
150
+
151
+
152
+ # ---------------------------------------------------------------------------
153
+ # Edge Case Key Tests
154
+ # ---------------------------------------------------------------------------
155
+
156
+
157
+ class TestEdgeCaseKeys:
158
+ """Verify safe handling of unusual session key values."""
159
+
160
+ def test_empty_key(self, store):
161
+ """An empty string key should still work (tags allow empty strings)."""
162
+ msg = ChatMessage(role=MessageRole.USER, content="empty key test")
163
+ store.add_message("", msg)
164
+
165
+ msgs = store.get_messages("")
166
+ assert len(msgs) == 1
167
+ assert msgs[0].content == "empty key test"
168
+
169
+ store.delete_messages("")
170
+
171
+ def test_null_bytes_in_key(self, store):
172
+ """Null bytes in a key should be handled without crash."""
173
+ key_with_null = "key\x00with\x00nulls"
174
+ msg = ChatMessage(role=MessageRole.USER, content="null byte key")
175
+ store.add_message(key_with_null, msg)
176
+
177
+ msgs = store.get_messages(key_with_null)
178
+ assert len(msgs) == 1
179
+ assert msgs[0].content == "null byte key"
180
+
181
+ store.delete_messages(key_with_null)
182
+
183
+ def test_very_long_key(self, store):
184
+ """A very long key (1000 chars) should work."""
185
+ long_key = "k" * 1000
186
+ msg = ChatMessage(role=MessageRole.USER, content="long key test")
187
+ store.add_message(long_key, msg)
188
+
189
+ msgs = store.get_messages(long_key)
190
+ assert len(msgs) == 1
191
+
192
+ store.delete_messages(long_key)
193
+
194
+ def test_special_characters_in_key(self, store):
195
+ """Keys with special characters should work."""
196
+ special_keys = [
197
+ "user@example.com",
198
+ "path/to/session",
199
+ "key with spaces",
200
+ "key-with-dashes_and_underscores",
201
+ "unicode-key",
202
+ ]
203
+ for key in special_keys:
204
+ store.add_message(
205
+ key, ChatMessage(role=MessageRole.USER, content=f"test {key}")
206
+ )
207
+
208
+ for key in special_keys:
209
+ msgs = store.get_messages(key)
210
+ assert len(msgs) == 1, f"Failed for key: {key}"
211
+
212
+ # Verify all keys are discoverable
213
+ all_keys = store.get_keys()
214
+ for key in special_keys:
215
+ assert key in all_keys, f"Key '{key}' not found in get_keys()"
216
+
217
+ for key in special_keys:
218
+ store.delete_messages(key)
219
+
220
+
221
+ # ---------------------------------------------------------------------------
222
+ # Null / None Content Tests
223
+ # ---------------------------------------------------------------------------
224
+
225
+
226
+ class TestNullContent:
227
+ """Verify that null bytes and None-like content are handled safely."""
228
+
229
+ def test_null_bytes_in_content(self, store):
230
+ """Null bytes in content should be stored and retrieved literally."""
231
+ content_with_null = "before\x00after"
232
+ msg = ChatMessage(role=MessageRole.USER, content=content_with_null)
233
+ store.add_message("null-content-key", msg)
234
+
235
+ msgs = store.get_messages("null-content-key")
236
+ assert len(msgs) == 1
237
+ # The content may or may not preserve null bytes depending on SQLite/JSON
238
+ # The key requirement is that it doesn't crash
239
+ assert msgs[0].content is not None
240
+
241
+ store.delete_messages("null-content-key")
@@ -1,13 +1,13 @@
1
1
  ---
2
2
  name: slm-build-graph
3
3
  description: Build or rebuild the knowledge graph from existing memories using TF-IDF entity extraction and Leiden clustering. Use when search results seem poor, after bulk imports, or to optimize performance. Automatically discovers relationships between memories and creates topic clusters.
4
- version: "2.1.0"
4
+ version: "3.0.0"
5
5
  license: MIT
6
- compatibility: "Requires SuperLocalMemory V2 installed at ~/.claude-memory/, optional dependencies: python-igraph, leidenalg"
6
+ compatibility: "Requires SuperLocalMemory V3 installed at ~/.superlocalmemory/, optional dependencies: python-igraph, leidenalg"
7
7
  attribution:
8
8
  creator: Varun Pratap Bhardwaj
9
9
  role: Solution Architect & Original Creator
10
- project: SuperLocalMemory V2
10
+ project: SuperLocalMemory V3
11
11
  ---
12
12
 
13
13
  # SuperLocalMemory: Build Knowledge Graph
@@ -315,7 +315,7 @@ slm build-graph --verbose
315
315
  slm build-graph # No --clustering flag
316
316
 
317
317
  # Check disk space
318
- df -h ~/.claude-memory/
318
+ df -h ~/.superlocalmemory/
319
319
  ```
320
320
 
321
321
  ### "Edges seem wrong"
@@ -416,8 +416,8 @@ Each profile has separate graph
416
416
  ---
417
417
 
418
418
  **Created by:** [Varun Pratap Bhardwaj](https://github.com/varun369) (Solution Architect)
419
- **Project:** SuperLocalMemory V2
419
+ **Project:** SuperLocalMemory V3
420
420
  **License:** MIT (see [LICENSE](../../LICENSE))
421
- **Repository:** https://github.com/varun369/SuperLocalMemoryV2
421
+ **Repository:** https://github.com/qualixar/superlocalmemory
422
422
 
423
423
  *Open source doesn't mean removing credit. Attribution must be preserved per MIT License terms.*
@@ -1,13 +1,13 @@
1
1
  ---
2
2
  name: slm-list-recent
3
3
  description: List most recent memories in chronological order. Use when the user wants to see what was recently saved, review recent conversations, check what they worked on today, or browse memory history. Shows memories sorted by creation time (newest first).
4
- version: "2.1.0"
4
+ version: "3.0.0"
5
5
  license: MIT
6
- compatibility: "Requires SuperLocalMemory V2 installed at ~/.claude-memory/"
6
+ compatibility: "Requires SuperLocalMemory V3 installed at ~/.superlocalmemory/"
7
7
  attribution:
8
8
  creator: Varun Pratap Bhardwaj
9
9
  role: Solution Architect & Original Creator
10
- project: SuperLocalMemory V2
10
+ project: SuperLocalMemory V3
11
11
  ---
12
12
 
13
13
  # SuperLocalMemory: List Recent
@@ -341,8 +341,8 @@ date
341
341
  ---
342
342
 
343
343
  **Created by:** [Varun Pratap Bhardwaj](https://github.com/varun369) (Solution Architect)
344
- **Project:** SuperLocalMemory V2
344
+ **Project:** SuperLocalMemory V3
345
345
  **License:** MIT (see [LICENSE](../../LICENSE))
346
- **Repository:** https://github.com/varun369/SuperLocalMemoryV2
346
+ **Repository:** https://github.com/qualixar/superlocalmemory
347
347
 
348
348
  *Open source doesn't mean removing credit. Attribution must be preserved per MIT License terms.*
@@ -1,13 +1,13 @@
1
1
  ---
2
2
  name: slm-recall
3
3
  description: Search and retrieve memories using semantic similarity, knowledge graph relationships, and full-text search. Use when the user asks to recall information, search memories, find past decisions, or query stored knowledge. Returns ranked results with relevance scores.
4
- version: "2.1.0"
4
+ version: "3.0.0"
5
5
  license: MIT
6
- compatibility: "Requires SuperLocalMemory V2 installed at ~/.claude-memory/"
6
+ compatibility: "Requires SuperLocalMemory V3 installed at ~/.superlocalmemory/"
7
7
  attribution:
8
8
  creator: Varun Pratap Bhardwaj
9
9
  role: Solution Architect & Original Creator
10
- project: SuperLocalMemory V2
10
+ project: SuperLocalMemory V3
11
11
  ---
12
12
 
13
13
  # SuperLocalMemory: Recall
@@ -319,8 +319,8 @@ slm recall "query" --format csv
319
319
  ---
320
320
 
321
321
  **Created by:** [Varun Pratap Bhardwaj](https://github.com/varun369) (Solution Architect)
322
- **Project:** SuperLocalMemory V2
322
+ **Project:** SuperLocalMemory V3
323
323
  **License:** MIT (see [LICENSE](../../LICENSE))
324
- **Repository:** https://github.com/varun369/SuperLocalMemoryV2
324
+ **Repository:** https://github.com/qualixar/superlocalmemory
325
325
 
326
326
  *Open source doesn't mean removing credit. Attribution must be preserved per MIT License terms.*
@@ -1,13 +1,13 @@
1
1
  ---
2
2
  name: slm-remember
3
3
  description: Save content to SuperLocalMemory with intelligent indexing and knowledge graph integration. Use when the user wants to remember information, save context, store coding decisions, or persist knowledge for future sessions. Automatically indexes, graphs, and learns patterns.
4
- version: "2.1.0"
4
+ version: "3.0.0"
5
5
  license: MIT
6
- compatibility: "Requires SuperLocalMemory V2 installed at ~/.claude-memory/"
6
+ compatibility: "Requires SuperLocalMemory V3 installed at ~/.superlocalmemory/"
7
7
  attribution:
8
8
  creator: Varun Pratap Bhardwaj
9
9
  role: Solution Architect & Original Creator
10
- project: SuperLocalMemory V2
10
+ project: SuperLocalMemory V3
11
11
  ---
12
12
 
13
13
  # SuperLocalMemory: Remember
@@ -88,7 +88,7 @@ Next steps:
88
88
 
89
89
  ## What Happens Behind the Scenes
90
90
 
91
- 1. **Content Storage:** Saved to SQLite (`~/.claude-memory/memory.db`)
91
+ 1. **Content Storage:** Saved to SQLite (`~/.superlocalmemory/memory.db`)
92
92
  2. **Semantic Indexing:** TF-IDF vectors generated for similarity search
93
93
  3. **Knowledge Graph:** Entities extracted and nodes/edges created
94
94
  4. **Pattern Learning:** Analyzes content for coding preferences (frameworks, style, testing)
@@ -187,8 +187,8 @@ slm remember "Commit: $commit_msg (${commit_hash:0:7})" \
187
187
  ---
188
188
 
189
189
  **Created by:** [Varun Pratap Bhardwaj](https://github.com/varun369) (Solution Architect)
190
- **Project:** SuperLocalMemory V2
190
+ **Project:** SuperLocalMemory V3
191
191
  **License:** MIT (see [LICENSE](../../LICENSE))
192
- **Repository:** https://github.com/varun369/SuperLocalMemoryV2
192
+ **Repository:** https://github.com/qualixar/superlocalmemory
193
193
 
194
194
  *Open source doesn't mean removing credit. Attribution must be preserved per MIT License terms.*
@@ -1,13 +1,13 @@
1
1
  ---
2
2
  name: slm-show-patterns
3
3
  description: Show what SuperLocalMemory has learned about your preferences, workflow patterns, and project context. Use when the user asks "what have you learned about me?" or wants to see their coding identity patterns. Shows tech preferences, workflow sequences, and engagement health.
4
- version: "2.7.0"
4
+ version: "3.0.0"
5
5
  license: MIT
6
- compatibility: "Requires SuperLocalMemory V2.7+ with learning features"
6
+ compatibility: "Requires SuperLocalMemory V3 with learning features"
7
7
  attribution:
8
8
  creator: Varun Pratap Bhardwaj
9
9
  role: Solution Architect & Original Creator
10
- project: SuperLocalMemory V2
10
+ project: SuperLocalMemory V3
11
11
  ---
12
12
 
13
13
  # SuperLocalMemory: Show Patterns
@@ -60,7 +60,7 @@ $ slm learning status
60
60
 
61
61
  **Output:**
62
62
  ```
63
- SuperLocalMemory v2.7 -- Learning System Status
63
+ SuperLocalMemory V3 -- Learning System Status
64
64
  ==================================================
65
65
  LightGBM: installed (4.5.0)
66
66
  SciPy: installed (1.14.1)
@@ -196,7 +196,7 @@ slm engagement
196
196
 
197
197
  ## Requirements
198
198
 
199
- - SuperLocalMemory V2.7+
199
+ - SuperLocalMemory V3.7+
200
200
  - Optional: `lightgbm` and `scipy` for ML-powered ranking
201
201
  - Works without optional deps (uses rule-based ranking as fallback)
202
202
 
@@ -217,8 +217,8 @@ slm engagement
217
217
  ---
218
218
 
219
219
  **Created by:** [Varun Pratap Bhardwaj](https://github.com/varun369) (Solution Architect)
220
- **Project:** SuperLocalMemory V2
220
+ **Project:** SuperLocalMemory V3
221
221
  **License:** MIT (see [LICENSE](../../LICENSE))
222
- **Repository:** https://github.com/varun369/SuperLocalMemoryV2
222
+ **Repository:** https://github.com/qualixar/superlocalmemory
223
223
 
224
224
  *Open source doesn't mean removing credit. Attribution must be preserved per MIT License terms.*
@@ -1,13 +1,13 @@
1
1
  ---
2
2
  name: slm-status
3
3
  description: Check SuperLocalMemory system status, health, and statistics. Use when the user wants to know memory count, graph stats, patterns learned, database health, or system diagnostics. Shows comprehensive system health dashboard.
4
- version: "2.1.0"
4
+ version: "3.0.0"
5
5
  license: MIT
6
- compatibility: "Requires SuperLocalMemory V2 installed at ~/.claude-memory/"
6
+ compatibility: "Requires SuperLocalMemory V3 installed at ~/.superlocalmemory/"
7
7
  attribution:
8
8
  creator: Varun Pratap Bhardwaj
9
9
  role: Solution Architect & Original Creator
10
- project: SuperLocalMemory V2
10
+ project: SuperLocalMemory V3
11
11
  ---
12
12
 
13
13
  # SuperLocalMemory: Status
@@ -30,7 +30,7 @@ $ slm status
30
30
  **Output:**
31
31
  ```
32
32
  ╔══════════════════════════════════════════════════════╗
33
- ║ SuperLocalMemory V2 - System Status ║
33
+ ║ SuperLocalMemory V3 - System Status ║
34
34
  ╚══════════════════════════════════════════════════════╝
35
35
 
36
36
  📊 Memory Statistics
@@ -63,7 +63,7 @@ $ slm status
63
63
  Last Used: 2026-02-07 14:23
64
64
 
65
65
  ⚙️ System Info
66
- Install Path: ~/.claude-memory
66
+ Install Path: ~/.superlocalmemory
67
67
  Database: memory.db
68
68
  Python Version: 3.11.7
69
69
  SQLite Version: 3.43.2
@@ -264,7 +264,7 @@ slm status --format json > status.json
264
264
  **Solution:**
265
265
  ```bash
266
266
  # Check for locks
267
- lsof ~/.claude-memory/memory.db
267
+ lsof ~/.superlocalmemory/memory.db
268
268
 
269
269
  # Kill hanging processes
270
270
  killall python3
@@ -279,7 +279,7 @@ slm status
279
279
  **Solution:**
280
280
  ```bash
281
281
  # Restore from backup
282
- cp ~/.claude-memory/backups/memory.db.backup.* ~/.claude-memory/memory.db
282
+ cp ~/.superlocalmemory/backups/memory.db.backup.* ~/.superlocalmemory/memory.db
283
283
 
284
284
  # Verify
285
285
  slm status --check-integrity
@@ -356,8 +356,8 @@ slm build-graph
356
356
  ---
357
357
 
358
358
  **Created by:** [Varun Pratap Bhardwaj](https://github.com/varun369) (Solution Architect)
359
- **Project:** SuperLocalMemory V2
359
+ **Project:** SuperLocalMemory V3
360
360
  **License:** MIT (see [LICENSE](../../LICENSE))
361
- **Repository:** https://github.com/varun369/SuperLocalMemoryV2
361
+ **Repository:** https://github.com/qualixar/superlocalmemory
362
362
 
363
363
  *Open source doesn't mean removing credit. Attribution must be preserved per MIT License terms.*
@@ -1,13 +1,13 @@
1
1
  ---
2
2
  name: slm-switch-profile
3
3
  description: Switch between memory profiles for context isolation and management. Use when the user wants to change profile context, separate work/personal memories, or manage multiple independent memory spaces. Each profile has its own database, graph, and patterns.
4
- version: "2.1.0"
4
+ version: "3.0.0"
5
5
  license: MIT
6
- compatibility: "Requires SuperLocalMemory V2 installed at ~/.claude-memory/"
6
+ compatibility: "Requires SuperLocalMemory V3 installed at ~/.superlocalmemory/"
7
7
  attribution:
8
8
  creator: Varun Pratap Bhardwaj
9
9
  role: Solution Architect & Original Creator
10
- project: SuperLocalMemory V2
10
+ project: SuperLocalMemory V3
11
11
  ---
12
12
 
13
13
  # SuperLocalMemory: Switch Profile
@@ -69,7 +69,7 @@ $ slm switch-profile client-acme --create
69
69
  🆕 Creating new profile: client-acme
70
70
 
71
71
  Profile created successfully!
72
- Location: ~/.claude-memory/profiles/client-acme/
72
+ Location: ~/.superlocalmemory/profiles/client-acme/
73
73
  Database: memory.db (empty)
74
74
  Status: Active
75
75
 
@@ -216,7 +216,7 @@ slm import-profile team-shared/work-profile.db --name work
216
216
 
217
217
  **1. Profile Structure:**
218
218
  ```
219
- ~/.claude-memory/
219
+ ~/.superlocalmemory/
220
220
  ├── memory.db ← Current active profile (symlink)
221
221
  ├── profiles/
222
222
  │ ├── default/
@@ -239,7 +239,7 @@ $ slm switch-profile work
239
239
  - **Step 4:** Notify user to restart AI tools
240
240
 
241
241
  **3. AI Tools Read:**
242
- - MCP server reads `~/.claude-memory/memory.db`
242
+ - MCP server reads `~/.superlocalmemory/memory.db`
243
243
  - Symlink automatically points to active profile
244
244
  - Transparent to AI tools
245
245
 
@@ -280,7 +280,7 @@ slm switch-profile client-a --create
280
280
 
281
281
  **Backup profile:**
282
282
  ```bash
283
- cp -r ~/.claude-memory/profiles/work ~/.claude-memory/backups/work-2026-02-07
283
+ cp -r ~/.superlocalmemory/profiles/work ~/.superlocalmemory/backups/work-2026-02-07
284
284
  ```
285
285
 
286
286
  **Delete profile:**
@@ -435,8 +435,8 @@ slm list-profiles
435
435
  ---
436
436
 
437
437
  **Created by:** [Varun Pratap Bhardwaj](https://github.com/varun369) (Solution Architect)
438
- **Project:** SuperLocalMemory V2
438
+ **Project:** SuperLocalMemory V3
439
439
  **License:** MIT (see [LICENSE](../../LICENSE))
440
- **Repository:** https://github.com/varun369/SuperLocalMemoryV2
440
+ **Repository:** https://github.com/qualixar/superlocalmemory
441
441
 
442
442
  *Open source doesn't mean removing credit. Attribution must be preserved per MIT License terms.*
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "superlocalmemory",
3
- "version": "2.8.6",
4
- "description": "Your AI Finally Remembers You - Local-first intelligent memory system for AI assistants. Works with Claude, Cursor, Windsurf, VS Code/Copilot, Codex, and 17+ AI tools. 100% local, zero cloud dependencies.",
3
+ "version": "3.0.1",
4
+ "description": "Information-geometric agent memory with mathematical guarantees. 4-channel retrieval, Fisher-Rao similarity, zero-LLM mode, EU AI Act compliant. Works with Claude, Cursor, Windsurf, and 17+ AI tools.",
5
5
  "keywords": [
6
6
  "ai-memory",
7
7
  "claude-ai",
@@ -29,17 +29,17 @@
29
29
  "author": {
30
30
  "name": "Varun Pratap Bhardwaj",
31
31
  "email": "admin@superlocalmemory.com",
32
- "url": "https://github.com/varun369"
32
+ "url": "https://varunpratap.com"
33
33
  },
34
34
  "license": "MIT",
35
35
  "repository": {
36
36
  "type": "git",
37
- "url": "https://github.com/varun369/SuperLocalMemoryV2.git"
37
+ "url": "https://github.com/qualixar/superlocalmemory.git"
38
38
  },
39
39
  "homepage": "https://superlocalmemory.com",
40
- "mcpName": "io.github.varun369/superlocalmemory",
40
+ "mcpName": "io.github.qualixar/superlocalmemory",
41
41
  "bugs": {
42
- "url": "https://github.com/varun369/SuperLocalMemoryV2/issues"
42
+ "url": "https://github.com/qualixar/superlocalmemory/issues"
43
43
  },
44
44
  "bin": {
45
45
  "slm": "./bin/slm-npm",
@@ -63,26 +63,17 @@
63
63
  "files": [
64
64
  "bin/",
65
65
  "src/",
66
- "hooks/",
67
- "configs/",
68
- "skills/",
69
- "completions/",
66
+ "ide/",
70
67
  "scripts/",
71
- "mcp_server.py",
72
- "install.sh",
73
- "install.ps1",
74
- "install-skills.sh",
68
+ "ui/",
69
+ "docs/",
70
+ "pyproject.toml",
71
+ "conftest.py",
75
72
  "README.md",
76
73
  "LICENSE",
74
+ "NOTICE",
77
75
  "ATTRIBUTION.md",
78
- "CHANGELOG.md",
79
- "docs/",
80
- "requirements.txt",
81
- "requirements-core.txt",
82
- "requirements-learning.txt",
83
- "ui/",
84
- "ui_server.py",
85
- "api_server.py"
76
+ "CHANGELOG.md"
86
77
  ],
87
78
  "preferGlobal": true,
88
79
  "funding": {