forked from 1jehuang/jcode
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathCargo.toml
More file actions
137 lines (110 loc) · 3.49 KB
/
Cargo.toml
File metadata and controls
137 lines (110 loc) · 3.49 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
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
[package]
name = "jcode"
version = "0.3.3"
description = "Possibly the greatest coding agent ever built — blazing-fast TUI, multi-model, swarm coordination, 30+ tools"
edition = "2021"
[lib]
name = "jcode"
path = "src/lib.rs"
[[bin]]
name = "jcode"
path = "src/main.rs"
[[bin]]
name = "test_api"
path = "src/bin/test_api.rs"
[[bin]]
name = "jcode-harness"
path = "src/bin/harness.rs"
[dependencies]
# Memory allocator (reduces fragmentation for long-running server)
tikv-jemallocator = { version = "0.6", features = ["unprefixed_malloc_on_supported_platforms"], optional = true }
# Async runtime
tokio = { version = "1", features = ["full", "process"] }
futures = "0.3"
async-trait = "0.1"
# HTTP client
reqwest = { version = "0.12", features = ["json", "stream", "blocking"] }
tokio-tungstenite = { version = "0.24", default-features = false, features = ["connect", "rustls-tls-native-roots"] }
# Serialization
serde = { version = "1", features = ["derive"] }
serde_json = "1"
serde_yaml = "0.9"
toml = "0.8"
# CLI
clap = { version = "4", features = ["derive"] }
# File operations
glob = "0.3"
ignore = "0.4" # gitignore-aware file walking
walkdir = "2"
similar = "2" # diffing for edits
# Utilities
dirs = "5" # home directory
anyhow = "1"
thiserror = "1"
libc = "0.2" # Unix system calls (flock)
chrono = { version = "0.4", features = ["serde"] }
regex = "1"
urlencoding = "2" # URL encoding for web search
# Embeddings (local inference) - behind feature flag (163 crates, slow to compile)
tract-onnx = { version = "0.21", optional = true }
tract-hir = { version = "0.21", optional = true }
tokenizers = { version = "0.21", default-features = false, features = ["onig"], optional = true }
# OAuth
base64 = "0.22"
sha2 = "0.10"
rand = "0.9"
hex = "0.4"
url = "2"
open = "5" # Open URLs in browser
# Streaming
tokio-stream = "0.1"
bytes = "1"
# TUI
ratatui = "0.29"
crossterm = { version = "0.28", features = ["event-stream"] }
arboard = "3" # Clipboard support
ratatui-image = { version = "4", default-features = false, features = ["crossterm"] }
image = { version = "0.25", default-features = false, features = ["png", "jpeg"] } # Only PNG/JPEG (skip avif/rav1e, exr, gif, tiff, etc)
# Markdown & syntax highlighting
syntect = { version = "5", default-features = false, features = ["default-fancy"] }
pulldown-cmark = "0.12"
unicode-width = "0.2" # Unicode character display width
# Email (SMTP send + IMAP receive)
lettre = { version = "0.11", default-features = false, features = ["tokio1-rustls-tls", "smtp-transport", "builder"] }
imap = "2"
native-tls = "0.2"
mail-parser = "0.9"
# PDF parsing (behind feature flag - 56 crates)
pdf-extract = { version = "0.8", optional = true }
# Archive extraction (for auto-update)
flate2 = "1"
tar = "0.4"
# Mermaid diagram rendering (stable v0.2.0 tag)
mermaid-rs-renderer = { git = "https://github.com/1jehuang/mermaid-rs-renderer.git", tag = "v0.2.0" }
[features]
default = ["embeddings", "pdf"]
jemalloc = ["tikv-jemallocator"]
embeddings = ["tract-onnx", "tract-hir", "tokenizers"]
pdf = ["pdf-extract"]
[profile.release]
opt-level = 1
debug = 0
codegen-units = 256
incremental = true
# Full LTO release for stable/distribution builds
[profile.release-lto]
inherits = "release"
lto = "thin"
codegen-units = 16
incremental = false
[profile.dev]
debug = 1
incremental = true
[profile.dev.package."*"]
opt-level = 1
[dev-dependencies]
async-stream = "0.3"
tempfile = "3"
[build-dependencies]
dirs = "5"
chrono = "0.4"