-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathCargo.toml
More file actions
150 lines (121 loc) · 4.35 KB
/
Cargo.toml
File metadata and controls
150 lines (121 loc) · 4.35 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
145
146
147
148
149
150
[package]
name = "reloaded-code-core"
version = "0.2.0"
edition = "2021"
description = "Lightweight, high-performance core types and utilities for coding tools - framework agnostic"
repository = "https://github.com/Reloaded-Project/ReloadedCode"
license = "Apache-2.0"
include = ["src/**/*", "README.md"]
readme = "README.md"
[features]
default = ["tokio"]
# Base async support (enabled by runtimes like tokio). PRs for other runtimes (smol, async-std) are welcome!
async = []
# Async with tokio runtime (default). Enables async feature and tokio-specific implementations.
tokio = [
"async",
"dep:tokio",
"dep:reqwest",
"reloaded-code-bubblewrap?/tokio",
"process-wrap/tokio1",
"process-wrap/job-object",
"process-wrap/process-group",
"process-wrap/kill-on-drop",
]
# Blocking/sync mode - mutually exclusive with async
blocking = [
"maybe-async/is_sync",
"dep:reqwest",
"reqwest?/blocking",
"reloaded-code-bubblewrap?/blocking",
"process-wrap/std",
"process-wrap/job-object",
"process-wrap/process-group",
]
# Linux sandbox API support - only exposes types on Linux targets.
linux-bubblewrap = ["dep:reloaded-code-bubblewrap"]
[dependencies]
# Tool outputs (BashOutput, GrepOutput, etc.) serialize to JSON for LLM consumption
serde = { workspace = true }
serde_json = { workspace = true }
# Zero overhead compile time bitflag generation
bitflags = { workspace = true }
# Shell-like expansion for home directory paths (~/ and $HOME/)
shellexpand = { workspace = true }
# Cross-platform canonicalization for non-existent paths
soft-canonicalize = { workspace = true }
# Fast binary serialization for catalog cache types
bitcode = { workspace = true }
# Compile-time generated packed bitfield structs for model metadata
bitfields = { workspace = true }
# High-performance hashing for permission keys
ahash = { workspace = true }
# Explicit low-level hash table for model catalog lookup
hashbrown = { workspace = true }
# Inline vector storage for ProviderEnvVars
tinyvec = { workspace = true }
# Efficient immutable string table for provider URLs and env vars
lite-strtab = { workspace = true }
# ToolError type uses thiserror for ergonomic error definitions
thiserror = { workspace = true }
# Todo types derive JsonSchema for LLM tool parameter validation
schemars = { workspace = true }
# Sync RwLock for TodoState (no tokio dependency)
parking_lot = { workspace = true }
# Glob and grep tool implementations (aligned with ripgrep)
globset = { workspace = true } # Glob matching with ripgrep-optimized engine
grep-regex = { workspace = true } # Regex matcher for grep_search
grep-searcher = { workspace = true } # File content searching for grep_search
ignore = { workspace = true } # Respects .gitignore when walking directories
memchr = { workspace = true } # Fast newline detection in read_file
# Webfetch tool converts HTML to markdown for LLM-friendly output
html-to-markdown-rs = { workspace = true }
reqwest = { workspace = true, optional = true }
# Unifies async/sync code via procedural macros
maybe-async = { workspace = true }
# Async file I/O, process execution, and timeouts
tokio = { workspace = true, optional = true }
# Cross-platform process tree management (Job Objects on Windows, process groups on Unix)
process-wrap = { workspace = true }
# Compile-time string formatting for prompt text and parameter descriptions
const_format = { workspace = true }
# Linux sandbox types and runtime
reloaded-code-bubblewrap = { workspace = true, optional = true }
[dev-dependencies]
serial_test = { workspace = true }
tempfile = { workspace = true }
dirs = { workspace = true }
# For tests (async and blocking with wiremock)
tokio = { workspace = true, features = ["rt-multi-thread", "macros"] }
wiremock = { workspace = true }
indoc = { workspace = true }
criterion = { workspace = true }
temp-env = { workspace = true }
rstest = { workspace = true }
[[bench]]
name = "model_catalog_builder"
harness = false
[[bench]]
name = "path_resolvers"
harness = false
[[bench]]
name = "permissions"
harness = false
[[bench]]
name = "tools_read"
harness = false
required-features = ["blocking"]
[[bench]]
name = "tools_grep"
harness = false
[[bench]]
name = "tools_edit"
harness = false
required-features = ["blocking"]
[[bench]]
name = "tools_glob"
harness = false
[[bench]]
name = "tools_write"
harness = false
required-features = ["blocking"]