superlocalmemory 3.7.4__tar.gz → 3.7.5__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.4/src/superlocalmemory.egg-info → superlocalmemory-3.7.5}/PKG-INFO +3 -3
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/README.md +2 -2
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/pyproject.toml +1 -1
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/__init__.py +1 -1
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/cli/scale_engine_cmd.py +2 -1
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/core/scale_engine.py +49 -28
- superlocalmemory-3.7.5/src/superlocalmemory/storage/sqlite_vectors.py +169 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/vector/lancedb_backend.py +39 -68
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5/src/superlocalmemory.egg-info}/PKG-INFO +3 -3
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory.egg-info/SOURCES.txt +1 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/AUTHORS.md +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/LICENSE +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/NOTICE +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/plugin-src/skills/slm-cache/SKILL.md +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/plugin-src/skills/slm-compress/SKILL.md +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/plugin-src/skills/slm-graph/SKILL.md +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/plugin-src/skills/slm-recall/SKILL.md +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/plugin-src/skills/slm-remember/SKILL.md +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/plugin-src/skills/slm-session/SKILL.md +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/plugin-src/skills/slm-status/SKILL.md +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/setup.cfg +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/attribution/__init__.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/attribution/mathematical_dna.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/attribution/signer.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/attribution/watermark.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/cli/__init__.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/cli/_lazy_init.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/cli/cache_cmd.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/cli/commands.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/cli/compress_cmd.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/cli/context_commands.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/cli/daemon.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/cli/db_migrate.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/cli/diagnostics_cmd.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/cli/escape_hatch.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/cli/evidence_cmd.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/cli/help_cmd.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/cli/ingest_cmd.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/cli/json_output.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/cli/main.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/cli/migrate_cmd.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/cli/optimize_cmd.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/cli/optimize_constants.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/cli/pending_store.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/cli/post_install.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/cli/proxy_cmd.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/cli/service_installer.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/cli/setup_wizard.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/cli/version_banner.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/cli/wizard_v3426_options.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/code_graph/__init__.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/code_graph/blast_radius.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/code_graph/bridge/__init__.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/code_graph/bridge/entity_resolver.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/code_graph/bridge/event_listeners.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/code_graph/bridge/fact_enricher.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/code_graph/bridge/hebbian_linker.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/code_graph/bridge/temporal_checker.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/code_graph/changes.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/code_graph/communities.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/code_graph/config.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/code_graph/database.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/code_graph/extractors/__init__.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/code_graph/extractors/python.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/code_graph/extractors/typescript.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/code_graph/flows.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/code_graph/git_hooks.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/code_graph/graph_engine.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/code_graph/graph_store.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/code_graph/incremental.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/code_graph/models.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/code_graph/parser.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/code_graph/resolver.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/code_graph/search.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/code_graph/service.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/code_graph/watcher.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/compliance/__init__.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/compliance/abac.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/compliance/audit.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/compliance/eu_ai_act.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/compliance/gdpr.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/compliance/lifecycle.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/compliance/retention.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/compliance/scheduler.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/core/__init__.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/core/backend_orchestrator.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/core/block_hygiene.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/core/clock_monitor.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/core/config.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/core/consolidation_engine.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/core/context_cache.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/core/db_pool.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/core/derivation_lineage.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/core/embedding_worker.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/core/embeddings.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/core/engine.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/core/engine_capabilities.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/core/engine_ingestion.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/core/engine_lock.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/core/engine_wiring.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/core/error_catalog.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/core/error_envelope.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/core/evidence_bundle.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/core/fact_consolidator.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/core/file_lock.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/core/graph_analyzer.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/core/graph_pruner.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/core/health_monitor.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/core/hooks.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/core/ingest_gate.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/core/ingestion_command.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/core/injection.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/core/lifecycle_state.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/core/loop_watchdog.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/core/maintenance.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/core/maintenance_scheduler.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/core/mcp_embedder_proxy.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/core/modes.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/core/mutations.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/core/ollama_embedder.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/core/platform_utils.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/core/priority_queue.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/core/profiles.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/core/pruning_engine.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/core/queue_consumer.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/core/queue_dispatcher.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/core/ram_lock.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/core/rate_limit.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/core/recall_gate.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/core/recall_pipeline.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/core/recall_queue.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/core/recall_worker.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/core/registry.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/core/remote_mode.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/core/reranker_worker.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/core/safe_fs.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/core/score_contract.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/core/security_primitives.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/core/shadow_router.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/core/slm_disabled.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/core/slmignore.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/core/store_pipeline.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/core/summarizer.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/core/tier_manager.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/core/topic_signature.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/core/worker_pool.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/dynamics/__init__.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/dynamics/activation_guided_quantization.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/dynamics/eap_scheduler.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/dynamics/ebbinghaus_langevin_coupling.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/dynamics/fisher_langevin_coupling.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/encoding/__init__.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/encoding/auto_linker.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/encoding/cognitive_consolidator.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/encoding/consolidator.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/encoding/context_generator.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/encoding/emotional.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/encoding/entity_resolver.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/encoding/entropy_gate.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/encoding/fact_extractor.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/encoding/foresight.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/encoding/graph_builder.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/encoding/observation_builder.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/encoding/scene_builder.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/encoding/signal_inference.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/encoding/temporal_parser.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/encoding/temporal_validator.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/encoding/type_router.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/evaluation/__init__.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/evaluation/calibration.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/evolution/__init__.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/evolution/blind_verifier.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/evolution/budget.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/evolution/evolution_store.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/evolution/llm_dispatch.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/evolution/mutation_generator.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/evolution/skill_evolver.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/evolution/triggers.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/evolution/types.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/graph/__init__.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/graph/cozo_backend.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/hooks/__init__.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/hooks/_outcome_common.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/hooks/adapter_base.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/hooks/antigravity_adapter.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/hooks/auto_capture.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/hooks/auto_invoker.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/hooks/auto_parameterize.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/hooks/auto_recall.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/hooks/auto_recall_hook.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/hooks/before_web_hook.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/hooks/claude_code_hooks.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/hooks/codex_assets.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/hooks/codex_hooks.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/hooks/context_payload.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/hooks/copilot_adapter.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/hooks/cross_platform_connector.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/hooks/cursor_adapter.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/hooks/hook_daemon.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/hooks/hook_handlers.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/hooks/ide_connector.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/hooks/memory_protocol.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/hooks/portable_kit.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/hooks/post_tool_async_hook.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/hooks/post_tool_outcome_hook.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/hooks/prewarm_auth.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/hooks/rules_engine.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/hooks/session_registry.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/hooks/stop_outcome_hook.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/hooks/sync_loop.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/hooks/topic_shift_hook.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/hooks/user_prompt_hook.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/hooks/user_prompt_rehash_hook.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/infra/__init__.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/infra/auth_middleware.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/infra/backup.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/infra/cache_manager.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/infra/cloud_backup.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/infra/daemon_identity.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/infra/data_root.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/infra/event_bus.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/infra/heartbeat_monitor.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/infra/local_diagnostics.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/infra/pid_manager.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/infra/process_reaper.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/infra/rate_limiter.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/infra/webhook_dispatcher.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/ingestion/__init__.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/ingestion/adapter_manager.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/ingestion/base_adapter.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/ingestion/calendar_adapter.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/ingestion/credentials.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/ingestion/gmail_adapter.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/ingestion/parsers.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/ingestion/transcript_adapter.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/learning/__init__.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/learning/adaptive.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/learning/arm_catalog.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/learning/assertion_miner.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/learning/bandit.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/learning/bandit_cache.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/learning/behavioral.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/learning/behavioral_listener.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/learning/bootstrap.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/learning/consolidation_cycle.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/learning/consolidation_quantization_worker.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/learning/consolidation_worker.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/learning/cross_project.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/learning/database.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/learning/dedup_hnsw.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/learning/engagement.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/learning/ensemble.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/learning/entity_compiler.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/learning/fact_outcome_joins.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/learning/features.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/learning/feedback.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/learning/forgetting_scheduler.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/learning/hnsw_dedup.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/learning/labeler.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/learning/legacy_migration.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/learning/lightgbm_subprocess.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/learning/memory_merge.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/learning/model_cache.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/learning/model_rollback.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/learning/outcome_queue.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/learning/outcomes.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/learning/pattern_miner.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/learning/pattern_miner_constants.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/learning/project_context.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/learning/quantization_scheduler.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/learning/ranker.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/learning/ranker_common.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/learning/ranker_retrain_legacy.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/learning/ranker_retrain_online.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/learning/reward.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/learning/reward_archive.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/learning/reward_boost.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/learning/reward_proxy.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/learning/shadow_test.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/learning/signal_worker.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/learning/signals.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/learning/skill_performance_miner.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/learning/source_quality.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/learning/trigram_index.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/learning/workflows.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/llm/__init__.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/llm/backbone.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/math/__init__.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/math/ebbinghaus.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/math/fisher.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/math/fisher_quantized.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/math/hopfield.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/math/langevin.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/math/polar_quant.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/math/qjl.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/math/sheaf.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/math/turbo_quant.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/mcp/__init__.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/mcp/_daemon_proxy.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/mcp/_pool_adapter.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/mcp/_stdin_guard.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/mcp/agent_context.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/mcp/cli_fallback.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/mcp/http_transport.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/mcp/resources.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/mcp/server.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/mcp/shared.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/mcp/tools.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/mcp/tools_active.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/mcp/tools_code_graph.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/mcp/tools_context.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/mcp/tools_core.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/mcp/tools_evolution.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/mcp/tools_learning.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/mcp/tools_mesh.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/mcp/tools_optimize.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/mcp/tools_v28.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/mcp/tools_v3.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/mcp/tools_v33.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/mesh/__init__.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/mesh/broker.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/mesh/remote_sync.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/migrations/__init__.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/migrations/v3_4_25_to_v3_4_26.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/optimize/NOTICE +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/optimize/__init__.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/optimize/adapters/__init__.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/optimize/adapters/_agent_registry.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/optimize/adapters/anthropic_adapter.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/optimize/adapters/openai_adapter.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/optimize/adapters/wrap.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/optimize/cache/__init__.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/optimize/cache/boundary_store.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/optimize/cache/centroid_store.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/optimize/cache/context_key.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/optimize/cache/exact.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/optimize/cache/invalidation.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/optimize/cache/key_builder.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/optimize/cache/manager.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/optimize/cache/semantic.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/optimize/cache/stampede.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/optimize/compress/__init__.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/optimize/compress/align.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/optimize/compress/ccr.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/optimize/compress/prose_llmlingua.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/optimize/compress/router.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/optimize/config/__init__.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/optimize/config/defaults.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/optimize/config/schema.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/optimize/config/store.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/optimize/metrics/__init__.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/optimize/metrics/counters.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/optimize/metrics/estimator.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/optimize/metrics/exporters.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/optimize/metrics/persistence.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/optimize/proxy/__init__.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/optimize/proxy/_helpers.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/optimize/proxy/anthropic_surface.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/optimize/proxy/capture.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/optimize/proxy/gemini_surface.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/optimize/proxy/lifecycle.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/optimize/proxy/openai_surface.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/optimize/proxy/server.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/optimize/proxy/vertex_surface.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/optimize/storage/__init__.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/optimize/storage/db.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/optimize/storage/schema.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/parameterization/__init__.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/parameterization/pattern_extractor.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/parameterization/pii_filter.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/parameterization/prompt_injector.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/parameterization/prompt_lifecycle.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/parameterization/soft_prompt_generator.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/retrieval/__init__.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/retrieval/agentic.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/retrieval/ann_index.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/retrieval/bm25_channel.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/retrieval/bridge_discovery.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/retrieval/channel_registry.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/retrieval/engine.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/retrieval/entity_channel.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/retrieval/forgetting_filter.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/retrieval/fusion.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/retrieval/hopfield_channel.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/retrieval/profile_channel.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/retrieval/quantization_aware_search.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/retrieval/reranker.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/retrieval/scope_policy.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/retrieval/semantic_channel.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/retrieval/spreading_activation.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/retrieval/strategy.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/retrieval/temporal_channel.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/retrieval/vector_store.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/server/__init__.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/server/api.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/server/bandit_loops.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/server/middleware/__init__.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/server/middleware/security_headers.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/server/recall_health.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/server/recall_serializer.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/server/route_mutations.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/server/routes/__init__.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/server/routes/adapters.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/server/routes/agents.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/server/routes/backup.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/server/routes/behavioral.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/server/routes/brain.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/server/routes/chat.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/server/routes/compliance.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/server/routes/data_io.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/server/routes/entity.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/server/routes/events.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/server/routes/evolution.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/server/routes/helpers.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/server/routes/ingest.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/server/routes/insights.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/server/routes/learning.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/server/routes/lifecycle.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/server/routes/memories.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/server/routes/mesh.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/server/routes/optimize.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/server/routes/prewarm.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/server/routes/profiles.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/server/routes/stats.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/server/routes/tiers.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/server/routes/timeline.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/server/routes/token.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/server/routes/v3_api.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/server/routes/ws.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/server/security_middleware.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/server/ui.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/server/unified_daemon.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/server/write_identity.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/storage/__init__.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/storage/access_control.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/storage/access_log.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/storage/database.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/storage/embedding_migrator.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/storage/logical_edges.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/storage/migration_runner.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/storage/migration_v33.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/storage/migrations/M001_add_signal_features_columns.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/storage/migrations/M002_model_state_history.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/storage/migrations/M003_migration_log.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/storage/migrations/M004_cross_platform_sync_log.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/storage/migrations/M005_bandit_tables.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/storage/migrations/M006_action_outcomes_reward.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/storage/migrations/M007_pending_outcomes.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/storage/migrations/M009_model_lineage.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/storage/migrations/M010_evolution_config.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/storage/migrations/M011_archive_and_merge.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/storage/migrations/M012_shadow_observations.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/storage/migrations/M013_bi_temporal_columns.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/storage/migrations/M014_v345_scale_ready.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/storage/migrations/M015_add_pinned_column.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/storage/migrations/M016_add_scope_support.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/storage/migrations/M017_ccq_scope_column.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/storage/migrations/M018_ingestion_operations.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/storage/migrations/M019_derivation_lineage.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/storage/migrations/M020_model_state_integrity.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/storage/migrations/__init__.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/storage/migrations.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/storage/models.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/storage/quantized_store.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/storage/schema.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/storage/schema_code_graph.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/storage/schema_v32.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/storage/schema_v3410.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/storage/schema_v3411.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/storage/schema_v343.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/storage/schema_v345.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/storage/schema_v347.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/storage/v2_migrator.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/trust/__init__.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/trust/gate.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/trust/provenance.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/trust/scorer.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/trust/signals.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/ui/css/brain.css +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/ui/css/legacy-dashboard.css +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/ui/css/neural-glass.css +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/ui/favicon.svg +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/ui/index.html +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/ui/js/agents.js +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/ui/js/auto-settings.js +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/ui/js/brain.js +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/ui/js/clusters.js +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/ui/js/compliance.js +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/ui/js/core.js +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/ui/js/dashboard.js +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/ui/js/events.js +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/ui/js/fact-detail.js +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/ui/js/feedback.js +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/ui/js/graph-event-bus.js +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/ui/js/graph-filters.js +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/ui/js/graph-ui.js +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/ui/js/ide-status.js +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/ui/js/init.js +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/ui/js/knowledge-graph.js +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/ui/js/lifecycle.js +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/ui/js/math-health.js +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/ui/js/memories.js +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/ui/js/memory-chat.js +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/ui/js/memory-timeline.js +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/ui/js/modal.js +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/ui/js/ng-entities.js +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/ui/js/ng-health.js +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/ui/js/ng-ingestion.js +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/ui/js/ng-mesh.js +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/ui/js/ng-shell.js +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/ui/js/ng-skills.js +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/ui/js/optimize.js +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/ui/js/profiles.js +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/ui/js/quick-actions.js +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/ui/js/recall-lab.js +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/ui/js/search.js +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/ui/js/settings.js +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/ui/js/timeline.js +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/ui/js/trust-dashboard.js +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/ui/vendor/bootstrap-icons/bootstrap-icons.css +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/ui/vendor/bootstrap-icons/fonts/bootstrap-icons.woff +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/ui/vendor/bootstrap-icons/fonts/bootstrap-icons.woff2 +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/ui/vendor/bootstrap.bundle.min.js +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/ui/vendor/bootstrap.min.css +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/ui/vendor/d3.v7.min.js +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/ui/vendor/graphology-library.min.js +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/ui/vendor/graphology.umd.min.js +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/ui/vendor/inter-ui/inter-variable.min.css +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/ui/vendor/inter-ui/variable/InterVariable-Italic.woff2 +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/ui/vendor/inter-ui/variable/InterVariable.woff2 +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/ui/vendor/sigma.min.js +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/vector/__init__.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory.egg-info/dependency_links.txt +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory.egg-info/entry_points.txt +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory.egg-info/requires.txt +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory.egg-info/top_level.txt +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/tests/test_auto_hooks.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/tests/test_before_web_hook.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/tests/test_behavioral_full.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/tests/test_claude_hooks.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/tests/test_cli_core.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/tests/test_cli_json.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/tests/test_cli_v33.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/tests/test_compliance_full.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/tests/test_config_system.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/tests/test_dashboard_preserve_embedding.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/tests/test_engine_hooks.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/tests/test_event_bus.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/tests/test_features.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/tests/test_final_locomo_mini.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/tests/test_graph_integrity.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/tests/test_hook_handlers.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/tests/test_ide_connector.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/tests/test_infra.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/tests/test_injection.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/tests/test_learning_advanced.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/tests/test_learning_collectors.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/tests/test_llm_provider.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/tests/test_mcp_server.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/tests/test_migration.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/tests/test_mode_switch_preservation.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/tests/test_post_install.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/tests/test_ranker.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/tests/test_resource_lifecycle.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/tests/test_topic_shift_hook.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/tests/test_trust_full.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/tests/test_v3_api.py +0 -0
- {superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/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.5
|
|
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
|
|
@@ -107,10 +107,10 @@ Dynamic: license-file
|
|
|
107
107
|
</picture>
|
|
108
108
|
</p>
|
|
109
109
|
|
|
110
|
-
<h1 align="center">SuperLocalMemory V3.7.
|
|
110
|
+
<h1 align="center">SuperLocalMemory V3.7.5</h1>
|
|
111
111
|
<p align="center"><strong>Cache. Compress. Remember. Three surfaces — proxy, MCP tools, or skill. Every setup covered.</strong><br/>
|
|
112
112
|
<em>Local-first agent memory with explicit operating modes, auditable retrieval, and optional Optimize tools.</em></p>
|
|
113
|
-
<p align="center"><code>v3.7.
|
|
113
|
+
<p align="center"><code>v3.7.5</code> — <strong>Scale Engine graph and vector projection parity, durable promotion recovery, and honest runtime status.</strong><br/>
|
|
114
114
|
Proxy: <code>slm wrap claude</code> · MCP: add <code>slm_compress</code> to your config · Skill: zero-config</p>
|
|
115
115
|
<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>
|
|
116
116
|
|
|
@@ -5,10 +5,10 @@
|
|
|
5
5
|
</picture>
|
|
6
6
|
</p>
|
|
7
7
|
|
|
8
|
-
<h1 align="center">SuperLocalMemory V3.7.
|
|
8
|
+
<h1 align="center">SuperLocalMemory V3.7.5</h1>
|
|
9
9
|
<p align="center"><strong>Cache. Compress. Remember. Three surfaces — proxy, MCP tools, or skill. Every setup covered.</strong><br/>
|
|
10
10
|
<em>Local-first agent memory with explicit operating modes, auditable retrieval, and optional Optimize tools.</em></p>
|
|
11
|
-
<p align="center"><code>v3.7.
|
|
11
|
+
<p align="center"><code>v3.7.5</code> — <strong>Scale Engine graph and vector projection parity, durable promotion recovery, and honest runtime status.</strong><br/>
|
|
12
12
|
Proxy: <code>slm wrap claude</code> · MCP: add <code>slm_compress</code> to your config · Skill: zero-config</p>
|
|
13
13
|
<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>
|
|
14
14
|
|
|
@@ -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.5"
|
|
36
36
|
|
|
37
37
|
_REQUIRED_VERSIONS = {
|
|
38
38
|
"sentence_transformers": "5.3.0",
|
{superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/cli/scale_engine_cmd.py
RENAMED
|
@@ -8,6 +8,7 @@ from argparse import Namespace
|
|
|
8
8
|
def cmd_db_scale(args: Namespace) -> int:
|
|
9
9
|
from superlocalmemory.core.config import SLMConfig
|
|
10
10
|
from superlocalmemory.core.scale_engine import ScaleEngineError, ScaleEngineManager
|
|
11
|
+
from superlocalmemory.storage.sqlite_vectors import CanonicalVectorError
|
|
11
12
|
|
|
12
13
|
action = args.scale_action
|
|
13
14
|
# Scale Engine projections are currently canonical-default-profile data.
|
|
@@ -42,7 +43,7 @@ def cmd_db_scale(args: Namespace) -> int:
|
|
|
42
43
|
result = manager.rollback(args.backup_id)
|
|
43
44
|
else:
|
|
44
45
|
raise ScaleEngineError(f"unknown Scale Engine action: {action}")
|
|
45
|
-
except ScaleEngineError as exc:
|
|
46
|
+
except (ScaleEngineError, CanonicalVectorError) as exc:
|
|
46
47
|
print(f"Scale Engine: {exc}")
|
|
47
48
|
return 1
|
|
48
49
|
print(json.dumps(result, indent=2, sort_keys=True))
|
|
@@ -23,6 +23,12 @@ from pathlib import Path
|
|
|
23
23
|
from typing import Any, Callable
|
|
24
24
|
|
|
25
25
|
from superlocalmemory.storage.logical_edges import count_logical_edges, iter_logical_edges
|
|
26
|
+
from superlocalmemory.storage.sqlite_vectors import (
|
|
27
|
+
CanonicalVectorError,
|
|
28
|
+
count_canonical_vectors,
|
|
29
|
+
iter_canonical_vectors,
|
|
30
|
+
load_sqlite_vec_extension,
|
|
31
|
+
)
|
|
26
32
|
|
|
27
33
|
|
|
28
34
|
class ScaleEngineError(RuntimeError):
|
|
@@ -272,6 +278,9 @@ class ScaleEngineManager:
|
|
|
272
278
|
self.config.scale_engine_state = "prepared"
|
|
273
279
|
self._save_config()
|
|
274
280
|
return manifest
|
|
281
|
+
except CanonicalVectorError as exc:
|
|
282
|
+
shutil.rmtree(stage_dir, ignore_errors=True)
|
|
283
|
+
raise ScaleEngineError(f"canonical vector projection failed: {exc}") from exc
|
|
275
284
|
except Exception:
|
|
276
285
|
shutil.rmtree(stage_dir, ignore_errors=True)
|
|
277
286
|
raise
|
|
@@ -285,6 +294,8 @@ class ScaleEngineManager:
|
|
|
285
294
|
try:
|
|
286
295
|
self._recover_interrupted_promotion()
|
|
287
296
|
return self._verify(stage_id)
|
|
297
|
+
except CanonicalVectorError as exc:
|
|
298
|
+
raise ScaleEngineError(f"canonical vector projection failed: {exc}") from exc
|
|
288
299
|
finally:
|
|
289
300
|
self._release_lifecycle_lock(lock_path)
|
|
290
301
|
|
|
@@ -301,7 +312,9 @@ class ScaleEngineManager:
|
|
|
301
312
|
source_fingerprint = self._projection_fingerprint(conn, canonical)
|
|
302
313
|
observed = self._observed_counts(cozo, lance)
|
|
303
314
|
if manifest["source_fingerprint"] != source_fingerprint:
|
|
304
|
-
raise ScaleEngineError(
|
|
315
|
+
raise ScaleEngineError(
|
|
316
|
+
"canonical SQLite changed after preparation; prepare a new stage"
|
|
317
|
+
)
|
|
305
318
|
if canonical != manifest["canonical"] or observed != canonical:
|
|
306
319
|
raise ScaleEngineError(
|
|
307
320
|
f"projection parity failed: canonical={canonical}, observed={observed}"
|
|
@@ -321,6 +334,8 @@ class ScaleEngineManager:
|
|
|
321
334
|
try:
|
|
322
335
|
self._recover_interrupted_promotion()
|
|
323
336
|
return self._promote(stage_id)
|
|
337
|
+
except CanonicalVectorError as exc:
|
|
338
|
+
raise ScaleEngineError(f"canonical vector projection failed: {exc}") from exc
|
|
324
339
|
finally:
|
|
325
340
|
self._release_lifecycle_lock(lock_path)
|
|
326
341
|
|
|
@@ -341,7 +356,9 @@ class ScaleEngineManager:
|
|
|
341
356
|
gate.execute("BEGIN IMMEDIATE")
|
|
342
357
|
canonical = self._canonical_counts(gate)
|
|
343
358
|
if manifest["source_fingerprint"] != self._projection_fingerprint(gate, canonical):
|
|
344
|
-
raise ScaleEngineError(
|
|
359
|
+
raise ScaleEngineError(
|
|
360
|
+
"canonical SQLite changed after verification; prepare a new stage"
|
|
361
|
+
)
|
|
345
362
|
self._mkdir_durable(self.backup_root)
|
|
346
363
|
journal = {
|
|
347
364
|
"schema_version": self.SCHEMA_VERSION,
|
|
@@ -368,7 +385,13 @@ class ScaleEngineManager:
|
|
|
368
385
|
self._replace_durable(destination, source)
|
|
369
386
|
move["state"] = "complete"
|
|
370
387
|
self._write_promotion_journal(journal)
|
|
371
|
-
manifest.update(
|
|
388
|
+
manifest.update(
|
|
389
|
+
{
|
|
390
|
+
"state": "promoted",
|
|
391
|
+
"promoted_at": _utc_now(),
|
|
392
|
+
"backup_id": backup_dir.name,
|
|
393
|
+
}
|
|
394
|
+
)
|
|
372
395
|
self._write_manifest(stage_dir, manifest)
|
|
373
396
|
self.config.scale_engine_state = "promoted"
|
|
374
397
|
self.config.graph_backend = "cozo"
|
|
@@ -447,7 +470,11 @@ class ScaleEngineManager:
|
|
|
447
470
|
journal["state"] = "committed"
|
|
448
471
|
self._write_promotion_journal(journal)
|
|
449
472
|
self.promotion_journal_path.unlink(missing_ok=True)
|
|
450
|
-
return {
|
|
473
|
+
return {
|
|
474
|
+
"state": "local_core",
|
|
475
|
+
"restored_backup": backup_id,
|
|
476
|
+
"displaced": displaced.name,
|
|
477
|
+
}
|
|
451
478
|
except Exception as exc:
|
|
452
479
|
try:
|
|
453
480
|
self._recover_interrupted_promotion()
|
|
@@ -465,6 +492,7 @@ class ScaleEngineManager:
|
|
|
465
492
|
def _readonly_connection(self) -> sqlite3.Connection:
|
|
466
493
|
conn = sqlite3.connect(f"file:{self.db_path}?mode=ro", uri=True)
|
|
467
494
|
conn.execute("PRAGMA query_only=ON")
|
|
495
|
+
load_sqlite_vec_extension(conn)
|
|
468
496
|
return conn
|
|
469
497
|
|
|
470
498
|
def _canonical_counts(self, conn: sqlite3.Connection) -> dict[str, int]:
|
|
@@ -473,15 +501,7 @@ class ScaleEngineManager:
|
|
|
473
501
|
(self.profile_id,),
|
|
474
502
|
).fetchone()[0]
|
|
475
503
|
edges = count_logical_edges(conn, self.profile_id)
|
|
476
|
-
|
|
477
|
-
vectors = conn.execute(
|
|
478
|
-
"SELECT COUNT(*) FROM fact_embeddings_rowids fer "
|
|
479
|
-
"JOIN atomic_facts af ON af.fact_id = fer.fact_id "
|
|
480
|
-
"WHERE af.profile_id = ?",
|
|
481
|
-
(self.profile_id,),
|
|
482
|
-
).fetchone()[0]
|
|
483
|
-
except sqlite3.OperationalError:
|
|
484
|
-
vectors = 0
|
|
504
|
+
vectors = count_canonical_vectors(conn, self.profile_id)
|
|
485
505
|
return {"entities": int(nodes), "edges": int(edges), "vectors": int(vectors)}
|
|
486
506
|
|
|
487
507
|
def _observed_counts(self, cozo: Any, lance: Any) -> dict[str, int]:
|
|
@@ -489,7 +509,11 @@ class ScaleEngineManager:
|
|
|
489
509
|
vector = lance.health_check()
|
|
490
510
|
if graph.get("status") != "active" or vector.get("status") != "active":
|
|
491
511
|
raise ScaleEngineError(f"projection health failed: cozo={graph}, lancedb={vector}")
|
|
492
|
-
return {
|
|
512
|
+
return {
|
|
513
|
+
"entities": int(graph["entities"]),
|
|
514
|
+
"edges": int(graph["edges"]),
|
|
515
|
+
"vectors": int(vector["vectors"]),
|
|
516
|
+
}
|
|
493
517
|
|
|
494
518
|
def _projection_fingerprint(
|
|
495
519
|
self, conn: sqlite3.Connection, counts: dict[str, int]
|
|
@@ -498,7 +522,12 @@ class ScaleEngineManager:
|
|
|
498
522
|
digest = hashlib.sha256()
|
|
499
523
|
digest.update(json.dumps(counts, sort_keys=True).encode())
|
|
500
524
|
tables = (
|
|
501
|
-
(
|
|
525
|
+
(
|
|
526
|
+
"canonical_entities",
|
|
527
|
+
"entity_id, canonical_name, entity_type, first_seen, last_seen, "
|
|
528
|
+
"fact_count, profile_id",
|
|
529
|
+
"entity_id",
|
|
530
|
+
),
|
|
502
531
|
("atomic_facts", "fact_id, canonical_entities_json, lifecycle, profile_id", "fact_id"),
|
|
503
532
|
)
|
|
504
533
|
for table, columns, ordering in tables:
|
|
@@ -516,18 +545,8 @@ class ScaleEngineManager:
|
|
|
516
545
|
self._digest_row(digest, "graph_edges", row)
|
|
517
546
|
except sqlite3.OperationalError as exc:
|
|
518
547
|
raise ScaleEngineError("canonical SQLite missing required graph_edges table") from exc
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
"SELECT fer.rowid, fer.fact_id, vec.vector FROM fact_embeddings_rowids fer "
|
|
522
|
-
"JOIN atomic_facts af ON af.fact_id = fer.fact_id "
|
|
523
|
-
"LEFT JOIN fact_embeddings_vector_chunks00 vec ON vec.rowid = fer.rowid "
|
|
524
|
-
"WHERE af.profile_id=? ORDER BY fer.rowid",
|
|
525
|
-
(self.profile_id,),
|
|
526
|
-
)
|
|
527
|
-
for row in rows:
|
|
528
|
-
self._digest_row(digest, "fact_embeddings_rowids", row)
|
|
529
|
-
except sqlite3.OperationalError:
|
|
530
|
-
pass
|
|
548
|
+
for row in iter_canonical_vectors(conn, self.profile_id):
|
|
549
|
+
self._digest_row(digest, "fact_embeddings", row)
|
|
531
550
|
return digest.hexdigest()
|
|
532
551
|
|
|
533
552
|
@staticmethod
|
|
@@ -576,7 +595,9 @@ class ScaleEngineManager:
|
|
|
576
595
|
|
|
577
596
|
def _require_default_profile(self) -> None:
|
|
578
597
|
if self.profile_id != "default":
|
|
579
|
-
raise ScaleEngineError(
|
|
598
|
+
raise ScaleEngineError(
|
|
599
|
+
"Scale Engine promotion currently supports the default profile only"
|
|
600
|
+
)
|
|
580
601
|
|
|
581
602
|
def _require_canonical_db(self) -> None:
|
|
582
603
|
if not self.db_path.exists():
|
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
# Copyright (c) 2026 Varun Pratap Bhardwaj / Qualixar
|
|
2
|
+
# Licensed under AGPL-3.0-or-later - see LICENSE file
|
|
3
|
+
|
|
4
|
+
"""Canonical sqlite-vec export contract for derived vector projections."""
|
|
5
|
+
|
|
6
|
+
from __future__ import annotations
|
|
7
|
+
|
|
8
|
+
import sqlite3
|
|
9
|
+
from collections.abc import Iterator
|
|
10
|
+
from typing import TypeAlias
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
class CanonicalVectorError(RuntimeError):
|
|
14
|
+
"""Canonical sqlite-vec data cannot be read without risking data loss."""
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
CanonicalVector: TypeAlias = tuple[int, str, str, str, bytes]
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
def load_sqlite_vec_extension(conn: sqlite3.Connection) -> None:
|
|
21
|
+
"""Load sqlite-vec for this connection or fail the migration explicitly."""
|
|
22
|
+
try:
|
|
23
|
+
import sqlite_vec
|
|
24
|
+
|
|
25
|
+
conn.enable_load_extension(True)
|
|
26
|
+
sqlite_vec.load(conn)
|
|
27
|
+
except Exception as exc:
|
|
28
|
+
raise CanonicalVectorError(
|
|
29
|
+
"sqlite-vec could not be loaded; refusing to treat canonical vectors as empty"
|
|
30
|
+
) from exc
|
|
31
|
+
finally:
|
|
32
|
+
try:
|
|
33
|
+
conn.enable_load_extension(False)
|
|
34
|
+
except (AttributeError, sqlite3.Error):
|
|
35
|
+
pass
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
def count_canonical_vectors(conn: sqlite3.Connection, profile_id: str) -> int:
|
|
39
|
+
"""Count profile-scoped vectors that have a canonical fact identity."""
|
|
40
|
+
if not _canonical_vector_table_exists(conn):
|
|
41
|
+
return 0
|
|
42
|
+
load_sqlite_vec_extension(conn)
|
|
43
|
+
return _validate_canonical_vector_contract(conn, profile_id)
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
def iter_canonical_vectors(
|
|
47
|
+
conn: sqlite3.Connection, profile_id: str
|
|
48
|
+
) -> Iterator[CanonicalVector]:
|
|
49
|
+
"""Yield supported vec0 rows joined to canonical fact identity and lifecycle."""
|
|
50
|
+
if not _canonical_vector_table_exists(conn):
|
|
51
|
+
return
|
|
52
|
+
load_sqlite_vec_extension(conn)
|
|
53
|
+
_validate_canonical_vector_contract(conn, profile_id)
|
|
54
|
+
try:
|
|
55
|
+
rows = conn.execute(
|
|
56
|
+
"SELECT fe.rowid, em.fact_id, COALESCE(af.lifecycle, 'active'), "
|
|
57
|
+
"af.profile_id, fe.embedding "
|
|
58
|
+
"FROM fact_embeddings fe "
|
|
59
|
+
"JOIN embedding_metadata em ON em.vec_rowid = fe.rowid "
|
|
60
|
+
"JOIN atomic_facts af ON af.fact_id = em.fact_id "
|
|
61
|
+
"AND af.profile_id = em.profile_id "
|
|
62
|
+
"WHERE af.profile_id = ? AND fe.profile_id = af.profile_id "
|
|
63
|
+
"ORDER BY fe.rowid",
|
|
64
|
+
(profile_id,),
|
|
65
|
+
)
|
|
66
|
+
for rowid, fact_id, lifecycle, row_profile_id, blob in rows:
|
|
67
|
+
if not isinstance(blob, bytes):
|
|
68
|
+
raise CanonicalVectorError(
|
|
69
|
+
f"canonical vector {rowid} is not a float32 blob"
|
|
70
|
+
)
|
|
71
|
+
yield int(rowid), str(fact_id), str(lifecycle), str(row_profile_id), blob
|
|
72
|
+
except sqlite3.Error as exc:
|
|
73
|
+
raise CanonicalVectorError(
|
|
74
|
+
"canonical sqlite-vec rows are unreadable; refusing a partial projection"
|
|
75
|
+
) from exc
|
|
76
|
+
|
|
77
|
+
|
|
78
|
+
def _validate_canonical_vector_contract(
|
|
79
|
+
conn: sqlite3.Connection, profile_id: str
|
|
80
|
+
) -> int:
|
|
81
|
+
"""Prove every profile-owned metadata row maps to one vec0 partition row."""
|
|
82
|
+
try:
|
|
83
|
+
misowned = int(
|
|
84
|
+
conn.execute(
|
|
85
|
+
"SELECT COUNT(*) FROM embedding_metadata em "
|
|
86
|
+
"LEFT JOIN atomic_facts af ON af.fact_id = em.fact_id "
|
|
87
|
+
"WHERE (em.profile_id = ? OR af.profile_id = ?) "
|
|
88
|
+
"AND (af.fact_id IS NULL OR af.profile_id <> em.profile_id)",
|
|
89
|
+
(profile_id, profile_id),
|
|
90
|
+
).fetchone()[0]
|
|
91
|
+
)
|
|
92
|
+
expected = int(
|
|
93
|
+
conn.execute(
|
|
94
|
+
"SELECT COUNT(*) FROM embedding_metadata em "
|
|
95
|
+
"JOIN atomic_facts af ON af.fact_id = em.fact_id "
|
|
96
|
+
"AND af.profile_id = em.profile_id "
|
|
97
|
+
"WHERE af.profile_id = ?",
|
|
98
|
+
(profile_id,),
|
|
99
|
+
).fetchone()[0]
|
|
100
|
+
)
|
|
101
|
+
mapped = int(
|
|
102
|
+
conn.execute(
|
|
103
|
+
"SELECT COUNT(*) FROM embedding_metadata em "
|
|
104
|
+
"JOIN atomic_facts af ON af.fact_id = em.fact_id "
|
|
105
|
+
"AND af.profile_id = em.profile_id "
|
|
106
|
+
"JOIN fact_embeddings fe ON fe.rowid = em.vec_rowid "
|
|
107
|
+
"AND fe.profile_id = af.profile_id "
|
|
108
|
+
"WHERE af.profile_id = ?",
|
|
109
|
+
(profile_id,),
|
|
110
|
+
).fetchone()[0]
|
|
111
|
+
)
|
|
112
|
+
except sqlite3.Error as exc:
|
|
113
|
+
raise CanonicalVectorError(
|
|
114
|
+
"canonical vector contract is unreadable; refusing a partial projection"
|
|
115
|
+
) from exc
|
|
116
|
+
if misowned:
|
|
117
|
+
raise CanonicalVectorError(
|
|
118
|
+
f"canonical vector ownership mismatch for {misowned} metadata row(s)"
|
|
119
|
+
)
|
|
120
|
+
if mapped != expected:
|
|
121
|
+
raise CanonicalVectorError(
|
|
122
|
+
"canonical vector mapping is incomplete: "
|
|
123
|
+
f"metadata={expected}, mapped_vec0={mapped}"
|
|
124
|
+
)
|
|
125
|
+
return expected
|
|
126
|
+
|
|
127
|
+
|
|
128
|
+
def _canonical_vector_table_exists(conn: sqlite3.Connection) -> bool:
|
|
129
|
+
row = conn.execute(
|
|
130
|
+
"SELECT 1 FROM sqlite_master WHERE name='fact_embeddings' "
|
|
131
|
+
"AND type='table'"
|
|
132
|
+
).fetchone()
|
|
133
|
+
if row is not None:
|
|
134
|
+
return True
|
|
135
|
+
metadata = conn.execute(
|
|
136
|
+
"SELECT 1 FROM sqlite_master WHERE name='embedding_metadata' "
|
|
137
|
+
"AND type='table'"
|
|
138
|
+
).fetchone()
|
|
139
|
+
if metadata is not None:
|
|
140
|
+
try:
|
|
141
|
+
metadata_count = int(
|
|
142
|
+
conn.execute("SELECT COUNT(*) FROM embedding_metadata").fetchone()[0]
|
|
143
|
+
)
|
|
144
|
+
except sqlite3.Error as exc:
|
|
145
|
+
raise CanonicalVectorError("embedding metadata is unreadable") from exc
|
|
146
|
+
if metadata_count:
|
|
147
|
+
raise CanonicalVectorError(
|
|
148
|
+
"embedding metadata exists but fact_embeddings is missing"
|
|
149
|
+
)
|
|
150
|
+
shadow_payload = 0
|
|
151
|
+
for table in ("fact_embeddings_rowids", "fact_embeddings_vector_chunks00"):
|
|
152
|
+
exists = conn.execute(
|
|
153
|
+
"SELECT 1 FROM sqlite_master WHERE name=? AND type='table'",
|
|
154
|
+
(table,),
|
|
155
|
+
).fetchone()
|
|
156
|
+
if exists is not None:
|
|
157
|
+
try:
|
|
158
|
+
shadow_payload += int(
|
|
159
|
+
conn.execute(f'SELECT COUNT(*) FROM "{table}"').fetchone()[0]
|
|
160
|
+
)
|
|
161
|
+
except sqlite3.Error as exc:
|
|
162
|
+
raise CanonicalVectorError(
|
|
163
|
+
"sqlite-vec shadow payload is unreadable"
|
|
164
|
+
) from exc
|
|
165
|
+
if shadow_payload:
|
|
166
|
+
raise CanonicalVectorError(
|
|
167
|
+
"sqlite-vec shadow payload exists without the fact_embeddings virtual table"
|
|
168
|
+
)
|
|
169
|
+
return False
|
{superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/vector/lancedb_backend.py
RENAMED
|
@@ -20,6 +20,8 @@ import struct
|
|
|
20
20
|
from pathlib import Path
|
|
21
21
|
from typing import Any
|
|
22
22
|
|
|
23
|
+
from superlocalmemory.storage.sqlite_vectors import iter_canonical_vectors
|
|
24
|
+
|
|
23
25
|
logger = logging.getLogger(__name__)
|
|
24
26
|
|
|
25
27
|
# Optional import
|
|
@@ -178,80 +180,49 @@ class LanceDBVectorBackend:
|
|
|
178
180
|
) -> int:
|
|
179
181
|
"""Export embeddings from sqlite-vec → LanceDB.
|
|
180
182
|
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
183
|
+
Reads the supported vec0 virtual table and joins row IDs through
|
|
184
|
+
``embedding_metadata``. Shadow-table layouts are sqlite-vec internals
|
|
185
|
+
and must not be treated as a stable migration API.
|
|
184
186
|
|
|
185
187
|
Returns number of vectors imported.
|
|
186
188
|
"""
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
except sqlite3.OperationalError:
|
|
193
|
-
logger.warning("fact_embeddings_rowids not found — no vectors to import")
|
|
194
|
-
return 0
|
|
195
|
-
|
|
196
|
-
# Get tiers
|
|
197
|
-
tier_map: dict[str, str] = {}
|
|
198
|
-
profile_map: dict[str, str] = {}
|
|
199
|
-
try:
|
|
200
|
-
for row in conn.execute(
|
|
201
|
-
"SELECT fact_id, COALESCE(lifecycle, 'active'), profile_id "
|
|
202
|
-
"FROM atomic_facts WHERE profile_id = ?",
|
|
203
|
-
(profile_id,),
|
|
204
|
-
):
|
|
205
|
-
tier_map[row[0]] = row[1]
|
|
206
|
-
profile_map[row[0]] = row[2] or "default"
|
|
207
|
-
except sqlite3.OperationalError:
|
|
208
|
-
pass
|
|
209
|
-
|
|
210
|
-
# Read vectors from sqlite-vec
|
|
211
|
-
try:
|
|
212
|
-
rows = conn.execute(
|
|
213
|
-
"SELECT rowid, vector FROM fact_embeddings_vector_chunks00"
|
|
214
|
-
).fetchall()
|
|
215
|
-
except sqlite3.OperationalError:
|
|
216
|
-
logger.warning("fact_embeddings_vector_chunks00 not found")
|
|
217
|
-
return 0
|
|
218
|
-
|
|
219
|
-
# Reconstruct and batch import
|
|
220
|
-
data = []
|
|
221
|
-
for rowid, blob in rows:
|
|
222
|
-
fact_id = row_map.get(rowid)
|
|
223
|
-
# The rowid mapping is global, but a staged Scale Engine is
|
|
224
|
-
# explicitly profile-scoped. Do not import a foreign profile by
|
|
225
|
-
# giving it a default tier/profile below.
|
|
226
|
-
if fact_id is None or fact_id not in profile_map:
|
|
227
|
-
continue
|
|
189
|
+
imported = 0
|
|
190
|
+
batch: list[tuple[str, list[float], str, str]] = []
|
|
191
|
+
for rowid, fact_id, tier, row_profile_id, blob in iter_canonical_vectors(
|
|
192
|
+
conn, profile_id
|
|
193
|
+
):
|
|
228
194
|
try:
|
|
229
195
|
vector = self._decode_vector_blob(blob)
|
|
230
196
|
except Exception as exc:
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
197
|
+
raise LanceDBError(
|
|
198
|
+
f"Invalid canonical vector for rowid {rowid}: {exc}"
|
|
199
|
+
) from exc
|
|
200
|
+
batch.append((fact_id, vector, tier, row_profile_id))
|
|
201
|
+
if len(batch) >= 256:
|
|
202
|
+
imported += self._flush_import_batch(batch)
|
|
203
|
+
batch.clear()
|
|
204
|
+
if batch:
|
|
205
|
+
imported += self._flush_import_batch(batch)
|
|
206
|
+
|
|
207
|
+
logger.info("LanceDB: imported %d vectors from sqlite-vec", imported)
|
|
208
|
+
return imported
|
|
209
|
+
|
|
210
|
+
def _flush_import_batch(
|
|
211
|
+
self, batch: list[tuple[str, list[float], str, str]]
|
|
212
|
+
) -> int:
|
|
213
|
+
"""Write one bounded-memory, single-profile canonical vector batch."""
|
|
214
|
+
by_profile: dict[str, list[tuple[str, list[float], str]]] = {}
|
|
215
|
+
for fact_id, vector, tier, profile_id in batch:
|
|
216
|
+
by_profile.setdefault(profile_id, []).append((fact_id, vector, tier))
|
|
217
|
+
imported = 0
|
|
218
|
+
for profile_id, records in by_profile.items():
|
|
219
|
+
imported += self.add_vectors(
|
|
220
|
+
[item[0] for item in records],
|
|
221
|
+
[item[1] for item in records],
|
|
222
|
+
[item[2] for item in records],
|
|
223
|
+
profile_id,
|
|
224
|
+
)
|
|
225
|
+
return imported
|
|
255
226
|
|
|
256
227
|
def _decode_vector_blob(self, blob: bytes) -> list[float]:
|
|
257
228
|
"""Decode sqlite-vec BLOB to list of floats.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: superlocalmemory
|
|
3
|
-
Version: 3.7.
|
|
3
|
+
Version: 3.7.5
|
|
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
|
|
@@ -107,10 +107,10 @@ Dynamic: license-file
|
|
|
107
107
|
</picture>
|
|
108
108
|
</p>
|
|
109
109
|
|
|
110
|
-
<h1 align="center">SuperLocalMemory V3.7.
|
|
110
|
+
<h1 align="center">SuperLocalMemory V3.7.5</h1>
|
|
111
111
|
<p align="center"><strong>Cache. Compress. Remember. Three surfaces — proxy, MCP tools, or skill. Every setup covered.</strong><br/>
|
|
112
112
|
<em>Local-first agent memory with explicit operating modes, auditable retrieval, and optional Optimize tools.</em></p>
|
|
113
|
-
<p align="center"><code>v3.7.
|
|
113
|
+
<p align="center"><code>v3.7.5</code> — <strong>Scale Engine graph and vector projection parity, durable promotion recovery, and honest runtime status.</strong><br/>
|
|
114
114
|
Proxy: <code>slm wrap claude</code> · MCP: add <code>slm_compress</code> to your config · Skill: zero-config</p>
|
|
115
115
|
<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>
|
|
116
116
|
|
|
@@ -450,6 +450,7 @@ src/superlocalmemory/storage/schema_v3411.py
|
|
|
450
450
|
src/superlocalmemory/storage/schema_v343.py
|
|
451
451
|
src/superlocalmemory/storage/schema_v345.py
|
|
452
452
|
src/superlocalmemory/storage/schema_v347.py
|
|
453
|
+
src/superlocalmemory/storage/sqlite_vectors.py
|
|
453
454
|
src/superlocalmemory/storage/v2_migrator.py
|
|
454
455
|
src/superlocalmemory/storage/migrations/M001_add_signal_features_columns.py
|
|
455
456
|
src/superlocalmemory/storage/migrations/M002_model_state_history.py
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/attribution/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/attribution/signer.py
RENAMED
|
File without changes
|
{superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/attribution/watermark.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/cli/context_commands.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{superlocalmemory-3.7.4 → superlocalmemory-3.7.5}/src/superlocalmemory/cli/diagnostics_cmd.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|