Files
darman 420f00494f M0: scaffold Cargo workspace, core types, event bus, permission engine, storage actor
Sets up the Cargo workspace (harness-core, harness-tools, harness-providers, harness-mcp, harness-lsp, harness-app, harness-tui) and the ten architecture docs under docs/. harness-core gets its foundational types (session/message/part/model ids), an in-process event bus, a table-driven permission evaluate function, and a SQLite-backed storage actor with schema and roundtrip coverage. Every crate compiles empty and a bin stub prints its version.
2026-07-10 16:19:27 +02:00

66 lines
1.7 KiB
TOML

[workspace]
resolver = "2"
members = [
"crates/harness-core",
"crates/harness-providers",
"crates/harness-tools",
"crates/harness-mcp",
"crates/harness-lsp",
"crates/harness-app",
"crates/harness-tui",
]
[workspace.package]
version = "0.1.0"
edition = "2021"
license = "MIT"
repository = "https://github.com/esimon/ai-harness"
[workspace.dependencies]
harness-core = { path = "crates/harness-core" }
harness-providers = { path = "crates/harness-providers" }
harness-tools = { path = "crates/harness-tools" }
harness-mcp = { path = "crates/harness-mcp" }
harness-lsp = { path = "crates/harness-lsp" }
harness-app = { path = "crates/harness-app" }
tokio = { version = "1", features = ["full"] }
tokio-util = "0.7"
futures = "0.3"
async-stream = "0.3"
async-trait = "0.1"
reqwest = { version = "0.12", default-features = false, features = ["rustls-tls", "stream", "json", "gzip"] }
eventsource-stream = "0.2"
serde = { version = "1", features = ["derive"] }
serde_json = { version = "1", features = ["raw_value"] }
schemars = "0.8"
serde_yaml_ng = "0.10"
jsonc-parser = { version = "0.26", features = ["serde"] }
rusqlite = { version = "0.32", features = ["bundled"] }
ratatui = "0.29"
crossterm = { version = "0.28", features = ["event-stream"] }
tui-textarea = "0.7"
pulldown-cmark = "0.12"
rmcp = "0.1"
lsp-types = "0.97"
ignore = "0.4"
globset = "0.4"
grep-searcher = "0.1"
grep-regex = "0.1"
grep-matcher = "0.1"
similar = "2"
ulid = { version = "1", features = ["serde"] }
thiserror = "2"
anyhow = "1"
tracing = "0.1"
tracing-subscriber = { version = "0.3", features = ["env-filter"] }
tracing-appender = "0.2"
dirs = "5"
shell-words = "1"
[workspace.lints.rust]
unsafe_code = "deny"
[workspace.lints.clippy]
all = { level = "warn", priority = -1 }