Files
QuiCommit/Cargo.toml
SidneyZhang 3c2b96a4d1 refactor(llm): 删除手写 provider 实现与冗余依赖
- 删除 6 个手写 provider 文件、LlmProvider trait、动态分发、HTTP 客户端工厂与门面死代码
- llm 模块收敛为 rig 门面 + 提示词/解析/思考状态四个模块
- 移除 reqwest(0.12) 与 async-trait 直接依赖(futures-util 由流式消费保留)
- 依赖树确认无 rig-agent/fastembed/lancedb/milvus 等组件
2026-08-17 16:04:26 +08:00

100 lines
2.2 KiB
TOML

[package]
name = "quicommit"
version = "0.5.5"
edition = "2024"
authors = ["Sidney Zhang <zly@lyzhang.me>"]
description = "A powerful Git assistant tool with AI-powered commit/tag/changelog generation"
license = "MIT"
repository = "https://git.lyz.one/SidneyZhang/QuiCommit"
keywords = ["git", "commit", "ai", "cli", "automation"]
categories = ["command-line-utilities", "development-tools"]
[[bin]]
name = "quicommit"
path = "src/main.rs"
[dependencies]
# CLI and argument parsing
clap = { version = "4.5", features = ["derive", "env", "wrap_help"] }
clap_complete = "4.5"
dialoguer = "0.11"
console = "0.15"
indicatif = "0.17"
# Configuration management
config = "0.14"
serde = { version = "1.0", features = ["derive"] }
toml = "0.8"
dirs = "5.0"
# Git operations
git2 = "0.20.3"
which = "6.0"
tokio = { version = "1.35", features = ["full", "macros", "rt-multi-thread"] }
# Error handling
thiserror = "1.0"
anyhow = "1.0"
# Logging and tracing
tracing = "0.1"
tracing-subscriber = { version = "0.3", features = ["env-filter", "fmt"] }
# Utilities
chrono = { version = "0.4", features = ["serde"] }
regex = "1.10"
roxmltree = "0.20"
lazy_static = "1.4"
colored = "2.1"
handlebars = "5.1"
semver = "1.0"
walkdir = "2.4"
tempfile = "3.9"
sha2 = "0.10"
hex = "0.4"
textwrap = "0.16"
futures-util = "0.3"
serde_json = "1.0"
atty = "0.2"
# Encryption for sensitive data (SSH keys, GPG, etc.)
aes-gcm = "0.10"
argon2 = "0.5"
rand = "0.8"
base64 = "0.22"
# System keyring for secure API key storage
keyring = { version = "3.6.3", features = ["apple-native", "windows-native", "sync-secret-service"] }
# Interactive editor
edit = "0.1"
# Shell completion generation
shell-words = "1.1"
# LLM integration (rig-core only: HTTP backend + rustls; no agent/derive)
rig-core = { version = "0.41", default-features = false, features = ["reqwest", "rustls"] }
[dev-dependencies]
assert_cmd = "2.0"
predicates = "3.1"
tempfile = "3.9"
mockall = "0.12"
wiremock = "0.6"
# rig mock HTTP backends for LLM layer tests
rig-core = { version = "0.41", default-features = false, features = ["test-utils"] }
http = "1"
[profile.release]
opt-level = "s"
lto = "thin"
codegen-units = 1
panic = "abort"
strip = true
debug = false
[profile.dev]
opt-level = 1
debug = true