superlocalmemory 3.7.1__tar.gz → 3.7.3__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 (567) hide show
  1. {superlocalmemory-3.7.1/src/superlocalmemory.egg-info → superlocalmemory-3.7.3}/PKG-INFO +17 -9
  2. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/README.md +16 -8
  3. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/pyproject.toml +1 -1
  4. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/__init__.py +1 -1
  5. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/cli/main.py +2 -2
  6. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/cli/scale_engine_cmd.py +13 -1
  7. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/core/backend_orchestrator.py +15 -0
  8. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/core/embedding_worker.py +7 -1
  9. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/core/embeddings.py +8 -0
  10. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/core/engine.py +1 -3
  11. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/core/engine_wiring.py +0 -5
  12. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/core/ram_lock.py +42 -4
  13. superlocalmemory-3.7.3/src/superlocalmemory/core/scale_engine.py +708 -0
  14. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/evolution/budget.py +43 -8
  15. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/hooks/claude_code_hooks.py +2 -1
  16. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/hooks/context_payload.py +2 -1
  17. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/mcp/http_transport.py +2 -1
  18. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/mcp/tools_core.py +46 -29
  19. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/mesh/broker.py +111 -61
  20. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/optimize/proxy/server.py +2 -1
  21. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/retrieval/spreading_activation.py +53 -3
  22. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/server/routes/brain.py +2 -1
  23. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/server/unified_daemon.py +24 -7
  24. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3/src/superlocalmemory.egg-info}/PKG-INFO +17 -9
  25. superlocalmemory-3.7.1/src/superlocalmemory/core/scale_engine.py +0 -293
  26. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/AUTHORS.md +0 -0
  27. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/LICENSE +0 -0
  28. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/NOTICE +0 -0
  29. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/plugin-src/skills/slm-cache/SKILL.md +0 -0
  30. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/plugin-src/skills/slm-compress/SKILL.md +0 -0
  31. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/plugin-src/skills/slm-graph/SKILL.md +0 -0
  32. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/plugin-src/skills/slm-recall/SKILL.md +0 -0
  33. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/plugin-src/skills/slm-remember/SKILL.md +0 -0
  34. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/plugin-src/skills/slm-session/SKILL.md +0 -0
  35. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/plugin-src/skills/slm-status/SKILL.md +0 -0
  36. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/setup.cfg +0 -0
  37. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/attribution/__init__.py +0 -0
  38. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/attribution/mathematical_dna.py +0 -0
  39. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/attribution/signer.py +0 -0
  40. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/attribution/watermark.py +0 -0
  41. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/cli/__init__.py +0 -0
  42. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/cli/_lazy_init.py +0 -0
  43. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/cli/cache_cmd.py +0 -0
  44. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/cli/commands.py +0 -0
  45. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/cli/compress_cmd.py +0 -0
  46. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/cli/context_commands.py +0 -0
  47. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/cli/daemon.py +0 -0
  48. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/cli/db_migrate.py +0 -0
  49. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/cli/diagnostics_cmd.py +0 -0
  50. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/cli/escape_hatch.py +0 -0
  51. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/cli/evidence_cmd.py +0 -0
  52. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/cli/help_cmd.py +0 -0
  53. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/cli/ingest_cmd.py +0 -0
  54. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/cli/json_output.py +0 -0
  55. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/cli/migrate_cmd.py +0 -0
  56. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/cli/optimize_cmd.py +0 -0
  57. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/cli/optimize_constants.py +0 -0
  58. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/cli/pending_store.py +0 -0
  59. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/cli/post_install.py +0 -0
  60. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/cli/proxy_cmd.py +0 -0
  61. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/cli/service_installer.py +0 -0
  62. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/cli/setup_wizard.py +0 -0
  63. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/cli/version_banner.py +0 -0
  64. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/cli/wizard_v3426_options.py +0 -0
  65. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/code_graph/__init__.py +0 -0
  66. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/code_graph/blast_radius.py +0 -0
  67. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/code_graph/bridge/__init__.py +0 -0
  68. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/code_graph/bridge/entity_resolver.py +0 -0
  69. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/code_graph/bridge/event_listeners.py +0 -0
  70. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/code_graph/bridge/fact_enricher.py +0 -0
  71. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/code_graph/bridge/hebbian_linker.py +0 -0
  72. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/code_graph/bridge/temporal_checker.py +0 -0
  73. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/code_graph/changes.py +0 -0
  74. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/code_graph/communities.py +0 -0
  75. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/code_graph/config.py +0 -0
  76. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/code_graph/database.py +0 -0
  77. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/code_graph/extractors/__init__.py +0 -0
  78. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/code_graph/extractors/python.py +0 -0
  79. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/code_graph/extractors/typescript.py +0 -0
  80. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/code_graph/flows.py +0 -0
  81. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/code_graph/git_hooks.py +0 -0
  82. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/code_graph/graph_engine.py +0 -0
  83. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/code_graph/graph_store.py +0 -0
  84. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/code_graph/incremental.py +0 -0
  85. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/code_graph/models.py +0 -0
  86. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/code_graph/parser.py +0 -0
  87. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/code_graph/resolver.py +0 -0
  88. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/code_graph/search.py +0 -0
  89. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/code_graph/service.py +0 -0
  90. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/code_graph/watcher.py +0 -0
  91. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/compliance/__init__.py +0 -0
  92. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/compliance/abac.py +0 -0
  93. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/compliance/audit.py +0 -0
  94. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/compliance/eu_ai_act.py +0 -0
  95. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/compliance/gdpr.py +0 -0
  96. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/compliance/lifecycle.py +0 -0
  97. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/compliance/retention.py +0 -0
  98. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/compliance/scheduler.py +0 -0
  99. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/core/__init__.py +0 -0
  100. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/core/block_hygiene.py +0 -0
  101. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/core/clock_monitor.py +0 -0
  102. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/core/config.py +0 -0
  103. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/core/consolidation_engine.py +0 -0
  104. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/core/context_cache.py +0 -0
  105. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/core/db_pool.py +0 -0
  106. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/core/derivation_lineage.py +0 -0
  107. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/core/engine_capabilities.py +0 -0
  108. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/core/engine_ingestion.py +0 -0
  109. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/core/engine_lock.py +0 -0
  110. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/core/error_catalog.py +0 -0
  111. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/core/error_envelope.py +0 -0
  112. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/core/evidence_bundle.py +0 -0
  113. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/core/fact_consolidator.py +0 -0
  114. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/core/file_lock.py +0 -0
  115. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/core/graph_analyzer.py +0 -0
  116. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/core/graph_pruner.py +0 -0
  117. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/core/health_monitor.py +0 -0
  118. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/core/hooks.py +0 -0
  119. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/core/ingest_gate.py +0 -0
  120. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/core/ingestion_command.py +0 -0
  121. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/core/injection.py +0 -0
  122. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/core/lifecycle_state.py +0 -0
  123. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/core/loop_watchdog.py +0 -0
  124. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/core/maintenance.py +0 -0
  125. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/core/maintenance_scheduler.py +0 -0
  126. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/core/mcp_embedder_proxy.py +0 -0
  127. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/core/modes.py +0 -0
  128. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/core/mutations.py +0 -0
  129. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/core/ollama_embedder.py +0 -0
  130. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/core/platform_utils.py +0 -0
  131. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/core/priority_queue.py +0 -0
  132. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/core/profiles.py +0 -0
  133. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/core/pruning_engine.py +0 -0
  134. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/core/queue_consumer.py +0 -0
  135. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/core/queue_dispatcher.py +0 -0
  136. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/core/rate_limit.py +0 -0
  137. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/core/recall_gate.py +0 -0
  138. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/core/recall_pipeline.py +0 -0
  139. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/core/recall_queue.py +0 -0
  140. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/core/recall_worker.py +0 -0
  141. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/core/registry.py +0 -0
  142. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/core/remote_mode.py +0 -0
  143. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/core/reranker_worker.py +0 -0
  144. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/core/safe_fs.py +0 -0
  145. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/core/score_contract.py +0 -0
  146. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/core/security_primitives.py +0 -0
  147. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/core/shadow_router.py +0 -0
  148. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/core/slm_disabled.py +0 -0
  149. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/core/slmignore.py +0 -0
  150. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/core/store_pipeline.py +0 -0
  151. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/core/summarizer.py +0 -0
  152. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/core/tier_manager.py +0 -0
  153. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/core/topic_signature.py +0 -0
  154. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/core/worker_pool.py +0 -0
  155. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/dynamics/__init__.py +0 -0
  156. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/dynamics/activation_guided_quantization.py +0 -0
  157. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/dynamics/eap_scheduler.py +0 -0
  158. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/dynamics/ebbinghaus_langevin_coupling.py +0 -0
  159. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/dynamics/fisher_langevin_coupling.py +0 -0
  160. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/encoding/__init__.py +0 -0
  161. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/encoding/auto_linker.py +0 -0
  162. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/encoding/cognitive_consolidator.py +0 -0
  163. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/encoding/consolidator.py +0 -0
  164. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/encoding/context_generator.py +0 -0
  165. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/encoding/emotional.py +0 -0
  166. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/encoding/entity_resolver.py +0 -0
  167. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/encoding/entropy_gate.py +0 -0
  168. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/encoding/fact_extractor.py +0 -0
  169. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/encoding/foresight.py +0 -0
  170. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/encoding/graph_builder.py +0 -0
  171. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/encoding/observation_builder.py +0 -0
  172. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/encoding/scene_builder.py +0 -0
  173. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/encoding/signal_inference.py +0 -0
  174. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/encoding/temporal_parser.py +0 -0
  175. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/encoding/temporal_validator.py +0 -0
  176. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/encoding/type_router.py +0 -0
  177. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/evaluation/__init__.py +0 -0
  178. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/evaluation/calibration.py +0 -0
  179. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/evolution/__init__.py +0 -0
  180. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/evolution/blind_verifier.py +0 -0
  181. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/evolution/evolution_store.py +0 -0
  182. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/evolution/llm_dispatch.py +0 -0
  183. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/evolution/mutation_generator.py +0 -0
  184. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/evolution/skill_evolver.py +0 -0
  185. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/evolution/triggers.py +0 -0
  186. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/evolution/types.py +0 -0
  187. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/graph/__init__.py +0 -0
  188. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/graph/cozo_backend.py +0 -0
  189. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/hooks/__init__.py +0 -0
  190. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/hooks/_outcome_common.py +0 -0
  191. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/hooks/adapter_base.py +0 -0
  192. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/hooks/antigravity_adapter.py +0 -0
  193. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/hooks/auto_capture.py +0 -0
  194. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/hooks/auto_invoker.py +0 -0
  195. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/hooks/auto_parameterize.py +0 -0
  196. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/hooks/auto_recall.py +0 -0
  197. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/hooks/auto_recall_hook.py +0 -0
  198. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/hooks/before_web_hook.py +0 -0
  199. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/hooks/codex_assets.py +0 -0
  200. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/hooks/codex_hooks.py +0 -0
  201. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/hooks/copilot_adapter.py +0 -0
  202. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/hooks/cross_platform_connector.py +0 -0
  203. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/hooks/cursor_adapter.py +0 -0
  204. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/hooks/hook_daemon.py +0 -0
  205. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/hooks/hook_handlers.py +0 -0
  206. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/hooks/ide_connector.py +0 -0
  207. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/hooks/memory_protocol.py +0 -0
  208. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/hooks/portable_kit.py +0 -0
  209. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/hooks/post_tool_async_hook.py +0 -0
  210. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/hooks/post_tool_outcome_hook.py +0 -0
  211. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/hooks/prewarm_auth.py +0 -0
  212. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/hooks/rules_engine.py +0 -0
  213. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/hooks/session_registry.py +0 -0
  214. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/hooks/stop_outcome_hook.py +0 -0
  215. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/hooks/sync_loop.py +0 -0
  216. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/hooks/topic_shift_hook.py +0 -0
  217. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/hooks/user_prompt_hook.py +0 -0
  218. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/hooks/user_prompt_rehash_hook.py +0 -0
  219. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/infra/__init__.py +0 -0
  220. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/infra/auth_middleware.py +0 -0
  221. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/infra/backup.py +0 -0
  222. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/infra/cache_manager.py +0 -0
  223. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/infra/cloud_backup.py +0 -0
  224. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/infra/daemon_identity.py +0 -0
  225. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/infra/data_root.py +0 -0
  226. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/infra/event_bus.py +0 -0
  227. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/infra/heartbeat_monitor.py +0 -0
  228. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/infra/local_diagnostics.py +0 -0
  229. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/infra/pid_manager.py +0 -0
  230. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/infra/process_reaper.py +0 -0
  231. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/infra/rate_limiter.py +0 -0
  232. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/infra/webhook_dispatcher.py +0 -0
  233. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/ingestion/__init__.py +0 -0
  234. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/ingestion/adapter_manager.py +0 -0
  235. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/ingestion/base_adapter.py +0 -0
  236. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/ingestion/calendar_adapter.py +0 -0
  237. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/ingestion/credentials.py +0 -0
  238. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/ingestion/gmail_adapter.py +0 -0
  239. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/ingestion/parsers.py +0 -0
  240. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/ingestion/transcript_adapter.py +0 -0
  241. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/learning/__init__.py +0 -0
  242. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/learning/adaptive.py +0 -0
  243. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/learning/arm_catalog.py +0 -0
  244. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/learning/assertion_miner.py +0 -0
  245. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/learning/bandit.py +0 -0
  246. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/learning/bandit_cache.py +0 -0
  247. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/learning/behavioral.py +0 -0
  248. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/learning/behavioral_listener.py +0 -0
  249. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/learning/bootstrap.py +0 -0
  250. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/learning/consolidation_cycle.py +0 -0
  251. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/learning/consolidation_quantization_worker.py +0 -0
  252. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/learning/consolidation_worker.py +0 -0
  253. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/learning/cross_project.py +0 -0
  254. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/learning/database.py +0 -0
  255. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/learning/dedup_hnsw.py +0 -0
  256. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/learning/engagement.py +0 -0
  257. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/learning/ensemble.py +0 -0
  258. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/learning/entity_compiler.py +0 -0
  259. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/learning/fact_outcome_joins.py +0 -0
  260. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/learning/features.py +0 -0
  261. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/learning/feedback.py +0 -0
  262. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/learning/forgetting_scheduler.py +0 -0
  263. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/learning/hnsw_dedup.py +0 -0
  264. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/learning/labeler.py +0 -0
  265. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/learning/legacy_migration.py +0 -0
  266. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/learning/lightgbm_subprocess.py +0 -0
  267. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/learning/memory_merge.py +0 -0
  268. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/learning/model_cache.py +0 -0
  269. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/learning/model_rollback.py +0 -0
  270. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/learning/outcome_queue.py +0 -0
  271. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/learning/outcomes.py +0 -0
  272. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/learning/pattern_miner.py +0 -0
  273. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/learning/pattern_miner_constants.py +0 -0
  274. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/learning/project_context.py +0 -0
  275. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/learning/quantization_scheduler.py +0 -0
  276. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/learning/ranker.py +0 -0
  277. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/learning/ranker_common.py +0 -0
  278. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/learning/ranker_retrain_legacy.py +0 -0
  279. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/learning/ranker_retrain_online.py +0 -0
  280. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/learning/reward.py +0 -0
  281. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/learning/reward_archive.py +0 -0
  282. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/learning/reward_boost.py +0 -0
  283. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/learning/reward_proxy.py +0 -0
  284. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/learning/shadow_test.py +0 -0
  285. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/learning/signal_worker.py +0 -0
  286. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/learning/signals.py +0 -0
  287. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/learning/skill_performance_miner.py +0 -0
  288. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/learning/source_quality.py +0 -0
  289. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/learning/trigram_index.py +0 -0
  290. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/learning/workflows.py +0 -0
  291. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/llm/__init__.py +0 -0
  292. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/llm/backbone.py +0 -0
  293. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/math/__init__.py +0 -0
  294. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/math/ebbinghaus.py +0 -0
  295. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/math/fisher.py +0 -0
  296. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/math/fisher_quantized.py +0 -0
  297. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/math/hopfield.py +0 -0
  298. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/math/langevin.py +0 -0
  299. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/math/polar_quant.py +0 -0
  300. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/math/qjl.py +0 -0
  301. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/math/sheaf.py +0 -0
  302. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/math/turbo_quant.py +0 -0
  303. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/mcp/__init__.py +0 -0
  304. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/mcp/_daemon_proxy.py +0 -0
  305. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/mcp/_pool_adapter.py +0 -0
  306. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/mcp/_stdin_guard.py +0 -0
  307. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/mcp/agent_context.py +0 -0
  308. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/mcp/cli_fallback.py +0 -0
  309. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/mcp/resources.py +0 -0
  310. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/mcp/server.py +0 -0
  311. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/mcp/shared.py +0 -0
  312. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/mcp/tools.py +0 -0
  313. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/mcp/tools_active.py +0 -0
  314. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/mcp/tools_code_graph.py +0 -0
  315. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/mcp/tools_context.py +0 -0
  316. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/mcp/tools_evolution.py +0 -0
  317. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/mcp/tools_learning.py +0 -0
  318. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/mcp/tools_mesh.py +0 -0
  319. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/mcp/tools_optimize.py +0 -0
  320. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/mcp/tools_v28.py +0 -0
  321. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/mcp/tools_v3.py +0 -0
  322. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/mcp/tools_v33.py +0 -0
  323. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/mesh/__init__.py +0 -0
  324. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/mesh/remote_sync.py +0 -0
  325. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/migrations/__init__.py +0 -0
  326. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/migrations/v3_4_25_to_v3_4_26.py +0 -0
  327. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/optimize/NOTICE +0 -0
  328. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/optimize/__init__.py +0 -0
  329. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/optimize/adapters/__init__.py +0 -0
  330. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/optimize/adapters/_agent_registry.py +0 -0
  331. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/optimize/adapters/anthropic_adapter.py +0 -0
  332. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/optimize/adapters/openai_adapter.py +0 -0
  333. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/optimize/adapters/wrap.py +0 -0
  334. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/optimize/cache/__init__.py +0 -0
  335. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/optimize/cache/boundary_store.py +0 -0
  336. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/optimize/cache/centroid_store.py +0 -0
  337. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/optimize/cache/context_key.py +0 -0
  338. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/optimize/cache/exact.py +0 -0
  339. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/optimize/cache/invalidation.py +0 -0
  340. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/optimize/cache/key_builder.py +0 -0
  341. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/optimize/cache/manager.py +0 -0
  342. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/optimize/cache/semantic.py +0 -0
  343. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/optimize/cache/stampede.py +0 -0
  344. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/optimize/compress/__init__.py +0 -0
  345. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/optimize/compress/align.py +0 -0
  346. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/optimize/compress/ccr.py +0 -0
  347. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/optimize/compress/prose_llmlingua.py +0 -0
  348. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/optimize/compress/router.py +0 -0
  349. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/optimize/config/__init__.py +0 -0
  350. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/optimize/config/defaults.py +0 -0
  351. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/optimize/config/schema.py +0 -0
  352. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/optimize/config/store.py +0 -0
  353. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/optimize/metrics/__init__.py +0 -0
  354. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/optimize/metrics/counters.py +0 -0
  355. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/optimize/metrics/estimator.py +0 -0
  356. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/optimize/metrics/exporters.py +0 -0
  357. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/optimize/metrics/persistence.py +0 -0
  358. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/optimize/proxy/__init__.py +0 -0
  359. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/optimize/proxy/_helpers.py +0 -0
  360. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/optimize/proxy/anthropic_surface.py +0 -0
  361. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/optimize/proxy/capture.py +0 -0
  362. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/optimize/proxy/gemini_surface.py +0 -0
  363. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/optimize/proxy/lifecycle.py +0 -0
  364. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/optimize/proxy/openai_surface.py +0 -0
  365. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/optimize/proxy/vertex_surface.py +0 -0
  366. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/optimize/storage/__init__.py +0 -0
  367. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/optimize/storage/db.py +0 -0
  368. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/optimize/storage/schema.py +0 -0
  369. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/parameterization/__init__.py +0 -0
  370. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/parameterization/pattern_extractor.py +0 -0
  371. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/parameterization/pii_filter.py +0 -0
  372. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/parameterization/prompt_injector.py +0 -0
  373. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/parameterization/prompt_lifecycle.py +0 -0
  374. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/parameterization/soft_prompt_generator.py +0 -0
  375. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/retrieval/__init__.py +0 -0
  376. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/retrieval/agentic.py +0 -0
  377. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/retrieval/ann_index.py +0 -0
  378. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/retrieval/bm25_channel.py +0 -0
  379. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/retrieval/bridge_discovery.py +0 -0
  380. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/retrieval/channel_registry.py +0 -0
  381. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/retrieval/engine.py +0 -0
  382. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/retrieval/entity_channel.py +0 -0
  383. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/retrieval/forgetting_filter.py +0 -0
  384. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/retrieval/fusion.py +0 -0
  385. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/retrieval/hopfield_channel.py +0 -0
  386. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/retrieval/profile_channel.py +0 -0
  387. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/retrieval/quantization_aware_search.py +0 -0
  388. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/retrieval/reranker.py +0 -0
  389. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/retrieval/scope_policy.py +0 -0
  390. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/retrieval/semantic_channel.py +0 -0
  391. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/retrieval/strategy.py +0 -0
  392. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/retrieval/temporal_channel.py +0 -0
  393. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/retrieval/vector_store.py +0 -0
  394. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/server/__init__.py +0 -0
  395. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/server/api.py +0 -0
  396. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/server/bandit_loops.py +0 -0
  397. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/server/middleware/__init__.py +0 -0
  398. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/server/middleware/security_headers.py +0 -0
  399. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/server/recall_health.py +0 -0
  400. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/server/recall_serializer.py +0 -0
  401. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/server/route_mutations.py +0 -0
  402. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/server/routes/__init__.py +0 -0
  403. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/server/routes/adapters.py +0 -0
  404. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/server/routes/agents.py +0 -0
  405. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/server/routes/backup.py +0 -0
  406. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/server/routes/behavioral.py +0 -0
  407. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/server/routes/chat.py +0 -0
  408. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/server/routes/compliance.py +0 -0
  409. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/server/routes/data_io.py +0 -0
  410. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/server/routes/entity.py +0 -0
  411. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/server/routes/events.py +0 -0
  412. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/server/routes/evolution.py +0 -0
  413. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/server/routes/helpers.py +0 -0
  414. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/server/routes/ingest.py +0 -0
  415. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/server/routes/insights.py +0 -0
  416. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/server/routes/learning.py +0 -0
  417. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/server/routes/lifecycle.py +0 -0
  418. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/server/routes/memories.py +0 -0
  419. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/server/routes/mesh.py +0 -0
  420. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/server/routes/optimize.py +0 -0
  421. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/server/routes/prewarm.py +0 -0
  422. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/server/routes/profiles.py +0 -0
  423. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/server/routes/stats.py +0 -0
  424. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/server/routes/tiers.py +0 -0
  425. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/server/routes/timeline.py +0 -0
  426. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/server/routes/token.py +0 -0
  427. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/server/routes/v3_api.py +0 -0
  428. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/server/routes/ws.py +0 -0
  429. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/server/security_middleware.py +0 -0
  430. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/server/ui.py +0 -0
  431. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/server/write_identity.py +0 -0
  432. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/storage/__init__.py +0 -0
  433. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/storage/access_control.py +0 -0
  434. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/storage/access_log.py +0 -0
  435. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/storage/database.py +0 -0
  436. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/storage/embedding_migrator.py +0 -0
  437. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/storage/migration_runner.py +0 -0
  438. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/storage/migration_v33.py +0 -0
  439. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/storage/migrations/M001_add_signal_features_columns.py +0 -0
  440. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/storage/migrations/M002_model_state_history.py +0 -0
  441. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/storage/migrations/M003_migration_log.py +0 -0
  442. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/storage/migrations/M004_cross_platform_sync_log.py +0 -0
  443. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/storage/migrations/M005_bandit_tables.py +0 -0
  444. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/storage/migrations/M006_action_outcomes_reward.py +0 -0
  445. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/storage/migrations/M007_pending_outcomes.py +0 -0
  446. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/storage/migrations/M009_model_lineage.py +0 -0
  447. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/storage/migrations/M010_evolution_config.py +0 -0
  448. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/storage/migrations/M011_archive_and_merge.py +0 -0
  449. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/storage/migrations/M012_shadow_observations.py +0 -0
  450. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/storage/migrations/M013_bi_temporal_columns.py +0 -0
  451. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/storage/migrations/M014_v345_scale_ready.py +0 -0
  452. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/storage/migrations/M015_add_pinned_column.py +0 -0
  453. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/storage/migrations/M016_add_scope_support.py +0 -0
  454. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/storage/migrations/M017_ccq_scope_column.py +0 -0
  455. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/storage/migrations/M018_ingestion_operations.py +0 -0
  456. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/storage/migrations/M019_derivation_lineage.py +0 -0
  457. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/storage/migrations/M020_model_state_integrity.py +0 -0
  458. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/storage/migrations/__init__.py +0 -0
  459. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/storage/migrations.py +0 -0
  460. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/storage/models.py +0 -0
  461. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/storage/quantized_store.py +0 -0
  462. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/storage/schema.py +0 -0
  463. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/storage/schema_code_graph.py +0 -0
  464. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/storage/schema_v32.py +0 -0
  465. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/storage/schema_v3410.py +0 -0
  466. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/storage/schema_v3411.py +0 -0
  467. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/storage/schema_v343.py +0 -0
  468. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/storage/schema_v345.py +0 -0
  469. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/storage/schema_v347.py +0 -0
  470. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/storage/v2_migrator.py +0 -0
  471. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/trust/__init__.py +0 -0
  472. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/trust/gate.py +0 -0
  473. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/trust/provenance.py +0 -0
  474. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/trust/scorer.py +0 -0
  475. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/trust/signals.py +0 -0
  476. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/ui/css/brain.css +0 -0
  477. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/ui/css/legacy-dashboard.css +0 -0
  478. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/ui/css/neural-glass.css +0 -0
  479. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/ui/favicon.svg +0 -0
  480. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/ui/index.html +0 -0
  481. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/ui/js/agents.js +0 -0
  482. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/ui/js/auto-settings.js +0 -0
  483. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/ui/js/brain.js +0 -0
  484. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/ui/js/clusters.js +0 -0
  485. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/ui/js/compliance.js +0 -0
  486. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/ui/js/core.js +0 -0
  487. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/ui/js/dashboard.js +0 -0
  488. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/ui/js/events.js +0 -0
  489. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/ui/js/fact-detail.js +0 -0
  490. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/ui/js/feedback.js +0 -0
  491. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/ui/js/graph-event-bus.js +0 -0
  492. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/ui/js/graph-filters.js +0 -0
  493. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/ui/js/graph-ui.js +0 -0
  494. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/ui/js/ide-status.js +0 -0
  495. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/ui/js/init.js +0 -0
  496. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/ui/js/knowledge-graph.js +0 -0
  497. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/ui/js/lifecycle.js +0 -0
  498. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/ui/js/math-health.js +0 -0
  499. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/ui/js/memories.js +0 -0
  500. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/ui/js/memory-chat.js +0 -0
  501. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/ui/js/memory-timeline.js +0 -0
  502. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/ui/js/modal.js +0 -0
  503. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/ui/js/ng-entities.js +0 -0
  504. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/ui/js/ng-health.js +0 -0
  505. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/ui/js/ng-ingestion.js +0 -0
  506. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/ui/js/ng-mesh.js +0 -0
  507. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/ui/js/ng-shell.js +0 -0
  508. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/ui/js/ng-skills.js +0 -0
  509. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/ui/js/optimize.js +0 -0
  510. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/ui/js/profiles.js +0 -0
  511. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/ui/js/quick-actions.js +0 -0
  512. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/ui/js/recall-lab.js +0 -0
  513. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/ui/js/search.js +0 -0
  514. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/ui/js/settings.js +0 -0
  515. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/ui/js/timeline.js +0 -0
  516. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/ui/js/trust-dashboard.js +0 -0
  517. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/ui/vendor/bootstrap-icons/bootstrap-icons.css +0 -0
  518. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/ui/vendor/bootstrap-icons/fonts/bootstrap-icons.woff +0 -0
  519. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/ui/vendor/bootstrap-icons/fonts/bootstrap-icons.woff2 +0 -0
  520. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/ui/vendor/bootstrap.bundle.min.js +0 -0
  521. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/ui/vendor/bootstrap.min.css +0 -0
  522. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/ui/vendor/d3.v7.min.js +0 -0
  523. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/ui/vendor/graphology-library.min.js +0 -0
  524. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/ui/vendor/graphology.umd.min.js +0 -0
  525. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/ui/vendor/inter-ui/inter-variable.min.css +0 -0
  526. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/ui/vendor/inter-ui/variable/InterVariable-Italic.woff2 +0 -0
  527. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/ui/vendor/inter-ui/variable/InterVariable.woff2 +0 -0
  528. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/ui/vendor/sigma.min.js +0 -0
  529. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/vector/__init__.py +0 -0
  530. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory/vector/lancedb_backend.py +0 -0
  531. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory.egg-info/SOURCES.txt +0 -0
  532. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory.egg-info/dependency_links.txt +0 -0
  533. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory.egg-info/entry_points.txt +0 -0
  534. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory.egg-info/requires.txt +0 -0
  535. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/src/superlocalmemory.egg-info/top_level.txt +0 -0
  536. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/tests/test_auto_hooks.py +0 -0
  537. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/tests/test_before_web_hook.py +0 -0
  538. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/tests/test_behavioral_full.py +0 -0
  539. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/tests/test_claude_hooks.py +0 -0
  540. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/tests/test_cli_core.py +0 -0
  541. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/tests/test_cli_json.py +0 -0
  542. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/tests/test_cli_v33.py +0 -0
  543. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/tests/test_compliance_full.py +0 -0
  544. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/tests/test_config_system.py +0 -0
  545. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/tests/test_dashboard_preserve_embedding.py +0 -0
  546. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/tests/test_engine_hooks.py +0 -0
  547. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/tests/test_event_bus.py +0 -0
  548. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/tests/test_features.py +0 -0
  549. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/tests/test_final_locomo_mini.py +0 -0
  550. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/tests/test_graph_integrity.py +0 -0
  551. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/tests/test_hook_handlers.py +0 -0
  552. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/tests/test_ide_connector.py +0 -0
  553. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/tests/test_infra.py +0 -0
  554. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/tests/test_injection.py +0 -0
  555. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/tests/test_learning_advanced.py +0 -0
  556. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/tests/test_learning_collectors.py +0 -0
  557. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/tests/test_llm_provider.py +0 -0
  558. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/tests/test_mcp_server.py +0 -0
  559. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/tests/test_migration.py +0 -0
  560. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/tests/test_mode_switch_preservation.py +0 -0
  561. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/tests/test_post_install.py +0 -0
  562. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/tests/test_ranker.py +0 -0
  563. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/tests/test_resource_lifecycle.py +0 -0
  564. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/tests/test_topic_shift_hook.py +0 -0
  565. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/tests/test_trust_full.py +0 -0
  566. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/tests/test_v3_api.py +0 -0
  567. {superlocalmemory-3.7.1 → superlocalmemory-3.7.3}/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.1
3
+ Version: 3.7.3
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
@@ -101,13 +101,16 @@ Requires-Dist: httpx2==2.5.0; extra == "dev"
101
101
  Dynamic: license-file
102
102
 
103
103
  <p align="center">
104
- <img src="https://superlocalmemory.com/assets/logo-mark.png" alt="SuperLocalMemory" width="200"/>
104
+ <picture>
105
+ <source media="(prefers-color-scheme: dark)" srcset="assets/branding/slm-wordmark-dark.svg">
106
+ <img src="assets/branding/slm-wordmark-light.svg" alt="SuperLocalMemory" width="390">
107
+ </picture>
105
108
  </p>
106
109
 
107
- <h1 align="center">SuperLocalMemory V3.7.1</h1>
110
+ <h1 align="center">SuperLocalMemory V3.7.3</h1>
108
111
  <p align="center"><strong>Cache. Compress. Remember. Three surfaces — proxy, MCP tools, or skill. Every setup covered.</strong><br/>
109
112
  <em>Local-first agent memory with explicit operating modes, auditable retrieval, and optional Optimize tools.</em></p>
110
- <p align="center"><code>v3.7.1</code> — <strong>Installer-parity hotfix; release witnesses required before outreach.</strong><br/>
113
+ <p align="center"><code>v3.7.3</code> — <strong>Scale Engine integrity release: explicit legacy adoption, durable promotion recovery, and honest runtime status.</strong><br/>
111
114
  Proxy: <code>slm wrap claude</code> &nbsp;·&nbsp; MCP: add <code>slm_compress</code> to your config &nbsp;·&nbsp; Skill: zero-config</p>
112
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>
113
116
 
@@ -210,7 +213,7 @@ health surfaces expose the stages actually completed by the installed runtime.
210
213
  | **Retrieval and recall** | Semantic, lexical, temporal, Hopfield and spreading-activation candidate channels; RRF fusion, optional reranking and graph score enhancement | Healthy channels participate; response provenance states the evidence used. |
211
214
  | **Brain and learning** | Behavioral patterns, feedback/outcome records, rewards, consolidation, LightGBM-related ranking components, soft prompts, and guarded skill-evolution workflows | Learning is evidence-driven; it does not claim autonomous correctness or guaranteed improvement. |
212
215
  | **Knowledge graph and entities** | Canonical entities, aliases, entity profiles, graph edges, scenes, timelines, explorer and graph APIs | Stored/derived graph data is evidence, not an instruction authority. |
213
- | **Scale Engine** | SQLite + sqlite-vec are canonical. CozoDB graph and LanceDB vector projections are packaged and managed with prepare → verify → promote → rollback | Promotion is explicit and parity-gated; do not advertise an unverified projection as the source of truth. |
216
+ | **Scale Engine** | SQLite + sqlite-vec are canonical. CozoDB graph and LanceDB vector projections are managed with prepare → verify → promote → rollback; a structurally detected pre-v3.7 projection can be explicitly adopted. | Promotion is parity-gated and crash-recoverable. Legacy adoption preserves the prior projection as a rollback backup; if proof fails, routing remains on canonical SQLite and status reports repair required. |
214
217
  | **Optimize** | Exact cache, tagged invalidation, safe compression, opt-in aggressive prose compression, CCR originals, proxy/MCP/skill surfaces | Only proxy intercepts a primary provider turn. MCP/skill cache results explicitly routed through SLM. |
215
218
  | **Mesh** | Authenticated peer messages, inbox/outbox, locks, offline queue, optional discovery and mesh MCP tools | Mesh is coordination, not automatic replicated memory or conflict resolution. |
216
219
  | **Governance and operations** | Provenance, audit/retention/policy surfaces, export/erasure controls, diagnostics, health, backups and daemon lifecycle | These are engineering controls, not a legal certification. |
@@ -329,10 +332,15 @@ optional reranking, and entity-graph score enhancement. The entity graph does
329
332
  not create an independent candidate in the current implementation. Core memory
330
333
  is SQLite-backed. SQLite and sqlite-vec remain the canonical source of truth.
331
334
  The packaged Scale Engine can maintain CozoDB graph and LanceDB vector
332
- projections, and it remains outside active retrieval paths until
333
- `slm db scale prepare`, `verify`, and `promote` prove parity against the
334
- canonical store. This makes the capability available on a fresh installation
335
- without silently migrating an existing user's data.
335
+ projections, and it remains outside active retrieval paths until a staged
336
+ parity witness proves it matches the canonical store. New installations remain
337
+ on Local Core. During upgrade, `slm db scale status` can identify a positive
338
+ pre-v3.7 layout candidate; the operator confirms it with `slm db scale adopt`.
339
+ SLM then rebuilds from canonical SQLite, verifies it, and promotes it with a
340
+ durable recovery journal while retaining the prior directories as a rollback
341
+ backup. `adopt` reports `restart_required: true`; run `slm restart` before
342
+ checking daemon health. If proof fails, recall remains on SQLite and status
343
+ reports repair required.
336
344
 
337
345
  Canonical ingestion is a durable state machine: `raw → queryable → enriching →
338
346
  complete`, with `failed` retaining raw evidence, error details, attempt count,
@@ -1,11 +1,14 @@
1
1
  <p align="center">
2
- <img src="https://superlocalmemory.com/assets/logo-mark.png" alt="SuperLocalMemory" width="200"/>
2
+ <picture>
3
+ <source media="(prefers-color-scheme: dark)" srcset="assets/branding/slm-wordmark-dark.svg">
4
+ <img src="assets/branding/slm-wordmark-light.svg" alt="SuperLocalMemory" width="390">
5
+ </picture>
3
6
  </p>
4
7
 
5
- <h1 align="center">SuperLocalMemory V3.7.1</h1>
8
+ <h1 align="center">SuperLocalMemory V3.7.3</h1>
6
9
  <p align="center"><strong>Cache. Compress. Remember. Three surfaces — proxy, MCP tools, or skill. Every setup covered.</strong><br/>
7
10
  <em>Local-first agent memory with explicit operating modes, auditable retrieval, and optional Optimize tools.</em></p>
8
- <p align="center"><code>v3.7.1</code> — <strong>Installer-parity hotfix; release witnesses required before outreach.</strong><br/>
11
+ <p align="center"><code>v3.7.3</code> — <strong>Scale Engine integrity release: explicit legacy adoption, durable promotion recovery, and honest runtime status.</strong><br/>
9
12
  Proxy: <code>slm wrap claude</code> &nbsp;·&nbsp; MCP: add <code>slm_compress</code> to your config &nbsp;·&nbsp; Skill: zero-config</p>
10
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>
11
14
 
@@ -108,7 +111,7 @@ health surfaces expose the stages actually completed by the installed runtime.
108
111
  | **Retrieval and recall** | Semantic, lexical, temporal, Hopfield and spreading-activation candidate channels; RRF fusion, optional reranking and graph score enhancement | Healthy channels participate; response provenance states the evidence used. |
109
112
  | **Brain and learning** | Behavioral patterns, feedback/outcome records, rewards, consolidation, LightGBM-related ranking components, soft prompts, and guarded skill-evolution workflows | Learning is evidence-driven; it does not claim autonomous correctness or guaranteed improvement. |
110
113
  | **Knowledge graph and entities** | Canonical entities, aliases, entity profiles, graph edges, scenes, timelines, explorer and graph APIs | Stored/derived graph data is evidence, not an instruction authority. |
111
- | **Scale Engine** | SQLite + sqlite-vec are canonical. CozoDB graph and LanceDB vector projections are packaged and managed with prepare → verify → promote → rollback | Promotion is explicit and parity-gated; do not advertise an unverified projection as the source of truth. |
114
+ | **Scale Engine** | SQLite + sqlite-vec are canonical. CozoDB graph and LanceDB vector projections are managed with prepare → verify → promote → rollback; a structurally detected pre-v3.7 projection can be explicitly adopted. | Promotion is parity-gated and crash-recoverable. Legacy adoption preserves the prior projection as a rollback backup; if proof fails, routing remains on canonical SQLite and status reports repair required. |
112
115
  | **Optimize** | Exact cache, tagged invalidation, safe compression, opt-in aggressive prose compression, CCR originals, proxy/MCP/skill surfaces | Only proxy intercepts a primary provider turn. MCP/skill cache results explicitly routed through SLM. |
113
116
  | **Mesh** | Authenticated peer messages, inbox/outbox, locks, offline queue, optional discovery and mesh MCP tools | Mesh is coordination, not automatic replicated memory or conflict resolution. |
114
117
  | **Governance and operations** | Provenance, audit/retention/policy surfaces, export/erasure controls, diagnostics, health, backups and daemon lifecycle | These are engineering controls, not a legal certification. |
@@ -227,10 +230,15 @@ optional reranking, and entity-graph score enhancement. The entity graph does
227
230
  not create an independent candidate in the current implementation. Core memory
228
231
  is SQLite-backed. SQLite and sqlite-vec remain the canonical source of truth.
229
232
  The packaged Scale Engine can maintain CozoDB graph and LanceDB vector
230
- projections, and it remains outside active retrieval paths until
231
- `slm db scale prepare`, `verify`, and `promote` prove parity against the
232
- canonical store. This makes the capability available on a fresh installation
233
- without silently migrating an existing user's data.
233
+ projections, and it remains outside active retrieval paths until a staged
234
+ parity witness proves it matches the canonical store. New installations remain
235
+ on Local Core. During upgrade, `slm db scale status` can identify a positive
236
+ pre-v3.7 layout candidate; the operator confirms it with `slm db scale adopt`.
237
+ SLM then rebuilds from canonical SQLite, verifies it, and promotes it with a
238
+ durable recovery journal while retaining the prior directories as a rollback
239
+ backup. `adopt` reports `restart_required: true`; run `slm restart` before
240
+ checking daemon health. If proof fails, recall remains on SQLite and status
241
+ reports repair required.
234
242
 
235
243
  Canonical ingestion is a durable state machine: `raw → queryable → enriching →
236
244
  complete`, with `failed` retaining raw evidence, error details, attempt count,
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "superlocalmemory"
3
- version = "3.7.1"
3
+ version = "3.7.3"
4
4
  description = "Local-first agent memory with auditable hybrid retrieval"
5
5
  readme = "README.md"
6
6
  license = "AGPL-3.0-or-later"
@@ -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.1"
35
+ __version__ = "3.7.3"
36
36
 
37
37
  _REQUIRED_VERSIONS = {
38
38
  "sentence_transformers": "5.3.0",
@@ -270,8 +270,8 @@ def main() -> None:
270
270
  )
271
271
  db_scale_p.add_argument(
272
272
  "scale_action",
273
- choices=("status", "prepare", "verify", "promote", "rollback"),
274
- help="Lifecycle action. Prepare and verify never mutate active projection paths.",
273
+ choices=("status", "adopt", "prepare", "verify", "promote", "rollback"),
274
+ help="Lifecycle action. Adopt confirms a detected legacy projection; prepare and verify never mutate active paths.",
275
275
  )
276
276
  db_scale_p.add_argument("--stage-id", help="Stage identifier required by verify/promote")
277
277
  db_scale_p.add_argument("--backup-id", help="Backup identifier required by rollback")
@@ -9,11 +9,23 @@ def cmd_db_scale(args: Namespace) -> int:
9
9
  from superlocalmemory.core.config import SLMConfig
10
10
  from superlocalmemory.core.scale_engine import ScaleEngineError, ScaleEngineManager
11
11
 
12
- manager = ScaleEngineManager(SLMConfig.load())
13
12
  action = args.scale_action
13
+ # Scale Engine projections are currently canonical-default-profile data.
14
+ # Adoption must not fail merely because the operator is working in another
15
+ # profile, and it must not rewrite that selected profile.
16
+ manager = ScaleEngineManager(
17
+ SLMConfig.load(), profile_id="default" if action == "adopt" else None
18
+ )
14
19
  try:
15
20
  if action == "status":
16
21
  result = manager.status()
22
+ elif action == "adopt":
23
+ result = manager.adopt_legacy_projection()
24
+ if result is None:
25
+ raise ScaleEngineError(
26
+ "no confirmed legacy projection candidate; see `slm db scale status`"
27
+ )
28
+ result = {**result, "restart_required": True}
17
29
  elif action == "prepare":
18
30
  result = manager.prepare()
19
31
  elif action == "verify":
@@ -97,6 +97,8 @@ class BackendOrchestrator:
97
97
  except Exception as exc:
98
98
  logger.warning("Initial rebalance failed (non-fatal): %s", exc)
99
99
 
100
+ self._recover_interrupted_scale_promotion()
101
+
100
102
  # Backends may be installed with the product, but installing a wheel
101
103
  # is not authorization to mutate an existing data root. Only a
102
104
  # verified, explicit promotion may initialize and migrate projections.
@@ -134,6 +136,19 @@ class BackendOrchestrator:
134
136
  "active" if self._cozo and self._cozo_status() == "active" else "off",
135
137
  "active" if self._lancedb and self._lancedb_status() == "active" else "off")
136
138
 
139
+ def _recover_interrupted_scale_promotion(self) -> None:
140
+ """Repair an interrupted promotion; never auto-mutate a legacy root."""
141
+ try:
142
+ from superlocalmemory.core.scale_engine import ScaleEngineManager
143
+
144
+ result = ScaleEngineManager(self._config, profile_id="default").recover_interrupted_promotion()
145
+ if result:
146
+ logger.warning("Scale Engine promotion recovery: %s", result)
147
+ except Exception as exc:
148
+ # A scale projection is derived data. Startup must keep serving
149
+ # canonical SQLite even if optional recovery itself is unhealthy.
150
+ logger.error("Scale Engine recovery requires repair; Local Core remains active: %s", exc)
151
+
137
152
  # ------------------------------------------------------------------
138
153
  # Incremental Sync (F-04: called from store_pipeline)
139
154
  # ------------------------------------------------------------------
@@ -70,7 +70,13 @@ def _load_embedding_model(name: str) -> tuple:
70
70
 
71
71
  Returns (model, backend_name) or (None, "").
72
72
  """
73
- from sentence_transformers import SentenceTransformer
73
+ try:
74
+ from sentence_transformers import SentenceTransformer
75
+ except Exception:
76
+ # Dependency/version errors must stay inside the JSON-lines protocol.
77
+ # Letting this import escape kills the worker before it can explain the
78
+ # failure, which the parent previously mislabeled as a long timeout.
79
+ return None, ""
74
80
 
75
81
  for backend in _embedding_backend_order():
76
82
  try:
@@ -295,6 +295,8 @@ class EmbeddingService:
295
295
  never hangs indefinitely on cold model loads or network issues.
296
296
  """
297
297
  with self._lock:
298
+ if not self._available:
299
+ return None
298
300
  # Worker recycling: restart after N requests to prevent
299
301
  # C++ allocator fragmentation over long-running sessions.
300
302
  if self._request_count >= _WORKER_RECYCLE_AFTER and self._worker_proc is not None:
@@ -339,6 +341,12 @@ class EmbeddingService:
339
341
  resp = json.loads(resp_line)
340
342
  if not resp.get("ok"):
341
343
  logger.warning("Worker error: %s", resp.get("error"))
344
+ # A well-formed worker error is a terminal local
345
+ # dependency/model failure, not a transient pipe race.
346
+ # Disable this service and terminate the child so every
347
+ # recall does not respawn a heavyweight failing process.
348
+ self._available = False
349
+ self._kill_worker()
342
350
  return None
343
351
  self._reset_idle_timer()
344
352
  self._request_count += 1
@@ -24,6 +24,7 @@ from typing import Any
24
24
  from superlocalmemory.core.config import CANONICAL_RECALL_LIMIT, SLMConfig
25
25
  from superlocalmemory.core.engine_capabilities import Capabilities, CapabilityError
26
26
  from superlocalmemory.core.modes import get_capabilities
27
+ from superlocalmemory.learning.outcome_queue import RecallEvent, enqueue_recall
27
28
  from superlocalmemory.storage.models import (
28
29
  AtomicFact, MemoryRecord, Mode, RecallResponse,
29
30
  )
@@ -664,9 +665,6 @@ class MemoryEngine:
664
665
  # recall correctness (LLD-02 §4.9, LLD-08 §4.1).
665
666
  if session_id:
666
667
  try:
667
- from superlocalmemory.learning.outcome_queue import (
668
- RecallEvent, enqueue_recall,
669
- )
670
668
  fact_ids = tuple(
671
669
  getattr(r.fact, "fact_id", "") or ""
672
670
  for r in getattr(response, "results", [])
@@ -388,11 +388,6 @@ def _init_spreading_activation(
388
388
  vector_store: Any,
389
389
  ) -> Any | None:
390
390
  """Create SpreadingActivation for Phase 3 5th retrieval channel."""
391
- # V3.3.21: Guard against None vector_store. Without embeddings, SA's
392
- # search() crashes with "'NoneType' has no attribute 'search'".
393
- if vector_store is None:
394
- logger.debug("SpreadingActivation skipped: no vector_store")
395
- return None
396
391
  try:
397
392
  from superlocalmemory.retrieval.spreading_activation import (
398
393
  SpreadingActivation,
@@ -15,12 +15,13 @@ Design notes:
15
15
  available before we even try — better to defer than thrash.
16
16
  - Lock file lives at ``~/.superlocalmemory/ram_lock.sem`` by default,
17
17
  tests may monkeypatch ``RAM_LOCK_PATH``.
18
- - POSIX only; Windows build is deferred per LLD-00 §7 and MASTER-PLAN H-01.
18
+ - Uses a standard-library advisory lock on POSIX and Windows. The lock is
19
+ deliberately file-backed so independent daemon, CLI, and worker processes
20
+ share the same RAM reservation.
19
21
  """
20
22
 
21
23
  from __future__ import annotations
22
24
 
23
- import fcntl
24
25
  import os
25
26
  import time
26
27
  from contextlib import contextmanager
@@ -29,6 +30,11 @@ from typing import Iterator
29
30
 
30
31
  import psutil
31
32
 
33
+ try: # POSIX advisory locks (macOS/Linux)
34
+ import fcntl as _fcntl
35
+ except ImportError: # Windows uses the stdlib byte-range equivalent below.
36
+ _fcntl = None
37
+
32
38
  # Public override retained for tests and embedders. ``None`` means resolve the
33
39
  # lock dynamically so a long-lived process can switch canonical namespaces
34
40
  # without retaining the first root it observed.
@@ -44,6 +50,38 @@ def _ram_lock_path() -> Path:
44
50
  return state_path("ram_lock.sem")
45
51
 
46
52
 
53
+ def _acquire_lock(fd: int) -> None:
54
+ """Acquire one non-blocking cross-process lock for the semaphore."""
55
+ if _fcntl is not None:
56
+ _fcntl.flock(fd, _fcntl.LOCK_EX | _fcntl.LOCK_NB)
57
+ return
58
+
59
+ import msvcrt
60
+
61
+ # ``msvcrt.locking`` cannot reserve an empty file. The marker byte is
62
+ # purely structural; the human-readable audit marker is written after the
63
+ # reservation is acquired.
64
+ if os.fstat(fd).st_size == 0:
65
+ os.write(fd, b"\0")
66
+ os.lseek(fd, 0, os.SEEK_SET)
67
+ try:
68
+ msvcrt.locking(fd, msvcrt.LK_NBLCK, 1)
69
+ except OSError as exc:
70
+ raise BlockingIOError("RAM reservation is already held") from exc
71
+
72
+
73
+ def _release_lock(fd: int) -> None:
74
+ """Release a reservation acquired by :func:`_acquire_lock`."""
75
+ if _fcntl is not None:
76
+ _fcntl.flock(fd, _fcntl.LOCK_UN)
77
+ return
78
+
79
+ import msvcrt
80
+
81
+ os.lseek(fd, 0, os.SEEK_SET)
82
+ msvcrt.locking(fd, msvcrt.LK_UNLCK, 1)
83
+
84
+
47
85
  @contextmanager
48
86
  def ram_reservation(
49
87
  name: str,
@@ -96,7 +134,7 @@ def ram_reservation(
96
134
  deadline = time.time() + timeout_s
97
135
  while True:
98
136
  try:
99
- fcntl.flock(fd, fcntl.LOCK_EX | fcntl.LOCK_NB)
137
+ _acquire_lock(fd)
100
138
  break
101
139
  except BlockingIOError:
102
140
  if time.time() >= deadline:
@@ -114,7 +152,7 @@ def ram_reservation(
114
152
  yield
115
153
  finally:
116
154
  try:
117
- fcntl.flock(fd, fcntl.LOCK_UN)
155
+ _release_lock(fd)
118
156
  finally:
119
157
  os.close(fd)
120
158