-
Notifications
You must be signed in to change notification settings - Fork 5
Expand file tree
/
Copy pathCargo.toml
More file actions
120 lines (96 loc) · 2.86 KB
/
Cargo.toml
File metadata and controls
120 lines (96 loc) · 2.86 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
[package]
name = "codey"
version = "0.1.0-rc.12"
edition = "2021"
authors = ["Codey Contributors"]
description = "A terminal-based AI coding assistant"
license = "MIT"
repository = "https://github.com/tcdent/codey"
[lib]
name = "codey"
path = "src/lib.rs"
[[bin]]
name = "codey"
path = "src/main.rs"
[dependencies]
# OpenSSL vendored for static musl builds
openssl = { version = "0.10", features = ["vendored"], optional = true }
# TUI (CLI only)
ratatui = { version = "0.30.0-beta.0", features = ["scrolling-regions"], optional = true }
crossterm = { version = "0.28", features = ["event-stream"], optional = true }
# Async runtime
tokio = { version = "1", features = ["full"] }
tokio-stream = "0.1"
# LLM client (multi-provider) - using patched version for thinking blocks + OAuth
genai = { git = "https://github.com/tcdent/rust-genai.git", branch = "codey-dev" }
# HTTP client
reqwest = { version = "0.12", features = ["stream", "json", "rustls-tls"], default-features = false }
futures = "0.3"
# Web content extraction (CLI only - reader view)
chromiumoxide = { version = "0.7", features = ["tokio-runtime"], default-features = false, optional = true }
readability = { version = "0.3", optional = true }
htmd = { version = "0.1", optional = true }
# Serialization
serde = { version = "1", features = ["derive"] }
serde_json = "1"
# Config
toml = "0.8"
dirs = "5"
# CLI arguments (CLI only)
clap = { version = "4", features = ["derive", "env"], optional = true }
# Error handling
anyhow = "1"
thiserror = "2"
# Utilities
fancy-regex = "0.14"
unicode-width = "0.2"
chrono = { version = "0.4", features = ["serde"] }
uuid = { version = "1", features = ["v4"] }
url = "2"
urlencoding = "2"
base64 = "0.22"
sha2 = "0.10"
rand = "0.8"
open = { version = "5", optional = true }
# Logging
tracing = "0.1"
tracing-subscriber = { version = "0.3", features = ["env-filter"] }
# Async utilities
async-trait = "0.1"
async-stream = "0.3"
dotenvy = "0.15.7"
typetag = "0.2.21"
# TUI rendering (CLI only)
ratskin = { version = "0.3", optional = true }
textwrap = { version = "0.16.2", optional = true }
# Neovim RPC (CLI only)
nvim-rs = { version = "0.9", features = ["use_tokio"], optional = true }
[dev-dependencies]
tokio-test = "0.4"
tempfile = "3"
pretty_assertions = "1"
insta = "1.40"
[profile.release]
lto = true
codegen-units = 1
panic = "abort"
strip = false
debug = true
[features]
default = ["cli"]
# Full CLI with TUI, IDE integration, and web extraction
cli = [
"ratatui", "crossterm", "clap", "nvim-rs", "open",
"chromiumoxide", "readability", "htmd",
"ratskin", "textwrap"
]
# Vendored OpenSSL for static musl builds
vendored-openssl = ["openssl"]
# Enable performance profiling with JSON export
# Build with: cargo build --release --features profiling
profiling = ["dep:sysinfo"]
[dependencies.sysinfo]
version = "0.33"
optional = true
default-features = false
features = ["system"]