superlocalmemory 3.7.4__tar.gz → 3.7.5__tar.gz

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