# THIS FILE IS AUTOMATICALLY GENERATED BY CARGO
#
# When uploading crates to the registry Cargo will automatically
# "normalize" Cargo.toml files for maximal compatibility
# with all versions of Cargo and also rewrite `path` dependencies
# to registry (e.g., crates.io) dependencies.
#
# If you are reading this file be aware that the original Cargo.toml
# will likely look very different (and much more reasonable).
# See Cargo.toml.orig for the original contents.

[package]
edition = "2021"
rust-version = "1.89"
name = "klieo"
version = "2.2.0"
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",
]
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"]
eval = ["dep:klieo-eval"]
flows = ["dep:klieo-flows"]
full = [
    "all-foundation",
    "all-llm",
    "all-memory",
    "all-observability",
    "graph-projector",
    "flows",
    "a2a",
    "spec",
    "eval",
    "hitl",
    "oauth",
    "mcp-server",
]
graph-projector = [
    "memory-graph",
    "dep:klieo-graph-projector",
]
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"]
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",
    "secrecy",
]
memory-sqlite = ["dep:klieo-memory-sqlite"]
memory-sqlite-vec = [
    "memory-sqlite",
    "klieo-memory-sqlite/sqlite-vec",
]
oauth = ["dep:klieo-auth-oauth"]
ops = ["dep:klieo-ops"]
ops-api = [
    "ops",
    "dep:klieo-ops-api",
]
otel = ["dep:klieo-otel"]
provenance = ["dep:klieo-provenance"]
runlog = ["dep:klieo-runlog"]
runlog-compaction-llm = [
    "runlog",
    "klieo-runlog/compaction-llm",
]
runlog-sqlite = [
    "runlog",
    "klieo-runlog/sqlite",
]
schemars = [
    "klieo-provenance?/schemars",
    "klieo-runlog?/schemars",
]
secrecy = ["dep:secrecy"]
spec = ["dep:klieo-spec"]
test-utils = [
    "klieo-core/test-utils",
    "klieo-runlog?/test-utils",
]
tools = ["dep:klieo-tools"]

[lib]
name = "klieo"
path = "src/lib.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 = "model_registry_gate"
path = "tests/model_registry_gate.rs"

[dependencies.bytes]
version = "1"
optional = true

[dependencies.dirs]
version = "5"
optional = true

[dependencies.klieo-a2a]
version = "2"
optional = true

[dependencies.klieo-auth-common]
version = "2"
optional = true

[dependencies.klieo-auth-oauth]
version = "2"
optional = true

[dependencies.klieo-bus-memory]
version = "2"
optional = true

[dependencies.klieo-bus-nats]
version = "2"
optional = true

[dependencies.klieo-core]
version = "2"

[dependencies.klieo-embed-common]
version = "2"
optional = true

[dependencies.klieo-eval]
version = "2"
optional = true

[dependencies.klieo-flows]
version = "2"
optional = true

[dependencies.klieo-graph-projector]
version = "2"
optional = true

[dependencies.klieo-hitl]
version = "2"
optional = true

[dependencies.klieo-llm-anthropic]
version = "2"
optional = true

[dependencies.klieo-llm-gemini]
version = "2"
optional = true

[dependencies.klieo-llm-ollama]
version = "2"
optional = true

[dependencies.klieo-llm-openai]
version = "2"
optional = true

[dependencies.klieo-macros]
version = "2"
optional = true

[dependencies.klieo-mcp-server]
version = "2"
optional = true

[dependencies.klieo-memory-graph]
version = "2"
optional = true

[dependencies.klieo-memory-graph-neo4j]
version = "2"
optional = true

[dependencies.klieo-memory-graph-rag]
version = "2"
optional = true

[dependencies.klieo-memory-neo4j]
version = "2"
optional = true

[dependencies.klieo-memory-qdrant]
version = "2"
optional = true

[dependencies.klieo-memory-sqlite]
version = "2"
optional = true

[dependencies.klieo-model-registry]
version = "2.2"

[dependencies.klieo-ops]
version = "2"
optional = true

[dependencies.klieo-ops-api]
version = "2"
optional = true

[dependencies.klieo-otel]
version = "2"
optional = true

[dependencies.klieo-provenance]
version = "2"
optional = true

[dependencies.klieo-runlog]
version = "2"
optional = true

[dependencies.klieo-spec]
version = "2"
optional = true

[dependencies.klieo-tools]
version = "2"
optional = true

[dependencies.klieo-tools-mcp]
version = "2"
optional = true

[dependencies.secrecy]
version = "0.10"
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 = "2"

[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"
