mecha10-cli 4.2.6

Mecha10 CLI tool
Documentation
[package]
description = "Mecha10 CLI tool"
edition.workspace = true
license.workspace = true
name = "mecha10-cli"
repository.workspace = true
version = "4.2.6"

[package.metadata.cargo-machete]
ignored = ["workspace-hack"]

[lints]
workspace = true

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

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

# Schema export, moved out of the public `mecha10` CLI surface (it's internal
# tooling -- only scripts/ci/schema-docs-check.sh and by-hand `schemas/`
# regeneration ever run it, never a robot developer) -- see
# `examples/export_schemas.rs`. `test = true` (not the example-target default
# of `false`) so its unit tests still run under `cargo test -p mecha10-cli`,
# same as they did when this lived in `src/services/schema_export.rs`.
[[example]]
name = "export_schemas"
path = "examples/export_schemas.rs"
test = true

[dependencies]
anyhow.workspace = true
atty = "0.2"
chrono = { workspace = true, features = ["serde"] }
clap.workspace = true
# Pretty-printing + syntax coloring for raw JSON dumped straight to the terminal (e.g. `mecha10
# topology --format json`, config `--verbose` values, failed-upload response bodies) -- separate
# from `console`, which only does plain text styling.
colored_json = "5.0"
console = "0.16"
crossterm = { version = "0.29", features = ["event-stream"] }
ctrlc = "3.5"
dialoguer = "0.12"
dotenvy = "0.15"
flate2 = "1.1"
futures-util = "0.3"
indicatif = "0.18"
# Draft-07 JSON Schema validation for `mecha10 config validate`'s model-catalog/environment-config
# checks (`packages/cli/src/config_validation.rs`). Same version `mecha10-schema-registry` (also a
# dependency above) used for the same purpose.
jsonschema = { workspace = true }
mecha10-auth = { workspace = true }
# Environment/preset-config JSON Schema validation for `mecha10 config validate`/`mecha10 dev`
# (`packages/cli/src/config_validation.rs`'s `validate_one_environment_config` and
# `validate_preset_config_json`, reachable from real CLI handlers such as
# `handlers/config.rs`, `handlers/build.rs`, and `handlers/dev/ops/preflight.rs`) -- needs to be
# a real dependency, not dev-only.
mecha10-schema-registry = { workspace = true }
# Behavior-composition JSON Schema validation for `mecha10 config validate` (LAB-2054) --
# see `packages/cli/src/config_validation.rs`. No dependency cycle:
# `mecha10-behavior-runtime` already depends on `mecha10-cli-core`, not the reverse.
mecha10-behavior-runtime = { workspace = true }
# Already pulled in transitively via `mecha10-deploy`; depended on directly here too for its
# shared `try_resolution_tiers!` ordered-fallback-chain helper (`LAB-4558`), used by
# `services/process/resolve.rs::resolve_cli_binary`.
mecha10-binary-naming = { workspace = true }
mecha10-cli-core = { workspace = true }
mecha10-core = { workspace = true, features = ["messaging", "schema-validation"] }
mecha10-deploy = { workspace = true }
mecha10-dev = { workspace = true }
mecha10-diagnostics = { workspace = true }
mecha10-job-validation = { workspace = true }
mecha10-models = { workspace = true, features = ["model-download"] }
mecha10-robot-config = { workspace = true }
mecha10-runtime = { workspace = true }
mecha10-sim = { workspace = true }
mecha10-templates = { workspace = true }
ratatui = "0.30"
redis = { workspace = true }
reqwest.workspace = true
# `schemars`-derives `JobDefinition`'s JSON Schema for `mecha10 schema export` (LAB-4245-style
# promotion) -- see `packages/cli/src/services/train_jobs.rs` and `services/schema_export.rs`.
schemars.workspace = true
serde.workspace = true
serde_json.workspace = true
serde_yaml = "0.9"
sysinfo = "0.39"
tar = "0.4"
tempfile.workspace = true
tokio = { workspace = true, features = ["fs", "process", "sync", "time", "signal", "io-util", "macros", "rt-multi-thread"] }
tracing.workspace = true
tracing-appender.workspace = true
tracing-subscriber.workspace = true
# TOML parsing for `mecha10 config validate`'s `model_catalog.toml` check
# (`packages/cli/src/config_validation.rs`). Same version `mecha10-schema-registry` (also a
# dependency above) used for the same purpose.
toml = "1.1"
uuid = { workspace = true, features = ["serde", "v4"] }
walkdir = "2"
workspace-hack = { version = "0.1", path = "../../workspace-hack" }

[features]
default = []

[target.'cfg(unix)'.dependencies]
nix = { workspace = true }

[dev-dependencies]
serial_test = "4"
# `tests/cli_binary_integration_test.rs` (LAB-4127) -- see workspace Cargo.toml for why.
assert_cmd = { workspace = true }
predicates = { workspace = true }