superlocalmemory 2.8.6 → 3.0.1
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.
- package/LICENSE +9 -1
- package/NOTICE +63 -0
- package/README.md +165 -480
- package/bin/slm +17 -449
- package/bin/slm-npm +62 -48
- package/conftest.py +5 -0
- package/docs/api-reference.md +284 -0
- package/docs/architecture.md +149 -0
- package/docs/auto-memory.md +150 -0
- package/docs/cli-reference.md +276 -0
- package/docs/compliance.md +191 -0
- package/docs/configuration.md +182 -0
- package/docs/getting-started.md +102 -0
- package/docs/ide-setup.md +261 -0
- package/docs/mcp-tools.md +220 -0
- package/docs/migration-from-v2.md +170 -0
- package/docs/profiles.md +173 -0
- package/docs/troubleshooting.md +310 -0
- package/{configs → ide/configs}/antigravity-mcp.json +3 -3
- package/ide/configs/chatgpt-desktop-mcp.json +16 -0
- package/{configs → ide/configs}/claude-desktop-mcp.json +3 -3
- package/{configs → ide/configs}/codex-mcp.toml +4 -4
- package/{configs → ide/configs}/continue-mcp.yaml +4 -3
- package/{configs → ide/configs}/continue-skills.yaml +6 -6
- package/ide/configs/cursor-mcp.json +15 -0
- package/{configs → ide/configs}/gemini-cli-mcp.json +2 -2
- package/{configs → ide/configs}/jetbrains-mcp.json +2 -2
- package/{configs → ide/configs}/opencode-mcp.json +2 -2
- package/{configs → ide/configs}/perplexity-mcp.json +2 -2
- package/{configs → ide/configs}/vscode-copilot-mcp.json +2 -2
- package/{configs → ide/configs}/windsurf-mcp.json +3 -3
- package/{configs → ide/configs}/zed-mcp.json +2 -2
- package/{hooks → ide/hooks}/context-hook.js +9 -20
- package/ide/hooks/memory-list-skill.js +70 -0
- package/ide/hooks/memory-profile-skill.js +101 -0
- package/ide/hooks/memory-recall-skill.js +62 -0
- package/ide/hooks/memory-remember-skill.js +68 -0
- package/ide/hooks/memory-reset-skill.js +160 -0
- package/{hooks → ide/hooks}/post-recall-hook.js +2 -2
- package/ide/integrations/langchain/README.md +106 -0
- package/ide/integrations/langchain/langchain_superlocalmemory/__init__.py +9 -0
- package/ide/integrations/langchain/langchain_superlocalmemory/chat_message_history.py +201 -0
- package/ide/integrations/langchain/pyproject.toml +38 -0
- package/{src/learning → ide/integrations/langchain}/tests/__init__.py +1 -0
- package/ide/integrations/langchain/tests/test_chat_message_history.py +215 -0
- package/ide/integrations/langchain/tests/test_security.py +117 -0
- package/ide/integrations/llamaindex/README.md +81 -0
- package/ide/integrations/llamaindex/llama_index/storage/chat_store/superlocalmemory/__init__.py +9 -0
- package/ide/integrations/llamaindex/llama_index/storage/chat_store/superlocalmemory/base.py +316 -0
- package/ide/integrations/llamaindex/pyproject.toml +43 -0
- package/{src/lifecycle → ide/integrations/llamaindex}/tests/__init__.py +1 -2
- package/ide/integrations/llamaindex/tests/test_chat_store.py +294 -0
- package/ide/integrations/llamaindex/tests/test_security.py +241 -0
- package/{skills → ide/skills}/slm-build-graph/SKILL.md +6 -6
- package/{skills → ide/skills}/slm-list-recent/SKILL.md +5 -5
- package/{skills → ide/skills}/slm-recall/SKILL.md +5 -5
- package/{skills → ide/skills}/slm-remember/SKILL.md +6 -6
- package/{skills → ide/skills}/slm-show-patterns/SKILL.md +7 -7
- package/{skills → ide/skills}/slm-status/SKILL.md +9 -9
- package/{skills → ide/skills}/slm-switch-profile/SKILL.md +9 -9
- package/package.json +13 -22
- package/pyproject.toml +85 -0
- package/scripts/build-dmg.sh +417 -0
- package/scripts/install-skills.ps1 +334 -0
- package/scripts/postinstall.js +2 -2
- package/scripts/start-dashboard.ps1 +52 -0
- package/scripts/start-dashboard.sh +41 -0
- package/scripts/sync-wiki.ps1 +127 -0
- package/scripts/sync-wiki.sh +82 -0
- package/scripts/test-dmg.sh +161 -0
- package/scripts/test-npm-package.ps1 +252 -0
- package/scripts/test-npm-package.sh +207 -0
- package/scripts/verify-install.ps1 +294 -0
- package/scripts/verify-install.sh +266 -0
- package/src/superlocalmemory/__init__.py +0 -0
- package/src/superlocalmemory/attribution/__init__.py +9 -0
- package/src/superlocalmemory/attribution/mathematical_dna.py +235 -0
- package/src/superlocalmemory/attribution/signer.py +153 -0
- package/src/superlocalmemory/attribution/watermark.py +189 -0
- package/src/superlocalmemory/cli/__init__.py +5 -0
- package/src/superlocalmemory/cli/commands.py +245 -0
- package/src/superlocalmemory/cli/main.py +89 -0
- package/src/superlocalmemory/cli/migrate_cmd.py +55 -0
- package/src/superlocalmemory/cli/post_install.py +99 -0
- package/src/superlocalmemory/cli/setup_wizard.py +129 -0
- package/src/superlocalmemory/compliance/__init__.py +0 -0
- package/src/superlocalmemory/compliance/abac.py +204 -0
- package/src/superlocalmemory/compliance/audit.py +314 -0
- package/src/superlocalmemory/compliance/eu_ai_act.py +131 -0
- package/src/superlocalmemory/compliance/gdpr.py +294 -0
- package/src/superlocalmemory/compliance/lifecycle.py +158 -0
- package/src/superlocalmemory/compliance/retention.py +232 -0
- package/src/superlocalmemory/compliance/scheduler.py +148 -0
- package/src/superlocalmemory/core/__init__.py +0 -0
- package/src/superlocalmemory/core/config.py +391 -0
- package/src/superlocalmemory/core/embeddings.py +293 -0
- package/src/superlocalmemory/core/engine.py +701 -0
- package/src/superlocalmemory/core/hooks.py +65 -0
- package/src/superlocalmemory/core/maintenance.py +172 -0
- package/src/superlocalmemory/core/modes.py +140 -0
- package/src/superlocalmemory/core/profiles.py +234 -0
- package/src/superlocalmemory/core/registry.py +117 -0
- package/src/superlocalmemory/dynamics/__init__.py +0 -0
- package/src/superlocalmemory/dynamics/fisher_langevin_coupling.py +223 -0
- package/src/superlocalmemory/encoding/__init__.py +0 -0
- package/src/superlocalmemory/encoding/consolidator.py +485 -0
- package/src/superlocalmemory/encoding/emotional.py +125 -0
- package/src/superlocalmemory/encoding/entity_resolver.py +525 -0
- package/src/superlocalmemory/encoding/entropy_gate.py +104 -0
- package/src/superlocalmemory/encoding/fact_extractor.py +775 -0
- package/src/superlocalmemory/encoding/foresight.py +91 -0
- package/src/superlocalmemory/encoding/graph_builder.py +302 -0
- package/src/superlocalmemory/encoding/observation_builder.py +160 -0
- package/src/superlocalmemory/encoding/scene_builder.py +183 -0
- package/src/superlocalmemory/encoding/signal_inference.py +90 -0
- package/src/superlocalmemory/encoding/temporal_parser.py +426 -0
- package/src/superlocalmemory/encoding/type_router.py +235 -0
- package/src/superlocalmemory/hooks/__init__.py +3 -0
- package/src/superlocalmemory/hooks/auto_capture.py +111 -0
- package/src/superlocalmemory/hooks/auto_recall.py +93 -0
- package/src/superlocalmemory/hooks/ide_connector.py +204 -0
- package/src/superlocalmemory/hooks/rules_engine.py +99 -0
- package/src/superlocalmemory/infra/__init__.py +3 -0
- package/src/superlocalmemory/infra/auth_middleware.py +82 -0
- package/src/superlocalmemory/infra/backup.py +317 -0
- package/src/superlocalmemory/infra/cache_manager.py +267 -0
- package/src/superlocalmemory/infra/event_bus.py +381 -0
- package/src/superlocalmemory/infra/rate_limiter.py +135 -0
- package/src/{webhook_dispatcher.py → superlocalmemory/infra/webhook_dispatcher.py} +104 -101
- package/src/superlocalmemory/learning/__init__.py +0 -0
- package/src/superlocalmemory/learning/adaptive.py +172 -0
- package/src/superlocalmemory/learning/behavioral.py +490 -0
- package/src/superlocalmemory/learning/behavioral_listener.py +94 -0
- package/src/superlocalmemory/learning/bootstrap.py +298 -0
- package/src/superlocalmemory/learning/cross_project.py +399 -0
- package/src/superlocalmemory/learning/database.py +376 -0
- package/src/superlocalmemory/learning/engagement.py +323 -0
- package/src/superlocalmemory/learning/features.py +138 -0
- package/src/superlocalmemory/learning/feedback.py +316 -0
- package/src/superlocalmemory/learning/outcomes.py +255 -0
- package/src/superlocalmemory/learning/project_context.py +366 -0
- package/src/superlocalmemory/learning/ranker.py +155 -0
- package/src/superlocalmemory/learning/source_quality.py +303 -0
- package/src/superlocalmemory/learning/workflows.py +309 -0
- package/src/superlocalmemory/llm/__init__.py +0 -0
- package/src/superlocalmemory/llm/backbone.py +316 -0
- package/src/superlocalmemory/math/__init__.py +0 -0
- package/src/superlocalmemory/math/fisher.py +356 -0
- package/src/superlocalmemory/math/langevin.py +398 -0
- package/src/superlocalmemory/math/sheaf.py +257 -0
- package/src/superlocalmemory/mcp/__init__.py +0 -0
- package/src/superlocalmemory/mcp/resources.py +245 -0
- package/src/superlocalmemory/mcp/server.py +61 -0
- package/src/superlocalmemory/mcp/tools.py +18 -0
- package/src/superlocalmemory/mcp/tools_core.py +305 -0
- package/src/superlocalmemory/mcp/tools_v28.py +223 -0
- package/src/superlocalmemory/mcp/tools_v3.py +286 -0
- package/src/superlocalmemory/retrieval/__init__.py +0 -0
- package/src/superlocalmemory/retrieval/agentic.py +295 -0
- package/src/superlocalmemory/retrieval/ann_index.py +223 -0
- package/src/superlocalmemory/retrieval/bm25_channel.py +185 -0
- package/src/superlocalmemory/retrieval/bridge_discovery.py +170 -0
- package/src/superlocalmemory/retrieval/engine.py +390 -0
- package/src/superlocalmemory/retrieval/entity_channel.py +179 -0
- package/src/superlocalmemory/retrieval/fusion.py +78 -0
- package/src/superlocalmemory/retrieval/profile_channel.py +105 -0
- package/src/superlocalmemory/retrieval/reranker.py +154 -0
- package/src/superlocalmemory/retrieval/semantic_channel.py +232 -0
- package/src/superlocalmemory/retrieval/strategy.py +96 -0
- package/src/superlocalmemory/retrieval/temporal_channel.py +175 -0
- package/src/superlocalmemory/server/__init__.py +1 -0
- package/src/superlocalmemory/server/api.py +248 -0
- package/src/superlocalmemory/server/routes/__init__.py +4 -0
- package/src/superlocalmemory/server/routes/agents.py +107 -0
- package/src/superlocalmemory/server/routes/backup.py +91 -0
- package/src/superlocalmemory/server/routes/behavioral.py +127 -0
- package/src/superlocalmemory/server/routes/compliance.py +160 -0
- package/src/superlocalmemory/server/routes/data_io.py +188 -0
- package/src/superlocalmemory/server/routes/events.py +183 -0
- package/src/superlocalmemory/server/routes/helpers.py +85 -0
- package/src/superlocalmemory/server/routes/learning.py +273 -0
- package/src/superlocalmemory/server/routes/lifecycle.py +116 -0
- package/src/superlocalmemory/server/routes/memories.py +399 -0
- package/src/superlocalmemory/server/routes/profiles.py +219 -0
- package/src/superlocalmemory/server/routes/stats.py +346 -0
- package/src/superlocalmemory/server/routes/v3_api.py +365 -0
- package/src/superlocalmemory/server/routes/ws.py +82 -0
- package/src/superlocalmemory/server/security_middleware.py +57 -0
- package/src/superlocalmemory/server/ui.py +245 -0
- package/src/superlocalmemory/storage/__init__.py +0 -0
- package/src/superlocalmemory/storage/access_control.py +182 -0
- package/src/superlocalmemory/storage/database.py +594 -0
- package/src/superlocalmemory/storage/migrations.py +303 -0
- package/src/superlocalmemory/storage/models.py +406 -0
- package/src/superlocalmemory/storage/schema.py +726 -0
- package/src/superlocalmemory/storage/v2_migrator.py +317 -0
- package/src/superlocalmemory/trust/__init__.py +0 -0
- package/src/superlocalmemory/trust/gate.py +130 -0
- package/src/superlocalmemory/trust/provenance.py +124 -0
- package/src/superlocalmemory/trust/scorer.py +347 -0
- package/src/superlocalmemory/trust/signals.py +153 -0
- package/ui/index.html +278 -5
- package/ui/js/auto-settings.js +70 -0
- package/ui/js/dashboard.js +90 -0
- package/ui/js/fact-detail.js +92 -0
- package/ui/js/feedback.js +2 -2
- package/ui/js/ide-status.js +102 -0
- package/ui/js/math-health.js +98 -0
- package/ui/js/recall-lab.js +127 -0
- package/ui/js/settings.js +2 -2
- package/ui/js/trust-dashboard.js +73 -0
- package/api_server.py +0 -724
- package/bin/aider-smart +0 -72
- package/bin/superlocalmemoryv2-learning +0 -4
- package/bin/superlocalmemoryv2-list +0 -3
- package/bin/superlocalmemoryv2-patterns +0 -4
- package/bin/superlocalmemoryv2-profile +0 -3
- package/bin/superlocalmemoryv2-recall +0 -3
- package/bin/superlocalmemoryv2-remember +0 -3
- package/bin/superlocalmemoryv2-reset +0 -3
- package/bin/superlocalmemoryv2-status +0 -3
- package/configs/chatgpt-desktop-mcp.json +0 -16
- package/configs/cursor-mcp.json +0 -15
- package/hooks/memory-list-skill.js +0 -139
- package/hooks/memory-profile-skill.js +0 -273
- package/hooks/memory-recall-skill.js +0 -114
- package/hooks/memory-remember-skill.js +0 -127
- package/hooks/memory-reset-skill.js +0 -274
- package/mcp_server.py +0 -1808
- package/requirements-core.txt +0 -22
- package/requirements-learning.txt +0 -12
- package/requirements.txt +0 -12
- package/src/agent_registry.py +0 -411
- package/src/auth_middleware.py +0 -61
- package/src/auto_backup.py +0 -459
- package/src/behavioral/__init__.py +0 -49
- package/src/behavioral/behavioral_listener.py +0 -203
- package/src/behavioral/behavioral_patterns.py +0 -275
- package/src/behavioral/cross_project_transfer.py +0 -206
- package/src/behavioral/outcome_inference.py +0 -194
- package/src/behavioral/outcome_tracker.py +0 -193
- package/src/behavioral/tests/__init__.py +0 -4
- package/src/behavioral/tests/test_behavioral_integration.py +0 -108
- package/src/behavioral/tests/test_behavioral_patterns.py +0 -150
- package/src/behavioral/tests/test_cross_project_transfer.py +0 -142
- package/src/behavioral/tests/test_mcp_behavioral.py +0 -139
- package/src/behavioral/tests/test_mcp_report_outcome.py +0 -117
- package/src/behavioral/tests/test_outcome_inference.py +0 -107
- package/src/behavioral/tests/test_outcome_tracker.py +0 -96
- package/src/cache_manager.py +0 -518
- package/src/compliance/__init__.py +0 -48
- package/src/compliance/abac_engine.py +0 -149
- package/src/compliance/abac_middleware.py +0 -116
- package/src/compliance/audit_db.py +0 -215
- package/src/compliance/audit_logger.py +0 -148
- package/src/compliance/retention_manager.py +0 -289
- package/src/compliance/retention_scheduler.py +0 -186
- package/src/compliance/tests/__init__.py +0 -4
- package/src/compliance/tests/test_abac_enforcement.py +0 -95
- package/src/compliance/tests/test_abac_engine.py +0 -124
- package/src/compliance/tests/test_abac_mcp_integration.py +0 -118
- package/src/compliance/tests/test_audit_db.py +0 -123
- package/src/compliance/tests/test_audit_logger.py +0 -98
- package/src/compliance/tests/test_mcp_audit.py +0 -128
- package/src/compliance/tests/test_mcp_retention_policy.py +0 -125
- package/src/compliance/tests/test_retention_manager.py +0 -131
- package/src/compliance/tests/test_retention_scheduler.py +0 -99
- package/src/compression/__init__.py +0 -25
- package/src/compression/cli.py +0 -150
- package/src/compression/cold_storage.py +0 -217
- package/src/compression/config.py +0 -72
- package/src/compression/orchestrator.py +0 -133
- package/src/compression/tier2_compressor.py +0 -228
- package/src/compression/tier3_compressor.py +0 -153
- package/src/compression/tier_classifier.py +0 -148
- package/src/db_connection_manager.py +0 -536
- package/src/embedding_engine.py +0 -63
- package/src/embeddings/__init__.py +0 -47
- package/src/embeddings/cache.py +0 -70
- package/src/embeddings/cli.py +0 -113
- package/src/embeddings/constants.py +0 -47
- package/src/embeddings/database.py +0 -91
- package/src/embeddings/engine.py +0 -247
- package/src/embeddings/model_loader.py +0 -145
- package/src/event_bus.py +0 -562
- package/src/graph/__init__.py +0 -36
- package/src/graph/build_helpers.py +0 -74
- package/src/graph/cli.py +0 -87
- package/src/graph/cluster_builder.py +0 -188
- package/src/graph/cluster_summary.py +0 -148
- package/src/graph/constants.py +0 -47
- package/src/graph/edge_builder.py +0 -162
- package/src/graph/entity_extractor.py +0 -95
- package/src/graph/graph_core.py +0 -226
- package/src/graph/graph_search.py +0 -231
- package/src/graph/hierarchical.py +0 -207
- package/src/graph/schema.py +0 -99
- package/src/graph_engine.py +0 -52
- package/src/hnsw_index.py +0 -628
- package/src/hybrid_search.py +0 -46
- package/src/learning/__init__.py +0 -217
- package/src/learning/adaptive_ranker.py +0 -682
- package/src/learning/bootstrap/__init__.py +0 -69
- package/src/learning/bootstrap/constants.py +0 -93
- package/src/learning/bootstrap/db_queries.py +0 -316
- package/src/learning/bootstrap/sampling.py +0 -82
- package/src/learning/bootstrap/text_utils.py +0 -71
- package/src/learning/cross_project_aggregator.py +0 -857
- package/src/learning/db/__init__.py +0 -40
- package/src/learning/db/constants.py +0 -44
- package/src/learning/db/schema.py +0 -279
- package/src/learning/engagement_tracker.py +0 -628
- package/src/learning/feature_extractor.py +0 -708
- package/src/learning/feedback_collector.py +0 -806
- package/src/learning/learning_db.py +0 -915
- package/src/learning/project_context_manager.py +0 -572
- package/src/learning/ranking/__init__.py +0 -33
- package/src/learning/ranking/constants.py +0 -84
- package/src/learning/ranking/helpers.py +0 -278
- package/src/learning/source_quality_scorer.py +0 -676
- package/src/learning/synthetic_bootstrap.py +0 -755
- package/src/learning/tests/test_adaptive_ranker.py +0 -325
- package/src/learning/tests/test_adaptive_ranker_v28.py +0 -60
- package/src/learning/tests/test_aggregator.py +0 -306
- package/src/learning/tests/test_auto_retrain_v28.py +0 -35
- package/src/learning/tests/test_e2e_ranking_v28.py +0 -82
- package/src/learning/tests/test_feature_extractor_v28.py +0 -93
- package/src/learning/tests/test_feedback_collector.py +0 -294
- package/src/learning/tests/test_learning_db.py +0 -602
- package/src/learning/tests/test_learning_db_v28.py +0 -110
- package/src/learning/tests/test_learning_init_v28.py +0 -48
- package/src/learning/tests/test_outcome_signals.py +0 -48
- package/src/learning/tests/test_project_context.py +0 -292
- package/src/learning/tests/test_schema_migration.py +0 -319
- package/src/learning/tests/test_signal_inference.py +0 -397
- package/src/learning/tests/test_source_quality.py +0 -351
- package/src/learning/tests/test_synthetic_bootstrap.py +0 -429
- package/src/learning/tests/test_workflow_miner.py +0 -318
- package/src/learning/workflow_pattern_miner.py +0 -655
- package/src/lifecycle/__init__.py +0 -54
- package/src/lifecycle/bounded_growth.py +0 -239
- package/src/lifecycle/compaction_engine.py +0 -226
- package/src/lifecycle/lifecycle_engine.py +0 -355
- package/src/lifecycle/lifecycle_evaluator.py +0 -257
- package/src/lifecycle/lifecycle_scheduler.py +0 -130
- package/src/lifecycle/retention_policy.py +0 -285
- package/src/lifecycle/tests/test_bounded_growth.py +0 -193
- package/src/lifecycle/tests/test_compaction.py +0 -179
- package/src/lifecycle/tests/test_lifecycle_engine.py +0 -137
- package/src/lifecycle/tests/test_lifecycle_evaluation.py +0 -177
- package/src/lifecycle/tests/test_lifecycle_scheduler.py +0 -127
- package/src/lifecycle/tests/test_lifecycle_search.py +0 -109
- package/src/lifecycle/tests/test_mcp_compact.py +0 -149
- package/src/lifecycle/tests/test_mcp_lifecycle_status.py +0 -114
- package/src/lifecycle/tests/test_retention_policy.py +0 -162
- package/src/mcp_tools_v28.py +0 -281
- package/src/memory/__init__.py +0 -36
- package/src/memory/cli.py +0 -205
- package/src/memory/constants.py +0 -39
- package/src/memory/helpers.py +0 -28
- package/src/memory/schema.py +0 -166
- package/src/memory-profiles.py +0 -595
- package/src/memory-reset.py +0 -491
- package/src/memory_compression.py +0 -989
- package/src/memory_store_v2.py +0 -1155
- package/src/migrate_v1_to_v2.py +0 -629
- package/src/pattern_learner.py +0 -34
- package/src/patterns/__init__.py +0 -24
- package/src/patterns/analyzers.py +0 -251
- package/src/patterns/learner.py +0 -271
- package/src/patterns/scoring.py +0 -171
- package/src/patterns/store.py +0 -225
- package/src/patterns/terminology.py +0 -140
- package/src/provenance_tracker.py +0 -312
- package/src/qualixar_attribution.py +0 -139
- package/src/qualixar_watermark.py +0 -78
- package/src/query_optimizer.py +0 -511
- package/src/rate_limiter.py +0 -83
- package/src/search/__init__.py +0 -20
- package/src/search/cli.py +0 -77
- package/src/search/constants.py +0 -26
- package/src/search/engine.py +0 -241
- package/src/search/fusion.py +0 -122
- package/src/search/index_loader.py +0 -114
- package/src/search/methods.py +0 -162
- package/src/search_engine_v2.py +0 -401
- package/src/setup_validator.py +0 -482
- package/src/subscription_manager.py +0 -391
- package/src/tree/__init__.py +0 -59
- package/src/tree/builder.py +0 -185
- package/src/tree/nodes.py +0 -202
- package/src/tree/queries.py +0 -257
- package/src/tree/schema.py +0 -80
- package/src/tree_manager.py +0 -19
- package/src/trust/__init__.py +0 -45
- package/src/trust/constants.py +0 -66
- package/src/trust/queries.py +0 -157
- package/src/trust/schema.py +0 -95
- package/src/trust/scorer.py +0 -299
- package/src/trust/signals.py +0 -95
- package/src/trust_scorer.py +0 -44
- package/ui/app.js +0 -1588
- package/ui/js/graph-cytoscape-monolithic-backup.js +0 -1168
- package/ui/js/graph-cytoscape.js +0 -1168
- package/ui/js/graph-d3-backup.js +0 -32
- package/ui/js/graph.js +0 -32
- package/ui_server.py +0 -286
- /package/docs/{ACCESSIBILITY.md → v2-archive/ACCESSIBILITY.md} +0 -0
- /package/docs/{ARCHITECTURE.md → v2-archive/ARCHITECTURE.md} +0 -0
- /package/docs/{CLI-COMMANDS-REFERENCE.md → v2-archive/CLI-COMMANDS-REFERENCE.md} +0 -0
- /package/docs/{COMPRESSION-README.md → v2-archive/COMPRESSION-README.md} +0 -0
- /package/docs/{FRAMEWORK-INTEGRATIONS.md → v2-archive/FRAMEWORK-INTEGRATIONS.md} +0 -0
- /package/docs/{MCP-MANUAL-SETUP.md → v2-archive/MCP-MANUAL-SETUP.md} +0 -0
- /package/docs/{MCP-TROUBLESHOOTING.md → v2-archive/MCP-TROUBLESHOOTING.md} +0 -0
- /package/docs/{PATTERN-LEARNING.md → v2-archive/PATTERN-LEARNING.md} +0 -0
- /package/docs/{PROFILES-GUIDE.md → v2-archive/PROFILES-GUIDE.md} +0 -0
- /package/docs/{RESET-GUIDE.md → v2-archive/RESET-GUIDE.md} +0 -0
- /package/docs/{SEARCH-ENGINE-V2.2.0.md → v2-archive/SEARCH-ENGINE-V2.2.0.md} +0 -0
- /package/docs/{SEARCH-INTEGRATION-GUIDE.md → v2-archive/SEARCH-INTEGRATION-GUIDE.md} +0 -0
- /package/docs/{UI-SERVER.md → v2-archive/UI-SERVER.md} +0 -0
- /package/docs/{UNIVERSAL-INTEGRATION.md → v2-archive/UNIVERSAL-INTEGRATION.md} +0 -0
- /package/docs/{V2.2.0-OPTIONAL-SEARCH.md → v2-archive/V2.2.0-OPTIONAL-SEARCH.md} +0 -0
- /package/docs/{WINDOWS-INSTALL-README.txt → v2-archive/WINDOWS-INSTALL-README.txt} +0 -0
- /package/docs/{WINDOWS-POST-INSTALL.txt → v2-archive/WINDOWS-POST-INSTALL.txt} +0 -0
- /package/docs/{example_graph_usage.py → v2-archive/example_graph_usage.py} +0 -0
- /package/{completions → ide/completions}/slm.bash +0 -0
- /package/{completions → ide/completions}/slm.zsh +0 -0
- /package/{configs → ide/configs}/cody-commands.json +0 -0
- /package/{install-skills.sh → scripts/install-skills.sh} +0 -0
- /package/{install.ps1 → scripts/install.ps1} +0 -0
- /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 ""
|
package/scripts/postinstall.js
CHANGED
|
@@ -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 "╚══════════════════════════════════════════════════════════════╝"
|