[workspace]
resolver = "2"
members = [
    "crates/client",
    "crates/llm-engine",
    "crates/llm-engine-macros",
    "crates/session-store",
    "crates/secrets",
    "crates/manifest",
    "crates/mcp",
    "crates/worker",
    "crates/worker-runtime",
    "crates/plugin-pdk",
    "crates/yoi",
    "crates/protocol",
    "crates/provider",
    "crates/session-metrics",
    "crates/session-analytics",
    "crates/lint-common",
    "crates/tools",
    "crates/tui",
    "crates/memory",
    "crates/ticket",
    "crates/project-record",
    "crates/workflow",
    "crates/workspace-server",
    "tests/e2e",
]
default-members = [
    "crates/client",
    "crates/llm-engine",
    "crates/llm-engine-macros",
    "crates/session-store",
    "crates/secrets",
    "crates/manifest",
    "crates/mcp",
    "crates/worker",
    "crates/worker-runtime",
    "crates/plugin-pdk",
    "crates/yoi",
    "crates/protocol",
    "crates/provider",
    "crates/session-metrics",
    "crates/session-analytics",
    "crates/lint-common",
    "crates/tools",
    "crates/tui",
    "crates/memory",
    "crates/ticket",
    "crates/project-record",
    "crates/workflow",
    "crates/workspace-server",
]

[workspace.package]
edition = "2024"
license = "MIT"

[workspace.dependencies]
# Internal crates
client = { path = "crates/client" }
llm-engine = { path = "crates/llm-engine", version = "0.2" }
llm-engine-macros = { path = "crates/llm-engine-macros", version = "0.2" }
manifest = { path = "crates/manifest" }
mcp = { path = "crates/mcp" }
lint-common = { path = "crates/lint-common" }
memory = { path = "crates/memory" }
ticket = { path = "crates/ticket" }
project-record = { path = "crates/project-record" }
worker = { path = "crates/worker" }
worker-runtime = { path = "crates/worker-runtime" }
yoi-plugin-pdk = { path = "crates/plugin-pdk" }
yoi = { path = "crates/yoi" }
protocol = { path = "crates/protocol" }
provider = { path = "crates/provider" }
session-metrics = { path = "crates/session-metrics" }
session-analytics = { path = "crates/session-analytics" }
session-store = { path = "crates/session-store" }
secrets = { path = "crates/secrets" }
tools = { path = "crates/tools" }
tui = { path = "crates/tui" }
yoi-workspace-server = { path = "crates/workspace-server" }

# External
# Note: `reqwest` and `chrono` are not aggregated here because some crates
# need `default-features = false`, which workspace inheritance cannot override.
async-trait = "0.1"
axum = "0.8"
fs4 = "0.13"
futures = "0.3"
libc = "0.2"
schemars = "1.2"
serde = "1.0"
serde_json = "1.0"
serde_yaml = "0.9.34"
rusqlite = { version = "0.37", features = ["bundled"] }
sha2 = "0.11"
tempfile = "3.27"
thiserror = "2.0"
tokio = "1.52"
tokio-tungstenite = "0.29"
tower = "0.5"
toml = "1.1"
tracing = "0.1"
uuid = "1.23"
