pyselfheal-rt 0.3.0__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.
- pyselfheal_rt-0.3.0/.env.example +20 -0
- pyselfheal_rt-0.3.0/CHANGELOG.md +50 -0
- pyselfheal_rt-0.3.0/Cargo.lock +444 -0
- pyselfheal_rt-0.3.0/Cargo.toml +28 -0
- pyselfheal_rt-0.3.0/LICENSE +21 -0
- pyselfheal_rt-0.3.0/MANUAL_TESTING.md +204 -0
- pyselfheal_rt-0.3.0/PKG-INFO +441 -0
- pyselfheal_rt-0.3.0/README.md +404 -0
- pyselfheal_rt-0.3.0/SECURITY.md +92 -0
- pyselfheal_rt-0.3.0/THIRD_PARTY_NOTICES.md +10443 -0
- pyselfheal_rt-0.3.0/examples/demo_app/calculator.py +2 -0
- pyselfheal_rt-0.3.0/examples/demo_app/run_demo.py +37 -0
- pyselfheal_rt-0.3.0/examples/demo_app/run_live_demo.py +65 -0
- pyselfheal_rt-0.3.0/examples/live_calculator.py +221 -0
- pyselfheal_rt-0.3.0/pyproject.toml +75 -0
- pyselfheal_rt-0.3.0/python/selfheal/__init__.py +15 -0
- pyselfheal_rt-0.3.0/python/selfheal/__main__.py +157 -0
- pyselfheal_rt-0.3.0/python/selfheal/_async_support.py +151 -0
- pyselfheal_rt-0.3.0/python/selfheal/_coordination.py +125 -0
- pyselfheal_rt-0.3.0/python/selfheal/_core.pyi +72 -0
- pyselfheal_rt-0.3.0/python/selfheal/_health_worker.py +68 -0
- pyselfheal_rt-0.3.0/python/selfheal/_native.py +24 -0
- pyselfheal_rt-0.3.0/python/selfheal/_process_tree.py +110 -0
- pyselfheal_rt-0.3.0/python/selfheal/_symbols.py +95 -0
- pyselfheal_rt-0.3.0/python/selfheal/_watchdog.py +167 -0
- pyselfheal_rt-0.3.0/python/selfheal/agent.py +369 -0
- pyselfheal_rt-0.3.0/python/selfheal/checks.py +155 -0
- pyselfheal_rt-0.3.0/python/selfheal/config.py +123 -0
- pyselfheal_rt-0.3.0/python/selfheal/diagnostics.py +49 -0
- pyselfheal_rt-0.3.0/python/selfheal/errors.py +5 -0
- pyselfheal_rt-0.3.0/python/selfheal/health_worker.py +125 -0
- pyselfheal_rt-0.3.0/python/selfheal/languages/__init__.py +3 -0
- pyselfheal_rt-0.3.0/python/selfheal/languages/python.py +123 -0
- pyselfheal_rt-0.3.0/python/selfheal/live.py +291 -0
- pyselfheal_rt-0.3.0/python/selfheal/models.py +100 -0
- pyselfheal_rt-0.3.0/python/selfheal/observer.py +29 -0
- pyselfheal_rt-0.3.0/python/selfheal/privacy.py +27 -0
- pyselfheal_rt-0.3.0/python/selfheal/providers/__init__.py +10 -0
- pyselfheal_rt-0.3.0/python/selfheal/providers/base.py +16 -0
- pyselfheal_rt-0.3.0/python/selfheal/providers/compatible.py +207 -0
- pyselfheal_rt-0.3.0/python/selfheal/providers/errors.py +14 -0
- pyselfheal_rt-0.3.0/python/selfheal/providers/mock.py +40 -0
- pyselfheal_rt-0.3.0/python/selfheal/providers/routing.py +89 -0
- pyselfheal_rt-0.3.0/python/selfheal/py.typed +0 -0
- pyselfheal_rt-0.3.0/python/selfheal/registry.py +42 -0
- pyselfheal_rt-0.3.0/python/selfheal/runtime.py +693 -0
- pyselfheal_rt-0.3.0/python/selfheal/scope.py +29 -0
- pyselfheal_rt-0.3.0/python/selfheal/terminal.py +31 -0
- pyselfheal_rt-0.3.0/python/selfheal/timing.py +187 -0
- pyselfheal_rt-0.3.0/scripts/check_dist.py +122 -0
- pyselfheal_rt-0.3.0/scripts/generate_notices.py +77 -0
- pyselfheal_rt-0.3.0/scripts/manual_test.py +117 -0
- pyselfheal_rt-0.3.0/scripts/run_timing_calculator.py +182 -0
- pyselfheal_rt-0.3.0/selfheal.example.toml +38 -0
- pyselfheal_rt-0.3.0/src/audit.rs +55 -0
- pyselfheal_rt-0.3.0/src/engine.rs +287 -0
- pyselfheal_rt-0.3.0/src/error.rs +41 -0
- pyselfheal_rt-0.3.0/src/lib.rs +222 -0
- pyselfheal_rt-0.3.0/src/patch.rs +54 -0
- pyselfheal_rt-0.3.0/src/policy.rs +84 -0
- pyselfheal_rt-0.3.0/src/snapshot.rs +77 -0
- pyselfheal_rt-0.3.0/src/verifier.rs +295 -0
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# Copy to .env in the directory where you run the app.
|
|
2
|
+
# Existing process environment variables take precedence over .env.
|
|
3
|
+
# true selects Groq; false selects OpenAI. Only the selected provider is used.
|
|
4
|
+
SELFHEAL_USE_GROQ=true
|
|
5
|
+
GROQ_API_KEY=
|
|
6
|
+
GROQ_MODEL=openai/gpt-oss-120b
|
|
7
|
+
OPENAI_API_KEY=
|
|
8
|
+
OPENAI_MODEL=
|
|
9
|
+
# Optional legacy ordering when SELFHEAL_USE_GROQ is absent.
|
|
10
|
+
SELFHEAL_PROVIDER_PRIORITY=groq,openai
|
|
11
|
+
|
|
12
|
+
# ONE total repair budget, including provider retries, verification, review and
|
|
13
|
+
# activation. 1..3600 seconds; process env > .env; explicit SDK/TOML values win.
|
|
14
|
+
SELFHEAL_REPAIR_TIMEOUT_SECONDS=180
|
|
15
|
+
# Reserved INSIDE that total for cleanup/rollback (capped at 10% of the total).
|
|
16
|
+
SELFHEAL_TIMEOUT_CLEANUP_SECONDS=5
|
|
17
|
+
# Fail-stop for uninterruptible native callbacks: terminates the owning app if
|
|
18
|
+
# it cannot unwind by the hard deadline. A process supervisor must restart it.
|
|
19
|
+
# false retains cooperative timeouts but cannot bound arbitrary native stalls.
|
|
20
|
+
SELFHEAL_HARD_TIMEOUT=true
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
## Unreleased
|
|
4
|
+
|
|
5
|
+
- Dotted targets for directly defined Python instance/static/class methods and
|
|
6
|
+
property accessors, with class-cell preservation and descriptor-aware rollback.
|
|
7
|
+
- Developer-owned `HealthSuite`, `ScenarioCheck` and optional Hypothesis-backed
|
|
8
|
+
`PropertyCheck`, including bounded exploration and retained counterexamples.
|
|
9
|
+
- Explicit, bounded `context_files` for read-only cross-module diagnosis, with
|
|
10
|
+
secret checks and stale-context rejection before commit.
|
|
11
|
+
- Native interface marker and offline `selfheal doctor` command to identify
|
|
12
|
+
stale editable extensions before contacting an AI provider.
|
|
13
|
+
- Windows virtualenv workers start the underlying interpreter while retaining
|
|
14
|
+
their environment, so parent ownership and process cleanup use the real PID.
|
|
15
|
+
- Broader CI matrix and release checks for worker files, required dependencies,
|
|
16
|
+
matching versions and rebuilding a wheel from the source distribution.
|
|
17
|
+
- Final validation was stopped at the maintainer's request. These source changes
|
|
18
|
+
require a fresh native build, complete regression runs and installed-wheel
|
|
19
|
+
validation before publication; they are not a verified production release.
|
|
20
|
+
|
|
21
|
+
- Module-level async function dispatch and safe retry on the owning asyncio loop,
|
|
22
|
+
with async health/inspection APIs and async agent bindings and lifecycle.
|
|
23
|
+
- Awaited calls participate in activation coordination; pending repairs drain
|
|
24
|
+
active calls and pause new admissions before changing function code.
|
|
25
|
+
- Cancellation requests abort accepted repairs at safe checkpoints and waits for
|
|
26
|
+
coroutine cleanup and rollback; failed retries cannot recursively request AI.
|
|
27
|
+
- Direct automatic repairs have an hourly transaction limit and failure cooldown,
|
|
28
|
+
alongside the background agent's existing budgets, backoff and suspension.
|
|
29
|
+
- Supplied offline async regression cases and an integration/cancellation guide.
|
|
30
|
+
Tests and native builds remain for maintainer execution; no passing result or
|
|
31
|
+
production-readiness claim is made for these changes.
|
|
32
|
+
|
|
33
|
+
## 0.3.0 — initial PyPI release preparation
|
|
34
|
+
|
|
35
|
+
- Python SDK with registered live targets, developer health contracts, background
|
|
36
|
+
inspection, manual heal/improve commands, previews and opt-in automatic patching.
|
|
37
|
+
- Developer-owned Groq/OpenAI credentials required; `.env` boolean selection,
|
|
38
|
+
safe `ConfigurationError` messages and offline `selfheal check-config` command.
|
|
39
|
+
- Function-body activation preserves module state and function identity. Scope
|
|
40
|
+
checks protect unrelated code; candidate and running health checks gate commit.
|
|
41
|
+
- Same-process activation, retained function-code rollback, source snapshots,
|
|
42
|
+
review decisions, terminal diffs and Rust audit records.
|
|
43
|
+
- Native verification deadline and bounded diagnostics, copied-source import
|
|
44
|
+
paths, atomic source rollback and source-permission preservation.
|
|
45
|
+
- CPython 3.11+ ABI3 packaging, locked dependencies, MIT source license and
|
|
46
|
+
bundled dependency notices, archive checker and manual artifact workflow.
|
|
47
|
+
|
|
48
|
+
Release preparation does not establish a successful build, installed-wheel
|
|
49
|
+
compatibility, live-provider result or production deployment. Run the maintainer
|
|
50
|
+
release checks before publishing this version.
|
|
@@ -0,0 +1,444 @@
|
|
|
1
|
+
# This file is automatically @generated by Cargo.
|
|
2
|
+
# It is not intended for manual editing.
|
|
3
|
+
version = 4
|
|
4
|
+
|
|
5
|
+
[[package]]
|
|
6
|
+
name = "bitflags"
|
|
7
|
+
version = "2.13.2"
|
|
8
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
9
|
+
checksum = "3ded4057c258ba199e2d26386d3af3780957ecaee6c4ef4041c6b4b8b97c0b06"
|
|
10
|
+
|
|
11
|
+
[[package]]
|
|
12
|
+
name = "bumpalo"
|
|
13
|
+
version = "3.20.3"
|
|
14
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
15
|
+
checksum = "72f5acc6cb2ba439de613abc23857ec3d78374d8ed5ac84e9d11336e87da8649"
|
|
16
|
+
|
|
17
|
+
[[package]]
|
|
18
|
+
name = "cfg-if"
|
|
19
|
+
version = "1.0.5"
|
|
20
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
21
|
+
checksum = "4e7648175b45a9a48536d676f68d918270699102aa8dab5496df06904c914600"
|
|
22
|
+
|
|
23
|
+
[[package]]
|
|
24
|
+
name = "errno"
|
|
25
|
+
version = "0.3.14"
|
|
26
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
27
|
+
checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb"
|
|
28
|
+
dependencies = [
|
|
29
|
+
"libc",
|
|
30
|
+
"windows-sys",
|
|
31
|
+
]
|
|
32
|
+
|
|
33
|
+
[[package]]
|
|
34
|
+
name = "fastrand"
|
|
35
|
+
version = "2.5.0"
|
|
36
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
37
|
+
checksum = "da7c62ceae207dd37ea5b845da6a0696c799f85e97da1ab5b7910be3c1c80223"
|
|
38
|
+
|
|
39
|
+
[[package]]
|
|
40
|
+
name = "futures-core"
|
|
41
|
+
version = "0.3.34"
|
|
42
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
43
|
+
checksum = "92d699e522242e69e3003b94ecc1f960f3a5e015aa7c5d7486e65ad01dd94f5e"
|
|
44
|
+
|
|
45
|
+
[[package]]
|
|
46
|
+
name = "futures-task"
|
|
47
|
+
version = "0.3.34"
|
|
48
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
49
|
+
checksum = "cd417de3d1d015fc3bfd2b1ea46dfc7bab72ef86f1cc7cc9c78e728b34a6d1fd"
|
|
50
|
+
|
|
51
|
+
[[package]]
|
|
52
|
+
name = "futures-util"
|
|
53
|
+
version = "0.3.34"
|
|
54
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
55
|
+
checksum = "0d50a92467f8ba5dd6e3ee5d4bd04d73ab2e4e1c44474a0674821dfce14b79bc"
|
|
56
|
+
dependencies = [
|
|
57
|
+
"futures-core",
|
|
58
|
+
"futures-task",
|
|
59
|
+
"pin-project-lite",
|
|
60
|
+
"slab",
|
|
61
|
+
]
|
|
62
|
+
|
|
63
|
+
[[package]]
|
|
64
|
+
name = "getrandom"
|
|
65
|
+
version = "0.4.3"
|
|
66
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
67
|
+
checksum = "300e883d756b2e4ec94e02791f39b04b522276138852cfc41d9fb7e904106099"
|
|
68
|
+
dependencies = [
|
|
69
|
+
"cfg-if",
|
|
70
|
+
"libc",
|
|
71
|
+
"r-efi",
|
|
72
|
+
]
|
|
73
|
+
|
|
74
|
+
[[package]]
|
|
75
|
+
name = "heck"
|
|
76
|
+
version = "0.5.0"
|
|
77
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
78
|
+
checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea"
|
|
79
|
+
|
|
80
|
+
[[package]]
|
|
81
|
+
name = "itoa"
|
|
82
|
+
version = "1.0.18"
|
|
83
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
84
|
+
checksum = "8f42a60cbdf9a97f5d2305f08a87dc4e09308d1276d28c869c684d7777685682"
|
|
85
|
+
|
|
86
|
+
[[package]]
|
|
87
|
+
name = "js-sys"
|
|
88
|
+
version = "0.3.106"
|
|
89
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
90
|
+
checksum = "7883d941dae510fb2d978fc3fe018c71c9e2892fd38854de3e8b92c2e5ad9cc5"
|
|
91
|
+
dependencies = [
|
|
92
|
+
"cfg-if",
|
|
93
|
+
"futures-util",
|
|
94
|
+
"wasm-bindgen",
|
|
95
|
+
]
|
|
96
|
+
|
|
97
|
+
[[package]]
|
|
98
|
+
name = "libc"
|
|
99
|
+
version = "0.2.190"
|
|
100
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
101
|
+
checksum = "ce5d3ddc6d3fa000eb1536d85e147bfe31aacaba692ed6a876f95cb7c855be78"
|
|
102
|
+
|
|
103
|
+
[[package]]
|
|
104
|
+
name = "linux-raw-sys"
|
|
105
|
+
version = "0.12.1"
|
|
106
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
107
|
+
checksum = "32a66949e030da00e8c7d4434b251670a91556f4144941d37452769c25d58a53"
|
|
108
|
+
|
|
109
|
+
[[package]]
|
|
110
|
+
name = "memchr"
|
|
111
|
+
version = "2.8.3"
|
|
112
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
113
|
+
checksum = "cf8baf1c55e62ffcace7a9f06f4bd9cd3f0c4beb022d3b367256b91b87513d98"
|
|
114
|
+
|
|
115
|
+
[[package]]
|
|
116
|
+
name = "once_cell"
|
|
117
|
+
version = "1.21.4"
|
|
118
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
119
|
+
checksum = "9f7c3e4beb33f85d45ae3e3a1792185706c8e16d043238c593331cc7cd313b50"
|
|
120
|
+
|
|
121
|
+
[[package]]
|
|
122
|
+
name = "pin-project-lite"
|
|
123
|
+
version = "0.2.17"
|
|
124
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
125
|
+
checksum = "a89322df9ebe1c1578d689c92318e070967d1042b512afbe49518723f4e6d5cd"
|
|
126
|
+
|
|
127
|
+
[[package]]
|
|
128
|
+
name = "portable-atomic"
|
|
129
|
+
version = "1.15.0"
|
|
130
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
131
|
+
checksum = "05c8b63e8d9609db387f0324918f81d68fe27748f084ef092fb35954d0539a85"
|
|
132
|
+
|
|
133
|
+
[[package]]
|
|
134
|
+
name = "proc-macro2"
|
|
135
|
+
version = "1.0.107"
|
|
136
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
137
|
+
checksum = "985e7ec9bb745e6ce6535b544d84d6cd6f7ad8bd711c398938ae983b91a766d9"
|
|
138
|
+
dependencies = [
|
|
139
|
+
"unicode-ident",
|
|
140
|
+
]
|
|
141
|
+
|
|
142
|
+
[[package]]
|
|
143
|
+
name = "pyo3"
|
|
144
|
+
version = "0.29.3"
|
|
145
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
146
|
+
checksum = "700d18fa267b73b9b521fd7e13580e2f446916f176cacee1ab63fcc8191f1655"
|
|
147
|
+
dependencies = [
|
|
148
|
+
"libc",
|
|
149
|
+
"once_cell",
|
|
150
|
+
"portable-atomic",
|
|
151
|
+
"pyo3-build-config",
|
|
152
|
+
"pyo3-ffi",
|
|
153
|
+
"pyo3-macros",
|
|
154
|
+
]
|
|
155
|
+
|
|
156
|
+
[[package]]
|
|
157
|
+
name = "pyo3-build-config"
|
|
158
|
+
version = "0.29.3"
|
|
159
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
160
|
+
checksum = "7b3fc0c4d08f6bb10e71fe39dfb9e2f59c6eb6854e22ec8092f50c69a4499adb"
|
|
161
|
+
dependencies = [
|
|
162
|
+
"target-lexicon",
|
|
163
|
+
]
|
|
164
|
+
|
|
165
|
+
[[package]]
|
|
166
|
+
name = "pyo3-ffi"
|
|
167
|
+
version = "0.29.3"
|
|
168
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
169
|
+
checksum = "dfc0b8e19df29aad7086cf977bb0c2a2f143e30567eb113e9cf72b62ca698330"
|
|
170
|
+
dependencies = [
|
|
171
|
+
"libc",
|
|
172
|
+
"pyo3-build-config",
|
|
173
|
+
]
|
|
174
|
+
|
|
175
|
+
[[package]]
|
|
176
|
+
name = "pyo3-macros"
|
|
177
|
+
version = "0.29.3"
|
|
178
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
179
|
+
checksum = "6100e8a4b5eba53afaa5ed078364851a0b2499c553a44c31026b929049b49dc6"
|
|
180
|
+
dependencies = [
|
|
181
|
+
"proc-macro2",
|
|
182
|
+
"pyo3-macros-backend",
|
|
183
|
+
"quote",
|
|
184
|
+
"syn 2.0.119",
|
|
185
|
+
]
|
|
186
|
+
|
|
187
|
+
[[package]]
|
|
188
|
+
name = "pyo3-macros-backend"
|
|
189
|
+
version = "0.29.3"
|
|
190
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
191
|
+
checksum = "6143877a16e82b5a727b7127ff4cd86858a24a28d745d72f43e6f227c7b1bdb3"
|
|
192
|
+
dependencies = [
|
|
193
|
+
"heck",
|
|
194
|
+
"proc-macro2",
|
|
195
|
+
"quote",
|
|
196
|
+
"syn 2.0.119",
|
|
197
|
+
]
|
|
198
|
+
|
|
199
|
+
[[package]]
|
|
200
|
+
name = "quote"
|
|
201
|
+
version = "1.0.47"
|
|
202
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
203
|
+
checksum = "1fbf4db142a473a8d80c26bbf18454ed458bf8d26c8219c331daecfdbd079001"
|
|
204
|
+
dependencies = [
|
|
205
|
+
"proc-macro2",
|
|
206
|
+
]
|
|
207
|
+
|
|
208
|
+
[[package]]
|
|
209
|
+
name = "r-efi"
|
|
210
|
+
version = "6.0.0"
|
|
211
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
212
|
+
checksum = "f8dcc9c7d52a811697d2151c701e0d08956f92b0e24136cf4cf27b57a6a0d9bf"
|
|
213
|
+
|
|
214
|
+
[[package]]
|
|
215
|
+
name = "rustix"
|
|
216
|
+
version = "1.1.5"
|
|
217
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
218
|
+
checksum = "891efababe418670775f199f0d233d84843c227a0949a883ce15b37c78d6629d"
|
|
219
|
+
dependencies = [
|
|
220
|
+
"bitflags",
|
|
221
|
+
"errno",
|
|
222
|
+
"libc",
|
|
223
|
+
"linux-raw-sys",
|
|
224
|
+
"windows-sys",
|
|
225
|
+
]
|
|
226
|
+
|
|
227
|
+
[[package]]
|
|
228
|
+
name = "rustversion"
|
|
229
|
+
version = "1.0.23"
|
|
230
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
231
|
+
checksum = "cf54715a573b99ac80df0bc206da022bcd442c974952c7b9720069370852e21f"
|
|
232
|
+
|
|
233
|
+
[[package]]
|
|
234
|
+
name = "same-file"
|
|
235
|
+
version = "1.0.6"
|
|
236
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
237
|
+
checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502"
|
|
238
|
+
dependencies = [
|
|
239
|
+
"winapi-util",
|
|
240
|
+
]
|
|
241
|
+
|
|
242
|
+
[[package]]
|
|
243
|
+
name = "selfheal-runtime"
|
|
244
|
+
version = "0.3.0"
|
|
245
|
+
dependencies = [
|
|
246
|
+
"pyo3",
|
|
247
|
+
"serde",
|
|
248
|
+
"serde_json",
|
|
249
|
+
"tempfile",
|
|
250
|
+
"uuid",
|
|
251
|
+
"walkdir",
|
|
252
|
+
]
|
|
253
|
+
|
|
254
|
+
[[package]]
|
|
255
|
+
name = "serde"
|
|
256
|
+
version = "1.0.229"
|
|
257
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
258
|
+
checksum = "4148590afebada386688f18773da617792bf2ef03ffc1e4cbd2b1d45b023e0ba"
|
|
259
|
+
dependencies = [
|
|
260
|
+
"serde_core",
|
|
261
|
+
"serde_derive",
|
|
262
|
+
]
|
|
263
|
+
|
|
264
|
+
[[package]]
|
|
265
|
+
name = "serde_core"
|
|
266
|
+
version = "1.0.229"
|
|
267
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
268
|
+
checksum = "67dca2c9c51e58a4791a4b1ed58308b39c64224d349a935ab5039aa360942a48"
|
|
269
|
+
dependencies = [
|
|
270
|
+
"serde_derive",
|
|
271
|
+
]
|
|
272
|
+
|
|
273
|
+
[[package]]
|
|
274
|
+
name = "serde_derive"
|
|
275
|
+
version = "1.0.229"
|
|
276
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
277
|
+
checksum = "e7a5d71263a5a7d47b41f6b3f06ba276f10cc18b0931f1799f710578e2309348"
|
|
278
|
+
dependencies = [
|
|
279
|
+
"proc-macro2",
|
|
280
|
+
"quote",
|
|
281
|
+
"syn 3.0.6",
|
|
282
|
+
]
|
|
283
|
+
|
|
284
|
+
[[package]]
|
|
285
|
+
name = "serde_json"
|
|
286
|
+
version = "1.0.151"
|
|
287
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
288
|
+
checksum = "c841b55ecdae098c80dcae9cf767f6f8a0c2cdb3416bbef72181df4d0fe73f14"
|
|
289
|
+
dependencies = [
|
|
290
|
+
"itoa",
|
|
291
|
+
"memchr",
|
|
292
|
+
"serde",
|
|
293
|
+
"serde_core",
|
|
294
|
+
"zmij",
|
|
295
|
+
]
|
|
296
|
+
|
|
297
|
+
[[package]]
|
|
298
|
+
name = "slab"
|
|
299
|
+
version = "0.4.12"
|
|
300
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
301
|
+
checksum = "0c790de23124f9ab44544d7ac05d60440adc586479ce501c1d6d7da3cd8c9cf5"
|
|
302
|
+
|
|
303
|
+
[[package]]
|
|
304
|
+
name = "syn"
|
|
305
|
+
version = "2.0.119"
|
|
306
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
307
|
+
checksum = "872831b642d1a07999a962a351ed35b955ea2cfc8f3862091e2a240a84f17297"
|
|
308
|
+
dependencies = [
|
|
309
|
+
"proc-macro2",
|
|
310
|
+
"quote",
|
|
311
|
+
"unicode-ident",
|
|
312
|
+
]
|
|
313
|
+
|
|
314
|
+
[[package]]
|
|
315
|
+
name = "syn"
|
|
316
|
+
version = "3.0.6"
|
|
317
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
318
|
+
checksum = "8593e8e72159ed2257d083c7a454a85cbf854f37a0966d8d483aff8c8a3ebcee"
|
|
319
|
+
dependencies = [
|
|
320
|
+
"proc-macro2",
|
|
321
|
+
"quote",
|
|
322
|
+
"unicode-ident",
|
|
323
|
+
]
|
|
324
|
+
|
|
325
|
+
[[package]]
|
|
326
|
+
name = "target-lexicon"
|
|
327
|
+
version = "0.13.5"
|
|
328
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
329
|
+
checksum = "adb6935a6f5c20170eeceb1a3835a49e12e19d792f6dd344ccc76a985ca5a6ca"
|
|
330
|
+
|
|
331
|
+
[[package]]
|
|
332
|
+
name = "tempfile"
|
|
333
|
+
version = "3.27.0"
|
|
334
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
335
|
+
checksum = "32497e9a4c7b38532efcdebeef879707aa9f794296a4f0244f6f69e9bc8574bd"
|
|
336
|
+
dependencies = [
|
|
337
|
+
"fastrand",
|
|
338
|
+
"getrandom",
|
|
339
|
+
"once_cell",
|
|
340
|
+
"rustix",
|
|
341
|
+
"windows-sys",
|
|
342
|
+
]
|
|
343
|
+
|
|
344
|
+
[[package]]
|
|
345
|
+
name = "unicode-ident"
|
|
346
|
+
version = "1.0.26"
|
|
347
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
348
|
+
checksum = "d245f478577f809a851594d02313b640fb437e0bb33866753cff937863096954"
|
|
349
|
+
|
|
350
|
+
[[package]]
|
|
351
|
+
name = "uuid"
|
|
352
|
+
version = "1.27.0"
|
|
353
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
354
|
+
checksum = "97277d36b9c3ace13e58fa6e753f8b0bbbf302a18dd193240d70f9e29681059a"
|
|
355
|
+
dependencies = [
|
|
356
|
+
"getrandom",
|
|
357
|
+
"js-sys",
|
|
358
|
+
"wasm-bindgen",
|
|
359
|
+
]
|
|
360
|
+
|
|
361
|
+
[[package]]
|
|
362
|
+
name = "walkdir"
|
|
363
|
+
version = "2.5.0"
|
|
364
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
365
|
+
checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b"
|
|
366
|
+
dependencies = [
|
|
367
|
+
"same-file",
|
|
368
|
+
"winapi-util",
|
|
369
|
+
]
|
|
370
|
+
|
|
371
|
+
[[package]]
|
|
372
|
+
name = "wasm-bindgen"
|
|
373
|
+
version = "0.2.129"
|
|
374
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
375
|
+
checksum = "9bb54f33acc68fd454578d9820b0bde1a1a3d17aa17bb7b6595806d02886d409"
|
|
376
|
+
dependencies = [
|
|
377
|
+
"cfg-if",
|
|
378
|
+
"once_cell",
|
|
379
|
+
"rustversion",
|
|
380
|
+
"wasm-bindgen-macro",
|
|
381
|
+
"wasm-bindgen-shared",
|
|
382
|
+
]
|
|
383
|
+
|
|
384
|
+
[[package]]
|
|
385
|
+
name = "wasm-bindgen-macro"
|
|
386
|
+
version = "0.2.129"
|
|
387
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
388
|
+
checksum = "2e29d0c35b16e224a7eeb5cd2d25e3e1968fbd65604117b44d3b789d00ee8535"
|
|
389
|
+
dependencies = [
|
|
390
|
+
"quote",
|
|
391
|
+
"wasm-bindgen-macro-support",
|
|
392
|
+
]
|
|
393
|
+
|
|
394
|
+
[[package]]
|
|
395
|
+
name = "wasm-bindgen-macro-support"
|
|
396
|
+
version = "0.2.129"
|
|
397
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
398
|
+
checksum = "6f501a8bc3719dba86ef8ae4728879c08001bea749eb1333ac5b91e040e2a6b7"
|
|
399
|
+
dependencies = [
|
|
400
|
+
"bumpalo",
|
|
401
|
+
"proc-macro2",
|
|
402
|
+
"quote",
|
|
403
|
+
"syn 3.0.6",
|
|
404
|
+
"wasm-bindgen-shared",
|
|
405
|
+
]
|
|
406
|
+
|
|
407
|
+
[[package]]
|
|
408
|
+
name = "wasm-bindgen-shared"
|
|
409
|
+
version = "0.2.129"
|
|
410
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
411
|
+
checksum = "23f0c9c52aa7cd7d77769a4cfe2a9adb1b331f489a41d912ce14513d5ab995c6"
|
|
412
|
+
dependencies = [
|
|
413
|
+
"unicode-ident",
|
|
414
|
+
]
|
|
415
|
+
|
|
416
|
+
[[package]]
|
|
417
|
+
name = "winapi-util"
|
|
418
|
+
version = "0.1.11"
|
|
419
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
420
|
+
checksum = "c2a7b1c03c876122aa43f3020e6c3c3ee5c05081c9a00739faf7503aeba10d22"
|
|
421
|
+
dependencies = [
|
|
422
|
+
"windows-sys",
|
|
423
|
+
]
|
|
424
|
+
|
|
425
|
+
[[package]]
|
|
426
|
+
name = "windows-link"
|
|
427
|
+
version = "0.2.1"
|
|
428
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
429
|
+
checksum = "f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5"
|
|
430
|
+
|
|
431
|
+
[[package]]
|
|
432
|
+
name = "windows-sys"
|
|
433
|
+
version = "0.61.2"
|
|
434
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
435
|
+
checksum = "ae137229bcbd6cdf0f7b80a31df61766145077ddf49416a728b02cb3921ff3fc"
|
|
436
|
+
dependencies = [
|
|
437
|
+
"windows-link",
|
|
438
|
+
]
|
|
439
|
+
|
|
440
|
+
[[package]]
|
|
441
|
+
name = "zmij"
|
|
442
|
+
version = "1.0.23"
|
|
443
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
444
|
+
checksum = "29666d0abbfad1e3dc4dcf6144730dd3a3ab225bbbdac83319345b1b44ccfc1b"
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
[package]
|
|
2
|
+
name = "selfheal-runtime"
|
|
3
|
+
version = "0.3.0"
|
|
4
|
+
edition = "2021"
|
|
5
|
+
description = "Rust core for a provider-independent self-healing Python application runtime"
|
|
6
|
+
license = "MIT"
|
|
7
|
+
publish = false
|
|
8
|
+
include = [
|
|
9
|
+
"src/**", "python/selfheal/**/*.py", "python/selfheal/**/*.pyi",
|
|
10
|
+
"python/selfheal/py.typed", "Cargo.toml", "Cargo.lock", "pyproject.toml",
|
|
11
|
+
"README.md", "LICENSE", "THIRD_PARTY_NOTICES.md", "SECURITY.md", "CHANGELOG.md",
|
|
12
|
+
]
|
|
13
|
+
readme = "README.md"
|
|
14
|
+
|
|
15
|
+
[lib]
|
|
16
|
+
name = "_core"
|
|
17
|
+
crate-type = ["cdylib", "rlib"]
|
|
18
|
+
|
|
19
|
+
[dependencies]
|
|
20
|
+
pyo3 = { version = "0.29", features = ["abi3-py311"] }
|
|
21
|
+
serde = { version = "1", features = ["derive"] }
|
|
22
|
+
serde_json = "1"
|
|
23
|
+
tempfile = "3"
|
|
24
|
+
uuid = { version = "1", features = ["v4"] }
|
|
25
|
+
walkdir = "2"
|
|
26
|
+
|
|
27
|
+
[dev-dependencies]
|
|
28
|
+
tempfile = "3"
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 SelfHeal Runtime Contributors
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|