superlocalmemory 3.6.22__tar.gz → 3.7.0__tar.gz
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.
- superlocalmemory-3.7.0/PKG-INFO +724 -0
- superlocalmemory-3.7.0/README.md +622 -0
- superlocalmemory-3.7.0/plugin-src/skills/slm-cache/SKILL.md +140 -0
- superlocalmemory-3.7.0/plugin-src/skills/slm-compress/SKILL.md +143 -0
- superlocalmemory-3.7.0/plugin-src/skills/slm-graph/SKILL.md +300 -0
- superlocalmemory-3.7.0/plugin-src/skills/slm-recall/SKILL.md +204 -0
- superlocalmemory-3.7.0/plugin-src/skills/slm-remember/SKILL.md +194 -0
- superlocalmemory-3.7.0/plugin-src/skills/slm-session/SKILL.md +207 -0
- superlocalmemory-3.7.0/plugin-src/skills/slm-status/SKILL.md +149 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/pyproject.toml +40 -8
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/__init__.py +2 -2
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/attribution/mathematical_dna.py +1 -1
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/attribution/signer.py +34 -19
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/attribution/watermark.py +1 -1
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/cli/_lazy_init.py +3 -5
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/cli/commands.py +490 -195
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/cli/context_commands.py +5 -4
- superlocalmemory-3.7.0/src/superlocalmemory/cli/daemon.py +505 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/cli/db_migrate.py +3 -1
- superlocalmemory-3.7.0/src/superlocalmemory/cli/diagnostics_cmd.py +28 -0
- superlocalmemory-3.7.0/src/superlocalmemory/cli/evidence_cmd.py +103 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/cli/ingest_cmd.py +7 -3
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/cli/main.py +128 -31
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/cli/pending_store.py +54 -38
- superlocalmemory-3.7.0/src/superlocalmemory/cli/scale_engine_cmd.py +37 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/cli/service_installer.py +57 -52
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/cli/setup_wizard.py +142 -88
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/cli/version_banner.py +2 -1
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/code_graph/config.py +3 -1
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/core/backend_orchestrator.py +81 -21
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/core/config.py +65 -20
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/core/consolidation_engine.py +9 -7
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/core/context_cache.py +56 -8
- superlocalmemory-3.7.0/src/superlocalmemory/core/derivation_lineage.py +246 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/core/embedding_worker.py +32 -20
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/core/embeddings.py +54 -18
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/core/engine.py +150 -104
- superlocalmemory-3.7.0/src/superlocalmemory/core/engine_ingestion.py +513 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/core/engine_wiring.py +2 -0
- superlocalmemory-3.7.0/src/superlocalmemory/core/evidence_bundle.py +526 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/core/fact_consolidator.py +5 -11
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/core/graph_analyzer.py +2 -2
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/core/health_monitor.py +4 -2
- superlocalmemory-3.7.0/src/superlocalmemory/core/ingestion_command.py +636 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/core/injection.py +69 -18
- superlocalmemory-3.7.0/src/superlocalmemory/core/lifecycle_state.py +153 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/core/maintenance.py +23 -22
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/core/maintenance_scheduler.py +51 -35
- superlocalmemory-3.7.0/src/superlocalmemory/core/mutations.py +143 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/core/platform_utils.py +7 -4
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/core/ram_lock.py +16 -5
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/core/rate_limit.py +1 -1
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/core/recall_pipeline.py +60 -101
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/core/recall_worker.py +76 -59
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/core/registry.py +1 -1
- superlocalmemory-3.7.0/src/superlocalmemory/core/scale_engine.py +293 -0
- superlocalmemory-3.7.0/src/superlocalmemory/core/score_contract.py +62 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/core/security_primitives.py +3 -1
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/core/slm_disabled.py +3 -5
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/core/store_pipeline.py +172 -40
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/core/tier_manager.py +32 -20
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/core/worker_pool.py +13 -4
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/dynamics/activation_guided_quantization.py +1 -1
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/dynamics/eap_scheduler.py +10 -3
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/dynamics/ebbinghaus_langevin_coupling.py +1 -1
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/dynamics/fisher_langevin_coupling.py +1 -1
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/encoding/auto_linker.py +1 -1
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/encoding/cognitive_consolidator.py +7 -16
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/encoding/consolidator.py +22 -5
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/encoding/fact_extractor.py +1 -1
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/encoding/foresight.py +2 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/encoding/graph_builder.py +1 -1
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/encoding/temporal_parser.py +2 -0
- superlocalmemory-3.7.0/src/superlocalmemory/evaluation/__init__.py +13 -0
- superlocalmemory-3.7.0/src/superlocalmemory/evaluation/calibration.py +308 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/evolution/skill_evolver.py +2 -1
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/graph/cozo_backend.py +256 -23
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/hooks/_outcome_common.py +21 -11
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/hooks/antigravity_adapter.py +10 -31
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/hooks/auto_invoker.py +25 -27
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/hooks/auto_recall.py +31 -6
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/hooks/auto_recall_hook.py +13 -33
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/hooks/before_web_hook.py +9 -7
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/hooks/claude_code_hooks.py +126 -39
- superlocalmemory-3.7.0/src/superlocalmemory/hooks/codex_assets.py +59 -0
- superlocalmemory-3.7.0/src/superlocalmemory/hooks/codex_hooks.py +186 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/hooks/context_payload.py +1 -1
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/hooks/copilot_adapter.py +9 -24
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/hooks/cursor_adapter.py +10 -32
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/hooks/hook_daemon.py +4 -2
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/hooks/hook_handlers.py +241 -55
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/hooks/memory_protocol.py +5 -3
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/hooks/post_tool_async_hook.py +4 -2
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/hooks/session_registry.py +15 -8
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/hooks/stop_outcome_hook.py +10 -6
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/hooks/topic_shift_hook.py +42 -12
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/hooks/user_prompt_hook.py +9 -14
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/hooks/user_prompt_rehash_hook.py +19 -11
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/infra/auth_middleware.py +38 -5
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/infra/backup.py +7 -5
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/infra/cloud_backup.py +18 -8
- superlocalmemory-3.7.0/src/superlocalmemory/infra/daemon_identity.py +248 -0
- superlocalmemory-3.7.0/src/superlocalmemory/infra/data_root.py +199 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/infra/event_bus.py +3 -1
- superlocalmemory-3.7.0/src/superlocalmemory/infra/local_diagnostics.py +327 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/infra/process_reaper.py +23 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/ingestion/adapter_manager.py +27 -9
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/ingestion/base_adapter.py +25 -31
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/ingestion/calendar_adapter.py +13 -4
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/ingestion/credentials.py +14 -7
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/ingestion/gmail_adapter.py +13 -4
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/ingestion/transcript_adapter.py +7 -2
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/learning/consolidation_quantization_worker.py +1 -1
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/learning/ensemble.py +11 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/learning/entity_compiler.py +1 -1
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/learning/feedback.py +1 -1
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/learning/forgetting_scheduler.py +12 -7
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/learning/quantization_scheduler.py +1 -1
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/learning/ranker.py +4 -1
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/learning/source_quality.py +1 -1
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/learning/trigram_index.py +3 -2
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/llm/backbone.py +13 -8
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/math/ebbinghaus.py +1 -1
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/math/fisher.py +1 -1
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/math/fisher_quantized.py +1 -1
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/math/hopfield.py +1 -1
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/math/langevin.py +1 -1
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/math/polar_quant.py +3 -4
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/math/qjl.py +1 -1
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/math/sheaf.py +1 -1
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/math/turbo_quant.py +3 -2
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/mcp/_daemon_proxy.py +12 -11
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/mcp/_pool_adapter.py +27 -0
- superlocalmemory-3.7.0/src/superlocalmemory/mcp/http_transport.py +53 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/mcp/server.py +39 -13
- superlocalmemory-3.7.0/src/superlocalmemory/mcp/shared.py +93 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/mcp/tools_active.py +141 -31
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/mcp/tools_core.py +128 -29
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/mcp/tools_evolution.py +5 -7
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/mcp/tools_learning.py +42 -2
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/mcp/tools_mesh.py +7 -23
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/mcp/tools_optimize.py +8 -1
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/mcp/tools_v28.py +23 -2
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/mcp/tools_v3.py +26 -1
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/mcp/tools_v33.py +56 -17
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/mesh/broker.py +2 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/mesh/remote_sync.py +50 -12
- superlocalmemory-3.7.0/src/superlocalmemory/optimize/NOTICE +11 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/optimize/cache/manager.py +77 -1
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/optimize/cache/semantic.py +23 -3
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/optimize/compress/ccr.py +4 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/optimize/compress/router.py +6 -1
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/optimize/config/__init__.py +5 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/optimize/config/store.py +6 -4
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/optimize/proxy/_helpers.py +15 -5
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/optimize/proxy/capture.py +3 -2
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/optimize/proxy/server.py +2 -2
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/optimize/storage/db.py +14 -13
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/retrieval/agentic.py +1 -1
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/retrieval/ann_index.py +1 -1
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/retrieval/bm25_channel.py +35 -11
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/retrieval/bridge_discovery.py +73 -8
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/retrieval/engine.py +169 -79
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/retrieval/entity_channel.py +289 -67
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/retrieval/forgetting_filter.py +1 -1
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/retrieval/fusion.py +1 -1
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/retrieval/hopfield_channel.py +118 -30
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/retrieval/profile_channel.py +1 -1
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/retrieval/quantization_aware_search.py +16 -10
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/retrieval/reranker.py +56 -20
- superlocalmemory-3.7.0/src/superlocalmemory/retrieval/scope_policy.py +85 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/retrieval/semantic_channel.py +122 -14
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/retrieval/spreading_activation.py +141 -25
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/retrieval/strategy.py +1 -1
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/retrieval/temporal_channel.py +30 -15
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/retrieval/vector_store.py +1 -1
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/server/api.py +10 -7
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/server/bandit_loops.py +4 -2
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/server/recall_serializer.py +24 -0
- superlocalmemory-3.7.0/src/superlocalmemory/server/route_mutations.py +84 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/server/routes/agents.py +8 -6
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/server/routes/brain.py +14 -12
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/server/routes/chat.py +29 -12
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/server/routes/data_io.py +55 -24
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/server/routes/helpers.py +29 -4
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/server/routes/ingest.py +53 -36
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/server/routes/memories.py +104 -43
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/server/routes/mesh.py +31 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/server/routes/profiles.py +26 -4
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/server/routes/tiers.py +43 -11
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/server/routes/timeline.py +5 -1
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/server/routes/v3_api.py +76 -21
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/server/security_middleware.py +1 -1
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/server/ui.py +6 -3
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/server/unified_daemon.py +680 -293
- superlocalmemory-3.7.0/src/superlocalmemory/server/write_identity.py +147 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/storage/access_log.py +4 -3
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/storage/database.py +118 -25
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/storage/migration_runner.py +84 -1
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/storage/migration_v33.py +1 -1
- superlocalmemory-3.7.0/src/superlocalmemory/storage/migrations/M002_model_state_history.py +78 -0
- superlocalmemory-3.7.0/src/superlocalmemory/storage/migrations/M018_ingestion_operations.py +120 -0
- superlocalmemory-3.7.0/src/superlocalmemory/storage/migrations/M019_derivation_lineage.py +54 -0
- superlocalmemory-3.7.0/src/superlocalmemory/storage/migrations/M020_model_state_integrity.py +52 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/storage/migrations/__init__.py +5 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/storage/models.py +16 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/storage/quantized_store.py +20 -3
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/storage/v2_migrator.py +5 -3
- superlocalmemory-3.7.0/src/superlocalmemory/ui/favicon.svg +5 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/ui/index.html +1 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/ui/js/compliance.js +1 -1
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/ui/js/core.js +49 -8
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/ui/js/dashboard.js +23 -2
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/ui/js/feedback.js +1 -1
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/ui/js/graph-filters.js +1 -1
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/ui/js/graph-ui.js +1 -1
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/ui/js/lifecycle.js +1 -1
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/ui/js/ng-mesh.js +15 -49
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/ui/js/settings.js +4 -2
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/vector/lancedb_backend.py +57 -9
- superlocalmemory-3.7.0/src/superlocalmemory.egg-info/PKG-INFO +724 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory.egg-info/SOURCES.txt +35 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory.egg-info/requires.txt +14 -1
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/tests/test_before_web_hook.py +1 -1
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/tests/test_final_locomo_mini.py +65 -27
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/tests/test_hook_handlers.py +28 -13
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/tests/test_infra.py +2 -1
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/tests/test_injection.py +40 -3
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/tests/test_migration.py +6 -1
- superlocalmemory-3.7.0/tests/test_resource_lifecycle.py +151 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/tests/test_version_consistency.py +106 -13
- superlocalmemory-3.6.22/PKG-INFO +0 -513
- superlocalmemory-3.6.22/README.md +0 -419
- superlocalmemory-3.6.22/src/superlocalmemory/cli/daemon.py +0 -410
- superlocalmemory-3.6.22/src/superlocalmemory/mcp/shared.py +0 -27
- superlocalmemory-3.6.22/src/superlocalmemory/storage/migrations/M002_model_state_history.py +0 -132
- superlocalmemory-3.6.22/src/superlocalmemory.egg-info/PKG-INFO +0 -513
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/AUTHORS.md +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/LICENSE +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/NOTICE +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/setup.cfg +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/attribution/__init__.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/cli/__init__.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/cli/cache_cmd.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/cli/compress_cmd.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/cli/escape_hatch.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/cli/help_cmd.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/cli/json_output.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/cli/migrate_cmd.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/cli/optimize_cmd.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/cli/optimize_constants.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/cli/post_install.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/cli/proxy_cmd.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/cli/wizard_v3426_options.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/code_graph/__init__.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/code_graph/blast_radius.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/code_graph/bridge/__init__.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/code_graph/bridge/entity_resolver.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/code_graph/bridge/event_listeners.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/code_graph/bridge/fact_enricher.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/code_graph/bridge/hebbian_linker.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/code_graph/bridge/temporal_checker.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/code_graph/changes.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/code_graph/communities.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/code_graph/database.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/code_graph/extractors/__init__.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/code_graph/extractors/python.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/code_graph/extractors/typescript.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/code_graph/flows.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/code_graph/git_hooks.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/code_graph/graph_engine.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/code_graph/graph_store.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/code_graph/incremental.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/code_graph/models.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/code_graph/parser.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/code_graph/resolver.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/code_graph/search.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/code_graph/service.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/code_graph/watcher.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/compliance/__init__.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/compliance/abac.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/compliance/audit.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/compliance/eu_ai_act.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/compliance/gdpr.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/compliance/lifecycle.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/compliance/retention.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/compliance/scheduler.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/core/__init__.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/core/block_hygiene.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/core/clock_monitor.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/core/db_pool.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/core/engine_capabilities.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/core/engine_lock.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/core/error_catalog.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/core/error_envelope.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/core/file_lock.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/core/graph_pruner.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/core/hooks.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/core/ingest_gate.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/core/loop_watchdog.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/core/mcp_embedder_proxy.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/core/modes.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/core/ollama_embedder.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/core/priority_queue.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/core/profiles.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/core/pruning_engine.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/core/queue_consumer.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/core/queue_dispatcher.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/core/recall_gate.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/core/recall_queue.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/core/remote_mode.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/core/reranker_worker.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/core/safe_fs.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/core/shadow_router.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/core/slmignore.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/core/summarizer.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/core/topic_signature.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/dynamics/__init__.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/encoding/__init__.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/encoding/context_generator.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/encoding/emotional.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/encoding/entity_resolver.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/encoding/entropy_gate.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/encoding/observation_builder.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/encoding/scene_builder.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/encoding/signal_inference.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/encoding/temporal_validator.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/encoding/type_router.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/evolution/__init__.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/evolution/blind_verifier.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/evolution/budget.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/evolution/evolution_store.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/evolution/llm_dispatch.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/evolution/mutation_generator.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/evolution/triggers.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/evolution/types.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/graph/__init__.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/hooks/__init__.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/hooks/adapter_base.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/hooks/auto_capture.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/hooks/auto_parameterize.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/hooks/cross_platform_connector.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/hooks/ide_connector.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/hooks/portable_kit.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/hooks/post_tool_outcome_hook.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/hooks/prewarm_auth.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/hooks/rules_engine.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/hooks/sync_loop.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/infra/__init__.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/infra/cache_manager.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/infra/heartbeat_monitor.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/infra/pid_manager.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/infra/rate_limiter.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/infra/webhook_dispatcher.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/ingestion/__init__.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/ingestion/parsers.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/learning/__init__.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/learning/adaptive.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/learning/arm_catalog.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/learning/assertion_miner.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/learning/bandit.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/learning/bandit_cache.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/learning/behavioral.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/learning/behavioral_listener.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/learning/bootstrap.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/learning/consolidation_cycle.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/learning/consolidation_worker.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/learning/cross_project.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/learning/database.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/learning/dedup_hnsw.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/learning/engagement.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/learning/fact_outcome_joins.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/learning/features.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/learning/hnsw_dedup.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/learning/labeler.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/learning/legacy_migration.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/learning/lightgbm_subprocess.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/learning/memory_merge.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/learning/model_cache.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/learning/model_rollback.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/learning/outcome_queue.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/learning/outcomes.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/learning/pattern_miner.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/learning/pattern_miner_constants.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/learning/project_context.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/learning/ranker_common.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/learning/ranker_retrain_legacy.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/learning/ranker_retrain_online.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/learning/reward.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/learning/reward_archive.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/learning/reward_boost.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/learning/reward_proxy.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/learning/shadow_test.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/learning/signal_worker.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/learning/signals.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/learning/skill_performance_miner.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/learning/workflows.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/llm/__init__.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/math/__init__.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/mcp/__init__.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/mcp/_stdin_guard.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/mcp/agent_context.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/mcp/cli_fallback.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/mcp/resources.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/mcp/tools.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/mcp/tools_code_graph.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/mcp/tools_context.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/mesh/__init__.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/migrations/__init__.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/migrations/v3_4_25_to_v3_4_26.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/optimize/__init__.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/optimize/adapters/__init__.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/optimize/adapters/_agent_registry.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/optimize/adapters/anthropic_adapter.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/optimize/adapters/openai_adapter.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/optimize/adapters/wrap.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/optimize/cache/__init__.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/optimize/cache/boundary_store.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/optimize/cache/centroid_store.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/optimize/cache/context_key.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/optimize/cache/exact.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/optimize/cache/invalidation.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/optimize/cache/key_builder.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/optimize/cache/stampede.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/optimize/compress/__init__.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/optimize/compress/align.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/optimize/compress/prose_llmlingua.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/optimize/config/defaults.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/optimize/config/schema.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/optimize/metrics/__init__.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/optimize/metrics/counters.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/optimize/metrics/estimator.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/optimize/metrics/exporters.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/optimize/metrics/persistence.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/optimize/proxy/__init__.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/optimize/proxy/anthropic_surface.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/optimize/proxy/gemini_surface.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/optimize/proxy/lifecycle.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/optimize/proxy/openai_surface.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/optimize/proxy/vertex_surface.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/optimize/storage/__init__.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/optimize/storage/schema.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/parameterization/__init__.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/parameterization/pattern_extractor.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/parameterization/pii_filter.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/parameterization/prompt_injector.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/parameterization/prompt_lifecycle.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/parameterization/soft_prompt_generator.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/retrieval/__init__.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/retrieval/channel_registry.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/server/__init__.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/server/middleware/__init__.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/server/middleware/security_headers.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/server/recall_health.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/server/routes/__init__.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/server/routes/adapters.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/server/routes/backup.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/server/routes/behavioral.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/server/routes/compliance.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/server/routes/entity.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/server/routes/events.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/server/routes/evolution.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/server/routes/insights.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/server/routes/learning.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/server/routes/lifecycle.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/server/routes/optimize.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/server/routes/prewarm.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/server/routes/stats.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/server/routes/token.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/server/routes/ws.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/storage/__init__.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/storage/access_control.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/storage/embedding_migrator.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/storage/migrations/M001_add_signal_features_columns.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/storage/migrations/M003_migration_log.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/storage/migrations/M004_cross_platform_sync_log.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/storage/migrations/M005_bandit_tables.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/storage/migrations/M006_action_outcomes_reward.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/storage/migrations/M007_pending_outcomes.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/storage/migrations/M009_model_lineage.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/storage/migrations/M010_evolution_config.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/storage/migrations/M011_archive_and_merge.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/storage/migrations/M012_shadow_observations.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/storage/migrations/M013_bi_temporal_columns.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/storage/migrations/M014_v345_scale_ready.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/storage/migrations/M015_add_pinned_column.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/storage/migrations/M016_add_scope_support.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/storage/migrations/M017_ccq_scope_column.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/storage/migrations.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/storage/schema.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/storage/schema_code_graph.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/storage/schema_v32.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/storage/schema_v3410.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/storage/schema_v3411.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/storage/schema_v343.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/storage/schema_v345.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/storage/schema_v347.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/trust/__init__.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/trust/gate.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/trust/provenance.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/trust/scorer.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/trust/signals.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/ui/css/brain.css +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/ui/css/legacy-dashboard.css +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/ui/css/neural-glass.css +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/ui/js/agents.js +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/ui/js/auto-settings.js +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/ui/js/brain.js +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/ui/js/clusters.js +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/ui/js/events.js +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/ui/js/fact-detail.js +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/ui/js/graph-event-bus.js +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/ui/js/ide-status.js +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/ui/js/init.js +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/ui/js/knowledge-graph.js +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/ui/js/math-health.js +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/ui/js/memories.js +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/ui/js/memory-chat.js +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/ui/js/memory-timeline.js +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/ui/js/modal.js +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/ui/js/ng-entities.js +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/ui/js/ng-health.js +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/ui/js/ng-ingestion.js +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/ui/js/ng-shell.js +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/ui/js/ng-skills.js +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/ui/js/optimize.js +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/ui/js/profiles.js +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/ui/js/quick-actions.js +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/ui/js/recall-lab.js +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/ui/js/search.js +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/ui/js/timeline.js +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/ui/js/trust-dashboard.js +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/ui/vendor/bootstrap-icons/bootstrap-icons.css +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/ui/vendor/bootstrap-icons/fonts/bootstrap-icons.woff +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/ui/vendor/bootstrap-icons/fonts/bootstrap-icons.woff2 +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/ui/vendor/bootstrap.bundle.min.js +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/ui/vendor/bootstrap.min.css +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/ui/vendor/d3.v7.min.js +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/ui/vendor/graphology-library.min.js +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/ui/vendor/graphology.umd.min.js +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/ui/vendor/inter-ui/inter-variable.min.css +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/ui/vendor/inter-ui/variable/InterVariable-Italic.woff2 +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/ui/vendor/inter-ui/variable/InterVariable.woff2 +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/ui/vendor/sigma.min.js +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory/vector/__init__.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory.egg-info/dependency_links.txt +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory.egg-info/entry_points.txt +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/src/superlocalmemory.egg-info/top_level.txt +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/tests/test_auto_hooks.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/tests/test_behavioral_full.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/tests/test_claude_hooks.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/tests/test_cli_core.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/tests/test_cli_json.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/tests/test_cli_v33.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/tests/test_compliance_full.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/tests/test_config_system.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/tests/test_dashboard_preserve_embedding.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/tests/test_engine_hooks.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/tests/test_event_bus.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/tests/test_features.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/tests/test_graph_integrity.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/tests/test_ide_connector.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/tests/test_learning_advanced.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/tests/test_learning_collectors.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/tests/test_llm_provider.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/tests/test_mcp_server.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/tests/test_mode_switch_preservation.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/tests/test_post_install.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/tests/test_ranker.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/tests/test_topic_shift_hook.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/tests/test_trust_full.py +0 -0
- {superlocalmemory-3.6.22 → superlocalmemory-3.7.0}/tests/test_v3_api.py +0 -0
|
@@ -0,0 +1,724 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: superlocalmemory
|
|
3
|
+
Version: 3.7.0
|
|
4
|
+
Summary: Local-first agent memory with auditable hybrid retrieval
|
|
5
|
+
Author-email: Varun Pratap Bhardwaj <admin@superlocalmemory.com>
|
|
6
|
+
License-Expression: AGPL-3.0-or-later
|
|
7
|
+
Project-URL: Homepage, https://superlocalmemory.com
|
|
8
|
+
Project-URL: Repository, https://github.com/qualixar/superlocalmemory
|
|
9
|
+
Project-URL: Documentation, https://github.com/qualixar/superlocalmemory/wiki
|
|
10
|
+
Project-URL: Issues, https://github.com/qualixar/superlocalmemory/issues
|
|
11
|
+
Keywords: ai-memory,mcp-server,local-first,agent-memory,information-geometry,privacy-first,eu-ai-act
|
|
12
|
+
Classifier: Development Status :: 4 - Beta
|
|
13
|
+
Classifier: Intended Audience :: Developers
|
|
14
|
+
Classifier: Operating System :: OS Independent
|
|
15
|
+
Classifier: Operating System :: MacOS
|
|
16
|
+
Classifier: Operating System :: Microsoft :: Windows
|
|
17
|
+
Classifier: Operating System :: POSIX :: Linux
|
|
18
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
19
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
20
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
21
|
+
Classifier: Programming Language :: Python :: 3.14
|
|
22
|
+
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
|
|
23
|
+
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
24
|
+
Requires-Python: <3.15,>=3.11
|
|
25
|
+
Description-Content-Type: text/markdown
|
|
26
|
+
License-File: LICENSE
|
|
27
|
+
License-File: NOTICE
|
|
28
|
+
Requires-Dist: httpx==0.28.1
|
|
29
|
+
Requires-Dist: numpy==2.4.4
|
|
30
|
+
Requires-Dist: scipy==1.17.1
|
|
31
|
+
Requires-Dist: networkx==3.6.1
|
|
32
|
+
Requires-Dist: mcp==1.27.1
|
|
33
|
+
Requires-Dist: python-dateutil==2.9.0.post0
|
|
34
|
+
Requires-Dist: rank-bm25==0.2.2
|
|
35
|
+
Requires-Dist: vadersentiment==3.3.2
|
|
36
|
+
Requires-Dist: einops==0.8.2
|
|
37
|
+
Requires-Dist: fastapi[all]==0.136.1
|
|
38
|
+
Requires-Dist: uvicorn==0.46.0
|
|
39
|
+
Requires-Dist: websockets==16.0
|
|
40
|
+
Requires-Dist: zeroconf>=0.140
|
|
41
|
+
Requires-Dist: lightgbm==4.6.0
|
|
42
|
+
Requires-Dist: orjson==3.11.9
|
|
43
|
+
Requires-Dist: tomli-w==1.2.0
|
|
44
|
+
Requires-Dist: tree-sitter==0.25.2
|
|
45
|
+
Requires-Dist: tree-sitter-language-pack==0.13.0
|
|
46
|
+
Requires-Dist: rustworkx==0.17.1
|
|
47
|
+
Requires-Dist: watchdog==5.0.3
|
|
48
|
+
Requires-Dist: psutil==7.2.2
|
|
49
|
+
Requires-Dist: structlog==25.5.0
|
|
50
|
+
Requires-Dist: portalocker==3.2.0
|
|
51
|
+
Requires-Dist: cryptography==45.0.2
|
|
52
|
+
Requires-Dist: sentence-transformers==5.3.0
|
|
53
|
+
Requires-Dist: optimum==2.1.0
|
|
54
|
+
Requires-Dist: onnxruntime==1.24.4
|
|
55
|
+
Requires-Dist: transformers==4.57.6
|
|
56
|
+
Requires-Dist: huggingface_hub==0.36.2
|
|
57
|
+
Requires-Dist: torch==2.11.0
|
|
58
|
+
Requires-Dist: scikit-learn==1.8.0
|
|
59
|
+
Requires-Dist: sqlite-vec==0.1.9
|
|
60
|
+
Requires-Dist: lancedb==0.30.2
|
|
61
|
+
Requires-Dist: pycozo[embedded]==0.3.0
|
|
62
|
+
Requires-Dist: llmlingua==0.2.2
|
|
63
|
+
Provides-Extra: search
|
|
64
|
+
Requires-Dist: sentence-transformers==5.3.0; extra == "search"
|
|
65
|
+
Requires-Dist: optimum==2.1.0; extra == "search"
|
|
66
|
+
Requires-Dist: einops==0.8.2; extra == "search"
|
|
67
|
+
Requires-Dist: torch==2.11.0; extra == "search"
|
|
68
|
+
Requires-Dist: scikit-learn==1.8.0; extra == "search"
|
|
69
|
+
Requires-Dist: geoopt>=0.5.0; extra == "search"
|
|
70
|
+
Requires-Dist: onnxruntime==1.24.4; extra == "search"
|
|
71
|
+
Provides-Extra: ui
|
|
72
|
+
Requires-Dist: fastapi[all]>=0.135.1; extra == "ui"
|
|
73
|
+
Requires-Dist: uvicorn>=0.42.0; extra == "ui"
|
|
74
|
+
Requires-Dist: python-multipart<1.0.0,>=0.0.6; extra == "ui"
|
|
75
|
+
Provides-Extra: injection
|
|
76
|
+
Requires-Dist: tiktoken>=0.8.0; extra == "injection"
|
|
77
|
+
Provides-Extra: learning
|
|
78
|
+
Requires-Dist: lightgbm>=4.0.0; extra == "learning"
|
|
79
|
+
Provides-Extra: performance
|
|
80
|
+
Requires-Dist: orjson>=3.9.0; extra == "performance"
|
|
81
|
+
Provides-Extra: lancedb
|
|
82
|
+
Requires-Dist: lancedb==0.30.2; extra == "lancedb"
|
|
83
|
+
Provides-Extra: cozo
|
|
84
|
+
Requires-Dist: pycozo[embedded]==0.3.0; extra == "cozo"
|
|
85
|
+
Provides-Extra: scale
|
|
86
|
+
Requires-Dist: lancedb==0.30.2; extra == "scale"
|
|
87
|
+
Requires-Dist: pycozo[embedded]==0.3.0; extra == "scale"
|
|
88
|
+
Provides-Extra: ingestion
|
|
89
|
+
Requires-Dist: keyring>=25.0.0; extra == "ingestion"
|
|
90
|
+
Requires-Dist: google-auth-oauthlib>=1.2.0; extra == "ingestion"
|
|
91
|
+
Requires-Dist: google-api-python-client>=2.100.0; extra == "ingestion"
|
|
92
|
+
Requires-Dist: icalendar>=6.0.0; extra == "ingestion"
|
|
93
|
+
Provides-Extra: full
|
|
94
|
+
Requires-Dist: superlocalmemory[ingestion,injection,learning,performance,scale,search,ui]; extra == "full"
|
|
95
|
+
Provides-Extra: dev
|
|
96
|
+
Requires-Dist: pytest>=8.0; extra == "dev"
|
|
97
|
+
Requires-Dist: pytest-cov>=4.1; extra == "dev"
|
|
98
|
+
Requires-Dist: pytest-asyncio>=0.21; extra == "dev"
|
|
99
|
+
Requires-Dist: sqlite-vec>=0.1.6; extra == "dev"
|
|
100
|
+
Requires-Dist: httpx2==2.5.0; extra == "dev"
|
|
101
|
+
Dynamic: license-file
|
|
102
|
+
|
|
103
|
+
<p align="center">
|
|
104
|
+
<img src="https://superlocalmemory.com/assets/logo-mark.png" alt="SuperLocalMemory" width="200"/>
|
|
105
|
+
</p>
|
|
106
|
+
|
|
107
|
+
<h1 align="center">SuperLocalMemory V3.7</h1>
|
|
108
|
+
<p align="center"><strong>Cache. Compress. Remember. Three surfaces — proxy, MCP tools, or skill. Every setup covered.</strong><br/>
|
|
109
|
+
<em>Local-first agent memory with explicit operating modes, auditable retrieval, and optional Optimize tools.</em></p>
|
|
110
|
+
<p align="center"><code>v3.7.0</code> — <strong>Release package; registry publication gate pending.</strong><br/>
|
|
111
|
+
Proxy: <code>slm wrap claude</code> · MCP: add <code>slm_compress</code> to your config · Skill: zero-config</p>
|
|
112
|
+
<p align="center"><strong>3 public research preprints</strong> (arXiv + Zenodo archives) · <a href="https://arxiv.org/abs/2603.02240">arXiv:2603.02240</a> · <a href="https://arxiv.org/abs/2603.14588">arXiv:2603.14588</a> · <a href="https://arxiv.org/abs/2604.04514">arXiv:2604.04514</a></p>
|
|
113
|
+
|
|
114
|
+
<p align="center">
|
|
115
|
+
<a href="https://arxiv.org/abs/2603.14588"><img src="https://img.shields.io/badge/arXiv-2603.14588-b31b1b?style=for-the-badge&logo=arxiv&logoColor=white" alt="arXiv Paper"/></a>
|
|
116
|
+
<a href="#three-surfaces-proxy--mcp-tools--skill"><img src="https://img.shields.io/badge/Proxy_|_MCP_|_Skill-22c55e?style=for-the-badge" alt="Three Surfaces: Proxy, MCP Tools, Skill"/></a>
|
|
117
|
+
<a href="https://pypi.org/project/superlocalmemory/"><img src="https://img.shields.io/pypi/v/superlocalmemory?style=for-the-badge&logo=pypi&logoColor=white" alt="PyPI"/></a>
|
|
118
|
+
<a href="https://www.npmjs.com/package/superlocalmemory"><img src="https://img.shields.io/npm/v/superlocalmemory?style=for-the-badge&logo=npm&logoColor=white" alt="npm"/></a>
|
|
119
|
+
<a href="https://www.gnu.org/licenses/agpl-3.0"><img src="https://img.shields.io/badge/License-AGPL_v3-blue.svg?style=for-the-badge" alt="AGPL v3"/></a>
|
|
120
|
+
<a href="#privacy-controls-and-operating-modes"><img src="https://img.shields.io/badge/Privacy-Deployment_Assessed-brightgreen?style=for-the-badge" alt="Privacy controls require deployment assessment"/></a>
|
|
121
|
+
<a href="https://superlocalmemory.com"><img src="https://img.shields.io/badge/Web-superlocalmemory.com-ff6b35?style=for-the-badge" alt="Website"/></a>
|
|
122
|
+
<a href="#dual-interface-mcp--cli"><img src="https://img.shields.io/badge/MCP-Native-blue?style=for-the-badge" alt="MCP Native"/></a>
|
|
123
|
+
<a href="#dual-interface-mcp--cli"><img src="https://img.shields.io/badge/CLI-Agent--Native-green?style=for-the-badge" alt="CLI Agent-Native"/></a>
|
|
124
|
+
<a href="#multilingual-embedding-support"><img src="https://img.shields.io/badge/Multilingual-30%2B_Languages-ff69b4?style=for-the-badge" alt="Multilingual 30+ Languages"/></a>
|
|
125
|
+
</p>
|
|
126
|
+
|
|
127
|
+
---
|
|
128
|
+
|
|
129
|
+
## Why SuperLocalMemory?
|
|
130
|
+
|
|
131
|
+
Agent-memory systems make different storage, model-provider, and deployment trade-offs. SuperLocalMemory starts with a local runtime and makes provider-backed enrichment, cloud backup, connectors, and proxy use explicit choices.
|
|
132
|
+
|
|
133
|
+
SuperLocalMemory V3 combines conventional dense and lexical retrieval with graph, temporal, associative, and Fisher-informed scoring. The default local runtime does not require Docker, a separately operated graph database, or an API key.
|
|
134
|
+
|
|
135
|
+
**Published benchmark evidence carried into V3.7:** the architecture evaluated
|
|
136
|
+
in the V3 paper remains the foundation of this release. The figures below keep
|
|
137
|
+
their original LoCoMo protocol, answer-construction, model, and sample scope;
|
|
138
|
+
they are not a claim of a newly rerun 3.7 package benchmark.
|
|
139
|
+
|
|
140
|
+
### How SLM fits beside other memory systems
|
|
141
|
+
|
|
142
|
+
Different products solve different boundaries. SLM is for developers who want
|
|
143
|
+
one local-first operating control plane—not only an SDK, managed context API,
|
|
144
|
+
or agent runtime. It combines dated evidence, graph-aware retrieval, cache and
|
|
145
|
+
compression controls, trusted-peer Mesh, and MCP/CLI/hooks/dashboard/IDE
|
|
146
|
+
surfaces in one install.
|
|
147
|
+
|
|
148
|
+
| If your primary need is… | Product boundary to evaluate |
|
|
149
|
+
|---|---|
|
|
150
|
+
| Local-first agent memory plus operations, optimization, and IDE-agent surfaces | **SuperLocalMemory** — Mode A local core; Modes B/C by explicit choice. |
|
|
151
|
+
| A memory SDK, self-hosted server, or managed platform | [Mem0](https://github.com/mem0ai/mem0) |
|
|
152
|
+
| A temporal context-graph service or graph engine | [Zep / Graphiti](https://github.com/getzep/graphiti) |
|
|
153
|
+
| A stateful agent runtime with memory blocks and archival memory | [Letta](https://docs.letta.com/guides/core-concepts/memory/context-hierarchy) |
|
|
154
|
+
| LangGraph-native memory primitives and managers | [LangMem](https://github.com/langchain-ai/langmem) |
|
|
155
|
+
| A context API/app with profiles, connectors, and RAG | [Supermemory](https://github.com/supermemoryai/supermemory) |
|
|
156
|
+
| User profiles and event-timeline memory | [Memobase](https://github.com/memodb-io/memobase) |
|
|
157
|
+
|
|
158
|
+
See the [source-linked market comparison](https://superlocalmemory.com/comparison)
|
|
159
|
+
for current primary sources and protocol-scoped benchmark evidence. A LoCoMo
|
|
160
|
+
percentage is comparable only when the dataset scope, answer model, judge,
|
|
161
|
+
retrieval stack, and release artifact match.
|
|
162
|
+
|
|
163
|
+
### The V3.7 capability architecture
|
|
164
|
+
|
|
165
|
+
SuperLocalMemory is one local control plane for persistent agent context. It is
|
|
166
|
+
not just a vector store: the same runtime can accept evidence, build and govern
|
|
167
|
+
memory, retrieve bounded evidence for an agent, and expose cache, compression,
|
|
168
|
+
and peer-coordination controls through a CLI, MCP, dashboard, and supported
|
|
169
|
+
IDE integrations.
|
|
170
|
+
|
|
171
|
+

|
|
172
|
+
|
|
173
|
+
*Architecture boundary: SQLite + sqlite-vec remain canonical; CozoDB and
|
|
174
|
+
LanceDB are parity-gated projections; Mesh coordinates trusted peers rather
|
|
175
|
+
than replicating a distributed memory database; connectors are opt-in.*
|
|
176
|
+
|
|
177
|
+
**Memory boundaries:** profiles isolate workspaces by default. Every memory is
|
|
178
|
+
`personal`, `shared` with named profile readers, or `global`; cross-profile
|
|
179
|
+
recall is default-deny and must be explicitly enabled. This scoped sharing is
|
|
180
|
+
local authorization, not SLM Mesh synchronization. See
|
|
181
|
+
[shared-memory.md](docs/shared-memory.md).
|
|
182
|
+
|
|
183
|
+
```text
|
|
184
|
+
IDEs, agents, scripts, connectors, and humans
|
|
185
|
+
│ CLI · MCP (HTTP/stdio) · hooks · dashboard
|
|
186
|
+
▼
|
|
187
|
+
┌────────────────────────── SLM CONTROL PLANE ──────────────────────────┐
|
|
188
|
+
│ 1. Admission identity, scope, idempotency, raw evidence │
|
|
189
|
+
│ 2. Queryable core SQLite facts + FTS durable receipt │
|
|
190
|
+
│ 3. Enrichment facts, entities, scenes, time, provenance, graph │
|
|
191
|
+
│ 4. Memory brain feedback, patterns, rewards, consolidation │
|
|
192
|
+
│ 5. Retrieval semantic · BM25 · temporal · Hopfield · activation │
|
|
193
|
+
│ 6. Context safety policy, trust, provenance, redaction, budgets │
|
|
194
|
+
│ 7. Operations lifecycle, audit, cache/compress, mesh, backups │
|
|
195
|
+
└───────────────────────────────────────────────────────────────────────┘
|
|
196
|
+
│
|
|
197
|
+
▼
|
|
198
|
+
SQLite + sqlite-vec canonical store ──► optional graph/vector projections
|
|
199
|
+
```
|
|
200
|
+
|
|
201
|
+
The seven stages are an execution model, not a promise that every optional
|
|
202
|
+
enricher or retrieval channel runs for every request. The receipt, trace, and
|
|
203
|
+
health surfaces expose the stages actually completed by the installed runtime.
|
|
204
|
+
|
|
205
|
+
| Capability | What ships today | Operator boundary |
|
|
206
|
+
|---|---|---|
|
|
207
|
+
| **Memory types and lifecycle** | Atomic facts, episodic scenes, temporal events, canonical entities, profiles/scopes, consolidation, forgetting and retention controls | Lifecycle policies and retention decisions remain operator-configured. |
|
|
208
|
+
| **Memory boundaries** | Profile-isolated workspaces plus `personal`, `shared`, and `global` memory scopes | Personal is the default; shared/global recall requires explicit scope policy or per-call opt-in. |
|
|
209
|
+
| **Ingestion** | Durable raw-to-complete operation state, fact extraction, entity resolution, graph/temporal/provenance derivations, and replay-safe identity | `--sync` waits for declared stages; dependencies and mode determine which enrichers are available. |
|
|
210
|
+
| **Retrieval and recall** | Semantic, lexical, temporal, Hopfield and spreading-activation candidate channels; RRF fusion, optional reranking and graph score enhancement | Healthy channels participate; response provenance states the evidence used. |
|
|
211
|
+
| **Brain and learning** | Behavioral patterns, feedback/outcome records, rewards, consolidation, LightGBM-related ranking components, soft prompts, and guarded skill-evolution workflows | Learning is evidence-driven; it does not claim autonomous correctness or guaranteed improvement. |
|
|
212
|
+
| **Knowledge graph and entities** | Canonical entities, aliases, entity profiles, graph edges, scenes, timelines, explorer and graph APIs | Stored/derived graph data is evidence, not an instruction authority. |
|
|
213
|
+
| **Scale Engine** | SQLite + sqlite-vec are canonical. CozoDB graph and LanceDB vector projections are packaged and managed with prepare → verify → promote → rollback | Promotion is explicit and parity-gated; do not advertise an unverified projection as the source of truth. |
|
|
214
|
+
| **Optimize** | Exact cache, tagged invalidation, safe compression, opt-in aggressive prose compression, CCR originals, proxy/MCP/skill surfaces | Only proxy intercepts a primary provider turn. MCP/skill cache results explicitly routed through SLM. |
|
|
215
|
+
| **Mesh** | Authenticated peer messages, inbox/outbox, locks, offline queue, optional discovery and mesh MCP tools | Mesh is coordination, not automatic replicated memory or conflict resolution. |
|
|
216
|
+
| **Governance and operations** | Provenance, audit/retention/policy surfaces, export/erasure controls, diagnostics, health, backups and daemon lifecycle | These are engineering controls, not a legal certification. |
|
|
217
|
+
| **Integrations** | CLI, Python SDK, MCP HTTP/stdio, Claude plugin, Codex add-on, supported IDE configurations, Gmail/Calendar/transcript adapters | Hooks, IDE edits, connectors, and networked adapters require explicit operator activation. |
|
|
218
|
+
|
|
219
|
+
### What the dashboard exposes
|
|
220
|
+
|
|
221
|
+
`slm dashboard` opens a local operational view of the same control plane:
|
|
222
|
+
|
|
223
|
+
| Workspace | Use it to inspect or control |
|
|
224
|
+
|---|---|
|
|
225
|
+
| Dashboard and Health | daemon identity, storage/runtime health, diagnostics and recent activity |
|
|
226
|
+
| Brain | consolidation, behavioral patterns, outcomes/rewards, learning state and soft prompts |
|
|
227
|
+
| Knowledge Graph and Memories | graph neighborhoods, entities, scenes, temporal evidence, memory inspection and mutation |
|
|
228
|
+
| Operations | ingestion-operation state, traces, maintenance and lifecycle work |
|
|
229
|
+
| Entity Explorer and Skill Evolution | compiled entity summaries/timelines; opt-in skill lineage, budgets and verification outcomes |
|
|
230
|
+
| Mesh Peers | configured peers, inbox/outbox, pending coordination and locks |
|
|
231
|
+
| Settings and Optimize | mode/provider/configuration; cache, compression and savings telemetry |
|
|
232
|
+
|
|
233
|
+
Dashboard visibility is not a substitute for runtime proof: use `slm doctor`,
|
|
234
|
+
`slm health`, `slm trace`, and the relevant CLI/MCP operation to validate a
|
|
235
|
+
deployment.
|
|
236
|
+
|
|
237
|
+
### Watch the product walkthrough
|
|
238
|
+
|
|
239
|
+
[](https://www.youtube.com/watch?v=PMWW_ypsL60)
|
|
240
|
+
|
|
241
|
+
**[Watch the SuperLocalMemory demo on YouTube](https://www.youtube.com/watch?v=PMWW_ypsL60)** — a five-minute walkthrough of installation, setup, recall, cache, and compression. The video shows a product walkthrough; use the commands and release notes in this README as the current release contract.
|
|
242
|
+
|
|
243
|
+
### Published LoCoMo evidence carried into V3.7
|
|
244
|
+
|
|
245
|
+
The V3 paper evaluates the architecture carried into V3.7. Every figure below
|
|
246
|
+
is protocol-scoped, so a reader can distinguish local retrieval, answer
|
|
247
|
+
construction, and cloud-assisted evaluation rather than treating unlike runs as
|
|
248
|
+
one score.
|
|
249
|
+
|
|
250
|
+
| Published configuration | LoCoMo aggregate | Protocol scope | What the result establishes |
|
|
251
|
+
|---|---:|---|---|
|
|
252
|
+
| **Mode A Raw** | **60.4%** | 10 conversations; 1,276 scored questions; local embeddings, local retrieval, and zero-LLM answer construction | End-to-end local answer construction under the published V3 protocol. |
|
|
253
|
+
| **Mode A Retrieval** | **74.8%** | 10 conversations; 1,276 scored questions; local retrieval, then GPT-4.1-mini answer synthesis | Retrieval evidence: local retrieval contributes the evidence, while the disclosed external model constructs the final answer. |
|
|
254
|
+
| **Mode C** | **87.7%** | Conv-30 only; 81 scored questions; text-embedding-3-large plus GPT-4.1-mini answer generation and judge | Cloud-assisted configuration on one fully disclosed conversation; not a full-dataset result. |
|
|
255
|
+
|
|
256
|
+
Published category results: Mode A Retrieval scored **72.0%** single-hop,
|
|
257
|
+
**70.3%** multi-hop, **80.0%** temporal, and **85.0%** open-domain. Mode C
|
|
258
|
+
scored **64.0%** single-hop, **100.0%** multi-hop, and **86.0%** open-domain
|
|
259
|
+
on its 81-question Conv-30 scope (no temporal category was reported for that
|
|
260
|
+
run). Across six LoCoMo conversations, the paper reports **71.7%** with the
|
|
261
|
+
information-geometric layers versus **58.9%** without them: **+12.7pp**.
|
|
262
|
+
|
|
263
|
+
See [arXiv:2603.14588](https://arxiv.org/abs/2603.14588) and the [official
|
|
264
|
+
LoCoMo paper](https://arxiv.org/abs/2402.17753) for the full protocol,
|
|
265
|
+
ablation table, and limitations. These are published V3 architecture results
|
|
266
|
+
carried into V3.7—not a substitute for a newly rerun release-artifact
|
|
267
|
+
benchmark.
|
|
268
|
+
|
|
269
|
+
---
|
|
270
|
+
|
|
271
|
+
## Quick Start
|
|
272
|
+
|
|
273
|
+
```bash
|
|
274
|
+
# Primary path 1 — npm global CLI (Node 18+)
|
|
275
|
+
# Creates a package-owned virtual environment. It does not modify system Python.
|
|
276
|
+
npm install -g superlocalmemory
|
|
277
|
+
slm setup # Choose mode (A/B/C)
|
|
278
|
+
slm doctor # Verify everything is working
|
|
279
|
+
```
|
|
280
|
+
|
|
281
|
+
```bash
|
|
282
|
+
# Primary path 2 — Python CLI + SDK in an activated virtual environment
|
|
283
|
+
python3 -m venv .venv
|
|
284
|
+
source .venv/bin/activate # Windows PowerShell: .venv\Scripts\Activate.ps1
|
|
285
|
+
python -m pip install superlocalmemory
|
|
286
|
+
slm setup
|
|
287
|
+
slm doctor
|
|
288
|
+
```
|
|
289
|
+
|
|
290
|
+
```bash
|
|
291
|
+
# First use
|
|
292
|
+
slm remember "Alice works at Google as a Staff Engineer" --json
|
|
293
|
+
slm recall "What does Alice do?"
|
|
294
|
+
slm status
|
|
295
|
+
```
|
|
296
|
+
|
|
297
|
+
The default daemon write commits raw evidence plus a relational/FTS projection
|
|
298
|
+
and returns a durable receipt in `queryable` state. Enrichment then advances the
|
|
299
|
+
same operation through `enriching` to `complete`, or records a retryable
|
|
300
|
+
`failed` state. Use `slm remember "..." --sync` when the caller must wait for
|
|
301
|
+
all declared derivation and projector stages. JSON output includes the opaque
|
|
302
|
+
`operation_id`, current `materialization_state`, and fact IDs.
|
|
303
|
+
|
|
304
|
+
```bash
|
|
305
|
+
# Wrap your agent — starts proxy + sets environment + launches agent
|
|
306
|
+
slm wrap claude
|
|
307
|
+
# Your first repeat prompt → CACHE HIT → $0.00
|
|
308
|
+
# See savings: slm optimize savings --since 1
|
|
309
|
+
```
|
|
310
|
+
|
|
311
|
+
**Upgrading:** use the owner of the installation: `npm update -g superlocalmemory`
|
|
312
|
+
or, while the Python virtual environment is active,
|
|
313
|
+
`python -m pip install --upgrade superlocalmemory`. Then run
|
|
314
|
+
`slm restart && slm doctor`. Repository-clone users use the matching `upgrade`
|
|
315
|
+
action in `scripts/install.sh` or `scripts/install.ps1`. Installers never move
|
|
316
|
+
or delete memory data.
|
|
317
|
+
|
|
318
|
+
---
|
|
319
|
+
|
|
320
|
+
## Three Pillars
|
|
321
|
+
|
|
322
|
+
### Memory
|
|
323
|
+
|
|
324
|
+
<a id="dual-interface-mcp--cli"></a>
|
|
325
|
+
|
|
326
|
+
Current recall has five candidate producers—dense semantic, BM25 lexical,
|
|
327
|
+
temporal, Hopfield associative, and spreading activation—followed by fusion,
|
|
328
|
+
optional reranking, and entity-graph score enhancement. The entity graph does
|
|
329
|
+
not create an independent candidate in the current implementation. Core memory
|
|
330
|
+
is SQLite-backed. SQLite and sqlite-vec remain the canonical source of truth.
|
|
331
|
+
The packaged Scale Engine can maintain CozoDB graph and LanceDB vector
|
|
332
|
+
projections, and it remains outside active retrieval paths until
|
|
333
|
+
`slm db scale prepare`, `verify`, and `promote` prove parity against the
|
|
334
|
+
canonical store. This makes the capability available on a fresh installation
|
|
335
|
+
without silently migrating an existing user's data.
|
|
336
|
+
|
|
337
|
+
Canonical ingestion is a durable state machine: `raw → queryable → enriching →
|
|
338
|
+
complete`, with `failed` retaining raw evidence, error details, attempt count,
|
|
339
|
+
and retry timing. SQLite relational facts and FTS are the queryable checkpoint;
|
|
340
|
+
optional ANN/vector projectors are verified before `complete` is granted.
|
|
341
|
+
|
|
342
|
+
Recalled text is treated as untrusted evidence. Hooks, MCP `session_init`, CLI
|
|
343
|
+
session context, and chat use one bounded renderer that redacts recognized
|
|
344
|
+
secrets, neutralizes forged boundary markers, and attaches provenance. Trusted
|
|
345
|
+
IDE instruction files contain only the static SLM protocol; fresh memory is
|
|
346
|
+
retrieved at runtime rather than copied into those files.
|
|
347
|
+
|
|
348
|
+
**Score Contract v2:** `relevance_score` is query-relative relevance;
|
|
349
|
+
`ranking_score` is internal ranking utility; `memory_confidence` belongs to the
|
|
350
|
+
stored assertion; and `trust_score` is an evidence-policy signal. Legacy
|
|
351
|
+
`score` and `confidence` remain aliases for one compatibility release. V3.7 is
|
|
352
|
+
explicitly uncalibrated: `calibration_status` is `uncalibrated` and
|
|
353
|
+
`answer_confidence` is `null`. See
|
|
354
|
+
[the retrieval score contract](docs/retrieval-score-contract.md).
|
|
355
|
+
|
|
356
|
+
The retrieval/lifecycle implementation includes three mathematical layers that
|
|
357
|
+
can run without a cloud LLM:
|
|
358
|
+
|
|
359
|
+
1. **Fisher-informed scoring** — dense candidate generation uses cosine similarity; Fisher-derived terms can modify later scoring when their state is available.
|
|
360
|
+
2. **Sheaf Cohomology for Consistency** — algebraic topology detects contradictions via coboundary norms on the knowledge graph.
|
|
361
|
+
3. **Riemannian Langevin Lifecycle** — memory positions evolve on the Poincare ball; neglected memories self-archive, no hardcoded thresholds.
|
|
362
|
+
|
|
363
|
+
Auto-capture hooks are installed explicitly with `slm hooks install` (Claude
|
|
364
|
+
Code) or `slm hooks install --agent codex` (Codex). Hook latency and capture
|
|
365
|
+
quality must be evaluated for the target client and workload; V3.7 publishes
|
|
366
|
+
no universal p99 claim.
|
|
367
|
+
|
|
368
|
+
**Multi-scope memory (v3.6.15, opt-in):** keep memories `personal` (default), `shared` with named profiles, or `global` across the machine. Off by default — recall only ever returns your own facts until you turn sharing on, per call or in config. See **[docs/shared-memory.md](docs/shared-memory.md)**.
|
|
369
|
+
|
|
370
|
+
<a id="multilingual-embedding-support"></a>
|
|
371
|
+
|
|
372
|
+
**Multilingual models:** configure an OpenAI-compatible embedding endpoint such as Ollama, vLLM, LiteLLM, `bge-m3`, `multilingual-e5`, or `Qwen3-Embedding`. Language coverage and retrieval quality depend on the selected model and should be evaluated for the deployment corpus.
|
|
373
|
+
|
|
374
|
+
### Cache + Compress
|
|
375
|
+
|
|
376
|
+
<a id="three-surfaces-proxy--mcp-tools--skill"></a>
|
|
377
|
+
|
|
378
|
+
One engine, three ways in — choose the surface that fits your setup:
|
|
379
|
+
|
|
380
|
+
| Surface | How you use it | Requires proxy? | Window effect | Cache scope |
|
|
381
|
+
|---------|---------------|:---------------:|:-------------:|-------------|
|
|
382
|
+
| **A — Proxy** | `slm wrap claude` or `ANTHROPIC_BASE_URL=http://127.0.0.1:8765` | **Yes** | Shrinks | Full-turn cache — every call |
|
|
383
|
+
| **B — MCP tools** | Add 5 tools to MCP config; call `slm_compress`, `slm_cache_set/get` | **No** | **Preserved (1M)** | Results you explicitly route through SLM |
|
|
384
|
+
| **C — Skill** | Copy `skills/slm-optimize/SKILL.md` → `~/.claude/skills/` | **No** | **Preserved (1M)** | Auto-applied by the agent per skill rules |
|
|
385
|
+
|
|
386
|
+
**The hard constraint:** The primary Claude conversation turn cannot be cached without a proxy. The MCP/skill path caches results you explicitly route through SLM (tool outputs, file reads, sub-model calls) — without a proxy the main conversation turn is not intercepted.
|
|
387
|
+
|
|
388
|
+
**How to choose:**
|
|
389
|
+
- Metered API (pay-per-token), want every call cached → **Proxy (A)**
|
|
390
|
+
- Pro/Max/Team subscription or any plan where you won't run a proxy → **MCP tools (B)** or **Skill (C)**
|
|
391
|
+
- Zero configuration → **Skill (C)**: install once, auto-compresses CLAUDE.md and large outputs
|
|
392
|
+
- Agent-controlled caching of repeated file reads → **MCP tools (B)**
|
|
393
|
+
|
|
394
|
+
**Cache:** exact-match SQLite lookup is the stable cache path. Semantic cache
|
|
395
|
+
controls are experimental until release-linked precision, invalidation, and
|
|
396
|
+
tenant-isolation evidence exists. A cache hit can avoid a provider request, but
|
|
397
|
+
actual cost and latency savings depend on the intercepted surface and provider.
|
|
398
|
+
|
|
399
|
+
**Compress:** safe mode uses conservative normalization and preserves JSON and code; measured reduction varies by content and can be zero. Aggressive prose compression is opt-in and lossy. CCR can retain an original for later byte-exact retrieval when reversible storage is enabled.
|
|
400
|
+
|
|
401
|
+
**Savings dashboard:** `slm optimize savings --since 7` — live USD/INR/tokens saved. Hot-reload config, fail-open.
|
|
402
|
+
|
|
403
|
+
### Mesh
|
|
404
|
+
|
|
405
|
+
<a id="multi-machine-mesh-coordination"></a>
|
|
406
|
+
|
|
407
|
+
Mesh provides authenticated coordination messages between configured peers, with an offline queue and optional mDNS discovery (`SLM_MESH_DISCOVERY=on`). It is not a replicated or conflict-resolving distributed-memory database.
|
|
408
|
+
|
|
409
|
+
```bash
|
|
410
|
+
# Machine A (broker)
|
|
411
|
+
export SLM_MESH_HOST=192.168.1.100
|
|
412
|
+
export SLM_MESH_SHARED_SECRET=my-secret-key
|
|
413
|
+
slm init
|
|
414
|
+
|
|
415
|
+
# Machine B (client)
|
|
416
|
+
export SLM_MESH_PEER_URL=http://192.168.1.100:8765
|
|
417
|
+
export SLM_MESH_SHARED_SECRET=my-secret-key
|
|
418
|
+
slm init
|
|
419
|
+
```
|
|
420
|
+
|
|
421
|
+
8 mesh MCP tools: `mesh_peers`, `mesh_send`, `mesh_broadcast`, `mesh_project`, `mesh_inbox`, `mesh_pending`, `mesh_state`, `mesh_lock`.
|
|
422
|
+
|
|
423
|
+
Full docs: [docs/multi-machine.md](docs/multi-machine.md) · [docs/distributed-deployment.md](docs/distributed-deployment.md)
|
|
424
|
+
|
|
425
|
+
---
|
|
426
|
+
|
|
427
|
+
## Install Paths
|
|
428
|
+
|
|
429
|
+
| Path | Command | When |
|
|
430
|
+
|:-----|:--------|:-----|
|
|
431
|
+
| **npm global CLI** (primary) | `npm install -g superlocalmemory` | Node 18+; package-owned virtual environment; system Python is not modified; run `slm setup` explicitly afterward |
|
|
432
|
+
| **Python CLI + SDK** (primary) | Activate a Python virtual environment, then `python -m pip install superlocalmemory` | Python 3.11+; the `slm` CLI and importable SDK stay inside that environment |
|
|
433
|
+
| **Repository clone — macOS/Linux** | `./scripts/install.sh install` | Research/contributor path; delegates to an existing uv or pipx installation |
|
|
434
|
+
| **Repository clone — Windows** | `.\scripts\install.ps1 -Action Install` | Research/contributor path; delegates to an existing uv or pipx installation |
|
|
435
|
+
| **Claude Code Plugin** (WP-06) | `/plugin marketplace add qualixar/superlocalmemory` then `/plugin install superlocalmemory@qualixar` | Self-bootstraps venv, isolated SLM_DATA_DIR, additive — 14-tool core. Ships the skills/agents/hooks/commands |
|
|
436
|
+
| **Portable / IDE connect** (WP-08) | `slm connect <ide> [--here]` | Wire any IDE without reinstalling; `slm connect claude-code` → plugin pointer |
|
|
437
|
+
|
|
438
|
+
After any install path: `slm setup` → `slm doctor` → `slm warmup` (optional, pre-downloads ~500MB embedding model).
|
|
439
|
+
|
|
440
|
+
| Component | Size | When |
|
|
441
|
+
|:----------|:-----|:-----|
|
|
442
|
+
| Core libraries (numpy, scipy, networkx) | ~50MB | During install |
|
|
443
|
+
| Dashboard & MCP server (fastapi, uvicorn) | ~20MB | During install |
|
|
444
|
+
| Learning engine (lightgbm) | ~10MB | During install |
|
|
445
|
+
| Search engine (sentence-transformers, torch) | ~200MB | During install |
|
|
446
|
+
| Embedding model (nomic-embed-text-v1.5, 768d) | ~500MB | First use or `slm warmup` |
|
|
447
|
+
| **Mode B** requires [Ollama](https://ollama.com) + a model (`ollama pull llama3.2`) | ~2GB | Manual |
|
|
448
|
+
|
|
449
|
+
---
|
|
450
|
+
|
|
451
|
+
## MCP + Profiles
|
|
452
|
+
|
|
453
|
+
SLM supports two MCP transports:
|
|
454
|
+
|
|
455
|
+
**HTTP (recommended, v3.6.7+):**
|
|
456
|
+
```json
|
|
457
|
+
{ "mcpServers": { "superlocalmemory": { "type": "http", "url": "http://127.0.0.1:8765/mcp/" } } }
|
|
458
|
+
```
|
|
459
|
+
Or: `claude mcp add --transport http superlocalmemory http://127.0.0.1:8765/mcp/`
|
|
460
|
+
|
|
461
|
+
**stdio (universal fallback):**
|
|
462
|
+
```json
|
|
463
|
+
{ "mcpServers": { "superlocalmemory": { "command": "slm", "args": ["mcp"] } } }
|
|
464
|
+
```
|
|
465
|
+
|
|
466
|
+
### MCP Profiles (WP-01)
|
|
467
|
+
|
|
468
|
+
Control tool surface via `SLM_MCP_PROFILE`:
|
|
469
|
+
|
|
470
|
+
| Profile | Tools | Use case |
|
|
471
|
+
|:--------|:-----:|:---------|
|
|
472
|
+
| `core` | 14 | Memory, session, and optimize core |
|
|
473
|
+
| `code` | 20 | Core + code-graph tools |
|
|
474
|
+
| `mesh` | 8 | Mesh-only — multi-machine coordination |
|
|
475
|
+
| `full` | 38 | Memory + optimize + evolution + mesh |
|
|
476
|
+
| `power` | 50 | Full + administration, lifecycle, and diagnostics |
|
|
477
|
+
| `whole` | all registered | Every registered MCP tool |
|
|
478
|
+
|
|
479
|
+
**Precedence:** `ALL` > `TOOLS` > `PROFILE` > `default`
|
|
480
|
+
|
|
481
|
+
```bash
|
|
482
|
+
export SLM_MCP_PROFILE=full # or core / code / mesh / power / whole
|
|
483
|
+
slm mcp
|
|
484
|
+
```
|
|
485
|
+
|
|
486
|
+
For a predictable small surface, set `core` explicitly. Leaving the variable
|
|
487
|
+
unset retains the compatibility default, whose mesh tools follow the local
|
|
488
|
+
mesh setting. The former count-suffixed names (`core14`, `code20`, `mesh8`,
|
|
489
|
+
`full38`, `power50`, `whole81`) remain temporary aliases and emit a migration
|
|
490
|
+
warning. Unknown names stop startup instead of silently selecting another tool
|
|
491
|
+
set.
|
|
492
|
+
|
|
493
|
+
Per-IDE configs available for Claude Code, Cursor, Windsurf, VS Code Copilot, Continue, Gemini CLI, JetBrains, Zed, and more (15 configs in `ide/configs/`). See [docs/ide-setup.md](docs/ide-setup.md).
|
|
494
|
+
|
|
495
|
+
---
|
|
496
|
+
|
|
497
|
+
## Claude Code Plugin
|
|
498
|
+
|
|
499
|
+
Install directly in Claude Code — no system-level npm/pip needed. This is how you
|
|
500
|
+
get the **skills, agents, hooks, commands, and rules** (the MCP server is
|
|
501
|
+
bootstrapped automatically). It is a two-step flow — add the marketplace once,
|
|
502
|
+
then install:
|
|
503
|
+
|
|
504
|
+
```bash
|
|
505
|
+
# 1. Add the Qualixar marketplace (one-time — the repo IS the marketplace)
|
|
506
|
+
/plugin marketplace add qualixar/superlocalmemory
|
|
507
|
+
|
|
508
|
+
# 2. Install the plugin
|
|
509
|
+
/plugin install superlocalmemory@qualixar
|
|
510
|
+
```
|
|
511
|
+
|
|
512
|
+
- Self-bootstraps a Python venv, installs all deps in an isolated `SLM_DATA_DIR`
|
|
513
|
+
- Registers the 14-tool core MCP surface (`core14` profile by default)
|
|
514
|
+
- Ships the SLM skills / agents / hooks / commands / rules
|
|
515
|
+
- Additive — does not replace an existing SLM install
|
|
516
|
+
- `slm connect claude-code` detects an existing plugin install and links them
|
|
517
|
+
|
|
518
|
+
> **Plugin vs Python/npm:** `python -m pip install superlocalmemory` inside an
|
|
519
|
+
> activated virtual environment, or `npm i -g superlocalmemory`,
|
|
520
|
+
> give you the `slm` CLI + the MCP server (the *tools*). The **skills/agents/hooks/
|
|
521
|
+
> commands** come only through the plugin above. Use the plugin for Claude Code; use
|
|
522
|
+
> pip/npm for the CLI or other IDEs.
|
|
523
|
+
|
|
524
|
+
To update later: `/plugin marketplace update qualixar` then `/plugin install superlocalmemory@qualixar`.
|
|
525
|
+
|
|
526
|
+
## Codex add-on
|
|
527
|
+
|
|
528
|
+
For Codex, install the SLM-owned skills, two focused subagents, and four
|
|
529
|
+
lifecycle hooks explicitly:
|
|
530
|
+
|
|
531
|
+
```bash
|
|
532
|
+
slm codex install
|
|
533
|
+
```
|
|
534
|
+
|
|
535
|
+
This adds only SLM-owned files under `~/.agents/skills`, `~/.codex/agents`, and
|
|
536
|
+
`~/.codex/hooks.json`; it does not replace another agent's hooks or rewrite
|
|
537
|
+
`~/.codex/config.toml`. Codex requires review and trust for new command hooks:
|
|
538
|
+
open `/hooks` after installation. MCP wiring remains a separate explicit step:
|
|
539
|
+
|
|
540
|
+
```bash
|
|
541
|
+
slm connect codex
|
|
542
|
+
```
|
|
543
|
+
|
|
544
|
+
`slm connect codex` semantically merges the `superlocalmemory` MCP server into
|
|
545
|
+
`~/.codex/config.toml`, preserving unrelated configuration keys and writing
|
|
546
|
+
atomically. TOML serializers can normalize whitespace and comments, so it is
|
|
547
|
+
not a byte-preserving operation; use it only when you want the MCP server
|
|
548
|
+
configured. Check the result with `slm codex status`; undo SLM-owned add-ons
|
|
549
|
+
with `slm codex remove`.
|
|
550
|
+
|
|
551
|
+
---
|
|
552
|
+
|
|
553
|
+
## Privacy controls and operating modes
|
|
554
|
+
|
|
555
|
+
<a id="privacy-controls-and-operating-modes"></a>
|
|
556
|
+
|
|
557
|
+
| Mode | What | Core memory path | Optional network behavior |
|
|
558
|
+
|:----:|:-----|:-----------------|:--------------------------|
|
|
559
|
+
| **A** | Local Guardian | Local processing | Model/dependency downloads, connectors, backup, and other enabled integrations may use the network |
|
|
560
|
+
| **B** | Smart Local | Local Ollama enrichment | Same optional integrations as Mode A |
|
|
561
|
+
| **C** | Provider-assisted | Local storage with provider calls | Query or enrichment content is sent to the configured provider |
|
|
562
|
+
|
|
563
|
+
```bash
|
|
564
|
+
slm mode a # Zero-cloud (default)
|
|
565
|
+
slm mode b # Local Ollama
|
|
566
|
+
slm mode c # Cloud LLM
|
|
567
|
+
```
|
|
568
|
+
|
|
569
|
+
Mode A can run core memory operations without sending memory content to a cloud model provider. This does not disable optional connectors, cloud backup, proxy providers, dependency acquisition, or model downloads; review configuration and network policy for the deployment.
|
|
570
|
+
|
|
571
|
+
SuperLocalMemory provides local storage, export/erasure commands, provenance, policy, and audit features that can support a compliance program. The software is not a legal certification, and compliance depends on the use case, operator, configuration, and surrounding systems.
|
|
572
|
+
|
|
573
|
+
Available controls include local export and erasure commands, hash-chained audit records, provenance tracking, and ABAC policy enforcement. Verify their behavior and retention boundaries for your deployment; see [docs/compliance.md](docs/compliance.md).
|
|
574
|
+
|
|
575
|
+
---
|
|
576
|
+
|
|
577
|
+
## Advanced
|
|
578
|
+
|
|
579
|
+
| Topic | Link |
|
|
580
|
+
|:------|:-----|
|
|
581
|
+
| Full optimize docs | [docs/optimize-overview.md](docs/optimize-overview.md) · [docs/optimize-cli.md](docs/optimize-cli.md) · [docs/optimize-config.md](docs/optimize-config.md) |
|
|
582
|
+
| Distributed deployment | [docs/distributed-deployment.md](docs/distributed-deployment.md) |
|
|
583
|
+
| Multi-machine mesh | [docs/multi-machine.md](docs/multi-machine.md) |
|
|
584
|
+
| Auto-memory hooks | [docs/auto-memory.md](docs/auto-memory.md) |
|
|
585
|
+
| Architecture + math | [docs/ARCHITECTURE.md](docs/ARCHITECTURE.md) |
|
|
586
|
+
| Published benchmark evidence | [docs/benchmarks.md](docs/benchmarks.md) |
|
|
587
|
+
| CLI reference | [docs/cli-reference.md](docs/cli-reference.md) |
|
|
588
|
+
| MCP tools reference | [docs/mcp-tools.md](docs/mcp-tools.md) |
|
|
589
|
+
| Getting started | [docs/getting-started.md](docs/getting-started.md) |
|
|
590
|
+
| IDE setup (15 configs) | [docs/ide-setup.md](docs/ide-setup.md) |
|
|
591
|
+
| pi.dev integration | [docs/pi-dev-integration.md](docs/pi-dev-integration.md) |
|
|
592
|
+
| Skill evolution | [docs/skill-evolution.md](docs/skill-evolution.md) |
|
|
593
|
+
| V2 migration | [docs/migration-from-v2.md](docs/migration-from-v2.md) |
|
|
594
|
+
| Configuration | [docs/configuration.md](docs/configuration.md) |
|
|
595
|
+
| Retrieval score contract | [docs/retrieval-score-contract.md](docs/retrieval-score-contract.md) |
|
|
596
|
+
| Wiki | [github.com/qualixar/superlocalmemory/wiki](https://github.com/qualixar/superlocalmemory/wiki) |
|
|
597
|
+
|
|
598
|
+
**Web dashboard:**
|
|
599
|
+
```bash
|
|
600
|
+
slm dashboard # Opens at http://localhost:8765
|
|
601
|
+
```
|
|
602
|
+
The dashboard includes Dashboard, Brain, Knowledge Graph, Memories, Health,
|
|
603
|
+
Operations, Entity Explorer, Skill Evolution, Mesh Peers, Settings, and
|
|
604
|
+
Optimize workspaces. Features are populated only when their corresponding
|
|
605
|
+
runtime capability is enabled and healthy.
|
|
606
|
+
|
|
607
|
+
**Release history:**
|
|
608
|
+
|
|
609
|
+
| Version | Codename | Key Features |
|
|
610
|
+
|---|---|---|
|
|
611
|
+
| **v3.6.23** | Cross-platform Patch | Windows doctor/cache stats fixes (#65), neutral SLM hook guidance (#64), pi.dev MCP docs (#31), contributor fixes for dashboard profile path resolution (#63) and tz-naive Langevin maintenance backfill (#66) |
|
|
612
|
+
| **v3.6.22** | Stability | backbone.py JSONDecodeError on empty HTTP 200 body (issue #62) — retries 3× then returns "" gracefully; remaining dashboard UI audit: clusters/compliance/entities r.ok guards, math-health status badge colors |
|
|
613
|
+
| **v3.6.21** | Dashboard Audit | Full UI audit across all 7 dashboard tabs — auth fix for mesh panel (issue #60 frontend), Quick Store endpoint, timeline endpoint, r.ok guards, SSE \r fix, event delegation for lazy tabs, optimize toggle revert |
|
|
614
|
+
| **v3.6.20** | Mesh Auth | Remote mesh auth fix (issue #60) — `_get_broker` now accepts Bearer + X-Mesh-Secret from non-loopback callers; config settings preservation (AIDEV-86) |
|
|
615
|
+
| **v3.6.17** | Community | 8 contributor PRs (observability events, marker-bounded adapter writes, daemon port discovery, anthropic `api_base`, OpenMP workers, atomic-write rehash, `_jl` sentinel, LFS pointer); dashboard-feedback fix (#53/#59); env-tunable SQLite knobs + idle backoff; remote LLM test-probe (#40) |
|
|
616
|
+
| **v3.6.16** | Docs | Corrected Claude Code plugin install — adds the required `/plugin marketplace add` step; clarifies plugin vs pip/npm delivery |
|
|
617
|
+
| **v3.6.15** | Multi-scope | **Opt-in [shared memory](docs/shared-memory.md)** (personal/shared/global, off by default), default-deny scope at every read path, recall scope-race fix, contributor PRs #42/#43/#44, fixes #46–#49 |
|
|
618
|
+
| **v3.6.14** | Plugin-native | Claude Code Plugin (WP-06), MCP profiles (WP-01), IDE connect (WP-08), asset consolidation, UI polish (WP-12) |
|
|
619
|
+
| **v3.6.x** | Optimize Everywhere / Distributed-ready | Three surfaces (proxy/MCP/skill), `SLM_REMOTE=1` LAN mode, remote dashboard, custom LLM endpoints |
|
|
620
|
+
| **v3.5.0** | Historical scale work | Early CozoDB/LanceDB projection paths, retrieval additions, Core Memory Block, context injection v2, score normalization |
|
|
621
|
+
| **v3.4.x** | Scale-Ready (foundation) | Tiered storage, graph pruning, Hopfield channel, LightGBM ranking, mDNS mesh discovery |
|
|
622
|
+
| **v3.3.x** | Foundation | BM25Plus, Fisher-Rao, sqlite-vec, RRF fusion, cross-encoder rerank. 3 published papers |
|
|
623
|
+
|
|
624
|
+
---
|
|
625
|
+
|
|
626
|
+
## Research Papers
|
|
627
|
+
|
|
628
|
+
SuperLocalMemory is backed by three published research papers (arXiv preprints + Zenodo DOIs). These are preprints — not conference-accepted or journal-published yet.
|
|
629
|
+
|
|
630
|
+
### Paper 3: The Living Brain (V3.3)
|
|
631
|
+
> **SuperLocalMemory V3.3: The Living Brain — Biologically-Inspired Forgetting, Cognitive Quantization, and Multi-Channel Retrieval for Zero-LLM Agent Memory Systems**
|
|
632
|
+
> Varun Pratap Bhardwaj (2026)
|
|
633
|
+
> [arXiv:2604.04514](https://arxiv.org/abs/2604.04514) · [Zenodo DOI: 10.5281/zenodo.19435120](https://zenodo.org/records/19435120)
|
|
634
|
+
|
|
635
|
+
### Paper 2: Information-Geometric Foundations (V3)
|
|
636
|
+
> **SuperLocalMemory V3: Information-Geometric Foundations for Zero-LLM Enterprise Agent Memory**
|
|
637
|
+
> Varun Pratap Bhardwaj (2026)
|
|
638
|
+
> [arXiv:2603.14588](https://arxiv.org/abs/2603.14588) · [Zenodo DOI: 10.5281/zenodo.19038659](https://zenodo.org/records/19038659)
|
|
639
|
+
|
|
640
|
+
### Paper 1: Trust & Behavioral Foundations (V2)
|
|
641
|
+
> **SuperLocalMemory: A Structured Local Memory Architecture for Persistent AI Agent Context**
|
|
642
|
+
> Varun Pratap Bhardwaj (2026)
|
|
643
|
+
> [arXiv:2603.02240](https://arxiv.org/abs/2603.02240) · [Zenodo DOI: 10.5281/zenodo.18709670](https://zenodo.org/records/18709670)
|
|
644
|
+
|
|
645
|
+
### Cite This Work
|
|
646
|
+
|
|
647
|
+
```bibtex
|
|
648
|
+
@article{bhardwaj2026slmv33,
|
|
649
|
+
title={SuperLocalMemory V3.3: The Living Brain — Biologically-Inspired
|
|
650
|
+
Forgetting, Cognitive Quantization, and Multi-Channel Retrieval
|
|
651
|
+
for Zero-LLM Agent Memory Systems},
|
|
652
|
+
author={Bhardwaj, Varun Pratap},
|
|
653
|
+
journal={arXiv preprint arXiv:2604.04514},
|
|
654
|
+
year={2026},
|
|
655
|
+
url={https://arxiv.org/abs/2604.04514}
|
|
656
|
+
}
|
|
657
|
+
|
|
658
|
+
@article{bhardwaj2026slmv3,
|
|
659
|
+
title={Information-Geometric Foundations for Zero-LLM Enterprise Agent Memory},
|
|
660
|
+
author={Bhardwaj, Varun Pratap},
|
|
661
|
+
journal={arXiv preprint arXiv:2603.14588},
|
|
662
|
+
year={2026}
|
|
663
|
+
}
|
|
664
|
+
|
|
665
|
+
@article{bhardwaj2026slm,
|
|
666
|
+
title={A Structured Local Memory Architecture for Persistent AI Agent Context},
|
|
667
|
+
author={Bhardwaj, Varun Pratap},
|
|
668
|
+
journal={arXiv preprint arXiv:2603.02240},
|
|
669
|
+
year={2026}
|
|
670
|
+
}
|
|
671
|
+
```
|
|
672
|
+
|
|
673
|
+
---
|
|
674
|
+
|
|
675
|
+
## Support / License / Qualixar
|
|
676
|
+
|
|
677
|
+
See [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines. [Wiki](https://github.com/qualixar/superlocalmemory/wiki) for detailed documentation.
|
|
678
|
+
|
|
679
|
+
GNU Affero General Public License v3.0 (AGPL-3.0). See [LICENSE](LICENSE).
|
|
680
|
+
|
|
681
|
+
For commercial licensing (closed-source, proprietary, or hosted use), see [COMMERCIAL-LICENSE.md](COMMERCIAL-LICENSE.md) or contact varun.pratap.bhardwaj@gmail.com.
|
|
682
|
+
|
|
683
|
+
Copyright (c) 2026 Varun Pratap Bhardwaj / Qualixar.
|
|
684
|
+
|
|
685
|
+
Part of [Qualixar](https://qualixar.com) · Author: [Varun Pratap Bhardwaj](https://varunpratap.com)
|
|
686
|
+
|
|
687
|
+
### Acknowledgments
|
|
688
|
+
|
|
689
|
+
- **[Everything Claude Code (ECC)](https://github.com/affaan-m/everything-claude-code)** — SLM's skill observation patterns were inspired by ECC's continuous learning architecture. SLM supports direct ingestion of ECC observations via `slm ingest --source ecc`. We recommend ECC for Claude Code users who want the deepest learning experience alongside SLM.
|
|
690
|
+
- **[HKUDS/OpenSpace](https://github.com/HKUDS/OpenSpace)** — The skill evolution research in SLM draws from the EvoSkills co-evolutionary verification concepts (arXiv:2604.01687). We adopted their 3-trigger evolution system and anti-loop guard patterns.
|
|
691
|
+
|
|
692
|
+
### Qualixar AI Agent Reliability Platform
|
|
693
|
+
|
|
694
|
+
Qualixar is building the open-source infrastructure for AI agent reliability engineering. Seven products, one coherent platform:
|
|
695
|
+
|
|
696
|
+
| Product | Purpose | Install |
|
|
697
|
+
|---------|---------|---------|
|
|
698
|
+
| **[SuperLocalMemory](https://github.com/qualixar/superlocalmemory)** | Persistent memory + learning | `npm install -g superlocalmemory` |
|
|
699
|
+
| **[Qualixar OS](https://github.com/qualixar/qualixar-os)** | Universal agent runtime | `npx qualixar-os` |
|
|
700
|
+
| **[SLM Mesh](https://github.com/qualixar/slm-mesh)** | P2P coordination across sessions | `npm i slm-mesh` |
|
|
701
|
+
| **[SLM MCP Hub](https://github.com/qualixar/slm-mcp-hub)** | Federate 430+ MCP tools | `pip install slm-mcp-hub` |
|
|
702
|
+
| **[AgentAssay](https://github.com/qualixar/agentassay)** | Token-efficient agent testing | `pip install agentassay` |
|
|
703
|
+
| **[AgentAssert](https://github.com/qualixar/agentassert-abc)** | Behavioral contracts + drift detection | `pip install agentassert-abc` |
|
|
704
|
+
| **[SkillFortify](https://github.com/qualixar/skillfortify)** | Formal verification for agent skills | `pip install skillfortify` |
|
|
705
|
+
|
|
706
|
+
**Local-first architecture. Deployment-specific privacy and compliance controls.**
|
|
707
|
+
|
|
708
|
+
Start here → **[qualixar.com](https://qualixar.com)** · [All papers on Qualixar HuggingFace](https://huggingface.co/Qualixar)
|
|
709
|
+
|
|
710
|
+
---
|
|
711
|
+
|
|
712
|
+
<p align="center">
|
|
713
|
+
<sub>Built with mathematical rigor. Not in the race — here to help everyone build better AI memory systems.</sub>
|
|
714
|
+
</p>
|
|
715
|
+
|
|
716
|
+
---
|
|
717
|
+
|
|
718
|
+
## Star This Project
|
|
719
|
+
|
|
720
|
+
If this project solves a real problem for you, **please star the repo** — it helps other developers discover Qualixar and signals that the AI agent reliability community is growing.
|
|
721
|
+
|
|
722
|
+
[](https://github.com/qualixar/superlocalmemory)
|
|
723
|
+
|
|
724
|
+
The live Star History chart is intentionally not embedded: its upstream service timed out during release validation. The link above is the stable, direct way to star and follow the repository.
|