# 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 = "2024"
rust-version = "1.91"
name = "brainwires"
version = "0.11.0"
authors = ["Brainwires"]
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "The Brainwires Agent Framework — build any AI application in Rust"
homepage = "https://github.com/Brainwires/brainwires-framework"
documentation = "https://docs.rs/brainwires"
readme = "README.md"
keywords = [
    "ai-agents",
    "llm",
    "mcp",
    "multi-agent",
    "framework",
]
categories = ["development-tools"]
license = "MIT OR Apache-2.0"
repository = "https://github.com/Brainwires/brainwires-framework"
resolver = "2"

[package.metadata.docs.rs]
all-features = true
rustdoc-args = [
    "--cfg",
    "docsrs",
]

[features]
a2a = [
    "dep:brainwires-a2a",
    "brainwires-a2a/native",
]
agent-full = [
    "agents",
    "permissions",
    "prompting",
    "tools",
]
agent-network = ["dep:brainwires-network"]
agents = ["dep:brainwires-agent"]
audio = [
    "dep:brainwires-hardware",
    "brainwires-hardware/audio",
]
bedrock = [
    "providers",
    "brainwires-provider/bedrock",
]
bluetooth = [
    "dep:brainwires-hardware",
    "brainwires-hardware/bluetooth",
]
camera = [
    "dep:brainwires-hardware",
    "brainwires-hardware/camera",
]
chat = [
    "providers",
    "inference",
]
conversation = [
    "dep:brainwires-stores",
    "brainwires-stores/conversation",
    "storage",
]
datasets = [
    "training",
    "brainwires-finetune/datasets-full",
]
default = [
    "tools",
    "agents",
    "inference",
]
dream = [
    "tiered",
    "brainwires-memory/dream",
]
eval = ["dep:brainwires-eval"]
full = [
    "tools",
    "agents",
    "inference",
    "storage",
    "memory",
    "mcp",
    "mdap",
    "knowledge",
    "prompting",
    "permissions",
    "orchestrator",
    "rag-full-languages",
    "interpreters",
    "providers",
    "chat",
    "reasoning",
    "seal",
    "agent-network",
    "brainwires-seal/knowledge",
    "brainwires-seal/mdap",
    "brainwires-seal/feedback",
    "llama-cpp-2",
    "mcp-server",
    "skills",
    "eval",
    "a2a",
    "mesh",
    "audio",
    "gpio",
    "bluetooth",
    "lan-tools",
    "camera",
    "usb",
    "vad",
    "wake-word",
    "voice-assistant",
    "mcp-server-framework",
    "training-cloud",
    "datasets",
    "system",
    "dream",
    "telemetry",
]
gpio = [
    "dep:brainwires-hardware",
    "brainwires-hardware/gpio",
]
image = [
    "dep:brainwires-stores",
    "brainwires-stores/image",
    "storage",
]
inference = [
    "dep:brainwires-inference",
    "agents",
]
interpreters = [
    "tools",
    "brainwires-tool-builtins/interpreters",
]
knowledge = [
    "dep:brainwires-knowledge",
    "brainwires-knowledge/knowledge",
]
lan-tools = [
    "dep:brainwires-network",
    "brainwires-network/lan",
]
learning = [
    "seal",
    "knowledge",
    "permissions",
    "brainwires-seal/knowledge",
    "brainwires-seal/feedback",
]
llama-cpp-2 = [
    "providers",
    "brainwires-provider/llama-cpp-2",
]
lock = [
    "dep:brainwires-stores",
    "brainwires-stores/lock",
]
mcp = ["dep:brainwires-mcp-client"]
mcp-server = [
    "dep:rmcp",
    "dep:schemars",
    "dep:tokio-util",
]
mcp-server-framework = ["dep:brainwires-mcp-server"]
mdap = ["dep:brainwires-mdap"]
memory = [
    "dep:brainwires-stores",
    "brainwires-stores/memory",
    "storage",
]
mesh = [
    "agent-network",
    "brainwires-network/mesh",
]
openapi = [
    "tools",
    "brainwires-tool-runtime/openapi",
]
orchestrator = [
    "tools",
    "brainwires-tool-runtime/orchestrator",
    "brainwires-tool-builtins/orchestrator",
]
otel = [
    "agents",
    "brainwires-agent/otel",
]
permissions = ["dep:brainwires-permission"]
plan = [
    "dep:brainwires-stores",
    "brainwires-stores/plan",
    "storage",
]
prompting = [
    "dep:brainwires-prompting",
    "brainwires-prompting/knowledge",
    "knowledge",
]
providers = ["dep:brainwires-provider"]
rag = [
    "dep:brainwires-rag",
    "dep:brainwires-storage",
    "brainwires-storage/lance-backend",
    "tools",
    "brainwires-tool-builtins/rag",
    "brainwires-tool-runtime/rag",
]
rag-full-languages = ["rag"]
reasoning = ["dep:brainwires-reasoning"]
researcher = [
    "providers",
    "agents",
    "storage",
    "memory",
    "rag",
    "training",
    "datasets",
]
seal = ["dep:brainwires-seal"]
session = [
    "dep:brainwires-stores",
    "brainwires-stores/session",
]
session-sqlite = [
    "session",
    "brainwires-stores/sqlite",
]
skills = [
    "dep:brainwires-skills",
    "brainwires-skills/registry",
]
storage = [
    "dep:brainwires-storage",
    "brainwires-storage/native",
]
system = [
    "tools",
    "brainwires-tool-builtins/system",
]
task = [
    "dep:brainwires-stores",
    "brainwires-stores/task",
    "storage",
]
telemetry = [
    "dep:brainwires-telemetry",
    "brainwires-telemetry/native",
    "brainwires-provider?/telemetry",
]
tiered = [
    "memory",
    "dep:brainwires-memory",
]
tools = [
    "dep:brainwires-tool-runtime",
    "dep:brainwires-tool-builtins",
    "brainwires-tool-runtime/native",
    "brainwires-tool-builtins/native",
]
training = ["dep:brainwires-finetune"]
training-cloud = [
    "training",
    "brainwires-finetune/cloud",
]
usb = [
    "dep:brainwires-hardware",
    "brainwires-hardware/usb",
]
vad = [
    "dep:brainwires-hardware",
    "brainwires-hardware/vad",
]
vertex-ai = [
    "providers",
    "brainwires-provider/vertex-ai",
]
voice-assistant = [
    "dep:brainwires-hardware",
    "brainwires-hardware/voice-assistant",
]
wake-word = [
    "dep:brainwires-hardware",
    "brainwires-hardware/wake-word",
]
wasm = ["brainwires-core/wasm"]
web-speech = [
    "dep:brainwires-provider-speech",
    "brainwires-provider-speech/web-speech",
]

[lib]
name = "brainwires"
path = "src/lib.rs"

[[example]]
name = "agent_quickstart"
path = "examples/agent_quickstart.rs"
required-features = ["agents"]

[[example]]
name = "custom_embedding"
path = "examples/custom_embedding.rs"

[[example]]
name = "custom_provider"
path = "examples/custom_provider.rs"
required-features = ["providers"]

[[example]]
name = "multi_provider_chat"
path = "examples/multi_provider_chat.rs"
required-features = [
    "providers",
    "chat",
]

[[example]]
name = "rag_custom_pipeline"
path = "examples/rag_custom_pipeline.rs"
required-features = ["rag"]

[[example]]
name = "storage_with_rag"
path = "examples/storage_with_rag.rs"
required-features = [
    "memory",
    "rag",
]

[[test]]
name = "reexports"
path = "tests/reexports.rs"

[dependencies.brainwires-a2a]
version = "0.11.0"
optional = true
default-features = false

[dependencies.brainwires-agent]
version = "0.11.0"
optional = true
default-features = false

[dependencies.brainwires-core]
version = "0.11.0"
default-features = false

[dependencies.brainwires-eval]
version = "0.11.0"
optional = true

[dependencies.brainwires-finetune]
version = "0.11.0"
optional = true

[dependencies.brainwires-hardware]
version = "0.11.0"
optional = true

[dependencies.brainwires-inference]
version = "0.11.0"
optional = true
default-features = false

[dependencies.brainwires-knowledge]
version = "0.11.0"
optional = true
default-features = false

[dependencies.brainwires-mcp-client]
version = "0.11.0"
optional = true

[dependencies.brainwires-mcp-server]
version = "0.11.0"
optional = true

[dependencies.brainwires-mdap]
version = "0.11.0"
optional = true

[dependencies.brainwires-memory]
version = "0.11.0"
optional = true

[dependencies.brainwires-network]
version = "0.11.0"
optional = true

[dependencies.brainwires-permission]
version = "0.11.0"
optional = true

[dependencies.brainwires-prompting]
version = "0.11.0"
optional = true
default-features = false

[dependencies.brainwires-provider]
version = "0.11.0"
features = ["native"]
optional = true
default-features = false

[dependencies.brainwires-provider-speech]
version = "0.11.0"
optional = true
default-features = false

[dependencies.brainwires-rag]
version = "0.11.0"
optional = true
default-features = false

[dependencies.brainwires-reasoning]
version = "0.11.0"
optional = true

[dependencies.brainwires-seal]
version = "0.11.0"
optional = true
default-features = false

[dependencies.brainwires-skills]
version = "0.11.0"
optional = true

[dependencies.brainwires-storage]
version = "0.11.0"
optional = true
default-features = false

[dependencies.brainwires-stores]
version = "0.11.0"
optional = true
default-features = false

[dependencies.brainwires-telemetry]
version = "0.11.0"
optional = true
default-features = false

[dependencies.brainwires-tool-builtins]
version = "0.11.0"
optional = true
default-features = false

[dependencies.brainwires-tool-runtime]
version = "0.11.0"
optional = true
default-features = false

[dependencies.rmcp]
version = "1.1"
features = [
    "client",
    "server",
    "client-side-sse",
    "transport-child-process",
    "transport-io",
    "macros",
]
optional = true

[dependencies.schemars]
version = "1.0"
optional = true

[dependencies.tokio-util]
version = "0.7"
optional = true

[dev-dependencies.anyhow]
version = "1"

[dev-dependencies.async-stream]
version = "0.3"

[dev-dependencies.async-trait]
version = "0.1"

[dev-dependencies.futures]
version = "0.3"

[dev-dependencies.tokio]
version = "1.43"

[dev-dependencies.tracing]
version = "0.1"

[dev-dependencies.tracing-subscriber]
version = "0.3"
features = ["env-filter"]
