[workspace]
members = [".", "crates/aethershell-lsp"]
exclude = ["web", "integrations/python"]
[package]
name = "aethershell"
version = "0.2.0"
edition = "2021"
authors = ["Nervosys <contact@nervosys.ai>"]
description = "The world's first multi-agent shell with typed functional pipelines and multi-modal AI"
license = "Apache-2.0"
repository = "https://github.com/nervosys/AetherShell"
homepage = "https://github.com/nervosys/AetherShell"
documentation = "https://github.com/nervosys/AetherShell/blob/master/README.md"
keywords = ["shell", "ai", "multi-agent", "functional", "multimodal"]
categories = ["command-line-utilities", "development-tools"]
readme = "README.md"
rust-version = "1.75"
[features]
default = ["native"]
native = [
"dep:walkdir",
"dep:which",
"dep:crossterm",
"dep:ratatui",
"dep:tui-input",
"dep:image",
"dep:viuer",
"dep:rodio",
"dep:keyring",
"dep:tokio",
"dep:axum",
"dep:tower",
"dep:tower-http",
"dep:utoipa",
"dep:utoipa-swagger-ui",
"dep:reqwest",
"dep:jsonschema",
]
web = [
"dep:wasm-bindgen",
"dep:console_error_panic_hook",
"dep:js-sys",
"dep:web-sys",
]
[lib]
name = "aethershell"
path = "src/lib.rs"
[[bin]]
name = "ae"
path = "src/main.rs"
[[bin]]
name = "aimodel"
path = "src/bin/aimodel.rs"
[dependencies]
anyhow = "1"
serde = { version = "1", features = ["derive"] }
serde_json = "1"
csv = "1.3"
chrono = { version = "0.4", features = ["clock", "serde"] }
thiserror = "1.0"
uuid = { version = "1.0", features = ["v4", "serde", "js"] }
base64 = "0.21"
mime = "0.3"
lazy_static = "1.4"
secrecy = { version = "0.8", features = ["serde"] }
zeroize = "1.7"
toml = "0.8"
clap = { version = "4.0", features = ["derive"] }
futures = "0.3"
futures-util = "0.3"
async-stream = "0.3"
rand = "0.8"
sha2 = "0.10"
url = "2.5"
urlencoding = "2.1"
async-trait = "0.1"
dirs = "5.0"
semver = "1.0"
walkdir = { version = "2", optional = true }
which = { version = "6", optional = true }
crossterm = { version = "0.27", optional = true }
ratatui = { version = "0.26", optional = true }
tui-input = { version = "0.8", optional = true }
image = { version = "0.24", features = [
"jpeg",
"png",
"gif",
"webp",
], optional = true }
viuer = { version = "0.7", optional = true }
rodio = { version = "0.17", features = ["mp3", "wav", "flac"], optional = true }
keyring = { version = "2.3", optional = true }
tokio = { version = "1.0", features = ["full"], optional = true }
axum = { version = "0.7", optional = true }
tower = { version = "0.4", optional = true }
tower-http = { version = "0.5", features = [
"cors",
"trace",
"timeout",
], optional = true }
tracing = "0.1"
tracing-subscriber = { version = "0.3", features = ["env-filter"] }
utoipa = { version = "4.0", features = ["axum_extras"], optional = true }
utoipa-swagger-ui = { version = "6.0", features = ["axum"], optional = true }
tokio-stream = "0.1"
jsonschema = { version = "0.17", optional = true }
reqwest = { version = "0.12", features = [
"blocking",
"json",
"rustls-tls",
"stream",
], optional = true }
wasm-bindgen = { version = "0.2", optional = true }
console_error_panic_hook = { version = "0.1", optional = true }
js-sys = { version = "0.3", optional = true }
web-sys = { version = "0.3", features = [
"console",
"Window",
"Document",
"HtmlElement",
"HtmlInputElement",
"HtmlTextAreaElement",
"KeyboardEvent",
], optional = true }
[dev-dependencies]
criterion = { version = "0.5", features = ["html_reports"] }
[[bench]]
name = "mcp_performance"
harness = false
[[bench]]
name = "builtin_performance"
harness = false
[[bench]]
name = "parser_performance"
harness = false
[[bench]]
name = "eval_performance"
harness = false
[[bench]]
name = "pipeline_performance"
harness = false