[package]
name = "selfware"
version = "0.2.2"
edition = "2021"
license = "MIT"
description = "Your personal AI workshop — software you own, software that lasts"
authors = ["Trebuchet Network"]
homepage = "https://selfware.design"
repository = "https://github.com/architehc/selfware"
keywords = ["ai", "agent", "local-first", "cli", "automation"]
categories = ["command-line-utilities", "development-tools"]
readme = "README.md"
rust-version = "1.91"
documentation = "https://docs.rs/selfware"
exclude = [
"system_tests/",
"experiments/",
"k8s/",
"docs/",
"screenshots/",
"sab_results/",
"kimi_docs/",
"demos/",
"selfware.toml",
"selfware-eval.toml",
"selfware-extended-test.toml",
"selfware-longrun.toml",
"*.zip",
"*.profraw",
"*.html",
"*.info",
"*.bak",
".evolution-log.jsonl",
"COMPREHENSIVE_PRODUCTION_READINESS_REVIEW.md",
"PRODUCTION_READINESS_REVIEW.md",
"SECOND_OPINION_REVIEW.md",
"EVAL_REPORT.md",
"COMPREHENSIVE_PROJECT_REVIEW.md",
"PROJECT_REVIEW_2026_03_06.md",
"GEMINI_RECOMMENDATIONS.md",
"QUICK_FIXES.md",
"ARCHITECTURE_SUMMARY.md",
"Dockerfile",
".dockerignore",
".tarpaulin.toml",
"deny.toml",
".pre-commit-config.yaml",
".github/",
]
[dependencies]
tokio = { version = "1.43", features = ["rt-multi-thread", "macros", "sync", "time", "fs", "io-util", "process", "signal"] }
anyhow = "1.0"
thiserror = "2.0"
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
reqwest = { version = "0.13", features = ["json", "stream", "blocking"] }
clap = { version = "4.4", features = ["derive"] }
tracing = "0.1"
tracing-subscriber = { version = "0.3", features = ["env-filter", "json"] }
git2 = "0.20"
walkdir = "2.4"
regex = "1.11"
colored = "3.1"
chrono = { version = "0.4", features = ["serde"] }
futures = "0.3"
async-trait = "0.1"
tempfile = "3.9"
base64 = "0.22"
glob = "0.3"
sha2 = "0.10"
shlex = "1"
pbkdf2 = "0.12"
hmac = "0.12"
hex = "0.4"
toml = "1.0"
uuid = { version = "1.6", features = ["v4"] }
once_cell = "1.19"
tiktoken-rs = "0.9"
whoami = "2.1"
reedline = "0.46"
crossterm = "0.29"
ratatui = "0.30"
fuzzy-matcher = "0.3"
syntect = "5.2"
nu-ansi-term = "0.50"
dirs = "6.0"
nucleo = "0.5"
pulldown-cmark = "0.13"
similar = "2.4"
unicode-width = "0.2"
rand = "0.9"
url = "2"
ctrlc = "3"
hnsw_rs = "0.3"
bincode = { version = "2.0", features = ["serde"] }
aes-gcm = "0.10"
keyring = "3.2"
serde_yaml = "0.9"
zeroize = "1.8.2"
parking_lot = "0.12.5"
lru = "0.16.3"
libloading = "0.9.0"
sysinfo = "0.38.3"
xcap = "0.3"
nvml-wrapper = "0.12.0"
zstd = "0.13.3"
openssl = { version = "0.10", features = ["vendored"], optional = true }
tokenizers = { version = "0.22.2", features = ["hf-hub", "http"] }
tracing-appender = "0.2.4"
opentelemetry = "0.21.0"
opentelemetry_sdk = { version = "0.21.0", features = ["rt-tokio"] }
opentelemetry-otlp = "0.14.0"
tracing-opentelemetry = "0.22.0"
metrics = "0.21.0"
metrics-exporter-prometheus = "0.12.1"
[target.'cfg(unix)'.dependencies]
nix = { version = "0.31", features = ["signal"] }
[features]
default = ["tui", "workflows", "resilience", "execution-modes", "cache", "log-analysis", "tokens", "self-improvement"]
integration = []
tui = []
workflows = []
resilience = []
execution-modes = []
cache = []
log-analysis = []
tokens = []
self-improvement = []
hot-reload = []
vendored-openssl = ["dep:openssl"]
vlm-bench = []
system-tests = []
extras = ["tui", "workflows", "resilience", "execution-modes", "cache", "log-analysis", "tokens", "self-improvement", "hot-reload", "vlm-bench"]
[dev-dependencies]
tokio-test = "0.4"
criterion = { version = "0.8", features = ["html_reports"] }
proptest = "1.5"
assert_cmd = "2.1.2"
predicates = "3.1.4"
[lib]
name = "selfware"
path = "src/lib.rs"
[[bin]]
name = "selfware"
path = "src/main.rs"
[[test]]
name = "unit"
path = "tests/unit/mod.rs"
[[test]]
name = "integration"
path = "tests/integration/mod.rs"
required-features = ["integration"]
[[example]]
name = "basic_chat"
path = "examples/basic_chat.rs"
[[example]]
name = "run_task"
path = "examples/run_task.rs"
[[example]]
name = "multi_agent"
path = "examples/multi_agent.rs"
[[example]]
name = "custom_config"
path = "examples/custom_config.rs"
[[bin]]
name = "vlm_gen_fixtures"
path = "src/bin/vlm_gen_fixtures.rs"
required-features = ["vlm-bench"]
[[bin]]
name = "vlm_bench_run"
path = "src/bin/vlm_bench_run.rs"
required-features = ["vlm-bench"]
[[bench]]
name = "token_processing"
harness = false
[[bench]]
name = "vlm_benchmark"
harness = false
required-features = ["vlm-bench"]