vsh-python 0.3.1__tar.gz → 0.4.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.
- {vsh_python-0.3.1 → vsh_python-0.4.0}/Cargo.lock +70 -44
- {vsh_python-0.3.1 → vsh_python-0.4.0}/Cargo.toml +15 -14
- {vsh_python-0.3.1 → vsh_python-0.4.0}/PKG-INFO +43 -16
- {vsh_python-0.3.1 → vsh_python-0.4.0}/README.md +42 -15
- {vsh_python-0.3.1 → vsh_python-0.4.0}/THIRD_PARTY_NOTICES.md +2 -2
- {vsh_python-0.3.1 → vsh_python-0.4.0}/crates/vbash/Cargo.toml +1 -0
- vsh_python-0.4.0/crates/vbash/README.md +195 -0
- {vsh_python-0.3.1 → vsh_python-0.4.0}/crates/vbash/examples/native_benchmark.rs +28 -0
- vsh_python-0.4.0/crates/vbash/examples/staged_release.monty +11 -0
- vsh_python-0.4.0/crates/vbash/examples/staged_release.rs +79 -0
- {vsh_python-0.3.1 → vsh_python-0.4.0}/crates/vbash/src/lib.rs +1 -1
- {vsh_python-0.3.1 → vsh_python-0.4.0}/crates/vsh/Cargo.toml +2 -1
- vsh_python-0.4.0/crates/vsh/README.md +195 -0
- {vsh_python-0.3.1 → vsh_python-0.4.0}/crates/vsh-commit/Cargo.toml +1 -0
- vsh_python-0.4.0/crates/vsh-commit/README.md +195 -0
- {vsh_python-0.3.1 → vsh_python-0.4.0}/crates/vsh-commit/src/tests.rs +4 -0
- {vsh_python-0.3.1 → vsh_python-0.4.0}/crates/vsh-monty/Cargo.toml +4 -4
- vsh_python-0.4.0/crates/vsh-monty/README.md +195 -0
- {vsh_python-0.3.1 → vsh_python-0.4.0}/crates/vsh-monty/src/lib.rs +336 -37
- vsh_python-0.4.0/crates/vsh-monty/src/tools.rs +1085 -0
- {vsh_python-0.3.1 → vsh_python-0.4.0}/crates/vsh-monty/src/worker.rs +72 -28
- {vsh_python-0.3.1 → vsh_python-0.4.0}/crates/vsh-policy/Cargo.toml +1 -0
- vsh_python-0.4.0/crates/vsh-policy/README.md +195 -0
- vsh_python-0.4.0/crates/vsh-policy/examples/policy_benchmark.rs +58 -0
- {vsh_python-0.3.1 → vsh_python-0.4.0}/crates/vsh-policy/src/lib.rs +146 -27
- {vsh_python-0.3.1 → vsh_python-0.4.0}/crates/vsh-python/Cargo.toml +2 -1
- vsh_python-0.4.0/crates/vsh-python/README.md +195 -0
- {vsh_python-0.3.1 → vsh_python-0.4.0}/crates/vsh-python/src/lib.rs +2 -2
- {vsh_python-0.3.1 → vsh_python-0.4.0}/crates/vsh-store/Cargo.toml +1 -0
- vsh_python-0.4.0/crates/vsh-store/README.md +195 -0
- {vsh_python-0.3.1 → vsh_python-0.4.0}/crates/vsh-types/Cargo.toml +1 -0
- vsh_python-0.4.0/crates/vsh-types/README.md +195 -0
- {vsh_python-0.3.1 → vsh_python-0.4.0}/crates/vsh-types/src/lib.rs +84 -1
- {vsh_python-0.3.1 → vsh_python-0.4.0}/crates/vsh-vfs/Cargo.toml +1 -0
- vsh_python-0.4.0/crates/vsh-vfs/README.md +195 -0
- {vsh_python-0.3.1 → vsh_python-0.4.0}/crates/vsh-vfs/src/lib.rs +89 -20
- {vsh_python-0.3.1 → vsh_python-0.4.0}/crates/vsh-worker/Cargo.toml +2 -1
- vsh_python-0.4.0/crates/vsh-worker/README.md +195 -0
- {vsh_python-0.3.1 → vsh_python-0.4.0}/crates/vsh-worker/src/child.rs +73 -17
- {vsh_python-0.3.1 → vsh_python-0.4.0}/crates/vsh-worker/src/main.rs +1 -1
- {vsh_python-0.3.1 → vsh_python-0.4.0}/crates/vsh-worker/tests/subprocess.rs +60 -0
- {vsh_python-0.3.1 → vsh_python-0.4.0}/pyproject.toml +5 -1
- {vsh_python-0.3.1 → vsh_python-0.4.0}/scripts/vsh_build_backend.py +1 -1
- {vsh_python-0.3.1 → vsh_python-0.4.0}/src/vsh/mcp/codemode_server.py +6 -2
- {vsh_python-0.3.1 → vsh_python-0.4.0}/src/vsh/mcp/prompts.py +4 -0
- {vsh_python-0.3.1 → vsh_python-0.4.0}/LICENSE +0 -0
- {vsh_python-0.3.1 → vsh_python-0.4.0}/crates/vbash/src/artifact.rs +0 -0
- {vsh_python-0.3.1 → vsh_python-0.4.0}/crates/vbash/src/runtime.rs +0 -0
- {vsh_python-0.3.1 → vsh_python-0.4.0}/crates/vsh/src/lib.rs +0 -0
- {vsh_python-0.3.1 → vsh_python-0.4.0}/crates/vsh-commit/src/committer.rs +0 -0
- {vsh_python-0.3.1 → vsh_python-0.4.0}/crates/vsh-commit/src/host.rs +0 -0
- {vsh_python-0.3.1 → vsh_python-0.4.0}/crates/vsh-commit/src/journal.rs +0 -0
- {vsh_python-0.3.1 → vsh_python-0.4.0}/crates/vsh-commit/src/lib.rs +0 -0
- {vsh_python-0.3.1 → vsh_python-0.4.0}/crates/vsh-commit/src/plan.rs +0 -0
- {vsh_python-0.3.1 → vsh_python-0.4.0}/crates/vsh-store/src/directory.rs +0 -0
- {vsh_python-0.3.1 → vsh_python-0.4.0}/crates/vsh-store/src/lib.rs +0 -0
- {vsh_python-0.3.1 → vsh_python-0.4.0}/crates/vsh-store/src/persistent.rs +0 -0
- {vsh_python-0.3.1 → vsh_python-0.4.0}/crates/vsh-worker/src/lib.rs +0 -0
- {vsh_python-0.3.1 → vsh_python-0.4.0}/rust-toolchain.toml +0 -0
- {vsh_python-0.3.1 → vsh_python-0.4.0}/src/vsh/__init__.py +0 -0
- {vsh_python-0.3.1 → vsh_python-0.4.0}/src/vsh/__main__.py +0 -0
- {vsh_python-0.3.1 → vsh_python-0.4.0}/src/vsh/_native.pyi +0 -0
- {vsh_python-0.3.1 → vsh_python-0.4.0}/src/vsh/_version.py +0 -0
- {vsh_python-0.3.1 → vsh_python-0.4.0}/src/vsh/cli.py +0 -0
- {vsh_python-0.3.1 → vsh_python-0.4.0}/src/vsh/mcp/__init__.py +0 -0
- {vsh_python-0.3.1 → vsh_python-0.4.0}/src/vsh/mcp/native_tools.py +0 -0
- {vsh_python-0.3.1 → vsh_python-0.4.0}/src/vsh/mcp/server.py +0 -0
- {vsh_python-0.3.1 → vsh_python-0.4.0}/src/vsh/mcp/surface.py +0 -0
- {vsh_python-0.3.1 → vsh_python-0.4.0}/src/vsh/py.typed +0 -0
|
@@ -245,6 +245,18 @@ version = "1.0.4"
|
|
|
245
245
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
246
246
|
checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801"
|
|
247
247
|
|
|
248
|
+
[[package]]
|
|
249
|
+
name = "char_str"
|
|
250
|
+
version = "0.0.2"
|
|
251
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
252
|
+
checksum = "576ba56f6ca18ebb069d0d07260407171712aff4dfe15ee3f8982dc16a455bcf"
|
|
253
|
+
dependencies = [
|
|
254
|
+
"castaway",
|
|
255
|
+
"get-size2",
|
|
256
|
+
"itoa",
|
|
257
|
+
"ryu",
|
|
258
|
+
]
|
|
259
|
+
|
|
248
260
|
[[package]]
|
|
249
261
|
name = "chrono"
|
|
250
262
|
version = "0.4.45"
|
|
@@ -276,16 +288,15 @@ checksum = "2550f75b8cfac212855f6b1885455df8eaee8fe8e246b647d69146142e016084"
|
|
|
276
288
|
|
|
277
289
|
[[package]]
|
|
278
290
|
name = "compact_str"
|
|
279
|
-
version = "0.
|
|
291
|
+
version = "0.10.0"
|
|
280
292
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
281
|
-
checksum = "
|
|
293
|
+
checksum = "79fcda08c33bb58b97008b2cdada6622500e949e060f5913361763121abd2416"
|
|
282
294
|
dependencies = [
|
|
283
295
|
"castaway",
|
|
284
296
|
"cfg-if",
|
|
285
297
|
"itoa",
|
|
286
|
-
"rustversion",
|
|
287
|
-
"ryu",
|
|
288
298
|
"static_assertions",
|
|
299
|
+
"zmij",
|
|
289
300
|
]
|
|
290
301
|
|
|
291
302
|
[[package]]
|
|
@@ -337,6 +348,12 @@ dependencies = [
|
|
|
337
348
|
"syn 3.0.4",
|
|
338
349
|
]
|
|
339
350
|
|
|
351
|
+
[[package]]
|
|
352
|
+
name = "drop_bomb"
|
|
353
|
+
version = "0.1.5"
|
|
354
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
355
|
+
checksum = "9bda8e21c04aca2ae33ffc2fd8c23134f3cac46db123ba97bd9d3f3b8a4a85e1"
|
|
356
|
+
|
|
340
357
|
[[package]]
|
|
341
358
|
name = "either"
|
|
342
359
|
version = "1.18.0"
|
|
@@ -448,9 +465,9 @@ dependencies = [
|
|
|
448
465
|
|
|
449
466
|
[[package]]
|
|
450
467
|
name = "get-size2"
|
|
451
|
-
version = "0.10.
|
|
468
|
+
version = "0.10.3"
|
|
452
469
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
453
|
-
checksum = "
|
|
470
|
+
checksum = "b411f34418305908ab15a82ff78958c2a9aee9a272b2a2e663836b20a4e4b9d3"
|
|
454
471
|
dependencies = [
|
|
455
472
|
"compact_str",
|
|
456
473
|
"get-size-derive2",
|
|
@@ -832,13 +849,14 @@ checksum = "cf8baf1c55e62ffcace7a9f06f4bd9cd3f0c4beb022d3b367256b91b87513d98"
|
|
|
832
849
|
|
|
833
850
|
[[package]]
|
|
834
851
|
name = "monty"
|
|
835
|
-
version = "0.0.
|
|
852
|
+
version = "0.0.22"
|
|
836
853
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
837
|
-
checksum = "
|
|
854
|
+
checksum = "a7d13cc6e5bbcadffceadecd5cbe51a765a29451381d6ed760b23933fb714f37"
|
|
838
855
|
dependencies = [
|
|
839
856
|
"ahash",
|
|
840
857
|
"chrono",
|
|
841
858
|
"fancy-regex",
|
|
859
|
+
"getrandom 0.3.4",
|
|
842
860
|
"hashbrown 0.16.1",
|
|
843
861
|
"indexmap",
|
|
844
862
|
"itertools 0.14.0",
|
|
@@ -869,18 +887,18 @@ dependencies = [
|
|
|
869
887
|
|
|
870
888
|
[[package]]
|
|
871
889
|
name = "monty-alloc"
|
|
872
|
-
version = "0.0.
|
|
890
|
+
version = "0.0.22"
|
|
873
891
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
874
|
-
checksum = "
|
|
892
|
+
checksum = "a0caad99e04b35d032ebd8c51a2c157255035d0a6c106960420c35adb80a9827"
|
|
875
893
|
dependencies = [
|
|
876
894
|
"monty-types",
|
|
877
895
|
]
|
|
878
896
|
|
|
879
897
|
[[package]]
|
|
880
898
|
name = "monty-macros"
|
|
881
|
-
version = "0.0.
|
|
899
|
+
version = "0.0.22"
|
|
882
900
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
883
|
-
checksum = "
|
|
901
|
+
checksum = "017842a9c6539f60ced38edab5b75a3c35223e908e9221c3b5c1a08537e21d2b"
|
|
884
902
|
dependencies = [
|
|
885
903
|
"proc-macro2",
|
|
886
904
|
"quote",
|
|
@@ -889,9 +907,9 @@ dependencies = [
|
|
|
889
907
|
|
|
890
908
|
[[package]]
|
|
891
909
|
name = "monty-proto"
|
|
892
|
-
version = "0.0.
|
|
910
|
+
version = "0.0.22"
|
|
893
911
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
894
|
-
checksum = "
|
|
912
|
+
checksum = "f08c2cfd327e6fcb45f7e2c4dae9bbe9aa8a2cc99c292798a8a11531b30ebd90"
|
|
895
913
|
dependencies = [
|
|
896
914
|
"monty-types",
|
|
897
915
|
"num-bigint",
|
|
@@ -901,9 +919,9 @@ dependencies = [
|
|
|
901
919
|
|
|
902
920
|
[[package]]
|
|
903
921
|
name = "monty-types"
|
|
904
|
-
version = "0.0.
|
|
922
|
+
version = "0.0.22"
|
|
905
923
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
906
|
-
checksum = "
|
|
924
|
+
checksum = "7cde2e299aa36171838b74a67ef7d3fbd116174ccaf2cbdd537a42a9658c024d"
|
|
907
925
|
dependencies = [
|
|
908
926
|
"chrono",
|
|
909
927
|
"monty-macros",
|
|
@@ -1234,13 +1252,14 @@ checksum = "d6f6ff9a378485b298a5286656da665ba74413d36db0979633275d2e708145d4"
|
|
|
1234
1252
|
|
|
1235
1253
|
[[package]]
|
|
1236
1254
|
name = "ruff_python_ast"
|
|
1237
|
-
version = "0.0.
|
|
1255
|
+
version = "0.0.9"
|
|
1238
1256
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1239
|
-
checksum = "
|
|
1257
|
+
checksum = "2ca96e1ff7a76b0235df556968ae10e5f8a00a0efa3061f247ad18365f769c2d"
|
|
1240
1258
|
dependencies = [
|
|
1241
1259
|
"aho-corasick",
|
|
1242
1260
|
"arrayvec",
|
|
1243
1261
|
"bitflags",
|
|
1262
|
+
"char_str",
|
|
1244
1263
|
"compact_str",
|
|
1245
1264
|
"get-size2",
|
|
1246
1265
|
"is-macro",
|
|
@@ -1255,9 +1274,9 @@ dependencies = [
|
|
|
1255
1274
|
|
|
1256
1275
|
[[package]]
|
|
1257
1276
|
name = "ruff_python_codegen"
|
|
1258
|
-
version = "0.0.
|
|
1277
|
+
version = "0.0.9"
|
|
1259
1278
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1260
|
-
checksum = "
|
|
1279
|
+
checksum = "d160278f35f69e31610f068ecac420baaee14be8b1defadc4ea464b5c5523b78"
|
|
1261
1280
|
dependencies = [
|
|
1262
1281
|
"ruff_python_ast",
|
|
1263
1282
|
"ruff_python_literal",
|
|
@@ -1268,9 +1287,9 @@ dependencies = [
|
|
|
1268
1287
|
|
|
1269
1288
|
[[package]]
|
|
1270
1289
|
name = "ruff_python_literal"
|
|
1271
|
-
version = "0.0.
|
|
1290
|
+
version = "0.0.9"
|
|
1272
1291
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1273
|
-
checksum = "
|
|
1292
|
+
checksum = "66ef25a922a0345c97a9eda5896a8bc9313b937b828596c4c65016e206285663"
|
|
1274
1293
|
dependencies = [
|
|
1275
1294
|
"bitflags",
|
|
1276
1295
|
"icu_properties",
|
|
@@ -1280,13 +1299,13 @@ dependencies = [
|
|
|
1280
1299
|
|
|
1281
1300
|
[[package]]
|
|
1282
1301
|
name = "ruff_python_parser"
|
|
1283
|
-
version = "0.0.
|
|
1302
|
+
version = "0.0.9"
|
|
1284
1303
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1285
|
-
checksum = "
|
|
1304
|
+
checksum = "1cf63608d433331007574be9d7fa17f3d99fc4b9305abcd9cf47a8033690628d"
|
|
1286
1305
|
dependencies = [
|
|
1287
1306
|
"bitflags",
|
|
1288
1307
|
"bstr",
|
|
1289
|
-
"
|
|
1308
|
+
"drop_bomb",
|
|
1290
1309
|
"get-size2",
|
|
1291
1310
|
"memchr",
|
|
1292
1311
|
"ruff_python_ast",
|
|
@@ -1302,9 +1321,9 @@ dependencies = [
|
|
|
1302
1321
|
|
|
1303
1322
|
[[package]]
|
|
1304
1323
|
name = "ruff_python_stdlib"
|
|
1305
|
-
version = "0.0.
|
|
1324
|
+
version = "0.0.9"
|
|
1306
1325
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1307
|
-
checksum = "
|
|
1326
|
+
checksum = "cbd1e8d8e6d805f5a39a38ae2c7db3e885ef598fabeea36443f2a35c07f555bc"
|
|
1308
1327
|
dependencies = [
|
|
1309
1328
|
"bitflags",
|
|
1310
1329
|
"unicode-ident",
|
|
@@ -1312,21 +1331,22 @@ dependencies = [
|
|
|
1312
1331
|
|
|
1313
1332
|
[[package]]
|
|
1314
1333
|
name = "ruff_python_trivia"
|
|
1315
|
-
version = "0.0.
|
|
1334
|
+
version = "0.0.9"
|
|
1316
1335
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1317
|
-
checksum = "
|
|
1336
|
+
checksum = "cb21454ef368d9f4f55cc3d42cf262fa61cd4109e3f1c8aeb138d696b74d563d"
|
|
1318
1337
|
dependencies = [
|
|
1319
1338
|
"itertools 0.15.0",
|
|
1320
1339
|
"ruff_source_file",
|
|
1321
1340
|
"ruff_text_size",
|
|
1341
|
+
"rustc-hash",
|
|
1322
1342
|
"unicode-ident",
|
|
1323
1343
|
]
|
|
1324
1344
|
|
|
1325
1345
|
[[package]]
|
|
1326
1346
|
name = "ruff_source_file"
|
|
1327
|
-
version = "0.0.
|
|
1347
|
+
version = "0.0.9"
|
|
1328
1348
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1329
|
-
checksum = "
|
|
1349
|
+
checksum = "9d7b074f9b29744b641588c521c6943534ca6e7c161b2b1299c01d1cc1b860f3"
|
|
1330
1350
|
dependencies = [
|
|
1331
1351
|
"memchr",
|
|
1332
1352
|
"ruff_text_size",
|
|
@@ -1334,9 +1354,9 @@ dependencies = [
|
|
|
1334
1354
|
|
|
1335
1355
|
[[package]]
|
|
1336
1356
|
name = "ruff_text_size"
|
|
1337
|
-
version = "0.0.
|
|
1357
|
+
version = "0.0.9"
|
|
1338
1358
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1339
|
-
checksum = "
|
|
1359
|
+
checksum = "0944e5527042c3e1ef3e79bfed2655fe3ae66433f0112fa38d702e078f549d49"
|
|
1340
1360
|
dependencies = [
|
|
1341
1361
|
"get-size2",
|
|
1342
1362
|
]
|
|
@@ -1666,7 +1686,7 @@ checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be"
|
|
|
1666
1686
|
|
|
1667
1687
|
[[package]]
|
|
1668
1688
|
name = "vbash"
|
|
1669
|
-
version = "0.
|
|
1689
|
+
version = "0.4.0"
|
|
1670
1690
|
dependencies = [
|
|
1671
1691
|
"vsh",
|
|
1672
1692
|
]
|
|
@@ -1679,14 +1699,14 @@ checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a"
|
|
|
1679
1699
|
|
|
1680
1700
|
[[package]]
|
|
1681
1701
|
name = "vsh"
|
|
1682
|
-
version = "0.
|
|
1702
|
+
version = "0.4.0"
|
|
1683
1703
|
dependencies = [
|
|
1684
1704
|
"vsh-runtime",
|
|
1685
1705
|
]
|
|
1686
1706
|
|
|
1687
1707
|
[[package]]
|
|
1688
1708
|
name = "vsh-commit"
|
|
1689
|
-
version = "0.
|
|
1709
|
+
version = "0.4.0"
|
|
1690
1710
|
dependencies = [
|
|
1691
1711
|
"blake3",
|
|
1692
1712
|
"cap-fs-ext",
|
|
@@ -1699,7 +1719,7 @@ dependencies = [
|
|
|
1699
1719
|
|
|
1700
1720
|
[[package]]
|
|
1701
1721
|
name = "vsh-monty"
|
|
1702
|
-
version = "0.
|
|
1722
|
+
version = "0.4.0"
|
|
1703
1723
|
dependencies = [
|
|
1704
1724
|
"get-size2",
|
|
1705
1725
|
"monty",
|
|
@@ -1713,7 +1733,7 @@ dependencies = [
|
|
|
1713
1733
|
|
|
1714
1734
|
[[package]]
|
|
1715
1735
|
name = "vsh-monty-worker"
|
|
1716
|
-
version = "0.
|
|
1736
|
+
version = "0.4.0"
|
|
1717
1737
|
dependencies = [
|
|
1718
1738
|
"monty",
|
|
1719
1739
|
"monty-alloc",
|
|
@@ -1728,7 +1748,7 @@ dependencies = [
|
|
|
1728
1748
|
|
|
1729
1749
|
[[package]]
|
|
1730
1750
|
name = "vsh-policy"
|
|
1731
|
-
version = "0.
|
|
1751
|
+
version = "0.4.0"
|
|
1732
1752
|
dependencies = [
|
|
1733
1753
|
"vsh-store",
|
|
1734
1754
|
"vsh-types",
|
|
@@ -1737,7 +1757,7 @@ dependencies = [
|
|
|
1737
1757
|
|
|
1738
1758
|
[[package]]
|
|
1739
1759
|
name = "vsh-python"
|
|
1740
|
-
version = "0.
|
|
1760
|
+
version = "0.4.0"
|
|
1741
1761
|
dependencies = [
|
|
1742
1762
|
"monty-proto",
|
|
1743
1763
|
"pyo3",
|
|
@@ -1747,7 +1767,7 @@ dependencies = [
|
|
|
1747
1767
|
|
|
1748
1768
|
[[package]]
|
|
1749
1769
|
name = "vsh-runtime"
|
|
1750
|
-
version = "0.
|
|
1770
|
+
version = "0.4.0"
|
|
1751
1771
|
dependencies = [
|
|
1752
1772
|
"postcard",
|
|
1753
1773
|
"vsh-commit",
|
|
@@ -1760,7 +1780,7 @@ dependencies = [
|
|
|
1760
1780
|
|
|
1761
1781
|
[[package]]
|
|
1762
1782
|
name = "vsh-store"
|
|
1763
|
-
version = "0.
|
|
1783
|
+
version = "0.4.0"
|
|
1764
1784
|
dependencies = [
|
|
1765
1785
|
"blake3",
|
|
1766
1786
|
"cap-fs-ext",
|
|
@@ -1770,14 +1790,14 @@ dependencies = [
|
|
|
1770
1790
|
|
|
1771
1791
|
[[package]]
|
|
1772
1792
|
name = "vsh-types"
|
|
1773
|
-
version = "0.
|
|
1793
|
+
version = "0.4.0"
|
|
1774
1794
|
dependencies = [
|
|
1775
1795
|
"blake3",
|
|
1776
1796
|
]
|
|
1777
1797
|
|
|
1778
1798
|
[[package]]
|
|
1779
1799
|
name = "vsh-vfs"
|
|
1780
|
-
version = "0.
|
|
1800
|
+
version = "0.4.0"
|
|
1781
1801
|
dependencies = [
|
|
1782
1802
|
"vsh-store",
|
|
1783
1803
|
"vsh-types",
|
|
@@ -2195,3 +2215,9 @@ dependencies = [
|
|
|
2195
2215
|
"quote",
|
|
2196
2216
|
"syn 3.0.4",
|
|
2197
2217
|
]
|
|
2218
|
+
|
|
2219
|
+
[[package]]
|
|
2220
|
+
name = "zmij"
|
|
2221
|
+
version = "1.0.23"
|
|
2222
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
2223
|
+
checksum = "29666d0abbfad1e3dc4dcf6144730dd3a3ab225bbbdac83319345b1b44ccfc1b"
|
|
@@ -3,11 +3,12 @@ resolver = "3"
|
|
|
3
3
|
members = ["crates/vsh-types", "crates/vsh-store", "crates/vsh-vfs", "crates/vsh-policy", "crates/vsh-monty", "crates/vsh-commit", "crates/vbash", "crates/vsh", "crates/vsh-python", "crates/vsh-worker"]
|
|
4
4
|
|
|
5
5
|
[workspace.package]
|
|
6
|
-
version = "0.
|
|
6
|
+
version = "0.4.0"
|
|
7
7
|
edition = "2024"
|
|
8
8
|
rust-version = "1.95"
|
|
9
9
|
license = "Apache-2.0"
|
|
10
10
|
authors = ["Mert <62549656+fswair@users.noreply.github.com>"]
|
|
11
|
+
readme = "README.md"
|
|
11
12
|
repository = "https://github.com/fswair/vsh"
|
|
12
13
|
homepage = "https://github.com/fswair/vsh"
|
|
13
14
|
|
|
@@ -15,21 +16,21 @@ homepage = "https://github.com/fswair/vsh"
|
|
|
15
16
|
blake3 = { version = "=1.8.7", default-features = false, features = ["std"] }
|
|
16
17
|
cap-fs-ext = { version = "=4.0.3", default-features = false, features = ["std"] }
|
|
17
18
|
cap-std = { version = "=4.0.3", default-features = false }
|
|
18
|
-
get-size2 = { version = "=0.10.
|
|
19
|
-
monty = { version = "=0.0.
|
|
20
|
-
monty-alloc = { version = "=0.0.
|
|
21
|
-
monty-proto = { version = "=0.0.
|
|
22
|
-
monty-types = { version = "=0.0.
|
|
19
|
+
get-size2 = { version = "=0.10.3", default-features = false }
|
|
20
|
+
monty = { version = "=0.0.22", default-features = false }
|
|
21
|
+
monty-alloc = { version = "=0.0.22", default-features = false, features = ["exit-code"] }
|
|
22
|
+
monty-proto = { version = "=0.0.22", default-features = false }
|
|
23
|
+
monty-types = { version = "=0.0.22", default-features = false }
|
|
23
24
|
postcard = { version = "=1.1.3", default-features = false, features = ["alloc"] }
|
|
24
25
|
pyo3 = { version = "=0.29.2", default-features = false }
|
|
25
|
-
vsh-monty = { path = "crates/vsh-monty", version = "=0.
|
|
26
|
-
vsh-commit = { path = "crates/vsh-commit", version = "=0.
|
|
27
|
-
vsh-policy = { path = "crates/vsh-policy", version = "=0.
|
|
28
|
-
vsh-types = { path = "crates/vsh-types", version = "=0.
|
|
29
|
-
vsh-store = { path = "crates/vsh-store", version = "=0.
|
|
30
|
-
vsh-vfs = { path = "crates/vsh-vfs", version = "=0.
|
|
31
|
-
vsh-runtime = { path = "crates/vbash", version = "=0.
|
|
32
|
-
vsh = { path = "crates/vsh", version = "=0.
|
|
26
|
+
vsh-monty = { path = "crates/vsh-monty", version = "=0.4.0" }
|
|
27
|
+
vsh-commit = { path = "crates/vsh-commit", version = "=0.4.0" }
|
|
28
|
+
vsh-policy = { path = "crates/vsh-policy", version = "=0.4.0" }
|
|
29
|
+
vsh-types = { path = "crates/vsh-types", version = "=0.4.0" }
|
|
30
|
+
vsh-store = { path = "crates/vsh-store", version = "=0.4.0" }
|
|
31
|
+
vsh-vfs = { path = "crates/vsh-vfs", version = "=0.4.0" }
|
|
32
|
+
vsh-runtime = { path = "crates/vbash", version = "=0.4.0" }
|
|
33
|
+
vsh = { path = "crates/vsh", version = "=0.4.0" }
|
|
33
34
|
|
|
34
35
|
[workspace.lints.rust]
|
|
35
36
|
elided_lifetimes_in_paths = "deny"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: vsh-python
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.4.0
|
|
4
4
|
Classifier: Development Status :: 4 - Beta
|
|
5
5
|
Classifier: Intended Audience :: Developers
|
|
6
6
|
Classifier: Programming Language :: Python :: 3
|
|
@@ -38,6 +38,9 @@ VSH is one low-latency transactional filesystem simulator with two SDK surfaces:
|
|
|
38
38
|
Both surfaces execute the same Rust pipeline. Python is a thin PyO3 binding; it does
|
|
39
39
|
not contain a fallback simulator or committer.
|
|
40
40
|
|
|
41
|
+
Special thanks to [Artyom Pavlov](https://github.com/newpavlov) for generously
|
|
42
|
+
donating the `vsh` crate name to this project.
|
|
43
|
+
|
|
41
44
|
```text
|
|
42
45
|
Monty program → immutable snapshot → Rust VirtualFs → canonical diff → policy
|
|
43
46
|
→ dependency revalidation → recoverable commit → verified receipt
|
|
@@ -54,8 +57,9 @@ Install the wheel:
|
|
|
54
57
|
uv add vsh-python
|
|
55
58
|
```
|
|
56
59
|
|
|
57
|
-
Run one complete transaction. `PREVIEW`
|
|
58
|
-
|
|
60
|
+
Run one complete transaction. `PREVIEW` does not apply changes to user workspace files;
|
|
61
|
+
the host runtime may still persist bounded transaction/storage artifacts. `AUTO`
|
|
62
|
+
commits only a deterministic native auto-approval.
|
|
59
63
|
|
|
60
64
|
```python
|
|
61
65
|
from vsh import ReceiptDetail, RunMode, RunRequest, Runtime
|
|
@@ -84,7 +88,7 @@ evaluating policy, revalidating dependencies, and committing.
|
|
|
84
88
|
|
|
85
89
|
```toml
|
|
86
90
|
[dependencies]
|
|
87
|
-
vsh = "=0.
|
|
91
|
+
vsh = "=0.4.0"
|
|
88
92
|
```
|
|
89
93
|
|
|
90
94
|
```rust,no_run
|
|
@@ -108,6 +112,21 @@ Production execution expects the matching `vsh-monty-worker` executable. Python
|
|
|
108
112
|
wheels bundle it; native embedders configure its trusted path through
|
|
109
113
|
`RuntimeConfig::with_worker_path`.
|
|
110
114
|
|
|
115
|
+
## Active-snapshot filesystem functions
|
|
116
|
+
|
|
117
|
+
VSH 0.4.0 injects ten bounded `vsh_*` functions into each Monty program: read, write,
|
|
118
|
+
list, make directory, remove, move, copy, glob, literal search and exact text patch.
|
|
119
|
+
They share the same copy-on-write snapshot as `pathlib`, so earlier virtual writes are
|
|
120
|
+
visible to later calls without creating a nested runtime or crossing MCP.
|
|
121
|
+
|
|
122
|
+
```python
|
|
123
|
+
files = vsh_glob('**/*.toml', path='/workspace/services', max_results=101)
|
|
124
|
+
assert len(files) <= 100, 'split this migration into reviewed batches'
|
|
125
|
+
for path in files:
|
|
126
|
+
assert vsh_patch(path, 'timeout = 5', 'timeout = 15', count=1) == 1
|
|
127
|
+
{'updated': len(files)}
|
|
128
|
+
```
|
|
129
|
+
|
|
111
130
|
## MCP
|
|
112
131
|
|
|
113
132
|
Install the optional adapter and start the stdio server:
|
|
@@ -127,6 +146,14 @@ the same live `Runtime` (or MCP server process). The exact artifact is made dura
|
|
|
127
146
|
before reservation and commit. Transactions that require independent approval are
|
|
128
147
|
durable immediately and survive a runtime restart.
|
|
129
148
|
|
|
149
|
+
## Performance
|
|
150
|
+
|
|
151
|
+
On the dated macOS arm64 release-profile matrix, VSH 0.4.0 lowers median latency by
|
|
152
|
+
roughly 25–30% for 10,000-file discovery/glob and 5,050-entry removal workloads. The
|
|
153
|
+
whole benchmark harness reports about 19% less CPU time. Small-call variance remains,
|
|
154
|
+
and sampled process-tree RSS does not establish a repeatable memory reduction. See the
|
|
155
|
+
[protocol, complete results and caveats](https://fswair.github.io/vsh/performance/).
|
|
156
|
+
|
|
130
157
|
## Security and dependency policy
|
|
131
158
|
|
|
132
159
|
- External Rust crates are exact-pinned in the workspace manifest and lockfile.
|
|
@@ -141,19 +168,19 @@ durable immediately and survive a runtime restart.
|
|
|
141
168
|
- Process-local preview retention is fail-closed and bounded by both artifact count and
|
|
142
169
|
encoded bytes; it cannot become an unbounded parent-process cache.
|
|
143
170
|
|
|
144
|
-
See
|
|
145
|
-
[guarantees](
|
|
146
|
-
[dependency record](
|
|
147
|
-
details are in the
|
|
148
|
-
[
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
[
|
|
171
|
+
See the [threat model](https://fswair.github.io/vsh/rust-rewrite/THREAT_MODEL/),
|
|
172
|
+
[guarantees](https://fswair.github.io/vsh/rust-rewrite/GUARANTEES/), and
|
|
173
|
+
[dependency record](https://fswair.github.io/vsh/rust-rewrite/DEPENDENCY_POLICY/).
|
|
174
|
+
Upgrade and benchmark details are in the
|
|
175
|
+
[migration guide](https://fswair.github.io/vsh/rust-rewrite/MIGRATION/) and current
|
|
176
|
+
[performance report](https://fswair.github.io/vsh/performance/). Merge coverage scope
|
|
177
|
+
and floors are recorded in the
|
|
178
|
+
[coverage contract](https://fswair.github.io/vsh/rust-rewrite/COVERAGE/).
|
|
152
179
|
|
|
153
180
|
## Compatibility handles
|
|
154
181
|
|
|
155
|
-
Existing declarations may continue to install `vbash==0.
|
|
156
|
-
`vbash = "=0.
|
|
182
|
+
Existing declarations may continue to install `vbash==0.4.0` from PyPI or depend on
|
|
183
|
+
`vbash = "=0.4.0"` from crates.io. Both packages are implementation-free mirrors of
|
|
157
184
|
the exact matching VSH release. New projects should use `vsh-python` and `vsh`
|
|
158
185
|
directly; Python code continues to write `import vsh` either way.
|
|
159
186
|
|
|
@@ -168,8 +195,8 @@ uv run zensical serve
|
|
|
168
195
|
uv run zensical build --clean --strict
|
|
169
196
|
```
|
|
170
197
|
|
|
171
|
-
Start at [
|
|
172
|
-
|
|
198
|
+
Start at the [VSH documentation](https://fswair.github.io/vsh/). The site includes a
|
|
199
|
+
Venus-inspired palette, automatic light/dark selection, and a **Copy as Markdown** action on
|
|
173
200
|
every page. It also publishes a compact LLM index at `/llms.txt` and the complete
|
|
174
201
|
Markdown source corpus at `/llms-full.txt`, with navigation pages first; CI verifies
|
|
175
202
|
both generated files are current.
|
|
@@ -8,6 +8,9 @@ VSH is one low-latency transactional filesystem simulator with two SDK surfaces:
|
|
|
8
8
|
Both surfaces execute the same Rust pipeline. Python is a thin PyO3 binding; it does
|
|
9
9
|
not contain a fallback simulator or committer.
|
|
10
10
|
|
|
11
|
+
Special thanks to [Artyom Pavlov](https://github.com/newpavlov) for generously
|
|
12
|
+
donating the `vsh` crate name to this project.
|
|
13
|
+
|
|
11
14
|
```text
|
|
12
15
|
Monty program → immutable snapshot → Rust VirtualFs → canonical diff → policy
|
|
13
16
|
→ dependency revalidation → recoverable commit → verified receipt
|
|
@@ -24,8 +27,9 @@ Install the wheel:
|
|
|
24
27
|
uv add vsh-python
|
|
25
28
|
```
|
|
26
29
|
|
|
27
|
-
Run one complete transaction. `PREVIEW`
|
|
28
|
-
|
|
30
|
+
Run one complete transaction. `PREVIEW` does not apply changes to user workspace files;
|
|
31
|
+
the host runtime may still persist bounded transaction/storage artifacts. `AUTO`
|
|
32
|
+
commits only a deterministic native auto-approval.
|
|
29
33
|
|
|
30
34
|
```python
|
|
31
35
|
from vsh import ReceiptDetail, RunMode, RunRequest, Runtime
|
|
@@ -54,7 +58,7 @@ evaluating policy, revalidating dependencies, and committing.
|
|
|
54
58
|
|
|
55
59
|
```toml
|
|
56
60
|
[dependencies]
|
|
57
|
-
vsh = "=0.
|
|
61
|
+
vsh = "=0.4.0"
|
|
58
62
|
```
|
|
59
63
|
|
|
60
64
|
```rust,no_run
|
|
@@ -78,6 +82,21 @@ Production execution expects the matching `vsh-monty-worker` executable. Python
|
|
|
78
82
|
wheels bundle it; native embedders configure its trusted path through
|
|
79
83
|
`RuntimeConfig::with_worker_path`.
|
|
80
84
|
|
|
85
|
+
## Active-snapshot filesystem functions
|
|
86
|
+
|
|
87
|
+
VSH 0.4.0 injects ten bounded `vsh_*` functions into each Monty program: read, write,
|
|
88
|
+
list, make directory, remove, move, copy, glob, literal search and exact text patch.
|
|
89
|
+
They share the same copy-on-write snapshot as `pathlib`, so earlier virtual writes are
|
|
90
|
+
visible to later calls without creating a nested runtime or crossing MCP.
|
|
91
|
+
|
|
92
|
+
```python
|
|
93
|
+
files = vsh_glob('**/*.toml', path='/workspace/services', max_results=101)
|
|
94
|
+
assert len(files) <= 100, 'split this migration into reviewed batches'
|
|
95
|
+
for path in files:
|
|
96
|
+
assert vsh_patch(path, 'timeout = 5', 'timeout = 15', count=1) == 1
|
|
97
|
+
{'updated': len(files)}
|
|
98
|
+
```
|
|
99
|
+
|
|
81
100
|
## MCP
|
|
82
101
|
|
|
83
102
|
Install the optional adapter and start the stdio server:
|
|
@@ -97,6 +116,14 @@ the same live `Runtime` (or MCP server process). The exact artifact is made dura
|
|
|
97
116
|
before reservation and commit. Transactions that require independent approval are
|
|
98
117
|
durable immediately and survive a runtime restart.
|
|
99
118
|
|
|
119
|
+
## Performance
|
|
120
|
+
|
|
121
|
+
On the dated macOS arm64 release-profile matrix, VSH 0.4.0 lowers median latency by
|
|
122
|
+
roughly 25–30% for 10,000-file discovery/glob and 5,050-entry removal workloads. The
|
|
123
|
+
whole benchmark harness reports about 19% less CPU time. Small-call variance remains,
|
|
124
|
+
and sampled process-tree RSS does not establish a repeatable memory reduction. See the
|
|
125
|
+
[protocol, complete results and caveats](https://fswair.github.io/vsh/performance/).
|
|
126
|
+
|
|
100
127
|
## Security and dependency policy
|
|
101
128
|
|
|
102
129
|
- External Rust crates are exact-pinned in the workspace manifest and lockfile.
|
|
@@ -111,19 +138,19 @@ durable immediately and survive a runtime restart.
|
|
|
111
138
|
- Process-local preview retention is fail-closed and bounded by both artifact count and
|
|
112
139
|
encoded bytes; it cannot become an unbounded parent-process cache.
|
|
113
140
|
|
|
114
|
-
See
|
|
115
|
-
[guarantees](
|
|
116
|
-
[dependency record](
|
|
117
|
-
details are in the
|
|
118
|
-
[
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
[
|
|
141
|
+
See the [threat model](https://fswair.github.io/vsh/rust-rewrite/THREAT_MODEL/),
|
|
142
|
+
[guarantees](https://fswair.github.io/vsh/rust-rewrite/GUARANTEES/), and
|
|
143
|
+
[dependency record](https://fswair.github.io/vsh/rust-rewrite/DEPENDENCY_POLICY/).
|
|
144
|
+
Upgrade and benchmark details are in the
|
|
145
|
+
[migration guide](https://fswair.github.io/vsh/rust-rewrite/MIGRATION/) and current
|
|
146
|
+
[performance report](https://fswair.github.io/vsh/performance/). Merge coverage scope
|
|
147
|
+
and floors are recorded in the
|
|
148
|
+
[coverage contract](https://fswair.github.io/vsh/rust-rewrite/COVERAGE/).
|
|
122
149
|
|
|
123
150
|
## Compatibility handles
|
|
124
151
|
|
|
125
|
-
Existing declarations may continue to install `vbash==0.
|
|
126
|
-
`vbash = "=0.
|
|
152
|
+
Existing declarations may continue to install `vbash==0.4.0` from PyPI or depend on
|
|
153
|
+
`vbash = "=0.4.0"` from crates.io. Both packages are implementation-free mirrors of
|
|
127
154
|
the exact matching VSH release. New projects should use `vsh-python` and `vsh`
|
|
128
155
|
directly; Python code continues to write `import vsh` either way.
|
|
129
156
|
|
|
@@ -138,8 +165,8 @@ uv run zensical serve
|
|
|
138
165
|
uv run zensical build --clean --strict
|
|
139
166
|
```
|
|
140
167
|
|
|
141
|
-
Start at [
|
|
142
|
-
|
|
168
|
+
Start at the [VSH documentation](https://fswair.github.io/vsh/). The site includes a
|
|
169
|
+
Venus-inspired palette, automatic light/dark selection, and a **Copy as Markdown** action on
|
|
143
170
|
every page. It also publishes a compact LLM index at `/llms.txt` and the complete
|
|
144
171
|
Markdown source corpus at `/llms-full.txt`, with navigation pages first; CI verifies
|
|
145
172
|
both generated files are current.
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
# Third-party notices
|
|
2
2
|
|
|
3
|
-
VSH links and adapts the public typed execution/protocol seams of Monty 0.0.
|
|
3
|
+
VSH links and adapts the public typed execution/protocol seams of Monty 0.0.22,
|
|
4
4
|
including the `monty`, `monty-types`, `monty-proto`, and `monty-alloc` crates.
|
|
5
5
|
Monty is maintained by Pydantic and distributed under the MIT License:
|
|
6
|
-
https://github.com/pydantic/monty/tree/v0.0.
|
|
6
|
+
https://github.com/pydantic/monty/tree/v0.0.22
|
|
7
7
|
|
|
8
8
|
The MIT License (MIT)
|
|
9
9
|
|
|
@@ -5,6 +5,7 @@ edition.workspace = true
|
|
|
5
5
|
rust-version.workspace = true
|
|
6
6
|
license.workspace = true
|
|
7
7
|
authors.workspace = true
|
|
8
|
+
readme = "README.md"
|
|
8
9
|
repository.workspace = true
|
|
9
10
|
homepage.workspace = true
|
|
10
11
|
description = "Native Rust SDK for the VSH validation-first execution engine"
|