[package]
edition = "2024"
name = "do-memory-core"
version = "0.1.29"
authors = ["Self-Learning Memory Contributors"]
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Core episodic learning system for AI agents with pattern extraction, reward scoring, and dual storage backend"
homepage = "https://github.com/d-o-hub/rust-self-learning-memory"
documentation = "https://docs.rs/do-memory-core"
readme = "README.md"
keywords = [
"ai",
"memory",
"learning",
"episodic",
"patterns",
]
categories = [
"database",
"development-tools",
"science",
]
license = "MIT"
repository = "https://github.com/d-o-hub/rust-self-learning-memory"
resolver = "2"
[features]
agentfs = []
default = []
embeddings-full = [
"openai",
"mistral",
]
hybrid_search = []
local-embeddings = [
"ort",
"tokenizers",
"ndarray",
"reqwest/stream",
]
mistral = ["reqwest"]
openai = ["reqwest"]
proptest-arbitrary = ["proptest"]
[lib]
name = "do_memory_core"
path = "src/lib.rs"
[[example]]
name = "async_pattern_extraction"
path = "examples/async_pattern_extraction.rs"
[[example]]
name = "bulk_episode_operations"
path = "examples/bulk_episode_operations.rs"
[[example]]
name = "embedding_config_refactor"
path = "examples/embedding_config_refactor.rs"
[[example]]
name = "embedding_optimization_demo"
path = "examples/embedding_optimization_demo.rs"
[[example]]
name = "embeddings_end_to_end"
path = "examples/embeddings_end_to_end.rs"
[[example]]
name = "fuzzy_search_demo"
path = "examples/fuzzy_search_demo.rs"
[[example]]
name = "multi_provider_embeddings"
path = "examples/multi_provider_embeddings.rs"
[[example]]
name = "pattern_search_demo"
path = "examples/pattern_search_demo.rs"
[[example]]
name = "ranking_demo"
path = "examples/ranking_demo.rs"
[[example]]
name = "regex_search_demo"
path = "examples/regex_search_demo.rs"
[[example]]
name = "semantic_embeddings_demo"
path = "examples/semantic_embeddings_demo.rs"
[[example]]
name = "semantic_summarization"
path = "examples/semantic_summarization.rs"
[[test]]
name = "adaptive_reward_integration_test"
path = "tests/adaptive_reward_integration_test.rs"
[[test]]
name = "async_extraction"
path = "tests/async_extraction.rs"
[[test]]
name = "attribution_property_tests"
path = "tests/attribution_property_tests.rs"
[[test]]
name = "bulk_episode_retrieval_test"
path = "tests/bulk_episode_retrieval_test.rs"
[[test]]
name = "capacity_property_tests"
path = "tests/capacity_property_tests.rs"
[[test]]
name = "checkpoint_property_tests"
path = "tests/checkpoint_property_tests.rs"
[[test]]
name = "compliance"
path = "tests/compliance.rs"
[[test]]
name = "context_aware_embeddings_test"
path = "tests/context_aware_embeddings_test.rs"
[[test]]
name = "domain_cache_integration_test"
path = "tests/domain_cache_integration_test.rs"
[[test]]
name = "embedding_integration_test"
path = "tests/embedding_integration_test.rs"
[[test]]
name = "episode_deletion_test"
path = "tests/episode_deletion_test.rs"
[[test]]
name = "episode_filtering_test"
path = "tests/episode_filtering_test.rs"
[[test]]
name = "episode_lifecycle_property_tests"
path = "tests/episode_lifecycle_property_tests.rs"
[[test]]
name = "error_handling_tests"
path = "tests/error_handling_tests.rs"
[[test]]
name = "execution_step_property_tests"
path = "tests/execution_step_property_tests.rs"
[[test]]
name = "genesis_integration_test"
path = "tests/genesis_integration_test.rs"
[[test]]
name = "heuristic_learning"
path = "tests/heuristic_learning.rs"
[[test]]
name = "input_validation"
path = "tests/input_validation.rs"
[[test]]
name = "learning_cycle"
path = "tests/learning_cycle.rs"
[[test]]
name = "openai_config_phase2_test"
path = "tests/openai_config_phase2_test.rs"
[[test]]
name = "pattern_effectiveness_test"
path = "tests/pattern_effectiveness_test.rs"
[[test]]
name = "pattern_search_integration_test"
path = "tests/pattern_search_integration_test.rs"
[[test]]
name = "performance"
path = "tests/performance.rs"
[[test]]
name = "playbook_property_tests"
path = "tests/playbook_property_tests.rs"
[[test]]
name = "premem_integration_test"
path = "tests/premem_integration_test.rs"
[[test]]
name = "property_tests"
path = "tests/property_tests.rs"
[[test]]
name = "quality_assessment_test"
path = "tests/quality_assessment_test.rs"
[[test]]
name = "regression"
path = "tests/regression.rs"
[[test]]
name = "relationship_integration"
path = "tests/relationship_integration.rs"
[[test]]
name = "relationship_property_tests"
path = "tests/relationship_property_tests.rs"
[[test]]
name = "reward_property_tests"
path = "tests/reward_property_tests.rs"
[[test]]
name = "semantic_hierarchical_retrieval_test"
path = "tests/semantic_hierarchical_retrieval_test.rs"
[[test]]
name = "semantic_retrieval_test"
path = "tests/semantic_retrieval_test.rs"
[[test]]
name = "semantic_summary_test"
path = "tests/semantic_summary_test.rs"
[[test]]
name = "serialization_property_tests"
path = "tests/serialization_property_tests.rs"
[[test]]
name = "snapshot_tests"
path = "tests/snapshot_tests.rs"
[[test]]
name = "step_batching"
path = "tests/step_batching.rs"
[[test]]
name = "storage_sync"
path = "tests/storage_sync.rs"
[[test]]
name = "tag_operations_test"
path = "tests/tag_operations_test.rs"
[[test]]
name = "task_context_property_tests"
path = "tests/task_context_property_tests.rs"
[[bench]]
name = "indexing_benchmark"
path = "benches/indexing_benchmark.rs"
[dependencies.anyhow]
version = "1.0.102"
[dependencies.async-trait]
version = "0.1.89"
[dependencies.augurs-changepoint]
version = "0.10.2"
[dependencies.changepoint]
version = "0.15.0"
[dependencies.chrono]
version = "0.4.44"
features = ["serde"]
[dependencies.futures]
version = "0.3.32"
[dependencies.lru]
version = "0.16.3"
[dependencies.ndarray]
version = "0.17"
optional = true
[dependencies.ort]
version = "2.0.0-rc.12"
optional = true
[dependencies.parking_lot]
version = "0.12.5"
[dependencies.proptest]
version = "1.11"
optional = true
[dependencies.rand]
version = "0.10"
[dependencies.regex]
version = "1.12"
[dependencies.reqwest]
version = "0.13"
features = ["json"]
optional = true
[dependencies.serde]
version = "1.0.228"
features = ["derive"]
[dependencies.serde_json]
version = "1.0.149"
[dependencies.strsim]
version = "0.11.1"
[dependencies.thiserror]
version = "2.0.18"
[dependencies.tokenizers]
version = "0.22.2"
optional = true
[dependencies.tokio]
version = "1.50"
features = ["full"]
[dependencies.tracing]
version = "0.1.44"
[dependencies.tracing-subscriber]
version = "0.3.23"
features = [
"env-filter",
"json",
]
[dependencies.uuid]
version = "1.23"
features = [
"v4",
"serde",
]
[dev-dependencies.criterion]
version = "0.8"
[dev-dependencies.insta]
version = "1.47"
[dev-dependencies.libsql]
version = "0.9.30"
[dev-dependencies.postcard]
version = "1.1.3"
features = ["alloc"]
default-features = false
[dev-dependencies.proptest]
version = "1.11"
[dev-dependencies.serial_test]
version = "3.4"
[dev-dependencies.tempfile]
version = "3.27.0"
[dev-dependencies.tokio]
version = "1.50"
features = [
"full",
"test-util",
]
[lints.clippy.doc_markdown]
level = "warn"
priority = 0
[lints.clippy.missing_docs_in_private_items]
level = "allow"
priority = 0
[lints.clippy.missing_errors_doc]
level = "warn"
priority = 0
[lints.clippy.missing_safety_doc]
level = "warn"
priority = 0
[lints.clippy.pedantic]
level = "warn"
priority = 0