[package]
name = "kata"
version = "0.4.2"
edition = "2024"
rust-version = "1.85"
description = "Multi-project template applier with AI-delegated merge"
license = "MIT"
repository = "https://github.com/yukimemi/kata"
homepage = "https://github.com/yukimemi/kata"
readme = "README.md"
keywords = ["template", "scaffold", "ai", "tera", "monorepo"]
categories = ["command-line-utilities", "development-tools"]
include = [
    "src/**/*.rs",
    "Cargo.toml",
    "README.md",
    "LICENSE",
]

[[bin]]
name = "kata"
path = "src/main.rs"

[lib]
name = "kata"
path = "src/lib.rs"

[dependencies]
# Async runtime + concurrency
tokio = { version = "1", features = ["macros", "rt-multi-thread", "process", "fs", "sync", "io-util", "time"] }
async-trait = "0.1"

# CLI
clap = { version = "4", features = ["derive", "env"] }
clap_complete = "4"

# Templating + vars (mandatory; do not reimplement)
teravars = { version = "0.1.4", features = ["merge", "shell", "tracing"] }
tera = "1.20"

# Serialization
serde = { version = "1", features = ["derive"] }
serde_yaml = "0.9"
toml = "1"
toml_edit = "0.23"

# Errors
thiserror = "2"
anyhow = "1"

# Filesystem / paths
camino = { version = "1", features = ["serde1"] }
directories = "5"

# Time
jiff = { version = "0.2", features = ["serde"] }

# UI
inquire = "0.7"
indicatif = "0.18"
similar = "3"
owo-colors = "4"

# Hashing / glob / regex
sha2 = "0.11"
globset = "0.4"

# Logging
tracing = "0.1"
tracing-subscriber = { version = "0.3", features = ["env-filter"] }

# PATH resolution for AI CLI subprocesses (claude / gemini / codex …).
# Used by `ai::process::resolve_cli` to find the agent binary on
# Windows (PATHEXT + .ps1 fallback) the same way rvpm does.
which = "7"

# Secure tmp file allocation for the AI handoff prompt — must live
# in [dependencies] (not just [dev-dependencies]) because
# `ai::process::run_handoff` writes the prompt file at runtime.
tempfile = "3"

[dev-dependencies]
assert_cmd = "2"
assert_fs = "1"
predicates = "3"

[profile.release]
lto = true
codegen-units = 1
strip = true
