superlocalmemory 2.8.6 → 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 (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 +1 -1
  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,294 @@
1
+ # ============================================================================
2
+ # SuperLocalMemory - Installation Verification Script (PowerShell)
3
+ # Copyright (c) 2026 Varun Pratap Bhardwaj
4
+ # Licensed under MIT License
5
+ # ============================================================================
6
+
7
+ $ErrorActionPreference = "Continue"
8
+
9
+ $INSTALL_DIR = Join-Path $env:USERPROFILE ".claude-memory"
10
+
11
+ # Print banner
12
+ Write-Host ""
13
+ Write-Host "=================================================================="
14
+ Write-Host " SuperLocalMemory - Installation Verification "
15
+ Write-Host " by Varun Pratap Bhardwaj "
16
+ Write-Host "=================================================================="
17
+ Write-Host ""
18
+
19
+ # Track status
20
+ $CORE_OK = $true
21
+ $SEARCH_OK = $false
22
+ $UI_OK = $false
23
+ $ERRORS = @()
24
+
25
+ # ============================================================================
26
+ # CORE INSTALLATION CHECK
27
+ # ============================================================================
28
+
29
+ Write-Host "================================================================"
30
+ Write-Host "1. Core Installation"
31
+ Write-Host "================================================================"
32
+ Write-Host ""
33
+
34
+ # Check Python version
35
+ Write-Host -NoNewline "Python 3.8+ "
36
+ try {
37
+ $pythonVersion = & python -c "import sys; print(f'{sys.version_info.major}.{sys.version_info.minor}')" 2>&1
38
+ $pythonMajor = & python -c "import sys; print(sys.version_info.major)" 2>&1
39
+ $pythonMinor = & python -c "import sys; print(sys.version_info.minor)" 2>&1
40
+
41
+ if ([int]$pythonMajor -lt 3 -or ([int]$pythonMajor -eq 3 -and [int]$pythonMinor -lt 8)) {
42
+ Write-Host "FAIL (found $pythonVersion)" -ForegroundColor Red
43
+ $CORE_OK = $false
44
+ $ERRORS += "Python 3.8+ required"
45
+ } else {
46
+ Write-Host "OK (v$pythonVersion)" -ForegroundColor Green
47
+ }
48
+ } catch {
49
+ Write-Host "FAIL (Python not found)" -ForegroundColor Red
50
+ $CORE_OK = $false
51
+ $ERRORS += "Python not installed"
52
+ }
53
+
54
+ # Check installation directory
55
+ Write-Host -NoNewline "Installation directory "
56
+ if (Test-Path $INSTALL_DIR) {
57
+ Write-Host "OK ($INSTALL_DIR)" -ForegroundColor Green
58
+ } else {
59
+ Write-Host "FAIL (not found)" -ForegroundColor Red
60
+ $CORE_OK = $false
61
+ $ERRORS += "Installation directory missing"
62
+ }
63
+
64
+ # Check core files
65
+ Write-Host -NoNewline "Core scripts "
66
+ $coreFiles = @("memory_store_v2.py", "graph_engine.py", "pattern_learner.py")
67
+ $missingFiles = @()
68
+ foreach ($file in $coreFiles) {
69
+ $filePath = Join-Path $INSTALL_DIR $file
70
+ if (-not (Test-Path $filePath)) {
71
+ $missingFiles += $file
72
+ }
73
+ }
74
+
75
+ if ($missingFiles.Count -eq 0) {
76
+ Write-Host "OK" -ForegroundColor Green
77
+ } else {
78
+ Write-Host "FAIL (missing: $($missingFiles -join ', '))" -ForegroundColor Red
79
+ $CORE_OK = $false
80
+ $ERRORS += "Core scripts missing"
81
+ }
82
+
83
+ # Check CLI wrappers
84
+ Write-Host -NoNewline "CLI wrappers "
85
+ $binDir = Join-Path $INSTALL_DIR "bin"
86
+ if (Test-Path $binDir) {
87
+ Write-Host "OK" -ForegroundColor Green
88
+ } else {
89
+ Write-Host "FAIL" -ForegroundColor Red
90
+ $CORE_OK = $false
91
+ $ERRORS += "CLI wrappers missing"
92
+ }
93
+
94
+ # Check PATH configuration
95
+ Write-Host -NoNewline "PATH configuration "
96
+ $userPath = [Environment]::GetEnvironmentVariable("PATH", "User")
97
+ if ($userPath -like "*$binDir*") {
98
+ Write-Host "OK (commands globally available)" -ForegroundColor Green
99
+ } else {
100
+ Write-Host "WARNING (not in PATH)" -ForegroundColor Yellow
101
+ $ERRORS += "PATH not configured - add manually or re-run installer"
102
+ }
103
+
104
+ # Check database
105
+ Write-Host -NoNewline "Database "
106
+ $dbPath = Join-Path $INSTALL_DIR "memory.db"
107
+ if (Test-Path $dbPath) {
108
+ $dbSize = [math]::Round((Get-Item $dbPath).Length / 1KB, 2)
109
+ Write-Host "OK ($dbSize KB)" -ForegroundColor Green
110
+ } else {
111
+ Write-Host "NOT CREATED (will be created on first use)" -ForegroundColor Yellow
112
+ }
113
+
114
+ # Check config
115
+ Write-Host -NoNewline "Configuration "
116
+ $configPath = Join-Path $INSTALL_DIR "config.json"
117
+ if (Test-Path $configPath) {
118
+ Write-Host "OK" -ForegroundColor Green
119
+ } else {
120
+ Write-Host "WARNING (using defaults)" -ForegroundColor Yellow
121
+ }
122
+
123
+ Write-Host ""
124
+
125
+ # ============================================================================
126
+ # OPTIONAL FEATURES CHECK
127
+ # ============================================================================
128
+
129
+ Write-Host "================================================================"
130
+ Write-Host "2. Optional Features"
131
+ Write-Host "================================================================"
132
+ Write-Host ""
133
+
134
+ # Advanced Search
135
+ Write-Host -NoNewline "Advanced Search "
136
+ try {
137
+ & python -c "import sentence_transformers; import hnswlib" 2>$null
138
+ Write-Host "ENABLED" -ForegroundColor Green
139
+ $SEARCH_OK = $true
140
+ } catch {
141
+ Write-Host "DISABLED" -ForegroundColor Yellow
142
+ Write-Host " Install: pip install -r requirements-search.txt"
143
+ }
144
+
145
+ # Web Dashboard
146
+ Write-Host -NoNewline "Web Dashboard "
147
+ try {
148
+ & python -c "import fastapi; import uvicorn" 2>$null
149
+ Write-Host "ENABLED" -ForegroundColor Green
150
+ $UI_OK = $true
151
+ $apiServerPath = Join-Path $INSTALL_DIR "api_server.py"
152
+ if (Test-Path $apiServerPath) {
153
+ Write-Host " Start: python $apiServerPath"
154
+ Write-Host " URL: http://127.0.0.1:8000"
155
+ }
156
+ } catch {
157
+ Write-Host "DISABLED" -ForegroundColor Yellow
158
+ Write-Host " Install: pip install -r requirements-ui.txt"
159
+ }
160
+
161
+ Write-Host ""
162
+
163
+ # ============================================================================
164
+ # PERFORMANCE QUICK TEST
165
+ # ============================================================================
166
+
167
+ if ($CORE_OK) {
168
+ Write-Host "================================================================"
169
+ Write-Host "3. Performance Quick Test"
170
+ Write-Host "================================================================"
171
+ Write-Host ""
172
+
173
+ # Test memory store initialization
174
+ Write-Host -NoNewline "Memory store init "
175
+ try {
176
+ & python -c "import sys; sys.path.insert(0, '$INSTALL_DIR'); from memory_store_v2 import MemoryStoreV2; store = MemoryStoreV2()" 2>$null
177
+ Write-Host "OK" -ForegroundColor Green
178
+ } catch {
179
+ Write-Host "FAIL" -ForegroundColor Red
180
+ $ERRORS += "Memory store initialization failed"
181
+ }
182
+
183
+ # Test database query
184
+ Write-Host -NoNewline "Database query "
185
+ $startTime = Get-Date
186
+ try {
187
+ & python -c "import sys; sys.path.insert(0, '$INSTALL_DIR'); from memory_store_v2 import MemoryStoreV2; store = MemoryStoreV2(); list(store.list_all(limit=1))" 2>$null
188
+ $endTime = Get-Date
189
+ $duration = [math]::Round(($endTime - $startTime).TotalMilliseconds, 0)
190
+ Write-Host "OK ($duration ms)" -ForegroundColor Green
191
+ } catch {
192
+ Write-Host "FAIL" -ForegroundColor Red
193
+ $ERRORS += "Database query failed"
194
+ }
195
+
196
+ Write-Host ""
197
+ }
198
+
199
+ # ============================================================================
200
+ # SUMMARY
201
+ # ============================================================================
202
+
203
+ Write-Host "================================================================"
204
+ Write-Host "4. Summary"
205
+ Write-Host "================================================================"
206
+ Write-Host ""
207
+
208
+ if ($CORE_OK) {
209
+ Write-Host "Core Installation: WORKING" -ForegroundColor Green
210
+ } else {
211
+ Write-Host "Core Installation: FAILED" -ForegroundColor Red
212
+ }
213
+
214
+ if ($SEARCH_OK) {
215
+ Write-Host "Advanced Search: ENABLED" -ForegroundColor Green
216
+ } else {
217
+ Write-Host "Advanced Search: DISABLED (optional)" -ForegroundColor Yellow
218
+ }
219
+
220
+ if ($UI_OK) {
221
+ Write-Host "Web Dashboard: ENABLED" -ForegroundColor Green
222
+ } else {
223
+ Write-Host "Web Dashboard: DISABLED (optional)" -ForegroundColor Yellow
224
+ }
225
+
226
+ Write-Host ""
227
+
228
+ # Feature Status
229
+ Write-Host "Feature Status:"
230
+ if ($CORE_OK) {
231
+ Write-Host " - Basic CLI commands: Available" -ForegroundColor Green
232
+ Write-Host " - MCP Server: Available" -ForegroundColor Green
233
+ Write-Host " - Skills: Available" -ForegroundColor Green
234
+ } else {
235
+ Write-Host " - Basic CLI commands: Not available" -ForegroundColor Red
236
+ Write-Host " - MCP Server: Not available" -ForegroundColor Red
237
+ Write-Host " - Skills: Not available" -ForegroundColor Red
238
+ }
239
+
240
+ if ($SEARCH_OK) {
241
+ Write-Host " - Semantic Search: Enabled" -ForegroundColor Green
242
+ } else {
243
+ Write-Host " - Semantic Search: Disabled" -ForegroundColor Yellow
244
+ }
245
+
246
+ if ($UI_OK) {
247
+ Write-Host " - Web Interface: Enabled" -ForegroundColor Green
248
+ } else {
249
+ Write-Host " - Web Interface: Disabled" -ForegroundColor Yellow
250
+ }
251
+
252
+ Write-Host ""
253
+
254
+ # Errors
255
+ if ($ERRORS.Count -gt 0) {
256
+ Write-Host "Errors detected:" -ForegroundColor Yellow
257
+ foreach ($error in $ERRORS) {
258
+ Write-Host " - $error"
259
+ }
260
+ Write-Host ""
261
+ }
262
+
263
+ # Next Steps
264
+ Write-Host "Next Steps:"
265
+ Write-Host ""
266
+
267
+ if ($CORE_OK) {
268
+ Write-Host " Try it now:"
269
+ Write-Host " python $INSTALL_DIR\memory_store_v2.py"
270
+ Write-Host ""
271
+
272
+ if (-not $SEARCH_OK -and -not $UI_OK) {
273
+ Write-Host " Install optional features:"
274
+ Write-Host " pip install -r requirements-search.txt # Advanced search"
275
+ Write-Host " pip install -r requirements-ui.txt # Web dashboard"
276
+ Write-Host " pip install -r requirements-full.txt # Everything"
277
+ Write-Host ""
278
+ }
279
+ } else {
280
+ Write-Host " Fix installation issues:"
281
+ Write-Host " Run: .\install.ps1"
282
+ Write-Host ""
283
+ }
284
+
285
+ # Exit code
286
+ if ($CORE_OK) {
287
+ Write-Host "Installation verification PASSED" -ForegroundColor Green
288
+ Write-Host ""
289
+ exit 0
290
+ } else {
291
+ Write-Host "Installation verification FAILED" -ForegroundColor Red
292
+ Write-Host ""
293
+ exit 1
294
+ }
@@ -0,0 +1,266 @@
1
+ #!/bin/bash
2
+ # ============================================================================
3
+ # SuperLocalMemory - Installation Verification Script
4
+ # Copyright (c) 2026 Varun Pratap Bhardwaj
5
+ # Licensed under MIT License
6
+ # Repository: https://github.com/varun369/SuperLocalMemoryV2
7
+ # ============================================================================
8
+
9
+ set -e
10
+
11
+ INSTALL_DIR="${HOME}/.claude-memory"
12
+
13
+ # Print banner
14
+ echo ""
15
+ echo "╔══════════════════════════════════════════════════════════════╗"
16
+ echo "║ SuperLocalMemory - Installation Verification ║"
17
+ echo "║ by Varun Pratap Bhardwaj ║"
18
+ echo "╚══════════════════════════════════════════════════════════════╝"
19
+ echo ""
20
+
21
+ # Track status
22
+ CORE_OK=true
23
+ SEARCH_OK=false
24
+ UI_OK=false
25
+ ERRORS=()
26
+
27
+ # ============================================================================
28
+ # CORE INSTALLATION CHECK
29
+ # ============================================================================
30
+
31
+ echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
32
+ echo "1. Core Installation"
33
+ echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
34
+ echo ""
35
+
36
+ # Check Python version
37
+ echo -n "Python 3.8+ "
38
+ PYTHON_VERSION=$(python3 -c 'import sys; print(f"{sys.version_info.major}.{sys.version_info.minor}")')
39
+ PYTHON_MAJOR=$(python3 -c 'import sys; print(sys.version_info.major)')
40
+ PYTHON_MINOR=$(python3 -c 'import sys; print(sys.version_info.minor)')
41
+
42
+ if [ "$PYTHON_MAJOR" -lt 3 ] || ([ "$PYTHON_MAJOR" -eq 3 ] && [ "$PYTHON_MINOR" -lt 8 ]); then
43
+ echo "✗ FAIL (found $PYTHON_VERSION)"
44
+ CORE_OK=false
45
+ ERRORS+=("Python 3.8+ required")
46
+ else
47
+ echo "✓ OK (v$PYTHON_VERSION)"
48
+ fi
49
+
50
+ # Check installation directory
51
+ echo -n "Installation directory "
52
+ if [ -d "${INSTALL_DIR}" ]; then
53
+ echo "✓ OK (${INSTALL_DIR})"
54
+ else
55
+ echo "✗ FAIL (not found)"
56
+ CORE_OK=false
57
+ ERRORS+=("Installation directory missing")
58
+ fi
59
+
60
+ # Check core files
61
+ echo -n "Core scripts "
62
+ MISSING_FILES=()
63
+ for file in memory_store_v2.py graph_engine.py pattern_learner.py; do
64
+ if [ ! -f "${INSTALL_DIR}/${file}" ]; then
65
+ MISSING_FILES+=("${file}")
66
+ fi
67
+ done
68
+
69
+ if [ ${#MISSING_FILES[@]} -eq 0 ]; then
70
+ echo "✓ OK"
71
+ else
72
+ echo "✗ FAIL (missing: ${MISSING_FILES[*]})"
73
+ CORE_OK=false
74
+ ERRORS+=("Core scripts missing")
75
+ fi
76
+
77
+ # Check CLI wrappers
78
+ echo -n "CLI wrappers "
79
+ if [ -d "${INSTALL_DIR}/bin" ] && [ -x "${INSTALL_DIR}/bin/slm" ]; then
80
+ echo "✓ OK"
81
+ else
82
+ echo "✗ FAIL"
83
+ CORE_OK=false
84
+ ERRORS+=("CLI wrappers missing or not executable")
85
+ fi
86
+
87
+ # Check PATH configuration
88
+ echo -n "PATH configuration "
89
+ if command -v slm &>/dev/null; then
90
+ echo "✓ OK (commands globally available)"
91
+ elif grep -q ".claude-memory/bin" "${HOME}/.zshrc" 2>/dev/null || grep -q ".claude-memory/bin" "${HOME}/.bashrc" 2>/dev/null || grep -q ".claude-memory/bin" "${HOME}/.bash_profile" 2>/dev/null; then
92
+ echo "○ PARTIAL (configured but needs shell restart)"
93
+ else
94
+ echo "⚠️ WARNING (not in PATH)"
95
+ ERRORS+=("PATH not configured - run: source ~/.zshrc (or ~/.bashrc)")
96
+ fi
97
+
98
+ # Check database
99
+ echo -n "Database "
100
+ if [ -f "${INSTALL_DIR}/memory.db" ]; then
101
+ DB_SIZE=$(du -h "${INSTALL_DIR}/memory.db" | cut -f1)
102
+ echo "✓ OK (${DB_SIZE})"
103
+ else
104
+ echo "○ NOT CREATED (will be created on first use)"
105
+ fi
106
+
107
+ # Check config
108
+ echo -n "Configuration "
109
+ if [ -f "${INSTALL_DIR}/config.json" ]; then
110
+ echo "✓ OK"
111
+ else
112
+ echo "⚠️ WARNING (using defaults)"
113
+ fi
114
+
115
+ echo ""
116
+
117
+ # ============================================================================
118
+ # OPTIONAL FEATURES CHECK
119
+ # ============================================================================
120
+
121
+ echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
122
+ echo "2. Optional Features"
123
+ echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
124
+ echo ""
125
+
126
+ # Advanced Search
127
+ echo -n "Advanced Search "
128
+ if python3 -c "import sentence_transformers; import hnswlib" 2>/dev/null; then
129
+ echo "✓ ENABLED"
130
+ SEARCH_OK=true
131
+ else
132
+ echo "○ DISABLED"
133
+ echo " Install: pip3 install -r requirements-search.txt"
134
+ fi
135
+
136
+ # Web Dashboard
137
+ echo -n "Web Dashboard "
138
+ if python3 -c "import fastapi; import uvicorn" 2>/dev/null; then
139
+ echo "✓ ENABLED"
140
+ UI_OK=true
141
+ if [ -f "${INSTALL_DIR}/api_server.py" ]; then
142
+ echo " Start: python3 ~/.claude-memory/api_server.py"
143
+ echo " URL: http://127.0.0.1:8000"
144
+ fi
145
+ else
146
+ echo "○ DISABLED"
147
+ echo " Install: pip3 install -r requirements-ui.txt"
148
+ fi
149
+
150
+ echo ""
151
+
152
+ # ============================================================================
153
+ # PERFORMANCE QUICK TEST
154
+ # ============================================================================
155
+
156
+ if $CORE_OK; then
157
+ echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
158
+ echo "3. Performance Quick Test"
159
+ echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
160
+ echo ""
161
+
162
+ # Test memory store initialization
163
+ echo -n "Memory store init "
164
+ if python3 -c "import sys; sys.path.insert(0, '${INSTALL_DIR}'); from memory_store_v2 import MemoryStoreV2; store = MemoryStoreV2()" 2>/dev/null; then
165
+ echo "✓ OK"
166
+ else
167
+ echo "✗ FAIL"
168
+ ERRORS+=("Memory store initialization failed")
169
+ fi
170
+
171
+ # Test database query
172
+ echo -n "Database query "
173
+ START_TIME=$(python3 -c "import time; print(time.time())")
174
+ if python3 -c "import sys; sys.path.insert(0, '${INSTALL_DIR}'); from memory_store_v2 import MemoryStoreV2; store = MemoryStoreV2(); list(store.list_all(limit=1))" 2>/dev/null; then
175
+ END_TIME=$(python3 -c "import time; print(time.time())")
176
+ DURATION=$(python3 -c "print(f'{($END_TIME - $START_TIME) * 1000:.0f}ms')" 2>/dev/null || echo "OK")
177
+ echo "✓ OK ($DURATION)"
178
+ else
179
+ echo "✗ FAIL"
180
+ ERRORS+=("Database query failed")
181
+ fi
182
+
183
+ echo ""
184
+ fi
185
+
186
+ # ============================================================================
187
+ # SUMMARY
188
+ # ============================================================================
189
+
190
+ echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
191
+ echo "4. Summary"
192
+ echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
193
+ echo ""
194
+
195
+ if $CORE_OK; then
196
+ echo "✓ Core Installation: WORKING"
197
+ else
198
+ echo "✗ Core Installation: FAILED"
199
+ fi
200
+
201
+ if $SEARCH_OK; then
202
+ echo "✓ Advanced Search: ENABLED"
203
+ else
204
+ echo "○ Advanced Search: DISABLED (optional)"
205
+ fi
206
+
207
+ if $UI_OK; then
208
+ echo "✓ Web Dashboard: ENABLED"
209
+ else
210
+ echo "○ Web Dashboard: DISABLED (optional)"
211
+ fi
212
+
213
+ echo ""
214
+
215
+ # Feature Status
216
+ echo "Feature Status:"
217
+ echo " • Basic CLI commands: $(if $CORE_OK; then echo '✓ Available'; else echo '✗ Not available'; fi)"
218
+ echo " • MCP Server: $(if $CORE_OK; then echo '✓ Available'; else echo '✗ Not available'; fi)"
219
+ echo " • Skills: $(if $CORE_OK; then echo '✓ Available'; else echo '✗ Not available'; fi)"
220
+ echo " • Semantic Search: $(if $SEARCH_OK; then echo '✓ Enabled'; else echo '○ Disabled'; fi)"
221
+ echo " • Web Interface: $(if $UI_OK; then echo '✓ Enabled'; else echo '○ Disabled'; fi)"
222
+ echo ""
223
+
224
+ # Errors
225
+ if [ ${#ERRORS[@]} -gt 0 ]; then
226
+ echo "⚠️ Errors detected:"
227
+ for error in "${ERRORS[@]}"; do
228
+ echo " • $error"
229
+ done
230
+ echo ""
231
+ fi
232
+
233
+ # Next Steps
234
+ echo "Next Steps:"
235
+ echo ""
236
+
237
+ if $CORE_OK; then
238
+ echo " Try it now:"
239
+ echo " slm status"
240
+ echo " slm remember 'My first memory'"
241
+ echo " slm recall 'first'"
242
+ echo ""
243
+
244
+ if ! $SEARCH_OK && ! $UI_OK; then
245
+ echo " Install optional features:"
246
+ echo " pip3 install -r requirements-search.txt # Advanced search"
247
+ echo " pip3 install -r requirements-ui.txt # Web dashboard"
248
+ echo " pip3 install -r requirements-full.txt # Everything"
249
+ echo ""
250
+ fi
251
+ else
252
+ echo " Fix installation issues:"
253
+ echo " ./install.sh"
254
+ echo ""
255
+ fi
256
+
257
+ # Exit code
258
+ if $CORE_OK; then
259
+ echo "✓ Installation verification PASSED"
260
+ echo ""
261
+ exit 0
262
+ else
263
+ echo "✗ Installation verification FAILED"
264
+ echo ""
265
+ exit 1
266
+ fi
File without changes
@@ -0,0 +1,9 @@
1
+ """Attribution — Multi-layer provenance and ownership protection.
2
+
3
+ Part of Qualixar | Author: Varun Pratap Bhardwaj
4
+ """
5
+
6
+ from superlocalmemory.attribution.signer import QualixarSigner
7
+ from superlocalmemory.attribution.watermark import QualixarWatermark
8
+
9
+ __all__ = ["QualixarSigner", "QualixarWatermark"]