superlocalmemory 3.7.1__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.1/src/superlocalmemory.egg-info → superlocalmemory-3.7.2}/PKG-INFO +3 -3
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/README.md +2 -2
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/pyproject.toml +1 -1
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/__init__.py +1 -1
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/core/embedding_worker.py +7 -1
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/core/embeddings.py +8 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/core/engine.py +1 -3
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/core/engine_wiring.py +0 -5
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/core/ram_lock.py +42 -4
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/evolution/budget.py +43 -8
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/mcp/tools_core.py +46 -29
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/mesh/broker.py +111 -61
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/retrieval/spreading_activation.py +53 -3
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/server/unified_daemon.py +24 -7
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2/src/superlocalmemory.egg-info}/PKG-INFO +3 -3
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/AUTHORS.md +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/LICENSE +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/NOTICE +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/plugin-src/skills/slm-cache/SKILL.md +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/plugin-src/skills/slm-compress/SKILL.md +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/plugin-src/skills/slm-graph/SKILL.md +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/plugin-src/skills/slm-recall/SKILL.md +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/plugin-src/skills/slm-remember/SKILL.md +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/plugin-src/skills/slm-session/SKILL.md +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/plugin-src/skills/slm-status/SKILL.md +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/setup.cfg +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/attribution/__init__.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/attribution/mathematical_dna.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/attribution/signer.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/attribution/watermark.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/cli/__init__.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/cli/_lazy_init.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/cli/cache_cmd.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/cli/commands.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/cli/compress_cmd.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/cli/context_commands.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/cli/daemon.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/cli/db_migrate.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/cli/diagnostics_cmd.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/cli/escape_hatch.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/cli/evidence_cmd.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/cli/help_cmd.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/cli/ingest_cmd.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/cli/json_output.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/cli/main.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/cli/migrate_cmd.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/cli/optimize_cmd.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/cli/optimize_constants.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/cli/pending_store.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/cli/post_install.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/cli/proxy_cmd.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/cli/scale_engine_cmd.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/cli/service_installer.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/cli/setup_wizard.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/cli/version_banner.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/cli/wizard_v3426_options.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/code_graph/__init__.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/code_graph/blast_radius.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/code_graph/bridge/__init__.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/code_graph/bridge/entity_resolver.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/code_graph/bridge/event_listeners.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/code_graph/bridge/fact_enricher.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/code_graph/bridge/hebbian_linker.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/code_graph/bridge/temporal_checker.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/code_graph/changes.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/code_graph/communities.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/code_graph/config.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/code_graph/database.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/code_graph/extractors/__init__.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/code_graph/extractors/python.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/code_graph/extractors/typescript.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/code_graph/flows.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/code_graph/git_hooks.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/code_graph/graph_engine.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/code_graph/graph_store.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/code_graph/incremental.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/code_graph/models.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/code_graph/parser.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/code_graph/resolver.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/code_graph/search.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/code_graph/service.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/code_graph/watcher.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/compliance/__init__.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/compliance/abac.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/compliance/audit.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/compliance/eu_ai_act.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/compliance/gdpr.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/compliance/lifecycle.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/compliance/retention.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/compliance/scheduler.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/core/__init__.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/core/backend_orchestrator.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/core/block_hygiene.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/core/clock_monitor.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/core/config.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/core/consolidation_engine.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/core/context_cache.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/core/db_pool.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/core/derivation_lineage.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/core/engine_capabilities.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/core/engine_ingestion.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/core/engine_lock.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/core/error_catalog.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/core/error_envelope.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/core/evidence_bundle.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/core/fact_consolidator.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/core/file_lock.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/core/graph_analyzer.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/core/graph_pruner.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/core/health_monitor.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/core/hooks.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/core/ingest_gate.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/core/ingestion_command.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/core/injection.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/core/lifecycle_state.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/core/loop_watchdog.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/core/maintenance.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/core/maintenance_scheduler.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/core/mcp_embedder_proxy.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/core/modes.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/core/mutations.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/core/ollama_embedder.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/core/platform_utils.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/core/priority_queue.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/core/profiles.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/core/pruning_engine.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/core/queue_consumer.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/core/queue_dispatcher.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/core/rate_limit.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/core/recall_gate.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/core/recall_pipeline.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/core/recall_queue.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/core/recall_worker.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/core/registry.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/core/remote_mode.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/core/reranker_worker.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/core/safe_fs.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/core/scale_engine.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/core/score_contract.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/core/security_primitives.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/core/shadow_router.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/core/slm_disabled.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/core/slmignore.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/core/store_pipeline.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/core/summarizer.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/core/tier_manager.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/core/topic_signature.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/core/worker_pool.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/dynamics/__init__.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/dynamics/activation_guided_quantization.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/dynamics/eap_scheduler.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/dynamics/ebbinghaus_langevin_coupling.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/dynamics/fisher_langevin_coupling.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/encoding/__init__.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/encoding/auto_linker.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/encoding/cognitive_consolidator.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/encoding/consolidator.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/encoding/context_generator.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/encoding/emotional.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/encoding/entity_resolver.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/encoding/entropy_gate.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/encoding/fact_extractor.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/encoding/foresight.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/encoding/graph_builder.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/encoding/observation_builder.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/encoding/scene_builder.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/encoding/signal_inference.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/encoding/temporal_parser.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/encoding/temporal_validator.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/encoding/type_router.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/evaluation/__init__.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/evaluation/calibration.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/evolution/__init__.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/evolution/blind_verifier.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/evolution/evolution_store.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/evolution/llm_dispatch.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/evolution/mutation_generator.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/evolution/skill_evolver.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/evolution/triggers.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/evolution/types.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/graph/__init__.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/graph/cozo_backend.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/hooks/__init__.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/hooks/_outcome_common.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/hooks/adapter_base.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/hooks/antigravity_adapter.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/hooks/auto_capture.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/hooks/auto_invoker.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/hooks/auto_parameterize.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/hooks/auto_recall.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/hooks/auto_recall_hook.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/hooks/before_web_hook.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/hooks/claude_code_hooks.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/hooks/codex_assets.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/hooks/codex_hooks.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/hooks/context_payload.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/hooks/copilot_adapter.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/hooks/cross_platform_connector.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/hooks/cursor_adapter.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/hooks/hook_daemon.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/hooks/hook_handlers.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/hooks/ide_connector.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/hooks/memory_protocol.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/hooks/portable_kit.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/hooks/post_tool_async_hook.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/hooks/post_tool_outcome_hook.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/hooks/prewarm_auth.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/hooks/rules_engine.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/hooks/session_registry.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/hooks/stop_outcome_hook.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/hooks/sync_loop.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/hooks/topic_shift_hook.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/hooks/user_prompt_hook.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/hooks/user_prompt_rehash_hook.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/infra/__init__.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/infra/auth_middleware.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/infra/backup.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/infra/cache_manager.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/infra/cloud_backup.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/infra/daemon_identity.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/infra/data_root.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/infra/event_bus.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/infra/heartbeat_monitor.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/infra/local_diagnostics.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/infra/pid_manager.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/infra/process_reaper.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/infra/rate_limiter.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/infra/webhook_dispatcher.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/ingestion/__init__.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/ingestion/adapter_manager.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/ingestion/base_adapter.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/ingestion/calendar_adapter.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/ingestion/credentials.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/ingestion/gmail_adapter.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/ingestion/parsers.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/ingestion/transcript_adapter.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/learning/__init__.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/learning/adaptive.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/learning/arm_catalog.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/learning/assertion_miner.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/learning/bandit.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/learning/bandit_cache.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/learning/behavioral.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/learning/behavioral_listener.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/learning/bootstrap.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/learning/consolidation_cycle.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/learning/consolidation_quantization_worker.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/learning/consolidation_worker.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/learning/cross_project.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/learning/database.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/learning/dedup_hnsw.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/learning/engagement.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/learning/ensemble.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/learning/entity_compiler.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/learning/fact_outcome_joins.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/learning/features.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/learning/feedback.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/learning/forgetting_scheduler.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/learning/hnsw_dedup.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/learning/labeler.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/learning/legacy_migration.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/learning/lightgbm_subprocess.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/learning/memory_merge.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/learning/model_cache.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/learning/model_rollback.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/learning/outcome_queue.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/learning/outcomes.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/learning/pattern_miner.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/learning/pattern_miner_constants.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/learning/project_context.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/learning/quantization_scheduler.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/learning/ranker.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/learning/ranker_common.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/learning/ranker_retrain_legacy.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/learning/ranker_retrain_online.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/learning/reward.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/learning/reward_archive.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/learning/reward_boost.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/learning/reward_proxy.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/learning/shadow_test.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/learning/signal_worker.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/learning/signals.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/learning/skill_performance_miner.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/learning/source_quality.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/learning/trigram_index.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/learning/workflows.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/llm/__init__.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/llm/backbone.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/math/__init__.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/math/ebbinghaus.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/math/fisher.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/math/fisher_quantized.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/math/hopfield.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/math/langevin.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/math/polar_quant.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/math/qjl.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/math/sheaf.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/math/turbo_quant.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/mcp/__init__.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/mcp/_daemon_proxy.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/mcp/_pool_adapter.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/mcp/_stdin_guard.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/mcp/agent_context.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/mcp/cli_fallback.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/mcp/http_transport.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/mcp/resources.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/mcp/server.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/mcp/shared.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/mcp/tools.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/mcp/tools_active.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/mcp/tools_code_graph.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/mcp/tools_context.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/mcp/tools_evolution.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/mcp/tools_learning.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/mcp/tools_mesh.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/mcp/tools_optimize.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/mcp/tools_v28.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/mcp/tools_v3.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/mcp/tools_v33.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/mesh/__init__.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/mesh/remote_sync.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/migrations/__init__.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/migrations/v3_4_25_to_v3_4_26.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/optimize/NOTICE +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/optimize/__init__.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/optimize/adapters/__init__.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/optimize/adapters/_agent_registry.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/optimize/adapters/anthropic_adapter.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/optimize/adapters/openai_adapter.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/optimize/adapters/wrap.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/optimize/cache/__init__.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/optimize/cache/boundary_store.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/optimize/cache/centroid_store.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/optimize/cache/context_key.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/optimize/cache/exact.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/optimize/cache/invalidation.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/optimize/cache/key_builder.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/optimize/cache/manager.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/optimize/cache/semantic.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/optimize/cache/stampede.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/optimize/compress/__init__.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/optimize/compress/align.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/optimize/compress/ccr.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/optimize/compress/prose_llmlingua.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/optimize/compress/router.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/optimize/config/__init__.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/optimize/config/defaults.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/optimize/config/schema.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/optimize/config/store.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/optimize/metrics/__init__.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/optimize/metrics/counters.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/optimize/metrics/estimator.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/optimize/metrics/exporters.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/optimize/metrics/persistence.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/optimize/proxy/__init__.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/optimize/proxy/_helpers.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/optimize/proxy/anthropic_surface.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/optimize/proxy/capture.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/optimize/proxy/gemini_surface.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/optimize/proxy/lifecycle.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/optimize/proxy/openai_surface.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/optimize/proxy/server.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/optimize/proxy/vertex_surface.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/optimize/storage/__init__.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/optimize/storage/db.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/optimize/storage/schema.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/parameterization/__init__.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/parameterization/pattern_extractor.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/parameterization/pii_filter.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/parameterization/prompt_injector.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/parameterization/prompt_lifecycle.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/parameterization/soft_prompt_generator.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/retrieval/__init__.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/retrieval/agentic.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/retrieval/ann_index.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/retrieval/bm25_channel.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/retrieval/bridge_discovery.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/retrieval/channel_registry.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/retrieval/engine.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/retrieval/entity_channel.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/retrieval/forgetting_filter.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/retrieval/fusion.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/retrieval/hopfield_channel.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/retrieval/profile_channel.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/retrieval/quantization_aware_search.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/retrieval/reranker.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/retrieval/scope_policy.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/retrieval/semantic_channel.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/retrieval/strategy.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/retrieval/temporal_channel.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/retrieval/vector_store.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/server/__init__.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/server/api.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/server/bandit_loops.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/server/middleware/__init__.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/server/middleware/security_headers.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/server/recall_health.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/server/recall_serializer.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/server/route_mutations.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/server/routes/__init__.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/server/routes/adapters.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/server/routes/agents.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/server/routes/backup.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/server/routes/behavioral.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/server/routes/brain.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/server/routes/chat.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/server/routes/compliance.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/server/routes/data_io.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/server/routes/entity.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/server/routes/events.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/server/routes/evolution.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/server/routes/helpers.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/server/routes/ingest.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/server/routes/insights.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/server/routes/learning.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/server/routes/lifecycle.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/server/routes/memories.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/server/routes/mesh.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/server/routes/optimize.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/server/routes/prewarm.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/server/routes/profiles.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/server/routes/stats.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/server/routes/tiers.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/server/routes/timeline.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/server/routes/token.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/server/routes/v3_api.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/server/routes/ws.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/server/security_middleware.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/server/ui.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/server/write_identity.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/storage/__init__.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/storage/access_control.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/storage/access_log.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/storage/database.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/storage/embedding_migrator.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/storage/migration_runner.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/storage/migration_v33.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/storage/migrations/M001_add_signal_features_columns.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/storage/migrations/M002_model_state_history.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/storage/migrations/M003_migration_log.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/storage/migrations/M004_cross_platform_sync_log.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/storage/migrations/M005_bandit_tables.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/storage/migrations/M006_action_outcomes_reward.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/storage/migrations/M007_pending_outcomes.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/storage/migrations/M009_model_lineage.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/storage/migrations/M010_evolution_config.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/storage/migrations/M011_archive_and_merge.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/storage/migrations/M012_shadow_observations.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/storage/migrations/M013_bi_temporal_columns.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/storage/migrations/M014_v345_scale_ready.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/storage/migrations/M015_add_pinned_column.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/storage/migrations/M016_add_scope_support.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/storage/migrations/M017_ccq_scope_column.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/storage/migrations/M018_ingestion_operations.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/storage/migrations/M019_derivation_lineage.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/storage/migrations/M020_model_state_integrity.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/storage/migrations/__init__.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/storage/migrations.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/storage/models.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/storage/quantized_store.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/storage/schema.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/storage/schema_code_graph.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/storage/schema_v32.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/storage/schema_v3410.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/storage/schema_v3411.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/storage/schema_v343.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/storage/schema_v345.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/storage/schema_v347.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/storage/v2_migrator.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/trust/__init__.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/trust/gate.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/trust/provenance.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/trust/scorer.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/trust/signals.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/ui/css/brain.css +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/ui/css/legacy-dashboard.css +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/ui/css/neural-glass.css +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/ui/favicon.svg +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/ui/index.html +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/ui/js/agents.js +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/ui/js/auto-settings.js +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/ui/js/brain.js +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/ui/js/clusters.js +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/ui/js/compliance.js +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/ui/js/core.js +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/ui/js/dashboard.js +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/ui/js/events.js +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/ui/js/fact-detail.js +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/ui/js/feedback.js +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/ui/js/graph-event-bus.js +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/ui/js/graph-filters.js +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/ui/js/graph-ui.js +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/ui/js/ide-status.js +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/ui/js/init.js +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/ui/js/knowledge-graph.js +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/ui/js/lifecycle.js +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/ui/js/math-health.js +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/ui/js/memories.js +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/ui/js/memory-chat.js +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/ui/js/memory-timeline.js +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/ui/js/modal.js +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/ui/js/ng-entities.js +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/ui/js/ng-health.js +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/ui/js/ng-ingestion.js +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/ui/js/ng-mesh.js +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/ui/js/ng-shell.js +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/ui/js/ng-skills.js +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/ui/js/optimize.js +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/ui/js/profiles.js +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/ui/js/quick-actions.js +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/ui/js/recall-lab.js +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/ui/js/search.js +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/ui/js/settings.js +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/ui/js/timeline.js +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/ui/js/trust-dashboard.js +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/ui/vendor/bootstrap-icons/bootstrap-icons.css +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/ui/vendor/bootstrap-icons/fonts/bootstrap-icons.woff +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/ui/vendor/bootstrap-icons/fonts/bootstrap-icons.woff2 +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/ui/vendor/bootstrap.bundle.min.js +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/ui/vendor/bootstrap.min.css +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/ui/vendor/d3.v7.min.js +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/ui/vendor/graphology-library.min.js +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/ui/vendor/graphology.umd.min.js +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/ui/vendor/inter-ui/inter-variable.min.css +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/ui/vendor/inter-ui/variable/InterVariable-Italic.woff2 +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/ui/vendor/inter-ui/variable/InterVariable.woff2 +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/ui/vendor/sigma.min.js +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/vector/__init__.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory/vector/lancedb_backend.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory.egg-info/SOURCES.txt +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory.egg-info/dependency_links.txt +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory.egg-info/entry_points.txt +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory.egg-info/requires.txt +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/src/superlocalmemory.egg-info/top_level.txt +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/tests/test_auto_hooks.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/tests/test_before_web_hook.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/tests/test_behavioral_full.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/tests/test_claude_hooks.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/tests/test_cli_core.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/tests/test_cli_json.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/tests/test_cli_v33.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/tests/test_compliance_full.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/tests/test_config_system.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/tests/test_dashboard_preserve_embedding.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/tests/test_engine_hooks.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/tests/test_event_bus.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/tests/test_features.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/tests/test_final_locomo_mini.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/tests/test_graph_integrity.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/tests/test_hook_handlers.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/tests/test_ide_connector.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/tests/test_infra.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/tests/test_injection.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/tests/test_learning_advanced.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/tests/test_learning_collectors.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/tests/test_llm_provider.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/tests/test_mcp_server.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/tests/test_migration.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/tests/test_mode_switch_preservation.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/tests/test_post_install.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/tests/test_ranker.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/tests/test_resource_lifecycle.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/tests/test_topic_shift_hook.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/tests/test_trust_full.py +0 -0
- {superlocalmemory-3.7.1 → superlocalmemory-3.7.2}/tests/test_v3_api.py +0 -0
- {superlocalmemory-3.7.1 → 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.
|
|
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.
|
|
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",
|
{superlocalmemory-3.7.1 → 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.1 → superlocalmemory-3.7.2}/src/superlocalmemory/core/engine_wiring.py
RENAMED
|
@@ -388,11 +388,6 @@ def _init_spreading_activation(
|
|
|
388
388
|
vector_store: Any,
|
|
389
389
|
) -> Any | None:
|
|
390
390
|
"""Create SpreadingActivation for Phase 3 5th retrieval channel."""
|
|
391
|
-
# V3.3.21: Guard against None vector_store. Without embeddings, SA's
|
|
392
|
-
# search() crashes with "'NoneType' has no attribute 'search'".
|
|
393
|
-
if vector_store is None:
|
|
394
|
-
logger.debug("SpreadingActivation skipped: no vector_store")
|
|
395
|
-
return None
|
|
396
391
|
try:
|
|
397
392
|
from superlocalmemory.retrieval.spreading_activation import (
|
|
398
393
|
SpreadingActivation,
|
|
@@ -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)
|
|
@@ -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
|
|