flowproof 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 (91) hide show
  1. {flowproof-0.3.1 → flowproof-0.4.0}/Cargo.lock +76 -7
  2. {flowproof-0.3.1 → flowproof-0.4.0}/Cargo.toml +1 -1
  3. {flowproof-0.3.1 → flowproof-0.4.0}/PKG-INFO +1 -1
  4. {flowproof-0.3.1 → flowproof-0.4.0}/crates/flowproof-adapters/Cargo.toml +10 -0
  5. flowproof-0.4.0/crates/flowproof-adapters/src/agent_proxy.rs +2093 -0
  6. flowproof-0.4.0/crates/flowproof-adapters/src/agent_runner.rs +893 -0
  7. flowproof-0.4.0/crates/flowproof-adapters/src/egress.rs +260 -0
  8. flowproof-0.4.0/crates/flowproof-adapters/src/egress_linux.rs +1042 -0
  9. {flowproof-0.3.1 → flowproof-0.4.0}/crates/flowproof-adapters/src/lib.rs +29 -0
  10. flowproof-0.4.0/crates/flowproof-adapters/src/mcp_core.rs +374 -0
  11. flowproof-0.4.0/crates/flowproof-adapters/src/mcp_http.rs +1592 -0
  12. flowproof-0.4.0/crates/flowproof-adapters/src/mcp_stdio.rs +641 -0
  13. {flowproof-0.3.1 → flowproof-0.4.0}/crates/flowproof-adapters/src/sap_com.rs +15 -3
  14. {flowproof-0.3.1 → flowproof-0.4.0}/crates/flowproof-adapters/src/web.rs +398 -1
  15. {flowproof-0.3.1 → flowproof-0.4.0}/crates/flowproof-agent/src/lib.rs +1 -1
  16. {flowproof-0.3.1 → flowproof-0.4.0}/crates/flowproof-agent/src/recorder.rs +597 -1
  17. {flowproof-0.3.1 → flowproof-0.4.0}/crates/flowproof-agent/src/rules.rs +1248 -46
  18. {flowproof-0.3.1 → flowproof-0.4.0}/crates/flowproof-agent/src/spec.rs +639 -27
  19. {flowproof-0.3.1 → flowproof-0.4.0}/crates/flowproof-cli/Cargo.toml +5 -0
  20. flowproof-0.4.0/crates/flowproof-cli/src/agent_flow.rs +2032 -0
  21. flowproof-0.4.0/crates/flowproof-cli/src/capture.rs +542 -0
  22. {flowproof-0.3.1 → flowproof-0.4.0}/crates/flowproof-cli/src/lib.rs +78 -3
  23. {flowproof-0.3.1 → flowproof-0.4.0}/crates/flowproof-cli/tests/agent_flow_e2e.rs +14 -0
  24. flowproof-0.4.0/crates/flowproof-cli/tests/egress_e2e.rs +339 -0
  25. {flowproof-0.3.1 → flowproof-0.4.0}/crates/flowproof-cli/tests/llm_author_e2e.rs +1 -0
  26. flowproof-0.4.0/crates/flowproof-cli/tests/mcp_stdio_e2e.rs +637 -0
  27. {flowproof-0.3.1 → flowproof-0.4.0}/crates/flowproof-cli/tests/notepad_author_e2e.rs +1 -0
  28. flowproof-0.4.0/crates/flowproof-cli/tests/scoped_container_e2e.rs +249 -0
  29. {flowproof-0.3.1 → flowproof-0.4.0}/crates/flowproof-cli/tests/web_e2e.rs +102 -0
  30. {flowproof-0.3.1 → flowproof-0.4.0}/crates/flowproof-driver/src/app.rs +492 -0
  31. {flowproof-0.3.1 → flowproof-0.4.0}/crates/flowproof-driver/src/lib.rs +6 -4
  32. {flowproof-0.3.1 → flowproof-0.4.0}/crates/flowproof-driver/src/mock.rs +102 -0
  33. {flowproof-0.3.1 → flowproof-0.4.0}/crates/flowproof-replay/src/lib.rs +267 -0
  34. {flowproof-0.3.1 → flowproof-0.4.0}/crates/flowproof-trace/src/cassette.rs +121 -23
  35. {flowproof-0.3.1 → flowproof-0.4.0}/crates/flowproof-trace/src/cassette_diff.rs +2 -0
  36. flowproof-0.4.0/crates/flowproof-trace/src/egress.rs +379 -0
  37. {flowproof-0.3.1 → flowproof-0.4.0}/crates/flowproof-trace/src/lib.rs +1 -0
  38. {flowproof-0.3.1 → flowproof-0.4.0}/crates/flowproof-trace/src/substitution.rs +172 -0
  39. {flowproof-0.3.1 → flowproof-0.4.0}/flowproof/__init__.py +1 -1
  40. {flowproof-0.3.1 → flowproof-0.4.0}/pyproject.toml +1 -1
  41. flowproof-0.3.1/crates/flowproof-adapters/src/agent_proxy.rs +0 -989
  42. flowproof-0.3.1/crates/flowproof-adapters/src/agent_runner.rs +0 -478
  43. flowproof-0.3.1/crates/flowproof-cli/src/agent_flow.rs +0 -304
  44. {flowproof-0.3.1 → flowproof-0.4.0}/README.md +0 -0
  45. {flowproof-0.3.1 → flowproof-0.4.0}/crates/flowproof-adapters/src/vision.rs +0 -0
  46. {flowproof-0.3.1 → flowproof-0.4.0}/crates/flowproof-agent/Cargo.toml +0 -0
  47. {flowproof-0.3.1 → flowproof-0.4.0}/crates/flowproof-agent/src/agent_steps.rs +0 -0
  48. {flowproof-0.3.1 → flowproof-0.4.0}/crates/flowproof-agent/src/author.rs +0 -0
  49. {flowproof-0.3.1 → flowproof-0.4.0}/crates/flowproof-agent/src/clarify.rs +0 -0
  50. {flowproof-0.3.1 → flowproof-0.4.0}/crates/flowproof-agent/src/heal.rs +0 -0
  51. {flowproof-0.3.1 → flowproof-0.4.0}/crates/flowproof-agent/src/llm.rs +0 -0
  52. {flowproof-0.3.1 → flowproof-0.4.0}/crates/flowproof-cli/src/main.rs +0 -0
  53. {flowproof-0.3.1 → flowproof-0.4.0}/crates/flowproof-cli/tests/api_pipeline.rs +0 -0
  54. {flowproof-0.3.1 → flowproof-0.4.0}/crates/flowproof-cli/tests/calc_e2e.rs +0 -0
  55. {flowproof-0.3.1 → flowproof-0.4.0}/crates/flowproof-cli/tests/clock_e2e.rs +0 -0
  56. {flowproof-0.3.1 → flowproof-0.4.0}/crates/flowproof-cli/tests/examples_resolve.rs +0 -0
  57. {flowproof-0.3.1 → flowproof-0.4.0}/crates/flowproof-cli/tests/grid_cell_e2e.rs +0 -0
  58. {flowproof-0.3.1 → flowproof-0.4.0}/crates/flowproof-cli/tests/notepad_e2e.rs +0 -0
  59. {flowproof-0.3.1 → flowproof-0.4.0}/crates/flowproof-cli/tests/sap_e2e.rs +0 -0
  60. {flowproof-0.3.1 → flowproof-0.4.0}/crates/flowproof-cli/tests/sap_pipeline.rs +0 -0
  61. {flowproof-0.3.1 → flowproof-0.4.0}/crates/flowproof-cli/tests/sap_sim_e2e.rs +0 -0
  62. {flowproof-0.3.1 → flowproof-0.4.0}/crates/flowproof-cli/tests/skip_unless_env.rs +0 -0
  63. {flowproof-0.3.1 → flowproof-0.4.0}/crates/flowproof-cli/tests/suite_env_from.rs +0 -0
  64. {flowproof-0.3.1 → flowproof-0.4.0}/crates/flowproof-cli/tests/suite_flow_isolation.rs +0 -0
  65. {flowproof-0.3.1 → flowproof-0.4.0}/crates/flowproof-cli/tests/suite_missing_trace.rs +0 -0
  66. {flowproof-0.3.1 → flowproof-0.4.0}/crates/flowproof-cli/tests/support/sap_simulator.py +0 -0
  67. {flowproof-0.3.1 → flowproof-0.4.0}/crates/flowproof-cli/tests/vision_pipeline.rs +0 -0
  68. {flowproof-0.3.1 → flowproof-0.4.0}/crates/flowproof-driver/Cargo.toml +0 -0
  69. {flowproof-0.3.1 → flowproof-0.4.0}/crates/flowproof-driver/src/backend.rs +0 -0
  70. {flowproof-0.3.1 → flowproof-0.4.0}/crates/flowproof-driver/src/gdi.rs +0 -0
  71. {flowproof-0.3.1 → flowproof-0.4.0}/crates/flowproof-driver/src/oob.rs +0 -0
  72. {flowproof-0.3.1 → flowproof-0.4.0}/crates/flowproof-driver/src/recording.rs +0 -0
  73. {flowproof-0.3.1 → flowproof-0.4.0}/crates/flowproof-driver/src/redact.rs +0 -0
  74. {flowproof-0.3.1 → flowproof-0.4.0}/crates/flowproof-driver/src/visual.rs +0 -0
  75. {flowproof-0.3.1 → flowproof-0.4.0}/crates/flowproof-driver/src/window.rs +0 -0
  76. {flowproof-0.3.1 → flowproof-0.4.0}/crates/flowproof-python/Cargo.toml +0 -0
  77. {flowproof-0.3.1 → flowproof-0.4.0}/crates/flowproof-python/src/lib.rs +0 -0
  78. {flowproof-0.3.1 → flowproof-0.4.0}/crates/flowproof-replay/Cargo.toml +0 -0
  79. {flowproof-0.3.1 → flowproof-0.4.0}/crates/flowproof-replay/src/report.rs +0 -0
  80. {flowproof-0.3.1 → flowproof-0.4.0}/crates/flowproof-replay/tests/replay_calc.rs +0 -0
  81. {flowproof-0.3.1 → flowproof-0.4.0}/crates/flowproof-trace/Cargo.toml +0 -0
  82. {flowproof-0.3.1 → flowproof-0.4.0}/crates/flowproof-trace/schema/trace-v1.schema.json +0 -0
  83. {flowproof-0.3.1 → flowproof-0.4.0}/crates/flowproof-trace/src/format.rs +0 -0
  84. {flowproof-0.3.1 → flowproof-0.4.0}/crates/flowproof-trace/src/secret.rs +0 -0
  85. {flowproof-0.3.1 → flowproof-0.4.0}/crates/flowproof-trace/src/toolcalls.rs +0 -0
  86. {flowproof-0.3.1 → flowproof-0.4.0}/crates/flowproof-trace/tests/fixtures/sample.trace.jsonl +0 -0
  87. {flowproof-0.3.1 → flowproof-0.4.0}/crates/flowproof-trace/tests/schema_conformance.rs +0 -0
  88. {flowproof-0.3.1 → flowproof-0.4.0}/flowproof/cli.py +0 -0
  89. {flowproof-0.3.1 → flowproof-0.4.0}/flowproof/flow.py +0 -0
  90. {flowproof-0.3.1 → flowproof-0.4.0}/flowproof/mcp_server.py +0 -0
  91. {flowproof-0.3.1 → flowproof-0.4.0}/flowproof/py.typed +0 -0
@@ -209,6 +209,15 @@ dependencies = [
209
209
  "hybrid-array",
210
210
  ]
211
211
 
212
+ [[package]]
213
+ name = "block2"
214
+ version = "0.6.2"
215
+ source = "registry+https://github.com/rust-lang/crates.io-index"
216
+ checksum = "cdeb9d870516001442e364c5220d3574d2da8dc765554b4a617230d33fa58ef5"
217
+ dependencies = [
218
+ "objc2",
219
+ ]
220
+
212
221
  [[package]]
213
222
  name = "borrow-or-share"
214
223
  version = "0.2.4"
@@ -273,6 +282,12 @@ version = "1.0.4"
273
282
  source = "registry+https://github.com/rust-lang/crates.io-index"
274
283
  checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801"
275
284
 
285
+ [[package]]
286
+ name = "cfg_aliases"
287
+ version = "0.2.2"
288
+ source = "registry+https://github.com/rust-lang/crates.io-index"
289
+ checksum = "f079e83a288787bcd14a6aea84cee5c87a67c5a3e660c30f557a3d24761b3527"
290
+
276
291
  [[package]]
277
292
  name = "chacha20"
278
293
  version = "0.10.1"
@@ -502,6 +517,17 @@ dependencies = [
502
517
  "hybrid-array",
503
518
  ]
504
519
 
520
+ [[package]]
521
+ name = "ctrlc"
522
+ version = "3.5.2"
523
+ source = "registry+https://github.com/rust-lang/crates.io-index"
524
+ checksum = "e0b1fab2ae45819af2d0731d60f2afe17227ebb1a1538a236da84c93e9a60162"
525
+ dependencies = [
526
+ "dispatch2",
527
+ "nix",
528
+ "windows-sys 0.61.2",
529
+ ]
530
+
505
531
  [[package]]
506
532
  name = "ctutils"
507
533
  version = "0.4.2"
@@ -611,6 +637,18 @@ dependencies = [
611
637
  "ctutils",
612
638
  ]
613
639
 
640
+ [[package]]
641
+ name = "dispatch2"
642
+ version = "0.3.1"
643
+ source = "registry+https://github.com/rust-lang/crates.io-index"
644
+ checksum = "1e0e367e4e7da84520dedcac1901e4da967309406d1e51017ae1abfb97adbd38"
645
+ dependencies = [
646
+ "bitflags 2.13.1",
647
+ "block2",
648
+ "libc",
649
+ "objc2",
650
+ ]
651
+
614
652
  [[package]]
615
653
  name = "displaydoc"
616
654
  version = "0.2.6"
@@ -722,15 +760,17 @@ dependencies = [
722
760
 
723
761
  [[package]]
724
762
  name = "flowproof-adapters"
725
- version = "0.3.1"
763
+ version = "0.4.0"
726
764
  dependencies = [
727
765
  "anyhow",
728
766
  "flowproof-driver",
729
767
  "flowproof-trace",
730
768
  "headless_chrome",
731
769
  "image",
770
+ "libc",
732
771
  "ocrs",
733
772
  "rten",
773
+ "serde",
734
774
  "serde_json",
735
775
  "thiserror 2.0.18",
736
776
  "ureq",
@@ -739,7 +779,7 @@ dependencies = [
739
779
 
740
780
  [[package]]
741
781
  name = "flowproof-agent"
742
- version = "0.3.1"
782
+ version = "0.4.0"
743
783
  dependencies = [
744
784
  "chrono",
745
785
  "flowproof-driver",
@@ -755,10 +795,12 @@ dependencies = [
755
795
 
756
796
  [[package]]
757
797
  name = "flowproof-cli"
758
- version = "0.3.1"
798
+ version = "0.4.0"
759
799
  dependencies = [
760
800
  "ab_glyph",
801
+ "chrono",
761
802
  "clap",
803
+ "ctrlc",
762
804
  "flowproof-adapters",
763
805
  "flowproof-agent",
764
806
  "flowproof-driver",
@@ -774,7 +816,7 @@ dependencies = [
774
816
 
775
817
  [[package]]
776
818
  name = "flowproof-driver"
777
- version = "0.3.1"
819
+ version = "0.4.0"
778
820
  dependencies = [
779
821
  "image",
780
822
  "postgres",
@@ -788,7 +830,7 @@ dependencies = [
788
830
 
789
831
  [[package]]
790
832
  name = "flowproof-python"
791
- version = "0.3.1"
833
+ version = "0.4.0"
792
834
  dependencies = [
793
835
  "flowproof-agent",
794
836
  "flowproof-cli",
@@ -800,7 +842,7 @@ dependencies = [
800
842
 
801
843
  [[package]]
802
844
  name = "flowproof-replay"
803
- version = "0.3.1"
845
+ version = "0.4.0"
804
846
  dependencies = [
805
847
  "chrono",
806
848
  "flowproof-agent",
@@ -814,7 +856,7 @@ dependencies = [
814
856
 
815
857
  [[package]]
816
858
  name = "flowproof-trace"
817
- version = "0.3.1"
859
+ version = "0.4.0"
818
860
  dependencies = [
819
861
  "jsonschema",
820
862
  "regex",
@@ -1465,6 +1507,18 @@ dependencies = [
1465
1507
  "typenum",
1466
1508
  ]
1467
1509
 
1510
+ [[package]]
1511
+ name = "nix"
1512
+ version = "0.31.3"
1513
+ source = "registry+https://github.com/rust-lang/crates.io-index"
1514
+ checksum = "cf20d2fde8ff38632c426f1165ed7436270b44f199fc55284c38276f9db47c3d"
1515
+ dependencies = [
1516
+ "bitflags 2.13.1",
1517
+ "cfg-if",
1518
+ "cfg_aliases",
1519
+ "libc",
1520
+ ]
1521
+
1468
1522
  [[package]]
1469
1523
  name = "num"
1470
1524
  version = "0.4.3"
@@ -1560,6 +1614,15 @@ dependencies = [
1560
1614
  "libc",
1561
1615
  ]
1562
1616
 
1617
+ [[package]]
1618
+ name = "objc2"
1619
+ version = "0.6.4"
1620
+ source = "registry+https://github.com/rust-lang/crates.io-index"
1621
+ checksum = "3a12a8ed07aefc768292f076dc3ac8c48f3781c8f2d5851dd3d98950e8c5a89f"
1622
+ dependencies = [
1623
+ "objc2-encode",
1624
+ ]
1625
+
1563
1626
  [[package]]
1564
1627
  name = "objc2-core-foundation"
1565
1628
  version = "0.3.2"
@@ -1569,6 +1632,12 @@ dependencies = [
1569
1632
  "bitflags 2.13.1",
1570
1633
  ]
1571
1634
 
1635
+ [[package]]
1636
+ name = "objc2-encode"
1637
+ version = "4.1.0"
1638
+ source = "registry+https://github.com/rust-lang/crates.io-index"
1639
+ checksum = "ef25abbcd74fb2609453eb695bd2f860d389e457f67dc17cafc8b8cbc89d0c33"
1640
+
1572
1641
  [[package]]
1573
1642
  name = "objc2-system-configuration"
1574
1643
  version = "0.3.2"
@@ -3,7 +3,7 @@ resolver = "2"
3
3
  members = ["crates/flowproof-driver", "crates/flowproof-trace", "crates/flowproof-replay", "crates/flowproof-agent", "crates/flowproof-adapters", "crates/flowproof-cli", "crates/flowproof-python"]
4
4
 
5
5
  [workspace.package]
6
- version = "0.3.1"
6
+ version = "0.4.0"
7
7
  edition = "2021"
8
8
  license = "Apache-2.0"
9
9
  repository = "https://github.com/automators-com/flowproof"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: flowproof
3
- Version: 0.3.1
3
+ Version: 0.4.0
4
4
  Classifier: Development Status :: 2 - Pre-Alpha
5
5
  Classifier: Intended Audience :: Developers
6
6
  Classifier: Programming Language :: Python :: 3
@@ -23,6 +23,7 @@ anyhow = { workspace = true }
23
23
  flowproof-driver = { workspace = true }
24
24
  flowproof-trace = { workspace = true }
25
25
  headless_chrome = { version = "1", optional = true }
26
+ serde = { workspace = true }
26
27
  serde_json = "1"
27
28
  image = { version = "0.25.10", default-features = false, features = ["png"] }
28
29
  thiserror = { workspace = true }
@@ -31,6 +32,15 @@ ocrs = { version = "0.12", optional = true }
31
32
  rten = { version = "0.24", optional = true }
32
33
  ureq = { version = "3", features = ["platform-verifier"], optional = true }
33
34
 
35
+ # Egress containment (`app: agent`) is a Linux-only, unprivileged seccomp
36
+ # user-notification supervisor. `libc` is pure Rust (no C library to link),
37
+ # so a non-Linux build never pulls it and a cross `cargo check --target
38
+ # x86_64-unknown-linux-gnu` type-checks the module off a Mac. The BPF filter
39
+ # is hand-built: seccompiler builds classic-BPF filters but its actions do
40
+ # not include SECCOMP_RET_USER_NOTIF, which this design requires.
41
+ [target.'cfg(target_os = "linux")'.dependencies]
42
+ libc = "0.2"
43
+
34
44
  [target.'cfg(windows)'.dependencies]
35
45
  windows = { version = "0.62", features = [
36
46
  "Win32_Foundation",