flowproof 0.3.0__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.
- {flowproof-0.3.0 → flowproof-0.4.0}/Cargo.lock +79 -7
- {flowproof-0.3.0 → flowproof-0.4.0}/Cargo.toml +2 -1
- {flowproof-0.3.0 → flowproof-0.4.0}/PKG-INFO +1 -1
- {flowproof-0.3.0 → flowproof-0.4.0}/crates/flowproof-adapters/Cargo.toml +13 -2
- flowproof-0.4.0/crates/flowproof-adapters/src/agent_proxy.rs +2093 -0
- flowproof-0.4.0/crates/flowproof-adapters/src/agent_runner.rs +893 -0
- flowproof-0.4.0/crates/flowproof-adapters/src/egress.rs +260 -0
- flowproof-0.4.0/crates/flowproof-adapters/src/egress_linux.rs +1042 -0
- {flowproof-0.3.0 → flowproof-0.4.0}/crates/flowproof-adapters/src/lib.rs +35 -0
- flowproof-0.4.0/crates/flowproof-adapters/src/mcp_core.rs +374 -0
- flowproof-0.4.0/crates/flowproof-adapters/src/mcp_http.rs +1592 -0
- flowproof-0.4.0/crates/flowproof-adapters/src/mcp_stdio.rs +641 -0
- {flowproof-0.3.0 → flowproof-0.4.0}/crates/flowproof-adapters/src/sap_com.rs +15 -3
- {flowproof-0.3.0 → flowproof-0.4.0}/crates/flowproof-adapters/src/web.rs +662 -1
- {flowproof-0.3.0 → flowproof-0.4.0}/crates/flowproof-agent/Cargo.toml +1 -0
- {flowproof-0.3.0 → flowproof-0.4.0}/crates/flowproof-agent/src/agent_steps.rs +18 -0
- {flowproof-0.3.0 → flowproof-0.4.0}/crates/flowproof-agent/src/lib.rs +1 -1
- {flowproof-0.3.0 → flowproof-0.4.0}/crates/flowproof-agent/src/recorder.rs +656 -1
- {flowproof-0.3.0 → flowproof-0.4.0}/crates/flowproof-agent/src/rules.rs +1305 -17
- {flowproof-0.3.0 → flowproof-0.4.0}/crates/flowproof-agent/src/spec.rs +986 -9
- {flowproof-0.3.0 → flowproof-0.4.0}/crates/flowproof-cli/Cargo.toml +7 -1
- flowproof-0.4.0/crates/flowproof-cli/src/agent_flow.rs +2032 -0
- flowproof-0.4.0/crates/flowproof-cli/src/capture.rs +542 -0
- {flowproof-0.3.0 → flowproof-0.4.0}/crates/flowproof-cli/src/lib.rs +152 -3
- flowproof-0.4.0/crates/flowproof-cli/tests/agent_flow_e2e.rs +228 -0
- flowproof-0.4.0/crates/flowproof-cli/tests/clock_e2e.rs +52 -0
- flowproof-0.4.0/crates/flowproof-cli/tests/egress_e2e.rs +339 -0
- flowproof-0.4.0/crates/flowproof-cli/tests/grid_cell_e2e.rs +96 -0
- {flowproof-0.3.0 → flowproof-0.4.0}/crates/flowproof-cli/tests/llm_author_e2e.rs +4 -0
- flowproof-0.4.0/crates/flowproof-cli/tests/mcp_stdio_e2e.rs +637 -0
- {flowproof-0.3.0 → flowproof-0.4.0}/crates/flowproof-cli/tests/notepad_author_e2e.rs +4 -0
- flowproof-0.4.0/crates/flowproof-cli/tests/scoped_container_e2e.rs +249 -0
- {flowproof-0.3.0 → flowproof-0.4.0}/crates/flowproof-cli/tests/suite_flow_isolation.rs +87 -0
- {flowproof-0.3.0 → flowproof-0.4.0}/crates/flowproof-cli/tests/web_e2e.rs +139 -0
- {flowproof-0.3.0 → flowproof-0.4.0}/crates/flowproof-driver/src/app.rs +553 -4
- {flowproof-0.3.0 → flowproof-0.4.0}/crates/flowproof-driver/src/lib.rs +6 -4
- {flowproof-0.3.0 → flowproof-0.4.0}/crates/flowproof-driver/src/mock.rs +102 -0
- {flowproof-0.3.0 → flowproof-0.4.0}/crates/flowproof-replay/src/lib.rs +297 -0
- {flowproof-0.3.0 → flowproof-0.4.0}/crates/flowproof-replay/tests/replay_calc.rs +1 -0
- {flowproof-0.3.0 → flowproof-0.4.0}/crates/flowproof-trace/Cargo.toml +1 -0
- {flowproof-0.3.0 → flowproof-0.4.0}/crates/flowproof-trace/schema/trace-v1.schema.json +11 -1
- {flowproof-0.3.0 → flowproof-0.4.0}/crates/flowproof-trace/src/cassette.rs +121 -23
- {flowproof-0.3.0 → flowproof-0.4.0}/crates/flowproof-trace/src/cassette_diff.rs +2 -0
- flowproof-0.4.0/crates/flowproof-trace/src/egress.rs +379 -0
- {flowproof-0.3.0 → flowproof-0.4.0}/crates/flowproof-trace/src/format.rs +28 -1
- {flowproof-0.3.0 → flowproof-0.4.0}/crates/flowproof-trace/src/lib.rs +2 -0
- flowproof-0.4.0/crates/flowproof-trace/src/substitution.rs +435 -0
- {flowproof-0.3.0 → flowproof-0.4.0}/crates/flowproof-trace/src/toolcalls.rs +53 -0
- {flowproof-0.3.0 → flowproof-0.4.0}/flowproof/__init__.py +1 -1
- {flowproof-0.3.0 → flowproof-0.4.0}/pyproject.toml +1 -1
- flowproof-0.3.0/crates/flowproof-adapters/src/agent_proxy.rs +0 -550
- {flowproof-0.3.0 → flowproof-0.4.0}/README.md +0 -0
- {flowproof-0.3.0 → flowproof-0.4.0}/crates/flowproof-adapters/src/vision.rs +0 -0
- {flowproof-0.3.0 → flowproof-0.4.0}/crates/flowproof-agent/src/author.rs +0 -0
- {flowproof-0.3.0 → flowproof-0.4.0}/crates/flowproof-agent/src/clarify.rs +0 -0
- {flowproof-0.3.0 → flowproof-0.4.0}/crates/flowproof-agent/src/heal.rs +0 -0
- {flowproof-0.3.0 → flowproof-0.4.0}/crates/flowproof-agent/src/llm.rs +0 -0
- {flowproof-0.3.0 → flowproof-0.4.0}/crates/flowproof-cli/src/main.rs +0 -0
- {flowproof-0.3.0 → flowproof-0.4.0}/crates/flowproof-cli/tests/api_pipeline.rs +0 -0
- {flowproof-0.3.0 → flowproof-0.4.0}/crates/flowproof-cli/tests/calc_e2e.rs +0 -0
- {flowproof-0.3.0 → flowproof-0.4.0}/crates/flowproof-cli/tests/examples_resolve.rs +0 -0
- {flowproof-0.3.0 → flowproof-0.4.0}/crates/flowproof-cli/tests/notepad_e2e.rs +0 -0
- {flowproof-0.3.0 → flowproof-0.4.0}/crates/flowproof-cli/tests/sap_e2e.rs +0 -0
- {flowproof-0.3.0 → flowproof-0.4.0}/crates/flowproof-cli/tests/sap_pipeline.rs +0 -0
- {flowproof-0.3.0 → flowproof-0.4.0}/crates/flowproof-cli/tests/sap_sim_e2e.rs +0 -0
- {flowproof-0.3.0 → flowproof-0.4.0}/crates/flowproof-cli/tests/skip_unless_env.rs +0 -0
- {flowproof-0.3.0 → flowproof-0.4.0}/crates/flowproof-cli/tests/suite_env_from.rs +0 -0
- {flowproof-0.3.0 → flowproof-0.4.0}/crates/flowproof-cli/tests/suite_missing_trace.rs +0 -0
- {flowproof-0.3.0 → flowproof-0.4.0}/crates/flowproof-cli/tests/support/sap_simulator.py +0 -0
- {flowproof-0.3.0 → flowproof-0.4.0}/crates/flowproof-cli/tests/vision_pipeline.rs +0 -0
- {flowproof-0.3.0 → flowproof-0.4.0}/crates/flowproof-driver/Cargo.toml +0 -0
- {flowproof-0.3.0 → flowproof-0.4.0}/crates/flowproof-driver/src/backend.rs +0 -0
- {flowproof-0.3.0 → flowproof-0.4.0}/crates/flowproof-driver/src/gdi.rs +0 -0
- {flowproof-0.3.0 → flowproof-0.4.0}/crates/flowproof-driver/src/oob.rs +0 -0
- {flowproof-0.3.0 → flowproof-0.4.0}/crates/flowproof-driver/src/recording.rs +0 -0
- {flowproof-0.3.0 → flowproof-0.4.0}/crates/flowproof-driver/src/redact.rs +0 -0
- {flowproof-0.3.0 → flowproof-0.4.0}/crates/flowproof-driver/src/visual.rs +0 -0
- {flowproof-0.3.0 → flowproof-0.4.0}/crates/flowproof-driver/src/window.rs +0 -0
- {flowproof-0.3.0 → flowproof-0.4.0}/crates/flowproof-python/Cargo.toml +0 -0
- {flowproof-0.3.0 → flowproof-0.4.0}/crates/flowproof-python/src/lib.rs +0 -0
- {flowproof-0.3.0 → flowproof-0.4.0}/crates/flowproof-replay/Cargo.toml +0 -0
- {flowproof-0.3.0 → flowproof-0.4.0}/crates/flowproof-replay/src/report.rs +0 -0
- {flowproof-0.3.0 → flowproof-0.4.0}/crates/flowproof-trace/src/secret.rs +0 -0
- {flowproof-0.3.0 → flowproof-0.4.0}/crates/flowproof-trace/tests/fixtures/sample.trace.jsonl +0 -0
- {flowproof-0.3.0 → flowproof-0.4.0}/crates/flowproof-trace/tests/schema_conformance.rs +0 -0
- {flowproof-0.3.0 → flowproof-0.4.0}/flowproof/cli.py +0 -0
- {flowproof-0.3.0 → flowproof-0.4.0}/flowproof/flow.py +0 -0
- {flowproof-0.3.0 → flowproof-0.4.0}/flowproof/mcp_server.py +0 -0
- {flowproof-0.3.0 → 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.
|
|
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,11 +779,12 @@ dependencies = [
|
|
|
739
779
|
|
|
740
780
|
[[package]]
|
|
741
781
|
name = "flowproof-agent"
|
|
742
|
-
version = "0.
|
|
782
|
+
version = "0.4.0"
|
|
743
783
|
dependencies = [
|
|
744
784
|
"chrono",
|
|
745
785
|
"flowproof-driver",
|
|
746
786
|
"flowproof-trace",
|
|
787
|
+
"regex",
|
|
747
788
|
"serde",
|
|
748
789
|
"serde_json",
|
|
749
790
|
"serde_yaml",
|
|
@@ -754,10 +795,12 @@ dependencies = [
|
|
|
754
795
|
|
|
755
796
|
[[package]]
|
|
756
797
|
name = "flowproof-cli"
|
|
757
|
-
version = "0.
|
|
798
|
+
version = "0.4.0"
|
|
758
799
|
dependencies = [
|
|
759
800
|
"ab_glyph",
|
|
801
|
+
"chrono",
|
|
760
802
|
"clap",
|
|
803
|
+
"ctrlc",
|
|
761
804
|
"flowproof-adapters",
|
|
762
805
|
"flowproof-agent",
|
|
763
806
|
"flowproof-driver",
|
|
@@ -765,6 +808,7 @@ dependencies = [
|
|
|
765
808
|
"flowproof-trace",
|
|
766
809
|
"image",
|
|
767
810
|
"imageproc",
|
|
811
|
+
"serde",
|
|
768
812
|
"serde_json",
|
|
769
813
|
"serde_yaml",
|
|
770
814
|
"tiny_http",
|
|
@@ -772,7 +816,7 @@ dependencies = [
|
|
|
772
816
|
|
|
773
817
|
[[package]]
|
|
774
818
|
name = "flowproof-driver"
|
|
775
|
-
version = "0.
|
|
819
|
+
version = "0.4.0"
|
|
776
820
|
dependencies = [
|
|
777
821
|
"image",
|
|
778
822
|
"postgres",
|
|
@@ -786,7 +830,7 @@ dependencies = [
|
|
|
786
830
|
|
|
787
831
|
[[package]]
|
|
788
832
|
name = "flowproof-python"
|
|
789
|
-
version = "0.
|
|
833
|
+
version = "0.4.0"
|
|
790
834
|
dependencies = [
|
|
791
835
|
"flowproof-agent",
|
|
792
836
|
"flowproof-cli",
|
|
@@ -798,7 +842,7 @@ dependencies = [
|
|
|
798
842
|
|
|
799
843
|
[[package]]
|
|
800
844
|
name = "flowproof-replay"
|
|
801
|
-
version = "0.
|
|
845
|
+
version = "0.4.0"
|
|
802
846
|
dependencies = [
|
|
803
847
|
"chrono",
|
|
804
848
|
"flowproof-agent",
|
|
@@ -812,9 +856,10 @@ dependencies = [
|
|
|
812
856
|
|
|
813
857
|
[[package]]
|
|
814
858
|
name = "flowproof-trace"
|
|
815
|
-
version = "0.
|
|
859
|
+
version = "0.4.0"
|
|
816
860
|
dependencies = [
|
|
817
861
|
"jsonschema",
|
|
862
|
+
"regex",
|
|
818
863
|
"serde",
|
|
819
864
|
"serde_json",
|
|
820
865
|
"thiserror 2.0.18",
|
|
@@ -1462,6 +1507,18 @@ dependencies = [
|
|
|
1462
1507
|
"typenum",
|
|
1463
1508
|
]
|
|
1464
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
|
+
|
|
1465
1522
|
[[package]]
|
|
1466
1523
|
name = "num"
|
|
1467
1524
|
version = "0.4.3"
|
|
@@ -1557,6 +1614,15 @@ dependencies = [
|
|
|
1557
1614
|
"libc",
|
|
1558
1615
|
]
|
|
1559
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
|
+
|
|
1560
1626
|
[[package]]
|
|
1561
1627
|
name = "objc2-core-foundation"
|
|
1562
1628
|
version = "0.3.2"
|
|
@@ -1566,6 +1632,12 @@ dependencies = [
|
|
|
1566
1632
|
"bitflags 2.13.1",
|
|
1567
1633
|
]
|
|
1568
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
|
+
|
|
1569
1641
|
[[package]]
|
|
1570
1642
|
name = "objc2-system-configuration"
|
|
1571
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.
|
|
6
|
+
version = "0.4.0"
|
|
7
7
|
edition = "2021"
|
|
8
8
|
license = "Apache-2.0"
|
|
9
9
|
repository = "https://github.com/automators-com/flowproof"
|
|
@@ -22,6 +22,7 @@ anyhow = "1"
|
|
|
22
22
|
chrono = { version = "0.4", default-features = false, features = ["clock"] }
|
|
23
23
|
clap = { version = "4", features = ["derive"] }
|
|
24
24
|
serde = { version = "1", features = ["derive"] }
|
|
25
|
+
regex = "1"
|
|
25
26
|
serde_json = "1"
|
|
26
27
|
serde_yaml = "0.9"
|
|
27
28
|
thiserror = "2"
|
|
@@ -14,14 +14,16 @@ web = ["dep:headless_chrome"]
|
|
|
14
14
|
# Pixels-only (Citrix/RDP) driving: OCR perception via ocrs/rten, model
|
|
15
15
|
# download via ureq.
|
|
16
16
|
vision = ["dep:ocrs", "dep:rten", "dep:ureq"]
|
|
17
|
-
# Agent-boundary testing: the model-API proxy
|
|
18
|
-
|
|
17
|
+
# Agent-boundary testing: the model-API proxy, and record mode forwarding
|
|
18
|
+
# to a real model over ureq (TLS via platform-verifier, already in-tree).
|
|
19
|
+
agent = ["dep:ureq"]
|
|
19
20
|
|
|
20
21
|
[dependencies]
|
|
21
22
|
anyhow = { workspace = true }
|
|
22
23
|
flowproof-driver = { workspace = true }
|
|
23
24
|
flowproof-trace = { workspace = true }
|
|
24
25
|
headless_chrome = { version = "1", optional = true }
|
|
26
|
+
serde = { workspace = true }
|
|
25
27
|
serde_json = "1"
|
|
26
28
|
image = { version = "0.25.10", default-features = false, features = ["png"] }
|
|
27
29
|
thiserror = { workspace = true }
|
|
@@ -30,6 +32,15 @@ ocrs = { version = "0.12", optional = true }
|
|
|
30
32
|
rten = { version = "0.24", optional = true }
|
|
31
33
|
ureq = { version = "3", features = ["platform-verifier"], optional = true }
|
|
32
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
|
+
|
|
33
44
|
[target.'cfg(windows)'.dependencies]
|
|
34
45
|
windows = { version = "0.62", features = [
|
|
35
46
|
"Win32_Foundation",
|