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.
- package/LICENSE +9 -1
- package/NOTICE +63 -0
- package/README.md +165 -480
- package/bin/slm +17 -449
- package/bin/slm-npm +1 -1
- 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,294 @@
|
|
|
1
|
+
# ============================================================================
|
|
2
|
+
# SuperLocalMemory - Installation Verification Script (PowerShell)
|
|
3
|
+
# Copyright (c) 2026 Varun Pratap Bhardwaj
|
|
4
|
+
# Licensed under MIT License
|
|
5
|
+
# ============================================================================
|
|
6
|
+
|
|
7
|
+
$ErrorActionPreference = "Continue"
|
|
8
|
+
|
|
9
|
+
$INSTALL_DIR = Join-Path $env:USERPROFILE ".claude-memory"
|
|
10
|
+
|
|
11
|
+
# Print banner
|
|
12
|
+
Write-Host ""
|
|
13
|
+
Write-Host "=================================================================="
|
|
14
|
+
Write-Host " SuperLocalMemory - Installation Verification "
|
|
15
|
+
Write-Host " by Varun Pratap Bhardwaj "
|
|
16
|
+
Write-Host "=================================================================="
|
|
17
|
+
Write-Host ""
|
|
18
|
+
|
|
19
|
+
# Track status
|
|
20
|
+
$CORE_OK = $true
|
|
21
|
+
$SEARCH_OK = $false
|
|
22
|
+
$UI_OK = $false
|
|
23
|
+
$ERRORS = @()
|
|
24
|
+
|
|
25
|
+
# ============================================================================
|
|
26
|
+
# CORE INSTALLATION CHECK
|
|
27
|
+
# ============================================================================
|
|
28
|
+
|
|
29
|
+
Write-Host "================================================================"
|
|
30
|
+
Write-Host "1. Core Installation"
|
|
31
|
+
Write-Host "================================================================"
|
|
32
|
+
Write-Host ""
|
|
33
|
+
|
|
34
|
+
# Check Python version
|
|
35
|
+
Write-Host -NoNewline "Python 3.8+ "
|
|
36
|
+
try {
|
|
37
|
+
$pythonVersion = & python -c "import sys; print(f'{sys.version_info.major}.{sys.version_info.minor}')" 2>&1
|
|
38
|
+
$pythonMajor = & python -c "import sys; print(sys.version_info.major)" 2>&1
|
|
39
|
+
$pythonMinor = & python -c "import sys; print(sys.version_info.minor)" 2>&1
|
|
40
|
+
|
|
41
|
+
if ([int]$pythonMajor -lt 3 -or ([int]$pythonMajor -eq 3 -and [int]$pythonMinor -lt 8)) {
|
|
42
|
+
Write-Host "FAIL (found $pythonVersion)" -ForegroundColor Red
|
|
43
|
+
$CORE_OK = $false
|
|
44
|
+
$ERRORS += "Python 3.8+ required"
|
|
45
|
+
} else {
|
|
46
|
+
Write-Host "OK (v$pythonVersion)" -ForegroundColor Green
|
|
47
|
+
}
|
|
48
|
+
} catch {
|
|
49
|
+
Write-Host "FAIL (Python not found)" -ForegroundColor Red
|
|
50
|
+
$CORE_OK = $false
|
|
51
|
+
$ERRORS += "Python not installed"
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
# Check installation directory
|
|
55
|
+
Write-Host -NoNewline "Installation directory "
|
|
56
|
+
if (Test-Path $INSTALL_DIR) {
|
|
57
|
+
Write-Host "OK ($INSTALL_DIR)" -ForegroundColor Green
|
|
58
|
+
} else {
|
|
59
|
+
Write-Host "FAIL (not found)" -ForegroundColor Red
|
|
60
|
+
$CORE_OK = $false
|
|
61
|
+
$ERRORS += "Installation directory missing"
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
# Check core files
|
|
65
|
+
Write-Host -NoNewline "Core scripts "
|
|
66
|
+
$coreFiles = @("memory_store_v2.py", "graph_engine.py", "pattern_learner.py")
|
|
67
|
+
$missingFiles = @()
|
|
68
|
+
foreach ($file in $coreFiles) {
|
|
69
|
+
$filePath = Join-Path $INSTALL_DIR $file
|
|
70
|
+
if (-not (Test-Path $filePath)) {
|
|
71
|
+
$missingFiles += $file
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
if ($missingFiles.Count -eq 0) {
|
|
76
|
+
Write-Host "OK" -ForegroundColor Green
|
|
77
|
+
} else {
|
|
78
|
+
Write-Host "FAIL (missing: $($missingFiles -join ', '))" -ForegroundColor Red
|
|
79
|
+
$CORE_OK = $false
|
|
80
|
+
$ERRORS += "Core scripts missing"
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
# Check CLI wrappers
|
|
84
|
+
Write-Host -NoNewline "CLI wrappers "
|
|
85
|
+
$binDir = Join-Path $INSTALL_DIR "bin"
|
|
86
|
+
if (Test-Path $binDir) {
|
|
87
|
+
Write-Host "OK" -ForegroundColor Green
|
|
88
|
+
} else {
|
|
89
|
+
Write-Host "FAIL" -ForegroundColor Red
|
|
90
|
+
$CORE_OK = $false
|
|
91
|
+
$ERRORS += "CLI wrappers missing"
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
# Check PATH configuration
|
|
95
|
+
Write-Host -NoNewline "PATH configuration "
|
|
96
|
+
$userPath = [Environment]::GetEnvironmentVariable("PATH", "User")
|
|
97
|
+
if ($userPath -like "*$binDir*") {
|
|
98
|
+
Write-Host "OK (commands globally available)" -ForegroundColor Green
|
|
99
|
+
} else {
|
|
100
|
+
Write-Host "WARNING (not in PATH)" -ForegroundColor Yellow
|
|
101
|
+
$ERRORS += "PATH not configured - add manually or re-run installer"
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
# Check database
|
|
105
|
+
Write-Host -NoNewline "Database "
|
|
106
|
+
$dbPath = Join-Path $INSTALL_DIR "memory.db"
|
|
107
|
+
if (Test-Path $dbPath) {
|
|
108
|
+
$dbSize = [math]::Round((Get-Item $dbPath).Length / 1KB, 2)
|
|
109
|
+
Write-Host "OK ($dbSize KB)" -ForegroundColor Green
|
|
110
|
+
} else {
|
|
111
|
+
Write-Host "NOT CREATED (will be created on first use)" -ForegroundColor Yellow
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
# Check config
|
|
115
|
+
Write-Host -NoNewline "Configuration "
|
|
116
|
+
$configPath = Join-Path $INSTALL_DIR "config.json"
|
|
117
|
+
if (Test-Path $configPath) {
|
|
118
|
+
Write-Host "OK" -ForegroundColor Green
|
|
119
|
+
} else {
|
|
120
|
+
Write-Host "WARNING (using defaults)" -ForegroundColor Yellow
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
Write-Host ""
|
|
124
|
+
|
|
125
|
+
# ============================================================================
|
|
126
|
+
# OPTIONAL FEATURES CHECK
|
|
127
|
+
# ============================================================================
|
|
128
|
+
|
|
129
|
+
Write-Host "================================================================"
|
|
130
|
+
Write-Host "2. Optional Features"
|
|
131
|
+
Write-Host "================================================================"
|
|
132
|
+
Write-Host ""
|
|
133
|
+
|
|
134
|
+
# Advanced Search
|
|
135
|
+
Write-Host -NoNewline "Advanced Search "
|
|
136
|
+
try {
|
|
137
|
+
& python -c "import sentence_transformers; import hnswlib" 2>$null
|
|
138
|
+
Write-Host "ENABLED" -ForegroundColor Green
|
|
139
|
+
$SEARCH_OK = $true
|
|
140
|
+
} catch {
|
|
141
|
+
Write-Host "DISABLED" -ForegroundColor Yellow
|
|
142
|
+
Write-Host " Install: pip install -r requirements-search.txt"
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
# Web Dashboard
|
|
146
|
+
Write-Host -NoNewline "Web Dashboard "
|
|
147
|
+
try {
|
|
148
|
+
& python -c "import fastapi; import uvicorn" 2>$null
|
|
149
|
+
Write-Host "ENABLED" -ForegroundColor Green
|
|
150
|
+
$UI_OK = $true
|
|
151
|
+
$apiServerPath = Join-Path $INSTALL_DIR "api_server.py"
|
|
152
|
+
if (Test-Path $apiServerPath) {
|
|
153
|
+
Write-Host " Start: python $apiServerPath"
|
|
154
|
+
Write-Host " URL: http://127.0.0.1:8000"
|
|
155
|
+
}
|
|
156
|
+
} catch {
|
|
157
|
+
Write-Host "DISABLED" -ForegroundColor Yellow
|
|
158
|
+
Write-Host " Install: pip install -r requirements-ui.txt"
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
Write-Host ""
|
|
162
|
+
|
|
163
|
+
# ============================================================================
|
|
164
|
+
# PERFORMANCE QUICK TEST
|
|
165
|
+
# ============================================================================
|
|
166
|
+
|
|
167
|
+
if ($CORE_OK) {
|
|
168
|
+
Write-Host "================================================================"
|
|
169
|
+
Write-Host "3. Performance Quick Test"
|
|
170
|
+
Write-Host "================================================================"
|
|
171
|
+
Write-Host ""
|
|
172
|
+
|
|
173
|
+
# Test memory store initialization
|
|
174
|
+
Write-Host -NoNewline "Memory store init "
|
|
175
|
+
try {
|
|
176
|
+
& python -c "import sys; sys.path.insert(0, '$INSTALL_DIR'); from memory_store_v2 import MemoryStoreV2; store = MemoryStoreV2()" 2>$null
|
|
177
|
+
Write-Host "OK" -ForegroundColor Green
|
|
178
|
+
} catch {
|
|
179
|
+
Write-Host "FAIL" -ForegroundColor Red
|
|
180
|
+
$ERRORS += "Memory store initialization failed"
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
# Test database query
|
|
184
|
+
Write-Host -NoNewline "Database query "
|
|
185
|
+
$startTime = Get-Date
|
|
186
|
+
try {
|
|
187
|
+
& python -c "import sys; sys.path.insert(0, '$INSTALL_DIR'); from memory_store_v2 import MemoryStoreV2; store = MemoryStoreV2(); list(store.list_all(limit=1))" 2>$null
|
|
188
|
+
$endTime = Get-Date
|
|
189
|
+
$duration = [math]::Round(($endTime - $startTime).TotalMilliseconds, 0)
|
|
190
|
+
Write-Host "OK ($duration ms)" -ForegroundColor Green
|
|
191
|
+
} catch {
|
|
192
|
+
Write-Host "FAIL" -ForegroundColor Red
|
|
193
|
+
$ERRORS += "Database query failed"
|
|
194
|
+
}
|
|
195
|
+
|
|
196
|
+
Write-Host ""
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
# ============================================================================
|
|
200
|
+
# SUMMARY
|
|
201
|
+
# ============================================================================
|
|
202
|
+
|
|
203
|
+
Write-Host "================================================================"
|
|
204
|
+
Write-Host "4. Summary"
|
|
205
|
+
Write-Host "================================================================"
|
|
206
|
+
Write-Host ""
|
|
207
|
+
|
|
208
|
+
if ($CORE_OK) {
|
|
209
|
+
Write-Host "Core Installation: WORKING" -ForegroundColor Green
|
|
210
|
+
} else {
|
|
211
|
+
Write-Host "Core Installation: FAILED" -ForegroundColor Red
|
|
212
|
+
}
|
|
213
|
+
|
|
214
|
+
if ($SEARCH_OK) {
|
|
215
|
+
Write-Host "Advanced Search: ENABLED" -ForegroundColor Green
|
|
216
|
+
} else {
|
|
217
|
+
Write-Host "Advanced Search: DISABLED (optional)" -ForegroundColor Yellow
|
|
218
|
+
}
|
|
219
|
+
|
|
220
|
+
if ($UI_OK) {
|
|
221
|
+
Write-Host "Web Dashboard: ENABLED" -ForegroundColor Green
|
|
222
|
+
} else {
|
|
223
|
+
Write-Host "Web Dashboard: DISABLED (optional)" -ForegroundColor Yellow
|
|
224
|
+
}
|
|
225
|
+
|
|
226
|
+
Write-Host ""
|
|
227
|
+
|
|
228
|
+
# Feature Status
|
|
229
|
+
Write-Host "Feature Status:"
|
|
230
|
+
if ($CORE_OK) {
|
|
231
|
+
Write-Host " - Basic CLI commands: Available" -ForegroundColor Green
|
|
232
|
+
Write-Host " - MCP Server: Available" -ForegroundColor Green
|
|
233
|
+
Write-Host " - Skills: Available" -ForegroundColor Green
|
|
234
|
+
} else {
|
|
235
|
+
Write-Host " - Basic CLI commands: Not available" -ForegroundColor Red
|
|
236
|
+
Write-Host " - MCP Server: Not available" -ForegroundColor Red
|
|
237
|
+
Write-Host " - Skills: Not available" -ForegroundColor Red
|
|
238
|
+
}
|
|
239
|
+
|
|
240
|
+
if ($SEARCH_OK) {
|
|
241
|
+
Write-Host " - Semantic Search: Enabled" -ForegroundColor Green
|
|
242
|
+
} else {
|
|
243
|
+
Write-Host " - Semantic Search: Disabled" -ForegroundColor Yellow
|
|
244
|
+
}
|
|
245
|
+
|
|
246
|
+
if ($UI_OK) {
|
|
247
|
+
Write-Host " - Web Interface: Enabled" -ForegroundColor Green
|
|
248
|
+
} else {
|
|
249
|
+
Write-Host " - Web Interface: Disabled" -ForegroundColor Yellow
|
|
250
|
+
}
|
|
251
|
+
|
|
252
|
+
Write-Host ""
|
|
253
|
+
|
|
254
|
+
# Errors
|
|
255
|
+
if ($ERRORS.Count -gt 0) {
|
|
256
|
+
Write-Host "Errors detected:" -ForegroundColor Yellow
|
|
257
|
+
foreach ($error in $ERRORS) {
|
|
258
|
+
Write-Host " - $error"
|
|
259
|
+
}
|
|
260
|
+
Write-Host ""
|
|
261
|
+
}
|
|
262
|
+
|
|
263
|
+
# Next Steps
|
|
264
|
+
Write-Host "Next Steps:"
|
|
265
|
+
Write-Host ""
|
|
266
|
+
|
|
267
|
+
if ($CORE_OK) {
|
|
268
|
+
Write-Host " Try it now:"
|
|
269
|
+
Write-Host " python $INSTALL_DIR\memory_store_v2.py"
|
|
270
|
+
Write-Host ""
|
|
271
|
+
|
|
272
|
+
if (-not $SEARCH_OK -and -not $UI_OK) {
|
|
273
|
+
Write-Host " Install optional features:"
|
|
274
|
+
Write-Host " pip install -r requirements-search.txt # Advanced search"
|
|
275
|
+
Write-Host " pip install -r requirements-ui.txt # Web dashboard"
|
|
276
|
+
Write-Host " pip install -r requirements-full.txt # Everything"
|
|
277
|
+
Write-Host ""
|
|
278
|
+
}
|
|
279
|
+
} else {
|
|
280
|
+
Write-Host " Fix installation issues:"
|
|
281
|
+
Write-Host " Run: .\install.ps1"
|
|
282
|
+
Write-Host ""
|
|
283
|
+
}
|
|
284
|
+
|
|
285
|
+
# Exit code
|
|
286
|
+
if ($CORE_OK) {
|
|
287
|
+
Write-Host "Installation verification PASSED" -ForegroundColor Green
|
|
288
|
+
Write-Host ""
|
|
289
|
+
exit 0
|
|
290
|
+
} else {
|
|
291
|
+
Write-Host "Installation verification FAILED" -ForegroundColor Red
|
|
292
|
+
Write-Host ""
|
|
293
|
+
exit 1
|
|
294
|
+
}
|
|
@@ -0,0 +1,266 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
# ============================================================================
|
|
3
|
+
# SuperLocalMemory - Installation Verification Script
|
|
4
|
+
# Copyright (c) 2026 Varun Pratap Bhardwaj
|
|
5
|
+
# Licensed under MIT License
|
|
6
|
+
# Repository: https://github.com/varun369/SuperLocalMemoryV2
|
|
7
|
+
# ============================================================================
|
|
8
|
+
|
|
9
|
+
set -e
|
|
10
|
+
|
|
11
|
+
INSTALL_DIR="${HOME}/.claude-memory"
|
|
12
|
+
|
|
13
|
+
# Print banner
|
|
14
|
+
echo ""
|
|
15
|
+
echo "╔══════════════════════════════════════════════════════════════╗"
|
|
16
|
+
echo "║ SuperLocalMemory - Installation Verification ║"
|
|
17
|
+
echo "║ by Varun Pratap Bhardwaj ║"
|
|
18
|
+
echo "╚══════════════════════════════════════════════════════════════╝"
|
|
19
|
+
echo ""
|
|
20
|
+
|
|
21
|
+
# Track status
|
|
22
|
+
CORE_OK=true
|
|
23
|
+
SEARCH_OK=false
|
|
24
|
+
UI_OK=false
|
|
25
|
+
ERRORS=()
|
|
26
|
+
|
|
27
|
+
# ============================================================================
|
|
28
|
+
# CORE INSTALLATION CHECK
|
|
29
|
+
# ============================================================================
|
|
30
|
+
|
|
31
|
+
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
|
32
|
+
echo "1. Core Installation"
|
|
33
|
+
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
|
34
|
+
echo ""
|
|
35
|
+
|
|
36
|
+
# Check Python version
|
|
37
|
+
echo -n "Python 3.8+ "
|
|
38
|
+
PYTHON_VERSION=$(python3 -c 'import sys; print(f"{sys.version_info.major}.{sys.version_info.minor}")')
|
|
39
|
+
PYTHON_MAJOR=$(python3 -c 'import sys; print(sys.version_info.major)')
|
|
40
|
+
PYTHON_MINOR=$(python3 -c 'import sys; print(sys.version_info.minor)')
|
|
41
|
+
|
|
42
|
+
if [ "$PYTHON_MAJOR" -lt 3 ] || ([ "$PYTHON_MAJOR" -eq 3 ] && [ "$PYTHON_MINOR" -lt 8 ]); then
|
|
43
|
+
echo "✗ FAIL (found $PYTHON_VERSION)"
|
|
44
|
+
CORE_OK=false
|
|
45
|
+
ERRORS+=("Python 3.8+ required")
|
|
46
|
+
else
|
|
47
|
+
echo "✓ OK (v$PYTHON_VERSION)"
|
|
48
|
+
fi
|
|
49
|
+
|
|
50
|
+
# Check installation directory
|
|
51
|
+
echo -n "Installation directory "
|
|
52
|
+
if [ -d "${INSTALL_DIR}" ]; then
|
|
53
|
+
echo "✓ OK (${INSTALL_DIR})"
|
|
54
|
+
else
|
|
55
|
+
echo "✗ FAIL (not found)"
|
|
56
|
+
CORE_OK=false
|
|
57
|
+
ERRORS+=("Installation directory missing")
|
|
58
|
+
fi
|
|
59
|
+
|
|
60
|
+
# Check core files
|
|
61
|
+
echo -n "Core scripts "
|
|
62
|
+
MISSING_FILES=()
|
|
63
|
+
for file in memory_store_v2.py graph_engine.py pattern_learner.py; do
|
|
64
|
+
if [ ! -f "${INSTALL_DIR}/${file}" ]; then
|
|
65
|
+
MISSING_FILES+=("${file}")
|
|
66
|
+
fi
|
|
67
|
+
done
|
|
68
|
+
|
|
69
|
+
if [ ${#MISSING_FILES[@]} -eq 0 ]; then
|
|
70
|
+
echo "✓ OK"
|
|
71
|
+
else
|
|
72
|
+
echo "✗ FAIL (missing: ${MISSING_FILES[*]})"
|
|
73
|
+
CORE_OK=false
|
|
74
|
+
ERRORS+=("Core scripts missing")
|
|
75
|
+
fi
|
|
76
|
+
|
|
77
|
+
# Check CLI wrappers
|
|
78
|
+
echo -n "CLI wrappers "
|
|
79
|
+
if [ -d "${INSTALL_DIR}/bin" ] && [ -x "${INSTALL_DIR}/bin/slm" ]; then
|
|
80
|
+
echo "✓ OK"
|
|
81
|
+
else
|
|
82
|
+
echo "✗ FAIL"
|
|
83
|
+
CORE_OK=false
|
|
84
|
+
ERRORS+=("CLI wrappers missing or not executable")
|
|
85
|
+
fi
|
|
86
|
+
|
|
87
|
+
# Check PATH configuration
|
|
88
|
+
echo -n "PATH configuration "
|
|
89
|
+
if command -v slm &>/dev/null; then
|
|
90
|
+
echo "✓ OK (commands globally available)"
|
|
91
|
+
elif grep -q ".claude-memory/bin" "${HOME}/.zshrc" 2>/dev/null || grep -q ".claude-memory/bin" "${HOME}/.bashrc" 2>/dev/null || grep -q ".claude-memory/bin" "${HOME}/.bash_profile" 2>/dev/null; then
|
|
92
|
+
echo "○ PARTIAL (configured but needs shell restart)"
|
|
93
|
+
else
|
|
94
|
+
echo "⚠️ WARNING (not in PATH)"
|
|
95
|
+
ERRORS+=("PATH not configured - run: source ~/.zshrc (or ~/.bashrc)")
|
|
96
|
+
fi
|
|
97
|
+
|
|
98
|
+
# Check database
|
|
99
|
+
echo -n "Database "
|
|
100
|
+
if [ -f "${INSTALL_DIR}/memory.db" ]; then
|
|
101
|
+
DB_SIZE=$(du -h "${INSTALL_DIR}/memory.db" | cut -f1)
|
|
102
|
+
echo "✓ OK (${DB_SIZE})"
|
|
103
|
+
else
|
|
104
|
+
echo "○ NOT CREATED (will be created on first use)"
|
|
105
|
+
fi
|
|
106
|
+
|
|
107
|
+
# Check config
|
|
108
|
+
echo -n "Configuration "
|
|
109
|
+
if [ -f "${INSTALL_DIR}/config.json" ]; then
|
|
110
|
+
echo "✓ OK"
|
|
111
|
+
else
|
|
112
|
+
echo "⚠️ WARNING (using defaults)"
|
|
113
|
+
fi
|
|
114
|
+
|
|
115
|
+
echo ""
|
|
116
|
+
|
|
117
|
+
# ============================================================================
|
|
118
|
+
# OPTIONAL FEATURES CHECK
|
|
119
|
+
# ============================================================================
|
|
120
|
+
|
|
121
|
+
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
|
122
|
+
echo "2. Optional Features"
|
|
123
|
+
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
|
124
|
+
echo ""
|
|
125
|
+
|
|
126
|
+
# Advanced Search
|
|
127
|
+
echo -n "Advanced Search "
|
|
128
|
+
if python3 -c "import sentence_transformers; import hnswlib" 2>/dev/null; then
|
|
129
|
+
echo "✓ ENABLED"
|
|
130
|
+
SEARCH_OK=true
|
|
131
|
+
else
|
|
132
|
+
echo "○ DISABLED"
|
|
133
|
+
echo " Install: pip3 install -r requirements-search.txt"
|
|
134
|
+
fi
|
|
135
|
+
|
|
136
|
+
# Web Dashboard
|
|
137
|
+
echo -n "Web Dashboard "
|
|
138
|
+
if python3 -c "import fastapi; import uvicorn" 2>/dev/null; then
|
|
139
|
+
echo "✓ ENABLED"
|
|
140
|
+
UI_OK=true
|
|
141
|
+
if [ -f "${INSTALL_DIR}/api_server.py" ]; then
|
|
142
|
+
echo " Start: python3 ~/.claude-memory/api_server.py"
|
|
143
|
+
echo " URL: http://127.0.0.1:8000"
|
|
144
|
+
fi
|
|
145
|
+
else
|
|
146
|
+
echo "○ DISABLED"
|
|
147
|
+
echo " Install: pip3 install -r requirements-ui.txt"
|
|
148
|
+
fi
|
|
149
|
+
|
|
150
|
+
echo ""
|
|
151
|
+
|
|
152
|
+
# ============================================================================
|
|
153
|
+
# PERFORMANCE QUICK TEST
|
|
154
|
+
# ============================================================================
|
|
155
|
+
|
|
156
|
+
if $CORE_OK; then
|
|
157
|
+
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
|
158
|
+
echo "3. Performance Quick Test"
|
|
159
|
+
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
|
160
|
+
echo ""
|
|
161
|
+
|
|
162
|
+
# Test memory store initialization
|
|
163
|
+
echo -n "Memory store init "
|
|
164
|
+
if python3 -c "import sys; sys.path.insert(0, '${INSTALL_DIR}'); from memory_store_v2 import MemoryStoreV2; store = MemoryStoreV2()" 2>/dev/null; then
|
|
165
|
+
echo "✓ OK"
|
|
166
|
+
else
|
|
167
|
+
echo "✗ FAIL"
|
|
168
|
+
ERRORS+=("Memory store initialization failed")
|
|
169
|
+
fi
|
|
170
|
+
|
|
171
|
+
# Test database query
|
|
172
|
+
echo -n "Database query "
|
|
173
|
+
START_TIME=$(python3 -c "import time; print(time.time())")
|
|
174
|
+
if python3 -c "import sys; sys.path.insert(0, '${INSTALL_DIR}'); from memory_store_v2 import MemoryStoreV2; store = MemoryStoreV2(); list(store.list_all(limit=1))" 2>/dev/null; then
|
|
175
|
+
END_TIME=$(python3 -c "import time; print(time.time())")
|
|
176
|
+
DURATION=$(python3 -c "print(f'{($END_TIME - $START_TIME) * 1000:.0f}ms')" 2>/dev/null || echo "OK")
|
|
177
|
+
echo "✓ OK ($DURATION)"
|
|
178
|
+
else
|
|
179
|
+
echo "✗ FAIL"
|
|
180
|
+
ERRORS+=("Database query failed")
|
|
181
|
+
fi
|
|
182
|
+
|
|
183
|
+
echo ""
|
|
184
|
+
fi
|
|
185
|
+
|
|
186
|
+
# ============================================================================
|
|
187
|
+
# SUMMARY
|
|
188
|
+
# ============================================================================
|
|
189
|
+
|
|
190
|
+
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
|
191
|
+
echo "4. Summary"
|
|
192
|
+
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
|
193
|
+
echo ""
|
|
194
|
+
|
|
195
|
+
if $CORE_OK; then
|
|
196
|
+
echo "✓ Core Installation: WORKING"
|
|
197
|
+
else
|
|
198
|
+
echo "✗ Core Installation: FAILED"
|
|
199
|
+
fi
|
|
200
|
+
|
|
201
|
+
if $SEARCH_OK; then
|
|
202
|
+
echo "✓ Advanced Search: ENABLED"
|
|
203
|
+
else
|
|
204
|
+
echo "○ Advanced Search: DISABLED (optional)"
|
|
205
|
+
fi
|
|
206
|
+
|
|
207
|
+
if $UI_OK; then
|
|
208
|
+
echo "✓ Web Dashboard: ENABLED"
|
|
209
|
+
else
|
|
210
|
+
echo "○ Web Dashboard: DISABLED (optional)"
|
|
211
|
+
fi
|
|
212
|
+
|
|
213
|
+
echo ""
|
|
214
|
+
|
|
215
|
+
# Feature Status
|
|
216
|
+
echo "Feature Status:"
|
|
217
|
+
echo " • Basic CLI commands: $(if $CORE_OK; then echo '✓ Available'; else echo '✗ Not available'; fi)"
|
|
218
|
+
echo " • MCP Server: $(if $CORE_OK; then echo '✓ Available'; else echo '✗ Not available'; fi)"
|
|
219
|
+
echo " • Skills: $(if $CORE_OK; then echo '✓ Available'; else echo '✗ Not available'; fi)"
|
|
220
|
+
echo " • Semantic Search: $(if $SEARCH_OK; then echo '✓ Enabled'; else echo '○ Disabled'; fi)"
|
|
221
|
+
echo " • Web Interface: $(if $UI_OK; then echo '✓ Enabled'; else echo '○ Disabled'; fi)"
|
|
222
|
+
echo ""
|
|
223
|
+
|
|
224
|
+
# Errors
|
|
225
|
+
if [ ${#ERRORS[@]} -gt 0 ]; then
|
|
226
|
+
echo "⚠️ Errors detected:"
|
|
227
|
+
for error in "${ERRORS[@]}"; do
|
|
228
|
+
echo " • $error"
|
|
229
|
+
done
|
|
230
|
+
echo ""
|
|
231
|
+
fi
|
|
232
|
+
|
|
233
|
+
# Next Steps
|
|
234
|
+
echo "Next Steps:"
|
|
235
|
+
echo ""
|
|
236
|
+
|
|
237
|
+
if $CORE_OK; then
|
|
238
|
+
echo " Try it now:"
|
|
239
|
+
echo " slm status"
|
|
240
|
+
echo " slm remember 'My first memory'"
|
|
241
|
+
echo " slm recall 'first'"
|
|
242
|
+
echo ""
|
|
243
|
+
|
|
244
|
+
if ! $SEARCH_OK && ! $UI_OK; then
|
|
245
|
+
echo " Install optional features:"
|
|
246
|
+
echo " pip3 install -r requirements-search.txt # Advanced search"
|
|
247
|
+
echo " pip3 install -r requirements-ui.txt # Web dashboard"
|
|
248
|
+
echo " pip3 install -r requirements-full.txt # Everything"
|
|
249
|
+
echo ""
|
|
250
|
+
fi
|
|
251
|
+
else
|
|
252
|
+
echo " Fix installation issues:"
|
|
253
|
+
echo " ./install.sh"
|
|
254
|
+
echo ""
|
|
255
|
+
fi
|
|
256
|
+
|
|
257
|
+
# Exit code
|
|
258
|
+
if $CORE_OK; then
|
|
259
|
+
echo "✓ Installation verification PASSED"
|
|
260
|
+
echo ""
|
|
261
|
+
exit 0
|
|
262
|
+
else
|
|
263
|
+
echo "✗ Installation verification FAILED"
|
|
264
|
+
echo ""
|
|
265
|
+
exit 1
|
|
266
|
+
fi
|
|
File without changes
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"""Attribution — Multi-layer provenance and ownership protection.
|
|
2
|
+
|
|
3
|
+
Part of Qualixar | Author: Varun Pratap Bhardwaj
|
|
4
|
+
"""
|
|
5
|
+
|
|
6
|
+
from superlocalmemory.attribution.signer import QualixarSigner
|
|
7
|
+
from superlocalmemory.attribution.watermark import QualixarWatermark
|
|
8
|
+
|
|
9
|
+
__all__ = ["QualixarSigner", "QualixarWatermark"]
|