spikard-cli 0.15.5

Command-line interface for building and validating Spikard applications
Documentation
[package]
name = "spikard-cli"
version.workspace = true
edition.workspace = true
authors.workspace = true
license.workspace = true
repository.workspace = true
homepage.workspace = true
description = "Command-line interface for building and validating Spikard applications"
keywords = ["cli", "http", "api", "codegen", "validation"]
categories = ["command-line-utilities", "development-tools"]
documentation = "https://docs.rs/spikard-cli"
readme = "README.md"

[package.metadata.cargo-machete]
ignored = [
    "clap_complete",
    "clap_mangen",
    "prost",
    "prost-reflect",
    "prost-types",
    "protox",
]

[lib]
name = "spikard_cli"
path = "src/lib.rs"

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

[features]
default = ["mcp"]
mcp = ["dep:rmcp"]
mcp-http = ["mcp", "rmcp/transport-streamable-http-server"]
all = ["mcp", "mcp-http"]

[dependencies]
anyhow = "1.0"
asyncapiv3 = "0.1.3" # AsyncAPI v3 spec parsing
axum.workspace = true
clap.workspace = true
clap_complete.workspace = true
clap_mangen.workspace = true
graphql-parser = "0.4" # GraphQL SDL parsing
heck = "0.5" # For case conversion (snake_case, PascalCase)
openapiv3 = "2.2"
prost = "0.14" # Protocol Buffers runtime
prost-reflect = "0.16" # Protocol Buffers reflection
prost-types = "0.14" # Protocol Buffers well-known types
protox = "0.9" # Protocol Buffers compilation

rmcp = { version = "1.7.0", features = ["client", "transport-io"], optional = true }
scythe-core = { version = "0.7", features = ["serde"] }
serde.workspace = true
serde-saphyr = "0.0.26"
serde_json.workspace = true
spikard.workspace = true
spikard-codegen = { workspace = true }
spikard-http = { workspace = true }
tempfile = "3.27" # For quality validation temporary files
thiserror.workspace = true
tokio.workspace = true
tracing.workspace = true

[dev-dependencies]
assert_cmd = "2.2"
predicates = "3.1"
tempfile = "3.27"

[lints]
workspace = true