[package]
edition = "2024"
rust-version = "1.91"
name = "brainwires-knowledge"
version = "0.10.0"
authors = ["Brainwires"]
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Knowledge layer — knowledge graphs, adaptive prompting, RAG, spectral math, and code analysis for the Brainwires Agent Framework"
homepage = "https://github.com/Brainwires/brainwires-framework"
documentation = "https://docs.rs/brainwires-knowledge"
readme = "README.md"
keywords = [
"knowledge-graph",
"rag",
"prompting",
"semantic-search",
"code-analysis",
]
categories = ["development-tools"]
license = "MIT OR Apache-2.0"
repository = "https://github.com/Brainwires/brainwires-framework"
resolver = "2"
[features]
alt-folder-name = []
code-analysis = [
"dep:tree-sitter",
"tree-sitter-languages",
"dep:async-trait",
"dep:lancedb",
"dep:arrow-array",
"dep:arrow-schema",
"dep:futures",
]
default = [
"knowledge",
"prompting",
]
documents = ["dep:zip"]
dream = [
"dep:futures",
"dep:async-trait",
]
knowledge = [
"dep:brainwires-storage",
"brainwires-storage/native",
"dep:rusqlite",
"dep:reqwest",
"dep:urlencoding",
"dep:schemars",
"dep:dirs",
"brainwires-core/native",
]
lancedb-backend = []
native = [
"knowledge",
"prompting",
"prompting-storage",
"spectral",
"rag",
"code-analysis",
"tree-sitter-languages",
"documents",
"pdf-extract-feature",
"dream",
"telemetry",
]
pdf-extract-feature = ["dep:pdf-extract"]
prompting = [
"dep:linfa",
"dep:linfa-clustering",
"dep:ndarray",
"dep:bincode",
]
prompting-storage = [
"prompting",
"dep:rusqlite",
]
qdrant-backend = ["brainwires-storage/qdrant-backend"]
rag = [
"dep:brainwires-storage",
"dep:fastembed",
"dep:git2",
"dep:async-trait",
"dep:walkdir",
"dep:sha2",
"dep:ignore",
"dep:tree-sitter",
"dep:toml",
"dep:rayon",
"dep:tokio-util",
"dep:fs2",
"dep:rmcp",
"dep:schemars",
"dep:clap",
"dep:dirs",
"dep:futures",
"dep:tracing-subscriber",
"dep:lancedb",
"dep:arrow-array",
"dep:arrow-schema",
"brainwires-storage/vector-db",
"brainwires-core/native",
"brainwires-core/schemars",
"tokio/full",
]
spectral = ["dep:ndarray"]
spectral-select = ["spectral"]
stack-graphs = []
telemetry = ["dep:brainwires-telemetry"]
tree-sitter-languages = [
"dep:tree-sitter",
"dep:tree-sitter-rust",
"dep:tree-sitter-python",
"dep:tree-sitter-javascript",
"dep:tree-sitter-typescript",
"dep:tree-sitter-go",
"dep:tree-sitter-java",
"dep:tree-sitter-swift",
"dep:tree-sitter-c",
"dep:tree-sitter-cpp",
"dep:tree-sitter-c-sharp",
"dep:tree-sitter-ruby",
"dep:tree-sitter-php",
]
wasm = ["brainwires-core/wasm"]
[lib]
name = "brainwires_knowledge"
path = "src/lib.rs"
[[example]]
name = "code_analysis"
path = "examples/code_analysis.rs"
required-features = [
"code-analysis",
"rag",
]
[[example]]
name = "knowledge_graph"
path = "examples/knowledge_graph.rs"
required-features = ["knowledge"]
[[example]]
name = "prompting_techniques"
path = "examples/prompting_techniques.rs"
required-features = ["prompting"]
[[example]]
name = "rag_search"
path = "examples/rag_search.rs"
required-features = ["rag"]
[dependencies.anyhow]
version = "1"
[dependencies.arrow-array]
version = "57"
optional = true
[dependencies.arrow-schema]
version = "57"
optional = true
[dependencies.async-trait]
version = "0.1"
optional = true
[dependencies.bincode]
version = "2"
features = ["serde"]
optional = true
[dependencies.brainwires-core]
version = "0.10.0"
[dependencies.brainwires-storage]
version = "0.10.0"
optional = true
default-features = false
[dependencies.brainwires-telemetry]
version = "0.10.0"
optional = true
default-features = false
[dependencies.chrono]
version = "0.4"
features = ["serde"]
[dependencies.clap]
version = "4"
features = [
"derive",
"env",
]
optional = true
[dependencies.dirs]
version = "6"
optional = true
[dependencies.fastembed]
version = "5.1"
optional = true
[dependencies.fs2]
version = "0.4"
optional = true
[dependencies.futures]
version = "0.3"
optional = true
[dependencies.git2]
version = "0.20"
optional = true
[dependencies.ignore]
version = "0.4"
optional = true
[dependencies.lancedb]
version = "0.27"
optional = true
[dependencies.linfa]
version = "0.7"
optional = true
[dependencies.linfa-clustering]
version = "0.7"
optional = true
[dependencies.ndarray]
version = "0.15"
optional = true
[dependencies.pdf-extract]
version = "0.7"
optional = true
[dependencies.rayon]
version = "1.10"
optional = true
[dependencies.regex]
version = "1"
[dependencies.reqwest]
version = "0.12"
features = [
"json",
"stream",
]
optional = true
[dependencies.rmcp]
version = "1.1"
features = [
"server",
"transport-io",
"macros",
]
optional = true
[dependencies.rusqlite]
version = "0.38"
features = ["bundled"]
optional = true
[dependencies.schemars]
version = "1.0"
optional = true
[dependencies.serde]
version = "1"
features = ["derive"]
[dependencies.serde_json]
version = "1"
[dependencies.sha2]
version = "0.10"
optional = true
[dependencies.thiserror]
version = "2"
[dependencies.tokio]
version = "1.43"
features = [
"sync",
"time",
]
[dependencies.tokio-util]
version = "0.7"
optional = true
[dependencies.toml]
version = "1.0"
optional = true
[dependencies.tracing]
version = "0.1"
[dependencies.tracing-subscriber]
version = "0.3"
features = ["env-filter"]
optional = true
[dependencies.tree-sitter]
version = "0.25"
optional = true
[dependencies.tree-sitter-c]
version = "0.24"
optional = true
[dependencies.tree-sitter-c-sharp]
version = "0.23"
optional = true
[dependencies.tree-sitter-cpp]
version = "0.23"
optional = true
[dependencies.tree-sitter-go]
version = "0.23"
optional = true
[dependencies.tree-sitter-java]
version = "0.23"
optional = true
[dependencies.tree-sitter-javascript]
version = "0.23"
optional = true
[dependencies.tree-sitter-php]
version = "0.24"
optional = true
[dependencies.tree-sitter-python]
version = "0.23"
optional = true
[dependencies.tree-sitter-ruby]
version = "0.23"
optional = true
[dependencies.tree-sitter-rust]
version = "0.23"
optional = true
[dependencies.tree-sitter-swift]
version = "0.7"
optional = true
[dependencies.tree-sitter-typescript]
version = "0.23"
optional = true
[dependencies.urlencoding]
version = "2"
optional = true
[dependencies.uuid]
version = "1"
features = [
"v4",
"serde",
]
[dependencies.walkdir]
version = "2.5"
optional = true
[dependencies.zip]
version = "8"
optional = true
[dev-dependencies.criterion]
version = "0.5"
features = ["async_tokio"]
[dev-dependencies.filetime]
version = "0.2"
[dev-dependencies.tempfile]
version = "3"
[dev-dependencies.tokio]
version = "1.43"
features = [
"full",
"full",
"test-util",
]
[dev-dependencies.tracing-subscriber]
version = "0.3"
features = ["env-filter"]