[package]
name = "blazen"
version.workspace = true
edition.workspace = true
license.workspace = true
authors.workspace = true
rust-version.workspace = true
repository.workspace = true
description = "Blazen - A Rust-native AI workflow engine with event-driven orchestration"
readme = "../../README.md"

[features]
default = ["llm"]
llm = ["blazen-llm"]
persist = ["blazen-persist", "blazen-core/persist"]
pipeline = ["blazen-pipeline"]
prompts = ["blazen-prompts"]
telemetry = ["blazen-telemetry", "blazen-core/telemetry"]
all = ["llm", "persist", "pipeline", "prompts", "telemetry"]
# Local inference (grouped by modality)
local-embeddings = ["blazen-llm/embed", "blazen-llm/candle-embed"]
local-llm = ["blazen-llm/mistralrs", "blazen-llm/llamacpp", "blazen-llm/candle-llm"]
local-image = ["blazen-llm/diffusion"]
local-audio = ["blazen-llm/whispercpp", "blazen-llm/piper", "blazen-llm/candle-audio"]
local-all = ["local-embeddings", "local-llm", "local-image", "local-audio"]

[dependencies]
blazen-events.workspace = true
blazen-macros.workspace = true
blazen-core.workspace = true
blazen-llm = { workspace = true, optional = true }
blazen-persist = { workspace = true, optional = true }
blazen-pipeline = { workspace = true, optional = true }
blazen-prompts = { workspace = true, optional = true }
blazen-telemetry = { workspace = true, optional = true }
serde.workspace = true
serde_json.workspace = true

[dev-dependencies]
tokio = { workspace = true, features = ["full", "test-util"] }
tokio-stream.workspace = true
anyhow.workspace = true
dotenvy = "0.15"

[lints]
workspace = true
