superlocalmemory 3.5.7__tar.gz → 3.5.9__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.5.7/src/superlocalmemory.egg-info → superlocalmemory-3.5.9}/PKG-INFO +1 -1
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/pyproject.toml +1 -1
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/__init__.py +1 -1
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/cli/commands.py +29 -2
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/cli/main.py +4 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/core/config.py +5 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/core/engine.py +23 -0
- superlocalmemory-3.5.9/src/superlocalmemory/core/mcp_embedder_proxy.py +89 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/infra/process_reaper.py +12 -1
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/llm/backbone.py +10 -4
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/mcp/server.py +34 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/mcp/tools_v3.py +6 -2
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/server/routes/v3_api.py +63 -1
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9/src/superlocalmemory.egg-info}/PKG-INFO +1 -1
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory.egg-info/SOURCES.txt +1 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/AUTHORS.md +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/LICENSE +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/NOTICE +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/README.md +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/setup.cfg +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/attribution/__init__.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/attribution/mathematical_dna.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/attribution/signer.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/attribution/watermark.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/cli/__init__.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/cli/context_commands.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/cli/daemon.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/cli/db_migrate.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/cli/doctor_cmd.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/cli/escape_hatch.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/cli/ingest_cmd.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/cli/json_output.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/cli/migrate_cmd.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/cli/pending_store.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/cli/post_install.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/cli/service_installer.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/cli/setup_wizard.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/cli/version_banner.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/cli/wizard_v3426_options.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/code_graph/__init__.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/code_graph/blast_radius.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/code_graph/bridge/__init__.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/code_graph/bridge/entity_resolver.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/code_graph/bridge/event_listeners.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/code_graph/bridge/fact_enricher.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/code_graph/bridge/hebbian_linker.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/code_graph/bridge/temporal_checker.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/code_graph/changes.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/code_graph/communities.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/code_graph/config.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/code_graph/database.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/code_graph/extractors/__init__.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/code_graph/extractors/python.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/code_graph/extractors/typescript.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/code_graph/flows.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/code_graph/git_hooks.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/code_graph/graph_engine.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/code_graph/graph_store.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/code_graph/incremental.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/code_graph/models.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/code_graph/parser.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/code_graph/resolver.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/code_graph/search.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/code_graph/service.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/code_graph/watcher.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/compliance/__init__.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/compliance/abac.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/compliance/audit.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/compliance/eu_ai_act.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/compliance/gdpr.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/compliance/lifecycle.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/compliance/retention.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/compliance/scheduler.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/core/__init__.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/core/backend_orchestrator.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/core/clock_monitor.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/core/consolidation_engine.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/core/context_cache.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/core/db_pool.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/core/embedding_worker.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/core/embeddings.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/core/engine_capabilities.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/core/engine_lock.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/core/engine_wiring.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/core/error_catalog.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/core/error_envelope.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/core/fact_consolidator.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/core/file_lock.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/core/graph_analyzer.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/core/graph_pruner.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/core/health_monitor.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/core/hooks.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/core/injection.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/core/loop_watchdog.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/core/maintenance.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/core/maintenance_scheduler.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/core/modes.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/core/ollama_embedder.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/core/platform_utils.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/core/priority_queue.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/core/profiles.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/core/pruning_engine.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/core/queue_consumer.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/core/queue_dispatcher.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/core/ram_lock.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/core/rate_limit.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/core/recall_gate.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/core/recall_pipeline.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/core/recall_queue.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/core/recall_worker.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/core/registry.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/core/reranker_worker.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/core/safe_fs.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/core/security_primitives.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/core/shadow_router.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/core/slm_disabled.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/core/slmignore.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/core/store_pipeline.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/core/summarizer.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/core/tier_manager.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/core/topic_signature.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/core/worker_pool.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/dynamics/__init__.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/dynamics/activation_guided_quantization.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/dynamics/eap_scheduler.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/dynamics/ebbinghaus_langevin_coupling.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/dynamics/fisher_langevin_coupling.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/encoding/__init__.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/encoding/auto_linker.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/encoding/cognitive_consolidator.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/encoding/consolidator.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/encoding/context_generator.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/encoding/emotional.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/encoding/entity_resolver.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/encoding/entropy_gate.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/encoding/fact_extractor.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/encoding/foresight.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/encoding/graph_builder.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/encoding/observation_builder.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/encoding/scene_builder.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/encoding/signal_inference.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/encoding/temporal_parser.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/encoding/temporal_validator.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/encoding/type_router.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/evolution/__init__.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/evolution/blind_verifier.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/evolution/budget.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/evolution/evolution_store.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/evolution/llm_dispatch.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/evolution/mutation_generator.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/evolution/skill_evolver.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/evolution/triggers.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/evolution/types.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/graph/__init__.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/graph/cozo_backend.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/hooks/__init__.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/hooks/_outcome_common.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/hooks/adapter_base.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/hooks/antigravity_adapter.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/hooks/auto_capture.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/hooks/auto_invoker.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/hooks/auto_parameterize.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/hooks/auto_recall.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/hooks/auto_recall_hook.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/hooks/before_web_hook.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/hooks/claude_code_hooks.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/hooks/context_payload.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/hooks/copilot_adapter.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/hooks/cross_platform_connector.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/hooks/cursor_adapter.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/hooks/hook_daemon.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/hooks/hook_handlers.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/hooks/ide_connector.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/hooks/post_tool_async_hook.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/hooks/post_tool_outcome_hook.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/hooks/prewarm_auth.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/hooks/rules_engine.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/hooks/session_registry.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/hooks/stop_outcome_hook.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/hooks/sync_loop.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/hooks/topic_shift_hook.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/hooks/user_prompt_hook.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/hooks/user_prompt_rehash_hook.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/infra/__init__.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/infra/auth_middleware.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/infra/backup.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/infra/cache_manager.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/infra/cloud_backup.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/infra/event_bus.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/infra/heartbeat_monitor.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/infra/pid_manager.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/infra/rate_limiter.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/infra/webhook_dispatcher.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/ingestion/__init__.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/ingestion/adapter_manager.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/ingestion/base_adapter.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/ingestion/calendar_adapter.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/ingestion/credentials.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/ingestion/gmail_adapter.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/ingestion/parsers.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/ingestion/transcript_adapter.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/learning/__init__.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/learning/adaptive.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/learning/arm_catalog.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/learning/assertion_miner.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/learning/bandit.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/learning/bandit_cache.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/learning/behavioral.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/learning/behavioral_listener.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/learning/bootstrap.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/learning/consolidation_cycle.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/learning/consolidation_quantization_worker.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/learning/consolidation_worker.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/learning/cross_project.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/learning/database.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/learning/dedup_hnsw.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/learning/engagement.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/learning/ensemble.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/learning/entity_compiler.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/learning/fact_outcome_joins.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/learning/features.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/learning/feedback.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/learning/forgetting_scheduler.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/learning/hnsw_dedup.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/learning/labeler.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/learning/legacy_migration.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/learning/lightgbm_subprocess.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/learning/memory_merge.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/learning/model_cache.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/learning/model_rollback.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/learning/outcome_queue.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/learning/outcomes.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/learning/pattern_miner.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/learning/pattern_miner_constants.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/learning/project_context.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/learning/quantization_scheduler.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/learning/ranker.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/learning/ranker_common.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/learning/ranker_retrain_legacy.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/learning/ranker_retrain_online.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/learning/reward.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/learning/reward_archive.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/learning/reward_boost.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/learning/reward_proxy.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/learning/shadow_test.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/learning/signal_worker.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/learning/signals.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/learning/skill_performance_miner.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/learning/source_quality.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/learning/trigram_index.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/learning/workflows.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/llm/__init__.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/math/__init__.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/math/ebbinghaus.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/math/fisher.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/math/fisher_quantized.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/math/hopfield.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/math/langevin.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/math/polar_quant.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/math/qjl.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/math/sheaf.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/math/turbo_quant.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/mcp/__init__.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/mcp/_daemon_proxy.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/mcp/_pool_adapter.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/mcp/resources.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/mcp/shared.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/mcp/tools.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/mcp/tools_active.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/mcp/tools_code_graph.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/mcp/tools_context.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/mcp/tools_core.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/mcp/tools_evolution.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/mcp/tools_learning.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/mcp/tools_mesh.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/mcp/tools_v28.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/mcp/tools_v33.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/mesh/__init__.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/mesh/broker.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/mesh/remote_sync.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/migrations/__init__.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/migrations/v3_4_25_to_v3_4_26.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/parameterization/__init__.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/parameterization/pattern_extractor.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/parameterization/pii_filter.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/parameterization/prompt_injector.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/parameterization/prompt_lifecycle.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/parameterization/soft_prompt_generator.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/retrieval/__init__.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/retrieval/agentic.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/retrieval/ann_index.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/retrieval/bm25_channel.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/retrieval/bridge_discovery.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/retrieval/channel_registry.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/retrieval/engine.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/retrieval/entity_channel.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/retrieval/forgetting_filter.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/retrieval/fusion.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/retrieval/hopfield_channel.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/retrieval/profile_channel.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/retrieval/quantization_aware_search.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/retrieval/reranker.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/retrieval/semantic_channel.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/retrieval/spreading_activation.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/retrieval/strategy.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/retrieval/temporal_channel.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/retrieval/vector_store.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/server/__init__.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/server/api.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/server/bandit_loops.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/server/middleware/__init__.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/server/middleware/security_headers.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/server/routes/__init__.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/server/routes/adapters.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/server/routes/agents.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/server/routes/backup.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/server/routes/behavioral.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/server/routes/brain.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/server/routes/chat.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/server/routes/compliance.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/server/routes/data_io.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/server/routes/entity.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/server/routes/events.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/server/routes/evolution.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/server/routes/helpers.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/server/routes/ingest.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/server/routes/insights.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/server/routes/learning.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/server/routes/lifecycle.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/server/routes/memories.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/server/routes/mesh.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/server/routes/prewarm.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/server/routes/profiles.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/server/routes/stats.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/server/routes/tiers.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/server/routes/timeline.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/server/routes/token.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/server/routes/ws.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/server/security_middleware.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/server/ui.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/server/unified_daemon.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/skills/slm-build-graph/SKILL.md +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/skills/slm-list-recent/SKILL.md +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/skills/slm-recall/SKILL.md +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/skills/slm-remember/SKILL.md +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/skills/slm-show-patterns/SKILL.md +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/skills/slm-status/SKILL.md +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/skills/slm-switch-profile/SKILL.md +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/storage/__init__.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/storage/access_control.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/storage/access_log.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/storage/database.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/storage/embedding_migrator.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/storage/migration_runner.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/storage/migration_v33.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/storage/migrations/M001_add_signal_features_columns.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/storage/migrations/M002_model_state_history.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/storage/migrations/M003_migration_log.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/storage/migrations/M004_cross_platform_sync_log.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/storage/migrations/M005_bandit_tables.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/storage/migrations/M006_action_outcomes_reward.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/storage/migrations/M007_pending_outcomes.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/storage/migrations/M009_model_lineage.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/storage/migrations/M010_evolution_config.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/storage/migrations/M011_archive_and_merge.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/storage/migrations/M012_shadow_observations.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/storage/migrations/M013_bi_temporal_columns.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/storage/migrations/M014_v345_scale_ready.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/storage/migrations/M015_add_pinned_column.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/storage/migrations/__init__.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/storage/migrations.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/storage/models.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/storage/quantized_store.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/storage/schema.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/storage/schema_code_graph.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/storage/schema_v32.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/storage/schema_v3410.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/storage/schema_v3411.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/storage/schema_v343.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/storage/schema_v345.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/storage/schema_v347.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/storage/v2_migrator.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/trust/__init__.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/trust/gate.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/trust/provenance.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/trust/scorer.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/trust/signals.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/ui/css/brain.css +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/ui/css/legacy-dashboard.css +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/ui/css/neural-glass.css +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/ui/index.html +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/ui/js/agents.js +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/ui/js/auto-settings.js +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/ui/js/brain.js +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/ui/js/clusters.js +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/ui/js/compliance.js +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/ui/js/core.js +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/ui/js/dashboard.js +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/ui/js/events.js +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/ui/js/fact-detail.js +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/ui/js/feedback.js +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/ui/js/graph-event-bus.js +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/ui/js/graph-filters.js +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/ui/js/graph-ui.js +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/ui/js/ide-status.js +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/ui/js/init.js +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/ui/js/knowledge-graph.js +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/ui/js/lifecycle.js +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/ui/js/math-health.js +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/ui/js/memories.js +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/ui/js/memory-chat.js +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/ui/js/memory-timeline.js +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/ui/js/modal.js +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/ui/js/ng-entities.js +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/ui/js/ng-health.js +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/ui/js/ng-ingestion.js +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/ui/js/ng-mesh.js +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/ui/js/ng-shell.js +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/ui/js/ng-skills.js +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/ui/js/profiles.js +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/ui/js/quick-actions.js +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/ui/js/recall-lab.js +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/ui/js/search.js +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/ui/js/settings.js +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/ui/js/timeline.js +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/ui/js/trust-dashboard.js +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/ui/vendor/bootstrap-icons/bootstrap-icons.css +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/ui/vendor/bootstrap-icons/fonts/bootstrap-icons.woff +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/ui/vendor/bootstrap-icons/fonts/bootstrap-icons.woff2 +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/ui/vendor/bootstrap.bundle.min.js +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/ui/vendor/bootstrap.min.css +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/ui/vendor/d3.v7.min.js +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/ui/vendor/graphology-library.min.js +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/ui/vendor/graphology.umd.min.js +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/ui/vendor/inter-ui/inter-variable.min.css +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/ui/vendor/inter-ui/variable/InterVariable-Italic.woff2 +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/ui/vendor/inter-ui/variable/InterVariable.woff2 +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/ui/vendor/sigma.min.js +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/vector/__init__.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/vector/lancedb_backend.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory.egg-info/dependency_links.txt +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory.egg-info/entry_points.txt +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory.egg-info/requires.txt +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory.egg-info/top_level.txt +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/tests/test_auto_hooks.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/tests/test_before_web_hook.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/tests/test_behavioral_full.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/tests/test_claude_hooks.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/tests/test_cli.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/tests/test_cli_json.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/tests/test_cli_v33.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/tests/test_compliance_full.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/tests/test_config_system.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/tests/test_engine_hooks.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/tests/test_event_bus.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/tests/test_features.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/tests/test_final_locomo_mini.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/tests/test_hook_handlers.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/tests/test_ide_connector.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/tests/test_infra.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/tests/test_injection.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/tests/test_learning_advanced.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/tests/test_learning_collectors.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/tests/test_llm_provider.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/tests/test_mcp_server.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/tests/test_migration.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/tests/test_mode_switch_preservation.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/tests/test_post_install.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/tests/test_ranker.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/tests/test_topic_shift_hook.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/tests/test_trust_full.py +0 -0
- {superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/tests/test_v3_api.py +0 -0
|
@@ -28,7 +28,7 @@ if "OMP_NUM_THREADS" not in os.environ:
|
|
|
28
28
|
os.environ["OMP_NUM_THREADS"] = "2"
|
|
29
29
|
# ---------------------------------------------------------------------------
|
|
30
30
|
|
|
31
|
-
__version__ = "3.5.
|
|
31
|
+
__version__ = "3.5.9"
|
|
32
32
|
|
|
33
33
|
_REQUIRED_VERSIONS = {
|
|
34
34
|
"sentence_transformers": "5.3.0",
|
|
@@ -1661,6 +1661,26 @@ def cmd_trace(args: Namespace) -> None:
|
|
|
1661
1661
|
|
|
1662
1662
|
def cmd_mcp(_args: Namespace) -> None:
|
|
1663
1663
|
"""Start the V3 MCP server (stdio transport for IDE integration)."""
|
|
1664
|
+
# SINGLETON GUARD (v3.5.8): Reap fresh orphans before binding stdio.
|
|
1665
|
+
# Root cause: every IDE session spawns a new `slm mcp`; dead sessions'
|
|
1666
|
+
# processes survive indefinitely (~400 MB each) because the reaper's
|
|
1667
|
+
# 1-hour age gate misses them. Fix: run find_orphans with age_threshold=0
|
|
1668
|
+
# so any `slm mcp` whose parent IDE/Claude process has died is killed
|
|
1669
|
+
# immediately. Only orphans (dead parent) are killed — live sessions safe.
|
|
1670
|
+
# CRITICAL: No stdout anywhere below — MCP stdio transport, any print
|
|
1671
|
+
# corrupts the JSON-RPC protocol.
|
|
1672
|
+
try:
|
|
1673
|
+
from superlocalmemory.infra.process_reaper import (
|
|
1674
|
+
ReaperConfig,
|
|
1675
|
+
find_orphans,
|
|
1676
|
+
kill_orphan,
|
|
1677
|
+
)
|
|
1678
|
+
_reaper_cfg = ReaperConfig(orphan_age_threshold_hours=0.0)
|
|
1679
|
+
for _orphan in find_orphans(_reaper_cfg):
|
|
1680
|
+
kill_orphan(_orphan.pid, graceful_timeout_seconds=1.0)
|
|
1681
|
+
except Exception:
|
|
1682
|
+
pass # Never block MCP startup on cleanup failure
|
|
1683
|
+
|
|
1664
1684
|
# Auto-install hooks on MCP startup (fast path: ~0.1ms if already current)
|
|
1665
1685
|
# CRITICAL: No stdout — MCP uses stdio transport, any print corrupts protocol
|
|
1666
1686
|
try:
|
|
@@ -2553,6 +2573,11 @@ def cmd_reap(args: Namespace) -> None:
|
|
|
2553
2573
|
"""Find and kill orphaned SLM processes."""
|
|
2554
2574
|
use_json = getattr(args, "json", False)
|
|
2555
2575
|
dry_run = not getattr(args, "force", False)
|
|
2576
|
+
# V3.5.9: --all bypasses orphan detection and kills every slm mcp process
|
|
2577
|
+
# except the current one. Use after switching IDEs to clear stale sessions.
|
|
2578
|
+
use_force_all = getattr(args, "all", False)
|
|
2579
|
+
if use_force_all:
|
|
2580
|
+
dry_run = False # --all always kills; --force is implied
|
|
2556
2581
|
|
|
2557
2582
|
try:
|
|
2558
2583
|
from superlocalmemory.infra.process_reaper import (
|
|
@@ -2561,7 +2586,7 @@ def cmd_reap(args: Namespace) -> None:
|
|
|
2561
2586
|
)
|
|
2562
2587
|
|
|
2563
2588
|
config = ReaperConfig()
|
|
2564
|
-
result = cleanup_all_orphans(config, dry_run=dry_run)
|
|
2589
|
+
result = cleanup_all_orphans(config, dry_run=dry_run, force=use_force_all)
|
|
2565
2590
|
except Exception as exc:
|
|
2566
2591
|
if use_json:
|
|
2567
2592
|
from superlocalmemory.cli.json_output import json_print
|
|
@@ -2580,7 +2605,8 @@ def cmd_reap(args: Namespace) -> None:
|
|
|
2580
2605
|
"killed": result.get("killed", 0),
|
|
2581
2606
|
"skipped": result.get("skipped", 0),
|
|
2582
2607
|
}, next_actions=[
|
|
2583
|
-
{"command": "slm reap --force --json", "description": "Kill
|
|
2608
|
+
{"command": "slm reap --force --json", "description": "Kill orphan processes"},
|
|
2609
|
+
{"command": "slm reap --all --json", "description": "Kill ALL slm mcp sessions (IDE switch)"},
|
|
2584
2610
|
{"command": "slm status --json", "description": "Check status"},
|
|
2585
2611
|
])
|
|
2586
2612
|
return
|
|
@@ -2600,3 +2626,4 @@ def cmd_reap(args: Namespace) -> None:
|
|
|
2600
2626
|
print(f" Skipped: {skipped}")
|
|
2601
2627
|
if dry_run and orphans > 0:
|
|
2602
2628
|
print("\n Use --force to kill orphaned processes.")
|
|
2629
|
+
print(" Use --all to kill ALL slm mcp sessions (after IDE switch).")
|
|
@@ -349,6 +349,10 @@ def main() -> None:
|
|
|
349
349
|
"--force", action="store_true",
|
|
350
350
|
help="Kill orphans (default: dry run only)",
|
|
351
351
|
)
|
|
352
|
+
reap_p.add_argument(
|
|
353
|
+
"--all", action="store_true", dest="all",
|
|
354
|
+
help="Kill ALL slm mcp processes regardless of orphan status (use after IDE switch)",
|
|
355
|
+
)
|
|
352
356
|
reap_p.add_argument("--json", action="store_true", help="Output structured JSON (agent-native)")
|
|
353
357
|
|
|
354
358
|
# V3.4.3: Ingestion adapters
|
|
@@ -691,6 +691,9 @@ class SLMConfig:
|
|
|
691
691
|
mode = Mode(data.get("mode", "a"))
|
|
692
692
|
llm_data = data.get("llm", {})
|
|
693
693
|
emb_data = data.get("embedding", {})
|
|
694
|
+
# V3.5.9: read base_dir before constructing config so for_mode() builds
|
|
695
|
+
# db_path from the user's directory, not DEFAULT_BASE_DIR.
|
|
696
|
+
raw_base_dir = Path(data.get("base_dir", str(DEFAULT_BASE_DIR)))
|
|
694
697
|
config = cls.for_mode(
|
|
695
698
|
mode,
|
|
696
699
|
llm_provider=llm_data.get("provider", ""),
|
|
@@ -703,6 +706,7 @@ class SLMConfig:
|
|
|
703
706
|
embedding_deployment=emb_data.get("deployment_name", ""),
|
|
704
707
|
embedding_model_name=emb_data.get("model_name", ""),
|
|
705
708
|
embedding_dimension=int(emb_data.get("dimension", 0) or 0),
|
|
709
|
+
base_dir=raw_base_dir,
|
|
706
710
|
)
|
|
707
711
|
config.active_profile = data.get("active_profile", "default")
|
|
708
712
|
|
|
@@ -813,6 +817,7 @@ class SLMConfig:
|
|
|
813
817
|
data = {
|
|
814
818
|
"mode": effective_mode,
|
|
815
819
|
"active_profile": self.active_profile,
|
|
820
|
+
"base_dir": str(self.base_dir), # V3.5.9: persist so load() can restore custom paths
|
|
816
821
|
"llm": {
|
|
817
822
|
"provider": self.llm.provider,
|
|
818
823
|
"model": self.llm.model,
|
|
@@ -126,6 +126,10 @@ class MemoryEngine:
|
|
|
126
126
|
|
|
127
127
|
if self._capabilities is Capabilities.FULL:
|
|
128
128
|
self._init_heavy_layer()
|
|
129
|
+
else:
|
|
130
|
+
# V3.5.9: LIGHT mode — try to get embedder from running daemon so that
|
|
131
|
+
# memories stored via MCP have real embeddings (fixes PR #30 NULL embedder).
|
|
132
|
+
self._try_init_proxy()
|
|
129
133
|
|
|
130
134
|
self._initialized = True
|
|
131
135
|
logger.info(
|
|
@@ -187,6 +191,25 @@ class MemoryEngine:
|
|
|
187
191
|
from superlocalmemory.learning.adaptive import AdaptiveLearner
|
|
188
192
|
self._adaptive_learner = AdaptiveLearner(self._db)
|
|
189
193
|
|
|
194
|
+
def _try_init_proxy(self) -> None:
|
|
195
|
+
"""V3.5.9: Attach McpEmbedderProxy when running in LIGHT mode.
|
|
196
|
+
|
|
197
|
+
If the daemon is reachable, the proxy delegates embed calls over HTTP
|
|
198
|
+
so that MCP-stored facts have real embeddings (fixes PR #30). Silently
|
|
199
|
+
skips if the daemon is not running — keyword recall still works.
|
|
200
|
+
"""
|
|
201
|
+
try:
|
|
202
|
+
from superlocalmemory.core.mcp_embedder_proxy import McpEmbedderProxy
|
|
203
|
+
port = getattr(self._config, "daemon_port", 8765)
|
|
204
|
+
proxy = McpEmbedderProxy(port=port)
|
|
205
|
+
if proxy.is_available():
|
|
206
|
+
self._embedder = proxy
|
|
207
|
+
logger.info("MCP embedder proxy attached (daemon port %d)", port)
|
|
208
|
+
else:
|
|
209
|
+
logger.debug("Daemon not reachable — MCP will run without embedder")
|
|
210
|
+
except Exception as exc:
|
|
211
|
+
logger.debug("McpEmbedderProxy init skipped: %s", exc)
|
|
212
|
+
|
|
190
213
|
def _init_heavy_layer(self) -> None:
|
|
191
214
|
from superlocalmemory.llm.backbone import LLMBackbone
|
|
192
215
|
from superlocalmemory.core.engine_wiring import (
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
# Copyright (c) 2026 Varun Pratap Bhardwaj / Qualixar
|
|
2
|
+
# Licensed under AGPL-3.0-or-later - see LICENSE file
|
|
3
|
+
# Part of SuperLocalMemory V3 | https://qualixar.com
|
|
4
|
+
|
|
5
|
+
"""V3.5.9 — McpEmbedderProxy: lightweight embedder for the MCP (LIGHT) process.
|
|
6
|
+
|
|
7
|
+
Problem: MemoryEngine(Capabilities.LIGHT) skips _init_heavy_layer(), leaving
|
|
8
|
+
_embedder=None permanently. Any memory stored via MCP tools has NULL embeddings
|
|
9
|
+
→ semantic search silently broken; health() lies, reporting unavailable.
|
|
10
|
+
|
|
11
|
+
Solution: a thin proxy that delegates embed_batch() to the running daemon via
|
|
12
|
+
its POST /api/embed endpoint over localhost HTTP. The daemon runs a FULL engine
|
|
13
|
+
with one real ONNX/Ollama worker. No second ONNX process is spawned.
|
|
14
|
+
|
|
15
|
+
Usage (engine.py LIGHT branch):
|
|
16
|
+
proxy = McpEmbedderProxy(port=8765)
|
|
17
|
+
if proxy.is_available():
|
|
18
|
+
engine._embedder = proxy
|
|
19
|
+
"""
|
|
20
|
+
|
|
21
|
+
from __future__ import annotations
|
|
22
|
+
|
|
23
|
+
import logging
|
|
24
|
+
|
|
25
|
+
logger = logging.getLogger(__name__)
|
|
26
|
+
|
|
27
|
+
_DEFAULT_TIMEOUT = 5.0 # seconds — fast enough for inline store() calls
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
class McpEmbedderProxy:
|
|
31
|
+
"""Proxy embedder: MCP process → daemon's /api/embed over localhost HTTP."""
|
|
32
|
+
|
|
33
|
+
def __init__(self, port: int = 8765, timeout: float = _DEFAULT_TIMEOUT) -> None:
|
|
34
|
+
self._base_url = f"http://127.0.0.1:{port}"
|
|
35
|
+
self._timeout = timeout
|
|
36
|
+
self._available: bool | None = None # cached after first is_available() call
|
|
37
|
+
|
|
38
|
+
def is_available(self) -> bool:
|
|
39
|
+
"""Ping daemon's embed endpoint. Cached after first success."""
|
|
40
|
+
if self._available is True:
|
|
41
|
+
return True
|
|
42
|
+
try:
|
|
43
|
+
import httpx
|
|
44
|
+
resp = httpx.get(f"{self._base_url}/api/v3/embed/ping", timeout=2.0)
|
|
45
|
+
self._available = resp.status_code == 200
|
|
46
|
+
except Exception:
|
|
47
|
+
self._available = False
|
|
48
|
+
return bool(self._available)
|
|
49
|
+
|
|
50
|
+
# -- Embedder interface (matches embeddings.py / ollama_embedder.py) ------
|
|
51
|
+
|
|
52
|
+
def embed(self, text: str) -> list[float] | None:
|
|
53
|
+
"""Embed a single text via daemon. Returns None on any error."""
|
|
54
|
+
results = self.embed_batch([text])
|
|
55
|
+
return results[0] if results else None
|
|
56
|
+
|
|
57
|
+
def embed_batch(self, texts: list[str]) -> list[list[float] | None]:
|
|
58
|
+
"""Embed a batch of texts via daemon's /api/embed endpoint."""
|
|
59
|
+
if not texts:
|
|
60
|
+
return []
|
|
61
|
+
try:
|
|
62
|
+
import httpx
|
|
63
|
+
resp = httpx.post(
|
|
64
|
+
f"{self._base_url}/api/v3/embed",
|
|
65
|
+
json={"texts": texts},
|
|
66
|
+
timeout=self._timeout,
|
|
67
|
+
)
|
|
68
|
+
resp.raise_for_status()
|
|
69
|
+
data = resp.json()
|
|
70
|
+
embeddings = data.get("embeddings", [])
|
|
71
|
+
# Pad with None if daemon returned fewer results than requested
|
|
72
|
+
while len(embeddings) < len(texts):
|
|
73
|
+
embeddings.append(None)
|
|
74
|
+
return embeddings
|
|
75
|
+
except Exception as exc:
|
|
76
|
+
logger.debug("McpEmbedderProxy.embed_batch failed: %s", exc)
|
|
77
|
+
return [None] * len(texts)
|
|
78
|
+
|
|
79
|
+
def compute_fisher_params(
|
|
80
|
+
self, embedding: list[float]
|
|
81
|
+
) -> tuple[list[float] | None, list[float] | None]:
|
|
82
|
+
"""Fisher-Rao params stay in daemon's FULL engine; proxy returns None.
|
|
83
|
+
|
|
84
|
+
The MCP LIGHT process stores facts with embedding=<vector> but
|
|
85
|
+
fisher_mean=None, fisher_variance=None. The daemon's consolidation
|
|
86
|
+
pass fills these in asynchronously — same behaviour as the
|
|
87
|
+
write-through remember path.
|
|
88
|
+
"""
|
|
89
|
+
return None, None
|
{superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/infra/process_reaper.py
RENAMED
|
@@ -185,7 +185,18 @@ else:
|
|
|
185
185
|
if not line:
|
|
186
186
|
continue
|
|
187
187
|
|
|
188
|
-
|
|
188
|
+
# v3.5.8: Expand detection to include entry-point launched `slm mcp`
|
|
189
|
+
# processes. Previously only `python -m superlocalmemory.*` was caught;
|
|
190
|
+
# `/opt/homebrew/bin/slm mcp` processes were invisible to the reaper,
|
|
191
|
+
# causing zombie accumulation (55 processes / ~5 GB RAM observed).
|
|
192
|
+
_slm_identifiers = (
|
|
193
|
+
"superlocalmemory",
|
|
194
|
+
"/slm ",
|
|
195
|
+
"slm mcp",
|
|
196
|
+
"slm serve",
|
|
197
|
+
"slm daemon",
|
|
198
|
+
)
|
|
199
|
+
if not any(kw in line for kw in _slm_identifiers):
|
|
189
200
|
continue
|
|
190
201
|
|
|
191
202
|
try:
|
|
@@ -233,17 +233,23 @@ class LLMBackbone:
|
|
|
233
233
|
self, prompt: str, system: str, max_tokens: int, temperature: float,
|
|
234
234
|
) -> tuple[str, dict[str, str], dict]:
|
|
235
235
|
messages = self._make_messages(system, prompt)
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
236
|
+
# V3.5.9: Skip Authorization header when api_key is empty so unauthenticated
|
|
237
|
+
# local endpoints (llama.cpp, LM Studio, etc.) don't reject with HTTP 401.
|
|
238
|
+
headers = {"Content-Type": "application/json"}
|
|
239
|
+
if self._api_key:
|
|
240
|
+
headers["Authorization"] = f"Bearer {self._api_key}"
|
|
240
241
|
payload = {
|
|
241
242
|
"model": self._model,
|
|
242
243
|
"messages": messages,
|
|
243
244
|
"max_tokens": max_tokens,
|
|
244
245
|
"temperature": temperature,
|
|
245
246
|
}
|
|
247
|
+
# V3.5.9: If base_url is a bare base (e.g. "http://host:port/v1") without
|
|
248
|
+
# the /chat/completions path, append it — matching OpenAI SDK behaviour and
|
|
249
|
+
# fixing the /v1/v1 duplication reported in issue #29.
|
|
246
250
|
url = self._base_url or _OPENAI_URL
|
|
251
|
+
if self._base_url and not self._base_url.rstrip("/").endswith("chat/completions"):
|
|
252
|
+
url = f"{self._base_url.rstrip('/')}/chat/completions"
|
|
247
253
|
return url, headers, payload
|
|
248
254
|
|
|
249
255
|
def _build_ollama(
|
|
@@ -278,5 +278,39 @@ _watchdog_thread = threading.Thread(target=_parent_watchdog, daemon=True, name="
|
|
|
278
278
|
_watchdog_thread.start()
|
|
279
279
|
|
|
280
280
|
|
|
281
|
+
# V3.5.9: Stdin EOF monitor — complements the parent watchdog for the case where
|
|
282
|
+
# the IDE starts a new MCP session WITHOUT quitting the app. The old stdio pipe
|
|
283
|
+
# is abandoned (write-end closed) but the parent process stays alive, so the
|
|
284
|
+
# watchdog never fires. Without this, each IDE reconnect adds a zombie process
|
|
285
|
+
# (22 seen in production causing 12 GB swap on the M5 Pro).
|
|
286
|
+
#
|
|
287
|
+
# Uses kqueue(2) KQ_EV_EOF on macOS — fires when the write-end of the stdin pipe
|
|
288
|
+
# closes WITHOUT consuming any bytes, so it cannot race with FastMCP's asyncio
|
|
289
|
+
# stdin reader. On Linux (no kqueue), the watchdog alone provides coverage.
|
|
290
|
+
def _stdin_eof_monitor() -> None:
|
|
291
|
+
"""Exit when the IDE closes our stdin pipe (kqueue — macOS only)."""
|
|
292
|
+
import select as _sel, os as _os_eof
|
|
293
|
+
_mlog = logging.getLogger(__name__ + ".stdin_monitor")
|
|
294
|
+
if not hasattr(_sel, "kqueue"):
|
|
295
|
+
return # Linux / non-macOS: watchdog covers process death
|
|
296
|
+
try:
|
|
297
|
+
fd = sys.stdin.fileno()
|
|
298
|
+
kq = _sel.kqueue()
|
|
299
|
+
ke = _sel.kevent(fd, filter=_sel.KQ_FILTER_READ, flags=_sel.KQ_EV_ADD | _sel.KQ_EV_EOF)
|
|
300
|
+
kq.control([ke], 0) # register without waiting
|
|
301
|
+
while True:
|
|
302
|
+
evs = kq.control(None, 4, 30.0) # 30 s poll — low cost
|
|
303
|
+
for ev in evs:
|
|
304
|
+
if ev.flags & _sel.KQ_EV_EOF:
|
|
305
|
+
_mlog.info("stdin write-end closed (kqueue EOF), self-terminating")
|
|
306
|
+
_os_eof._exit(0)
|
|
307
|
+
except Exception as exc:
|
|
308
|
+
_mlog.debug("stdin EOF monitor error: %s — watchdog will cover", exc)
|
|
309
|
+
|
|
310
|
+
|
|
311
|
+
_stdin_monitor_thread = threading.Thread(target=_stdin_eof_monitor, daemon=True, name="stdin-eof-monitor")
|
|
312
|
+
_stdin_monitor_thread.start()
|
|
313
|
+
|
|
314
|
+
|
|
281
315
|
if __name__ == "__main__":
|
|
282
316
|
server.run(transport="stdio")
|
|
@@ -161,9 +161,13 @@ def register_v3_tools(server, get_engine: Callable) -> None:
|
|
|
161
161
|
"fact_count": fact_count,
|
|
162
162
|
}
|
|
163
163
|
|
|
164
|
-
# Embedding service
|
|
164
|
+
# Embedding service — distinguish real embedder from V3.5.9 daemon proxy
|
|
165
|
+
_emb = engine._embedder
|
|
166
|
+
from superlocalmemory.core.mcp_embedder_proxy import McpEmbedderProxy
|
|
167
|
+
_is_proxy = isinstance(_emb, McpEmbedderProxy)
|
|
165
168
|
status["components"]["embedder"] = {
|
|
166
|
-
"status": "ok" if
|
|
169
|
+
"status": "ok" if _emb else "unavailable",
|
|
170
|
+
"source": "daemon_proxy" if _is_proxy else "local",
|
|
167
171
|
"model": engine._config.embedding.model_name,
|
|
168
172
|
}
|
|
169
173
|
|
{superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/server/routes/v3_api.py
RENAMED
|
@@ -365,6 +365,51 @@ async def test_embedding_endpoint(request: Request):
|
|
|
365
365
|
return {"success": False, "error": type(e).__name__}
|
|
366
366
|
|
|
367
367
|
|
|
368
|
+
@router.get("/embed/ping")
|
|
369
|
+
async def embed_ping():
|
|
370
|
+
"""V3.5.9: Liveness probe for McpEmbedderProxy. Returns 200 when daemon
|
|
371
|
+
embedder is ready so the proxy knows the daemon is reachable."""
|
|
372
|
+
try:
|
|
373
|
+
from .helpers import get_engine_lazy
|
|
374
|
+
# We just need to confirm the route is alive — engine check is optional
|
|
375
|
+
return {"ok": True}
|
|
376
|
+
except Exception as e:
|
|
377
|
+
return JSONResponse({"ok": False, "error": str(e)}, status_code=503)
|
|
378
|
+
|
|
379
|
+
|
|
380
|
+
@router.post("/embed")
|
|
381
|
+
async def embed_texts(request: Request):
|
|
382
|
+
"""V3.5.9: Embed texts via daemon's FULL engine for McpEmbedderProxy.
|
|
383
|
+
|
|
384
|
+
MCP processes run LIGHT engines (no ONNX worker). This endpoint lets them
|
|
385
|
+
delegate embed_batch() to the daemon's single real embedder — one ONNX
|
|
386
|
+
worker total across all sessions (fixes PR #30 NULL embedder bug).
|
|
387
|
+
"""
|
|
388
|
+
import asyncio
|
|
389
|
+
try:
|
|
390
|
+
body = await request.json()
|
|
391
|
+
texts = body.get("texts", [])
|
|
392
|
+
if not texts:
|
|
393
|
+
return {"embeddings": []}
|
|
394
|
+
|
|
395
|
+
from .helpers import get_engine_lazy
|
|
396
|
+
engine = get_engine_lazy(request.app.state)
|
|
397
|
+
if engine is None or engine._embedder is None:
|
|
398
|
+
return JSONResponse(
|
|
399
|
+
{"error": "Embedder not available in daemon"},
|
|
400
|
+
status_code=503,
|
|
401
|
+
)
|
|
402
|
+
|
|
403
|
+
loop = asyncio.get_event_loop()
|
|
404
|
+
embeddings = await loop.run_in_executor(
|
|
405
|
+
None,
|
|
406
|
+
lambda: engine._embedder.embed_batch(texts),
|
|
407
|
+
)
|
|
408
|
+
return {"embeddings": embeddings}
|
|
409
|
+
except Exception as e:
|
|
410
|
+
return JSONResponse({"error": str(e)}, status_code=500)
|
|
411
|
+
|
|
412
|
+
|
|
368
413
|
@router.post("/provider/test")
|
|
369
414
|
async def test_provider(request: Request):
|
|
370
415
|
"""Test connectivity to an LLM provider."""
|
|
@@ -400,8 +445,25 @@ async def test_provider(request: Request):
|
|
|
400
445
|
return {"success": True, "message": "OpenRouter connected, key valid"}
|
|
401
446
|
|
|
402
447
|
if provider == "openai":
|
|
448
|
+
# V3.5.9: custom/local endpoint — api_key is optional (llama.cpp, LM Studio etc.)
|
|
449
|
+
custom_endpoint = body.get("base_url", "").strip() or body.get("endpoint", "").strip()
|
|
450
|
+
if custom_endpoint:
|
|
451
|
+
headers_test = {"Content-Type": "application/json"}
|
|
452
|
+
if api_key:
|
|
453
|
+
headers_test["Authorization"] = f"Bearer {api_key}"
|
|
454
|
+
base = custom_endpoint.rstrip("/")
|
|
455
|
+
if not base.endswith("chat/completions"):
|
|
456
|
+
base = f"{base}/chat/completions"
|
|
457
|
+
with httpx.Client(timeout=httpx.Timeout(10.0)) as c:
|
|
458
|
+
# Probe with a minimal chat request (models list not universal on local servers)
|
|
459
|
+
probe = {"model": body.get("model", "test"), "messages": [{"role": "user", "content": "hi"}], "max_tokens": 1}
|
|
460
|
+
resp = c.post(base, headers=headers_test, json=probe)
|
|
461
|
+
if resp.status_code in (200, 400, 422):
|
|
462
|
+
return {"success": True, "message": f"Custom endpoint reachable (HTTP {resp.status_code})"}
|
|
463
|
+
resp.raise_for_status()
|
|
464
|
+
return {"success": True, "message": "Custom OpenAI-compatible endpoint connected"}
|
|
403
465
|
if not api_key:
|
|
404
|
-
return {"success": False, "error": "API key required"}
|
|
466
|
+
return {"success": False, "error": "API key required for official OpenAI endpoint"}
|
|
405
467
|
with httpx.Client(timeout=httpx.Timeout(10.0)) as c:
|
|
406
468
|
resp = c.get("https://api.openai.com/v1/models", headers={"Authorization": f"Bearer {api_key}"})
|
|
407
469
|
resp.raise_for_status()
|
|
@@ -90,6 +90,7 @@ src/superlocalmemory/core/injection.py
|
|
|
90
90
|
src/superlocalmemory/core/loop_watchdog.py
|
|
91
91
|
src/superlocalmemory/core/maintenance.py
|
|
92
92
|
src/superlocalmemory/core/maintenance_scheduler.py
|
|
93
|
+
src/superlocalmemory/core/mcp_embedder_proxy.py
|
|
93
94
|
src/superlocalmemory/core/modes.py
|
|
94
95
|
src/superlocalmemory/core/ollama_embedder.py
|
|
95
96
|
src/superlocalmemory/core/platform_utils.py
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/attribution/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/attribution/signer.py
RENAMED
|
File without changes
|
{superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/attribution/watermark.py
RENAMED
|
File without changes
|
|
File without changes
|
{superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/cli/context_commands.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/cli/service_installer.py
RENAMED
|
File without changes
|
|
File without changes
|
{superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/cli/version_banner.py
RENAMED
|
File without changes
|
{superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/cli/wizard_v3426_options.py
RENAMED
|
File without changes
|
{superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/code_graph/__init__.py
RENAMED
|
File without changes
|
{superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/code_graph/blast_radius.py
RENAMED
|
File without changes
|
{superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/code_graph/bridge/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/code_graph/changes.py
RENAMED
|
File without changes
|
{superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/code_graph/communities.py
RENAMED
|
File without changes
|
|
File without changes
|
{superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/code_graph/database.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/code_graph/git_hooks.py
RENAMED
|
File without changes
|
{superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/code_graph/graph_engine.py
RENAMED
|
File without changes
|
{superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/code_graph/graph_store.py
RENAMED
|
File without changes
|
{superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/code_graph/incremental.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/code_graph/resolver.py
RENAMED
|
File without changes
|
|
File without changes
|
{superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/code_graph/service.py
RENAMED
|
File without changes
|
{superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/code_graph/watcher.py
RENAMED
|
File without changes
|
{superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/compliance/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/compliance/eu_ai_act.py
RENAMED
|
File without changes
|
|
File without changes
|
{superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/compliance/lifecycle.py
RENAMED
|
File without changes
|
{superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/compliance/retention.py
RENAMED
|
File without changes
|
{superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/compliance/scheduler.py
RENAMED
|
File without changes
|
|
File without changes
|
{superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/core/backend_orchestrator.py
RENAMED
|
File without changes
|
{superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/core/clock_monitor.py
RENAMED
|
File without changes
|
{superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/core/consolidation_engine.py
RENAMED
|
File without changes
|
{superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/core/context_cache.py
RENAMED
|
File without changes
|
|
File without changes
|
{superlocalmemory-3.5.7 → superlocalmemory-3.5.9}/src/superlocalmemory/core/embedding_worker.py
RENAMED
|
File without changes
|