superlocalmemory 3.7.0__tar.gz → 3.7.2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {superlocalmemory-3.7.0/src/superlocalmemory.egg-info → superlocalmemory-3.7.2}/PKG-INFO +3 -3
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/README.md +2 -2
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/pyproject.toml +1 -1
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/__init__.py +1 -1
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/cli/_lazy_init.py +4 -2
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/core/embedding_worker.py +7 -1
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/core/embeddings.py +8 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/core/engine.py +1 -3
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/core/engine_wiring.py +30 -28
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/core/ram_lock.py +42 -4
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/evolution/budget.py +43 -8
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/hooks/claude_code_hooks.py +1 -1
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/hooks/context_payload.py +1 -1
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/mcp/http_transport.py +1 -1
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/mcp/tools_core.py +48 -31
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/mesh/broker.py +111 -61
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/optimize/proxy/server.py +1 -1
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/retrieval/spreading_activation.py +53 -3
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/server/routes/brain.py +1 -1
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/server/unified_daemon.py +24 -7
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2/src/superlocalmemory.egg-info}/PKG-INFO +3 -3
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/tests/test_dashboard_preserve_embedding.py +5 -5
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/AUTHORS.md +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/LICENSE +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/NOTICE +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/plugin-src/skills/slm-cache/SKILL.md +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/plugin-src/skills/slm-compress/SKILL.md +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/plugin-src/skills/slm-graph/SKILL.md +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/plugin-src/skills/slm-recall/SKILL.md +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/plugin-src/skills/slm-remember/SKILL.md +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/plugin-src/skills/slm-session/SKILL.md +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/plugin-src/skills/slm-status/SKILL.md +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/setup.cfg +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/attribution/__init__.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/attribution/mathematical_dna.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/attribution/signer.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/attribution/watermark.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/cli/__init__.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/cli/cache_cmd.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/cli/commands.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/cli/compress_cmd.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/cli/context_commands.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/cli/daemon.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/cli/db_migrate.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/cli/diagnostics_cmd.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/cli/escape_hatch.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/cli/evidence_cmd.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/cli/help_cmd.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/cli/ingest_cmd.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/cli/json_output.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/cli/main.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/cli/migrate_cmd.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/cli/optimize_cmd.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/cli/optimize_constants.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/cli/pending_store.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/cli/post_install.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/cli/proxy_cmd.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/cli/scale_engine_cmd.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/cli/service_installer.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/cli/setup_wizard.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/cli/version_banner.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/cli/wizard_v3426_options.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/code_graph/__init__.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/code_graph/blast_radius.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/code_graph/bridge/__init__.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/code_graph/bridge/entity_resolver.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/code_graph/bridge/event_listeners.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/code_graph/bridge/fact_enricher.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/code_graph/bridge/hebbian_linker.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/code_graph/bridge/temporal_checker.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/code_graph/changes.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/code_graph/communities.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/code_graph/config.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/code_graph/database.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/code_graph/extractors/__init__.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/code_graph/extractors/python.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/code_graph/extractors/typescript.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/code_graph/flows.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/code_graph/git_hooks.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/code_graph/graph_engine.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/code_graph/graph_store.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/code_graph/incremental.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/code_graph/models.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/code_graph/parser.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/code_graph/resolver.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/code_graph/search.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/code_graph/service.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/code_graph/watcher.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/compliance/__init__.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/compliance/abac.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/compliance/audit.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/compliance/eu_ai_act.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/compliance/gdpr.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/compliance/lifecycle.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/compliance/retention.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/compliance/scheduler.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/core/__init__.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/core/backend_orchestrator.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/core/block_hygiene.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/core/clock_monitor.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/core/config.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/core/consolidation_engine.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/core/context_cache.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/core/db_pool.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/core/derivation_lineage.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/core/engine_capabilities.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/core/engine_ingestion.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/core/engine_lock.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/core/error_catalog.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/core/error_envelope.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/core/evidence_bundle.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/core/fact_consolidator.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/core/file_lock.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/core/graph_analyzer.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/core/graph_pruner.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/core/health_monitor.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/core/hooks.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/core/ingest_gate.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/core/ingestion_command.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/core/injection.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/core/lifecycle_state.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/core/loop_watchdog.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/core/maintenance.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/core/maintenance_scheduler.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/core/mcp_embedder_proxy.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/core/modes.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/core/mutations.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/core/ollama_embedder.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/core/platform_utils.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/core/priority_queue.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/core/profiles.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/core/pruning_engine.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/core/queue_consumer.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/core/queue_dispatcher.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/core/rate_limit.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/core/recall_gate.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/core/recall_pipeline.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/core/recall_queue.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/core/recall_worker.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/core/registry.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/core/remote_mode.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/core/reranker_worker.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/core/safe_fs.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/core/scale_engine.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/core/score_contract.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/core/security_primitives.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/core/shadow_router.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/core/slm_disabled.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/core/slmignore.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/core/store_pipeline.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/core/summarizer.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/core/tier_manager.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/core/topic_signature.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/core/worker_pool.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/dynamics/__init__.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/dynamics/activation_guided_quantization.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/dynamics/eap_scheduler.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/dynamics/ebbinghaus_langevin_coupling.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/dynamics/fisher_langevin_coupling.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/encoding/__init__.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/encoding/auto_linker.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/encoding/cognitive_consolidator.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/encoding/consolidator.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/encoding/context_generator.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/encoding/emotional.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/encoding/entity_resolver.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/encoding/entropy_gate.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/encoding/fact_extractor.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/encoding/foresight.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/encoding/graph_builder.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/encoding/observation_builder.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/encoding/scene_builder.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/encoding/signal_inference.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/encoding/temporal_parser.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/encoding/temporal_validator.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/encoding/type_router.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/evaluation/__init__.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/evaluation/calibration.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/evolution/__init__.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/evolution/blind_verifier.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/evolution/evolution_store.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/evolution/llm_dispatch.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/evolution/mutation_generator.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/evolution/skill_evolver.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/evolution/triggers.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/evolution/types.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/graph/__init__.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/graph/cozo_backend.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/hooks/__init__.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/hooks/_outcome_common.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/hooks/adapter_base.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/hooks/antigravity_adapter.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/hooks/auto_capture.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/hooks/auto_invoker.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/hooks/auto_parameterize.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/hooks/auto_recall.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/hooks/auto_recall_hook.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/hooks/before_web_hook.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/hooks/codex_assets.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/hooks/codex_hooks.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/hooks/copilot_adapter.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/hooks/cross_platform_connector.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/hooks/cursor_adapter.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/hooks/hook_daemon.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/hooks/hook_handlers.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/hooks/ide_connector.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/hooks/memory_protocol.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/hooks/portable_kit.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/hooks/post_tool_async_hook.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/hooks/post_tool_outcome_hook.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/hooks/prewarm_auth.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/hooks/rules_engine.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/hooks/session_registry.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/hooks/stop_outcome_hook.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/hooks/sync_loop.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/hooks/topic_shift_hook.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/hooks/user_prompt_hook.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/hooks/user_prompt_rehash_hook.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/infra/__init__.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/infra/auth_middleware.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/infra/backup.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/infra/cache_manager.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/infra/cloud_backup.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/infra/daemon_identity.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/infra/data_root.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/infra/event_bus.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/infra/heartbeat_monitor.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/infra/local_diagnostics.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/infra/pid_manager.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/infra/process_reaper.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/infra/rate_limiter.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/infra/webhook_dispatcher.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/ingestion/__init__.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/ingestion/adapter_manager.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/ingestion/base_adapter.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/ingestion/calendar_adapter.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/ingestion/credentials.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/ingestion/gmail_adapter.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/ingestion/parsers.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/ingestion/transcript_adapter.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/learning/__init__.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/learning/adaptive.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/learning/arm_catalog.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/learning/assertion_miner.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/learning/bandit.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/learning/bandit_cache.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/learning/behavioral.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/learning/behavioral_listener.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/learning/bootstrap.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/learning/consolidation_cycle.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/learning/consolidation_quantization_worker.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/learning/consolidation_worker.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/learning/cross_project.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/learning/database.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/learning/dedup_hnsw.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/learning/engagement.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/learning/ensemble.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/learning/entity_compiler.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/learning/fact_outcome_joins.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/learning/features.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/learning/feedback.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/learning/forgetting_scheduler.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/learning/hnsw_dedup.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/learning/labeler.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/learning/legacy_migration.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/learning/lightgbm_subprocess.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/learning/memory_merge.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/learning/model_cache.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/learning/model_rollback.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/learning/outcome_queue.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/learning/outcomes.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/learning/pattern_miner.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/learning/pattern_miner_constants.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/learning/project_context.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/learning/quantization_scheduler.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/learning/ranker.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/learning/ranker_common.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/learning/ranker_retrain_legacy.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/learning/ranker_retrain_online.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/learning/reward.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/learning/reward_archive.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/learning/reward_boost.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/learning/reward_proxy.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/learning/shadow_test.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/learning/signal_worker.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/learning/signals.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/learning/skill_performance_miner.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/learning/source_quality.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/learning/trigram_index.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/learning/workflows.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/llm/__init__.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/llm/backbone.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/math/__init__.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/math/ebbinghaus.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/math/fisher.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/math/fisher_quantized.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/math/hopfield.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/math/langevin.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/math/polar_quant.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/math/qjl.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/math/sheaf.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/math/turbo_quant.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/mcp/__init__.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/mcp/_daemon_proxy.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/mcp/_pool_adapter.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/mcp/_stdin_guard.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/mcp/agent_context.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/mcp/cli_fallback.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/mcp/resources.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/mcp/server.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/mcp/shared.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/mcp/tools.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/mcp/tools_active.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/mcp/tools_code_graph.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/mcp/tools_context.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/mcp/tools_evolution.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/mcp/tools_learning.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/mcp/tools_mesh.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/mcp/tools_optimize.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/mcp/tools_v28.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/mcp/tools_v3.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/mcp/tools_v33.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/mesh/__init__.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/mesh/remote_sync.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/migrations/__init__.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/migrations/v3_4_25_to_v3_4_26.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/optimize/NOTICE +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/optimize/__init__.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/optimize/adapters/__init__.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/optimize/adapters/_agent_registry.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/optimize/adapters/anthropic_adapter.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/optimize/adapters/openai_adapter.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/optimize/adapters/wrap.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/optimize/cache/__init__.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/optimize/cache/boundary_store.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/optimize/cache/centroid_store.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/optimize/cache/context_key.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/optimize/cache/exact.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/optimize/cache/invalidation.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/optimize/cache/key_builder.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/optimize/cache/manager.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/optimize/cache/semantic.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/optimize/cache/stampede.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/optimize/compress/__init__.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/optimize/compress/align.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/optimize/compress/ccr.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/optimize/compress/prose_llmlingua.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/optimize/compress/router.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/optimize/config/__init__.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/optimize/config/defaults.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/optimize/config/schema.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/optimize/config/store.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/optimize/metrics/__init__.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/optimize/metrics/counters.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/optimize/metrics/estimator.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/optimize/metrics/exporters.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/optimize/metrics/persistence.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/optimize/proxy/__init__.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/optimize/proxy/_helpers.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/optimize/proxy/anthropic_surface.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/optimize/proxy/capture.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/optimize/proxy/gemini_surface.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/optimize/proxy/lifecycle.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/optimize/proxy/openai_surface.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/optimize/proxy/vertex_surface.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/optimize/storage/__init__.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/optimize/storage/db.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/optimize/storage/schema.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/parameterization/__init__.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/parameterization/pattern_extractor.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/parameterization/pii_filter.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/parameterization/prompt_injector.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/parameterization/prompt_lifecycle.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/parameterization/soft_prompt_generator.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/retrieval/__init__.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/retrieval/agentic.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/retrieval/ann_index.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/retrieval/bm25_channel.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/retrieval/bridge_discovery.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/retrieval/channel_registry.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/retrieval/engine.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/retrieval/entity_channel.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/retrieval/forgetting_filter.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/retrieval/fusion.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/retrieval/hopfield_channel.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/retrieval/profile_channel.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/retrieval/quantization_aware_search.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/retrieval/reranker.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/retrieval/scope_policy.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/retrieval/semantic_channel.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/retrieval/strategy.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/retrieval/temporal_channel.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/retrieval/vector_store.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/server/__init__.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/server/api.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/server/bandit_loops.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/server/middleware/__init__.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/server/middleware/security_headers.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/server/recall_health.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/server/recall_serializer.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/server/route_mutations.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/server/routes/__init__.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/server/routes/adapters.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/server/routes/agents.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/server/routes/backup.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/server/routes/behavioral.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/server/routes/chat.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/server/routes/compliance.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/server/routes/data_io.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/server/routes/entity.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/server/routes/events.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/server/routes/evolution.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/server/routes/helpers.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/server/routes/ingest.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/server/routes/insights.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/server/routes/learning.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/server/routes/lifecycle.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/server/routes/memories.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/server/routes/mesh.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/server/routes/optimize.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/server/routes/prewarm.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/server/routes/profiles.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/server/routes/stats.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/server/routes/tiers.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/server/routes/timeline.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/server/routes/token.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/server/routes/v3_api.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/server/routes/ws.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/server/security_middleware.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/server/ui.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/server/write_identity.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/storage/__init__.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/storage/access_control.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/storage/access_log.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/storage/database.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/storage/embedding_migrator.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/storage/migration_runner.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/storage/migration_v33.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/storage/migrations/M001_add_signal_features_columns.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/storage/migrations/M002_model_state_history.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/storage/migrations/M003_migration_log.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/storage/migrations/M004_cross_platform_sync_log.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/storage/migrations/M005_bandit_tables.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/storage/migrations/M006_action_outcomes_reward.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/storage/migrations/M007_pending_outcomes.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/storage/migrations/M009_model_lineage.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/storage/migrations/M010_evolution_config.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/storage/migrations/M011_archive_and_merge.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/storage/migrations/M012_shadow_observations.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/storage/migrations/M013_bi_temporal_columns.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/storage/migrations/M014_v345_scale_ready.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/storage/migrations/M015_add_pinned_column.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/storage/migrations/M016_add_scope_support.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/storage/migrations/M017_ccq_scope_column.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/storage/migrations/M018_ingestion_operations.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/storage/migrations/M019_derivation_lineage.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/storage/migrations/M020_model_state_integrity.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/storage/migrations/__init__.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/storage/migrations.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/storage/models.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/storage/quantized_store.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/storage/schema.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/storage/schema_code_graph.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/storage/schema_v32.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/storage/schema_v3410.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/storage/schema_v3411.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/storage/schema_v343.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/storage/schema_v345.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/storage/schema_v347.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/storage/v2_migrator.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/trust/__init__.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/trust/gate.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/trust/provenance.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/trust/scorer.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/trust/signals.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/ui/css/brain.css +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/ui/css/legacy-dashboard.css +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/ui/css/neural-glass.css +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/ui/favicon.svg +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/ui/index.html +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/ui/js/agents.js +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/ui/js/auto-settings.js +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/ui/js/brain.js +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/ui/js/clusters.js +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/ui/js/compliance.js +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/ui/js/core.js +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/ui/js/dashboard.js +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/ui/js/events.js +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/ui/js/fact-detail.js +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/ui/js/feedback.js +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/ui/js/graph-event-bus.js +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/ui/js/graph-filters.js +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/ui/js/graph-ui.js +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/ui/js/ide-status.js +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/ui/js/init.js +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/ui/js/knowledge-graph.js +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/ui/js/lifecycle.js +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/ui/js/math-health.js +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/ui/js/memories.js +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/ui/js/memory-chat.js +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/ui/js/memory-timeline.js +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/ui/js/modal.js +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/ui/js/ng-entities.js +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/ui/js/ng-health.js +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/ui/js/ng-ingestion.js +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/ui/js/ng-mesh.js +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/ui/js/ng-shell.js +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/ui/js/ng-skills.js +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/ui/js/optimize.js +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/ui/js/profiles.js +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/ui/js/quick-actions.js +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/ui/js/recall-lab.js +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/ui/js/search.js +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/ui/js/settings.js +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/ui/js/timeline.js +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/ui/js/trust-dashboard.js +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/ui/vendor/bootstrap-icons/bootstrap-icons.css +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/ui/vendor/bootstrap-icons/fonts/bootstrap-icons.woff +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/ui/vendor/bootstrap-icons/fonts/bootstrap-icons.woff2 +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/ui/vendor/bootstrap.bundle.min.js +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/ui/vendor/bootstrap.min.css +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/ui/vendor/d3.v7.min.js +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/ui/vendor/graphology-library.min.js +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/ui/vendor/graphology.umd.min.js +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/ui/vendor/inter-ui/inter-variable.min.css +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/ui/vendor/inter-ui/variable/InterVariable-Italic.woff2 +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/ui/vendor/inter-ui/variable/InterVariable.woff2 +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/ui/vendor/sigma.min.js +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/vector/__init__.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/vector/lancedb_backend.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory.egg-info/SOURCES.txt +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory.egg-info/dependency_links.txt +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory.egg-info/entry_points.txt +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory.egg-info/requires.txt +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory.egg-info/top_level.txt +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/tests/test_auto_hooks.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/tests/test_before_web_hook.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/tests/test_behavioral_full.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/tests/test_claude_hooks.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/tests/test_cli_core.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/tests/test_cli_json.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/tests/test_cli_v33.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/tests/test_compliance_full.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/tests/test_config_system.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/tests/test_engine_hooks.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/tests/test_event_bus.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/tests/test_features.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/tests/test_final_locomo_mini.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/tests/test_graph_integrity.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/tests/test_hook_handlers.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/tests/test_ide_connector.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/tests/test_infra.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/tests/test_injection.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/tests/test_learning_advanced.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/tests/test_learning_collectors.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/tests/test_llm_provider.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/tests/test_mcp_server.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/tests/test_migration.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/tests/test_mode_switch_preservation.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/tests/test_post_install.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/tests/test_ranker.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/tests/test_resource_lifecycle.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/tests/test_topic_shift_hook.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/tests/test_trust_full.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/tests/test_v3_api.py +0 -0
- {superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/tests/test_version_consistency.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: superlocalmemory
|
|
3
|
-
Version: 3.7.
|
|
3
|
+
Version: 3.7.2
|
|
4
4
|
Summary: Local-first agent memory with auditable hybrid retrieval
|
|
5
5
|
Author-email: Varun Pratap Bhardwaj <admin@superlocalmemory.com>
|
|
6
6
|
License-Expression: AGPL-3.0-or-later
|
|
@@ -104,10 +104,10 @@ Dynamic: license-file
|
|
|
104
104
|
<img src="https://superlocalmemory.com/assets/logo-mark.png" alt="SuperLocalMemory" width="200"/>
|
|
105
105
|
</p>
|
|
106
106
|
|
|
107
|
-
<h1 align="center">SuperLocalMemory V3.7</h1>
|
|
107
|
+
<h1 align="center">SuperLocalMemory V3.7.2</h1>
|
|
108
108
|
<p align="center"><strong>Cache. Compress. Remember. Three surfaces — proxy, MCP tools, or skill. Every setup covered.</strong><br/>
|
|
109
109
|
<em>Local-first agent memory with explicit operating modes, auditable retrieval, and optional Optimize tools.</em></p>
|
|
110
|
-
<p align="center"><code>v3.7.
|
|
110
|
+
<p align="center"><code>v3.7.2</code> — <strong>Reliability release: durable local writes, cross-platform installation, and bounded enrichment recovery.</strong><br/>
|
|
111
111
|
Proxy: <code>slm wrap claude</code> · MCP: add <code>slm_compress</code> to your config · Skill: zero-config</p>
|
|
112
112
|
<p align="center"><strong>3 public research preprints</strong> (arXiv + Zenodo archives) · <a href="https://arxiv.org/abs/2603.02240">arXiv:2603.02240</a> · <a href="https://arxiv.org/abs/2603.14588">arXiv:2603.14588</a> · <a href="https://arxiv.org/abs/2604.04514">arXiv:2604.04514</a></p>
|
|
113
113
|
|
|
@@ -2,10 +2,10 @@
|
|
|
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.7</h1>
|
|
5
|
+
<h1 align="center">SuperLocalMemory V3.7.2</h1>
|
|
6
6
|
<p align="center"><strong>Cache. Compress. Remember. Three surfaces — proxy, MCP tools, or skill. Every setup covered.</strong><br/>
|
|
7
7
|
<em>Local-first agent memory with explicit operating modes, auditable retrieval, and optional Optimize tools.</em></p>
|
|
8
|
-
<p align="center"><code>v3.7.
|
|
8
|
+
<p align="center"><code>v3.7.2</code> — <strong>Reliability release: durable local writes, cross-platform installation, and bounded enrichment recovery.</strong><br/>
|
|
9
9
|
Proxy: <code>slm wrap claude</code> · MCP: add <code>slm_compress</code> to your config · Skill: zero-config</p>
|
|
10
10
|
<p align="center"><strong>3 public research preprints</strong> (arXiv + Zenodo archives) · <a href="https://arxiv.org/abs/2603.02240">arXiv:2603.02240</a> · <a href="https://arxiv.org/abs/2603.14588">arXiv:2603.14588</a> · <a href="https://arxiv.org/abs/2604.04514">arXiv:2604.04514</a></p>
|
|
11
11
|
|
|
@@ -32,7 +32,7 @@ if "OMP_NUM_THREADS" not in os.environ:
|
|
|
32
32
|
os.environ["OMP_NUM_THREADS"] = "2"
|
|
33
33
|
# ---------------------------------------------------------------------------
|
|
34
34
|
|
|
35
|
-
__version__ = "3.7.
|
|
35
|
+
__version__ = "3.7.2"
|
|
36
36
|
|
|
37
37
|
_REQUIRED_VERSIONS = {
|
|
38
38
|
"sentence_transformers": "5.3.0",
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
"""WP-07 — Lazy first-run initialisation (pip cross-install).
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
Lightweight import only — zero heavy imports, STDOUT-SILENT.
|
|
8
8
|
|
|
9
9
|
Public API
|
|
10
10
|
----------
|
|
@@ -25,6 +25,8 @@ import json
|
|
|
25
25
|
import os
|
|
26
26
|
from pathlib import Path
|
|
27
27
|
|
|
28
|
+
from superlocalmemory import __version__ as _RUNTIME_VERSION
|
|
29
|
+
|
|
28
30
|
|
|
29
31
|
# ---------------------------------------------------------------------------
|
|
30
32
|
# Public: home resolution
|
|
@@ -55,7 +57,7 @@ def slm_home() -> Path:
|
|
|
55
57
|
# Only mode + base_dir; everything else uses SLMConfig defaults.
|
|
56
58
|
_MINIMAL_CONFIG: dict = {
|
|
57
59
|
"mode": "a",
|
|
58
|
-
"version":
|
|
60
|
+
"version": _RUNTIME_VERSION,
|
|
59
61
|
}
|
|
60
62
|
|
|
61
63
|
|
{superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/core/embedding_worker.py
RENAMED
|
@@ -70,7 +70,13 @@ def _load_embedding_model(name: str) -> tuple:
|
|
|
70
70
|
|
|
71
71
|
Returns (model, backend_name) or (None, "").
|
|
72
72
|
"""
|
|
73
|
-
|
|
73
|
+
try:
|
|
74
|
+
from sentence_transformers import SentenceTransformer
|
|
75
|
+
except Exception:
|
|
76
|
+
# Dependency/version errors must stay inside the JSON-lines protocol.
|
|
77
|
+
# Letting this import escape kills the worker before it can explain the
|
|
78
|
+
# failure, which the parent previously mislabeled as a long timeout.
|
|
79
|
+
return None, ""
|
|
74
80
|
|
|
75
81
|
for backend in _embedding_backend_order():
|
|
76
82
|
try:
|
|
@@ -295,6 +295,8 @@ class EmbeddingService:
|
|
|
295
295
|
never hangs indefinitely on cold model loads or network issues.
|
|
296
296
|
"""
|
|
297
297
|
with self._lock:
|
|
298
|
+
if not self._available:
|
|
299
|
+
return None
|
|
298
300
|
# Worker recycling: restart after N requests to prevent
|
|
299
301
|
# C++ allocator fragmentation over long-running sessions.
|
|
300
302
|
if self._request_count >= _WORKER_RECYCLE_AFTER and self._worker_proc is not None:
|
|
@@ -339,6 +341,12 @@ class EmbeddingService:
|
|
|
339
341
|
resp = json.loads(resp_line)
|
|
340
342
|
if not resp.get("ok"):
|
|
341
343
|
logger.warning("Worker error: %s", resp.get("error"))
|
|
344
|
+
# A well-formed worker error is a terminal local
|
|
345
|
+
# dependency/model failure, not a transient pipe race.
|
|
346
|
+
# Disable this service and terminate the child so every
|
|
347
|
+
# recall does not respawn a heavyweight failing process.
|
|
348
|
+
self._available = False
|
|
349
|
+
self._kill_worker()
|
|
342
350
|
return None
|
|
343
351
|
self._reset_idle_timer()
|
|
344
352
|
self._request_count += 1
|
|
@@ -24,6 +24,7 @@ from typing import Any
|
|
|
24
24
|
from superlocalmemory.core.config import CANONICAL_RECALL_LIMIT, SLMConfig
|
|
25
25
|
from superlocalmemory.core.engine_capabilities import Capabilities, CapabilityError
|
|
26
26
|
from superlocalmemory.core.modes import get_capabilities
|
|
27
|
+
from superlocalmemory.learning.outcome_queue import RecallEvent, enqueue_recall
|
|
27
28
|
from superlocalmemory.storage.models import (
|
|
28
29
|
AtomicFact, MemoryRecord, Mode, RecallResponse,
|
|
29
30
|
)
|
|
@@ -664,9 +665,6 @@ class MemoryEngine:
|
|
|
664
665
|
# recall correctness (LLD-02 §4.9, LLD-08 §4.1).
|
|
665
666
|
if session_id:
|
|
666
667
|
try:
|
|
667
|
-
from superlocalmemory.learning.outcome_queue import (
|
|
668
|
-
RecallEvent, enqueue_recall,
|
|
669
|
-
)
|
|
670
668
|
fact_ids = tuple(
|
|
671
669
|
getattr(r.fact, "fact_id", "") or ""
|
|
672
670
|
for r in getattr(response, "results", [])
|
{superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/core/engine_wiring.py
RENAMED
|
@@ -22,6 +22,30 @@ if TYPE_CHECKING:
|
|
|
22
22
|
logger = logging.getLogger(__name__)
|
|
23
23
|
|
|
24
24
|
|
|
25
|
+
def _log_reranker_warmup_status(reranker: Any) -> None:
|
|
26
|
+
"""Record non-blocking reranker warmup state without alarming first-run users."""
|
|
27
|
+
ready = reranker.warmup_sync(timeout=180)
|
|
28
|
+
if ready:
|
|
29
|
+
logger.info("Cross-encoder reranker warm and ready")
|
|
30
|
+
return
|
|
31
|
+
try:
|
|
32
|
+
from superlocalmemory.retrieval.reranker import _is_reranker_worker_alive
|
|
33
|
+
|
|
34
|
+
if _is_reranker_worker_alive():
|
|
35
|
+
logger.info(
|
|
36
|
+
"Cross-encoder reranker worker held by another process "
|
|
37
|
+
"(machine-wide singleton — usually the unified daemon); "
|
|
38
|
+
"this process will route reranking through that worker"
|
|
39
|
+
)
|
|
40
|
+
return
|
|
41
|
+
except Exception:
|
|
42
|
+
pass
|
|
43
|
+
logger.info(
|
|
44
|
+
"Cross-encoder reranker did not become ready during background warmup; "
|
|
45
|
+
"recalls use fallback scoring. Run 'slm doctor' for diagnostics."
|
|
46
|
+
)
|
|
47
|
+
|
|
48
|
+
|
|
25
49
|
# ---------------------------------------------------------------------------
|
|
26
50
|
# init_embedder (was MemoryEngine._init_embedder + helpers)
|
|
27
51
|
# ---------------------------------------------------------------------------
|
|
@@ -364,11 +388,6 @@ def _init_spreading_activation(
|
|
|
364
388
|
vector_store: Any,
|
|
365
389
|
) -> Any | None:
|
|
366
390
|
"""Create SpreadingActivation for Phase 3 5th retrieval channel."""
|
|
367
|
-
# V3.3.21: Guard against None vector_store. Without embeddings, SA's
|
|
368
|
-
# search() crashes with "'NoneType' has no attribute 'search'".
|
|
369
|
-
if vector_store is None:
|
|
370
|
-
logger.debug("SpreadingActivation skipped: no vector_store")
|
|
371
|
-
return None
|
|
372
391
|
try:
|
|
373
392
|
from superlocalmemory.retrieval.spreading_activation import (
|
|
374
393
|
SpreadingActivation,
|
|
@@ -552,29 +571,12 @@ def init_retrieval(
|
|
|
552
571
|
# trust in slm health / slm doctor output.
|
|
553
572
|
if reranker is not None:
|
|
554
573
|
import threading
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
|
|
559
|
-
|
|
560
|
-
|
|
561
|
-
# another process (benign), or (b) actual model load failure.
|
|
562
|
-
# Disambiguate by probing the singleton PID file.
|
|
563
|
-
try:
|
|
564
|
-
from superlocalmemory.retrieval.reranker import _is_reranker_worker_alive
|
|
565
|
-
if _is_reranker_worker_alive():
|
|
566
|
-
logger.info(
|
|
567
|
-
"Cross-encoder reranker worker held by another process "
|
|
568
|
-
"(machine-wide singleton — usually the unified daemon); "
|
|
569
|
-
"this process will route reranking through that worker"
|
|
570
|
-
)
|
|
571
|
-
return
|
|
572
|
-
except Exception:
|
|
573
|
-
pass
|
|
574
|
-
logger.warning(
|
|
575
|
-
"Cross-encoder reranker warmup failed — recalls will use fallback scoring"
|
|
576
|
-
)
|
|
577
|
-
t = threading.Thread(target=_log_warmup_status, daemon=True, name="ce-init-warmup")
|
|
574
|
+
t = threading.Thread(
|
|
575
|
+
target=_log_reranker_warmup_status,
|
|
576
|
+
args=(reranker,),
|
|
577
|
+
daemon=True,
|
|
578
|
+
name="ce-init-warmup",
|
|
579
|
+
)
|
|
578
580
|
t.start()
|
|
579
581
|
|
|
580
582
|
# Phase A: Register forgetting filter into the channel registry
|
|
@@ -15,12 +15,13 @@ Design notes:
|
|
|
15
15
|
available before we even try — better to defer than thrash.
|
|
16
16
|
- Lock file lives at ``~/.superlocalmemory/ram_lock.sem`` by default,
|
|
17
17
|
tests may monkeypatch ``RAM_LOCK_PATH``.
|
|
18
|
-
-
|
|
18
|
+
- Uses a standard-library advisory lock on POSIX and Windows. The lock is
|
|
19
|
+
deliberately file-backed so independent daemon, CLI, and worker processes
|
|
20
|
+
share the same RAM reservation.
|
|
19
21
|
"""
|
|
20
22
|
|
|
21
23
|
from __future__ import annotations
|
|
22
24
|
|
|
23
|
-
import fcntl
|
|
24
25
|
import os
|
|
25
26
|
import time
|
|
26
27
|
from contextlib import contextmanager
|
|
@@ -29,6 +30,11 @@ from typing import Iterator
|
|
|
29
30
|
|
|
30
31
|
import psutil
|
|
31
32
|
|
|
33
|
+
try: # POSIX advisory locks (macOS/Linux)
|
|
34
|
+
import fcntl as _fcntl
|
|
35
|
+
except ImportError: # Windows uses the stdlib byte-range equivalent below.
|
|
36
|
+
_fcntl = None
|
|
37
|
+
|
|
32
38
|
# Public override retained for tests and embedders. ``None`` means resolve the
|
|
33
39
|
# lock dynamically so a long-lived process can switch canonical namespaces
|
|
34
40
|
# without retaining the first root it observed.
|
|
@@ -44,6 +50,38 @@ def _ram_lock_path() -> Path:
|
|
|
44
50
|
return state_path("ram_lock.sem")
|
|
45
51
|
|
|
46
52
|
|
|
53
|
+
def _acquire_lock(fd: int) -> None:
|
|
54
|
+
"""Acquire one non-blocking cross-process lock for the semaphore."""
|
|
55
|
+
if _fcntl is not None:
|
|
56
|
+
_fcntl.flock(fd, _fcntl.LOCK_EX | _fcntl.LOCK_NB)
|
|
57
|
+
return
|
|
58
|
+
|
|
59
|
+
import msvcrt
|
|
60
|
+
|
|
61
|
+
# ``msvcrt.locking`` cannot reserve an empty file. The marker byte is
|
|
62
|
+
# purely structural; the human-readable audit marker is written after the
|
|
63
|
+
# reservation is acquired.
|
|
64
|
+
if os.fstat(fd).st_size == 0:
|
|
65
|
+
os.write(fd, b"\0")
|
|
66
|
+
os.lseek(fd, 0, os.SEEK_SET)
|
|
67
|
+
try:
|
|
68
|
+
msvcrt.locking(fd, msvcrt.LK_NBLCK, 1)
|
|
69
|
+
except OSError as exc:
|
|
70
|
+
raise BlockingIOError("RAM reservation is already held") from exc
|
|
71
|
+
|
|
72
|
+
|
|
73
|
+
def _release_lock(fd: int) -> None:
|
|
74
|
+
"""Release a reservation acquired by :func:`_acquire_lock`."""
|
|
75
|
+
if _fcntl is not None:
|
|
76
|
+
_fcntl.flock(fd, _fcntl.LOCK_UN)
|
|
77
|
+
return
|
|
78
|
+
|
|
79
|
+
import msvcrt
|
|
80
|
+
|
|
81
|
+
os.lseek(fd, 0, os.SEEK_SET)
|
|
82
|
+
msvcrt.locking(fd, msvcrt.LK_UNLCK, 1)
|
|
83
|
+
|
|
84
|
+
|
|
47
85
|
@contextmanager
|
|
48
86
|
def ram_reservation(
|
|
49
87
|
name: str,
|
|
@@ -96,7 +134,7 @@ def ram_reservation(
|
|
|
96
134
|
deadline = time.time() + timeout_s
|
|
97
135
|
while True:
|
|
98
136
|
try:
|
|
99
|
-
|
|
137
|
+
_acquire_lock(fd)
|
|
100
138
|
break
|
|
101
139
|
except BlockingIOError:
|
|
102
140
|
if time.time() >= deadline:
|
|
@@ -114,7 +152,7 @@ def ram_reservation(
|
|
|
114
152
|
yield
|
|
115
153
|
finally:
|
|
116
154
|
try:
|
|
117
|
-
|
|
155
|
+
_release_lock(fd)
|
|
118
156
|
finally:
|
|
119
157
|
os.close(fd)
|
|
120
158
|
|
|
@@ -20,7 +20,6 @@ Author: Varun Pratap Bhardwaj / Qualixar
|
|
|
20
20
|
|
|
21
21
|
from __future__ import annotations
|
|
22
22
|
|
|
23
|
-
import fcntl
|
|
24
23
|
import logging
|
|
25
24
|
import os
|
|
26
25
|
import sqlite3
|
|
@@ -35,8 +34,44 @@ from superlocalmemory.core.security_primitives import safe_resolve_identifier
|
|
|
35
34
|
|
|
36
35
|
logger = logging.getLogger(__name__)
|
|
37
36
|
|
|
37
|
+
try: # POSIX advisory locks (macOS/Linux)
|
|
38
|
+
import fcntl as _fcntl
|
|
39
|
+
except ImportError: # Windows has no fcntl; use its stdlib byte-range lock.
|
|
40
|
+
_fcntl = None
|
|
38
41
|
|
|
39
|
-
|
|
42
|
+
|
|
43
|
+
def _acquire_profile_lock(fd: int) -> None:
|
|
44
|
+
"""Acquire a non-blocking cross-process lock on every supported OS."""
|
|
45
|
+
if _fcntl is not None:
|
|
46
|
+
_fcntl.flock(fd, _fcntl.LOCK_EX | _fcntl.LOCK_NB)
|
|
47
|
+
return
|
|
48
|
+
|
|
49
|
+
import msvcrt
|
|
50
|
+
|
|
51
|
+
# ``msvcrt.locking`` cannot lock an empty file. Reserve one marker byte;
|
|
52
|
+
# the file content is diagnostic only and never a correctness signal.
|
|
53
|
+
if os.fstat(fd).st_size == 0:
|
|
54
|
+
os.write(fd, b"\0")
|
|
55
|
+
os.lseek(fd, 0, os.SEEK_SET)
|
|
56
|
+
try:
|
|
57
|
+
msvcrt.locking(fd, msvcrt.LK_NBLCK, 1)
|
|
58
|
+
except OSError as exc:
|
|
59
|
+
raise BlockingIOError("evolution profile lock is held") from exc
|
|
60
|
+
|
|
61
|
+
|
|
62
|
+
def _release_profile_lock(fd: int) -> None:
|
|
63
|
+
"""Release the lock acquired by :func:`_acquire_profile_lock`."""
|
|
64
|
+
if _fcntl is not None:
|
|
65
|
+
_fcntl.flock(fd, _fcntl.LOCK_UN)
|
|
66
|
+
return
|
|
67
|
+
|
|
68
|
+
import msvcrt
|
|
69
|
+
|
|
70
|
+
os.lseek(fd, 0, os.SEEK_SET)
|
|
71
|
+
msvcrt.locking(fd, msvcrt.LK_UNLCK, 1)
|
|
72
|
+
|
|
73
|
+
|
|
74
|
+
# M-P-07: path-component hints for filesystems where advisory locking is
|
|
40
75
|
# known to degrade to a no-op. We do NOT abort — some users accept the
|
|
41
76
|
# risk — but we emit a one-shot warning so a double-cycle is at least
|
|
42
77
|
# attributable to a known root cause. If/when we ship a threading-only
|
|
@@ -127,7 +162,7 @@ class EvolutionBudget:
|
|
|
127
162
|
)
|
|
128
163
|
self._lock_path = safe_stem.with_suffix(".lock")
|
|
129
164
|
# M-P-07: warn once per lock-path when we detect the lock sits on
|
|
130
|
-
# a known sync-backed filesystem.
|
|
165
|
+
# a known sync-backed filesystem. Advisory locking silently
|
|
131
166
|
# degrades on iCloud/OneDrive/Dropbox — two concurrent cycles
|
|
132
167
|
# would each acquire and burn LLM budget. Documentation-only for
|
|
133
168
|
# now; a future release may refuse to run until the lock_dir is
|
|
@@ -141,7 +176,7 @@ class EvolutionBudget:
|
|
|
141
176
|
if key not in _WARNED_SYNC_PATHS:
|
|
142
177
|
_WARNED_SYNC_PATHS.add(key)
|
|
143
178
|
logger.warning(
|
|
144
|
-
"evolution lock at %s lives under %r —
|
|
179
|
+
"evolution lock at %s lives under %r — advisory locking "
|
|
145
180
|
"may silently no-op on sync-backed filesystems. "
|
|
146
181
|
"Concurrent cycles could double-bill LLM cost. Move "
|
|
147
182
|
"the lock_dir off the sync root to make single-flight "
|
|
@@ -258,12 +293,12 @@ class EvolutionBudget:
|
|
|
258
293
|
f"cap={MAX_CYCLES_PER_DAY}",
|
|
259
294
|
)
|
|
260
295
|
|
|
261
|
-
# Single-flight lock (non-blocking
|
|
296
|
+
# Single-flight lock (non-blocking advisory lock). A second concurrent
|
|
262
297
|
# acquire raises BlockingIOError — surface as BudgetExhausted.
|
|
263
298
|
fd = os.open(str(self._lock_path), os.O_CREAT | os.O_RDWR, 0o600)
|
|
264
299
|
try:
|
|
265
300
|
try:
|
|
266
|
-
|
|
301
|
+
_acquire_profile_lock(fd)
|
|
267
302
|
except BlockingIOError as e:
|
|
268
303
|
os.close(fd)
|
|
269
304
|
raise BudgetExhausted(
|
|
@@ -296,7 +331,7 @@ class EvolutionBudget:
|
|
|
296
331
|
# Release lock before propagating — a failed cycle-record should
|
|
297
332
|
# not leave the lock dangling.
|
|
298
333
|
try:
|
|
299
|
-
|
|
334
|
+
_release_profile_lock(fd)
|
|
300
335
|
finally:
|
|
301
336
|
os.close(fd)
|
|
302
337
|
self._lock_fd = None
|
|
@@ -312,7 +347,7 @@ class EvolutionBudget:
|
|
|
312
347
|
finally:
|
|
313
348
|
self._cycle_start_mono = None
|
|
314
349
|
try:
|
|
315
|
-
|
|
350
|
+
_release_profile_lock(fd)
|
|
316
351
|
finally:
|
|
317
352
|
try:
|
|
318
353
|
os.close(fd)
|
{superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/hooks/claude_code_hooks.py
RENAMED
|
@@ -40,7 +40,7 @@ _DEFAULT_DISABLED_FILE = _DEFAULT_VERSION_DIR / ".hooks-disabled"
|
|
|
40
40
|
VERSION_DIR = _DEFAULT_VERSION_DIR
|
|
41
41
|
VERSION_FILE = _DEFAULT_VERSION_FILE
|
|
42
42
|
DISABLED_FILE = _DEFAULT_DISABLED_FILE
|
|
43
|
-
HOOKS_VERSION = "3.7.
|
|
43
|
+
HOOKS_VERSION = "3.7.1"
|
|
44
44
|
|
|
45
45
|
# Cross-platform temp dir and backwards-compatible marker overrides. Runtime
|
|
46
46
|
# defaults are root-namespaced and resolved when hook definitions are built.
|
{superlocalmemory-3.7.0 → superlocalmemory-3.7.2}/src/superlocalmemory/mcp/http_transport.py
RENAMED
|
@@ -40,7 +40,7 @@ def install_streamable_http_resource_guard() -> None:
|
|
|
40
40
|
class SLMFastMCP(FastMCP):
|
|
41
41
|
"""FastMCP with SLM release identity and deterministic SSE cleanup."""
|
|
42
42
|
|
|
43
|
-
def __init__(self, *args, product_version: str = "3.7.
|
|
43
|
+
def __init__(self, *args, product_version: str = "3.7.1", **kwargs) -> None:
|
|
44
44
|
super().__init__(*args, **kwargs)
|
|
45
45
|
# FastMCP delegates the initialize response to the low-level MCP
|
|
46
46
|
# server. Without an explicit value it reports the installed ``mcp``
|
|
@@ -111,7 +111,7 @@ def register_core_tools(server, get_engine: Callable) -> None:
|
|
|
111
111
|
"""Store content to memory with intelligent indexing.
|
|
112
112
|
|
|
113
113
|
Extracts atomic facts, resolves entities, builds graph edges,
|
|
114
|
-
and indexes for
|
|
114
|
+
and indexes for hybrid retrieval with graph-aware enhancement.
|
|
115
115
|
|
|
116
116
|
Multi-scope: ``scope`` sets visibility (personal/shared/global).
|
|
117
117
|
``shared_with`` is a comma-separated list of profile_ids for
|
|
@@ -149,35 +149,52 @@ def register_core_tools(server, get_engine: Callable) -> None:
|
|
|
149
149
|
# is_daemon_running() and daemon_request() both use blocking urllib
|
|
150
150
|
# against the same uvicorn server — run in threads so the MCP
|
|
151
151
|
# event loop stays unblocked (#34 class bug).
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
"
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
"
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
152
|
+
daemon_owned = await _asyncio.to_thread(is_daemon_running)
|
|
153
|
+
if daemon_owned:
|
|
154
|
+
# A positively identified daemon owns this database. Never
|
|
155
|
+
# spawn a WorkerPool writer after a transient daemon failure:
|
|
156
|
+
# that creates the competing writers which SQLite WAL cannot
|
|
157
|
+
# support. Retry the canonical path, then return an explicit
|
|
158
|
+
# retryable result to the MCP client.
|
|
159
|
+
for attempt in range(3):
|
|
160
|
+
resp = await _asyncio.to_thread(daemon_request, "POST", "/remember", {
|
|
161
|
+
"content": content, "tags": tags, "metadata": meta,
|
|
162
|
+
"scope": scope, "shared_with": _shared_list,
|
|
163
|
+
"session_id": session_id,
|
|
164
|
+
"idempotency_key": effective_idempotency_key or None,
|
|
165
|
+
})
|
|
166
|
+
if resp and (resp.get("fact_ids") is not None or resp.get("ok")):
|
|
167
|
+
fids = resp.get("fact_ids") or []
|
|
168
|
+
materialization_state = resp.get("materialization_state")
|
|
169
|
+
if materialization_state is None:
|
|
170
|
+
materialization_state = (
|
|
171
|
+
"complete" if resp.get("status") == "stored" else "queryable"
|
|
172
|
+
)
|
|
173
|
+
pending = materialization_state != "complete"
|
|
174
|
+
return {
|
|
175
|
+
"success": True,
|
|
176
|
+
"fact_ids": fids,
|
|
177
|
+
"count": int(resp.get("count", len(fids))),
|
|
178
|
+
"pending": pending,
|
|
179
|
+
"pending_id": resp.get("pending_id") if pending else None,
|
|
180
|
+
"operation_id": resp.get("operation_id"),
|
|
181
|
+
"materialization_state": materialization_state,
|
|
182
|
+
"message": (
|
|
183
|
+
"Stored through canonical daemon ingestion."
|
|
184
|
+
if not pending
|
|
185
|
+
else "Queryable now; canonical enrichment is still running."
|
|
186
|
+
),
|
|
187
|
+
}
|
|
188
|
+
if attempt < 2:
|
|
189
|
+
await _asyncio.sleep(0.05 * (attempt + 1))
|
|
190
|
+
return {
|
|
191
|
+
"success": False,
|
|
192
|
+
"retryable": True,
|
|
193
|
+
"error": (
|
|
194
|
+
"Canonical daemon is temporarily unavailable; retry the "
|
|
195
|
+
"same remember operation without starting a second writer."
|
|
196
|
+
),
|
|
197
|
+
}
|
|
181
198
|
except Exception as dexc:
|
|
182
199
|
logger.debug("MCP remember via daemon failed, pending fallback: %s", dexc)
|
|
183
200
|
|
|
@@ -246,7 +263,7 @@ def register_core_tools(server, get_engine: Callable) -> None:
|
|
|
246
263
|
include_global: bool | None = None,
|
|
247
264
|
include_shared: bool | None = None,
|
|
248
265
|
) -> dict:
|
|
249
|
-
"""Search memories
|
|
266
|
+
"""Search memories through hybrid retrieval, RRF fusion, and reranking.
|
|
250
267
|
|
|
251
268
|
S9-DASH-02: optional ``session_id`` threads through to the
|
|
252
269
|
engine's outcome-queue so PostToolUse / Stop hooks can attach
|