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
@@ -1,273 +0,0 @@
1
- #!/usr/bin/env node
2
- /**
3
- * Memory Profile CLI Skill
4
- * Provides memory-profile commands for managing multiple memory contexts
5
- */
6
-
7
- const { execFile } = require('child_process');
8
- const { promisify } = require('util');
9
- const path = require('path');
10
- const readline = require('readline');
11
-
12
- const execFileAsync = promisify(execFile);
13
-
14
- const rl = readline.createInterface({
15
- input: process.stdin,
16
- output: process.stdout
17
- });
18
-
19
- const question = (query) => new Promise((resolve) => rl.question(query, resolve));
20
-
21
- async function memoryProfileSkill() {
22
- const profileScript = path.join(process.env.HOME, '.claude-memory', 'memory-profiles.py');
23
- const args = process.argv.slice(2); // Get command line arguments
24
-
25
- // Show help if no args
26
- if (args.length === 0 || args[0] === '--help' || args[0] === '-h') {
27
- console.log(`
28
- ╔══════════════════════════════════════════════════════════╗
29
- ║ ║
30
- ║ SuperLocalMemory V2 - Profile Management ║
31
- ║ ║
32
- ╚══════════════════════════════════════════════════════════╝
33
-
34
- Profiles let you maintain separate memory contexts in ONE database:
35
- • Work vs Personal projects
36
- • Different clients or teams
37
- • Experimentation vs Production
38
-
39
- All profiles share one database. Switching is instant and safe.
40
- No data copying, no data loss risk.
41
-
42
- Usage: memory-profile <command> [options]
43
-
44
- Commands:
45
- list List all profiles and show active one
46
- current Show current active profile
47
- create <name> Create a new empty profile
48
- switch <name> Switch to a different profile (requires restart)
49
- delete <name> Delete a profile (with confirmation)
50
-
51
- Examples:
52
- memory-profile list
53
- memory-profile current
54
- memory-profile create work
55
- memory-profile switch work
56
- memory-profile delete old-project
57
-
58
- Notes:
59
- • Default profile is always available
60
- • Switching profiles requires restarting Claude CLI
61
- • Deleting a profile is permanent (but creates backup)
62
- `);
63
- rl.close();
64
- return;
65
- }
66
-
67
- const command = args[0];
68
-
69
- // LIST command
70
- if (command === 'list') {
71
- try {
72
- const { stdout } = await execFileAsync('python', [profileScript, 'list']);
73
- console.log(stdout);
74
- } catch (error) {
75
- console.error('❌ Error:', error.message);
76
- }
77
- rl.close();
78
- return;
79
- }
80
-
81
- // CURRENT command
82
- if (command === 'current') {
83
- try {
84
- const { stdout } = await execFileAsync('python', [profileScript, 'current']);
85
- console.log(stdout);
86
- } catch (error) {
87
- console.error('❌ Error:', error.message);
88
- }
89
- rl.close();
90
- return;
91
- }
92
-
93
- // CREATE command
94
- if (command === 'create') {
95
- if (args.length < 2) {
96
- console.log(`
97
- ❌ ERROR: Profile name required
98
-
99
- Usage: memory-profile create <name> [options]
100
-
101
- Options:
102
- --description "text" Profile description
103
- --from-current Copy current profile's data to new profile
104
-
105
- Examples:
106
- memory-profile create work
107
- memory-profile create work --description "Work projects"
108
- memory-profile create personal --from-current
109
- `);
110
- rl.close();
111
- return;
112
- }
113
-
114
- const profileName = args[1];
115
- const pythonArgs = ['create', profileName];
116
-
117
- // Check for --description flag
118
- const descIndex = args.indexOf('--description');
119
- if (descIndex !== -1 && descIndex + 1 < args.length) {
120
- pythonArgs.push('--description', args[descIndex + 1]);
121
- }
122
-
123
- // Check for --from-current flag
124
- if (args.includes('--from-current')) {
125
- pythonArgs.push('--from-current');
126
- }
127
-
128
- try {
129
- const { stdout } = await execFileAsync('python', [profileScript, ...pythonArgs]);
130
- console.log(stdout);
131
- } catch (error) {
132
- console.error('❌ Error:', error.message);
133
- if (error.stdout) console.log(error.stdout);
134
- }
135
- rl.close();
136
- return;
137
- }
138
-
139
- // SWITCH command
140
- if (command === 'switch') {
141
- if (args.length < 2) {
142
- console.log(`
143
- ❌ ERROR: Profile name required
144
-
145
- Usage: memory-profile switch <name>
146
-
147
- Example:
148
- memory-profile switch work
149
-
150
- After switching, restart Claude CLI for changes to take effect.
151
- `);
152
- rl.close();
153
- return;
154
- }
155
-
156
- const profileName = args[1];
157
-
158
- console.log(`
159
- ╔══════════════════════════════════════════════════════════╗
160
- ║ Profile Switch ║
161
- ╚══════════════════════════════════════════════════════════╝
162
-
163
- This will switch the active profile to "${profileName}".
164
- All profiles share one database — switching is instant and safe.
165
- Your current memories are always preserved.
166
- `);
167
-
168
- const answer = await question('Proceed with profile switch? (yes/no): ');
169
-
170
- if (answer.toLowerCase() === 'yes') {
171
- try {
172
- const { stdout } = await execFileAsync('python', [
173
- profileScript,
174
- 'switch',
175
- profileName
176
- ]);
177
- console.log(stdout);
178
- } catch (error) {
179
- console.error('❌ Error:', error.message);
180
- if (error.stdout) console.log(error.stdout);
181
- }
182
- } else {
183
- console.log('\nCancelled. No changes made.');
184
- }
185
-
186
- rl.close();
187
- return;
188
- }
189
-
190
- // DELETE command
191
- if (command === 'delete') {
192
- if (args.length < 2) {
193
- console.log(`
194
- ❌ ERROR: Profile name required
195
-
196
- Usage: memory-profile delete <name>
197
-
198
- Example:
199
- memory-profile delete old-project
200
-
201
- Cannot delete:
202
- • The "default" profile
203
- • The currently active profile
204
- `);
205
- rl.close();
206
- return;
207
- }
208
-
209
- const profileName = args[1];
210
-
211
- // Prevent deleting default
212
- if (profileName === 'default') {
213
- console.log(`
214
- ❌ ERROR: Cannot delete the default profile
215
-
216
- The default profile is protected and cannot be deleted.
217
- `);
218
- rl.close();
219
- return;
220
- }
221
-
222
- console.log(`
223
- ╔══════════════════════════════════════════════════════════╗
224
- ║ ⚠️ DELETE PROFILE WARNING ⚠️ ║
225
- ╚══════════════════════════════════════════════════════════╝
226
-
227
- This will PERMANENTLY delete profile: "${profileName}"
228
-
229
- What will be deleted:
230
- 🔴 All memories in this profile
231
- 🔴 Graph data (nodes, edges, clusters)
232
- 🔴 Learned patterns
233
- 🔴 Compressed archives
234
-
235
- A backup will be created before deletion.
236
-
237
- `);
238
-
239
- const answer = await question(`Type the profile name "${profileName}" to confirm: `);
240
-
241
- if (answer === profileName) {
242
- try {
243
- const { stdout } = await execFileAsync('python', [
244
- profileScript,
245
- 'delete',
246
- profileName
247
- ]);
248
- console.log(stdout);
249
- } catch (error) {
250
- console.error('❌ Error:', error.message);
251
- if (error.stdout) console.log(error.stdout);
252
- }
253
- } else {
254
- console.log('\nCancelled. No changes made.');
255
- console.log(`(You must type exactly "${profileName}" to confirm)`);
256
- }
257
-
258
- rl.close();
259
- return;
260
- }
261
-
262
- // Unknown command
263
- console.log(`
264
- ❌ Unknown command: ${command}
265
-
266
- Valid commands: list, current, create, switch, delete
267
-
268
- Use: memory-profile --help for more information
269
- `);
270
- rl.close();
271
- }
272
-
273
- memoryProfileSkill();
@@ -1,114 +0,0 @@
1
- #!/usr/bin/env node
2
- /**
3
- * Memory Recall CLI Skill
4
- * Search and retrieve memories with advanced filtering
5
- */
6
-
7
- const { execFile } = require('child_process');
8
- const { promisify } = require('util');
9
- const path = require('path');
10
-
11
- const execFileAsync = promisify(execFile);
12
-
13
- async function memoryRecallSkill() {
14
- const memoryScript = path.join(process.env.HOME, '.claude-memory', 'memory_store_v2.py');
15
- const args = process.argv.slice(2);
16
-
17
- // Show help if no args or --help
18
- if (args.length === 0 || args[0] === '--help' || args[0] === '-h') {
19
- console.log(`
20
- ╔══════════════════════════════════════════════════════════╗
21
- ║ ║
22
- ║ SuperLocalMemory V2 - Recall (Search Memories) ║
23
- ║ ║
24
- ╚══════════════════════════════════════════════════════════╝
25
-
26
- Search your memory store using semantic search and filters.
27
- Finds relevant memories using TF-IDF similarity and metadata.
28
-
29
- Usage: memory-recall <query> [options]
30
-
31
- Arguments:
32
- <query> Search query (required)
33
-
34
- Options:
35
- --limit <n> Maximum results to return (default: 10)
36
- --full Show complete content without truncation
37
-
38
- Examples:
39
- memory-recall "authentication bug"
40
-
41
- memory-recall "API configuration" --limit 5
42
-
43
- memory-recall "security best practices" --full
44
-
45
- memory-recall "user preferences"
46
-
47
- Output Format:
48
- • Ranked by relevance (TF-IDF cosine similarity)
49
- • Shows: ID, Content, Tags, Importance, Timestamp
50
- • Higher scores = better matches
51
- • Smart truncation: full content if <5000 chars, preview if ≥5000 chars
52
- • Use --full flag to always show complete content
53
-
54
- Notes:
55
- • Uses local TF-IDF search (no external APIs)
56
- • Searches content, summary, and tags
57
- • Empty query returns recent memories
58
- • Use quotes for multi-word queries
59
- `);
60
- return;
61
- }
62
-
63
- // Parse query and options
64
- let query = null;
65
- const pythonArgs = ['search'];
66
-
67
- for (let i = 0; i < args.length; i++) {
68
- const arg = args[i];
69
-
70
- if (arg === '--limit' && i + 1 < args.length) {
71
- // Note: V1 store doesn't support --limit in search, will truncate output instead
72
- i++; // Skip but don't add to pythonArgs
73
- } else if (arg === '--full') {
74
- pythonArgs.push('--full');
75
- } else if (!arg.startsWith('--') && query === null) {
76
- query = arg;
77
- }
78
- }
79
-
80
- // Validate query
81
- if (!query || query.trim().length === 0) {
82
- console.log(`
83
- ❌ ERROR: Search query required
84
-
85
- Usage: memory-recall <query> [options]
86
-
87
- Example:
88
- memory-recall "search term" --limit 10
89
-
90
- Use --help for more information
91
- `);
92
- return;
93
- }
94
-
95
- // Add query to Python args
96
- pythonArgs.push(query);
97
-
98
- try {
99
- const { stdout, stderr } = await execFileAsync('python3', [memoryScript, ...pythonArgs]);
100
-
101
- if (stderr) {
102
- console.error('⚠️ Warning:', stderr);
103
- }
104
-
105
- console.log(stdout);
106
-
107
- } catch (error) {
108
- console.error('❌ Error searching memories:', error.message);
109
- if (error.stdout) console.log(error.stdout);
110
- if (error.stderr) console.error(error.stderr);
111
- }
112
- }
113
-
114
- memoryRecallSkill();
@@ -1,127 +0,0 @@
1
- #!/usr/bin/env node
2
- /**
3
- * Memory Remember CLI Skill
4
- * Save memories with tags, project context, and importance levels
5
- */
6
-
7
- const { execFile } = require('child_process');
8
- const { promisify } = require('util');
9
- const path = require('path');
10
-
11
- const execFileAsync = promisify(execFile);
12
-
13
- async function memoryRememberSkill() {
14
- const memoryScript = path.join(process.env.HOME, '.claude-memory', 'memory_store_v2.py');
15
- const args = process.argv.slice(2);
16
-
17
- // Show help if no args or --help
18
- if (args.length === 0 || args[0] === '--help' || args[0] === '-h') {
19
- console.log(`
20
- ╔══════════════════════════════════════════════════════════╗
21
- ║ ║
22
- ║ SuperLocalMemory V2 - Remember (Save Memory) ║
23
- ║ ║
24
- ╚══════════════════════════════════════════════════════════╝
25
-
26
- Save important information to your persistent memory store.
27
- Memories are indexed, searchable, and integrated with graph knowledge.
28
-
29
- Usage: memory-remember <content> [options]
30
-
31
- Arguments:
32
- <content> The memory content to save (required)
33
-
34
- Options:
35
- --tags <tag1,tag2> Comma-separated tags for categorization
36
- --project <path> Project path context
37
-
38
- Examples:
39
- memory-remember "API key stored in .env file" --tags security,config
40
-
41
- memory-remember "User prefers tabs over spaces"
42
-
43
- memory-remember "Bug in auth.js line 42" --project ~/work/app --tags bug
44
-
45
- memory-remember "Meeting notes: Q1 launch March 15" --tags meeting,deadline
46
-
47
- Notes:
48
- • Content is deduplicated automatically
49
- • Tags enable fast filtering during recall
50
- • Project context links memories to codebases
51
- • Use semantic search to find related memories
52
- `);
53
- return;
54
- }
55
-
56
- // Parse content (first non-flag argument) and options
57
- let content = null;
58
- let tags = null;
59
- let project = null;
60
-
61
- let i = 0;
62
- while (i < args.length) {
63
- const arg = args[i];
64
-
65
- if (arg === '--tags' && i + 1 < args.length) {
66
- tags = args[i + 1];
67
- i += 2; // Skip flag and value
68
- } else if (arg === '--project' && i + 1 < args.length) {
69
- project = args[i + 1];
70
- i += 2; // Skip flag and value
71
- } else if (!arg.startsWith('--') && content === null) {
72
- content = arg;
73
- i++;
74
- } else {
75
- i++;
76
- }
77
- }
78
-
79
- // Validate content
80
- if (!content || content.trim().length === 0) {
81
- console.log(`
82
- ❌ ERROR: Memory content required
83
-
84
- Usage: memory-remember <content> [options]
85
-
86
- Example:
87
- memory-remember "Important information here" --tags example
88
-
89
- Use --help for more information
90
- `);
91
- return;
92
- }
93
-
94
- // Build Python command: add <content> [--project <path>] [--tags tag1,tag2]
95
- const pythonArgs = ['add', content];
96
-
97
- if (project) {
98
- pythonArgs.push('--project', project);
99
- }
100
-
101
- if (tags) {
102
- pythonArgs.push('--tags', tags);
103
- }
104
-
105
- try {
106
- const { stdout, stderr } = await execFileAsync('python3', [memoryScript, ...pythonArgs]);
107
-
108
- if (stderr) {
109
- console.error('⚠️ Warning:', stderr);
110
- }
111
-
112
- console.log(stdout);
113
- console.log('✅ Memory saved successfully\n');
114
-
115
- // Show helpful next steps
116
- console.log('Next steps:');
117
- console.log(' • Use `memory-recall <query>` to search this memory');
118
- console.log(' • Use `memory-list` to see recent memories');
119
-
120
- } catch (error) {
121
- console.error('❌ Error saving memory:', error.message);
122
- if (error.stdout) console.log(error.stdout);
123
- if (error.stderr) console.error(error.stderr);
124
- }
125
- }
126
-
127
- memoryRememberSkill();