superlocalmemory 3.6.22 → 3.7.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 (303) hide show
  1. package/CHANGELOG.md +52 -0
  2. package/README.md +275 -72
  3. package/bin/slm-npm +43 -89
  4. package/docs/pi-dev-integration.md +43 -0
  5. package/ide/configs/antigravity-mcp.json +2 -2
  6. package/ide/configs/chatgpt-desktop-mcp.json +1 -1
  7. package/ide/configs/claude-desktop-mcp.json +2 -2
  8. package/ide/configs/windsurf-mcp.json +2 -2
  9. package/ide/hooks/context-hook.js +6 -2
  10. package/ide/hooks/post-recall-hook.js +7 -3
  11. package/ide/hooks/tool-event-hook.sh +2 -1
  12. package/package.json +19 -10
  13. package/plugin/.claude-plugin/plugin.json +1 -1
  14. package/plugin/_GENERATED.md +1 -1
  15. package/plugin/agents/slm-memory-advisor.md +1 -1
  16. package/plugin/requirements.txt +1 -1
  17. package/plugin/skills/slm-session/SKILL.md +1 -1
  18. package/plugin-src/rules/AGENTS.md +1 -1
  19. package/pyproject.toml +40 -8
  20. package/scripts/postinstall-interactive.js +17 -94
  21. package/scripts/postinstall.js +185 -258
  22. package/scripts/preuninstall.js +9 -50
  23. package/src/superlocalmemory/__init__.py +2 -2
  24. package/src/superlocalmemory/attribution/mathematical_dna.py +1 -1
  25. package/src/superlocalmemory/attribution/signer.py +34 -19
  26. package/src/superlocalmemory/attribution/watermark.py +1 -1
  27. package/src/superlocalmemory/cli/_lazy_init.py +3 -5
  28. package/src/superlocalmemory/cli/commands.py +490 -195
  29. package/src/superlocalmemory/cli/context_commands.py +5 -4
  30. package/src/superlocalmemory/cli/daemon.py +282 -187
  31. package/src/superlocalmemory/cli/db_migrate.py +3 -1
  32. package/src/superlocalmemory/cli/diagnostics_cmd.py +28 -0
  33. package/src/superlocalmemory/cli/evidence_cmd.py +103 -0
  34. package/src/superlocalmemory/cli/ingest_cmd.py +7 -3
  35. package/src/superlocalmemory/cli/main.py +128 -31
  36. package/src/superlocalmemory/cli/pending_store.py +54 -38
  37. package/src/superlocalmemory/cli/scale_engine_cmd.py +37 -0
  38. package/src/superlocalmemory/cli/service_installer.py +57 -52
  39. package/src/superlocalmemory/cli/setup_wizard.py +142 -88
  40. package/src/superlocalmemory/cli/version_banner.py +2 -1
  41. package/src/superlocalmemory/code_graph/config.py +3 -1
  42. package/src/superlocalmemory/core/backend_orchestrator.py +81 -21
  43. package/src/superlocalmemory/core/config.py +65 -20
  44. package/src/superlocalmemory/core/consolidation_engine.py +9 -7
  45. package/src/superlocalmemory/core/context_cache.py +56 -8
  46. package/src/superlocalmemory/core/derivation_lineage.py +246 -0
  47. package/src/superlocalmemory/core/embedding_worker.py +32 -20
  48. package/src/superlocalmemory/core/embeddings.py +54 -18
  49. package/src/superlocalmemory/core/engine.py +150 -104
  50. package/src/superlocalmemory/core/engine_ingestion.py +513 -0
  51. package/src/superlocalmemory/core/engine_wiring.py +2 -0
  52. package/src/superlocalmemory/core/evidence_bundle.py +526 -0
  53. package/src/superlocalmemory/core/fact_consolidator.py +5 -11
  54. package/src/superlocalmemory/core/graph_analyzer.py +2 -2
  55. package/src/superlocalmemory/core/health_monitor.py +4 -2
  56. package/src/superlocalmemory/core/ingestion_command.py +636 -0
  57. package/src/superlocalmemory/core/injection.py +69 -18
  58. package/src/superlocalmemory/core/lifecycle_state.py +153 -0
  59. package/src/superlocalmemory/core/maintenance.py +23 -22
  60. package/src/superlocalmemory/core/maintenance_scheduler.py +51 -35
  61. package/src/superlocalmemory/core/mutations.py +143 -0
  62. package/src/superlocalmemory/core/platform_utils.py +7 -4
  63. package/src/superlocalmemory/core/ram_lock.py +16 -5
  64. package/src/superlocalmemory/core/rate_limit.py +1 -1
  65. package/src/superlocalmemory/core/recall_pipeline.py +60 -101
  66. package/src/superlocalmemory/core/recall_worker.py +76 -59
  67. package/src/superlocalmemory/core/registry.py +1 -1
  68. package/src/superlocalmemory/core/scale_engine.py +293 -0
  69. package/src/superlocalmemory/core/score_contract.py +62 -0
  70. package/src/superlocalmemory/core/security_primitives.py +3 -1
  71. package/src/superlocalmemory/core/slm_disabled.py +3 -5
  72. package/src/superlocalmemory/core/store_pipeline.py +172 -40
  73. package/src/superlocalmemory/core/tier_manager.py +32 -20
  74. package/src/superlocalmemory/core/worker_pool.py +13 -4
  75. package/src/superlocalmemory/dynamics/activation_guided_quantization.py +1 -1
  76. package/src/superlocalmemory/dynamics/eap_scheduler.py +10 -3
  77. package/src/superlocalmemory/dynamics/ebbinghaus_langevin_coupling.py +1 -1
  78. package/src/superlocalmemory/dynamics/fisher_langevin_coupling.py +1 -1
  79. package/src/superlocalmemory/encoding/auto_linker.py +1 -1
  80. package/src/superlocalmemory/encoding/cognitive_consolidator.py +7 -16
  81. package/src/superlocalmemory/encoding/consolidator.py +22 -5
  82. package/src/superlocalmemory/encoding/fact_extractor.py +1 -1
  83. package/src/superlocalmemory/encoding/foresight.py +2 -0
  84. package/src/superlocalmemory/encoding/graph_builder.py +1 -1
  85. package/src/superlocalmemory/encoding/temporal_parser.py +2 -0
  86. package/src/superlocalmemory/evaluation/__init__.py +13 -0
  87. package/src/superlocalmemory/evaluation/calibration.py +308 -0
  88. package/src/superlocalmemory/evolution/skill_evolver.py +2 -1
  89. package/src/superlocalmemory/graph/cozo_backend.py +256 -23
  90. package/src/superlocalmemory/hooks/_outcome_common.py +21 -11
  91. package/src/superlocalmemory/hooks/antigravity_adapter.py +10 -31
  92. package/src/superlocalmemory/hooks/auto_invoker.py +25 -27
  93. package/src/superlocalmemory/hooks/auto_recall.py +31 -6
  94. package/src/superlocalmemory/hooks/auto_recall_hook.py +13 -33
  95. package/src/superlocalmemory/hooks/before_web_hook.py +9 -7
  96. package/src/superlocalmemory/hooks/claude_code_hooks.py +126 -39
  97. package/src/superlocalmemory/hooks/codex_assets.py +59 -0
  98. package/src/superlocalmemory/hooks/codex_hooks.py +186 -0
  99. package/src/superlocalmemory/hooks/context_payload.py +1 -1
  100. package/src/superlocalmemory/hooks/copilot_adapter.py +9 -24
  101. package/src/superlocalmemory/hooks/cursor_adapter.py +10 -32
  102. package/src/superlocalmemory/hooks/hook_daemon.py +4 -2
  103. package/src/superlocalmemory/hooks/hook_handlers.py +241 -55
  104. package/src/superlocalmemory/hooks/memory_protocol.py +5 -3
  105. package/src/superlocalmemory/hooks/post_tool_async_hook.py +4 -2
  106. package/src/superlocalmemory/hooks/session_registry.py +15 -8
  107. package/src/superlocalmemory/hooks/stop_outcome_hook.py +10 -6
  108. package/src/superlocalmemory/hooks/topic_shift_hook.py +42 -12
  109. package/src/superlocalmemory/hooks/user_prompt_hook.py +9 -14
  110. package/src/superlocalmemory/hooks/user_prompt_rehash_hook.py +19 -11
  111. package/src/superlocalmemory/infra/auth_middleware.py +38 -5
  112. package/src/superlocalmemory/infra/backup.py +7 -5
  113. package/src/superlocalmemory/infra/cloud_backup.py +18 -8
  114. package/src/superlocalmemory/infra/daemon_identity.py +248 -0
  115. package/src/superlocalmemory/infra/data_root.py +199 -0
  116. package/src/superlocalmemory/infra/event_bus.py +3 -1
  117. package/src/superlocalmemory/infra/local_diagnostics.py +327 -0
  118. package/src/superlocalmemory/infra/process_reaper.py +23 -0
  119. package/src/superlocalmemory/ingestion/adapter_manager.py +27 -9
  120. package/src/superlocalmemory/ingestion/base_adapter.py +25 -31
  121. package/src/superlocalmemory/ingestion/calendar_adapter.py +13 -4
  122. package/src/superlocalmemory/ingestion/credentials.py +14 -7
  123. package/src/superlocalmemory/ingestion/gmail_adapter.py +13 -4
  124. package/src/superlocalmemory/ingestion/transcript_adapter.py +7 -2
  125. package/src/superlocalmemory/learning/consolidation_quantization_worker.py +1 -1
  126. package/src/superlocalmemory/learning/ensemble.py +11 -0
  127. package/src/superlocalmemory/learning/entity_compiler.py +1 -1
  128. package/src/superlocalmemory/learning/feedback.py +1 -1
  129. package/src/superlocalmemory/learning/forgetting_scheduler.py +12 -7
  130. package/src/superlocalmemory/learning/quantization_scheduler.py +1 -1
  131. package/src/superlocalmemory/learning/ranker.py +4 -1
  132. package/src/superlocalmemory/learning/source_quality.py +1 -1
  133. package/src/superlocalmemory/learning/trigram_index.py +3 -2
  134. package/src/superlocalmemory/llm/backbone.py +13 -8
  135. package/src/superlocalmemory/math/ebbinghaus.py +1 -1
  136. package/src/superlocalmemory/math/fisher.py +1 -1
  137. package/src/superlocalmemory/math/fisher_quantized.py +1 -1
  138. package/src/superlocalmemory/math/hopfield.py +1 -1
  139. package/src/superlocalmemory/math/langevin.py +1 -1
  140. package/src/superlocalmemory/math/polar_quant.py +3 -4
  141. package/src/superlocalmemory/math/qjl.py +1 -1
  142. package/src/superlocalmemory/math/sheaf.py +1 -1
  143. package/src/superlocalmemory/math/turbo_quant.py +3 -2
  144. package/src/superlocalmemory/mcp/_daemon_proxy.py +12 -11
  145. package/src/superlocalmemory/mcp/_pool_adapter.py +27 -0
  146. package/src/superlocalmemory/mcp/http_transport.py +53 -0
  147. package/src/superlocalmemory/mcp/server.py +39 -13
  148. package/src/superlocalmemory/mcp/shared.py +69 -3
  149. package/src/superlocalmemory/mcp/tools_active.py +141 -31
  150. package/src/superlocalmemory/mcp/tools_core.py +128 -29
  151. package/src/superlocalmemory/mcp/tools_evolution.py +5 -7
  152. package/src/superlocalmemory/mcp/tools_learning.py +42 -2
  153. package/src/superlocalmemory/mcp/tools_mesh.py +7 -23
  154. package/src/superlocalmemory/mcp/tools_optimize.py +8 -1
  155. package/src/superlocalmemory/mcp/tools_v28.py +23 -2
  156. package/src/superlocalmemory/mcp/tools_v3.py +26 -1
  157. package/src/superlocalmemory/mcp/tools_v33.py +56 -17
  158. package/src/superlocalmemory/mesh/broker.py +2 -0
  159. package/src/superlocalmemory/mesh/remote_sync.py +50 -12
  160. package/src/superlocalmemory/optimize/cache/manager.py +77 -1
  161. package/src/superlocalmemory/optimize/cache/semantic.py +23 -3
  162. package/src/superlocalmemory/optimize/compress/ccr.py +4 -0
  163. package/src/superlocalmemory/optimize/compress/router.py +6 -1
  164. package/src/superlocalmemory/optimize/config/__init__.py +5 -0
  165. package/src/superlocalmemory/optimize/config/store.py +6 -4
  166. package/src/superlocalmemory/optimize/proxy/_helpers.py +15 -5
  167. package/src/superlocalmemory/optimize/proxy/capture.py +3 -2
  168. package/src/superlocalmemory/optimize/proxy/server.py +2 -2
  169. package/src/superlocalmemory/optimize/storage/db.py +14 -13
  170. package/src/superlocalmemory/retrieval/agentic.py +1 -1
  171. package/src/superlocalmemory/retrieval/ann_index.py +1 -1
  172. package/src/superlocalmemory/retrieval/bm25_channel.py +35 -11
  173. package/src/superlocalmemory/retrieval/bridge_discovery.py +73 -8
  174. package/src/superlocalmemory/retrieval/engine.py +169 -79
  175. package/src/superlocalmemory/retrieval/entity_channel.py +289 -67
  176. package/src/superlocalmemory/retrieval/forgetting_filter.py +1 -1
  177. package/src/superlocalmemory/retrieval/fusion.py +1 -1
  178. package/src/superlocalmemory/retrieval/hopfield_channel.py +118 -30
  179. package/src/superlocalmemory/retrieval/profile_channel.py +1 -1
  180. package/src/superlocalmemory/retrieval/quantization_aware_search.py +16 -10
  181. package/src/superlocalmemory/retrieval/reranker.py +56 -20
  182. package/src/superlocalmemory/retrieval/scope_policy.py +85 -0
  183. package/src/superlocalmemory/retrieval/semantic_channel.py +122 -14
  184. package/src/superlocalmemory/retrieval/spreading_activation.py +141 -25
  185. package/src/superlocalmemory/retrieval/strategy.py +1 -1
  186. package/src/superlocalmemory/retrieval/temporal_channel.py +30 -15
  187. package/src/superlocalmemory/retrieval/vector_store.py +1 -1
  188. package/src/superlocalmemory/server/api.py +10 -7
  189. package/src/superlocalmemory/server/bandit_loops.py +4 -2
  190. package/src/superlocalmemory/server/recall_serializer.py +24 -0
  191. package/src/superlocalmemory/server/route_mutations.py +84 -0
  192. package/src/superlocalmemory/server/routes/agents.py +8 -6
  193. package/src/superlocalmemory/server/routes/brain.py +14 -12
  194. package/src/superlocalmemory/server/routes/chat.py +29 -12
  195. package/src/superlocalmemory/server/routes/data_io.py +55 -24
  196. package/src/superlocalmemory/server/routes/helpers.py +29 -4
  197. package/src/superlocalmemory/server/routes/ingest.py +53 -36
  198. package/src/superlocalmemory/server/routes/memories.py +104 -43
  199. package/src/superlocalmemory/server/routes/mesh.py +31 -0
  200. package/src/superlocalmemory/server/routes/profiles.py +26 -4
  201. package/src/superlocalmemory/server/routes/tiers.py +43 -11
  202. package/src/superlocalmemory/server/routes/timeline.py +5 -1
  203. package/src/superlocalmemory/server/routes/v3_api.py +76 -21
  204. package/src/superlocalmemory/server/security_middleware.py +1 -1
  205. package/src/superlocalmemory/server/ui.py +6 -3
  206. package/src/superlocalmemory/server/unified_daemon.py +680 -293
  207. package/src/superlocalmemory/server/write_identity.py +147 -0
  208. package/src/superlocalmemory/storage/access_log.py +4 -3
  209. package/src/superlocalmemory/storage/database.py +118 -25
  210. package/src/superlocalmemory/storage/migration_runner.py +84 -1
  211. package/src/superlocalmemory/storage/migration_v33.py +1 -1
  212. package/src/superlocalmemory/storage/migrations/M002_model_state_history.py +6 -60
  213. package/src/superlocalmemory/storage/migrations/M018_ingestion_operations.py +120 -0
  214. package/src/superlocalmemory/storage/migrations/M019_derivation_lineage.py +54 -0
  215. package/src/superlocalmemory/storage/migrations/M020_model_state_integrity.py +52 -0
  216. package/src/superlocalmemory/storage/migrations/__init__.py +5 -0
  217. package/src/superlocalmemory/storage/models.py +16 -0
  218. package/src/superlocalmemory/storage/quantized_store.py +20 -3
  219. package/src/superlocalmemory/storage/v2_migrator.py +5 -3
  220. package/src/superlocalmemory/ui/favicon.svg +5 -0
  221. package/src/superlocalmemory/ui/index.html +1 -0
  222. package/src/superlocalmemory/ui/js/compliance.js +1 -1
  223. package/src/superlocalmemory/ui/js/core.js +49 -8
  224. package/src/superlocalmemory/ui/js/dashboard.js +23 -2
  225. package/src/superlocalmemory/ui/js/feedback.js +1 -1
  226. package/src/superlocalmemory/ui/js/graph-filters.js +1 -1
  227. package/src/superlocalmemory/ui/js/graph-ui.js +1 -1
  228. package/src/superlocalmemory/ui/js/lifecycle.js +1 -1
  229. package/src/superlocalmemory/ui/js/ng-mesh.js +15 -49
  230. package/src/superlocalmemory/ui/js/settings.js +4 -2
  231. package/src/superlocalmemory/vector/lancedb_backend.py +57 -9
  232. package/bin/slm +0 -59
  233. package/bin/slm.bat +0 -77
  234. package/bin/slm.cmd +0 -5
  235. package/ide/integrations/langchain/README.md +0 -106
  236. package/ide/integrations/langchain/langchain_superlocalmemory/__init__.py +0 -9
  237. package/ide/integrations/langchain/langchain_superlocalmemory/chat_message_history.py +0 -201
  238. package/ide/integrations/langchain/pyproject.toml +0 -38
  239. package/ide/integrations/langchain/tests/__init__.py +0 -3
  240. package/ide/integrations/langchain/tests/test_chat_message_history.py +0 -215
  241. package/ide/integrations/langchain/tests/test_security.py +0 -117
  242. package/ide/integrations/llamaindex/README.md +0 -81
  243. package/ide/integrations/llamaindex/llama_index/storage/chat_store/superlocalmemory/__init__.py +0 -9
  244. package/ide/integrations/llamaindex/llama_index/storage/chat_store/superlocalmemory/base.py +0 -316
  245. package/ide/integrations/llamaindex/pyproject.toml +0 -43
  246. package/ide/integrations/llamaindex/tests/__init__.py +0 -3
  247. package/ide/integrations/llamaindex/tests/test_chat_store.py +0 -294
  248. package/ide/integrations/llamaindex/tests/test_security.py +0 -241
  249. package/plugin-src/.mcp.json +0 -12
  250. package/plugin-src/agents/slm-memory-advisor.md +0 -44
  251. package/plugin-src/agents/slm-optimize-advisor.md +0 -38
  252. package/plugin-src/hooks/.gitkeep +0 -0
  253. package/plugin-src/hooks/hooks.json +0 -23
  254. package/plugin-src/manifest.json +0 -25
  255. package/plugin-src/requirements.txt +0 -1
  256. package/plugin-src/rules/CLAUDE.md.fragment +0 -44
  257. package/plugin-src/scripts/ensure-venv.bat +0 -122
  258. package/plugin-src/scripts/ensure-venv.sh +0 -105
  259. package/plugin-src/scripts/slm-launch +0 -15
  260. package/plugin-src/scripts/slm-launch.bat +0 -17
  261. package/plugin-src/settings.json +0 -16
  262. package/plugin-src/skills/slm-cache/SKILL.md +0 -140
  263. package/plugin-src/skills/slm-compress/SKILL.md +0 -143
  264. package/plugin-src/skills/slm-graph/SKILL.md +0 -300
  265. package/plugin-src/skills/slm-recall/SKILL.md +0 -204
  266. package/plugin-src/skills/slm-remember/SKILL.md +0 -194
  267. package/plugin-src/skills/slm-session/SKILL.md +0 -207
  268. package/plugin-src/skills/slm-status/SKILL.md +0 -149
  269. package/scripts/__tests__/build-plugin.test.mjs +0 -613
  270. package/scripts/_savings_math.py +0 -270
  271. package/scripts/build-dmg.sh +0 -417
  272. package/scripts/build-plugin.js +0 -742
  273. package/scripts/build-slm-hook.ps1 +0 -40
  274. package/scripts/build-slm-hook.sh +0 -45
  275. package/scripts/build_entry.py +0 -452
  276. package/scripts/ci/stage5b_gate.sh +0 -50
  277. package/scripts/dogfood_savings.py +0 -490
  278. package/scripts/generate-thumbnails.py +0 -218
  279. package/scripts/install-skills.ps1 +0 -4
  280. package/scripts/install-skills.sh +0 -5
  281. package/scripts/install.ps1 +0 -701
  282. package/scripts/install.sh +0 -1015
  283. package/scripts/postinstall_binary.js +0 -287
  284. package/scripts/prepack.js +0 -33
  285. package/scripts/release_manifest.py +0 -273
  286. package/scripts/slm-hook.spec +0 -56
  287. package/scripts/start-dashboard.ps1 +0 -52
  288. package/scripts/start-dashboard.sh +0 -41
  289. package/scripts/sync-wiki.ps1 +0 -127
  290. package/scripts/sync-wiki.sh +0 -82
  291. package/scripts/test-dmg.sh +0 -161
  292. package/scripts/test-npm-package.ps1 +0 -252
  293. package/scripts/test-npm-package.sh +0 -207
  294. package/scripts/verify-install.ps1 +0 -294
  295. package/scripts/verify-install.sh +0 -266
  296. package/scripts/verify-v27.ps1 +0 -301
  297. package/scripts/verify-v27.sh +0 -233
  298. package/src/superlocalmemory.egg-info/PKG-INFO +0 -513
  299. package/src/superlocalmemory.egg-info/SOURCES.txt +0 -529
  300. package/src/superlocalmemory.egg-info/dependency_links.txt +0 -1
  301. package/src/superlocalmemory.egg-info/entry_points.txt +0 -2
  302. package/src/superlocalmemory.egg-info/requires.txt +0 -71
  303. package/src/superlocalmemory.egg-info/top_level.txt +0 -1
@@ -1,266 +0,0 @@
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/qualixar/superlocalmemory
7
- # ============================================================================
8
-
9
- set -e
10
-
11
- INSTALL_DIR="${HOME}/.superlocalmemory"
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 ".superlocalmemory/bin" "${HOME}/.zshrc" 2>/dev/null || grep -q ".superlocalmemory/bin" "${HOME}/.bashrc" 2>/dev/null || grep -q ".superlocalmemory/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 ~/.superlocalmemory/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
@@ -1,301 +0,0 @@
1
- # ============================================================================
2
- # SuperLocalMemory V2.7 — Quick Verification Script (PowerShell)
3
- # Copyright (c) 2026 Varun Pratap Bhardwaj
4
- # Licensed under MIT License
5
- # Repository: https://github.com/qualixar/superlocalmemory
6
- #
7
- # Run this after installation to verify everything works:
8
- # .\scripts\verify-v27.ps1
9
- # ============================================================================
10
-
11
- param()
12
-
13
- $ErrorActionPreference = "Stop"
14
-
15
- $INSTALL_DIR = Join-Path $env:USERPROFILE ".superlocalmemory"
16
- $PASS = 0
17
- $WARN = 0
18
- $FAIL = 0
19
-
20
- Write-Host ""
21
- Write-Host "SuperLocalMemory v2.7 Verification"
22
- Write-Host "==================================="
23
- Write-Host ""
24
-
25
- # ── Check 1: Installation directory ──────────────────────────────────────────
26
- if (Test-Path $INSTALL_DIR) {
27
- Write-Host "[PASS] Installation directory exists: $INSTALL_DIR" -ForegroundColor Green
28
- $PASS++
29
- } else {
30
- Write-Host "[FAIL] Installation directory missing. Run install.ps1 first." -ForegroundColor Red
31
- $FAIL++
32
- Write-Host ""
33
- Write-Host "==================================="
34
- Write-Host "Result: FAIL — SuperLocalMemory is not installed."
35
- Write-Host "Run: .\install.ps1"
36
- exit 1
37
- }
38
-
39
- # ── Check 2: Core modules ────────────────────────────────────────────────────
40
- Write-Host ""
41
- Write-Host "Core Modules:"
42
- $coreModules = @("memory_store_v2.py", "graph_engine.py", "pattern_learner.py", "mcp_server.py", "tree_manager.py")
43
- foreach ($mod in $coreModules) {
44
- $modPath = Join-Path $INSTALL_DIR $mod
45
- if (Test-Path $modPath) {
46
- Write-Host " [PASS] $mod" -ForegroundColor Green
47
- $PASS++
48
- } else {
49
- Write-Host " [FAIL] Missing: $mod" -ForegroundColor Red
50
- $FAIL++
51
- }
52
- }
53
-
54
- # ── Check 3: v2.5 modules ────────────────────────────────────────────────────
55
- Write-Host ""
56
- Write-Host "Event System (v2.5):"
57
- $v25Modules = @("event_bus.py", "subscription_manager.py", "webhook_dispatcher.py", "agent_registry.py", "provenance_tracker.py", "trust_scorer.py", "db_connection_manager.py")
58
- foreach ($mod in $v25Modules) {
59
- $modPath = Join-Path $INSTALL_DIR $mod
60
- if (Test-Path $modPath) {
61
- Write-Host " [PASS] $mod" -ForegroundColor Green
62
- $PASS++
63
- } else {
64
- Write-Host " [WARN] Missing: $mod (v2.5 feature)" -ForegroundColor Yellow
65
- $WARN++
66
- }
67
- }
68
-
69
- # ── Check 4: Learning modules (v2.7) ─────────────────────────────────────────
70
- Write-Host ""
71
- Write-Host "Learning System (v2.7):"
72
- $learningDir = Join-Path $INSTALL_DIR "learning"
73
- if (Test-Path $learningDir) {
74
- Write-Host " [PASS] learning/ directory exists" -ForegroundColor Green
75
- $PASS++
76
-
77
- $learningModules = @("__init__.py", "learning_db.py", "adaptive_ranker.py", "feedback_collector.py",
78
- "engagement_tracker.py", "cross_project_aggregator.py", "project_context_manager.py",
79
- "workflow_pattern_miner.py", "source_quality_scorer.py", "synthetic_bootstrap.py",
80
- "feature_extractor.py")
81
- foreach ($mod in $learningModules) {
82
- $modPath = Join-Path $learningDir $mod
83
- if (Test-Path $modPath) {
84
- Write-Host " [PASS] learning/$mod" -ForegroundColor Green
85
- $PASS++
86
- } else {
87
- Write-Host " [WARN] Missing: learning/$mod" -ForegroundColor Yellow
88
- $WARN++
89
- }
90
- }
91
- } else {
92
- Write-Host " [FAIL] learning/ directory missing (v2.7 not fully installed)" -ForegroundColor Red
93
- $FAIL++
94
- }
95
-
96
- # ── Check 5: Learning dependencies ───────────────────────────────────────────
97
- Write-Host ""
98
- Write-Host "Learning Dependencies:"
99
- try {
100
- python -c "import lightgbm; print(f' [PASS] LightGBM {lightgbm.__version__}')" 2>$null
101
- if ($LASTEXITCODE -eq 0) {
102
- $PASS++
103
- } else {
104
- throw
105
- }
106
- } catch {
107
- Write-Host " [INFO] LightGBM not installed (optional — rule-based ranking will be used)" -ForegroundColor Yellow
108
- $WARN++
109
- }
110
-
111
- try {
112
- python -c "import scipy; print(f' [PASS] SciPy {scipy.__version__}')" 2>$null
113
- if ($LASTEXITCODE -eq 0) {
114
- $PASS++
115
- } else {
116
- throw
117
- }
118
- } catch {
119
- Write-Host " [INFO] SciPy not installed (optional — install for full learning features)" -ForegroundColor Yellow
120
- $WARN++
121
- }
122
-
123
- # ── Check 6: Core dependencies ───────────────────────────────────────────────
124
- Write-Host ""
125
- Write-Host "Core Dependencies:"
126
- try {
127
- python -c "import sklearn; print(f' [PASS] scikit-learn {sklearn.__version__}')" 2>$null
128
- if ($LASTEXITCODE -eq 0) {
129
- $PASS++
130
- } else {
131
- throw
132
- }
133
- } catch {
134
- Write-Host " [WARN] scikit-learn not installed (needed for knowledge graph)" -ForegroundColor Yellow
135
- $WARN++
136
- }
137
-
138
- try {
139
- python -c "import numpy; print(f' [PASS] numpy {numpy.__version__}')" 2>$null
140
- if ($LASTEXITCODE -eq 0) {
141
- $PASS++
142
- } else {
143
- throw
144
- }
145
- } catch {
146
- Write-Host " [WARN] numpy not installed" -ForegroundColor Yellow
147
- $WARN++
148
- }
149
-
150
- try {
151
- python -c "import igraph; print(f' [PASS] python-igraph {igraph.__version__}')" 2>$null
152
- if ($LASTEXITCODE -eq 0) {
153
- $PASS++
154
- } else {
155
- throw
156
- }
157
- } catch {
158
- Write-Host " [WARN] python-igraph not installed (needed for graph clustering)" -ForegroundColor Yellow
159
- $WARN++
160
- }
161
-
162
- # ── Check 7: Database ────────────────────────────────────────────────────────
163
- Write-Host ""
164
- Write-Host "Databases:"
165
- $memoryDb = Join-Path $INSTALL_DIR "memory.db"
166
- if (Test-Path $memoryDb) {
167
- try {
168
- $MEMORY_COUNT = sqlite3 $memoryDb "SELECT COUNT(*) FROM memories;" 2>$null
169
- $DB_SIZE = [math]::Round((Get-Item $memoryDb).Length / 1KB, 2)
170
- Write-Host " [PASS] memory.db exists ($MEMORY_COUNT memories, $DB_SIZE KB)" -ForegroundColor Green
171
- $PASS++
172
- } catch {
173
- Write-Host " [INFO] memory.db exists but cannot query (sqlite3 not available)" -ForegroundColor Yellow
174
- }
175
- } else {
176
- Write-Host " [INFO] memory.db not yet created (will auto-create on first use)" -ForegroundColor Yellow
177
- }
178
-
179
- $learningDb = Join-Path $INSTALL_DIR "learning.db"
180
- if (Test-Path $learningDb) {
181
- try {
182
- $FEEDBACK_COUNT = sqlite3 $learningDb "SELECT COUNT(*) FROM ranking_feedback;" 2>$null
183
- Write-Host " [PASS] learning.db exists ($FEEDBACK_COUNT feedback signals)" -ForegroundColor Green
184
- $PASS++
185
- } catch {
186
- Write-Host " [INFO] learning.db exists but cannot query (sqlite3 not available)" -ForegroundColor Yellow
187
- }
188
- } else {
189
- Write-Host " [INFO] learning.db not yet created (will auto-create on first recall)" -ForegroundColor Yellow
190
- }
191
-
192
- # ── Check 8: CLI ──────────────────────────────────────────────────────────────
193
- Write-Host ""
194
- Write-Host "CLI:"
195
- $slmCommand = Get-Command slm -ErrorAction SilentlyContinue
196
- if ($slmCommand) {
197
- Write-Host " [PASS] slm command available in PATH" -ForegroundColor Green
198
- $PASS++
199
- } else {
200
- $slmBin = Join-Path $INSTALL_DIR "bin\slm"
201
- if (Test-Path $slmBin) {
202
- Write-Host " [WARN] slm exists at $slmBin but not in PATH" -ForegroundColor Yellow
203
- Write-Host " Add to PATH: `$env:PATH = `"`$env:USERPROFILE\.superlocalmemory\bin;`$env:PATH`""
204
- $WARN++
205
- } else {
206
- Write-Host " [FAIL] slm command not found" -ForegroundColor Red
207
- $FAIL++
208
- }
209
- }
210
-
211
- # ── Check 9: MCP server ──────────────────────────────────────────────────────
212
- Write-Host ""
213
- Write-Host "MCP Server:"
214
- $mcpServer = Join-Path $INSTALL_DIR "mcp_server.py"
215
- if (Test-Path $mcpServer) {
216
- Write-Host " [PASS] mcp_server.py installed" -ForegroundColor Green
217
- $PASS++
218
- } else {
219
- Write-Host " [FAIL] mcp_server.py missing" -ForegroundColor Red
220
- $FAIL++
221
- }
222
-
223
- try {
224
- python -c "from mcp.server.fastmcp import FastMCP" 2>$null
225
- if ($LASTEXITCODE -eq 0) {
226
- Write-Host " [PASS] MCP SDK installed" -ForegroundColor Green
227
- $PASS++
228
- } else {
229
- throw
230
- }
231
- } catch {
232
- Write-Host " [WARN] MCP SDK not installed (install: pip install mcp)" -ForegroundColor Yellow
233
- $WARN++
234
- }
235
-
236
- # ── Check 10: Import chain verification ───────────────────────────────────────
237
- Write-Host ""
238
- Write-Host "Import Chain:"
239
- $importTest = @"
240
- import sys
241
- sys.path.insert(0, '$($INSTALL_DIR -replace '\\', '\\')')
242
- try:
243
- from learning import get_learning_db, get_status, FULL_LEARNING_AVAILABLE, ML_RANKING_AVAILABLE
244
- status = get_status()
245
- ml = 'yes' if status['ml_ranking_available'] else 'no'
246
- full = 'yes' if status['learning_available'] else 'no'
247
- print(f'OK ml_ranking={ml} full_learning={full}')
248
- except ImportError as e:
249
- print(f'IMPORT_ERROR {e}')
250
- except Exception as e:
251
- print(f'ERROR {e}')
252
- "@
253
-
254
- $IMPORT_RESULT = python -c $importTest 2>&1
255
-
256
- if ($IMPORT_RESULT -like "OK*") {
257
- Write-Host " [PASS] Learning system imports successfully" -ForegroundColor Green
258
- Write-Host " $IMPORT_RESULT"
259
- $PASS++
260
- } elseif ($IMPORT_RESULT -like "IMPORT_ERROR*") {
261
- Write-Host " [WARN] Learning import failed: $($IMPORT_RESULT -replace 'IMPORT_ERROR ', '')" -ForegroundColor Yellow
262
- Write-Host " This may be normal if learning modules are not yet installed."
263
- $WARN++
264
- } else {
265
- Write-Host " [WARN] Learning check: $IMPORT_RESULT" -ForegroundColor Yellow
266
- $WARN++
267
- }
268
-
269
- # ── Summary ───────────────────────────────────────────────────────────────────
270
- Write-Host ""
271
- Write-Host "==================================="
272
- Write-Host "Verification Summary"
273
- Write-Host " Passed: $PASS"
274
- Write-Host " Warnings: $WARN"
275
- Write-Host " Failed: $FAIL"
276
- Write-Host "==================================="
277
- Write-Host ""
278
-
279
- if ($FAIL -eq 0) {
280
- Write-Host "Status: READY" -ForegroundColor Green
281
- Write-Host ""
282
- Write-Host "Quick start:"
283
- Write-Host " slm remember `"My first memory`""
284
- Write-Host " slm recall `"first`""
285
- Write-Host " slm status"
286
- Write-Host ""
287
- if ($WARN -gt 0) {
288
- Write-Host "Some optional features may not be available."
289
- Write-Host "Install missing dependencies to enable them:"
290
- Write-Host " pip install lightgbm scipy # Learning system"
291
- Write-Host " pip install scikit-learn igraph # Knowledge graph"
292
- Write-Host ""
293
- }
294
- } else {
295
- Write-Host "Status: INCOMPLETE" -ForegroundColor Red
296
- Write-Host ""
297
- Write-Host "Fix the failed checks above, then re-run:"
298
- Write-Host " .\scripts\verify-v27.ps1"
299
- Write-Host ""
300
- exit 1
301
- }