[package]
edition = "2021"
rust-version = "1.89"
name = "klieo"
version = "3.2.1"
build = false
publish = true
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Open-source Rust agent framework — typed agents, durable inter-agent comms, local-first."
homepage = "https://github.com/mohrimic/klieo"
documentation = "https://docs.rs/klieo"
readme = "README.md"
keywords = [
"agent",
"llm",
"ai",
"framework",
"nats",
]
categories = [
"asynchronous",
"api-bindings",
]
license = "MIT"
repository = "https://github.com/mohrimic/klieo"
[package.metadata.docs.rs]
all-features = true
rustdoc-args = [
"--cfg",
"docsrs",
]
[features]
a2a = ["dep:klieo-a2a"]
all-foundation = [
"tools",
"macros",
"llm-ollama",
"memory-sqlite",
"bus-memory",
"bus-nats",
"mcp",
"auth-common",
"ops",
"ops-api",
]
all-llm = [
"llm-ollama",
"llm-openai",
"llm-anthropic",
"llm-gemini",
]
all-memory = [
"memory-sqlite",
"memory-neo4j",
"memory-qdrant",
"embed-common",
"memory-graph",
"memory-graph-neo4j",
"memory-graph-rag",
]
all-observability = [
"runlog",
"otel",
"provenance",
"observability-viz",
]
auth-common = ["dep:klieo-auth-common"]
bus-memory = ["dep:klieo-bus-memory"]
bus-nats = [
"dep:klieo-bus-nats",
"secrecy",
"bytes",
]
bytes = ["dep:bytes"]
data-dir = [
"local",
"dep:dirs",
]
default = ["local"]
embed-common = ["dep:klieo-embed-common"]
embed-fastembed = [
"embed-common",
"klieo-embed-common/fastembed",
]
eval = ["dep:klieo-eval"]
flows = ["dep:klieo-flows"]
full = [
"all-foundation",
"all-llm",
"all-memory",
"all-observability",
"graph-projector",
"graph-rag",
"flows",
"workflow",
"a2a",
"spec",
"eval",
"hitl",
"oauth",
"mcp-server",
]
graph-projector = [
"memory-graph",
"dep:klieo-graph-projector",
]
graph-rag = [
"memory-graph-rag",
"memory-graph-neo4j",
"graph-projector",
"embed-common",
"klieo-embed-common/fastembed",
"provenance",
"klieo-provenance/sqlite",
"dep:tokio",
]
hitl = ["dep:klieo-hitl"]
http = [
"mcp",
"klieo-tools-mcp/http",
]
llm-anthropic = [
"dep:klieo-llm-anthropic",
"secrecy",
]
llm-gemini = [
"dep:klieo-llm-gemini",
"secrecy",
]
llm-ollama = ["dep:klieo-llm-ollama"]
llm-openai = [
"dep:klieo-llm-openai",
"secrecy",
]
llm-rustls-tls = [
"klieo-llm-ollama?/reqwest-rustls-tls",
"klieo-llm-openai?/reqwest-rustls-tls",
"klieo-llm-anthropic?/reqwest-rustls-tls",
"klieo-llm-gemini?/reqwest-rustls-tls",
]
local = [
"tools",
"macros",
"llm-ollama",
"memory-sqlite",
"bus-memory",
]
macros = [
"dep:klieo-macros",
"dep:serde",
"schemars",
]
mcp = [
"dep:klieo-tools-mcp",
"tools",
]
mcp-server = ["dep:klieo-mcp-server"]
memory-fastembed = [
"memory-sqlite",
"klieo-memory-sqlite/fastembed",
]
memory-graph = ["dep:klieo-memory-graph"]
memory-graph-neo4j = [
"memory-graph",
"memory-neo4j",
"dep:klieo-memory-graph-neo4j",
]
memory-graph-rag = [
"memory-graph",
"memory-qdrant",
"dep:klieo-memory-graph-rag",
]
memory-neo4j = [
"dep:klieo-memory-neo4j",
"secrecy",
]
memory-qdrant = [
"dep:klieo-memory-qdrant",
"embed-common",
"secrecy",
]
memory-sqlite = ["dep:klieo-memory-sqlite"]
memory-sqlite-vec = [
"memory-sqlite",
"klieo-memory-sqlite/sqlite-vec",
]
oauth = ["dep:klieo-auth-oauth"]
observability-viz = [
"dep:klieo-ops-viz",
"runlog",
]
ops = ["dep:klieo-ops"]
ops-api = [
"ops",
"dep:klieo-ops-api",
]
otel = ["dep:klieo-otel"]
provenance = ["dep:klieo-provenance"]
provenance-sqlite = [
"provenance",
"klieo-provenance/sqlite",
]
runlog = ["dep:klieo-runlog"]
runlog-compaction-llm = [
"runlog",
"klieo-runlog/compaction-llm",
]
runlog-sqlite = [
"runlog",
"klieo-runlog/sqlite",
]
schemars = [
"dep:schemars",
"klieo-provenance?/schemars",
"klieo-runlog?/schemars",
]
secrecy = ["dep:secrecy"]
spec = ["dep:klieo-spec"]
test-utils = [
"klieo-core/test-utils",
"klieo-runlog?/test-utils",
"klieo-embed-common?/test-utils",
]
tools = ["dep:klieo-tools"]
workflow = ["dep:klieo-workflow"]
[lib]
name = "klieo"
path = "src/lib.rs"
[[test]]
name = "app_runlog_capture"
path = "tests/app_runlog_capture.rs"
[[test]]
name = "app_sqlite_runlog"
path = "tests/app_sqlite_runlog.rs"
[[test]]
name = "classifier_golden"
path = "tests/classifier_golden.rs"
[[test]]
name = "end_to_end"
path = "tests/end_to_end.rs"
[[test]]
name = "feature_gates"
path = "tests/feature_gates.rs"
[[test]]
name = "graph_rag_facade"
path = "tests/graph_rag_facade.rs"
[[test]]
name = "model_registry_gate"
path = "tests/model_registry_gate.rs"
[dependencies.async-trait]
version = "0.1"
[dependencies.bytes]
version = "1"
optional = true
[dependencies.dirs]
version = "5"
optional = true
[dependencies.klieo-a2a]
version = "3"
optional = true
[dependencies.klieo-auth-common]
version = "3"
optional = true
[dependencies.klieo-auth-oauth]
version = "3"
optional = true
[dependencies.klieo-bus-memory]
version = "3"
optional = true
[dependencies.klieo-bus-nats]
version = "3"
optional = true
[dependencies.klieo-core]
version = "3"
[dependencies.klieo-embed-common]
version = "3"
optional = true
[dependencies.klieo-eval]
version = "3"
optional = true
[dependencies.klieo-flows]
version = "3"
optional = true
[dependencies.klieo-graph-projector]
version = "3"
optional = true
[dependencies.klieo-hitl]
version = "3"
optional = true
[dependencies.klieo-llm-anthropic]
version = "3"
optional = true
[dependencies.klieo-llm-gemini]
version = "3"
optional = true
[dependencies.klieo-llm-ollama]
version = "3"
optional = true
[dependencies.klieo-llm-openai]
version = "3"
optional = true
[dependencies.klieo-macros]
version = "3"
optional = true
[dependencies.klieo-mcp-server]
version = "3"
optional = true
[dependencies.klieo-memory-graph]
version = "3"
optional = true
[dependencies.klieo-memory-graph-neo4j]
version = "3"
optional = true
[dependencies.klieo-memory-graph-rag]
version = "3"
optional = true
[dependencies.klieo-memory-neo4j]
version = "3"
optional = true
[dependencies.klieo-memory-qdrant]
version = "3"
optional = true
[dependencies.klieo-memory-sqlite]
version = "3"
optional = true
[dependencies.klieo-model-registry]
version = "3.2"
[dependencies.klieo-ops]
version = "3"
optional = true
[dependencies.klieo-ops-api]
version = "3"
optional = true
[dependencies.klieo-ops-viz]
version = "3"
optional = true
[dependencies.klieo-otel]
version = "3"
optional = true
[dependencies.klieo-provenance]
version = "3"
optional = true
[dependencies.klieo-runlog]
version = "3"
optional = true
[dependencies.klieo-spec]
version = "3"
optional = true
[dependencies.klieo-tools]
version = "3"
optional = true
[dependencies.klieo-tools-mcp]
version = "3"
optional = true
[dependencies.klieo-workflow]
version = "3"
optional = true
[dependencies.schemars]
version = "0.8"
optional = true
[dependencies.secrecy]
version = "0.10"
optional = true
[dependencies.serde]
version = "1"
features = ["derive"]
optional = true
[dependencies.serde_json]
version = "1"
[dependencies.tokio]
version = "1"
features = ["full"]
optional = true
[dependencies.tokio-util]
version = "0.7"
features = ["rt"]
[dependencies.tracing]
version = "0.1"
[dev-dependencies.async-trait]
version = "0.1"
[dev-dependencies.bytes]
version = "1"
[dev-dependencies.klieo-eval]
version = "3"
[dev-dependencies.serde_json]
version = "1"
[dev-dependencies.tempfile]
version = "3"
[dev-dependencies.tokio]
version = "1"
features = [
"full",
"macros",
"rt-multi-thread",
]
[dev-dependencies.tokio-util]
version = "0.7"
features = ["rt"]
[dev-dependencies.tracing-subscriber]
version = "0.3"
[dev-dependencies.wiremock]
version = "0.6"