[package]
name = "agcp"
version = "1.2.0"
edition = "2024"
rust-version = "1.93"
description = "Lightweight Rust proxy translating Anthropic Claude API to Google Cloud Code API"
authors = ["Ö. Efe D. <skyline@noreply.codeberg.org>"]
license = "MIT"
repository = "https://github.com/skyline69/agcp"
homepage = "https://github.com/skyline69/agcp"
readme = "README.md"
keywords = ["anthropic", "claude", "gemini", "proxy", "api"]
categories = ["command-line-utilities", "development-tools", "web-programming"]
publish = true

[dependencies]
# HTTP server + client
hyper = { version = "1.8", features = ["http1", "http2", "server", "client"] }
hyper-util = { version = "0.1", default-features = false, features = [
    "client",
    "client-legacy",
    "http1",
    "http2",
    "tokio",
] }
hyper-rustls = { version = "0.27", default-features = false, features = [
    "http1",
    "http2",
    "ring",
    "webpki-roots",
] }
rustls = { version = "0.23", default-features = false, features = [
    "ring",
    "std",
] }
http-body-util = "0.1"

# Async runtime (minimal features)
tokio = { version = "1", default-features = false, features = [
    "rt-multi-thread",
    "macros",
    "net",
    "fs",
    "io-util",
    "sync",
    "signal",
    "time",
] }

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

# Crypto (PKCE, session ID)
sha2 = "0.10"
base64 = "0.22"
getrandom = "0.4"

# UUID generation
uuid = { version = "1", features = ["v4"] }

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

# Error handling
thiserror = "2.0"

# Non-poisoning synchronization primitives
parking_lot = "0.12"

# Interactive CLI prompts
dialoguer = "0.12"

# Platform directories
dirs = "6"

# Regex (lightweight)
regex-lite = "0.1"

# Date/time parsing
chrono = { version = "0.4", default-features = false, features = [
    "std",
    "clock",
] }

# File locking (cross-platform)
fs2 = "0.4"

# Terminal UI
ratatui = { version = "0.30", default-features = false, features = ["crossterm"] }
crossterm = "0.29"
tachyonfx = "0.23"

# Unix process management (daemon mode)
[target.'cfg(unix)'.dependencies]
libc = "0.2"

# Windows process management (stop/restart commands)
[target.'cfg(windows)'.dependencies]
sysinfo = { version = "0.38", default-features = false, features = ["system"] }

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