-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathCargo.toml
More file actions
144 lines (124 loc) · 4.3 KB
/
Cargo.toml
File metadata and controls
144 lines (124 loc) · 4.3 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
138
139
140
141
142
143
144
[package]
name = "cortex-engine"
version.workspace = true
edition.workspace = true
license.workspace = true
description = "Core business logic for Cortex CLI - agent, tools, providers, sandbox"
[lib]
name = "cortex_engine"
path = "src/lib.rs"
doctest = false
[lints]
workspace = true
[dependencies]
# Internal
cortex-protocol = { workspace = true }
cortex-common = { workspace = true }
cortex-login = { workspace = true }
cortex-mcp-types = { path = "../cortex-mcp-types" }
# New feature crates (Phase 1)
cortex-lsp = { path = "../cortex-lsp" }
cortex-snapshot = { path = "../cortex-snapshot" }
cortex-agents-ext = { path = "../cortex-agents", package = "cortex-agents" }
cortex-hooks-ext = { path = "../cortex-hooks", package = "cortex-hooks" }
cortex-share = { path = "../cortex-share" }
cortex-plugins-ext = { path = "../cortex-plugins", package = "cortex-plugins" }
cortex-batch = { path = "../cortex-batch" }
# New feature crates (Phase 2)
cortex-ghost = { path = "../cortex-ghost" }
cortex-review-ext = { path = "../cortex-review", package = "cortex-review" }
cortex-resume = { path = "../cortex-resume" }
cortex-compact-ext = { path = "../cortex-compact", package = "cortex-compact" }
cortex-ratelimits = { path = "../cortex-ratelimits" }
cortex-migrations = { path = "../cortex-migrations" }
cortex-experimental = { path = "../cortex-experimental" }
# Async
tokio = { workspace = true, features = ["full"] }
tokio-stream = { workspace = true }
tokio-util = "0.7"
async-trait = { workspace = true }
async-channel = { workspace = true }
futures = { workspace = true }
async-stream = { workspace = true }
# Serialization
serde = { workspace = true }
serde_json = { workspace = true }
toml = { workspace = true }
toml_edit = { workspace = true }
# HTTP
reqwest = { workspace = true, features = ["multipart"] }
futures-util = "0.3"
eventsource-stream = { workspace = true }
url = { workspace = true }
# Error handling
anyhow = { workspace = true }
thiserror = { workspace = true }
# Logging
tracing = { workspace = true }
# Parsing
tree-sitter = { workspace = true }
tree-sitter-bash = { workspace = true }
regex = { workspace = true }
shlex = { workspace = true }
# Utilities
uuid = { workspace = true }
chrono = { workspace = true }
dirs = { workspace = true }
dunce = { workspace = true }
which = { workspace = true }
similar = { workspace = true }
once_cell = { workspace = true }
indexmap = { workspace = true }
base64 = { workspace = true }
sha2 = { workspace = true }
hmac = "0.12"
hex = "0.4"
tempfile = { workspace = true }
bytes = { workspace = true }
rand = "0.8"
urlencoding = "2.1"
serde_yaml = "0.9"
num_cpus = "1.16"
notify = "6.1"
glob = "0.3"
walkdir = "2.5"
ignore = "0.4"
# Security - credential encryption
# Note: keyring with linux-native is platform-specific, moved to target dependencies
secrecy = { version = "0.10", features = ["serde"] }
aes-gcm = "0.10"
argon2 = "0.5"
zeroize = { version = "1.8", features = ["derive"] }
# mDNS / Service Discovery
mdns-sd = { workspace = true }
hostname = { workspace = true }
flume = "0.11"
# Platform specific
# Linux glibc builds - uses linux-native keyring backend (libsecret/D-Bus)
[target.'cfg(all(target_os = "linux", not(target_env = "musl")))'.dependencies]
landlock = { workspace = true }
seccompiler = { workspace = true }
libc = { workspace = true }
keyring = { workspace = true, features = ["linux-native"] }
# Linux musl builds (static) - uses linux-keyutils backend (no D-Bus dependency)
[target.'cfg(all(target_os = "linux", target_env = "musl"))'.dependencies]
landlock = { workspace = true }
seccompiler = { workspace = true }
libc = { workspace = true }
keyring = { workspace = true, features = ["linux-native"] }
[target.'cfg(target_os = "macos")'.dependencies]
libc = { workspace = true }
# macOS uses default keyring backend (Security.framework)
keyring = { workspace = true, features = ["apple-native"] }
[target.'cfg(target_os = "windows")'.dependencies]
cortex-windows-sandbox = { path = "../cortex-windows-sandbox" }
# Windows uses default keyring backend (Windows Credential Manager)
keyring = { workspace = true, features = ["windows-native"] }
[target.'cfg(unix)'.dependencies]
libc = { workspace = true }
[dev-dependencies]
pretty_assertions = { workspace = true }
tempfile = { workspace = true }
tokio-test = { workspace = true }
wiremock = { workspace = true }
insta = { workspace = true }