aethershell 1.6.0

The world's first multi-agent shell with typed functional pipelines and multi-modal AI
[workspace]

members = [".", "crates/aethershell-lsp", "crates/agentic-eval"]

exclude = ["web", "integrations/python"]



[package]

name = "aethershell"

version = "1.6.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 = "AGPL-3.0-or-later"

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"

exclude = [

    "assets/",

    "demos/",

    "docs/",

    "editors/",

    "Formula/",

    "infra/",

    "integrations/",

    "samples/",

    "scripts/",

    "temp/",

    "test-scripts/",

    "website/",

    "web/",

    "/FEATURE_DEMO.ae",

    "/demo_all_features.ae",

    "/demo_new_features.ae",

    "/temp_test.ae",

    "/test_assignment.ae",

    "/temp_section.md",

    "Dockerfile",

    "deny.toml",

    "DIRECTORY_OVERVIEW.md",

    "PROJECT_STRUCTURE.md",

    "ROADMAP.md",

    "TESTING.md",

    "CHANGELOG.md",

    "CLA.md",

    "CONTRIBUTING.md",

    ".github/",

    # Internal AI-assistant / editor config and separate artifacts — not part of

    # the published library; kept out of the crate package.

    ".clinerules",

    ".cursor/",

    ".windsurfrules",

    "extensions/",

]



[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:jsonschema",

]

candle = [

    "dep:candle-core",

    "dep:candle-nn",

    "dep:candle-transformers",

    "dep:hf-hub",

    "dep:tokenizers",

]

onnx = ["dep:ort"]

# Real GPT-4 BPE tokenizer (embeds cl100k vocab) for exact token counts across

# the token-economy builtins (tokens/budget/digest/accounting) and the benchmark.

real-tokens = ["dep:tiktoken-rs"]

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"

flate2 = "1.0"

tar = "0.4"

getrandom = { version = "0.2", features = ["js"] }

async-trait = "0.1"

dirs = "5.0"

hex = "0.4"

semver = "1.0"

libloading = "0.8"

notify = "6.1"

md5 = "0.7"

sysinfo = "0.33"

regex = "1.10"



# Native-only dependencies (terminal, TUI, system interaction)

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", features = ["ws"], 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 }



# Local inference backends (optional)

candle-core = { version = "0.8", optional = true }

candle-nn = { version = "0.8", optional = true }

candle-transformers = { version = "0.8", optional = true }

hf-hub = { version = "0.3", optional = true }

tokenizers = { version = "0.21", optional = true }

tiktoken-rs = { version = "0.6", optional = true }

ort = { version = "2.0.0-rc.9", optional = true }



# Unix-only dependencies (Linux, macOS, BSD)

[target.'cfg(unix)'.dependencies]

libc = "0.2"



# HTTP client - non-optional for non-wasm targets

[target.'cfg(not(target_arch = "wasm32"))'.dependencies]

reqwest = { version = "0.12", features = [

    "blocking",

    "json",

    "rustls-tls",

    "stream",

] }



# WASM-only dependencies

[target.'cfg(target_arch = "wasm32")'.dependencies]

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"] }

# Four-axis agentic evaluation (token efficiency, determinism, reliability, safety)

# applied to AetherShell's real engine in examples/agentic_eval.rs + the matching test.

agentic-eval = { path = "crates/agentic-eval", version = "0.14" }



[[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



# ============================================================================

# Linux Package Metadata

# ============================================================================



[package.metadata.deb]

maintainer = "Nervosys <contact@nervosys.ai>"

copyright = "2024-2026 Nervosys"

license-file = ["LICENSE", "0"]

section = "utils"

priority = "optional"

extended-description = """\

AetherShell is a next-generation shell combining typed functional pipelines \

with multi-modal AI agents. Features include Hindley-Milner type inference, \

structured data pipelines, multi-provider LLM support, agent swarms, \

TUI interface, MCP server, and bash compatibility."""

depends = "$auto"

assets = [

    [

        "target/release/ae",

        "usr/bin/ae",

        "755",

    ],

    [
        "target/release/aimodel",

        "usr/bin/aimodel",

        "755",

    ],

    [
        "README.md",

        "usr/share/doc/aethershell/README.md",

        "644",

    ],

    [
        "LICENSE",

        "usr/share/doc/aethershell/LICENSE",

        "644",

    ],

]



[package.metadata.generate-rpm]

assets = [

    { source = "target/release/ae", dest = "/usr/bin/ae", mode = "755" },

    { source = "target/release/aimodel", dest = "/usr/bin/aimodel", mode = "755" },

    { source = "README.md", dest = "/usr/share/doc/aethershell/README.md", mode = "644" },

    { source = "LICENSE", dest = "/usr/share/doc/aethershell/LICENSE", mode = "644" },

]