terraphim_middleware 1.4.10

Terraphim middleware for searching haystacks
Documentation
[package]
name = "terraphim_middleware"
version = "1.4.10"
edition = "2021"
authors = ["Terraphim Contributors"]
description = "Terraphim middleware for searching haystacks"
documentation = "https://terraphim.ai"
homepage = "https://terraphim.ai"
repository = "https://github.com/terraphim/terraphim-ai"
keywords = ["personal-assistant", "ai", "privacy", "middleware"]
license = "Apache-2.0"
readme = "../../README.md"


[dependencies]
terraphim_config = { path = "../terraphim_config", version = "1.0.0" }
terraphim_rolegraph = { path = "../terraphim_rolegraph", version = "1.0.0" }
terraphim_automata = { path = "../terraphim_automata", version = "1.0.0", features = ["tokio-runtime"] }
terraphim_types = { path = "../terraphim_types", version = "1.0.0" }
terraphim_persistence = { path = "../terraphim_persistence", version = "1.0.0" }
# NOTE: Atomic Data Server and grep.app haystacks commented out for crates.io publishing (not published yet)
# terraphim_atomic_client = { path = "../terraphim_atomic_client", version = "1.0.0", features = ["native"], optional = true }
# grepapp_haystack = { path = "../haystack_grepapp", version = "1.0.0", optional = true }
claude-log-analyzer = { path = "../claude-log-analyzer", version = "1.0.0", features = ["connectors"], optional = true }
jiff = { version = "0.1", optional = true }
home = { version = "0.5", optional = true }

ahash = { version = "0.8.8", features = ["serde"] }
cached = { version = "0.56.0", features = ["async", "serde", "ahash"] }
log = "0.4"
serde = { version = "1.0.149", features = ["derive"] }
serde_json = "1.0.110"
thiserror = "1.0.56"
tokio = { version = "1.15.0", features = ["full"] }
wasm-bindgen-futures = "0.4"
html2md = "0.2.15"
async-trait = "0.1.73"
url = "2.4"
urlencoding = "2.1"
reqwest = { version = "0.12", features = ["json", "rustls-tls"], default-features = false }
scraper = "0.25.0"
reqwest-eventsource = { version = "0.5", optional = true }
mcp-client = { version = "0.1", optional = true }
mcp-spec = { version = "0.1", optional = true }
rmcp = { version = "0.9", features = ["client", "transport-child-process"], optional = true }

[dev-dependencies]
terraphim_persistence = { path = "../terraphim_persistence", features = ["memory"] }
terraphim_settings = { path = "../terraphim_settings" }
tokio = { version = "1", features = ["macros", "rt-multi-thread"] }
futures = "0.3"
test-log = { version = "0.2.19", features = ["trace"] }
serial_test = "3.0"
uuid = { version = "1.19.0", features = ["v4"] }
dotenvy = "0.15.7"
walkdir = "2.4.0"
env_logger = "0.11"
tempfile = "3.23"

[features]
default = []
# NOTE: atomic and grepapp features disabled for crates.io publishing (dependencies not published yet)
# atomic = ["dep:terraphim_atomic_client"]
# grepapp = ["dep:grepapp_haystack"]
# Enable AI coding assistant session haystack (Claude Code, OpenCode, Cursor, Aider, Codex)
ai-assistant = ["claude-log-analyzer", "jiff", "home"]
# Enable openrouter integration
openrouter = ["terraphim_config/openrouter"]
# Enable SSE-based MCP client probing
mcp-sse = ["reqwest-eventsource"]
# High-level MCP support using SSE/http-only (no rust-sdk)
mcp = ["mcp-sse"]
# Optional: use rust-sdk for full protocol clients
mcp-rust-sdk = ["mcp-sse", "mcp-client", "mcp-spec", "rmcp"]