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,207 +0,0 @@
1
- #!/bin/bash
2
- # ============================================================================
3
- # SuperLocalMemory V2 - NPM Package Testing Script
4
- # Copyright (c) 2026 Varun Pratap Bhardwaj
5
- # Licensed under MIT License
6
- # Repository: https://github.com/qualixar/superlocalmemory
7
- # ============================================================================
8
- #
9
- # Tests the NPM package locally before publishing
10
- # Run this BEFORE npm publish
11
- #
12
-
13
- set -e
14
-
15
- REPO_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
16
-
17
- echo "╔══════════════════════════════════════════════════════════════╗"
18
- echo "║ SuperLocalMemory V2 - NPM Package Test ║"
19
- echo "║ by Varun Pratap Bhardwaj ║"
20
- echo "╚══════════════════════════════════════════════════════════════╝"
21
- echo ""
22
-
23
- # Step 1: Validate package.json
24
- echo "📋 Step 1: Validating package.json..."
25
- if [ ! -f "$REPO_DIR/package.json" ]; then
26
- echo "❌ Error: package.json not found"
27
- exit 1
28
- fi
29
-
30
- # Check version
31
- VERSION=$(node -e "console.log(require('$REPO_DIR/package.json').version)")
32
- echo " Version: $VERSION"
33
-
34
- # Check required fields
35
- node -e "
36
- const pkg = require('$REPO_DIR/package.json');
37
- const required = ['name', 'version', 'description', 'author', 'license', 'repository', 'bin'];
38
- const missing = required.filter(f => !pkg[f]);
39
- if (missing.length > 0) {
40
- console.error('❌ Missing required fields:', missing.join(', '));
41
- process.exit(1);
42
- }
43
- console.log(' ✓ All required fields present');
44
- "
45
-
46
- # Step 2: Check file structure
47
- echo ""
48
- echo "📁 Step 2: Checking file structure..."
49
-
50
- REQUIRED_FILES=(
51
- "bin/slm-npm"
52
- "scripts/postinstall.js"
53
- "scripts/preuninstall.js"
54
- "src/memory_store_v2.py"
55
- "mcp_server.py"
56
- "install.sh"
57
- "install.ps1"
58
- "README.md"
59
- "LICENSE"
60
- "ATTRIBUTION.md"
61
- )
62
-
63
- for file in "${REQUIRED_FILES[@]}"; do
64
- if [ ! -f "$REPO_DIR/$file" ]; then
65
- echo " ❌ Missing: $file"
66
- exit 1
67
- fi
68
- done
69
- echo " ✓ All required files present"
70
-
71
- # Step 3: Test npm pack
72
- echo ""
73
- echo "📦 Step 3: Testing npm pack..."
74
- cd "$REPO_DIR"
75
- rm -f superlocalmemory-*.tgz
76
- npm pack --quiet
77
- TARBALL=$(ls superlocalmemory-*.tgz 2>/dev/null | head -1)
78
-
79
- if [ -z "$TARBALL" ]; then
80
- echo " ❌ npm pack failed"
81
- exit 1
82
- fi
83
-
84
- SIZE=$(du -h "$TARBALL" | cut -f1)
85
- echo " ✓ Package created: $TARBALL ($SIZE)"
86
-
87
- # Check package size
88
- SIZE_KB=$(du -k "$TARBALL" | cut -f1)
89
- if [ "$SIZE_KB" -gt 1024 ]; then
90
- echo " ⚠️ Warning: Package size is large (${SIZE}). Target: <500KB"
91
- else
92
- echo " ✓ Package size OK: $SIZE"
93
- fi
94
-
95
- # Step 4: Inspect package contents
96
- echo ""
97
- echo "🔍 Step 4: Inspecting package contents..."
98
- echo " Files included:"
99
- tar -tzf "$TARBALL" | head -20
100
- FILE_COUNT=$(tar -tzf "$TARBALL" | wc -l)
101
- echo " ... ($FILE_COUNT total files)"
102
-
103
- # Check for unwanted files
104
- UNWANTED=("*.pyc" "*.db" ".git" "test_*.py" "wiki-content")
105
- for pattern in "${UNWANTED[@]}"; do
106
- if tar -tzf "$TARBALL" | grep -q "$pattern"; then
107
- echo " ⚠️ Warning: Found unwanted files matching: $pattern"
108
- fi
109
- done
110
- echo " ✓ No obvious unwanted files found"
111
-
112
- # Step 5: Test npm link (local install)
113
- echo ""
114
- echo "🔗 Step 5: Testing npm link (local install)..."
115
-
116
- # Unlink if already linked
117
- npm unlink -g superlocalmemory 2>/dev/null || true
118
-
119
- # Link
120
- if npm link --quiet; then
121
- echo " ✓ npm link successful"
122
- else
123
- echo " ❌ npm link failed"
124
- exit 1
125
- fi
126
-
127
- # Step 6: Test CLI command
128
- echo ""
129
- echo "🧪 Step 6: Testing CLI command..."
130
-
131
- if command -v slm &> /dev/null; then
132
- echo " ✓ slm command found"
133
-
134
- # Test version
135
- if slm --version &> /dev/null; then
136
- echo " ✓ slm --version works"
137
- else
138
- echo " ⚠️ slm --version failed (might be OK if not installed yet)"
139
- fi
140
-
141
- # Test help
142
- if slm --help &> /dev/null; then
143
- echo " ✓ slm --help works"
144
- else
145
- echo " ⚠️ slm --help failed"
146
- fi
147
- else
148
- echo " ⚠️ slm command not found (expected for first install)"
149
- echo " This is OK - postinstall will set it up"
150
- fi
151
-
152
- # Step 7: Validate scripts
153
- echo ""
154
- echo "🔧 Step 7: Validating scripts..."
155
-
156
- # Check postinstall.js
157
- if node "$REPO_DIR/scripts/postinstall.js" --help &> /dev/null; then
158
- echo " ✓ postinstall.js is valid Node.js"
159
- else
160
- echo " ⚠️ postinstall.js might have issues"
161
- fi
162
-
163
- # Check executables
164
- if [ -x "$REPO_DIR/bin/slm-npm" ]; then
165
- echo " ✓ bin/slm-npm is executable"
166
- else
167
- echo " ❌ bin/slm-npm is not executable"
168
- echo " Run: chmod +x $REPO_DIR/bin/slm-npm"
169
- exit 1
170
- fi
171
-
172
- # Step 8: Final summary
173
- echo ""
174
- echo "╔══════════════════════════════════════════════════════════════╗"
175
- echo "║ Test Summary ║"
176
- echo "╚══════════════════════════════════════════════════════════════╝"
177
- echo ""
178
- echo "✅ Package structure: OK"
179
- echo "✅ File validation: OK"
180
- echo "✅ npm pack: OK ($SIZE)"
181
- echo "✅ npm link: OK"
182
- echo "✅ Scripts valid: OK"
183
- echo ""
184
- echo "📦 Package ready for testing!"
185
- echo ""
186
- echo "Next steps:"
187
- echo "1. Test manual install:"
188
- echo " npm install -g ./$TARBALL"
189
- echo " slm status"
190
- echo " npm uninstall -g superlocalmemory"
191
- echo ""
192
- echo "2. Test on Docker (recommended):"
193
- echo " docker run -it --rm -v \$(pwd):/app node:18 bash"
194
- echo " cd /app"
195
- echo " npm install -g ./$TARBALL"
196
- echo " slm status"
197
- echo ""
198
- echo "3. When ready to publish:"
199
- echo " npm login"
200
- echo " npm publish"
201
- echo ""
202
- echo "Full guide: NPM-PUBLISHING-GUIDE.md"
203
- echo ""
204
-
205
- # Cleanup
206
- rm -f "$TARBALL"
207
- echo "🧹 Cleaned up test tarball"
@@ -1,294 +0,0 @@
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 ".superlocalmemory"
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
- }