superlocalmemory 3.6.9__tar.gz → 3.6.11__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.6.9/src/superlocalmemory.egg-info → superlocalmemory-3.6.11}/PKG-INFO +69 -10
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/README.md +67 -9
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/pyproject.toml +6 -1
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/__init__.py +6 -2
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/cli/compress_cmd.py +32 -70
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/cli/optimize_cmd.py +1 -3
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/cli/setup_wizard.py +49 -0
- superlocalmemory-3.6.11/src/superlocalmemory/mcp/agent_context.py +111 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/mcp/server.py +4 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/mcp/tools_active.py +7 -8
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/mcp/tools_core.py +16 -0
- superlocalmemory-3.6.11/src/superlocalmemory/mcp/tools_optimize.py +304 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/optimize/cache/boundary_store.py +23 -9
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/optimize/cache/exact.py +7 -4
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/optimize/cache/key_builder.py +13 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/optimize/cache/manager.py +70 -8
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/optimize/cache/semantic.py +10 -5
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/optimize/compress/prose_llmlingua.py +1 -7
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/optimize/compress/router.py +82 -87
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/optimize/config/__init__.py +16 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/optimize/config/defaults.py +1 -6
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/optimize/config/schema.py +2 -19
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/optimize/config/store.py +15 -1
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/optimize/metrics/counters.py +15 -7
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/optimize/proxy/_helpers.py +100 -2
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/optimize/proxy/anthropic_surface.py +12 -0
- superlocalmemory-3.6.11/src/superlocalmemory/optimize/proxy/capture.py +243 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/optimize/proxy/gemini_surface.py +31 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/optimize/proxy/openai_surface.py +12 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/optimize/proxy/server.py +29 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/optimize/storage/db.py +102 -11
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/optimize/storage/schema.py +11 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/server/routes/optimize.py +6 -8
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/server/unified_daemon.py +26 -5
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/ui/index.html +18 -14
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/ui/js/auto-settings.js +3 -1
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/ui/js/ng-shell.js +3 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/ui/js/optimize.js +9 -9
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11/src/superlocalmemory.egg-info}/PKG-INFO +69 -10
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory.egg-info/SOURCES.txt +3 -2
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory.egg-info/requires.txt +1 -0
- superlocalmemory-3.6.9/src/superlocalmemory/optimize/compress/extractive_code.py +0 -311
- superlocalmemory-3.6.9/src/superlocalmemory/optimize/compress/extractive_json.py +0 -72
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/AUTHORS.md +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/LICENSE +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/NOTICE +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/setup.cfg +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/attribution/__init__.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/attribution/mathematical_dna.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/attribution/signer.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/attribution/watermark.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/cli/__init__.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/cli/cache_cmd.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/cli/commands.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/cli/context_commands.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/cli/daemon.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/cli/db_migrate.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/cli/doctor_cmd.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/cli/escape_hatch.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/cli/help_cmd.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/cli/ingest_cmd.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/cli/json_output.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/cli/main.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/cli/migrate_cmd.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/cli/optimize_constants.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/cli/pending_store.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/cli/post_install.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/cli/proxy_cmd.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/cli/service_installer.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/cli/version_banner.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/cli/wizard_v3426_options.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/code_graph/__init__.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/code_graph/blast_radius.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/code_graph/bridge/__init__.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/code_graph/bridge/entity_resolver.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/code_graph/bridge/event_listeners.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/code_graph/bridge/fact_enricher.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/code_graph/bridge/hebbian_linker.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/code_graph/bridge/temporal_checker.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/code_graph/changes.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/code_graph/communities.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/code_graph/config.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/code_graph/database.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/code_graph/extractors/__init__.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/code_graph/extractors/python.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/code_graph/extractors/typescript.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/code_graph/flows.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/code_graph/git_hooks.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/code_graph/graph_engine.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/code_graph/graph_store.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/code_graph/incremental.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/code_graph/models.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/code_graph/parser.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/code_graph/resolver.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/code_graph/search.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/code_graph/service.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/code_graph/watcher.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/compliance/__init__.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/compliance/abac.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/compliance/audit.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/compliance/eu_ai_act.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/compliance/gdpr.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/compliance/lifecycle.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/compliance/retention.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/compliance/scheduler.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/core/__init__.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/core/backend_orchestrator.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/core/block_hygiene.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/core/clock_monitor.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/core/config.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/core/consolidation_engine.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/core/context_cache.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/core/db_pool.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/core/embedding_worker.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/core/embeddings.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/core/engine.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/core/engine_capabilities.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/core/engine_lock.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/core/engine_wiring.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/core/error_catalog.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/core/error_envelope.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/core/fact_consolidator.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/core/file_lock.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/core/graph_analyzer.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/core/graph_pruner.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/core/health_monitor.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/core/hooks.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/core/ingest_gate.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/core/injection.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/core/loop_watchdog.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/core/maintenance.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/core/maintenance_scheduler.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/core/mcp_embedder_proxy.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/core/modes.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/core/ollama_embedder.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/core/platform_utils.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/core/priority_queue.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/core/profiles.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/core/pruning_engine.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/core/queue_consumer.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/core/queue_dispatcher.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/core/ram_lock.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/core/rate_limit.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/core/recall_gate.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/core/recall_pipeline.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/core/recall_queue.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/core/recall_worker.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/core/registry.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/core/reranker_worker.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/core/safe_fs.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/core/security_primitives.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/core/shadow_router.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/core/slm_disabled.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/core/slmignore.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/core/store_pipeline.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/core/summarizer.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/core/tier_manager.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/core/topic_signature.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/core/worker_pool.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/dynamics/__init__.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/dynamics/activation_guided_quantization.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/dynamics/eap_scheduler.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/dynamics/ebbinghaus_langevin_coupling.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/dynamics/fisher_langevin_coupling.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/encoding/__init__.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/encoding/auto_linker.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/encoding/cognitive_consolidator.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/encoding/consolidator.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/encoding/context_generator.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/encoding/emotional.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/encoding/entity_resolver.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/encoding/entropy_gate.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/encoding/fact_extractor.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/encoding/foresight.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/encoding/graph_builder.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/encoding/observation_builder.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/encoding/scene_builder.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/encoding/signal_inference.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/encoding/temporal_parser.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/encoding/temporal_validator.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/encoding/type_router.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/evolution/__init__.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/evolution/blind_verifier.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/evolution/budget.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/evolution/evolution_store.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/evolution/llm_dispatch.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/evolution/mutation_generator.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/evolution/skill_evolver.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/evolution/triggers.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/evolution/types.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/graph/__init__.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/graph/cozo_backend.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/hooks/__init__.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/hooks/_outcome_common.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/hooks/adapter_base.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/hooks/antigravity_adapter.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/hooks/auto_capture.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/hooks/auto_invoker.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/hooks/auto_parameterize.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/hooks/auto_recall.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/hooks/auto_recall_hook.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/hooks/before_web_hook.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/hooks/claude_code_hooks.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/hooks/context_payload.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/hooks/copilot_adapter.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/hooks/cross_platform_connector.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/hooks/cursor_adapter.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/hooks/hook_daemon.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/hooks/hook_handlers.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/hooks/ide_connector.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/hooks/post_tool_async_hook.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/hooks/post_tool_outcome_hook.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/hooks/prewarm_auth.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/hooks/rules_engine.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/hooks/session_registry.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/hooks/stop_outcome_hook.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/hooks/sync_loop.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/hooks/topic_shift_hook.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/hooks/user_prompt_hook.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/hooks/user_prompt_rehash_hook.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/infra/__init__.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/infra/auth_middleware.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/infra/backup.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/infra/cache_manager.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/infra/cloud_backup.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/infra/event_bus.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/infra/heartbeat_monitor.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/infra/pid_manager.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/infra/process_reaper.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/infra/rate_limiter.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/infra/webhook_dispatcher.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/ingestion/__init__.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/ingestion/adapter_manager.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/ingestion/base_adapter.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/ingestion/calendar_adapter.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/ingestion/credentials.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/ingestion/gmail_adapter.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/ingestion/parsers.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/ingestion/transcript_adapter.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/learning/__init__.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/learning/adaptive.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/learning/arm_catalog.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/learning/assertion_miner.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/learning/bandit.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/learning/bandit_cache.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/learning/behavioral.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/learning/behavioral_listener.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/learning/bootstrap.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/learning/consolidation_cycle.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/learning/consolidation_quantization_worker.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/learning/consolidation_worker.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/learning/cross_project.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/learning/database.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/learning/dedup_hnsw.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/learning/engagement.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/learning/ensemble.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/learning/entity_compiler.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/learning/fact_outcome_joins.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/learning/features.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/learning/feedback.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/learning/forgetting_scheduler.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/learning/hnsw_dedup.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/learning/labeler.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/learning/legacy_migration.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/learning/lightgbm_subprocess.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/learning/memory_merge.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/learning/model_cache.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/learning/model_rollback.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/learning/outcome_queue.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/learning/outcomes.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/learning/pattern_miner.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/learning/pattern_miner_constants.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/learning/project_context.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/learning/quantization_scheduler.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/learning/ranker.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/learning/ranker_common.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/learning/ranker_retrain_legacy.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/learning/ranker_retrain_online.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/learning/reward.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/learning/reward_archive.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/learning/reward_boost.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/learning/reward_proxy.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/learning/shadow_test.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/learning/signal_worker.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/learning/signals.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/learning/skill_performance_miner.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/learning/source_quality.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/learning/trigram_index.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/learning/workflows.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/llm/__init__.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/llm/backbone.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/math/__init__.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/math/ebbinghaus.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/math/fisher.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/math/fisher_quantized.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/math/hopfield.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/math/langevin.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/math/polar_quant.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/math/qjl.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/math/sheaf.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/math/turbo_quant.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/mcp/__init__.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/mcp/_daemon_proxy.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/mcp/_pool_adapter.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/mcp/_stdin_guard.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/mcp/resources.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/mcp/shared.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/mcp/tools.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/mcp/tools_code_graph.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/mcp/tools_context.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/mcp/tools_evolution.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/mcp/tools_learning.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/mcp/tools_mesh.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/mcp/tools_v28.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/mcp/tools_v3.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/mcp/tools_v33.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/mesh/__init__.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/mesh/broker.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/mesh/remote_sync.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/migrations/__init__.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/migrations/v3_4_25_to_v3_4_26.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/optimize/__init__.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/optimize/adapters/__init__.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/optimize/adapters/_agent_registry.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/optimize/adapters/anthropic_adapter.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/optimize/adapters/openai_adapter.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/optimize/adapters/wrap.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/optimize/cache/__init__.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/optimize/cache/centroid_store.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/optimize/cache/context_key.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/optimize/cache/invalidation.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/optimize/cache/stampede.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/optimize/compress/__init__.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/optimize/compress/align.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/optimize/compress/ccr.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/optimize/metrics/__init__.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/optimize/metrics/estimator.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/optimize/metrics/exporters.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/optimize/metrics/persistence.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/optimize/proxy/__init__.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/optimize/proxy/lifecycle.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/optimize/storage/__init__.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/parameterization/__init__.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/parameterization/pattern_extractor.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/parameterization/pii_filter.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/parameterization/prompt_injector.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/parameterization/prompt_lifecycle.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/parameterization/soft_prompt_generator.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/retrieval/__init__.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/retrieval/agentic.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/retrieval/ann_index.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/retrieval/bm25_channel.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/retrieval/bridge_discovery.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/retrieval/channel_registry.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/retrieval/engine.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/retrieval/entity_channel.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/retrieval/forgetting_filter.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/retrieval/fusion.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/retrieval/hopfield_channel.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/retrieval/profile_channel.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/retrieval/quantization_aware_search.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/retrieval/reranker.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/retrieval/semantic_channel.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/retrieval/spreading_activation.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/retrieval/strategy.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/retrieval/temporal_channel.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/retrieval/vector_store.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/server/__init__.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/server/api.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/server/bandit_loops.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/server/middleware/__init__.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/server/middleware/security_headers.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/server/recall_health.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/server/recall_serializer.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/server/routes/__init__.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/server/routes/adapters.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/server/routes/agents.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/server/routes/backup.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/server/routes/behavioral.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/server/routes/brain.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/server/routes/chat.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/server/routes/compliance.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/server/routes/data_io.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/server/routes/entity.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/server/routes/events.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/server/routes/evolution.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/server/routes/helpers.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/server/routes/ingest.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/server/routes/insights.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/server/routes/learning.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/server/routes/lifecycle.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/server/routes/memories.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/server/routes/mesh.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/server/routes/prewarm.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/server/routes/profiles.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/server/routes/stats.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/server/routes/tiers.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/server/routes/timeline.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/server/routes/token.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/server/routes/v3_api.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/server/routes/ws.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/server/security_middleware.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/server/ui.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/skills/slm-build-graph/SKILL.md +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/skills/slm-list-recent/SKILL.md +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/skills/slm-recall/SKILL.md +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/skills/slm-remember/SKILL.md +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/skills/slm-show-patterns/SKILL.md +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/skills/slm-status/SKILL.md +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/skills/slm-switch-profile/SKILL.md +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/storage/__init__.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/storage/access_control.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/storage/access_log.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/storage/database.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/storage/embedding_migrator.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/storage/migration_runner.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/storage/migration_v33.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/storage/migrations/M001_add_signal_features_columns.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/storage/migrations/M002_model_state_history.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/storage/migrations/M003_migration_log.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/storage/migrations/M004_cross_platform_sync_log.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/storage/migrations/M005_bandit_tables.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/storage/migrations/M006_action_outcomes_reward.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/storage/migrations/M007_pending_outcomes.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/storage/migrations/M009_model_lineage.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/storage/migrations/M010_evolution_config.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/storage/migrations/M011_archive_and_merge.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/storage/migrations/M012_shadow_observations.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/storage/migrations/M013_bi_temporal_columns.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/storage/migrations/M014_v345_scale_ready.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/storage/migrations/M015_add_pinned_column.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/storage/migrations/__init__.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/storage/migrations.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/storage/models.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/storage/quantized_store.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/storage/schema.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/storage/schema_code_graph.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/storage/schema_v32.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/storage/schema_v3410.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/storage/schema_v3411.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/storage/schema_v343.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/storage/schema_v345.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/storage/schema_v347.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/storage/v2_migrator.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/trust/__init__.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/trust/gate.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/trust/provenance.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/trust/scorer.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/trust/signals.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/ui/css/brain.css +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/ui/css/legacy-dashboard.css +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/ui/css/neural-glass.css +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/ui/js/agents.js +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/ui/js/brain.js +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/ui/js/clusters.js +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/ui/js/compliance.js +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/ui/js/core.js +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/ui/js/dashboard.js +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/ui/js/events.js +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/ui/js/fact-detail.js +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/ui/js/feedback.js +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/ui/js/graph-event-bus.js +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/ui/js/graph-filters.js +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/ui/js/graph-ui.js +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/ui/js/ide-status.js +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/ui/js/init.js +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/ui/js/knowledge-graph.js +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/ui/js/lifecycle.js +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/ui/js/math-health.js +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/ui/js/memories.js +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/ui/js/memory-chat.js +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/ui/js/memory-timeline.js +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/ui/js/modal.js +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/ui/js/ng-entities.js +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/ui/js/ng-health.js +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/ui/js/ng-ingestion.js +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/ui/js/ng-mesh.js +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/ui/js/ng-skills.js +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/ui/js/profiles.js +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/ui/js/quick-actions.js +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/ui/js/recall-lab.js +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/ui/js/search.js +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/ui/js/settings.js +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/ui/js/timeline.js +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/ui/js/trust-dashboard.js +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/ui/vendor/bootstrap-icons/bootstrap-icons.css +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/ui/vendor/bootstrap-icons/fonts/bootstrap-icons.woff +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/ui/vendor/bootstrap-icons/fonts/bootstrap-icons.woff2 +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/ui/vendor/bootstrap.bundle.min.js +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/ui/vendor/bootstrap.min.css +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/ui/vendor/d3.v7.min.js +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/ui/vendor/graphology-library.min.js +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/ui/vendor/graphology.umd.min.js +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/ui/vendor/inter-ui/inter-variable.min.css +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/ui/vendor/inter-ui/variable/InterVariable-Italic.woff2 +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/ui/vendor/inter-ui/variable/InterVariable.woff2 +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/ui/vendor/sigma.min.js +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/vector/__init__.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory/vector/lancedb_backend.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory.egg-info/dependency_links.txt +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory.egg-info/entry_points.txt +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/src/superlocalmemory.egg-info/top_level.txt +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/tests/test_auto_hooks.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/tests/test_before_web_hook.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/tests/test_behavioral_full.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/tests/test_claude_hooks.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/tests/test_cli_core.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/tests/test_cli_json.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/tests/test_cli_v33.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/tests/test_compliance_full.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/tests/test_config_system.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/tests/test_engine_hooks.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/tests/test_event_bus.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/tests/test_features.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/tests/test_final_locomo_mini.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/tests/test_graph_integrity.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/tests/test_hook_handlers.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/tests/test_ide_connector.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/tests/test_infra.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/tests/test_injection.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/tests/test_learning_advanced.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/tests/test_learning_collectors.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/tests/test_llm_provider.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/tests/test_mcp_server.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/tests/test_migration.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/tests/test_mode_switch_preservation.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/tests/test_post_install.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/tests/test_ranker.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/tests/test_topic_shift_hook.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/tests/test_trust_full.py +0 -0
- {superlocalmemory-3.6.9 → superlocalmemory-3.6.11}/tests/test_v3_api.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: superlocalmemory
|
|
3
|
-
Version: 3.6.
|
|
3
|
+
Version: 3.6.11
|
|
4
4
|
Summary: Information-geometric agent memory with mathematical guarantees
|
|
5
5
|
Author-email: Varun Pratap Bhardwaj <admin@superlocalmemory.com>
|
|
6
6
|
License: AGPL-3.0-or-later
|
|
@@ -58,6 +58,7 @@ Requires-Dist: huggingface_hub==0.36.2
|
|
|
58
58
|
Requires-Dist: torch==2.11.0
|
|
59
59
|
Requires-Dist: scikit-learn==1.8.0
|
|
60
60
|
Requires-Dist: sqlite-vec==0.1.9
|
|
61
|
+
Requires-Dist: llmlingua==0.2.2
|
|
61
62
|
Provides-Extra: search
|
|
62
63
|
Requires-Dist: sentence-transformers==5.3.0; extra == "search"
|
|
63
64
|
Requires-Dist: optimum==2.1.0; extra == "search"
|
|
@@ -94,18 +95,18 @@ Dynamic: license-file
|
|
|
94
95
|
<img src="https://superlocalmemory.com/assets/logo-mark.png" alt="SuperLocalMemory" width="200"/>
|
|
95
96
|
</p>
|
|
96
97
|
|
|
97
|
-
<h1 align="center">SuperLocalMemory V3.6</h1>
|
|
98
|
-
<p align="center"><strong>
|
|
99
|
-
<p align="center"><code>v3.6.
|
|
98
|
+
<h1 align="center">SuperLocalMemory V3.6.11</h1>
|
|
99
|
+
<p align="center"><strong>Cache. Compress. Remember. Three surfaces — proxy, MCP tools, or skill. Every setup covered.</strong><br/><em>The only local-first layer that pairs persistent memory with compression + caching across every Claude plan. Full 1M window preserved in MCP and skill mode.</em></p>
|
|
100
|
+
<p align="center"><code>v3.6.11 "Optimize Everywhere"</code> — <strong>Compress + cache on any plan, three ways in.</strong><br/>Proxy (full-turn cache): <code>slm wrap claude</code> · MCP (proxy-free): add <code>slm_compress</code> to your MCP config · Skill (zero-config): <code>~/.claude/skills/slm-optimize/</code></p>
|
|
100
101
|
<p align="center"><strong>Backed by 3 published research papers</strong> (arXiv preprints + Zenodo-archived) · <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>
|
|
101
102
|
|
|
102
103
|
<p align="center">
|
|
103
|
-
<code>
|
|
104
|
+
<code>Proxy · MCP tools · Skill — three surfaces</code> · <code>+10.6pp vs Mem0 zero-LLM</code> · <code>85% Open-Domain (best zero-LLM score)</code> · <code>EU AI Act Ready</code>
|
|
104
105
|
</p>
|
|
105
106
|
|
|
106
107
|
<p align="center">
|
|
107
108
|
<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>
|
|
108
|
-
<a href="
|
|
109
|
+
<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>
|
|
109
110
|
<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>
|
|
110
111
|
<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>
|
|
111
112
|
<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>
|
|
@@ -125,18 +126,24 @@ Dynamic: license-file
|
|
|
125
126
|
<details>
|
|
126
127
|
<summary><strong>What's New in V3.6 — Optimize: SKIP, SHRINK, DISCOUNT, REMEMBER</strong> (click to expand)</summary>
|
|
127
128
|
|
|
128
|
-
> V3.6 is the only local-first layer that SKIPS repeat LLM calls (cache: 100%
|
|
129
|
+
> V3.6 is the only local-first layer that SKIPS repeat LLM calls (cache: 100% on a hit), SHRINKS tool outputs and injected context (compress: lossless-by-default, opt-in LLMLingua-2), and DISCOUNTS prefix costs (align: native KV-cache) — and remembers everything — in one install.
|
|
130
|
+
>
|
|
131
|
+
> **v3.6.11 "Optimize Everywhere":** Three surfaces. **Proxy** (Surface A) — full-turn cache + compress on transport; needs `ANTHROPIC_BASE_URL`, shrinks the context window. **MCP tools** (Surface B) — `slm_compress`, `slm_retrieve`, `slm_cache_set`, `slm_cache_get`, `slm_optimize_stats`; no proxy, no window shrink, works on any Claude subscription. **Skill** (Surface C) — `slm-optimize` installs in `~/.claude/skills/`; zero-config auto-compress for large tool outputs and CLAUDE.md. No proxy, full 1M window. [See Three Surfaces →](#three-surfaces-proxy--mcp-tools--skill)
|
|
132
|
+
>
|
|
133
|
+
> **v3.6.10:** cache and compression are now **independent runtime switches** (cache-only, compress-only, both, or neither — toggle live from the dashboard, no restart). Compression was rebuilt to be **lossless by default** (the old string/array/code truncation is gone); aggressive mode adds LLMLingua-2 for **prose only** — never code, numbers, structured data, or the current turn.
|
|
129
134
|
|
|
130
135
|
### The Three Levers
|
|
131
136
|
|
|
132
137
|
| Lever | Mechanism | Saving | Off by default? |
|
|
133
138
|
|-------|-----------|:------:|:---------------:|
|
|
134
|
-
| **Cache** | Skip repeat calls — exact-match SQLite lookup, vCache-gated semantic (opt-in) | **100% on a hit** (input + output) | Cache ON, Semantic OFF |
|
|
135
|
-
| **Compress** | Shrink prompts —
|
|
139
|
+
| **Cache** | Skip repeat calls — exact-match SQLite lookup (zero false hits), vCache-gated semantic (opt-in) | **100% on a hit** (input + output) | Cache ON, Semantic OFF |
|
|
140
|
+
| **Compress** | Shrink prompts — **safe = lossless** normalization; **aggressive = LLMLingua-2 prose only** (opt-in) | Safe: small + lossless · Aggressive: large on prose | Safe mode, Aggressive OFF |
|
|
136
141
|
| **Align** | Stabilize prefix — maximize provider prefix-cache discounts | **Lossless extra** | ON when compression is ON |
|
|
137
142
|
|
|
138
143
|
**Memory** (v3.5's existing engine) runs in parallel — it shapes *what is in* the prompt (relevant facts); Optimize decides *whether and how* it is sent.
|
|
139
144
|
|
|
145
|
+
> **Independent at runtime:** enable caching only, compression only, both, or neither — from the dashboard Optimize tab, applied live (no restart). Each AI client can also get its own memory identity over HTTP MCP via `http://127.0.0.1:8765/mcp/{agent_id}`.
|
|
146
|
+
|
|
140
147
|
### Quick Start
|
|
141
148
|
|
|
142
149
|
```bash
|
|
@@ -152,7 +159,7 @@ slm wrap claude
|
|
|
152
159
|
|:--------|:-------------|
|
|
153
160
|
| `slm optimize status\|on\|off\|savings` | Master Optimize control + savings report (USD/INR/tokens) |
|
|
154
161
|
| `slm cache status\|clear\|invalidate\|ttl\|semantic` | Cache sub-control — exact + semantic tiers |
|
|
155
|
-
| `slm compress status\|mode\|
|
|
162
|
+
| `slm compress status\|mode\|prose` | Compression control — safe (lossless) / aggressive (LLMLingua-2 prose) |
|
|
156
163
|
| `slm proxy [--port] [--provider]` | Start the interception proxy (port 8765) |
|
|
157
164
|
| `slm wrap <agent>` | Proxy-activate an agent — one command to start saving |
|
|
158
165
|
| `slm help-optimize [topic]` | Full developer reference + per-agent setup recipes |
|
|
@@ -208,6 +215,57 @@ Full docs:
|
|
|
208
215
|
|
|
209
216
|
---
|
|
210
217
|
|
|
218
|
+
## Three Surfaces: Proxy · MCP Tools · Skill
|
|
219
|
+
|
|
220
|
+
v3.6.11 delivers one engine across **three ways in** — choose the surface that fits your setup:
|
|
221
|
+
|
|
222
|
+
| Surface | How you use it | Requires proxy? | Window effect | Cache scope |
|
|
223
|
+
|---------|---------------|:---------------:|:-------------:|-------------|
|
|
224
|
+
| **A — Proxy** | `slm wrap claude` or `ANTHROPIC_BASE_URL=http://127.0.0.1:8765` | **Yes** | Shrinks (proxy intercepts full context) | Full-turn cache — every Claude call |
|
|
225
|
+
| **B — MCP tools** | Add 5 tools to MCP config; call `slm_compress`, `slm_cache_set/get` | **No** | **Preserved** (full 1M) | Results you explicitly route through SLM |
|
|
226
|
+
| **C — Skill** | Copy `skills/slm-optimize/SKILL.md` → `~/.claude/skills/` | **No** | **Preserved** (full 1M) | Auto-applied by the agent per skill rules |
|
|
227
|
+
|
|
228
|
+
**How to choose:**
|
|
229
|
+
- On a **metered API** (pay-per-token) and want to cache every call → **Proxy (A)**
|
|
230
|
+
- On a **Pro/Max/Team subscription** or any plan where you can't or won't run a proxy → **MCP tools (B)** or **Skill (C)**
|
|
231
|
+
- Want zero configuration → **Skill (C)**: install once, auto-compresses CLAUDE.md and large outputs
|
|
232
|
+
- Want agent-controlled caching of repeated file reads and tool outputs → **MCP tools (B)**
|
|
233
|
+
|
|
234
|
+
**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).
|
|
235
|
+
|
|
236
|
+
### MCP Tools Setup (Surface B)
|
|
237
|
+
|
|
238
|
+
Add to your `claude_desktop_config.json` or IDE MCP config alongside your existing SLM entry:
|
|
239
|
+
|
|
240
|
+
```json
|
|
241
|
+
{
|
|
242
|
+
"mcpServers": {
|
|
243
|
+
"superlocalmemory": {
|
|
244
|
+
"command": "slm",
|
|
245
|
+
"args": ["mcp"]
|
|
246
|
+
}
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
```
|
|
250
|
+
|
|
251
|
+
The 5 optimize tools (`slm_compress`, `slm_retrieve`, `slm_cache_set`, `slm_cache_get`, `slm_optimize_stats`) are included automatically from v3.6.11+. Verify with `slm_optimize_stats()`.
|
|
252
|
+
|
|
253
|
+
### Skill Setup (Surface C)
|
|
254
|
+
|
|
255
|
+
```bash
|
|
256
|
+
mkdir -p ~/.claude/skills/slm-optimize
|
|
257
|
+
cp $(pip show superlocalmemory | grep Location | awk '{print $2}')/superlocalmemory/skills/slm-optimize/SKILL.md \
|
|
258
|
+
~/.claude/skills/slm-optimize/SKILL.md
|
|
259
|
+
```
|
|
260
|
+
|
|
261
|
+
Then reference in your `CLAUDE.md`:
|
|
262
|
+
```markdown
|
|
263
|
+
## Context Management
|
|
264
|
+
Use the `slm-optimize` skill to compress large outputs and cache repeated reads.
|
|
265
|
+
```
|
|
266
|
+
|
|
267
|
+
---
|
|
268
|
+
|
|
211
269
|
<details>
|
|
212
270
|
<summary><strong>What's New in V3.3 — The Living Brain Evolves</strong> (click to expand)</summary>
|
|
213
271
|
|
|
@@ -384,6 +442,7 @@ No manual commands. No data loss. Zero downtime.
|
|
|
384
442
|
|
|
385
443
|
| Version | Codename | Key Features |
|
|
386
444
|
|---|---|---|
|
|
445
|
+
| **v3.6.11** | Optimize Everywhere | **Three surfaces** — Proxy (A: full-turn cache), MCP tools (B: `slm_compress`/`slm_retrieve`/`slm_cache_set`/`slm_cache_get`/`slm_optimize_stats` — proxy-free, 1M window), Skill (C: `slm-optimize` zero-config). `CacheDB.get_value()` (pure KV lookup). 23 new tests. Links: [Three Surfaces →](#three-surfaces-proxy--mcp-tools--skill) · [docs/optimize-overview.md](docs/optimize-overview.md) |
|
|
387
446
|
| **v3.6.0** | Optimize | **Cache** (skip repeat calls, 100% on hit) · **Compress** (shrink prompts 60-95%) · **Align** (KV-cache stabilization) · `slm optimize\|cache\|compress\|proxy\|wrap` CLI · Live savings dashboard (USD/INR/tokens) · Hot-reload config · Safe defaults · Links: [docs/optimize-overview.md](docs/optimize-overview.md) · [V3.6 Wiki](https://github.com/qualixar/superlocalmemory/wiki/V3.6-Overview) |
|
|
388
447
|
| **v3.5.0** | Scale-Ready + Context Injection v2 | CozoDB/LanceDB migration, 6-channel recall <1s, Core Memory Block, BM25→FTS5, context injection v2, score normalization |
|
|
389
448
|
| **v3.4.5** | Scale-Ready (foundation) | Tiered storage (active/warm/cold), graph pruning, BackendOrchestrator scaffolding, CozoDB + LanceDB init + migration code (read path wired in v3.5.0) |
|
|
@@ -2,18 +2,18 @@
|
|
|
2
2
|
<img src="https://superlocalmemory.com/assets/logo-mark.png" alt="SuperLocalMemory" width="200"/>
|
|
3
3
|
</p>
|
|
4
4
|
|
|
5
|
-
<h1 align="center">SuperLocalMemory V3.6</h1>
|
|
6
|
-
<p align="center"><strong>
|
|
7
|
-
<p align="center"><code>v3.6.
|
|
5
|
+
<h1 align="center">SuperLocalMemory V3.6.11</h1>
|
|
6
|
+
<p align="center"><strong>Cache. Compress. Remember. Three surfaces — proxy, MCP tools, or skill. Every setup covered.</strong><br/><em>The only local-first layer that pairs persistent memory with compression + caching across every Claude plan. Full 1M window preserved in MCP and skill mode.</em></p>
|
|
7
|
+
<p align="center"><code>v3.6.11 "Optimize Everywhere"</code> — <strong>Compress + cache on any plan, three ways in.</strong><br/>Proxy (full-turn cache): <code>slm wrap claude</code> · MCP (proxy-free): add <code>slm_compress</code> to your MCP config · Skill (zero-config): <code>~/.claude/skills/slm-optimize/</code></p>
|
|
8
8
|
<p align="center"><strong>Backed by 3 published research papers</strong> (arXiv preprints + Zenodo-archived) · <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>
|
|
9
9
|
|
|
10
10
|
<p align="center">
|
|
11
|
-
<code>
|
|
11
|
+
<code>Proxy · MCP tools · Skill — three surfaces</code> · <code>+10.6pp vs Mem0 zero-LLM</code> · <code>85% Open-Domain (best zero-LLM score)</code> · <code>EU AI Act Ready</code>
|
|
12
12
|
</p>
|
|
13
13
|
|
|
14
14
|
<p align="center">
|
|
15
15
|
<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>
|
|
16
|
-
<a href="
|
|
16
|
+
<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>
|
|
17
17
|
<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>
|
|
18
18
|
<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>
|
|
19
19
|
<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>
|
|
@@ -33,18 +33,24 @@
|
|
|
33
33
|
<details>
|
|
34
34
|
<summary><strong>What's New in V3.6 — Optimize: SKIP, SHRINK, DISCOUNT, REMEMBER</strong> (click to expand)</summary>
|
|
35
35
|
|
|
36
|
-
> V3.6 is the only local-first layer that SKIPS repeat LLM calls (cache: 100%
|
|
36
|
+
> V3.6 is the only local-first layer that SKIPS repeat LLM calls (cache: 100% on a hit), SHRINKS tool outputs and injected context (compress: lossless-by-default, opt-in LLMLingua-2), and DISCOUNTS prefix costs (align: native KV-cache) — and remembers everything — in one install.
|
|
37
|
+
>
|
|
38
|
+
> **v3.6.11 "Optimize Everywhere":** Three surfaces. **Proxy** (Surface A) — full-turn cache + compress on transport; needs `ANTHROPIC_BASE_URL`, shrinks the context window. **MCP tools** (Surface B) — `slm_compress`, `slm_retrieve`, `slm_cache_set`, `slm_cache_get`, `slm_optimize_stats`; no proxy, no window shrink, works on any Claude subscription. **Skill** (Surface C) — `slm-optimize` installs in `~/.claude/skills/`; zero-config auto-compress for large tool outputs and CLAUDE.md. No proxy, full 1M window. [See Three Surfaces →](#three-surfaces-proxy--mcp-tools--skill)
|
|
39
|
+
>
|
|
40
|
+
> **v3.6.10:** cache and compression are now **independent runtime switches** (cache-only, compress-only, both, or neither — toggle live from the dashboard, no restart). Compression was rebuilt to be **lossless by default** (the old string/array/code truncation is gone); aggressive mode adds LLMLingua-2 for **prose only** — never code, numbers, structured data, or the current turn.
|
|
37
41
|
|
|
38
42
|
### The Three Levers
|
|
39
43
|
|
|
40
44
|
| Lever | Mechanism | Saving | Off by default? |
|
|
41
45
|
|-------|-----------|:------:|:---------------:|
|
|
42
|
-
| **Cache** | Skip repeat calls — exact-match SQLite lookup, vCache-gated semantic (opt-in) | **100% on a hit** (input + output) | Cache ON, Semantic OFF |
|
|
43
|
-
| **Compress** | Shrink prompts —
|
|
46
|
+
| **Cache** | Skip repeat calls — exact-match SQLite lookup (zero false hits), vCache-gated semantic (opt-in) | **100% on a hit** (input + output) | Cache ON, Semantic OFF |
|
|
47
|
+
| **Compress** | Shrink prompts — **safe = lossless** normalization; **aggressive = LLMLingua-2 prose only** (opt-in) | Safe: small + lossless · Aggressive: large on prose | Safe mode, Aggressive OFF |
|
|
44
48
|
| **Align** | Stabilize prefix — maximize provider prefix-cache discounts | **Lossless extra** | ON when compression is ON |
|
|
45
49
|
|
|
46
50
|
**Memory** (v3.5's existing engine) runs in parallel — it shapes *what is in* the prompt (relevant facts); Optimize decides *whether and how* it is sent.
|
|
47
51
|
|
|
52
|
+
> **Independent at runtime:** enable caching only, compression only, both, or neither — from the dashboard Optimize tab, applied live (no restart). Each AI client can also get its own memory identity over HTTP MCP via `http://127.0.0.1:8765/mcp/{agent_id}`.
|
|
53
|
+
|
|
48
54
|
### Quick Start
|
|
49
55
|
|
|
50
56
|
```bash
|
|
@@ -60,7 +66,7 @@ slm wrap claude
|
|
|
60
66
|
|:--------|:-------------|
|
|
61
67
|
| `slm optimize status\|on\|off\|savings` | Master Optimize control + savings report (USD/INR/tokens) |
|
|
62
68
|
| `slm cache status\|clear\|invalidate\|ttl\|semantic` | Cache sub-control — exact + semantic tiers |
|
|
63
|
-
| `slm compress status\|mode\|
|
|
69
|
+
| `slm compress status\|mode\|prose` | Compression control — safe (lossless) / aggressive (LLMLingua-2 prose) |
|
|
64
70
|
| `slm proxy [--port] [--provider]` | Start the interception proxy (port 8765) |
|
|
65
71
|
| `slm wrap <agent>` | Proxy-activate an agent — one command to start saving |
|
|
66
72
|
| `slm help-optimize [topic]` | Full developer reference + per-agent setup recipes |
|
|
@@ -116,6 +122,57 @@ Full docs:
|
|
|
116
122
|
|
|
117
123
|
---
|
|
118
124
|
|
|
125
|
+
## Three Surfaces: Proxy · MCP Tools · Skill
|
|
126
|
+
|
|
127
|
+
v3.6.11 delivers one engine across **three ways in** — choose the surface that fits your setup:
|
|
128
|
+
|
|
129
|
+
| Surface | How you use it | Requires proxy? | Window effect | Cache scope |
|
|
130
|
+
|---------|---------------|:---------------:|:-------------:|-------------|
|
|
131
|
+
| **A — Proxy** | `slm wrap claude` or `ANTHROPIC_BASE_URL=http://127.0.0.1:8765` | **Yes** | Shrinks (proxy intercepts full context) | Full-turn cache — every Claude call |
|
|
132
|
+
| **B — MCP tools** | Add 5 tools to MCP config; call `slm_compress`, `slm_cache_set/get` | **No** | **Preserved** (full 1M) | Results you explicitly route through SLM |
|
|
133
|
+
| **C — Skill** | Copy `skills/slm-optimize/SKILL.md` → `~/.claude/skills/` | **No** | **Preserved** (full 1M) | Auto-applied by the agent per skill rules |
|
|
134
|
+
|
|
135
|
+
**How to choose:**
|
|
136
|
+
- On a **metered API** (pay-per-token) and want to cache every call → **Proxy (A)**
|
|
137
|
+
- On a **Pro/Max/Team subscription** or any plan where you can't or won't run a proxy → **MCP tools (B)** or **Skill (C)**
|
|
138
|
+
- Want zero configuration → **Skill (C)**: install once, auto-compresses CLAUDE.md and large outputs
|
|
139
|
+
- Want agent-controlled caching of repeated file reads and tool outputs → **MCP tools (B)**
|
|
140
|
+
|
|
141
|
+
**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).
|
|
142
|
+
|
|
143
|
+
### MCP Tools Setup (Surface B)
|
|
144
|
+
|
|
145
|
+
Add to your `claude_desktop_config.json` or IDE MCP config alongside your existing SLM entry:
|
|
146
|
+
|
|
147
|
+
```json
|
|
148
|
+
{
|
|
149
|
+
"mcpServers": {
|
|
150
|
+
"superlocalmemory": {
|
|
151
|
+
"command": "slm",
|
|
152
|
+
"args": ["mcp"]
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
The 5 optimize tools (`slm_compress`, `slm_retrieve`, `slm_cache_set`, `slm_cache_get`, `slm_optimize_stats`) are included automatically from v3.6.11+. Verify with `slm_optimize_stats()`.
|
|
159
|
+
|
|
160
|
+
### Skill Setup (Surface C)
|
|
161
|
+
|
|
162
|
+
```bash
|
|
163
|
+
mkdir -p ~/.claude/skills/slm-optimize
|
|
164
|
+
cp $(pip show superlocalmemory | grep Location | awk '{print $2}')/superlocalmemory/skills/slm-optimize/SKILL.md \
|
|
165
|
+
~/.claude/skills/slm-optimize/SKILL.md
|
|
166
|
+
```
|
|
167
|
+
|
|
168
|
+
Then reference in your `CLAUDE.md`:
|
|
169
|
+
```markdown
|
|
170
|
+
## Context Management
|
|
171
|
+
Use the `slm-optimize` skill to compress large outputs and cache repeated reads.
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
---
|
|
175
|
+
|
|
119
176
|
<details>
|
|
120
177
|
<summary><strong>What's New in V3.3 — The Living Brain Evolves</strong> (click to expand)</summary>
|
|
121
178
|
|
|
@@ -292,6 +349,7 @@ No manual commands. No data loss. Zero downtime.
|
|
|
292
349
|
|
|
293
350
|
| Version | Codename | Key Features |
|
|
294
351
|
|---|---|---|
|
|
352
|
+
| **v3.6.11** | Optimize Everywhere | **Three surfaces** — Proxy (A: full-turn cache), MCP tools (B: `slm_compress`/`slm_retrieve`/`slm_cache_set`/`slm_cache_get`/`slm_optimize_stats` — proxy-free, 1M window), Skill (C: `slm-optimize` zero-config). `CacheDB.get_value()` (pure KV lookup). 23 new tests. Links: [Three Surfaces →](#three-surfaces-proxy--mcp-tools--skill) · [docs/optimize-overview.md](docs/optimize-overview.md) |
|
|
295
353
|
| **v3.6.0** | Optimize | **Cache** (skip repeat calls, 100% on hit) · **Compress** (shrink prompts 60-95%) · **Align** (KV-cache stabilization) · `slm optimize\|cache\|compress\|proxy\|wrap` CLI · Live savings dashboard (USD/INR/tokens) · Hot-reload config · Safe defaults · Links: [docs/optimize-overview.md](docs/optimize-overview.md) · [V3.6 Wiki](https://github.com/qualixar/superlocalmemory/wiki/V3.6-Overview) |
|
|
296
354
|
| **v3.5.0** | Scale-Ready + Context Injection v2 | CozoDB/LanceDB migration, 6-channel recall <1s, Core Memory Block, BM25→FTS5, context injection v2, score normalization |
|
|
297
355
|
| **v3.4.5** | Scale-Ready (foundation) | Tiered storage (active/warm/cold), graph pruning, BackendOrchestrator scaffolding, CozoDB + LanceDB init + migration code (read path wired in v3.5.0) |
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "superlocalmemory"
|
|
3
|
-
version = "3.6.
|
|
3
|
+
version = "3.6.11"
|
|
4
4
|
description = "Information-geometric agent memory with mathematical guarantees"
|
|
5
5
|
readme = "README.md"
|
|
6
6
|
license = {text = "AGPL-3.0-or-later"}
|
|
@@ -69,6 +69,11 @@ dependencies = [
|
|
|
69
69
|
"scikit-learn==1.8.0",
|
|
70
70
|
# Vector KNN extension for the semantic channel.
|
|
71
71
|
"sqlite-vec==0.1.9",
|
|
72
|
+
# v3.6.10: LLMLingua-2 prose compression (aggressive mode, opt-in at runtime).
|
|
73
|
+
# Hard dependency so `pip install superlocalmemory` ships compression-ready;
|
|
74
|
+
# the ~560MB model downloads on first setup/warmup (fail-open). Verified the
|
|
75
|
+
# pin does NOT disturb the transformers/torch/numpy pins above.
|
|
76
|
+
"llmlingua==0.2.2",
|
|
72
77
|
]
|
|
73
78
|
|
|
74
79
|
[project.optional-dependencies]
|
|
@@ -1,4 +1,8 @@
|
|
|
1
|
-
"""SuperLocalMemory — information-geometric agent memory.
|
|
1
|
+
"""SuperLocalMemory — information-geometric agent memory.
|
|
2
|
+
|
|
3
|
+
v3.6.9: all 7 retrieval layers at full quality (Hopfield@1000, entity_graph@100,
|
|
4
|
+
SA neighbor-cache fix, fast=True deprecated). See CHANGELOG.md.
|
|
5
|
+
"""
|
|
2
6
|
|
|
3
7
|
import os
|
|
4
8
|
|
|
@@ -28,7 +32,7 @@ if "OMP_NUM_THREADS" not in os.environ:
|
|
|
28
32
|
os.environ["OMP_NUM_THREADS"] = "2"
|
|
29
33
|
# ---------------------------------------------------------------------------
|
|
30
34
|
|
|
31
|
-
__version__ = "3.6.
|
|
35
|
+
__version__ = "3.6.10"
|
|
32
36
|
|
|
33
37
|
_REQUIRED_VERSIONS = {
|
|
34
38
|
"sentence_transformers": "5.3.0",
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
# Licensed under AGPL-3.0-or-later - see LICENSE file
|
|
3
3
|
# Part of SuperLocalMemory V3 | https://qualixar.com | https://varunpratap.com
|
|
4
4
|
|
|
5
|
-
"""Handlers for ``slm compress status|mode|
|
|
5
|
+
"""Handlers for ``slm compress status|mode|prose``."""
|
|
6
6
|
|
|
7
7
|
from __future__ import annotations
|
|
8
8
|
|
|
@@ -19,11 +19,6 @@ def _get_store():
|
|
|
19
19
|
return ConfigStore()
|
|
20
20
|
|
|
21
21
|
|
|
22
|
-
def _get_cache_db():
|
|
23
|
-
from superlocalmemory.optimize.storage.db import CacheDB
|
|
24
|
-
return CacheDB()
|
|
25
|
-
|
|
26
|
-
|
|
27
22
|
def _write_config(**fields) -> None:
|
|
28
23
|
"""5-step immutable config-write."""
|
|
29
24
|
store = _get_store()
|
|
@@ -44,18 +39,31 @@ def cmd_compress(args: Namespace) -> None:
|
|
|
44
39
|
sub = getattr(args, "compress_command", None)
|
|
45
40
|
_dispatch = {
|
|
46
41
|
"status": cmd_compress_status,
|
|
47
|
-
"mode":
|
|
48
|
-
"
|
|
49
|
-
|
|
50
|
-
"
|
|
51
|
-
"
|
|
42
|
+
"mode": cmd_compress_mode,
|
|
43
|
+
"prose": cmd_compress_prose,
|
|
44
|
+
# removed in v3.6.10: code, ccr, align (extractive compressors removed)
|
|
45
|
+
"code": _cmd_compress_removed("code"),
|
|
46
|
+
"ccr": _cmd_compress_removed("ccr"),
|
|
47
|
+
"align": _cmd_compress_removed("align"),
|
|
52
48
|
}
|
|
53
49
|
handler = _dispatch.get(sub or "")
|
|
54
50
|
if handler:
|
|
55
51
|
handler(args)
|
|
56
52
|
else:
|
|
57
|
-
print("Usage: slm compress status|mode|
|
|
53
|
+
print("Usage: slm compress status|mode|prose [options]")
|
|
54
|
+
sys.exit(0)
|
|
55
|
+
|
|
56
|
+
|
|
57
|
+
def _cmd_compress_removed(name: str):
|
|
58
|
+
def handler(args: Namespace) -> None:
|
|
59
|
+
print(
|
|
60
|
+
f"slm compress {name}: removed in SLM v3.6.10. "
|
|
61
|
+
f"Extractive {name} compression has been replaced by "
|
|
62
|
+
f"Layer 1 (lossless whitespace) + Layer 2 (LLMLingua-2 prose). "
|
|
63
|
+
f"Use 'slm compress prose on' to enable prose compression."
|
|
64
|
+
)
|
|
58
65
|
sys.exit(0)
|
|
66
|
+
return handler
|
|
59
67
|
|
|
60
68
|
|
|
61
69
|
def cmd_compress_status(args: Namespace) -> None:
|
|
@@ -68,21 +76,19 @@ def cmd_compress_status(args: Namespace) -> None:
|
|
|
68
76
|
"status": "ok",
|
|
69
77
|
"compress_enabled": cfg.compress_enabled,
|
|
70
78
|
"compress_mode": cfg.compress_mode,
|
|
71
|
-
"compress_code": cfg.compress_code,
|
|
72
79
|
"compress_prose": cfg.compress_prose,
|
|
73
|
-
"
|
|
80
|
+
"compress_protect_recent": cfg.compress_protect_recent,
|
|
74
81
|
}
|
|
75
82
|
print(json.dumps(data, indent=2))
|
|
76
83
|
return
|
|
77
84
|
|
|
78
85
|
print("Compression status:")
|
|
79
|
-
print(f" Enabled:
|
|
80
|
-
print(f" Mode:
|
|
81
|
-
print(f"
|
|
82
|
-
" (
|
|
83
|
-
print(f"
|
|
84
|
-
print(
|
|
85
|
-
" (reversible context retrieval)")
|
|
86
|
+
print(f" Enabled: {'yes' if cfg.compress_enabled else 'no'}")
|
|
87
|
+
print(f" Mode: {cfg.compress_mode}")
|
|
88
|
+
print(f" Prose (Layer 2): {'ON' if cfg.compress_prose else 'OFF'}"
|
|
89
|
+
" (LLMLingua-2, aggressive mode only)")
|
|
90
|
+
print(f" Protect recent: {cfg.compress_protect_recent} user turns")
|
|
91
|
+
print(" Layer 1 (lossless whitespace normalization) is always ON when enabled.")
|
|
86
92
|
|
|
87
93
|
|
|
88
94
|
def cmd_compress_mode(args: Namespace) -> None:
|
|
@@ -103,23 +109,8 @@ def cmd_compress_mode(args: Namespace) -> None:
|
|
|
103
109
|
print("Daemon hot-reload: active within 2s. No restart required.")
|
|
104
110
|
|
|
105
111
|
|
|
106
|
-
def cmd_compress_code(args: Namespace) -> None:
|
|
107
|
-
"""Enable or disable code/JSON compression."""
|
|
108
|
-
use_json = getattr(args, "json", False)
|
|
109
|
-
value = getattr(args, "code_value", "on")
|
|
110
|
-
|
|
111
|
-
_write_config(compress_code=(value == "on"))
|
|
112
|
-
|
|
113
|
-
if use_json:
|
|
114
|
-
print(json.dumps({"status": "ok", "compress_code": value == "on"}))
|
|
115
|
-
return
|
|
116
|
-
|
|
117
|
-
print(f"Code compression: {'ENABLED' if value == 'on' else 'DISABLED'}.")
|
|
118
|
-
print("Daemon hot-reload: active within 2s.")
|
|
119
|
-
|
|
120
|
-
|
|
121
112
|
def cmd_compress_prose(args: Namespace) -> None:
|
|
122
|
-
"""Enable or disable prose compression."""
|
|
113
|
+
"""Enable or disable prose compression (Layer 2, LLMLingua-2)."""
|
|
123
114
|
use_json = getattr(args, "json", False)
|
|
124
115
|
value = getattr(args, "prose_value", "off")
|
|
125
116
|
|
|
@@ -141,39 +132,10 @@ def cmd_compress_prose(args: Namespace) -> None:
|
|
|
141
132
|
print(json.dumps({"status": "ok", "compress_prose": value == "on"}))
|
|
142
133
|
return
|
|
143
134
|
|
|
144
|
-
print(f"Prose compression: {'ENABLED' if value == 'on' else 'DISABLED'}.")
|
|
135
|
+
print(f"Prose compression (LLMLingua-2): {'ENABLED' if value == 'on' else 'DISABLED'}.")
|
|
136
|
+
if value == "on":
|
|
137
|
+
print(" Requires: compress_mode=aggressive and llmlingua package installed.")
|
|
138
|
+
print(" Run: slm compress mode aggressive (if not already set)")
|
|
145
139
|
if value == "on" and "compress_enabled" in fields:
|
|
146
140
|
print(" (also enabled global compress)")
|
|
147
141
|
print("Daemon hot-reload: active within 2s.")
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
def cmd_compress_align(args: Namespace) -> None:
|
|
151
|
-
"""Enable or disable alignment compression."""
|
|
152
|
-
use_json = getattr(args, "json", False)
|
|
153
|
-
value = getattr(args, "align_value", "on")
|
|
154
|
-
|
|
155
|
-
_write_config(compress_align=(value == "on"))
|
|
156
|
-
|
|
157
|
-
if use_json:
|
|
158
|
-
print(json.dumps({"status": "ok", "compress_align": value == "on"}))
|
|
159
|
-
return
|
|
160
|
-
|
|
161
|
-
print(f"Alignment compression: {'ENABLED' if value == 'on' else 'DISABLED'}.")
|
|
162
|
-
print("Daemon hot-reload: active within 2s.")
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
def cmd_compress_ccr(args: Namespace) -> None:
|
|
166
|
-
"""Enable or disable CCR (Compressed Context Retrieval)."""
|
|
167
|
-
use_json = getattr(args, "json", False)
|
|
168
|
-
value = getattr(args, "ccr_value", "off")
|
|
169
|
-
|
|
170
|
-
_write_config(compress_ccr=(value == "on"))
|
|
171
|
-
|
|
172
|
-
if use_json:
|
|
173
|
-
print(json.dumps({"status": "ok", "compress_ccr": value == "on"}))
|
|
174
|
-
return
|
|
175
|
-
|
|
176
|
-
print(f"CCR (Compressed Context Retrieval): {'ENABLED' if value == 'on' else 'DISABLED'}.")
|
|
177
|
-
if value == "on":
|
|
178
|
-
print("Originals stored in llmcache.db for reversible retrieval.")
|
|
179
|
-
print("Daemon hot-reload: active within 2s.")
|
|
@@ -97,9 +97,7 @@ def cmd_optimize_status(args: Namespace) -> None:
|
|
|
97
97
|
f" semantic: {'OFF' if not cfg.semantic_enabled else f'{cfg.ttl.semantic_seconds}s'})")
|
|
98
98
|
print(f" Compress: {'enabled' if cfg.compress_enabled else 'disabled'}"
|
|
99
99
|
f" (mode: {cfg.compress_mode},"
|
|
100
|
-
f"
|
|
101
|
-
f" prose: {'ON' if cfg.compress_prose else 'OFF'},"
|
|
102
|
-
f" CCR: {'ON' if cfg.compress_ccr else 'OFF'})")
|
|
100
|
+
f" prose/L2: {'ON' if cfg.compress_prose else 'OFF'})")
|
|
103
101
|
proxy_status = f"running on :{OPTIMIZE_DEFAULT_PORT}" if proxy_running else "not running"
|
|
104
102
|
print(f" Proxy: {proxy_status}")
|
|
105
103
|
print(f" Config: ~/.superlocalmemory/optimize.json (version {cfg.config_version})")
|
|
@@ -32,6 +32,8 @@ _SLM_HOME = Path(os.environ.get("SL_MEMORY_PATH", Path.home() / ".superlocalmemo
|
|
|
32
32
|
_SETUP_MARKER = _SLM_HOME / ".setup-complete"
|
|
33
33
|
_EMBED_MODEL = "nomic-ai/nomic-embed-text-v1.5"
|
|
34
34
|
_RERANKER_MODEL = "cross-encoder/ms-marco-MiniLM-L-12-v2"
|
|
35
|
+
# v3.6.10: compulsory LLMLingua-2 prose compression model (~560MB, aggressive mode).
|
|
36
|
+
_COMPRESSOR_MODEL = "microsoft/llmlingua-2-xlm-roberta-large-meetingbank"
|
|
35
37
|
|
|
36
38
|
|
|
37
39
|
# ---------------------------------------------------------------------------
|
|
@@ -178,6 +180,49 @@ def _download_reranker(model_name: str) -> bool:
|
|
|
178
180
|
return False
|
|
179
181
|
|
|
180
182
|
|
|
183
|
+
def _download_compressor(model_name: str) -> bool:
|
|
184
|
+
"""Download the LLMLingua-2 prose compression model (v3.6.10).
|
|
185
|
+
|
|
186
|
+
Mirrors _download_reranker: a subprocess forces the HF download with visible
|
|
187
|
+
progress. Fail-open — a network hiccup must NOT break setup; the model also
|
|
188
|
+
lazy-downloads on first use in prose_llmlingua.py.
|
|
189
|
+
"""
|
|
190
|
+
print(f"\n Downloading compression model: {model_name}")
|
|
191
|
+
print(f" (LLMLingua-2 prose compressor, ~560MB — aggressive mode only)\n")
|
|
192
|
+
|
|
193
|
+
script = (
|
|
194
|
+
"from llmlingua import PromptCompressor; "
|
|
195
|
+
f"PromptCompressor(model_name='{model_name}', use_llmlingua2=True, "
|
|
196
|
+
"device_map='cpu'); "
|
|
197
|
+
"print('OK')"
|
|
198
|
+
)
|
|
199
|
+
|
|
200
|
+
try:
|
|
201
|
+
result = subprocess.run(
|
|
202
|
+
[sys.executable, "-c", script],
|
|
203
|
+
timeout=900, # 560MB on a slow link can exceed 5 min
|
|
204
|
+
capture_output=False,
|
|
205
|
+
text=True,
|
|
206
|
+
env={
|
|
207
|
+
**os.environ,
|
|
208
|
+
"CUDA_VISIBLE_DEVICES": "",
|
|
209
|
+
"TOKENIZERS_PARALLELISM": "false",
|
|
210
|
+
"TORCH_DEVICE": "cpu",
|
|
211
|
+
},
|
|
212
|
+
)
|
|
213
|
+
if result.returncode == 0:
|
|
214
|
+
print(f" ✓ Compression model ready")
|
|
215
|
+
return True
|
|
216
|
+
print(f" ✗ Compression model download failed (will lazy-download on first use)")
|
|
217
|
+
return False
|
|
218
|
+
except ImportError:
|
|
219
|
+
print(f" ⚠ llmlingua not installed — compression model will download on first use")
|
|
220
|
+
return False
|
|
221
|
+
except Exception as exc:
|
|
222
|
+
print(f" ✗ Compression model error: {exc}")
|
|
223
|
+
return False
|
|
224
|
+
|
|
225
|
+
|
|
181
226
|
# ---------------------------------------------------------------------------
|
|
182
227
|
# Verification
|
|
183
228
|
# ---------------------------------------------------------------------------
|
|
@@ -393,6 +438,10 @@ def run_wizard(auto: bool = False) -> None:
|
|
|
393
438
|
else:
|
|
394
439
|
_download_reranker(_RERANKER_MODEL)
|
|
395
440
|
|
|
441
|
+
print()
|
|
442
|
+
print("─── Step 4c/10: Download Compression Model (LLMLingua-2) ───")
|
|
443
|
+
_download_compressor(_COMPRESSOR_MODEL)
|
|
444
|
+
|
|
396
445
|
# -- Step 5: Daemon Configuration (v3.4.3) --
|
|
397
446
|
print()
|
|
398
447
|
print("─── Step 5/10: Daemon Configuration ───")
|