superlocalmemory 3.7.3__tar.gz → 3.7.4__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.3/src/superlocalmemory.egg-info → superlocalmemory-3.7.4}/PKG-INFO +6 -5
  2. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/README.md +5 -4
  3. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/pyproject.toml +1 -1
  4. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/__init__.py +1 -1
  5. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/core/scale_engine.py +96 -14
  6. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/graph/cozo_backend.py +12 -17
  7. superlocalmemory-3.7.4/src/superlocalmemory/storage/logical_edges.py +45 -0
  8. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4/src/superlocalmemory.egg-info}/PKG-INFO +6 -5
  9. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory.egg-info/SOURCES.txt +1 -0
  10. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/AUTHORS.md +0 -0
  11. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/LICENSE +0 -0
  12. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/NOTICE +0 -0
  13. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/plugin-src/skills/slm-cache/SKILL.md +0 -0
  14. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/plugin-src/skills/slm-compress/SKILL.md +0 -0
  15. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/plugin-src/skills/slm-graph/SKILL.md +0 -0
  16. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/plugin-src/skills/slm-recall/SKILL.md +0 -0
  17. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/plugin-src/skills/slm-remember/SKILL.md +0 -0
  18. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/plugin-src/skills/slm-session/SKILL.md +0 -0
  19. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/plugin-src/skills/slm-status/SKILL.md +0 -0
  20. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/setup.cfg +0 -0
  21. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/attribution/__init__.py +0 -0
  22. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/attribution/mathematical_dna.py +0 -0
  23. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/attribution/signer.py +0 -0
  24. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/attribution/watermark.py +0 -0
  25. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/cli/__init__.py +0 -0
  26. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/cli/_lazy_init.py +0 -0
  27. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/cli/cache_cmd.py +0 -0
  28. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/cli/commands.py +0 -0
  29. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/cli/compress_cmd.py +0 -0
  30. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/cli/context_commands.py +0 -0
  31. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/cli/daemon.py +0 -0
  32. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/cli/db_migrate.py +0 -0
  33. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/cli/diagnostics_cmd.py +0 -0
  34. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/cli/escape_hatch.py +0 -0
  35. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/cli/evidence_cmd.py +0 -0
  36. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/cli/help_cmd.py +0 -0
  37. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/cli/ingest_cmd.py +0 -0
  38. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/cli/json_output.py +0 -0
  39. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/cli/main.py +0 -0
  40. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/cli/migrate_cmd.py +0 -0
  41. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/cli/optimize_cmd.py +0 -0
  42. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/cli/optimize_constants.py +0 -0
  43. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/cli/pending_store.py +0 -0
  44. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/cli/post_install.py +0 -0
  45. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/cli/proxy_cmd.py +0 -0
  46. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/cli/scale_engine_cmd.py +0 -0
  47. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/cli/service_installer.py +0 -0
  48. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/cli/setup_wizard.py +0 -0
  49. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/cli/version_banner.py +0 -0
  50. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/cli/wizard_v3426_options.py +0 -0
  51. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/code_graph/__init__.py +0 -0
  52. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/code_graph/blast_radius.py +0 -0
  53. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/code_graph/bridge/__init__.py +0 -0
  54. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/code_graph/bridge/entity_resolver.py +0 -0
  55. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/code_graph/bridge/event_listeners.py +0 -0
  56. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/code_graph/bridge/fact_enricher.py +0 -0
  57. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/code_graph/bridge/hebbian_linker.py +0 -0
  58. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/code_graph/bridge/temporal_checker.py +0 -0
  59. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/code_graph/changes.py +0 -0
  60. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/code_graph/communities.py +0 -0
  61. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/code_graph/config.py +0 -0
  62. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/code_graph/database.py +0 -0
  63. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/code_graph/extractors/__init__.py +0 -0
  64. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/code_graph/extractors/python.py +0 -0
  65. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/code_graph/extractors/typescript.py +0 -0
  66. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/code_graph/flows.py +0 -0
  67. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/code_graph/git_hooks.py +0 -0
  68. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/code_graph/graph_engine.py +0 -0
  69. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/code_graph/graph_store.py +0 -0
  70. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/code_graph/incremental.py +0 -0
  71. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/code_graph/models.py +0 -0
  72. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/code_graph/parser.py +0 -0
  73. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/code_graph/resolver.py +0 -0
  74. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/code_graph/search.py +0 -0
  75. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/code_graph/service.py +0 -0
  76. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/code_graph/watcher.py +0 -0
  77. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/compliance/__init__.py +0 -0
  78. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/compliance/abac.py +0 -0
  79. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/compliance/audit.py +0 -0
  80. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/compliance/eu_ai_act.py +0 -0
  81. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/compliance/gdpr.py +0 -0
  82. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/compliance/lifecycle.py +0 -0
  83. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/compliance/retention.py +0 -0
  84. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/compliance/scheduler.py +0 -0
  85. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/core/__init__.py +0 -0
  86. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/core/backend_orchestrator.py +0 -0
  87. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/core/block_hygiene.py +0 -0
  88. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/core/clock_monitor.py +0 -0
  89. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/core/config.py +0 -0
  90. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/core/consolidation_engine.py +0 -0
  91. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/core/context_cache.py +0 -0
  92. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/core/db_pool.py +0 -0
  93. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/core/derivation_lineage.py +0 -0
  94. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/core/embedding_worker.py +0 -0
  95. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/core/embeddings.py +0 -0
  96. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/core/engine.py +0 -0
  97. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/core/engine_capabilities.py +0 -0
  98. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/core/engine_ingestion.py +0 -0
  99. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/core/engine_lock.py +0 -0
  100. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/core/engine_wiring.py +0 -0
  101. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/core/error_catalog.py +0 -0
  102. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/core/error_envelope.py +0 -0
  103. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/core/evidence_bundle.py +0 -0
  104. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/core/fact_consolidator.py +0 -0
  105. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/core/file_lock.py +0 -0
  106. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/core/graph_analyzer.py +0 -0
  107. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/core/graph_pruner.py +0 -0
  108. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/core/health_monitor.py +0 -0
  109. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/core/hooks.py +0 -0
  110. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/core/ingest_gate.py +0 -0
  111. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/core/ingestion_command.py +0 -0
  112. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/core/injection.py +0 -0
  113. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/core/lifecycle_state.py +0 -0
  114. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/core/loop_watchdog.py +0 -0
  115. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/core/maintenance.py +0 -0
  116. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/core/maintenance_scheduler.py +0 -0
  117. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/core/mcp_embedder_proxy.py +0 -0
  118. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/core/modes.py +0 -0
  119. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/core/mutations.py +0 -0
  120. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/core/ollama_embedder.py +0 -0
  121. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/core/platform_utils.py +0 -0
  122. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/core/priority_queue.py +0 -0
  123. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/core/profiles.py +0 -0
  124. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/core/pruning_engine.py +0 -0
  125. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/core/queue_consumer.py +0 -0
  126. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/core/queue_dispatcher.py +0 -0
  127. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/core/ram_lock.py +0 -0
  128. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/core/rate_limit.py +0 -0
  129. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/core/recall_gate.py +0 -0
  130. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/core/recall_pipeline.py +0 -0
  131. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/core/recall_queue.py +0 -0
  132. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/core/recall_worker.py +0 -0
  133. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/core/registry.py +0 -0
  134. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/core/remote_mode.py +0 -0
  135. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/core/reranker_worker.py +0 -0
  136. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/core/safe_fs.py +0 -0
  137. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/core/score_contract.py +0 -0
  138. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/core/security_primitives.py +0 -0
  139. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/core/shadow_router.py +0 -0
  140. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/core/slm_disabled.py +0 -0
  141. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/core/slmignore.py +0 -0
  142. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/core/store_pipeline.py +0 -0
  143. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/core/summarizer.py +0 -0
  144. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/core/tier_manager.py +0 -0
  145. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/core/topic_signature.py +0 -0
  146. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/core/worker_pool.py +0 -0
  147. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/dynamics/__init__.py +0 -0
  148. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/dynamics/activation_guided_quantization.py +0 -0
  149. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/dynamics/eap_scheduler.py +0 -0
  150. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/dynamics/ebbinghaus_langevin_coupling.py +0 -0
  151. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/dynamics/fisher_langevin_coupling.py +0 -0
  152. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/encoding/__init__.py +0 -0
  153. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/encoding/auto_linker.py +0 -0
  154. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/encoding/cognitive_consolidator.py +0 -0
  155. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/encoding/consolidator.py +0 -0
  156. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/encoding/context_generator.py +0 -0
  157. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/encoding/emotional.py +0 -0
  158. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/encoding/entity_resolver.py +0 -0
  159. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/encoding/entropy_gate.py +0 -0
  160. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/encoding/fact_extractor.py +0 -0
  161. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/encoding/foresight.py +0 -0
  162. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/encoding/graph_builder.py +0 -0
  163. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/encoding/observation_builder.py +0 -0
  164. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/encoding/scene_builder.py +0 -0
  165. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/encoding/signal_inference.py +0 -0
  166. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/encoding/temporal_parser.py +0 -0
  167. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/encoding/temporal_validator.py +0 -0
  168. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/encoding/type_router.py +0 -0
  169. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/evaluation/__init__.py +0 -0
  170. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/evaluation/calibration.py +0 -0
  171. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/evolution/__init__.py +0 -0
  172. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/evolution/blind_verifier.py +0 -0
  173. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/evolution/budget.py +0 -0
  174. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/evolution/evolution_store.py +0 -0
  175. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/evolution/llm_dispatch.py +0 -0
  176. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/evolution/mutation_generator.py +0 -0
  177. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/evolution/skill_evolver.py +0 -0
  178. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/evolution/triggers.py +0 -0
  179. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/evolution/types.py +0 -0
  180. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/graph/__init__.py +0 -0
  181. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/hooks/__init__.py +0 -0
  182. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/hooks/_outcome_common.py +0 -0
  183. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/hooks/adapter_base.py +0 -0
  184. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/hooks/antigravity_adapter.py +0 -0
  185. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/hooks/auto_capture.py +0 -0
  186. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/hooks/auto_invoker.py +0 -0
  187. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/hooks/auto_parameterize.py +0 -0
  188. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/hooks/auto_recall.py +0 -0
  189. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/hooks/auto_recall_hook.py +0 -0
  190. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/hooks/before_web_hook.py +0 -0
  191. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/hooks/claude_code_hooks.py +0 -0
  192. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/hooks/codex_assets.py +0 -0
  193. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/hooks/codex_hooks.py +0 -0
  194. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/hooks/context_payload.py +0 -0
  195. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/hooks/copilot_adapter.py +0 -0
  196. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/hooks/cross_platform_connector.py +0 -0
  197. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/hooks/cursor_adapter.py +0 -0
  198. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/hooks/hook_daemon.py +0 -0
  199. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/hooks/hook_handlers.py +0 -0
  200. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/hooks/ide_connector.py +0 -0
  201. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/hooks/memory_protocol.py +0 -0
  202. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/hooks/portable_kit.py +0 -0
  203. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/hooks/post_tool_async_hook.py +0 -0
  204. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/hooks/post_tool_outcome_hook.py +0 -0
  205. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/hooks/prewarm_auth.py +0 -0
  206. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/hooks/rules_engine.py +0 -0
  207. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/hooks/session_registry.py +0 -0
  208. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/hooks/stop_outcome_hook.py +0 -0
  209. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/hooks/sync_loop.py +0 -0
  210. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/hooks/topic_shift_hook.py +0 -0
  211. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/hooks/user_prompt_hook.py +0 -0
  212. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/hooks/user_prompt_rehash_hook.py +0 -0
  213. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/infra/__init__.py +0 -0
  214. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/infra/auth_middleware.py +0 -0
  215. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/infra/backup.py +0 -0
  216. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/infra/cache_manager.py +0 -0
  217. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/infra/cloud_backup.py +0 -0
  218. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/infra/daemon_identity.py +0 -0
  219. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/infra/data_root.py +0 -0
  220. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/infra/event_bus.py +0 -0
  221. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/infra/heartbeat_monitor.py +0 -0
  222. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/infra/local_diagnostics.py +0 -0
  223. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/infra/pid_manager.py +0 -0
  224. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/infra/process_reaper.py +0 -0
  225. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/infra/rate_limiter.py +0 -0
  226. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/infra/webhook_dispatcher.py +0 -0
  227. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/ingestion/__init__.py +0 -0
  228. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/ingestion/adapter_manager.py +0 -0
  229. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/ingestion/base_adapter.py +0 -0
  230. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/ingestion/calendar_adapter.py +0 -0
  231. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/ingestion/credentials.py +0 -0
  232. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/ingestion/gmail_adapter.py +0 -0
  233. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/ingestion/parsers.py +0 -0
  234. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/ingestion/transcript_adapter.py +0 -0
  235. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/learning/__init__.py +0 -0
  236. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/learning/adaptive.py +0 -0
  237. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/learning/arm_catalog.py +0 -0
  238. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/learning/assertion_miner.py +0 -0
  239. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/learning/bandit.py +0 -0
  240. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/learning/bandit_cache.py +0 -0
  241. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/learning/behavioral.py +0 -0
  242. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/learning/behavioral_listener.py +0 -0
  243. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/learning/bootstrap.py +0 -0
  244. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/learning/consolidation_cycle.py +0 -0
  245. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/learning/consolidation_quantization_worker.py +0 -0
  246. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/learning/consolidation_worker.py +0 -0
  247. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/learning/cross_project.py +0 -0
  248. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/learning/database.py +0 -0
  249. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/learning/dedup_hnsw.py +0 -0
  250. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/learning/engagement.py +0 -0
  251. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/learning/ensemble.py +0 -0
  252. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/learning/entity_compiler.py +0 -0
  253. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/learning/fact_outcome_joins.py +0 -0
  254. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/learning/features.py +0 -0
  255. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/learning/feedback.py +0 -0
  256. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/learning/forgetting_scheduler.py +0 -0
  257. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/learning/hnsw_dedup.py +0 -0
  258. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/learning/labeler.py +0 -0
  259. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/learning/legacy_migration.py +0 -0
  260. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/learning/lightgbm_subprocess.py +0 -0
  261. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/learning/memory_merge.py +0 -0
  262. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/learning/model_cache.py +0 -0
  263. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/learning/model_rollback.py +0 -0
  264. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/learning/outcome_queue.py +0 -0
  265. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/learning/outcomes.py +0 -0
  266. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/learning/pattern_miner.py +0 -0
  267. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/learning/pattern_miner_constants.py +0 -0
  268. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/learning/project_context.py +0 -0
  269. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/learning/quantization_scheduler.py +0 -0
  270. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/learning/ranker.py +0 -0
  271. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/learning/ranker_common.py +0 -0
  272. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/learning/ranker_retrain_legacy.py +0 -0
  273. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/learning/ranker_retrain_online.py +0 -0
  274. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/learning/reward.py +0 -0
  275. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/learning/reward_archive.py +0 -0
  276. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/learning/reward_boost.py +0 -0
  277. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/learning/reward_proxy.py +0 -0
  278. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/learning/shadow_test.py +0 -0
  279. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/learning/signal_worker.py +0 -0
  280. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/learning/signals.py +0 -0
  281. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/learning/skill_performance_miner.py +0 -0
  282. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/learning/source_quality.py +0 -0
  283. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/learning/trigram_index.py +0 -0
  284. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/learning/workflows.py +0 -0
  285. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/llm/__init__.py +0 -0
  286. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/llm/backbone.py +0 -0
  287. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/math/__init__.py +0 -0
  288. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/math/ebbinghaus.py +0 -0
  289. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/math/fisher.py +0 -0
  290. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/math/fisher_quantized.py +0 -0
  291. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/math/hopfield.py +0 -0
  292. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/math/langevin.py +0 -0
  293. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/math/polar_quant.py +0 -0
  294. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/math/qjl.py +0 -0
  295. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/math/sheaf.py +0 -0
  296. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/math/turbo_quant.py +0 -0
  297. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/mcp/__init__.py +0 -0
  298. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/mcp/_daemon_proxy.py +0 -0
  299. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/mcp/_pool_adapter.py +0 -0
  300. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/mcp/_stdin_guard.py +0 -0
  301. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/mcp/agent_context.py +0 -0
  302. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/mcp/cli_fallback.py +0 -0
  303. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/mcp/http_transport.py +0 -0
  304. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/mcp/resources.py +0 -0
  305. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/mcp/server.py +0 -0
  306. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/mcp/shared.py +0 -0
  307. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/mcp/tools.py +0 -0
  308. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/mcp/tools_active.py +0 -0
  309. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/mcp/tools_code_graph.py +0 -0
  310. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/mcp/tools_context.py +0 -0
  311. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/mcp/tools_core.py +0 -0
  312. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/mcp/tools_evolution.py +0 -0
  313. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/mcp/tools_learning.py +0 -0
  314. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/mcp/tools_mesh.py +0 -0
  315. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/mcp/tools_optimize.py +0 -0
  316. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/mcp/tools_v28.py +0 -0
  317. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/mcp/tools_v3.py +0 -0
  318. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/mcp/tools_v33.py +0 -0
  319. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/mesh/__init__.py +0 -0
  320. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/mesh/broker.py +0 -0
  321. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/mesh/remote_sync.py +0 -0
  322. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/migrations/__init__.py +0 -0
  323. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/migrations/v3_4_25_to_v3_4_26.py +0 -0
  324. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/optimize/NOTICE +0 -0
  325. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/optimize/__init__.py +0 -0
  326. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/optimize/adapters/__init__.py +0 -0
  327. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/optimize/adapters/_agent_registry.py +0 -0
  328. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/optimize/adapters/anthropic_adapter.py +0 -0
  329. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/optimize/adapters/openai_adapter.py +0 -0
  330. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/optimize/adapters/wrap.py +0 -0
  331. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/optimize/cache/__init__.py +0 -0
  332. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/optimize/cache/boundary_store.py +0 -0
  333. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/optimize/cache/centroid_store.py +0 -0
  334. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/optimize/cache/context_key.py +0 -0
  335. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/optimize/cache/exact.py +0 -0
  336. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/optimize/cache/invalidation.py +0 -0
  337. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/optimize/cache/key_builder.py +0 -0
  338. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/optimize/cache/manager.py +0 -0
  339. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/optimize/cache/semantic.py +0 -0
  340. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/optimize/cache/stampede.py +0 -0
  341. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/optimize/compress/__init__.py +0 -0
  342. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/optimize/compress/align.py +0 -0
  343. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/optimize/compress/ccr.py +0 -0
  344. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/optimize/compress/prose_llmlingua.py +0 -0
  345. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/optimize/compress/router.py +0 -0
  346. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/optimize/config/__init__.py +0 -0
  347. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/optimize/config/defaults.py +0 -0
  348. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/optimize/config/schema.py +0 -0
  349. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/optimize/config/store.py +0 -0
  350. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/optimize/metrics/__init__.py +0 -0
  351. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/optimize/metrics/counters.py +0 -0
  352. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/optimize/metrics/estimator.py +0 -0
  353. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/optimize/metrics/exporters.py +0 -0
  354. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/optimize/metrics/persistence.py +0 -0
  355. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/optimize/proxy/__init__.py +0 -0
  356. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/optimize/proxy/_helpers.py +0 -0
  357. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/optimize/proxy/anthropic_surface.py +0 -0
  358. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/optimize/proxy/capture.py +0 -0
  359. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/optimize/proxy/gemini_surface.py +0 -0
  360. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/optimize/proxy/lifecycle.py +0 -0
  361. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/optimize/proxy/openai_surface.py +0 -0
  362. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/optimize/proxy/server.py +0 -0
  363. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/optimize/proxy/vertex_surface.py +0 -0
  364. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/optimize/storage/__init__.py +0 -0
  365. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/optimize/storage/db.py +0 -0
  366. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/optimize/storage/schema.py +0 -0
  367. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/parameterization/__init__.py +0 -0
  368. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/parameterization/pattern_extractor.py +0 -0
  369. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/parameterization/pii_filter.py +0 -0
  370. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/parameterization/prompt_injector.py +0 -0
  371. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/parameterization/prompt_lifecycle.py +0 -0
  372. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/parameterization/soft_prompt_generator.py +0 -0
  373. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/retrieval/__init__.py +0 -0
  374. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/retrieval/agentic.py +0 -0
  375. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/retrieval/ann_index.py +0 -0
  376. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/retrieval/bm25_channel.py +0 -0
  377. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/retrieval/bridge_discovery.py +0 -0
  378. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/retrieval/channel_registry.py +0 -0
  379. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/retrieval/engine.py +0 -0
  380. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/retrieval/entity_channel.py +0 -0
  381. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/retrieval/forgetting_filter.py +0 -0
  382. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/retrieval/fusion.py +0 -0
  383. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/retrieval/hopfield_channel.py +0 -0
  384. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/retrieval/profile_channel.py +0 -0
  385. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/retrieval/quantization_aware_search.py +0 -0
  386. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/retrieval/reranker.py +0 -0
  387. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/retrieval/scope_policy.py +0 -0
  388. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/retrieval/semantic_channel.py +0 -0
  389. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/retrieval/spreading_activation.py +0 -0
  390. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/retrieval/strategy.py +0 -0
  391. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/retrieval/temporal_channel.py +0 -0
  392. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/retrieval/vector_store.py +0 -0
  393. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/server/__init__.py +0 -0
  394. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/server/api.py +0 -0
  395. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/server/bandit_loops.py +0 -0
  396. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/server/middleware/__init__.py +0 -0
  397. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/server/middleware/security_headers.py +0 -0
  398. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/server/recall_health.py +0 -0
  399. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/server/recall_serializer.py +0 -0
  400. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/server/route_mutations.py +0 -0
  401. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/server/routes/__init__.py +0 -0
  402. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/server/routes/adapters.py +0 -0
  403. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/server/routes/agents.py +0 -0
  404. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/server/routes/backup.py +0 -0
  405. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/server/routes/behavioral.py +0 -0
  406. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/server/routes/brain.py +0 -0
  407. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/server/routes/chat.py +0 -0
  408. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/server/routes/compliance.py +0 -0
  409. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/server/routes/data_io.py +0 -0
  410. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/server/routes/entity.py +0 -0
  411. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/server/routes/events.py +0 -0
  412. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/server/routes/evolution.py +0 -0
  413. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/server/routes/helpers.py +0 -0
  414. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/server/routes/ingest.py +0 -0
  415. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/server/routes/insights.py +0 -0
  416. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/server/routes/learning.py +0 -0
  417. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/server/routes/lifecycle.py +0 -0
  418. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/server/routes/memories.py +0 -0
  419. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/server/routes/mesh.py +0 -0
  420. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/server/routes/optimize.py +0 -0
  421. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/server/routes/prewarm.py +0 -0
  422. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/server/routes/profiles.py +0 -0
  423. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/server/routes/stats.py +0 -0
  424. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/server/routes/tiers.py +0 -0
  425. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/server/routes/timeline.py +0 -0
  426. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/server/routes/token.py +0 -0
  427. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/server/routes/v3_api.py +0 -0
  428. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/server/routes/ws.py +0 -0
  429. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/server/security_middleware.py +0 -0
  430. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/server/ui.py +0 -0
  431. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/server/unified_daemon.py +0 -0
  432. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/server/write_identity.py +0 -0
  433. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/storage/__init__.py +0 -0
  434. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/storage/access_control.py +0 -0
  435. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/storage/access_log.py +0 -0
  436. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/storage/database.py +0 -0
  437. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/storage/embedding_migrator.py +0 -0
  438. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/storage/migration_runner.py +0 -0
  439. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/storage/migration_v33.py +0 -0
  440. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/storage/migrations/M001_add_signal_features_columns.py +0 -0
  441. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/storage/migrations/M002_model_state_history.py +0 -0
  442. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/storage/migrations/M003_migration_log.py +0 -0
  443. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/storage/migrations/M004_cross_platform_sync_log.py +0 -0
  444. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/storage/migrations/M005_bandit_tables.py +0 -0
  445. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/storage/migrations/M006_action_outcomes_reward.py +0 -0
  446. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/storage/migrations/M007_pending_outcomes.py +0 -0
  447. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/storage/migrations/M009_model_lineage.py +0 -0
  448. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/storage/migrations/M010_evolution_config.py +0 -0
  449. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/storage/migrations/M011_archive_and_merge.py +0 -0
  450. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/storage/migrations/M012_shadow_observations.py +0 -0
  451. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/storage/migrations/M013_bi_temporal_columns.py +0 -0
  452. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/storage/migrations/M014_v345_scale_ready.py +0 -0
  453. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/storage/migrations/M015_add_pinned_column.py +0 -0
  454. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/storage/migrations/M016_add_scope_support.py +0 -0
  455. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/storage/migrations/M017_ccq_scope_column.py +0 -0
  456. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/storage/migrations/M018_ingestion_operations.py +0 -0
  457. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/storage/migrations/M019_derivation_lineage.py +0 -0
  458. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/storage/migrations/M020_model_state_integrity.py +0 -0
  459. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/storage/migrations/__init__.py +0 -0
  460. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/storage/migrations.py +0 -0
  461. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/storage/models.py +0 -0
  462. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/storage/quantized_store.py +0 -0
  463. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/storage/schema.py +0 -0
  464. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/storage/schema_code_graph.py +0 -0
  465. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/storage/schema_v32.py +0 -0
  466. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/storage/schema_v3410.py +0 -0
  467. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/storage/schema_v3411.py +0 -0
  468. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/storage/schema_v343.py +0 -0
  469. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/storage/schema_v345.py +0 -0
  470. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/storage/schema_v347.py +0 -0
  471. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/storage/v2_migrator.py +0 -0
  472. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/trust/__init__.py +0 -0
  473. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/trust/gate.py +0 -0
  474. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/trust/provenance.py +0 -0
  475. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/trust/scorer.py +0 -0
  476. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/trust/signals.py +0 -0
  477. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/ui/css/brain.css +0 -0
  478. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/ui/css/legacy-dashboard.css +0 -0
  479. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/ui/css/neural-glass.css +0 -0
  480. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/ui/favicon.svg +0 -0
  481. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/ui/index.html +0 -0
  482. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/ui/js/agents.js +0 -0
  483. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/ui/js/auto-settings.js +0 -0
  484. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/ui/js/brain.js +0 -0
  485. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/ui/js/clusters.js +0 -0
  486. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/ui/js/compliance.js +0 -0
  487. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/ui/js/core.js +0 -0
  488. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/ui/js/dashboard.js +0 -0
  489. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/ui/js/events.js +0 -0
  490. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/ui/js/fact-detail.js +0 -0
  491. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/ui/js/feedback.js +0 -0
  492. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/ui/js/graph-event-bus.js +0 -0
  493. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/ui/js/graph-filters.js +0 -0
  494. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/ui/js/graph-ui.js +0 -0
  495. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/ui/js/ide-status.js +0 -0
  496. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/ui/js/init.js +0 -0
  497. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/ui/js/knowledge-graph.js +0 -0
  498. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/ui/js/lifecycle.js +0 -0
  499. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/ui/js/math-health.js +0 -0
  500. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/ui/js/memories.js +0 -0
  501. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/ui/js/memory-chat.js +0 -0
  502. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/ui/js/memory-timeline.js +0 -0
  503. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/ui/js/modal.js +0 -0
  504. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/ui/js/ng-entities.js +0 -0
  505. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/ui/js/ng-health.js +0 -0
  506. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/ui/js/ng-ingestion.js +0 -0
  507. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/ui/js/ng-mesh.js +0 -0
  508. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/ui/js/ng-shell.js +0 -0
  509. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/ui/js/ng-skills.js +0 -0
  510. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/ui/js/optimize.js +0 -0
  511. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/ui/js/profiles.js +0 -0
  512. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/ui/js/quick-actions.js +0 -0
  513. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/ui/js/recall-lab.js +0 -0
  514. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/ui/js/search.js +0 -0
  515. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/ui/js/settings.js +0 -0
  516. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/ui/js/timeline.js +0 -0
  517. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/ui/js/trust-dashboard.js +0 -0
  518. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/ui/vendor/bootstrap-icons/bootstrap-icons.css +0 -0
  519. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/ui/vendor/bootstrap-icons/fonts/bootstrap-icons.woff +0 -0
  520. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/ui/vendor/bootstrap-icons/fonts/bootstrap-icons.woff2 +0 -0
  521. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/ui/vendor/bootstrap.bundle.min.js +0 -0
  522. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/ui/vendor/bootstrap.min.css +0 -0
  523. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/ui/vendor/d3.v7.min.js +0 -0
  524. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/ui/vendor/graphology-library.min.js +0 -0
  525. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/ui/vendor/graphology.umd.min.js +0 -0
  526. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/ui/vendor/inter-ui/inter-variable.min.css +0 -0
  527. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/ui/vendor/inter-ui/variable/InterVariable-Italic.woff2 +0 -0
  528. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/ui/vendor/inter-ui/variable/InterVariable.woff2 +0 -0
  529. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/ui/vendor/sigma.min.js +0 -0
  530. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/vector/__init__.py +0 -0
  531. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory/vector/lancedb_backend.py +0 -0
  532. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory.egg-info/dependency_links.txt +0 -0
  533. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory.egg-info/entry_points.txt +0 -0
  534. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory.egg-info/requires.txt +0 -0
  535. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/src/superlocalmemory.egg-info/top_level.txt +0 -0
  536. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/tests/test_auto_hooks.py +0 -0
  537. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/tests/test_before_web_hook.py +0 -0
  538. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/tests/test_behavioral_full.py +0 -0
  539. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/tests/test_claude_hooks.py +0 -0
  540. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/tests/test_cli_core.py +0 -0
  541. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/tests/test_cli_json.py +0 -0
  542. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/tests/test_cli_v33.py +0 -0
  543. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/tests/test_compliance_full.py +0 -0
  544. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/tests/test_config_system.py +0 -0
  545. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/tests/test_dashboard_preserve_embedding.py +0 -0
  546. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/tests/test_engine_hooks.py +0 -0
  547. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/tests/test_event_bus.py +0 -0
  548. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/tests/test_features.py +0 -0
  549. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/tests/test_final_locomo_mini.py +0 -0
  550. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/tests/test_graph_integrity.py +0 -0
  551. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/tests/test_hook_handlers.py +0 -0
  552. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/tests/test_ide_connector.py +0 -0
  553. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/tests/test_infra.py +0 -0
  554. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/tests/test_injection.py +0 -0
  555. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/tests/test_learning_advanced.py +0 -0
  556. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/tests/test_learning_collectors.py +0 -0
  557. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/tests/test_llm_provider.py +0 -0
  558. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/tests/test_mcp_server.py +0 -0
  559. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/tests/test_migration.py +0 -0
  560. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/tests/test_mode_switch_preservation.py +0 -0
  561. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/tests/test_post_install.py +0 -0
  562. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/tests/test_ranker.py +0 -0
  563. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/tests/test_resource_lifecycle.py +0 -0
  564. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/tests/test_topic_shift_hook.py +0 -0
  565. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/tests/test_trust_full.py +0 -0
  566. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/tests/test_v3_api.py +0 -0
  567. {superlocalmemory-3.7.3 → superlocalmemory-3.7.4}/tests/test_version_consistency.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: superlocalmemory
3
- Version: 3.7.3
3
+ Version: 3.7.4
4
4
  Summary: Local-first agent memory with auditable hybrid retrieval
5
5
  Author-email: Varun Pratap Bhardwaj <admin@superlocalmemory.com>
6
6
  License-Expression: AGPL-3.0-or-later
@@ -107,10 +107,10 @@ Dynamic: license-file
107
107
  </picture>
108
108
  </p>
109
109
 
110
- <h1 align="center">SuperLocalMemory V3.7.3</h1>
110
+ <h1 align="center">SuperLocalMemory V3.7.4</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.3</code> — <strong>Scale Engine integrity release: explicit legacy adoption, durable promotion recovery, and honest runtime status.</strong><br/>
113
+ <p align="center"><code>v3.7.4</code> — <strong>Scale Engine projection parity: normalized logical graph edges, durable promotion recovery, and honest runtime status.</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
 
@@ -213,7 +213,7 @@ health surfaces expose the stages actually completed by the installed runtime.
213
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. |
214
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. |
215
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. |
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. |
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; repeated physical edge rows normalize to one logical edge with the strongest weight. |
217
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. |
218
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. |
219
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. |
@@ -340,7 +340,8 @@ SLM then rebuilds from canonical SQLite, verifies it, and promotes it with a
340
340
  durable recovery journal while retaining the prior directories as a rollback
341
341
  backup. `adopt` reports `restart_required: true`; run `slm restart` before
342
342
  checking daemon health. If proof fails, recall remains on SQLite and status
343
- reports repair required.
343
+ retains the rejected manifest for inspection, retires its replaceable derived
344
+ payload, and allows a corrected retry.
344
345
 
345
346
  Canonical ingestion is a durable state machine: `raw → queryable → enriching →
346
347
  complete`, with `failed` retaining raw evidence, error details, attempt count,
@@ -5,10 +5,10 @@
5
5
  </picture>
6
6
  </p>
7
7
 
8
- <h1 align="center">SuperLocalMemory V3.7.3</h1>
8
+ <h1 align="center">SuperLocalMemory V3.7.4</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.3</code> — <strong>Scale Engine integrity release: explicit legacy adoption, durable promotion recovery, and honest runtime status.</strong><br/>
11
+ <p align="center"><code>v3.7.4</code> — <strong>Scale Engine projection parity: normalized logical graph edges, durable promotion recovery, and honest runtime status.</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
 
@@ -111,7 +111,7 @@ health surfaces expose the stages actually completed by the installed runtime.
111
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. |
112
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. |
113
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. |
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. |
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; repeated physical edge rows normalize to one logical edge with the strongest weight. |
115
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. |
116
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. |
117
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. |
@@ -238,7 +238,8 @@ SLM then rebuilds from canonical SQLite, verifies it, and promotes it with a
238
238
  durable recovery journal while retaining the prior directories as a rollback
239
239
  backup. `adopt` reports `restart_required: true`; run `slm restart` before
240
240
  checking daemon health. If proof fails, recall remains on SQLite and status
241
- reports repair required.
241
+ retains the rejected manifest for inspection, retires its replaceable derived
242
+ payload, and allows a corrected retry.
242
243
 
243
244
  Canonical ingestion is a durable state machine: `raw → queryable → enriching →
244
245
  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.3"
3
+ version = "3.7.4"
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.3"
35
+ __version__ = "3.7.4"
36
36
 
37
37
  _REQUIRED_VERSIONS = {
38
38
  "sentence_transformers": "5.3.0",
@@ -22,6 +22,8 @@ from datetime import UTC, datetime
22
22
  from pathlib import Path
23
23
  from typing import Any, Callable
24
24
 
25
+ from superlocalmemory.storage.logical_edges import count_logical_edges, iter_logical_edges
26
+
25
27
 
26
28
  class ScaleEngineError(RuntimeError):
27
29
  """A scale projection cannot safely advance to its next lifecycle state."""
@@ -98,8 +100,8 @@ class ScaleEngineManager:
98
100
  legacy_projection_candidate = (
99
101
  state == "local_core"
100
102
  and all(paths_present.values())
101
- and not manifests
102
103
  and not backups
104
+ and not self.promotion_journal_path.exists()
103
105
  and self._has_legacy_projection_layout()
104
106
  )
105
107
  runtime = self._runtime_backend_status()
@@ -117,7 +119,17 @@ class ScaleEngineManager:
117
119
  "legacy_candidate_requires_confirmation": legacy_projection_candidate,
118
120
  "migration_repair_required": (
119
121
  self.promotion_journal_path.exists()
120
- or (state == "local_core" and bool(manifests))
122
+ or any(
123
+ manifest.get("state") == "promoted" and state != "promoted"
124
+ for manifest in manifests
125
+ )
126
+ or (
127
+ state == "promoted"
128
+ and any(
129
+ manifest.get("state") in {"prepared", "verified"}
130
+ for manifest in manifests
131
+ )
132
+ )
121
133
  ),
122
134
  "stages": manifests,
123
135
  "backups": backups,
@@ -135,26 +147,91 @@ class ScaleEngineManager:
135
147
  if not self.status()["legacy_projection_candidate"]:
136
148
  return None
137
149
  lock_path = self._acquire_lifecycle_lock()
150
+ prepared: dict[str, Any] | None = None
138
151
  try:
139
152
  # Re-check inside the lock. A concurrent command may have
140
153
  # completed promotion while this caller waited to acquire it.
141
- if not self.status()["legacy_projection_candidate"]:
154
+ current_status = self.status()
155
+ if not current_status["legacy_projection_candidate"]:
142
156
  return None
157
+ retry_payloads = [
158
+ manifest["stage_id"]
159
+ for manifest in current_status["stages"]
160
+ if manifest.get("state") in {"prepared", "verified"}
161
+ and manifest.get("stage_id")
162
+ ]
143
163
  prepared = self._prepare()
144
164
  self._verify(prepared["stage_id"])
145
- return self._promote(prepared["stage_id"])
146
- except Exception:
165
+ promoted = self._promote(prepared["stage_id"])
166
+ retired: list[str] = []
167
+ retirement_failures: dict[str, str] = {}
168
+ for stage_id in retry_payloads:
169
+ try:
170
+ self._retire_superseded_stage(stage_id)
171
+ retired.append(stage_id)
172
+ except Exception as cleanup_exc:
173
+ retirement_failures[stage_id] = str(cleanup_exc)
174
+ return {
175
+ **promoted,
176
+ "retired_stages": retired,
177
+ "retirement_failures": retirement_failures,
178
+ }
179
+ except Exception as exc:
147
180
  # A failed adoption must leave the canonical path selected. The
148
- # stage is retained for operator inspection instead of deleting
149
- # evidence about why an upgrade could not be completed.
150
- self.config.scale_engine_state = "local_core"
181
+ # manifest is retained for inspection, but its replaceable Cozo
182
+ # and Lance payloads are retired so repeated retries cannot grow
183
+ # the data root without bound.
184
+ retirement_error: Exception | None = None
185
+ unresolved_promotion = self.promotion_journal_path.exists()
186
+ if prepared is not None and not unresolved_promotion:
187
+ try:
188
+ self._retire_rejected_stage(prepared["stage_id"], exc)
189
+ except Exception as cleanup_exc:
190
+ retirement_error = cleanup_exc
191
+ self.config.scale_engine_state = (
192
+ "verified" if unresolved_promotion else "local_core"
193
+ )
151
194
  self.config.graph_backend = "auto"
152
195
  self.config.vector_backend = "auto"
153
196
  self._save_config()
197
+ if retirement_error is not None:
198
+ raise ScaleEngineError(
199
+ f"{exc}; rejected stage retirement failed: {retirement_error}"
200
+ ) from exc
154
201
  raise
155
202
  finally:
156
203
  self._release_lifecycle_lock(lock_path)
157
204
 
205
+ def _retire_rejected_stage(self, stage_id: str, error: Exception) -> None:
206
+ """Keep rejection evidence while removing replaceable projection data."""
207
+ self._retire_stage_payload(
208
+ stage_id,
209
+ {
210
+ "state": "rejected",
211
+ "rejected_at": _utc_now(),
212
+ "failure": f"{type(error).__name__}: {error}",
213
+ },
214
+ )
215
+
216
+ def _retire_superseded_stage(self, stage_id: str) -> None:
217
+ """Retain an old retry manifest after a newer projection is promoted."""
218
+ self._retire_stage_payload(
219
+ stage_id,
220
+ {"state": "superseded", "superseded_at": _utc_now()},
221
+ )
222
+
223
+ def _retire_stage_payload(
224
+ self, stage_id: str, manifest_updates: dict[str, Any]
225
+ ) -> None:
226
+ """Remove derived stage bytes while retaining its durable manifest."""
227
+ stage_dir, manifest = self._load_stage(stage_id)
228
+ for payload in (stage_dir / "cozo", stage_dir / "lance"):
229
+ if payload.exists():
230
+ shutil.rmtree(payload)
231
+ self._fsync_directory(stage_dir)
232
+ manifest.update(manifest_updates)
233
+ self._write_manifest(stage_dir, manifest)
234
+
158
235
  def prepare(self) -> dict[str, Any]:
159
236
  """Build a new projection in a private staging directory."""
160
237
  lock_path = self._acquire_lifecycle_lock()
@@ -308,11 +385,14 @@ class ScaleEngineManager:
308
385
  except sqlite3.Error:
309
386
  pass
310
387
  try:
311
- self._recover_interrupted_promotion()
312
- except ScaleEngineError as recovery_error:
388
+ recovery = self._recover_interrupted_promotion()
389
+ except Exception as recovery_error:
313
390
  raise ScaleEngineError(
314
391
  f"promotion interrupted; automatic recovery needs repair: {recovery_error}"
315
392
  ) from exc
393
+ if recovery == "finalized_committed_promotion":
394
+ _, recovered_manifest = self._load_stage(stage_id)
395
+ return recovered_manifest
316
396
  raise ScaleEngineError(f"promotion rolled back: {exc}") from exc
317
397
  finally:
318
398
  gate.close()
@@ -392,9 +472,7 @@ class ScaleEngineManager:
392
472
  "SELECT COUNT(*) FROM canonical_entities WHERE profile_id=?",
393
473
  (self.profile_id,),
394
474
  ).fetchone()[0]
395
- edges = conn.execute(
396
- "SELECT COUNT(*) FROM graph_edges WHERE profile_id=?", (self.profile_id,)
397
- ).fetchone()[0]
475
+ edges = count_logical_edges(conn, self.profile_id)
398
476
  try:
399
477
  vectors = conn.execute(
400
478
  "SELECT COUNT(*) FROM fact_embeddings_rowids fer "
@@ -422,7 +500,6 @@ class ScaleEngineManager:
422
500
  tables = (
423
501
  ("canonical_entities", "entity_id, canonical_name, entity_type, first_seen, last_seen, fact_count, profile_id", "entity_id"),
424
502
  ("atomic_facts", "fact_id, canonical_entities_json, lifecycle, profile_id", "fact_id"),
425
- ("graph_edges", "source_id, target_id, edge_type, weight, profile_id", "source_id, target_id, edge_type"),
426
503
  )
427
504
  for table, columns, ordering in tables:
428
505
  try:
@@ -434,6 +511,11 @@ class ScaleEngineManager:
434
511
  self._digest_row(digest, table, row)
435
512
  except sqlite3.OperationalError as exc:
436
513
  raise ScaleEngineError(f"canonical SQLite missing required {table} table") from exc
514
+ try:
515
+ for row in iter_logical_edges(conn, self.profile_id):
516
+ self._digest_row(digest, "graph_edges", row)
517
+ except sqlite3.OperationalError as exc:
518
+ raise ScaleEngineError("canonical SQLite missing required graph_edges table") from exc
437
519
  try:
438
520
  rows = conn.execute(
439
521
  "SELECT fer.rowid, fer.fact_id, vec.vector FROM fact_embeddings_rowids fer "
@@ -24,6 +24,8 @@ from datetime import datetime
24
24
  from pathlib import Path
25
25
  from typing import Any
26
26
 
27
+ from superlocalmemory.storage.logical_edges import iter_logical_edges
28
+
27
29
  logger = logging.getLogger(__name__)
28
30
 
29
31
  # Optional import — CozoDB is an optional dependency
@@ -260,6 +262,12 @@ class CozoDBGraphBackend:
260
262
  *fact_entity{fact_id, entity_id, profile_id}, fact_id = $fact_id
261
263
  :rm fact_entity {fact_id, entity_id => profile_id}
262
264
  """, {"fact_id": fact_id})
265
+ self._db.run("""
266
+ ?[from_id, to_id, edge_type, weight, metadata, profile_id, created_at] :=
267
+ *edge{from_id, to_id, edge_type, weight, metadata, profile_id, created_at},
268
+ (from_id = $fact_id or to_id = $fact_id)
269
+ :rm edge {from_id, to_id, edge_type => weight, metadata, profile_id, created_at}
270
+ """, {"fact_id": fact_id})
263
271
 
264
272
  def record_shadow_comparison(
265
273
  self,
@@ -280,12 +288,6 @@ class CozoDBGraphBackend:
280
288
  def record_shadow_error(self, error: str) -> None:
281
289
  self._shadow_errors += 1
282
290
  logger.warning("Cozo entity recall failed closed to SQLite: %s", error)
283
- self._db.run("""
284
- ?[from_id, to_id, edge_type, weight, metadata, profile_id, created_at] :=
285
- *edge{from_id, to_id, edge_type, weight, metadata, profile_id, created_at},
286
- (from_id = $fact_id or to_id = $fact_id)
287
- :rm edge {from_id, to_id, edge_type => weight, metadata, profile_id, created_at}
288
- """, {"fact_id": fact_id})
289
291
 
290
292
  # ------------------------------------------------------------------
291
293
  # Bulk Import (SQLite → CozoDB)
@@ -358,22 +360,15 @@ class CozoDBGraphBackend:
358
360
 
359
361
  # Step 3: Export fact graph edges directly. Fact graph traversal is
360
362
  # intentionally kept in its native fact-ID namespace.
361
- edges_sql = """
362
- SELECT source_id, target_id, edge_type, weight
363
- FROM graph_edges WHERE profile_id = ?
364
- """
365
- edge_rows = conn.execute(edges_sql, (profile_id,)).fetchall()
366
-
367
363
  edge_dicts = []
368
- for row in edge_rows:
369
- ea, eb, etype, weight = row
364
+ for ea, eb, etype, weight, edge_profile in iter_logical_edges(conn, profile_id):
370
365
  edge_dicts.append({
371
366
  "from_id": ea,
372
367
  "to_id": eb,
373
- "edge_type": etype or "related",
374
- "weight": float(weight or 1.0),
368
+ "edge_type": etype,
369
+ "weight": float(weight),
375
370
  "metadata": "{}",
376
- "profile_id": profile_id,
371
+ "profile_id": edge_profile,
377
372
  "created_at": now,
378
373
  })
379
374
 
@@ -0,0 +1,45 @@
1
+ """Canonical logical-edge projection shared by scale backends.
2
+
3
+ Legacy databases can contain multiple physical ``graph_edges`` rows for one
4
+ logical relationship. Current writes define identity as profile, source,
5
+ target, and edge type, retaining the strongest weight. Derived projections
6
+ must use that same contract without rewriting canonical SQLite history.
7
+ """
8
+ from __future__ import annotations
9
+
10
+ import sqlite3
11
+ from collections.abc import Iterator
12
+ from typing import Any
13
+
14
+ _LOGICAL_EDGE_SELECT = """
15
+ SELECT
16
+ source_id,
17
+ target_id,
18
+ COALESCE(edge_type, 'related') AS edge_type,
19
+ MAX(COALESCE(weight, 1.0)) AS weight,
20
+ profile_id
21
+ FROM graph_edges
22
+ WHERE profile_id = ?
23
+ GROUP BY profile_id, source_id, target_id, COALESCE(edge_type, 'related')
24
+ """
25
+
26
+
27
+ def iter_logical_edges(
28
+ conn: sqlite3.Connection, profile_id: str
29
+ ) -> Iterator[tuple[Any, ...]]:
30
+ """Yield normalized graph edges in deterministic fingerprint order."""
31
+ return iter(
32
+ conn.execute(
33
+ _LOGICAL_EDGE_SELECT + " ORDER BY source_id, target_id, edge_type",
34
+ (profile_id,),
35
+ )
36
+ )
37
+
38
+
39
+ def count_logical_edges(conn: sqlite3.Connection, profile_id: str) -> int:
40
+ """Count relationships using the canonical logical identity."""
41
+ row = conn.execute(
42
+ "SELECT COUNT(*) FROM (" + _LOGICAL_EDGE_SELECT + ")",
43
+ (profile_id,),
44
+ ).fetchone()
45
+ return int(row[0] if row else 0)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: superlocalmemory
3
- Version: 3.7.3
3
+ Version: 3.7.4
4
4
  Summary: Local-first agent memory with auditable hybrid retrieval
5
5
  Author-email: Varun Pratap Bhardwaj <admin@superlocalmemory.com>
6
6
  License-Expression: AGPL-3.0-or-later
@@ -107,10 +107,10 @@ Dynamic: license-file
107
107
  </picture>
108
108
  </p>
109
109
 
110
- <h1 align="center">SuperLocalMemory V3.7.3</h1>
110
+ <h1 align="center">SuperLocalMemory V3.7.4</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.3</code> — <strong>Scale Engine integrity release: explicit legacy adoption, durable promotion recovery, and honest runtime status.</strong><br/>
113
+ <p align="center"><code>v3.7.4</code> — <strong>Scale Engine projection parity: normalized logical graph edges, durable promotion recovery, and honest runtime status.</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
 
@@ -213,7 +213,7 @@ health surfaces expose the stages actually completed by the installed runtime.
213
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. |
214
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. |
215
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. |
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. |
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; repeated physical edge rows normalize to one logical edge with the strongest weight. |
217
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. |
218
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. |
219
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. |
@@ -340,7 +340,8 @@ SLM then rebuilds from canonical SQLite, verifies it, and promotes it with a
340
340
  durable recovery journal while retaining the prior directories as a rollback
341
341
  backup. `adopt` reports `restart_required: true`; run `slm restart` before
342
342
  checking daemon health. If proof fails, recall remains on SQLite and status
343
- reports repair required.
343
+ retains the rejected manifest for inspection, retires its replaceable derived
344
+ payload, and allows a corrected retry.
344
345
 
345
346
  Canonical ingestion is a durable state machine: `raw → queryable → enriching →
346
347
  complete`, with `failed` retaining raw evidence, error details, attempt count,
@@ -436,6 +436,7 @@ src/superlocalmemory/storage/access_control.py
436
436
  src/superlocalmemory/storage/access_log.py
437
437
  src/superlocalmemory/storage/database.py
438
438
  src/superlocalmemory/storage/embedding_migrator.py
439
+ src/superlocalmemory/storage/logical_edges.py
439
440
  src/superlocalmemory/storage/migration_runner.py
440
441
  src/superlocalmemory/storage/migration_v33.py
441
442
  src/superlocalmemory/storage/migrations.py