superlocalmemory 3.6.23 → 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 (301) hide show
  1. package/CHANGELOG.md +52 -0
  2. package/README.md +271 -71
  3. package/bin/slm-npm +43 -89
  4. package/ide/configs/antigravity-mcp.json +2 -2
  5. package/ide/configs/chatgpt-desktop-mcp.json +1 -1
  6. package/ide/configs/claude-desktop-mcp.json +2 -2
  7. package/ide/configs/windsurf-mcp.json +2 -2
  8. package/ide/hooks/context-hook.js +6 -2
  9. package/ide/hooks/post-recall-hook.js +7 -3
  10. package/ide/hooks/tool-event-hook.sh +2 -1
  11. package/package.json +18 -10
  12. package/plugin/.claude-plugin/plugin.json +1 -1
  13. package/plugin/_GENERATED.md +1 -1
  14. package/plugin/agents/slm-memory-advisor.md +1 -1
  15. package/plugin/requirements.txt +1 -1
  16. package/plugin/skills/slm-session/SKILL.md +1 -1
  17. package/plugin-src/rules/AGENTS.md +1 -1
  18. package/pyproject.toml +40 -8
  19. package/scripts/postinstall-interactive.js +17 -94
  20. package/scripts/postinstall.js +185 -258
  21. package/scripts/preuninstall.js +9 -50
  22. package/src/superlocalmemory/__init__.py +2 -2
  23. package/src/superlocalmemory/attribution/mathematical_dna.py +1 -1
  24. package/src/superlocalmemory/attribution/signer.py +34 -19
  25. package/src/superlocalmemory/attribution/watermark.py +1 -1
  26. package/src/superlocalmemory/cli/_lazy_init.py +3 -5
  27. package/src/superlocalmemory/cli/commands.py +453 -191
  28. package/src/superlocalmemory/cli/context_commands.py +5 -4
  29. package/src/superlocalmemory/cli/daemon.py +282 -187
  30. package/src/superlocalmemory/cli/db_migrate.py +3 -1
  31. package/src/superlocalmemory/cli/diagnostics_cmd.py +28 -0
  32. package/src/superlocalmemory/cli/evidence_cmd.py +103 -0
  33. package/src/superlocalmemory/cli/ingest_cmd.py +7 -3
  34. package/src/superlocalmemory/cli/main.py +128 -31
  35. package/src/superlocalmemory/cli/pending_store.py +54 -38
  36. package/src/superlocalmemory/cli/scale_engine_cmd.py +37 -0
  37. package/src/superlocalmemory/cli/service_installer.py +57 -52
  38. package/src/superlocalmemory/cli/setup_wizard.py +142 -88
  39. package/src/superlocalmemory/cli/version_banner.py +2 -1
  40. package/src/superlocalmemory/code_graph/config.py +3 -1
  41. package/src/superlocalmemory/core/backend_orchestrator.py +81 -21
  42. package/src/superlocalmemory/core/config.py +65 -20
  43. package/src/superlocalmemory/core/consolidation_engine.py +9 -7
  44. package/src/superlocalmemory/core/context_cache.py +56 -8
  45. package/src/superlocalmemory/core/derivation_lineage.py +246 -0
  46. package/src/superlocalmemory/core/embedding_worker.py +32 -20
  47. package/src/superlocalmemory/core/embeddings.py +54 -18
  48. package/src/superlocalmemory/core/engine.py +150 -104
  49. package/src/superlocalmemory/core/engine_ingestion.py +513 -0
  50. package/src/superlocalmemory/core/engine_wiring.py +2 -0
  51. package/src/superlocalmemory/core/evidence_bundle.py +526 -0
  52. package/src/superlocalmemory/core/fact_consolidator.py +5 -11
  53. package/src/superlocalmemory/core/graph_analyzer.py +2 -2
  54. package/src/superlocalmemory/core/health_monitor.py +4 -2
  55. package/src/superlocalmemory/core/ingestion_command.py +636 -0
  56. package/src/superlocalmemory/core/injection.py +69 -18
  57. package/src/superlocalmemory/core/lifecycle_state.py +153 -0
  58. package/src/superlocalmemory/core/maintenance.py +1 -1
  59. package/src/superlocalmemory/core/maintenance_scheduler.py +51 -35
  60. package/src/superlocalmemory/core/mutations.py +143 -0
  61. package/src/superlocalmemory/core/platform_utils.py +7 -4
  62. package/src/superlocalmemory/core/ram_lock.py +16 -5
  63. package/src/superlocalmemory/core/rate_limit.py +1 -1
  64. package/src/superlocalmemory/core/recall_pipeline.py +60 -101
  65. package/src/superlocalmemory/core/recall_worker.py +76 -59
  66. package/src/superlocalmemory/core/registry.py +1 -1
  67. package/src/superlocalmemory/core/scale_engine.py +293 -0
  68. package/src/superlocalmemory/core/score_contract.py +62 -0
  69. package/src/superlocalmemory/core/security_primitives.py +3 -1
  70. package/src/superlocalmemory/core/slm_disabled.py +3 -5
  71. package/src/superlocalmemory/core/store_pipeline.py +172 -40
  72. package/src/superlocalmemory/core/tier_manager.py +32 -20
  73. package/src/superlocalmemory/core/worker_pool.py +13 -4
  74. package/src/superlocalmemory/dynamics/activation_guided_quantization.py +1 -1
  75. package/src/superlocalmemory/dynamics/eap_scheduler.py +10 -3
  76. package/src/superlocalmemory/dynamics/ebbinghaus_langevin_coupling.py +1 -1
  77. package/src/superlocalmemory/dynamics/fisher_langevin_coupling.py +1 -1
  78. package/src/superlocalmemory/encoding/auto_linker.py +1 -1
  79. package/src/superlocalmemory/encoding/cognitive_consolidator.py +7 -16
  80. package/src/superlocalmemory/encoding/consolidator.py +22 -5
  81. package/src/superlocalmemory/encoding/fact_extractor.py +1 -1
  82. package/src/superlocalmemory/encoding/foresight.py +2 -0
  83. package/src/superlocalmemory/encoding/graph_builder.py +1 -1
  84. package/src/superlocalmemory/encoding/temporal_parser.py +2 -0
  85. package/src/superlocalmemory/evaluation/__init__.py +13 -0
  86. package/src/superlocalmemory/evaluation/calibration.py +308 -0
  87. package/src/superlocalmemory/evolution/skill_evolver.py +2 -1
  88. package/src/superlocalmemory/graph/cozo_backend.py +256 -23
  89. package/src/superlocalmemory/hooks/_outcome_common.py +21 -11
  90. package/src/superlocalmemory/hooks/antigravity_adapter.py +10 -31
  91. package/src/superlocalmemory/hooks/auto_invoker.py +25 -27
  92. package/src/superlocalmemory/hooks/auto_recall.py +31 -6
  93. package/src/superlocalmemory/hooks/auto_recall_hook.py +13 -33
  94. package/src/superlocalmemory/hooks/before_web_hook.py +9 -7
  95. package/src/superlocalmemory/hooks/claude_code_hooks.py +123 -35
  96. package/src/superlocalmemory/hooks/codex_assets.py +59 -0
  97. package/src/superlocalmemory/hooks/codex_hooks.py +186 -0
  98. package/src/superlocalmemory/hooks/context_payload.py +1 -1
  99. package/src/superlocalmemory/hooks/copilot_adapter.py +9 -24
  100. package/src/superlocalmemory/hooks/cursor_adapter.py +10 -32
  101. package/src/superlocalmemory/hooks/hook_daemon.py +4 -2
  102. package/src/superlocalmemory/hooks/hook_handlers.py +219 -32
  103. package/src/superlocalmemory/hooks/memory_protocol.py +5 -3
  104. package/src/superlocalmemory/hooks/post_tool_async_hook.py +4 -2
  105. package/src/superlocalmemory/hooks/session_registry.py +15 -8
  106. package/src/superlocalmemory/hooks/stop_outcome_hook.py +10 -6
  107. package/src/superlocalmemory/hooks/topic_shift_hook.py +42 -12
  108. package/src/superlocalmemory/hooks/user_prompt_hook.py +9 -14
  109. package/src/superlocalmemory/hooks/user_prompt_rehash_hook.py +19 -11
  110. package/src/superlocalmemory/infra/auth_middleware.py +38 -5
  111. package/src/superlocalmemory/infra/backup.py +7 -5
  112. package/src/superlocalmemory/infra/cloud_backup.py +18 -8
  113. package/src/superlocalmemory/infra/daemon_identity.py +248 -0
  114. package/src/superlocalmemory/infra/data_root.py +199 -0
  115. package/src/superlocalmemory/infra/event_bus.py +3 -1
  116. package/src/superlocalmemory/infra/local_diagnostics.py +327 -0
  117. package/src/superlocalmemory/infra/process_reaper.py +23 -0
  118. package/src/superlocalmemory/ingestion/adapter_manager.py +27 -9
  119. package/src/superlocalmemory/ingestion/base_adapter.py +25 -31
  120. package/src/superlocalmemory/ingestion/calendar_adapter.py +13 -4
  121. package/src/superlocalmemory/ingestion/credentials.py +14 -7
  122. package/src/superlocalmemory/ingestion/gmail_adapter.py +13 -4
  123. package/src/superlocalmemory/ingestion/transcript_adapter.py +7 -2
  124. package/src/superlocalmemory/learning/consolidation_quantization_worker.py +1 -1
  125. package/src/superlocalmemory/learning/ensemble.py +11 -0
  126. package/src/superlocalmemory/learning/entity_compiler.py +1 -1
  127. package/src/superlocalmemory/learning/feedback.py +1 -1
  128. package/src/superlocalmemory/learning/forgetting_scheduler.py +12 -7
  129. package/src/superlocalmemory/learning/quantization_scheduler.py +1 -1
  130. package/src/superlocalmemory/learning/ranker.py +4 -1
  131. package/src/superlocalmemory/learning/source_quality.py +1 -1
  132. package/src/superlocalmemory/learning/trigram_index.py +3 -2
  133. package/src/superlocalmemory/llm/backbone.py +1 -1
  134. package/src/superlocalmemory/math/ebbinghaus.py +1 -1
  135. package/src/superlocalmemory/math/fisher.py +1 -1
  136. package/src/superlocalmemory/math/fisher_quantized.py +1 -1
  137. package/src/superlocalmemory/math/hopfield.py +1 -1
  138. package/src/superlocalmemory/math/langevin.py +1 -1
  139. package/src/superlocalmemory/math/polar_quant.py +3 -4
  140. package/src/superlocalmemory/math/qjl.py +1 -1
  141. package/src/superlocalmemory/math/sheaf.py +1 -1
  142. package/src/superlocalmemory/math/turbo_quant.py +3 -2
  143. package/src/superlocalmemory/mcp/_daemon_proxy.py +12 -11
  144. package/src/superlocalmemory/mcp/_pool_adapter.py +27 -0
  145. package/src/superlocalmemory/mcp/http_transport.py +53 -0
  146. package/src/superlocalmemory/mcp/server.py +39 -13
  147. package/src/superlocalmemory/mcp/shared.py +69 -3
  148. package/src/superlocalmemory/mcp/tools_active.py +141 -31
  149. package/src/superlocalmemory/mcp/tools_core.py +128 -29
  150. package/src/superlocalmemory/mcp/tools_evolution.py +5 -7
  151. package/src/superlocalmemory/mcp/tools_learning.py +42 -2
  152. package/src/superlocalmemory/mcp/tools_mesh.py +7 -23
  153. package/src/superlocalmemory/mcp/tools_optimize.py +8 -1
  154. package/src/superlocalmemory/mcp/tools_v28.py +23 -2
  155. package/src/superlocalmemory/mcp/tools_v3.py +26 -1
  156. package/src/superlocalmemory/mcp/tools_v33.py +56 -17
  157. package/src/superlocalmemory/mesh/broker.py +2 -0
  158. package/src/superlocalmemory/mesh/remote_sync.py +50 -12
  159. package/src/superlocalmemory/optimize/cache/manager.py +77 -1
  160. package/src/superlocalmemory/optimize/cache/semantic.py +23 -3
  161. package/src/superlocalmemory/optimize/compress/ccr.py +4 -0
  162. package/src/superlocalmemory/optimize/compress/router.py +6 -1
  163. package/src/superlocalmemory/optimize/config/__init__.py +5 -0
  164. package/src/superlocalmemory/optimize/config/store.py +6 -4
  165. package/src/superlocalmemory/optimize/proxy/_helpers.py +15 -5
  166. package/src/superlocalmemory/optimize/proxy/capture.py +3 -2
  167. package/src/superlocalmemory/optimize/proxy/server.py +2 -2
  168. package/src/superlocalmemory/optimize/storage/db.py +12 -12
  169. package/src/superlocalmemory/retrieval/agentic.py +1 -1
  170. package/src/superlocalmemory/retrieval/ann_index.py +1 -1
  171. package/src/superlocalmemory/retrieval/bm25_channel.py +35 -11
  172. package/src/superlocalmemory/retrieval/bridge_discovery.py +73 -8
  173. package/src/superlocalmemory/retrieval/engine.py +169 -79
  174. package/src/superlocalmemory/retrieval/entity_channel.py +289 -67
  175. package/src/superlocalmemory/retrieval/forgetting_filter.py +1 -1
  176. package/src/superlocalmemory/retrieval/fusion.py +1 -1
  177. package/src/superlocalmemory/retrieval/hopfield_channel.py +118 -30
  178. package/src/superlocalmemory/retrieval/profile_channel.py +1 -1
  179. package/src/superlocalmemory/retrieval/quantization_aware_search.py +16 -10
  180. package/src/superlocalmemory/retrieval/reranker.py +56 -20
  181. package/src/superlocalmemory/retrieval/scope_policy.py +85 -0
  182. package/src/superlocalmemory/retrieval/semantic_channel.py +122 -14
  183. package/src/superlocalmemory/retrieval/spreading_activation.py +141 -25
  184. package/src/superlocalmemory/retrieval/strategy.py +1 -1
  185. package/src/superlocalmemory/retrieval/temporal_channel.py +30 -15
  186. package/src/superlocalmemory/retrieval/vector_store.py +1 -1
  187. package/src/superlocalmemory/server/api.py +10 -7
  188. package/src/superlocalmemory/server/bandit_loops.py +4 -2
  189. package/src/superlocalmemory/server/recall_serializer.py +24 -0
  190. package/src/superlocalmemory/server/route_mutations.py +84 -0
  191. package/src/superlocalmemory/server/routes/agents.py +8 -6
  192. package/src/superlocalmemory/server/routes/brain.py +14 -12
  193. package/src/superlocalmemory/server/routes/chat.py +29 -12
  194. package/src/superlocalmemory/server/routes/data_io.py +55 -24
  195. package/src/superlocalmemory/server/routes/helpers.py +8 -63
  196. package/src/superlocalmemory/server/routes/ingest.py +53 -36
  197. package/src/superlocalmemory/server/routes/memories.py +104 -43
  198. package/src/superlocalmemory/server/routes/mesh.py +31 -0
  199. package/src/superlocalmemory/server/routes/profiles.py +26 -4
  200. package/src/superlocalmemory/server/routes/tiers.py +43 -11
  201. package/src/superlocalmemory/server/routes/timeline.py +5 -1
  202. package/src/superlocalmemory/server/routes/v3_api.py +76 -21
  203. package/src/superlocalmemory/server/security_middleware.py +1 -1
  204. package/src/superlocalmemory/server/unified_daemon.py +680 -293
  205. package/src/superlocalmemory/server/write_identity.py +147 -0
  206. package/src/superlocalmemory/storage/access_log.py +4 -3
  207. package/src/superlocalmemory/storage/database.py +118 -25
  208. package/src/superlocalmemory/storage/migration_runner.py +84 -1
  209. package/src/superlocalmemory/storage/migration_v33.py +1 -1
  210. package/src/superlocalmemory/storage/migrations/M002_model_state_history.py +6 -60
  211. package/src/superlocalmemory/storage/migrations/M018_ingestion_operations.py +120 -0
  212. package/src/superlocalmemory/storage/migrations/M019_derivation_lineage.py +54 -0
  213. package/src/superlocalmemory/storage/migrations/M020_model_state_integrity.py +52 -0
  214. package/src/superlocalmemory/storage/migrations/__init__.py +5 -0
  215. package/src/superlocalmemory/storage/models.py +16 -0
  216. package/src/superlocalmemory/storage/quantized_store.py +20 -3
  217. package/src/superlocalmemory/storage/v2_migrator.py +5 -3
  218. package/src/superlocalmemory/ui/favicon.svg +5 -0
  219. package/src/superlocalmemory/ui/index.html +1 -0
  220. package/src/superlocalmemory/ui/js/compliance.js +1 -1
  221. package/src/superlocalmemory/ui/js/core.js +49 -8
  222. package/src/superlocalmemory/ui/js/dashboard.js +23 -2
  223. package/src/superlocalmemory/ui/js/feedback.js +1 -1
  224. package/src/superlocalmemory/ui/js/graph-filters.js +1 -1
  225. package/src/superlocalmemory/ui/js/graph-ui.js +1 -1
  226. package/src/superlocalmemory/ui/js/lifecycle.js +1 -1
  227. package/src/superlocalmemory/ui/js/ng-mesh.js +15 -49
  228. package/src/superlocalmemory/ui/js/settings.js +4 -2
  229. package/src/superlocalmemory/vector/lancedb_backend.py +57 -9
  230. package/bin/slm +0 -59
  231. package/bin/slm.bat +0 -77
  232. package/bin/slm.cmd +0 -5
  233. package/ide/integrations/langchain/README.md +0 -106
  234. package/ide/integrations/langchain/langchain_superlocalmemory/__init__.py +0 -9
  235. package/ide/integrations/langchain/langchain_superlocalmemory/chat_message_history.py +0 -201
  236. package/ide/integrations/langchain/pyproject.toml +0 -38
  237. package/ide/integrations/langchain/tests/__init__.py +0 -3
  238. package/ide/integrations/langchain/tests/test_chat_message_history.py +0 -215
  239. package/ide/integrations/langchain/tests/test_security.py +0 -117
  240. package/ide/integrations/llamaindex/README.md +0 -81
  241. package/ide/integrations/llamaindex/llama_index/storage/chat_store/superlocalmemory/__init__.py +0 -9
  242. package/ide/integrations/llamaindex/llama_index/storage/chat_store/superlocalmemory/base.py +0 -316
  243. package/ide/integrations/llamaindex/pyproject.toml +0 -43
  244. package/ide/integrations/llamaindex/tests/__init__.py +0 -3
  245. package/ide/integrations/llamaindex/tests/test_chat_store.py +0 -294
  246. package/ide/integrations/llamaindex/tests/test_security.py +0 -241
  247. package/plugin-src/.mcp.json +0 -12
  248. package/plugin-src/agents/slm-memory-advisor.md +0 -44
  249. package/plugin-src/agents/slm-optimize-advisor.md +0 -38
  250. package/plugin-src/hooks/.gitkeep +0 -0
  251. package/plugin-src/hooks/hooks.json +0 -23
  252. package/plugin-src/manifest.json +0 -25
  253. package/plugin-src/requirements.txt +0 -1
  254. package/plugin-src/rules/CLAUDE.md.fragment +0 -44
  255. package/plugin-src/scripts/ensure-venv.bat +0 -122
  256. package/plugin-src/scripts/ensure-venv.sh +0 -105
  257. package/plugin-src/scripts/slm-launch +0 -15
  258. package/plugin-src/scripts/slm-launch.bat +0 -17
  259. package/plugin-src/settings.json +0 -16
  260. package/plugin-src/skills/slm-cache/SKILL.md +0 -140
  261. package/plugin-src/skills/slm-compress/SKILL.md +0 -143
  262. package/plugin-src/skills/slm-graph/SKILL.md +0 -300
  263. package/plugin-src/skills/slm-recall/SKILL.md +0 -204
  264. package/plugin-src/skills/slm-remember/SKILL.md +0 -194
  265. package/plugin-src/skills/slm-session/SKILL.md +0 -207
  266. package/plugin-src/skills/slm-status/SKILL.md +0 -149
  267. package/scripts/__tests__/build-plugin.test.mjs +0 -613
  268. package/scripts/_savings_math.py +0 -270
  269. package/scripts/build-dmg.sh +0 -417
  270. package/scripts/build-plugin.js +0 -742
  271. package/scripts/build-slm-hook.ps1 +0 -40
  272. package/scripts/build-slm-hook.sh +0 -45
  273. package/scripts/build_entry.py +0 -452
  274. package/scripts/ci/stage5b_gate.sh +0 -50
  275. package/scripts/dogfood_savings.py +0 -490
  276. package/scripts/generate-thumbnails.py +0 -218
  277. package/scripts/install-skills.ps1 +0 -4
  278. package/scripts/install-skills.sh +0 -5
  279. package/scripts/install.ps1 +0 -701
  280. package/scripts/install.sh +0 -1015
  281. package/scripts/postinstall_binary.js +0 -287
  282. package/scripts/prepack.js +0 -33
  283. package/scripts/release_manifest.py +0 -273
  284. package/scripts/slm-hook.spec +0 -56
  285. package/scripts/start-dashboard.ps1 +0 -52
  286. package/scripts/start-dashboard.sh +0 -41
  287. package/scripts/sync-wiki.ps1 +0 -127
  288. package/scripts/sync-wiki.sh +0 -82
  289. package/scripts/test-dmg.sh +0 -161
  290. package/scripts/test-npm-package.ps1 +0 -252
  291. package/scripts/test-npm-package.sh +0 -207
  292. package/scripts/verify-install.ps1 +0 -294
  293. package/scripts/verify-install.sh +0 -266
  294. package/scripts/verify-v27.ps1 +0 -301
  295. package/scripts/verify-v27.sh +0 -233
  296. package/src/superlocalmemory.egg-info/PKG-INFO +0 -516
  297. package/src/superlocalmemory.egg-info/SOURCES.txt +0 -529
  298. package/src/superlocalmemory.egg-info/dependency_links.txt +0 -1
  299. package/src/superlocalmemory.egg-info/entry_points.txt +0 -2
  300. package/src/superlocalmemory.egg-info/requires.txt +0 -71
  301. 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
- }