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.
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/PKG-INFO +2 -2
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/README.md +1 -1
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/pyproject.toml +1 -1
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/__init__.py +1 -1
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/engine/diagnostics.py +10 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/server/routes/dashboard_api.py +49 -23
- 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
- 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
- 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
- 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
- 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
- surreal_memory-2.3.1/src/surreal_memory/server/static/dist/assets/OverviewPage-xe8kFqX3.js +1 -0
- surreal_memory-2.3.1/src/surreal_memory/server/static/dist/assets/ProGate-CwBF4etn.js +1 -0
- 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
- surreal_memory-2.3.1/src/surreal_memory/server/static/dist/assets/StoragePage-CLDPXEH8.js +1 -0
- surreal_memory-2.3.1/src/surreal_memory/server/static/dist/assets/SyncPage-MbtH1dwD.js +1 -0
- 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
- 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
- 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
- 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
- surreal_memory-2.3.1/src/surreal_memory/server/static/dist/assets/index-BFkJgtCN.css +1 -0
- surreal_memory-2.3.1/src/surreal_memory/server/static/dist/assets/index-C26pxqlr.js +54 -0
- surreal_memory-2.3.1/src/surreal_memory/server/static/dist/assets/skeleton-DQJ-n00q.js +1 -0
- surreal_memory-2.3.1/src/surreal_memory/server/static/dist/assets/vendor-icons-BYlYobEK.js +1 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/server/static/dist/index.html +3 -3
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/storage/surrealdb/schema.py +20 -1
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/storage/surrealdb/store.py +107 -6
- surreal_memory-2.3.1/src/surreal_memory/storage/surrealdb/tool_events.py +235 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/unified_config.py +90 -18
- surreal_memory-2.2.0/src/surreal_memory/server/static/dist/assets/OverviewPage-C9zanzbn.js +0 -1
- surreal_memory-2.2.0/src/surreal_memory/server/static/dist/assets/ProGate-CWdLKxhy.js +0 -1
- surreal_memory-2.2.0/src/surreal_memory/server/static/dist/assets/StoragePage-ChOPs2Io.js +0 -1
- surreal_memory-2.2.0/src/surreal_memory/server/static/dist/assets/SyncPage-XHo3B9mj.js +0 -1
- surreal_memory-2.2.0/src/surreal_memory/server/static/dist/assets/index-C4hAA6lf.css +0 -1
- surreal_memory-2.2.0/src/surreal_memory/server/static/dist/assets/index-eqEVe4jF.js +0 -54
- surreal_memory-2.2.0/src/surreal_memory/server/static/dist/assets/skeleton-CMgwRZUe.js +0 -1
- surreal_memory-2.2.0/src/surreal_memory/server/static/dist/assets/vendor-icons-ILWTDAJI.js +0 -1
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/.gitignore +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/LICENSE +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/NOTICE +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/cli/__init__.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/cli/__main__.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/cli/_helpers.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/cli/commands/__init__.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/cli/commands/brain.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/cli/commands/codebase.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/cli/commands/config_cmd.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/cli/commands/habits.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/cli/commands/info.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/cli/commands/listing.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/cli/commands/memory.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/cli/commands/project.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/cli/commands/reindex.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/cli/commands/shared.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/cli/commands/shortcuts.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/cli/commands/storage.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/cli/commands/telegram.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/cli/commands/tools.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/cli/commands/train.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/cli/commands/update.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/cli/commands/version.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/cli/commands/watch.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/cli/config.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/cli/doctor.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/cli/embedding_setup.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/cli/full_setup.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/cli/graph_export.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/cli/ide_rules.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/cli/main.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/cli/markdown_export.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/cli/setup.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/cli/storage.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/cli/tui.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/cli/update_check.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/cli/wizard.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/config_presets.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/core/__init__.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/core/action_event.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/core/alert.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/core/brain.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/core/brain_mode.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/core/eternal_context.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/core/fiber.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/core/memory_types.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/core/neuron.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/core/project.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/core/review_schedule.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/core/source.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/core/synapse.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/core/trigger_engine.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/engine/__init__.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/engine/activation.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/engine/arousal.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/engine/associative_inference.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/engine/brain_evolution.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/engine/brain_transplant.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/engine/brain_versioning.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/engine/causal_traversal.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/engine/chart_generator.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/engine/chunking.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/engine/citation.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/engine/clustering.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/engine/codebase_encoder.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/engine/cognitive.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/engine/compression.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/engine/conflict_auto_resolve.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/engine/conflict_detection.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/engine/connection_explainer.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/engine/consolidation.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/engine/consolidation_delta.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/engine/context_merger.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/engine/context_optimizer.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/engine/context_retrieval.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/engine/cross_brain.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/engine/db_introspector.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/engine/db_knowledge.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/engine/db_trainer.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/engine/decision_intel.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/engine/dedup/__init__.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/engine/dedup/config.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/engine/dedup/llm_judge.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/engine/dedup/pipeline.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/engine/dedup/prompts.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/engine/depth_prior.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/engine/doc_chunker.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/engine/doc_extractor.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/engine/doc_trainer.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/engine/dream.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/engine/drift_detection.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/engine/embedding/__init__.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/engine/embedding/capability.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/engine/embedding/config.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/engine/embedding/gemini_embedding.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/engine/embedding/ollama_embedding.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/engine/embedding/openai_embedding.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/engine/embedding/openrouter_embedding.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/engine/embedding/provider.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/engine/embedding/retry.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/engine/embedding/sentence_transformer.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/engine/encoder.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/engine/enrichment.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/engine/fidelity.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/engine/file_watcher.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/engine/fuzzy_match.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/engine/fuzzy_query.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/engine/gromov.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/engine/hippocampal_replay.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/engine/hooks.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/engine/idf_anchor.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/engine/importance.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/engine/interference.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/engine/koopman.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/engine/learning_rule.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/engine/lifecycle.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/engine/memory_stages.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/engine/merge.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/engine/narrative.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/engine/pattern_extraction.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/engine/pipeline.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/engine/pipeline_steps.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/engine/ppr_activation.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/engine/prediction_error.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/engine/priming.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/engine/quality_scorer.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/engine/query_expander.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/engine/query_expansion.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/engine/query_pattern_mining.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/engine/reconsolidation.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/engine/reconstruction.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/engine/reflection.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/engine/reflex_activation.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/engine/reranker.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/engine/retrieval.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/engine/retrieval_context.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/engine/retrieval_types.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/engine/schema_assimilation.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/engine/score_fusion.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/engine/semantic_discovery.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/engine/sequence_mining.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/engine/session_state.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/engine/spaced_repetition.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/engine/stabilization.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/engine/sufficiency.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/engine/temporal_binding.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/engine/tier_engine.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/engine/token_budget.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/engine/token_normalizer.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/engine/tool_memory.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/engine/topology_analysis.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/engine/watch_state.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/engine/workflow_suggest.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/engine/write_queue.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/extraction/__init__.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/extraction/codebase.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/extraction/entities.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/extraction/keywords.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/extraction/llm_provider.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/extraction/parser.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/extraction/relations.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/extraction/router.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/extraction/sentiment.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/extraction/structure_detector.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/extraction/temporal.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/git_context.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/hooks/__init__.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/hooks/post_tool_use.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/hooks/pre_compact.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/hooks/project_context.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/hooks/session_start.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/hooks/stop.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/hooks/task_context.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/integration/__init__.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/integration/adapter.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/integration/adapters/__init__.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/integration/adapters/awf_adapter.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/integration/adapters/chromadb_adapter.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/integration/adapters/cognee_adapter.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/integration/adapters/graphiti_adapter.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/integration/adapters/llamaindex_adapter.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/integration/adapters/mem0_adapter.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/integration/mapper.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/integration/models.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/integration/sync_engine.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/integration/telegram.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/integrations/__init__.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/integrations/nanobot/__init__.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/integrations/nanobot/base_tool.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/integrations/nanobot/context.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/integrations/nanobot/memory_store.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/integrations/nanobot/protocol.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/integrations/nanobot/setup.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/integrations/nanobot/tools.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/integrations/openclaw_config.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/mcp/__init__.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/mcp/__main__.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/mcp/alert_handler.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/mcp/auto_capture.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/mcp/auto_handler.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/mcp/budget_handler.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/mcp/cognitive_handler.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/mcp/conflict_handler.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/mcp/connection_handler.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/mcp/constants.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/mcp/db_train_handler.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/mcp/drift_handler.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/mcp/eternal_handler.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/mcp/evolution_handler.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/mcp/expiry_cleanup_handler.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/mcp/http_transport.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/mcp/index_handler.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/mcp/instruction_handler.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/mcp/lifecycle_handler.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/mcp/maintenance_handler.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/mcp/mem0_sync_handler.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/mcp/narrative_handler.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/mcp/onboarding_handler.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/mcp/prompt.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/mcp/provenance_handler.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/mcp/recall_handler.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/mcp/remember_handler.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/mcp/response_compactor.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/mcp/review_handler.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/mcp/scheduled_consolidation_handler.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/mcp/server.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/mcp/session_handler.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/mcp/stats_handler.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/mcp/surface_handler.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/mcp/sync_handler.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/mcp/telegram_handler.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/mcp/tier_handler.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/mcp/tool_handler_utils.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/mcp/tool_handlers.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/mcp/tool_schemas.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/mcp/train_handler.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/mcp/version_check_handler.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/mcp/visualize_handler.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/mcp/watch_handler.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/plugins/__init__.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/plugins/base.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/plugins/community.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/py.typed +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/safety/__init__.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/safety/encryption.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/safety/freshness.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/safety/input_firewall.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/safety/sensitive.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/server/__init__.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/server/app.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/server/dependencies.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/server/models.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/server/routes/__init__.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/server/routes/brain.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/server/routes/consolidation.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/server/routes/hub.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/server/routes/integration_status.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/server/routes/memory.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/server/routes/oauth.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/server/routes/openclaw_api.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/server/routes/sync.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/server/static/dist/assets/DiagramsPage-BZV40eAE.css +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/server/static/dist/assets/embed-gLOWnRXV.js +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/server/static/dist/assets/timer-DWAvo6M8.js +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/server/static/dist/assets/vendor-motion-Ct_HHbYW.js +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/server/static/dist/assets/vendor-query-CqA1cBNl.js +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/server/static/dist/assets/vendor-react-BfuodpLv.js +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/server/static/dist/assets/vendor-recharts-BkwZfCWA.js +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/server/static/dist/assets/vendor-ui-Qm4_4bAc.js +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/skills/__init__.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/skills/memory-audit/SKILL.md +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/skills/memory-evolution/SKILL.md +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/skills/memory-intake/SKILL.md +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/storage/__init__.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/storage/base.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/storage/factory.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/storage/memory_brain_ops.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/storage/memory_collections.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/storage/memory_reviews.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/storage/memory_store.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/storage/neuron_cache.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/storage/read_pool.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/storage/shared_store.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/storage/shared_store_collections.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/storage/shared_store_mappers.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/storage/sqlite_action_log.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/storage/sqlite_alerts.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/storage/sqlite_brain_ops.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/storage/sqlite_calibration.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/storage/sqlite_change_log.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/storage/sqlite_coactivation.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/storage/sqlite_cognitive.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/storage/sqlite_compression.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/storage/sqlite_depth_priors.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/storage/sqlite_devices.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/storage/sqlite_drift.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/storage/sqlite_entity_refs.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/storage/sqlite_fibers.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/storage/sqlite_maturation.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/storage/sqlite_merkle.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/storage/sqlite_neurons.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/storage/sqlite_projects.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/storage/sqlite_reviews.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/storage/sqlite_row_mappers.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/storage/sqlite_schema.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/storage/sqlite_sessions.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/storage/sqlite_sources.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/storage/sqlite_store.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/storage/sqlite_synapses.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/storage/sqlite_sync_state.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/storage/sqlite_tool_events.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/storage/sqlite_training_files.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/storage/sqlite_typed.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/storage/sqlite_versioning.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/storage/surrealdb/__init__.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/storage/surrealdb/activity.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/storage/surrealdb/alerts.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/storage/surrealdb/cognitive.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/storage/surrealdb/compression.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/storage/surrealdb/depth_priors.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/storage/surrealdb/keyword_entity.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/storage/surrealdb/projects.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/storage/surrealdb/review_schedules.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/storage/surrealdb/sources.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/storage/surrealdb/typed_memory.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/storage/surrealdb/versions.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/surface/__init__.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/surface/generator.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/surface/lifecycle.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/surface/models.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/surface/parser.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/surface/resolver.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/surface/serializer.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/surface/token_budget.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/sync/__init__.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/sync/client.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/sync/device.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/sync/incremental_merge.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/sync/merkle.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/sync/protocol.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/sync/sync_engine.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/utils/__init__.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/utils/config.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/utils/consolidation_lock.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/utils/sandbox.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/utils/simhash.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/utils/ssl_helper.py +0 -0
- {surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/utils/tag_normalizer.py +0 -0
- {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.
|
|
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** —
|
|
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** —
|
|
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.
|
|
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.
|
|
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)
|
{surreal_memory-2.2.0 → surreal_memory-2.3.1}/src/surreal_memory/server/routes/dashboard_api.py
RENAMED
|
@@ -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
|
|
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 =
|
|
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
|
-
|
|
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
|
|
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
|
-
|
|
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 =
|
|
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.
|
|
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
|
-
"""
|
|
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
|
-
|
|
1495
|
-
"tier":
|
|
1496
|
-
"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):
|