[package]
name = "elicitation"
version = "0.4.1"
edition.workspace = true
license.workspace = true
repository.workspace = true
authors.workspace = true
homepage.workspace = true
documentation.workspace = true
readme.workspace = true

description = "Conversational elicitation of strongly-typed Rust values via MCP"
keywords = ["mcp", "llm", "elicitation", "types", "async"]
categories = ["development-tools", "asynchronous"]

[dependencies]
rmcp = { workspace = true }
derive_more = { workspace = true }
derive-getters = { workspace = true }
tracing = { workspace = true }
tokio = { workspace = true }
serde_json = { workspace = true }
paste = "1.0"

# DateTime libraries (optional)
chrono = { workspace = true, optional = true }
time = { workspace = true, optional = true }
jiff = { workspace = true, optional = true }

# Re-export derive macro
elicitation_derive = { path = "../elicitation_derive", version = "0.4.1" }

[dev-dependencies]
tokio-test = "0.4"
tracing-subscriber = { version = "0.3", features = ["env-filter"] }

[features]
default = []
# Feature for tests that call real API (rate-limited)
api = []
# Enable serde_json::Value elicitation
serde_json = []
# Enable chrono datetime elicitation
chrono = ["dep:chrono"]
# Enable time datetime elicitation
time = ["dep:time"]
# Enable jiff datetime elicitation
jiff = ["dep:jiff"]
