[package]
name = "elicit_sqlx"
version.workspace = true
edition.workspace = true
license.workspace = true
repository.workspace = true
authors.workspace = true
homepage.workspace = true
documentation.workspace = true
readme = "README.md"
description = "Elicitation-enabled sqlx type wrappers — newtypes with JsonSchema and MCP reflect methods"
keywords = ["mcp", "sqlx", "database", "elicitation", "jsonschema"]
categories = ["database", "development-tools"]

[features]
# Enable to run live-database integration tests (requires DATABASE_URL set).
api = []

[dependencies]
elicitation = { workspace = true, features = ["sqlx-types", "emit"] }
elicit_db.workspace = true
elicitation_derive.workspace = true
sqlx = { workspace = true }
# Direct dep for types not re-exported by the `sqlx` facade crate
# (AnyColumn, AnyValueKind). Fields accessed are pub but #[doc(hidden)],
# meaning they are semver-exempt — acceptable at our version pin.
sqlx-core.workspace = true
inventory.workspace = true
rmcp.workspace = true
schemars.workspace = true
serde.workspace = true
serde_json.workspace = true
proc-macro2 = { workspace = true }
quote = { workspace = true }
tracing.workspace = true
futures.workspace = true
uuid = { workspace = true }
tokio = { workspace = true }
derive_more = { workspace = true }
derive-getters = { workspace = true }

[dev-dependencies]
tokio = { workspace = true, features = ["macros", "rt"] }
serde_json = { workspace = true }
dotenvy.workspace = true

[lints.rust]
unexpected_cfgs = { level = "warn", check-cfg = ['cfg(kani)', 'cfg(creusot)', 'cfg(prusti)', 'cfg(verus)', 'cfg(feature, values("emit"))'] }
