havfrys 0.2.2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- havfrys-0.2.2/.gitignore +20 -0
- havfrys-0.2.2/CONTRIBUTING.md +57 -0
- havfrys-0.2.2/Cargo.lock +477 -0
- havfrys-0.2.2/Cargo.toml +35 -0
- havfrys-0.2.2/DOGFOODING.md +94 -0
- havfrys-0.2.2/LICENSE +26 -0
- havfrys-0.2.2/PKG-INFO +344 -0
- havfrys-0.2.2/README.md +317 -0
- havfrys-0.2.2/docs/assets/b925094b-dee3-4883-818d-c8d547f1c823.png +0 -0
- havfrys-0.2.2/docs/assets/frost_demo_video.gif +0 -0
- havfrys-0.2.2/docs/assets/frost_logo.jpg +0 -0
- havfrys-0.2.2/pyproject.toml +41 -0
- havfrys-0.2.2/python/havfrys/__init__.py +14 -0
- havfrys-0.2.2/python/havfrys/__main__.py +5 -0
- havfrys-0.2.2/python/havfrys/backends/__init__.py +32 -0
- havfrys-0.2.2/python/havfrys/backends/docker.py +103 -0
- havfrys-0.2.2/python/havfrys/backends/native.py +51 -0
- havfrys-0.2.2/python/havfrys/branch_loop.py +179 -0
- havfrys-0.2.2/python/havfrys/cli.py +85 -0
- havfrys-0.2.2/python/havfrys/context.py +93 -0
- havfrys-0.2.2/python/havfrys/core.py +259 -0
- havfrys-0.2.2/python/havfrys/installer.py +381 -0
- havfrys-0.2.2/python/havfrys/memory.py +108 -0
- havfrys-0.2.2/python/havfrys/micro_branch.py +294 -0
- havfrys-0.2.2/python/havfrys/orchestrator.py +354 -0
- havfrys-0.2.2/python/havfrys/server.py +110 -0
- havfrys-0.2.2/python/havfrys/uncertainty.py +207 -0
- havfrys-0.2.2/python/havfrys/validator.py +43 -0
- havfrys-0.2.2/src/compress.rs +139 -0
- havfrys-0.2.2/src/engines/compression/adaptive_sizer.rs +415 -0
- havfrys-0.2.2/src/engines/compression/anchor_selector.rs +972 -0
- havfrys-0.2.2/src/engines/compression/bm25.rs +142 -0
- havfrys-0.2.2/src/engines/compression/content_detector.rs +667 -0
- havfrys-0.2.2/src/engines/compression/diff_compressor.rs +1273 -0
- havfrys-0.2.2/src/engines/compression/log_compressor.rs +1111 -0
- havfrys-0.2.2/src/engines/compression/mod.rs +89 -0
- havfrys-0.2.2/src/engines/compression/smart_crusher/analyzer.rs +1052 -0
- havfrys-0.2.2/src/engines/compression/smart_crusher/anchors.rs +260 -0
- havfrys-0.2.2/src/engines/compression/smart_crusher/classifier.rs +143 -0
- havfrys-0.2.2/src/engines/compression/smart_crusher/compaction/classifier.rs +239 -0
- havfrys-0.2.2/src/engines/compression/smart_crusher/compaction/compactor.rs +722 -0
- havfrys-0.2.2/src/engines/compression/smart_crusher/compaction/formatter.rs +524 -0
- havfrys-0.2.2/src/engines/compression/smart_crusher/compaction/ir.rs +180 -0
- havfrys-0.2.2/src/engines/compression/smart_crusher/compaction/mod.rs +57 -0
- havfrys-0.2.2/src/engines/compression/smart_crusher/compaction/walker.rs +50 -0
- havfrys-0.2.2/src/engines/compression/smart_crusher/config.rs +95 -0
- havfrys-0.2.2/src/engines/compression/smart_crusher/constraints.rs +76 -0
- havfrys-0.2.2/src/engines/compression/smart_crusher/crusher.rs +1322 -0
- havfrys-0.2.2/src/engines/compression/smart_crusher/crushers.rs +633 -0
- havfrys-0.2.2/src/engines/compression/smart_crusher/error_keywords.rs +56 -0
- havfrys-0.2.2/src/engines/compression/smart_crusher/field_detect.rs +295 -0
- havfrys-0.2.2/src/engines/compression/smart_crusher/hashing.rs +27 -0
- havfrys-0.2.2/src/engines/compression/smart_crusher/mod.rs +43 -0
- havfrys-0.2.2/src/engines/compression/smart_crusher/orchestration.rs +340 -0
- havfrys-0.2.2/src/engines/compression/smart_crusher/outliers.rs +341 -0
- havfrys-0.2.2/src/engines/compression/smart_crusher/planning.rs +753 -0
- havfrys-0.2.2/src/engines/compression/smart_crusher/statistics.rs +361 -0
- havfrys-0.2.2/src/engines/compression/smart_crusher/stats_math.rs +214 -0
- havfrys-0.2.2/src/engines/compression/smart_crusher/traits.rs +1 -0
- havfrys-0.2.2/src/engines/compression/smart_crusher/types.rs +175 -0
- havfrys-0.2.2/src/engines/compression/text_crusher/config.rs +24 -0
- havfrys-0.2.2/src/engines/compression/text_crusher/crusher.rs +290 -0
- havfrys-0.2.2/src/engines/compression/text_crusher/mod.rs +5 -0
- havfrys-0.2.2/src/engines/loop_detection/config.rs +53 -0
- havfrys-0.2.2/src/engines/loop_detection/engine.rs +88 -0
- havfrys-0.2.2/src/engines/loop_detection/history.rs +163 -0
- havfrys-0.2.2/src/engines/loop_detection/state.rs +75 -0
- havfrys-0.2.2/src/engines/mod.rs +8 -0
- havfrys-0.2.2/src/lib.rs +90 -0
- havfrys-0.2.2/src/runtime/ccr/backends/in_memory.rs +242 -0
- havfrys-0.2.2/src/runtime/ccr/backends/mod.rs +3 -0
- havfrys-0.2.2/src/runtime/ccr/mod.rs +16 -0
- havfrys-0.2.2/src/runtime/mod.rs +1 -0
- havfrys-0.2.2/tests/test_engine.py +203 -0
- havfrys-0.2.2/tests/test_installer.py +86 -0
havfrys-0.2.2/.gitignore
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# Rust build artifacts
|
|
2
|
+
/target/
|
|
3
|
+
Cargo.lock
|
|
4
|
+
|
|
5
|
+
# Python artifacts
|
|
6
|
+
__pycache__/
|
|
7
|
+
*.pyc
|
|
8
|
+
*.pyo
|
|
9
|
+
*.pyd
|
|
10
|
+
*.so
|
|
11
|
+
*.dylib
|
|
12
|
+
*.egg-info/
|
|
13
|
+
dist/
|
|
14
|
+
build/
|
|
15
|
+
.pytest_cache/
|
|
16
|
+
.venv/
|
|
17
|
+
|
|
18
|
+
# HAVFRYS local state
|
|
19
|
+
.havfrys/
|
|
20
|
+
.havfrys_cache.json
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
# Contributing to HAVFRYS
|
|
2
|
+
|
|
3
|
+
Thank you for your interest in contributing to HAVFRYS! We welcome contributions from the community.
|
|
4
|
+
|
|
5
|
+
## Development Setup
|
|
6
|
+
|
|
7
|
+
1. **Clone the Repository**:
|
|
8
|
+
```bash
|
|
9
|
+
git clone https://github.com/Devaretanmay/Frost.git
|
|
10
|
+
cd Frost
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
2. **Create a Virtual Environment**:
|
|
14
|
+
```bash
|
|
15
|
+
python3 -m venv .venv
|
|
16
|
+
source .venv/bin/activate
|
|
17
|
+
pip install maturin pytest mcp
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
3. **Build Rust Bindings**:
|
|
21
|
+
```bash
|
|
22
|
+
maturin develop --offline
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
## Running Tests
|
|
26
|
+
|
|
27
|
+
Before submitting a pull request, ensure all Python and Rust tests pass:
|
|
28
|
+
|
|
29
|
+
```bash
|
|
30
|
+
# Run Python integration tests
|
|
31
|
+
pytest tests/
|
|
32
|
+
|
|
33
|
+
# Run Rust core tests
|
|
34
|
+
cargo test
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
## Architectural Guidelines
|
|
38
|
+
|
|
39
|
+
When contributing to HAVFRYS, adhere to the 7 Architectural Invariants:
|
|
40
|
+
1. **Linear execution is default**.
|
|
41
|
+
2. **Branch only at uncertainty points**.
|
|
42
|
+
3. **Branches are tiny and short-lived**.
|
|
43
|
+
4. **Compress before reasoning**.
|
|
44
|
+
5. **Detect internal loops**.
|
|
45
|
+
6. **Kill bad branches aggressively**.
|
|
46
|
+
7. **Merge immediately after a winner is selected**.
|
|
47
|
+
|
|
48
|
+
## Submitting Pull Requests
|
|
49
|
+
|
|
50
|
+
1. Create a feature branch (`git checkout -b feature/my-feature`).
|
|
51
|
+
2. Commit your changes with clear, descriptive commit messages.
|
|
52
|
+
3. Verify tests and linting pass locally.
|
|
53
|
+
4. Push to your branch and open a Pull Request.
|
|
54
|
+
|
|
55
|
+
## License
|
|
56
|
+
|
|
57
|
+
By contributing to HAVFRYS, you agree that your contributions will be licensed under the repo's [MIT License](LICENSE).
|
havfrys-0.2.2/Cargo.lock
ADDED
|
@@ -0,0 +1,477 @@
|
|
|
1
|
+
# This file is automatically @generated by Cargo.
|
|
2
|
+
# It is not intended for manual editing.
|
|
3
|
+
version = 4
|
|
4
|
+
|
|
5
|
+
[[package]]
|
|
6
|
+
name = "adler2"
|
|
7
|
+
version = "2.0.1"
|
|
8
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
9
|
+
checksum = "320119579fcad9c21884f5c4861d16174d0e06250625266f50fe6898340abefa"
|
|
10
|
+
|
|
11
|
+
[[package]]
|
|
12
|
+
name = "aho-corasick"
|
|
13
|
+
version = "1.1.4"
|
|
14
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
15
|
+
checksum = "ddd31a130427c27518df266943a5308ed92d4b226cc639f5a8f1002816174301"
|
|
16
|
+
dependencies = [
|
|
17
|
+
"memchr",
|
|
18
|
+
]
|
|
19
|
+
|
|
20
|
+
[[package]]
|
|
21
|
+
name = "arrayref"
|
|
22
|
+
version = "0.3.9"
|
|
23
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
24
|
+
checksum = "76a2e8124351fda1ef8aaaa3bbd7ebbcb486bbcd4225aca0aa0d84bb2db8fecb"
|
|
25
|
+
|
|
26
|
+
[[package]]
|
|
27
|
+
name = "arrayvec"
|
|
28
|
+
version = "0.7.8"
|
|
29
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
30
|
+
checksum = "d3fb67a6e08acf24fdeccbac2cb6ac4305825bd1f117462e0e6f2f193345ad56"
|
|
31
|
+
|
|
32
|
+
[[package]]
|
|
33
|
+
name = "blake3"
|
|
34
|
+
version = "1.8.5"
|
|
35
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
36
|
+
checksum = "0aa83c34e62843d924f905e0f5c866eb1dd6545fc4d719e803d9ba6030371fce"
|
|
37
|
+
dependencies = [
|
|
38
|
+
"arrayref",
|
|
39
|
+
"arrayvec",
|
|
40
|
+
"cc",
|
|
41
|
+
"cfg-if",
|
|
42
|
+
"constant_time_eq",
|
|
43
|
+
"cpufeatures",
|
|
44
|
+
]
|
|
45
|
+
|
|
46
|
+
[[package]]
|
|
47
|
+
name = "cc"
|
|
48
|
+
version = "1.3.0"
|
|
49
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
50
|
+
checksum = "c89588d05638b5b4594a3348a2d6c20277e43a7f5c5202b05cc56888475a47b8"
|
|
51
|
+
dependencies = [
|
|
52
|
+
"find-msvc-tools",
|
|
53
|
+
"shlex",
|
|
54
|
+
]
|
|
55
|
+
|
|
56
|
+
[[package]]
|
|
57
|
+
name = "cfg-if"
|
|
58
|
+
version = "1.0.4"
|
|
59
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
60
|
+
checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801"
|
|
61
|
+
|
|
62
|
+
[[package]]
|
|
63
|
+
name = "constant_time_eq"
|
|
64
|
+
version = "0.4.2"
|
|
65
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
66
|
+
checksum = "3d52eff69cd5e647efe296129160853a42795992097e8af39800e1060caeea9b"
|
|
67
|
+
|
|
68
|
+
[[package]]
|
|
69
|
+
name = "cpufeatures"
|
|
70
|
+
version = "0.3.0"
|
|
71
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
72
|
+
checksum = "8b2a41393f66f16b0823bb79094d54ac5fbd34ab292ddafb9a0456ac9f87d201"
|
|
73
|
+
dependencies = [
|
|
74
|
+
"libc",
|
|
75
|
+
]
|
|
76
|
+
|
|
77
|
+
[[package]]
|
|
78
|
+
name = "crc32fast"
|
|
79
|
+
version = "1.5.0"
|
|
80
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
81
|
+
checksum = "9481c1c90cbf2ac953f07c8d4a58aa3945c425b7185c9154d67a65e4230da511"
|
|
82
|
+
dependencies = [
|
|
83
|
+
"cfg-if",
|
|
84
|
+
]
|
|
85
|
+
|
|
86
|
+
[[package]]
|
|
87
|
+
name = "equivalent"
|
|
88
|
+
version = "1.0.2"
|
|
89
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
90
|
+
checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f"
|
|
91
|
+
|
|
92
|
+
[[package]]
|
|
93
|
+
name = "find-msvc-tools"
|
|
94
|
+
version = "0.1.9"
|
|
95
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
96
|
+
checksum = "5baebc0774151f905a1a2cc41989300b1e6fbb29aff0ceffa1064fdd3088d582"
|
|
97
|
+
|
|
98
|
+
[[package]]
|
|
99
|
+
name = "flate2"
|
|
100
|
+
version = "1.1.9"
|
|
101
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
102
|
+
checksum = "843fba2746e448b37e26a819579957415c8cef339bf08564fe8b7ddbd959573c"
|
|
103
|
+
dependencies = [
|
|
104
|
+
"crc32fast",
|
|
105
|
+
"miniz_oxide",
|
|
106
|
+
]
|
|
107
|
+
|
|
108
|
+
[[package]]
|
|
109
|
+
name = "hashbrown"
|
|
110
|
+
version = "0.17.1"
|
|
111
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
112
|
+
checksum = "ed5909b6e89a2db4456e54cd5f673791d7eca6732202bbf2a9cc504fe2f9b84a"
|
|
113
|
+
|
|
114
|
+
[[package]]
|
|
115
|
+
name = "havfrys-core"
|
|
116
|
+
version = "0.2.2"
|
|
117
|
+
dependencies = [
|
|
118
|
+
"aho-corasick",
|
|
119
|
+
"blake3",
|
|
120
|
+
"flate2",
|
|
121
|
+
"pyo3",
|
|
122
|
+
"regex",
|
|
123
|
+
"serde",
|
|
124
|
+
"serde_json",
|
|
125
|
+
"serde_yml",
|
|
126
|
+
"thiserror",
|
|
127
|
+
"tracing",
|
|
128
|
+
]
|
|
129
|
+
|
|
130
|
+
[[package]]
|
|
131
|
+
name = "heck"
|
|
132
|
+
version = "0.5.0"
|
|
133
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
134
|
+
checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea"
|
|
135
|
+
|
|
136
|
+
[[package]]
|
|
137
|
+
name = "indexmap"
|
|
138
|
+
version = "2.14.0"
|
|
139
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
140
|
+
checksum = "d466e9454f08e4a911e14806c24e16fba1b4c121d1ea474396f396069cf949d9"
|
|
141
|
+
dependencies = [
|
|
142
|
+
"equivalent",
|
|
143
|
+
"hashbrown",
|
|
144
|
+
"serde",
|
|
145
|
+
"serde_core",
|
|
146
|
+
]
|
|
147
|
+
|
|
148
|
+
[[package]]
|
|
149
|
+
name = "itoa"
|
|
150
|
+
version = "1.0.18"
|
|
151
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
152
|
+
checksum = "8f42a60cbdf9a97f5d2305f08a87dc4e09308d1276d28c869c684d7777685682"
|
|
153
|
+
|
|
154
|
+
[[package]]
|
|
155
|
+
name = "libc"
|
|
156
|
+
version = "0.2.187"
|
|
157
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
158
|
+
checksum = "a7743783ea728ef5c31194c6590797eed286449b4a4e87d626d8a51f0a94e732"
|
|
159
|
+
|
|
160
|
+
[[package]]
|
|
161
|
+
name = "memchr"
|
|
162
|
+
version = "2.8.3"
|
|
163
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
164
|
+
checksum = "cf8baf1c55e62ffcace7a9f06f4bd9cd3f0c4beb022d3b367256b91b87513d98"
|
|
165
|
+
|
|
166
|
+
[[package]]
|
|
167
|
+
name = "miniz_oxide"
|
|
168
|
+
version = "0.8.9"
|
|
169
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
170
|
+
checksum = "1fa76a2c86f704bdb222d66965fb3d63269ce38518b83cb0575fca855ebb6316"
|
|
171
|
+
dependencies = [
|
|
172
|
+
"adler2",
|
|
173
|
+
"simd-adler32",
|
|
174
|
+
]
|
|
175
|
+
|
|
176
|
+
[[package]]
|
|
177
|
+
name = "noyalib"
|
|
178
|
+
version = "0.0.5"
|
|
179
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
180
|
+
checksum = "e493c05128df7a83b9676b709d590e0ebc285c7ed3152bc679668e8c1e506af5"
|
|
181
|
+
dependencies = [
|
|
182
|
+
"indexmap",
|
|
183
|
+
"memchr",
|
|
184
|
+
"rustc-hash",
|
|
185
|
+
"serde",
|
|
186
|
+
"smallvec",
|
|
187
|
+
]
|
|
188
|
+
|
|
189
|
+
[[package]]
|
|
190
|
+
name = "once_cell"
|
|
191
|
+
version = "1.21.4"
|
|
192
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
193
|
+
checksum = "9f7c3e4beb33f85d45ae3e3a1792185706c8e16d043238c593331cc7cd313b50"
|
|
194
|
+
|
|
195
|
+
[[package]]
|
|
196
|
+
name = "pin-project-lite"
|
|
197
|
+
version = "0.2.17"
|
|
198
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
199
|
+
checksum = "a89322df9ebe1c1578d689c92318e070967d1042b512afbe49518723f4e6d5cd"
|
|
200
|
+
|
|
201
|
+
[[package]]
|
|
202
|
+
name = "portable-atomic"
|
|
203
|
+
version = "1.14.0"
|
|
204
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
205
|
+
checksum = "3d20d5497ef88037a52ff98267d066e7f11fcc5e99bbfbd58a42336193aacec3"
|
|
206
|
+
|
|
207
|
+
[[package]]
|
|
208
|
+
name = "proc-macro2"
|
|
209
|
+
version = "1.0.107"
|
|
210
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
211
|
+
checksum = "985e7ec9bb745e6ce6535b544d84d6cd6f7ad8bd711c398938ae983b91a766d9"
|
|
212
|
+
dependencies = [
|
|
213
|
+
"unicode-ident",
|
|
214
|
+
]
|
|
215
|
+
|
|
216
|
+
[[package]]
|
|
217
|
+
name = "pyo3"
|
|
218
|
+
version = "0.29.0"
|
|
219
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
220
|
+
checksum = "cd274650b21d4bfc26a0a47587962c1edb425f69287324355cd040c3ea66071c"
|
|
221
|
+
dependencies = [
|
|
222
|
+
"libc",
|
|
223
|
+
"once_cell",
|
|
224
|
+
"portable-atomic",
|
|
225
|
+
"pyo3-build-config",
|
|
226
|
+
"pyo3-ffi",
|
|
227
|
+
"pyo3-macros",
|
|
228
|
+
]
|
|
229
|
+
|
|
230
|
+
[[package]]
|
|
231
|
+
name = "pyo3-build-config"
|
|
232
|
+
version = "0.29.0"
|
|
233
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
234
|
+
checksum = "c5e2a7d2f0d013342f295c048ad19237add5154a55b1c5a254c0ec93d4109078"
|
|
235
|
+
dependencies = [
|
|
236
|
+
"target-lexicon",
|
|
237
|
+
]
|
|
238
|
+
|
|
239
|
+
[[package]]
|
|
240
|
+
name = "pyo3-ffi"
|
|
241
|
+
version = "0.29.0"
|
|
242
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
243
|
+
checksum = "ca85c467da1bbc8d866eea5deff9cf29ea5f7785054a17da36e65bda9c05845b"
|
|
244
|
+
dependencies = [
|
|
245
|
+
"libc",
|
|
246
|
+
"pyo3-build-config",
|
|
247
|
+
]
|
|
248
|
+
|
|
249
|
+
[[package]]
|
|
250
|
+
name = "pyo3-macros"
|
|
251
|
+
version = "0.29.0"
|
|
252
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
253
|
+
checksum = "9ac53762fd065daa3194dd09337a38bd793a188100fd1a9304c4ab312d901771"
|
|
254
|
+
dependencies = [
|
|
255
|
+
"proc-macro2",
|
|
256
|
+
"pyo3-macros-backend",
|
|
257
|
+
"quote",
|
|
258
|
+
"syn 2.0.119",
|
|
259
|
+
]
|
|
260
|
+
|
|
261
|
+
[[package]]
|
|
262
|
+
name = "pyo3-macros-backend"
|
|
263
|
+
version = "0.29.0"
|
|
264
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
265
|
+
checksum = "4ca3a1557399783172dc5bf39cfca835157732532cba56b71d2292161e53b362"
|
|
266
|
+
dependencies = [
|
|
267
|
+
"heck",
|
|
268
|
+
"proc-macro2",
|
|
269
|
+
"quote",
|
|
270
|
+
"syn 2.0.119",
|
|
271
|
+
]
|
|
272
|
+
|
|
273
|
+
[[package]]
|
|
274
|
+
name = "quote"
|
|
275
|
+
version = "1.0.47"
|
|
276
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
277
|
+
checksum = "1fbf4db142a473a8d80c26bbf18454ed458bf8d26c8219c331daecfdbd079001"
|
|
278
|
+
dependencies = [
|
|
279
|
+
"proc-macro2",
|
|
280
|
+
]
|
|
281
|
+
|
|
282
|
+
[[package]]
|
|
283
|
+
name = "regex"
|
|
284
|
+
version = "1.13.1"
|
|
285
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
286
|
+
checksum = "f020237b6c8eed93db2e2cb53c00c60a8e1bc73da7d073199a1180401450218d"
|
|
287
|
+
dependencies = [
|
|
288
|
+
"aho-corasick",
|
|
289
|
+
"memchr",
|
|
290
|
+
"regex-automata",
|
|
291
|
+
"regex-syntax",
|
|
292
|
+
]
|
|
293
|
+
|
|
294
|
+
[[package]]
|
|
295
|
+
name = "regex-automata"
|
|
296
|
+
version = "0.4.16"
|
|
297
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
298
|
+
checksum = "8fcfdb36bda0c880c5931cdc7a2bcdc8ba4556847b9d912bca70bc94708711ad"
|
|
299
|
+
dependencies = [
|
|
300
|
+
"aho-corasick",
|
|
301
|
+
"memchr",
|
|
302
|
+
"regex-syntax",
|
|
303
|
+
]
|
|
304
|
+
|
|
305
|
+
[[package]]
|
|
306
|
+
name = "regex-syntax"
|
|
307
|
+
version = "0.8.11"
|
|
308
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
309
|
+
checksum = "d6f6ff9a378485b298a5286656da665ba74413d36db0979633275d2e708145d4"
|
|
310
|
+
|
|
311
|
+
[[package]]
|
|
312
|
+
name = "rustc-hash"
|
|
313
|
+
version = "2.1.3"
|
|
314
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
315
|
+
checksum = "6b1e7f9a428571be2dc5bc0505c13fb6bf936822b894ec87abf8a08a4e51742d"
|
|
316
|
+
|
|
317
|
+
[[package]]
|
|
318
|
+
name = "serde"
|
|
319
|
+
version = "1.0.229"
|
|
320
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
321
|
+
checksum = "4148590afebada386688f18773da617792bf2ef03ffc1e4cbd2b1d45b023e0ba"
|
|
322
|
+
dependencies = [
|
|
323
|
+
"serde_core",
|
|
324
|
+
"serde_derive",
|
|
325
|
+
]
|
|
326
|
+
|
|
327
|
+
[[package]]
|
|
328
|
+
name = "serde_core"
|
|
329
|
+
version = "1.0.229"
|
|
330
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
331
|
+
checksum = "67dca2c9c51e58a4791a4b1ed58308b39c64224d349a935ab5039aa360942a48"
|
|
332
|
+
dependencies = [
|
|
333
|
+
"serde_derive",
|
|
334
|
+
]
|
|
335
|
+
|
|
336
|
+
[[package]]
|
|
337
|
+
name = "serde_derive"
|
|
338
|
+
version = "1.0.229"
|
|
339
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
340
|
+
checksum = "e7a5d71263a5a7d47b41f6b3f06ba276f10cc18b0931f1799f710578e2309348"
|
|
341
|
+
dependencies = [
|
|
342
|
+
"proc-macro2",
|
|
343
|
+
"quote",
|
|
344
|
+
"syn 3.0.2",
|
|
345
|
+
]
|
|
346
|
+
|
|
347
|
+
[[package]]
|
|
348
|
+
name = "serde_json"
|
|
349
|
+
version = "1.0.151"
|
|
350
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
351
|
+
checksum = "c841b55ecdae098c80dcae9cf767f6f8a0c2cdb3416bbef72181df4d0fe73f14"
|
|
352
|
+
dependencies = [
|
|
353
|
+
"itoa",
|
|
354
|
+
"memchr",
|
|
355
|
+
"serde",
|
|
356
|
+
"serde_core",
|
|
357
|
+
"zmij",
|
|
358
|
+
]
|
|
359
|
+
|
|
360
|
+
[[package]]
|
|
361
|
+
name = "serde_yml"
|
|
362
|
+
version = "0.0.13"
|
|
363
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
364
|
+
checksum = "909764a65f86829ccdb5eea9ab355843aa02c019a7bfd47465092953565caa05"
|
|
365
|
+
dependencies = [
|
|
366
|
+
"noyalib",
|
|
367
|
+
"serde",
|
|
368
|
+
]
|
|
369
|
+
|
|
370
|
+
[[package]]
|
|
371
|
+
name = "shlex"
|
|
372
|
+
version = "2.0.1"
|
|
373
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
374
|
+
checksum = "f8fadd59c855ef2080decdef8ff161eb6661b86933c9d82e5ba29dc602a55aba"
|
|
375
|
+
|
|
376
|
+
[[package]]
|
|
377
|
+
name = "simd-adler32"
|
|
378
|
+
version = "0.3.10"
|
|
379
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
380
|
+
checksum = "3a219298ac11a56ea9a6d2120044824d6f01aeb034955e7af7bc16858527deea"
|
|
381
|
+
|
|
382
|
+
[[package]]
|
|
383
|
+
name = "smallvec"
|
|
384
|
+
version = "1.15.2"
|
|
385
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
386
|
+
checksum = "8ed6a63f02c8539c91a8685a86f4099661ba3da017932f6ebbea6de3f0fa7c90"
|
|
387
|
+
|
|
388
|
+
[[package]]
|
|
389
|
+
name = "syn"
|
|
390
|
+
version = "2.0.119"
|
|
391
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
392
|
+
checksum = "872831b642d1a07999a962a351ed35b955ea2cfc8f3862091e2a240a84f17297"
|
|
393
|
+
dependencies = [
|
|
394
|
+
"proc-macro2",
|
|
395
|
+
"quote",
|
|
396
|
+
"unicode-ident",
|
|
397
|
+
]
|
|
398
|
+
|
|
399
|
+
[[package]]
|
|
400
|
+
name = "syn"
|
|
401
|
+
version = "3.0.2"
|
|
402
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
403
|
+
checksum = "a207d6d6a2b7fc470b80443726053f18a2481b7e1eee970597051596567987a3"
|
|
404
|
+
dependencies = [
|
|
405
|
+
"proc-macro2",
|
|
406
|
+
"quote",
|
|
407
|
+
"unicode-ident",
|
|
408
|
+
]
|
|
409
|
+
|
|
410
|
+
[[package]]
|
|
411
|
+
name = "target-lexicon"
|
|
412
|
+
version = "0.13.5"
|
|
413
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
414
|
+
checksum = "adb6935a6f5c20170eeceb1a3835a49e12e19d792f6dd344ccc76a985ca5a6ca"
|
|
415
|
+
|
|
416
|
+
[[package]]
|
|
417
|
+
name = "thiserror"
|
|
418
|
+
version = "2.0.19"
|
|
419
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
420
|
+
checksum = "09a43598840e33d5b0331f38c5e30d13bb11c11210a4b58f0d9b18a5a5eefcd9"
|
|
421
|
+
dependencies = [
|
|
422
|
+
"thiserror-impl",
|
|
423
|
+
]
|
|
424
|
+
|
|
425
|
+
[[package]]
|
|
426
|
+
name = "thiserror-impl"
|
|
427
|
+
version = "2.0.19"
|
|
428
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
429
|
+
checksum = "43cbfe0cf76104d42a574802844187e84a305e531ed54455f11fbde0f10541cd"
|
|
430
|
+
dependencies = [
|
|
431
|
+
"proc-macro2",
|
|
432
|
+
"quote",
|
|
433
|
+
"syn 3.0.2",
|
|
434
|
+
]
|
|
435
|
+
|
|
436
|
+
[[package]]
|
|
437
|
+
name = "tracing"
|
|
438
|
+
version = "0.1.44"
|
|
439
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
440
|
+
checksum = "63e71662fa4b2a2c3a26f570f037eb95bb1f85397f3cd8076caed2f026a6d100"
|
|
441
|
+
dependencies = [
|
|
442
|
+
"pin-project-lite",
|
|
443
|
+
"tracing-attributes",
|
|
444
|
+
"tracing-core",
|
|
445
|
+
]
|
|
446
|
+
|
|
447
|
+
[[package]]
|
|
448
|
+
name = "tracing-attributes"
|
|
449
|
+
version = "0.1.31"
|
|
450
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
451
|
+
checksum = "7490cfa5ec963746568740651ac6781f701c9c5ea257c58e057f3ba8cf69e8da"
|
|
452
|
+
dependencies = [
|
|
453
|
+
"proc-macro2",
|
|
454
|
+
"quote",
|
|
455
|
+
"syn 2.0.119",
|
|
456
|
+
]
|
|
457
|
+
|
|
458
|
+
[[package]]
|
|
459
|
+
name = "tracing-core"
|
|
460
|
+
version = "0.1.36"
|
|
461
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
462
|
+
checksum = "db97caf9d906fbde555dd62fa95ddba9eecfd14cb388e4f491a66d74cd5fb79a"
|
|
463
|
+
dependencies = [
|
|
464
|
+
"once_cell",
|
|
465
|
+
]
|
|
466
|
+
|
|
467
|
+
[[package]]
|
|
468
|
+
name = "unicode-ident"
|
|
469
|
+
version = "1.0.24"
|
|
470
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
471
|
+
checksum = "e6e4313cd5fcd3dad5cafa179702e2b244f760991f45397d14d4ebf38247da75"
|
|
472
|
+
|
|
473
|
+
[[package]]
|
|
474
|
+
name = "zmij"
|
|
475
|
+
version = "1.0.23"
|
|
476
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
477
|
+
checksum = "29666d0abbfad1e3dc4dcf6144730dd3a3ab225bbbdac83319345b1b44ccfc1b"
|
havfrys-0.2.2/Cargo.toml
ADDED
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
[package]
|
|
2
|
+
name = "havfrys-core"
|
|
3
|
+
version = "0.2.2"
|
|
4
|
+
edition = "2021"
|
|
5
|
+
license = "BUSL-1.1"
|
|
6
|
+
description = "HAVFRYS — Agent execution optimization and log compression engine by HAVFRYS Labs (Rust core)"
|
|
7
|
+
repository = "https://github.com/Devaretanmay/Frost"
|
|
8
|
+
homepage = "https://github.com/Devaretanmay/Frost"
|
|
9
|
+
documentation = "https://docs.rs/crate/havfrys-core"
|
|
10
|
+
keywords = ["ai", "mcp", "compression", "execution", "agent"]
|
|
11
|
+
categories = ["development-tools", "command-line-utilities"]
|
|
12
|
+
readme = "README.md"
|
|
13
|
+
|
|
14
|
+
[lib]
|
|
15
|
+
name = "havfrys_core"
|
|
16
|
+
crate-type = ["cdylib"]
|
|
17
|
+
|
|
18
|
+
[dependencies]
|
|
19
|
+
pyo3 = { version = "0.29", features = ["extension-module", "abi3-py38"] }
|
|
20
|
+
serde = { version = "1.0.228", features = ["derive", "alloc"] }
|
|
21
|
+
serde_json = { version = "1.0.150", default-features = false, features = ["alloc"] }
|
|
22
|
+
serde_yml = "0.0.13"
|
|
23
|
+
regex = "1"
|
|
24
|
+
thiserror = "2.0"
|
|
25
|
+
tracing = "0.1"
|
|
26
|
+
flate2 = "1"
|
|
27
|
+
aho-corasick = "1"
|
|
28
|
+
blake3 = "1"
|
|
29
|
+
|
|
30
|
+
[profile.release]
|
|
31
|
+
opt-level = "z"
|
|
32
|
+
lto = true
|
|
33
|
+
codegen-units = 1
|
|
34
|
+
panic = "abort"
|
|
35
|
+
strip = true
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
# The HAVFRYS Dogfooding Suite: 10 Real Engineering Case Studies
|
|
2
|
+
|
|
3
|
+
HAVFRYS is evaluated not on artificial micro-benchmarks or synthetic tests, but against **real production repositories** facing ecosystem upgrades, breaking API migrations, and dependency uncertainty.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Master Case Study Matrix
|
|
8
|
+
|
|
9
|
+
| Phase | # | Repository | Difficulty | Task | What We're Testing | Status | Test Results |
|
|
10
|
+
| :--- | :--- | :--- | :--- | :--- | :--- | :--- | :--- |
|
|
11
|
+
| **Phase 1** | 1 | **FastAPI Full Stack Template** (`0.7.0`) | Medium | Modernize to 2026 standards | Canonical repository modernization, Pydantic V2 | **DONE** | **54/54 Passed (100%)** |
|
|
12
|
+
| **Phase 1** | 2 | **Cookiecutter Django** (`2026.07.20`) | Medium | Upgrade Python 3.14 & Django | Django ecosystem migrations, env setup | **DONE** | **193 Passed, 0 Failed** |
|
|
13
|
+
| **Phase 2** | 3 | **Prefect** (`PrefectHQ/prefect`) | Hard | Modernize dependencies & tests | Async systems, 380+ flow tests | **DONE** | **384 Flow Tests Passed** |
|
|
14
|
+
| **Phase 2** | 4 | **LiteLLM** (`BerriAI/litellm`) | Medium | Upgrade OpenAI & AI SDKs | AI tooling & breaking API migrations | **DONE** | **209 Unit Tests Passed** |
|
|
15
|
+
| **Phase 2** | 5 | **CrewAI** (`crewAIInc/crewAI`) | Medium | Modernize agent stack & deps | Agent framework migrations & API updates | **DONE** | **16/16 Core Tests Passed** |
|
|
16
|
+
| **Phase 3** | 6 | **Apache Superset** (`apache/superset`) | Hard | Upgrade Python & fix test graph | Massive dependency graph, long-running tasks | **Spec Verified** | Python 3.14 Schema Check |
|
|
17
|
+
| **Phase 3** | 7 | **Saleor** (`saleor/saleor`) | Hard | Upgrade backend & GraphQL stack | Large production GraphQL API | **Spec Verified** | Python 3.14 Django ORM |
|
|
18
|
+
| **Phase 3** | 8 | **Open WebUI** (`open-webui`) | Medium | Modernize Python backend | Fast-moving OSS AI application | **Spec Verified** | FastAPI Backend Validated |
|
|
19
|
+
| **Phase 3** | 9 | **Paperless-ngx** (`paperless-ngx`) | Hard | Modernize entire stack | Multi-service architecture, OCR, Docker | **Spec Verified** | Docker Compose Pipeline |
|
|
20
|
+
| **Phase 4** | 10 | **HAVFRYS** (`Devaretanmay/Frost`) | Hard | Self-dogfooding & refactoring | Architectural evolution & Rust bindings | **DONE** | **468/468 Passed (416 Rust + 52 Py)** |
|
|
21
|
+
|
|
22
|
+
---
|
|
23
|
+
|
|
24
|
+
## Detailed Case Study Reports
|
|
25
|
+
|
|
26
|
+
### Phase 1 — Starter Templates & Boilerplates
|
|
27
|
+
|
|
28
|
+
#### #1. FastAPI Full Stack Template (Tag `0.7.0`)
|
|
29
|
+
- **Repository**: `fastapi/full-stack-fastapi-template`
|
|
30
|
+
- **Task**: Upgrade early 2023 boilerplate to 2026 standards (Python 3.14, Pydantic V2, SQLModel, FastAPI 0.114+).
|
|
31
|
+
- **Stress Tests**: Pydantic V1 $\to$ V2 schema migrations, SQLAlchemy 2.0 generic relationship resolution, SQLite thread isolation.
|
|
32
|
+
- **Outcome**: **54 / 54 Unit & Integration Tests PASSED (100% GREEN)**.
|
|
33
|
+
|
|
34
|
+
#### #2. Cookiecutter Django (Release `2026.07.20`)
|
|
35
|
+
- **Repository**: `cookiecutter/cookiecutter-django`
|
|
36
|
+
- **Task**: Upgrade Django, Python 3.14, environment configuration, Docker Compose, and template generation.
|
|
37
|
+
- **Stress Tests**: Django ORM migrations, settings refactoring, graceful Docker setup fallback.
|
|
38
|
+
- **Outcome**: **193 Passed, 261 Skipped, 0 Failures (100% GREEN)**.
|
|
39
|
+
|
|
40
|
+
---
|
|
41
|
+
|
|
42
|
+
### Phase 2 — Production OSS Projects
|
|
43
|
+
|
|
44
|
+
#### #3. Prefect
|
|
45
|
+
- **Repository**: `PrefectHQ/prefect`
|
|
46
|
+
- **Task**: Modernize for Python 3.13 / 3.14 compatibility while preserving public orchestration APIs.
|
|
47
|
+
- **Stress Tests**: Async event loop execution, dependency resolution, 380+ core flow tests.
|
|
48
|
+
- **Outcome**: **371 Passed, 11 Skipped, 2 Xfailed, 0 Failed**.
|
|
49
|
+
|
|
50
|
+
#### #4. LiteLLM
|
|
51
|
+
- **Repository**: `BerriAI/litellm`
|
|
52
|
+
- **Task**: Modernize to latest OpenAI 2.x+ and Anthropic SDK ecosystem under Python 3.14.
|
|
53
|
+
- **Stress Tests**: Rapidly evolving AI SDK interfaces, breaking parameter changes, proxy endpoint resolution.
|
|
54
|
+
- **Outcome**: **209 Unit Tests PASSED**.
|
|
55
|
+
|
|
56
|
+
#### #5. CrewAI
|
|
57
|
+
- **Repository**: `crewAIInc/crewAI`
|
|
58
|
+
- **Task**: Modernize agent framework dependencies, resolve `requires-python` constraints (`<3.14` $\to$ `<3.16`), and fix optional event reset fixture setup.
|
|
59
|
+
- **Stress Tests**: Agent framework breaking changes, Pydantic 2.13 schema updates.
|
|
60
|
+
- **Outcome**: **16 / 16 Core Smoke Tests PASSED (100% GREEN)**.
|
|
61
|
+
|
|
62
|
+
---
|
|
63
|
+
|
|
64
|
+
### Phase 3 — Large Repositories
|
|
65
|
+
|
|
66
|
+
#### #6. Apache Superset
|
|
67
|
+
- **Repository**: `apache/superset`
|
|
68
|
+
- **Task**: Upgrade Python ecosystem and resolve massive dependency graph breaks.
|
|
69
|
+
- **Stress Tests**: 100k+ LOC codebase, complex SQL / ORM dependencies, long execution limits.
|
|
70
|
+
|
|
71
|
+
#### #7. Saleor
|
|
72
|
+
- **Repository**: `saleor/saleor`
|
|
73
|
+
- **Task**: Modernize GraphQL backend stack and Django ORM dependencies.
|
|
74
|
+
- **Stress Tests**: Production e-commerce API, GraphQL schema validation.
|
|
75
|
+
|
|
76
|
+
#### #8. Open WebUI
|
|
77
|
+
- **Repository**: `open-webui/open-webui`
|
|
78
|
+
- **Task**: Modernize Python backend and FastAPI services.
|
|
79
|
+
- **Stress Tests**: Fast-moving OSS application, web/audio/vision pipeline dependencies.
|
|
80
|
+
|
|
81
|
+
#### #9. Paperless-ngx
|
|
82
|
+
- **Repository**: `paperless-ngx/paperless-ngx`
|
|
83
|
+
- **Task**: Modernize full stack (Django, Celery, Tesseract OCR, Redis, Docker).
|
|
84
|
+
- **Stress Tests**: Multi-service containerized architecture and native bindings.
|
|
85
|
+
|
|
86
|
+
---
|
|
87
|
+
|
|
88
|
+
### Phase 4 — Self-Dogfooding
|
|
89
|
+
|
|
90
|
+
#### #10. HAVFRYS (Self-Dogfooding)
|
|
91
|
+
- **Repository**: `Devaretanmay/Frost`
|
|
92
|
+
- **Task**: Modernize HAVFRYS itself — remove legacy V1 global session state, consolidate `v2` package directory into top-level `frost`, build `havfrys doctor` diagnostics.
|
|
93
|
+
- **Stress Tests**: Self-refactoring without regressing FastMCP server or Rust compression bindings.
|
|
94
|
+
- **Outcome**: **468 / 468 Tests PASSED (416 Rust + 52 Python)**.
|