git-ai 1.2.1

Git AI: Automates commit messages using ChatGPT. Stage your files, and Git AI generates the messages.
Documentation
[package]
name = "git-ai"
version = "1.2.1"
edition = "2021"
description = "Git AI: Automates commit messages using ChatGPT. Stage your files, and Git AI generates the messages."
license = "MIT"
repository = "https://github.com/oleander/git-ai"

# https://github.com/oleander/git-ai/actions/runs/11872246630/artifacts/2196924470
[package.metadata.binstall]
targets = ["x86_64-unknown-linux-gnu", "x86_64-apple-darwin"]
pkg-binaries = ["git-ai", "git-ai-hook"]
name = "git-ai"

[lib]
name = "ai"
test = true

[[bin]]
name = "git-ai"
path = "src/main.rs"

[[bin]]
name = "git-ai-hook"
path = "src/bin/hook.rs"

[[example]]
name = "function_calling_demo"
path = "examples/function_calling_demo.rs"

[[example]]
name = "multi_step_commit"
path = "examples/multi_step_commit.rs"

[[example]]
name = "parallel_tool_calls_demo"
path = "examples/parallel_tool_calls_demo.rs"

[dependencies]
# Core functionality
anyhow = { version = "1.0.102", features = ["backtrace"] }
thiserror = "2.0.18"
tokio = { version = "1.52.3", features = ["full"] }
futures = "0.3"
parking_lot = "0.12.5"
tracing = "0.1"

# CLI and UI

colored = "3.1.1"
console = { version = "0.16", default-features = false }
indicatif = { version = "0.18", default-features = false }
log = "0.4.32"
env_logger = { version = "0.11.10", default-features = false }

# Git integration
git2 = { version = "0.21.0", default-features = false }

# Configuration
config = { version = "0.15.24", default-features = false, features = ["ini"] }
dotenv = "0.15.0"
serde = { version = "1.0", features = ["derive"] }
serde_derive = "1.0.228"
serde_ini = "0.2.0"
serde_json = "1.0"

# OpenAI integration
async-openai = { version = "0.41", default-features = false, features = ["rustls", "chat-completion", "model"] }
tiktoken-rs = "0.12.0"
reqwest = { version = "0.13.4", default-features = true }

# System utilities
rayon = "1.12.0"
num_cpus = "1.17.0"
rand = "0.10"
lazy_static = "1.5.0"
home = "0.5.12"
dirs = "6.0"

# Syntax highlighting and markdown rendering
textwrap = "0.16"
structopt = "0.3.26"
mustache = "0.9.0"
maplit = "1.0.2"

[target.'cfg(target_env = "musl")'.dependencies]
openssl = { version = "0.10", features = ["vendored"] }

[features]
default = []

[dev-dependencies]
tempfile = "3.27.0"

[profile.release]
codegen-units = 1
opt-level = 3
debug = true
lto = true

[profile.release.package."*"]
codegen-units = 1
opt-level = 3

[profile.release-with-debug]
inherits = "release"
debug = true