smartmemory-core 1.4.26__tar.gz → 1.4.28__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 (673) hide show
  1. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/PKG-INFO +11 -1
  2. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/README.md +10 -0
  3. smartmemory_core-1.4.28/VERSION +1 -0
  4. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/benchmarks/ontology_constrain_perf.py +40 -12
  5. smartmemory_core-1.4.28/scripts/backfill_canonical_marker.py +107 -0
  6. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/code/indexer.py +20 -17
  7. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/code/search.py +41 -32
  8. smartmemory_core-1.4.28/smartmemory/decisions/evidence_belief.py +291 -0
  9. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/decisions/manager.py +32 -3
  10. smartmemory_core-1.4.28/smartmemory/domains/__init__.py +10 -0
  11. smartmemory_core-1.4.28/smartmemory/domains/bootstrap.py +118 -0
  12. smartmemory_core-1.4.28/smartmemory/domains/models.py +33 -0
  13. smartmemory_core-1.4.28/smartmemory/domains/registry.py +98 -0
  14. smartmemory_core-1.4.28/smartmemory/domains/strategies/__init__.py +8 -0
  15. smartmemory_core-1.4.28/smartmemory/domains/strategies/base.py +51 -0
  16. smartmemory_core-1.4.28/smartmemory/domains/strategies/graph_vector.py +25 -0
  17. smartmemory_core-1.4.28/smartmemory/domains/strategies/semantic.py +88 -0
  18. smartmemory_core-1.4.28/smartmemory/enterprise/__init__.py +7 -0
  19. smartmemory_core-1.4.28/smartmemory/enterprise/constants.py +32 -0
  20. smartmemory_core-1.4.28/smartmemory/enterprise/embedding.py +87 -0
  21. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/evolution/registry.py +5 -5
  22. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/graph/backends/async_falkordb.py +12 -4
  23. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/graph/backends/falkordb.py +48 -8
  24. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/graph/core/nodes.py +18 -9
  25. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/graph/core/search.py +106 -30
  26. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/graph/indexes.py +8 -0
  27. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/graph/models/schema_validator.py +9 -0
  28. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/graph/ontology_graph.py +85 -17
  29. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/graph/smartgraph.py +69 -1
  30. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/memory/pipeline/stages/crud.py +16 -11
  31. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/memory/pipeline/stages/search.py +30 -3
  32. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/memory/pipeline/storage.py +3 -0
  33. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/models/decision.py +62 -0
  34. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/ontology/falkordb_pattern_store.py +15 -0
  35. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/ontology/pattern_manager.py +22 -2
  36. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/ontology/sqlite_store.py +23 -0
  37. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/origin_policy.py +29 -0
  38. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/pipeline/config.py +2 -2
  39. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/pipeline/stages/store.py +14 -0
  40. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/plugins/embedding.py +38 -4
  41. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/plugins/evolvers/decision_confidence.py +11 -2
  42. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/plugins/manager.py +1 -1
  43. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/progress/__init__.py +46 -5
  44. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/search/rerank.py +70 -28
  45. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/smart_memory.py +237 -1
  46. smartmemory_core-1.4.28/smartmemory/stores/vector/collection_aware.py +84 -0
  47. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/stores/vector/vector_store.py +48 -16
  48. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/tools/factory.py +5 -0
  49. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/utils/llm.py +6 -1
  50. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory_core.egg-info/SOURCES.txt +14 -0
  51. smartmemory_core-1.4.26/VERSION +0 -1
  52. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/.env.example +0 -0
  53. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/CLA.md +0 -0
  54. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/LICENSE +0 -0
  55. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/LICENSE.agpl-v3 +0 -0
  56. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/LICENSE.header +0 -0
  57. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/MANIFEST.in +0 -0
  58. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/benchmarks/__init__.py +0 -0
  59. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/benchmarks/bitemporal_scenario.py +0 -0
  60. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/benchmarks/code_embed/__init__.py +0 -0
  61. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/benchmarks/code_embed/adapters.py +0 -0
  62. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/benchmarks/code_embed/queryset.py +0 -0
  63. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/benchmarks/code_embed/retrievers.py +0 -0
  64. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/benchmarks/code_embed/run.py +0 -0
  65. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/benchmarks/code_embed/scoring.py +0 -0
  66. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/benchmarks/code_embed/smoke_test.py +0 -0
  67. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/benchmarks/temporal_aging_scenario.py +0 -0
  68. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/config.json +0 -0
  69. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/pyproject.toml +0 -0
  70. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/scripts/add_license_headers.py +0 -0
  71. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/scripts/apply_pattern_audit_patch.py +0 -0
  72. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/scripts/bench_pattern_coverage.py +0 -0
  73. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/scripts/consolidate_ws_default_ontology.py +0 -0
  74. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/scripts/diagnose_version_memory_type.py +0 -0
  75. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/scripts/harvest_wikidata_patterns.py +0 -0
  76. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/scripts/lowercase_seed_pattern_labels.py +0 -0
  77. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/scripts/migrate_agent_type.py +0 -0
  78. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/scripts/migrate_claude_memory.py +0 -0
  79. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/scripts/migrate_ontology_unify.py +0 -0
  80. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/scripts/sweep_retrieval_quality.py +0 -0
  81. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/scripts/test_cutover_onto_reconcile_1.py +0 -0
  82. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/setup.cfg +0 -0
  83. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/__init__.py +0 -0
  84. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/__version__.py +0 -0
  85. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/activation/__init__.py +0 -0
  86. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/activation/boost.py +0 -0
  87. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/activation/compaction.py +0 -0
  88. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/activation/compaction_constants.py +0 -0
  89. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/activation/constants.py +0 -0
  90. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/activation/decay_sweep.py +0 -0
  91. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/activation/migration.py +0 -0
  92. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/activation/score.py +0 -0
  93. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/activation/summarize.py +0 -0
  94. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/adherence/__init__.py +0 -0
  95. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/adherence/declaration.py +0 -0
  96. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/adherence/detection.py +0 -0
  97. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/adherence/manager.py +0 -0
  98. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/adherence/seed.py +0 -0
  99. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/agents/__init__.py +0 -0
  100. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/agents/evaluation.py +0 -0
  101. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/agents/node.py +0 -0
  102. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/anchors/__init__.py +0 -0
  103. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/anchors/drift.py +0 -0
  104. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/anchors/manager.py +0 -0
  105. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/anchors/models.py +0 -0
  106. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/anchors/queries.py +0 -0
  107. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/backends/__init__.py +0 -0
  108. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/backends/unsupported.py +0 -0
  109. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/background/__init__.py +0 -0
  110. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/background/bootstrap_scan.py +0 -0
  111. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/background/entity_ruler_consumer.py +0 -0
  112. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/background/extraction_worker.py +0 -0
  113. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/background/id_resolver.py +0 -0
  114. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/background/pattern_decay_sweep.py +0 -0
  115. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/batch.py +0 -0
  116. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/clear_all.py +0 -0
  117. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/cli.py +0 -0
  118. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/clustering/__init__.py +0 -0
  119. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/clustering/deduplicator.py +0 -0
  120. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/clustering/embedding.py +0 -0
  121. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/clustering/global_cluster.py +0 -0
  122. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/clustering/graph_aggregator.py +0 -0
  123. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/clustering/llm.py +0 -0
  124. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/code/__init__.py +0 -0
  125. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/code/constants.py +0 -0
  126. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/code/embedding.py +0 -0
  127. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/code/models.py +0 -0
  128. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/code/parser.py +0 -0
  129. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/code/ts_parser.py +0 -0
  130. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/configuration/__init__.py +0 -0
  131. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/configuration/environment.py +0 -0
  132. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/configuration/graph_name.py +0 -0
  133. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/configuration/loader.py +0 -0
  134. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/configuration/manager.py +0 -0
  135. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/configuration/models.py +0 -0
  136. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/configuration/validator.py +0 -0
  137. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/constraints/__init__.py +0 -0
  138. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/constraints/declaration.py +0 -0
  139. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/conversation/__init__.py +0 -0
  140. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/conversation/bulk_ingest.py +0 -0
  141. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/conversation/context.py +0 -0
  142. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/conversation/manager.py +0 -0
  143. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/conversation/session.py +0 -0
  144. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/corpus/__init__.py +0 -0
  145. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/corpus/exporter.py +0 -0
  146. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/corpus/format.py +0 -0
  147. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/corpus/importer.py +0 -0
  148. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/corpus/pack.py +0 -0
  149. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/corpus/reader.py +0 -0
  150. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/corpus/rebel.py +0 -0
  151. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/corpus/registry.py +0 -0
  152. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/corpus/triplet_parser.py +0 -0
  153. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/corpus/writer.py +0 -0
  154. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/data/__init__.py +0 -0
  155. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/data/ontology_mappings.json +0 -0
  156. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/data/public_knowledge/__init__.py +0 -0
  157. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/data/relation_mappings.json +0 -0
  158. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/data/relation_patterns.jsonl +0 -0
  159. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/data/seed_pattern_audit_patch.json +0 -0
  160. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/data/seed_patterns.jsonl +0 -0
  161. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/data/seed_patterns_wikidata_weak.jsonl +0 -0
  162. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/decisions/__init__.py +0 -0
  163. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/decisions/declaration.py +0 -0
  164. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/decisions/queries.py +0 -0
  165. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/drift_detector.py +0 -0
  166. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/evaluation/__init__.py +0 -0
  167. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/evaluation/cli.py +0 -0
  168. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/evaluation/dataset.py +0 -0
  169. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/evaluation/judge.py +0 -0
  170. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/evaluation/metrics.py +0 -0
  171. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/evaluation/report.py +0 -0
  172. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/evaluation/runner.py +0 -0
  173. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/evaluations/__init__.py +0 -0
  174. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/evaluations/declaration.py +0 -0
  175. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/evaluations/queries.py +0 -0
  176. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/evolution/__init__.py +0 -0
  177. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/evolution/batcher.py +0 -0
  178. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/evolution/cycle.py +0 -0
  179. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/evolution/diff_engine.py +0 -0
  180. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/evolution/events.py +0 -0
  181. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/evolution/flow.py +0 -0
  182. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/evolution/models.py +0 -0
  183. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/evolution/queue.py +0 -0
  184. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/evolution/router.py +0 -0
  185. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/evolution/store.py +0 -0
  186. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/evolution/tracker.py +0 -0
  187. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/evolution/utilities.py +0 -0
  188. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/evolution/worker.py +0 -0
  189. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/extraction/__init__.py +0 -0
  190. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/extraction/extractor.py +0 -0
  191. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/extraction/models.py +0 -0
  192. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/feedback/__init__.py +0 -0
  193. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/feedback/agentic_improvement.py +0 -0
  194. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/feedback/agentic_routines.py +0 -0
  195. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/feedback/cli.py +0 -0
  196. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/feedback/manager.py +0 -0
  197. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/feedback/slack.py +0 -0
  198. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/graph/__init__.py +0 -0
  199. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/graph/algos.py +0 -0
  200. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/graph/alias_resolution.py +0 -0
  201. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/graph/analytics/__init__.py +0 -0
  202. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/graph/analytics/edge.py +0 -0
  203. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/graph/analytics/episodes.py +0 -0
  204. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/graph/analytics/export.py +0 -0
  205. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/graph/analytics/prune.py +0 -0
  206. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/graph/analytics/temporal.py +0 -0
  207. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/graph/backends/__init__.py +0 -0
  208. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/graph/backends/async_backend.py +0 -0
  209. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/graph/backends/async_sqlite.py +0 -0
  210. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/graph/backends/backend.py +0 -0
  211. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/graph/backends/codec.py +0 -0
  212. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/graph/backends/queries.py +0 -0
  213. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/graph/backends/sqlite.py +0 -0
  214. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/graph/base.py +0 -0
  215. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/graph/compute.py +0 -0
  216. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/graph/core/__init__.py +0 -0
  217. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/graph/core/edges.py +0 -0
  218. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/graph/core/memory_path.py +0 -0
  219. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/graph/cypher_algos.py +0 -0
  220. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/graph/models/__init__.py +0 -0
  221. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/graph/models/canonical_types.py +0 -0
  222. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/graph/models/node_types.py +0 -0
  223. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/graph/networkx_algos.py +0 -0
  224. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/graph/traversal.py +0 -0
  225. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/graph/types/__init__.py +0 -0
  226. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/graph/types/episodic.py +0 -0
  227. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/graph/types/interfaces.py +0 -0
  228. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/graph/types/procedural.py +0 -0
  229. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/graph/types/semantic.py +0 -0
  230. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/graph/types/zettel.py +0 -0
  231. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/grounding/__init__.py +0 -0
  232. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/grounding/benchmark.py +0 -0
  233. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/grounding/executors.py +0 -0
  234. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/grounding/falkordb_store.py +0 -0
  235. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/grounding/miner.py +0 -0
  236. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/grounding/models.py +0 -0
  237. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/grounding/public_knowledge_grounder.py +0 -0
  238. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/grounding/registry.py +0 -0
  239. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/grounding/schemas.py +0 -0
  240. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/grounding/snapshot.py +0 -0
  241. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/grounding/sparql_client.py +0 -0
  242. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/grounding/sqlite_store.py +0 -0
  243. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/grounding/store.py +0 -0
  244. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/grounding/type_map.py +0 -0
  245. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/inference/__init__.py +0 -0
  246. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/inference/engine.py +0 -0
  247. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/inference/rules.py +0 -0
  248. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/integration/__init__.py +0 -0
  249. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/integration/archive/archive_provider.py +0 -0
  250. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/integration/chat/__init__.py +0 -0
  251. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/integration/chat/hitl.py +0 -0
  252. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/integration/chat/integration.py +0 -0
  253. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/integration/llm/__init__.py +0 -0
  254. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/integration/llm/llm_client.py +0 -0
  255. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/integration/llm/prompts/__init__.py +0 -0
  256. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/integration/llm/prompts/prompt_manager.py +0 -0
  257. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/integration/llm/prompts/prompt_provider.py +0 -0
  258. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/integration/llm/prompts/prompts.json +0 -0
  259. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/integration/llm/prompts/prompts_loader.py +0 -0
  260. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/integration/llm/providers.py +0 -0
  261. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/integration/llm/response_parser.py +0 -0
  262. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/integration/wikipedia_client.py +0 -0
  263. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/interfaces.py +0 -0
  264. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/learned/__init__.py +0 -0
  265. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/learned/declaration.py +0 -0
  266. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/managed/__init__.py +0 -0
  267. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/managed/exceptions.py +0 -0
  268. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/managed/framework.py +0 -0
  269. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/managers/__init__.py +0 -0
  270. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/managers/debug.py +0 -0
  271. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/managers/enrichment.py +0 -0
  272. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/managers/evolution.py +0 -0
  273. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/managers/monitoring.py +0 -0
  274. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/memory/__init__.py +0 -0
  275. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/memory/base.py +0 -0
  276. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/memory/canonical_store.py +0 -0
  277. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/memory/context_types.py +0 -0
  278. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/memory/ingestion/__init__.py +0 -0
  279. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/memory/ingestion/document_loaders.py +0 -0
  280. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/memory/ingestion/enrichment.py +0 -0
  281. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/memory/ingestion/extraction.py +0 -0
  282. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/memory/ingestion/flow.py +0 -0
  283. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/memory/ingestion/grounding.py +0 -0
  284. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/memory/ingestion/handlers/__init__.py +0 -0
  285. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/memory/ingestion/handlers/anchor.py +0 -0
  286. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/memory/ingestion/handlers/code_entity.py +0 -0
  287. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/memory/ingestion/handlers/constraint.py +0 -0
  288. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/memory/ingestion/handlers/conversation.py +0 -0
  289. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/memory/ingestion/handlers/conversation_turn.py +0 -0
  290. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/memory/ingestion/handlers/decision.py +0 -0
  291. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/memory/ingestion/handlers/document.py +0 -0
  292. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/memory/ingestion/handlers/hook_capture.py +0 -0
  293. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/memory/ingestion/handlers/learned.py +0 -0
  294. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/memory/ingestion/handlers/observation.py +0 -0
  295. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/memory/ingestion/handlers/opinion.py +0 -0
  296. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/memory/ingestion/handlers/pattern.py +0 -0
  297. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/memory/ingestion/handlers/plan.py +0 -0
  298. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/memory/ingestion/handlers/plan_task.py +0 -0
  299. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/memory/ingestion/handlers/reasoning.py +0 -0
  300. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/memory/ingestion/handlers/seed_item.py +0 -0
  301. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/memory/ingestion/handlers/timeline_entry.py +0 -0
  302. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/memory/ingestion/handlers/tool_call.py +0 -0
  303. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/memory/ingestion/observer.py +0 -0
  304. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/memory/ingestion/registry.py +0 -0
  305. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/memory/ingestion/storage.py +0 -0
  306. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/memory/ingestion/structured.py +0 -0
  307. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/memory/ingestion/utils.py +0 -0
  308. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/memory/memory_factory.py +0 -0
  309. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/memory/migrate.py +0 -0
  310. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/memory/mixins.py +0 -0
  311. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/memory/models/__init__.py +0 -0
  312. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/memory/models/memory_item.py +0 -0
  313. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/memory/pipeline/__init__.py +0 -0
  314. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/memory/pipeline/classification.py +0 -0
  315. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/memory/pipeline/components.py +0 -0
  316. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/memory/pipeline/config.py +0 -0
  317. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/memory/pipeline/enrichment.py +0 -0
  318. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/memory/pipeline/extractor.py +0 -0
  319. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/memory/pipeline/grounding.py +0 -0
  320. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/memory/pipeline/input_adapter.py +0 -0
  321. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/memory/pipeline/linking.py +0 -0
  322. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/memory/pipeline/plugin_base.py +0 -0
  323. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/memory/pipeline/stages/__init__.py +0 -0
  324. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/memory/pipeline/stages/analytics.py +0 -0
  325. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/memory/pipeline/stages/clustering.py +0 -0
  326. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/memory/pipeline/stages/coreference.py +0 -0
  327. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/memory/pipeline/stages/enrichment.py +0 -0
  328. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/memory/pipeline/stages/evolution.py +0 -0
  329. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/memory/pipeline/stages/graph_operations.py +0 -0
  330. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/memory/pipeline/stages/grounding.py +0 -0
  331. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/memory/pipeline/stages/linking.py +0 -0
  332. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/memory/pipeline/stages/monitoring.py +0 -0
  333. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/memory/pipeline/stages/personalization.py +0 -0
  334. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/memory/pipeline/stages/validation.py +0 -0
  335. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/memory/pipeline/state.py +0 -0
  336. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/memory/pipeline/transactions/__init__.py +0 -0
  337. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/memory/pipeline/transactions/change_set.py +0 -0
  338. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/memory/pipeline/transactions/ops.py +0 -0
  339. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/memory/pipeline/transactions/transaction.py +0 -0
  340. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/memory/types/__init__.py +0 -0
  341. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/memory/types/episodic_memory.py +0 -0
  342. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/memory/types/factory_memory_creator.py +0 -0
  343. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/memory/types/pending_memory.py +0 -0
  344. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/memory/types/procedural_memory.py +0 -0
  345. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/memory/types/semantic_memory.py +0 -0
  346. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/memory/types/wikilink_parser.py +0 -0
  347. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/memory/types/zettel_extensions.py +0 -0
  348. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/memory/types/zettel_memory.py +0 -0
  349. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/memory/utils.py +0 -0
  350. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/metrics/__init__.py +0 -0
  351. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/metrics/graph_health.py +0 -0
  352. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/migrations/__init__.py +0 -0
  353. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/models/__init__.py +0 -0
  354. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/models/_helpers.py +0 -0
  355. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/models/base.py +0 -0
  356. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/models/compat/__init__.py +0 -0
  357. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/models/compat/boundary_converter.py +0 -0
  358. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/models/compat/dataclass_model.py +0 -0
  359. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/models/compat/simple_boundary.py +0 -0
  360. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/models/concept.py +0 -0
  361. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/models/conditional_step.py +0 -0
  362. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/models/corpus.py +0 -0
  363. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/models/drift_event.py +0 -0
  364. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/models/entity.py +0 -0
  365. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/models/entity_types.py +0 -0
  366. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/models/evaluation.py +0 -0
  367. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/models/ingestion_strategy.py +0 -0
  368. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/models/library.py +0 -0
  369. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/models/link_types.py +0 -0
  370. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/models/memory_item.py +0 -0
  371. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/models/note.py +0 -0
  372. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/models/ontology.py +0 -0
  373. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/models/opinion.py +0 -0
  374. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/models/pending_requirement.py +0 -0
  375. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/models/procedure.py +0 -0
  376. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/models/reasoning.py +0 -0
  377. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/models/schema_snapshot.py +0 -0
  378. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/models/snapshot.py +0 -0
  379. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/models/status.py +0 -0
  380. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/models/step.py +0 -0
  381. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/models/tag.py +0 -0
  382. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/models/user_model.py +0 -0
  383. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/observability/__init__.py +0 -0
  384. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/observability/events.py +0 -0
  385. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/observability/instrumentation.py +0 -0
  386. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/observability/json_formatter.py +0 -0
  387. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/observability/logging_filter.py +0 -0
  388. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/observability/retrieval_tracking.py +0 -0
  389. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/observability/sampler.py +0 -0
  390. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/observability/tracing.py +0 -0
  391. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/observations/__init__.py +0 -0
  392. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/observations/declaration.py +0 -0
  393. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/ontology/__init__.py +0 -0
  394. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/ontology/blocklist.py +0 -0
  395. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/ontology/entity_pair_cache.py +0 -0
  396. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/ontology/evidence_store.py +0 -0
  397. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/ontology/governance.py +0 -0
  398. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/ontology/governance_manager.py +0 -0
  399. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/ontology/hierarchy.py +0 -0
  400. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/ontology/hitl/__init__.py +0 -0
  401. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/ontology/hitl/hitl_interface.py +0 -0
  402. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/ontology/in_memory_store.py +0 -0
  403. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/ontology/inference/__init__.py +0 -0
  404. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/ontology/inference/inference.py +0 -0
  405. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/ontology/inference/ontogpt.py +0 -0
  406. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/ontology/ir_models.py +0 -0
  407. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/ontology/layered.py +0 -0
  408. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/ontology/layers.py +0 -0
  409. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/ontology/llm_manager.py +0 -0
  410. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/ontology/manager.py +0 -0
  411. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/ontology/models.py +0 -0
  412. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/ontology/observations.py +0 -0
  413. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/ontology/observers.py +0 -0
  414. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/ontology/promoter.py +0 -0
  415. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/ontology/promotion.py +0 -0
  416. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/ontology/reasoning_validator.py +0 -0
  417. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/ontology/registry.py +0 -0
  418. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/ontology/relation_seed.py +0 -0
  419. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/ontology/scoring.py +0 -0
  420. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/ontology/service.py +0 -0
  421. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/ontology/template_service.py +0 -0
  422. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/ontology/templates/_manifest.json +0 -0
  423. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/ontology/templates/business.json +0 -0
  424. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/ontology/templates/general.json +0 -0
  425. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/ontology/templates/software.json +0 -0
  426. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/ontology/tiers.py +0 -0
  427. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/ontology/types.py +0 -0
  428. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/opinions/__init__.py +0 -0
  429. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/opinions/declaration.py +0 -0
  430. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/opinions/queries.py +0 -0
  431. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/pipeline/__init__.py +0 -0
  432. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/pipeline/dag.py +0 -0
  433. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/pipeline/metrics_consumer.py +0 -0
  434. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/pipeline/model_router.py +0 -0
  435. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/pipeline/protocol.py +0 -0
  436. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/pipeline/router.py +0 -0
  437. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/pipeline/runner.py +0 -0
  438. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/pipeline/stages/__init__.py +0 -0
  439. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/pipeline/stages/alias_link.py +0 -0
  440. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/pipeline/stages/alias_resolve.py +0 -0
  441. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/pipeline/stages/classify.py +0 -0
  442. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/pipeline/stages/compact.py +0 -0
  443. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/pipeline/stages/consolidation_router.py +0 -0
  444. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/pipeline/stages/coreference.py +0 -0
  445. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/pipeline/stages/discoverability.py +0 -0
  446. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/pipeline/stages/enrich.py +0 -0
  447. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/pipeline/stages/entity_ruler.py +0 -0
  448. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/pipeline/stages/evolve.py +0 -0
  449. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/pipeline/stages/ground.py +0 -0
  450. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/pipeline/stages/link.py +0 -0
  451. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/pipeline/stages/llm_extract.py +0 -0
  452. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/pipeline/stages/ontology_constrain.py +0 -0
  453. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/pipeline/stages/reasoning_detect.py +0 -0
  454. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/pipeline/stages/relation_ruler.py +0 -0
  455. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/pipeline/stages/simplify.py +0 -0
  456. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/pipeline/stages/supersede.py +0 -0
  457. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/pipeline/stages/temporal_resolve.py +0 -0
  458. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/pipeline/state.py +0 -0
  459. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/pipeline/token_tracker.py +0 -0
  460. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/pipeline/trajectory.py +0 -0
  461. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/pipeline/transport/__init__.py +0 -0
  462. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/pipeline/transport/event_bus.py +0 -0
  463. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/plans/__init__.py +0 -0
  464. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/plans/failure_journal.py +0 -0
  465. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/plans/manager.py +0 -0
  466. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/plans/queries.py +0 -0
  467. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/plugins/__init__.py +0 -0
  468. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/plugins/base.py +0 -0
  469. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/plugins/enrichers/__init__.py +0 -0
  470. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/plugins/enrichers/basic.py +0 -0
  471. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/plugins/enrichers/link_expansion.py +0 -0
  472. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/plugins/enrichers/sentiment.py +0 -0
  473. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/plugins/enrichers/skills_tools.py +0 -0
  474. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/plugins/enrichers/temporal.py +0 -0
  475. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/plugins/enrichers/topic.py +0 -0
  476. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/plugins/enrichers/usage_tracking.py +0 -0
  477. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/plugins/evolvers/__init__.py +0 -0
  478. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/plugins/evolvers/anchor_reconciliation.py +0 -0
  479. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/plugins/evolvers/base.py +0 -0
  480. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/plugins/evolvers/enhanced/__init__.py +0 -0
  481. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/plugins/evolvers/enhanced/exponential_decay.py +0 -0
  482. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/plugins/evolvers/enhanced/hebbian_co_retrieval.py +0 -0
  483. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/plugins/evolvers/enhanced/interference_based_consolidation.py +0 -0
  484. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/plugins/evolvers/enhanced/retrieval_based_strengthening.py +0 -0
  485. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/plugins/evolvers/enhanced/working_to_episodic.py +0 -0
  486. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/plugins/evolvers/episodic_decay.py +0 -0
  487. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/plugins/evolvers/episodic_to_semantic.py +0 -0
  488. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/plugins/evolvers/episodic_to_zettel.py +0 -0
  489. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/plugins/evolvers/evaluation.py +0 -0
  490. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/plugins/evolvers/memory_consolidation.py +0 -0
  491. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/plugins/evolvers/observation_synthesis.py +0 -0
  492. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/plugins/evolvers/opinion_reinforcement.py +0 -0
  493. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/plugins/evolvers/opinion_synthesis.py +0 -0
  494. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/plugins/evolvers/procedural_reinforcement.py +0 -0
  495. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/plugins/evolvers/qa_heuristic.py +0 -0
  496. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/plugins/evolvers/resolution_chain.py +0 -0
  497. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/plugins/evolvers/result.py +0 -0
  498. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/plugins/evolvers/semantic_decay.py +0 -0
  499. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/plugins/evolvers/semantic_to_procedural.py +0 -0
  500. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/plugins/evolvers/stale_memory.py +0 -0
  501. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/plugins/evolvers/temporal_aging.py +0 -0
  502. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/plugins/evolvers/zettel_prune.py +0 -0
  503. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/plugins/executor.py +0 -0
  504. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/plugins/extractors/__init__.py +0 -0
  505. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/plugins/extractors/conversation_aware_llm.py +0 -0
  506. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/plugins/extractors/decision.py +0 -0
  507. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/plugins/extractors/gliner2.py +0 -0
  508. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/plugins/extractors/llm.py +0 -0
  509. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/plugins/extractors/llm_single.py +0 -0
  510. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/plugins/extractors/reasoning.py +0 -0
  511. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/plugins/extractors/spacy.py +0 -0
  512. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/plugins/grounders/__init__.py +0 -0
  513. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/plugins/grounders/wikipedia.py +0 -0
  514. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/plugins/registry.py +0 -0
  515. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/plugins/resolvers/__init__.py +0 -0
  516. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/plugins/resolvers/external_resolver.py +0 -0
  517. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/plugins/security.py +0 -0
  518. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/procedure_matcher.py +0 -0
  519. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/procedures/__init__.py +0 -0
  520. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/procedures/candidate_namer.py +0 -0
  521. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/procedures/candidate_scorer.py +0 -0
  522. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/procedures/models.py +0 -0
  523. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/procedures/pattern_detector.py +0 -0
  524. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/progress/event.py +0 -0
  525. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/progress/operation_span.py +0 -0
  526. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/py.typed +0 -0
  527. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/reasoning/__init__.py +0 -0
  528. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/reasoning/challenger.py +0 -0
  529. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/reasoning/confidence.py +0 -0
  530. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/reasoning/declaration.py +0 -0
  531. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/reasoning/detection/__init__.py +0 -0
  532. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/reasoning/detection/base.py +0 -0
  533. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/reasoning/detection/cascade.py +0 -0
  534. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/reasoning/detection/embedding.py +0 -0
  535. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/reasoning/detection/graph.py +0 -0
  536. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/reasoning/detection/heuristic.py +0 -0
  537. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/reasoning/detection/llm.py +0 -0
  538. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/reasoning/fuzzy_confidence.py +0 -0
  539. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/reasoning/models.py +0 -0
  540. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/reasoning/proof_tree.py +0 -0
  541. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/reasoning/query_router.py +0 -0
  542. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/reasoning/reasoner.py +0 -0
  543. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/reasoning/residuation.py +0 -0
  544. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/reasoning/resolution/__init__.py +0 -0
  545. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/reasoning/resolution/base.py +0 -0
  546. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/reasoning/resolution/cascade.py +0 -0
  547. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/reasoning/resolution/grounding.py +0 -0
  548. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/reasoning/resolution/llm.py +0 -0
  549. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/reasoning/resolution/recency.py +0 -0
  550. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/reasoning/resolution/wikipedia.py +0 -0
  551. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/relations/__init__.py +0 -0
  552. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/relations/benchmark.py +0 -0
  553. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/relations/discovery.py +0 -0
  554. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/relations/normalizer.py +0 -0
  555. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/relations/overlays.py +0 -0
  556. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/relations/schema.py +0 -0
  557. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/relations/scorer.py +0 -0
  558. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/relations/validator.py +0 -0
  559. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/retrieval/__init__.py +0 -0
  560. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/retrieval/ssg_traversal.py +0 -0
  561. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/schema_diff.py +0 -0
  562. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/schema_providers.py +0 -0
  563. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/scope_provider.py +0 -0
  564. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/search/__init__.py +0 -0
  565. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/search/attention_fusion.py +0 -0
  566. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/search/channels.py +0 -0
  567. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/search/citations.py +0 -0
  568. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/search/entity_resolve.py +0 -0
  569. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/search/expertise.py +0 -0
  570. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/search/hop_cleanup.py +0 -0
  571. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/search/intent_channels.py +0 -0
  572. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/search/lineage.py +0 -0
  573. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/search/multi_hop.py +0 -0
  574. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/search/ppr.py +0 -0
  575. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/search/ppr_cache.py +0 -0
  576. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/search/query_decomposer.py +0 -0
  577. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/search/recall_profile.py +0 -0
  578. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/search/rrf_merge.py +0 -0
  579. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/search/spreading_activation.py +0 -0
  580. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/search/surfacing_router.py +0 -0
  581. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/session/__init__.py +0 -0
  582. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/session/constants.py +0 -0
  583. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/session/pins.py +0 -0
  584. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/similarity/__init__.py +0 -0
  585. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/similarity/enhanced_metrics.py +0 -0
  586. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/similarity/framework.py +0 -0
  587. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/stores/__init__.py +0 -0
  588. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/stores/base.py +0 -0
  589. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/stores/converters/__init__.py +0 -0
  590. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/stores/converters/episodic_converter.py +0 -0
  591. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/stores/converters/procedural_converter.py +0 -0
  592. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/stores/converters/semantic_converter.py +0 -0
  593. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/stores/converters/zettel_converter.py +0 -0
  594. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/stores/corpus/__init__.py +0 -0
  595. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/stores/corpus/store.py +0 -0
  596. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/stores/example_memory_handler.py +0 -0
  597. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/stores/external/__init__.py +0 -0
  598. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/stores/external/file_handler.py +0 -0
  599. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/stores/external/mcp_handler.py +0 -0
  600. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/stores/external/s3_handler.py +0 -0
  601. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/stores/external/web_handler.py +0 -0
  602. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/stores/factory.py +0 -0
  603. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/stores/json_store.py +0 -0
  604. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/stores/mixins.py +0 -0
  605. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/stores/ontology/__init__.py +0 -0
  606. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/stores/ontology/falkordb.py +0 -0
  607. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/stores/ontology/redis_service.py +0 -0
  608. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/stores/persistence/__init__.py +0 -0
  609. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/stores/persistence/base.py +0 -0
  610. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/stores/persistence/entity_handler.py +0 -0
  611. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/stores/persistence/json.py +0 -0
  612. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/stores/persistence/model.py +0 -0
  613. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/stores/persistence/ontology_handlers.py +0 -0
  614. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/stores/registrations.py +0 -0
  615. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/stores/registry.py +0 -0
  616. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/stores/vector/__init__.py +0 -0
  617. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/stores/vector/backends/__init__.py +0 -0
  618. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/stores/vector/backends/base.py +0 -0
  619. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/stores/vector/backends/falkor.py +0 -0
  620. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/stores/vector/backends/usearch.py +0 -0
  621. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/streams/__init__.py +0 -0
  622. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/streams/pipeline_producer.py +0 -0
  623. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/summary/__init__.py +0 -0
  624. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/summary/composer.py +0 -0
  625. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/summary/delta.py +0 -0
  626. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/summary/queries.py +0 -0
  627. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/summary/renderer.py +0 -0
  628. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/sweep/__init__.py +0 -0
  629. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/sweep/config.py +0 -0
  630. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/sweep/metrics_store.py +0 -0
  631. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/sweep/result.py +0 -0
  632. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/sweep/runner.py +0 -0
  633. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/sweep/scorer.py +0 -0
  634. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/temporal/__init__.py +0 -0
  635. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/temporal/context.py +0 -0
  636. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/temporal/memory_type_backfill.py +0 -0
  637. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/temporal/performance.py +0 -0
  638. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/temporal/queries.py +0 -0
  639. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/temporal/relationships.py +0 -0
  640. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/temporal/supersession_hook.py +0 -0
  641. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/temporal/trigger_date.py +0 -0
  642. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/temporal/version_origin_backfill.py +0 -0
  643. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/temporal/version_tracker.py +0 -0
  644. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/tools/__init__.py +0 -0
  645. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/tools/markdown_writer.py +0 -0
  646. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/users/__init__.py +0 -0
  647. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/users/email_domain.py +0 -0
  648. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/users/personal-email-domains.json +0 -0
  649. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/users/seed.py +0 -0
  650. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/utils/__init__.py +0 -0
  651. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/utils/cache.py +0 -0
  652. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/utils/chunking.py +0 -0
  653. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/utils/context.py +0 -0
  654. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/utils/deduplication.py +0 -0
  655. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/utils/hybrid_retrieval.py +0 -0
  656. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/utils/llm_client/litellm.py +0 -0
  657. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/utils/llm_client/openai.py +0 -0
  658. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/utils/llm_client/openai_chat.py +0 -0
  659. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/utils/pattern_precedence.py +0 -0
  660. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/utils/pipeline_utils.py +0 -0
  661. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/utils/serialization.py +0 -0
  662. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/utils/token_tracking.py +0 -0
  663. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/validation/__init__.py +0 -0
  664. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/validation/edge_validator.py +0 -0
  665. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/validation/memory_validator.py +0 -0
  666. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/vault/__init__.py +0 -0
  667. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/vault/guard.py +0 -0
  668. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/vault/precedence.py +0 -0
  669. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/vault/proposal_sweep.py +0 -0
  670. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/vault/proposals.py +0 -0
  671. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/vault/reconciler.py +0 -0
  672. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/vault/watcher.py +0 -0
  673. {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/vault/writer.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: smartmemory-core
3
- Version: 1.4.26
3
+ Version: 1.4.28
4
4
  Summary: Multi-layered AI memory system with graph databases, vector stores, and intelligent processing pipelines
5
5
  Author: SmartMemory Team
6
6
  License-Expression: AGPL-3.0-or-later
@@ -415,6 +415,16 @@ Key environment variables:
415
415
  - `REDIS_HOST`: Redis server host (default: localhost)
416
416
  - `REDIS_PORT`: Redis server port (default: 9012)
417
417
 
418
+ **Dedicated vector domains (optional, default off):** SmartMemory can route a domain's
419
+ embeddings into its own vector collection + embedder instead of the shared `semantic_memory`
420
+ collection. Each flag is read at registry-build time; flip it on only after the collection is
421
+ populated, so dev/CI never load the specialized model.
422
+ - `SMARTMEMORY_CODE_VECTOR_NAMESPACE`: code → `semantic_code` (CodeRankEmbed, 768-dim).
423
+ - `SMARTMEMORY_ENTERPRISE_VECTOR_NAMESPACE`: enterprise docs → `semantic_enterprise` (bge-large, 1024-dim).
424
+
425
+ When a flag is on, an unscoped `search()` automatically fans out to that collection and
426
+ RRF-merges its hits with the base results (scoped/`memory_type=` queries are unaffected).
427
+
418
428
  ```bash
419
429
  # Lite mode — only API key needed (optional, enables LLM extraction)
420
430
  export OPENAI_API_KEY=your-api-key-here
@@ -323,6 +323,16 @@ Key environment variables:
323
323
  - `REDIS_HOST`: Redis server host (default: localhost)
324
324
  - `REDIS_PORT`: Redis server port (default: 9012)
325
325
 
326
+ **Dedicated vector domains (optional, default off):** SmartMemory can route a domain's
327
+ embeddings into its own vector collection + embedder instead of the shared `semantic_memory`
328
+ collection. Each flag is read at registry-build time; flip it on only after the collection is
329
+ populated, so dev/CI never load the specialized model.
330
+ - `SMARTMEMORY_CODE_VECTOR_NAMESPACE`: code → `semantic_code` (CodeRankEmbed, 768-dim).
331
+ - `SMARTMEMORY_ENTERPRISE_VECTOR_NAMESPACE`: enterprise docs → `semantic_enterprise` (bge-large, 1024-dim).
332
+
333
+ When a flag is on, an unscoped `search()` automatically fans out to that collection and
334
+ RRF-merges its hits with the base results (scoped/`memory_type=` queries are unaffected).
335
+
326
336
  ```bash
327
337
  # Lite mode — only API key needed (optional, enables LLM extraction)
328
338
  export OPENAI_API_KEY=your-api-key-here
@@ -0,0 +1 @@
1
+ 1.4.28
@@ -6,15 +6,17 @@ p50 / p95 / p99 per leg + a mean delta, and asserts the no-LLM-on-stage
6
6
  invariant for ontology_constrain.
7
7
 
8
8
  Per smart-memory-docs/docs/features/ONTO-RECONCILE-1/phase-6-verification/
9
- design.md §Task 15 (Codex round 2 reshape):
9
+ design.md §Task 15, as amended by CORE-ONTOLOGY-PERF-GATE-1 (2026-06-07):
10
10
 
11
11
  - 100 docs per leg (20 warmup + 80 measured); warmup discarded
12
12
  - Construction must NOT pass ontology_store= (force-enables the stage
13
13
  regardless of the flag, per smart_memory.py:234-238)
14
- - Mean total duration_ms is the gated metric; 5% delta passes
15
- - p99 reported but not gated (small-sample noise dominates)
16
- - Stage-level: ontology_constrain duration_ms reported; LLM tokens MUST
17
- be zero on every ontology_constrain StageTrace row
14
+ - GATED metric: ontology_constrain stage meanSTAGE_BUDGET_MS (graph-bound,
15
+ stable). The old "mean total duration_ms delta 5%" gate was retired —
16
+ total ingest is LLM-network-dominated, so the cross-leg delta was flaky.
17
+ - Total mean/delta, p99, non_llm mean, and ontology_overhead_pct are reported
18
+ for visibility but NOT gated (small-sample / network noise dominates them)
19
+ - Stage-level: LLM tokens MUST be zero on every ontology_constrain StageTrace row
18
20
 
19
21
  Run standalone:
20
22
  cd smart-memory-core && python benchmarks/ontology_constrain_perf.py
@@ -35,6 +37,13 @@ from dataclasses import dataclass, field
35
37
  from typing import Any, Dict, List, Optional
36
38
  from uuid import uuid4
37
39
 
40
+ # CORE-ONTOLOGY-PERF-GATE-1: the deterministic gate. The ontology_constrain stage is graph-bound
41
+ # (no-LLM invariant) and empirically stable (~24–30ms across a 14× swing in total ingest
42
+ # wall-time); the old |mean total delta| ≤ 5% gate was LLM-network-dominated and flaky. ~3× the
43
+ # observed mean → tolerates slower hardware / warmup variance, catches a ≥3× stage regression.
44
+ # Single source of truth — the pytest gate imports this. Dev-box budget (test is not in CI).
45
+ STAGE_BUDGET_MS = 75.0
46
+
38
47
 
39
48
  # Fixed corpus — 100 short documents in the style of
40
49
  # tests/integration/golden/test_migration_roundtrip.py:21-27. Mix of
@@ -123,6 +132,10 @@ class LegStats:
123
132
  round(self.ontology_constrain_p99, 2) if self.ontology_constrain_p99 is not None else None
124
133
  ),
125
134
  "llm_extract_mean_ms": (round(self.llm_extract_mean, 2) if self.llm_extract_mean is not None else None),
135
+ # CORE-ONTOLOGY-PERF-GATE-1: non-LLM (CPU/graph-bound) portion of mean ingest — the
136
+ # network-bound `llm_extract` cost removed. This is the stable basis for the gate;
137
+ # total wall-time is LLM-network-dominated and not a reliable A/B signal.
138
+ "non_llm_mean_ms": round(self.total_mean - (self.llm_extract_mean or 0.0), 2),
126
139
  }
127
140
 
128
141
 
@@ -260,18 +273,28 @@ def run_benchmark(*, warmup: int = 20, measured: int = 80) -> Dict[str, Any]:
260
273
  on_stats = _aggregate("on", on_raw, warmup)
261
274
  off_stats = _aggregate("off", off_raw, warmup)
262
275
 
263
- # Mean total delta as a percentage of the off-leg baseline. We report
264
- # the signed delta (positive = on slower than off, which is expected
265
- # because the stage runs). The 5% gate is on absolute(delta).
276
+ # Mean total delta as a percentage of the off-leg baseline. Signed (positive = on slower than
277
+ # off, expected because the stage runs). CORE-ONTOLOGY-PERF-GATE-1: REPORTED ONLY, not gated
278
+ # total ingest is LLM-network-dominated so this delta is flaky (the gate is on the stage mean).
266
279
  if off_stats.total_mean > 0:
267
280
  mean_delta_pct = (on_stats.total_mean - off_stats.total_mean) / off_stats.total_mean * 100.0
268
281
  else:
269
282
  mean_delta_pct = 0.0
270
283
 
284
+ # CORE-ONTOLOGY-PERF-GATE-1: informational ratio (NOT gated — the gate is the absolute stage
285
+ # mean, STAGE_BUDGET_MS). Within the ON leg, the ontology_constrain stage cost as a fraction of
286
+ # that leg's NON-LLM ingest work. Surfaced for context; its denominator is itself load-noisy.
287
+ on_non_llm = on_stats.total_mean - (on_stats.llm_extract_mean or 0.0)
288
+ if on_stats.ontology_constrain_mean is not None and on_non_llm > 0:
289
+ ontology_overhead_pct = round(on_stats.ontology_constrain_mean / on_non_llm * 100.0, 2)
290
+ else:
291
+ ontology_overhead_pct = None
292
+
271
293
  return {
272
294
  "on": on_stats.as_dict(),
273
295
  "off": off_stats.as_dict(),
274
- "mean_delta_pct": round(mean_delta_pct, 2),
296
+ "mean_delta_pct": round(mean_delta_pct, 2), # reported, not gated (LLM-network-dominated)
297
+ "ontology_overhead_pct": ontology_overhead_pct, # reported, not gated (load-noisy denominator)
275
298
  "warmup": warmup,
276
299
  "measured": measured,
277
300
  }
@@ -290,10 +313,13 @@ def _format_summary(result: Dict[str, Any]) -> str:
290
313
  f" total p95_ms {on['total_p95_ms']:>10} {off['total_p95_ms']:>10}\n"
291
314
  f" total p99_ms {on['total_p99_ms']:>10} {off['total_p99_ms']:>10}\n"
292
315
  f" llm_extract mean_ms {on['llm_extract_mean_ms']!s:>10} {off['llm_extract_mean_ms']!s:>10}\n"
316
+ f" non_llm mean_ms {on['non_llm_mean_ms']!s:>10} {off['non_llm_mean_ms']!s:>10}\n"
293
317
  f" ontology_constrain mean_ms {on['ontology_constrain_mean_ms']!s:>10} (n/a)\n"
294
318
  f" ontology_constrain p99_ms {on['ontology_constrain_p99_ms']!s:>10} (n/a)\n"
295
319
  f"\n"
296
- f" Mean total delta: {result['mean_delta_pct']:+.2f}% (gate: |delta| <= 5%)\n"
320
+ f" ontology_constrain mean (GATED): {on['ontology_constrain_mean_ms']!s} ms\n"
321
+ f" ontology overhead (stage / non-LLM): {result['ontology_overhead_pct']!s}% (reported)\n"
322
+ f" Mean total delta: {result['mean_delta_pct']:+.2f}% (reported, NOT gated — LLM-network-dominated)\n"
297
323
  )
298
324
 
299
325
 
@@ -309,8 +335,10 @@ def main() -> int:
309
335
  print(json.dumps(result, indent=2))
310
336
  else:
311
337
  print(_format_summary(result))
312
- delta = abs(result["mean_delta_pct"])
313
- return 0 if delta <= 5.0 else 1
338
+ # CORE-ONTOLOGY-PERF-GATE-1: exit on the same deterministic gate as the pytest test — the
339
+ # ontology_constrain stage mean — not the LLM-network-dominated total-delta (which was flaky).
340
+ stage_mean = result["on"]["ontology_constrain_mean_ms"]
341
+ return 0 if (stage_mean is not None and stage_mean <= STAGE_BUDGET_MS) else 1
314
342
 
315
343
 
316
344
  if __name__ == "__main__":
@@ -0,0 +1,107 @@
1
+ #!/usr/bin/env python3
2
+ """CORE-ONTOLOGY-CANONICAL-MARKER-1 — backfill the `canonical: true` marker.
3
+
4
+ Stamps the write-once canonical marker onto pre-existing canonical `:OntologyType` governance
5
+ nodes (those carrying a `status`), so the new `MERGE (t:OntologyType {name, canonical: true})`
6
+ writer in `_create_type` matches them instead of forking a duplicate.
7
+
8
+ Idempotent & re-runnable: the `t.canonical IS NULL` guard makes a second run a no-op. Facets
9
+ (inline/pack, `status IS NULL`) and `:Concept` nodes are never touched.
10
+
11
+ Usage::
12
+
13
+ python scripts/backfill_canonical_marker.py --dry-run # default workspace
14
+ python scripts/backfill_canonical_marker.py --apply --workspace acme
15
+ python scripts/backfill_canonical_marker.py --apply --all # every *_ontology graph
16
+ """
17
+
18
+ from __future__ import annotations
19
+
20
+ import argparse
21
+ import logging
22
+ import os
23
+ import sys
24
+
25
+ sys.path.insert(0, os.path.join(os.path.dirname(__file__), ".."))
26
+
27
+ from smartmemory.graph.ontology_graph import OntologyGraph # noqa: E402
28
+
29
+ logger = logging.getLogger("backfill_canonical_marker")
30
+
31
+ # Canonical governance nodes that still lack the marker.
32
+ _COUNT_CYPHER = (
33
+ "MATCH (t:OntologyType) "
34
+ "WHERE NOT t:Concept AND t.status IS NOT NULL AND t.canonical IS NULL "
35
+ "RETURN count(t)"
36
+ )
37
+ _SET_CYPHER = (
38
+ "MATCH (t:OntologyType) "
39
+ "WHERE NOT t:Concept AND t.status IS NOT NULL AND t.canonical IS NULL "
40
+ "SET t.canonical = true "
41
+ "RETURN count(t)"
42
+ )
43
+
44
+
45
+ def _ontology_graphs(any_graph: OntologyGraph) -> list[str]:
46
+ """All `ws_*_ontology` graph names visible to the FalkorDB instance."""
47
+ try:
48
+ names = any_graph._get_backend().db.list_graphs()
49
+ except Exception as e: # noqa: BLE001
50
+ logger.error("Could not list graphs for --all: %s", e)
51
+ return []
52
+ return [n for n in names if isinstance(n, str) and n.endswith("_ontology")]
53
+
54
+
55
+ def _workspace_from_graph_name(graph_name: str) -> str:
56
+ # ws_{workspace_id}_ontology -> {workspace_id}
57
+ inner = graph_name[len("ws_"):] if graph_name.startswith("ws_") else graph_name
58
+ return inner[: -len("_ontology")] if inner.endswith("_ontology") else inner
59
+
60
+
61
+ def backfill_workspace(workspace_id: str, *, dry_run: bool) -> int:
62
+ """Backfill one workspace ontology graph. Returns the number of nodes (to be) stamped."""
63
+ og = OntologyGraph(workspace_id=workspace_id)
64
+ backend = og._get_backend()
65
+ rows = backend.query(_COUNT_CYPHER, graph_name=og._graph_name) or [[0]] # MIGRATION-EXEMPT
66
+ pending = int(rows[0][0])
67
+ if dry_run:
68
+ logger.info("[dry-run] %s: %d canonical node(s) need the marker", og._graph_name, pending)
69
+ return pending
70
+ if pending == 0:
71
+ logger.info("%s: nothing to backfill (already marked)", og._graph_name)
72
+ return 0
73
+ res = backend.query(_SET_CYPHER, graph_name=og._graph_name) or [[0]] # MIGRATION-EXEMPT
74
+ stamped = int(res[0][0])
75
+ logger.info("%s: stamped canonical=true on %d node(s)", og._graph_name, stamped)
76
+ return stamped
77
+
78
+
79
+ def main() -> int:
80
+ parser = argparse.ArgumentParser(description=__doc__)
81
+ parser.add_argument("--dry-run", action="store_true", help="report counts, write nothing (default)")
82
+ parser.add_argument("--apply", action="store_true", help="apply the backfill")
83
+ parser.add_argument("--workspace", default="default", help="workspace id (default: 'default')")
84
+ parser.add_argument("--all", action="store_true", help="every *_ontology graph in the instance")
85
+ args = parser.parse_args()
86
+
87
+ logging.basicConfig(level=logging.INFO, format="%(levelname)s %(message)s")
88
+ dry_run = not args.apply # default to dry-run unless --apply is given
89
+
90
+ if args.all:
91
+ graphs = _ontology_graphs(OntologyGraph(workspace_id=args.workspace))
92
+ if not graphs:
93
+ logger.warning("--all: no *_ontology graphs found")
94
+ return 0
95
+ total = 0
96
+ for gname in sorted(graphs):
97
+ total += backfill_workspace(_workspace_from_graph_name(gname), dry_run=dry_run)
98
+ logger.info("%s total across %d graph(s): %d node(s)",
99
+ "[dry-run] " if dry_run else "", len(graphs), total)
100
+ else:
101
+ backfill_workspace(args.workspace, dry_run=dry_run)
102
+
103
+ return 0
104
+
105
+
106
+ if __name__ == "__main__":
107
+ raise SystemExit(main())
@@ -266,9 +266,10 @@ class CodeIndexer:
266
266
  result.errors.append(f"Bulk edge write failed: {e}")
267
267
 
268
268
  # Generate and store vector embeddings for all entities (CODE-DEV-2/C).
269
- # Embeddings land in the same ``semantic_memory`` collection queried by
270
- # ``_search_with_vector_embeddings``, so code nodes become searchable
271
- # immediately without any changes to the search path.
269
+ # Embeddings land in the code domain's collection resolved from the registry
270
+ # (CORE-VEC-DOMAINS-1): the dedicated ``semantic_code`` collection when the
271
+ # code-vector-namespace flag is on, else the global collection. The read path
272
+ # (``semantic_code_search``) resolves the same domain, so writes stay searchable.
272
273
  result.embeddings_generated = self._generate_embeddings(all_entities)
273
274
 
274
275
  # Expose parsed entities on result (used by CODE-DEV-4 pattern seeding
@@ -313,29 +314,31 @@ class CodeIndexer:
313
314
  return 0
314
315
 
315
316
  try:
316
- from smartmemory.plugins.embedding import create_embeddings
317
317
  from smartmemory.stores.vector.vector_store import VectorStore
318
- from smartmemory.code.constants import CODE_VECTOR_COLLECTION, code_vector_namespace_enabled
319
- from smartmemory.code.embedding import code_embed, code_embedding_dimension
318
+ from smartmemory.domains.registry import get_registry
319
+ from smartmemory.code.constants import CODE_VECTOR_COLLECTION
320
+ from smartmemory.plugins.embedding import create_embeddings # noqa: F401 availability probe (embed via registry)
321
+ from smartmemory.code.embedding import code_embed # noqa: F401 availability probe (embed via registry)
320
322
  except ImportError as exc:
321
323
  logger.warning("Embedding dependencies unavailable, skipping embedding generation: %s", exc)
322
324
  return 0
323
325
 
324
- # CODE-VEC-NAMESPACE-1: route code embeddings to the dedicated ``semantic_code``
325
- # collection when the flag is on. We pass the graph's real scope provider so the
326
- # vector write context (all isolation keys) matches what reads filter on the
327
- # legacy shared-collection path only stamped workspace_id, which would hide code
328
- # in TENANT/USER isolation modes (Codex gate finding #2).
329
- use_code_ns = code_vector_namespace_enabled()
326
+ # CORE-VEC-DOMAINS-1a: resolve the code domain. Collection/embedder/dimension come from the
327
+ # registry; the dedicated-vs-legacy SCOPE handling below is keyed off the resolved collection
328
+ # (dedicated flag-on) and preserved verbatim the dedicated path passes the graph's real
329
+ # scope provider so the vector write context (all isolation keys) matches what reads filter
330
+ # on, while the legacy path stamps workspace_id only (Codex gate finding #2, preserved).
331
+ code_domain = get_registry().resolve(memory_type="code")
332
+ is_dedicated_code = code_domain.storage.collection == CODE_VECTOR_COLLECTION
330
333
  scope_filters = self.graph.get_scope_filters()
331
334
  workspace_id = scope_filters.get("workspace_id")
332
335
 
333
- if use_code_ns:
336
+ if is_dedicated_code:
334
337
  graph_sp = getattr(self.graph.backend, "scope_provider", None)
335
338
  vector_store = VectorStore(
336
- collection_name=CODE_VECTOR_COLLECTION,
339
+ collection_name=code_domain.storage.collection,
337
340
  scope_provider=graph_sp,
338
- dimension=code_embedding_dimension(),
341
+ dimension=code_domain.storage.dimension,
339
342
  )
340
343
  # Inject the full isolation keyset via the provider when scoped; global only
341
344
  # when there is no scoping at all (OSS/Lite).
@@ -352,7 +355,7 @@ class CodeIndexer:
352
355
  if not embed_text:
353
356
  continue
354
357
  try:
355
- embedding = code_embed(embed_text, is_query=False) if use_code_ns else create_embeddings(embed_text)
358
+ embedding = code_domain.retrieval.embed_fn(embed_text, is_query=False)
356
359
  if embedding is None:
357
360
  logger.debug("No embedding returned for entity %s", entity.item_id)
358
361
  continue
@@ -368,7 +371,7 @@ class CodeIndexer:
368
371
  metadata["commit_hash"] = entity.commit_hash
369
372
  # Legacy path stamps workspace_id manually; the code-namespace path lets the
370
373
  # scope provider inject the full write context (see is_global above).
371
- if not use_code_ns and workspace_id is not None:
374
+ if not is_dedicated_code and workspace_id is not None:
372
375
  metadata["workspace_id"] = workspace_id
373
376
  vector_store.upsert(
374
377
  item_id=entity.item_id,
@@ -2,8 +2,10 @@
2
2
 
3
3
  Provides intent-based search over code entities (classes, functions, modules,
4
4
  routes, tests) indexed by ``CodeIndexer``. Embeddings are generated during
5
- ``ingest_code()`` and stored in the shared ``semantic_memory`` vector collection
6
- with ``memory_type="code"`` metadata.
5
+ ``ingest_code()``. The collection/embedder are resolved from the domain registry
6
+ (CORE-VEC-DOMAINS-1): the dedicated ``semantic_code`` collection + CodeRankEmbed when
7
+ the code-vector-namespace flag is on, else the global collection + embedder. Hits carry
8
+ ``memory_type="code"`` metadata.
7
9
 
8
10
  Works with both FalkorDB (hosted) and usearch (Lite) backends — ``VectorStore``
9
11
  resolves the active backend via ContextVar or config.
@@ -127,20 +129,22 @@ def _lexical_code_lookup(
127
129
 
128
130
  sp = scope_provider or DefaultScopeProvider()
129
131
  filters = sp.get_isolation_filters()
130
- params: dict[str, Any] = {"ql": q.lower(), "suffix": "." + q.lower()}
131
- where = ["(toLower(n.name) = $ql OR toLower(n.name) ENDS WITH $suffix)"]
132
- if filters.get("workspace_id"):
133
- where.append("n.workspace_id = $ws")
134
- params["ws"] = filters["workspace_id"]
132
+ # workspace_id is INLINE and unconditional in the template (``$ws IS NULL`` keeps the
133
+ # OSS/unscoped case correct) so the filter both scopes in WORKSPACE mode and stays visible
134
+ # to the SEC-TENANT-QUERIES-1 coverage scanner, which can't resolve a joined where-list.
135
+ params: dict[str, Any] = {"ql": q.lower(), "suffix": "." + q.lower(), "ws": filters.get("workspace_id")}
136
+ extra = []
135
137
  if repo:
136
- where.append("n.repo = $repo")
138
+ extra.append("AND n.repo = $repo")
137
139
  params["repo"] = repo
138
140
  if entity_type:
139
- where.append("n.entity_type = $etype")
141
+ extra.append("AND n.entity_type = $etype")
140
142
  params["etype"] = entity_type
143
+ extra_clause = (" " + " ".join(extra)) if extra else ""
141
144
 
142
145
  cypher = (
143
- f"MATCH (n:Code) WHERE {' AND '.join(where)} "
146
+ "MATCH (n:Code) WHERE (toLower(n.name) = $ql OR toLower(n.name) ENDS WITH $suffix) "
147
+ "AND ($ws IS NULL OR n.workspace_id = $ws)" + extra_clause + " "
144
148
  f"RETURN n.item_id AS item_id, n.name AS name LIMIT {int(top_k)}"
145
149
  )
146
150
  try:
@@ -172,9 +176,10 @@ def semantic_code_search(
172
176
  ) -> list[dict[str, Any]]:
173
177
  """Semantic search over code entities using vector embeddings.
174
178
 
175
- Generates an embedding for *query*, searches the shared vector collection,
176
- post-filters to ``memory_type="code"`` results, and hydrates each hit from
177
- the graph backend.
179
+ Generates an embedding for *query*, searches the code domain's collection
180
+ (resolved from the registry — dedicated ``semantic_code`` when the flag is on,
181
+ else the global collection), post-filters to ``memory_type="code"`` results,
182
+ and hydrates each hit from the graph backend.
178
183
 
179
184
  Args:
180
185
  graph: SmartGraph instance (for fetching full Code node properties).
@@ -196,21 +201,26 @@ def semantic_code_search(
196
201
  return []
197
202
 
198
203
  try:
199
- from smartmemory.plugins.embedding import create_embeddings
200
204
  from smartmemory.stores.vector.vector_store import VectorStore
201
- from smartmemory.code.constants import CODE_VECTOR_COLLECTION, code_vector_namespace_enabled
202
- from smartmemory.code.embedding import code_embed, code_embedding_dimension
205
+ from smartmemory.domains.registry import get_registry
206
+ from smartmemory.code.constants import CODE_VECTOR_COLLECTION
207
+ from smartmemory.plugins.embedding import create_embeddings # noqa: F401 availability probe (embed via registry)
208
+ from smartmemory.code.embedding import code_embed # noqa: F401 availability probe (embed via registry)
203
209
  except ImportError as exc:
204
210
  logger.warning("Embedding dependencies unavailable: %s", exc)
205
211
  return []
206
212
 
207
- # CODE-VEC-NAMESPACE-1: read from the dedicated ``semantic_code`` collection when the
208
- # flag is on, using the code embed seam (query side) so a code-specialized embedder's
209
- # query prefix (CodeRankEmbed, PROD-1) is applied. Legacy path unchanged when off.
210
- use_code_ns = code_vector_namespace_enabled()
211
-
212
- # 1. Embed the query
213
- query_embedding = code_embed(query, is_query=True) if use_code_ns else create_embeddings(query)
213
+ # CORE-VEC-DOMAINS-1a: route via the domain registry. ``resolve(domain="code")`` returns the
214
+ # code domain's config flag-on dedicated ``semantic_code`` collection + CodeRankEmbed
215
+ # (query prefix applied by the embed seam, PROD-1); flag-off the default global collection
216
+ # + embedder. Behavior is identical to the prior flag branch (the registry encodes the same
217
+ # mapping); the dedicated-collection empty warning keys off the resolved collection.
218
+ code_domain = get_registry().resolve(domain="code")
219
+ is_dedicated_code = code_domain.retrieval.collection == CODE_VECTOR_COLLECTION
220
+
221
+ # 1. Embed the query (code embedder applies the query-side prefix on is_query=True; the
222
+ # default embedder ignores it). The embed seam re-imports its embedder on each call.
223
+ query_embedding = code_domain.retrieval.embed_fn(query, is_query=True)
214
224
  if query_embedding is None:
215
225
  logger.warning("Failed to generate query embedding for code search")
216
226
  return []
@@ -229,14 +239,13 @@ def semantic_code_search(
229
239
  # 2. Vector search — 3x oversampling for the mixed-type collection, times
230
240
  # the rerank multiplier (via candidate_cap) so rerank has a real pool.
231
241
  sp = scope_provider or DefaultScopeProvider()
232
- if use_code_ns:
233
- vector_store = VectorStore(
234
- collection_name=CODE_VECTOR_COLLECTION,
235
- scope_provider=sp,
236
- dimension=code_embedding_dimension(),
237
- )
238
- else:
239
- vector_store = VectorStore(scope_provider=sp)
242
+ # flag-off: collection="semantic_memory" + dimension=None is equivalent to the prior bare
243
+ # VectorStore(scope_provider=sp) (config collection_name is unset → "semantic_memory").
244
+ vector_store = VectorStore(
245
+ collection_name=code_domain.retrieval.collection,
246
+ scope_provider=sp,
247
+ dimension=code_domain.retrieval.dimension,
248
+ )
240
249
  try:
241
250
  vector_results = vector_store.search(
242
251
  query_embedding,
@@ -250,7 +259,7 @@ def semantic_code_search(
250
259
  if not vector_results:
251
260
  # CODE-VEC-NAMESPACE-1 (A7): warn once if the flag is on but the code collection
252
261
  # looks empty — the classic "flipped the flag before running the backfill" mistake.
253
- if use_code_ns and not _CODE_NS_EMPTY_WARNED:
262
+ if is_dedicated_code and not _CODE_NS_EMPTY_WARNED:
254
263
  _warn_code_collection_empty()
255
264
  return []
256
265