[package]
name = "agent-first-data"
version = "0.22.0"
edition = "2024"
description = "A naming convention that lets AI agents understand your data without being told what it means, plus a CLI and library for reading and safely editing structured JSON, TOML, YAML, dotenv, and INI documents."
license = "MIT"
repository = "https://github.com/agentfirstkit/agent-first-data"
readme = "README.md"
[lib]
path = "rust/src/lib.rs"
[[bin]]
name = "afdata"
path = "cli/src/main.rs"
required-features = ["cli"]
[[example]]
name = "agent_cli"
path = "rust/examples/agent_cli.rs"
required-features = ["cli-help", "cli-help-markdown"]
[[example]]
name = "afdata_bench"
path = "rust/examples/afdata_bench.rs"
[features]
default = [
"cli",
"tracing",
"cli-help-markdown",
"skill-admin",
"stream-redirect",
"yaml",
"toml",
"dotenv",
"ini",
]
cli = ["dep:clap"]
tracing = ["dep:tracing", "dep:tracing-subscriber"]
cli-help = ["dep:clap"]
cli-help-markdown = ["cli-help", "dep:clap-markdown"]
skill = ["dep:noyalib"]
skill-admin = ["skill"]
stream-redirect = ["dep:libc"]
yaml = ["dep:noyalib"]
toml = ["dep:toml", "dep:toml_edit"]
dotenv = []
ini = []
schema = []
[dependencies]
serde_json = { version = "1", features = ["arbitrary_precision"] }
serde = { version = "1", features = ["derive"] }
chrono = "0.4"
url = "2"
tracing = { version = "0.1", optional = true }
tracing-subscriber = { version = "0.3", features = ["env-filter", "registry"], optional = true }
clap = { version = "4", features = ["derive"], optional = true }
clap-markdown = { version = "0.1.5", optional = true }
libc = { version = "0.2", optional = true }
noyalib = { version = "0.0.15", features = ["lossless-u64"], optional = true }
toml = { version = "1", optional = true }
toml_edit = { version = "0.25", optional = true }
[dev-dependencies]
clap = { version = "4", features = ["derive"] }
clap-markdown = "0.1.5"
tempfile = "3"
[lints.clippy]
unwrap_used = "deny"
expect_used = "deny"
panic = "deny"
print_stdout = "deny"
print_stderr = "deny"