superlocalmemory 2.8.5 → 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/CHANGELOG.md +11 -0
- package/LICENSE +9 -1
- package/NOTICE +63 -0
- package/README.md +165 -480
- package/bin/slm +17 -449
- package/bin/slm-npm +2 -2
- package/bin/slm.bat +4 -2
- 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/{install.ps1 → scripts/install.ps1} +36 -4
- package/{install.sh → scripts/install.sh} +14 -13
- 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/docs/SECURITY-QUICK-REFERENCE.md +0 -214
- 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 -1800
- 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 -266
- /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
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
# SuperLocalMemory
|
|
1
|
+
# SuperLocalMemory V3 - Codex CLI MCP Configuration
|
|
2
2
|
# Copyright (c) 2026 Varun Pratap Bhardwaj
|
|
3
3
|
# Licensed under MIT License
|
|
4
4
|
#
|
|
5
5
|
# Auto-configured by install.sh or use: codex mcp add
|
|
6
6
|
# Manual: Copy this to ~/.codex/config.toml
|
|
7
7
|
|
|
8
|
-
[mcp_servers.superlocalmemory
|
|
8
|
+
[mcp_servers.superlocalmemory]
|
|
9
9
|
command = "python3"
|
|
10
|
-
args = ["
|
|
10
|
+
args = ["-m", "superlocalmemory.mcp.server"]
|
|
11
11
|
|
|
12
|
-
[mcp_servers.superlocalmemory
|
|
12
|
+
[mcp_servers.superlocalmemory.env]
|
|
13
13
|
PYTHONPATH = "{{INSTALL_DIR}}"
|
|
@@ -4,11 +4,12 @@
|
|
|
4
4
|
contextProviders:
|
|
5
5
|
- name: mcp
|
|
6
6
|
params:
|
|
7
|
-
serverName: "superlocalmemory
|
|
7
|
+
serverName: "superlocalmemory"
|
|
8
8
|
command: "python3"
|
|
9
9
|
args:
|
|
10
|
-
- "
|
|
11
|
-
|
|
10
|
+
- "-m"
|
|
11
|
+
- "superlocalmemory.mcp.server"
|
|
12
|
+
description: "SuperLocalMemory V3 - Search your memory system"
|
|
12
13
|
|
|
13
14
|
# You can also use Continue's slash commands with SuperLocalMemory
|
|
14
15
|
# See continue-skills.yaml for slash command configuration
|
|
@@ -1,23 +1,23 @@
|
|
|
1
|
-
# Continue.dev Slash Commands for SuperLocalMemory
|
|
2
|
-
# These map to
|
|
1
|
+
# Continue.dev Slash Commands for SuperLocalMemory V3
|
|
2
|
+
# These map to the V3 CLI commands
|
|
3
3
|
# Add this to ~/.continue/config.yaml
|
|
4
4
|
|
|
5
5
|
slashCommands:
|
|
6
6
|
- name: "slm-remember"
|
|
7
7
|
description: "Save to SuperLocalMemory"
|
|
8
|
-
run: "
|
|
8
|
+
run: "slm remember \"{{input}}\""
|
|
9
9
|
|
|
10
10
|
- name: "slm-recall"
|
|
11
11
|
description: "Search SuperLocalMemory"
|
|
12
|
-
run: "
|
|
12
|
+
run: "slm recall \"{{input}}\""
|
|
13
13
|
|
|
14
14
|
- name: "slm-list"
|
|
15
15
|
description: "List recent memories"
|
|
16
|
-
run: "
|
|
16
|
+
run: "slm list"
|
|
17
17
|
|
|
18
18
|
- name: "slm-status"
|
|
19
19
|
description: "SuperLocalMemory system status"
|
|
20
|
-
run: "
|
|
20
|
+
run: "slm status"
|
|
21
21
|
|
|
22
22
|
# Usage in Continue.dev:
|
|
23
23
|
# /slm-remember Use FastAPI for REST APIs
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
{
|
|
2
|
+
"mcpServers": {
|
|
3
|
+
"superlocalmemory": {
|
|
4
|
+
"command": "python3",
|
|
5
|
+
"args": [
|
|
6
|
+
"-m", "superlocalmemory.mcp.server"
|
|
7
|
+
],
|
|
8
|
+
"cwd": "{{INSTALL_DIR}}",
|
|
9
|
+
"env": {
|
|
10
|
+
"PYTHONPATH": "{{INSTALL_DIR}}"
|
|
11
|
+
},
|
|
12
|
+
"description": "SuperLocalMemory V3 - Local memory system with mathematical foundations and knowledge graphs"
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
}
|
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
{
|
|
2
2
|
"mcpServers": {
|
|
3
|
-
"superlocalmemory
|
|
3
|
+
"superlocalmemory": {
|
|
4
4
|
"command": "python3",
|
|
5
5
|
"args": [
|
|
6
|
-
"
|
|
6
|
+
"-m", "superlocalmemory.mcp.server"
|
|
7
7
|
],
|
|
8
8
|
"cwd": "{{INSTALL_DIR}}",
|
|
9
9
|
"env": {
|
|
10
10
|
"PYTHONPATH": "{{INSTALL_DIR}}"
|
|
11
11
|
},
|
|
12
12
|
"transport": "stdio",
|
|
13
|
-
"description": "SuperLocalMemory
|
|
13
|
+
"description": "SuperLocalMemory V3 - 100% local memory system for AI assistants"
|
|
14
14
|
}
|
|
15
15
|
}
|
|
16
16
|
}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"context_servers": {
|
|
3
|
-
"superlocalmemory
|
|
3
|
+
"superlocalmemory": {
|
|
4
4
|
"source": "custom",
|
|
5
5
|
"command": "python3",
|
|
6
|
-
"args": ["
|
|
6
|
+
"args": ["-m", "superlocalmemory.mcp.server"],
|
|
7
7
|
"env": {
|
|
8
8
|
"PYTHONPATH": "{{INSTALL_DIR}}"
|
|
9
9
|
}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
/**
|
|
3
|
-
* SuperLocalMemory
|
|
3
|
+
* SuperLocalMemory V3 - Session Start Context Hook
|
|
4
4
|
* Copyright (c) 2026 Varun Pratap Bhardwaj
|
|
5
5
|
* Licensed under MIT License
|
|
6
6
|
*
|
|
7
7
|
* Loads recent memories and learned patterns on Claude Code session start.
|
|
8
8
|
* Outputs context to stderr (Claude Code reads hook stderr as context).
|
|
9
|
-
* Fails gracefully
|
|
9
|
+
* Fails gracefully -- never blocks session start if DB is missing or errors occur.
|
|
10
10
|
*/
|
|
11
11
|
|
|
12
12
|
const { execFile } = require('child_process');
|
|
@@ -16,9 +16,8 @@ const fs = require('fs');
|
|
|
16
16
|
|
|
17
17
|
const execFileAsync = promisify(execFile);
|
|
18
18
|
|
|
19
|
-
const MEMORY_DIR = path.join(process.env.HOME, '.
|
|
19
|
+
const MEMORY_DIR = path.join(process.env.HOME, '.superlocalmemory');
|
|
20
20
|
const DB_PATH = path.join(MEMORY_DIR, 'memory.db');
|
|
21
|
-
const MEMORY_SCRIPT = path.join(MEMORY_DIR, 'memory_store_v2.py');
|
|
22
21
|
|
|
23
22
|
async function loadSessionContext() {
|
|
24
23
|
// Fail gracefully if not installed
|
|
@@ -26,19 +25,10 @@ async function loadSessionContext() {
|
|
|
26
25
|
return;
|
|
27
26
|
}
|
|
28
27
|
|
|
29
|
-
if (!fs.existsSync(MEMORY_SCRIPT)) {
|
|
30
|
-
return;
|
|
31
|
-
}
|
|
32
|
-
|
|
33
28
|
try {
|
|
34
|
-
// Get stats
|
|
29
|
+
// Get stats via V3 CLI
|
|
35
30
|
const { stdout: statsOutput } = await execFileAsync('python3', [
|
|
36
|
-
|
|
37
|
-
], { timeout: 5000 });
|
|
38
|
-
|
|
39
|
-
// Get recent memories (memory_store_v2.py list <limit>)
|
|
40
|
-
const { stdout: recentOutput } = await execFileAsync('python3', [
|
|
41
|
-
MEMORY_SCRIPT, 'list', '5'
|
|
31
|
+
'-m', 'superlocalmemory.cli.main', 'status', '--format', 'json'
|
|
42
32
|
], { timeout: 5000 });
|
|
43
33
|
|
|
44
34
|
// Build context output
|
|
@@ -48,13 +38,12 @@ async function loadSessionContext() {
|
|
|
48
38
|
try {
|
|
49
39
|
const stats = JSON.parse(statsOutput.trim());
|
|
50
40
|
const total = stats.total_memories || 0;
|
|
51
|
-
const clusters = stats.total_clusters || 0;
|
|
52
41
|
if (total > 0) {
|
|
53
|
-
context += 'SuperLocalMemory: ' + total + ' memories
|
|
42
|
+
context += 'SuperLocalMemory V3: ' + total + ' memories loaded.\n';
|
|
54
43
|
}
|
|
55
44
|
} catch (e) {
|
|
56
|
-
// Stats output wasn't JSON
|
|
57
|
-
context += 'SuperLocalMemory: ' + statsOutput.trim().split('\n')[0] + '\n';
|
|
45
|
+
// Stats output wasn't JSON -- use first line as-is
|
|
46
|
+
context += 'SuperLocalMemory V3: ' + statsOutput.trim().split('\n')[0] + '\n';
|
|
58
47
|
}
|
|
59
48
|
}
|
|
60
49
|
|
|
@@ -62,7 +51,7 @@ async function loadSessionContext() {
|
|
|
62
51
|
process.stderr.write(context);
|
|
63
52
|
}
|
|
64
53
|
} catch (error) {
|
|
65
|
-
// Never fail
|
|
54
|
+
// Never fail -- session start must not be blocked
|
|
66
55
|
// Silently ignore errors (timeout, missing python, etc.)
|
|
67
56
|
}
|
|
68
57
|
}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* Memory List CLI Skill (V3)
|
|
4
|
+
* List recent memories with sorting and filtering
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
const { execFile } = require('child_process');
|
|
8
|
+
const { promisify } = require('util');
|
|
9
|
+
|
|
10
|
+
const execFileAsync = promisify(execFile);
|
|
11
|
+
|
|
12
|
+
async function memoryListSkill() {
|
|
13
|
+
const args = process.argv.slice(2);
|
|
14
|
+
|
|
15
|
+
// Show help if --help
|
|
16
|
+
if (args.includes('--help') || args.includes('-h')) {
|
|
17
|
+
console.log(`
|
|
18
|
+
SuperLocalMemory V3 - List Recent Memories
|
|
19
|
+
|
|
20
|
+
Display recent memories with optional sorting and limits.
|
|
21
|
+
Quick overview of what's stored in your memory database.
|
|
22
|
+
|
|
23
|
+
Usage: memory-list [options]
|
|
24
|
+
|
|
25
|
+
Options:
|
|
26
|
+
--limit <n> Number of memories to show (default: 20)
|
|
27
|
+
--sort <field> Sort by: recent, accessed, importance
|
|
28
|
+
--full Show complete content without truncation
|
|
29
|
+
|
|
30
|
+
Examples:
|
|
31
|
+
memory-list
|
|
32
|
+
memory-list --limit 50
|
|
33
|
+
memory-list --sort importance
|
|
34
|
+
memory-list --limit 10 --sort accessed --full
|
|
35
|
+
`);
|
|
36
|
+
return;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
// Build CLI args for V3
|
|
40
|
+
const cliArgs = ['-m', 'superlocalmemory.cli.main', 'list'];
|
|
41
|
+
|
|
42
|
+
for (let i = 0; i < args.length; i++) {
|
|
43
|
+
cliArgs.push(args[i]);
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
try {
|
|
47
|
+
const { stdout, stderr } = await execFileAsync('python3', cliArgs);
|
|
48
|
+
|
|
49
|
+
if (stderr) {
|
|
50
|
+
console.error('Warning:', stderr);
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
console.log(stdout);
|
|
54
|
+
|
|
55
|
+
// Show helpful next steps
|
|
56
|
+
console.log(`
|
|
57
|
+
Next steps:
|
|
58
|
+
- Use \`slm recall <query>\` to search memories
|
|
59
|
+
- Use \`slm remember <content>\` to add new memories
|
|
60
|
+
- Use \`slm list --sort <field>\` to change sort order
|
|
61
|
+
`);
|
|
62
|
+
|
|
63
|
+
} catch (error) {
|
|
64
|
+
console.error('Error listing memories:', error.message);
|
|
65
|
+
if (error.stdout) console.log(error.stdout);
|
|
66
|
+
if (error.stderr) console.error(error.stderr);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
memoryListSkill();
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* Memory Profile CLI Skill (V3)
|
|
4
|
+
* Provides memory-profile commands for managing multiple memory contexts
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
const { execFile } = require('child_process');
|
|
8
|
+
const { promisify } = require('util');
|
|
9
|
+
const readline = require('readline');
|
|
10
|
+
|
|
11
|
+
const execFileAsync = promisify(execFile);
|
|
12
|
+
|
|
13
|
+
const rl = readline.createInterface({
|
|
14
|
+
input: process.stdin,
|
|
15
|
+
output: process.stdout
|
|
16
|
+
});
|
|
17
|
+
|
|
18
|
+
const question = (query) => new Promise((resolve) => rl.question(query, resolve));
|
|
19
|
+
|
|
20
|
+
async function memoryProfileSkill() {
|
|
21
|
+
const args = process.argv.slice(2);
|
|
22
|
+
|
|
23
|
+
// Show help if no args
|
|
24
|
+
if (args.length === 0 || args[0] === '--help' || args[0] === '-h') {
|
|
25
|
+
console.log(`
|
|
26
|
+
SuperLocalMemory V3 - Profile Management
|
|
27
|
+
|
|
28
|
+
Profiles let you maintain separate memory contexts in ONE database:
|
|
29
|
+
- Work vs Personal projects
|
|
30
|
+
- Different clients or teams
|
|
31
|
+
- Experimentation vs Production
|
|
32
|
+
|
|
33
|
+
All profiles share one database. Switching is instant and safe.
|
|
34
|
+
No data copying, no data loss risk.
|
|
35
|
+
|
|
36
|
+
Usage: memory-profile <command> [options]
|
|
37
|
+
|
|
38
|
+
Commands:
|
|
39
|
+
list List all profiles and show active one
|
|
40
|
+
current Show current active profile
|
|
41
|
+
create <name> Create a new empty profile
|
|
42
|
+
switch <name> Switch to a different profile
|
|
43
|
+
delete <name> Delete a profile (with confirmation)
|
|
44
|
+
|
|
45
|
+
Examples:
|
|
46
|
+
memory-profile list
|
|
47
|
+
memory-profile current
|
|
48
|
+
memory-profile create work
|
|
49
|
+
memory-profile switch work
|
|
50
|
+
memory-profile delete old-project
|
|
51
|
+
`);
|
|
52
|
+
rl.close();
|
|
53
|
+
return;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
const command = args[0];
|
|
57
|
+
const cliArgs = ['-m', 'superlocalmemory.cli.main', 'profile', ...args];
|
|
58
|
+
|
|
59
|
+
// For destructive operations, add confirmation prompts
|
|
60
|
+
if (command === 'delete' && args.length >= 2) {
|
|
61
|
+
const profileName = args[1];
|
|
62
|
+
|
|
63
|
+
if (profileName === 'default') {
|
|
64
|
+
console.log('Error: Cannot delete the default profile.');
|
|
65
|
+
rl.close();
|
|
66
|
+
return;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
const answer = await question(`Type the profile name "${profileName}" to confirm deletion: `);
|
|
70
|
+
|
|
71
|
+
if (answer !== profileName) {
|
|
72
|
+
console.log('\nCancelled. No changes made.');
|
|
73
|
+
rl.close();
|
|
74
|
+
return;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
if (command === 'switch' && args.length >= 2) {
|
|
79
|
+
const profileName = args[1];
|
|
80
|
+
const answer = await question(`Switch to profile "${profileName}"? (yes/no): `);
|
|
81
|
+
|
|
82
|
+
if (answer.toLowerCase() !== 'yes') {
|
|
83
|
+
console.log('\nCancelled. No changes made.');
|
|
84
|
+
rl.close();
|
|
85
|
+
return;
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
try {
|
|
90
|
+
const { stdout, stderr } = await execFileAsync('python3', cliArgs);
|
|
91
|
+
if (stdout) console.log(stdout);
|
|
92
|
+
if (stderr) console.error(stderr);
|
|
93
|
+
} catch (error) {
|
|
94
|
+
console.error('Error:', error.message);
|
|
95
|
+
if (error.stdout) console.log(error.stdout);
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
rl.close();
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
memoryProfileSkill();
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* Memory Recall CLI Skill (V3)
|
|
4
|
+
* Search and retrieve memories with advanced filtering
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
const { execFile } = require('child_process');
|
|
8
|
+
const { promisify } = require('util');
|
|
9
|
+
|
|
10
|
+
const execFileAsync = promisify(execFile);
|
|
11
|
+
|
|
12
|
+
async function memoryRecallSkill() {
|
|
13
|
+
const args = process.argv.slice(2);
|
|
14
|
+
|
|
15
|
+
// Show help if no args or --help
|
|
16
|
+
if (args.length === 0 || args[0] === '--help' || args[0] === '-h') {
|
|
17
|
+
console.log(`
|
|
18
|
+
SuperLocalMemory V3 - Recall (Search Memories)
|
|
19
|
+
|
|
20
|
+
Search your memory store using hybrid retrieval (semantic, BM25, graph, temporal).
|
|
21
|
+
|
|
22
|
+
Usage: memory-recall <query> [options]
|
|
23
|
+
|
|
24
|
+
Arguments:
|
|
25
|
+
<query> Search query (required)
|
|
26
|
+
|
|
27
|
+
Options:
|
|
28
|
+
--limit <n> Maximum results to return (default: 10)
|
|
29
|
+
--full Show complete content without truncation
|
|
30
|
+
|
|
31
|
+
Examples:
|
|
32
|
+
memory-recall "authentication bug"
|
|
33
|
+
memory-recall "API configuration" --limit 5
|
|
34
|
+
memory-recall "security best practices" --full
|
|
35
|
+
`);
|
|
36
|
+
return;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
// Build V3 CLI args
|
|
40
|
+
const cliArgs = ['-m', 'superlocalmemory.cli.main', 'recall'];
|
|
41
|
+
|
|
42
|
+
for (let i = 0; i < args.length; i++) {
|
|
43
|
+
cliArgs.push(args[i]);
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
try {
|
|
47
|
+
const { stdout, stderr } = await execFileAsync('python3', cliArgs);
|
|
48
|
+
|
|
49
|
+
if (stderr) {
|
|
50
|
+
console.error('Warning:', stderr);
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
console.log(stdout);
|
|
54
|
+
|
|
55
|
+
} catch (error) {
|
|
56
|
+
console.error('Error searching memories:', error.message);
|
|
57
|
+
if (error.stdout) console.log(error.stdout);
|
|
58
|
+
if (error.stderr) console.error(error.stderr);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
memoryRecallSkill();
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* Memory Remember CLI Skill (V3)
|
|
4
|
+
* Save memories with tags, project context, and importance levels
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
const { execFile } = require('child_process');
|
|
8
|
+
const { promisify } = require('util');
|
|
9
|
+
|
|
10
|
+
const execFileAsync = promisify(execFile);
|
|
11
|
+
|
|
12
|
+
async function memoryRememberSkill() {
|
|
13
|
+
const args = process.argv.slice(2);
|
|
14
|
+
|
|
15
|
+
// Show help if no args or --help
|
|
16
|
+
if (args.length === 0 || args[0] === '--help' || args[0] === '-h') {
|
|
17
|
+
console.log(`
|
|
18
|
+
SuperLocalMemory V3 - Remember (Save Memory)
|
|
19
|
+
|
|
20
|
+
Save important information to your persistent memory store.
|
|
21
|
+
Memories are indexed, searchable, and integrated with the knowledge graph.
|
|
22
|
+
|
|
23
|
+
Usage: memory-remember <content> [options]
|
|
24
|
+
|
|
25
|
+
Arguments:
|
|
26
|
+
<content> The memory content to save (required)
|
|
27
|
+
|
|
28
|
+
Options:
|
|
29
|
+
--tags <tag1,tag2> Comma-separated tags for categorization
|
|
30
|
+
--project <path> Project path context
|
|
31
|
+
|
|
32
|
+
Examples:
|
|
33
|
+
memory-remember "API key stored in .env file" --tags security,config
|
|
34
|
+
memory-remember "User prefers tabs over spaces"
|
|
35
|
+
memory-remember "Bug in auth.js line 42" --project ~/work/app --tags bug
|
|
36
|
+
`);
|
|
37
|
+
return;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
// Build V3 CLI args
|
|
41
|
+
const cliArgs = ['-m', 'superlocalmemory.cli.main', 'remember'];
|
|
42
|
+
|
|
43
|
+
for (let i = 0; i < args.length; i++) {
|
|
44
|
+
cliArgs.push(args[i]);
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
try {
|
|
48
|
+
const { stdout, stderr } = await execFileAsync('python3', cliArgs);
|
|
49
|
+
|
|
50
|
+
if (stderr) {
|
|
51
|
+
console.error('Warning:', stderr);
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
console.log(stdout);
|
|
55
|
+
|
|
56
|
+
// Show helpful next steps
|
|
57
|
+
console.log('Next steps:');
|
|
58
|
+
console.log(' - Use `slm recall <query>` to search this memory');
|
|
59
|
+
console.log(' - Use `slm list` to see recent memories');
|
|
60
|
+
|
|
61
|
+
} catch (error) {
|
|
62
|
+
console.error('Error saving memory:', error.message);
|
|
63
|
+
if (error.stdout) console.log(error.stdout);
|
|
64
|
+
if (error.stderr) console.error(error.stderr);
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
memoryRememberSkill();
|