[package]
name        = "kotonoha-server"
description = "axum HTTP + WebSocket server that bridges the kotonoha frontend to claude/gemini/codex CLIs"
include = [
    "src/**/*",
    # Only the built SPA bundle — rust-embed reads dist/ at compile
    # time. node_modules/ + the Vite source under web/src/ don't ship
    # to crates.io. The release.yml CI rebuilds the bundle before
    # cargo publish so the published bytes match the tagged commit.
    "web/dist/**/*",
    "Cargo.toml",
]
version.workspace      = true
edition.workspace      = true
rust-version.workspace = true
license.workspace      = true
repository.workspace   = true
homepage.workspace     = true
authors.workspace      = true

[[bin]]
# Package name on crates.io is `kotonoha-server` (since `kotonoha`
# itself was squatted in 2019 by an old logging crate), but the
# user-facing executable stays `kotonoha`. Users do
# `cargo install kotonoha-server` once, then `kotonoha` every day.
name = "kotonoha"
path = "src/main.rs"

[dependencies]
# `path` + `version` so cargo publish keeps the version-pinned dep on
# the published manifest while local builds still resolve via path.
kotonoha-core = { path = "../kotonoha-core", version = "0.1.10" }
kotonoha-llm  = { path = "../kotonoha-llm",  version = "0.1.10" }
kotonoha-tts  = { path = "../kotonoha-tts",  version = "0.1.10" }

anyhow             = { workspace = true }
axum               = { workspace = true }
clap               = { workspace = true }
futures            = { workspace = true }
indicatif          = { workspace = true }
mime_guess         = { workspace = true }
reqwest            = { workspace = true }
rust-embed         = { workspace = true }
serde              = { workspace = true }
serde_json         = { workspace = true }
tokio              = { workspace = true }
tower-http         = { workspace = true }
tracing            = { workspace = true }
tracing-subscriber = { workspace = true }
