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.
Files changed (569) hide show
  1. {superlocalmemory-3.7.5/src/superlocalmemory.egg-info → superlocalmemory-3.7.7}/PKG-INFO +8 -8
  2. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/README.md +2 -2
  3. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/plugin-src/skills/slm-recall/SKILL.md +4 -3
  4. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/pyproject.toml +6 -6
  5. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/__init__.py +1 -1
  6. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/cli/commands.py +169 -9
  7. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/cli/setup_wizard.py +53 -2
  8. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/core/backend_orchestrator.py +6 -1
  9. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/core/config.py +1 -1
  10. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/core/engine.py +3 -2
  11. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/core/engine_wiring.py +3 -1
  12. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/core/scale_engine.py +9 -1
  13. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/core/store_pipeline.py +1 -1
  14. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/hooks/before_web_hook.py +1 -1
  15. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/hooks/claude_code_hooks.py +1 -1
  16. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/infra/auth_middleware.py +5 -5
  17. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/mcp/_daemon_proxy.py +8 -10
  18. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/mcp/server.py +1 -0
  19. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/mcp/tools_active.py +11 -7
  20. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/mcp/tools_core.py +178 -20
  21. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/optimize/cache/centroid_store.py +21 -3
  22. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/optimize/cache/manager.py +7 -0
  23. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/optimize/cache/semantic.py +27 -10
  24. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/retrieval/engine.py +16 -8
  25. superlocalmemory-3.7.7/src/superlocalmemory/server/profile_runtime.py +384 -0
  26. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/server/recall_health.py +13 -7
  27. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/server/routes/chat.py +2 -2
  28. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/server/routes/helpers.py +9 -16
  29. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/server/routes/profiles.py +24 -14
  30. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/server/routes/v3_api.py +97 -20
  31. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/server/unified_daemon.py +261 -60
  32. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/storage/migration_runner.py +44 -0
  33. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/storage/migrations/M002_model_state_history.py +32 -3
  34. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/ui/index.html +32 -1
  35. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/ui/js/auto-settings.js +48 -0
  36. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/ui/js/memory-chat.js +2 -2
  37. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/ui/js/profiles.js +11 -2
  38. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/vector/lancedb_backend.py +42 -6
  39. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7/src/superlocalmemory.egg-info}/PKG-INFO +8 -8
  40. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory.egg-info/SOURCES.txt +1 -0
  41. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory.egg-info/requires.txt +5 -5
  42. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/AUTHORS.md +0 -0
  43. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/LICENSE +0 -0
  44. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/NOTICE +0 -0
  45. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/plugin-src/skills/slm-cache/SKILL.md +0 -0
  46. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/plugin-src/skills/slm-compress/SKILL.md +0 -0
  47. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/plugin-src/skills/slm-graph/SKILL.md +0 -0
  48. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/plugin-src/skills/slm-remember/SKILL.md +0 -0
  49. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/plugin-src/skills/slm-session/SKILL.md +0 -0
  50. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/plugin-src/skills/slm-status/SKILL.md +0 -0
  51. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/setup.cfg +0 -0
  52. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/attribution/__init__.py +0 -0
  53. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/attribution/mathematical_dna.py +0 -0
  54. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/attribution/signer.py +0 -0
  55. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/attribution/watermark.py +0 -0
  56. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/cli/__init__.py +0 -0
  57. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/cli/_lazy_init.py +0 -0
  58. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/cli/cache_cmd.py +0 -0
  59. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/cli/compress_cmd.py +0 -0
  60. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/cli/context_commands.py +0 -0
  61. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/cli/daemon.py +0 -0
  62. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/cli/db_migrate.py +0 -0
  63. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/cli/diagnostics_cmd.py +0 -0
  64. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/cli/escape_hatch.py +0 -0
  65. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/cli/evidence_cmd.py +0 -0
  66. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/cli/help_cmd.py +0 -0
  67. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/cli/ingest_cmd.py +0 -0
  68. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/cli/json_output.py +0 -0
  69. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/cli/main.py +0 -0
  70. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/cli/migrate_cmd.py +0 -0
  71. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/cli/optimize_cmd.py +0 -0
  72. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/cli/optimize_constants.py +0 -0
  73. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/cli/pending_store.py +0 -0
  74. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/cli/post_install.py +0 -0
  75. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/cli/proxy_cmd.py +0 -0
  76. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/cli/scale_engine_cmd.py +0 -0
  77. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/cli/service_installer.py +0 -0
  78. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/cli/version_banner.py +0 -0
  79. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/cli/wizard_v3426_options.py +0 -0
  80. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/code_graph/__init__.py +0 -0
  81. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/code_graph/blast_radius.py +0 -0
  82. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/code_graph/bridge/__init__.py +0 -0
  83. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/code_graph/bridge/entity_resolver.py +0 -0
  84. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/code_graph/bridge/event_listeners.py +0 -0
  85. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/code_graph/bridge/fact_enricher.py +0 -0
  86. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/code_graph/bridge/hebbian_linker.py +0 -0
  87. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/code_graph/bridge/temporal_checker.py +0 -0
  88. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/code_graph/changes.py +0 -0
  89. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/code_graph/communities.py +0 -0
  90. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/code_graph/config.py +0 -0
  91. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/code_graph/database.py +0 -0
  92. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/code_graph/extractors/__init__.py +0 -0
  93. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/code_graph/extractors/python.py +0 -0
  94. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/code_graph/extractors/typescript.py +0 -0
  95. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/code_graph/flows.py +0 -0
  96. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/code_graph/git_hooks.py +0 -0
  97. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/code_graph/graph_engine.py +0 -0
  98. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/code_graph/graph_store.py +0 -0
  99. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/code_graph/incremental.py +0 -0
  100. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/code_graph/models.py +0 -0
  101. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/code_graph/parser.py +0 -0
  102. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/code_graph/resolver.py +0 -0
  103. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/code_graph/search.py +0 -0
  104. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/code_graph/service.py +0 -0
  105. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/code_graph/watcher.py +0 -0
  106. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/compliance/__init__.py +0 -0
  107. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/compliance/abac.py +0 -0
  108. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/compliance/audit.py +0 -0
  109. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/compliance/eu_ai_act.py +0 -0
  110. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/compliance/gdpr.py +0 -0
  111. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/compliance/lifecycle.py +0 -0
  112. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/compliance/retention.py +0 -0
  113. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/compliance/scheduler.py +0 -0
  114. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/core/__init__.py +0 -0
  115. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/core/block_hygiene.py +0 -0
  116. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/core/clock_monitor.py +0 -0
  117. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/core/consolidation_engine.py +0 -0
  118. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/core/context_cache.py +0 -0
  119. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/core/db_pool.py +0 -0
  120. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/core/derivation_lineage.py +0 -0
  121. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/core/embedding_worker.py +0 -0
  122. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/core/embeddings.py +0 -0
  123. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/core/engine_capabilities.py +0 -0
  124. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/core/engine_ingestion.py +0 -0
  125. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/core/engine_lock.py +0 -0
  126. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/core/error_catalog.py +0 -0
  127. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/core/error_envelope.py +0 -0
  128. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/core/evidence_bundle.py +0 -0
  129. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/core/fact_consolidator.py +0 -0
  130. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/core/file_lock.py +0 -0
  131. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/core/graph_analyzer.py +0 -0
  132. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/core/graph_pruner.py +0 -0
  133. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/core/health_monitor.py +0 -0
  134. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/core/hooks.py +0 -0
  135. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/core/ingest_gate.py +0 -0
  136. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/core/ingestion_command.py +0 -0
  137. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/core/injection.py +0 -0
  138. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/core/lifecycle_state.py +0 -0
  139. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/core/loop_watchdog.py +0 -0
  140. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/core/maintenance.py +0 -0
  141. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/core/maintenance_scheduler.py +0 -0
  142. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/core/mcp_embedder_proxy.py +0 -0
  143. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/core/modes.py +0 -0
  144. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/core/mutations.py +0 -0
  145. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/core/ollama_embedder.py +0 -0
  146. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/core/platform_utils.py +0 -0
  147. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/core/priority_queue.py +0 -0
  148. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/core/profiles.py +0 -0
  149. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/core/pruning_engine.py +0 -0
  150. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/core/queue_consumer.py +0 -0
  151. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/core/queue_dispatcher.py +0 -0
  152. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/core/ram_lock.py +0 -0
  153. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/core/rate_limit.py +0 -0
  154. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/core/recall_gate.py +0 -0
  155. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/core/recall_pipeline.py +0 -0
  156. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/core/recall_queue.py +0 -0
  157. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/core/recall_worker.py +0 -0
  158. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/core/registry.py +0 -0
  159. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/core/remote_mode.py +0 -0
  160. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/core/reranker_worker.py +0 -0
  161. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/core/safe_fs.py +0 -0
  162. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/core/score_contract.py +0 -0
  163. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/core/security_primitives.py +0 -0
  164. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/core/shadow_router.py +0 -0
  165. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/core/slm_disabled.py +0 -0
  166. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/core/slmignore.py +0 -0
  167. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/core/summarizer.py +0 -0
  168. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/core/tier_manager.py +0 -0
  169. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/core/topic_signature.py +0 -0
  170. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/core/worker_pool.py +0 -0
  171. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/dynamics/__init__.py +0 -0
  172. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/dynamics/activation_guided_quantization.py +0 -0
  173. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/dynamics/eap_scheduler.py +0 -0
  174. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/dynamics/ebbinghaus_langevin_coupling.py +0 -0
  175. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/dynamics/fisher_langevin_coupling.py +0 -0
  176. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/encoding/__init__.py +0 -0
  177. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/encoding/auto_linker.py +0 -0
  178. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/encoding/cognitive_consolidator.py +0 -0
  179. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/encoding/consolidator.py +0 -0
  180. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/encoding/context_generator.py +0 -0
  181. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/encoding/emotional.py +0 -0
  182. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/encoding/entity_resolver.py +0 -0
  183. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/encoding/entropy_gate.py +0 -0
  184. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/encoding/fact_extractor.py +0 -0
  185. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/encoding/foresight.py +0 -0
  186. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/encoding/graph_builder.py +0 -0
  187. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/encoding/observation_builder.py +0 -0
  188. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/encoding/scene_builder.py +0 -0
  189. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/encoding/signal_inference.py +0 -0
  190. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/encoding/temporal_parser.py +0 -0
  191. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/encoding/temporal_validator.py +0 -0
  192. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/encoding/type_router.py +0 -0
  193. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/evaluation/__init__.py +0 -0
  194. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/evaluation/calibration.py +0 -0
  195. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/evolution/__init__.py +0 -0
  196. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/evolution/blind_verifier.py +0 -0
  197. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/evolution/budget.py +0 -0
  198. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/evolution/evolution_store.py +0 -0
  199. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/evolution/llm_dispatch.py +0 -0
  200. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/evolution/mutation_generator.py +0 -0
  201. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/evolution/skill_evolver.py +0 -0
  202. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/evolution/triggers.py +0 -0
  203. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/evolution/types.py +0 -0
  204. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/graph/__init__.py +0 -0
  205. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/graph/cozo_backend.py +0 -0
  206. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/hooks/__init__.py +0 -0
  207. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/hooks/_outcome_common.py +0 -0
  208. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/hooks/adapter_base.py +0 -0
  209. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/hooks/antigravity_adapter.py +0 -0
  210. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/hooks/auto_capture.py +0 -0
  211. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/hooks/auto_invoker.py +0 -0
  212. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/hooks/auto_parameterize.py +0 -0
  213. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/hooks/auto_recall.py +0 -0
  214. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/hooks/auto_recall_hook.py +0 -0
  215. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/hooks/codex_assets.py +0 -0
  216. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/hooks/codex_hooks.py +0 -0
  217. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/hooks/context_payload.py +0 -0
  218. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/hooks/copilot_adapter.py +0 -0
  219. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/hooks/cross_platform_connector.py +0 -0
  220. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/hooks/cursor_adapter.py +0 -0
  221. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/hooks/hook_daemon.py +0 -0
  222. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/hooks/hook_handlers.py +0 -0
  223. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/hooks/ide_connector.py +0 -0
  224. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/hooks/memory_protocol.py +0 -0
  225. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/hooks/portable_kit.py +0 -0
  226. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/hooks/post_tool_async_hook.py +0 -0
  227. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/hooks/post_tool_outcome_hook.py +0 -0
  228. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/hooks/prewarm_auth.py +0 -0
  229. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/hooks/rules_engine.py +0 -0
  230. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/hooks/session_registry.py +0 -0
  231. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/hooks/stop_outcome_hook.py +0 -0
  232. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/hooks/sync_loop.py +0 -0
  233. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/hooks/topic_shift_hook.py +0 -0
  234. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/hooks/user_prompt_hook.py +0 -0
  235. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/hooks/user_prompt_rehash_hook.py +0 -0
  236. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/infra/__init__.py +0 -0
  237. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/infra/backup.py +0 -0
  238. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/infra/cache_manager.py +0 -0
  239. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/infra/cloud_backup.py +0 -0
  240. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/infra/daemon_identity.py +0 -0
  241. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/infra/data_root.py +0 -0
  242. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/infra/event_bus.py +0 -0
  243. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/infra/heartbeat_monitor.py +0 -0
  244. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/infra/local_diagnostics.py +0 -0
  245. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/infra/pid_manager.py +0 -0
  246. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/infra/process_reaper.py +0 -0
  247. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/infra/rate_limiter.py +0 -0
  248. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/infra/webhook_dispatcher.py +0 -0
  249. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/ingestion/__init__.py +0 -0
  250. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/ingestion/adapter_manager.py +0 -0
  251. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/ingestion/base_adapter.py +0 -0
  252. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/ingestion/calendar_adapter.py +0 -0
  253. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/ingestion/credentials.py +0 -0
  254. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/ingestion/gmail_adapter.py +0 -0
  255. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/ingestion/parsers.py +0 -0
  256. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/ingestion/transcript_adapter.py +0 -0
  257. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/learning/__init__.py +0 -0
  258. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/learning/adaptive.py +0 -0
  259. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/learning/arm_catalog.py +0 -0
  260. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/learning/assertion_miner.py +0 -0
  261. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/learning/bandit.py +0 -0
  262. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/learning/bandit_cache.py +0 -0
  263. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/learning/behavioral.py +0 -0
  264. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/learning/behavioral_listener.py +0 -0
  265. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/learning/bootstrap.py +0 -0
  266. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/learning/consolidation_cycle.py +0 -0
  267. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/learning/consolidation_quantization_worker.py +0 -0
  268. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/learning/consolidation_worker.py +0 -0
  269. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/learning/cross_project.py +0 -0
  270. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/learning/database.py +0 -0
  271. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/learning/dedup_hnsw.py +0 -0
  272. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/learning/engagement.py +0 -0
  273. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/learning/ensemble.py +0 -0
  274. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/learning/entity_compiler.py +0 -0
  275. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/learning/fact_outcome_joins.py +0 -0
  276. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/learning/features.py +0 -0
  277. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/learning/feedback.py +0 -0
  278. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/learning/forgetting_scheduler.py +0 -0
  279. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/learning/hnsw_dedup.py +0 -0
  280. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/learning/labeler.py +0 -0
  281. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/learning/legacy_migration.py +0 -0
  282. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/learning/lightgbm_subprocess.py +0 -0
  283. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/learning/memory_merge.py +0 -0
  284. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/learning/model_cache.py +0 -0
  285. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/learning/model_rollback.py +0 -0
  286. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/learning/outcome_queue.py +0 -0
  287. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/learning/outcomes.py +0 -0
  288. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/learning/pattern_miner.py +0 -0
  289. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/learning/pattern_miner_constants.py +0 -0
  290. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/learning/project_context.py +0 -0
  291. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/learning/quantization_scheduler.py +0 -0
  292. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/learning/ranker.py +0 -0
  293. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/learning/ranker_common.py +0 -0
  294. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/learning/ranker_retrain_legacy.py +0 -0
  295. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/learning/ranker_retrain_online.py +0 -0
  296. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/learning/reward.py +0 -0
  297. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/learning/reward_archive.py +0 -0
  298. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/learning/reward_boost.py +0 -0
  299. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/learning/reward_proxy.py +0 -0
  300. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/learning/shadow_test.py +0 -0
  301. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/learning/signal_worker.py +0 -0
  302. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/learning/signals.py +0 -0
  303. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/learning/skill_performance_miner.py +0 -0
  304. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/learning/source_quality.py +0 -0
  305. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/learning/trigram_index.py +0 -0
  306. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/learning/workflows.py +0 -0
  307. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/llm/__init__.py +0 -0
  308. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/llm/backbone.py +0 -0
  309. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/math/__init__.py +0 -0
  310. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/math/ebbinghaus.py +0 -0
  311. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/math/fisher.py +0 -0
  312. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/math/fisher_quantized.py +0 -0
  313. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/math/hopfield.py +0 -0
  314. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/math/langevin.py +0 -0
  315. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/math/polar_quant.py +0 -0
  316. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/math/qjl.py +0 -0
  317. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/math/sheaf.py +0 -0
  318. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/math/turbo_quant.py +0 -0
  319. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/mcp/__init__.py +0 -0
  320. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/mcp/_pool_adapter.py +0 -0
  321. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/mcp/_stdin_guard.py +0 -0
  322. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/mcp/agent_context.py +0 -0
  323. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/mcp/cli_fallback.py +0 -0
  324. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/mcp/http_transport.py +0 -0
  325. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/mcp/resources.py +0 -0
  326. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/mcp/shared.py +0 -0
  327. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/mcp/tools.py +0 -0
  328. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/mcp/tools_code_graph.py +0 -0
  329. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/mcp/tools_context.py +0 -0
  330. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/mcp/tools_evolution.py +0 -0
  331. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/mcp/tools_learning.py +0 -0
  332. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/mcp/tools_mesh.py +0 -0
  333. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/mcp/tools_optimize.py +0 -0
  334. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/mcp/tools_v28.py +0 -0
  335. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/mcp/tools_v3.py +0 -0
  336. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/mcp/tools_v33.py +0 -0
  337. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/mesh/__init__.py +0 -0
  338. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/mesh/broker.py +0 -0
  339. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/mesh/remote_sync.py +0 -0
  340. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/migrations/__init__.py +0 -0
  341. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/migrations/v3_4_25_to_v3_4_26.py +0 -0
  342. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/optimize/NOTICE +0 -0
  343. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/optimize/__init__.py +0 -0
  344. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/optimize/adapters/__init__.py +0 -0
  345. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/optimize/adapters/_agent_registry.py +0 -0
  346. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/optimize/adapters/anthropic_adapter.py +0 -0
  347. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/optimize/adapters/openai_adapter.py +0 -0
  348. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/optimize/adapters/wrap.py +0 -0
  349. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/optimize/cache/__init__.py +0 -0
  350. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/optimize/cache/boundary_store.py +0 -0
  351. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/optimize/cache/context_key.py +0 -0
  352. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/optimize/cache/exact.py +0 -0
  353. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/optimize/cache/invalidation.py +0 -0
  354. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/optimize/cache/key_builder.py +0 -0
  355. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/optimize/cache/stampede.py +0 -0
  356. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/optimize/compress/__init__.py +0 -0
  357. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/optimize/compress/align.py +0 -0
  358. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/optimize/compress/ccr.py +0 -0
  359. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/optimize/compress/prose_llmlingua.py +0 -0
  360. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/optimize/compress/router.py +0 -0
  361. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/optimize/config/__init__.py +0 -0
  362. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/optimize/config/defaults.py +0 -0
  363. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/optimize/config/schema.py +0 -0
  364. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/optimize/config/store.py +0 -0
  365. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/optimize/metrics/__init__.py +0 -0
  366. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/optimize/metrics/counters.py +0 -0
  367. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/optimize/metrics/estimator.py +0 -0
  368. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/optimize/metrics/exporters.py +0 -0
  369. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/optimize/metrics/persistence.py +0 -0
  370. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/optimize/proxy/__init__.py +0 -0
  371. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/optimize/proxy/_helpers.py +0 -0
  372. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/optimize/proxy/anthropic_surface.py +0 -0
  373. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/optimize/proxy/capture.py +0 -0
  374. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/optimize/proxy/gemini_surface.py +0 -0
  375. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/optimize/proxy/lifecycle.py +0 -0
  376. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/optimize/proxy/openai_surface.py +0 -0
  377. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/optimize/proxy/server.py +0 -0
  378. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/optimize/proxy/vertex_surface.py +0 -0
  379. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/optimize/storage/__init__.py +0 -0
  380. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/optimize/storage/db.py +0 -0
  381. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/optimize/storage/schema.py +0 -0
  382. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/parameterization/__init__.py +0 -0
  383. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/parameterization/pattern_extractor.py +0 -0
  384. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/parameterization/pii_filter.py +0 -0
  385. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/parameterization/prompt_injector.py +0 -0
  386. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/parameterization/prompt_lifecycle.py +0 -0
  387. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/parameterization/soft_prompt_generator.py +0 -0
  388. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/retrieval/__init__.py +0 -0
  389. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/retrieval/agentic.py +0 -0
  390. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/retrieval/ann_index.py +0 -0
  391. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/retrieval/bm25_channel.py +0 -0
  392. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/retrieval/bridge_discovery.py +0 -0
  393. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/retrieval/channel_registry.py +0 -0
  394. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/retrieval/entity_channel.py +0 -0
  395. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/retrieval/forgetting_filter.py +0 -0
  396. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/retrieval/fusion.py +0 -0
  397. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/retrieval/hopfield_channel.py +0 -0
  398. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/retrieval/profile_channel.py +0 -0
  399. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/retrieval/quantization_aware_search.py +0 -0
  400. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/retrieval/reranker.py +0 -0
  401. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/retrieval/scope_policy.py +0 -0
  402. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/retrieval/semantic_channel.py +0 -0
  403. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/retrieval/spreading_activation.py +0 -0
  404. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/retrieval/strategy.py +0 -0
  405. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/retrieval/temporal_channel.py +0 -0
  406. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/retrieval/vector_store.py +0 -0
  407. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/server/__init__.py +0 -0
  408. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/server/api.py +0 -0
  409. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/server/bandit_loops.py +0 -0
  410. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/server/middleware/__init__.py +0 -0
  411. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/server/middleware/security_headers.py +0 -0
  412. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/server/recall_serializer.py +0 -0
  413. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/server/route_mutations.py +0 -0
  414. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/server/routes/__init__.py +0 -0
  415. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/server/routes/adapters.py +0 -0
  416. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/server/routes/agents.py +0 -0
  417. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/server/routes/backup.py +0 -0
  418. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/server/routes/behavioral.py +0 -0
  419. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/server/routes/brain.py +0 -0
  420. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/server/routes/compliance.py +0 -0
  421. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/server/routes/data_io.py +0 -0
  422. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/server/routes/entity.py +0 -0
  423. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/server/routes/events.py +0 -0
  424. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/server/routes/evolution.py +0 -0
  425. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/server/routes/ingest.py +0 -0
  426. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/server/routes/insights.py +0 -0
  427. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/server/routes/learning.py +0 -0
  428. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/server/routes/lifecycle.py +0 -0
  429. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/server/routes/memories.py +0 -0
  430. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/server/routes/mesh.py +0 -0
  431. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/server/routes/optimize.py +0 -0
  432. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/server/routes/prewarm.py +0 -0
  433. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/server/routes/stats.py +0 -0
  434. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/server/routes/tiers.py +0 -0
  435. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/server/routes/timeline.py +0 -0
  436. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/server/routes/token.py +0 -0
  437. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/server/routes/ws.py +0 -0
  438. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/server/security_middleware.py +0 -0
  439. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/server/ui.py +0 -0
  440. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/server/write_identity.py +0 -0
  441. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/storage/__init__.py +0 -0
  442. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/storage/access_control.py +0 -0
  443. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/storage/access_log.py +0 -0
  444. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/storage/database.py +0 -0
  445. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/storage/embedding_migrator.py +0 -0
  446. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/storage/logical_edges.py +0 -0
  447. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/storage/migration_v33.py +0 -0
  448. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/storage/migrations/M001_add_signal_features_columns.py +0 -0
  449. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/storage/migrations/M003_migration_log.py +0 -0
  450. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/storage/migrations/M004_cross_platform_sync_log.py +0 -0
  451. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/storage/migrations/M005_bandit_tables.py +0 -0
  452. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/storage/migrations/M006_action_outcomes_reward.py +0 -0
  453. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/storage/migrations/M007_pending_outcomes.py +0 -0
  454. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/storage/migrations/M009_model_lineage.py +0 -0
  455. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/storage/migrations/M010_evolution_config.py +0 -0
  456. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/storage/migrations/M011_archive_and_merge.py +0 -0
  457. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/storage/migrations/M012_shadow_observations.py +0 -0
  458. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/storage/migrations/M013_bi_temporal_columns.py +0 -0
  459. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/storage/migrations/M014_v345_scale_ready.py +0 -0
  460. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/storage/migrations/M015_add_pinned_column.py +0 -0
  461. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/storage/migrations/M016_add_scope_support.py +0 -0
  462. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/storage/migrations/M017_ccq_scope_column.py +0 -0
  463. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/storage/migrations/M018_ingestion_operations.py +0 -0
  464. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/storage/migrations/M019_derivation_lineage.py +0 -0
  465. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/storage/migrations/M020_model_state_integrity.py +0 -0
  466. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/storage/migrations/__init__.py +0 -0
  467. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/storage/migrations.py +0 -0
  468. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/storage/models.py +0 -0
  469. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/storage/quantized_store.py +0 -0
  470. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/storage/schema.py +0 -0
  471. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/storage/schema_code_graph.py +0 -0
  472. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/storage/schema_v32.py +0 -0
  473. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/storage/schema_v3410.py +0 -0
  474. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/storage/schema_v3411.py +0 -0
  475. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/storage/schema_v343.py +0 -0
  476. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/storage/schema_v345.py +0 -0
  477. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/storage/schema_v347.py +0 -0
  478. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/storage/sqlite_vectors.py +0 -0
  479. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/storage/v2_migrator.py +0 -0
  480. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/trust/__init__.py +0 -0
  481. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/trust/gate.py +0 -0
  482. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/trust/provenance.py +0 -0
  483. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/trust/scorer.py +0 -0
  484. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/trust/signals.py +0 -0
  485. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/ui/css/brain.css +0 -0
  486. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/ui/css/legacy-dashboard.css +0 -0
  487. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/ui/css/neural-glass.css +0 -0
  488. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/ui/favicon.svg +0 -0
  489. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/ui/js/agents.js +0 -0
  490. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/ui/js/brain.js +0 -0
  491. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/ui/js/clusters.js +0 -0
  492. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/ui/js/compliance.js +0 -0
  493. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/ui/js/core.js +0 -0
  494. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/ui/js/dashboard.js +0 -0
  495. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/ui/js/events.js +0 -0
  496. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/ui/js/fact-detail.js +0 -0
  497. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/ui/js/feedback.js +0 -0
  498. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/ui/js/graph-event-bus.js +0 -0
  499. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/ui/js/graph-filters.js +0 -0
  500. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/ui/js/graph-ui.js +0 -0
  501. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/ui/js/ide-status.js +0 -0
  502. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/ui/js/init.js +0 -0
  503. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/ui/js/knowledge-graph.js +0 -0
  504. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/ui/js/lifecycle.js +0 -0
  505. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/ui/js/math-health.js +0 -0
  506. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/ui/js/memories.js +0 -0
  507. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/ui/js/memory-timeline.js +0 -0
  508. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/ui/js/modal.js +0 -0
  509. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/ui/js/ng-entities.js +0 -0
  510. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/ui/js/ng-health.js +0 -0
  511. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/ui/js/ng-ingestion.js +0 -0
  512. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/ui/js/ng-mesh.js +0 -0
  513. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/ui/js/ng-shell.js +0 -0
  514. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/ui/js/ng-skills.js +0 -0
  515. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/ui/js/optimize.js +0 -0
  516. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/ui/js/quick-actions.js +0 -0
  517. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/ui/js/recall-lab.js +0 -0
  518. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/ui/js/search.js +0 -0
  519. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/ui/js/settings.js +0 -0
  520. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/ui/js/timeline.js +0 -0
  521. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/ui/js/trust-dashboard.js +0 -0
  522. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/ui/vendor/bootstrap-icons/bootstrap-icons.css +0 -0
  523. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/ui/vendor/bootstrap-icons/fonts/bootstrap-icons.woff +0 -0
  524. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/ui/vendor/bootstrap-icons/fonts/bootstrap-icons.woff2 +0 -0
  525. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/ui/vendor/bootstrap.bundle.min.js +0 -0
  526. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/ui/vendor/bootstrap.min.css +0 -0
  527. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/ui/vendor/d3.v7.min.js +0 -0
  528. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/ui/vendor/graphology-library.min.js +0 -0
  529. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/ui/vendor/graphology.umd.min.js +0 -0
  530. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/ui/vendor/inter-ui/inter-variable.min.css +0 -0
  531. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/ui/vendor/inter-ui/variable/InterVariable-Italic.woff2 +0 -0
  532. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/ui/vendor/inter-ui/variable/InterVariable.woff2 +0 -0
  533. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/ui/vendor/sigma.min.js +0 -0
  534. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory/vector/__init__.py +0 -0
  535. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory.egg-info/dependency_links.txt +0 -0
  536. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory.egg-info/entry_points.txt +0 -0
  537. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/src/superlocalmemory.egg-info/top_level.txt +0 -0
  538. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/tests/test_auto_hooks.py +0 -0
  539. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/tests/test_before_web_hook.py +0 -0
  540. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/tests/test_behavioral_full.py +0 -0
  541. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/tests/test_claude_hooks.py +0 -0
  542. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/tests/test_cli_core.py +0 -0
  543. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/tests/test_cli_json.py +0 -0
  544. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/tests/test_cli_v33.py +0 -0
  545. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/tests/test_compliance_full.py +0 -0
  546. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/tests/test_config_system.py +0 -0
  547. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/tests/test_dashboard_preserve_embedding.py +0 -0
  548. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/tests/test_engine_hooks.py +0 -0
  549. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/tests/test_event_bus.py +0 -0
  550. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/tests/test_features.py +0 -0
  551. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/tests/test_final_locomo_mini.py +0 -0
  552. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/tests/test_graph_integrity.py +0 -0
  553. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/tests/test_hook_handlers.py +0 -0
  554. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/tests/test_ide_connector.py +0 -0
  555. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/tests/test_infra.py +0 -0
  556. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/tests/test_injection.py +0 -0
  557. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/tests/test_learning_advanced.py +0 -0
  558. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/tests/test_learning_collectors.py +0 -0
  559. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/tests/test_llm_provider.py +0 -0
  560. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/tests/test_mcp_server.py +0 -0
  561. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/tests/test_migration.py +0 -0
  562. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/tests/test_mode_switch_preservation.py +0 -0
  563. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/tests/test_post_install.py +0 -0
  564. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/tests/test_ranker.py +0 -0
  565. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/tests/test_resource_lifecycle.py +0 -0
  566. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/tests/test_topic_shift_hook.py +0 -0
  567. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/tests/test_trust_full.py +0 -0
  568. {superlocalmemory-3.7.5 → superlocalmemory-3.7.7}/tests/test_v3_api.py +0 -0
  569. {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.5
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.27.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.136.1
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==45.0.2
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==4.57.6
56
- Requires-Dist: huggingface_hub==0.36.2
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.5</h1>
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.5</code> — <strong>Scale Engine graph and vector projection parity, durable promotion recovery, and honest runtime status.</strong><br/>
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> &nbsp;·&nbsp; MCP: add <code>slm_compress</code> to your config &nbsp;·&nbsp; 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.5</h1>
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.5</code> — <strong>Scale Engine graph and vector projection parity, durable promotion recovery, and honest runtime status.</strong><br/>
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> &nbsp;·&nbsp; MCP: add <code>slm_compress</code> to your config &nbsp;·&nbsp; 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 four channels in parallel — semantic vector similarity, lexical
146
- BM25, temporal recency, and structural/graph — then fuses them with Reciprocal
147
- Rank Fusion (RRF) and applies a reranker. The `channel_weights` field in the
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.5"
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.27.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.136.1",
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==45.0.2",
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==4.57.6",
71
- "huggingface_hub==0.36.2",
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.5"
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, set_active_profile_everywhere,
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
- set_active_profile_everywhere(args.name)
2556
- config.active_profile = args.name
2557
- config.save()
2558
- json_print("profile", data={"action": "switched", "profile": args.name})
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
- set_active_profile_everywhere(args.name)
2580
- config.active_profile = args.name
2581
- config.save()
2582
- print(f"Switched to profile: {args.name}")
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 = SLMConfig.for_mode(mode_map[choice])
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 not st_ok:
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:
@@ -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
- self._lancedb = LanceDBVectorBackend(str(lance_path))
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 6-channel retrieval pre-filters
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 (4-channel search, RRF fusion,
55
- reranking) and all supporting layers (trust, learning, compliance).
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
 
@@ -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 with 6 channels. Returns it."""
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
- return CozoDBGraphBackend(str(cozo_dir / "graph")), LanceDBVectorBackend(str(lance_dir))
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)
@@ -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 made 4/6 channels blind).
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
@@ -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 4-channel recall via SLM daemon). Fires only on
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).
@@ -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 4-channel recall on the search
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.
@@ -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
- """Opt-in API-key authentication middleware.
4
+ """API-key primitives used by the unified identity boundary.
5
5
 
6
- When ``~/.superlocalmemory/api_key`` exists, write endpoints require the
7
- ``X-SLM-API-Key`` header. Read endpoints remain open for backward
8
- compatibility. If the key file is absent auth is completely disabled --
9
- all requests pass.
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
- with urllib.request.urlopen(
68
- self._url(f"/recall?{params}"), timeout=self._timeout,
69
- ) as resp:
70
- data = json.loads(resp.read().decode() or "{}")
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": "non-dict response"}
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