superlocalmemory 3.6.20__tar.gz → 3.6.22__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.

Potentially problematic release.


This version of superlocalmemory might be problematic. Click here for more details.

Files changed (531) hide show
  1. {superlocalmemory-3.6.20/src/superlocalmemory.egg-info → superlocalmemory-3.6.22}/PKG-INFO +5 -3
  2. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/README.md +4 -2
  3. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/pyproject.toml +1 -1
  4. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/__init__.py +1 -1
  5. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/llm/backbone.py +9 -2
  6. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/mcp/tools_v3.py +4 -16
  7. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/server/routes/mesh.py +12 -4
  8. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/server/routes/v3_api.py +59 -47
  9. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/ui/js/auto-settings.js +8 -11
  10. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/ui/js/clusters.js +1 -0
  11. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/ui/js/compliance.js +1 -0
  12. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/ui/js/core.js +3 -0
  13. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/ui/js/dashboard.js +23 -6
  14. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/ui/js/knowledge-graph.js +4 -1
  15. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/ui/js/math-health.js +5 -1
  16. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/ui/js/memories.js +1 -0
  17. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/ui/js/memory-chat.js +1 -1
  18. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/ui/js/ng-entities.js +6 -2
  19. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/ui/js/ng-mesh.js +123 -21
  20. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/ui/js/optimize.js +6 -1
  21. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/ui/js/profiles.js +1 -1
  22. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/ui/js/recall-lab.js +9 -3
  23. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/ui/js/timeline.js +3 -2
  24. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22/src/superlocalmemory.egg-info}/PKG-INFO +5 -3
  25. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory.egg-info/SOURCES.txt +1 -0
  26. superlocalmemory-3.6.22/tests/test_dashboard_preserve_embedding.py +367 -0
  27. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/tests/test_version_consistency.py +1 -1
  28. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/AUTHORS.md +0 -0
  29. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/LICENSE +0 -0
  30. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/NOTICE +0 -0
  31. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/setup.cfg +0 -0
  32. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/attribution/__init__.py +0 -0
  33. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/attribution/mathematical_dna.py +0 -0
  34. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/attribution/signer.py +0 -0
  35. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/attribution/watermark.py +0 -0
  36. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/cli/__init__.py +0 -0
  37. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/cli/_lazy_init.py +0 -0
  38. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/cli/cache_cmd.py +0 -0
  39. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/cli/commands.py +0 -0
  40. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/cli/compress_cmd.py +0 -0
  41. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/cli/context_commands.py +0 -0
  42. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/cli/daemon.py +0 -0
  43. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/cli/db_migrate.py +0 -0
  44. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/cli/escape_hatch.py +0 -0
  45. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/cli/help_cmd.py +0 -0
  46. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/cli/ingest_cmd.py +0 -0
  47. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/cli/json_output.py +0 -0
  48. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/cli/main.py +0 -0
  49. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/cli/migrate_cmd.py +0 -0
  50. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/cli/optimize_cmd.py +0 -0
  51. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/cli/optimize_constants.py +0 -0
  52. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/cli/pending_store.py +0 -0
  53. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/cli/post_install.py +0 -0
  54. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/cli/proxy_cmd.py +0 -0
  55. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/cli/service_installer.py +0 -0
  56. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/cli/setup_wizard.py +0 -0
  57. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/cli/version_banner.py +0 -0
  58. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/cli/wizard_v3426_options.py +0 -0
  59. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/code_graph/__init__.py +0 -0
  60. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/code_graph/blast_radius.py +0 -0
  61. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/code_graph/bridge/__init__.py +0 -0
  62. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/code_graph/bridge/entity_resolver.py +0 -0
  63. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/code_graph/bridge/event_listeners.py +0 -0
  64. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/code_graph/bridge/fact_enricher.py +0 -0
  65. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/code_graph/bridge/hebbian_linker.py +0 -0
  66. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/code_graph/bridge/temporal_checker.py +0 -0
  67. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/code_graph/changes.py +0 -0
  68. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/code_graph/communities.py +0 -0
  69. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/code_graph/config.py +0 -0
  70. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/code_graph/database.py +0 -0
  71. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/code_graph/extractors/__init__.py +0 -0
  72. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/code_graph/extractors/python.py +0 -0
  73. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/code_graph/extractors/typescript.py +0 -0
  74. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/code_graph/flows.py +0 -0
  75. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/code_graph/git_hooks.py +0 -0
  76. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/code_graph/graph_engine.py +0 -0
  77. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/code_graph/graph_store.py +0 -0
  78. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/code_graph/incremental.py +0 -0
  79. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/code_graph/models.py +0 -0
  80. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/code_graph/parser.py +0 -0
  81. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/code_graph/resolver.py +0 -0
  82. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/code_graph/search.py +0 -0
  83. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/code_graph/service.py +0 -0
  84. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/code_graph/watcher.py +0 -0
  85. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/compliance/__init__.py +0 -0
  86. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/compliance/abac.py +0 -0
  87. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/compliance/audit.py +0 -0
  88. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/compliance/eu_ai_act.py +0 -0
  89. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/compliance/gdpr.py +0 -0
  90. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/compliance/lifecycle.py +0 -0
  91. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/compliance/retention.py +0 -0
  92. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/compliance/scheduler.py +0 -0
  93. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/core/__init__.py +0 -0
  94. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/core/backend_orchestrator.py +0 -0
  95. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/core/block_hygiene.py +0 -0
  96. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/core/clock_monitor.py +0 -0
  97. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/core/config.py +0 -0
  98. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/core/consolidation_engine.py +0 -0
  99. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/core/context_cache.py +0 -0
  100. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/core/db_pool.py +0 -0
  101. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/core/embedding_worker.py +0 -0
  102. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/core/embeddings.py +0 -0
  103. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/core/engine.py +0 -0
  104. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/core/engine_capabilities.py +0 -0
  105. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/core/engine_lock.py +0 -0
  106. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/core/engine_wiring.py +0 -0
  107. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/core/error_catalog.py +0 -0
  108. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/core/error_envelope.py +0 -0
  109. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/core/fact_consolidator.py +0 -0
  110. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/core/file_lock.py +0 -0
  111. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/core/graph_analyzer.py +0 -0
  112. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/core/graph_pruner.py +0 -0
  113. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/core/health_monitor.py +0 -0
  114. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/core/hooks.py +0 -0
  115. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/core/ingest_gate.py +0 -0
  116. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/core/injection.py +0 -0
  117. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/core/loop_watchdog.py +0 -0
  118. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/core/maintenance.py +0 -0
  119. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/core/maintenance_scheduler.py +0 -0
  120. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/core/mcp_embedder_proxy.py +0 -0
  121. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/core/modes.py +0 -0
  122. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/core/ollama_embedder.py +0 -0
  123. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/core/platform_utils.py +0 -0
  124. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/core/priority_queue.py +0 -0
  125. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/core/profiles.py +0 -0
  126. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/core/pruning_engine.py +0 -0
  127. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/core/queue_consumer.py +0 -0
  128. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/core/queue_dispatcher.py +0 -0
  129. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/core/ram_lock.py +0 -0
  130. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/core/rate_limit.py +0 -0
  131. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/core/recall_gate.py +0 -0
  132. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/core/recall_pipeline.py +0 -0
  133. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/core/recall_queue.py +0 -0
  134. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/core/recall_worker.py +0 -0
  135. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/core/registry.py +0 -0
  136. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/core/remote_mode.py +0 -0
  137. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/core/reranker_worker.py +0 -0
  138. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/core/safe_fs.py +0 -0
  139. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/core/security_primitives.py +0 -0
  140. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/core/shadow_router.py +0 -0
  141. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/core/slm_disabled.py +0 -0
  142. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/core/slmignore.py +0 -0
  143. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/core/store_pipeline.py +0 -0
  144. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/core/summarizer.py +0 -0
  145. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/core/tier_manager.py +0 -0
  146. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/core/topic_signature.py +0 -0
  147. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/core/worker_pool.py +0 -0
  148. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/dynamics/__init__.py +0 -0
  149. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/dynamics/activation_guided_quantization.py +0 -0
  150. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/dynamics/eap_scheduler.py +0 -0
  151. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/dynamics/ebbinghaus_langevin_coupling.py +0 -0
  152. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/dynamics/fisher_langevin_coupling.py +0 -0
  153. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/encoding/__init__.py +0 -0
  154. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/encoding/auto_linker.py +0 -0
  155. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/encoding/cognitive_consolidator.py +0 -0
  156. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/encoding/consolidator.py +0 -0
  157. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/encoding/context_generator.py +0 -0
  158. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/encoding/emotional.py +0 -0
  159. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/encoding/entity_resolver.py +0 -0
  160. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/encoding/entropy_gate.py +0 -0
  161. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/encoding/fact_extractor.py +0 -0
  162. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/encoding/foresight.py +0 -0
  163. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/encoding/graph_builder.py +0 -0
  164. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/encoding/observation_builder.py +0 -0
  165. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/encoding/scene_builder.py +0 -0
  166. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/encoding/signal_inference.py +0 -0
  167. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/encoding/temporal_parser.py +0 -0
  168. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/encoding/temporal_validator.py +0 -0
  169. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/encoding/type_router.py +0 -0
  170. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/evolution/__init__.py +0 -0
  171. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/evolution/blind_verifier.py +0 -0
  172. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/evolution/budget.py +0 -0
  173. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/evolution/evolution_store.py +0 -0
  174. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/evolution/llm_dispatch.py +0 -0
  175. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/evolution/mutation_generator.py +0 -0
  176. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/evolution/skill_evolver.py +0 -0
  177. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/evolution/triggers.py +0 -0
  178. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/evolution/types.py +0 -0
  179. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/graph/__init__.py +0 -0
  180. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/graph/cozo_backend.py +0 -0
  181. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/hooks/__init__.py +0 -0
  182. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/hooks/_outcome_common.py +0 -0
  183. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/hooks/adapter_base.py +0 -0
  184. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/hooks/antigravity_adapter.py +0 -0
  185. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/hooks/auto_capture.py +0 -0
  186. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/hooks/auto_invoker.py +0 -0
  187. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/hooks/auto_parameterize.py +0 -0
  188. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/hooks/auto_recall.py +0 -0
  189. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/hooks/auto_recall_hook.py +0 -0
  190. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/hooks/before_web_hook.py +0 -0
  191. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/hooks/claude_code_hooks.py +0 -0
  192. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/hooks/context_payload.py +0 -0
  193. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/hooks/copilot_adapter.py +0 -0
  194. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/hooks/cross_platform_connector.py +0 -0
  195. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/hooks/cursor_adapter.py +0 -0
  196. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/hooks/hook_daemon.py +0 -0
  197. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/hooks/hook_handlers.py +0 -0
  198. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/hooks/ide_connector.py +0 -0
  199. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/hooks/memory_protocol.py +0 -0
  200. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/hooks/portable_kit.py +0 -0
  201. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/hooks/post_tool_async_hook.py +0 -0
  202. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/hooks/post_tool_outcome_hook.py +0 -0
  203. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/hooks/prewarm_auth.py +0 -0
  204. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/hooks/rules_engine.py +0 -0
  205. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/hooks/session_registry.py +0 -0
  206. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/hooks/stop_outcome_hook.py +0 -0
  207. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/hooks/sync_loop.py +0 -0
  208. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/hooks/topic_shift_hook.py +0 -0
  209. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/hooks/user_prompt_hook.py +0 -0
  210. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/hooks/user_prompt_rehash_hook.py +0 -0
  211. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/infra/__init__.py +0 -0
  212. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/infra/auth_middleware.py +0 -0
  213. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/infra/backup.py +0 -0
  214. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/infra/cache_manager.py +0 -0
  215. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/infra/cloud_backup.py +0 -0
  216. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/infra/event_bus.py +0 -0
  217. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/infra/heartbeat_monitor.py +0 -0
  218. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/infra/pid_manager.py +0 -0
  219. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/infra/process_reaper.py +0 -0
  220. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/infra/rate_limiter.py +0 -0
  221. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/infra/webhook_dispatcher.py +0 -0
  222. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/ingestion/__init__.py +0 -0
  223. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/ingestion/adapter_manager.py +0 -0
  224. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/ingestion/base_adapter.py +0 -0
  225. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/ingestion/calendar_adapter.py +0 -0
  226. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/ingestion/credentials.py +0 -0
  227. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/ingestion/gmail_adapter.py +0 -0
  228. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/ingestion/parsers.py +0 -0
  229. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/ingestion/transcript_adapter.py +0 -0
  230. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/learning/__init__.py +0 -0
  231. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/learning/adaptive.py +0 -0
  232. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/learning/arm_catalog.py +0 -0
  233. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/learning/assertion_miner.py +0 -0
  234. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/learning/bandit.py +0 -0
  235. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/learning/bandit_cache.py +0 -0
  236. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/learning/behavioral.py +0 -0
  237. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/learning/behavioral_listener.py +0 -0
  238. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/learning/bootstrap.py +0 -0
  239. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/learning/consolidation_cycle.py +0 -0
  240. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/learning/consolidation_quantization_worker.py +0 -0
  241. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/learning/consolidation_worker.py +0 -0
  242. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/learning/cross_project.py +0 -0
  243. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/learning/database.py +0 -0
  244. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/learning/dedup_hnsw.py +0 -0
  245. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/learning/engagement.py +0 -0
  246. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/learning/ensemble.py +0 -0
  247. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/learning/entity_compiler.py +0 -0
  248. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/learning/fact_outcome_joins.py +0 -0
  249. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/learning/features.py +0 -0
  250. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/learning/feedback.py +0 -0
  251. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/learning/forgetting_scheduler.py +0 -0
  252. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/learning/hnsw_dedup.py +0 -0
  253. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/learning/labeler.py +0 -0
  254. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/learning/legacy_migration.py +0 -0
  255. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/learning/lightgbm_subprocess.py +0 -0
  256. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/learning/memory_merge.py +0 -0
  257. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/learning/model_cache.py +0 -0
  258. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/learning/model_rollback.py +0 -0
  259. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/learning/outcome_queue.py +0 -0
  260. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/learning/outcomes.py +0 -0
  261. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/learning/pattern_miner.py +0 -0
  262. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/learning/pattern_miner_constants.py +0 -0
  263. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/learning/project_context.py +0 -0
  264. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/learning/quantization_scheduler.py +0 -0
  265. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/learning/ranker.py +0 -0
  266. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/learning/ranker_common.py +0 -0
  267. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/learning/ranker_retrain_legacy.py +0 -0
  268. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/learning/ranker_retrain_online.py +0 -0
  269. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/learning/reward.py +0 -0
  270. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/learning/reward_archive.py +0 -0
  271. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/learning/reward_boost.py +0 -0
  272. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/learning/reward_proxy.py +0 -0
  273. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/learning/shadow_test.py +0 -0
  274. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/learning/signal_worker.py +0 -0
  275. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/learning/signals.py +0 -0
  276. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/learning/skill_performance_miner.py +0 -0
  277. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/learning/source_quality.py +0 -0
  278. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/learning/trigram_index.py +0 -0
  279. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/learning/workflows.py +0 -0
  280. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/llm/__init__.py +0 -0
  281. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/math/__init__.py +0 -0
  282. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/math/ebbinghaus.py +0 -0
  283. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/math/fisher.py +0 -0
  284. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/math/fisher_quantized.py +0 -0
  285. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/math/hopfield.py +0 -0
  286. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/math/langevin.py +0 -0
  287. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/math/polar_quant.py +0 -0
  288. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/math/qjl.py +0 -0
  289. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/math/sheaf.py +0 -0
  290. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/math/turbo_quant.py +0 -0
  291. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/mcp/__init__.py +0 -0
  292. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/mcp/_daemon_proxy.py +0 -0
  293. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/mcp/_pool_adapter.py +0 -0
  294. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/mcp/_stdin_guard.py +0 -0
  295. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/mcp/agent_context.py +0 -0
  296. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/mcp/cli_fallback.py +0 -0
  297. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/mcp/resources.py +0 -0
  298. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/mcp/server.py +0 -0
  299. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/mcp/shared.py +0 -0
  300. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/mcp/tools.py +0 -0
  301. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/mcp/tools_active.py +0 -0
  302. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/mcp/tools_code_graph.py +0 -0
  303. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/mcp/tools_context.py +0 -0
  304. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/mcp/tools_core.py +0 -0
  305. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/mcp/tools_evolution.py +0 -0
  306. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/mcp/tools_learning.py +0 -0
  307. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/mcp/tools_mesh.py +0 -0
  308. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/mcp/tools_optimize.py +0 -0
  309. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/mcp/tools_v28.py +0 -0
  310. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/mcp/tools_v33.py +0 -0
  311. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/mesh/__init__.py +0 -0
  312. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/mesh/broker.py +0 -0
  313. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/mesh/remote_sync.py +0 -0
  314. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/migrations/__init__.py +0 -0
  315. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/migrations/v3_4_25_to_v3_4_26.py +0 -0
  316. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/optimize/__init__.py +0 -0
  317. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/optimize/adapters/__init__.py +0 -0
  318. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/optimize/adapters/_agent_registry.py +0 -0
  319. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/optimize/adapters/anthropic_adapter.py +0 -0
  320. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/optimize/adapters/openai_adapter.py +0 -0
  321. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/optimize/adapters/wrap.py +0 -0
  322. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/optimize/cache/__init__.py +0 -0
  323. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/optimize/cache/boundary_store.py +0 -0
  324. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/optimize/cache/centroid_store.py +0 -0
  325. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/optimize/cache/context_key.py +0 -0
  326. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/optimize/cache/exact.py +0 -0
  327. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/optimize/cache/invalidation.py +0 -0
  328. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/optimize/cache/key_builder.py +0 -0
  329. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/optimize/cache/manager.py +0 -0
  330. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/optimize/cache/semantic.py +0 -0
  331. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/optimize/cache/stampede.py +0 -0
  332. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/optimize/compress/__init__.py +0 -0
  333. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/optimize/compress/align.py +0 -0
  334. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/optimize/compress/ccr.py +0 -0
  335. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/optimize/compress/prose_llmlingua.py +0 -0
  336. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/optimize/compress/router.py +0 -0
  337. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/optimize/config/__init__.py +0 -0
  338. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/optimize/config/defaults.py +0 -0
  339. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/optimize/config/schema.py +0 -0
  340. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/optimize/config/store.py +0 -0
  341. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/optimize/metrics/__init__.py +0 -0
  342. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/optimize/metrics/counters.py +0 -0
  343. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/optimize/metrics/estimator.py +0 -0
  344. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/optimize/metrics/exporters.py +0 -0
  345. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/optimize/metrics/persistence.py +0 -0
  346. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/optimize/proxy/__init__.py +0 -0
  347. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/optimize/proxy/_helpers.py +0 -0
  348. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/optimize/proxy/anthropic_surface.py +0 -0
  349. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/optimize/proxy/capture.py +0 -0
  350. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/optimize/proxy/gemini_surface.py +0 -0
  351. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/optimize/proxy/lifecycle.py +0 -0
  352. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/optimize/proxy/openai_surface.py +0 -0
  353. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/optimize/proxy/server.py +0 -0
  354. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/optimize/proxy/vertex_surface.py +0 -0
  355. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/optimize/storage/__init__.py +0 -0
  356. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/optimize/storage/db.py +0 -0
  357. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/optimize/storage/schema.py +0 -0
  358. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/parameterization/__init__.py +0 -0
  359. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/parameterization/pattern_extractor.py +0 -0
  360. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/parameterization/pii_filter.py +0 -0
  361. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/parameterization/prompt_injector.py +0 -0
  362. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/parameterization/prompt_lifecycle.py +0 -0
  363. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/parameterization/soft_prompt_generator.py +0 -0
  364. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/retrieval/__init__.py +0 -0
  365. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/retrieval/agentic.py +0 -0
  366. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/retrieval/ann_index.py +0 -0
  367. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/retrieval/bm25_channel.py +0 -0
  368. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/retrieval/bridge_discovery.py +0 -0
  369. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/retrieval/channel_registry.py +0 -0
  370. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/retrieval/engine.py +0 -0
  371. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/retrieval/entity_channel.py +0 -0
  372. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/retrieval/forgetting_filter.py +0 -0
  373. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/retrieval/fusion.py +0 -0
  374. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/retrieval/hopfield_channel.py +0 -0
  375. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/retrieval/profile_channel.py +0 -0
  376. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/retrieval/quantization_aware_search.py +0 -0
  377. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/retrieval/reranker.py +0 -0
  378. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/retrieval/semantic_channel.py +0 -0
  379. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/retrieval/spreading_activation.py +0 -0
  380. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/retrieval/strategy.py +0 -0
  381. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/retrieval/temporal_channel.py +0 -0
  382. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/retrieval/vector_store.py +0 -0
  383. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/server/__init__.py +0 -0
  384. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/server/api.py +0 -0
  385. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/server/bandit_loops.py +0 -0
  386. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/server/middleware/__init__.py +0 -0
  387. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/server/middleware/security_headers.py +0 -0
  388. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/server/recall_health.py +0 -0
  389. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/server/recall_serializer.py +0 -0
  390. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/server/routes/__init__.py +0 -0
  391. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/server/routes/adapters.py +0 -0
  392. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/server/routes/agents.py +0 -0
  393. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/server/routes/backup.py +0 -0
  394. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/server/routes/behavioral.py +0 -0
  395. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/server/routes/brain.py +0 -0
  396. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/server/routes/chat.py +0 -0
  397. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/server/routes/compliance.py +0 -0
  398. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/server/routes/data_io.py +0 -0
  399. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/server/routes/entity.py +0 -0
  400. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/server/routes/events.py +0 -0
  401. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/server/routes/evolution.py +0 -0
  402. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/server/routes/helpers.py +0 -0
  403. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/server/routes/ingest.py +0 -0
  404. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/server/routes/insights.py +0 -0
  405. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/server/routes/learning.py +0 -0
  406. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/server/routes/lifecycle.py +0 -0
  407. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/server/routes/memories.py +0 -0
  408. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/server/routes/optimize.py +0 -0
  409. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/server/routes/prewarm.py +0 -0
  410. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/server/routes/profiles.py +0 -0
  411. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/server/routes/stats.py +0 -0
  412. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/server/routes/tiers.py +0 -0
  413. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/server/routes/timeline.py +0 -0
  414. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/server/routes/token.py +0 -0
  415. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/server/routes/ws.py +0 -0
  416. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/server/security_middleware.py +0 -0
  417. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/server/ui.py +0 -0
  418. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/server/unified_daemon.py +0 -0
  419. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/storage/__init__.py +0 -0
  420. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/storage/access_control.py +0 -0
  421. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/storage/access_log.py +0 -0
  422. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/storage/database.py +0 -0
  423. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/storage/embedding_migrator.py +0 -0
  424. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/storage/migration_runner.py +0 -0
  425. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/storage/migration_v33.py +0 -0
  426. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/storage/migrations/M001_add_signal_features_columns.py +0 -0
  427. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/storage/migrations/M002_model_state_history.py +0 -0
  428. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/storage/migrations/M003_migration_log.py +0 -0
  429. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/storage/migrations/M004_cross_platform_sync_log.py +0 -0
  430. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/storage/migrations/M005_bandit_tables.py +0 -0
  431. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/storage/migrations/M006_action_outcomes_reward.py +0 -0
  432. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/storage/migrations/M007_pending_outcomes.py +0 -0
  433. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/storage/migrations/M009_model_lineage.py +0 -0
  434. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/storage/migrations/M010_evolution_config.py +0 -0
  435. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/storage/migrations/M011_archive_and_merge.py +0 -0
  436. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/storage/migrations/M012_shadow_observations.py +0 -0
  437. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/storage/migrations/M013_bi_temporal_columns.py +0 -0
  438. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/storage/migrations/M014_v345_scale_ready.py +0 -0
  439. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/storage/migrations/M015_add_pinned_column.py +0 -0
  440. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/storage/migrations/M016_add_scope_support.py +0 -0
  441. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/storage/migrations/M017_ccq_scope_column.py +0 -0
  442. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/storage/migrations/__init__.py +0 -0
  443. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/storage/migrations.py +0 -0
  444. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/storage/models.py +0 -0
  445. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/storage/quantized_store.py +0 -0
  446. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/storage/schema.py +0 -0
  447. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/storage/schema_code_graph.py +0 -0
  448. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/storage/schema_v32.py +0 -0
  449. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/storage/schema_v3410.py +0 -0
  450. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/storage/schema_v3411.py +0 -0
  451. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/storage/schema_v343.py +0 -0
  452. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/storage/schema_v345.py +0 -0
  453. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/storage/schema_v347.py +0 -0
  454. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/storage/v2_migrator.py +0 -0
  455. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/trust/__init__.py +0 -0
  456. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/trust/gate.py +0 -0
  457. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/trust/provenance.py +0 -0
  458. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/trust/scorer.py +0 -0
  459. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/trust/signals.py +0 -0
  460. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/ui/css/brain.css +0 -0
  461. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/ui/css/legacy-dashboard.css +0 -0
  462. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/ui/css/neural-glass.css +0 -0
  463. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/ui/index.html +0 -0
  464. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/ui/js/agents.js +0 -0
  465. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/ui/js/brain.js +0 -0
  466. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/ui/js/events.js +0 -0
  467. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/ui/js/fact-detail.js +0 -0
  468. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/ui/js/feedback.js +0 -0
  469. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/ui/js/graph-event-bus.js +0 -0
  470. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/ui/js/graph-filters.js +0 -0
  471. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/ui/js/graph-ui.js +0 -0
  472. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/ui/js/ide-status.js +0 -0
  473. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/ui/js/init.js +0 -0
  474. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/ui/js/lifecycle.js +0 -0
  475. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/ui/js/memory-timeline.js +0 -0
  476. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/ui/js/modal.js +0 -0
  477. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/ui/js/ng-health.js +0 -0
  478. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/ui/js/ng-ingestion.js +0 -0
  479. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/ui/js/ng-shell.js +0 -0
  480. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/ui/js/ng-skills.js +0 -0
  481. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/ui/js/quick-actions.js +0 -0
  482. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/ui/js/search.js +0 -0
  483. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/ui/js/settings.js +0 -0
  484. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/ui/js/trust-dashboard.js +0 -0
  485. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/ui/vendor/bootstrap-icons/bootstrap-icons.css +0 -0
  486. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/ui/vendor/bootstrap-icons/fonts/bootstrap-icons.woff +0 -0
  487. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/ui/vendor/bootstrap-icons/fonts/bootstrap-icons.woff2 +0 -0
  488. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/ui/vendor/bootstrap.bundle.min.js +0 -0
  489. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/ui/vendor/bootstrap.min.css +0 -0
  490. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/ui/vendor/d3.v7.min.js +0 -0
  491. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/ui/vendor/graphology-library.min.js +0 -0
  492. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/ui/vendor/graphology.umd.min.js +0 -0
  493. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/ui/vendor/inter-ui/inter-variable.min.css +0 -0
  494. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/ui/vendor/inter-ui/variable/InterVariable-Italic.woff2 +0 -0
  495. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/ui/vendor/inter-ui/variable/InterVariable.woff2 +0 -0
  496. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/ui/vendor/sigma.min.js +0 -0
  497. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/vector/__init__.py +0 -0
  498. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory/vector/lancedb_backend.py +0 -0
  499. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory.egg-info/dependency_links.txt +0 -0
  500. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory.egg-info/entry_points.txt +0 -0
  501. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory.egg-info/requires.txt +0 -0
  502. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/src/superlocalmemory.egg-info/top_level.txt +0 -0
  503. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/tests/test_auto_hooks.py +0 -0
  504. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/tests/test_before_web_hook.py +0 -0
  505. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/tests/test_behavioral_full.py +0 -0
  506. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/tests/test_claude_hooks.py +0 -0
  507. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/tests/test_cli_core.py +0 -0
  508. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/tests/test_cli_json.py +0 -0
  509. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/tests/test_cli_v33.py +0 -0
  510. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/tests/test_compliance_full.py +0 -0
  511. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/tests/test_config_system.py +0 -0
  512. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/tests/test_engine_hooks.py +0 -0
  513. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/tests/test_event_bus.py +0 -0
  514. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/tests/test_features.py +0 -0
  515. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/tests/test_final_locomo_mini.py +0 -0
  516. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/tests/test_graph_integrity.py +0 -0
  517. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/tests/test_hook_handlers.py +0 -0
  518. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/tests/test_ide_connector.py +0 -0
  519. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/tests/test_infra.py +0 -0
  520. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/tests/test_injection.py +0 -0
  521. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/tests/test_learning_advanced.py +0 -0
  522. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/tests/test_learning_collectors.py +0 -0
  523. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/tests/test_llm_provider.py +0 -0
  524. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/tests/test_mcp_server.py +0 -0
  525. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/tests/test_migration.py +0 -0
  526. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/tests/test_mode_switch_preservation.py +0 -0
  527. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/tests/test_post_install.py +0 -0
  528. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/tests/test_ranker.py +0 -0
  529. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/tests/test_topic_shift_hook.py +0 -0
  530. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/tests/test_trust_full.py +0 -0
  531. {superlocalmemory-3.6.20 → superlocalmemory-3.6.22}/tests/test_v3_api.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: superlocalmemory
3
- Version: 3.6.20
3
+ Version: 3.6.22
4
4
  Summary: Information-geometric agent memory with mathematical guarantees
5
5
  Author-email: Varun Pratap Bhardwaj <admin@superlocalmemory.com>
6
6
  License: AGPL-3.0-or-later
@@ -96,10 +96,10 @@ Dynamic: license-file
96
96
  <img src="https://superlocalmemory.com/assets/logo-mark.png" alt="SuperLocalMemory" width="200"/>
97
97
  </p>
98
98
 
99
- <h1 align="center">SuperLocalMemory V3.6.18</h1>
99
+ <h1 align="center">SuperLocalMemory V3.6.21</h1>
100
100
  <p align="center"><strong>Cache. Compress. Remember. Three surfaces — proxy, MCP tools, or skill. Every setup covered.</strong><br/>
101
101
  <em>To the best of our knowledge, the only zero-cloud agent memory that beats Mem0's zero-LLM score on LoCoMo. Mode A: 74.8% vs Mem0 64.2% — no GPU, no API key, on CPU.</em></p>
102
- <p align="center"><code>v3.6.18</code> — <strong>Plugin-native. Profile-aware. Distributed-ready.</strong><br/>
102
+ <p align="center"><code>v3.6.21</code> — <strong>Plugin-native. Profile-aware. Distributed-ready.</strong><br/>
103
103
  Proxy: <code>slm wrap claude</code> &nbsp;·&nbsp; MCP: add <code>slm_compress</code> to your config &nbsp;·&nbsp; Skill: zero-config</p>
104
104
  <p align="center"><strong>3 published research papers</strong> (arXiv preprints + Zenodo-archived) · <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>
105
105
 
@@ -401,6 +401,8 @@ slm dashboard # Opens at http://localhost:8765
401
401
 
402
402
  | Version | Codename | Key Features |
403
403
  |---|---|---|
404
+ | **v3.6.21** | Dashboard Audit | Full UI audit across all 7 dashboard tabs — auth fix for mesh panel (issue #60 frontend), Quick Store endpoint, timeline endpoint, r.ok guards, SSE \r fix, event delegation for lazy tabs, optimize toggle revert; backbone.py JSONDecodeError fix (issue #62) |
405
+ | **v3.6.20** | Mesh Auth | Remote mesh auth fix (issue #60) — `_get_broker` now accepts Bearer + X-Mesh-Secret from non-loopback callers; config settings preservation (AIDEV-86) |
404
406
  | **v3.6.17** | Community | 8 contributor PRs (observability events, marker-bounded adapter writes, daemon port discovery, anthropic `api_base`, OpenMP workers, atomic-write rehash, `_jl` sentinel, LFS pointer); dashboard-feedback fix (#53/#59); env-tunable SQLite knobs + idle backoff; remote LLM test-probe (#40) |
405
407
  | **v3.6.16** | Docs | Corrected Claude Code plugin install — adds the required `/plugin marketplace add` step; clarifies plugin vs pip/npm delivery |
406
408
  | **v3.6.15** | Multi-scope | **Opt-in [shared memory](docs/shared-memory.md)** (personal/shared/global, off by default), default-deny scope at every read path, recall scope-race fix, contributor PRs #42/#43/#44, fixes #46–#49 |
@@ -2,10 +2,10 @@
2
2
  <img src="https://superlocalmemory.com/assets/logo-mark.png" alt="SuperLocalMemory" width="200"/>
3
3
  </p>
4
4
 
5
- <h1 align="center">SuperLocalMemory V3.6.18</h1>
5
+ <h1 align="center">SuperLocalMemory V3.6.21</h1>
6
6
  <p align="center"><strong>Cache. Compress. Remember. Three surfaces — proxy, MCP tools, or skill. Every setup covered.</strong><br/>
7
7
  <em>To the best of our knowledge, the only zero-cloud agent memory that beats Mem0's zero-LLM score on LoCoMo. Mode A: 74.8% vs Mem0 64.2% — no GPU, no API key, on CPU.</em></p>
8
- <p align="center"><code>v3.6.18</code> — <strong>Plugin-native. Profile-aware. Distributed-ready.</strong><br/>
8
+ <p align="center"><code>v3.6.21</code> — <strong>Plugin-native. Profile-aware. Distributed-ready.</strong><br/>
9
9
  Proxy: <code>slm wrap claude</code> &nbsp;·&nbsp; MCP: add <code>slm_compress</code> to your config &nbsp;·&nbsp; Skill: zero-config</p>
10
10
  <p align="center"><strong>3 published research papers</strong> (arXiv preprints + Zenodo-archived) · <a href="https://arxiv.org/abs/2603.02240">arXiv:2603.02240</a> · <a href="https://arxiv.org/abs/2603.14588">arXiv:2603.14588</a> · <a href="https://arxiv.org/abs/2604.04514">arXiv:2604.04514</a></p>
11
11
 
@@ -307,6 +307,8 @@ slm dashboard # Opens at http://localhost:8765
307
307
 
308
308
  | Version | Codename | Key Features |
309
309
  |---|---|---|
310
+ | **v3.6.21** | Dashboard Audit | Full UI audit across all 7 dashboard tabs — auth fix for mesh panel (issue #60 frontend), Quick Store endpoint, timeline endpoint, r.ok guards, SSE \r fix, event delegation for lazy tabs, optimize toggle revert; backbone.py JSONDecodeError fix (issue #62) |
311
+ | **v3.6.20** | Mesh Auth | Remote mesh auth fix (issue #60) — `_get_broker` now accepts Bearer + X-Mesh-Secret from non-loopback callers; config settings preservation (AIDEV-86) |
310
312
  | **v3.6.17** | Community | 8 contributor PRs (observability events, marker-bounded adapter writes, daemon port discovery, anthropic `api_base`, OpenMP workers, atomic-write rehash, `_jl` sentinel, LFS pointer); dashboard-feedback fix (#53/#59); env-tunable SQLite knobs + idle backoff; remote LLM test-probe (#40) |
311
313
  | **v3.6.16** | Docs | Corrected Claude Code plugin install — adds the required `/plugin marketplace add` step; clarifies plugin vs pip/npm delivery |
312
314
  | **v3.6.15** | Multi-scope | **Opt-in [shared memory](docs/shared-memory.md)** (personal/shared/global, off by default), default-deny scope at every read path, recall scope-race fix, contributor PRs #42/#43/#44, fixes #46–#49 |
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "superlocalmemory"
3
- version = "3.6.20"
3
+ version = "3.6.22"
4
4
  description = "Information-geometric agent memory with mathematical guarantees"
5
5
  readme = "README.md"
6
6
  license = {text = "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.6.20"
35
+ __version__ = "3.6.22"
36
36
 
37
37
  _REQUIRED_VERSIONS = {
38
38
  "sentence_transformers": "5.3.0",
@@ -190,7 +190,7 @@ class LLMBackbone:
190
190
  logger.warning("Content filter or bad request (400). Returning empty.")
191
191
  return ""
192
192
  last_error = exc
193
- except (httpx.TimeoutException, httpx.ConnectError) as exc:
193
+ except (httpx.TimeoutException, httpx.ConnectError, ValueError) as exc:
194
194
  last_error = exc
195
195
 
196
196
  if attempt < _MAX_RETRIES - 1:
@@ -217,7 +217,14 @@ class LLMBackbone:
217
217
  with httpx.Client(timeout=timeout) as client:
218
218
  resp = client.post(url, headers=headers, json=payload)
219
219
  resp.raise_for_status()
220
- return resp.json()
220
+ try:
221
+ return resp.json()
222
+ except Exception as exc:
223
+ raise ValueError(
224
+ f"LLM endpoint returned HTTP {resp.status_code} with "
225
+ f"non-JSON body (Content-Length="
226
+ f"{resp.headers.get('content-length', '?')}): {exc}"
227
+ ) from exc
221
228
  finally:
222
229
  socket.setdefaulttimeout(old_default)
223
230
 
@@ -65,25 +65,13 @@ def register_v3_tools(server, get_engine: Callable) -> None:
65
65
  "error": f"Invalid mode '{mode}'. Use 'a', 'b', or 'c'.",
66
66
  }
67
67
  from superlocalmemory.core.config import SLMConfig
68
- from superlocalmemory.storage.models import Mode
69
68
  from superlocalmemory.mcp.server import reset_engine
70
69
 
71
- mode_enum = Mode(mode_lower)
70
+ # Use switch_mode() — the correct load-then-patch path that preserves
71
+ # all user-tuned config blocks (forgetting, injection, retrieval, scope,
72
+ # math, channel_weights, …). for_mode() resets them to hardcoded defaults.
72
73
  old_config = SLMConfig.load()
73
- config = SLMConfig.for_mode(
74
- mode_enum,
75
- llm_provider=old_config.llm.provider,
76
- llm_model=old_config.llm.model,
77
- llm_api_key=old_config.llm.api_key,
78
- llm_api_base=old_config.llm.api_base,
79
- embedding_provider=old_config.embedding.provider,
80
- embedding_endpoint=old_config.embedding.api_endpoint,
81
- embedding_key=old_config.embedding.api_key,
82
- embedding_model_name=old_config.embedding.model_name,
83
- embedding_dimension=old_config.embedding.dimension,
84
- )
85
- config.active_profile = old_config.active_profile
86
- config.save(mode_change=True)
74
+ config = SLMConfig.switch_mode(mode_lower)
87
75
 
88
76
  # V3.3: Check if embedding model changed — flag for re-indexing
89
77
  needs_reindex = (
@@ -87,15 +87,23 @@ def _get_broker(request: Request):
87
87
  client_host = request.client.host if request.client else ""
88
88
  if client_host not in ("127.0.0.1", "::1", "localhost"):
89
89
  import hmac
90
- # Accept X-Mesh-Secret (undocumented legacy header, v3.6.12 regression) OR
91
- # Authorization: Bearer <secret> (RFC 7617 — canonical; what remote_sync.py
92
- # sends and what the docs specify). Both are constant-time compared.
90
+ from superlocalmemory.core.security_primitives import verify_install_token
91
+
92
+ # Path 1: install token dashboard/browser callers hold this and
93
+ # should not need the mesh secret exposed in JS.
94
+ install_token = request.headers.get("x-install-token", "")
95
+ if install_token and verify_install_token(install_token):
96
+ return broker
97
+
98
+ # Path 2: mesh secret — remote agents / remote_sync.py / LAN peers.
99
+ # Accept X-Mesh-Secret (legacy v3.6.12 header) OR
100
+ # Authorization: Bearer <secret> (RFC 7617 canonical form).
93
101
  presented = (
94
102
  request.headers.get("x-mesh-secret")
95
103
  or request.headers.get("authorization", "").removeprefix("Bearer ").strip()
96
104
  )
97
105
  if not presented or not hmac.compare_digest(presented, secret):
98
- raise HTTPException(401, detail="invalid or missing mesh secret")
106
+ raise HTTPException(401, detail="invalid or missing credential")
99
107
  return broker
100
108
 
101
109
 
@@ -123,20 +123,17 @@ async def set_mode(request: Request):
123
123
  status_code=400,
124
124
  )
125
125
 
126
- new_config = SLMConfig.for_mode(
127
- Mode(new_mode),
128
- llm_provider=old_config.llm.provider,
129
- llm_model=old_config.llm.model,
130
- llm_api_key=old_config.llm.api_key,
131
- llm_api_base=old_config.llm.api_base,
132
- embedding_provider=old_config.embedding.provider,
133
- embedding_endpoint=old_config.embedding.api_endpoint,
134
- embedding_key=old_config.embedding.api_key,
135
- embedding_model_name=old_config.embedding.model_name,
136
- embedding_dimension=old_config.embedding.dimension,
137
- )
138
- new_config.active_profile = old_config.active_profile
139
- new_config.save(mode_change=True)
126
+ # Apply new mode's structural presets (retrieval, math, channel_weights)
127
+ # by building a fresh template, then graft them onto the loaded config so
128
+ # all user-tuned blocks (forgetting, injection, consolidation, scope, …)
129
+ # are preserved across the mode switch.
130
+ _template = SLMConfig.for_mode(Mode(new_mode))
131
+ old_config.mode = Mode(new_mode)
132
+ old_config.retrieval = _template.retrieval
133
+ old_config.math = _template.math
134
+ old_config.channel_weights = _template.channel_weights
135
+ old_config.save(mode_change=True)
136
+ new_config = old_config
140
137
 
141
138
  # Audit the change before we lose context — proves who/when/what.
142
139
  # Captures the phantom-write case where `for_mode(C)` auto-defaults
@@ -184,35 +181,52 @@ async def set_full_config(request: Request):
184
181
  if new_mode not in ("a", "b", "c"):
185
182
  return JSONResponse({"error": "Invalid mode"}, status_code=400)
186
183
 
187
- from superlocalmemory.core.config import SLMConfig
184
+ from superlocalmemory.core.config import SLMConfig, EmbeddingConfig, LLMConfig
188
185
  from superlocalmemory.storage.models import Mode
189
186
  from superlocalmemory.server.routes.helpers import log_mode_change
190
- old = SLMConfig.load()
191
- old_mode = old.mode.value
192
- # v3.6.12 (settings-2): honor a custom endpoint for ANY provider — the
193
- # old code forced api_base="" for everything except ollama, so a
194
- # llama.cpp / LM Studio / Azure-OpenAI endpoint configured in the
195
- # dashboard could never be saved (Test Connection then probed the wrong
196
- # URL → 401). Accept both base_url and endpoint; default ollama locally.
187
+ config = SLMConfig.load()
188
+ old_mode = config.mode.value
189
+
190
+ # v3.6.12 (settings-2): honor a custom endpoint for ANY provider.
197
191
  _endpoint = (body.get("base_url", "") or body.get("endpoint", "")).strip()
198
192
  if not _endpoint and provider == "ollama":
199
193
  _endpoint = "http://localhost:11434"
200
- config = SLMConfig.for_mode(
201
- Mode(new_mode),
202
- llm_provider=provider if provider != "none" else "",
203
- llm_model=model,
204
- llm_api_key=api_key,
205
- llm_api_base=_endpoint,
206
- embedding_provider=body.get("embedding_provider", ""),
207
- embedding_endpoint=body.get("embedding_endpoint", ""),
208
- embedding_key=body.get("embedding_key", ""),
209
- embedding_model_name=body.get("embedding_model", ""),
210
- embedding_dimension=int(body.get("embedding_dimension", 0) or 0),
194
+
195
+ # Mutate only the fields the dashboard sent — all other config blocks
196
+ # (forgetting, injection, retrieval, math, consolidation, scope, …) are
197
+ # preserved because we loaded the full existing config above.
198
+ config.mode = Mode(new_mode)
199
+ config.llm = LLMConfig(
200
+ provider=provider if provider != "none" else "",
201
+ model=model,
202
+ api_key=api_key,
203
+ api_base=_endpoint,
211
204
  )
212
- config.active_profile = old.active_profile
213
- # v3.6.12 (settings-1): an explicit user-driven mode switch must persist.
214
- # save() without mode_change=True hits the guard that PRESERVES the old
215
- # mode, so /mode/set silently no-op'd the switch while returning success.
205
+
206
+ # Update embedding only when the dashboard explicitly sent those fields;
207
+ # absence means "leave it alone" (AIDEV-86 / broader fix).
208
+ _emb_fields = ("embedding_provider", "embedding_endpoint", "embedding_key",
209
+ "embedding_model", "embedding_dimension")
210
+ if any(k in body for k in _emb_fields):
211
+ config.embedding = EmbeddingConfig(
212
+ provider=body.get("embedding_provider", ""),
213
+ api_endpoint=body.get("embedding_endpoint", ""),
214
+ api_key=body.get("embedding_key", ""),
215
+ model_name=body.get("embedding_model", ""),
216
+ dimension=int(body.get("embedding_dimension", 0) or 0),
217
+ )
218
+
219
+ # When the mode actually changed, apply the new mode's structural presets
220
+ # (retrieval topology, math thresholds, channel weights) so the user gets
221
+ # the right runtime behaviour for their chosen mode.
222
+ if new_mode != old_mode:
223
+ _template = SLMConfig.for_mode(Mode(new_mode))
224
+ config.retrieval = _template.retrieval
225
+ config.math = _template.math
226
+ config.channel_weights = _template.channel_weights
227
+
228
+ # v3.6.12 (settings-1): mode_change=True is required to persist the new
229
+ # mode — save() without it hits a guard that preserves the old mode.
216
230
  config.save(mode_change=True)
217
231
 
218
232
  log_mode_change(
@@ -607,8 +621,7 @@ async def set_provider(request: Request):
607
621
  model = body.get("model", "")
608
622
  base_url = body.get("base_url", "")
609
623
 
610
- from superlocalmemory.core.config import SLMConfig
611
- from superlocalmemory.storage.models import Mode
624
+ from superlocalmemory.core.config import SLMConfig, LLMConfig
612
625
  config = SLMConfig.load()
613
626
 
614
627
  # Use preset base_url if not provided
@@ -619,15 +632,14 @@ async def set_provider(request: Request):
619
632
  if not model:
620
633
  model = preset.get("model", "")
621
634
 
622
- new_config = SLMConfig.for_mode(
623
- config.mode,
624
- llm_provider=provider,
625
- llm_model=model,
626
- llm_api_key=api_key,
627
- llm_api_base=base_url,
635
+ # Mutate only the LLM block — all other config is preserved.
636
+ config.llm = LLMConfig(
637
+ provider=provider,
638
+ model=model,
639
+ api_key=api_key,
640
+ api_base=base_url,
628
641
  )
629
- new_config.active_profile = config.active_profile
630
- new_config.save()
642
+ config.save()
631
643
 
632
644
  return {"success": True, "provider": provider, "model": model}
633
645
  except Exception as e:
@@ -52,17 +52,14 @@ function saveAutoRecallConfig() {
52
52
  }).catch(function(e) { console.log('Save auto-recall error:', e); });
53
53
  }
54
54
 
55
- // Bind change listeners for auto-capture toggles
56
- document.querySelectorAll('#auto-capture-toggle, #auto-capture-decisions, #auto-capture-bugs').forEach(function(el) {
57
- if (el) {
58
- el.addEventListener('change', saveAutoCaptureConfig);
59
- }
60
- });
61
-
62
- // Bind change listeners for auto-recall toggles
63
- document.querySelectorAll('#auto-recall-toggle, #auto-recall-session').forEach(function(el) {
64
- if (el) {
65
- el.addEventListener('change', saveAutoRecallConfig);
55
+ // Use delegation so listeners work even when the settings pane is injected lazily.
56
+ document.addEventListener('change', function(e) {
57
+ var id = e.target && e.target.id;
58
+ if (!id) return;
59
+ if (id === 'auto-capture-toggle' || id === 'auto-capture-decisions' || id === 'auto-capture-bugs') {
60
+ saveAutoCaptureConfig();
61
+ } else if (id === 'auto-recall-toggle' || id === 'auto-recall-session') {
62
+ saveAutoRecallConfig();
66
63
  }
67
64
  });
68
65
 
@@ -117,6 +117,7 @@ async function loadClusters() {
117
117
  }
118
118
  try {
119
119
  var response = await fetch('/api/clusters');
120
+ if (!response.ok) throw new Error('HTTP ' + response.status);
120
121
  var data = await response.json();
121
122
  _CLUSTERS_STATE.clusters = data.clusters || [];
122
123
  _CLUSTERS_STATE.page = 0;
@@ -13,6 +13,7 @@ async function loadCompliance() {
13
13
  var url = '/api/compliance/status';
14
14
  if (filterValue) url += '?event_type=' + encodeURIComponent(filterValue);
15
15
  var response = await fetch(url);
16
+ if (!response.ok) throw new Error('HTTP ' + response.status);
16
17
  var data = await response.json();
17
18
  _complianceData = data;
18
19
 
@@ -416,6 +416,9 @@ function refreshDashboard() {
416
416
  function populateFilters(categories, projects) {
417
417
  var categorySelect = document.getElementById('filter-category');
418
418
  var projectSelect = document.getElementById('filter-project');
419
+ // Clear existing options beyond the first placeholder to prevent duplicates on refresh
420
+ if (categorySelect) while (categorySelect.options.length > 1) categorySelect.remove(1);
421
+ if (projectSelect) while (projectSelect.options.length > 1) projectSelect.remove(1);
419
422
  categories.forEach(function(cat) {
420
423
  if (cat.category) {
421
424
  var option = document.createElement('option');
@@ -63,7 +63,12 @@ document.addEventListener('click', function(e) {
63
63
  method: 'PUT',
64
64
  headers: {'Content-Type': 'application/json'},
65
65
  body: JSON.stringify({mode: mode})
66
- }).then(function() { loadDashboard(); });
66
+ }).then(function(r) {
67
+ if (!r.ok) return r.json().catch(function() { return {}; }).then(function(d) {
68
+ showToast('Mode switch failed: ' + (d.error || d.detail || r.status), 'error');
69
+ });
70
+ return r.json().then(function() { loadDashboard(); });
71
+ }).catch(function() { showToast('Mode switch failed: network error', 'error'); });
67
72
  }
68
73
  });
69
74
 
@@ -72,15 +77,21 @@ document.getElementById('quick-store-btn')?.addEventListener('click', function()
72
77
  var input = document.getElementById('quick-store-input');
73
78
  var content = input.value.trim();
74
79
  if (!content) return;
75
- fetch('/api/memories', {
80
+ fetch('/remember', {
76
81
  method: 'POST',
77
82
  headers: {'Content-Type': 'application/json'},
78
83
  body: JSON.stringify({content: content})
79
- }).then(function(r) { return r.json(); }).then(function(data) {
84
+ }).then(function(r) {
85
+ if (!r.ok) return r.json().catch(function() { return {}; }).then(function(d) {
86
+ showToast('Store failed: ' + (d.detail || d.error || r.status), 'error');
87
+ });
88
+ return r.json();
89
+ }).then(function(data) {
90
+ if (!data) return;
80
91
  input.value = '';
81
92
  loadDashboard();
82
- alert('Stored!');
83
- });
93
+ showToast('Stored!');
94
+ }).catch(function() { showToast('Store failed: network error', 'error'); });
84
95
  });
85
96
 
86
97
  // Quick recall
@@ -91,7 +102,10 @@ document.getElementById('quick-recall-btn')?.addEventListener('click', function(
91
102
  method: 'POST',
92
103
  headers: {'Content-Type': 'application/json'},
93
104
  body: JSON.stringify({query: query, limit: 5})
94
- }).then(function(r) { return r.json(); }).then(function(data) {
105
+ }).then(function(r) {
106
+ if (!r.ok) throw new Error('HTTP ' + r.status);
107
+ return r.json();
108
+ }).then(function(data) {
95
109
  var div = document.getElementById('quick-recall-results');
96
110
  if (!data.results || data.results.length === 0) {
97
111
  div.textContent = 'No results found.';
@@ -113,5 +127,8 @@ document.getElementById('quick-recall-btn')?.addEventListener('click', function(
113
127
  row.appendChild(scoreSpan);
114
128
  div.appendChild(row);
115
129
  });
130
+ }).catch(function(e) {
131
+ var div = document.getElementById('quick-recall-results');
132
+ if (div) div.textContent = 'Search failed. Is the daemon running?';
116
133
  });
117
134
  });
@@ -618,7 +618,10 @@ function loadGraphSigma() {
618
618
  if (typeof showLoadingSpinner === 'function') showLoadingSpinner();
619
619
 
620
620
  fetch('/api/graph?max_nodes=' + fetchLimit + '&min_importance=' + minImportance)
621
- .then(function(r) { return r.json(); })
621
+ .then(function(r) {
622
+ if (!r.ok) throw new Error('HTTP ' + r.status);
623
+ return r.json();
624
+ })
622
625
  .then(function(data) {
623
626
  // Store in shared globals
624
627
  if (typeof window.graphData !== 'undefined') window.graphData = data;
@@ -61,7 +61,11 @@ async function loadMathHealth() {
61
61
  var liStatus = document.createElement('li');
62
62
  liStatus.appendChild(document.createTextNode('Status: '));
63
63
  var statusBadge = document.createElement('span');
64
- statusBadge.className = 'badge bg-success';
64
+ var _s = (layer.status || 'active').toLowerCase();
65
+ var _badgeClass = _s === 'error' || _s === 'critical' ? 'bg-danger' :
66
+ _s === 'warning' || _s === 'degraded' ? 'bg-warning text-dark' :
67
+ 'bg-success';
68
+ statusBadge.className = 'badge ' + _badgeClass;
65
69
  statusBadge.textContent = layer.status || 'active';
66
70
  liStatus.appendChild(statusBadge);
67
71
  ul.appendChild(liStatus);
@@ -41,6 +41,7 @@ async function loadMemories(page) {
41
41
  showLoading('memories-list', 'Loading memories...');
42
42
  try {
43
43
  var response = await fetch(url);
44
+ if (!response.ok) throw new Error('HTTP ' + response.status);
44
45
  var data = await response.json();
45
46
  lastSearchResults = null;
46
47
  var exportBtn = document.getElementById('export-search-btn');
@@ -157,7 +157,7 @@ function sendChatQuery(query) {
157
157
 
158
158
  var currentEvent = '';
159
159
  for (var i = 0; i < lines.length; i++) {
160
- var line = lines[i];
160
+ var line = lines[i].replace(/\r$/, ''); // strip \r from \r\n streams
161
161
  if (line.startsWith('event: ')) {
162
162
  currentEvent = line.substring(7).trim();
163
163
  } else if (line.startsWith('data: ')) {
@@ -16,12 +16,16 @@
16
16
  function fetchEntityList(offset) {
17
17
  offset = offset || 0;
18
18
  fetch('/api/entity/list?limit=' + PAGE_SIZE + '&offset=' + offset)
19
- .then(function(r) { return r.json(); })
19
+ .then(function(r) {
20
+ if (!r.ok) throw new Error('HTTP ' + r.status);
21
+ return r.json();
22
+ })
20
23
  .then(function(data) {
21
24
  allEntities = data.entities || [];
22
25
  renderEntityList(allEntities, data.total || 0, offset);
23
26
  })
24
- .catch(function() {
27
+ .catch(function(err) {
28
+ console.error('[entities] fetchEntityList failed:', err);
25
29
  renderEntityList([], 0, 0);
26
30
  });
27
31
  }