surreal-memory 2.2.0__tar.gz → 2.3.1__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 (387) hide show
  1. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/PKG-INFO +2 -2
  2. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/README.md +1 -1
  3. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/pyproject.toml +1 -1
  4. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/__init__.py +1 -1
  5. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/engine/diagnostics.py +10 -0
  6. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/server/routes/dashboard_api.py +49 -23
  7. surreal_memory-2.2.0/src/surreal_memory/server/static/dist/assets/DiagramsPage-DxGbFDqh.js → surreal_memory-2.3.1/src/surreal_memory/server/static/dist/assets/DiagramsPage-DxR1C_Ua.js +1 -1
  8. surreal_memory-2.2.0/src/surreal_memory/server/static/dist/assets/EvolutionPage-BCt3Gjlg.js → surreal_memory-2.3.1/src/surreal_memory/server/static/dist/assets/EvolutionPage-By828lS5.js +1 -1
  9. surreal_memory-2.2.0/src/surreal_memory/server/static/dist/assets/GraphPage-Bn2XnYSM.js → surreal_memory-2.3.1/src/surreal_memory/server/static/dist/assets/GraphPage-DwQB1_DY.js +1 -1
  10. surreal_memory-2.2.0/src/surreal_memory/server/static/dist/assets/HealthPage-BOvDCRq_.js → surreal_memory-2.3.1/src/surreal_memory/server/static/dist/assets/HealthPage-DetJg-Qr.js +1 -1
  11. surreal_memory-2.2.0/src/surreal_memory/server/static/dist/assets/OraclePage-Cx309IS8.js → surreal_memory-2.3.1/src/surreal_memory/server/static/dist/assets/OraclePage-7FBeVFXa.js +1 -1
  12. surreal_memory-2.3.1/src/surreal_memory/server/static/dist/assets/OverviewPage-xe8kFqX3.js +1 -0
  13. surreal_memory-2.3.1/src/surreal_memory/server/static/dist/assets/ProGate-CwBF4etn.js +1 -0
  14. surreal_memory-2.2.0/src/surreal_memory/server/static/dist/assets/SettingsPage-Co7mL5ao.js → surreal_memory-2.3.1/src/surreal_memory/server/static/dist/assets/SettingsPage-CH2mIMiD.js +1 -1
  15. surreal_memory-2.3.1/src/surreal_memory/server/static/dist/assets/StoragePage-CLDPXEH8.js +1 -0
  16. surreal_memory-2.3.1/src/surreal_memory/server/static/dist/assets/SyncPage-MbtH1dwD.js +1 -0
  17. surreal_memory-2.2.0/src/surreal_memory/server/static/dist/assets/TimelinePage-D7a4yM0C.js → surreal_memory-2.3.1/src/surreal_memory/server/static/dist/assets/TimelinePage-BIybkdH4.js +1 -1
  18. surreal_memory-2.2.0/src/surreal_memory/server/static/dist/assets/ToolStatsPage-DSbdcAxV.js → surreal_memory-2.3.1/src/surreal_memory/server/static/dist/assets/ToolStatsPage-BA-DvxES.js +1 -1
  19. surreal_memory-2.2.0/src/surreal_memory/server/static/dist/assets/VisualizePage-CQRwt661.js → surreal_memory-2.3.1/src/surreal_memory/server/static/dist/assets/VisualizePage-B_IPrBGU.js +1 -1
  20. surreal_memory-2.2.0/src/surreal_memory/server/static/dist/assets/card-DMi3iNIj.js → surreal_memory-2.3.1/src/surreal_memory/server/static/dist/assets/card-B0vNsxr_.js +1 -1
  21. surreal_memory-2.3.1/src/surreal_memory/server/static/dist/assets/index-BFkJgtCN.css +1 -0
  22. surreal_memory-2.3.1/src/surreal_memory/server/static/dist/assets/index-C26pxqlr.js +54 -0
  23. surreal_memory-2.3.1/src/surreal_memory/server/static/dist/assets/skeleton-DQJ-n00q.js +1 -0
  24. surreal_memory-2.3.1/src/surreal_memory/server/static/dist/assets/vendor-icons-BYlYobEK.js +1 -0
  25. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/server/static/dist/index.html +3 -3
  26. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/storage/surrealdb/schema.py +20 -1
  27. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/storage/surrealdb/store.py +107 -6
  28. surreal_memory-2.3.1/src/surreal_memory/storage/surrealdb/tool_events.py +235 -0
  29. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/unified_config.py +90 -18
  30. surreal_memory-2.2.0/src/surreal_memory/server/static/dist/assets/OverviewPage-C9zanzbn.js +0 -1
  31. surreal_memory-2.2.0/src/surreal_memory/server/static/dist/assets/ProGate-CWdLKxhy.js +0 -1
  32. surreal_memory-2.2.0/src/surreal_memory/server/static/dist/assets/StoragePage-ChOPs2Io.js +0 -1
  33. surreal_memory-2.2.0/src/surreal_memory/server/static/dist/assets/SyncPage-XHo3B9mj.js +0 -1
  34. surreal_memory-2.2.0/src/surreal_memory/server/static/dist/assets/index-C4hAA6lf.css +0 -1
  35. surreal_memory-2.2.0/src/surreal_memory/server/static/dist/assets/index-eqEVe4jF.js +0 -54
  36. surreal_memory-2.2.0/src/surreal_memory/server/static/dist/assets/skeleton-CMgwRZUe.js +0 -1
  37. surreal_memory-2.2.0/src/surreal_memory/server/static/dist/assets/vendor-icons-ILWTDAJI.js +0 -1
  38. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/.gitignore +0 -0
  39. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/LICENSE +0 -0
  40. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/NOTICE +0 -0
  41. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/cli/__init__.py +0 -0
  42. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/cli/__main__.py +0 -0
  43. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/cli/_helpers.py +0 -0
  44. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/cli/commands/__init__.py +0 -0
  45. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/cli/commands/brain.py +0 -0
  46. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/cli/commands/codebase.py +0 -0
  47. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/cli/commands/config_cmd.py +0 -0
  48. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/cli/commands/habits.py +0 -0
  49. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/cli/commands/info.py +0 -0
  50. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/cli/commands/listing.py +0 -0
  51. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/cli/commands/memory.py +0 -0
  52. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/cli/commands/project.py +0 -0
  53. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/cli/commands/reindex.py +0 -0
  54. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/cli/commands/shared.py +0 -0
  55. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/cli/commands/shortcuts.py +0 -0
  56. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/cli/commands/storage.py +0 -0
  57. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/cli/commands/telegram.py +0 -0
  58. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/cli/commands/tools.py +0 -0
  59. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/cli/commands/train.py +0 -0
  60. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/cli/commands/update.py +0 -0
  61. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/cli/commands/version.py +0 -0
  62. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/cli/commands/watch.py +0 -0
  63. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/cli/config.py +0 -0
  64. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/cli/doctor.py +0 -0
  65. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/cli/embedding_setup.py +0 -0
  66. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/cli/full_setup.py +0 -0
  67. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/cli/graph_export.py +0 -0
  68. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/cli/ide_rules.py +0 -0
  69. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/cli/main.py +0 -0
  70. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/cli/markdown_export.py +0 -0
  71. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/cli/setup.py +0 -0
  72. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/cli/storage.py +0 -0
  73. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/cli/tui.py +0 -0
  74. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/cli/update_check.py +0 -0
  75. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/cli/wizard.py +0 -0
  76. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/config_presets.py +0 -0
  77. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/core/__init__.py +0 -0
  78. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/core/action_event.py +0 -0
  79. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/core/alert.py +0 -0
  80. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/core/brain.py +0 -0
  81. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/core/brain_mode.py +0 -0
  82. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/core/eternal_context.py +0 -0
  83. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/core/fiber.py +0 -0
  84. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/core/memory_types.py +0 -0
  85. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/core/neuron.py +0 -0
  86. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/core/project.py +0 -0
  87. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/core/review_schedule.py +0 -0
  88. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/core/source.py +0 -0
  89. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/core/synapse.py +0 -0
  90. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/core/trigger_engine.py +0 -0
  91. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/engine/__init__.py +0 -0
  92. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/engine/activation.py +0 -0
  93. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/engine/arousal.py +0 -0
  94. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/engine/associative_inference.py +0 -0
  95. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/engine/brain_evolution.py +0 -0
  96. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/engine/brain_transplant.py +0 -0
  97. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/engine/brain_versioning.py +0 -0
  98. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/engine/causal_traversal.py +0 -0
  99. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/engine/chart_generator.py +0 -0
  100. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/engine/chunking.py +0 -0
  101. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/engine/citation.py +0 -0
  102. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/engine/clustering.py +0 -0
  103. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/engine/codebase_encoder.py +0 -0
  104. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/engine/cognitive.py +0 -0
  105. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/engine/compression.py +0 -0
  106. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/engine/conflict_auto_resolve.py +0 -0
  107. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/engine/conflict_detection.py +0 -0
  108. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/engine/connection_explainer.py +0 -0
  109. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/engine/consolidation.py +0 -0
  110. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/engine/consolidation_delta.py +0 -0
  111. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/engine/context_merger.py +0 -0
  112. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/engine/context_optimizer.py +0 -0
  113. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/engine/context_retrieval.py +0 -0
  114. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/engine/cross_brain.py +0 -0
  115. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/engine/db_introspector.py +0 -0
  116. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/engine/db_knowledge.py +0 -0
  117. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/engine/db_trainer.py +0 -0
  118. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/engine/decision_intel.py +0 -0
  119. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/engine/dedup/__init__.py +0 -0
  120. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/engine/dedup/config.py +0 -0
  121. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/engine/dedup/llm_judge.py +0 -0
  122. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/engine/dedup/pipeline.py +0 -0
  123. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/engine/dedup/prompts.py +0 -0
  124. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/engine/depth_prior.py +0 -0
  125. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/engine/doc_chunker.py +0 -0
  126. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/engine/doc_extractor.py +0 -0
  127. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/engine/doc_trainer.py +0 -0
  128. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/engine/dream.py +0 -0
  129. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/engine/drift_detection.py +0 -0
  130. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/engine/embedding/__init__.py +0 -0
  131. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/engine/embedding/capability.py +0 -0
  132. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/engine/embedding/config.py +0 -0
  133. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/engine/embedding/gemini_embedding.py +0 -0
  134. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/engine/embedding/ollama_embedding.py +0 -0
  135. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/engine/embedding/openai_embedding.py +0 -0
  136. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/engine/embedding/openrouter_embedding.py +0 -0
  137. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/engine/embedding/provider.py +0 -0
  138. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/engine/embedding/retry.py +0 -0
  139. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/engine/embedding/sentence_transformer.py +0 -0
  140. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/engine/encoder.py +0 -0
  141. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/engine/enrichment.py +0 -0
  142. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/engine/fidelity.py +0 -0
  143. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/engine/file_watcher.py +0 -0
  144. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/engine/fuzzy_match.py +0 -0
  145. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/engine/fuzzy_query.py +0 -0
  146. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/engine/gromov.py +0 -0
  147. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/engine/hippocampal_replay.py +0 -0
  148. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/engine/hooks.py +0 -0
  149. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/engine/idf_anchor.py +0 -0
  150. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/engine/importance.py +0 -0
  151. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/engine/interference.py +0 -0
  152. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/engine/koopman.py +0 -0
  153. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/engine/learning_rule.py +0 -0
  154. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/engine/lifecycle.py +0 -0
  155. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/engine/memory_stages.py +0 -0
  156. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/engine/merge.py +0 -0
  157. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/engine/narrative.py +0 -0
  158. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/engine/pattern_extraction.py +0 -0
  159. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/engine/pipeline.py +0 -0
  160. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/engine/pipeline_steps.py +0 -0
  161. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/engine/ppr_activation.py +0 -0
  162. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/engine/prediction_error.py +0 -0
  163. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/engine/priming.py +0 -0
  164. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/engine/quality_scorer.py +0 -0
  165. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/engine/query_expander.py +0 -0
  166. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/engine/query_expansion.py +0 -0
  167. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/engine/query_pattern_mining.py +0 -0
  168. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/engine/reconsolidation.py +0 -0
  169. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/engine/reconstruction.py +0 -0
  170. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/engine/reflection.py +0 -0
  171. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/engine/reflex_activation.py +0 -0
  172. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/engine/reranker.py +0 -0
  173. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/engine/retrieval.py +0 -0
  174. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/engine/retrieval_context.py +0 -0
  175. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/engine/retrieval_types.py +0 -0
  176. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/engine/schema_assimilation.py +0 -0
  177. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/engine/score_fusion.py +0 -0
  178. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/engine/semantic_discovery.py +0 -0
  179. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/engine/sequence_mining.py +0 -0
  180. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/engine/session_state.py +0 -0
  181. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/engine/spaced_repetition.py +0 -0
  182. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/engine/stabilization.py +0 -0
  183. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/engine/sufficiency.py +0 -0
  184. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/engine/temporal_binding.py +0 -0
  185. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/engine/tier_engine.py +0 -0
  186. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/engine/token_budget.py +0 -0
  187. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/engine/token_normalizer.py +0 -0
  188. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/engine/tool_memory.py +0 -0
  189. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/engine/topology_analysis.py +0 -0
  190. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/engine/watch_state.py +0 -0
  191. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/engine/workflow_suggest.py +0 -0
  192. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/engine/write_queue.py +0 -0
  193. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/extraction/__init__.py +0 -0
  194. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/extraction/codebase.py +0 -0
  195. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/extraction/entities.py +0 -0
  196. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/extraction/keywords.py +0 -0
  197. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/extraction/llm_provider.py +0 -0
  198. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/extraction/parser.py +0 -0
  199. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/extraction/relations.py +0 -0
  200. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/extraction/router.py +0 -0
  201. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/extraction/sentiment.py +0 -0
  202. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/extraction/structure_detector.py +0 -0
  203. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/extraction/temporal.py +0 -0
  204. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/git_context.py +0 -0
  205. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/hooks/__init__.py +0 -0
  206. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/hooks/post_tool_use.py +0 -0
  207. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/hooks/pre_compact.py +0 -0
  208. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/hooks/project_context.py +0 -0
  209. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/hooks/session_start.py +0 -0
  210. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/hooks/stop.py +0 -0
  211. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/hooks/task_context.py +0 -0
  212. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/integration/__init__.py +0 -0
  213. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/integration/adapter.py +0 -0
  214. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/integration/adapters/__init__.py +0 -0
  215. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/integration/adapters/awf_adapter.py +0 -0
  216. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/integration/adapters/chromadb_adapter.py +0 -0
  217. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/integration/adapters/cognee_adapter.py +0 -0
  218. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/integration/adapters/graphiti_adapter.py +0 -0
  219. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/integration/adapters/llamaindex_adapter.py +0 -0
  220. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/integration/adapters/mem0_adapter.py +0 -0
  221. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/integration/mapper.py +0 -0
  222. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/integration/models.py +0 -0
  223. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/integration/sync_engine.py +0 -0
  224. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/integration/telegram.py +0 -0
  225. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/integrations/__init__.py +0 -0
  226. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/integrations/nanobot/__init__.py +0 -0
  227. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/integrations/nanobot/base_tool.py +0 -0
  228. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/integrations/nanobot/context.py +0 -0
  229. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/integrations/nanobot/memory_store.py +0 -0
  230. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/integrations/nanobot/protocol.py +0 -0
  231. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/integrations/nanobot/setup.py +0 -0
  232. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/integrations/nanobot/tools.py +0 -0
  233. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/integrations/openclaw_config.py +0 -0
  234. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/mcp/__init__.py +0 -0
  235. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/mcp/__main__.py +0 -0
  236. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/mcp/alert_handler.py +0 -0
  237. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/mcp/auto_capture.py +0 -0
  238. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/mcp/auto_handler.py +0 -0
  239. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/mcp/budget_handler.py +0 -0
  240. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/mcp/cognitive_handler.py +0 -0
  241. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/mcp/conflict_handler.py +0 -0
  242. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/mcp/connection_handler.py +0 -0
  243. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/mcp/constants.py +0 -0
  244. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/mcp/db_train_handler.py +0 -0
  245. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/mcp/drift_handler.py +0 -0
  246. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/mcp/eternal_handler.py +0 -0
  247. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/mcp/evolution_handler.py +0 -0
  248. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/mcp/expiry_cleanup_handler.py +0 -0
  249. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/mcp/http_transport.py +0 -0
  250. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/mcp/index_handler.py +0 -0
  251. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/mcp/instruction_handler.py +0 -0
  252. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/mcp/lifecycle_handler.py +0 -0
  253. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/mcp/maintenance_handler.py +0 -0
  254. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/mcp/mem0_sync_handler.py +0 -0
  255. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/mcp/narrative_handler.py +0 -0
  256. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/mcp/onboarding_handler.py +0 -0
  257. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/mcp/prompt.py +0 -0
  258. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/mcp/provenance_handler.py +0 -0
  259. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/mcp/recall_handler.py +0 -0
  260. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/mcp/remember_handler.py +0 -0
  261. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/mcp/response_compactor.py +0 -0
  262. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/mcp/review_handler.py +0 -0
  263. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/mcp/scheduled_consolidation_handler.py +0 -0
  264. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/mcp/server.py +0 -0
  265. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/mcp/session_handler.py +0 -0
  266. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/mcp/stats_handler.py +0 -0
  267. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/mcp/surface_handler.py +0 -0
  268. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/mcp/sync_handler.py +0 -0
  269. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/mcp/telegram_handler.py +0 -0
  270. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/mcp/tier_handler.py +0 -0
  271. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/mcp/tool_handler_utils.py +0 -0
  272. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/mcp/tool_handlers.py +0 -0
  273. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/mcp/tool_schemas.py +0 -0
  274. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/mcp/train_handler.py +0 -0
  275. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/mcp/version_check_handler.py +0 -0
  276. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/mcp/visualize_handler.py +0 -0
  277. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/mcp/watch_handler.py +0 -0
  278. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/plugins/__init__.py +0 -0
  279. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/plugins/base.py +0 -0
  280. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/plugins/community.py +0 -0
  281. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/py.typed +0 -0
  282. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/safety/__init__.py +0 -0
  283. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/safety/encryption.py +0 -0
  284. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/safety/freshness.py +0 -0
  285. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/safety/input_firewall.py +0 -0
  286. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/safety/sensitive.py +0 -0
  287. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/server/__init__.py +0 -0
  288. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/server/app.py +0 -0
  289. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/server/dependencies.py +0 -0
  290. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/server/models.py +0 -0
  291. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/server/routes/__init__.py +0 -0
  292. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/server/routes/brain.py +0 -0
  293. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/server/routes/consolidation.py +0 -0
  294. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/server/routes/hub.py +0 -0
  295. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/server/routes/integration_status.py +0 -0
  296. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/server/routes/memory.py +0 -0
  297. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/server/routes/oauth.py +0 -0
  298. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/server/routes/openclaw_api.py +0 -0
  299. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/server/routes/sync.py +0 -0
  300. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/server/static/dist/assets/DiagramsPage-BZV40eAE.css +0 -0
  301. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/server/static/dist/assets/embed-gLOWnRXV.js +0 -0
  302. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/server/static/dist/assets/timer-DWAvo6M8.js +0 -0
  303. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/server/static/dist/assets/vendor-motion-Ct_HHbYW.js +0 -0
  304. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/server/static/dist/assets/vendor-query-CqA1cBNl.js +0 -0
  305. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/server/static/dist/assets/vendor-react-BfuodpLv.js +0 -0
  306. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/server/static/dist/assets/vendor-recharts-BkwZfCWA.js +0 -0
  307. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/server/static/dist/assets/vendor-ui-Qm4_4bAc.js +0 -0
  308. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/skills/__init__.py +0 -0
  309. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/skills/memory-audit/SKILL.md +0 -0
  310. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/skills/memory-evolution/SKILL.md +0 -0
  311. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/skills/memory-intake/SKILL.md +0 -0
  312. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/storage/__init__.py +0 -0
  313. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/storage/base.py +0 -0
  314. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/storage/factory.py +0 -0
  315. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/storage/memory_brain_ops.py +0 -0
  316. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/storage/memory_collections.py +0 -0
  317. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/storage/memory_reviews.py +0 -0
  318. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/storage/memory_store.py +0 -0
  319. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/storage/neuron_cache.py +0 -0
  320. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/storage/read_pool.py +0 -0
  321. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/storage/shared_store.py +0 -0
  322. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/storage/shared_store_collections.py +0 -0
  323. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/storage/shared_store_mappers.py +0 -0
  324. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/storage/sqlite_action_log.py +0 -0
  325. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/storage/sqlite_alerts.py +0 -0
  326. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/storage/sqlite_brain_ops.py +0 -0
  327. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/storage/sqlite_calibration.py +0 -0
  328. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/storage/sqlite_change_log.py +0 -0
  329. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/storage/sqlite_coactivation.py +0 -0
  330. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/storage/sqlite_cognitive.py +0 -0
  331. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/storage/sqlite_compression.py +0 -0
  332. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/storage/sqlite_depth_priors.py +0 -0
  333. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/storage/sqlite_devices.py +0 -0
  334. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/storage/sqlite_drift.py +0 -0
  335. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/storage/sqlite_entity_refs.py +0 -0
  336. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/storage/sqlite_fibers.py +0 -0
  337. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/storage/sqlite_maturation.py +0 -0
  338. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/storage/sqlite_merkle.py +0 -0
  339. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/storage/sqlite_neurons.py +0 -0
  340. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/storage/sqlite_projects.py +0 -0
  341. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/storage/sqlite_reviews.py +0 -0
  342. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/storage/sqlite_row_mappers.py +0 -0
  343. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/storage/sqlite_schema.py +0 -0
  344. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/storage/sqlite_sessions.py +0 -0
  345. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/storage/sqlite_sources.py +0 -0
  346. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/storage/sqlite_store.py +0 -0
  347. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/storage/sqlite_synapses.py +0 -0
  348. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/storage/sqlite_sync_state.py +0 -0
  349. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/storage/sqlite_tool_events.py +0 -0
  350. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/storage/sqlite_training_files.py +0 -0
  351. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/storage/sqlite_typed.py +0 -0
  352. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/storage/sqlite_versioning.py +0 -0
  353. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/storage/surrealdb/__init__.py +0 -0
  354. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/storage/surrealdb/activity.py +0 -0
  355. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/storage/surrealdb/alerts.py +0 -0
  356. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/storage/surrealdb/cognitive.py +0 -0
  357. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/storage/surrealdb/compression.py +0 -0
  358. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/storage/surrealdb/depth_priors.py +0 -0
  359. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/storage/surrealdb/keyword_entity.py +0 -0
  360. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/storage/surrealdb/projects.py +0 -0
  361. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/storage/surrealdb/review_schedules.py +0 -0
  362. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/storage/surrealdb/sources.py +0 -0
  363. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/storage/surrealdb/typed_memory.py +0 -0
  364. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/storage/surrealdb/versions.py +0 -0
  365. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/surface/__init__.py +0 -0
  366. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/surface/generator.py +0 -0
  367. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/surface/lifecycle.py +0 -0
  368. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/surface/models.py +0 -0
  369. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/surface/parser.py +0 -0
  370. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/surface/resolver.py +0 -0
  371. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/surface/serializer.py +0 -0
  372. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/surface/token_budget.py +0 -0
  373. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/sync/__init__.py +0 -0
  374. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/sync/client.py +0 -0
  375. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/sync/device.py +0 -0
  376. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/sync/incremental_merge.py +0 -0
  377. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/sync/merkle.py +0 -0
  378. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/sync/protocol.py +0 -0
  379. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/sync/sync_engine.py +0 -0
  380. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/utils/__init__.py +0 -0
  381. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/utils/config.py +0 -0
  382. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/utils/consolidation_lock.py +0 -0
  383. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/utils/sandbox.py +0 -0
  384. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/utils/simhash.py +0 -0
  385. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/utils/ssl_helper.py +0 -0
  386. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/utils/tag_normalizer.py +0 -0
  387. {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/utils/timeutils.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: surreal-memory
3
- Version: 2.2.0
3
+ Version: 2.3.1
4
4
  Summary: Reflex-based memory system for AI agents with SurrealDB backend — retrieval through activation, not search
5
5
  Project-URL: Homepage, https://github.com/acidkill/surreal-memory
6
6
  Project-URL: Documentation, https://github.com/acidkill/surreal-memory/blob/main/docs/getting-started/quickstart.md
@@ -315,7 +315,7 @@ Sync uses **Merkle delta** — only diffs travel, not the full brain.
315
315
  - **Brain versioning** — snapshot, rollback, diff, transplant memories between brains
316
316
 
317
317
  #### Ecosystem
318
- - **Web dashboard** — 7-page React UI with graph visualization, health radar, timeline
318
+ - **Web dashboard** — multi-page React UI at `/ui` (overview, health radar, graph, timeline, evolution, storage, tool-stats, visualize, settings) — every page free, no Pro gate
319
319
  - **VS Code extension** — memory tree, graph explorer, CodeLens, WebSocket sync
320
320
  - **Safety** — Fernet encryption, sensitive content auto-detection, input firewall
321
321
  - **Plugin system** — extend with custom retrieval strategies, compression, and storage backends
@@ -204,7 +204,7 @@ Sync uses **Merkle delta** — only diffs travel, not the full brain.
204
204
  - **Brain versioning** — snapshot, rollback, diff, transplant memories between brains
205
205
 
206
206
  #### Ecosystem
207
- - **Web dashboard** — 7-page React UI with graph visualization, health radar, timeline
207
+ - **Web dashboard** — multi-page React UI at `/ui` (overview, health radar, graph, timeline, evolution, storage, tool-stats, visualize, settings) — every page free, no Pro gate
208
208
  - **VS Code extension** — memory tree, graph explorer, CodeLens, WebSocket sync
209
209
  - **Safety** — Fernet encryption, sensitive content auto-detection, input firewall
210
210
  - **Plugin system** — extend with custom retrieval strategies, compression, and storage backends
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "surreal-memory"
7
- version = "2.2.0"
7
+ version = "2.3.1"
8
8
  description = "Reflex-based memory system for AI agents with SurrealDB backend — retrieval through activation, not search"
9
9
  readme = "README.md"
10
10
  license = "MIT"
@@ -16,7 +16,7 @@ from surreal_memory.engine.encoder import EncodingResult, MemoryEncoder
16
16
  from surreal_memory.engine.reflex_activation import CoActivation, ReflexActivation
17
17
  from surreal_memory.engine.retrieval import DepthLevel, ReflexPipeline, RetrievalResult
18
18
 
19
- __version__ = "2.2.0"
19
+ __version__ = "2.3.1"
20
20
 
21
21
  __all__ = [
22
22
  "__version__",
@@ -299,6 +299,16 @@ class DiagnosticsEngine:
299
299
  Returns:
300
300
  BrainHealthReport with scores, warnings, and recommendations
301
301
  """
302
+ # Pin storage to the analyzed brain before any brain-scoped reads.
303
+ # The SurrealDB backend uses a single shared storage singleton with a
304
+ # mutable current-brain pointer; without this, a concurrent multi-brain
305
+ # dashboard call (e.g. /stats analyzing both brains) leaves the pointer
306
+ # on a different brain, and get_all_synapses()/get_fibers() then return
307
+ # the WRONG brain's data — producing a false orphan rate. Harmless on
308
+ # backends that scope storage per brain (e.g. SQLite per-file).
309
+ if hasattr(self._storage, "set_brain"):
310
+ self._storage.set_brain(brain_id)
311
+
302
312
  # Gather base data
303
313
  enhanced = await self._storage.get_enhanced_stats(brain_id)
304
314
  neuron_count: int = enhanced.get("neuron_count", 0)
@@ -2,7 +2,6 @@
2
2
 
3
3
  from __future__ import annotations
4
4
 
5
- import asyncio
6
5
  import logging
7
6
  from pathlib import Path
8
7
  from typing import Annotated, Any
@@ -81,10 +80,14 @@ class SwitchBrainRequest(BaseModel):
81
80
  )
82
81
  async def get_stats() -> DashboardStats:
83
82
  """Get overall dashboard statistics across all brains."""
84
- from surreal_memory.unified_config import get_config, get_shared_storage
83
+ from surreal_memory.unified_config import (
84
+ get_config,
85
+ get_shared_storage,
86
+ list_available_brains,
87
+ )
85
88
 
86
89
  cfg = get_config()
87
- brain_names = cfg.list_brains()
90
+ brain_names = await list_available_brains()
88
91
  active_name = cfg.current_brain
89
92
 
90
93
  async def _analyze_brain(name: str) -> BrainSummary:
@@ -119,10 +122,19 @@ async def get_stats() -> DashboardStats:
119
122
  is_active=name == active_name,
120
123
  )
121
124
  except Exception:
122
- logger.debug("Brain analysis failed for %s", name, exc_info=True)
125
+ # Surface at WARNING (not debug): swallowing this silently made the
126
+ # active brain report 0/F even when the store held data, masking a
127
+ # storage/config misconfiguration. Keep returning a placeholder so
128
+ # one bad brain does not break the whole dashboard.
129
+ logger.warning("Brain analysis failed for %s", name, exc_info=True)
123
130
  return BrainSummary(id=name, name=name, is_active=name == active_name)
124
131
 
125
- brains = list(await asyncio.gather(*[_analyze_brain(name) for name in brain_names]))
132
+ # Analyze brains sequentially, NOT via asyncio.gather: the SurrealDB backend
133
+ # shares one storage singleton with a mutable current-brain pointer, so
134
+ # concurrent per-brain analysis races and corrupts orphan/synapse reads
135
+ # (each _analyze_brain repins the shared pointer). Sequential keeps each
136
+ # brain's reads consistent. Brain count is tiny, so latency is negligible.
137
+ brains = [await _analyze_brain(name) for name in brain_names]
126
138
 
127
139
  total_n = sum(b.neuron_count for b in brains)
128
140
  total_s = sum(b.synapse_count for b in brains)
@@ -184,11 +196,23 @@ async def get_tier_stats(
184
196
  summary="List all brains",
185
197
  )
186
198
  async def list_brains_api() -> list[BrainSummary]:
187
- """List all available brains with summary stats."""
188
- from surreal_memory.unified_config import get_config, get_shared_storage
199
+ """List all available brains with summary stats, including health grade.
200
+
201
+ Previously this endpoint left grade/purity at their model defaults (F / 0.0)
202
+ because it never ran diagnostics, so the dashboard's Brains table showed
203
+ every brain as grade F while the stats cards (which DO run diagnostics)
204
+ showed the real grade — the F-vs-D mismatch. Run diagnostics per brain here
205
+ too, sequentially (the SurrealDB backend shares one storage singleton with a
206
+ mutable brain pointer, so concurrent analysis would race).
207
+ """
208
+ from surreal_memory.unified_config import (
209
+ get_config,
210
+ get_shared_storage,
211
+ list_available_brains,
212
+ )
189
213
 
190
214
  cfg = get_config()
191
- brain_names = cfg.list_brains()
215
+ brain_names = await list_available_brains()
192
216
  active_name = cfg.current_brain
193
217
  results: list[BrainSummary] = []
194
218
 
@@ -196,6 +220,16 @@ async def list_brains_api() -> list[BrainSummary]:
196
220
  try:
197
221
  brain_storage = await get_shared_storage(brain_name=name)
198
222
  stats = await brain_storage.get_stats(name)
223
+ grade = "F"
224
+ purity = 0.0
225
+ try:
226
+ from surreal_memory.engine.diagnostics import DiagnosticsEngine
227
+
228
+ report = await DiagnosticsEngine(brain_storage).analyze(name)
229
+ grade = report.grade
230
+ purity = report.purity_score
231
+ except Exception:
232
+ logger.debug("Diagnostics failed for brain %s", name, exc_info=True)
199
233
  results.append(
200
234
  BrainSummary(
201
235
  id=name,
@@ -203,11 +237,13 @@ async def list_brains_api() -> list[BrainSummary]:
203
237
  neuron_count=stats.get("neuron_count", 0),
204
238
  synapse_count=stats.get("synapse_count", 0),
205
239
  fiber_count=stats.get("fiber_count", 0),
240
+ grade=grade,
241
+ purity_score=purity,
206
242
  is_active=name == active_name,
207
243
  )
208
244
  )
209
245
  except Exception:
210
- logger.debug("Failed to get stats for brain %s", name, exc_info=True)
246
+ logger.warning("Brain summary failed for %s", name, exc_info=True)
211
247
  results.append(BrainSummary(id=name, name=name, is_active=name == active_name))
212
248
 
213
249
  return results
@@ -998,11 +1034,6 @@ async def update_config(body: ConfigUpdateRequest) -> dict[str, Any]:
998
1034
  new_embedding = config.embedding
999
1035
 
1000
1036
  if body.embedding is not None:
1001
- if not config.is_pro():
1002
- raise HTTPException(
1003
- status_code=403,
1004
- detail="Embedding configuration requires a Pro license. Activate via smem_sync_config(action='activate').",
1005
- )
1006
1037
  update = body.embedding
1007
1038
 
1008
1039
  if update.enabled is not None:
@@ -1487,21 +1518,16 @@ async def visualize_memory(
1487
1518
 
1488
1519
  @router.get("/license", tags=["dashboard"], summary="Current license tier")
1489
1520
  async def get_license() -> dict[str, Any]:
1490
- """Return the current license tier and expiry."""
1521
+ """Surreal-Memory is fully free: always report a FULL, unlocked license."""
1491
1522
  from surreal_memory.unified_config import get_config
1492
1523
 
1493
1524
  cfg = get_config(reload=True)
1494
- result: dict[str, Any] = {
1495
- "tier": cfg.license.tier,
1496
- "is_pro": cfg.is_pro(),
1525
+ return {
1526
+ "tier": "full",
1527
+ "is_pro": True,
1497
1528
  "activated_at": cfg.license.activated_at,
1498
1529
  "expires_at": cfg.license.expires_at,
1499
1530
  }
1500
- if not cfg.is_pro():
1501
- from surreal_memory.mcp.sync_handler import PRO_LANDING_URL
1502
-
1503
- result["upgrade_url"] = PRO_LANDING_URL
1504
- return result
1505
1531
 
1506
1532
 
1507
1533
  class ActivateLicenseRequest(BaseModel):