[package]
edition = "2024"
name = "basemind"
version = "0.29.1"
authors = ["Na'aman Hirschfeld <nhirschfeld@gmail.com>"]
build = "build.rs"
include = [
"/Cargo.toml",
"/Cargo.lock",
"/src/**",
"/README.md",
"/LICENSE",
"/ATTRIBUTIONS.md",
"/build.rs",
"/schema/basemind-config-v1.schema.json",
"!/src/scanner_filter_tests.rs",
"!/src/watcher_tests.rs",
"!/src/scanner_docs_security_tests.rs",
"!/src/scanner_docs_tests.rs",
"!/src/store_blob_tests.rs",
"!/src/store_gc_tier_tests.rs",
"!/src/comms/client_tests.rs",
"!/src/comms/store_tests.rs",
"!/src/comms/workspace_pool_tests.rs",
"!/src/comms/daemon_tests.rs",
"!/src/comms/daemon_forward_tests.rs",
"!/src/lance/tests.rs",
"!/src/mcp/helpers_calls_scan_tests.rs",
"!/src/mcp/helpers_governance/tests.rs",
"!/src/mcp/codegraph_tests.rs",
"!/src/mcp/index_route_tests.rs",
"!/src/mcp/lazy_cache_tests.rs",
"!/src/mcp/find_files_tests.rs",
"!/src/mcp/map_cache_budget_tests.rs",
"!/src/mcp/term_index_tests.rs",
"!/src/registry/tests.rs",
"!/src/index/writer_tests.rs",
]
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Full AI context layer over MCP — tree-sitter code-map, document RAG (PDF/Office/HTML/email + OCR + reranker), shared agent memory, on-demand web crawl, git history + blame + per-symbol diff. 300+ languages, 10+ coding-agent harnesses, content-addressed Fjall + LanceDB."
homepage = "https://basemind.ai"
documentation = "https://docs.rs/basemind"
readme = "README.md"
keywords = [
"mcp",
"agent-context",
"rag",
"code-map",
"tree-sitter",
]
categories = [
"command-line-utilities",
"development-tools",
]
license = "MIT"
repository = "https://github.com/Goldziher/basemind"
[package.metadata.cargo-machete]
ignored = [
"serde_toon_format",
"rustix",
]
[features]
code-intel = [
"code-intel-js",
"code-intel-stack",
]
code-intel-js = [
"dep:oxc_allocator",
"dep:oxc_parser",
"dep:oxc_semantic",
"dep:oxc_span",
"dep:oxc_syntax",
"dep:oxc_resolver",
]
code-intel-stack = [
"dep:stack-graphs",
"dep:tree-sitter-graph",
"dep:tree-sitter-stack-graphs",
]
code-search = [
"intelligence",
"xberg/embeddings",
"xberg/reranker",
"xberg/reranker-presets",
]
comms = [
"dep:hyper",
"dep:hyper-util",
"dep:http",
"dep:http-body-util",
"dep:bytes",
"dep:form_urlencoded",
"dep:getrandom",
"rmcp/transport-streamable-http-server",
]
crawl = [
"documents",
"dep:crawlberg",
"dep:url",
]
default = []
documents = [
"intelligence",
"tokenizer",
"xberg/formats",
"xberg/analysis",
"xberg/embeddings",
"xberg/reranker",
"xberg/reranker-presets",
"xberg/ocr",
"xberg/paddle-ocr",
"xberg/layout-detection",
"xberg/auto-rotate",
"xberg/ner-onnx",
"xberg/keywords-yake",
"xberg/keywords-rake",
"xberg/summarization",
"xberg/summarization-llm",
"xberg/redaction",
"xberg/qr-codes",
"dep:serde_toon_format",
]
full = [
"documents",
"memory",
"crawl",
"comms",
"shells",
"code-intel",
"code-search",
]
intelligence = [
"dep:xberg",
"dep:lancedb",
"dep:arrow-array",
"dep:arrow-schema",
"dep:futures",
]
memory = [
"intelligence",
"xberg/embeddings",
"xberg/keywords",
"xberg/ner-onnx",
]
ort-dynamic = ["xberg?/ort-dynamic"]
shells = [
"dep:rmux-sdk",
"dep:rmux-server",
"dep:rmux-client",
]
test-support = ["dep:tempfile"]
tokenizer = [
"dep:xberg",
"xberg/chunking-tokenizers",
]
[lib]
name = "basemind"
path = "src/lib.rs"
[[bin]]
name = "basemind"
path = "src/main.rs"
[dependencies.ahash]
version = "0.8"
[dependencies.anstream]
version = "1.0"
[dependencies.anstyle]
version = "1"
[dependencies.anyhow]
version = "1"
[dependencies.arc-swap]
version = "1.9.2"
[dependencies.arrow-array]
version = "58"
optional = true
[dependencies.arrow-schema]
version = "58"
optional = true
[dependencies.blake3]
version = "1"
[dependencies.bstr]
version = "1"
features = ["serde"]
[dependencies.bytes]
version = "1"
optional = true
[dependencies.clap]
version = "4"
features = [
"derive",
"env",
]
[dependencies.clap_complete]
version = "4"
[dependencies.clap_mangen]
version = "0.3"
[dependencies.crawlberg]
version = "1.10.3"
features = ["native-runtime"]
optional = true
default-features = false
[dependencies.directories]
version = "6"
[dependencies.fjall]
version = "3.1.12"
[dependencies.form_urlencoded]
version = "1"
optional = true
[dependencies.fs2]
version = "0.4"
[dependencies.futures]
version = "0.3"
optional = true
[dependencies.getrandom]
version = "0.4"
features = ["std"]
optional = true
[dependencies.gix]
version = "0.89.0"
features = [
"status",
"blob-diff",
"revision",
"max-performance-safe",
]
[dependencies.globset]
version = "0.4"
[dependencies.hex]
version = "0.4"
[dependencies.http]
version = "1"
optional = true
[dependencies.http-body-util]
version = "0.1"
optional = true
[dependencies.hyper]
version = "1"
features = [
"server",
"http1",
"http2",
]
optional = true
[dependencies.hyper-util]
version = "0.1"
features = [
"server-auto",
"tokio",
]
optional = true
[dependencies.ignore]
version = "0.4"
[dependencies.jsonschema]
version = "0.58"
[dependencies.lancedb]
version = "0.40.0"
features = ["remote"]
optional = true
[dependencies.libc]
version = "0.2"
[dependencies.libmimalloc-sys]
version = "0.1"
features = ["extended"]
[dependencies.lru]
version = "0.18.5"
[dependencies.memchr]
version = "2"
[dependencies.mimalloc]
version = "0.1"
[dependencies.notify]
version = "8"
[dependencies.notify-debouncer-full]
version = "0.7"
[dependencies.nucleo-matcher]
version = "0.3.1"
[dependencies.oxc_allocator]
version = "0.153.0"
optional = true
[dependencies.oxc_parser]
version = "0.153.0"
optional = true
[dependencies.oxc_resolver]
version = "11.24.3"
optional = true
[dependencies.oxc_semantic]
version = "0.153.0"
optional = true
[dependencies.oxc_span]
version = "0.153.0"
optional = true
[dependencies.oxc_syntax]
version = "0.153.0"
optional = true
[dependencies.rayon]
version = "1"
[dependencies.regex]
version = "1.13.1"
[dependencies.regex-syntax]
version = "0.8"
[dependencies.rmcp]
version = "3.5"
features = [
"server",
"macros",
"schemars",
"transport-async-rw",
]
default-features = false
[dependencies.rmp-serde]
version = "1"
[dependencies.rmux-client]
version = "0.10"
optional = true
default-features = false
[dependencies.rmux-sdk]
version = "0.10"
optional = true
default-features = false
[dependencies.rmux-server]
version = "0.10"
optional = true
default-features = false
[dependencies.rustix]
version = "=1.1.4"
[dependencies.schemars]
version = "1.2"
[dependencies.serde]
version = "1"
features = ["derive"]
[dependencies.serde_json]
version = "1"
features = ["preserve_order"]
[dependencies.serde_toon_format]
version = "0.2"
optional = true
[dependencies.stack-graphs]
version = "0.14.1"
optional = true
package = "basemind-stack-graphs"
[dependencies.streaming-iterator]
version = "0.1"
[dependencies.tempfile]
version = "3"
optional = true
[dependencies.thiserror]
version = "2"
[dependencies.tokio]
version = "1"
features = [
"rt-multi-thread",
"macros",
"signal",
"sync",
"io-util",
"io-std",
"time",
"net",
"fs",
"process",
]
[dependencies.tokio-util]
version = "0.7"
features = ["codec"]
[dependencies.toml]
version = "1.1"
[dependencies.tracing]
version = "0.1"
[dependencies.tracing-subscriber]
version = "0.3"
features = ["env-filter"]
[dependencies.tree-sitter]
version = "0.27"
[dependencies.tree-sitter-graph]
version = "0.12.1"
optional = true
package = "basemind-tree-sitter-graph"
[dependencies.tree-sitter-language-pack]
version = "1.21.3"
[dependencies.tree-sitter-stack-graphs]
version = "0.10.1"
optional = true
package = "basemind-tree-sitter-stack-graphs"
[dependencies.url]
version = "2"
features = ["serde"]
optional = true
[dependencies.xberg]
version = "1.3.8"
features = [
"tokio-runtime",
"simd-utf8",
]
optional = true
default-features = false
[dependencies.zstd]
version = "0.14.2"
[dev-dependencies.criterion]
version = "0.8"
features = ["html_reports"]
[dev-dependencies.insta]
version = "1"
[dev-dependencies.proptest]
version = "1"
[dev-dependencies.rmcp]
version = "3.5"
features = [
"client",
"transport-async-rw",
"transport-child-process",
]
[dev-dependencies.tempfile]
version = "3"
[dev-dependencies.tokio]
version = "1"
features = [
"macros",
"rt-multi-thread",
"time",
"test-util",
]
[dev-dependencies.wiremock]
version = "0.6"
[target.'cfg(target_os = "macos")'.dependencies.mach2]
version = "0.7"
[profile.dev.package.blake3]
opt-level = 3
[profile.release]
lto = "thin"
codegen-units = 1
[profile.release.package.aws-lc-sys]
opt-level = 3
[profile.release.package.blake3]
opt-level = 3
[profile.release.package.fjall]
opt-level = 3
[profile.release.package.lsm-tree]
opt-level = 3
[profile.release.package.memchr]
opt-level = 3
[profile.release.package.rayon]
opt-level = 3
[profile.release.package.regex]
opt-level = 3
[profile.release.package.sevenz-rust2]
opt-level = 1
[profile.release.package.tree-sitter]
opt-level = 3
[profile.release.package.tree-sitter-language-pack]
opt-level = 3
[profile.release.package.xberg-tesseract]
opt-level = 3
[profile.release.package.zip]
opt-level = 2
[profile.release.package."*"]
opt-level = "s"