flowproof 0.23.1__tar.gz → 0.23.2__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.23.1 → flowproof-0.23.2}/Cargo.lock +7 -7
- {flowproof-0.23.1 → flowproof-0.23.2}/Cargo.toml +1 -1
- {flowproof-0.23.1 → flowproof-0.23.2}/PKG-INFO +1 -1
- {flowproof-0.23.1 → flowproof-0.23.2}/crates/flowproof-adapters/src/web.rs +46 -4
- {flowproof-0.23.1 → flowproof-0.23.2}/crates/flowproof-cli/tests/web_e2e.rs +15 -2
- {flowproof-0.23.1 → flowproof-0.23.2}/flowproof/__init__.py +1 -1
- {flowproof-0.23.1 → flowproof-0.23.2}/pyproject.toml +1 -1
- {flowproof-0.23.1 → flowproof-0.23.2}/README.md +0 -0
- {flowproof-0.23.1 → flowproof-0.23.2}/crates/flowproof-adapters/Cargo.toml +0 -0
- {flowproof-0.23.1 → flowproof-0.23.2}/crates/flowproof-adapters/src/agent_proxy.rs +0 -0
- {flowproof-0.23.1 → flowproof-0.23.2}/crates/flowproof-adapters/src/agent_runner.rs +0 -0
- {flowproof-0.23.1 → flowproof-0.23.2}/crates/flowproof-adapters/src/egress.rs +0 -0
- {flowproof-0.23.1 → flowproof-0.23.2}/crates/flowproof-adapters/src/egress_linux.rs +0 -0
- {flowproof-0.23.1 → flowproof-0.23.2}/crates/flowproof-adapters/src/egress_windows/audit.rs +0 -0
- {flowproof-0.23.1 → flowproof-0.23.2}/crates/flowproof-adapters/src/egress_windows/capture.rs +0 -0
- {flowproof-0.23.1 → flowproof-0.23.2}/crates/flowproof-adapters/src/egress_windows/env_block.rs +0 -0
- {flowproof-0.23.1 → flowproof-0.23.2}/crates/flowproof-adapters/src/egress_windows/filters.rs +0 -0
- {flowproof-0.23.1 → flowproof-0.23.2}/crates/flowproof-adapters/src/egress_windows/identity.rs +0 -0
- {flowproof-0.23.1 → flowproof-0.23.2}/crates/flowproof-adapters/src/egress_windows/logon.rs +0 -0
- {flowproof-0.23.1 → flowproof-0.23.2}/crates/flowproof-adapters/src/egress_windows/netevents.rs +0 -0
- {flowproof-0.23.1 → flowproof-0.23.2}/crates/flowproof-adapters/src/egress_windows/run.rs +0 -0
- {flowproof-0.23.1 → flowproof-0.23.2}/crates/flowproof-adapters/src/egress_windows/spawn.rs +0 -0
- {flowproof-0.23.1 → flowproof-0.23.2}/crates/flowproof-adapters/src/egress_windows/wfp.rs +0 -0
- {flowproof-0.23.1 → flowproof-0.23.2}/crates/flowproof-adapters/src/egress_windows.rs +0 -0
- {flowproof-0.23.1 → flowproof-0.23.2}/crates/flowproof-adapters/src/fiori.rs +0 -0
- {flowproof-0.23.1 → flowproof-0.23.2}/crates/flowproof-adapters/src/fs_observe.rs +0 -0
- {flowproof-0.23.1 → flowproof-0.23.2}/crates/flowproof-adapters/src/lib.rs +0 -0
- {flowproof-0.23.1 → flowproof-0.23.2}/crates/flowproof-adapters/src/mcp_core.rs +0 -0
- {flowproof-0.23.1 → flowproof-0.23.2}/crates/flowproof-adapters/src/mcp_http.rs +0 -0
- {flowproof-0.23.1 → flowproof-0.23.2}/crates/flowproof-adapters/src/mcp_stdio.rs +0 -0
- {flowproof-0.23.1 → flowproof-0.23.2}/crates/flowproof-adapters/src/sap_com.rs +0 -0
- {flowproof-0.23.1 → flowproof-0.23.2}/crates/flowproof-adapters/src/vision.rs +0 -0
- {flowproof-0.23.1 → flowproof-0.23.2}/crates/flowproof-adapters/tests/a11y_capture.rs +0 -0
- {flowproof-0.23.1 → flowproof-0.23.2}/crates/flowproof-adapters/tests/drag_spike.rs +0 -0
- {flowproof-0.23.1 → flowproof-0.23.2}/crates/flowproof-adapters/tests/fs_observation_e2e.rs +0 -0
- {flowproof-0.23.1 → flowproof-0.23.2}/crates/flowproof-adapters/tests/network_idle_e2e.rs +0 -0
- {flowproof-0.23.1 → flowproof-0.23.2}/crates/flowproof-adapters/tests/shared_browser_shutdown_e2e.rs +0 -0
- {flowproof-0.23.1 → flowproof-0.23.2}/crates/flowproof-adapters/tests/side_effect_http_e2e.rs +0 -0
- {flowproof-0.23.1 → flowproof-0.23.2}/crates/flowproof-adapters/tests/static_area_e2e.rs +0 -0
- {flowproof-0.23.1 → flowproof-0.23.2}/crates/flowproof-adapters/tests/windows_containment_e2e.rs +0 -0
- {flowproof-0.23.1 → flowproof-0.23.2}/crates/flowproof-agent/Cargo.toml +0 -0
- {flowproof-0.23.1 → flowproof-0.23.2}/crates/flowproof-agent/src/agent_steps.rs +0 -0
- {flowproof-0.23.1 → flowproof-0.23.2}/crates/flowproof-agent/src/author.rs +0 -0
- {flowproof-0.23.1 → flowproof-0.23.2}/crates/flowproof-agent/src/clarify.rs +0 -0
- {flowproof-0.23.1 → flowproof-0.23.2}/crates/flowproof-agent/src/doc_author.rs +0 -0
- {flowproof-0.23.1 → flowproof-0.23.2}/crates/flowproof-agent/src/doc_formats/hp_alm.rs +0 -0
- {flowproof-0.23.1 → flowproof-0.23.2}/crates/flowproof-agent/src/doc_formats.rs +0 -0
- {flowproof-0.23.1 → flowproof-0.23.2}/crates/flowproof-agent/src/draft_assembly.rs +0 -0
- {flowproof-0.23.1 → flowproof-0.23.2}/crates/flowproof-agent/src/heal.rs +0 -0
- {flowproof-0.23.1 → flowproof-0.23.2}/crates/flowproof-agent/src/lib.rs +0 -0
- {flowproof-0.23.1 → flowproof-0.23.2}/crates/flowproof-agent/src/llm.rs +0 -0
- {flowproof-0.23.1 → flowproof-0.23.2}/crates/flowproof-agent/src/recorder.rs +0 -0
- {flowproof-0.23.1 → flowproof-0.23.2}/crates/flowproof-agent/src/repair.rs +0 -0
- {flowproof-0.23.1 → flowproof-0.23.2}/crates/flowproof-agent/src/rules.rs +0 -0
- {flowproof-0.23.1 → flowproof-0.23.2}/crates/flowproof-agent/src/spec.rs +0 -0
- {flowproof-0.23.1 → flowproof-0.23.2}/crates/flowproof-agent/tests/model_client_http.rs +0 -0
- {flowproof-0.23.1 → flowproof-0.23.2}/crates/flowproof-cli/Cargo.toml +0 -0
- {flowproof-0.23.1 → flowproof-0.23.2}/crates/flowproof-cli/skills/flowproof-config/SKILL.md +0 -0
- {flowproof-0.23.1 → flowproof-0.23.2}/crates/flowproof-cli/src/agent_flow.rs +0 -0
- {flowproof-0.23.1 → flowproof-0.23.2}/crates/flowproof-cli/src/capture.rs +0 -0
- {flowproof-0.23.1 → flowproof-0.23.2}/crates/flowproof-cli/src/config.rs +0 -0
- {flowproof-0.23.1 → flowproof-0.23.2}/crates/flowproof-cli/src/doctor.rs +0 -0
- {flowproof-0.23.1 → flowproof-0.23.2}/crates/flowproof-cli/src/lib.rs +0 -0
- {flowproof-0.23.1 → flowproof-0.23.2}/crates/flowproof-cli/src/main.rs +0 -0
- {flowproof-0.23.1 → flowproof-0.23.2}/crates/flowproof-cli/src/suite.rs +0 -0
- {flowproof-0.23.1 → flowproof-0.23.2}/crates/flowproof-cli/src/suite_checkpoint.rs +0 -0
- {flowproof-0.23.1 → flowproof-0.23.2}/crates/flowproof-cli/src/suite_inputs.rs +0 -0
- {flowproof-0.23.1 → flowproof-0.23.2}/crates/flowproof-cli/src/suite_journal.rs +0 -0
- {flowproof-0.23.1 → flowproof-0.23.2}/crates/flowproof-cli/src/update_check.rs +0 -0
- {flowproof-0.23.1 → flowproof-0.23.2}/crates/flowproof-cli/tests/a11y_selector_e2e.rs +0 -0
- {flowproof-0.23.1 → flowproof-0.23.2}/crates/flowproof-cli/tests/agent_conversation_anthropic_e2e.rs +0 -0
- {flowproof-0.23.1 → flowproof-0.23.2}/crates/flowproof-cli/tests/agent_conversation_streaming_e2e.rs +0 -0
- {flowproof-0.23.1 → flowproof-0.23.2}/crates/flowproof-cli/tests/agent_flow_e2e.rs +0 -0
- {flowproof-0.23.1 → flowproof-0.23.2}/crates/flowproof-cli/tests/agent_url_record_e2e.rs +0 -0
- {flowproof-0.23.1 → flowproof-0.23.2}/crates/flowproof-cli/tests/api_pipeline.rs +0 -0
- {flowproof-0.23.1 → flowproof-0.23.2}/crates/flowproof-cli/tests/audit_record_e2e.rs +0 -0
- {flowproof-0.23.1 → flowproof-0.23.2}/crates/flowproof-cli/tests/calc_e2e.rs +0 -0
- {flowproof-0.23.1 → flowproof-0.23.2}/crates/flowproof-cli/tests/clock_e2e.rs +0 -0
- {flowproof-0.23.1 → flowproof-0.23.2}/crates/flowproof-cli/tests/config_cli_e2e.rs +0 -0
- {flowproof-0.23.1 → flowproof-0.23.2}/crates/flowproof-cli/tests/config_seed_e2e.rs +0 -0
- {flowproof-0.23.1 → flowproof-0.23.2}/crates/flowproof-cli/tests/config_skill_e2e.rs +0 -0
- {flowproof-0.23.1 → flowproof-0.23.2}/crates/flowproof-cli/tests/cookie_e2e.rs +0 -0
- {flowproof-0.23.1 → flowproof-0.23.2}/crates/flowproof-cli/tests/doctor_ai_e2e.rs +0 -0
- {flowproof-0.23.1 → flowproof-0.23.2}/crates/flowproof-cli/tests/doctor_e2e.rs +0 -0
- {flowproof-0.23.1 → flowproof-0.23.2}/crates/flowproof-cli/tests/documented_flags.rs +0 -0
- {flowproof-0.23.1 → flowproof-0.23.2}/crates/flowproof-cli/tests/egress_e2e.rs +0 -0
- {flowproof-0.23.1 → flowproof-0.23.2}/crates/flowproof-cli/tests/examples_resolve.rs +0 -0
- {flowproof-0.23.1 → flowproof-0.23.2}/crates/flowproof-cli/tests/falsifiability_arg_matchers.rs +0 -0
- {flowproof-0.23.1 → flowproof-0.23.2}/crates/flowproof-cli/tests/falsifiability_audit_since.rs +0 -0
- {flowproof-0.23.1 → flowproof-0.23.2}/crates/flowproof-cli/tests/falsifiability_call_order.rs +0 -0
- {flowproof-0.23.1 → flowproof-0.23.2}/crates/flowproof-cli/tests/falsifiability_capability_regression.rs +0 -0
- {flowproof-0.23.1 → flowproof-0.23.2}/crates/flowproof-cli/tests/falsifiability_control_verdict.rs +0 -0
- {flowproof-0.23.1 → flowproof-0.23.2}/crates/flowproof-cli/tests/falsifiability_mcp_kill.rs +0 -0
- {flowproof-0.23.1 → flowproof-0.23.2}/crates/flowproof-cli/tests/falsifiability_no_tool_call.rs +0 -0
- {flowproof-0.23.1 → flowproof-0.23.2}/crates/flowproof-cli/tests/falsifiability_reply_contains.rs +0 -0
- {flowproof-0.23.1 → flowproof-0.23.2}/crates/flowproof-cli/tests/falsifiability_side_effect.rs +0 -0
- {flowproof-0.23.1 → flowproof-0.23.2}/crates/flowproof-cli/tests/fiori_field_commit_e2e.rs +0 -0
- {flowproof-0.23.1 → flowproof-0.23.2}/crates/flowproof-cli/tests/grid_cell_e2e.rs +0 -0
- {flowproof-0.23.1 → flowproof-0.23.2}/crates/flowproof-cli/tests/iframe_e2e.rs +0 -0
- {flowproof-0.23.1 → flowproof-0.23.2}/crates/flowproof-cli/tests/llm_author_e2e.rs +0 -0
- {flowproof-0.23.1 → flowproof-0.23.2}/crates/flowproof-cli/tests/mcp_http_e2e.rs +0 -0
- {flowproof-0.23.1 → flowproof-0.23.2}/crates/flowproof-cli/tests/mcp_stdio_e2e.rs +0 -0
- {flowproof-0.23.1 → flowproof-0.23.2}/crates/flowproof-cli/tests/notepad_author_e2e.rs +0 -0
- {flowproof-0.23.1 → flowproof-0.23.2}/crates/flowproof-cli/tests/notepad_e2e.rs +0 -0
- {flowproof-0.23.1 → flowproof-0.23.2}/crates/flowproof-cli/tests/page_title_e2e.rs +0 -0
- {flowproof-0.23.1 → flowproof-0.23.2}/crates/flowproof-cli/tests/pinned_random_e2e.rs +0 -0
- {flowproof-0.23.1 → flowproof-0.23.2}/crates/flowproof-cli/tests/sap_e2e.rs +0 -0
- {flowproof-0.23.1 → flowproof-0.23.2}/crates/flowproof-cli/tests/sap_pipeline.rs +0 -0
- {flowproof-0.23.1 → flowproof-0.23.2}/crates/flowproof-cli/tests/sap_sim_e2e.rs +0 -0
- {flowproof-0.23.1 → flowproof-0.23.2}/crates/flowproof-cli/tests/scoped_container_e2e.rs +0 -0
- {flowproof-0.23.1 → flowproof-0.23.2}/crates/flowproof-cli/tests/select_missing_option_e2e.rs +0 -0
- {flowproof-0.23.1 → flowproof-0.23.2}/crates/flowproof-cli/tests/skip_unless_env.rs +0 -0
- {flowproof-0.23.1 → flowproof-0.23.2}/crates/flowproof-cli/tests/suite_checkpoint.rs +0 -0
- {flowproof-0.23.1 → flowproof-0.23.2}/crates/flowproof-cli/tests/suite_env_from.rs +0 -0
- {flowproof-0.23.1 → flowproof-0.23.2}/crates/flowproof-cli/tests/suite_flow_isolation.rs +0 -0
- {flowproof-0.23.1 → flowproof-0.23.2}/crates/flowproof-cli/tests/suite_missing_trace.rs +0 -0
- {flowproof-0.23.1 → flowproof-0.23.2}/crates/flowproof-cli/tests/suite_policy.rs +0 -0
- {flowproof-0.23.1 → flowproof-0.23.2}/crates/flowproof-cli/tests/support/sap_simulator.py +0 -0
- {flowproof-0.23.1 → flowproof-0.23.2}/crates/flowproof-cli/tests/visibility_e2e.rs +0 -0
- {flowproof-0.23.1 → flowproof-0.23.2}/crates/flowproof-cli/tests/vision_pipeline.rs +0 -0
- {flowproof-0.23.1 → flowproof-0.23.2}/crates/flowproof-driver/Cargo.toml +0 -0
- {flowproof-0.23.1 → flowproof-0.23.2}/crates/flowproof-driver/src/app.rs +0 -0
- {flowproof-0.23.1 → flowproof-0.23.2}/crates/flowproof-driver/src/backend.rs +0 -0
- {flowproof-0.23.1 → flowproof-0.23.2}/crates/flowproof-driver/src/gdi.rs +0 -0
- {flowproof-0.23.1 → flowproof-0.23.2}/crates/flowproof-driver/src/lib.rs +0 -0
- {flowproof-0.23.1 → flowproof-0.23.2}/crates/flowproof-driver/src/mock.rs +0 -0
- {flowproof-0.23.1 → flowproof-0.23.2}/crates/flowproof-driver/src/oob.rs +0 -0
- {flowproof-0.23.1 → flowproof-0.23.2}/crates/flowproof-driver/src/recording.rs +0 -0
- {flowproof-0.23.1 → flowproof-0.23.2}/crates/flowproof-driver/src/redact.rs +0 -0
- {flowproof-0.23.1 → flowproof-0.23.2}/crates/flowproof-driver/src/surface.rs +0 -0
- {flowproof-0.23.1 → flowproof-0.23.2}/crates/flowproof-driver/src/visual.rs +0 -0
- {flowproof-0.23.1 → flowproof-0.23.2}/crates/flowproof-driver/src/window.rs +0 -0
- {flowproof-0.23.1 → flowproof-0.23.2}/crates/flowproof-python/Cargo.toml +0 -0
- {flowproof-0.23.1 → flowproof-0.23.2}/crates/flowproof-python/src/lib.rs +0 -0
- {flowproof-0.23.1 → flowproof-0.23.2}/crates/flowproof-replay/Cargo.toml +0 -0
- {flowproof-0.23.1 → flowproof-0.23.2}/crates/flowproof-replay/src/lib.rs +0 -0
- {flowproof-0.23.1 → flowproof-0.23.2}/crates/flowproof-replay/src/report.rs +0 -0
- {flowproof-0.23.1 → flowproof-0.23.2}/crates/flowproof-replay/src/runrecord.rs +0 -0
- {flowproof-0.23.1 → flowproof-0.23.2}/crates/flowproof-replay/tests/replay_calc.rs +0 -0
- {flowproof-0.23.1 → flowproof-0.23.2}/crates/flowproof-trace/Cargo.toml +0 -0
- {flowproof-0.23.1 → flowproof-0.23.2}/crates/flowproof-trace/schema/cassette-v1.schema.json +0 -0
- {flowproof-0.23.1 → flowproof-0.23.2}/crates/flowproof-trace/schema/side-effect-v1.schema.json +0 -0
- {flowproof-0.23.1 → flowproof-0.23.2}/crates/flowproof-trace/schema/trace-v1.schema.json +0 -0
- {flowproof-0.23.1 → flowproof-0.23.2}/crates/flowproof-trace/src/captures.rs +0 -0
- {flowproof-0.23.1 → flowproof-0.23.2}/crates/flowproof-trace/src/cassette.rs +0 -0
- {flowproof-0.23.1 → flowproof-0.23.2}/crates/flowproof-trace/src/cassette_diff.rs +0 -0
- {flowproof-0.23.1 → flowproof-0.23.2}/crates/flowproof-trace/src/egress.rs +0 -0
- {flowproof-0.23.1 → flowproof-0.23.2}/crates/flowproof-trace/src/format.rs +0 -0
- {flowproof-0.23.1 → flowproof-0.23.2}/crates/flowproof-trace/src/lib.rs +0 -0
- {flowproof-0.23.1 → flowproof-0.23.2}/crates/flowproof-trace/src/secret.rs +0 -0
- {flowproof-0.23.1 → flowproof-0.23.2}/crates/flowproof-trace/src/secret_scan.rs +0 -0
- {flowproof-0.23.1 → flowproof-0.23.2}/crates/flowproof-trace/src/side_effect.rs +0 -0
- {flowproof-0.23.1 → flowproof-0.23.2}/crates/flowproof-trace/src/substitution.rs +0 -0
- {flowproof-0.23.1 → flowproof-0.23.2}/crates/flowproof-trace/src/toolcalls.rs +0 -0
- {flowproof-0.23.1 → flowproof-0.23.2}/crates/flowproof-trace/tests/cassette_conformance.rs +0 -0
- {flowproof-0.23.1 → flowproof-0.23.2}/crates/flowproof-trace/tests/fixtures/multi.trace.jsonl +0 -0
- {flowproof-0.23.1 → flowproof-0.23.2}/crates/flowproof-trace/tests/fixtures/sample.trace.jsonl +0 -0
- {flowproof-0.23.1 → flowproof-0.23.2}/crates/flowproof-trace/tests/schema_conformance.rs +0 -0
- {flowproof-0.23.1 → flowproof-0.23.2}/crates/flowproof-trace/tests/side_effect_conformance.rs +0 -0
- {flowproof-0.23.1 → flowproof-0.23.2}/flowproof/cli.py +0 -0
- {flowproof-0.23.1 → flowproof-0.23.2}/flowproof/flow.py +0 -0
- {flowproof-0.23.1 → flowproof-0.23.2}/flowproof/mcp_server.py +0 -0
- {flowproof-0.23.1 → flowproof-0.23.2}/flowproof/py.typed +0 -0
|
@@ -930,7 +930,7 @@ dependencies = [
|
|
|
930
930
|
|
|
931
931
|
[[package]]
|
|
932
932
|
name = "flowproof-adapters"
|
|
933
|
-
version = "0.23.
|
|
933
|
+
version = "0.23.2"
|
|
934
934
|
dependencies = [
|
|
935
935
|
"anyhow",
|
|
936
936
|
"flowproof-driver",
|
|
@@ -949,7 +949,7 @@ dependencies = [
|
|
|
949
949
|
|
|
950
950
|
[[package]]
|
|
951
951
|
name = "flowproof-agent"
|
|
952
|
-
version = "0.23.
|
|
952
|
+
version = "0.23.2"
|
|
953
953
|
dependencies = [
|
|
954
954
|
"chrono",
|
|
955
955
|
"flowproof-driver",
|
|
@@ -967,7 +967,7 @@ dependencies = [
|
|
|
967
967
|
|
|
968
968
|
[[package]]
|
|
969
969
|
name = "flowproof-cli"
|
|
970
|
-
version = "0.23.
|
|
970
|
+
version = "0.23.2"
|
|
971
971
|
dependencies = [
|
|
972
972
|
"ab_glyph",
|
|
973
973
|
"chrono",
|
|
@@ -992,7 +992,7 @@ dependencies = [
|
|
|
992
992
|
|
|
993
993
|
[[package]]
|
|
994
994
|
name = "flowproof-driver"
|
|
995
|
-
version = "0.23.
|
|
995
|
+
version = "0.23.2"
|
|
996
996
|
dependencies = [
|
|
997
997
|
"calamine",
|
|
998
998
|
"flowproof-trace",
|
|
@@ -1008,7 +1008,7 @@ dependencies = [
|
|
|
1008
1008
|
|
|
1009
1009
|
[[package]]
|
|
1010
1010
|
name = "flowproof-python"
|
|
1011
|
-
version = "0.23.
|
|
1011
|
+
version = "0.23.2"
|
|
1012
1012
|
dependencies = [
|
|
1013
1013
|
"flowproof-agent",
|
|
1014
1014
|
"flowproof-cli",
|
|
@@ -1020,7 +1020,7 @@ dependencies = [
|
|
|
1020
1020
|
|
|
1021
1021
|
[[package]]
|
|
1022
1022
|
name = "flowproof-replay"
|
|
1023
|
-
version = "0.23.
|
|
1023
|
+
version = "0.23.2"
|
|
1024
1024
|
dependencies = [
|
|
1025
1025
|
"chrono",
|
|
1026
1026
|
"flowproof-agent",
|
|
@@ -1034,7 +1034,7 @@ dependencies = [
|
|
|
1034
1034
|
|
|
1035
1035
|
[[package]]
|
|
1036
1036
|
name = "flowproof-trace"
|
|
1037
|
-
version = "0.23.
|
|
1037
|
+
version = "0.23.2"
|
|
1038
1038
|
dependencies = [
|
|
1039
1039
|
"jsonschema",
|
|
1040
1040
|
"regex",
|
|
@@ -22,7 +22,7 @@ members = ["crates/flowproof-driver", "crates/flowproof-trace", "crates/flowproo
|
|
|
22
22
|
exclude = ["spike/windows-containment"]
|
|
23
23
|
|
|
24
24
|
[workspace.package]
|
|
25
|
-
version = "0.23.
|
|
25
|
+
version = "0.23.2"
|
|
26
26
|
edition = "2021"
|
|
27
27
|
license = "Apache-2.0"
|
|
28
28
|
repository = "https://github.com/automators-com/flowproof"
|
|
@@ -133,6 +133,15 @@ fn scroll_element_into_view(element: &headless_chrome::Element<'_>) -> anyhow::R
|
|
|
133
133
|
anyhow::bail!("SAP grid cell did not enter the viewport after scrolling")
|
|
134
134
|
}
|
|
135
135
|
|
|
136
|
+
/// Element::click performs its own native scroll, even after an actionability
|
|
137
|
+
/// check. Keep all click paths (including the click before typing) on the same
|
|
138
|
+
/// scrollbar-aware path as double-click and explicit scrolling.
|
|
139
|
+
fn click_element(element: &headless_chrome::Element<'_>) -> anyhow::Result<()> {
|
|
140
|
+
scroll_element_into_view(element)?;
|
|
141
|
+
element.parent.click_point(element.get_midpoint()?)?;
|
|
142
|
+
Ok(())
|
|
143
|
+
}
|
|
144
|
+
|
|
136
145
|
/// Read a checkbox-like control's state from an element that may be the
|
|
137
146
|
/// control itself OR a wrapper around it. Covers the three shapes real apps
|
|
138
147
|
/// use: a native `input[type=checkbox|radio]`, an ARIA widget carrying
|
|
@@ -3188,7 +3197,7 @@ impl AppDriver for WebAppDriver {
|
|
|
3188
3197
|
// and clicking a zero-sized input does nothing - so the helper
|
|
3189
3198
|
// hands back whichever ancestor is actually clickable.
|
|
3190
3199
|
self.with_element(&locator, &format!("clicking [{selector}]"), |element| {
|
|
3191
|
-
element
|
|
3200
|
+
click_element(element)
|
|
3192
3201
|
})?;
|
|
3193
3202
|
}
|
|
3194
3203
|
// Verify it took: a click that lands on a disabled or intercepted
|
|
@@ -3586,11 +3595,34 @@ impl AppDriver for WebAppDriver {
|
|
|
3586
3595
|
match to {
|
|
3587
3596
|
// Bring an in-DOM element into the viewport.
|
|
3588
3597
|
ScrollTo::IntoView => {
|
|
3598
|
+
let sap = self
|
|
3599
|
+
.tab()?
|
|
3600
|
+
.evaluate(
|
|
3601
|
+
"!!document.querySelector('#webguiPage0, #webguiform0')",
|
|
3602
|
+
false,
|
|
3603
|
+
)
|
|
3604
|
+
.map_err(|e| web_err("checking the scroll surface", e))?
|
|
3605
|
+
.value
|
|
3606
|
+
.and_then(|v| v.as_bool())
|
|
3607
|
+
.unwrap_or(false);
|
|
3608
|
+
if sap {
|
|
3609
|
+
self.scene()?;
|
|
3610
|
+
}
|
|
3611
|
+
self.with_element(
|
|
3612
|
+
&locator,
|
|
3613
|
+
"scrolling the target",
|
|
3614
|
+
scroll_element_into_view,
|
|
3615
|
+
)?;
|
|
3616
|
+
// SAP may replace the table after scrolling/validation.
|
|
3617
|
+
// Settle that response and inspect a freshly resolved
|
|
3618
|
+
// element, not the detached pre-scroll handle.
|
|
3619
|
+
if sap {
|
|
3620
|
+
self.scene()?;
|
|
3621
|
+
}
|
|
3589
3622
|
let value = self.with_element(
|
|
3590
3623
|
&locator,
|
|
3591
3624
|
&format!("scrolling [{sel}] into view"),
|
|
3592
3625
|
|element| {
|
|
3593
|
-
scroll_element_into_view(element)?;
|
|
3594
3626
|
element.call_js_fn(
|
|
3595
3627
|
r#"function() {
|
|
3596
3628
|
const r = this.getBoundingClientRect();
|
|
@@ -3872,7 +3904,7 @@ impl AppDriver for WebAppDriver {
|
|
|
3872
3904
|
}
|
|
3873
3905
|
let locator = Self::locator(selector)?;
|
|
3874
3906
|
self.with_element(&locator, &format!("clicking [{selector}]"), |element| {
|
|
3875
|
-
element
|
|
3907
|
+
click_element(element)
|
|
3876
3908
|
})
|
|
3877
3909
|
}
|
|
3878
3910
|
|
|
@@ -4354,6 +4386,12 @@ impl AppDriver for WebAppDriver {
|
|
|
4354
4386
|
value, then by visible text; nothing was selected"
|
|
4355
4387
|
)));
|
|
4356
4388
|
}
|
|
4389
|
+
if status == "sap_input" {
|
|
4390
|
+
// Focusing a WebGUI editor can replace it asynchronously. Finish
|
|
4391
|
+
// that transition before selecting/typing, then resolve it again.
|
|
4392
|
+
self.with_element(&locator, "focusing the SAP editor", click_element)?;
|
|
4393
|
+
self.scene()?;
|
|
4394
|
+
}
|
|
4357
4395
|
self.with_element(&locator, &format!("typing into [{selector}]"), |element| {
|
|
4358
4396
|
// Select what the field holds before the keystrokes land: typing
|
|
4359
4397
|
// over a selection replaces, so the field ends up reading `text`
|
|
@@ -4369,7 +4407,11 @@ impl AppDriver for WebAppDriver {
|
|
|
4369
4407
|
// `type_into`, which clicks again and would collapse the
|
|
4370
4408
|
// selection back to a caret - the keystrokes would append, which
|
|
4371
4409
|
// is the accident this contract removes.
|
|
4372
|
-
|
|
4410
|
+
if status == "sap_input" {
|
|
4411
|
+
element.call_js_fn("function() { this.focus(); }", vec![], false)?;
|
|
4412
|
+
} else {
|
|
4413
|
+
click_element(element)?;
|
|
4414
|
+
}
|
|
4373
4415
|
element
|
|
4374
4416
|
.call_js_fn(
|
|
4375
4417
|
r#"function() {
|
|
@@ -3112,6 +3112,7 @@ fn top_level_sap_fields_commit_before_recording_and_replay_continue() {
|
|
|
3112
3112
|
onkeydown="if(event.key==='Enter') document.getElementById('command').textContent='Command invoked'">
|
|
3113
3113
|
<div id="command"></div>
|
|
3114
3114
|
<label for="plant">Plant</label><input id="plant" value="OLD"
|
|
3115
|
+
onfocus="if(!window.replaced){window.replaced=true;setTimeout(()=>{const fresh=this.cloneNode(true);fresh.value='OLD';this.replaceWith(fresh);fresh.focus()},25)}"
|
|
3115
3116
|
onkeydown="if(event.key==='Enter') document.getElementById('validation').textContent='Plant validated'"
|
|
3116
3117
|
onblur="document.getElementById('accepted').textContent='Committed plant: '+this.value">
|
|
3117
3118
|
<div id="validation"></div>
|
|
@@ -3214,7 +3215,9 @@ fn sap_grid_scrolls_through_its_scrollbar_and_edits_both_ends() {
|
|
|
3214
3215
|
<div id="items_hscroll-bar" style="position:relative;width:240px;height:20px;background:#ddd">
|
|
3215
3216
|
<div id="items_hscroll-hdl" style="position:absolute;left:0;top:0;width:48px;height:20px;background:#777"></div>
|
|
3216
3217
|
</div><button>Next</button>
|
|
3218
|
+
<button onclick="replaceAfterScroll=true">Refresh on next scroll</button>
|
|
3217
3219
|
</div><script>
|
|
3220
|
+
let replaceAfterScroll=false;
|
|
3218
3221
|
const pane=document.getElementById('items-mrss-cont-none'),thumb=document.getElementById('items_hscroll-hdl');
|
|
3219
3222
|
let start=null,offset=0;
|
|
3220
3223
|
thumb.onmousedown=e=>{start={x:e.clientX,offset};e.preventDefault()};
|
|
@@ -3225,12 +3228,18 @@ fn sap_grid_scrolls_through_its_scrollbar_and_edits_both_ends() {
|
|
|
3225
3228
|
document.getElementById('shift').style.left=(-offset)+'px';
|
|
3226
3229
|
document.getElementById('header').style.left=(-offset)+'px';
|
|
3227
3230
|
});
|
|
3228
|
-
window.addEventListener('mouseup',()=>
|
|
3231
|
+
window.addEventListener('mouseup',()=>{
|
|
3232
|
+
const dragged=!!start;start=null;
|
|
3233
|
+
if(dragged && replaceAfterScroll){
|
|
3234
|
+
replaceAfterScroll=false;
|
|
3235
|
+
setTimeout(()=>pane.replaceWith(pane.cloneNode(true)),10);
|
|
3236
|
+
}
|
|
3237
|
+
});
|
|
3229
3238
|
function edit(cell,id,label){
|
|
3230
3239
|
// Native scrollIntoView moves the clipped body, not the grid's model.
|
|
3231
3240
|
// Such a click cannot activate the intended editor.
|
|
3232
3241
|
if(pane.scrollLeft!==0)return;
|
|
3233
|
-
if(!document.getElementById(id))cell.innerHTML='<label for="'+id+'">'+label+'</label><input id="'+id+'" style="width:
|
|
3242
|
+
if(!document.getElementById(id))cell.innerHTML='<label for="'+id+'">'+label+'</label><input id="'+id+'" style="width:200px" oninput="if(pane.scrollLeft!==0)this.value=String()">';
|
|
3234
3243
|
}
|
|
3235
3244
|
</script>"#).expect("parse or write browser fixture");
|
|
3236
3245
|
let spec = FlowSpec::parse(&format!(
|
|
@@ -3244,7 +3253,11 @@ steps:
|
|
|
3244
3253
|
- Double-click "css:#material-cell"
|
|
3245
3254
|
- Type 3306 into the "Material" field
|
|
3246
3255
|
- assert: the "Material" field contains 3306
|
|
3256
|
+
- Click "Plant"
|
|
3247
3257
|
- assert: the "Plant" field contains 1010
|
|
3258
|
+
- Click "Refresh on next scroll"
|
|
3259
|
+
- Scroll "css:#material-cell" into view
|
|
3260
|
+
- assert: the "Material" field contains 3306
|
|
3248
3261
|
"#,
|
|
3249
3262
|
page.display()
|
|
3250
3263
|
))
|
|
@@ -4,7 +4,7 @@ build-backend = "maturin"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "flowproof"
|
|
7
|
-
version = "0.23.
|
|
7
|
+
version = "0.23.2"
|
|
8
8
|
description = "Test that a bot only ever does the job it was given — and never deletes, sends or approves the thing it must not. Record it doing the job once, then replay on every commit with zero LLM calls. For the agents and RPA already running real work in production: web, desktop, SAP, Citrix."
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
license = "Apache-2.0"
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{flowproof-0.23.1 → flowproof-0.23.2}/crates/flowproof-adapters/src/egress_windows/capture.rs
RENAMED
|
File without changes
|
{flowproof-0.23.1 → flowproof-0.23.2}/crates/flowproof-adapters/src/egress_windows/env_block.rs
RENAMED
|
File without changes
|
{flowproof-0.23.1 → flowproof-0.23.2}/crates/flowproof-adapters/src/egress_windows/filters.rs
RENAMED
|
File without changes
|
{flowproof-0.23.1 → flowproof-0.23.2}/crates/flowproof-adapters/src/egress_windows/identity.rs
RENAMED
|
File without changes
|
|
File without changes
|
{flowproof-0.23.1 → flowproof-0.23.2}/crates/flowproof-adapters/src/egress_windows/netevents.rs
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{flowproof-0.23.1 → flowproof-0.23.2}/crates/flowproof-adapters/tests/shared_browser_shutdown_e2e.rs
RENAMED
|
File without changes
|
{flowproof-0.23.1 → flowproof-0.23.2}/crates/flowproof-adapters/tests/side_effect_http_e2e.rs
RENAMED
|
File without changes
|
|
File without changes
|
{flowproof-0.23.1 → flowproof-0.23.2}/crates/flowproof-adapters/tests/windows_containment_e2e.rs
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{flowproof-0.23.1 → flowproof-0.23.2}/crates/flowproof-cli/tests/agent_conversation_anthropic_e2e.rs
RENAMED
|
File without changes
|
{flowproof-0.23.1 → flowproof-0.23.2}/crates/flowproof-cli/tests/agent_conversation_streaming_e2e.rs
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{flowproof-0.23.1 → flowproof-0.23.2}/crates/flowproof-cli/tests/falsifiability_arg_matchers.rs
RENAMED
|
File without changes
|
{flowproof-0.23.1 → flowproof-0.23.2}/crates/flowproof-cli/tests/falsifiability_audit_since.rs
RENAMED
|
File without changes
|
{flowproof-0.23.1 → flowproof-0.23.2}/crates/flowproof-cli/tests/falsifiability_call_order.rs
RENAMED
|
File without changes
|
|
File without changes
|
{flowproof-0.23.1 → flowproof-0.23.2}/crates/flowproof-cli/tests/falsifiability_control_verdict.rs
RENAMED
|
File without changes
|
|
File without changes
|
{flowproof-0.23.1 → flowproof-0.23.2}/crates/flowproof-cli/tests/falsifiability_no_tool_call.rs
RENAMED
|
File without changes
|
{flowproof-0.23.1 → flowproof-0.23.2}/crates/flowproof-cli/tests/falsifiability_reply_contains.rs
RENAMED
|
File without changes
|
{flowproof-0.23.1 → flowproof-0.23.2}/crates/flowproof-cli/tests/falsifiability_side_effect.rs
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{flowproof-0.23.1 → flowproof-0.23.2}/crates/flowproof-cli/tests/select_missing_option_e2e.rs
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{flowproof-0.23.1 → flowproof-0.23.2}/crates/flowproof-trace/schema/side-effect-v1.schema.json
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{flowproof-0.23.1 → flowproof-0.23.2}/crates/flowproof-trace/tests/fixtures/multi.trace.jsonl
RENAMED
|
File without changes
|
{flowproof-0.23.1 → flowproof-0.23.2}/crates/flowproof-trace/tests/fixtures/sample.trace.jsonl
RENAMED
|
File without changes
|
|
File without changes
|
{flowproof-0.23.1 → flowproof-0.23.2}/crates/flowproof-trace/tests/side_effect_conformance.rs
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|