[workspace]
members = ["ui"]

# Profiles must live at the workspace root; a `[profile.*]` in a member crate
# (ui/Cargo.toml) is silently ignored by Cargo. Scope the size optimization to
# the `ui` (wasm) crate so the server binary keeps its default release profile.
[profile.release.package.ui]
opt-level = "z"

[package]
name = "moadim"
version = "0.9.0"
edition = "2021"
description = "Moadim.io MCP/REST server for managing cron jobs"
license = "MIT"
repository = "https://github.com/moadim-io/daemon"
homepage = "https://github.com/moadim-io/daemon"

[dependencies]
anyhow = "1"
axum = "0.8"
chrono = "0.4"
croner = "3"
dirs = "5"
iana-time-zone = "0.1"
log = "0.4"
serde = { version = "1", features = ["derive"] }
serde_json = "1"
toml = "0.8"
rmcp = { version = "1.7.0", features = ["server", "macros", "transport-io", "transport-streamable-http-server"] }
schemars = "1"
tokio = { version = "1", features = ["full"] }
utoipa = { version = "5", features = ["axum_extras"] }
utoipa-swagger-ui = { version = "9", features = ["axum"] }
uuid = { version = "1", features = ["v4"] }

[[bin]]
name = "moadim"
path = "src/main.rs"

[dev-dependencies]
tower = { version = "0.5", features = ["util"] }

[build-dependencies]
serde_json = "1"

[lints.rust]
missing_docs = "deny"

[lints.clippy]
all = "deny"
missing_docs_in_private_items = "deny"
# Reject single-character identifiers (threshold 1, the lint default).
min_ident_chars = "deny"
