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.
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/PKG-INFO +11 -1
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/README.md +10 -0
- smartmemory_core-1.4.28/VERSION +1 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/benchmarks/ontology_constrain_perf.py +40 -12
- smartmemory_core-1.4.28/scripts/backfill_canonical_marker.py +107 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/code/indexer.py +20 -17
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/code/search.py +41 -32
- smartmemory_core-1.4.28/smartmemory/decisions/evidence_belief.py +291 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/decisions/manager.py +32 -3
- smartmemory_core-1.4.28/smartmemory/domains/__init__.py +10 -0
- smartmemory_core-1.4.28/smartmemory/domains/bootstrap.py +118 -0
- smartmemory_core-1.4.28/smartmemory/domains/models.py +33 -0
- smartmemory_core-1.4.28/smartmemory/domains/registry.py +98 -0
- smartmemory_core-1.4.28/smartmemory/domains/strategies/__init__.py +8 -0
- smartmemory_core-1.4.28/smartmemory/domains/strategies/base.py +51 -0
- smartmemory_core-1.4.28/smartmemory/domains/strategies/graph_vector.py +25 -0
- smartmemory_core-1.4.28/smartmemory/domains/strategies/semantic.py +88 -0
- smartmemory_core-1.4.28/smartmemory/enterprise/__init__.py +7 -0
- smartmemory_core-1.4.28/smartmemory/enterprise/constants.py +32 -0
- smartmemory_core-1.4.28/smartmemory/enterprise/embedding.py +87 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/evolution/registry.py +5 -5
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/graph/backends/async_falkordb.py +12 -4
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/graph/backends/falkordb.py +48 -8
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/graph/core/nodes.py +18 -9
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/graph/core/search.py +106 -30
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/graph/indexes.py +8 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/graph/models/schema_validator.py +9 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/graph/ontology_graph.py +85 -17
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/graph/smartgraph.py +69 -1
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/memory/pipeline/stages/crud.py +16 -11
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/memory/pipeline/stages/search.py +30 -3
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/memory/pipeline/storage.py +3 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/models/decision.py +62 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/ontology/falkordb_pattern_store.py +15 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/ontology/pattern_manager.py +22 -2
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/ontology/sqlite_store.py +23 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/origin_policy.py +29 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/pipeline/config.py +2 -2
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/pipeline/stages/store.py +14 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/plugins/embedding.py +38 -4
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/plugins/evolvers/decision_confidence.py +11 -2
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/plugins/manager.py +1 -1
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/progress/__init__.py +46 -5
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/search/rerank.py +70 -28
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/smart_memory.py +237 -1
- smartmemory_core-1.4.28/smartmemory/stores/vector/collection_aware.py +84 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/stores/vector/vector_store.py +48 -16
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/tools/factory.py +5 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/utils/llm.py +6 -1
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory_core.egg-info/SOURCES.txt +14 -0
- smartmemory_core-1.4.26/VERSION +0 -1
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/.env.example +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/CLA.md +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/LICENSE +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/LICENSE.agpl-v3 +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/LICENSE.header +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/MANIFEST.in +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/benchmarks/__init__.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/benchmarks/bitemporal_scenario.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/benchmarks/code_embed/__init__.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/benchmarks/code_embed/adapters.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/benchmarks/code_embed/queryset.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/benchmarks/code_embed/retrievers.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/benchmarks/code_embed/run.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/benchmarks/code_embed/scoring.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/benchmarks/code_embed/smoke_test.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/benchmarks/temporal_aging_scenario.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/config.json +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/pyproject.toml +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/scripts/add_license_headers.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/scripts/apply_pattern_audit_patch.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/scripts/bench_pattern_coverage.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/scripts/consolidate_ws_default_ontology.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/scripts/diagnose_version_memory_type.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/scripts/harvest_wikidata_patterns.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/scripts/lowercase_seed_pattern_labels.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/scripts/migrate_agent_type.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/scripts/migrate_claude_memory.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/scripts/migrate_ontology_unify.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/scripts/sweep_retrieval_quality.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/scripts/test_cutover_onto_reconcile_1.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/setup.cfg +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/__init__.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/__version__.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/activation/__init__.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/activation/boost.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/activation/compaction.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/activation/compaction_constants.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/activation/constants.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/activation/decay_sweep.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/activation/migration.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/activation/score.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/activation/summarize.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/adherence/__init__.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/adherence/declaration.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/adherence/detection.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/adherence/manager.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/adherence/seed.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/agents/__init__.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/agents/evaluation.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/agents/node.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/anchors/__init__.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/anchors/drift.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/anchors/manager.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/anchors/models.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/anchors/queries.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/backends/__init__.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/backends/unsupported.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/background/__init__.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/background/bootstrap_scan.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/background/entity_ruler_consumer.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/background/extraction_worker.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/background/id_resolver.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/background/pattern_decay_sweep.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/batch.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/clear_all.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/cli.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/clustering/__init__.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/clustering/deduplicator.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/clustering/embedding.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/clustering/global_cluster.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/clustering/graph_aggregator.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/clustering/llm.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/code/__init__.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/code/constants.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/code/embedding.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/code/models.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/code/parser.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/code/ts_parser.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/configuration/__init__.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/configuration/environment.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/configuration/graph_name.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/configuration/loader.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/configuration/manager.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/configuration/models.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/configuration/validator.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/constraints/__init__.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/constraints/declaration.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/conversation/__init__.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/conversation/bulk_ingest.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/conversation/context.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/conversation/manager.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/conversation/session.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/corpus/__init__.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/corpus/exporter.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/corpus/format.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/corpus/importer.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/corpus/pack.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/corpus/reader.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/corpus/rebel.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/corpus/registry.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/corpus/triplet_parser.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/corpus/writer.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/data/__init__.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/data/ontology_mappings.json +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/data/public_knowledge/__init__.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/data/relation_mappings.json +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/data/relation_patterns.jsonl +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/data/seed_pattern_audit_patch.json +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/data/seed_patterns.jsonl +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/data/seed_patterns_wikidata_weak.jsonl +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/decisions/__init__.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/decisions/declaration.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/decisions/queries.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/drift_detector.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/evaluation/__init__.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/evaluation/cli.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/evaluation/dataset.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/evaluation/judge.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/evaluation/metrics.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/evaluation/report.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/evaluation/runner.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/evaluations/__init__.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/evaluations/declaration.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/evaluations/queries.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/evolution/__init__.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/evolution/batcher.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/evolution/cycle.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/evolution/diff_engine.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/evolution/events.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/evolution/flow.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/evolution/models.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/evolution/queue.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/evolution/router.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/evolution/store.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/evolution/tracker.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/evolution/utilities.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/evolution/worker.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/extraction/__init__.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/extraction/extractor.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/extraction/models.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/feedback/__init__.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/feedback/agentic_improvement.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/feedback/agentic_routines.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/feedback/cli.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/feedback/manager.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/feedback/slack.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/graph/__init__.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/graph/algos.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/graph/alias_resolution.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/graph/analytics/__init__.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/graph/analytics/edge.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/graph/analytics/episodes.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/graph/analytics/export.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/graph/analytics/prune.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/graph/analytics/temporal.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/graph/backends/__init__.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/graph/backends/async_backend.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/graph/backends/async_sqlite.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/graph/backends/backend.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/graph/backends/codec.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/graph/backends/queries.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/graph/backends/sqlite.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/graph/base.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/graph/compute.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/graph/core/__init__.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/graph/core/edges.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/graph/core/memory_path.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/graph/cypher_algos.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/graph/models/__init__.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/graph/models/canonical_types.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/graph/models/node_types.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/graph/networkx_algos.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/graph/traversal.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/graph/types/__init__.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/graph/types/episodic.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/graph/types/interfaces.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/graph/types/procedural.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/graph/types/semantic.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/graph/types/zettel.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/grounding/__init__.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/grounding/benchmark.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/grounding/executors.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/grounding/falkordb_store.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/grounding/miner.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/grounding/models.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/grounding/public_knowledge_grounder.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/grounding/registry.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/grounding/schemas.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/grounding/snapshot.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/grounding/sparql_client.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/grounding/sqlite_store.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/grounding/store.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/grounding/type_map.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/inference/__init__.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/inference/engine.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/inference/rules.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/integration/__init__.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/integration/archive/archive_provider.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/integration/chat/__init__.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/integration/chat/hitl.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/integration/chat/integration.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/integration/llm/__init__.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/integration/llm/llm_client.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/integration/llm/prompts/__init__.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/integration/llm/prompts/prompt_manager.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/integration/llm/prompts/prompt_provider.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/integration/llm/prompts/prompts.json +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/integration/llm/prompts/prompts_loader.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/integration/llm/providers.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/integration/llm/response_parser.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/integration/wikipedia_client.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/interfaces.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/learned/__init__.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/learned/declaration.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/managed/__init__.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/managed/exceptions.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/managed/framework.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/managers/__init__.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/managers/debug.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/managers/enrichment.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/managers/evolution.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/managers/monitoring.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/memory/__init__.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/memory/base.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/memory/canonical_store.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/memory/context_types.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/memory/ingestion/__init__.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/memory/ingestion/document_loaders.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/memory/ingestion/enrichment.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/memory/ingestion/extraction.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/memory/ingestion/flow.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/memory/ingestion/grounding.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/memory/ingestion/handlers/__init__.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/memory/ingestion/handlers/anchor.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/memory/ingestion/handlers/code_entity.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/memory/ingestion/handlers/constraint.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/memory/ingestion/handlers/conversation.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/memory/ingestion/handlers/conversation_turn.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/memory/ingestion/handlers/decision.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/memory/ingestion/handlers/document.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/memory/ingestion/handlers/hook_capture.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/memory/ingestion/handlers/learned.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/memory/ingestion/handlers/observation.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/memory/ingestion/handlers/opinion.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/memory/ingestion/handlers/pattern.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/memory/ingestion/handlers/plan.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/memory/ingestion/handlers/plan_task.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/memory/ingestion/handlers/reasoning.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/memory/ingestion/handlers/seed_item.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/memory/ingestion/handlers/timeline_entry.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/memory/ingestion/handlers/tool_call.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/memory/ingestion/observer.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/memory/ingestion/registry.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/memory/ingestion/storage.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/memory/ingestion/structured.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/memory/ingestion/utils.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/memory/memory_factory.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/memory/migrate.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/memory/mixins.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/memory/models/__init__.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/memory/models/memory_item.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/memory/pipeline/__init__.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/memory/pipeline/classification.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/memory/pipeline/components.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/memory/pipeline/config.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/memory/pipeline/enrichment.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/memory/pipeline/extractor.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/memory/pipeline/grounding.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/memory/pipeline/input_adapter.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/memory/pipeline/linking.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/memory/pipeline/plugin_base.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/memory/pipeline/stages/__init__.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/memory/pipeline/stages/analytics.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/memory/pipeline/stages/clustering.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/memory/pipeline/stages/coreference.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/memory/pipeline/stages/enrichment.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/memory/pipeline/stages/evolution.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/memory/pipeline/stages/graph_operations.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/memory/pipeline/stages/grounding.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/memory/pipeline/stages/linking.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/memory/pipeline/stages/monitoring.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/memory/pipeline/stages/personalization.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/memory/pipeline/stages/validation.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/memory/pipeline/state.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/memory/pipeline/transactions/__init__.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/memory/pipeline/transactions/change_set.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/memory/pipeline/transactions/ops.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/memory/pipeline/transactions/transaction.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/memory/types/__init__.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/memory/types/episodic_memory.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/memory/types/factory_memory_creator.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/memory/types/pending_memory.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/memory/types/procedural_memory.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/memory/types/semantic_memory.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/memory/types/wikilink_parser.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/memory/types/zettel_extensions.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/memory/types/zettel_memory.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/memory/utils.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/metrics/__init__.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/metrics/graph_health.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/migrations/__init__.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/models/__init__.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/models/_helpers.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/models/base.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/models/compat/__init__.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/models/compat/boundary_converter.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/models/compat/dataclass_model.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/models/compat/simple_boundary.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/models/concept.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/models/conditional_step.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/models/corpus.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/models/drift_event.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/models/entity.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/models/entity_types.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/models/evaluation.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/models/ingestion_strategy.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/models/library.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/models/link_types.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/models/memory_item.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/models/note.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/models/ontology.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/models/opinion.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/models/pending_requirement.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/models/procedure.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/models/reasoning.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/models/schema_snapshot.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/models/snapshot.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/models/status.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/models/step.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/models/tag.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/models/user_model.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/observability/__init__.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/observability/events.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/observability/instrumentation.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/observability/json_formatter.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/observability/logging_filter.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/observability/retrieval_tracking.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/observability/sampler.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/observability/tracing.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/observations/__init__.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/observations/declaration.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/ontology/__init__.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/ontology/blocklist.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/ontology/entity_pair_cache.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/ontology/evidence_store.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/ontology/governance.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/ontology/governance_manager.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/ontology/hierarchy.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/ontology/hitl/__init__.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/ontology/hitl/hitl_interface.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/ontology/in_memory_store.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/ontology/inference/__init__.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/ontology/inference/inference.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/ontology/inference/ontogpt.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/ontology/ir_models.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/ontology/layered.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/ontology/layers.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/ontology/llm_manager.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/ontology/manager.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/ontology/models.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/ontology/observations.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/ontology/observers.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/ontology/promoter.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/ontology/promotion.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/ontology/reasoning_validator.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/ontology/registry.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/ontology/relation_seed.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/ontology/scoring.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/ontology/service.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/ontology/template_service.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/ontology/templates/_manifest.json +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/ontology/templates/business.json +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/ontology/templates/general.json +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/ontology/templates/software.json +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/ontology/tiers.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/ontology/types.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/opinions/__init__.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/opinions/declaration.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/opinions/queries.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/pipeline/__init__.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/pipeline/dag.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/pipeline/metrics_consumer.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/pipeline/model_router.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/pipeline/protocol.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/pipeline/router.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/pipeline/runner.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/pipeline/stages/__init__.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/pipeline/stages/alias_link.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/pipeline/stages/alias_resolve.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/pipeline/stages/classify.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/pipeline/stages/compact.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/pipeline/stages/consolidation_router.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/pipeline/stages/coreference.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/pipeline/stages/discoverability.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/pipeline/stages/enrich.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/pipeline/stages/entity_ruler.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/pipeline/stages/evolve.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/pipeline/stages/ground.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/pipeline/stages/link.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/pipeline/stages/llm_extract.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/pipeline/stages/ontology_constrain.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/pipeline/stages/reasoning_detect.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/pipeline/stages/relation_ruler.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/pipeline/stages/simplify.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/pipeline/stages/supersede.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/pipeline/stages/temporal_resolve.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/pipeline/state.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/pipeline/token_tracker.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/pipeline/trajectory.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/pipeline/transport/__init__.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/pipeline/transport/event_bus.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/plans/__init__.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/plans/failure_journal.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/plans/manager.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/plans/queries.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/plugins/__init__.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/plugins/base.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/plugins/enrichers/__init__.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/plugins/enrichers/basic.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/plugins/enrichers/link_expansion.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/plugins/enrichers/sentiment.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/plugins/enrichers/skills_tools.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/plugins/enrichers/temporal.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/plugins/enrichers/topic.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/plugins/enrichers/usage_tracking.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/plugins/evolvers/__init__.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/plugins/evolvers/anchor_reconciliation.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/plugins/evolvers/base.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/plugins/evolvers/enhanced/__init__.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/plugins/evolvers/enhanced/exponential_decay.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/plugins/evolvers/enhanced/hebbian_co_retrieval.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/plugins/evolvers/enhanced/interference_based_consolidation.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/plugins/evolvers/enhanced/retrieval_based_strengthening.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/plugins/evolvers/enhanced/working_to_episodic.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/plugins/evolvers/episodic_decay.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/plugins/evolvers/episodic_to_semantic.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/plugins/evolvers/episodic_to_zettel.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/plugins/evolvers/evaluation.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/plugins/evolvers/memory_consolidation.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/plugins/evolvers/observation_synthesis.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/plugins/evolvers/opinion_reinforcement.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/plugins/evolvers/opinion_synthesis.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/plugins/evolvers/procedural_reinforcement.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/plugins/evolvers/qa_heuristic.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/plugins/evolvers/resolution_chain.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/plugins/evolvers/result.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/plugins/evolvers/semantic_decay.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/plugins/evolvers/semantic_to_procedural.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/plugins/evolvers/stale_memory.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/plugins/evolvers/temporal_aging.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/plugins/evolvers/zettel_prune.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/plugins/executor.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/plugins/extractors/__init__.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/plugins/extractors/conversation_aware_llm.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/plugins/extractors/decision.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/plugins/extractors/gliner2.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/plugins/extractors/llm.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/plugins/extractors/llm_single.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/plugins/extractors/reasoning.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/plugins/extractors/spacy.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/plugins/grounders/__init__.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/plugins/grounders/wikipedia.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/plugins/registry.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/plugins/resolvers/__init__.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/plugins/resolvers/external_resolver.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/plugins/security.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/procedure_matcher.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/procedures/__init__.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/procedures/candidate_namer.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/procedures/candidate_scorer.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/procedures/models.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/procedures/pattern_detector.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/progress/event.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/progress/operation_span.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/py.typed +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/reasoning/__init__.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/reasoning/challenger.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/reasoning/confidence.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/reasoning/declaration.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/reasoning/detection/__init__.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/reasoning/detection/base.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/reasoning/detection/cascade.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/reasoning/detection/embedding.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/reasoning/detection/graph.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/reasoning/detection/heuristic.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/reasoning/detection/llm.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/reasoning/fuzzy_confidence.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/reasoning/models.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/reasoning/proof_tree.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/reasoning/query_router.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/reasoning/reasoner.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/reasoning/residuation.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/reasoning/resolution/__init__.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/reasoning/resolution/base.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/reasoning/resolution/cascade.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/reasoning/resolution/grounding.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/reasoning/resolution/llm.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/reasoning/resolution/recency.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/reasoning/resolution/wikipedia.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/relations/__init__.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/relations/benchmark.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/relations/discovery.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/relations/normalizer.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/relations/overlays.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/relations/schema.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/relations/scorer.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/relations/validator.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/retrieval/__init__.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/retrieval/ssg_traversal.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/schema_diff.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/schema_providers.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/scope_provider.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/search/__init__.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/search/attention_fusion.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/search/channels.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/search/citations.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/search/entity_resolve.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/search/expertise.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/search/hop_cleanup.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/search/intent_channels.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/search/lineage.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/search/multi_hop.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/search/ppr.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/search/ppr_cache.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/search/query_decomposer.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/search/recall_profile.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/search/rrf_merge.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/search/spreading_activation.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/search/surfacing_router.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/session/__init__.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/session/constants.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/session/pins.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/similarity/__init__.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/similarity/enhanced_metrics.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/similarity/framework.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/stores/__init__.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/stores/base.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/stores/converters/__init__.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/stores/converters/episodic_converter.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/stores/converters/procedural_converter.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/stores/converters/semantic_converter.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/stores/converters/zettel_converter.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/stores/corpus/__init__.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/stores/corpus/store.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/stores/example_memory_handler.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/stores/external/__init__.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/stores/external/file_handler.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/stores/external/mcp_handler.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/stores/external/s3_handler.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/stores/external/web_handler.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/stores/factory.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/stores/json_store.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/stores/mixins.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/stores/ontology/__init__.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/stores/ontology/falkordb.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/stores/ontology/redis_service.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/stores/persistence/__init__.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/stores/persistence/base.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/stores/persistence/entity_handler.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/stores/persistence/json.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/stores/persistence/model.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/stores/persistence/ontology_handlers.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/stores/registrations.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/stores/registry.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/stores/vector/__init__.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/stores/vector/backends/__init__.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/stores/vector/backends/base.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/stores/vector/backends/falkor.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/stores/vector/backends/usearch.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/streams/__init__.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/streams/pipeline_producer.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/summary/__init__.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/summary/composer.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/summary/delta.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/summary/queries.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/summary/renderer.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/sweep/__init__.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/sweep/config.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/sweep/metrics_store.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/sweep/result.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/sweep/runner.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/sweep/scorer.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/temporal/__init__.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/temporal/context.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/temporal/memory_type_backfill.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/temporal/performance.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/temporal/queries.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/temporal/relationships.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/temporal/supersession_hook.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/temporal/trigger_date.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/temporal/version_origin_backfill.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/temporal/version_tracker.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/tools/__init__.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/tools/markdown_writer.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/users/__init__.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/users/email_domain.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/users/personal-email-domains.json +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/users/seed.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/utils/__init__.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/utils/cache.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/utils/chunking.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/utils/context.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/utils/deduplication.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/utils/hybrid_retrieval.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/utils/llm_client/litellm.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/utils/llm_client/openai.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/utils/llm_client/openai_chat.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/utils/pattern_precedence.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/utils/pipeline_utils.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/utils/serialization.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/utils/token_tracking.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/validation/__init__.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/validation/edge_validator.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/validation/memory_validator.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/vault/__init__.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/vault/guard.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/vault/precedence.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/vault/proposal_sweep.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/vault/proposals.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/vault/reconciler.py +0 -0
- {smartmemory_core-1.4.26 → smartmemory_core-1.4.28}/smartmemory/vault/watcher.py +0 -0
- {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.
|
|
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
|
|
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
|
-
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
14
|
+
- GATED metric: ontology_constrain stage mean ≤ STAGE_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.
|
|
264
|
-
#
|
|
265
|
-
#
|
|
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"
|
|
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
|
-
|
|
313
|
-
|
|
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
|
|
270
|
-
#
|
|
271
|
-
#
|
|
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.
|
|
319
|
-
from smartmemory.code.
|
|
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
|
-
#
|
|
325
|
-
#
|
|
326
|
-
#
|
|
327
|
-
#
|
|
328
|
-
#
|
|
329
|
-
|
|
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
|
|
336
|
+
if is_dedicated_code:
|
|
334
337
|
graph_sp = getattr(self.graph.backend, "scope_provider", None)
|
|
335
338
|
vector_store = VectorStore(
|
|
336
|
-
collection_name=
|
|
339
|
+
collection_name=code_domain.storage.collection,
|
|
337
340
|
scope_provider=graph_sp,
|
|
338
|
-
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 =
|
|
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
|
|
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()
|
|
6
|
-
|
|
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
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
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
|
-
|
|
138
|
+
extra.append("AND n.repo = $repo")
|
|
137
139
|
params["repo"] = repo
|
|
138
140
|
if entity_type:
|
|
139
|
-
|
|
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
|
-
|
|
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
|
|
176
|
-
|
|
177
|
-
the
|
|
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.
|
|
202
|
-
from smartmemory.code.
|
|
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
|
-
#
|
|
208
|
-
#
|
|
209
|
-
# query prefix
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
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
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
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
|
|
262
|
+
if is_dedicated_code and not _CODE_NS_EMPTY_WARNED:
|
|
254
263
|
_warn_code_collection_empty()
|
|
255
264
|
return []
|
|
256
265
|
|