superlocalmemory 3.7.5__tar.gz → 3.7.7__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.5/src/superlocalmemory.egg-info → superlocalmemory-3.7.7}/PKG-INFO +8 -8
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/README.md +2 -2
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/plugin-src/skills/slm-recall/SKILL.md +4 -3
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/pyproject.toml +6 -6
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/__init__.py +1 -1
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/cli/commands.py +169 -9
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/cli/setup_wizard.py +53 -2
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/core/backend_orchestrator.py +6 -1
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/core/config.py +1 -1
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/core/engine.py +3 -2
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/core/engine_wiring.py +3 -1
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/core/scale_engine.py +9 -1
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/core/store_pipeline.py +1 -1
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/hooks/before_web_hook.py +1 -1
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/hooks/claude_code_hooks.py +1 -1
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/infra/auth_middleware.py +5 -5
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/mcp/_daemon_proxy.py +8 -10
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/mcp/server.py +1 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/mcp/tools_active.py +11 -7
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/mcp/tools_core.py +178 -20
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/optimize/cache/centroid_store.py +21 -3
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/optimize/cache/manager.py +7 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/optimize/cache/semantic.py +27 -10
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/retrieval/engine.py +16 -8
- superlocalmemory-3.7.7/src/superlocalmemory/server/profile_runtime.py +384 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/server/recall_health.py +13 -7
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/server/routes/chat.py +2 -2
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/server/routes/helpers.py +9 -16
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/server/routes/profiles.py +24 -14
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/server/routes/v3_api.py +97 -20
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/server/unified_daemon.py +261 -60
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/storage/migration_runner.py +44 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/storage/migrations/M002_model_state_history.py +32 -3
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/ui/index.html +32 -1
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/ui/js/auto-settings.js +48 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/ui/js/memory-chat.js +2 -2
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/ui/js/profiles.js +11 -2
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/vector/lancedb_backend.py +42 -6
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7/src/superlocalmemory.egg-info}/PKG-INFO +8 -8
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory.egg-info/SOURCES.txt +1 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory.egg-info/requires.txt +5 -5
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/AUTHORS.md +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/LICENSE +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/NOTICE +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/plugin-src/skills/slm-cache/SKILL.md +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/plugin-src/skills/slm-compress/SKILL.md +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/plugin-src/skills/slm-graph/SKILL.md +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/plugin-src/skills/slm-remember/SKILL.md +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/plugin-src/skills/slm-session/SKILL.md +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/plugin-src/skills/slm-status/SKILL.md +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/setup.cfg +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/attribution/__init__.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/attribution/mathematical_dna.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/attribution/signer.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/attribution/watermark.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/cli/__init__.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/cli/_lazy_init.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/cli/cache_cmd.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/cli/compress_cmd.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/cli/context_commands.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/cli/daemon.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/cli/db_migrate.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/cli/diagnostics_cmd.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/cli/escape_hatch.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/cli/evidence_cmd.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/cli/help_cmd.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/cli/ingest_cmd.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/cli/json_output.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/cli/main.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/cli/migrate_cmd.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/cli/optimize_cmd.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/cli/optimize_constants.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/cli/pending_store.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/cli/post_install.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/cli/proxy_cmd.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/cli/scale_engine_cmd.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/cli/service_installer.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/cli/version_banner.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/cli/wizard_v3426_options.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/code_graph/__init__.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/code_graph/blast_radius.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/code_graph/bridge/__init__.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/code_graph/bridge/entity_resolver.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/code_graph/bridge/event_listeners.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/code_graph/bridge/fact_enricher.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/code_graph/bridge/hebbian_linker.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/code_graph/bridge/temporal_checker.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/code_graph/changes.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/code_graph/communities.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/code_graph/config.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/code_graph/database.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/code_graph/extractors/__init__.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/code_graph/extractors/python.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/code_graph/extractors/typescript.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/code_graph/flows.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/code_graph/git_hooks.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/code_graph/graph_engine.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/code_graph/graph_store.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/code_graph/incremental.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/code_graph/models.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/code_graph/parser.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/code_graph/resolver.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/code_graph/search.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/code_graph/service.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/code_graph/watcher.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/compliance/__init__.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/compliance/abac.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/compliance/audit.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/compliance/eu_ai_act.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/compliance/gdpr.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/compliance/lifecycle.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/compliance/retention.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/compliance/scheduler.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/core/__init__.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/core/block_hygiene.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/core/clock_monitor.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/core/consolidation_engine.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/core/context_cache.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/core/db_pool.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/core/derivation_lineage.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/core/embedding_worker.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/core/embeddings.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/core/engine_capabilities.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/core/engine_ingestion.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/core/engine_lock.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/core/error_catalog.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/core/error_envelope.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/core/evidence_bundle.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/core/fact_consolidator.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/core/file_lock.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/core/graph_analyzer.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/core/graph_pruner.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/core/health_monitor.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/core/hooks.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/core/ingest_gate.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/core/ingestion_command.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/core/injection.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/core/lifecycle_state.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/core/loop_watchdog.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/core/maintenance.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/core/maintenance_scheduler.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/core/mcp_embedder_proxy.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/core/modes.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/core/mutations.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/core/ollama_embedder.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/core/platform_utils.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/core/priority_queue.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/core/profiles.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/core/pruning_engine.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/core/queue_consumer.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/core/queue_dispatcher.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/core/ram_lock.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/core/rate_limit.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/core/recall_gate.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/core/recall_pipeline.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/core/recall_queue.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/core/recall_worker.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/core/registry.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/core/remote_mode.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/core/reranker_worker.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/core/safe_fs.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/core/score_contract.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/core/security_primitives.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/core/shadow_router.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/core/slm_disabled.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/core/slmignore.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/core/summarizer.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/core/tier_manager.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/core/topic_signature.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/core/worker_pool.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/dynamics/__init__.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/dynamics/activation_guided_quantization.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/dynamics/eap_scheduler.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/dynamics/ebbinghaus_langevin_coupling.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/dynamics/fisher_langevin_coupling.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/encoding/__init__.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/encoding/auto_linker.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/encoding/cognitive_consolidator.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/encoding/consolidator.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/encoding/context_generator.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/encoding/emotional.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/encoding/entity_resolver.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/encoding/entropy_gate.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/encoding/fact_extractor.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/encoding/foresight.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/encoding/graph_builder.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/encoding/observation_builder.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/encoding/scene_builder.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/encoding/signal_inference.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/encoding/temporal_parser.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/encoding/temporal_validator.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/encoding/type_router.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/evaluation/__init__.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/evaluation/calibration.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/evolution/__init__.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/evolution/blind_verifier.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/evolution/budget.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/evolution/evolution_store.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/evolution/llm_dispatch.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/evolution/mutation_generator.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/evolution/skill_evolver.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/evolution/triggers.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/evolution/types.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/graph/__init__.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/graph/cozo_backend.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/hooks/__init__.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/hooks/_outcome_common.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/hooks/adapter_base.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/hooks/antigravity_adapter.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/hooks/auto_capture.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/hooks/auto_invoker.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/hooks/auto_parameterize.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/hooks/auto_recall.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/hooks/auto_recall_hook.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/hooks/codex_assets.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/hooks/codex_hooks.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/hooks/context_payload.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/hooks/copilot_adapter.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/hooks/cross_platform_connector.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/hooks/cursor_adapter.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/hooks/hook_daemon.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/hooks/hook_handlers.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/hooks/ide_connector.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/hooks/memory_protocol.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/hooks/portable_kit.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/hooks/post_tool_async_hook.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/hooks/post_tool_outcome_hook.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/hooks/prewarm_auth.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/hooks/rules_engine.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/hooks/session_registry.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/hooks/stop_outcome_hook.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/hooks/sync_loop.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/hooks/topic_shift_hook.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/hooks/user_prompt_hook.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/hooks/user_prompt_rehash_hook.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/infra/__init__.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/infra/backup.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/infra/cache_manager.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/infra/cloud_backup.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/infra/daemon_identity.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/infra/data_root.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/infra/event_bus.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/infra/heartbeat_monitor.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/infra/local_diagnostics.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/infra/pid_manager.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/infra/process_reaper.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/infra/rate_limiter.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/infra/webhook_dispatcher.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/ingestion/__init__.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/ingestion/adapter_manager.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/ingestion/base_adapter.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/ingestion/calendar_adapter.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/ingestion/credentials.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/ingestion/gmail_adapter.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/ingestion/parsers.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/ingestion/transcript_adapter.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/learning/__init__.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/learning/adaptive.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/learning/arm_catalog.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/learning/assertion_miner.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/learning/bandit.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/learning/bandit_cache.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/learning/behavioral.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/learning/behavioral_listener.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/learning/bootstrap.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/learning/consolidation_cycle.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/learning/consolidation_quantization_worker.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/learning/consolidation_worker.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/learning/cross_project.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/learning/database.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/learning/dedup_hnsw.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/learning/engagement.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/learning/ensemble.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/learning/entity_compiler.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/learning/fact_outcome_joins.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/learning/features.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/learning/feedback.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/learning/forgetting_scheduler.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/learning/hnsw_dedup.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/learning/labeler.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/learning/legacy_migration.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/learning/lightgbm_subprocess.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/learning/memory_merge.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/learning/model_cache.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/learning/model_rollback.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/learning/outcome_queue.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/learning/outcomes.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/learning/pattern_miner.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/learning/pattern_miner_constants.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/learning/project_context.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/learning/quantization_scheduler.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/learning/ranker.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/learning/ranker_common.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/learning/ranker_retrain_legacy.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/learning/ranker_retrain_online.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/learning/reward.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/learning/reward_archive.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/learning/reward_boost.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/learning/reward_proxy.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/learning/shadow_test.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/learning/signal_worker.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/learning/signals.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/learning/skill_performance_miner.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/learning/source_quality.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/learning/trigram_index.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/learning/workflows.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/llm/__init__.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/llm/backbone.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/math/__init__.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/math/ebbinghaus.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/math/fisher.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/math/fisher_quantized.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/math/hopfield.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/math/langevin.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/math/polar_quant.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/math/qjl.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/math/sheaf.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/math/turbo_quant.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/mcp/__init__.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/mcp/_pool_adapter.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/mcp/_stdin_guard.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/mcp/agent_context.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/mcp/cli_fallback.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/mcp/http_transport.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/mcp/resources.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/mcp/shared.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/mcp/tools.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/mcp/tools_code_graph.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/mcp/tools_context.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/mcp/tools_evolution.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/mcp/tools_learning.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/mcp/tools_mesh.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/mcp/tools_optimize.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/mcp/tools_v28.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/mcp/tools_v3.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/mcp/tools_v33.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/mesh/__init__.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/mesh/broker.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/mesh/remote_sync.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/migrations/__init__.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/migrations/v3_4_25_to_v3_4_26.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/optimize/NOTICE +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/optimize/__init__.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/optimize/adapters/__init__.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/optimize/adapters/_agent_registry.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/optimize/adapters/anthropic_adapter.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/optimize/adapters/openai_adapter.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/optimize/adapters/wrap.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/optimize/cache/__init__.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/optimize/cache/boundary_store.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/optimize/cache/context_key.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/optimize/cache/exact.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/optimize/cache/invalidation.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/optimize/cache/key_builder.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/optimize/cache/stampede.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/optimize/compress/__init__.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/optimize/compress/align.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/optimize/compress/ccr.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/optimize/compress/prose_llmlingua.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/optimize/compress/router.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/optimize/config/__init__.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/optimize/config/defaults.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/optimize/config/schema.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/optimize/config/store.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/optimize/metrics/__init__.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/optimize/metrics/counters.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/optimize/metrics/estimator.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/optimize/metrics/exporters.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/optimize/metrics/persistence.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/optimize/proxy/__init__.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/optimize/proxy/_helpers.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/optimize/proxy/anthropic_surface.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/optimize/proxy/capture.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/optimize/proxy/gemini_surface.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/optimize/proxy/lifecycle.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/optimize/proxy/openai_surface.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/optimize/proxy/server.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/optimize/proxy/vertex_surface.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/optimize/storage/__init__.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/optimize/storage/db.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/optimize/storage/schema.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/parameterization/__init__.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/parameterization/pattern_extractor.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/parameterization/pii_filter.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/parameterization/prompt_injector.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/parameterization/prompt_lifecycle.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/parameterization/soft_prompt_generator.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/retrieval/__init__.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/retrieval/agentic.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/retrieval/ann_index.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/retrieval/bm25_channel.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/retrieval/bridge_discovery.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/retrieval/channel_registry.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/retrieval/entity_channel.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/retrieval/forgetting_filter.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/retrieval/fusion.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/retrieval/hopfield_channel.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/retrieval/profile_channel.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/retrieval/quantization_aware_search.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/retrieval/reranker.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/retrieval/scope_policy.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/retrieval/semantic_channel.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/retrieval/spreading_activation.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/retrieval/strategy.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/retrieval/temporal_channel.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/retrieval/vector_store.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/server/__init__.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/server/api.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/server/bandit_loops.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/server/middleware/__init__.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/server/middleware/security_headers.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/server/recall_serializer.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/server/route_mutations.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/server/routes/__init__.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/server/routes/adapters.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/server/routes/agents.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/server/routes/backup.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/server/routes/behavioral.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/server/routes/brain.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/server/routes/compliance.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/server/routes/data_io.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/server/routes/entity.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/server/routes/events.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/server/routes/evolution.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/server/routes/ingest.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/server/routes/insights.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/server/routes/learning.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/server/routes/lifecycle.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/server/routes/memories.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/server/routes/mesh.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/server/routes/optimize.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/server/routes/prewarm.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/server/routes/stats.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/server/routes/tiers.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/server/routes/timeline.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/server/routes/token.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/server/routes/ws.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/server/security_middleware.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/server/ui.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/server/write_identity.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/storage/__init__.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/storage/access_control.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/storage/access_log.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/storage/database.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/storage/embedding_migrator.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/storage/logical_edges.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/storage/migration_v33.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/storage/migrations/M001_add_signal_features_columns.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/storage/migrations/M003_migration_log.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/storage/migrations/M004_cross_platform_sync_log.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/storage/migrations/M005_bandit_tables.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/storage/migrations/M006_action_outcomes_reward.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/storage/migrations/M007_pending_outcomes.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/storage/migrations/M009_model_lineage.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/storage/migrations/M010_evolution_config.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/storage/migrations/M011_archive_and_merge.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/storage/migrations/M012_shadow_observations.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/storage/migrations/M013_bi_temporal_columns.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/storage/migrations/M014_v345_scale_ready.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/storage/migrations/M015_add_pinned_column.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/storage/migrations/M016_add_scope_support.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/storage/migrations/M017_ccq_scope_column.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/storage/migrations/M018_ingestion_operations.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/storage/migrations/M019_derivation_lineage.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/storage/migrations/M020_model_state_integrity.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/storage/migrations/__init__.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/storage/migrations.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/storage/models.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/storage/quantized_store.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/storage/schema.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/storage/schema_code_graph.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/storage/schema_v32.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/storage/schema_v3410.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/storage/schema_v3411.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/storage/schema_v343.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/storage/schema_v345.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/storage/schema_v347.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/storage/sqlite_vectors.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/storage/v2_migrator.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/trust/__init__.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/trust/gate.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/trust/provenance.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/trust/scorer.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/trust/signals.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/ui/css/brain.css +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/ui/css/legacy-dashboard.css +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/ui/css/neural-glass.css +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/ui/favicon.svg +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/ui/js/agents.js +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/ui/js/brain.js +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/ui/js/clusters.js +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/ui/js/compliance.js +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/ui/js/core.js +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/ui/js/dashboard.js +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/ui/js/events.js +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/ui/js/fact-detail.js +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/ui/js/feedback.js +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/ui/js/graph-event-bus.js +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/ui/js/graph-filters.js +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/ui/js/graph-ui.js +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/ui/js/ide-status.js +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/ui/js/init.js +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/ui/js/knowledge-graph.js +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/ui/js/lifecycle.js +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/ui/js/math-health.js +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/ui/js/memories.js +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/ui/js/memory-timeline.js +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/ui/js/modal.js +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/ui/js/ng-entities.js +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/ui/js/ng-health.js +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/ui/js/ng-ingestion.js +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/ui/js/ng-mesh.js +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/ui/js/ng-shell.js +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/ui/js/ng-skills.js +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/ui/js/optimize.js +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/ui/js/quick-actions.js +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/ui/js/recall-lab.js +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/ui/js/search.js +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/ui/js/settings.js +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/ui/js/timeline.js +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/ui/js/trust-dashboard.js +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/ui/vendor/bootstrap-icons/bootstrap-icons.css +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/ui/vendor/bootstrap-icons/fonts/bootstrap-icons.woff +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/ui/vendor/bootstrap-icons/fonts/bootstrap-icons.woff2 +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/ui/vendor/bootstrap.bundle.min.js +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/ui/vendor/bootstrap.min.css +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/ui/vendor/d3.v7.min.js +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/ui/vendor/graphology-library.min.js +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/ui/vendor/graphology.umd.min.js +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/ui/vendor/inter-ui/inter-variable.min.css +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/ui/vendor/inter-ui/variable/InterVariable-Italic.woff2 +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/ui/vendor/inter-ui/variable/InterVariable.woff2 +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/ui/vendor/sigma.min.js +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/vector/__init__.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory.egg-info/dependency_links.txt +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory.egg-info/entry_points.txt +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory.egg-info/top_level.txt +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/tests/test_auto_hooks.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/tests/test_before_web_hook.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/tests/test_behavioral_full.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/tests/test_claude_hooks.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/tests/test_cli_core.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/tests/test_cli_json.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/tests/test_cli_v33.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/tests/test_compliance_full.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/tests/test_config_system.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/tests/test_dashboard_preserve_embedding.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/tests/test_engine_hooks.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/tests/test_event_bus.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/tests/test_features.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/tests/test_final_locomo_mini.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/tests/test_graph_integrity.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/tests/test_hook_handlers.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/tests/test_ide_connector.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/tests/test_infra.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/tests/test_injection.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/tests/test_learning_advanced.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/tests/test_learning_collectors.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/tests/test_llm_provider.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/tests/test_mcp_server.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/tests/test_migration.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/tests/test_mode_switch_preservation.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/tests/test_post_install.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/tests/test_ranker.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/tests/test_resource_lifecycle.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/tests/test_topic_shift_hook.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/tests/test_trust_full.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/tests/test_v3_api.py +0 -0
- {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/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.7
|
|
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
|
|
@@ -29,12 +29,12 @@ Requires-Dist: httpx==0.28.1
|
|
|
29
29
|
Requires-Dist: numpy==2.4.4
|
|
30
30
|
Requires-Dist: scipy==1.17.1
|
|
31
31
|
Requires-Dist: networkx==3.6.1
|
|
32
|
-
Requires-Dist: mcp==1.
|
|
32
|
+
Requires-Dist: mcp==1.28.1
|
|
33
33
|
Requires-Dist: python-dateutil==2.9.0.post0
|
|
34
34
|
Requires-Dist: rank-bm25==0.2.2
|
|
35
35
|
Requires-Dist: vadersentiment==3.3.2
|
|
36
36
|
Requires-Dist: einops==0.8.2
|
|
37
|
-
Requires-Dist: fastapi[all]==0.
|
|
37
|
+
Requires-Dist: fastapi[all]==0.139.2
|
|
38
38
|
Requires-Dist: uvicorn==0.46.0
|
|
39
39
|
Requires-Dist: websockets==16.0
|
|
40
40
|
Requires-Dist: zeroconf>=0.140
|
|
@@ -48,12 +48,12 @@ Requires-Dist: watchdog==5.0.3
|
|
|
48
48
|
Requires-Dist: psutil==7.2.2
|
|
49
49
|
Requires-Dist: structlog==25.5.0
|
|
50
50
|
Requires-Dist: portalocker==3.2.0
|
|
51
|
-
Requires-Dist: cryptography==
|
|
51
|
+
Requires-Dist: cryptography==48.0.1
|
|
52
52
|
Requires-Dist: sentence-transformers==5.3.0
|
|
53
53
|
Requires-Dist: optimum==2.1.0
|
|
54
54
|
Requires-Dist: onnxruntime==1.24.4
|
|
55
|
-
Requires-Dist: transformers==
|
|
56
|
-
Requires-Dist: huggingface_hub==
|
|
55
|
+
Requires-Dist: transformers==5.5.4
|
|
56
|
+
Requires-Dist: huggingface_hub==1.5.0
|
|
57
57
|
Requires-Dist: torch==2.11.0
|
|
58
58
|
Requires-Dist: scikit-learn==1.8.0
|
|
59
59
|
Requires-Dist: sqlite-vec==0.1.9
|
|
@@ -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.7</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.7</code> — <strong>Daemon-aware profile isolation, atomic runtime configuration, and verified migration integrity.</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.7</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.7</code> — <strong>Daemon-aware profile isolation, atomic runtime configuration, and verified migration integrity.</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
|
|
|
@@ -142,9 +142,10 @@ once you have the `fact_id` for full content.
|
|
|
142
142
|
|
|
143
143
|
## How multi-channel retrieval works
|
|
144
144
|
|
|
145
|
-
`recall` runs
|
|
146
|
-
BM25, temporal recency, and
|
|
147
|
-
Rank Fusion (RRF)
|
|
145
|
+
`recall` runs five candidate producers in parallel — semantic vector similarity,
|
|
146
|
+
lexical BM25, temporal recency, spreading activation, and Hopfield — then fuses
|
|
147
|
+
them with Reciprocal Rank Fusion (RRF), applies a reranker, and layers an
|
|
148
|
+
optional entity-graph post-fusion score enhancement. The `channel_weights` field in the
|
|
148
149
|
response shows how each channel contributed for that query. Weights adapt over
|
|
149
150
|
time based on engagement signals attributed via `session_id`.
|
|
150
151
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "superlocalmemory"
|
|
3
|
-
version = "3.7.
|
|
3
|
+
version = "3.7.7"
|
|
4
4
|
description = "Local-first agent memory with auditable hybrid retrieval"
|
|
5
5
|
readme = "README.md"
|
|
6
6
|
license = "AGPL-3.0-or-later"
|
|
@@ -37,12 +37,12 @@ dependencies = [
|
|
|
37
37
|
"numpy==2.4.4",
|
|
38
38
|
"scipy==1.17.1",
|
|
39
39
|
"networkx==3.6.1",
|
|
40
|
-
"mcp==1.
|
|
40
|
+
"mcp==1.28.1",
|
|
41
41
|
"python-dateutil==2.9.0.post0",
|
|
42
42
|
"rank-bm25==0.2.2",
|
|
43
43
|
"vadersentiment==3.3.2",
|
|
44
44
|
"einops==0.8.2",
|
|
45
|
-
"fastapi[all]==0.
|
|
45
|
+
"fastapi[all]==0.139.2",
|
|
46
46
|
"uvicorn==0.46.0",
|
|
47
47
|
"websockets==16.0",
|
|
48
48
|
"zeroconf>=0.140",
|
|
@@ -59,7 +59,7 @@ dependencies = [
|
|
|
59
59
|
"psutil==7.2.2",
|
|
60
60
|
"structlog==25.5.0",
|
|
61
61
|
"portalocker==3.2.0",
|
|
62
|
-
"cryptography==
|
|
62
|
+
"cryptography==48.0.1",
|
|
63
63
|
# Semantic search + cross-encoder reranker. Do NOT use
|
|
64
64
|
# sentence-transformers[onnx] — its extras pull optimum which
|
|
65
65
|
# overrides the sentence-transformers pin via transitive deps.
|
|
@@ -67,8 +67,8 @@ dependencies = [
|
|
|
67
67
|
"sentence-transformers==5.3.0",
|
|
68
68
|
"optimum==2.1.0",
|
|
69
69
|
"onnxruntime==1.24.4",
|
|
70
|
-
"transformers==
|
|
71
|
-
"huggingface_hub==
|
|
70
|
+
"transformers==5.5.4",
|
|
71
|
+
"huggingface_hub==1.5.0",
|
|
72
72
|
"torch==2.11.0",
|
|
73
73
|
"scikit-learn==1.8.0",
|
|
74
74
|
# Vector KNN extension for the semantic channel.
|
|
@@ -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.7"
|
|
36
36
|
|
|
37
37
|
_REQUIRED_VERSIONS = {
|
|
38
38
|
"sentence_transformers": "5.3.0",
|
|
@@ -612,6 +612,8 @@ def cmd_config(args: Namespace) -> None:
|
|
|
612
612
|
"evolution.enabled", "evolution.backend", "evolution.max_evolutions_per_cycle",
|
|
613
613
|
"mesh_enabled", "daemon_idle_timeout", "entity_compilation_enabled",
|
|
614
614
|
"graph_backend", "vector_backend", "scale_engine_state",
|
|
615
|
+
"scope.default_scope", "scope.recall_include_global",
|
|
616
|
+
"scope.recall_include_shared",
|
|
615
617
|
}
|
|
616
618
|
if key not in _ALLOWED_CONFIG_KEYS:
|
|
617
619
|
if use_json:
|
|
@@ -650,6 +652,60 @@ def cmd_config(args: Namespace) -> None:
|
|
|
650
652
|
except ValueError:
|
|
651
653
|
parsed_value = value
|
|
652
654
|
|
|
655
|
+
if key == "scope.default_scope" and parsed_value not in {
|
|
656
|
+
"personal", "shared", "global",
|
|
657
|
+
}:
|
|
658
|
+
message = "scope.default_scope must be personal, shared, or global"
|
|
659
|
+
if use_json:
|
|
660
|
+
from superlocalmemory.cli.json_output import json_print
|
|
661
|
+
json_print("config", error={
|
|
662
|
+
"code": "INVALID_VALUE", "message": message,
|
|
663
|
+
})
|
|
664
|
+
else:
|
|
665
|
+
print(f"Error: {message}")
|
|
666
|
+
sys.exit(1)
|
|
667
|
+
if key in {
|
|
668
|
+
"scope.recall_include_global", "scope.recall_include_shared",
|
|
669
|
+
} and not isinstance(parsed_value, bool):
|
|
670
|
+
message = f"{key} must be true or false"
|
|
671
|
+
if use_json:
|
|
672
|
+
from superlocalmemory.cli.json_output import json_print
|
|
673
|
+
json_print("config", error={
|
|
674
|
+
"code": "INVALID_VALUE", "message": message,
|
|
675
|
+
})
|
|
676
|
+
else:
|
|
677
|
+
print(f"Error: {message}")
|
|
678
|
+
sys.exit(1)
|
|
679
|
+
|
|
680
|
+
if key.startswith("scope."):
|
|
681
|
+
from superlocalmemory.cli.daemon import daemon_request, is_daemon_running
|
|
682
|
+
|
|
683
|
+
if is_daemon_running():
|
|
684
|
+
field = key.split(".", 1)[1]
|
|
685
|
+
result = daemon_request(
|
|
686
|
+
"PUT", "/api/v3/scope/config", {field: parsed_value},
|
|
687
|
+
)
|
|
688
|
+
if not isinstance(result, dict) or result.get("success") is not True:
|
|
689
|
+
message = "resident daemon rejected the scope configuration"
|
|
690
|
+
if use_json:
|
|
691
|
+
from superlocalmemory.cli.json_output import json_print
|
|
692
|
+
json_print("config", error={
|
|
693
|
+
"code": "CONFIG_APPLY_FAILED", "message": message,
|
|
694
|
+
})
|
|
695
|
+
else:
|
|
696
|
+
print(f"Error: {message}")
|
|
697
|
+
sys.exit(1)
|
|
698
|
+
old_value = None
|
|
699
|
+
if use_json:
|
|
700
|
+
from superlocalmemory.cli.json_output import json_print
|
|
701
|
+
json_print("config", data={
|
|
702
|
+
"key": key, "old_value": old_value,
|
|
703
|
+
"new_value": result.get(field), "runtime": "daemon",
|
|
704
|
+
})
|
|
705
|
+
else:
|
|
706
|
+
print(f"{key}: applied to resident daemon -> {result.get(field)}")
|
|
707
|
+
return
|
|
708
|
+
|
|
653
709
|
# Set via dot-notation (e.g. "evolution.enabled" -> cfg["evolution"]["enabled"])
|
|
654
710
|
parts = key.split(".")
|
|
655
711
|
node = cfg
|
|
@@ -1579,10 +1635,47 @@ def cmd_status(args: Namespace) -> None:
|
|
|
1579
1635
|
from superlocalmemory.core.config import SLMConfig
|
|
1580
1636
|
|
|
1581
1637
|
config = SLMConfig.load()
|
|
1638
|
+
daemon_status = None
|
|
1639
|
+
try:
|
|
1640
|
+
from superlocalmemory.cli.daemon import (
|
|
1641
|
+
daemon_request,
|
|
1642
|
+
is_daemon_running,
|
|
1643
|
+
)
|
|
1644
|
+
|
|
1645
|
+
if is_daemon_running():
|
|
1646
|
+
candidate = daemon_request("GET", "/status")
|
|
1647
|
+
if isinstance(candidate, dict) and candidate.get("profile"):
|
|
1648
|
+
daemon_status = candidate
|
|
1649
|
+
except Exception:
|
|
1650
|
+
logger.debug(
|
|
1651
|
+
"cmd_status: daemon runtime status unavailable; using offline view",
|
|
1652
|
+
exc_info=True,
|
|
1653
|
+
)
|
|
1582
1654
|
|
|
1583
1655
|
if getattr(args, 'json', False):
|
|
1584
1656
|
from superlocalmemory.cli.json_output import json_print
|
|
1585
1657
|
|
|
1658
|
+
if daemon_status is not None:
|
|
1659
|
+
data = {
|
|
1660
|
+
"mode": str(daemon_status.get("mode", "unknown")).upper(),
|
|
1661
|
+
"provider": daemon_status.get("provider", "none"),
|
|
1662
|
+
"profile": daemon_status["profile"],
|
|
1663
|
+
"base_dir": daemon_status.get("base_dir", str(config.base_dir)),
|
|
1664
|
+
"db_path": daemon_status.get("db_path", str(config.db_path)),
|
|
1665
|
+
"db_size_mb": float(daemon_status.get("db_size_mb", 0.0)),
|
|
1666
|
+
"fact_count": int(daemon_status.get("fact_count", 0)),
|
|
1667
|
+
"entity_count": int(daemon_status.get("entity_count", 0)),
|
|
1668
|
+
"edge_count": int(daemon_status.get("edge_count", 0)),
|
|
1669
|
+
"profile_generation": int(
|
|
1670
|
+
daemon_status.get("profile_generation", 0)
|
|
1671
|
+
),
|
|
1672
|
+
}
|
|
1673
|
+
json_print("status", data=data, next_actions=[
|
|
1674
|
+
{"command": "slm health --json", "description": "Check math layer health"},
|
|
1675
|
+
{"command": "slm list --json", "description": "List recent memories"},
|
|
1676
|
+
])
|
|
1677
|
+
return
|
|
1678
|
+
|
|
1586
1679
|
# WP-02 D8: canonical key set — db_size_mb always present (0.0 if absent).
|
|
1587
1680
|
db_size_mb = 0.0
|
|
1588
1681
|
if config.db_path.exists():
|
|
@@ -1635,6 +1728,7 @@ def cmd_status(args: Namespace) -> None:
|
|
|
1635
1728
|
"fact_count": fact_count,
|
|
1636
1729
|
"entity_count": entity_count,
|
|
1637
1730
|
"edge_count": edge_count,
|
|
1731
|
+
"profile_generation": 0,
|
|
1638
1732
|
}
|
|
1639
1733
|
json_print("status", data=data, next_actions=[
|
|
1640
1734
|
{"command": "slm health --json", "description": "Check math layer health"},
|
|
@@ -1645,6 +1739,10 @@ def cmd_status(args: Namespace) -> None:
|
|
|
1645
1739
|
print("SuperLocalMemory V3")
|
|
1646
1740
|
print(f" Mode: {config.mode.value.upper()}")
|
|
1647
1741
|
print(f" Provider: {config.llm.provider or 'none'}")
|
|
1742
|
+
print(
|
|
1743
|
+
f" Profile: "
|
|
1744
|
+
f"{daemon_status.get('profile') if daemon_status else config.active_profile}"
|
|
1745
|
+
)
|
|
1648
1746
|
print(f" Base dir: {config.base_dir}")
|
|
1649
1747
|
print(f" Database: {config.db_path}")
|
|
1650
1748
|
if config.db_path.exists():
|
|
@@ -2522,6 +2620,42 @@ def cmd_dashboard(args: Namespace) -> None:
|
|
|
2522
2620
|
# -- Profiles (supports --json) -------------------------------------------
|
|
2523
2621
|
|
|
2524
2622
|
|
|
2623
|
+
def _switch_profile_runtime(config, profile_name: str) -> dict:
|
|
2624
|
+
"""Switch through the resident daemon, or persist an offline fallback."""
|
|
2625
|
+
from superlocalmemory.cli.daemon import daemon_request, is_daemon_running
|
|
2626
|
+
|
|
2627
|
+
if is_daemon_running():
|
|
2628
|
+
result = daemon_request(
|
|
2629
|
+
"POST",
|
|
2630
|
+
f"/api/profiles/{profile_name}/switch",
|
|
2631
|
+
)
|
|
2632
|
+
if not result or not result.get("success"):
|
|
2633
|
+
raise RuntimeError(
|
|
2634
|
+
"resident daemon did not acknowledge the profile switch"
|
|
2635
|
+
)
|
|
2636
|
+
acknowledged = str(result.get("active_profile", ""))
|
|
2637
|
+
if acknowledged != profile_name:
|
|
2638
|
+
raise RuntimeError(
|
|
2639
|
+
"resident daemon acknowledged a different active profile"
|
|
2640
|
+
)
|
|
2641
|
+
return {
|
|
2642
|
+
"action": "switched",
|
|
2643
|
+
"profile": acknowledged,
|
|
2644
|
+
"generation": int(result.get("generation", 0)),
|
|
2645
|
+
"runtime": "daemon",
|
|
2646
|
+
}
|
|
2647
|
+
|
|
2648
|
+
from superlocalmemory.server.profile_runtime import persist_active_profile
|
|
2649
|
+
|
|
2650
|
+
persist_active_profile(profile_name)
|
|
2651
|
+
config.active_profile = profile_name
|
|
2652
|
+
return {
|
|
2653
|
+
"action": "switched",
|
|
2654
|
+
"profile": profile_name,
|
|
2655
|
+
"runtime": "offline",
|
|
2656
|
+
}
|
|
2657
|
+
|
|
2658
|
+
|
|
2525
2659
|
def cmd_profile(args: Namespace) -> None:
|
|
2526
2660
|
"""Profile management (list, switch, create).
|
|
2527
2661
|
|
|
@@ -2532,7 +2666,7 @@ def cmd_profile(args: Namespace) -> None:
|
|
|
2532
2666
|
from superlocalmemory.storage.database import DatabaseManager
|
|
2533
2667
|
from superlocalmemory.storage import schema
|
|
2534
2668
|
from superlocalmemory.server.routes.helpers import (
|
|
2535
|
-
ensure_profile_in_json,
|
|
2669
|
+
ensure_profile_in_json,
|
|
2536
2670
|
)
|
|
2537
2671
|
|
|
2538
2672
|
config = SLMConfig.load()
|
|
@@ -2552,10 +2686,25 @@ def cmd_profile(args: Namespace) -> None:
|
|
|
2552
2686
|
{"command": "slm profile switch <name> --json", "description": "Switch profile"},
|
|
2553
2687
|
])
|
|
2554
2688
|
elif args.action == "switch":
|
|
2555
|
-
|
|
2556
|
-
|
|
2557
|
-
|
|
2558
|
-
|
|
2689
|
+
rows = db.execute(
|
|
2690
|
+
"SELECT 1 FROM profiles WHERE profile_id = ?",
|
|
2691
|
+
(args.name,),
|
|
2692
|
+
)
|
|
2693
|
+
if not rows:
|
|
2694
|
+
json_print("profile", error={
|
|
2695
|
+
"code": "PROFILE_NOT_FOUND",
|
|
2696
|
+
"message": f"Profile '{args.name}' does not exist.",
|
|
2697
|
+
})
|
|
2698
|
+
sys.exit(1)
|
|
2699
|
+
try:
|
|
2700
|
+
result = _switch_profile_runtime(config, args.name)
|
|
2701
|
+
except Exception as exc:
|
|
2702
|
+
json_print("profile", error={
|
|
2703
|
+
"code": "PROFILE_SWITCH_FAILED",
|
|
2704
|
+
"message": str(exc),
|
|
2705
|
+
})
|
|
2706
|
+
sys.exit(1)
|
|
2707
|
+
json_print("profile", data=result)
|
|
2559
2708
|
elif args.action == "create":
|
|
2560
2709
|
db.execute(
|
|
2561
2710
|
"INSERT OR IGNORE INTO profiles (profile_id, name) VALUES (?, ?)",
|
|
@@ -2576,10 +2725,21 @@ def cmd_profile(args: Namespace) -> None:
|
|
|
2576
2725
|
d = dict(r)
|
|
2577
2726
|
print(f" - {d['profile_id']}: {d.get('name', '')}")
|
|
2578
2727
|
elif args.action == "switch":
|
|
2579
|
-
|
|
2580
|
-
|
|
2581
|
-
|
|
2582
|
-
|
|
2728
|
+
rows = db.execute(
|
|
2729
|
+
"SELECT 1 FROM profiles WHERE profile_id = ?",
|
|
2730
|
+
(args.name,),
|
|
2731
|
+
)
|
|
2732
|
+
if not rows:
|
|
2733
|
+
print(f"Profile '{args.name}' does not exist.", file=sys.stderr)
|
|
2734
|
+
sys.exit(1)
|
|
2735
|
+
try:
|
|
2736
|
+
result = _switch_profile_runtime(config, args.name)
|
|
2737
|
+
except Exception as exc:
|
|
2738
|
+
print(f"Profile switch failed: {exc}", file=sys.stderr)
|
|
2739
|
+
sys.exit(1)
|
|
2740
|
+
generation = result.get("generation")
|
|
2741
|
+
suffix = f" (generation {generation})" if generation is not None else ""
|
|
2742
|
+
print(f"Switched to profile: {args.name}{suffix}")
|
|
2583
2743
|
elif args.action == "create":
|
|
2584
2744
|
db.execute(
|
|
2585
2745
|
"INSERT OR IGNORE INTO profiles (profile_id, name) VALUES (?, ?)",
|
|
@@ -22,6 +22,7 @@ import subprocess
|
|
|
22
22
|
import sys
|
|
23
23
|
import time
|
|
24
24
|
from pathlib import Path
|
|
25
|
+
from typing import Any
|
|
25
26
|
|
|
26
27
|
|
|
27
28
|
# ---------------------------------------------------------------------------
|
|
@@ -227,6 +228,46 @@ def _download_compressor(model_name: str) -> bool:
|
|
|
227
228
|
return False
|
|
228
229
|
|
|
229
230
|
|
|
231
|
+
# ---------------------------------------------------------------------------
|
|
232
|
+
# Embedding-provider detection (v3.7.6 #72)
|
|
233
|
+
# ---------------------------------------------------------------------------
|
|
234
|
+
|
|
235
|
+
def _embedding_is_remote(config: Any) -> bool:
|
|
236
|
+
"""True when embeddings come from a remote/OpenAI-compatible endpoint.
|
|
237
|
+
|
|
238
|
+
In that case the local sentence-transformers download (768d nomic) is
|
|
239
|
+
unnecessary and would only waste bandwidth/disk (#72). Detection is by
|
|
240
|
+
provider name or the presence of a configured HTTP endpoint.
|
|
241
|
+
"""
|
|
242
|
+
emb = getattr(config, "embedding", None)
|
|
243
|
+
if emb is None:
|
|
244
|
+
return False
|
|
245
|
+
provider = (getattr(emb, "provider", "") or "").strip().lower()
|
|
246
|
+
endpoint = (
|
|
247
|
+
getattr(emb, "api_endpoint", "")
|
|
248
|
+
or getattr(emb, "base_url", "")
|
|
249
|
+
or ""
|
|
250
|
+
)
|
|
251
|
+
return provider in ("openai", "openai-compatible", "remote") or bool(endpoint)
|
|
252
|
+
|
|
253
|
+
|
|
254
|
+
def _build_wizard_config(mode):
|
|
255
|
+
"""Apply mode-owned presets without erasing existing user-owned blocks."""
|
|
256
|
+
from superlocalmemory.core.config import SLMConfig
|
|
257
|
+
from superlocalmemory.infra.data_root import state_path
|
|
258
|
+
|
|
259
|
+
template = SLMConfig.for_mode(mode)
|
|
260
|
+
if not state_path("config.json").exists():
|
|
261
|
+
return template
|
|
262
|
+
existing = SLMConfig.load()
|
|
263
|
+
existing.mode = mode
|
|
264
|
+
existing.llm = template.llm
|
|
265
|
+
existing.retrieval = template.retrieval
|
|
266
|
+
existing.math = template.math
|
|
267
|
+
existing.channel_weights = template.channel_weights
|
|
268
|
+
return existing
|
|
269
|
+
|
|
270
|
+
|
|
230
271
|
# ---------------------------------------------------------------------------
|
|
231
272
|
# Verification
|
|
232
273
|
# ---------------------------------------------------------------------------
|
|
@@ -373,7 +414,7 @@ def run_wizard(auto: bool = False) -> None:
|
|
|
373
414
|
from superlocalmemory.storage.models import Mode
|
|
374
415
|
|
|
375
416
|
mode_map = {"a": Mode.A, "b": Mode.B, "c": Mode.C}
|
|
376
|
-
config =
|
|
417
|
+
config = _build_wizard_config(mode_map[choice])
|
|
377
418
|
|
|
378
419
|
# -- Multi-scope (shared memory) opt-in — v3.6.15 --
|
|
379
420
|
# OFF by default: your memories stay private to this profile (3.6.14 behaviour).
|
|
@@ -455,7 +496,17 @@ def run_wizard(auto: bool = False) -> None:
|
|
|
455
496
|
print()
|
|
456
497
|
print("─── Step 4/10: Download Embedding Model ───")
|
|
457
498
|
|
|
458
|
-
if
|
|
499
|
+
if _embedding_is_remote(config):
|
|
500
|
+
# v3.7.6 (#72): a remote/OpenAI-compatible embedding endpoint supplies
|
|
501
|
+
# its own vectors (any width, e.g. 1024d Qwen3-Embedding), so pulling the
|
|
502
|
+
# local 768d nomic model would be wasted bandwidth and could imply a
|
|
503
|
+
# dimension that does not match the endpoint.
|
|
504
|
+
emb = config.embedding
|
|
505
|
+
print(" ✓ Skipped — remote/OpenAI-compatible embedding endpoint configured")
|
|
506
|
+
print(f" provider={getattr(emb, 'provider', '?')}, "
|
|
507
|
+
f"dimension={getattr(emb, 'dimension', '?')}")
|
|
508
|
+
print(" No local embedding model needed.")
|
|
509
|
+
elif not st_ok:
|
|
459
510
|
print(" ⚠ Skipped (sentence-transformers not installed)")
|
|
460
511
|
print(" Models will download on first use.")
|
|
461
512
|
else:
|
{superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/core/backend_orchestrator.py
RENAMED
|
@@ -354,7 +354,12 @@ class BackendOrchestrator:
|
|
|
354
354
|
try:
|
|
355
355
|
from superlocalmemory.vector.lancedb_backend import LanceDBVectorBackend
|
|
356
356
|
lance_path = self._data_dir / "lance"
|
|
357
|
-
|
|
357
|
+
# v3.7.6 (#72): honor the configured embedding width instead of the
|
|
358
|
+
# hardcoded 768d, so custom endpoints (e.g. 1024d Qwen3-Embedding) work.
|
|
359
|
+
dimension = getattr(
|
|
360
|
+
getattr(self._config, "embedding", None), "dimension", None
|
|
361
|
+
)
|
|
362
|
+
self._lancedb = LanceDBVectorBackend(str(lance_path), dimension=dimension)
|
|
358
363
|
self._update_status("lancedb", "not_initialized")
|
|
359
364
|
logger.info("LanceDB initialized at %s", lance_path)
|
|
360
365
|
except Exception as exc:
|
|
@@ -258,7 +258,7 @@ class RetrievalConfig:
|
|
|
258
258
|
# Reranking (V3.3.2: ONNX backend enabled for all modes)
|
|
259
259
|
# V3.4.2: Tested gte-reranker-modernbert-base (8K context) — REGRESSED
|
|
260
260
|
# LoCoMo from 68.4% to 64.1%. Reverted to MiniLM-L-12-v2. The 512-token
|
|
261
|
-
# limit is acceptable because SLM's
|
|
261
|
+
# limit is acceptable because SLM's multi-producer retrieval pre-filters
|
|
262
262
|
# relevant facts before reranking. See bench-v342-locomo.md.
|
|
263
263
|
use_cross_encoder: bool = True
|
|
264
264
|
cross_encoder_model: str = "cross-encoder/ms-marco-MiniLM-L-12-v2"
|
|
@@ -51,8 +51,9 @@ class MemoryEngine:
|
|
|
51
51
|
"""Main orchestrator for the SuperLocalMemory V3 memory system.
|
|
52
52
|
|
|
53
53
|
Wires encoding (fact extraction, entity resolution, graph building,
|
|
54
|
-
consolidation) with retrieval (
|
|
55
|
-
reranking) and all supporting
|
|
54
|
+
consolidation) with retrieval (five candidate producers -> RRF fusion,
|
|
55
|
+
reranking, entity-graph post-fusion enhancement) and all supporting
|
|
56
|
+
layers (trust, learning, compliance).
|
|
56
57
|
|
|
57
58
|
Usage::
|
|
58
59
|
|
{superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/core/engine_wiring.py
RENAMED
|
@@ -500,7 +500,9 @@ def init_retrieval(
|
|
|
500
500
|
trust_scorer: Any,
|
|
501
501
|
vector_store: Any = None,
|
|
502
502
|
) -> Any:
|
|
503
|
-
"""Create the RetrievalEngine
|
|
503
|
+
"""Create the RetrievalEngine — five candidate producers (semantic, BM25,
|
|
504
|
+
temporal, spreading_activation, hopfield) plus the entity graph used for
|
|
505
|
+
post-fusion score enhancement. Returns it."""
|
|
504
506
|
from superlocalmemory.retrieval.engine import RetrievalEngine
|
|
505
507
|
from superlocalmemory.retrieval.semantic_channel import SemanticChannel
|
|
506
508
|
from superlocalmemory.retrieval.bm25_channel import BM25Channel
|
|
@@ -487,7 +487,15 @@ class ScaleEngineManager:
|
|
|
487
487
|
def _real_backend_factory(self, cozo_dir: Path, lance_dir: Path) -> tuple[Any, Any]:
|
|
488
488
|
from superlocalmemory.graph.cozo_backend import CozoDBGraphBackend
|
|
489
489
|
from superlocalmemory.vector.lancedb_backend import LanceDBVectorBackend
|
|
490
|
-
|
|
490
|
+
# v3.7.6 (#72): promote the configured embedding width into the new
|
|
491
|
+
# LanceDB store so a 1024d (or other) custom endpoint survives promotion.
|
|
492
|
+
dimension = getattr(
|
|
493
|
+
getattr(self.config, "embedding", None), "dimension", None
|
|
494
|
+
)
|
|
495
|
+
return (
|
|
496
|
+
CozoDBGraphBackend(str(cozo_dir / "graph")),
|
|
497
|
+
LanceDBVectorBackend(str(lance_dir), dimension=dimension),
|
|
498
|
+
)
|
|
491
499
|
|
|
492
500
|
def _readonly_connection(self) -> sqlite3.Connection:
|
|
493
501
|
conn = sqlite3.connect(f"file:{self.db_path}?mode=ro", uri=True)
|
{superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/core/store_pipeline.py
RENAMED
|
@@ -310,7 +310,7 @@ def run_store(
|
|
|
310
310
|
# that fact extraction may abstract away (dates, names, specifics).
|
|
311
311
|
# This ensures BM25 and semantic search can always find the original text.
|
|
312
312
|
# V3.3.12: Extract entities from verbatim content so entity channel + temporal
|
|
313
|
-
# channel can find it (was entities=[] which
|
|
313
|
+
# channel can find it (was entities=[] which blinded the entity-graph and temporal signals).
|
|
314
314
|
# V3.3.20: Stronger verbatim filter — skip greetings, filler, short phrases.
|
|
315
315
|
# Verbatim facts with just "Hey! How are you?" dilute embeddings and add noise.
|
|
316
316
|
_MIN_VERBATIM_WORDS = 8
|
{superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/hooks/before_web_hook.py
RENAMED
|
@@ -17,7 +17,7 @@ the local memories before committing to the external call.
|
|
|
17
17
|
|
|
18
18
|
PERFORMANCE
|
|
19
19
|
===========
|
|
20
|
-
Cost: ~500-800ms warm (full
|
|
20
|
+
Cost: ~500-800ms warm (full recall via SLM daemon). Fires only on
|
|
21
21
|
WebSearch and WebFetch (5-20× per typical session), so per-session overhead
|
|
22
22
|
is ~5-15s in exchange for grounded answers. NOT suitable for UserPromptSubmit
|
|
23
23
|
(too frequent — would be a perf disaster).
|
{superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/hooks/claude_code_hooks.py
RENAMED
|
@@ -267,7 +267,7 @@ def _hook_definitions(include_gate: bool = False) -> dict[str, list]:
|
|
|
267
267
|
}
|
|
268
268
|
|
|
269
269
|
# v3.4.43 — default PreToolUse entry: pre-web recall on WebSearch/WebFetch.
|
|
270
|
-
# Fires `slm hook before_web` which runs a
|
|
270
|
+
# Fires `slm hook before_web` which runs a recall on the search
|
|
271
271
|
# query/URL and injects results as a system-reminder BEFORE the web call.
|
|
272
272
|
# Encourages Claude to consider local memories before paying for new web
|
|
273
273
|
# research. Independent of `include_gate` — this is value-add, not gating.
|
{superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/infra/auth_middleware.py
RENAMED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
# Copyright (c) 2026 Varun Pratap Bhardwaj / Qualixar
|
|
2
2
|
# Licensed under AGPL-3.0-or-later - see LICENSE file
|
|
3
3
|
# Part of SuperLocalMemory V3 | https://qualixar.com | https://varunpratap.com
|
|
4
|
-
"""
|
|
4
|
+
"""API-key primitives used by the unified identity boundary.
|
|
5
5
|
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
6
|
+
A configured key authorizes remote callers that present ``X-SLM-API-Key``.
|
|
7
|
+
The unified daemon separately trusts exact-process capabilities, the
|
|
8
|
+
same-origin dashboard install token, and uncredentialed loopback peers as the
|
|
9
|
+
local OS-user boundary. Read endpoints remain open for backward compatibility.
|
|
10
10
|
|
|
11
11
|
V3 change: base directory moved from ``~/.claude-memory/`` to
|
|
12
12
|
``~/.superlocalmemory/``.
|
|
@@ -17,10 +17,8 @@ engine state exists in exactly one process: the daemon.
|
|
|
17
17
|
"""
|
|
18
18
|
from __future__ import annotations
|
|
19
19
|
|
|
20
|
-
import json
|
|
21
20
|
import logging
|
|
22
21
|
import urllib.parse
|
|
23
|
-
import urllib.request
|
|
24
22
|
from typing import Any
|
|
25
23
|
|
|
26
24
|
logger = logging.getLogger(__name__)
|
|
@@ -40,9 +38,6 @@ class DaemonPoolProxy:
|
|
|
40
38
|
self._port = port
|
|
41
39
|
self._timeout = timeout_s
|
|
42
40
|
|
|
43
|
-
def _url(self, path: str) -> str:
|
|
44
|
-
return f"http://127.0.0.1:{self._port}{path}"
|
|
45
|
-
|
|
46
41
|
def recall(
|
|
47
42
|
self, query: str, limit: int = 10, session_id: str = "",
|
|
48
43
|
fast: bool = False,
|
|
@@ -64,15 +59,18 @@ class DaemonPoolProxy:
|
|
|
64
59
|
_params["include_shared"] = "true" if include_shared else "false"
|
|
65
60
|
params = urllib.parse.urlencode(_params)
|
|
66
61
|
try:
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
62
|
+
from superlocalmemory.cli.daemon import daemon_request
|
|
63
|
+
|
|
64
|
+
data = daemon_request(
|
|
65
|
+
"GET",
|
|
66
|
+
f"/recall?{params}",
|
|
67
|
+
timeout_seconds=self._timeout,
|
|
68
|
+
)
|
|
71
69
|
except Exception as exc:
|
|
72
70
|
logger.warning("daemon /recall failed: %s", exc)
|
|
73
71
|
return {"ok": False, "error": str(exc)}
|
|
74
72
|
if not isinstance(data, dict):
|
|
75
|
-
return {"ok": False, "error": "
|
|
73
|
+
return {"ok": False, "error": "owned daemon unavailable"}
|
|
76
74
|
data.setdefault("ok", True)
|
|
77
75
|
return data
|
|
78
76
|
|
|
@@ -89,6 +89,7 @@ _ESSENTIAL_TOOLS: set[str] = {
|
|
|
89
89
|
# Core memory operations (8)
|
|
90
90
|
"remember", "recall", "search", "fetch",
|
|
91
91
|
"list_recent", "delete_memory", "update_memory", "get_status",
|
|
92
|
+
"switch_profile",
|
|
92
93
|
# Session lifecycle (3)
|
|
93
94
|
"session_init", "observe", "close_session",
|
|
94
95
|
# Feedback / learning signals — reachable Dash-Core path for
|