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.
Files changed (69) hide show
  1. {vsh_python-0.3.1 → vsh_python-0.4.0}/Cargo.lock +70 -44
  2. {vsh_python-0.3.1 → vsh_python-0.4.0}/Cargo.toml +15 -14
  3. {vsh_python-0.3.1 → vsh_python-0.4.0}/PKG-INFO +43 -16
  4. {vsh_python-0.3.1 → vsh_python-0.4.0}/README.md +42 -15
  5. {vsh_python-0.3.1 → vsh_python-0.4.0}/THIRD_PARTY_NOTICES.md +2 -2
  6. {vsh_python-0.3.1 → vsh_python-0.4.0}/crates/vbash/Cargo.toml +1 -0
  7. vsh_python-0.4.0/crates/vbash/README.md +195 -0
  8. {vsh_python-0.3.1 → vsh_python-0.4.0}/crates/vbash/examples/native_benchmark.rs +28 -0
  9. vsh_python-0.4.0/crates/vbash/examples/staged_release.monty +11 -0
  10. vsh_python-0.4.0/crates/vbash/examples/staged_release.rs +79 -0
  11. {vsh_python-0.3.1 → vsh_python-0.4.0}/crates/vbash/src/lib.rs +1 -1
  12. {vsh_python-0.3.1 → vsh_python-0.4.0}/crates/vsh/Cargo.toml +2 -1
  13. vsh_python-0.4.0/crates/vsh/README.md +195 -0
  14. {vsh_python-0.3.1 → vsh_python-0.4.0}/crates/vsh-commit/Cargo.toml +1 -0
  15. vsh_python-0.4.0/crates/vsh-commit/README.md +195 -0
  16. {vsh_python-0.3.1 → vsh_python-0.4.0}/crates/vsh-commit/src/tests.rs +4 -0
  17. {vsh_python-0.3.1 → vsh_python-0.4.0}/crates/vsh-monty/Cargo.toml +4 -4
  18. vsh_python-0.4.0/crates/vsh-monty/README.md +195 -0
  19. {vsh_python-0.3.1 → vsh_python-0.4.0}/crates/vsh-monty/src/lib.rs +336 -37
  20. vsh_python-0.4.0/crates/vsh-monty/src/tools.rs +1085 -0
  21. {vsh_python-0.3.1 → vsh_python-0.4.0}/crates/vsh-monty/src/worker.rs +72 -28
  22. {vsh_python-0.3.1 → vsh_python-0.4.0}/crates/vsh-policy/Cargo.toml +1 -0
  23. vsh_python-0.4.0/crates/vsh-policy/README.md +195 -0
  24. vsh_python-0.4.0/crates/vsh-policy/examples/policy_benchmark.rs +58 -0
  25. {vsh_python-0.3.1 → vsh_python-0.4.0}/crates/vsh-policy/src/lib.rs +146 -27
  26. {vsh_python-0.3.1 → vsh_python-0.4.0}/crates/vsh-python/Cargo.toml +2 -1
  27. vsh_python-0.4.0/crates/vsh-python/README.md +195 -0
  28. {vsh_python-0.3.1 → vsh_python-0.4.0}/crates/vsh-python/src/lib.rs +2 -2
  29. {vsh_python-0.3.1 → vsh_python-0.4.0}/crates/vsh-store/Cargo.toml +1 -0
  30. vsh_python-0.4.0/crates/vsh-store/README.md +195 -0
  31. {vsh_python-0.3.1 → vsh_python-0.4.0}/crates/vsh-types/Cargo.toml +1 -0
  32. vsh_python-0.4.0/crates/vsh-types/README.md +195 -0
  33. {vsh_python-0.3.1 → vsh_python-0.4.0}/crates/vsh-types/src/lib.rs +84 -1
  34. {vsh_python-0.3.1 → vsh_python-0.4.0}/crates/vsh-vfs/Cargo.toml +1 -0
  35. vsh_python-0.4.0/crates/vsh-vfs/README.md +195 -0
  36. {vsh_python-0.3.1 → vsh_python-0.4.0}/crates/vsh-vfs/src/lib.rs +89 -20
  37. {vsh_python-0.3.1 → vsh_python-0.4.0}/crates/vsh-worker/Cargo.toml +2 -1
  38. vsh_python-0.4.0/crates/vsh-worker/README.md +195 -0
  39. {vsh_python-0.3.1 → vsh_python-0.4.0}/crates/vsh-worker/src/child.rs +73 -17
  40. {vsh_python-0.3.1 → vsh_python-0.4.0}/crates/vsh-worker/src/main.rs +1 -1
  41. {vsh_python-0.3.1 → vsh_python-0.4.0}/crates/vsh-worker/tests/subprocess.rs +60 -0
  42. {vsh_python-0.3.1 → vsh_python-0.4.0}/pyproject.toml +5 -1
  43. {vsh_python-0.3.1 → vsh_python-0.4.0}/scripts/vsh_build_backend.py +1 -1
  44. {vsh_python-0.3.1 → vsh_python-0.4.0}/src/vsh/mcp/codemode_server.py +6 -2
  45. {vsh_python-0.3.1 → vsh_python-0.4.0}/src/vsh/mcp/prompts.py +4 -0
  46. {vsh_python-0.3.1 → vsh_python-0.4.0}/LICENSE +0 -0
  47. {vsh_python-0.3.1 → vsh_python-0.4.0}/crates/vbash/src/artifact.rs +0 -0
  48. {vsh_python-0.3.1 → vsh_python-0.4.0}/crates/vbash/src/runtime.rs +0 -0
  49. {vsh_python-0.3.1 → vsh_python-0.4.0}/crates/vsh/src/lib.rs +0 -0
  50. {vsh_python-0.3.1 → vsh_python-0.4.0}/crates/vsh-commit/src/committer.rs +0 -0
  51. {vsh_python-0.3.1 → vsh_python-0.4.0}/crates/vsh-commit/src/host.rs +0 -0
  52. {vsh_python-0.3.1 → vsh_python-0.4.0}/crates/vsh-commit/src/journal.rs +0 -0
  53. {vsh_python-0.3.1 → vsh_python-0.4.0}/crates/vsh-commit/src/lib.rs +0 -0
  54. {vsh_python-0.3.1 → vsh_python-0.4.0}/crates/vsh-commit/src/plan.rs +0 -0
  55. {vsh_python-0.3.1 → vsh_python-0.4.0}/crates/vsh-store/src/directory.rs +0 -0
  56. {vsh_python-0.3.1 → vsh_python-0.4.0}/crates/vsh-store/src/lib.rs +0 -0
  57. {vsh_python-0.3.1 → vsh_python-0.4.0}/crates/vsh-store/src/persistent.rs +0 -0
  58. {vsh_python-0.3.1 → vsh_python-0.4.0}/crates/vsh-worker/src/lib.rs +0 -0
  59. {vsh_python-0.3.1 → vsh_python-0.4.0}/rust-toolchain.toml +0 -0
  60. {vsh_python-0.3.1 → vsh_python-0.4.0}/src/vsh/__init__.py +0 -0
  61. {vsh_python-0.3.1 → vsh_python-0.4.0}/src/vsh/__main__.py +0 -0
  62. {vsh_python-0.3.1 → vsh_python-0.4.0}/src/vsh/_native.pyi +0 -0
  63. {vsh_python-0.3.1 → vsh_python-0.4.0}/src/vsh/_version.py +0 -0
  64. {vsh_python-0.3.1 → vsh_python-0.4.0}/src/vsh/cli.py +0 -0
  65. {vsh_python-0.3.1 → vsh_python-0.4.0}/src/vsh/mcp/__init__.py +0 -0
  66. {vsh_python-0.3.1 → vsh_python-0.4.0}/src/vsh/mcp/native_tools.py +0 -0
  67. {vsh_python-0.3.1 → vsh_python-0.4.0}/src/vsh/mcp/server.py +0 -0
  68. {vsh_python-0.3.1 → vsh_python-0.4.0}/src/vsh/mcp/surface.py +0 -0
  69. {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.9.1"
291
+ version = "0.10.0"
280
292
  source = "registry+https://github.com/rust-lang/crates.io-index"
281
- checksum = "9dfdd1c2274d9aa354115b09dc9a901d6c5576818cdf70d14cae2bdb47df00ab"
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.1"
468
+ version = "0.10.3"
452
469
  source = "registry+https://github.com/rust-lang/crates.io-index"
453
- checksum = "823645bc6404ae2915707777061a47d3a031a9ee0bff51b34ec973df3d8d2990"
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.21"
852
+ version = "0.0.22"
836
853
  source = "registry+https://github.com/rust-lang/crates.io-index"
837
- checksum = "db44565f603ada5dd98bd580623cd9ce299c8b823bd7195c654826fa536b4d48"
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.21"
890
+ version = "0.0.22"
873
891
  source = "registry+https://github.com/rust-lang/crates.io-index"
874
- checksum = "c0116e09c9b26d3ff56bdc9678a2a8704a8e868a58b743d1df947f85109258d2"
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.21"
899
+ version = "0.0.22"
882
900
  source = "registry+https://github.com/rust-lang/crates.io-index"
883
- checksum = "40ed428288161f63d2bec7929438563fe31390f08e014e58ce20be96d7ef82ee"
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.21"
910
+ version = "0.0.22"
893
911
  source = "registry+https://github.com/rust-lang/crates.io-index"
894
- checksum = "b8741cb0a667eebd8bf090affd2f5f92bcf1597b9216f7714e9ea6b2ef6ac556"
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.21"
922
+ version = "0.0.22"
905
923
  source = "registry+https://github.com/rust-lang/crates.io-index"
906
- checksum = "00b4b3318107fee36c5eee05c52f16f6565a63aa29d04f8608ebc221e3fe5dd8"
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.3"
1255
+ version = "0.0.9"
1238
1256
  source = "registry+https://github.com/rust-lang/crates.io-index"
1239
- checksum = "a10ab966362319801f5e85ce5c6aeac69f0cf50936a31e888f5d004e9279f337"
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.3"
1277
+ version = "0.0.9"
1259
1278
  source = "registry+https://github.com/rust-lang/crates.io-index"
1260
- checksum = "1902d82ae0745be9d3d12a1aee4429acff987c768710dc38a6521eab05990ca0"
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.3"
1290
+ version = "0.0.9"
1272
1291
  source = "registry+https://github.com/rust-lang/crates.io-index"
1273
- checksum = "af3e1f868fa58adc12d1fa3ce1b29c6098aa4b101739d9589cbde9fec239af59"
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.3"
1302
+ version = "0.0.9"
1284
1303
  source = "registry+https://github.com/rust-lang/crates.io-index"
1285
- checksum = "4e3b8436fb010636ea79ce545acc3e391296ef4e804f7cef336dd5f9c8a4aa3a"
1304
+ checksum = "1cf63608d433331007574be9d7fa17f3d99fc4b9305abcd9cf47a8033690628d"
1286
1305
  dependencies = [
1287
1306
  "bitflags",
1288
1307
  "bstr",
1289
- "compact_str",
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.3"
1324
+ version = "0.0.9"
1306
1325
  source = "registry+https://github.com/rust-lang/crates.io-index"
1307
- checksum = "8c8860927bf42efdabb31ccb2ac9b8f98ee43897b45536f8023e217b158e49a4"
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.3"
1334
+ version = "0.0.9"
1316
1335
  source = "registry+https://github.com/rust-lang/crates.io-index"
1317
- checksum = "969e4a14b2550818efea99b9e2361c714c72e4f1fb94799251d55aed20345189"
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.3"
1347
+ version = "0.0.9"
1328
1348
  source = "registry+https://github.com/rust-lang/crates.io-index"
1329
- checksum = "c194e02d121e4a1744464ce3a982c4c196eb039bbf67532d18c8ce09f8da6381"
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.3"
1357
+ version = "0.0.9"
1338
1358
  source = "registry+https://github.com/rust-lang/crates.io-index"
1339
- checksum = "c91652ad39be604bc4d5299a5d19feccdd89e255609d89a031e7bb8e0d0aef9f"
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.3.1"
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.3.1"
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.3.1"
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.3.1"
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.3.1"
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.3.1"
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.3.1"
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.3.1"
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.3.1"
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.3.1"
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.3.1"
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.3.1"
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.1", default-features = false }
19
- monty = { version = "=0.0.21", default-features = false }
20
- monty-alloc = { version = "=0.0.21", default-features = false, features = ["exit-code"] }
21
- monty-proto = { version = "=0.0.21", default-features = false }
22
- monty-types = { version = "=0.0.21", default-features = false }
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.3.1" }
26
- vsh-commit = { path = "crates/vsh-commit", version = "=0.3.1" }
27
- vsh-policy = { path = "crates/vsh-policy", version = "=0.3.1" }
28
- vsh-types = { path = "crates/vsh-types", version = "=0.3.1" }
29
- vsh-store = { path = "crates/vsh-store", version = "=0.3.1" }
30
- vsh-vfs = { path = "crates/vsh-vfs", version = "=0.3.1" }
31
- vsh-runtime = { path = "crates/vbash", version = "=0.3.1" }
32
- vsh = { path = "crates/vsh", version = "=0.3.1" }
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.1
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` guarantees that host files are unchanged;
58
- `AUTO` commits only a deterministic native auto-approval.
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.3.1"
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 [the threat model](docs/rust-rewrite/THREAT_MODEL.md),
145
- [guarantees](docs/rust-rewrite/GUARANTEES.md), and
146
- [dependency record](docs/rust-rewrite/DEPENDENCY_POLICY.md). Upgrade and benchmark
147
- details are in the [migration guide](docs/rust-rewrite/MIGRATION.md) and
148
- [performance record](docs/rust-rewrite/PERFORMANCE.md). Merge coverage scope and floors
149
- are recorded in the [coverage contract](docs/rust-rewrite/COVERAGE.md). The cross-platform build,
150
- validation, provenance, and dual-registry order are in the
151
- [release guide](docs/rust-rewrite/RELEASE.md).
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.3.1` from PyPI or depend on
156
- `vbash = "=0.3.1"` from crates.io. Both packages are implementation-free mirrors of
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 [`docs/index.md`](docs/index.md). The site includes a VSH-specific dark-red
172
- design, automatic light/dark palette selection, and a **Copy as Markdown** action on
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` guarantees that host files are unchanged;
28
- `AUTO` commits only a deterministic native auto-approval.
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.3.1"
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 [the threat model](docs/rust-rewrite/THREAT_MODEL.md),
115
- [guarantees](docs/rust-rewrite/GUARANTEES.md), and
116
- [dependency record](docs/rust-rewrite/DEPENDENCY_POLICY.md). Upgrade and benchmark
117
- details are in the [migration guide](docs/rust-rewrite/MIGRATION.md) and
118
- [performance record](docs/rust-rewrite/PERFORMANCE.md). Merge coverage scope and floors
119
- are recorded in the [coverage contract](docs/rust-rewrite/COVERAGE.md). The cross-platform build,
120
- validation, provenance, and dual-registry order are in the
121
- [release guide](docs/rust-rewrite/RELEASE.md).
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.3.1` from PyPI or depend on
126
- `vbash = "=0.3.1"` from crates.io. Both packages are implementation-free mirrors of
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 [`docs/index.md`](docs/index.md). The site includes a VSH-specific dark-red
142
- design, automatic light/dark palette selection, and a **Copy as Markdown** action on
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.21,
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.21
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"