[package]
name = "nanocodex-tools"
version.workspace = true
edition.workspace = true
rust-version.workspace = true
publish.workspace = true
authors.workspace = true
license.workspace = true
homepage.workspace = true
repository.workspace = true
readme.workspace = true
keywords.workspace = true
categories.workspace = true
description = "Code Mode and heterogeneous tool runtime for Nanocodex"

[features]
default = ["code-mode", "remote-tools"]
code-mode = ["dep:rquickjs"]
remote-tools = ["dep:reqwest"]

[package.metadata.docs.rs]
all-features = true
rustdoc-args = ["-D", "warnings"]

[dependencies]
nanocodex-core.workspace = true
serde.workspace = true
serde_json.workspace = true
tracing.workspace = true

[target.'cfg(not(target_family = "wasm"))'.dependencies]
async-trait.workspace = true
base64.workspace = true
futures-util.workspace = true
image.workspace = true
portable-pty.workspace = true
reqwest = { workspace = true, optional = true }
rquickjs = { workspace = true, optional = true }
schemars.workspace = true
sha1.workspace = true
thiserror.workspace = true
tokio = { workspace = true, features = ["fs", "io-util", "macros", "process", "rt", "sync", "time"] }

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

[target.'cfg(all(target_family = "wasm", target_os = "unknown"))'.dependencies]
js-sys.workspace = true
wasm-bindgen.workspace = true
wasm-bindgen-futures.workspace = true

[dev-dependencies]
eyre.workspace = true
tracing-subscriber.workspace = true

[lints]
workspace = true
