superlocalmemory 2.8.6 → 3.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (431) hide show
  1. package/LICENSE +9 -1
  2. package/NOTICE +63 -0
  3. package/README.md +165 -480
  4. package/bin/slm +17 -449
  5. package/bin/slm-npm +1 -1
  6. package/conftest.py +5 -0
  7. package/docs/api-reference.md +284 -0
  8. package/docs/architecture.md +149 -0
  9. package/docs/auto-memory.md +150 -0
  10. package/docs/cli-reference.md +276 -0
  11. package/docs/compliance.md +191 -0
  12. package/docs/configuration.md +182 -0
  13. package/docs/getting-started.md +102 -0
  14. package/docs/ide-setup.md +261 -0
  15. package/docs/mcp-tools.md +220 -0
  16. package/docs/migration-from-v2.md +170 -0
  17. package/docs/profiles.md +173 -0
  18. package/docs/troubleshooting.md +310 -0
  19. package/{configs → ide/configs}/antigravity-mcp.json +3 -3
  20. package/ide/configs/chatgpt-desktop-mcp.json +16 -0
  21. package/{configs → ide/configs}/claude-desktop-mcp.json +3 -3
  22. package/{configs → ide/configs}/codex-mcp.toml +4 -4
  23. package/{configs → ide/configs}/continue-mcp.yaml +4 -3
  24. package/{configs → ide/configs}/continue-skills.yaml +6 -6
  25. package/ide/configs/cursor-mcp.json +15 -0
  26. package/{configs → ide/configs}/gemini-cli-mcp.json +2 -2
  27. package/{configs → ide/configs}/jetbrains-mcp.json +2 -2
  28. package/{configs → ide/configs}/opencode-mcp.json +2 -2
  29. package/{configs → ide/configs}/perplexity-mcp.json +2 -2
  30. package/{configs → ide/configs}/vscode-copilot-mcp.json +2 -2
  31. package/{configs → ide/configs}/windsurf-mcp.json +3 -3
  32. package/{configs → ide/configs}/zed-mcp.json +2 -2
  33. package/{hooks → ide/hooks}/context-hook.js +9 -20
  34. package/ide/hooks/memory-list-skill.js +70 -0
  35. package/ide/hooks/memory-profile-skill.js +101 -0
  36. package/ide/hooks/memory-recall-skill.js +62 -0
  37. package/ide/hooks/memory-remember-skill.js +68 -0
  38. package/ide/hooks/memory-reset-skill.js +160 -0
  39. package/{hooks → ide/hooks}/post-recall-hook.js +2 -2
  40. package/ide/integrations/langchain/README.md +106 -0
  41. package/ide/integrations/langchain/langchain_superlocalmemory/__init__.py +9 -0
  42. package/ide/integrations/langchain/langchain_superlocalmemory/chat_message_history.py +201 -0
  43. package/ide/integrations/langchain/pyproject.toml +38 -0
  44. package/{src/learning → ide/integrations/langchain}/tests/__init__.py +1 -0
  45. package/ide/integrations/langchain/tests/test_chat_message_history.py +215 -0
  46. package/ide/integrations/langchain/tests/test_security.py +117 -0
  47. package/ide/integrations/llamaindex/README.md +81 -0
  48. package/ide/integrations/llamaindex/llama_index/storage/chat_store/superlocalmemory/__init__.py +9 -0
  49. package/ide/integrations/llamaindex/llama_index/storage/chat_store/superlocalmemory/base.py +316 -0
  50. package/ide/integrations/llamaindex/pyproject.toml +43 -0
  51. package/{src/lifecycle → ide/integrations/llamaindex}/tests/__init__.py +1 -2
  52. package/ide/integrations/llamaindex/tests/test_chat_store.py +294 -0
  53. package/ide/integrations/llamaindex/tests/test_security.py +241 -0
  54. package/{skills → ide/skills}/slm-build-graph/SKILL.md +6 -6
  55. package/{skills → ide/skills}/slm-list-recent/SKILL.md +5 -5
  56. package/{skills → ide/skills}/slm-recall/SKILL.md +5 -5
  57. package/{skills → ide/skills}/slm-remember/SKILL.md +6 -6
  58. package/{skills → ide/skills}/slm-show-patterns/SKILL.md +7 -7
  59. package/{skills → ide/skills}/slm-status/SKILL.md +9 -9
  60. package/{skills → ide/skills}/slm-switch-profile/SKILL.md +9 -9
  61. package/package.json +13 -22
  62. package/pyproject.toml +85 -0
  63. package/scripts/build-dmg.sh +417 -0
  64. package/scripts/install-skills.ps1 +334 -0
  65. package/scripts/postinstall.js +2 -2
  66. package/scripts/start-dashboard.ps1 +52 -0
  67. package/scripts/start-dashboard.sh +41 -0
  68. package/scripts/sync-wiki.ps1 +127 -0
  69. package/scripts/sync-wiki.sh +82 -0
  70. package/scripts/test-dmg.sh +161 -0
  71. package/scripts/test-npm-package.ps1 +252 -0
  72. package/scripts/test-npm-package.sh +207 -0
  73. package/scripts/verify-install.ps1 +294 -0
  74. package/scripts/verify-install.sh +266 -0
  75. package/src/superlocalmemory/__init__.py +0 -0
  76. package/src/superlocalmemory/attribution/__init__.py +9 -0
  77. package/src/superlocalmemory/attribution/mathematical_dna.py +235 -0
  78. package/src/superlocalmemory/attribution/signer.py +153 -0
  79. package/src/superlocalmemory/attribution/watermark.py +189 -0
  80. package/src/superlocalmemory/cli/__init__.py +5 -0
  81. package/src/superlocalmemory/cli/commands.py +245 -0
  82. package/src/superlocalmemory/cli/main.py +89 -0
  83. package/src/superlocalmemory/cli/migrate_cmd.py +55 -0
  84. package/src/superlocalmemory/cli/post_install.py +99 -0
  85. package/src/superlocalmemory/cli/setup_wizard.py +129 -0
  86. package/src/superlocalmemory/compliance/__init__.py +0 -0
  87. package/src/superlocalmemory/compliance/abac.py +204 -0
  88. package/src/superlocalmemory/compliance/audit.py +314 -0
  89. package/src/superlocalmemory/compliance/eu_ai_act.py +131 -0
  90. package/src/superlocalmemory/compliance/gdpr.py +294 -0
  91. package/src/superlocalmemory/compliance/lifecycle.py +158 -0
  92. package/src/superlocalmemory/compliance/retention.py +232 -0
  93. package/src/superlocalmemory/compliance/scheduler.py +148 -0
  94. package/src/superlocalmemory/core/__init__.py +0 -0
  95. package/src/superlocalmemory/core/config.py +391 -0
  96. package/src/superlocalmemory/core/embeddings.py +293 -0
  97. package/src/superlocalmemory/core/engine.py +701 -0
  98. package/src/superlocalmemory/core/hooks.py +65 -0
  99. package/src/superlocalmemory/core/maintenance.py +172 -0
  100. package/src/superlocalmemory/core/modes.py +140 -0
  101. package/src/superlocalmemory/core/profiles.py +234 -0
  102. package/src/superlocalmemory/core/registry.py +117 -0
  103. package/src/superlocalmemory/dynamics/__init__.py +0 -0
  104. package/src/superlocalmemory/dynamics/fisher_langevin_coupling.py +223 -0
  105. package/src/superlocalmemory/encoding/__init__.py +0 -0
  106. package/src/superlocalmemory/encoding/consolidator.py +485 -0
  107. package/src/superlocalmemory/encoding/emotional.py +125 -0
  108. package/src/superlocalmemory/encoding/entity_resolver.py +525 -0
  109. package/src/superlocalmemory/encoding/entropy_gate.py +104 -0
  110. package/src/superlocalmemory/encoding/fact_extractor.py +775 -0
  111. package/src/superlocalmemory/encoding/foresight.py +91 -0
  112. package/src/superlocalmemory/encoding/graph_builder.py +302 -0
  113. package/src/superlocalmemory/encoding/observation_builder.py +160 -0
  114. package/src/superlocalmemory/encoding/scene_builder.py +183 -0
  115. package/src/superlocalmemory/encoding/signal_inference.py +90 -0
  116. package/src/superlocalmemory/encoding/temporal_parser.py +426 -0
  117. package/src/superlocalmemory/encoding/type_router.py +235 -0
  118. package/src/superlocalmemory/hooks/__init__.py +3 -0
  119. package/src/superlocalmemory/hooks/auto_capture.py +111 -0
  120. package/src/superlocalmemory/hooks/auto_recall.py +93 -0
  121. package/src/superlocalmemory/hooks/ide_connector.py +204 -0
  122. package/src/superlocalmemory/hooks/rules_engine.py +99 -0
  123. package/src/superlocalmemory/infra/__init__.py +3 -0
  124. package/src/superlocalmemory/infra/auth_middleware.py +82 -0
  125. package/src/superlocalmemory/infra/backup.py +317 -0
  126. package/src/superlocalmemory/infra/cache_manager.py +267 -0
  127. package/src/superlocalmemory/infra/event_bus.py +381 -0
  128. package/src/superlocalmemory/infra/rate_limiter.py +135 -0
  129. package/src/{webhook_dispatcher.py → superlocalmemory/infra/webhook_dispatcher.py} +104 -101
  130. package/src/superlocalmemory/learning/__init__.py +0 -0
  131. package/src/superlocalmemory/learning/adaptive.py +172 -0
  132. package/src/superlocalmemory/learning/behavioral.py +490 -0
  133. package/src/superlocalmemory/learning/behavioral_listener.py +94 -0
  134. package/src/superlocalmemory/learning/bootstrap.py +298 -0
  135. package/src/superlocalmemory/learning/cross_project.py +399 -0
  136. package/src/superlocalmemory/learning/database.py +376 -0
  137. package/src/superlocalmemory/learning/engagement.py +323 -0
  138. package/src/superlocalmemory/learning/features.py +138 -0
  139. package/src/superlocalmemory/learning/feedback.py +316 -0
  140. package/src/superlocalmemory/learning/outcomes.py +255 -0
  141. package/src/superlocalmemory/learning/project_context.py +366 -0
  142. package/src/superlocalmemory/learning/ranker.py +155 -0
  143. package/src/superlocalmemory/learning/source_quality.py +303 -0
  144. package/src/superlocalmemory/learning/workflows.py +309 -0
  145. package/src/superlocalmemory/llm/__init__.py +0 -0
  146. package/src/superlocalmemory/llm/backbone.py +316 -0
  147. package/src/superlocalmemory/math/__init__.py +0 -0
  148. package/src/superlocalmemory/math/fisher.py +356 -0
  149. package/src/superlocalmemory/math/langevin.py +398 -0
  150. package/src/superlocalmemory/math/sheaf.py +257 -0
  151. package/src/superlocalmemory/mcp/__init__.py +0 -0
  152. package/src/superlocalmemory/mcp/resources.py +245 -0
  153. package/src/superlocalmemory/mcp/server.py +61 -0
  154. package/src/superlocalmemory/mcp/tools.py +18 -0
  155. package/src/superlocalmemory/mcp/tools_core.py +305 -0
  156. package/src/superlocalmemory/mcp/tools_v28.py +223 -0
  157. package/src/superlocalmemory/mcp/tools_v3.py +286 -0
  158. package/src/superlocalmemory/retrieval/__init__.py +0 -0
  159. package/src/superlocalmemory/retrieval/agentic.py +295 -0
  160. package/src/superlocalmemory/retrieval/ann_index.py +223 -0
  161. package/src/superlocalmemory/retrieval/bm25_channel.py +185 -0
  162. package/src/superlocalmemory/retrieval/bridge_discovery.py +170 -0
  163. package/src/superlocalmemory/retrieval/engine.py +390 -0
  164. package/src/superlocalmemory/retrieval/entity_channel.py +179 -0
  165. package/src/superlocalmemory/retrieval/fusion.py +78 -0
  166. package/src/superlocalmemory/retrieval/profile_channel.py +105 -0
  167. package/src/superlocalmemory/retrieval/reranker.py +154 -0
  168. package/src/superlocalmemory/retrieval/semantic_channel.py +232 -0
  169. package/src/superlocalmemory/retrieval/strategy.py +96 -0
  170. package/src/superlocalmemory/retrieval/temporal_channel.py +175 -0
  171. package/src/superlocalmemory/server/__init__.py +1 -0
  172. package/src/superlocalmemory/server/api.py +248 -0
  173. package/src/superlocalmemory/server/routes/__init__.py +4 -0
  174. package/src/superlocalmemory/server/routes/agents.py +107 -0
  175. package/src/superlocalmemory/server/routes/backup.py +91 -0
  176. package/src/superlocalmemory/server/routes/behavioral.py +127 -0
  177. package/src/superlocalmemory/server/routes/compliance.py +160 -0
  178. package/src/superlocalmemory/server/routes/data_io.py +188 -0
  179. package/src/superlocalmemory/server/routes/events.py +183 -0
  180. package/src/superlocalmemory/server/routes/helpers.py +85 -0
  181. package/src/superlocalmemory/server/routes/learning.py +273 -0
  182. package/src/superlocalmemory/server/routes/lifecycle.py +116 -0
  183. package/src/superlocalmemory/server/routes/memories.py +399 -0
  184. package/src/superlocalmemory/server/routes/profiles.py +219 -0
  185. package/src/superlocalmemory/server/routes/stats.py +346 -0
  186. package/src/superlocalmemory/server/routes/v3_api.py +365 -0
  187. package/src/superlocalmemory/server/routes/ws.py +82 -0
  188. package/src/superlocalmemory/server/security_middleware.py +57 -0
  189. package/src/superlocalmemory/server/ui.py +245 -0
  190. package/src/superlocalmemory/storage/__init__.py +0 -0
  191. package/src/superlocalmemory/storage/access_control.py +182 -0
  192. package/src/superlocalmemory/storage/database.py +594 -0
  193. package/src/superlocalmemory/storage/migrations.py +303 -0
  194. package/src/superlocalmemory/storage/models.py +406 -0
  195. package/src/superlocalmemory/storage/schema.py +726 -0
  196. package/src/superlocalmemory/storage/v2_migrator.py +317 -0
  197. package/src/superlocalmemory/trust/__init__.py +0 -0
  198. package/src/superlocalmemory/trust/gate.py +130 -0
  199. package/src/superlocalmemory/trust/provenance.py +124 -0
  200. package/src/superlocalmemory/trust/scorer.py +347 -0
  201. package/src/superlocalmemory/trust/signals.py +153 -0
  202. package/ui/index.html +278 -5
  203. package/ui/js/auto-settings.js +70 -0
  204. package/ui/js/dashboard.js +90 -0
  205. package/ui/js/fact-detail.js +92 -0
  206. package/ui/js/feedback.js +2 -2
  207. package/ui/js/ide-status.js +102 -0
  208. package/ui/js/math-health.js +98 -0
  209. package/ui/js/recall-lab.js +127 -0
  210. package/ui/js/settings.js +2 -2
  211. package/ui/js/trust-dashboard.js +73 -0
  212. package/api_server.py +0 -724
  213. package/bin/aider-smart +0 -72
  214. package/bin/superlocalmemoryv2-learning +0 -4
  215. package/bin/superlocalmemoryv2-list +0 -3
  216. package/bin/superlocalmemoryv2-patterns +0 -4
  217. package/bin/superlocalmemoryv2-profile +0 -3
  218. package/bin/superlocalmemoryv2-recall +0 -3
  219. package/bin/superlocalmemoryv2-remember +0 -3
  220. package/bin/superlocalmemoryv2-reset +0 -3
  221. package/bin/superlocalmemoryv2-status +0 -3
  222. package/configs/chatgpt-desktop-mcp.json +0 -16
  223. package/configs/cursor-mcp.json +0 -15
  224. package/hooks/memory-list-skill.js +0 -139
  225. package/hooks/memory-profile-skill.js +0 -273
  226. package/hooks/memory-recall-skill.js +0 -114
  227. package/hooks/memory-remember-skill.js +0 -127
  228. package/hooks/memory-reset-skill.js +0 -274
  229. package/mcp_server.py +0 -1808
  230. package/requirements-core.txt +0 -22
  231. package/requirements-learning.txt +0 -12
  232. package/requirements.txt +0 -12
  233. package/src/agent_registry.py +0 -411
  234. package/src/auth_middleware.py +0 -61
  235. package/src/auto_backup.py +0 -459
  236. package/src/behavioral/__init__.py +0 -49
  237. package/src/behavioral/behavioral_listener.py +0 -203
  238. package/src/behavioral/behavioral_patterns.py +0 -275
  239. package/src/behavioral/cross_project_transfer.py +0 -206
  240. package/src/behavioral/outcome_inference.py +0 -194
  241. package/src/behavioral/outcome_tracker.py +0 -193
  242. package/src/behavioral/tests/__init__.py +0 -4
  243. package/src/behavioral/tests/test_behavioral_integration.py +0 -108
  244. package/src/behavioral/tests/test_behavioral_patterns.py +0 -150
  245. package/src/behavioral/tests/test_cross_project_transfer.py +0 -142
  246. package/src/behavioral/tests/test_mcp_behavioral.py +0 -139
  247. package/src/behavioral/tests/test_mcp_report_outcome.py +0 -117
  248. package/src/behavioral/tests/test_outcome_inference.py +0 -107
  249. package/src/behavioral/tests/test_outcome_tracker.py +0 -96
  250. package/src/cache_manager.py +0 -518
  251. package/src/compliance/__init__.py +0 -48
  252. package/src/compliance/abac_engine.py +0 -149
  253. package/src/compliance/abac_middleware.py +0 -116
  254. package/src/compliance/audit_db.py +0 -215
  255. package/src/compliance/audit_logger.py +0 -148
  256. package/src/compliance/retention_manager.py +0 -289
  257. package/src/compliance/retention_scheduler.py +0 -186
  258. package/src/compliance/tests/__init__.py +0 -4
  259. package/src/compliance/tests/test_abac_enforcement.py +0 -95
  260. package/src/compliance/tests/test_abac_engine.py +0 -124
  261. package/src/compliance/tests/test_abac_mcp_integration.py +0 -118
  262. package/src/compliance/tests/test_audit_db.py +0 -123
  263. package/src/compliance/tests/test_audit_logger.py +0 -98
  264. package/src/compliance/tests/test_mcp_audit.py +0 -128
  265. package/src/compliance/tests/test_mcp_retention_policy.py +0 -125
  266. package/src/compliance/tests/test_retention_manager.py +0 -131
  267. package/src/compliance/tests/test_retention_scheduler.py +0 -99
  268. package/src/compression/__init__.py +0 -25
  269. package/src/compression/cli.py +0 -150
  270. package/src/compression/cold_storage.py +0 -217
  271. package/src/compression/config.py +0 -72
  272. package/src/compression/orchestrator.py +0 -133
  273. package/src/compression/tier2_compressor.py +0 -228
  274. package/src/compression/tier3_compressor.py +0 -153
  275. package/src/compression/tier_classifier.py +0 -148
  276. package/src/db_connection_manager.py +0 -536
  277. package/src/embedding_engine.py +0 -63
  278. package/src/embeddings/__init__.py +0 -47
  279. package/src/embeddings/cache.py +0 -70
  280. package/src/embeddings/cli.py +0 -113
  281. package/src/embeddings/constants.py +0 -47
  282. package/src/embeddings/database.py +0 -91
  283. package/src/embeddings/engine.py +0 -247
  284. package/src/embeddings/model_loader.py +0 -145
  285. package/src/event_bus.py +0 -562
  286. package/src/graph/__init__.py +0 -36
  287. package/src/graph/build_helpers.py +0 -74
  288. package/src/graph/cli.py +0 -87
  289. package/src/graph/cluster_builder.py +0 -188
  290. package/src/graph/cluster_summary.py +0 -148
  291. package/src/graph/constants.py +0 -47
  292. package/src/graph/edge_builder.py +0 -162
  293. package/src/graph/entity_extractor.py +0 -95
  294. package/src/graph/graph_core.py +0 -226
  295. package/src/graph/graph_search.py +0 -231
  296. package/src/graph/hierarchical.py +0 -207
  297. package/src/graph/schema.py +0 -99
  298. package/src/graph_engine.py +0 -52
  299. package/src/hnsw_index.py +0 -628
  300. package/src/hybrid_search.py +0 -46
  301. package/src/learning/__init__.py +0 -217
  302. package/src/learning/adaptive_ranker.py +0 -682
  303. package/src/learning/bootstrap/__init__.py +0 -69
  304. package/src/learning/bootstrap/constants.py +0 -93
  305. package/src/learning/bootstrap/db_queries.py +0 -316
  306. package/src/learning/bootstrap/sampling.py +0 -82
  307. package/src/learning/bootstrap/text_utils.py +0 -71
  308. package/src/learning/cross_project_aggregator.py +0 -857
  309. package/src/learning/db/__init__.py +0 -40
  310. package/src/learning/db/constants.py +0 -44
  311. package/src/learning/db/schema.py +0 -279
  312. package/src/learning/engagement_tracker.py +0 -628
  313. package/src/learning/feature_extractor.py +0 -708
  314. package/src/learning/feedback_collector.py +0 -806
  315. package/src/learning/learning_db.py +0 -915
  316. package/src/learning/project_context_manager.py +0 -572
  317. package/src/learning/ranking/__init__.py +0 -33
  318. package/src/learning/ranking/constants.py +0 -84
  319. package/src/learning/ranking/helpers.py +0 -278
  320. package/src/learning/source_quality_scorer.py +0 -676
  321. package/src/learning/synthetic_bootstrap.py +0 -755
  322. package/src/learning/tests/test_adaptive_ranker.py +0 -325
  323. package/src/learning/tests/test_adaptive_ranker_v28.py +0 -60
  324. package/src/learning/tests/test_aggregator.py +0 -306
  325. package/src/learning/tests/test_auto_retrain_v28.py +0 -35
  326. package/src/learning/tests/test_e2e_ranking_v28.py +0 -82
  327. package/src/learning/tests/test_feature_extractor_v28.py +0 -93
  328. package/src/learning/tests/test_feedback_collector.py +0 -294
  329. package/src/learning/tests/test_learning_db.py +0 -602
  330. package/src/learning/tests/test_learning_db_v28.py +0 -110
  331. package/src/learning/tests/test_learning_init_v28.py +0 -48
  332. package/src/learning/tests/test_outcome_signals.py +0 -48
  333. package/src/learning/tests/test_project_context.py +0 -292
  334. package/src/learning/tests/test_schema_migration.py +0 -319
  335. package/src/learning/tests/test_signal_inference.py +0 -397
  336. package/src/learning/tests/test_source_quality.py +0 -351
  337. package/src/learning/tests/test_synthetic_bootstrap.py +0 -429
  338. package/src/learning/tests/test_workflow_miner.py +0 -318
  339. package/src/learning/workflow_pattern_miner.py +0 -655
  340. package/src/lifecycle/__init__.py +0 -54
  341. package/src/lifecycle/bounded_growth.py +0 -239
  342. package/src/lifecycle/compaction_engine.py +0 -226
  343. package/src/lifecycle/lifecycle_engine.py +0 -355
  344. package/src/lifecycle/lifecycle_evaluator.py +0 -257
  345. package/src/lifecycle/lifecycle_scheduler.py +0 -130
  346. package/src/lifecycle/retention_policy.py +0 -285
  347. package/src/lifecycle/tests/test_bounded_growth.py +0 -193
  348. package/src/lifecycle/tests/test_compaction.py +0 -179
  349. package/src/lifecycle/tests/test_lifecycle_engine.py +0 -137
  350. package/src/lifecycle/tests/test_lifecycle_evaluation.py +0 -177
  351. package/src/lifecycle/tests/test_lifecycle_scheduler.py +0 -127
  352. package/src/lifecycle/tests/test_lifecycle_search.py +0 -109
  353. package/src/lifecycle/tests/test_mcp_compact.py +0 -149
  354. package/src/lifecycle/tests/test_mcp_lifecycle_status.py +0 -114
  355. package/src/lifecycle/tests/test_retention_policy.py +0 -162
  356. package/src/mcp_tools_v28.py +0 -281
  357. package/src/memory/__init__.py +0 -36
  358. package/src/memory/cli.py +0 -205
  359. package/src/memory/constants.py +0 -39
  360. package/src/memory/helpers.py +0 -28
  361. package/src/memory/schema.py +0 -166
  362. package/src/memory-profiles.py +0 -595
  363. package/src/memory-reset.py +0 -491
  364. package/src/memory_compression.py +0 -989
  365. package/src/memory_store_v2.py +0 -1155
  366. package/src/migrate_v1_to_v2.py +0 -629
  367. package/src/pattern_learner.py +0 -34
  368. package/src/patterns/__init__.py +0 -24
  369. package/src/patterns/analyzers.py +0 -251
  370. package/src/patterns/learner.py +0 -271
  371. package/src/patterns/scoring.py +0 -171
  372. package/src/patterns/store.py +0 -225
  373. package/src/patterns/terminology.py +0 -140
  374. package/src/provenance_tracker.py +0 -312
  375. package/src/qualixar_attribution.py +0 -139
  376. package/src/qualixar_watermark.py +0 -78
  377. package/src/query_optimizer.py +0 -511
  378. package/src/rate_limiter.py +0 -83
  379. package/src/search/__init__.py +0 -20
  380. package/src/search/cli.py +0 -77
  381. package/src/search/constants.py +0 -26
  382. package/src/search/engine.py +0 -241
  383. package/src/search/fusion.py +0 -122
  384. package/src/search/index_loader.py +0 -114
  385. package/src/search/methods.py +0 -162
  386. package/src/search_engine_v2.py +0 -401
  387. package/src/setup_validator.py +0 -482
  388. package/src/subscription_manager.py +0 -391
  389. package/src/tree/__init__.py +0 -59
  390. package/src/tree/builder.py +0 -185
  391. package/src/tree/nodes.py +0 -202
  392. package/src/tree/queries.py +0 -257
  393. package/src/tree/schema.py +0 -80
  394. package/src/tree_manager.py +0 -19
  395. package/src/trust/__init__.py +0 -45
  396. package/src/trust/constants.py +0 -66
  397. package/src/trust/queries.py +0 -157
  398. package/src/trust/schema.py +0 -95
  399. package/src/trust/scorer.py +0 -299
  400. package/src/trust/signals.py +0 -95
  401. package/src/trust_scorer.py +0 -44
  402. package/ui/app.js +0 -1588
  403. package/ui/js/graph-cytoscape-monolithic-backup.js +0 -1168
  404. package/ui/js/graph-cytoscape.js +0 -1168
  405. package/ui/js/graph-d3-backup.js +0 -32
  406. package/ui/js/graph.js +0 -32
  407. package/ui_server.py +0 -286
  408. /package/docs/{ACCESSIBILITY.md → v2-archive/ACCESSIBILITY.md} +0 -0
  409. /package/docs/{ARCHITECTURE.md → v2-archive/ARCHITECTURE.md} +0 -0
  410. /package/docs/{CLI-COMMANDS-REFERENCE.md → v2-archive/CLI-COMMANDS-REFERENCE.md} +0 -0
  411. /package/docs/{COMPRESSION-README.md → v2-archive/COMPRESSION-README.md} +0 -0
  412. /package/docs/{FRAMEWORK-INTEGRATIONS.md → v2-archive/FRAMEWORK-INTEGRATIONS.md} +0 -0
  413. /package/docs/{MCP-MANUAL-SETUP.md → v2-archive/MCP-MANUAL-SETUP.md} +0 -0
  414. /package/docs/{MCP-TROUBLESHOOTING.md → v2-archive/MCP-TROUBLESHOOTING.md} +0 -0
  415. /package/docs/{PATTERN-LEARNING.md → v2-archive/PATTERN-LEARNING.md} +0 -0
  416. /package/docs/{PROFILES-GUIDE.md → v2-archive/PROFILES-GUIDE.md} +0 -0
  417. /package/docs/{RESET-GUIDE.md → v2-archive/RESET-GUIDE.md} +0 -0
  418. /package/docs/{SEARCH-ENGINE-V2.2.0.md → v2-archive/SEARCH-ENGINE-V2.2.0.md} +0 -0
  419. /package/docs/{SEARCH-INTEGRATION-GUIDE.md → v2-archive/SEARCH-INTEGRATION-GUIDE.md} +0 -0
  420. /package/docs/{UI-SERVER.md → v2-archive/UI-SERVER.md} +0 -0
  421. /package/docs/{UNIVERSAL-INTEGRATION.md → v2-archive/UNIVERSAL-INTEGRATION.md} +0 -0
  422. /package/docs/{V2.2.0-OPTIONAL-SEARCH.md → v2-archive/V2.2.0-OPTIONAL-SEARCH.md} +0 -0
  423. /package/docs/{WINDOWS-INSTALL-README.txt → v2-archive/WINDOWS-INSTALL-README.txt} +0 -0
  424. /package/docs/{WINDOWS-POST-INSTALL.txt → v2-archive/WINDOWS-POST-INSTALL.txt} +0 -0
  425. /package/docs/{example_graph_usage.py → v2-archive/example_graph_usage.py} +0 -0
  426. /package/{completions → ide/completions}/slm.bash +0 -0
  427. /package/{completions → ide/completions}/slm.zsh +0 -0
  428. /package/{configs → ide/configs}/cody-commands.json +0 -0
  429. /package/{install-skills.sh → scripts/install-skills.sh} +0 -0
  430. /package/{install.ps1 → scripts/install.ps1} +0 -0
  431. /package/{install.sh → scripts/install.sh} +0 -0
@@ -0,0 +1,334 @@
1
+ # SuperLocalMemory V2 - Universal Skills Installer (PowerShell)
2
+ # Installs skills for Claude Code, Codex, Gemini CLI, Antigravity, and Windsurf
3
+
4
+ param(
5
+ [switch]$Auto
6
+ )
7
+
8
+ $ErrorActionPreference = "Stop"
9
+
10
+ # Configuration
11
+ $REPO_DIR = $PSScriptRoot
12
+ $SKILLS_SOURCE = Join-Path $REPO_DIR "skills"
13
+
14
+ # Tool definitions
15
+ $TOOL_IDS = @("claude_code", "codex", "gemini_cli", "antigravity", "windsurf", "cursor", "vscode_copilot")
16
+ $TOOL_NAMES = @("Claude Code", "Codex", "Gemini CLI", "Antigravity", "Windsurf", "Cursor", "VS Code/Copilot")
17
+ $TOOL_DIRS = @(
18
+ (Join-Path $env:USERPROFILE ".claude\skills"),
19
+ (Join-Path $env:USERPROFILE ".codex\skills"),
20
+ (Join-Path $env:USERPROFILE ".gemini\skills"),
21
+ (Join-Path $env:USERPROFILE ".gemini\antigravity\skills"),
22
+ (Join-Path $env:USERPROFILE ".windsurf\skills"),
23
+ (Join-Path $env:USERPROFILE ".cursor\skills"),
24
+ (Join-Path $env:USERPROFILE ".copilot\skills")
25
+ )
26
+
27
+ # Helper functions
28
+ function Get-ToolName {
29
+ param([string]$ToolId)
30
+ $index = $TOOL_IDS.IndexOf($ToolId)
31
+ if ($index -ge 0) { return $TOOL_NAMES[$index] }
32
+ return $ToolId
33
+ }
34
+
35
+ function Get-ToolDir {
36
+ param([string]$ToolId)
37
+ $index = $TOOL_IDS.IndexOf($ToolId)
38
+ if ($index -ge 0) { return $TOOL_DIRS[$index] }
39
+ return ""
40
+ }
41
+
42
+ # Skills to install
43
+ $SKILLS = @(
44
+ "slm-remember",
45
+ "slm-recall",
46
+ "slm-status",
47
+ "slm-list-recent",
48
+ "slm-build-graph",
49
+ "slm-switch-profile"
50
+ )
51
+
52
+ Write-Host "=========================================="
53
+ Write-Host "SuperLocalMemory V2 - Universal Skills Installer"
54
+ Write-Host "=========================================="
55
+ Write-Host ""
56
+
57
+ # Check if SuperLocalMemory V2 is installed
58
+ $memoryDir = Join-Path $env:USERPROFILE ".claude-memory"
59
+ if (-not (Test-Path $memoryDir)) {
60
+ Write-Host "Warning: SuperLocalMemory V2 not found at $memoryDir" -ForegroundColor Yellow
61
+ Write-Host "Skills require SuperLocalMemory V2 to be installed first."
62
+ Write-Host ""
63
+ if (-not $Auto) {
64
+ $response = Read-Host "Do you want to continue anyway? (y/n)"
65
+ if ($response -ne "y" -and $response -ne "Y") {
66
+ Write-Host "Installation cancelled."
67
+ Write-Host "Please install SuperLocalMemory V2 first: .\install.ps1"
68
+ exit 1
69
+ }
70
+ } else {
71
+ Write-Host "Auto mode: continuing anyway..."
72
+ }
73
+ }
74
+
75
+ # Check if skills source directory exists
76
+ if (-not (Test-Path $SKILLS_SOURCE)) {
77
+ Write-Host "Error: Skills directory not found: $SKILLS_SOURCE" -ForegroundColor Red
78
+ Write-Host "Please run this script from the SuperLocalMemoryV2-repo directory."
79
+ exit 1
80
+ }
81
+
82
+ # Verify all skill directories exist
83
+ Write-Host "Verifying skill files..."
84
+ $MISSING_SKILLS = 0
85
+ foreach ($skill in $SKILLS) {
86
+ $skillDir = Join-Path $SKILLS_SOURCE $skill
87
+ $skillFile = Join-Path $skillDir "SKILL.md"
88
+ if (-not (Test-Path $skillDir)) {
89
+ Write-Host "✗ Missing: $skill/" -ForegroundColor Red
90
+ $MISSING_SKILLS++
91
+ } elseif (-not (Test-Path $skillFile)) {
92
+ Write-Host "✗ Missing: $skill/SKILL.md" -ForegroundColor Red
93
+ $MISSING_SKILLS++
94
+ } else {
95
+ Write-Host "✓ Found: $skill/SKILL.md" -ForegroundColor Green
96
+ }
97
+ }
98
+
99
+ if ($MISSING_SKILLS -gt 0) {
100
+ Write-Host "Error: $MISSING_SKILLS skill(s) missing. Cannot proceed." -ForegroundColor Red
101
+ exit 1
102
+ }
103
+
104
+ Write-Host ""
105
+ Write-Host "Found $($SKILLS.Count) skills to install"
106
+ Write-Host ""
107
+
108
+ # Detect available tools
109
+ Write-Host "=========================================="
110
+ Write-Host "Detecting AI Tools"
111
+ Write-Host "=========================================="
112
+ Write-Host ""
113
+
114
+ $DETECTED_TOOLS = @()
115
+
116
+ for ($i = 0; $i -lt $TOOL_IDS.Count; $i++) {
117
+ $toolId = $TOOL_IDS[$i]
118
+ $toolName = $TOOL_NAMES[$i]
119
+ $toolDir = $TOOL_DIRS[$i]
120
+ $parentDir = Split-Path $toolDir -Parent
121
+
122
+ if (Test-Path $parentDir) {
123
+ Write-Host "✓ $toolName detected: $toolDir" -ForegroundColor Green
124
+ $DETECTED_TOOLS += $toolId
125
+ } else {
126
+ Write-Host "○ $toolName not found: $parentDir" -ForegroundColor Blue
127
+ }
128
+ }
129
+
130
+ Write-Host ""
131
+
132
+ if ($DETECTED_TOOLS.Count -eq 0) {
133
+ if ($Auto) {
134
+ Write-Host "Warning: No supported AI tools detected. Skipping skills installation." -ForegroundColor Yellow
135
+ Write-Host ""
136
+ exit 0
137
+ }
138
+ Write-Host "Warning: No supported AI tools detected." -ForegroundColor Yellow
139
+ Write-Host ""
140
+ Write-Host "Supported tools:"
141
+ for ($i = 0; $i -lt $TOOL_IDS.Count; $i++) {
142
+ Write-Host " - $($TOOL_NAMES[$i]): $($TOOL_DIRS[$i])"
143
+ }
144
+ Write-Host ""
145
+ $response = Read-Host "Do you want to continue and create directories anyway? (y/n)"
146
+ if ($response -ne "y" -and $response -ne "Y") {
147
+ Write-Host "Installation cancelled."
148
+ exit 1
149
+ }
150
+ # Add all tools to install list
151
+ $DETECTED_TOOLS = $TOOL_IDS
152
+ } else {
153
+ Write-Host "Will install skills for $($DETECTED_TOOLS.Count) tool(s)"
154
+ Write-Host ""
155
+ }
156
+
157
+ # Ask user for installation method
158
+ if ($Auto) {
159
+ $METHOD = "copy" # Windows: copy is more reliable than symlink
160
+ Write-Host "Auto mode: Using copy method..."
161
+ } else {
162
+ Write-Host "Installation Methods:"
163
+ Write-Host " 1. Copy - Stable, requires manual updates (recommended for Windows)"
164
+ Write-Host " 2. Symlink - Changes in repo reflect immediately (requires admin on Windows)"
165
+ Write-Host ""
166
+ $choice = Read-Host "Choose installation method (1 or 2)"
167
+ Write-Host ""
168
+
169
+ if ($choice -eq "1") {
170
+ $METHOD = "copy"
171
+ Write-Host "Installing via copy..."
172
+ } elseif ($choice -eq "2") {
173
+ $METHOD = "symlink"
174
+ Write-Host "Installing via symlink..."
175
+ } else {
176
+ Write-Host "Invalid choice. Please enter 1 or 2." -ForegroundColor Red
177
+ exit 1
178
+ }
179
+ }
180
+
181
+ Write-Host ""
182
+
183
+ # Install skills for each detected tool
184
+ $TOTAL_INSTALLED = 0
185
+ $TOTAL_FAILED = 0
186
+ $TOTAL_SKIPPED = 0
187
+
188
+ foreach ($toolId in $DETECTED_TOOLS) {
189
+ $toolName = Get-ToolName $toolId
190
+ Write-Host "=========================================="
191
+ Write-Host "Installing for: $toolName"
192
+ Write-Host "=========================================="
193
+
194
+ $skillsDir = Get-ToolDir $toolId
195
+
196
+ # Create skills directory if it doesn't exist
197
+ if (-not (Test-Path $skillsDir)) {
198
+ Write-Host "Creating directory: $skillsDir"
199
+ try {
200
+ New-Item -ItemType Directory -Path $skillsDir -Force | Out-Null
201
+ Write-Host "✓ Directory created" -ForegroundColor Green
202
+ } catch {
203
+ Write-Host "✗ Failed to create directory" -ForegroundColor Red
204
+ Write-Host ""
205
+ $TOTAL_SKIPPED += $SKILLS.Count
206
+ continue
207
+ }
208
+ } else {
209
+ Write-Host "Directory exists: $skillsDir"
210
+ }
211
+
212
+ Write-Host ""
213
+
214
+ # Install each skill
215
+ foreach ($skill in $SKILLS) {
216
+ $sourceFile = Join-Path (Join-Path $SKILLS_SOURCE $skill) "SKILL.md"
217
+ $targetFile = Join-Path $skillsDir "$skill.md"
218
+
219
+ # Remove existing file or symlink
220
+ if (Test-Path $targetFile) {
221
+ Remove-Item $targetFile -Force
222
+ }
223
+
224
+ try {
225
+ if ($METHOD -eq "symlink") {
226
+ # Create symlink (requires admin on Windows)
227
+ New-Item -ItemType SymbolicLink -Path $targetFile -Target $sourceFile -Force | Out-Null
228
+ Write-Host "✓ Symlinked: $skill.md" -ForegroundColor Green
229
+ $TOTAL_INSTALLED++
230
+ } else {
231
+ # Copy file
232
+ Copy-Item $sourceFile -Destination $targetFile -Force
233
+ Write-Host "✓ Copied: $skill.md" -ForegroundColor Green
234
+ $TOTAL_INSTALLED++
235
+ }
236
+ } catch {
237
+ Write-Host "✗ Failed to install: $skill.md - $($_.Exception.Message)" -ForegroundColor Red
238
+ $TOTAL_FAILED++
239
+ }
240
+ }
241
+
242
+ Write-Host ""
243
+ }
244
+
245
+ # Installation Summary
246
+ Write-Host "=========================================="
247
+ Write-Host "Installation Summary"
248
+ Write-Host "=========================================="
249
+ Write-Host ""
250
+ Write-Host "Tools configured: $($DETECTED_TOOLS.Count)" -ForegroundColor Blue
251
+ Write-Host "Skills installed: $TOTAL_INSTALLED" -ForegroundColor Green
252
+ if ($TOTAL_FAILED -gt 0) {
253
+ Write-Host "Failed: $TOTAL_FAILED" -ForegroundColor Red
254
+ }
255
+ if ($TOTAL_SKIPPED -gt 0) {
256
+ Write-Host "Skipped: $TOTAL_SKIPPED" -ForegroundColor Yellow
257
+ }
258
+ Write-Host "Installation method: $METHOD"
259
+ Write-Host ""
260
+
261
+ # List installation locations
262
+ Write-Host "Skills installed to:"
263
+ foreach ($toolId in $DETECTED_TOOLS) {
264
+ $toolName = Get-ToolName $toolId
265
+ $toolDir = Get-ToolDir $toolId
266
+ if ((Test-Path $toolDir) -and ((Get-ChildItem -Path $toolDir -Filter "*.md" -ErrorAction SilentlyContinue).Count -gt 0)) {
267
+ $count = (Get-ChildItem -Path $toolDir -Filter "*.md").Count
268
+ Write-Host " ✓ $toolName`: $toolDir ($count skills)" -ForegroundColor Green
269
+ }
270
+ }
271
+
272
+ Write-Host ""
273
+
274
+ # Verify installation
275
+ $EXPECTED_TOTAL = $DETECTED_TOOLS.Count * $SKILLS.Count
276
+ if ($TOTAL_INSTALLED -eq $EXPECTED_TOTAL) {
277
+ Write-Host "✓ All skills installed successfully!" -ForegroundColor Green
278
+ } else {
279
+ Write-Host "⚠ Some skills failed to install." -ForegroundColor Yellow
280
+ Write-Host "Expected: $EXPECTED_TOTAL, Installed: $TOTAL_INSTALLED"
281
+ }
282
+
283
+ Write-Host ""
284
+
285
+ # List available skills
286
+ Write-Host "=========================================="
287
+ Write-Host "Available Skills"
288
+ Write-Host "=========================================="
289
+ Write-Host ""
290
+ foreach ($skill in $SKILLS) {
291
+ Write-Host " • $skill"
292
+ }
293
+ Write-Host ""
294
+
295
+ # Next Steps
296
+ Write-Host "=========================================="
297
+ Write-Host "Next Steps"
298
+ Write-Host "=========================================="
299
+ Write-Host ""
300
+ Write-Host "1. Restart your AI tool to load the new skills" -ForegroundColor Yellow
301
+ Write-Host ""
302
+ Write-Host "2. Verify skills are loaded:"
303
+ foreach ($toolId in $DETECTED_TOOLS) {
304
+ $toolName = Get-ToolName $toolId
305
+ Write-Host " $toolName (check available commands/skills)" -ForegroundColor Green
306
+ }
307
+ Write-Host ""
308
+ Write-Host "3. Try your first skill:"
309
+ Write-Host " /slm-status or /slm-remember `"test`"" -ForegroundColor Green
310
+ Write-Host ""
311
+ Write-Host "4. Read skill documentation:"
312
+ Write-Host " Each skill has detailed docs in: $SKILLS_SOURCE\<skill-name>\SKILL.md"
313
+ Write-Host ""
314
+
315
+ if ($METHOD -eq "copy") {
316
+ Write-Host "Note: Using copies. To update skills:"
317
+ Write-Host " cd $REPO_DIR"
318
+ Write-Host " git pull"
319
+ Write-Host " .\install-skills.ps1"
320
+ Write-Host ""
321
+ }
322
+
323
+ Write-Host "=========================================="
324
+ Write-Host ""
325
+ Write-Host "✓ Universal skills installation complete!" -ForegroundColor Green
326
+ Write-Host ""
327
+ Write-Host "Skills installed for:"
328
+ foreach ($toolId in $DETECTED_TOOLS) {
329
+ Write-Host " • $(Get-ToolName $toolId)"
330
+ }
331
+ Write-Host ""
332
+ Write-Host "Remember: Skills are OPTIONAL convenience wrappers."
333
+ Write-Host "SuperLocalMemory V2 works standalone via terminal commands."
334
+ Write-Host ""
@@ -42,8 +42,8 @@ console.log('🌍 Global installation detected. Running system setup...\n');
42
42
  // Find the package root (where install.sh/install.ps1 lives)
43
43
  const packageRoot = path.join(__dirname, '..');
44
44
  const installScript = os.platform() === 'win32'
45
- ? path.join(packageRoot, 'install.ps1')
46
- : path.join(packageRoot, 'install.sh');
45
+ ? path.join(packageRoot, 'scripts', 'install.ps1')
46
+ : path.join(packageRoot, 'scripts', 'install.sh');
47
47
 
48
48
  // Check if install script exists
49
49
  if (!fs.existsSync(installScript)) {
@@ -0,0 +1,52 @@
1
+ # ============================================================================
2
+ # SuperLocalMemory - Dashboard Startup Script (PowerShell)
3
+ # Starts the web dashboard on http://localhost:8765
4
+ # Copyright (c) 2026 Varun Pratap Bhardwaj
5
+ # ============================================================================
6
+
7
+ $ErrorActionPreference = "Stop"
8
+
9
+ $SCRIPT_DIR = Split-Path -Parent $MyInvocation.MyCommand.Path
10
+ Set-Location $SCRIPT_DIR
11
+
12
+ Write-Host "=================================================================="
13
+ Write-Host " SuperLocalMemory - Dashboard "
14
+ Write-Host " by Varun Pratap Bhardwaj "
15
+ Write-Host "=================================================================="
16
+ Write-Host ""
17
+
18
+ # Check if Python is available
19
+ try {
20
+ $pythonVersion = & python --version 2>&1
21
+ Write-Host "Python: $pythonVersion"
22
+ } catch {
23
+ Write-Host "ERROR: Python not found in PATH" -ForegroundColor Red
24
+ Write-Host "Install Python 3.8+ from https://www.python.org/downloads/" -ForegroundColor Yellow
25
+ exit 1
26
+ }
27
+
28
+ # Check if FastAPI is installed
29
+ try {
30
+ & python -c "import fastapi" 2>$null
31
+ } catch {
32
+ Write-Host "WARNING: FastAPI not installed (optional dependency)" -ForegroundColor Yellow
33
+ Write-Host ""
34
+ Write-Host "To use the dashboard, install web dependencies:"
35
+ Write-Host " pip install -r requirements-ui.txt"
36
+ Write-Host ""
37
+ Write-Host "Or install all features:"
38
+ Write-Host " pip install -r requirements-full.txt"
39
+ Write-Host ""
40
+ exit 1
41
+ }
42
+
43
+ Write-Host "Starting dashboard server..." -ForegroundColor Green
44
+ Write-Host ""
45
+ Write-Host " Dashboard: http://localhost:8765"
46
+ Write-Host " API Docs: http://localhost:8765/docs"
47
+ Write-Host ""
48
+ Write-Host "Press Ctrl+C to stop"
49
+ Write-Host ""
50
+
51
+ # Start server
52
+ & python ui_server.py
@@ -0,0 +1,41 @@
1
+ #!/bin/bash
2
+ # ============================================================================
3
+ # SuperLocalMemory - Dashboard Startup Script
4
+ # Starts the web dashboard on http://localhost:8765
5
+ # Copyright (c) 2026 Varun Pratap Bhardwaj
6
+ # ============================================================================
7
+
8
+ set -e
9
+
10
+ SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
11
+ cd "$SCRIPT_DIR"
12
+
13
+ echo "╔══════════════════════════════════════════════════════════════╗"
14
+ echo "║ SuperLocalMemory - Dashboard ║"
15
+ echo "║ by Varun Pratap Bhardwaj ║"
16
+ echo "╚══════════════════════════════════════════════════════════════╝"
17
+ echo ""
18
+
19
+ # Check if FastAPI is installed
20
+ if ! python3 -c "import fastapi" 2>/dev/null; then
21
+ echo "⚠️ FastAPI not installed (optional dependency)"
22
+ echo ""
23
+ echo "To use the dashboard, install web dependencies:"
24
+ echo " pip3 install -r requirements-ui.txt"
25
+ echo ""
26
+ echo "Or install all features:"
27
+ echo " pip3 install -r requirements-full.txt"
28
+ echo ""
29
+ exit 1
30
+ fi
31
+
32
+ echo "🚀 Starting dashboard server..."
33
+ echo ""
34
+ echo " Dashboard: http://localhost:8765"
35
+ echo " API Docs: http://localhost:8765/docs"
36
+ echo ""
37
+ echo "Press Ctrl+C to stop"
38
+ echo ""
39
+
40
+ # Start server
41
+ python3 ui_server.py
@@ -0,0 +1,127 @@
1
+ # ============================================================================
2
+ # SuperLocalMemory V2 - Wiki Sync Script (PowerShell)
3
+ # Automatically syncs wiki-content/ to GitHub Wiki repository
4
+ # Copyright (c) 2026 Varun Pratap Bhardwaj
5
+ # ============================================================================
6
+
7
+ param()
8
+
9
+ $ErrorActionPreference = "Stop"
10
+
11
+ # Configuration
12
+ $REPO_DIR = $PSScriptRoot
13
+ $WIKI_CONTENT_DIR = Join-Path $REPO_DIR "wiki-content"
14
+ $WIKI_REPO_DIR = Join-Path $env:TEMP "SuperLocalMemoryV2.wiki"
15
+ $WIKI_REPO_URL = "https://github.com/varun369/SuperLocalMemoryV2.wiki.git"
16
+
17
+ Write-Host "╔══════════════════════════════════════════════════════════════╗"
18
+ Write-Host "║ SuperLocalMemory V2 - Wiki Sync Tool ║"
19
+ Write-Host "║ by Varun Pratap Bhardwaj ║"
20
+ Write-Host "╚══════════════════════════════════════════════════════════════╝"
21
+ Write-Host ""
22
+
23
+ # Check if wiki-content exists
24
+ if (-not (Test-Path $WIKI_CONTENT_DIR)) {
25
+ Write-Host "✗ Error: wiki-content/ directory not found" -ForegroundColor Red
26
+ exit 1
27
+ }
28
+
29
+ # Clone or update wiki repo
30
+ if (Test-Path $WIKI_REPO_DIR) {
31
+ Write-Host "📥 Updating existing wiki repository..."
32
+ Push-Location $WIKI_REPO_DIR
33
+ try {
34
+ $DEFAULT_BRANCH = git symbolic-ref refs/remotes/origin/HEAD 2>$null
35
+ if ($DEFAULT_BRANCH) {
36
+ $DEFAULT_BRANCH = $DEFAULT_BRANCH -replace '^refs/remotes/origin/', ''
37
+ } else {
38
+ $DEFAULT_BRANCH = "master"
39
+ }
40
+ git pull origin $DEFAULT_BRANCH
41
+ } finally {
42
+ Pop-Location
43
+ }
44
+ } else {
45
+ Write-Host "📥 Cloning wiki repository..."
46
+ git clone $WIKI_REPO_URL $WIKI_REPO_DIR
47
+ Set-Location $WIKI_REPO_DIR
48
+ $DEFAULT_BRANCH = git symbolic-ref refs/remotes/origin/HEAD 2>$null
49
+ if ($DEFAULT_BRANCH) {
50
+ $DEFAULT_BRANCH = $DEFAULT_BRANCH -replace '^refs/remotes/origin/', ''
51
+ } else {
52
+ $DEFAULT_BRANCH = "master"
53
+ }
54
+ }
55
+
56
+ # Sync wiki files (PowerShell equivalent of rsync)
57
+ Write-Host ""
58
+ Write-Host "📋 Syncing wiki files..."
59
+
60
+ Push-Location $WIKI_REPO_DIR
61
+ try {
62
+ # Remove old files except .git and excluded files
63
+ $excludeFiles = @("DEPLOYMENT-CHECKLIST.md", "WIKI-UPDATE-SUMMARY.md", "NEW-PAGES-SUMMARY.md", "README.md")
64
+ Get-ChildItem -Path . -Recurse -File | Where-Object {
65
+ $_.Name -notin $excludeFiles -and $_.FullName -notlike "*\.git\*"
66
+ } | Remove-Item -Force
67
+
68
+ # Copy new files from wiki-content
69
+ Get-ChildItem -Path $WIKI_CONTENT_DIR -Recurse -File | Where-Object {
70
+ $_.Name -notin $excludeFiles
71
+ } | ForEach-Object {
72
+ $relativePath = $_.FullName.Substring($WIKI_CONTENT_DIR.Length + 1)
73
+ $targetPath = Join-Path $WIKI_REPO_DIR $relativePath
74
+ $targetDir = Split-Path $targetPath -Parent
75
+ if (-not (Test-Path $targetDir)) {
76
+ New-Item -ItemType Directory -Path $targetDir -Force | Out-Null
77
+ }
78
+ Copy-Item $_.FullName -Destination $targetPath -Force
79
+ }
80
+
81
+ # Remove old naming
82
+ $oldFile = Join-Path $WIKI_REPO_DIR "4-Layer-Architecture.md"
83
+ if (Test-Path $oldFile) {
84
+ Remove-Item $oldFile -Force
85
+ }
86
+
87
+ # Check for changes
88
+ $changes = git status --porcelain
89
+ if (-not $changes) {
90
+ Write-Host "✓ No changes to sync" -ForegroundColor Green
91
+ exit 0
92
+ }
93
+
94
+ # Show what changed
95
+ Write-Host ""
96
+ Write-Host "📝 Changes detected:"
97
+ git status --short
98
+
99
+ # Commit and push
100
+ Write-Host ""
101
+ Write-Host "💾 Committing changes..."
102
+ git add .
103
+
104
+ $timestamp = Get-Date -Format "yyyy-MM-dd HH:mm"
105
+ $commitMessage = @"
106
+ Sync: Update wiki from main repo ($timestamp)
107
+
108
+ Automated sync from wiki-content/ directory
109
+
110
+ Created by: Varun Pratap Bhardwaj
111
+ "@
112
+
113
+ git commit -m $commitMessage
114
+
115
+ Write-Host ""
116
+ Write-Host "📤 Pushing to GitHub Wiki..."
117
+ git push origin $DEFAULT_BRANCH
118
+
119
+ Write-Host ""
120
+ Write-Host "╔══════════════════════════════════════════════════════════════╗"
121
+ Write-Host "║ ✅ Wiki synced successfully! ║"
122
+ Write-Host "║ View at: https://github.com/varun369/SuperLocalMemoryV2/wiki║"
123
+ Write-Host "╚══════════════════════════════════════════════════════════════╝"
124
+
125
+ } finally {
126
+ Pop-Location
127
+ }
@@ -0,0 +1,82 @@
1
+ #!/bin/bash
2
+ # ============================================================================
3
+ # SuperLocalMemory V2 - Wiki Sync Script
4
+ # Automatically syncs wiki-content/ to GitHub Wiki repository
5
+ # Copyright (c) 2026 Varun Pratap Bhardwaj
6
+ # ============================================================================
7
+
8
+ set -e
9
+
10
+ REPO_DIR="$(cd "$(dirname "${BASH_SOURCE[0]:-$0}")" && pwd)"
11
+ WIKI_CONTENT_DIR="${REPO_DIR}/wiki-content"
12
+ WIKI_REPO_DIR="/tmp/SuperLocalMemoryV2.wiki"
13
+ WIKI_REPO_URL="https://github.com/varun369/SuperLocalMemoryV2.wiki.git"
14
+
15
+ echo "╔══════════════════════════════════════════════════════════════╗"
16
+ echo "║ SuperLocalMemory V2 - Wiki Sync Tool ║"
17
+ echo "║ by Varun Pratap Bhardwaj ║"
18
+ echo "╚══════════════════════════════════════════════════════════════╝"
19
+ echo ""
20
+
21
+ # Check if wiki-content exists
22
+ if [ ! -d "${WIKI_CONTENT_DIR}" ]; then
23
+ echo "✗ Error: wiki-content/ directory not found"
24
+ exit 1
25
+ fi
26
+
27
+ # Clone or update wiki repo
28
+ if [ -d "${WIKI_REPO_DIR}" ]; then
29
+ echo "📥 Updating existing wiki repository..."
30
+ cd "${WIKI_REPO_DIR}"
31
+ DEFAULT_BRANCH=$(git symbolic-ref refs/remotes/origin/HEAD 2>/dev/null | sed 's@^refs/remotes/origin/@@' || echo "master")
32
+ git pull origin "${DEFAULT_BRANCH}"
33
+ else
34
+ echo "📥 Cloning wiki repository..."
35
+ git clone "${WIKI_REPO_URL}" "${WIKI_REPO_DIR}"
36
+ cd "${WIKI_REPO_DIR}"
37
+ fi
38
+
39
+ # Sync wiki files
40
+ echo ""
41
+ echo "📋 Syncing wiki files..."
42
+ rsync -av --delete \
43
+ --exclude='.git' \
44
+ --exclude='DEPLOYMENT-CHECKLIST.md' \
45
+ --exclude='WIKI-UPDATE-SUMMARY.md' \
46
+ --exclude='NEW-PAGES-SUMMARY.md' \
47
+ --exclude='README.md' \
48
+ "${WIKI_CONTENT_DIR}/" "${WIKI_REPO_DIR}/"
49
+
50
+ # Remove old naming
51
+ rm -f "${WIKI_REPO_DIR}/4-Layer-Architecture.md"
52
+
53
+ # Check for changes
54
+ if [ -z "$(git status --porcelain)" ]; then
55
+ echo "✓ No changes to sync"
56
+ exit 0
57
+ fi
58
+
59
+ # Show what changed
60
+ echo ""
61
+ echo "📝 Changes detected:"
62
+ git status --short
63
+
64
+ # Commit and push
65
+ echo ""
66
+ echo "💾 Committing changes..."
67
+ git add .
68
+ git commit -m "Sync: Update wiki from main repo ($(date '+%Y-%m-%d %H:%M'))
69
+
70
+ Automated sync from wiki-content/ directory
71
+
72
+ Created by: Varun Pratap Bhardwaj"
73
+
74
+ echo ""
75
+ echo "📤 Pushing to GitHub Wiki..."
76
+ git push origin "${DEFAULT_BRANCH:-master}"
77
+
78
+ echo ""
79
+ echo "╔══════════════════════════════════════════════════════════════╗"
80
+ echo "║ ✅ Wiki synced successfully! ║"
81
+ echo "║ View at: https://github.com/varun369/SuperLocalMemoryV2/wiki║"
82
+ echo "╚══════════════════════════════════════════════════════════════╝"