Replace real name, email, and gendered pronouns in doc comments with
neutral phrasing ("the user", "Souveraine Contributors", "TestUser").
Remove absolute home directory path from tool defs doc comment.
Add souveraine.toml to .gitignore so it won't be re-tracked.
171 lines
4.6 KiB
TOML
171 lines
4.6 KiB
TOML
[package]
|
|
name = "souveraine"
|
|
version = "0.1.0"
|
|
edition = "2021"
|
|
rust-version = "1.94"
|
|
authors = ["Souveraine Contributors"]
|
|
description = "Souveraine - a sovereign consciousness substrate for personal agents"
|
|
license = "MIT"
|
|
|
|
[dependencies]
|
|
# Core runtime
|
|
tokio = { version = "1", features = ["full", "rt-multi-thread"] }
|
|
tokio-util = "0.7"
|
|
tokio-stream = { version = "0.1", features = ["fs"] }
|
|
futures = "0.3"
|
|
async-trait = "0.1"
|
|
|
|
# Web/WebSocket (for external clients)
|
|
axum = { version = "0.7", features = ["ws"] }
|
|
tower = "0.4"
|
|
tower-http = { version = "0.5", features = ["cors", "trace", "fs"] }
|
|
tokio-tungstenite = "0.24" # Outbound WS client — federation bridge connects to peer endpoints
|
|
|
|
# Serialization
|
|
serde = { version = "1", features = ["derive"] }
|
|
serde_yaml = "0.9"
|
|
serde_json = "1"
|
|
toml = "0.8"
|
|
|
|
# Git operations
|
|
git2 = "0.19"
|
|
|
|
# Database (server mode)
|
|
sqlx = { version = "0.7", features = ["runtime-tokio-rustls", "sqlite", "migrate", "chrono", "json"] }
|
|
|
|
# Concurrent collections (server sessions)
|
|
dashmap = "5"
|
|
|
|
# File system
|
|
notify = "6" # File watching
|
|
|
|
# Environment (.env file loading)
|
|
dotenvy = "0.15"
|
|
tempfile = "3"
|
|
walkdir = "2"
|
|
|
|
# HTTP client (for Bifrost/Ollama)
|
|
reqwest = { version = "0.12", features = ["json", "stream", "rustls-tls", "multipart"] }
|
|
|
|
# Voice channel — mic capture, mp3 playback, WAV encoding, STT/TTS HTTP clients
|
|
cpal = "0.15"
|
|
rodio = { version = "0.19", default-features = false, features = ["mp3"] }
|
|
hound = "3.5"
|
|
|
|
# Embeddings/ML
|
|
# tokenizers = "0.15" # For local tokenization
|
|
|
|
# Terminal/UI
|
|
crossterm = { version = "0.27", features = ["bracketed-paste"] } # Terminal control (bracketed paste for paste detection)
|
|
ratatui = { version = "0.30", features = ["crossterm"] } # TUI framework with crossterm backend
|
|
unicode-width = "0.1"
|
|
arboard = { version = "3", features = ["wayland-data-control"] } # Clipboard — click-to-copy a message bubble
|
|
colored = "2" # Color gradients and effects
|
|
image = { version = "0.25", default-features = false, features = ["png", "jpeg", "webp"] } # Per-agent portraits (assets/portrait.{png,jpg}) + multimodal images
|
|
ratatui-image = "11" # Real photo rendering in TUI (kitty/sixel/halfblock)
|
|
ratatui-ratty = { version = "0.2", optional = true } # Inline 3D graphics via Ratty Graphics Protocol
|
|
|
|
# Logging/tracing
|
|
tracing = "0.1"
|
|
tracing-subscriber = { version = "0.3", features = ["env-filter"] }
|
|
|
|
# Error handling
|
|
anyhow = "1"
|
|
thiserror = "1"
|
|
|
|
# Process management (subagents)
|
|
sysinfo = "0.30"
|
|
|
|
# Time
|
|
chrono = { version = "0.4", features = ["serde"] }
|
|
|
|
# UUIDs for conversation IDs
|
|
uuid = { version = "1", features = ["v4"] }
|
|
|
|
# Regex
|
|
regex = "1"
|
|
|
|
# Token counting (cl100k_base for context pressure estimation)
|
|
tiktoken = "3"
|
|
|
|
# System directories
|
|
dirs = "5"
|
|
|
|
# OS-native credential storage
|
|
keyring = "4"
|
|
keyring-core = "1"
|
|
|
|
# Cryptographic identity (seed-id, event signing, federation trust root)
|
|
ed25519-dalek = { version = "2", features = ["rand_core", "pem"] }
|
|
rand = "0.8"
|
|
|
|
# Cron expression parsing (schedule system)
|
|
cron = "0.13"
|
|
|
|
# Markdown parsing for the TUI chat renderer (lift from jcode pattern)
|
|
pulldown-cmark = "0.12"
|
|
|
|
# Tauri (desktop app wrapper)
|
|
tauri = { version = "2", features = ["tray-icon", "devtools"], optional = true }
|
|
tauri-plugin-shell = { version = "2", optional = true }
|
|
|
|
# CLI argument parsing
|
|
clap = { version = "4", features = ["derive", "env"] }
|
|
clap_complete = "4"
|
|
|
|
# Interactive REPL
|
|
rustyline = "13"
|
|
shellexpand = "3"
|
|
figlet-rs = { version = "1.0.0", optional = true }
|
|
cowsay = { version = "0.14.0", optional = true }
|
|
tui-big-text = "0.8.4"
|
|
tui-widgets = "0.7.2"
|
|
base64 = "0.22.1"
|
|
hex = "0.4"
|
|
once_cell = "1.21.4"
|
|
glob = "0.3"
|
|
|
|
# Matrix sensorium — optional surface. matrix-sdk is only compiled in when
|
|
# the `matrix` feature is enabled; a default build never links it.
|
|
# matrix-sdk 0.17 always uses rustls (no tls feature flag).
|
|
# NOTE: `e2e-encryption` disabled for Phase 3 — it pulls matrix-sdk-sqlite
|
|
# → rusqlite → libsqlite3-sys 0.35, conflicting with sqlx 0.7's
|
|
# libsqlite3-sys 0.26 (both `links = "sqlite3"`). Phase 3 uses the
|
|
# in-memory store; e2ee + sqlite store return in Phase 6.
|
|
matrix-sdk = { version = "0.17", optional = true, default-features = false }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
[dev-dependencies]
|
|
tokio-test = "0.4"
|
|
colored = "2"
|
|
|
|
[[example]]
|
|
name = "demo"
|
|
path = "examples/demo.rs"
|
|
|
|
[[bin]]
|
|
name = "souveraine"
|
|
path = "src/main.rs"
|
|
|
|
[profile.release]
|
|
opt-level = 3
|
|
lto = true
|
|
codegen-units = 1
|
|
strip = true
|
|
panic = "abort"
|
|
|
|
[features]
|
|
default = ["figlet-rs"]
|
|
figlet-rs = ["dep:figlet-rs"]
|
|
cowsay = ["dep:cowsay"]
|
|
tauri-desktop = ["dep:tauri", "dep:tauri-plugin-shell"]
|
|
rgp = ["dep:ratatui-ratty"]
|
|
# Matrix sensorium — opt-in surface. `cargo build --features matrix`.
|
|
matrix = ["dep:matrix-sdk"]
|