superlocalmemory 2.8.5 → 3.0.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 (434) hide show
  1. package/CHANGELOG.md +11 -0
  2. package/LICENSE +9 -1
  3. package/NOTICE +63 -0
  4. package/README.md +165 -480
  5. package/bin/slm +17 -449
  6. package/bin/slm-npm +2 -2
  7. package/bin/slm.bat +4 -2
  8. package/conftest.py +5 -0
  9. package/docs/api-reference.md +284 -0
  10. package/docs/architecture.md +149 -0
  11. package/docs/auto-memory.md +150 -0
  12. package/docs/cli-reference.md +276 -0
  13. package/docs/compliance.md +191 -0
  14. package/docs/configuration.md +182 -0
  15. package/docs/getting-started.md +102 -0
  16. package/docs/ide-setup.md +261 -0
  17. package/docs/mcp-tools.md +220 -0
  18. package/docs/migration-from-v2.md +170 -0
  19. package/docs/profiles.md +173 -0
  20. package/docs/troubleshooting.md +310 -0
  21. package/{configs → ide/configs}/antigravity-mcp.json +3 -3
  22. package/ide/configs/chatgpt-desktop-mcp.json +16 -0
  23. package/{configs → ide/configs}/claude-desktop-mcp.json +3 -3
  24. package/{configs → ide/configs}/codex-mcp.toml +4 -4
  25. package/{configs → ide/configs}/continue-mcp.yaml +4 -3
  26. package/{configs → ide/configs}/continue-skills.yaml +6 -6
  27. package/ide/configs/cursor-mcp.json +15 -0
  28. package/{configs → ide/configs}/gemini-cli-mcp.json +2 -2
  29. package/{configs → ide/configs}/jetbrains-mcp.json +2 -2
  30. package/{configs → ide/configs}/opencode-mcp.json +2 -2
  31. package/{configs → ide/configs}/perplexity-mcp.json +2 -2
  32. package/{configs → ide/configs}/vscode-copilot-mcp.json +2 -2
  33. package/{configs → ide/configs}/windsurf-mcp.json +3 -3
  34. package/{configs → ide/configs}/zed-mcp.json +2 -2
  35. package/{hooks → ide/hooks}/context-hook.js +9 -20
  36. package/ide/hooks/memory-list-skill.js +70 -0
  37. package/ide/hooks/memory-profile-skill.js +101 -0
  38. package/ide/hooks/memory-recall-skill.js +62 -0
  39. package/ide/hooks/memory-remember-skill.js +68 -0
  40. package/ide/hooks/memory-reset-skill.js +160 -0
  41. package/{hooks → ide/hooks}/post-recall-hook.js +2 -2
  42. package/ide/integrations/langchain/README.md +106 -0
  43. package/ide/integrations/langchain/langchain_superlocalmemory/__init__.py +9 -0
  44. package/ide/integrations/langchain/langchain_superlocalmemory/chat_message_history.py +201 -0
  45. package/ide/integrations/langchain/pyproject.toml +38 -0
  46. package/{src/learning → ide/integrations/langchain}/tests/__init__.py +1 -0
  47. package/ide/integrations/langchain/tests/test_chat_message_history.py +215 -0
  48. package/ide/integrations/langchain/tests/test_security.py +117 -0
  49. package/ide/integrations/llamaindex/README.md +81 -0
  50. package/ide/integrations/llamaindex/llama_index/storage/chat_store/superlocalmemory/__init__.py +9 -0
  51. package/ide/integrations/llamaindex/llama_index/storage/chat_store/superlocalmemory/base.py +316 -0
  52. package/ide/integrations/llamaindex/pyproject.toml +43 -0
  53. package/{src/lifecycle → ide/integrations/llamaindex}/tests/__init__.py +1 -2
  54. package/ide/integrations/llamaindex/tests/test_chat_store.py +294 -0
  55. package/ide/integrations/llamaindex/tests/test_security.py +241 -0
  56. package/{skills → ide/skills}/slm-build-graph/SKILL.md +6 -6
  57. package/{skills → ide/skills}/slm-list-recent/SKILL.md +5 -5
  58. package/{skills → ide/skills}/slm-recall/SKILL.md +5 -5
  59. package/{skills → ide/skills}/slm-remember/SKILL.md +6 -6
  60. package/{skills → ide/skills}/slm-show-patterns/SKILL.md +7 -7
  61. package/{skills → ide/skills}/slm-status/SKILL.md +9 -9
  62. package/{skills → ide/skills}/slm-switch-profile/SKILL.md +9 -9
  63. package/package.json +13 -22
  64. package/pyproject.toml +85 -0
  65. package/scripts/build-dmg.sh +417 -0
  66. package/scripts/install-skills.ps1 +334 -0
  67. package/{install.ps1 → scripts/install.ps1} +36 -4
  68. package/{install.sh → scripts/install.sh} +14 -13
  69. package/scripts/postinstall.js +2 -2
  70. package/scripts/start-dashboard.ps1 +52 -0
  71. package/scripts/start-dashboard.sh +41 -0
  72. package/scripts/sync-wiki.ps1 +127 -0
  73. package/scripts/sync-wiki.sh +82 -0
  74. package/scripts/test-dmg.sh +161 -0
  75. package/scripts/test-npm-package.ps1 +252 -0
  76. package/scripts/test-npm-package.sh +207 -0
  77. package/scripts/verify-install.ps1 +294 -0
  78. package/scripts/verify-install.sh +266 -0
  79. package/src/superlocalmemory/__init__.py +0 -0
  80. package/src/superlocalmemory/attribution/__init__.py +9 -0
  81. package/src/superlocalmemory/attribution/mathematical_dna.py +235 -0
  82. package/src/superlocalmemory/attribution/signer.py +153 -0
  83. package/src/superlocalmemory/attribution/watermark.py +189 -0
  84. package/src/superlocalmemory/cli/__init__.py +5 -0
  85. package/src/superlocalmemory/cli/commands.py +245 -0
  86. package/src/superlocalmemory/cli/main.py +89 -0
  87. package/src/superlocalmemory/cli/migrate_cmd.py +55 -0
  88. package/src/superlocalmemory/cli/post_install.py +99 -0
  89. package/src/superlocalmemory/cli/setup_wizard.py +129 -0
  90. package/src/superlocalmemory/compliance/__init__.py +0 -0
  91. package/src/superlocalmemory/compliance/abac.py +204 -0
  92. package/src/superlocalmemory/compliance/audit.py +314 -0
  93. package/src/superlocalmemory/compliance/eu_ai_act.py +131 -0
  94. package/src/superlocalmemory/compliance/gdpr.py +294 -0
  95. package/src/superlocalmemory/compliance/lifecycle.py +158 -0
  96. package/src/superlocalmemory/compliance/retention.py +232 -0
  97. package/src/superlocalmemory/compliance/scheduler.py +148 -0
  98. package/src/superlocalmemory/core/__init__.py +0 -0
  99. package/src/superlocalmemory/core/config.py +391 -0
  100. package/src/superlocalmemory/core/embeddings.py +293 -0
  101. package/src/superlocalmemory/core/engine.py +701 -0
  102. package/src/superlocalmemory/core/hooks.py +65 -0
  103. package/src/superlocalmemory/core/maintenance.py +172 -0
  104. package/src/superlocalmemory/core/modes.py +140 -0
  105. package/src/superlocalmemory/core/profiles.py +234 -0
  106. package/src/superlocalmemory/core/registry.py +117 -0
  107. package/src/superlocalmemory/dynamics/__init__.py +0 -0
  108. package/src/superlocalmemory/dynamics/fisher_langevin_coupling.py +223 -0
  109. package/src/superlocalmemory/encoding/__init__.py +0 -0
  110. package/src/superlocalmemory/encoding/consolidator.py +485 -0
  111. package/src/superlocalmemory/encoding/emotional.py +125 -0
  112. package/src/superlocalmemory/encoding/entity_resolver.py +525 -0
  113. package/src/superlocalmemory/encoding/entropy_gate.py +104 -0
  114. package/src/superlocalmemory/encoding/fact_extractor.py +775 -0
  115. package/src/superlocalmemory/encoding/foresight.py +91 -0
  116. package/src/superlocalmemory/encoding/graph_builder.py +302 -0
  117. package/src/superlocalmemory/encoding/observation_builder.py +160 -0
  118. package/src/superlocalmemory/encoding/scene_builder.py +183 -0
  119. package/src/superlocalmemory/encoding/signal_inference.py +90 -0
  120. package/src/superlocalmemory/encoding/temporal_parser.py +426 -0
  121. package/src/superlocalmemory/encoding/type_router.py +235 -0
  122. package/src/superlocalmemory/hooks/__init__.py +3 -0
  123. package/src/superlocalmemory/hooks/auto_capture.py +111 -0
  124. package/src/superlocalmemory/hooks/auto_recall.py +93 -0
  125. package/src/superlocalmemory/hooks/ide_connector.py +204 -0
  126. package/src/superlocalmemory/hooks/rules_engine.py +99 -0
  127. package/src/superlocalmemory/infra/__init__.py +3 -0
  128. package/src/superlocalmemory/infra/auth_middleware.py +82 -0
  129. package/src/superlocalmemory/infra/backup.py +317 -0
  130. package/src/superlocalmemory/infra/cache_manager.py +267 -0
  131. package/src/superlocalmemory/infra/event_bus.py +381 -0
  132. package/src/superlocalmemory/infra/rate_limiter.py +135 -0
  133. package/src/{webhook_dispatcher.py → superlocalmemory/infra/webhook_dispatcher.py} +104 -101
  134. package/src/superlocalmemory/learning/__init__.py +0 -0
  135. package/src/superlocalmemory/learning/adaptive.py +172 -0
  136. package/src/superlocalmemory/learning/behavioral.py +490 -0
  137. package/src/superlocalmemory/learning/behavioral_listener.py +94 -0
  138. package/src/superlocalmemory/learning/bootstrap.py +298 -0
  139. package/src/superlocalmemory/learning/cross_project.py +399 -0
  140. package/src/superlocalmemory/learning/database.py +376 -0
  141. package/src/superlocalmemory/learning/engagement.py +323 -0
  142. package/src/superlocalmemory/learning/features.py +138 -0
  143. package/src/superlocalmemory/learning/feedback.py +316 -0
  144. package/src/superlocalmemory/learning/outcomes.py +255 -0
  145. package/src/superlocalmemory/learning/project_context.py +366 -0
  146. package/src/superlocalmemory/learning/ranker.py +155 -0
  147. package/src/superlocalmemory/learning/source_quality.py +303 -0
  148. package/src/superlocalmemory/learning/workflows.py +309 -0
  149. package/src/superlocalmemory/llm/__init__.py +0 -0
  150. package/src/superlocalmemory/llm/backbone.py +316 -0
  151. package/src/superlocalmemory/math/__init__.py +0 -0
  152. package/src/superlocalmemory/math/fisher.py +356 -0
  153. package/src/superlocalmemory/math/langevin.py +398 -0
  154. package/src/superlocalmemory/math/sheaf.py +257 -0
  155. package/src/superlocalmemory/mcp/__init__.py +0 -0
  156. package/src/superlocalmemory/mcp/resources.py +245 -0
  157. package/src/superlocalmemory/mcp/server.py +61 -0
  158. package/src/superlocalmemory/mcp/tools.py +18 -0
  159. package/src/superlocalmemory/mcp/tools_core.py +305 -0
  160. package/src/superlocalmemory/mcp/tools_v28.py +223 -0
  161. package/src/superlocalmemory/mcp/tools_v3.py +286 -0
  162. package/src/superlocalmemory/retrieval/__init__.py +0 -0
  163. package/src/superlocalmemory/retrieval/agentic.py +295 -0
  164. package/src/superlocalmemory/retrieval/ann_index.py +223 -0
  165. package/src/superlocalmemory/retrieval/bm25_channel.py +185 -0
  166. package/src/superlocalmemory/retrieval/bridge_discovery.py +170 -0
  167. package/src/superlocalmemory/retrieval/engine.py +390 -0
  168. package/src/superlocalmemory/retrieval/entity_channel.py +179 -0
  169. package/src/superlocalmemory/retrieval/fusion.py +78 -0
  170. package/src/superlocalmemory/retrieval/profile_channel.py +105 -0
  171. package/src/superlocalmemory/retrieval/reranker.py +154 -0
  172. package/src/superlocalmemory/retrieval/semantic_channel.py +232 -0
  173. package/src/superlocalmemory/retrieval/strategy.py +96 -0
  174. package/src/superlocalmemory/retrieval/temporal_channel.py +175 -0
  175. package/src/superlocalmemory/server/__init__.py +1 -0
  176. package/src/superlocalmemory/server/api.py +248 -0
  177. package/src/superlocalmemory/server/routes/__init__.py +4 -0
  178. package/src/superlocalmemory/server/routes/agents.py +107 -0
  179. package/src/superlocalmemory/server/routes/backup.py +91 -0
  180. package/src/superlocalmemory/server/routes/behavioral.py +127 -0
  181. package/src/superlocalmemory/server/routes/compliance.py +160 -0
  182. package/src/superlocalmemory/server/routes/data_io.py +188 -0
  183. package/src/superlocalmemory/server/routes/events.py +183 -0
  184. package/src/superlocalmemory/server/routes/helpers.py +85 -0
  185. package/src/superlocalmemory/server/routes/learning.py +273 -0
  186. package/src/superlocalmemory/server/routes/lifecycle.py +116 -0
  187. package/src/superlocalmemory/server/routes/memories.py +399 -0
  188. package/src/superlocalmemory/server/routes/profiles.py +219 -0
  189. package/src/superlocalmemory/server/routes/stats.py +346 -0
  190. package/src/superlocalmemory/server/routes/v3_api.py +365 -0
  191. package/src/superlocalmemory/server/routes/ws.py +82 -0
  192. package/src/superlocalmemory/server/security_middleware.py +57 -0
  193. package/src/superlocalmemory/server/ui.py +245 -0
  194. package/src/superlocalmemory/storage/__init__.py +0 -0
  195. package/src/superlocalmemory/storage/access_control.py +182 -0
  196. package/src/superlocalmemory/storage/database.py +594 -0
  197. package/src/superlocalmemory/storage/migrations.py +303 -0
  198. package/src/superlocalmemory/storage/models.py +406 -0
  199. package/src/superlocalmemory/storage/schema.py +726 -0
  200. package/src/superlocalmemory/storage/v2_migrator.py +317 -0
  201. package/src/superlocalmemory/trust/__init__.py +0 -0
  202. package/src/superlocalmemory/trust/gate.py +130 -0
  203. package/src/superlocalmemory/trust/provenance.py +124 -0
  204. package/src/superlocalmemory/trust/scorer.py +347 -0
  205. package/src/superlocalmemory/trust/signals.py +153 -0
  206. package/ui/index.html +278 -5
  207. package/ui/js/auto-settings.js +70 -0
  208. package/ui/js/dashboard.js +90 -0
  209. package/ui/js/fact-detail.js +92 -0
  210. package/ui/js/feedback.js +2 -2
  211. package/ui/js/ide-status.js +102 -0
  212. package/ui/js/math-health.js +98 -0
  213. package/ui/js/recall-lab.js +127 -0
  214. package/ui/js/settings.js +2 -2
  215. package/ui/js/trust-dashboard.js +73 -0
  216. package/api_server.py +0 -724
  217. package/bin/aider-smart +0 -72
  218. package/bin/superlocalmemoryv2-learning +0 -4
  219. package/bin/superlocalmemoryv2-list +0 -3
  220. package/bin/superlocalmemoryv2-patterns +0 -4
  221. package/bin/superlocalmemoryv2-profile +0 -3
  222. package/bin/superlocalmemoryv2-recall +0 -3
  223. package/bin/superlocalmemoryv2-remember +0 -3
  224. package/bin/superlocalmemoryv2-reset +0 -3
  225. package/bin/superlocalmemoryv2-status +0 -3
  226. package/configs/chatgpt-desktop-mcp.json +0 -16
  227. package/configs/cursor-mcp.json +0 -15
  228. package/docs/SECURITY-QUICK-REFERENCE.md +0 -214
  229. package/hooks/memory-list-skill.js +0 -139
  230. package/hooks/memory-profile-skill.js +0 -273
  231. package/hooks/memory-recall-skill.js +0 -114
  232. package/hooks/memory-remember-skill.js +0 -127
  233. package/hooks/memory-reset-skill.js +0 -274
  234. package/mcp_server.py +0 -1800
  235. package/requirements-core.txt +0 -22
  236. package/requirements-learning.txt +0 -12
  237. package/requirements.txt +0 -12
  238. package/src/agent_registry.py +0 -411
  239. package/src/auth_middleware.py +0 -61
  240. package/src/auto_backup.py +0 -459
  241. package/src/behavioral/__init__.py +0 -49
  242. package/src/behavioral/behavioral_listener.py +0 -203
  243. package/src/behavioral/behavioral_patterns.py +0 -275
  244. package/src/behavioral/cross_project_transfer.py +0 -206
  245. package/src/behavioral/outcome_inference.py +0 -194
  246. package/src/behavioral/outcome_tracker.py +0 -193
  247. package/src/behavioral/tests/__init__.py +0 -4
  248. package/src/behavioral/tests/test_behavioral_integration.py +0 -108
  249. package/src/behavioral/tests/test_behavioral_patterns.py +0 -150
  250. package/src/behavioral/tests/test_cross_project_transfer.py +0 -142
  251. package/src/behavioral/tests/test_mcp_behavioral.py +0 -139
  252. package/src/behavioral/tests/test_mcp_report_outcome.py +0 -117
  253. package/src/behavioral/tests/test_outcome_inference.py +0 -107
  254. package/src/behavioral/tests/test_outcome_tracker.py +0 -96
  255. package/src/cache_manager.py +0 -518
  256. package/src/compliance/__init__.py +0 -48
  257. package/src/compliance/abac_engine.py +0 -149
  258. package/src/compliance/abac_middleware.py +0 -116
  259. package/src/compliance/audit_db.py +0 -215
  260. package/src/compliance/audit_logger.py +0 -148
  261. package/src/compliance/retention_manager.py +0 -289
  262. package/src/compliance/retention_scheduler.py +0 -186
  263. package/src/compliance/tests/__init__.py +0 -4
  264. package/src/compliance/tests/test_abac_enforcement.py +0 -95
  265. package/src/compliance/tests/test_abac_engine.py +0 -124
  266. package/src/compliance/tests/test_abac_mcp_integration.py +0 -118
  267. package/src/compliance/tests/test_audit_db.py +0 -123
  268. package/src/compliance/tests/test_audit_logger.py +0 -98
  269. package/src/compliance/tests/test_mcp_audit.py +0 -128
  270. package/src/compliance/tests/test_mcp_retention_policy.py +0 -125
  271. package/src/compliance/tests/test_retention_manager.py +0 -131
  272. package/src/compliance/tests/test_retention_scheduler.py +0 -99
  273. package/src/compression/__init__.py +0 -25
  274. package/src/compression/cli.py +0 -150
  275. package/src/compression/cold_storage.py +0 -217
  276. package/src/compression/config.py +0 -72
  277. package/src/compression/orchestrator.py +0 -133
  278. package/src/compression/tier2_compressor.py +0 -228
  279. package/src/compression/tier3_compressor.py +0 -153
  280. package/src/compression/tier_classifier.py +0 -148
  281. package/src/db_connection_manager.py +0 -536
  282. package/src/embedding_engine.py +0 -63
  283. package/src/embeddings/__init__.py +0 -47
  284. package/src/embeddings/cache.py +0 -70
  285. package/src/embeddings/cli.py +0 -113
  286. package/src/embeddings/constants.py +0 -47
  287. package/src/embeddings/database.py +0 -91
  288. package/src/embeddings/engine.py +0 -247
  289. package/src/embeddings/model_loader.py +0 -145
  290. package/src/event_bus.py +0 -562
  291. package/src/graph/__init__.py +0 -36
  292. package/src/graph/build_helpers.py +0 -74
  293. package/src/graph/cli.py +0 -87
  294. package/src/graph/cluster_builder.py +0 -188
  295. package/src/graph/cluster_summary.py +0 -148
  296. package/src/graph/constants.py +0 -47
  297. package/src/graph/edge_builder.py +0 -162
  298. package/src/graph/entity_extractor.py +0 -95
  299. package/src/graph/graph_core.py +0 -226
  300. package/src/graph/graph_search.py +0 -231
  301. package/src/graph/hierarchical.py +0 -207
  302. package/src/graph/schema.py +0 -99
  303. package/src/graph_engine.py +0 -52
  304. package/src/hnsw_index.py +0 -628
  305. package/src/hybrid_search.py +0 -46
  306. package/src/learning/__init__.py +0 -217
  307. package/src/learning/adaptive_ranker.py +0 -682
  308. package/src/learning/bootstrap/__init__.py +0 -69
  309. package/src/learning/bootstrap/constants.py +0 -93
  310. package/src/learning/bootstrap/db_queries.py +0 -316
  311. package/src/learning/bootstrap/sampling.py +0 -82
  312. package/src/learning/bootstrap/text_utils.py +0 -71
  313. package/src/learning/cross_project_aggregator.py +0 -857
  314. package/src/learning/db/__init__.py +0 -40
  315. package/src/learning/db/constants.py +0 -44
  316. package/src/learning/db/schema.py +0 -279
  317. package/src/learning/engagement_tracker.py +0 -628
  318. package/src/learning/feature_extractor.py +0 -708
  319. package/src/learning/feedback_collector.py +0 -806
  320. package/src/learning/learning_db.py +0 -915
  321. package/src/learning/project_context_manager.py +0 -572
  322. package/src/learning/ranking/__init__.py +0 -33
  323. package/src/learning/ranking/constants.py +0 -84
  324. package/src/learning/ranking/helpers.py +0 -278
  325. package/src/learning/source_quality_scorer.py +0 -676
  326. package/src/learning/synthetic_bootstrap.py +0 -755
  327. package/src/learning/tests/test_adaptive_ranker.py +0 -325
  328. package/src/learning/tests/test_adaptive_ranker_v28.py +0 -60
  329. package/src/learning/tests/test_aggregator.py +0 -306
  330. package/src/learning/tests/test_auto_retrain_v28.py +0 -35
  331. package/src/learning/tests/test_e2e_ranking_v28.py +0 -82
  332. package/src/learning/tests/test_feature_extractor_v28.py +0 -93
  333. package/src/learning/tests/test_feedback_collector.py +0 -294
  334. package/src/learning/tests/test_learning_db.py +0 -602
  335. package/src/learning/tests/test_learning_db_v28.py +0 -110
  336. package/src/learning/tests/test_learning_init_v28.py +0 -48
  337. package/src/learning/tests/test_outcome_signals.py +0 -48
  338. package/src/learning/tests/test_project_context.py +0 -292
  339. package/src/learning/tests/test_schema_migration.py +0 -319
  340. package/src/learning/tests/test_signal_inference.py +0 -397
  341. package/src/learning/tests/test_source_quality.py +0 -351
  342. package/src/learning/tests/test_synthetic_bootstrap.py +0 -429
  343. package/src/learning/tests/test_workflow_miner.py +0 -318
  344. package/src/learning/workflow_pattern_miner.py +0 -655
  345. package/src/lifecycle/__init__.py +0 -54
  346. package/src/lifecycle/bounded_growth.py +0 -239
  347. package/src/lifecycle/compaction_engine.py +0 -226
  348. package/src/lifecycle/lifecycle_engine.py +0 -355
  349. package/src/lifecycle/lifecycle_evaluator.py +0 -257
  350. package/src/lifecycle/lifecycle_scheduler.py +0 -130
  351. package/src/lifecycle/retention_policy.py +0 -285
  352. package/src/lifecycle/tests/test_bounded_growth.py +0 -193
  353. package/src/lifecycle/tests/test_compaction.py +0 -179
  354. package/src/lifecycle/tests/test_lifecycle_engine.py +0 -137
  355. package/src/lifecycle/tests/test_lifecycle_evaluation.py +0 -177
  356. package/src/lifecycle/tests/test_lifecycle_scheduler.py +0 -127
  357. package/src/lifecycle/tests/test_lifecycle_search.py +0 -109
  358. package/src/lifecycle/tests/test_mcp_compact.py +0 -149
  359. package/src/lifecycle/tests/test_mcp_lifecycle_status.py +0 -114
  360. package/src/lifecycle/tests/test_retention_policy.py +0 -162
  361. package/src/mcp_tools_v28.py +0 -281
  362. package/src/memory/__init__.py +0 -36
  363. package/src/memory/cli.py +0 -205
  364. package/src/memory/constants.py +0 -39
  365. package/src/memory/helpers.py +0 -28
  366. package/src/memory/schema.py +0 -166
  367. package/src/memory-profiles.py +0 -595
  368. package/src/memory-reset.py +0 -491
  369. package/src/memory_compression.py +0 -989
  370. package/src/memory_store_v2.py +0 -1155
  371. package/src/migrate_v1_to_v2.py +0 -629
  372. package/src/pattern_learner.py +0 -34
  373. package/src/patterns/__init__.py +0 -24
  374. package/src/patterns/analyzers.py +0 -251
  375. package/src/patterns/learner.py +0 -271
  376. package/src/patterns/scoring.py +0 -171
  377. package/src/patterns/store.py +0 -225
  378. package/src/patterns/terminology.py +0 -140
  379. package/src/provenance_tracker.py +0 -312
  380. package/src/qualixar_attribution.py +0 -139
  381. package/src/qualixar_watermark.py +0 -78
  382. package/src/query_optimizer.py +0 -511
  383. package/src/rate_limiter.py +0 -83
  384. package/src/search/__init__.py +0 -20
  385. package/src/search/cli.py +0 -77
  386. package/src/search/constants.py +0 -26
  387. package/src/search/engine.py +0 -241
  388. package/src/search/fusion.py +0 -122
  389. package/src/search/index_loader.py +0 -114
  390. package/src/search/methods.py +0 -162
  391. package/src/search_engine_v2.py +0 -401
  392. package/src/setup_validator.py +0 -482
  393. package/src/subscription_manager.py +0 -391
  394. package/src/tree/__init__.py +0 -59
  395. package/src/tree/builder.py +0 -185
  396. package/src/tree/nodes.py +0 -202
  397. package/src/tree/queries.py +0 -257
  398. package/src/tree/schema.py +0 -80
  399. package/src/tree_manager.py +0 -19
  400. package/src/trust/__init__.py +0 -45
  401. package/src/trust/constants.py +0 -66
  402. package/src/trust/queries.py +0 -157
  403. package/src/trust/schema.py +0 -95
  404. package/src/trust/scorer.py +0 -299
  405. package/src/trust/signals.py +0 -95
  406. package/src/trust_scorer.py +0 -44
  407. package/ui/app.js +0 -1588
  408. package/ui/js/graph-cytoscape-monolithic-backup.js +0 -1168
  409. package/ui/js/graph-cytoscape.js +0 -1168
  410. package/ui/js/graph-d3-backup.js +0 -32
  411. package/ui/js/graph.js +0 -32
  412. package/ui_server.py +0 -266
  413. /package/docs/{ACCESSIBILITY.md → v2-archive/ACCESSIBILITY.md} +0 -0
  414. /package/docs/{ARCHITECTURE.md → v2-archive/ARCHITECTURE.md} +0 -0
  415. /package/docs/{CLI-COMMANDS-REFERENCE.md → v2-archive/CLI-COMMANDS-REFERENCE.md} +0 -0
  416. /package/docs/{COMPRESSION-README.md → v2-archive/COMPRESSION-README.md} +0 -0
  417. /package/docs/{FRAMEWORK-INTEGRATIONS.md → v2-archive/FRAMEWORK-INTEGRATIONS.md} +0 -0
  418. /package/docs/{MCP-MANUAL-SETUP.md → v2-archive/MCP-MANUAL-SETUP.md} +0 -0
  419. /package/docs/{MCP-TROUBLESHOOTING.md → v2-archive/MCP-TROUBLESHOOTING.md} +0 -0
  420. /package/docs/{PATTERN-LEARNING.md → v2-archive/PATTERN-LEARNING.md} +0 -0
  421. /package/docs/{PROFILES-GUIDE.md → v2-archive/PROFILES-GUIDE.md} +0 -0
  422. /package/docs/{RESET-GUIDE.md → v2-archive/RESET-GUIDE.md} +0 -0
  423. /package/docs/{SEARCH-ENGINE-V2.2.0.md → v2-archive/SEARCH-ENGINE-V2.2.0.md} +0 -0
  424. /package/docs/{SEARCH-INTEGRATION-GUIDE.md → v2-archive/SEARCH-INTEGRATION-GUIDE.md} +0 -0
  425. /package/docs/{UI-SERVER.md → v2-archive/UI-SERVER.md} +0 -0
  426. /package/docs/{UNIVERSAL-INTEGRATION.md → v2-archive/UNIVERSAL-INTEGRATION.md} +0 -0
  427. /package/docs/{V2.2.0-OPTIONAL-SEARCH.md → v2-archive/V2.2.0-OPTIONAL-SEARCH.md} +0 -0
  428. /package/docs/{WINDOWS-INSTALL-README.txt → v2-archive/WINDOWS-INSTALL-README.txt} +0 -0
  429. /package/docs/{WINDOWS-POST-INSTALL.txt → v2-archive/WINDOWS-POST-INSTALL.txt} +0 -0
  430. /package/docs/{example_graph_usage.py → v2-archive/example_graph_usage.py} +0 -0
  431. /package/{completions → ide/completions}/slm.bash +0 -0
  432. /package/{completions → ide/completions}/slm.zsh +0 -0
  433. /package/{configs → ide/configs}/cody-commands.json +0 -0
  434. /package/{install-skills.sh → scripts/install-skills.sh} +0 -0
package/bin/slm CHANGED
@@ -1,452 +1,20 @@
1
- #!/bin/bash
2
- # slm - Universal CLI wrapper for SuperLocalMemory V2
3
- # Simple commands that work in any terminal or script
4
- #
5
- # Copyright (c) 2026 Varun Pratap Bhardwaj
6
- # Licensed under MIT License
7
- #
8
- # This is a CONVENIENCE wrapper. Original commands still work:
9
- # superlocalmemoryv2-remember, superlocalmemoryv2-recall, etc.
10
-
11
- set -e
12
-
13
- SLM_DIR="${HOME}/.claude-memory"
14
-
15
- # Check if SuperLocalMemory is installed
16
- if [ ! -d "$SLM_DIR" ]; then
17
- echo "Error: SuperLocalMemory V2 not installed at $SLM_DIR"
18
- echo "Please run: ./install.sh"
1
+ #!/usr/bin/env bash
2
+ # SuperLocalMemory V3 CLI
3
+ # Part of Qualixar | https://superlocalmemory.com
4
+
5
+ # Find Python
6
+ PYTHON=""
7
+ for cmd in python3 python; do
8
+ if command -v "$cmd" &>/dev/null; then
9
+ PYTHON="$cmd"
10
+ break
11
+ fi
12
+ done
13
+
14
+ if [ -z "$PYTHON" ]; then
15
+ echo "Error: Python 3 not found. Install Python 3.10+ from python.org"
19
16
  exit 1
20
17
  fi
21
18
 
22
- # Main command dispatcher
23
- case "$1" in
24
- remember|save|store)
25
- shift
26
- # Calls existing command - no duplicate logic
27
- "$SLM_DIR/bin/superlocalmemoryv2-remember" "$@"
28
- ;;
29
-
30
- recall|search|find)
31
- shift
32
- # Calls existing command - no duplicate logic
33
- "$SLM_DIR/bin/superlocalmemoryv2-recall" "$@"
34
- ;;
35
-
36
- list|ls)
37
- shift
38
- # Convert positional number to --limit flag
39
- # e.g., "slm list 5" becomes "--limit 5"
40
- if [ -n "$1" ] && [[ "$1" =~ ^[0-9]+$ ]]; then
41
- "$SLM_DIR/bin/superlocalmemoryv2-list" --limit "$1"
42
- else
43
- "$SLM_DIR/bin/superlocalmemoryv2-list" "$@"
44
- fi
45
- ;;
46
-
47
- status|info|stats)
48
- # Calls existing command - no duplicate logic
49
- "$SLM_DIR/bin/superlocalmemoryv2-status"
50
- ;;
51
-
52
- profile)
53
- shift
54
- # Calls existing command - no duplicate logic
55
- "$SLM_DIR/bin/superlocalmemoryv2-profile" "$@"
56
- ;;
57
-
58
- switch-profile)
59
- shift
60
- # Convenience alias: "slm switch-profile <name>" -> "slm profile switch <name>"
61
- "$SLM_DIR/bin/superlocalmemoryv2-profile" switch "$@"
62
- ;;
63
-
64
- list-profiles)
65
- # Convenience alias: "slm list-profiles" -> "slm profile list"
66
- "$SLM_DIR/bin/superlocalmemoryv2-profile" list
67
- ;;
68
-
69
- create-profile)
70
- shift
71
- # Convenience alias: "slm create-profile <name>" -> "slm profile create <name>"
72
- "$SLM_DIR/bin/superlocalmemoryv2-profile" create "$@"
73
- ;;
74
-
75
- reset)
76
- shift
77
- # Calls existing command - no duplicate logic
78
- "$SLM_DIR/bin/superlocalmemoryv2-reset" "$@"
79
- ;;
80
-
81
- ui|dashboard)
82
- PORT="${2:-8765}"
83
- echo "Starting SuperLocalMemory Web Dashboard..."
84
- echo "URL: http://localhost:$PORT"
85
- echo "API Docs: http://localhost:$PORT/api/docs"
86
- echo ""
87
- python3 "$SLM_DIR/ui_server.py" --port "$PORT"
88
- ;;
89
-
90
- serve|server)
91
- PORT="${2:-8417}"
92
- echo "Starting SuperLocalMemory MCP HTTP server..."
93
- echo "Endpoint: http://localhost:$PORT"
94
- echo ""
95
- echo "For ChatGPT/remote access:"
96
- echo " 1. In another terminal: ngrok http $PORT"
97
- echo " 2. Copy the HTTPS URL"
98
- echo " 3. Add to ChatGPT: Settings -> Apps & Connectors -> Developer Mode"
99
- echo ""
100
- exec python3 "$SLM_DIR/mcp_server.py" --transport http --port "$PORT"
101
- ;;
102
-
103
- context)
104
- # NEW: Get context for current directory/project
105
- project=$(basename "$PWD")
106
- "$SLM_DIR/bin/superlocalmemoryv2-recall" "$project" --limit 5
107
- ;;
108
-
109
- graph)
110
- shift
111
- subcommand="$1"
112
- shift
113
- case "$subcommand" in
114
- build)
115
- python3 "$SLM_DIR/graph_engine.py" build "$@"
116
- ;;
117
- stats)
118
- python3 "$SLM_DIR/graph_engine.py" stats "$@"
119
- ;;
120
- *)
121
- echo "Usage: slm graph {build|stats}"
122
- exit 1
123
- ;;
124
- esac
125
- ;;
126
-
127
- patterns)
128
- shift
129
- subcommand="$1"
130
- shift
131
- case "$subcommand" in
132
- update)
133
- python3 "$SLM_DIR/pattern_learner.py" update "$@"
134
- ;;
135
- list)
136
- python3 "$SLM_DIR/pattern_learner.py" list "$@"
137
- ;;
138
- context)
139
- python3 "$SLM_DIR/pattern_learner.py" context "$@"
140
- ;;
141
- correct)
142
- # slm patterns correct <id> <new_value>
143
- pattern_id="$1"
144
- new_value="$2"
145
- if [ -z "$pattern_id" ] || [ -z "$new_value" ]; then
146
- echo "Usage: slm patterns correct <pattern_id> <new_value>"
147
- exit 1
148
- fi
149
- python3 -c "
150
- import sys
151
- sys.path.insert(0, '${SLM_DIR}')
152
- sys.path.insert(0, '$(dirname "${SLM_DIR}")/Documents/AGENTIC_Official/SuperLocalMemoryV2-repo/src')
153
- try:
154
- from learning import get_learning_db
155
- ldb = get_learning_db()
156
- if ldb:
157
- conn = ldb._get_connection()
158
- cursor = conn.cursor()
159
- cursor.execute('SELECT * FROM transferable_patterns WHERE id = ?', (int(sys.argv[1]),))
160
- p = cursor.fetchone()
161
- conn.close()
162
- if p:
163
- ldb.upsert_transferable_pattern(
164
- pattern_type=p['pattern_type'], key=p['key'],
165
- value=sys.argv[2], confidence=1.0,
166
- evidence_count=p['evidence_count']+1,
167
- profiles_seen=p['profiles_seen'],
168
- contradictions=[f\"Corrected from '{p['value']}' to '{sys.argv[2]}'\"],
169
- )
170
- print(f\"Pattern '{p['key']}' corrected: '{p['value']}' -> '{sys.argv[2]}'\")
171
- else:
172
- print(f'Pattern #{sys.argv[1]} not found')
173
- else:
174
- print('Learning database not available')
175
- except ImportError:
176
- print('Learning features not available')
177
- except Exception as e:
178
- print(f'Error: {e}')
179
- " "$pattern_id" "$new_value"
180
- ;;
181
- *)
182
- echo "Usage: slm patterns {update|list|context|correct}"
183
- exit 1
184
- ;;
185
- esac
186
- ;;
187
-
188
- useful)
189
- shift
190
- # Mark memory IDs as useful (v2.7 learning feedback)
191
- if [ -z "$1" ]; then
192
- echo "Usage: slm useful <memory_id> [memory_id...]"
193
- echo " Mark recalled memories as useful to improve future ranking"
194
- exit 1
195
- fi
196
- python3 -c "
197
- import sys
198
- sys.path.insert(0, '${SLM_DIR}')
199
- sys.path.insert(0, '$(dirname \"${SLM_DIR}\")/Documents/AGENTIC_Official/SuperLocalMemoryV2-repo/src')
200
- try:
201
- from learning.feedback_collector import FeedbackCollector
202
- fc = FeedbackCollector()
203
- ids = [int(x) for x in sys.argv[1:]]
204
- fc.record_cli_useful(ids, query='cli-feedback')
205
- print(f'Marked {len(ids)} memor{\"y\" if len(ids)==1 else \"ies\"} as useful')
206
- except ImportError:
207
- print('Learning features not available. Install: pip3 install lightgbm scipy')
208
- except Exception as e:
209
- print(f'Error: {e}')
210
- " "$@"
211
- ;;
212
-
213
- learning)
214
- shift
215
- subcommand="${1:-status}"
216
- shift 2>/dev/null || true
217
- case "$subcommand" in
218
- status)
219
- python3 -c "
220
- import sys, json
221
- sys.path.insert(0, '${SLM_DIR}')
222
- sys.path.insert(0, '$(dirname \"${SLM_DIR}\")/Documents/AGENTIC_Official/SuperLocalMemoryV2-repo/src')
223
- try:
224
- from learning import get_status
225
- status = get_status()
226
- print('SuperLocalMemory v2.7 — Learning System Status')
227
- print('=' * 50)
228
- deps = status['dependencies']
229
- print(f'LightGBM: {\"installed (\" + deps[\"lightgbm\"][\"version\"] + \")\" if deps[\"lightgbm\"][\"installed\"] else \"not installed\"}')
230
- print(f'SciPy: {\"installed (\" + deps[\"scipy\"][\"version\"] + \")\" if deps[\"scipy\"][\"installed\"] else \"not installed\"}')
231
- print(f'ML Ranking: {\"available\" if status[\"ml_ranking_available\"] else \"unavailable\"}')
232
- print(f'Full Learning: {\"available\" if status[\"learning_available\"] else \"unavailable\"}')
233
- if status.get('learning_db_stats'):
234
- s = status['learning_db_stats']
235
- print(f'')
236
- print(f'Feedback signals: {s[\"feedback_count\"]}')
237
- print(f'Unique queries: {s[\"unique_queries\"]}')
238
- print(f'Patterns learned: {s[\"transferable_patterns\"]} ({s[\"high_confidence_patterns\"]} high confidence)')
239
- print(f'Workflow patterns: {s[\"workflow_patterns\"]}')
240
- print(f'Sources tracked: {s[\"tracked_sources\"]}')
241
- print(f'Models trained: {s[\"models_trained\"]}')
242
- print(f'Learning DB size: {s[\"db_size_kb\"]} KB')
243
- except ImportError:
244
- print('Learning features not available. Install: pip3 install lightgbm scipy')
245
- except Exception as e:
246
- print(f'Error: {e}')
247
- "
248
- ;;
249
- retrain)
250
- python3 -c "
251
- import sys
252
- sys.path.insert(0, '${SLM_DIR}')
253
- sys.path.insert(0, '$(dirname \"${SLM_DIR}\")/Documents/AGENTIC_Official/SuperLocalMemoryV2-repo/src')
254
- try:
255
- from learning import get_adaptive_ranker
256
- ranker = get_adaptive_ranker()
257
- if ranker:
258
- result = ranker.train(force=True)
259
- if result:
260
- print(f'Model retrained successfully')
261
- else:
262
- print('Insufficient data for training (need 200+ feedback signals)')
263
- else:
264
- print('Adaptive ranker not available')
265
- except ImportError:
266
- print('Learning features not available. Install: pip3 install lightgbm scipy')
267
- except Exception as e:
268
- print(f'Error: {e}')
269
- "
270
- ;;
271
- reset)
272
- python3 -c "
273
- import sys
274
- sys.path.insert(0, '${SLM_DIR}')
275
- sys.path.insert(0, '$(dirname \"${SLM_DIR}\")/Documents/AGENTIC_Official/SuperLocalMemoryV2-repo/src')
276
- try:
277
- from learning import get_learning_db
278
- ldb = get_learning_db()
279
- if ldb:
280
- ldb.reset()
281
- print('All learning data reset. Memories in memory.db preserved.')
282
- else:
283
- print('Learning database not available')
284
- except ImportError:
285
- print('Learning features not available')
286
- except Exception as e:
287
- print(f'Error: {e}')
288
- "
289
- ;;
290
- *)
291
- echo "Usage: slm learning {status|retrain|reset}"
292
- exit 1
293
- ;;
294
- esac
295
- ;;
296
-
297
- engagement)
298
- python3 -c "
299
- import sys
300
- sys.path.insert(0, '${SLM_DIR}')
301
- sys.path.insert(0, '$(dirname \"${SLM_DIR}\")/Documents/AGENTIC_Official/SuperLocalMemoryV2-repo/src')
302
- try:
303
- from learning.engagement_tracker import EngagementTracker
304
- tracker = EngagementTracker()
305
- print(tracker.format_for_cli())
306
- except ImportError:
307
- print('Learning features not available. Install: pip3 install lightgbm scipy')
308
- except Exception as e:
309
- print(f'Error: {e}')
310
- "
311
- ;;
312
-
313
- attribution)
314
- python3 -c "
315
- import sys
316
- sys.path.insert(0, '${SLM_DIR}')
317
- try:
318
- from memory_store_v2 import MemoryStoreV2
319
- store = MemoryStoreV2()
320
- attr = store.get_attribution()
321
- print('SuperLocalMemory — Attribution')
322
- print('=' * 45)
323
- print(f\"Creator: {attr.get('creator_name', 'Varun Pratap Bhardwaj')}\")
324
- print(f\"Role: {attr.get('creator_role', 'Solution Architect')}\")
325
- print(f\"Platform: {attr.get('platform', 'Qualixar')}\")
326
- print(f\"License: {attr.get('license', 'MIT')}\")
327
- print(f\"Website: {attr.get('website', 'https://superlocalmemory.com')}\")
328
- print(f\"Author: {attr.get('author_website', 'https://varunpratap.com')}\")
329
- print('=' * 45)
330
- try:
331
- from qualixar_attribution import QualixarSigner
332
- from qualixar_watermark import encode_watermark
333
- print('Layer 1 (Visible): Active')
334
- print('Layer 2 (Cryptographic): Active')
335
- print('Layer 3 (Steganographic): Active')
336
- except ImportError:
337
- print('Layer 1 (Visible): Active')
338
- print('Layer 2 (Cryptographic): Not available')
339
- print('Layer 3 (Steganographic): Not available')
340
- except Exception as e:
341
- print(f'Error: {e}')
342
- "
343
- ;;
344
-
345
- help|--help|-h)
346
- cat <<EOF
347
- SuperLocalMemory V2 - Universal CLI
348
-
349
- SIMPLE COMMANDS:
350
- slm remember <content> Save to memory
351
- slm recall <query> Search memories
352
- slm list [N] List N recent memories (default 10)
353
- slm status System status and statistics
354
- slm context Project context for current directory
355
-
356
- PROFILE MANAGEMENT:
357
- slm profile list List all profiles
358
- slm profile create <name> Create new profile
359
- slm profile switch <name> Switch to profile
360
- slm profile delete <name> Delete profile
361
- slm profile current Show current profile
362
- slm switch-profile <name> Shortcut for profile switch
363
- slm list-profiles Shortcut for profile list
364
- slm create-profile <name> Shortcut for profile create
365
-
366
- KNOWLEDGE GRAPH:
367
- slm graph build Build/rebuild knowledge graph
368
- slm graph stats Show graph statistics
369
-
370
- PATTERN LEARNING:
371
- slm patterns update Learn patterns from memories
372
- slm patterns list [threshold] List learned patterns
373
- slm patterns context [threshold] Get coding identity context
374
- slm patterns correct <id> <value> Correct a learned pattern
375
-
376
- LEARNING (v2.7):
377
- slm useful <id> [id...] Mark memories as useful (ranking feedback)
378
- slm learning status Learning system status
379
- slm learning retrain Force model retrain
380
- slm learning reset Delete all learning data (memories preserved)
381
- slm engagement Show engagement metrics
382
-
383
- WEB DASHBOARD:
384
- slm ui [PORT] Start web dashboard (default port 8765)
385
- Opens at http://localhost:PORT
386
-
387
- HTTP SERVER (MCP):
388
- slm serve [PORT] Start MCP HTTP server (default port 8417)
389
- For ChatGPT/remote: ngrok http PORT
390
-
391
- ATTRIBUTION:
392
- slm attribution Show creator attribution and provenance status
393
-
394
- ADVANCED:
395
- slm reset soft Soft reset (clear memories)
396
- slm reset hard --confirm Hard reset (nuclear option)
397
-
398
- ORIGINAL COMMANDS (still work):
399
- superlocalmemoryv2-remember <content>
400
- superlocalmemoryv2-recall <query>
401
- superlocalmemoryv2-list [N]
402
- superlocalmemoryv2-status
403
- superlocalmemoryv2-profile <command>
404
- superlocalmemoryv2-reset <type>
405
-
406
- EXAMPLES:
407
- slm remember "Use FastAPI for REST APIs" --tags python,backend
408
- slm recall "FastAPI patterns" --limit 5
409
- slm context
410
- slm graph build
411
- slm patterns update
412
- slm status
413
-
414
- DOCUMENTATION:
415
- README: https://github.com/varun369/SuperLocalMemoryV2
416
- Docs: ~/.claude-memory/docs/
417
-
418
- VERSION: 2.7.0
419
- EOF
420
- ;;
421
-
422
- version|--version|-v)
423
- echo "SuperLocalMemory V2 - Universal CLI"
424
- echo "Version: 2.7.0"
425
- echo "Database: $SLM_DIR/memory.db"
426
- ;;
427
-
428
- *)
429
- echo "SuperLocalMemory V2 - Universal CLI"
430
- echo ""
431
- echo "Usage: slm <command> [args]"
432
- echo ""
433
- echo "Commands:"
434
- echo " remember - Save to memory"
435
- echo " recall - Search memories"
436
- echo " list - List recent memories"
437
- echo " status - System status"
438
- echo " context - Project context"
439
- echo " ui - Start web dashboard"
440
- echo " serve - Start MCP HTTP server"
441
- echo " profile - Manage profiles"
442
- echo " graph - Knowledge graph operations"
443
- echo " patterns - Pattern learning"
444
- echo " useful - Mark memories as useful"
445
- echo " learning - Learning system management"
446
- echo " engagement - Show engagement metrics"
447
- echo " help - Show detailed help"
448
- echo ""
449
- echo "Run 'slm help' for more information"
450
- exit 1
451
- ;;
452
- esac
19
+ # Run V3 CLI
20
+ exec "$PYTHON" -m superlocalmemory.cli.main "$@"
package/bin/slm-npm CHANGED
@@ -16,8 +16,8 @@ const path = require('path');
16
16
  const os = require('os');
17
17
  const fs = require('fs');
18
18
 
19
- // Installation directory
20
- const SLM_DIR = path.join(os.homedir(), '.claude-memory');
19
+ // Installation directory (SL_MEMORY_PATH overrides default)
20
+ const SLM_DIR = process.env.SL_MEMORY_PATH || path.join(os.homedir(), '.superlocalmemory');
21
21
 
22
22
  // Check if SuperLocalMemory is installed
23
23
  if (!fs.existsSync(SLM_DIR)) {
package/bin/slm.bat CHANGED
@@ -9,7 +9,9 @@ REM ATTRIBUTION REQUIRED: This notice must be preserved in all copies.
9
9
  setlocal enabledelayedexpansion
10
10
 
11
11
  REM Determine installation location
12
- if exist "%USERPROFILE%\.claude-memory\memory_store_v2.py" (
12
+ if defined SL_MEMORY_PATH (
13
+ set "INSTALL_DIR=%SL_MEMORY_PATH%"
14
+ ) else if exist "%USERPROFILE%\.claude-memory\memory_store_v2.py" (
13
15
  set INSTALL_DIR=%USERPROFILE%\.claude-memory
14
16
  ) else if exist "%~dp0..\src\memory_store_v2.py" (
15
17
  set INSTALL_DIR=%~dp0..\src
@@ -181,7 +183,7 @@ echo slm build-graph
181
183
  echo slm switch-profile work
182
184
  echo.
183
185
  echo Installation: %INSTALL_DIR%
184
- echo Database: %USERPROFILE%\.claude-memory\memory.db
186
+ echo Database: %INSTALL_DIR%\memory.db
185
187
  echo.
186
188
  echo Documentation: https://github.com/varun369/SuperLocalMemoryV2/wiki
187
189
  echo Report issues: https://github.com/varun369/SuperLocalMemoryV2/issues
package/conftest.py ADDED
@@ -0,0 +1,5 @@
1
+ """Root conftest — ensures src/ is on PYTHONPATH for test discovery."""
2
+ import sys
3
+ from pathlib import Path
4
+
5
+ sys.path.insert(0, str(Path(__file__).parent / "src"))